/*!
 * pixi.js - v4.6.2
 * Compiled Thu, 30 Nov 2017 15:24:33 UTC
 *
 * pixi.js is licensed under the MIT License.
 * http://www.opensource.org/licenses/mit-license
 */

/**
 * isMobile.js v0.4.1
 *
 * A simple library to detect Apple phones and tablets,
 * Android phones and tablets, other mobile devices (like blackberry, mini-opera and windows phone),
 * and any kind of seven inch device, via user agent sniffing.
 *
 * @author: Kai Mallea (kmallea@gmail.com)
 *
 * @license: http://creativecommons.org/publicdomain/zero/1.0/
 */

/*
object-assign
(c) Sindre Sorhus
@license MIT
*/

// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

/*! https://mths.be/punycode v1.4.1 by @mathias */

/**
 * The height of the top row (c)
 *
 * @member {number}
 * @memberof PIXI.NineSlicePlane#
 * @override
 */

/**
 * @license
 * lodash 3.10.1 (Custom Build) <https://lodash.com/>
 * Build: `lodash compat exports="amd" -d -o /rdisks/sf-netapp01-jenkinbuild/workspace/SkateboardPlatform-MessageBus-mainline/target/checkout/target/messagebus/lodash.js include="main,after,arraySome,debounce,createForEach,arrayEach,baseEach,baseAssign,arrayFilter,isEqual,keys,arrayMap,throttle,root,isObject,now,bindCallback,isArray,baseForOwn,createBaseEach,baseCopy,baseIsEqual,getNative,isArrayLike,shimKeys,each,extend,bind,reduce,defaults,map,any,filter,find,contains,clone,without,cloneDeep,isPlainObject"`
 * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 * Available under MIT license <https://lodash.com/license>
 */

/*!
 *
 * Copyright 2009-2012 Kris Kowal under the terms of the MIT
 * license found at http://github.com/kriskowal/q/raw/master/LICENSE
 *
 * With parts by Tyler Close
 * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found
 * at http://www.opensource.org/licenses/mit-license.html
 * Forked at ref_send.js version: 2009-05-11
 *
 * With parts by Mark Miller
 * Copyright (C) 2011 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

//     Underscore.js 1.8.3
//     http://underscorejs.org
//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
//     Underscore may be freely distributed under the MIT license.

/**
 * riveter - Mix-in, inheritance and constructor extend behavior for your JavaScript enjoyment.
 * © 2012 - Copyright appendTo, LLC 
 * Author(s): Jim Cowart, Nicholas Cloud, Doug Neiner
 * Version: v0.1.2
 * Url: https://github.com/a2labs/riveter
 * License(s): MIT
 */

/**
 * Fast UUID generator, RFC4122 version 4 compliant.
 * @author Jeff Ward (jcward.com).
 * @license MIT license
 * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
 **/

/*! howler.js v2.0.9 | (c) 2013-2018, James Simpson of GoldFire Studios | MIT License | howlerjs.com */

/*! Spatial Plugin */

/*!
 * VERSION: 1.20.1
 * DATE: 2017-06-29
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2017, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */

/*!
 * pixi-particles - v2.1.5
 * Compiled Tue, 14 Mar 2017 22:08:59 UTC
 *
 * pixi-particles is licensed under the MIT License.
 * http://www.opensource.org/licenses/mit-license
 */

/*!
 * VERSION: 1.15.6
 * DATE: 2017-06-19
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2017, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 **/

! function() {
    define("skbJet/component/utils/Map", [], function() {
            function e() {
                var e = {};
                this.clear = function() {
                    for (var t in e) delete e[t]
                }, this.set = function(t, n) {
                    e[t] = n
                }, this.get = function(t) {
                    return e[t]
                }, this.delete = function(t) {
                    delete e[t]
                }, this.keys = function() {
                    var t = [];
                    for (var n in e) t.push(n);
                    return t
                }, this.size = function() {
                    return this.keys().length
                }
            }
            return window.Map ? window.Map : (window.Map = e, e)
        }), define("skbJet/component/gameMsgBus/GameMsgBus", ["skbJet/component/utils/Map"], function(e) {
            function t(e) {
                setTimeout(function() {
                    o.publish("error", {
                        errorCode: "GM-003",
                        message: "" + e
                    })
                }, 3)
            }

            function n(e, t) {
                setTimeout(function() {
                    t(e)
                }, 0)
            }

            function i(e, t, n) {
                setTimeout(function() {
                    a[e](t, n)
                }, 0)
            }
            var r = new e,
                o = {},
                a = [];
            return o.subscribe = function(e, t) {
                if (!e) return o;
                if (!t) return o;
                var n = r.get(e);
                return n || (n = [], r.set(e, n)), n.indexOf(t) < 0 && n.push(t), o
            }, o.unsubscribe = function(e, t) {
                var n = r.get(e);
                if (n) {
                    var i = n.indexOf(t);
                    i >= 0 && n.splice(i, 1)
                }
                return o
            }, o.publish = function(e, s, u) {
                var l = r.get(e);
                if (!l) return o;
                for (var c = 0; c < a.length; c++) i(c, e, s);
                for (c = 0; c < l.length; c++) try {
                    u ? n(s, l[c]) : l[c](s)
                } catch (e) {
                    t(e)
                }
                return o
            }, o.addWireTap = function(e) {
                "function" == typeof e && a.push(e)
            }, o.removeWireTap = function(e) {
                a.splice(a.indexOf(e), 1)
            }, o
        }),
        function(e) {
            if ("object" == typeof exports && "undefined" != typeof module) module.exports = e();
            else if ("function" == typeof define && define.amd) define("com/pixijs/pixi", [], e);
            else {
                var t;
                t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, t.PIXI = e()
            }
        }(function() {
            var e;
            return function e(t, n, i) {
                function r(a, s) {
                    if (!n[a]) {
                        if (!t[a]) {
                            var u = "function" == typeof require && require;
                            if (!s && u) return u(a, !0);
                            if (o) return o(a, !0);
                            var l = new Error("Cannot find module '" + a + "'");
                            throw l.code = "MODULE_NOT_FOUND", l
                        }
                        var c = n[a] = {
                            exports: {}
                        };
                        t[a][0].call(c.exports, function(e) {
                            var n = t[a][1][e];
                            return r(n || e)
                        }, c, c.exports, e, t, n, i)
                    }
                    return n[a].exports
                }
                for (var o = "function" == typeof require && require, a = 0; a < i.length; a++) r(i[a]);
                return r
            }({
                1: [function(e, t, n) {
                    "use restrict";

                    function i(e) {
                        var t = 32;
                        return e &= -e, e && t--, 65535 & e && (t -= 16), 16711935 & e && (t -= 8), 252645135 & e && (t -= 4), 858993459 & e && (t -= 2), 1431655765 & e && (t -= 1), t
                    }
                    n.INT_BITS = 32, n.INT_MAX = 2147483647, n.INT_MIN = -1 << 31, n.sign = function(e) {
                        return (e > 0) - (e < 0)
                    }, n.abs = function(e) {
                        var t = e >> 31;
                        return (e ^ t) - t
                    }, n.min = function(e, t) {
                        return t ^ (e ^ t) & -(e < t)
                    }, n.max = function(e, t) {
                        return e ^ (e ^ t) & -(e < t)
                    }, n.isPow2 = function(e) {
                        return !(e & e - 1 || !e)
                    }, n.log2 = function(e) {
                        var t, n;
                        return t = (e > 65535) << 4, e >>>= t, n = (e > 255) << 3, e >>>= n, t |= n, n = (e > 15) << 2, e >>>= n, t |= n, n = (e > 3) << 1, e >>>= n, (t |= n) | e >> 1
                    }, n.log10 = function(e) {
                        return e >= 1e9 ? 9 : e >= 1e8 ? 8 : e >= 1e7 ? 7 : e >= 1e6 ? 6 : e >= 1e5 ? 5 : e >= 1e4 ? 4 : e >= 1e3 ? 3 : e >= 100 ? 2 : e >= 10 ? 1 : 0
                    }, n.popCount = function(e) {
                        return e -= e >>> 1 & 1431655765, 16843009 * ((e = (858993459 & e) + (e >>> 2 & 858993459)) + (e >>> 4) & 252645135) >>> 24
                    }, n.countTrailingZeros = i, n.nextPow2 = function(e) {
                        return e += 0 === e, --e, e |= e >>> 1, e |= e >>> 2, e |= e >>> 4, e |= e >>> 8, (e |= e >>> 16) + 1
                    }, n.prevPow2 = function(e) {
                        return e |= e >>> 1, e |= e >>> 2, e |= e >>> 4, e |= e >>> 8, (e |= e >>> 16) - (e >>> 1)
                    }, n.parity = function(e) {
                        return e ^= e >>> 16, e ^= e >>> 8, e ^= e >>> 4, 27030 >>> (e &= 15) & 1
                    };
                    var r = new Array(256);
                    ! function(e) {
                        for (var t = 0; t < 256; ++t) {
                            var n = t,
                                i = t,
                                r = 7;
                            for (n >>>= 1; n; n >>>= 1) i <<= 1, i |= 1 & n, --r;
                            e[t] = i << r & 255
                        }
                    }(r), n.reverse = function(e) {
                        return r[255 & e] << 24 | r[e >>> 8 & 255] << 16 | r[e >>> 16 & 255] << 8 | r[e >>> 24 & 255]
                    }, n.interleave2 = function(e, t) {
                        return e &= 65535, e = 16711935 & (e | e << 8), e = 252645135 & (e | e << 4), e = 858993459 & (e | e << 2), e = 1431655765 & (e | e << 1), t &= 65535, t = 16711935 & (t | t << 8), t = 252645135 & (t | t << 4), t = 858993459 & (t | t << 2), t = 1431655765 & (t | t << 1), e | t << 1
                    }, n.deinterleave2 = function(e, t) {
                        return e = e >>> t & 1431655765, e = 858993459 & (e | e >>> 1), e = 252645135 & (e | e >>> 2), e = 16711935 & (e | e >>> 4), (e = 65535 & (e | e >>> 16)) << 16 >> 16
                    }, n.interleave3 = function(e, t, n) {
                        return e &= 1023, e = 4278190335 & (e | e << 16), e = 251719695 & (e | e << 8), e = 3272356035 & (e | e << 4), e = 1227133513 & (e | e << 2), t &= 1023, t = 4278190335 & (t | t << 16), t = 251719695 & (t | t << 8), t = 3272356035 & (t | t << 4), t = 1227133513 & (t | t << 2), e |= t << 1, n &= 1023, n = 4278190335 & (n | n << 16), n = 251719695 & (n | n << 8), n = 3272356035 & (n | n << 4), n = 1227133513 & (n | n << 2), e | n << 2
                    }, n.deinterleave3 = function(e, t) {
                        return e = e >>> t & 1227133513, e = 3272356035 & (e | e >>> 2), e = 251719695 & (e | e >>> 4), e = 4278190335 & (e | e >>> 8), (e = 1023 & (e | e >>> 16)) << 22 >> 22
                    }, n.nextCombination = function(e) {
                        var t = e | e - 1;
                        return t + 1 | (~t & -~t) - 1 >>> i(e) + 1
                    }
                }, {}],
                2: [function(e, t, n) {
                    "use strict";

                    function i(e, t, n) {
                        n = n || 2;
                        var i = t && t.length,
                            o = i ? t[0] * n : e.length,
                            s = r(e, 0, o, n, !0),
                            u = [];
                        if (!s) return u;
                        var l, c, p, d, f, m, _;
                        if (i && (s = h(e, t, s, n)), e.length > 80 * n) {
                            l = p = e[0], c = d = e[1];
                            for (var g = n; g < o; g += n) f = e[g], m = e[g + 1], f < l && (l = f), m < c && (c = m), f > p && (p = f), m > d && (d = m);
                            _ = Math.max(p - l, d - c), _ = 0 !== _ ? 1 / _ : 0
                        }
                        return a(s, u, n, l, c, _), u
                    }

                    function r(e, t, n, i, r) {
                        var o, a;
                        if (r === A(e, t, n, i) > 0)
                            for (o = t; o < n; o += i) a = M(o, e[o], e[o + 1], a);
                        else
                            for (o = n - i; o >= t; o -= i) a = M(o, e[o], e[o + 1], a);
                        return a && T(a, a.next) && (O(a), a = a.next), a
                    }

                    function o(e, t) {
                        if (!e) return e;
                        t || (t = e);
                        var n, i = e;
                        do {
                            if (n = !1, i.steiner || !T(i, i.next) && 0 !== x(i.prev, i, i.next)) i = i.next;
                            else {
                                if (O(i), (i = t = i.prev) === i.next) break;
                                n = !0
                            }
                        } while (n || i !== t);
                        return t
                    }

                    function a(e, t, n, i, r, h, p) {
                        if (e) {
                            !p && h && m(e, i, r, h);
                            for (var d, f, _ = e; e.prev !== e.next;)
                                if (d = e.prev, f = e.next, h ? u(e, i, r, h) : s(e)) t.push(d.i / n), t.push(e.i / n), t.push(f.i / n), O(e), e = f.next, _ = f.next;
                                else if ((e = f) === _) {
                                p ? 1 === p ? (e = l(e, t, n), a(e, t, n, i, r, h, 2)) : 2 === p && c(e, t, n, i, r, h) : a(o(e), t, n, i, r, h, 1);
                                break
                            }
                        }
                    }

                    function s(e) {
                        var t = e.prev,
                            n = e,
                            i = e.next;
                        if (x(t, n, i) >= 0) return !1;
                        for (var r = e.next.next; r !== e.prev;) {
                            if (v(t.x, t.y, n.x, n.y, i.x, i.y, r.x, r.y) && x(r.prev, r, r.next) >= 0) return !1;
                            r = r.next
                        }
                        return !0
                    }

                    function u(e, t, n, i) {
                        var r = e.prev,
                            o = e,
                            a = e.next;
                        if (x(r, o, a) >= 0) return !1;
                        for (var s = r.x < o.x ? r.x < a.x ? r.x : a.x : o.x < a.x ? o.x : a.x, u = r.y < o.y ? r.y < a.y ? r.y : a.y : o.y < a.y ? o.y : a.y, l = r.x > o.x ? r.x > a.x ? r.x : a.x : o.x > a.x ? o.x : a.x, c = r.y > o.y ? r.y > a.y ? r.y : a.y : o.y > a.y ? o.y : a.y, h = g(s, u, t, n, i), p = g(l, c, t, n, i), d = e.nextZ; d && d.z <= p;) {
                            if (d !== e.prev && d !== e.next && v(r.x, r.y, o.x, o.y, a.x, a.y, d.x, d.y) && x(d.prev, d, d.next) >= 0) return !1;
                            d = d.nextZ
                        }
                        for (d = e.prevZ; d && d.z >= h;) {
                            if (d !== e.prev && d !== e.next && v(r.x, r.y, o.x, o.y, a.x, a.y, d.x, d.y) && x(d.prev, d, d.next) >= 0) return !1;
                            d = d.prevZ
                        }
                        return !0
                    }

                    function l(e, t, n) {
                        var i = e;
                        do {
                            var r = i.prev,
                                o = i.next.next;
                            !T(r, o) && w(r, i, i.next, o) && P(r, o) && P(o, r) && (t.push(r.i / n), t.push(i.i / n), t.push(o.i / n), O(i), O(i.next), i = e = o), i = i.next
                        } while (i !== e);
                        return i
                    }

                    function c(e, t, n, i, r, s) {
                        var u = e;
                        do {
                            for (var l = u.next.next; l !== u.prev;) {
                                if (u.i !== l.i && b(u, l)) {
                                    var c = E(u, l);
                                    return u = o(u, u.next), c = o(c, c.next), a(u, t, n, i, r, s), void a(c, t, n, i, r, s)
                                }
                                l = l.next
                            }
                            u = u.next
                        } while (u !== e)
                    }

                    function h(e, t, n, i) {
                        var a, s, u, l, c, h = [];
                        for (a = 0, s = t.length; a < s; a++) u = t[a] * i, l = a < s - 1 ? t[a + 1] * i : e.length, c = r(e, u, l, i, !1), c === c.next && (c.steiner = !0), h.push(y(c));
                        for (h.sort(p), a = 0; a < h.length; a++) d(h[a], n), n = o(n, n.next);
                        return n
                    }

                    function p(e, t) {
                        return e.x - t.x
                    }

                    function d(e, t) {
                        if (t = f(e, t)) {
                            var n = E(t, e);
                            o(n, n.next)
                        }
                    }

                    function f(e, t) {
                        var n, i = t,
                            r = e.x,
                            o = e.y,
                            a = -1 / 0;
                        do {
                            if (o <= i.y && o >= i.next.y && i.next.y !== i.y) {
                                var s = i.x + (o - i.y) * (i.next.x - i.x) / (i.next.y - i.y);
                                if (s <= r && s > a) {
                                    if (a = s, s === r) {
                                        if (o === i.y) return i;
                                        if (o === i.next.y) return i.next
                                    }
                                    n = i.x < i.next.x ? i : i.next
                                }
                            }
                            i = i.next
                        } while (i !== t);
                        if (!n) return null;
                        if (r === a) return n.prev;
                        var u, l = n,
                            c = n.x,
                            h = n.y,
                            p = 1 / 0;
                        for (i = n.next; i !== l;) r >= i.x && i.x >= c && r !== i.x && v(o < h ? r : a, o, c, h, o < h ? a : r, o, i.x, i.y) && ((u = Math.abs(o - i.y) / (r - i.x)) < p || u === p && i.x > n.x) && P(i, e) && (n = i, p = u), i = i.next;
                        return n
                    }

                    function m(e, t, n, i) {
                        var r = e;
                        do {
                            null === r.z && (r.z = g(r.x, r.y, t, n, i)), r.prevZ = r.prev, r.nextZ = r.next, r = r.next
                        } while (r !== e);
                        r.prevZ.nextZ = null, r.prevZ = null, _(r)
                    }

                    function _(e) {
                        var t, n, i, r, o, a, s, u, l = 1;
                        do {
                            for (n = e, e = null, o = null, a = 0; n;) {
                                for (a++, i = n, s = 0, t = 0; t < l && (s++, i = i.nextZ); t++);
                                for (u = l; s > 0 || u > 0 && i;) 0 !== s && (0 === u || !i || n.z <= i.z) ? (r = n, n = n.nextZ, s--) : (r = i, i = i.nextZ, u--), o ? o.nextZ = r : e = r, r.prevZ = o, o = r;
                                n = i
                            }
                            o.nextZ = null, l *= 2
                        } while (a > 1);
                        return e
                    }

                    function g(e, t, n, i, r) {
                        return e = 32767 * (e - n) * r, t = 32767 * (t - i) * r, e = 16711935 & (e | e << 8), e = 252645135 & (e | e << 4), e = 858993459 & (e | e << 2), e = 1431655765 & (e | e << 1), t = 16711935 & (t | t << 8), t = 252645135 & (t | t << 4), t = 858993459 & (t | t << 2), t = 1431655765 & (t | t << 1), e | t << 1
                    }

                    function y(e) {
                        var t = e,
                            n = e;
                        do {
                            t.x < n.x && (n = t), t = t.next
                        } while (t !== e);
                        return n
                    }

                    function v(e, t, n, i, r, o, a, s) {
                        return (r - a) * (t - s) - (e - a) * (o - s) >= 0 && (e - a) * (i - s) - (n - a) * (t - s) >= 0 && (n - a) * (o - s) - (r - a) * (i - s) >= 0
                    }

                    function b(e, t) {
                        return e.next.i !== t.i && e.prev.i !== t.i && !S(e, t) && P(e, t) && P(t, e) && C(e, t)
                    }

                    function x(e, t, n) {
                        return (t.y - e.y) * (n.x - t.x) - (t.x - e.x) * (n.y - t.y)
                    }

                    function T(e, t) {
                        return e.x === t.x && e.y === t.y
                    }

                    function w(e, t, n, i) {
                        return !!(T(e, t) && T(n, i) || T(e, i) && T(n, t)) || x(e, t, n) > 0 != x(e, t, i) > 0 && x(n, i, e) > 0 != x(n, i, t) > 0
                    }

                    function S(e, t) {
                        var n = e;
                        do {
                            if (n.i !== e.i && n.next.i !== e.i && n.i !== t.i && n.next.i !== t.i && w(n, n.next, e, t)) return !0;
                            n = n.next
                        } while (n !== e);
                        return !1
                    }

                    function P(e, t) {
                        return x(e.prev, e, e.next) < 0 ? x(e, t, e.next) >= 0 && x(e, e.prev, t) >= 0 : x(e, t, e.prev) < 0 || x(e, e.next, t) < 0
                    }

                    function C(e, t) {
                        var n = e,
                            i = !1,
                            r = (e.x + t.x) / 2,
                            o = (e.y + t.y) / 2;
                        do {
                            n.y > o != n.next.y > o && n.next.y !== n.y && r < (n.next.x - n.x) * (o - n.y) / (n.next.y - n.y) + n.x && (i = !i), n = n.next
                        } while (n !== e);
                        return i
                    }

                    function E(e, t) {
                        var n = new I(e.i, e.x, e.y),
                            i = new I(t.i, t.x, t.y),
                            r = e.next,
                            o = t.prev;
                        return e.next = t, t.prev = e, n.next = r, r.prev = n, i.next = n, n.prev = i, o.next = i, i.prev = o, i
                    }

                    function M(e, t, n, i) {
                        var r = new I(e, t, n);
                        return i ? (r.next = i.next, r.prev = i, i.next.prev = r, i.next = r) : (r.prev = r, r.next = r), r
                    }

                    function O(e) {
                        e.next.prev = e.prev, e.prev.next = e.next, e.prevZ && (e.prevZ.nextZ = e.nextZ), e.nextZ && (e.nextZ.prevZ = e.prevZ)
                    }

                    function I(e, t, n) {
                        this.i = e, this.x = t, this.y = n, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = !1
                    }

                    function A(e, t, n, i) {
                        for (var r = 0, o = t, a = n - i; o < n; o += i) r += (e[a] - e[o]) * (e[o + 1] + e[a + 1]), a = o;
                        return r
                    }
                    t.exports = i, t.exports.default = i, i.deviation = function(e, t, n, i) {
                        var r = t && t.length,
                            o = r ? t[0] * n : e.length,
                            a = Math.abs(A(e, 0, o, n));
                        if (r)
                            for (var s = 0, u = t.length; s < u; s++) {
                                var l = t[s] * n,
                                    c = s < u - 1 ? t[s + 1] * n : e.length;
                                a -= Math.abs(A(e, l, c, n))
                            }
                        var h = 0;
                        for (s = 0; s < i.length; s += 3) {
                            var p = i[s] * n,
                                d = i[s + 1] * n,
                                f = i[s + 2] * n;
                            h += Math.abs((e[p] - e[f]) * (e[d + 1] - e[p + 1]) - (e[p] - e[d]) * (e[f + 1] - e[p + 1]))
                        }
                        return 0 === a && 0 === h ? 0 : Math.abs((h - a) / a)
                    }, i.flatten = function(e) {
                        for (var t = e[0][0].length, n = {
                                vertices: [],
                                holes: [],
                                dimensions: t
                            }, i = 0, r = 0; r < e.length; r++) {
                            for (var o = 0; o < e[r].length; o++)
                                for (var a = 0; a < t; a++) n.vertices.push(e[r][o][a]);
                            r > 0 && (i += e[r - 1].length, n.holes.push(i))
                        }
                        return n
                    }
                }, {}],
                3: [function(e, t, n) {
                    "use strict";

                    function i() {}

                    function r(e, t, n) {
                        this.fn = e, this.context = t, this.once = n || !1
                    }

                    function o() {
                        this._events = new i, this._eventsCount = 0
                    }
                    var a = Object.prototype.hasOwnProperty,
                        s = "~";
                    Object.create && (i.prototype = Object.create(null), (new i).__proto__ || (s = !1)), o.prototype.eventNames = function() {
                        var e, t, n = [];
                        if (0 === this._eventsCount) return n;
                        for (t in e = this._events) a.call(e, t) && n.push(s ? t.slice(1) : t);
                        return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(e)) : n
                    }, o.prototype.listeners = function(e, t) {
                        var n = s ? s + e : e,
                            i = this._events[n];
                        if (t) return !!i;
                        if (!i) return [];
                        if (i.fn) return [i.fn];
                        for (var r = 0, o = i.length, a = new Array(o); r < o; r++) a[r] = i[r].fn;
                        return a
                    }, o.prototype.emit = function(e, t, n, i, r, o) {
                        var a = s ? s + e : e;
                        if (!this._events[a]) return !1;
                        var u, l, c = this._events[a],
                            h = arguments.length;
                        if (c.fn) {
                            switch (c.once && this.removeListener(e, c.fn, void 0, !0), h) {
                                case 1:
                                    return c.fn.call(c.context), !0;
                                case 2:
                                    return c.fn.call(c.context, t), !0;
                                case 3:
                                    return c.fn.call(c.context, t, n), !0;
                                case 4:
                                    return c.fn.call(c.context, t, n, i), !0;
                                case 5:
                                    return c.fn.call(c.context, t, n, i, r), !0;
                                case 6:
                                    return c.fn.call(c.context, t, n, i, r, o), !0
                            }
                            for (l = 1, u = new Array(h - 1); l < h; l++) u[l - 1] = arguments[l];
                            c.fn.apply(c.context, u)
                        } else {
                            var p, d = c.length;
                            for (l = 0; l < d; l++) switch (c[l].once && this.removeListener(e, c[l].fn, void 0, !0), h) {
                                case 1:
                                    c[l].fn.call(c[l].context);
                                    break;
                                case 2:
                                    c[l].fn.call(c[l].context, t);
                                    break;
                                case 3:
                                    c[l].fn.call(c[l].context, t, n);
                                    break;
                                case 4:
                                    c[l].fn.call(c[l].context, t, n, i);
                                    break;
                                default:
                                    if (!u)
                                        for (p = 1, u = new Array(h - 1); p < h; p++) u[p - 1] = arguments[p];
                                    c[l].fn.apply(c[l].context, u)
                            }
                        }
                        return !0
                    }, o.prototype.on = function(e, t, n) {
                        var i = new r(t, n || this),
                            o = s ? s + e : e;
                        return this._events[o] ? this._events[o].fn ? this._events[o] = [this._events[o], i] : this._events[o].push(i) : (this._events[o] = i, this._eventsCount++), this
                    }, o.prototype.once = function(e, t, n) {
                        var i = new r(t, n || this, !0),
                            o = s ? s + e : e;
                        return this._events[o] ? this._events[o].fn ? this._events[o] = [this._events[o], i] : this._events[o].push(i) : (this._events[o] = i, this._eventsCount++), this
                    }, o.prototype.removeListener = function(e, t, n, r) {
                        var o = s ? s + e : e;
                        if (!this._events[o]) return this;
                        if (!t) return 0 == --this._eventsCount ? this._events = new i : delete this._events[o], this;
                        var a = this._events[o];
                        if (a.fn) a.fn !== t || r && !a.once || n && a.context !== n || (0 == --this._eventsCount ? this._events = new i : delete this._events[o]);
                        else {
                            for (var u = 0, l = [], c = a.length; u < c; u++)(a[u].fn !== t || r && !a[u].once || n && a[u].context !== n) && l.push(a[u]);
                            l.length ? this._events[o] = 1 === l.length ? l[0] : l : 0 == --this._eventsCount ? this._events = new i : delete this._events[o]
                        }
                        return this
                    }, o.prototype.removeAllListeners = function(e) {
                        var t;
                        return e ? (t = s ? s + e : e, this._events[t] && (0 == --this._eventsCount ? this._events = new i : delete this._events[t])) : (this._events = new i, this._eventsCount = 0), this
                    }, o.prototype.off = o.prototype.removeListener, o.prototype.addListener = o.prototype.on, o.prototype.setMaxListeners = function() {
                        return this
                    }, o.prefixed = s, o.EventEmitter = o, void 0 !== t && (t.exports = o)
                }, {}],
                4: [function(t, n, i) {
                    ! function(t) {
                        var i = /iPhone/i,
                            r = /iPod/i,
                            o = /iPad/i,
                            a = /(?=.*\bAndroid\b)(?=.*\bMobile\b)/i,
                            s = /Android/i,
                            u = /(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i,
                            l = /(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i,
                            c = /Windows Phone/i,
                            h = /(?=.*\bWindows\b)(?=.*\bARM\b)/i,
                            p = /BlackBerry/i,
                            d = /BB10/i,
                            f = /Opera Mini/i,
                            m = /(CriOS|Chrome)(?=.*\bMobile\b)/i,
                            _ = /(?=.*\bFirefox\b)(?=.*\bMobile\b)/i,
                            g = new RegExp("(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)", "i"),
                            y = function(e, t) {
                                return e.test(t)
                            },
                            v = function(e) {
                                var t = e || navigator.userAgent,
                                    n = t.split("[FBAN");
                                if (void 0 !== n[1] && (t = n[0]), n = t.split("Twitter"), void 0 !== n[1] && (t = n[0]), this.apple = {
                                        phone: y(i, t),
                                        ipod: y(r, t),
                                        tablet: !y(i, t) && y(o, t),
                                        device: y(i, t) || y(r, t) || y(o, t)
                                    }, this.amazon = {
                                        phone: y(u, t),
                                        tablet: !y(u, t) && y(l, t),
                                        device: y(u, t) || y(l, t)
                                    }, this.android = {
                                        phone: y(u, t) || y(a, t),
                                        tablet: !y(u, t) && !y(a, t) && (y(l, t) || y(s, t)),
                                        device: y(u, t) || y(l, t) || y(a, t) || y(s, t)
                                    }, this.windows = {
                                        phone: y(c, t),
                                        tablet: y(h, t),
                                        device: y(c, t) || y(h, t)
                                    }, this.other = {
                                        blackberry: y(p, t),
                                        blackberry10: y(d, t),
                                        opera: y(f, t),
                                        firefox: y(_, t),
                                        chrome: y(m, t),
                                        device: y(p, t) || y(d, t) || y(f, t) || y(_, t) || y(m, t)
                                    }, this.seven_inch = y(g, t), this.any = this.apple.device || this.android.device || this.windows.device || this.other.device || this.seven_inch, this.phone = this.apple.phone || this.android.phone || this.windows.phone, this.tablet = this.apple.tablet || this.android.tablet || this.windows.tablet, "undefined" == typeof window) return this
                            },
                            b = function() {
                                var e = new v;
                                return e.Class = v, e
                            };
                        void 0 !== n && n.exports && "undefined" == typeof window ? n.exports = v : void 0 !== n && n.exports && "undefined" != typeof window ? n.exports = b() : "function" == typeof e && e.amd ? e("isMobile", [], t.isMobile = b()) : t.isMobile = b()
                    }(this)
                }, {}],
                5: [function(e, t, n) {
                    function i(e) {
                        if (null === e || void 0 === e) throw new TypeError("Object.assign cannot be called with null or undefined");
                        return Object(e)
                    }
                    var r = Object.getOwnPropertySymbols,
                        o = Object.prototype.hasOwnProperty,
                        a = Object.prototype.propertyIsEnumerable;
                    t.exports = function() {
                        try {
                            if (!Object.assign) return !1;
                            var e = new String("abc");
                            if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1;
                            for (var t = {}, n = 0; n < 10; n++) t["_" + String.fromCharCode(n)] = n;
                            if ("0123456789" !== Object.getOwnPropertyNames(t).map(function(e) {
                                    return t[e]
                                }).join("")) return !1;
                            var i = {};
                            return "abcdefghijklmnopqrst".split("").forEach(function(e) {
                                i[e] = e
                            }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, i)).join("")
                        } catch (e) {
                            return !1
                        }
                    }() ? Object.assign : function(e, t) {
                        for (var n, s, u = i(e), l = 1; l < arguments.length; l++) {
                            n = Object(arguments[l]);
                            for (var c in n) o.call(n, c) && (u[c] = n[c]);
                            if (r) {
                                s = r(n);
                                for (var h = 0; h < s.length; h++) a.call(n, s[h]) && (u[s[h]] = n[s[h]])
                            }
                        }
                        return u
                    }
                }, {}],
                6: [function(e, t, n) {
                    var i = new ArrayBuffer(0),
                        r = function(e, t, n, r) {
                            this.gl = e, this.buffer = e.createBuffer(), this.type = t || e.ARRAY_BUFFER, this.drawType = r || e.STATIC_DRAW, this.data = i, n && this.upload(n), this._updateID = 0
                        };
                    r.prototype.upload = function(e, t, n) {
                        n || this.bind();
                        var i = this.gl;
                        e = e || this.data, t = t || 0, this.data.byteLength >= e.byteLength ? i.bufferSubData(this.type, t, e) : i.bufferData(this.type, e, this.drawType), this.data = e
                    }, r.prototype.bind = function() {
                        this.gl.bindBuffer(this.type, this.buffer)
                    }, r.createVertexBuffer = function(e, t, n) {
                        return new r(e, e.ARRAY_BUFFER, t, n)
                    }, r.createIndexBuffer = function(e, t, n) {
                        return new r(e, e.ELEMENT_ARRAY_BUFFER, t, n)
                    }, r.create = function(e, t, n, i) {
                        return new r(e, t, n, i)
                    }, r.prototype.destroy = function() {
                        this.gl.deleteBuffer(this.buffer)
                    }, t.exports = r
                }, {}],
                7: [function(e, t, n) {
                    var i = e("./GLTexture"),
                        r = function(e, t, n) {
                            this.gl = e, this.framebuffer = e.createFramebuffer(), this.stencil = null, this.texture = null, this.width = t || 100, this.height = n || 100
                        };
                    r.prototype.enableTexture = function(e) {
                        var t = this.gl;
                        this.texture = e || new i(t), this.texture.bind(), this.bind(), t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0, t.TEXTURE_2D, this.texture.texture, 0)
                    }, r.prototype.enableStencil = function() {
                        if (!this.stencil) {
                            var e = this.gl;
                            this.stencil = e.createRenderbuffer(), e.bindRenderbuffer(e.RENDERBUFFER, this.stencil), e.framebufferRenderbuffer(e.FRAMEBUFFER, e.DEPTH_STENCIL_ATTACHMENT, e.RENDERBUFFER, this.stencil), e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_STENCIL, this.width, this.height)
                        }
                    }, r.prototype.clear = function(e, t, n, i) {
                        this.bind();
                        var r = this.gl;
                        r.clearColor(e, t, n, i), r.clear(r.COLOR_BUFFER_BIT | r.DEPTH_BUFFER_BIT)
                    }, r.prototype.bind = function() {
                        var e = this.gl;
                        e.bindFramebuffer(e.FRAMEBUFFER, this.framebuffer)
                    }, r.prototype.unbind = function() {
                        var e = this.gl;
                        e.bindFramebuffer(e.FRAMEBUFFER, null)
                    }, r.prototype.resize = function(e, t) {
                        var n = this.gl;
                        this.width = e, this.height = t, this.texture && this.texture.uploadData(null, e, t), this.stencil && (n.bindRenderbuffer(n.RENDERBUFFER, this.stencil), n.renderbufferStorage(n.RENDERBUFFER, n.DEPTH_STENCIL, e, t))
                    }, r.prototype.destroy = function() {
                        var e = this.gl;
                        this.texture && this.texture.destroy(), e.deleteFramebuffer(this.framebuffer), this.gl = null, this.stencil = null, this.texture = null
                    }, r.createRGBA = function(e, t, n, o) {
                        var a = i.fromData(e, null, t, n);
                        a.enableNearestScaling(), a.enableWrapClamp();
                        var s = new r(e, t, n);
                        return s.enableTexture(a), s.unbind(), s
                    }, r.createFloat32 = function(e, t, n, o) {
                        var a = new i.fromData(e, o, t, n);
                        a.enableNearestScaling(), a.enableWrapClamp();
                        var s = new r(e, t, n);
                        return s.enableTexture(a), s.unbind(), s
                    }, t.exports = r
                }, {
                    "./GLTexture": 9
                }],
                8: [function(e, t, n) {
                    var i = e("./shader/compileProgram"),
                        r = e("./shader/extractAttributes"),
                        o = e("./shader/extractUniforms"),
                        a = e("./shader/setPrecision"),
                        s = e("./shader/generateUniformAccessObject"),
                        u = function(e, t, n, u, l) {
                            this.gl = e, u && (t = a(t, u), n = a(n, u)), this.program = i(e, t, n, l), this.attributes = r(e, this.program), this.uniformData = o(e, this.program), this.uniforms = s(e, this.uniformData)
                        };
                    u.prototype.bind = function() {
                        return this.gl.useProgram(this.program), this
                    }, u.prototype.destroy = function() {
                        this.attributes = null, this.uniformData = null, this.uniforms = null, this.gl.deleteProgram(this.program)
                    }, t.exports = u
                }, {
                    "./shader/compileProgram": 14,
                    "./shader/extractAttributes": 16,
                    "./shader/extractUniforms": 17,
                    "./shader/generateUniformAccessObject": 18,
                    "./shader/setPrecision": 22
                }],
                9: [function(e, t, n) {
                    var i = function(e, t, n, i, r) {
                        this.gl = e, this.texture = e.createTexture(), this.mipmap = !1, this.premultiplyAlpha = !1, this.width = t || -1, this.height = n || -1, this.format = i || e.RGBA, this.type = r || e.UNSIGNED_BYTE
                    };
                    i.prototype.upload = function(e) {
                        this.bind();
                        var t = this.gl;
                        t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);
                        var n = e.videoWidth || e.width,
                            i = e.videoHeight || e.height;
                        i !== this.height || n !== this.width ? t.texImage2D(t.TEXTURE_2D, 0, this.format, this.format, this.type, e) : t.texSubImage2D(t.TEXTURE_2D, 0, 0, 0, this.format, this.type, e), this.width = n, this.height = i
                    };
                    var r = !1;
                    i.prototype.uploadData = function(e, t, n) {
                        this.bind();
                        var i = this.gl;
                        if (e instanceof Float32Array) {
                            if (!r) {
                                if (!i.getExtension("OES_texture_float")) throw new Error("floating point textures not available");
                                r = !0
                            }
                            this.type = i.FLOAT
                        } else this.type = this.type || i.UNSIGNED_BYTE;
                        i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha), t !== this.width || n !== this.height ? i.texImage2D(i.TEXTURE_2D, 0, this.format, t, n, 0, this.format, this.type, e || null) : i.texSubImage2D(i.TEXTURE_2D, 0, 0, 0, t, n, this.format, this.type, e || null), this.width = t, this.height = n
                    }, i.prototype.bind = function(e) {
                        var t = this.gl;
                        void 0 !== e && t.activeTexture(t.TEXTURE0 + e), t.bindTexture(t.TEXTURE_2D, this.texture)
                    }, i.prototype.unbind = function() {
                        var e = this.gl;
                        e.bindTexture(e.TEXTURE_2D, null)
                    }, i.prototype.minFilter = function(e) {
                        var t = this.gl;
                        this.bind(), this.mipmap ? t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, e ? t.LINEAR_MIPMAP_LINEAR : t.NEAREST_MIPMAP_NEAREST) : t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, e ? t.LINEAR : t.NEAREST)
                    }, i.prototype.magFilter = function(e) {
                        var t = this.gl;
                        this.bind(), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, e ? t.LINEAR : t.NEAREST)
                    }, i.prototype.enableMipmap = function() {
                        var e = this.gl;
                        this.bind(), this.mipmap = !0, e.generateMipmap(e.TEXTURE_2D)
                    }, i.prototype.enableLinearScaling = function() {
                        this.minFilter(!0), this.magFilter(!0)
                    }, i.prototype.enableNearestScaling = function() {
                        this.minFilter(!1), this.magFilter(!1)
                    }, i.prototype.enableWrapClamp = function() {
                        var e = this.gl;
                        this.bind(), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE)
                    }, i.prototype.enableWrapRepeat = function() {
                        var e = this.gl;
                        this.bind(), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.REPEAT), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.REPEAT)
                    }, i.prototype.enableWrapMirrorRepeat = function() {
                        var e = this.gl;
                        this.bind(), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.MIRRORED_REPEAT), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.MIRRORED_REPEAT)
                    }, i.prototype.destroy = function() {
                        this.gl.deleteTexture(this.texture)
                    }, i.fromSource = function(e, t, n) {
                        var r = new i(e);
                        return r.premultiplyAlpha = n || !1, r.upload(t), r
                    }, i.fromData = function(e, t, n, r) {
                        var o = new i(e);
                        return o.uploadData(t, n, r), o
                    }, t.exports = i
                }, {}],
                10: [function(e, t, n) {
                    function i(e, t) {
                        if (this.nativeVaoExtension = null, i.FORCE_NATIVE || (this.nativeVaoExtension = e.getExtension("OES_vertex_array_object") || e.getExtension("MOZ_OES_vertex_array_object") || e.getExtension("WEBKIT_OES_vertex_array_object")), this.nativeState = t, this.nativeVaoExtension) {
                            this.nativeVao = this.nativeVaoExtension.createVertexArrayOES();
                            var n = e.getParameter(e.MAX_VERTEX_ATTRIBS);
                            this.nativeState = {
                                tempAttribState: new Array(n),
                                attribState: new Array(n)
                            }
                        }
                        this.gl = e, this.attributes = [], this.indexBuffer = null, this.dirty = !1
                    }
                    var r = e("./setVertexAttribArrays");
                    i.prototype.constructor = i, t.exports = i, i.FORCE_NATIVE = !1, i.prototype.bind = function() {
                        if (this.nativeVao) {
                            if (this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao), this.dirty) return this.dirty = !1, this.activate(), this;
                            this.indexBuffer && this.indexBuffer.bind()
                        } else this.activate();
                        return this
                    }, i.prototype.unbind = function() {
                        return this.nativeVao && this.nativeVaoExtension.bindVertexArrayOES(null), this
                    }, i.prototype.activate = function() {
                        for (var e = this.gl, t = null, n = 0; n < this.attributes.length; n++) {
                            var i = this.attributes[n];
                            t !== i.buffer && (i.buffer.bind(), t = i.buffer), e.vertexAttribPointer(i.attribute.location, i.attribute.size, i.type || e.FLOAT, i.normalized || !1, i.stride || 0, i.start || 0)
                        }
                        return r(e, this.attributes, this.nativeState), this.indexBuffer && this.indexBuffer.bind(), this
                    }, i.prototype.addAttribute = function(e, t, n, i, r, o) {
                        return this.attributes.push({
                            buffer: e,
                            attribute: t,
                            location: t.location,
                            type: n || this.gl.FLOAT,
                            normalized: i || !1,
                            stride: r || 0,
                            start: o || 0
                        }), this.dirty = !0, this
                    }, i.prototype.addIndex = function(e) {
                        return this.indexBuffer = e, this.dirty = !0, this
                    }, i.prototype.clear = function() {
                        return this.nativeVao && this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao), this.attributes.length = 0, this.indexBuffer = null, this
                    }, i.prototype.draw = function(e, t, n) {
                        var i = this.gl;
                        return this.indexBuffer ? i.drawElements(e, t || this.indexBuffer.data.length, i.UNSIGNED_SHORT, 2 * (n || 0)) : i.drawArrays(e, n, t || this.getSize()), this
                    }, i.prototype.destroy = function() {
                        this.gl = null, this.indexBuffer = null, this.attributes = null, this.nativeState = null, this.nativeVao && this.nativeVaoExtension.deleteVertexArrayOES(this.nativeVao), this.nativeVaoExtension = null, this.nativeVao = null
                    }, i.prototype.getSize = function() {
                        var e = this.attributes[0];
                        return e.buffer.data.length / (e.stride / 4 || e.attribute.size)
                    }
                }, {
                    "./setVertexAttribArrays": 13
                }],
                11: [function(e, t, n) {
                    var i = function(e, t) {
                        var n = e.getContext("webgl", t) || e.getContext("experimental-webgl", t);
                        if (!n) throw new Error("This browser does not support webGL. Try using the canvas renderer");
                        return n
                    };
                    t.exports = i
                }, {}],
                12: [function(e, t, n) {
                    var i = {
                        createContext: e("./createContext"),
                        setVertexAttribArrays: e("./setVertexAttribArrays"),
                        GLBuffer: e("./GLBuffer"),
                        GLFramebuffer: e("./GLFramebuffer"),
                        GLShader: e("./GLShader"),
                        GLTexture: e("./GLTexture"),
                        VertexArrayObject: e("./VertexArrayObject"),
                        shader: e("./shader")
                    };
                    void 0 !== t && t.exports && (t.exports = i), "undefined" != typeof window && (window.PIXI = window.PIXI || {}, window.PIXI.glCore = i)
                }, {
                    "./GLBuffer": 6,
                    "./GLFramebuffer": 7,
                    "./GLShader": 8,
                    "./GLTexture": 9,
                    "./VertexArrayObject": 10,
                    "./createContext": 11,
                    "./setVertexAttribArrays": 13,
                    "./shader": 19
                }],
                13: [function(e, t, n) {
                    var i = function(e, t, n) {
                        var i;
                        if (n) {
                            var r = n.tempAttribState,
                                o = n.attribState;
                            for (i = 0; i < r.length; i++) r[i] = !1;
                            for (i = 0; i < t.length; i++) r[t[i].attribute.location] = !0;
                            for (i = 0; i < o.length; i++) o[i] !== r[i] && (o[i] = r[i], n.attribState[i] ? e.enableVertexAttribArray(i) : e.disableVertexAttribArray(i))
                        } else
                            for (i = 0; i < t.length; i++) {
                                var a = t[i];
                                e.enableVertexAttribArray(a.attribute.location)
                            }
                    };
                    t.exports = i
                }, {}],
                14: [function(e, t, n) {
                    var i = function(e, t, n, i) {
                            var o = r(e, e.VERTEX_SHADER, t),
                                a = r(e, e.FRAGMENT_SHADER, n),
                                s = e.createProgram();
                            if (e.attachShader(s, o), e.attachShader(s, a), i)
                                for (var u in i) e.bindAttribLocation(s, i[u], u);
                            return e.linkProgram(s), e.getProgramParameter(s, e.LINK_STATUS) || (e.getProgramInfoLog(s), e.deleteProgram(s), s = null), e.deleteShader(o), e.deleteShader(a), s
                        },
                        r = function(e, t, n) {
                            var i = e.createShader(t);
                            return e.shaderSource(i, n), e.compileShader(i), e.getShaderParameter(i, e.COMPILE_STATUS) ? i : null
                        };
                    t.exports = i
                }, {}],
                15: [function(e, t, n) {
                    var i = function(e, t) {
                            switch (e) {
                                case "float":
                                    return 0;
                                case "vec2":
                                    return new Float32Array(2 * t);
                                case "vec3":
                                    return new Float32Array(3 * t);
                                case "vec4":
                                    return new Float32Array(4 * t);
                                case "int":
                                case "sampler2D":
                                    return 0;
                                case "ivec2":
                                    return new Int32Array(2 * t);
                                case "ivec3":
                                    return new Int32Array(3 * t);
                                case "ivec4":
                                    return new Int32Array(4 * t);
                                case "bool":
                                    return !1;
                                case "bvec2":
                                    return r(2 * t);
                                case "bvec3":
                                    return r(3 * t);
                                case "bvec4":
                                    return r(4 * t);
                                case "mat2":
                                    return new Float32Array([1, 0, 0, 1]);
                                case "mat3":
                                    return new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
                                case "mat4":
                                    return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])
                            }
                        },
                        r = function(e) {
                            for (var t = new Array(e), n = 0; n < t.length; n++) t[n] = !1;
                            return t
                        };
                    t.exports = i
                }, {}],
                16: [function(e, t, n) {
                    var i = e("./mapType"),
                        r = e("./mapSize"),
                        o = function(e, t) {
                            for (var n = {}, o = e.getProgramParameter(t, e.ACTIVE_ATTRIBUTES), s = 0; s < o; s++) {
                                var u = e.getActiveAttrib(t, s),
                                    l = i(e, u.type);
                                n[u.name] = {
                                    type: l,
                                    size: r(l),
                                    location: e.getAttribLocation(t, u.name),
                                    pointer: a
                                }
                            }
                            return n
                        },
                        a = function(e, t, n, i) {
                            gl.vertexAttribPointer(this.location, this.size, e || gl.FLOAT, t || !1, n || 0, i || 0)
                        };
                    t.exports = o
                }, {
                    "./mapSize": 20,
                    "./mapType": 21
                }],
                17: [function(e, t, n) {
                    var i = e("./mapType"),
                        r = e("./defaultValue"),
                        o = function(e, t) {
                            for (var n = {}, o = e.getProgramParameter(t, e.ACTIVE_UNIFORMS), a = 0; a < o; a++) {
                                var s = e.getActiveUniform(t, a),
                                    u = s.name.replace(/\[.*?\]/, ""),
                                    l = i(e, s.type);
                                n[u] = {
                                    type: l,
                                    size: s.size,
                                    location: e.getUniformLocation(t, u),
                                    value: r(l, s.size)
                                }
                            }
                            return n
                        };
                    t.exports = o
                }, {
                    "./defaultValue": 15,
                    "./mapType": 21
                }],
                18: [function(e, t, n) {
                    function i(e, t) {
                        return function(n) {
                            this.data[e].value = n;
                            var i = this.data[e].location;
                            1 === t.size ? s[t.type](this.gl, i, n) : u[t.type](this.gl, i, n)
                        }
                    }

                    function r(e, t) {
                        for (var n = t, i = 0; i < e.length - 1; i++) {
                            var r = n[e[i]] || {
                                data: {}
                            };
                            n[e[i]] = r, n = r
                        }
                        return n
                    }
                    var o = function(e, t) {
                            var n = {
                                data: {}
                            };
                            n.gl = e;
                            for (var o = Object.keys(t), s = 0; s < o.length; s++) {
                                var u = o[s],
                                    l = u.split("."),
                                    c = l[l.length - 1],
                                    h = r(l, n),
                                    p = t[u];
                                h.data[c] = p, h.gl = e, Object.defineProperty(h, c, {
                                    get: a(c),
                                    set: i(c, p)
                                })
                            }
                            return n
                        },
                        a = function(e) {
                            return function() {
                                return this.data[e].value
                            }
                        },
                        s = {
                            float: function(e, t, n) {
                                e.uniform1f(t, n)
                            },
                            vec2: function(e, t, n) {
                                e.uniform2f(t, n[0], n[1])
                            },
                            vec3: function(e, t, n) {
                                e.uniform3f(t, n[0], n[1], n[2])
                            },
                            vec4: function(e, t, n) {
                                e.uniform4f(t, n[0], n[1], n[2], n[3])
                            },
                            int: function(e, t, n) {
                                e.uniform1i(t, n)
                            },
                            ivec2: function(e, t, n) {
                                e.uniform2i(t, n[0], n[1])
                            },
                            ivec3: function(e, t, n) {
                                e.uniform3i(t, n[0], n[1], n[2])
                            },
                            ivec4: function(e, t, n) {
                                e.uniform4i(t, n[0], n[1], n[2], n[3])
                            },
                            bool: function(e, t, n) {
                                e.uniform1i(t, n)
                            },
                            bvec2: function(e, t, n) {
                                e.uniform2i(t, n[0], n[1])
                            },
                            bvec3: function(e, t, n) {
                                e.uniform3i(t, n[0], n[1], n[2])
                            },
                            bvec4: function(e, t, n) {
                                e.uniform4i(t, n[0], n[1], n[2], n[3])
                            },
                            mat2: function(e, t, n) {
                                e.uniformMatrix2fv(t, !1, n)
                            },
                            mat3: function(e, t, n) {
                                e.uniformMatrix3fv(t, !1, n)
                            },
                            mat4: function(e, t, n) {
                                e.uniformMatrix4fv(t, !1, n)
                            },
                            sampler2D: function(e, t, n) {
                                e.uniform1i(t, n)
                            }
                        },
                        u = {
                            float: function(e, t, n) {
                                e.uniform1fv(t, n)
                            },
                            vec2: function(e, t, n) {
                                e.uniform2fv(t, n)
                            },
                            vec3: function(e, t, n) {
                                e.uniform3fv(t, n)
                            },
                            vec4: function(e, t, n) {
                                e.uniform4fv(t, n)
                            },
                            int: function(e, t, n) {
                                e.uniform1iv(t, n)
                            },
                            ivec2: function(e, t, n) {
                                e.uniform2iv(t, n)
                            },
                            ivec3: function(e, t, n) {
                                e.uniform3iv(t, n)
                            },
                            ivec4: function(e, t, n) {
                                e.uniform4iv(t, n)
                            },
                            bool: function(e, t, n) {
                                e.uniform1iv(t, n)
                            },
                            bvec2: function(e, t, n) {
                                e.uniform2iv(t, n)
                            },
                            bvec3: function(e, t, n) {
                                e.uniform3iv(t, n)
                            },
                            bvec4: function(e, t, n) {
                                e.uniform4iv(t, n)
                            },
                            sampler2D: function(e, t, n) {
                                e.uniform1iv(t, n)
                            }
                        };
                    t.exports = o
                }, {}],
                19: [function(e, t, n) {
                    t.exports = {
                        compileProgram: e("./compileProgram"),
                        defaultValue: e("./defaultValue"),
                        extractAttributes: e("./extractAttributes"),
                        extractUniforms: e("./extractUniforms"),
                        generateUniformAccessObject: e("./generateUniformAccessObject"),
                        setPrecision: e("./setPrecision"),
                        mapSize: e("./mapSize"),
                        mapType: e("./mapType")
                    }
                }, {
                    "./compileProgram": 14,
                    "./defaultValue": 15,
                    "./extractAttributes": 16,
                    "./extractUniforms": 17,
                    "./generateUniformAccessObject": 18,
                    "./mapSize": 20,
                    "./mapType": 21,
                    "./setPrecision": 22
                }],
                20: [function(e, t, n) {
                    var i = function(e) {
                            return r[e]
                        },
                        r = {
                            float: 1,
                            vec2: 2,
                            vec3: 3,
                            vec4: 4,
                            int: 1,
                            ivec2: 2,
                            ivec3: 3,
                            ivec4: 4,
                            bool: 1,
                            bvec2: 2,
                            bvec3: 3,
                            bvec4: 4,
                            mat2: 4,
                            mat3: 9,
                            mat4: 16,
                            sampler2D: 1
                        };
                    t.exports = i
                }, {}],
                21: [function(e, t, n) {
                    var i = function(e, t) {
                            if (!r) {
                                var n = Object.keys(o);
                                r = {};
                                for (var i = 0; i < n.length; ++i) {
                                    var a = n[i];
                                    r[e[a]] = o[a]
                                }
                            }
                            return r[t]
                        },
                        r = null,
                        o = {
                            FLOAT: "float",
                            FLOAT_VEC2: "vec2",
                            FLOAT_VEC3: "vec3",
                            FLOAT_VEC4: "vec4",
                            INT: "int",
                            INT_VEC2: "ivec2",
                            INT_VEC3: "ivec3",
                            INT_VEC4: "ivec4",
                            BOOL: "bool",
                            BOOL_VEC2: "bvec2",
                            BOOL_VEC3: "bvec3",
                            BOOL_VEC4: "bvec4",
                            FLOAT_MAT2: "mat2",
                            FLOAT_MAT3: "mat3",
                            FLOAT_MAT4: "mat4",
                            SAMPLER_2D: "sampler2D"
                        };
                    t.exports = i
                }, {}],
                22: [function(e, t, n) {
                    var i = function(e, t) {
                        return "precision" !== e.substring(0, 9) ? "precision " + t + " float;\n" + e : e
                    };
                    t.exports = i
                }, {}],
                23: [function(e, t, n) {
                    (function(e) {
                        function t(e, t) {
                            for (var n = 0, i = e.length - 1; i >= 0; i--) {
                                var r = e[i];
                                "." === r ? e.splice(i, 1) : ".." === r ? (e.splice(i, 1), n++) : n && (e.splice(i, 1), n--)
                            }
                            if (t)
                                for (; n--; n) e.unshift("..");
                            return e
                        }

                        function i(e, t) {
                            if (e.filter) return e.filter(t);
                            for (var n = [], i = 0; i < e.length; i++) t(e[i], i, e) && n.push(e[i]);
                            return n
                        }
                        var r = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,
                            o = function(e) {
                                return r.exec(e).slice(1)
                            };
                        n.resolve = function() {
                            for (var n = "", r = !1, o = arguments.length - 1; o >= -1 && !r; o--) {
                                var a = o >= 0 ? arguments[o] : e.cwd();
                                if ("string" != typeof a) throw new TypeError("Arguments to path.resolve must be strings");
                                a && (n = a + "/" + n, r = "/" === a.charAt(0))
                            }
                            return n = t(i(n.split("/"), function(e) {
                                return !!e
                            }), !r).join("/"), (r ? "/" : "") + n || "."
                        }, n.normalize = function(e) {
                            var r = n.isAbsolute(e),
                                o = "/" === a(e, -1);
                            return e = t(i(e.split("/"), function(e) {
                                return !!e
                            }), !r).join("/"), e || r || (e = "."), e && o && (e += "/"), (r ? "/" : "") + e
                        }, n.isAbsolute = function(e) {
                            return "/" === e.charAt(0)
                        }, n.join = function() {
                            var e = Array.prototype.slice.call(arguments, 0);
                            return n.normalize(i(e, function(e, t) {
                                if ("string" != typeof e) throw new TypeError("Arguments to path.join must be strings");
                                return e
                            }).join("/"))
                        }, n.relative = function(e, t) {
                            function i(e) {
                                for (var t = 0; t < e.length && "" === e[t]; t++);
                                for (var n = e.length - 1; n >= 0 && "" === e[n]; n--);
                                return t > n ? [] : e.slice(t, n - t + 1)
                            }
                            e = n.resolve(e).substr(1), t = n.resolve(t).substr(1);
                            for (var r = i(e.split("/")), o = i(t.split("/")), a = Math.min(r.length, o.length), s = a, u = 0; u < a; u++)
                                if (r[u] !== o[u]) {
                                    s = u;
                                    break
                                }
                            for (var l = [], u = s; u < r.length; u++) l.push("..");
                            return l = l.concat(o.slice(s)), l.join("/")
                        }, n.sep = "/", n.delimiter = ":", n.dirname = function(e) {
                            var t = o(e),
                                n = t[0],
                                i = t[1];
                            return n || i ? (i && (i = i.substr(0, i.length - 1)), n + i) : "."
                        }, n.basename = function(e, t) {
                            var n = o(e)[2];
                            return t && n.substr(-1 * t.length) === t && (n = n.substr(0, n.length - t.length)), n
                        }, n.extname = function(e) {
                            return o(e)[3]
                        };
                        var a = "b" === "ab".substr(-1) ? function(e, t, n) {
                            return e.substr(t, n)
                        } : function(e, t, n) {
                            return t < 0 && (t = e.length + t), e.substr(t, n)
                        }
                    }).call(this, e("_process"))
                }, {
                    _process: 24
                }],
                24: [function(e, t, n) {
                    function i() {
                        throw new Error("setTimeout has not been defined")
                    }

                    function r() {
                        throw new Error("clearTimeout has not been defined")
                    }

                    function o(e) {
                        if (h === setTimeout) return setTimeout(e, 0);
                        if ((h === i || !h) && setTimeout) return h = setTimeout, setTimeout(e, 0);
                        try {
                            return h(e, 0)
                        } catch (t) {
                            try {
                                return h.call(null, e, 0)
                            } catch (t) {
                                return h.call(this, e, 0)
                            }
                        }
                    }

                    function a(e) {
                        if (p === clearTimeout) return clearTimeout(e);
                        if ((p === r || !p) && clearTimeout) return p = clearTimeout, clearTimeout(e);
                        try {
                            return p(e)
                        } catch (t) {
                            try {
                                return p.call(null, e)
                            } catch (t) {
                                return p.call(this, e)
                            }
                        }
                    }

                    function s() {
                        _ && f && (_ = !1, f.length ? m = f.concat(m) : g = -1, m.length && u())
                    }

                    function u() {
                        if (!_) {
                            var e = o(s);
                            _ = !0;
                            for (var t = m.length; t;) {
                                for (f = m, m = []; ++g < t;) f && f[g].run();
                                g = -1, t = m.length
                            }
                            f = null, _ = !1, a(e)
                        }
                    }

                    function l(e, t) {
                        this.fun = e, this.array = t
                    }

                    function c() {}
                    var h, p, d = t.exports = {};
                    ! function() {
                        try {
                            h = "function" == typeof setTimeout ? setTimeout : i
                        } catch (e) {
                            h = i
                        }
                        try {
                            p = "function" == typeof clearTimeout ? clearTimeout : r
                        } catch (e) {
                            p = r
                        }
                    }();
                    var f, m = [],
                        _ = !1,
                        g = -1;
                    d.nextTick = function(e) {
                        var t = new Array(arguments.length - 1);
                        if (arguments.length > 1)
                            for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
                        m.push(new l(e, t)), 1 !== m.length || _ || o(u)
                    }, l.prototype.run = function() {
                        this.fun.apply(null, this.array)
                    }, d.title = "browser", d.browser = !0, d.env = {}, d.argv = [], d.version = "", d.versions = {}, d.on = c, d.addListener = c, d.once = c, d.off = c, d.removeListener = c, d.removeAllListeners = c, d.emit = c, d.prependListener = c, d.prependOnceListener = c, d.listeners = function(e) {
                        return []
                    }, d.binding = function(e) {
                        throw new Error("process.binding is not supported")
                    }, d.cwd = function() {
                        return "/"
                    }, d.chdir = function(e) {
                        throw new Error("process.chdir is not supported")
                    }, d.umask = function() {
                        return 0
                    }
                }, {}],
                25: [function(t, n, i) {
                    (function(t) {
                        ! function(r) {
                            function o(e) {
                                throw new RangeError(L[e])
                            }

                            function a(e, t) {
                                for (var n = e.length, i = []; n--;) i[n] = t(e[n]);
                                return i
                            }

                            function s(e, t) {
                                var n = e.split("@"),
                                    i = "";
                                return n.length > 1 && (i = n[0] + "@", e = n[1]), e = e.replace(k, "."), i + a(e.split("."), t).join(".")
                            }

                            function u(e) {
                                for (var t, n, i = [], r = 0, o = e.length; r < o;) t = e.charCodeAt(r++), t >= 55296 && t <= 56319 && r < o ? (n = e.charCodeAt(r++), 56320 == (64512 & n) ? i.push(((1023 & t) << 10) + (1023 & n) + 65536) : (i.push(t), r--)) : i.push(t);
                                return i
                            }

                            function l(e) {
                                return a(e, function(e) {
                                    var t = "";
                                    return e > 65535 && (e -= 65536, t += F(e >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), t += F(e)
                                }).join("")
                            }

                            function c(e) {
                                return e - 48 < 10 ? e - 22 : e - 65 < 26 ? e - 65 : e - 97 < 26 ? e - 97 : w
                            }

                            function h(e, t) {
                                return e + 22 + 75 * (e < 26) - ((0 != t) << 5)
                            }

                            function p(e, t, n) {
                                var i = 0;
                                for (e = n ? B(e / E) : e >> 1, e += B(e / t); e > D * P >> 1; i += w) e = B(e / D);
                                return B(i + (D + 1) * e / (e + C))
                            }

                            function d(e) {
                                var t, n, i, r, a, s, u, h, d, f, m = [],
                                    _ = e.length,
                                    g = 0,
                                    y = O,
                                    v = M;
                                for (n = e.lastIndexOf(I), n < 0 && (n = 0), i = 0; i < n; ++i) e.charCodeAt(i) >= 128 && o("not-basic"), m.push(e.charCodeAt(i));
                                for (r = n > 0 ? n + 1 : 0; r < _;) {
                                    for (a = g, s = 1, u = w; r >= _ && o("invalid-input"), h = c(e.charCodeAt(r++)), (h >= w || h > B((T - g) / s)) && o("overflow"), g += h * s, d = u <= v ? S : u >= v + P ? P : u - v, !(h < d); u += w) f = w - d, s > B(T / f) && o("overflow"), s *= f;
                                    t = m.length + 1, v = p(g - a, t, 0 == a), B(g / t) > T - y && o("overflow"), y += B(g / t), g %= t, m.splice(g++, 0, y)
                                }
                                return l(m)
                            }

                            function f(e) {
                                var t, n, i, r, a, s, l, c, d, f, m, _, g, y, v, b = [];
                                for (e = u(e), _ = e.length, t = O, n = 0, a = M, s = 0; s < _; ++s)(m = e[s]) < 128 && b.push(F(m));
                                for (i = r = b.length, r && b.push(I); i < _;) {
                                    for (l = T, s = 0; s < _; ++s)(m = e[s]) >= t && m < l && (l = m);
                                    for (g = i + 1, l - t > B((T - n) / g) && o("overflow"), n += (l - t) * g, t = l, s = 0; s < _; ++s)
                                        if (m = e[s], m < t && ++n > T && o("overflow"), m == t) {
                                            for (c = n, d = w; f = d <= a ? S : d >= a + P ? P : d - a, !(c < f); d += w) v = c - f, y = w - f, b.push(F(h(f + v % y, 0))), c = B(v / y);
                                            b.push(F(h(c, 0))), a = p(n, g, i == r), n = 0, ++i
                                        }++n, ++t
                                }
                                return b.join("")
                            }

                            function m(e) {
                                return s(e, function(e) {
                                    return A.test(e) ? d(e.slice(4).toLowerCase()) : e
                                })
                            }

                            function _(e) {
                                return s(e, function(e) {
                                    return R.test(e) ? "xn--" + f(e) : e
                                })
                            }
                            var g = "object" == typeof i && i && !i.nodeType && i,
                                y = "object" == typeof n && n && !n.nodeType && n,
                                v = "object" == typeof t && t;
                            v.global !== v && v.window !== v && v.self !== v || (r = v);
                            var b, x, T = 2147483647,
                                w = 36,
                                S = 1,
                                P = 26,
                                C = 38,
                                E = 700,
                                M = 72,
                                O = 128,
                                I = "-",
                                A = /^xn--/,
                                R = /[^\x20-\x7E]/,
                                k = /[\x2E\u3002\uFF0E\uFF61]/g,
                                L = {
                                    overflow: "Overflow: input needs wider integers to process",
                                    "not-basic": "Illegal input >= 0x80 (not a basic code point)",
                                    "invalid-input": "Invalid input"
                                },
                                D = w - S,
                                B = Math.floor,
                                F = String.fromCharCode;
                            if (b = {
                                    version: "1.4.1",
                                    ucs2: {
                                        decode: u,
                                        encode: l
                                    },
                                    decode: d,
                                    encode: f,
                                    toASCII: _,
                                    toUnicode: m
                                }, "function" == typeof e && "object" == typeof e.amd && e.amd) e("punycode", function() {
                                return b
                            });
                            else if (g && y)
                                if (n.exports == g) y.exports = b;
                                else
                                    for (x in b) b.hasOwnProperty(x) && (g[x] = b[x]);
                            else r.punycode = b
                        }(this)
                    }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
                }, {}],
                26: [function(e, t, n) {
                    function i(e, t) {
                        return Object.prototype.hasOwnProperty.call(e, t)
                    }
                    t.exports = function(e, t, n, o) {
                        t = t || "&", n = n || "=";
                        var a = {};
                        if ("string" != typeof e || 0 === e.length) return a;
                        var s = /\+/g;
                        e = e.split(t);
                        var u = 1e3;
                        o && "number" == typeof o.maxKeys && (u = o.maxKeys);
                        var l = e.length;
                        u > 0 && l > u && (l = u);
                        for (var c = 0; c < l; ++c) {
                            var h, p, d, f, m = e[c].replace(s, "%20"),
                                _ = m.indexOf(n);
                            _ >= 0 ? (h = m.substr(0, _), p = m.substr(_ + 1)) : (h = m, p = ""), d = decodeURIComponent(h), f = decodeURIComponent(p), i(a, d) ? r(a[d]) ? a[d].push(f) : a[d] = [a[d], f] : a[d] = f
                        }
                        return a
                    };
                    var r = Array.isArray || function(e) {
                        return "[object Array]" === Object.prototype.toString.call(e)
                    }
                }, {}],
                27: [function(e, t, n) {
                    function i(e, t) {
                        if (e.map) return e.map(t);
                        for (var n = [], i = 0; i < e.length; i++) n.push(t(e[i], i));
                        return n
                    }
                    var r = function(e) {
                        switch (typeof e) {
                            case "string":
                                return e;
                            case "boolean":
                                return e ? "true" : "false";
                            case "number":
                                return isFinite(e) ? e : "";
                            default:
                                return ""
                        }
                    };
                    t.exports = function(e, t, n, s) {
                        return t = t || "&", n = n || "=", null === e && (e = void 0), "object" == typeof e ? i(a(e), function(a) {
                            var s = encodeURIComponent(r(a)) + n;
                            return o(e[a]) ? i(e[a], function(e) {
                                return s + encodeURIComponent(r(e))
                            }).join(t) : s + encodeURIComponent(r(e[a]))
                        }).join(t) : s ? encodeURIComponent(r(s)) + n + encodeURIComponent(r(e)) : ""
                    };
                    var o = Array.isArray || function(e) {
                            return "[object Array]" === Object.prototype.toString.call(e)
                        },
                        a = Object.keys || function(e) {
                            var t = [];
                            for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && t.push(n);
                            return t
                        }
                }, {}],
                28: [function(e, t, n) {
                    "use strict";
                    n.decode = n.parse = e("./decode"), n.encode = n.stringify = e("./encode")
                }, {
                    "./decode": 26,
                    "./encode": 27
                }],
                29: [function(e, t, n) {
                    function i() {
                        this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null
                    }

                    function r(e, t, n) {
                        if (e && l.isObject(e) && e instanceof i) return e;
                        var r = new i;
                        return r.parse(e, t, n), r
                    }

                    function o(e) {
                        return l.isString(e) && (e = r(e)), e instanceof i ? e.format() : i.prototype.format.call(e)
                    }

                    function a(e, t) {
                        return r(e, !1, !0).resolve(t)
                    }

                    function s(e, t) {
                        return e ? r(e, !1, !0).resolveObject(t) : t
                    }
                    var u = e("punycode"),
                        l = e("./util");
                    n.parse = r, n.resolve = a, n.resolveObject = s, n.format = o, n.Url = i;
                    var c = /^([a-z0-9.+-]+:)/i,
                        h = /:[0-9]*$/,
                        p = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
                        d = ["<", ">", '"', "`", " ", "\r", "\n", "\t"],
                        f = ["{", "}", "|", "\\", "^", "`"].concat(d),
                        m = ["'"].concat(f),
                        _ = ["%", "/", "?", ";", "#"].concat(m),
                        g = ["/", "?", "#"],
                        y = /^[+a-z0-9A-Z_-]{0,63}$/,
                        v = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
                        b = {
                            javascript: !0,
                            "javascript:": !0
                        },
                        x = {
                            javascript: !0,
                            "javascript:": !0
                        },
                        T = {
                            http: !0,
                            https: !0,
                            ftp: !0,
                            gopher: !0,
                            file: !0,
                            "http:": !0,
                            "https:": !0,
                            "ftp:": !0,
                            "gopher:": !0,
                            "file:": !0
                        },
                        w = e("querystring");
                    i.prototype.parse = function(e, t, n) {
                        if (!l.isString(e)) throw new TypeError("Parameter 'url' must be a string, not " + typeof e);
                        var i = e.indexOf("?"),
                            r = -1 !== i && i < e.indexOf("#") ? "?" : "#",
                            o = e.split(r),
                            a = /\\/g;
                        o[0] = o[0].replace(a, "/"), e = o.join(r);
                        var s = e;
                        if (s = s.trim(), !n && 1 === e.split("#").length) {
                            var h = p.exec(s);
                            if (h) return this.path = s, this.href = s, this.pathname = h[1], h[2] ? (this.search = h[2], this.query = t ? w.parse(this.search.substr(1)) : this.search.substr(1)) : t && (this.search = "", this.query = {}), this
                        }
                        var d = c.exec(s);
                        if (d) {
                            d = d[0];
                            var f = d.toLowerCase();
                            this.protocol = f, s = s.substr(d.length)
                        }
                        if (n || d || s.match(/^\/\/[^@\/]+@[^@\/]+/)) {
                            var S = "//" === s.substr(0, 2);
                            !S || d && x[d] || (s = s.substr(2), this.slashes = !0)
                        }
                        if (!x[d] && (S || d && !T[d])) {
                            for (var P = -1, C = 0; C < g.length; C++) {
                                var E = s.indexOf(g[C]); - 1 !== E && (-1 === P || E < P) && (P = E)
                            }
                            var M, O;
                            O = -1 === P ? s.lastIndexOf("@") : s.lastIndexOf("@", P), -1 !== O && (M = s.slice(0, O), s = s.slice(O + 1), this.auth = decodeURIComponent(M)), P = -1;
                            for (var C = 0; C < _.length; C++) {
                                var E = s.indexOf(_[C]); - 1 !== E && (-1 === P || E < P) && (P = E)
                            } - 1 === P && (P = s.length), this.host = s.slice(0, P), s = s.slice(P), this.parseHost(), this.hostname = this.hostname || "";
                            var I = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1];
                            if (!I)
                                for (var A = this.hostname.split(/\./), C = 0, R = A.length; C < R; C++) {
                                    var k = A[C];
                                    if (k && !k.match(y)) {
                                        for (var L = "", D = 0, B = k.length; D < B; D++) k.charCodeAt(D) > 127 ? L += "x" : L += k[D];
                                        if (!L.match(y)) {
                                            var F = A.slice(0, C),
                                                N = A.slice(C + 1),
                                                j = k.match(v);
                                            j && (F.push(j[1]), N.unshift(j[2])), N.length && (s = "/" + N.join(".") + s), this.hostname = F.join(".");
                                            break
                                        }
                                    }
                                }
                            this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), I || (this.hostname = u.toASCII(this.hostname));
                            var G = this.port ? ":" + this.port : "",
                                U = this.hostname || "";
                            this.host = U + G, this.href += this.host, I && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== s[0] && (s = "/" + s))
                        }
                        if (!b[f])
                            for (var C = 0, R = m.length; C < R; C++) {
                                var W = m[C];
                                if (-1 !== s.indexOf(W)) {
                                    var H = encodeURIComponent(W);
                                    H === W && (H = escape(W)), s = s.split(W).join(H)
                                }
                            }
                        var X = s.indexOf("#"); - 1 !== X && (this.hash = s.substr(X), s = s.slice(0, X));
                        var z = s.indexOf("?");
                        if (-1 !== z ? (this.search = s.substr(z), this.query = s.substr(z + 1), t && (this.query = w.parse(this.query)), s = s.slice(0, z)) : t && (this.search = "", this.query = {}), s && (this.pathname = s), T[f] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) {
                            var G = this.pathname || "",
                                V = this.search || "";
                            this.path = G + V
                        }
                        return this.href = this.format(), this
                    }, i.prototype.format = function() {
                        var e = this.auth || "";
                        e && (e = encodeURIComponent(e), e = e.replace(/%3A/i, ":"), e += "@");
                        var t = this.protocol || "",
                            n = this.pathname || "",
                            i = this.hash || "",
                            r = !1,
                            o = "";
                        this.host ? r = e + this.host : this.hostname && (r = e + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (r += ":" + this.port)), this.query && l.isObject(this.query) && Object.keys(this.query).length && (o = w.stringify(this.query));
                        var a = this.search || o && "?" + o || "";
                        return t && ":" !== t.substr(-1) && (t += ":"), this.slashes || (!t || T[t]) && !1 !== r ? (r = "//" + (r || ""), n && "/" !== n.charAt(0) && (n = "/" + n)) : r || (r = ""), i && "#" !== i.charAt(0) && (i = "#" + i), a && "?" !== a.charAt(0) && (a = "?" + a), n = n.replace(/[?#]/g, function(e) {
                            return encodeURIComponent(e)
                        }), a = a.replace("#", "%23"), t + r + n + a + i
                    }, i.prototype.resolve = function(e) {
                        return this.resolveObject(r(e, !1, !0)).format()
                    }, i.prototype.resolveObject = function(e) {
                        if (l.isString(e)) {
                            var t = new i;
                            t.parse(e, !1, !0), e = t
                        }
                        for (var n = new i, r = Object.keys(this), o = 0; o < r.length; o++) {
                            var a = r[o];
                            n[a] = this[a]
                        }
                        if (n.hash = e.hash, "" === e.href) return n.href = n.format(), n;
                        if (e.slashes && !e.protocol) {
                            for (var s = Object.keys(e), u = 0; u < s.length; u++) {
                                var c = s[u];
                                "protocol" !== c && (n[c] = e[c])
                            }
                            return T[n.protocol] && n.hostname && !n.pathname && (n.path = n.pathname = "/"), n.href = n.format(), n
                        }
                        if (e.protocol && e.protocol !== n.protocol) {
                            if (!T[e.protocol]) {
                                for (var h = Object.keys(e), p = 0; p < h.length; p++) {
                                    var d = h[p];
                                    n[d] = e[d]
                                }
                                return n.href = n.format(), n
                            }
                            if (n.protocol = e.protocol, e.host || x[e.protocol]) n.pathname = e.pathname;
                            else {
                                for (var f = (e.pathname || "").split("/"); f.length && !(e.host = f.shift()););
                                e.host || (e.host = ""), e.hostname || (e.hostname = ""), "" !== f[0] && f.unshift(""), f.length < 2 && f.unshift(""), n.pathname = f.join("/")
                            }
                            if (n.search = e.search, n.query = e.query, n.host = e.host || "", n.auth = e.auth, n.hostname = e.hostname || e.host, n.port = e.port, n.pathname || n.search) {
                                var m = n.pathname || "",
                                    _ = n.search || "";
                                n.path = m + _
                            }
                            return n.slashes = n.slashes || e.slashes, n.href = n.format(), n
                        }
                        var g = n.pathname && "/" === n.pathname.charAt(0),
                            y = e.host || e.pathname && "/" === e.pathname.charAt(0),
                            v = y || g || n.host && e.pathname,
                            b = v,
                            w = n.pathname && n.pathname.split("/") || [],
                            f = e.pathname && e.pathname.split("/") || [],
                            S = n.protocol && !T[n.protocol];
                        if (S && (n.hostname = "", n.port = null, n.host && ("" === w[0] ? w[0] = n.host : w.unshift(n.host)), n.host = "", e.protocol && (e.hostname = null, e.port = null, e.host && ("" === f[0] ? f[0] = e.host : f.unshift(e.host)), e.host = null), v = v && ("" === f[0] || "" === w[0])), y) n.host = e.host || "" === e.host ? e.host : n.host, n.hostname = e.hostname || "" === e.hostname ? e.hostname : n.hostname, n.search = e.search, n.query = e.query, w = f;
                        else if (f.length) w || (w = []), w.pop(), w = w.concat(f), n.search = e.search, n.query = e.query;
                        else if (!l.isNullOrUndefined(e.search)) {
                            if (S) {
                                n.hostname = n.host = w.shift();
                                var P = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@");
                                P && (n.auth = P.shift(), n.host = n.hostname = P.shift())
                            }
                            return n.search = e.search, n.query = e.query, l.isNull(n.pathname) && l.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.href = n.format(), n
                        }
                        if (!w.length) return n.pathname = null, n.search ? n.path = "/" + n.search : n.path = null, n.href = n.format(), n;
                        for (var C = w.slice(-1)[0], E = (n.host || e.host || w.length > 1) && ("." === C || ".." === C) || "" === C, M = 0, O = w.length; O >= 0; O--) C = w[O], "." === C ? w.splice(O, 1) : ".." === C ? (w.splice(O, 1), M++) : M && (w.splice(O, 1), M--);
                        if (!v && !b)
                            for (; M--; M) w.unshift("..");
                        !v || "" === w[0] || w[0] && "/" === w[0].charAt(0) || w.unshift(""), E && "/" !== w.join("/").substr(-1) && w.push("");
                        var I = "" === w[0] || w[0] && "/" === w[0].charAt(0);
                        if (S) {
                            n.hostname = n.host = I ? "" : w.length ? w.shift() : "";
                            var P = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@");
                            P && (n.auth = P.shift(), n.host = n.hostname = P.shift())
                        }
                        return v = v || n.host && w.length, v && !I && w.unshift(""), w.length ? n.pathname = w.join("/") : (n.pathname = null, n.path = null), l.isNull(n.pathname) && l.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.auth = e.auth || n.auth, n.slashes = n.slashes || e.slashes, n.href = n.format(), n
                    }, i.prototype.parseHost = function() {
                        var e = this.host,
                            t = h.exec(e);
                        t && (t = t[0], ":" !== t && (this.port = t.substr(1)), e = e.substr(0, e.length - t.length)), e && (this.hostname = e)
                    }
                }, {
                    "./util": 30,
                    punycode: 25,
                    querystring: 28
                }],
                30: [function(e, t, n) {
                    "use strict";
                    t.exports = {
                        isString: function(e) {
                            return "string" == typeof e
                        },
                        isObject: function(e) {
                            return "object" == typeof e && null !== e
                        },
                        isNull: function(e) {
                            return null === e
                        },
                        isNullOrUndefined: function(e) {
                            return null == e
                        }
                    }
                }, {}],
                31: [function(e, t, n) {
                    "use strict";
                    t.exports = function(e, t, n) {
                        var i, r = e.length;
                        if (!(t >= r || 0 === n)) {
                            n = t + n > r ? r - t : n;
                            var o = r - n;
                            for (i = t; i < o; ++i) e[i] = e[i + n];
                            e.length = o
                        }
                    }
                }, {}],
                32: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                            return typeof e
                        } : function(e) {
                            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                        },
                        a = e("mini-signals"),
                        s = i(a),
                        u = e("parse-uri"),
                        l = i(u),
                        c = e("./async"),
                        h = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(c),
                        p = e("./Resource"),
                        d = i(p),
                        f = /(#[\w-]+)?$/,
                        m = function() {
                            function e() {
                                var t = this,
                                    n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
                                    i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10;
                                r(this, e), this.baseUrl = n, this.progress = 0, this.loading = !1, this.defaultQueryString = "", this._beforeMiddleware = [], this._afterMiddleware = [], this._resourcesParsing = [], this._boundLoadResource = function(e, n) {
                                    return t._loadResource(e, n)
                                }, this._queue = h.queue(this._boundLoadResource, i), this._queue.pause(), this.resources = {}, this.onProgress = new s.default, this.onError = new s.default, this.onLoad = new s.default, this.onStart = new s.default, this.onComplete = new s.default
                            }
                            return e.prototype.add = function(e, t, n, i) {
                                if (Array.isArray(e)) {
                                    for (var r = 0; r < e.length; ++r) this.add(e[r]);
                                    return this
                                }
                                if ("object" === (void 0 === e ? "undefined" : o(e)) && (i = t || e.callback || e.onComplete, n = e, t = e.url, e = e.name || e.key || e.url), "string" != typeof t && (i = n, n = t, t = e), "string" != typeof t) throw new Error("No url passed to add resource to loader.");
                                if ("function" == typeof n && (i = n, n = null), this.loading && (!n || !n.parentResource)) throw new Error("Cannot add resources while the loader is running.");
                                if (this.resources[e]) throw new Error('Resource named "' + e + '" already exists.');
                                if (t = this._prepareUrl(t), this.resources[e] = new d.default(e, t, n), "function" == typeof i && this.resources[e].onAfterMiddleware.once(i), this.loading) {
                                    for (var a = n.parentResource, s = [], u = 0; u < a.children.length; ++u) a.children[u].isComplete || s.push(a.children[u]);
                                    var l = a.progressChunk * (s.length + 1),
                                        c = l / (s.length + 2);
                                    a.children.push(this.resources[e]), a.progressChunk = c;
                                    for (var h = 0; h < s.length; ++h) s[h].progressChunk = c;
                                    this.resources[e].progressChunk = c
                                }
                                return this._queue.push(this.resources[e]), this
                            }, e.prototype.pre = function(e) {
                                return this._beforeMiddleware.push(e), this
                            }, e.prototype.use = function(e) {
                                return this._afterMiddleware.push(e), this
                            }, e.prototype.reset = function() {
                                this.progress = 0, this.loading = !1, this._queue.kill(), this._queue.pause();
                                for (var e in this.resources) {
                                    var t = this.resources[e];
                                    t._onLoadBinding && t._onLoadBinding.detach(), t.isLoading && t.abort()
                                }
                                return this.resources = {}, this
                            }, e.prototype.load = function(e) {
                                if ("function" == typeof e && this.onComplete.once(e), this.loading) return this;
                                for (var t = 100 / this._queue._tasks.length, n = 0; n < this._queue._tasks.length; ++n) this._queue._tasks[n].data.progressChunk = t;
                                return this.loading = !0, this.onStart.dispatch(this), this._queue.resume(), this
                            }, e.prototype._prepareUrl = function(e) {
                                var t = (0, l.default)(e, {
                                        strictMode: !0
                                    }),
                                    n = void 0;
                                if (n = t.protocol || !t.path || 0 === e.indexOf("//") ? e : this.baseUrl.length && this.baseUrl.lastIndexOf("/") !== this.baseUrl.length - 1 && "/" !== e.charAt(0) ? this.baseUrl + "/" + e : this.baseUrl + e, this.defaultQueryString) {
                                    var i = f.exec(n)[0];
                                    n = n.substr(0, n.length - i.length), -1 !== n.indexOf("?") ? n += "&" + this.defaultQueryString : n += "?" + this.defaultQueryString, n += i
                                }
                                return n
                            }, e.prototype._loadResource = function(e, t) {
                                var n = this;
                                e._dequeue = t, h.eachSeries(this._beforeMiddleware, function(t, i) {
                                    t.call(n, e, function() {
                                        i(e.isComplete ? {} : null)
                                    })
                                }, function() {
                                    e.isComplete ? n._onLoad(e) : (e._onLoadBinding = e.onComplete.once(n._onLoad, n), e.load())
                                }, !0)
                            }, e.prototype._onComplete = function() {
                                this.loading = !1, this.onComplete.dispatch(this, this.resources)
                            }, e.prototype._onLoad = function(e) {
                                var t = this;
                                e._onLoadBinding = null, this._resourcesParsing.push(e), e._dequeue(), h.eachSeries(this._afterMiddleware, function(n, i) {
                                    n.call(t, e, i)
                                }, function() {
                                    e.onAfterMiddleware.dispatch(e), t.progress += e.progressChunk, t.onProgress.dispatch(t, e), e.error ? t.onError.dispatch(e.error, t, e) : t.onLoad.dispatch(t, e), t._resourcesParsing.splice(t._resourcesParsing.indexOf(e), 1), t._queue.idle() && 0 === t._resourcesParsing.length && (t.progress = 100, t._onComplete())
                                }, !0)
                            }, e
                        }();
                    n.default = m
                }, {
                    "./Resource": 33,
                    "./async": 34,
                    "mini-signals": 38,
                    "parse-uri": 39
                }],
                33: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o() {}

                    function a(e, t, n) {
                        t && 0 === t.indexOf(".") && (t = t.substring(1)), t && (e[t] = n)
                    }

                    function s(e) {
                        return e.toString().replace("object ", "")
                    }
                    n.__esModule = !0;
                    var u = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        l = e("parse-uri"),
                        c = i(l),
                        h = e("mini-signals"),
                        p = i(h),
                        d = !(!window.XDomainRequest || "withCredentials" in new XMLHttpRequest),
                        f = null,
                        m = function() {
                            function e(t, n, i) {
                                if (r(this, e), "string" != typeof t || "string" != typeof n) throw new Error("Both name and url are required for constructing a resource.");
                                i = i || {}, this._flags = 0, this._setFlag(e.STATUS_FLAGS.DATA_URL, 0 === n.indexOf("data:")), this.name = t, this.url = n, this.extension = this._getExtension(), this.data = null, this.crossOrigin = !0 === i.crossOrigin ? "anonymous" : i.crossOrigin, this.loadType = i.loadType || this._determineLoadType(), this.xhrType = i.xhrType, this.metadata = i.metadata || {}, this.error = null, this.xhr = null, this.children = [], this.type = e.TYPE.UNKNOWN, this.progressChunk = 0, this._dequeue = o, this._onLoadBinding = null, this._boundComplete = this.complete.bind(this), this._boundOnError = this._onError.bind(this), this._boundOnProgress = this._onProgress.bind(this), this._boundXhrOnError = this._xhrOnError.bind(this), this._boundXhrOnAbort = this._xhrOnAbort.bind(this), this._boundXhrOnLoad = this._xhrOnLoad.bind(this), this._boundXdrOnTimeout = this._xdrOnTimeout.bind(this), this.onStart = new p.default, this.onProgress = new p.default, this.onComplete = new p.default, this.onAfterMiddleware = new p.default
                            }
                            return e.setExtensionLoadType = function(t, n) {
                                a(e._loadTypeMap, t, n)
                            }, e.setExtensionXhrType = function(t, n) {
                                a(e._xhrTypeMap, t, n)
                            }, e.prototype.complete = function() {
                                if (this.data && this.data.removeEventListener && (this.data.removeEventListener("error", this._boundOnError, !1), this.data.removeEventListener("load", this._boundComplete, !1), this.data.removeEventListener("progress", this._boundOnProgress, !1), this.data.removeEventListener("canplaythrough", this._boundComplete, !1)), this.xhr && (this.xhr.removeEventListener ? (this.xhr.removeEventListener("error", this._boundXhrOnError, !1), this.xhr.removeEventListener("abort", this._boundXhrOnAbort, !1), this.xhr.removeEventListener("progress", this._boundOnProgress, !1), this.xhr.removeEventListener("load", this._boundXhrOnLoad, !1)) : (this.xhr.onerror = null, this.xhr.ontimeout = null, this.xhr.onprogress = null, this.xhr.onload = null)), this.isComplete) throw new Error("Complete called again for an already completed resource.");
                                this._setFlag(e.STATUS_FLAGS.COMPLETE, !0), this._setFlag(e.STATUS_FLAGS.LOADING, !1), this.onComplete.dispatch(this)
                            }, e.prototype.abort = function(t) {
                                if (!this.error) {
                                    if (this.error = new Error(t), this.xhr) this.xhr.abort();
                                    else if (this.xdr) this.xdr.abort();
                                    else if (this.data)
                                        if (this.data.src) this.data.src = e.EMPTY_GIF;
                                        else
                                            for (; this.data.firstChild;) this.data.removeChild(this.data.firstChild);
                                    this.complete()
                                }
                            }, e.prototype.load = function(t) {
                                var n = this;
                                if (!this.isLoading) {
                                    if (this.isComplete) return void(t && setTimeout(function() {
                                        return t(n)
                                    }, 1));
                                    switch (t && this.onComplete.once(t), this._setFlag(e.STATUS_FLAGS.LOADING, !0), this.onStart.dispatch(this), !1 !== this.crossOrigin && "string" == typeof this.crossOrigin || (this.crossOrigin = this._determineCrossOrigin(this.url)), this.loadType) {
                                        case e.LOAD_TYPE.IMAGE:
                                            this.type = e.TYPE.IMAGE, this._loadElement("image");
                                            break;
                                        case e.LOAD_TYPE.AUDIO:
                                            this.type = e.TYPE.AUDIO, this._loadSourceElement("audio");
                                            break;
                                        case e.LOAD_TYPE.VIDEO:
                                            this.type = e.TYPE.VIDEO, this._loadSourceElement("video");
                                            break;
                                        case e.LOAD_TYPE.XHR:
                                        default:
                                            d && this.crossOrigin ? this._loadXdr() : this._loadXhr()
                                    }
                                }
                            }, e.prototype._hasFlag = function(e) {
                                return !!(this._flags & e)
                            }, e.prototype._setFlag = function(e, t) {
                                this._flags = t ? this._flags | e : this._flags & ~e
                            }, e.prototype._loadElement = function(e) {
                                this.metadata.loadElement ? this.data = this.metadata.loadElement : "image" === e && void 0 !== window.Image ? this.data = new Image : this.data = document.createElement(e), this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), this.metadata.skipSource || (this.data.src = this.url), this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1)
                            }, e.prototype._loadSourceElement = function(e) {
                                if (this.metadata.loadElement ? this.data = this.metadata.loadElement : "audio" === e && void 0 !== window.Audio ? this.data = new Audio : this.data = document.createElement(e), null === this.data) return void this.abort("Unsupported element: " + e);
                                if (!this.metadata.skipSource)
                                    if (navigator.isCocoonJS) this.data.src = Array.isArray(this.url) ? this.url[0] : this.url;
                                    else if (Array.isArray(this.url))
                                    for (var t = this.metadata.mimeType, n = 0; n < this.url.length; ++n) this.data.appendChild(this._createSource(e, this.url[n], Array.isArray(t) ? t[n] : t));
                                else {
                                    var i = this.metadata.mimeType;
                                    this.data.appendChild(this._createSource(e, this.url, Array.isArray(i) ? i[0] : i))
                                }
                                this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.data.addEventListener("canplaythrough", this._boundComplete, !1), this.data.load()
                            }, e.prototype._loadXhr = function() {
                                "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType());
                                var t = this.xhr = new XMLHttpRequest;
                                t.open("GET", this.url, !0), this.xhrType === e.XHR_RESPONSE_TYPE.JSON || this.xhrType === e.XHR_RESPONSE_TYPE.DOCUMENT ? t.responseType = e.XHR_RESPONSE_TYPE.TEXT : t.responseType = this.xhrType, t.addEventListener("error", this._boundXhrOnError, !1), t.addEventListener("abort", this._boundXhrOnAbort, !1), t.addEventListener("progress", this._boundOnProgress, !1), t.addEventListener("load", this._boundXhrOnLoad, !1), t.send()
                            }, e.prototype._loadXdr = function() {
                                "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType());
                                var e = this.xhr = new XDomainRequest;
                                e.timeout = 5e3, e.onerror = this._boundXhrOnError, e.ontimeout = this._boundXdrOnTimeout, e.onprogress = this._boundOnProgress, e.onload = this._boundXhrOnLoad, e.open("GET", this.url, !0), setTimeout(function() {
                                    return e.send()
                                }, 1)
                            }, e.prototype._createSource = function(e, t, n) {
                                n || (n = e + "/" + this._getExtension(t));
                                var i = document.createElement("source");
                                return i.src = t, i.type = n, i
                            }, e.prototype._onError = function(e) {
                                this.abort("Failed to load element using: " + e.target.nodeName)
                            }, e.prototype._onProgress = function(e) {
                                e && e.lengthComputable && this.onProgress.dispatch(this, e.loaded / e.total)
                            }, e.prototype._xhrOnError = function() {
                                var e = this.xhr;
                                this.abort(s(e) + " Request failed. Status: " + e.status + ', text: "' + e.statusText + '"')
                            }, e.prototype._xhrOnAbort = function() {
                                this.abort(s(this.xhr) + " Request was aborted by the user.")
                            }, e.prototype._xdrOnTimeout = function() {
                                this.abort(s(this.xhr) + " Request timed out.")
                            }, e.prototype._xhrOnLoad = function() {
                                var t = this.xhr,
                                    n = "",
                                    i = void 0 === t.status ? 200 : t.status;
                                if ("" !== t.responseType && "text" !== t.responseType && void 0 !== t.responseType || (n = t.responseText), 0 === i && n.length > 0 ? i = 200 : 1223 === i && (i = 204), 2 != (i / 100 | 0)) return void this.abort("[" + t.status + "] " + t.statusText + ": " + t.responseURL);
                                if (this.xhrType === e.XHR_RESPONSE_TYPE.TEXT) this.data = n, this.type = e.TYPE.TEXT;
                                else if (this.xhrType === e.XHR_RESPONSE_TYPE.JSON) try {
                                    this.data = JSON.parse(n), this.type = e.TYPE.JSON
                                } catch (e) {
                                    return void this.abort("Error trying to parse loaded json: " + e)
                                } else if (this.xhrType === e.XHR_RESPONSE_TYPE.DOCUMENT) try {
                                    if (window.DOMParser) {
                                        var r = new DOMParser;
                                        this.data = r.parseFromString(n, "text/xml")
                                    } else {
                                        var o = document.createElement("div");
                                        o.innerHTML = n, this.data = o
                                    }
                                    this.type = e.TYPE.XML
                                } catch (e) {
                                    return void this.abort("Error trying to parse loaded xml: " + e)
                                } else this.data = t.response || n;
                                this.complete()
                            }, e.prototype._determineCrossOrigin = function(e, t) {
                                if (0 === e.indexOf("data:")) return "";
                                t = t || window.location, f || (f = document.createElement("a")), f.href = e, e = (0, c.default)(f.href, {
                                    strictMode: !0
                                });
                                var n = !e.port && "" === t.port || e.port === t.port,
                                    i = e.protocol ? e.protocol + ":" : "";
                                return e.host === t.hostname && n && i === t.protocol ? "" : "anonymous"
                            }, e.prototype._determineXhrType = function() {
                                return e._xhrTypeMap[this.extension] || e.XHR_RESPONSE_TYPE.TEXT
                            }, e.prototype._determineLoadType = function() {
                                return e._loadTypeMap[this.extension] || e.LOAD_TYPE.XHR
                            }, e.prototype._getExtension = function() {
                                var e = this.url,
                                    t = "";
                                if (this.isDataUrl) {
                                    var n = e.indexOf("/");
                                    t = e.substring(n + 1, e.indexOf(";", n))
                                } else {
                                    var i = e.indexOf("?"),
                                        r = e.indexOf("#"),
                                        o = Math.min(i > -1 ? i : e.length, r > -1 ? r : e.length);
                                    e = e.substring(0, o), t = e.substring(e.lastIndexOf(".") + 1)
                                }
                                return t.toLowerCase()
                            }, e.prototype._getMimeFromXhrType = function(t) {
                                switch (t) {
                                    case e.XHR_RESPONSE_TYPE.BUFFER:
                                        return "application/octet-binary";
                                    case e.XHR_RESPONSE_TYPE.BLOB:
                                        return "application/blob";
                                    case e.XHR_RESPONSE_TYPE.DOCUMENT:
                                        return "application/xml";
                                    case e.XHR_RESPONSE_TYPE.JSON:
                                        return "application/json";
                                    case e.XHR_RESPONSE_TYPE.DEFAULT:
                                    case e.XHR_RESPONSE_TYPE.TEXT:
                                    default:
                                        return "text/plain"
                                }
                            }, u(e, [{
                                key: "isDataUrl",
                                get: function() {
                                    return this._hasFlag(e.STATUS_FLAGS.DATA_URL)
                                }
                            }, {
                                key: "isComplete",
                                get: function() {
                                    return this._hasFlag(e.STATUS_FLAGS.COMPLETE)
                                }
                            }, {
                                key: "isLoading",
                                get: function() {
                                    return this._hasFlag(e.STATUS_FLAGS.LOADING)
                                }
                            }]), e
                        }();
                    n.default = m, m.STATUS_FLAGS = {
                        NONE: 0,
                        DATA_URL: 1,
                        COMPLETE: 2,
                        LOADING: 4
                    }, m.TYPE = {
                        UNKNOWN: 0,
                        JSON: 1,
                        XML: 2,
                        IMAGE: 3,
                        AUDIO: 4,
                        VIDEO: 5,
                        TEXT: 6
                    }, m.LOAD_TYPE = {
                        XHR: 1,
                        IMAGE: 2,
                        AUDIO: 3,
                        VIDEO: 4
                    }, m.XHR_RESPONSE_TYPE = {
                        DEFAULT: "text",
                        BUFFER: "arraybuffer",
                        BLOB: "blob",
                        DOCUMENT: "document",
                        JSON: "json",
                        TEXT: "text"
                    }, m._loadTypeMap = {
                        gif: m.LOAD_TYPE.IMAGE,
                        png: m.LOAD_TYPE.IMAGE,
                        bmp: m.LOAD_TYPE.IMAGE,
                        jpg: m.LOAD_TYPE.IMAGE,
                        jpeg: m.LOAD_TYPE.IMAGE,
                        tif: m.LOAD_TYPE.IMAGE,
                        tiff: m.LOAD_TYPE.IMAGE,
                        webp: m.LOAD_TYPE.IMAGE,
                        tga: m.LOAD_TYPE.IMAGE,
                        svg: m.LOAD_TYPE.IMAGE,
                        "svg+xml": m.LOAD_TYPE.IMAGE,
                        mp3: m.LOAD_TYPE.AUDIO,
                        ogg: m.LOAD_TYPE.AUDIO,
                        wav: m.LOAD_TYPE.AUDIO,
                        mp4: m.LOAD_TYPE.VIDEO,
                        webm: m.LOAD_TYPE.VIDEO
                    }, m._xhrTypeMap = {
                        xhtml: m.XHR_RESPONSE_TYPE.DOCUMENT,
                        html: m.XHR_RESPONSE_TYPE.DOCUMENT,
                        htm: m.XHR_RESPONSE_TYPE.DOCUMENT,
                        xml: m.XHR_RESPONSE_TYPE.DOCUMENT,
                        tmx: m.XHR_RESPONSE_TYPE.DOCUMENT,
                        svg: m.XHR_RESPONSE_TYPE.DOCUMENT,
                        tsx: m.XHR_RESPONSE_TYPE.DOCUMENT,
                        gif: m.XHR_RESPONSE_TYPE.BLOB,
                        png: m.XHR_RESPONSE_TYPE.BLOB,
                        bmp: m.XHR_RESPONSE_TYPE.BLOB,
                        jpg: m.XHR_RESPONSE_TYPE.BLOB,
                        jpeg: m.XHR_RESPONSE_TYPE.BLOB,
                        tif: m.XHR_RESPONSE_TYPE.BLOB,
                        tiff: m.XHR_RESPONSE_TYPE.BLOB,
                        webp: m.XHR_RESPONSE_TYPE.BLOB,
                        tga: m.XHR_RESPONSE_TYPE.BLOB,
                        json: m.XHR_RESPONSE_TYPE.JSON,
                        text: m.XHR_RESPONSE_TYPE.TEXT,
                        txt: m.XHR_RESPONSE_TYPE.TEXT,
                        ttf: m.XHR_RESPONSE_TYPE.BUFFER,
                        otf: m.XHR_RESPONSE_TYPE.BUFFER
                    }, m.EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
                }, {
                    "mini-signals": 38,
                    "parse-uri": 39
                }],
                34: [function(e, t, n) {
                    "use strict";

                    function i() {}

                    function r(e, t, n, i) {
                        var r = 0,
                            o = e.length;
                        ! function a(s) {
                            if (s || r === o) return void(n && n(s));
                            i ? setTimeout(function() {
                                t(e[r++], a)
                            }, 1) : t(e[r++], a)
                        }()
                    }

                    function o(e) {
                        return function() {
                            if (null === e) throw new Error("Callback was already called.");
                            var t = e;
                            e = null, t.apply(this, arguments)
                        }
                    }

                    function a(e, t) {
                        function n(e, t, n) {
                            if (null != n && "function" != typeof n) throw new Error("task callback must be a function");
                            if (s.started = !0, null == e && s.idle()) return void setTimeout(function() {
                                return s.drain()
                            }, 1);
                            var r = {
                                data: e,
                                callback: "function" == typeof n ? n : i
                            };
                            t ? s._tasks.unshift(r) : s._tasks.push(r), setTimeout(function() {
                                return s.process()
                            }, 1)
                        }

                        function r(e) {
                            return function() {
                                a -= 1, e.callback.apply(e, arguments), null != arguments[0] && s.error(arguments[0], e.data), a <= s.concurrency - s.buffer && s.unsaturated(), s.idle() && s.drain(), s.process()
                            }
                        }
                        if (null == t) t = 1;
                        else if (0 === t) throw new Error("Concurrency must not be zero");
                        var a = 0,
                            s = {
                                _tasks: [],
                                concurrency: t,
                                saturated: i,
                                unsaturated: i,
                                buffer: t / 4,
                                empty: i,
                                drain: i,
                                error: i,
                                started: !1,
                                paused: !1,
                                push: function(e, t) {
                                    n(e, !1, t)
                                },
                                kill: function() {
                                    a = 0, s.drain = i, s.started = !1, s._tasks = []
                                },
                                unshift: function(e, t) {
                                    n(e, !0, t)
                                },
                                process: function() {
                                    for (; !s.paused && a < s.concurrency && s._tasks.length;) {
                                        var t = s._tasks.shift();
                                        0 === s._tasks.length && s.empty(), a += 1, a === s.concurrency && s.saturated(), e(t.data, o(r(t)))
                                    }
                                },
                                length: function() {
                                    return s._tasks.length
                                },
                                running: function() {
                                    return a
                                },
                                idle: function() {
                                    return s._tasks.length + a === 0
                                },
                                pause: function() {
                                    !0 !== s.paused && (s.paused = !0)
                                },
                                resume: function() {
                                    if (!1 !== s.paused) {
                                        s.paused = !1;
                                        for (var e = 1; e <= s.concurrency; e++) s.process()
                                    }
                                }
                            };
                        return s
                    }
                    n.__esModule = !0, n.eachSeries = r, n.queue = a
                }, {}],
                35: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        for (var t = "", n = 0; n < e.length;) {
                            for (var i = [0, 0, 0], o = [0, 0, 0, 0], a = 0; a < i.length; ++a) n < e.length ? i[a] = 255 & e.charCodeAt(n++) : i[a] = 0;
                            o[0] = i[0] >> 2, o[1] = (3 & i[0]) << 4 | i[1] >> 4, o[2] = (15 & i[1]) << 2 | i[2] >> 6, o[3] = 63 & i[2];
                            switch (n - (e.length - 1)) {
                                case 2:
                                    o[3] = 64, o[2] = 64;
                                    break;
                                case 1:
                                    o[3] = 64
                            }
                            for (var s = 0; s < o.length; ++s) t += r.charAt(o[s])
                        }
                        return t
                    }
                    n.__esModule = !0, n.encodeBinary = i;
                    var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
                }, {}],
                36: [function(e, t, n) {
                    "use strict";
                    var i = e("./Loader").default,
                        r = e("./Resource").default,
                        o = e("./async"),
                        a = e("./b64");
                    i.Resource = r, i.async = o, i.base64 = a, t.exports = i, t.exports.default = i
                }, {
                    "./Loader": 32,
                    "./Resource": 33,
                    "./async": 34,
                    "./b64": 35
                }],
                37: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r() {
                        return function(e, t) {
                            if (!e.data) return void t();
                            if (e.xhr && e.xhrType === s.default.XHR_RESPONSE_TYPE.BLOB)
                                if (window.Blob && "string" != typeof e.data) {
                                    if (0 === e.data.type.indexOf("image")) {
                                        var n = function() {
                                            var n = c.createObjectURL(e.data);
                                            return e.blob = e.data, e.data = new Image, e.data.src = n, e.type = s.default.TYPE.IMAGE, e.data.onload = function() {
                                                c.revokeObjectURL(n), e.data.onload = null, t()
                                            }, {
                                                v: void 0
                                            }
                                        }();
                                        if ("object" === (void 0 === n ? "undefined" : o(n))) return n.v
                                    }
                                } else {
                                    var i = e.xhr.getResponseHeader("content-type");
                                    if (i && 0 === i.indexOf("image")) return e.data = new Image, e.data.src = "data:" + i + ";base64," + l.default.encodeBinary(e.xhr.responseText), e.type = s.default.TYPE.IMAGE, void(e.data.onload = function() {
                                        e.data.onload = null, t()
                                    })
                                }
                            t()
                        }
                    }
                    n.__esModule = !0;
                    var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                        return typeof e
                    } : function(e) {
                        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                    };
                    n.blobMiddlewareFactory = r;
                    var a = e("../../Resource"),
                        s = i(a),
                        u = e("../../b64"),
                        l = i(u),
                        c = window.URL || window.webkitURL
                }, {
                    "../../Resource": 33,
                    "../../b64": 35
                }],
                38: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        return e._head ? (e._tail._next = t, t._prev = e._tail, e._tail = t) : (e._head = t, e._tail = t), t._owner = e, t
                    }
                    Object.defineProperty(n, "__esModule", {
                        value: !0
                    });
                    var o = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        a = function() {
                            function e(t, n, r) {
                                void 0 === n && (n = !1), i(this, e), this._fn = t, this._once = n, this._thisArg = r, this._next = this._prev = this._owner = null
                            }
                            return o(e, [{
                                key: "detach",
                                value: function() {
                                    return null !== this._owner && (this._owner.detach(this), !0)
                                }
                            }]), e
                        }(),
                        s = function() {
                            function e() {
                                i(this, e), this._head = this._tail = void 0
                            }
                            return o(e, [{
                                key: "handlers",
                                value: function() {
                                    var e = !(arguments.length <= 0 || void 0 === arguments[0]) && arguments[0],
                                        t = this._head;
                                    if (e) return !!t;
                                    for (var n = []; t;) n.push(t), t = t._next;
                                    return n
                                }
                            }, {
                                key: "has",
                                value: function(e) {
                                    if (!(e instanceof a)) throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object.");
                                    return e._owner === this
                                }
                            }, {
                                key: "dispatch",
                                value: function() {
                                    var e = this._head;
                                    if (!e) return !1;
                                    for (; e;) e._once && this.detach(e), e._fn.apply(e._thisArg, arguments), e = e._next;
                                    return !0
                                }
                            }, {
                                key: "add",
                                value: function(e) {
                                    var t = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                                    if ("function" != typeof e) throw new Error("MiniSignal#add(): First arg must be a Function.");
                                    return r(this, new a(e, !1, t))
                                }
                            }, {
                                key: "once",
                                value: function(e) {
                                    var t = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                                    if ("function" != typeof e) throw new Error("MiniSignal#once(): First arg must be a Function.");
                                    return r(this, new a(e, !0, t))
                                }
                            }, {
                                key: "detach",
                                value: function(e) {
                                    if (!(e instanceof a)) throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object.");
                                    return e._owner !== this ? this : (e._prev && (e._prev._next = e._next), e._next && (e._next._prev = e._prev), e === this._head ? (this._head = e._next, null === e._next && (this._tail = null)) : e === this._tail && (this._tail = e._prev, this._tail._next = null), e._owner = null, this)
                                }
                            }, {
                                key: "detachAll",
                                value: function() {
                                    var e = this._head;
                                    if (!e) return this;
                                    for (this._head = this._tail = null; e;) e._owner = null, e = e._next;
                                    return this
                                }
                            }]), e
                        }();
                    s.MiniSignalBinding = a, n.default = s, t.exports = n.default
                }, {}],
                39: [function(e, t, n) {
                    "use strict";
                    t.exports = function(e, t) {
                        t = t || {};
                        for (var n = {
                                key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
                                q: {
                                    name: "queryKey",
                                    parser: /(?:^|&)([^&=]*)=?([^&]*)/g
                                },
                                parser: {
                                    strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
                                    loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
                                }
                            }, i = n.parser[t.strictMode ? "strict" : "loose"].exec(e), r = {}, o = 14; o--;) r[n.key[o]] = i[o] || "";
                        return r[n.q.name] = {}, r[n.key[12]].replace(n.q.parser, function(e, t, i) {
                            t && (r[n.q.name][t] = i)
                        }), r
                    }
                }, {}],
                40: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = e("../core"),
                        a = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(o),
                        s = e("ismobilejs"),
                        u = i(s),
                        l = e("./accessibleTarget"),
                        c = i(l);
                    a.utils.mixins.delayMixin(a.DisplayObject.prototype, c.default);
                    var h = 100,
                        p = 0,
                        d = 0,
                        f = 2,
                        m = function() {
                            function e(t) {
                                r(this, e), !u.default.tablet && !u.default.phone || navigator.isCocoonJS || this.createTouchHook();
                                var n = document.createElement("div");
                                n.style.width = h + "px", n.style.height = h + "px", n.style.position = "absolute", n.style.top = p + "px", n.style.left = d + "px", n.style.zIndex = f, this.div = n, this.pool = [], this.renderId = 0, this.debug = !1, this.renderer = t, this.children = [], this._onKeyDown = this._onKeyDown.bind(this), this._onMouseMove = this._onMouseMove.bind(this), this.isActive = !1, this.isMobileAccessabillity = !1, window.addEventListener("keydown", this._onKeyDown, !1)
                            }
                            return e.prototype.createTouchHook = function() {
                                var e = this,
                                    t = document.createElement("button");
                                t.style.width = "1px", t.style.height = "1px", t.style.position = "absolute", t.style.top = "-1000px", t.style.left = "-1000px", t.style.zIndex = 2, t.style.backgroundColor = "#FF0000", t.title = "HOOK DIV", t.addEventListener("focus", function() {
                                    e.isMobileAccessabillity = !0, e.activate(), document.body.removeChild(t)
                                }), document.body.appendChild(t)
                            }, e.prototype.activate = function() {
                                this.isActive || (this.isActive = !0, window.document.addEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown, !1), this.renderer.on("postrender", this.update, this), this.renderer.view.parentNode && this.renderer.view.parentNode.appendChild(this.div))
                            }, e.prototype.deactivate = function() {
                                this.isActive && !this.isMobileAccessabillity && (this.isActive = !1, window.document.removeEventListener("mousemove", this._onMouseMove), window.addEventListener("keydown", this._onKeyDown, !1), this.renderer.off("postrender", this.update), this.div.parentNode && this.div.parentNode.removeChild(this.div))
                            }, e.prototype.updateAccessibleObjects = function(e) {
                                if (e.visible) {
                                    e.accessible && e.interactive && (e._accessibleActive || this.addChild(e), e.renderId = this.renderId);
                                    for (var t = e.children, n = t.length - 1; n >= 0; n--) this.updateAccessibleObjects(t[n])
                                }
                            }, e.prototype.update = function() {
                                if (this.renderer.renderingToScreen) {
                                    this.updateAccessibleObjects(this.renderer._lastObjectRendered);
                                    var e = this.renderer.view.getBoundingClientRect(),
                                        t = e.width / this.renderer.width,
                                        n = e.height / this.renderer.height,
                                        i = this.div;
                                    i.style.left = e.left + "px", i.style.top = e.top + "px", i.style.width = this.renderer.width + "px", i.style.height = this.renderer.height + "px";
                                    for (var r = 0; r < this.children.length; r++) {
                                        var o = this.children[r];
                                        if (o.renderId !== this.renderId) o._accessibleActive = !1, a.utils.removeItems(this.children, r, 1), this.div.removeChild(o._accessibleDiv), this.pool.push(o._accessibleDiv), o._accessibleDiv = null, r--, 0 === this.children.length && this.deactivate();
                                        else {
                                            i = o._accessibleDiv;
                                            var s = o.hitArea,
                                                u = o.worldTransform;
                                            o.hitArea ? (i.style.left = (u.tx + s.x * u.a) * t + "px", i.style.top = (u.ty + s.y * u.d) * n + "px", i.style.width = s.width * u.a * t + "px", i.style.height = s.height * u.d * n + "px") : (s = o.getBounds(), this.capHitArea(s), i.style.left = s.x * t + "px", i.style.top = s.y * n + "px", i.style.width = s.width * t + "px", i.style.height = s.height * n + "px")
                                        }
                                    }
                                    this.renderId++
                                }
                            }, e.prototype.capHitArea = function(e) {
                                e.x < 0 && (e.width += e.x, e.x = 0), e.y < 0 && (e.height += e.y, e.y = 0), e.x + e.width > this.renderer.width && (e.width = this.renderer.width - e.x), e.y + e.height > this.renderer.height && (e.height = this.renderer.height - e.y)
                            }, e.prototype.addChild = function(e) {
                                var t = this.pool.pop();
                                t || (t = document.createElement("button"), t.style.width = h + "px", t.style.height = h + "px", t.style.backgroundColor = this.debug ? "rgba(255,0,0,0.5)" : "transparent", t.style.position = "absolute", t.style.zIndex = f, t.style.borderStyle = "none", t.addEventListener("click", this._onClick.bind(this)), t.addEventListener("focus", this._onFocus.bind(this)), t.addEventListener("focusout", this._onFocusOut.bind(this))), e.accessibleTitle ? t.title = e.accessibleTitle : e.accessibleTitle || e.accessibleHint || (t.title = "displayObject " + this.tabIndex), e.accessibleHint && t.setAttribute("aria-label", e.accessibleHint), e._accessibleActive = !0, e._accessibleDiv = t, t.displayObject = e, this.children.push(e), this.div.appendChild(e._accessibleDiv), e._accessibleDiv.tabIndex = e.tabIndex
                            }, e.prototype._onClick = function(e) {
                                var t = this.renderer.plugins.interaction;
                                t.dispatchEvent(e.target.displayObject, "click", t.eventData)
                            }, e.prototype._onFocus = function(e) {
                                var t = this.renderer.plugins.interaction;
                                t.dispatchEvent(e.target.displayObject, "mouseover", t.eventData)
                            }, e.prototype._onFocusOut = function(e) {
                                var t = this.renderer.plugins.interaction;
                                t.dispatchEvent(e.target.displayObject, "mouseout", t.eventData)
                            }, e.prototype._onKeyDown = function(e) {
                                9 === e.keyCode && this.activate()
                            }, e.prototype._onMouseMove = function() {
                                this.deactivate()
                            }, e.prototype.destroy = function() {
                                this.div = null;
                                for (var e = 0; e < this.children.length; e++) this.children[e].div = null;
                                window.document.removeEventListener("mousemove", this._onMouseMove), window.removeEventListener("keydown", this._onKeyDown), this.pool = null, this.children = null, this.renderer = null
                            }, e
                        }();
                    n.default = m, a.WebGLRenderer.registerPlugin("accessibility", m), a.CanvasRenderer.registerPlugin("accessibility", m)
                }, {
                    "../core": 65,
                    "./accessibleTarget": 41,
                    ismobilejs: 4
                }],
                41: [function(e, t, n) {
                    "use strict";
                    n.__esModule = !0, n.default = {
                        accessible: !1,
                        accessibleTitle: null,
                        accessibleHint: null,
                        tabIndex: 0,
                        _accessibleActive: !1,
                        _accessibleDiv: !1
                    }
                }, {}],
                42: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./accessibleTarget");
                    Object.defineProperty(n, "accessibleTarget", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./AccessibilityManager");
                    Object.defineProperty(n, "AccessibilityManager", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    })
                }, {
                    "./AccessibilityManager": 40,
                    "./accessibleTarget": 41
                }],
                43: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        a = e("./autoDetectRenderer"),
                        s = e("./display/Container"),
                        u = i(s),
                        l = e("./ticker"),
                        c = e("./settings"),
                        h = i(c),
                        p = e("./const"),
                        d = function() {
                            function e(t, n, i, o, s) {
                                r(this, e), "number" == typeof t && (t = Object.assign({
                                    width: t,
                                    height: n || h.default.RENDER_OPTIONS.height,
                                    forceCanvas: !!o,
                                    sharedTicker: !!s
                                }, i)), this._options = t = Object.assign({
                                    autoStart: !0,
                                    sharedTicker: !1,
                                    forceCanvas: !1,
                                    sharedLoader: !1
                                }, t), this.renderer = (0, a.autoDetectRenderer)(t), this.stage = new u.default, this._ticker = null, this.ticker = t.sharedTicker ? l.shared : new l.Ticker, t.autoStart && this.start()
                            }
                            return e.prototype.render = function() {
                                this.renderer.render(this.stage)
                            }, e.prototype.stop = function() {
                                this._ticker.stop()
                            }, e.prototype.start = function() {
                                this._ticker.start()
                            }, e.prototype.destroy = function(e) {
                                var t = this._ticker;
                                this.ticker = null, t.destroy(), this.stage.destroy(), this.stage = null, this.renderer.destroy(e), this.renderer = null, this._options = null
                            }, o(e, [{
                                key: "ticker",
                                set: function(e) {
                                    this._ticker && this._ticker.remove(this.render, this), this._ticker = e, e && e.add(this.render, this, p.UPDATE_PRIORITY.LOW)
                                },
                                get: function() {
                                    return this._ticker
                                }
                            }, {
                                key: "view",
                                get: function() {
                                    return this.renderer.view
                                }
                            }, {
                                key: "screen",
                                get: function() {
                                    return this.renderer.screen
                                }
                            }]), e
                        }();
                    n.default = d
                }, {
                    "./autoDetectRenderer": 45,
                    "./const": 46,
                    "./display/Container": 48,
                    "./settings": 101,
                    "./ticker": 121
                }],
                44: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }

                    function a(e, t) {
                        if (e instanceof Array) {
                            if ("precision" !== e[0].substring(0, 9)) {
                                var n = e.slice(0);
                                return n.unshift("precision " + t + " float;"), n
                            }
                        } else if ("precision" !== e.substring(0, 9)) return "precision " + t + " float;\n" + e;
                        return e
                    }
                    n.__esModule = !0;
                    var s = e("pixi-gl-core"),
                        u = e("./settings"),
                        l = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(u),
                        c = function(e) {
                            function t(n, o, s) {
                                return i(this, t), r(this, e.call(this, n, a(o, l.default.PRECISION_VERTEX), a(s, l.default.PRECISION_FRAGMENT)))
                            }
                            return o(t, e), t
                        }(s.GLShader);
                    n.default = c
                }, {
                    "./settings": 101,
                    "pixi-gl-core": 12
                }],
                45: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t, n, i) {
                        var r = e && e.forceCanvas;
                        return void 0 !== i && (r = i), !r && a.isWebGLSupported() ? new c.default(e, t, n) : new u.default(e, t, n)
                    }
                    n.__esModule = !0, n.autoDetectRenderer = r;
                    var o = e("./utils"),
                        a = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(o),
                        s = e("./renderers/canvas/CanvasRenderer"),
                        u = i(s),
                        l = e("./renderers/webgl/WebGLRenderer"),
                        c = i(l)
                }, {
                    "./renderers/canvas/CanvasRenderer": 77,
                    "./renderers/webgl/WebGLRenderer": 84,
                    "./utils": 125
                }],
                46: [function(e, t, n) {
                    "use strict";
                    n.__esModule = !0;
                    n.VERSION = "4.6.2", n.PI_2 = 2 * Math.PI, n.RAD_TO_DEG = 180 / Math.PI, n.DEG_TO_RAD = Math.PI / 180, n.RENDERER_TYPE = {
                        UNKNOWN: 0,
                        WEBGL: 1,
                        CANVAS: 2
                    }, n.BLEND_MODES = {
                        NORMAL: 0,
                        ADD: 1,
                        MULTIPLY: 2,
                        SCREEN: 3,
                        OVERLAY: 4,
                        DARKEN: 5,
                        LIGHTEN: 6,
                        COLOR_DODGE: 7,
                        COLOR_BURN: 8,
                        HARD_LIGHT: 9,
                        SOFT_LIGHT: 10,
                        DIFFERENCE: 11,
                        EXCLUSION: 12,
                        HUE: 13,
                        SATURATION: 14,
                        COLOR: 15,
                        LUMINOSITY: 16,
                        NORMAL_NPM: 17,
                        ADD_NPM: 18,
                        SCREEN_NPM: 19
                    }, n.DRAW_MODES = {
                        POINTS: 0,
                        LINES: 1,
                        LINE_LOOP: 2,
                        LINE_STRIP: 3,
                        TRIANGLES: 4,
                        TRIANGLE_STRIP: 5,
                        TRIANGLE_FAN: 6
                    }, n.SCALE_MODES = {
                        LINEAR: 0,
                        NEAREST: 1
                    }, n.WRAP_MODES = {
                        CLAMP: 0,
                        REPEAT: 1,
                        MIRRORED_REPEAT: 2
                    }, n.GC_MODES = {
                        AUTO: 0,
                        MANUAL: 1
                    }, n.URL_FILE_EXTENSION = /\.(\w{3,4})(?:$|\?|#)/i, n.DATA_URI = /^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;(charset=[\w-]+|base64))?,(.*)/i, n.SVG_SIZE = /<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i, n.SHAPES = {
                        POLY: 0,
                        RECT: 1,
                        CIRC: 2,
                        ELIP: 3,
                        RREC: 4
                    }, n.PRECISION = {
                        LOW: "lowp",
                        MEDIUM: "mediump",
                        HIGH: "highp"
                    }, n.TRANSFORM_MODE = {
                        STATIC: 0,
                        DYNAMIC: 1
                    }, n.TEXT_GRADIENT = {
                        LINEAR_VERTICAL: 0,
                        LINEAR_HORIZONTAL: 1
                    }, n.UPDATE_PRIORITY = {
                        INTERACTION: 50,
                        HIGH: 25,
                        NORMAL: 0,
                        LOW: -25,
                        UTILITY: -50
                    }
                }, {}],
                47: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../math"),
                        o = function() {
                            function e() {
                                i(this, e), this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, this.rect = null
                            }
                            return e.prototype.isEmpty = function() {
                                return this.minX > this.maxX || this.minY > this.maxY
                            }, e.prototype.clear = function() {
                                this.updateID++, this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0
                            }, e.prototype.getRectangle = function(e) {
                                return this.minX > this.maxX || this.minY > this.maxY ? r.Rectangle.EMPTY : (e = e || new r.Rectangle(0, 0, 1, 1), e.x = this.minX, e.y = this.minY, e.width = this.maxX - this.minX, e.height = this.maxY - this.minY, e)
                            }, e.prototype.addPoint = function(e) {
                                this.minX = Math.min(this.minX, e.x), this.maxX = Math.max(this.maxX, e.x), this.minY = Math.min(this.minY, e.y), this.maxY = Math.max(this.maxY, e.y)
                            }, e.prototype.addQuad = function(e) {
                                var t = this.minX,
                                    n = this.minY,
                                    i = this.maxX,
                                    r = this.maxY,
                                    o = e[0],
                                    a = e[1];
                                t = o < t ? o : t, n = a < n ? a : n, i = o > i ? o : i, r = a > r ? a : r, o = e[2], a = e[3], t = o < t ? o : t, n = a < n ? a : n, i = o > i ? o : i, r = a > r ? a : r, o = e[4], a = e[5], t = o < t ? o : t, n = a < n ? a : n, i = o > i ? o : i, r = a > r ? a : r, o = e[6], a = e[7], t = o < t ? o : t, n = a < n ? a : n, i = o > i ? o : i, r = a > r ? a : r, this.minX = t, this.minY = n, this.maxX = i, this.maxY = r
                            }, e.prototype.addFrame = function(e, t, n, i, r) {
                                var o = e.worldTransform,
                                    a = o.a,
                                    s = o.b,
                                    u = o.c,
                                    l = o.d,
                                    c = o.tx,
                                    h = o.ty,
                                    p = this.minX,
                                    d = this.minY,
                                    f = this.maxX,
                                    m = this.maxY,
                                    _ = a * t + u * n + c,
                                    g = s * t + l * n + h;
                                p = _ < p ? _ : p, d = g < d ? g : d, f = _ > f ? _ : f, m = g > m ? g : m, _ = a * i + u * n + c, g = s * i + l * n + h, p = _ < p ? _ : p, d = g < d ? g : d, f = _ > f ? _ : f, m = g > m ? g : m, _ = a * t + u * r + c, g = s * t + l * r + h, p = _ < p ? _ : p, d = g < d ? g : d, f = _ > f ? _ : f, m = g > m ? g : m, _ = a * i + u * r + c, g = s * i + l * r + h, p = _ < p ? _ : p, d = g < d ? g : d, f = _ > f ? _ : f, m = g > m ? g : m, this.minX = p, this.minY = d, this.maxX = f, this.maxY = m
                            }, e.prototype.addVertices = function(e, t, n, i) {
                                for (var r = e.worldTransform, o = r.a, a = r.b, s = r.c, u = r.d, l = r.tx, c = r.ty, h = this.minX, p = this.minY, d = this.maxX, f = this.maxY, m = n; m < i; m += 2) {
                                    var _ = t[m],
                                        g = t[m + 1],
                                        y = o * _ + s * g + l,
                                        v = u * g + a * _ + c;
                                    h = y < h ? y : h, p = v < p ? v : p, d = y > d ? y : d, f = v > f ? v : f
                                }
                                this.minX = h, this.minY = p, this.maxX = d, this.maxY = f
                            }, e.prototype.addBounds = function(e) {
                                var t = this.minX,
                                    n = this.minY,
                                    i = this.maxX,
                                    r = this.maxY;
                                this.minX = e.minX < t ? e.minX : t, this.minY = e.minY < n ? e.minY : n, this.maxX = e.maxX > i ? e.maxX : i, this.maxY = e.maxY > r ? e.maxY : r
                            }, e.prototype.addBoundsMask = function(e, t) {
                                var n = e.minX > t.minX ? e.minX : t.minX,
                                    i = e.minY > t.minY ? e.minY : t.minY,
                                    r = e.maxX < t.maxX ? e.maxX : t.maxX,
                                    o = e.maxY < t.maxY ? e.maxY : t.maxY;
                                if (n <= r && i <= o) {
                                    var a = this.minX,
                                        s = this.minY,
                                        u = this.maxX,
                                        l = this.maxY;
                                    this.minX = n < a ? n : a, this.minY = i < s ? i : s, this.maxX = r > u ? r : u, this.maxY = o > l ? o : l
                                }
                            }, e.prototype.addBoundsArea = function(e, t) {
                                var n = e.minX > t.x ? e.minX : t.x,
                                    i = e.minY > t.y ? e.minY : t.y,
                                    r = e.maxX < t.x + t.width ? e.maxX : t.x + t.width,
                                    o = e.maxY < t.y + t.height ? e.maxY : t.y + t.height;
                                if (n <= r && i <= o) {
                                    var a = this.minX,
                                        s = this.minY,
                                        u = this.maxX,
                                        l = this.maxY;
                                    this.minX = n < a ? n : a, this.minY = i < s ? i : s, this.maxX = r > u ? r : u, this.maxY = o > l ? o : l
                                }
                            }, e
                        }();
                    n.default = o
                }, {
                    "../math": 70
                }],
                48: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../utils"),
                        u = e("./DisplayObject"),
                        l = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(u),
                        c = function(e) {
                            function t() {
                                i(this, t);
                                var n = r(this, e.call(this));
                                return n.children = [], n
                            }
                            return o(t, e), t.prototype.onChildrenChange = function() {}, t.prototype.addChild = function(e) {
                                var t = arguments.length;
                                if (t > 1)
                                    for (var n = 0; n < t; n++) this.addChild(arguments[n]);
                                else e.parent && e.parent.removeChild(e), e.parent = this, e.transform._parentID = -1, this.children.push(e), this._boundsID++, this.onChildrenChange(this.children.length - 1), e.emit("added", this);
                                return e
                            }, t.prototype.addChildAt = function(e, t) {
                                if (t < 0 || t > this.children.length) throw new Error(e + "addChildAt: The index " + t + " supplied is out of bounds " + this.children.length);
                                return e.parent && e.parent.removeChild(e), e.parent = this, e.transform._parentID = -1, this.children.splice(t, 0, e), this._boundsID++, this.onChildrenChange(t), e.emit("added", this), e
                            }, t.prototype.swapChildren = function(e, t) {
                                if (e !== t) {
                                    var n = this.getChildIndex(e),
                                        i = this.getChildIndex(t);
                                    this.children[n] = t, this.children[i] = e, this.onChildrenChange(n < i ? n : i)
                                }
                            }, t.prototype.getChildIndex = function(e) {
                                var t = this.children.indexOf(e);
                                if (-1 === t) throw new Error("The supplied DisplayObject must be a child of the caller");
                                return t
                            }, t.prototype.setChildIndex = function(e, t) {
                                if (t < 0 || t >= this.children.length) throw new Error("The supplied index is out of bounds");
                                var n = this.getChildIndex(e);
                                (0, s.removeItems)(this.children, n, 1), this.children.splice(t, 0, e), this.onChildrenChange(t)
                            }, t.prototype.getChildAt = function(e) {
                                if (e < 0 || e >= this.children.length) throw new Error("getChildAt: Index (" + e + ") does not exist.");
                                return this.children[e]
                            }, t.prototype.removeChild = function(e) {
                                var t = arguments.length;
                                if (t > 1)
                                    for (var n = 0; n < t; n++) this.removeChild(arguments[n]);
                                else {
                                    var i = this.children.indexOf(e);
                                    if (-1 === i) return null;
                                    e.parent = null, e.transform._parentID = -1, (0, s.removeItems)(this.children, i, 1), this._boundsID++, this.onChildrenChange(i), e.emit("removed", this)
                                }
                                return e
                            }, t.prototype.removeChildAt = function(e) {
                                var t = this.getChildAt(e);
                                return t.parent = null, t.transform._parentID = -1, (0, s.removeItems)(this.children, e, 1), this._boundsID++, this.onChildrenChange(e), t.emit("removed", this), t
                            }, t.prototype.removeChildren = function() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    t = arguments[1],
                                    n = e,
                                    i = "number" == typeof t ? t : this.children.length,
                                    r = i - n,
                                    o = void 0;
                                if (r > 0 && r <= i) {
                                    o = this.children.splice(n, r);
                                    for (var a = 0; a < o.length; ++a) o[a].parent = null, o[a].transform && (o[a].transform._parentID = -1);
                                    this._boundsID++, this.onChildrenChange(e);
                                    for (var s = 0; s < o.length; ++s) o[s].emit("removed", this);
                                    return o
                                }
                                if (0 === r && 0 === this.children.length) return [];
                                throw new RangeError("removeChildren: numeric values are outside the acceptable range.")
                            }, t.prototype.updateTransform = function() {
                                this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha;
                                for (var e = 0, t = this.children.length; e < t; ++e) {
                                    var n = this.children[e];
                                    n.visible && n.updateTransform()
                                }
                            }, t.prototype.calculateBounds = function() {
                                this._bounds.clear(), this._calculateBounds();
                                for (var e = 0; e < this.children.length; e++) {
                                    var t = this.children[e];
                                    t.visible && t.renderable && (t.calculateBounds(), t._mask ? (t._mask.calculateBounds(), this._bounds.addBoundsMask(t._bounds, t._mask._bounds)) : t.filterArea ? this._bounds.addBoundsArea(t._bounds, t.filterArea) : this._bounds.addBounds(t._bounds))
                                }
                                this._lastBoundsID = this._boundsID
                            }, t.prototype._calculateBounds = function() {}, t.prototype.renderWebGL = function(e) {
                                if (this.visible && !(this.worldAlpha <= 0) && this.renderable)
                                    if (this._mask || this._filters) this.renderAdvancedWebGL(e);
                                    else {
                                        this._renderWebGL(e);
                                        for (var t = 0, n = this.children.length; t < n; ++t) this.children[t].renderWebGL(e)
                                    }
                            }, t.prototype.renderAdvancedWebGL = function(e) {
                                e.flush();
                                var t = this._filters,
                                    n = this._mask;
                                if (t) {
                                    this._enabledFilters || (this._enabledFilters = []), this._enabledFilters.length = 0;
                                    for (var i = 0; i < t.length; i++) t[i].enabled && this._enabledFilters.push(t[i]);
                                    this._enabledFilters.length && e.filterManager.pushFilter(this, this._enabledFilters)
                                }
                                n && e.maskManager.pushMask(this, this._mask), this._renderWebGL(e);
                                for (var r = 0, o = this.children.length; r < o; r++) this.children[r].renderWebGL(e);
                                e.flush(), n && e.maskManager.popMask(this, this._mask), t && this._enabledFilters && this._enabledFilters.length && e.filterManager.popFilter()
                            }, t.prototype._renderWebGL = function(e) {}, t.prototype._renderCanvas = function(e) {}, t.prototype.renderCanvas = function(e) {
                                if (this.visible && !(this.worldAlpha <= 0) && this.renderable) {
                                    this._mask && e.maskManager.pushMask(this._mask), this._renderCanvas(e);
                                    for (var t = 0, n = this.children.length; t < n; ++t) this.children[t].renderCanvas(e);
                                    this._mask && e.maskManager.popMask(e)
                                }
                            }, t.prototype.destroy = function(t) {
                                e.prototype.destroy.call(this);
                                var n = "boolean" == typeof t ? t : t && t.children,
                                    i = this.removeChildren(0, this.children.length);
                                if (n)
                                    for (var r = 0; r < i.length; ++r) i[r].destroy(t)
                            }, a(t, [{
                                key: "width",
                                get: function() {
                                    return this.scale.x * this.getLocalBounds().width
                                },
                                set: function(e) {
                                    var t = this.getLocalBounds().width;
                                    this.scale.x = 0 !== t ? e / t : 1, this._width = e
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.scale.y * this.getLocalBounds().height
                                },
                                set: function(e) {
                                    var t = this.getLocalBounds().height;
                                    this.scale.y = 0 !== t ? e / t : 1, this._height = e
                                }
                            }]), t
                        }(l.default);
                    n.default = c, c.prototype.containerUpdateTransform = c.prototype.updateTransform
                }, {
                    "../utils": 125,
                    "./DisplayObject": 49
                }],
                49: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("eventemitter3"),
                        l = i(u),
                        c = e("../const"),
                        h = e("../settings"),
                        p = i(h),
                        d = e("./TransformStatic"),
                        f = i(d),
                        m = e("./Transform"),
                        _ = i(m),
                        g = e("./Bounds"),
                        y = i(g),
                        v = e("../math"),
                        b = function(e) {
                            function t() {
                                r(this, t);
                                var n = o(this, e.call(this)),
                                    i = p.default.TRANSFORM_MODE === c.TRANSFORM_MODE.STATIC ? f.default : _.default;
                                return n.tempDisplayObjectParent = null, n.transform = new i, n.alpha = 1, n.visible = !0, n.renderable = !0, n.parent = null, n.worldAlpha = 1, n.filterArea = null, n._filters = null, n._enabledFilters = null, n._bounds = new y.default, n._boundsID = 0, n._lastBoundsID = -1, n._boundsRect = null, n._localBoundsRect = null, n._mask = null, n._destroyed = !1, n
                            }
                            return a(t, e), t.prototype.updateTransform = function() {
                                this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha, this._bounds.updateID++
                            }, t.prototype._recursivePostUpdateTransform = function() {
                                this.parent ? (this.parent._recursivePostUpdateTransform(), this.transform.updateTransform(this.parent.transform)) : this.transform.updateTransform(this._tempDisplayObjectParent.transform)
                            }, t.prototype.getBounds = function(e, t) {
                                return e || (this.parent ? (this._recursivePostUpdateTransform(), this.updateTransform()) : (this.parent = this._tempDisplayObjectParent, this.updateTransform(), this.parent = null)), this._boundsID !== this._lastBoundsID && this.calculateBounds(), t || (this._boundsRect || (this._boundsRect = new v.Rectangle), t = this._boundsRect), this._bounds.getRectangle(t)
                            }, t.prototype.getLocalBounds = function(e) {
                                var t = this.transform,
                                    n = this.parent;
                                this.parent = null, this.transform = this._tempDisplayObjectParent.transform, e || (this._localBoundsRect || (this._localBoundsRect = new v.Rectangle), e = this._localBoundsRect);
                                var i = this.getBounds(!1, e);
                                return this.parent = n, this.transform = t, i
                            }, t.prototype.toGlobal = function(e, t) {
                                return arguments.length > 2 && void 0 !== arguments[2] && arguments[2] || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.apply(e, t)
                            }, t.prototype.toLocal = function(e, t, n, i) {
                                return t && (e = t.toGlobal(e, n, i)), i || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.applyInverse(e, n)
                            }, t.prototype.renderWebGL = function(e) {}, t.prototype.renderCanvas = function(e) {}, t.prototype.setParent = function(e) {
                                if (!e || !e.addChild) throw new Error("setParent: Argument must be a Container");
                                return e.addChild(this), e
                            }, t.prototype.setTransform = function() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1,
                                    i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1,
                                    r = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,
                                    o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0,
                                    a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0,
                                    s = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0,
                                    u = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0;
                                return this.position.x = e, this.position.y = t, this.scale.x = n || 1, this.scale.y = i || 1, this.rotation = r, this.skew.x = o, this.skew.y = a, this.pivot.x = s, this.pivot.y = u, this
                            }, t.prototype.destroy = function() {
                                this.removeAllListeners(), this.parent && this.parent.removeChild(this), this.transform = null, this.parent = null, this._bounds = null, this._currentBounds = null, this._mask = null, this.filterArea = null, this.interactive = !1, this.interactiveChildren = !1, this._destroyed = !0
                            }, s(t, [{
                                key: "_tempDisplayObjectParent",
                                get: function() {
                                    return null === this.tempDisplayObjectParent && (this.tempDisplayObjectParent = new t), this.tempDisplayObjectParent
                                }
                            }, {
                                key: "x",
                                get: function() {
                                    return this.position.x
                                },
                                set: function(e) {
                                    this.transform.position.x = e
                                }
                            }, {
                                key: "y",
                                get: function() {
                                    return this.position.y
                                },
                                set: function(e) {
                                    this.transform.position.y = e
                                }
                            }, {
                                key: "worldTransform",
                                get: function() {
                                    return this.transform.worldTransform
                                }
                            }, {
                                key: "localTransform",
                                get: function() {
                                    return this.transform.localTransform
                                }
                            }, {
                                key: "position",
                                get: function() {
                                    return this.transform.position
                                },
                                set: function(e) {
                                    this.transform.position.copy(e)
                                }
                            }, {
                                key: "scale",
                                get: function() {
                                    return this.transform.scale
                                },
                                set: function(e) {
                                    this.transform.scale.copy(e)
                                }
                            }, {
                                key: "pivot",
                                get: function() {
                                    return this.transform.pivot
                                },
                                set: function(e) {
                                    this.transform.pivot.copy(e)
                                }
                            }, {
                                key: "skew",
                                get: function() {
                                    return this.transform.skew
                                },
                                set: function(e) {
                                    this.transform.skew.copy(e)
                                }
                            }, {
                                key: "rotation",
                                get: function() {
                                    return this.transform.rotation
                                },
                                set: function(e) {
                                    this.transform.rotation = e
                                }
                            }, {
                                key: "worldVisible",
                                get: function() {
                                    var e = this;
                                    do {
                                        if (!e.visible) return !1;
                                        e = e.parent
                                    } while (e);
                                    return !0
                                }
                            }, {
                                key: "mask",
                                get: function() {
                                    return this._mask
                                },
                                set: function(e) {
                                    this._mask && (this._mask.renderable = !0), this._mask = e, this._mask && (this._mask.renderable = !1)
                                }
                            }, {
                                key: "filters",
                                get: function() {
                                    return this._filters && this._filters.slice()
                                },
                                set: function(e) {
                                    this._filters = e && e.slice()
                                }
                            }]), t
                        }(l.default);
                    n.default = b, b.prototype.displayObjectUpdateTransform = b.prototype.updateTransform
                }, {
                    "../const": 46,
                    "../math": 70,
                    "../settings": 101,
                    "./Bounds": 47,
                    "./Transform": 50,
                    "./TransformStatic": 52,
                    eventemitter3: 3
                }],
                50: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../math"),
                        u = e("./TransformBase"),
                        l = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(u),
                        c = function(e) {
                            function t() {
                                i(this, t);
                                var n = r(this, e.call(this));
                                return n.position = new s.Point(0, 0), n.scale = new s.Point(1, 1), n.skew = new s.ObservablePoint(n.updateSkew, n, 0, 0), n.pivot = new s.Point(0, 0), n._rotation = 0, n._cx = 1, n._sx = 0, n._cy = 0, n._sy = 1, n
                            }
                            return o(t, e), t.prototype.updateSkew = function() {
                                this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x)
                            }, t.prototype.updateLocalTransform = function() {
                                var e = this.localTransform;
                                e.a = this._cx * this.scale.x,
                                    e.b = this._sx * this.scale.x, e.c = this._cy * this.scale.y, e.d = this._sy * this.scale.y, e.tx = this.position.x - (this.pivot.x * e.a + this.pivot.y * e.c), e.ty = this.position.y - (this.pivot.x * e.b + this.pivot.y * e.d)
                            }, t.prototype.updateTransform = function(e) {
                                var t = this.localTransform;
                                t.a = this._cx * this.scale.x, t.b = this._sx * this.scale.x, t.c = this._cy * this.scale.y, t.d = this._sy * this.scale.y, t.tx = this.position.x - (this.pivot.x * t.a + this.pivot.y * t.c), t.ty = this.position.y - (this.pivot.x * t.b + this.pivot.y * t.d);
                                var n = e.worldTransform,
                                    i = this.worldTransform;
                                i.a = t.a * n.a + t.b * n.c, i.b = t.a * n.b + t.b * n.d, i.c = t.c * n.a + t.d * n.c, i.d = t.c * n.b + t.d * n.d, i.tx = t.tx * n.a + t.ty * n.c + n.tx, i.ty = t.tx * n.b + t.ty * n.d + n.ty, this._worldID++
                            }, t.prototype.setFromMatrix = function(e) {
                                e.decompose(this)
                            }, a(t, [{
                                key: "rotation",
                                get: function() {
                                    return this._rotation
                                },
                                set: function(e) {
                                    this._rotation = e, this.updateSkew()
                                }
                            }]), t
                        }(l.default);
                    n.default = c
                }, {
                    "../math": 70,
                    "./TransformBase": 51
                }],
                51: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../math"),
                        o = function() {
                            function e() {
                                i(this, e), this.worldTransform = new r.Matrix, this.localTransform = new r.Matrix, this._worldID = 0, this._parentID = 0
                            }
                            return e.prototype.updateLocalTransform = function() {}, e.prototype.updateTransform = function(e) {
                                var t = e.worldTransform,
                                    n = this.worldTransform,
                                    i = this.localTransform;
                                n.a = i.a * t.a + i.b * t.c, n.b = i.a * t.b + i.b * t.d, n.c = i.c * t.a + i.d * t.c, n.d = i.c * t.b + i.d * t.d, n.tx = i.tx * t.a + i.ty * t.c + t.tx, n.ty = i.tx * t.b + i.ty * t.d + t.ty, this._worldID++
                            }, e
                        }();
                    n.default = o, o.prototype.updateWorldTransform = o.prototype.updateTransform, o.IDENTITY = new o
                }, {
                    "../math": 70
                }],
                52: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../math"),
                        u = e("./TransformBase"),
                        l = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(u),
                        c = function(e) {
                            function t() {
                                i(this, t);
                                var n = r(this, e.call(this));
                                return n.position = new s.ObservablePoint(n.onChange, n, 0, 0), n.scale = new s.ObservablePoint(n.onChange, n, 1, 1), n.pivot = new s.ObservablePoint(n.onChange, n, 0, 0), n.skew = new s.ObservablePoint(n.updateSkew, n, 0, 0), n._rotation = 0, n._cx = 1, n._sx = 0, n._cy = 0, n._sy = 1, n._localID = 0, n._currentLocalID = 0, n
                            }
                            return o(t, e), t.prototype.onChange = function() {
                                this._localID++
                            }, t.prototype.updateSkew = function() {
                                this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x), this._localID++
                            }, t.prototype.updateLocalTransform = function() {
                                var e = this.localTransform;
                                this._localID !== this._currentLocalID && (e.a = this._cx * this.scale._x, e.b = this._sx * this.scale._x, e.c = this._cy * this.scale._y, e.d = this._sy * this.scale._y, e.tx = this.position._x - (this.pivot._x * e.a + this.pivot._y * e.c), e.ty = this.position._y - (this.pivot._x * e.b + this.pivot._y * e.d), this._currentLocalID = this._localID, this._parentID = -1)
                            }, t.prototype.updateTransform = function(e) {
                                var t = this.localTransform;
                                if (this._localID !== this._currentLocalID && (t.a = this._cx * this.scale._x, t.b = this._sx * this.scale._x, t.c = this._cy * this.scale._y, t.d = this._sy * this.scale._y, t.tx = this.position._x - (this.pivot._x * t.a + this.pivot._y * t.c), t.ty = this.position._y - (this.pivot._x * t.b + this.pivot._y * t.d), this._currentLocalID = this._localID, this._parentID = -1), this._parentID !== e._worldID) {
                                    var n = e.worldTransform,
                                        i = this.worldTransform;
                                    i.a = t.a * n.a + t.b * n.c, i.b = t.a * n.b + t.b * n.d, i.c = t.c * n.a + t.d * n.c, i.d = t.c * n.b + t.d * n.d, i.tx = t.tx * n.a + t.ty * n.c + n.tx, i.ty = t.tx * n.b + t.ty * n.d + n.ty, this._parentID = e._worldID, this._worldID++
                                }
                            }, t.prototype.setFromMatrix = function(e) {
                                e.decompose(this), this._localID++
                            }, a(t, [{
                                key: "rotation",
                                get: function() {
                                    return this._rotation
                                },
                                set: function(e) {
                                    this._rotation = e, this.updateSkew()
                                }
                            }]), t
                        }(l.default);
                    n.default = c
                }, {
                    "../math": 70,
                    "./TransformBase": 51
                }],
                53: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../display/Container"),
                        u = i(s),
                        l = e("../textures/RenderTexture"),
                        c = i(l),
                        h = e("../textures/Texture"),
                        p = i(h),
                        d = e("./GraphicsData"),
                        f = i(d),
                        m = e("../sprites/Sprite"),
                        _ = i(m),
                        g = e("../math"),
                        y = e("../utils"),
                        v = e("../const"),
                        b = e("../display/Bounds"),
                        x = i(b),
                        T = e("./utils/bezierCurveTo"),
                        w = i(T),
                        S = e("../renderers/canvas/CanvasRenderer"),
                        P = i(S),
                        C = void 0,
                        E = new g.Matrix,
                        M = new g.Point,
                        O = new Float32Array(4),
                        I = new Float32Array(4),
                        A = function(e) {
                            function t() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                                r(this, t);
                                var i = o(this, e.call(this));
                                return i.fillAlpha = 1, i.lineWidth = 0, i.nativeLines = n, i.lineColor = 0, i.graphicsData = [], i.tint = 16777215, i._prevTint = 16777215, i.blendMode = v.BLEND_MODES.NORMAL, i.currentPath = null, i._webGL = {}, i.isMask = !1, i.boundsPadding = 0, i._localBounds = new x.default, i.dirty = 0, i.fastRectDirty = -1, i.clearDirty = 0, i.boundsDirty = -1, i.cachedSpriteDirty = !1, i._spriteRect = null, i._fastRect = !1, i
                            }
                            return a(t, e), t.prototype.clone = function() {
                                var e = new t;
                                e.renderable = this.renderable, e.fillAlpha = this.fillAlpha, e.lineWidth = this.lineWidth, e.lineColor = this.lineColor, e.tint = this.tint, e.blendMode = this.blendMode, e.isMask = this.isMask, e.boundsPadding = this.boundsPadding, e.dirty = 0, e.cachedSpriteDirty = this.cachedSpriteDirty;
                                for (var n = 0; n < this.graphicsData.length; ++n) e.graphicsData.push(this.graphicsData[n].clone());
                                return e.currentPath = e.graphicsData[e.graphicsData.length - 1], e.updateLocalBounds(), e
                            }, t.prototype.lineStyle = function() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;
                                if (this.lineWidth = e, this.lineColor = t, this.lineAlpha = n, this.currentPath)
                                    if (this.currentPath.shape.points.length) {
                                        var i = new g.Polygon(this.currentPath.shape.points.slice(-2));
                                        i.closed = !1, this.drawShape(i)
                                    } else this.currentPath.lineWidth = this.lineWidth, this.currentPath.lineColor = this.lineColor, this.currentPath.lineAlpha = this.lineAlpha;
                                return this
                            }, t.prototype.moveTo = function(e, t) {
                                var n = new g.Polygon([e, t]);
                                return n.closed = !1, this.drawShape(n), this
                            }, t.prototype.lineTo = function(e, t) {
                                return this.currentPath.shape.points.push(e, t), this.dirty++, this
                            }, t.prototype.quadraticCurveTo = function(e, t, n, i) {
                                this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
                                var r = this.currentPath.shape.points,
                                    o = 0,
                                    a = 0;
                                0 === r.length && this.moveTo(0, 0);
                                for (var s = r[r.length - 2], u = r[r.length - 1], l = 1; l <= 20; ++l) {
                                    var c = l / 20;
                                    o = s + (e - s) * c, a = u + (t - u) * c, r.push(o + (e + (n - e) * c - o) * c, a + (t + (i - t) * c - a) * c)
                                }
                                return this.dirty++, this
                            }, t.prototype.bezierCurveTo = function(e, t, n, i, r, o) {
                                this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
                                var a = this.currentPath.shape.points,
                                    s = a[a.length - 2],
                                    u = a[a.length - 1];
                                return a.length -= 2, (0, w.default)(s, u, e, t, n, i, r, o, a), this.dirty++, this
                            }, t.prototype.arcTo = function(e, t, n, i, r) {
                                this.currentPath ? 0 === this.currentPath.shape.points.length && this.currentPath.shape.points.push(e, t) : this.moveTo(e, t);
                                var o = this.currentPath.shape.points,
                                    a = o[o.length - 2],
                                    s = o[o.length - 1],
                                    u = s - t,
                                    l = a - e,
                                    c = i - t,
                                    h = n - e,
                                    p = Math.abs(u * h - l * c);
                                if (p < 1e-8 || 0 === r) o[o.length - 2] === e && o[o.length - 1] === t || o.push(e, t);
                                else {
                                    var d = u * u + l * l,
                                        f = c * c + h * h,
                                        m = u * c + l * h,
                                        _ = r * Math.sqrt(d) / p,
                                        g = r * Math.sqrt(f) / p,
                                        y = _ * m / d,
                                        v = g * m / f,
                                        b = _ * h + g * l,
                                        x = _ * c + g * u,
                                        T = l * (g + y),
                                        w = u * (g + y),
                                        S = h * (_ + v),
                                        P = c * (_ + v),
                                        C = Math.atan2(w - x, T - b),
                                        E = Math.atan2(P - x, S - b);
                                    this.arc(b + e, x + t, r, C, E, l * c > h * u)
                                }
                                return this.dirty++, this
                            }, t.prototype.arc = function(e, t, n, i, r) {
                                var o = arguments.length > 5 && void 0 !== arguments[5] && arguments[5];
                                if (i === r) return this;
                                !o && r <= i ? r += 2 * Math.PI : o && i <= r && (i += 2 * Math.PI);
                                var a = r - i,
                                    s = 40 * Math.ceil(Math.abs(a) / (2 * Math.PI));
                                if (0 === a) return this;
                                var u = e + Math.cos(i) * n,
                                    l = t + Math.sin(i) * n,
                                    c = this.currentPath ? this.currentPath.shape.points : null;
                                c ? c[c.length - 2] === u && c[c.length - 1] === l || c.push(u, l) : (this.moveTo(u, l), c = this.currentPath.shape.points);
                                for (var h = a / (2 * s), p = 2 * h, d = Math.cos(h), f = Math.sin(h), m = s - 1, _ = m % 1 / m, g = 0; g <= m; ++g) {
                                    var y = g + _ * g,
                                        v = h + i + p * y,
                                        b = Math.cos(v),
                                        x = -Math.sin(v);
                                    c.push((d * b + f * x) * n + e, (d * -x + f * b) * n + t)
                                }
                                return this.dirty++, this
                            }, t.prototype.beginFill = function() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
                                return this.filling = !0, this.fillColor = e, this.fillAlpha = t, this.currentPath && this.currentPath.shape.points.length <= 2 && (this.currentPath.fill = this.filling, this.currentPath.fillColor = this.fillColor, this.currentPath.fillAlpha = this.fillAlpha), this
                            }, t.prototype.endFill = function() {
                                return this.filling = !1, this.fillColor = null, this.fillAlpha = 1, this
                            }, t.prototype.drawRect = function(e, t, n, i) {
                                return this.drawShape(new g.Rectangle(e, t, n, i)), this
                            }, t.prototype.drawRoundedRect = function(e, t, n, i, r) {
                                return this.drawShape(new g.RoundedRectangle(e, t, n, i, r)), this
                            }, t.prototype.drawCircle = function(e, t, n) {
                                return this.drawShape(new g.Circle(e, t, n)), this
                            }, t.prototype.drawEllipse = function(e, t, n, i) {
                                return this.drawShape(new g.Ellipse(e, t, n, i)), this
                            }, t.prototype.drawPolygon = function(e) {
                                var t = e,
                                    n = !0;
                                if (t instanceof g.Polygon && (n = t.closed, t = t.points), !Array.isArray(t)) {
                                    t = new Array(arguments.length);
                                    for (var i = 0; i < t.length; ++i) t[i] = arguments[i]
                                }
                                var r = new g.Polygon(t);
                                return r.closed = n, this.drawShape(r), this
                            }, t.prototype.clear = function() {
                                return (this.lineWidth || this.filling || this.graphicsData.length > 0) && (this.lineWidth = 0, this.filling = !1, this.boundsDirty = -1, this.dirty++, this.clearDirty++, this.graphicsData.length = 0), this.currentPath = null, this._spriteRect = null, this
                            }, t.prototype.isFastRect = function() {
                                return 1 === this.graphicsData.length && this.graphicsData[0].shape.type === v.SHAPES.RECT && !this.graphicsData[0].lineWidth
                            }, t.prototype._renderWebGL = function(e) {
                                this.dirty !== this.fastRectDirty && (this.fastRectDirty = this.dirty, this._fastRect = this.isFastRect()), this._fastRect ? this._renderSpriteRect(e) : (e.setObjectRenderer(e.plugins.graphics), e.plugins.graphics.render(this))
                            }, t.prototype._renderSpriteRect = function(e) {
                                var t = this.graphicsData[0].shape;
                                this._spriteRect || (this._spriteRect = new _.default(new p.default(p.default.WHITE)));
                                var n = this._spriteRect;
                                if (16777215 === this.tint) n.tint = this.graphicsData[0].fillColor;
                                else {
                                    var i = O,
                                        r = I;
                                    (0, y.hex2rgb)(this.graphicsData[0].fillColor, i), (0, y.hex2rgb)(this.tint, r), i[0] *= r[0], i[1] *= r[1], i[2] *= r[2], n.tint = (0, y.rgb2hex)(i)
                                }
                                n.alpha = this.graphicsData[0].fillAlpha, n.worldAlpha = this.worldAlpha * n.alpha, n.blendMode = this.blendMode, n._texture._frame.width = t.width, n._texture._frame.height = t.height, n.transform.worldTransform = this.transform.worldTransform, n.anchor.set(-t.x / t.width, -t.y / t.height), n._onAnchorUpdate(), n._renderWebGL(e)
                            }, t.prototype._renderCanvas = function(e) {
                                !0 !== this.isMask && e.plugins.graphics.render(this)
                            }, t.prototype._calculateBounds = function() {
                                this.boundsDirty !== this.dirty && (this.boundsDirty = this.dirty, this.updateLocalBounds(), this.cachedSpriteDirty = !0);
                                var e = this._localBounds;
                                this._bounds.addFrame(this.transform, e.minX, e.minY, e.maxX, e.maxY)
                            }, t.prototype.containsPoint = function(e) {
                                this.worldTransform.applyInverse(e, M);
                                for (var t = this.graphicsData, n = 0; n < t.length; ++n) {
                                    var i = t[n];
                                    if (i.fill && (i.shape && i.shape.contains(M.x, M.y))) {
                                        if (i.holes)
                                            for (var r = 0; r < i.holes.length; r++) {
                                                var o = i.holes[r];
                                                if (o.contains(M.x, M.y)) return !1
                                            }
                                        return !0
                                    }
                                }
                                return !1
                            }, t.prototype.updateLocalBounds = function() {
                                var e = 1 / 0,
                                    t = -1 / 0,
                                    n = 1 / 0,
                                    i = -1 / 0;
                                if (this.graphicsData.length)
                                    for (var r = 0, o = 0, a = 0, s = 0, u = 0, l = 0; l < this.graphicsData.length; l++) {
                                        var c = this.graphicsData[l],
                                            h = c.type,
                                            p = c.lineWidth;
                                        if (r = c.shape, h === v.SHAPES.RECT || h === v.SHAPES.RREC) o = r.x - p / 2, a = r.y - p / 2, s = r.width + p, u = r.height + p, e = o < e ? o : e, t = o + s > t ? o + s : t, n = a < n ? a : n, i = a + u > i ? a + u : i;
                                        else if (h === v.SHAPES.CIRC) o = r.x, a = r.y, s = r.radius + p / 2, u = r.radius + p / 2, e = o - s < e ? o - s : e, t = o + s > t ? o + s : t, n = a - u < n ? a - u : n, i = a + u > i ? a + u : i;
                                        else if (h === v.SHAPES.ELIP) o = r.x, a = r.y, s = r.width + p / 2, u = r.height + p / 2, e = o - s < e ? o - s : e, t = o + s > t ? o + s : t, n = a - u < n ? a - u : n, i = a + u > i ? a + u : i;
                                        else
                                            for (var d = r.points, f = 0, m = 0, _ = 0, g = 0, y = 0, b = 0, x = 0, T = 0, w = 0; w + 2 < d.length; w += 2) o = d[w], a = d[w + 1], f = d[w + 2], m = d[w + 3], _ = Math.abs(f - o), g = Math.abs(m - a), u = p, (s = Math.sqrt(_ * _ + g * g)) < 1e-9 || (y = (u / s * g + _) / 2, b = (u / s * _ + g) / 2, x = (f + o) / 2, T = (m + a) / 2, e = x - y < e ? x - y : e, t = x + y > t ? x + y : t, n = T - b < n ? T - b : n, i = T + b > i ? T + b : i)
                                    } else e = 0, t = 0, n = 0, i = 0;
                                var S = this.boundsPadding;
                                this._localBounds.minX = e - S, this._localBounds.maxX = t + S, this._localBounds.minY = n - S, this._localBounds.maxY = i + S
                            }, t.prototype.drawShape = function(e) {
                                this.currentPath && this.currentPath.shape.points.length <= 2 && this.graphicsData.pop(), this.currentPath = null;
                                var t = new f.default(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.filling, this.nativeLines, e);
                                return this.graphicsData.push(t), t.type === v.SHAPES.POLY && (t.shape.closed = t.shape.closed || this.filling, this.currentPath = t), this.dirty++, t
                            }, t.prototype.generateCanvasTexture = function(e) {
                                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1,
                                    n = this.getLocalBounds(),
                                    i = c.default.create(n.width, n.height, e, t);
                                C || (C = new P.default), this.transform.updateLocalTransform(), this.transform.localTransform.copy(E), E.invert(), E.tx -= n.x, E.ty -= n.y, C.render(this, i, !0, E);
                                var r = p.default.fromCanvas(i.baseTexture._canvasRenderTarget.canvas, e, "graphics");
                                return r.baseTexture.resolution = t, r.baseTexture.update(), r
                            }, t.prototype.closePath = function() {
                                var e = this.currentPath;
                                return e && e.shape && e.shape.close(), this
                            }, t.prototype.addHole = function() {
                                var e = this.graphicsData.pop();
                                return this.currentPath = this.graphicsData[this.graphicsData.length - 1], this.currentPath.addHole(e.shape), this.currentPath = null, this
                            }, t.prototype.destroy = function(t) {
                                e.prototype.destroy.call(this, t);
                                for (var n = 0; n < this.graphicsData.length; ++n) this.graphicsData[n].destroy();
                                for (var i in this._webgl)
                                    for (var r = 0; r < this._webgl[i].data.length; ++r) this._webgl[i].data[r].destroy();
                                this._spriteRect && this._spriteRect.destroy(), this.graphicsData = null, this.currentPath = null, this._webgl = null, this._localBounds = null
                            }, t
                        }(u.default);
                    n.default = A, A._SPRITE_TEXTURE = null
                }, {
                    "../const": 46,
                    "../display/Bounds": 47,
                    "../display/Container": 48,
                    "../math": 70,
                    "../renderers/canvas/CanvasRenderer": 77,
                    "../sprites/Sprite": 102,
                    "../textures/RenderTexture": 113,
                    "../textures/Texture": 115,
                    "../utils": 125,
                    "./GraphicsData": 54,
                    "./utils/bezierCurveTo": 56
                }],
                54: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e(t, n, r, o, a, s, u, l) {
                            i(this, e), this.lineWidth = t, this.nativeLines = u, this.lineColor = n, this.lineAlpha = r, this._lineTint = n, this.fillColor = o, this.fillAlpha = a, this._fillTint = o, this.fill = s, this.holes = [], this.shape = l, this.type = l.type
                        }
                        return e.prototype.clone = function() {
                            return new e(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.fill, this.nativeLines, this.shape)
                        }, e.prototype.addHole = function(e) {
                            this.holes.push(e)
                        }, e.prototype.destroy = function() {
                            this.shape = null, this.holes = null
                        }, e
                    }();
                    n.default = r
                }, {}],
                55: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../renderers/canvas/CanvasRenderer"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = e("../../const"),
                        s = function() {
                            function e(t) {
                                i(this, e), this.renderer = t
                            }
                            return e.prototype.render = function(e) {
                                var t = this.renderer,
                                    n = t.context,
                                    i = e.worldAlpha,
                                    r = e.transform.worldTransform,
                                    o = t.resolution;
                                this._prevTint !== this.tint && (this.dirty = !0), n.setTransform(r.a * o, r.b * o, r.c * o, r.d * o, r.tx * o, r.ty * o), e.dirty && (this.updateGraphicsTint(e), e.dirty = !1), t.setBlendMode(e.blendMode);
                                for (var s = 0; s < e.graphicsData.length; s++) {
                                    var u = e.graphicsData[s],
                                        l = u.shape,
                                        c = u._fillTint,
                                        h = u._lineTint;
                                    if (n.lineWidth = u.lineWidth, u.type === a.SHAPES.POLY) {
                                        n.beginPath(), this.renderPolygon(l.points, l.closed, n);
                                        for (var p = 0; p < u.holes.length; p++) this.renderPolygon(u.holes[p].points, !0, n);
                                        u.fill && (n.globalAlpha = u.fillAlpha * i, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * i, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                                    } else if (u.type === a.SHAPES.RECT)(u.fillColor || 0 === u.fillColor) && (n.globalAlpha = u.fillAlpha * i, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fillRect(l.x, l.y, l.width, l.height)), u.lineWidth && (n.globalAlpha = u.lineAlpha * i, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.strokeRect(l.x, l.y, l.width, l.height));
                                    else if (u.type === a.SHAPES.CIRC) n.beginPath(), n.arc(l.x, l.y, l.radius, 0, 2 * Math.PI), n.closePath(), u.fill && (n.globalAlpha = u.fillAlpha * i, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * i, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke());
                                    else if (u.type === a.SHAPES.ELIP) {
                                        var d = 2 * l.width,
                                            f = 2 * l.height,
                                            m = l.x - d / 2,
                                            _ = l.y - f / 2;
                                        n.beginPath();
                                        var g = d / 2 * .5522848,
                                            y = f / 2 * .5522848,
                                            v = m + d,
                                            b = _ + f,
                                            x = m + d / 2,
                                            T = _ + f / 2;
                                        n.moveTo(m, T), n.bezierCurveTo(m, T - y, x - g, _, x, _), n.bezierCurveTo(x + g, _, v, T - y, v, T), n.bezierCurveTo(v, T + y, x + g, b, x, b), n.bezierCurveTo(x - g, b, m, T + y, m, T), n.closePath(), u.fill && (n.globalAlpha = u.fillAlpha * i, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * i, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                                    } else if (u.type === a.SHAPES.RREC) {
                                        var w = l.x,
                                            S = l.y,
                                            P = l.width,
                                            C = l.height,
                                            E = l.radius,
                                            M = Math.min(P, C) / 2 | 0;
                                        E = E > M ? M : E, n.beginPath(), n.moveTo(w, S + E), n.lineTo(w, S + C - E), n.quadraticCurveTo(w, S + C, w + E, S + C), n.lineTo(w + P - E, S + C), n.quadraticCurveTo(w + P, S + C, w + P, S + C - E), n.lineTo(w + P, S + E), n.quadraticCurveTo(w + P, S, w + P - E, S), n.lineTo(w + E, S), n.quadraticCurveTo(w, S, w, S + E), n.closePath(), (u.fillColor || 0 === u.fillColor) && (n.globalAlpha = u.fillAlpha * i, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * i, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                                    }
                                }
                            }, e.prototype.updateGraphicsTint = function(e) {
                                e._prevTint = e.tint;
                                for (var t = (e.tint >> 16 & 255) / 255, n = (e.tint >> 8 & 255) / 255, i = (255 & e.tint) / 255, r = 0; r < e.graphicsData.length; ++r) {
                                    var o = e.graphicsData[r],
                                        a = 0 | o.fillColor,
                                        s = 0 | o.lineColor;
                                    o._fillTint = ((a >> 16 & 255) / 255 * t * 255 << 16) + ((a >> 8 & 255) / 255 * n * 255 << 8) + (255 & a) / 255 * i * 255, o._lineTint = ((s >> 16 & 255) / 255 * t * 255 << 16) + ((s >> 8 & 255) / 255 * n * 255 << 8) + (255 & s) / 255 * i * 255
                                }
                            }, e.prototype.renderPolygon = function(e, t, n) {
                                n.moveTo(e[0], e[1]);
                                for (var i = 1; i < e.length / 2; ++i) n.lineTo(e[2 * i], e[2 * i + 1]);
                                t && n.closePath()
                            }, e.prototype.destroy = function() {
                                this.renderer = null
                            }, e
                        }();
                    n.default = s, o.default.registerPlugin("graphics", s)
                }, {
                    "../../const": 46,
                    "../../renderers/canvas/CanvasRenderer": 77
                }],
                56: [function(e, t, n) {
                    "use strict";

                    function i(e, t, n, i, r, o, a, s) {
                        var u = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : [],
                            l = 0,
                            c = 0,
                            h = 0,
                            p = 0,
                            d = 0;
                        u.push(e, t);
                        for (var f = 1, m = 0; f <= 20; ++f) m = f / 20, l = 1 - m, c = l * l, h = c * l, p = m * m, d = p * m, u.push(h * e + 3 * c * m * n + 3 * l * p * r + d * a, h * t + 3 * c * m * i + 3 * l * p * o + d * s);
                        return u
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                57: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../../utils"),
                        u = e("../../const"),
                        l = e("../../renderers/webgl/utils/ObjectRenderer"),
                        c = i(l),
                        h = e("../../renderers/webgl/WebGLRenderer"),
                        p = i(h),
                        d = e("./WebGLGraphicsData"),
                        f = i(d),
                        m = e("./shaders/PrimitiveShader"),
                        _ = i(m),
                        g = e("./utils/buildPoly"),
                        y = i(g),
                        v = e("./utils/buildRectangle"),
                        b = i(v),
                        x = e("./utils/buildRoundedRectangle"),
                        T = i(x),
                        w = e("./utils/buildCircle"),
                        S = i(w),
                        P = function(e) {
                            function t(n) {
                                r(this, t);
                                var i = o(this, e.call(this, n));
                                return i.graphicsDataPool = [], i.primitiveShader = null, i.gl = n.gl, i.CONTEXT_UID = 0, i
                            }
                            return a(t, e), t.prototype.onContextChange = function() {
                                this.gl = this.renderer.gl, this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.primitiveShader = new _.default(this.gl)
                            }, t.prototype.destroy = function() {
                                c.default.prototype.destroy.call(this);
                                for (var e = 0; e < this.graphicsDataPool.length; ++e) this.graphicsDataPool[e].destroy();
                                this.graphicsDataPool = null
                            }, t.prototype.render = function(e) {
                                var t = this.renderer,
                                    n = t.gl,
                                    i = void 0,
                                    r = e._webGL[this.CONTEXT_UID];
                                r && e.dirty === r.dirty || (this.updateGraphics(e), r = e._webGL[this.CONTEXT_UID]);
                                var o = this.primitiveShader;
                                t.bindShader(o), t.state.setBlendMode(e.blendMode);
                                for (var a = 0, u = r.data.length; a < u; a++) {
                                    i = r.data[a];
                                    var l = i.shader;
                                    t.bindShader(l), l.uniforms.translationMatrix = e.transform.worldTransform.toArray(!0), l.uniforms.tint = (0, s.hex2rgb)(e.tint), l.uniforms.alpha = e.worldAlpha, t.bindVao(i.vao), i.nativeLines ? n.drawArrays(n.LINES, 0, i.points.length / 6) : i.vao.draw(n.TRIANGLE_STRIP, i.indices.length)
                                }
                            }, t.prototype.updateGraphics = function(e) {
                                var t = this.renderer.gl,
                                    n = e._webGL[this.CONTEXT_UID];
                                if (n || (n = e._webGL[this.CONTEXT_UID] = {
                                        lastIndex: 0,
                                        data: [],
                                        gl: t,
                                        clearDirty: -1,
                                        dirty: -1
                                    }), n.dirty = e.dirty, e.clearDirty !== n.clearDirty) {
                                    n.clearDirty = e.clearDirty;
                                    for (var i = 0; i < n.data.length; i++) this.graphicsDataPool.push(n.data[i]);
                                    n.data.length = 0, n.lastIndex = 0
                                }
                                for (var r = void 0, o = void 0, a = n.lastIndex; a < e.graphicsData.length; a++) {
                                    var s = e.graphicsData[a];
                                    r = this.getWebGLData(n, 0), s.nativeLines && s.lineWidth && (o = this.getWebGLData(n, 0, !0), n.lastIndex++), s.type === u.SHAPES.POLY && (0, y.default)(s, r, o), s.type === u.SHAPES.RECT ? (0, b.default)(s, r, o) : s.type === u.SHAPES.CIRC || s.type === u.SHAPES.ELIP ? (0, S.default)(s, r, o) : s.type === u.SHAPES.RREC && (0, T.default)(s, r, o), n.lastIndex++
                                }
                                this.renderer.bindVao(null);
                                for (var l = 0; l < n.data.length; l++) r = n.data[l], r.dirty && r.upload()
                            }, t.prototype.getWebGLData = function(e, t, n) {
                                var i = e.data[e.data.length - 1];
                                return (!i || i.nativeLines !== n || i.points.length > 32e4) && (i = this.graphicsDataPool.pop() || new f.default(this.renderer.gl, this.primitiveShader, this.renderer.state.attribsState), i.nativeLines = n, i.reset(t), e.data.push(i)), i.dirty = !0, i
                            }, t
                        }(c.default);
                    n.default = P, p.default.registerPlugin("graphics", P)
                }, {
                    "../../const": 46,
                    "../../renderers/webgl/WebGLRenderer": 84,
                    "../../renderers/webgl/utils/ObjectRenderer": 94,
                    "../../utils": 125,
                    "./WebGLGraphicsData": 58,
                    "./shaders/PrimitiveShader": 59,
                    "./utils/buildCircle": 60,
                    "./utils/buildPoly": 62,
                    "./utils/buildRectangle": 63,
                    "./utils/buildRoundedRectangle": 64
                }],
                58: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("pixi-gl-core"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = function() {
                            function e(t, n, r) {
                                i(this, e), this.gl = t, this.color = [0, 0, 0], this.points = [], this.indices = [], this.buffer = o.default.GLBuffer.createVertexBuffer(t), this.indexBuffer = o.default.GLBuffer.createIndexBuffer(t), this.dirty = !0, this.nativeLines = !1, this.glPoints = null, this.glIndices = null, this.shader = n, this.vao = new o.default.VertexArrayObject(t, r).addIndex(this.indexBuffer).addAttribute(this.buffer, n.attributes.aVertexPosition, t.FLOAT, !1, 24, 0).addAttribute(this.buffer, n.attributes.aColor, t.FLOAT, !1, 24, 8)
                            }
                            return e.prototype.reset = function() {
                                this.points.length = 0, this.indices.length = 0
                            }, e.prototype.upload = function() {
                                this.glPoints = new Float32Array(this.points), this.buffer.upload(this.glPoints), this.glIndices = new Uint16Array(this.indices), this.indexBuffer.upload(this.glIndices), this.dirty = !1
                            }, e.prototype.destroy = function() {
                                this.color = null, this.points = null, this.indices = null, this.vao.destroy(), this.buffer.destroy(), this.indexBuffer.destroy(), this.gl = null, this.buffer = null, this.indexBuffer = null, this.glPoints = null, this.glIndices = null
                            }, e
                        }();
                    n.default = a
                }, {
                    "pixi-gl-core": 12
                }],
                59: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("../../../Shader"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = function(e) {
                            function t(n) {
                                return i(this, t), r(this, e.call(this, n, ["attribute vec2 aVertexPosition;", "attribute vec4 aColor;", "uniform mat3 translationMatrix;", "uniform mat3 projectionMatrix;", "uniform float alpha;", "uniform vec3 tint;", "varying vec4 vColor;", "void main(void){", "   gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);", "   vColor = aColor * vec4(tint * alpha, alpha);", "}"].join("\n"), ["varying vec4 vColor;", "void main(void){", "   gl_FragColor = vColor;", "}"].join("\n")))
                            }
                            return o(t, e), t
                        }(s.default);
                    n.default = u
                }, {
                    "../../../Shader": 44
                }],
                60: [function(e, t, n) {
                    "use strict";

                    function i(e, t, n) {
                        var i = e.shape,
                            r = i.x,
                            u = i.y,
                            l = void 0,
                            c = void 0;
                        if (e.type === a.SHAPES.CIRC ? (l = i.radius, c = i.radius) : (l = i.width, c = i.height), 0 !== l && 0 !== c) {
                            var h = Math.floor(30 * Math.sqrt(i.radius)) || Math.floor(15 * Math.sqrt(i.width + i.height)),
                                p = 2 * Math.PI / h;
                            if (e.fill) {
                                var d = (0, s.hex2rgb)(e.fillColor),
                                    f = e.fillAlpha,
                                    m = d[0] * f,
                                    _ = d[1] * f,
                                    g = d[2] * f,
                                    y = t.points,
                                    v = t.indices,
                                    b = y.length / 6;
                                v.push(b);
                                for (var x = 0; x < h + 1; x++) y.push(r, u, m, _, g, f), y.push(r + Math.sin(p * x) * l, u + Math.cos(p * x) * c, m, _, g, f), v.push(b++, b++);
                                v.push(b - 1)
                            }
                            if (e.lineWidth) {
                                var T = e.points;
                                e.points = [];
                                for (var w = 0; w < h + 1; w++) e.points.push(r + Math.sin(p * w) * l, u + Math.cos(p * w) * c);
                                (0, o.default)(e, t, n), e.points = T
                            }
                        }
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("./buildLine"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = e("../../../const"),
                        s = e("../../../utils")
                }, {
                    "../../../const": 46,
                    "../../../utils": 125,
                    "./buildLine": 61
                }],
                61: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        var n = e.points;
                        if (0 !== n.length) {
                            var i = new o.Point(n[0], n[1]),
                                r = new o.Point(n[n.length - 2], n[n.length - 1]);
                            if (i.x === r.x && i.y === r.y) {
                                n = n.slice(), n.pop(), n.pop(), r = new o.Point(n[n.length - 2], n[n.length - 1]);
                                var s = r.x + .5 * (i.x - r.x),
                                    u = r.y + .5 * (i.y - r.y);
                                n.unshift(s, u), n.push(s, u)
                            }
                            var l = t.points,
                                c = t.indices,
                                h = n.length / 2,
                                p = n.length,
                                d = l.length / 6,
                                f = e.lineWidth / 2,
                                m = (0, a.hex2rgb)(e.lineColor),
                                _ = e.lineAlpha,
                                g = m[0] * _,
                                y = m[1] * _,
                                v = m[2] * _,
                                b = n[0],
                                x = n[1],
                                T = n[2],
                                w = n[3],
                                S = 0,
                                P = 0,
                                C = -(x - w),
                                E = b - T,
                                M = 0,
                                O = 0,
                                I = 0,
                                A = 0,
                                R = Math.sqrt(C * C + E * E);
                            C /= R, E /= R, C *= f, E *= f, l.push(b - C, x - E, g, y, v, _), l.push(b + C, x + E, g, y, v, _);
                            for (var k = 1; k < h - 1; ++k) {
                                b = n[2 * (k - 1)], x = n[2 * (k - 1) + 1], T = n[2 * k], w = n[2 * k + 1], S = n[2 * (k + 1)], P = n[2 * (k + 1) + 1], C = -(x - w), E = b - T, R = Math.sqrt(C * C + E * E), C /= R, E /= R, C *= f, E *= f, M = -(w - P), O = T - S, R = Math.sqrt(M * M + O * O), M /= R, O /= R, M *= f, O *= f;
                                var L = -E + x - (-E + w),
                                    D = -C + T - (-C + b),
                                    B = (-C + b) * (-E + w) - (-C + T) * (-E + x),
                                    F = -O + P - (-O + w),
                                    N = -M + T - (-M + S),
                                    j = (-M + S) * (-O + w) - (-M + T) * (-O + P),
                                    G = L * N - F * D;
                                if (Math.abs(G) < .1) G += 10.1, l.push(T - C, w - E, g, y, v, _), l.push(T + C, w + E, g, y, v, _);
                                else {
                                    var U = (D * j - N * B) / G,
                                        W = (F * B - L * j) / G;
                                    (U - T) * (U - T) + (W - w) * (W - w) > 196 * f * f ? (I = C - M, A = E - O, R = Math.sqrt(I * I + A * A), I /= R, A /= R, I *= f, A *= f, l.push(T - I, w - A), l.push(g, y, v, _), l.push(T + I, w + A), l.push(g, y, v, _), l.push(T - I, w - A), l.push(g, y, v, _), p++) : (l.push(U, W), l.push(g, y, v, _), l.push(T - (U - T), w - (W - w)), l.push(g, y, v, _))
                                }
                            }
                            b = n[2 * (h - 2)], x = n[2 * (h - 2) + 1], T = n[2 * (h - 1)], w = n[2 * (h - 1) + 1], C = -(x - w), E = b - T, R = Math.sqrt(C * C + E * E), C /= R, E /= R, C *= f, E *= f, l.push(T - C, w - E), l.push(g, y, v, _), l.push(T + C, w + E), l.push(g, y, v, _), c.push(d);
                            for (var H = 0; H < p; ++H) c.push(d++);
                            c.push(d - 1)
                        }
                    }

                    function r(e, t) {
                        var n = 0,
                            i = e.points;
                        if (0 !== i.length) {
                            var r = t.points,
                                o = i.length / 2,
                                s = (0, a.hex2rgb)(e.lineColor),
                                u = e.lineAlpha,
                                l = s[0] * u,
                                c = s[1] * u,
                                h = s[2] * u;
                            for (n = 1; n < o; n++) {
                                var p = i[2 * (n - 1)],
                                    d = i[2 * (n - 1) + 1],
                                    f = i[2 * n],
                                    m = i[2 * n + 1];
                                r.push(p, d), r.push(l, c, h, u), r.push(f, m), r.push(l, c, h, u)
                            }
                        }
                    }
                    n.__esModule = !0, n.default = function(e, t, n) {
                        e.nativeLines ? r(e, n) : i(e, t)
                    };
                    var o = e("../../../math"),
                        a = e("../../../utils")
                }, {
                    "../../../math": 70,
                    "../../../utils": 125
                }],
                62: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t, n) {
                        e.points = e.shape.points.slice();
                        var i = e.points;
                        if (e.fill && i.length >= 6) {
                            for (var r = [], o = e.holes, u = 0; u < o.length; u++) {
                                var c = o[u];
                                r.push(i.length / 2), i = i.concat(c.points)
                            }
                            var h = t.points,
                                p = t.indices,
                                d = i.length / 2,
                                f = (0, s.hex2rgb)(e.fillColor),
                                m = e.fillAlpha,
                                _ = f[0] * m,
                                g = f[1] * m,
                                y = f[2] * m,
                                v = (0, l.default)(i, r, 2);
                            if (!v) return;
                            for (var b = h.length / 6, x = 0; x < v.length; x += 3) p.push(v[x] + b), p.push(v[x] + b), p.push(v[x + 1] + b), p.push(v[x + 2] + b), p.push(v[x + 2] + b);
                            for (var T = 0; T < d; T++) h.push(i[2 * T], i[2 * T + 1], _, g, y, m)
                        }
                        e.lineWidth > 0 && (0, a.default)(e, t, n)
                    }
                    n.__esModule = !0, n.default = r;
                    var o = e("./buildLine"),
                        a = i(o),
                        s = e("../../../utils"),
                        u = e("earcut"),
                        l = i(u)
                }, {
                    "../../../utils": 125,
                    "./buildLine": 61,
                    earcut: 2
                }],
                63: [function(e, t, n) {
                    "use strict";

                    function i(e, t, n) {
                        var i = e.shape,
                            r = i.x,
                            s = i.y,
                            u = i.width,
                            l = i.height;
                        if (e.fill) {
                            var c = (0, a.hex2rgb)(e.fillColor),
                                h = e.fillAlpha,
                                p = c[0] * h,
                                d = c[1] * h,
                                f = c[2] * h,
                                m = t.points,
                                _ = t.indices,
                                g = m.length / 6;
                            m.push(r, s), m.push(p, d, f, h), m.push(r + u, s), m.push(p, d, f, h), m.push(r, s + l), m.push(p, d, f, h), m.push(r + u, s + l), m.push(p, d, f, h), _.push(g, g, g + 1, g + 2, g + 3, g + 3)
                        }
                        if (e.lineWidth) {
                            var y = e.points;
                            e.points = [r, s, r + u, s, r + u, s + l, r, s + l, r, s], (0, o.default)(e, t, n), e.points = y
                        }
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("./buildLine"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = e("../../../utils")
                }, {
                    "../../../utils": 125,
                    "./buildLine": 61
                }],
                64: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t, n) {
                        var i = e.shape,
                            r = i.x,
                            o = i.y,
                            s = i.width,
                            l = i.height,
                            p = i.radius,
                            d = [];
                        if (d.push(r, o + p), a(r, o + l - p, r, o + l, r + p, o + l, d), a(r + s - p, o + l, r + s, o + l, r + s, o + l - p, d), a(r + s, o + p, r + s, o, r + s - p, o, d), a(r + p, o, r, o, r, o + p + 1e-10, d), e.fill) {
                            for (var f = (0, h.hex2rgb)(e.fillColor), m = e.fillAlpha, _ = f[0] * m, g = f[1] * m, y = f[2] * m, v = t.points, b = t.indices, x = v.length / 6, T = (0, u.default)(d, null, 2), w = 0, S = T.length; w < S; w += 3) b.push(T[w] + x), b.push(T[w] + x), b.push(T[w + 1] + x), b.push(T[w + 2] + x), b.push(T[w + 2] + x);
                            for (var P = 0, C = d.length; P < C; P++) v.push(d[P], d[++P], _, g, y, m)
                        }
                        if (e.lineWidth) {
                            var E = e.points;
                            e.points = d, (0, c.default)(e, t, n), e.points = E
                        }
                    }

                    function o(e, t, n) {
                        return e + (t - e) * n
                    }

                    function a(e, t, n, i, r, a) {
                        for (var s = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : [], u = s, l = 0, c = 0, h = 0, p = 0, d = 0, f = 0, m = 0, _ = 0; m <= 20; ++m) _ = m / 20, l = o(e, n, _), c = o(t, i, _), h = o(n, r, _), p = o(i, a, _), d = o(l, h, _), f = o(c, p, _), u.push(d, f);
                        return u
                    }
                    n.__esModule = !0, n.default = r;
                    var s = e("earcut"),
                        u = i(s),
                        l = e("./buildLine"),
                        c = i(l),
                        h = e("../../../utils")
                }, {
                    "../../../utils": 125,
                    "./buildLine": 61,
                    earcut: 2
                }],
                65: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        if (e && e.__esModule) return e;
                        var t = {};
                        if (null != e)
                            for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                        return t.default = e, t
                    }

                    function r(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0,
                        n.autoDetectRenderer = n.Application = n.Filter = n.SpriteMaskFilter = n.Quad = n.RenderTarget = n.ObjectRenderer = n.WebGLManager = n.Shader = n.CanvasRenderTarget = n.TextureUvs = n.VideoBaseTexture = n.BaseRenderTexture = n.RenderTexture = n.BaseTexture = n.TextureMatrix = n.Texture = n.Spritesheet = n.CanvasGraphicsRenderer = n.GraphicsRenderer = n.GraphicsData = n.Graphics = n.TextMetrics = n.TextStyle = n.Text = n.SpriteRenderer = n.CanvasTinter = n.CanvasSpriteRenderer = n.Sprite = n.TransformBase = n.TransformStatic = n.Transform = n.Container = n.DisplayObject = n.Bounds = n.glCore = n.WebGLRenderer = n.CanvasRenderer = n.ticker = n.utils = n.settings = void 0;
                    var o = e("./const");
                    Object.keys(o).forEach(function(e) {
                        "default" !== e && "__esModule" !== e && Object.defineProperty(n, e, {
                            enumerable: !0,
                            get: function() {
                                return o[e]
                            }
                        })
                    });
                    var a = e("./math");
                    Object.keys(a).forEach(function(e) {
                        "default" !== e && "__esModule" !== e && Object.defineProperty(n, e, {
                            enumerable: !0,
                            get: function() {
                                return a[e]
                            }
                        })
                    });
                    var s = e("pixi-gl-core");
                    Object.defineProperty(n, "glCore", {
                        enumerable: !0,
                        get: function() {
                            return r(s).default
                        }
                    });
                    var u = e("./display/Bounds");
                    Object.defineProperty(n, "Bounds", {
                        enumerable: !0,
                        get: function() {
                            return r(u).default
                        }
                    });
                    var l = e("./display/DisplayObject");
                    Object.defineProperty(n, "DisplayObject", {
                        enumerable: !0,
                        get: function() {
                            return r(l).default
                        }
                    });
                    var c = e("./display/Container");
                    Object.defineProperty(n, "Container", {
                        enumerable: !0,
                        get: function() {
                            return r(c).default
                        }
                    });
                    var h = e("./display/Transform");
                    Object.defineProperty(n, "Transform", {
                        enumerable: !0,
                        get: function() {
                            return r(h).default
                        }
                    });
                    var p = e("./display/TransformStatic");
                    Object.defineProperty(n, "TransformStatic", {
                        enumerable: !0,
                        get: function() {
                            return r(p).default
                        }
                    });
                    var d = e("./display/TransformBase");
                    Object.defineProperty(n, "TransformBase", {
                        enumerable: !0,
                        get: function() {
                            return r(d).default
                        }
                    });
                    var f = e("./sprites/Sprite");
                    Object.defineProperty(n, "Sprite", {
                        enumerable: !0,
                        get: function() {
                            return r(f).default
                        }
                    });
                    var m = e("./sprites/canvas/CanvasSpriteRenderer");
                    Object.defineProperty(n, "CanvasSpriteRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(m).default
                        }
                    });
                    var _ = e("./sprites/canvas/CanvasTinter");
                    Object.defineProperty(n, "CanvasTinter", {
                        enumerable: !0,
                        get: function() {
                            return r(_).default
                        }
                    });
                    var g = e("./sprites/webgl/SpriteRenderer");
                    Object.defineProperty(n, "SpriteRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(g).default
                        }
                    });
                    var y = e("./text/Text");
                    Object.defineProperty(n, "Text", {
                        enumerable: !0,
                        get: function() {
                            return r(y).default
                        }
                    });
                    var v = e("./text/TextStyle");
                    Object.defineProperty(n, "TextStyle", {
                        enumerable: !0,
                        get: function() {
                            return r(v).default
                        }
                    });
                    var b = e("./text/TextMetrics");
                    Object.defineProperty(n, "TextMetrics", {
                        enumerable: !0,
                        get: function() {
                            return r(b).default
                        }
                    });
                    var x = e("./graphics/Graphics");
                    Object.defineProperty(n, "Graphics", {
                        enumerable: !0,
                        get: function() {
                            return r(x).default
                        }
                    });
                    var T = e("./graphics/GraphicsData");
                    Object.defineProperty(n, "GraphicsData", {
                        enumerable: !0,
                        get: function() {
                            return r(T).default
                        }
                    });
                    var w = e("./graphics/webgl/GraphicsRenderer");
                    Object.defineProperty(n, "GraphicsRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(w).default
                        }
                    });
                    var S = e("./graphics/canvas/CanvasGraphicsRenderer");
                    Object.defineProperty(n, "CanvasGraphicsRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(S).default
                        }
                    });
                    var P = e("./textures/Spritesheet");
                    Object.defineProperty(n, "Spritesheet", {
                        enumerable: !0,
                        get: function() {
                            return r(P).default
                        }
                    });
                    var C = e("./textures/Texture");
                    Object.defineProperty(n, "Texture", {
                        enumerable: !0,
                        get: function() {
                            return r(C).default
                        }
                    });
                    var E = e("./textures/TextureMatrix");
                    Object.defineProperty(n, "TextureMatrix", {
                        enumerable: !0,
                        get: function() {
                            return r(E).default
                        }
                    });
                    var M = e("./textures/BaseTexture");
                    Object.defineProperty(n, "BaseTexture", {
                        enumerable: !0,
                        get: function() {
                            return r(M).default
                        }
                    });
                    var O = e("./textures/RenderTexture");
                    Object.defineProperty(n, "RenderTexture", {
                        enumerable: !0,
                        get: function() {
                            return r(O).default
                        }
                    });
                    var I = e("./textures/BaseRenderTexture");
                    Object.defineProperty(n, "BaseRenderTexture", {
                        enumerable: !0,
                        get: function() {
                            return r(I).default
                        }
                    });
                    var A = e("./textures/VideoBaseTexture");
                    Object.defineProperty(n, "VideoBaseTexture", {
                        enumerable: !0,
                        get: function() {
                            return r(A).default
                        }
                    });
                    var R = e("./textures/TextureUvs");
                    Object.defineProperty(n, "TextureUvs", {
                        enumerable: !0,
                        get: function() {
                            return r(R).default
                        }
                    });
                    var k = e("./renderers/canvas/utils/CanvasRenderTarget");
                    Object.defineProperty(n, "CanvasRenderTarget", {
                        enumerable: !0,
                        get: function() {
                            return r(k).default
                        }
                    });
                    var L = e("./Shader");
                    Object.defineProperty(n, "Shader", {
                        enumerable: !0,
                        get: function() {
                            return r(L).default
                        }
                    });
                    var D = e("./renderers/webgl/managers/WebGLManager");
                    Object.defineProperty(n, "WebGLManager", {
                        enumerable: !0,
                        get: function() {
                            return r(D).default
                        }
                    });
                    var B = e("./renderers/webgl/utils/ObjectRenderer");
                    Object.defineProperty(n, "ObjectRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(B).default
                        }
                    });
                    var F = e("./renderers/webgl/utils/RenderTarget");
                    Object.defineProperty(n, "RenderTarget", {
                        enumerable: !0,
                        get: function() {
                            return r(F).default
                        }
                    });
                    var N = e("./renderers/webgl/utils/Quad");
                    Object.defineProperty(n, "Quad", {
                        enumerable: !0,
                        get: function() {
                            return r(N).default
                        }
                    });
                    var j = e("./renderers/webgl/filters/spriteMask/SpriteMaskFilter");
                    Object.defineProperty(n, "SpriteMaskFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(j).default
                        }
                    });
                    var G = e("./renderers/webgl/filters/Filter");
                    Object.defineProperty(n, "Filter", {
                        enumerable: !0,
                        get: function() {
                            return r(G).default
                        }
                    });
                    var U = e("./Application");
                    Object.defineProperty(n, "Application", {
                        enumerable: !0,
                        get: function() {
                            return r(U).default
                        }
                    });
                    var W = e("./autoDetectRenderer");
                    Object.defineProperty(n, "autoDetectRenderer", {
                        enumerable: !0,
                        get: function() {
                            return W.autoDetectRenderer
                        }
                    });
                    var H = e("./utils"),
                        X = i(H),
                        z = e("./ticker"),
                        V = i(z),
                        J = e("./settings"),
                        q = r(J),
                        Y = e("./renderers/canvas/CanvasRenderer"),
                        $ = r(Y),
                        K = e("./renderers/webgl/WebGLRenderer"),
                        Q = r(K);
                    n.settings = q.default, n.utils = X, n.ticker = V, n.CanvasRenderer = $.default, n.WebGLRenderer = Q.default
                }, {
                    "./Application": 43,
                    "./Shader": 44,
                    "./autoDetectRenderer": 45,
                    "./const": 46,
                    "./display/Bounds": 47,
                    "./display/Container": 48,
                    "./display/DisplayObject": 49,
                    "./display/Transform": 50,
                    "./display/TransformBase": 51,
                    "./display/TransformStatic": 52,
                    "./graphics/Graphics": 53,
                    "./graphics/GraphicsData": 54,
                    "./graphics/canvas/CanvasGraphicsRenderer": 55,
                    "./graphics/webgl/GraphicsRenderer": 57,
                    "./math": 70,
                    "./renderers/canvas/CanvasRenderer": 77,
                    "./renderers/canvas/utils/CanvasRenderTarget": 79,
                    "./renderers/webgl/WebGLRenderer": 84,
                    "./renderers/webgl/filters/Filter": 86,
                    "./renderers/webgl/filters/spriteMask/SpriteMaskFilter": 89,
                    "./renderers/webgl/managers/WebGLManager": 93,
                    "./renderers/webgl/utils/ObjectRenderer": 94,
                    "./renderers/webgl/utils/Quad": 95,
                    "./renderers/webgl/utils/RenderTarget": 96,
                    "./settings": 101,
                    "./sprites/Sprite": 102,
                    "./sprites/canvas/CanvasSpriteRenderer": 103,
                    "./sprites/canvas/CanvasTinter": 104,
                    "./sprites/webgl/SpriteRenderer": 106,
                    "./text/Text": 108,
                    "./text/TextMetrics": 109,
                    "./text/TextStyle": 110,
                    "./textures/BaseRenderTexture": 111,
                    "./textures/BaseTexture": 112,
                    "./textures/RenderTexture": 113,
                    "./textures/Spritesheet": 114,
                    "./textures/Texture": 115,
                    "./textures/TextureMatrix": 116,
                    "./textures/TextureUvs": 117,
                    "./textures/VideoBaseTexture": 118,
                    "./ticker": 121,
                    "./utils": 125,
                    "pixi-gl-core": 12
                }],
                66: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e < 0 ? -1 : e > 0 ? 1 : 0
                    }
                    n.__esModule = !0;
                    var r = e("./Matrix"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1],
                        s = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1],
                        u = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1],
                        l = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1],
                        c = [],
                        h = [];
                    ! function() {
                        for (var e = 0; e < 16; e++) {
                            var t = [];
                            h.push(t);
                            for (var n = 0; n < 16; n++)
                                for (var r = i(a[e] * a[n] + u[e] * s[n]), p = i(s[e] * a[n] + l[e] * s[n]), d = i(a[e] * u[n] + u[e] * l[n]), f = i(s[e] * u[n] + l[e] * l[n]), m = 0; m < 16; m++)
                                    if (a[m] === r && s[m] === p && u[m] === d && l[m] === f) {
                                        t.push(m);
                                        break
                                    }
                        }
                        for (var _ = 0; _ < 16; _++) {
                            var g = new o.default;
                            g.set(a[_], s[_], u[_], l[_], 0, 0), c.push(g)
                        }
                    }();
                    var p = {
                        E: 0,
                        SE: 1,
                        S: 2,
                        SW: 3,
                        W: 4,
                        NW: 5,
                        N: 6,
                        NE: 7,
                        MIRROR_VERTICAL: 8,
                        MIRROR_HORIZONTAL: 12,
                        uX: function(e) {
                            return a[e]
                        },
                        uY: function(e) {
                            return s[e]
                        },
                        vX: function(e) {
                            return u[e]
                        },
                        vY: function(e) {
                            return l[e]
                        },
                        inv: function(e) {
                            return 8 & e ? 15 & e : 7 & -e
                        },
                        add: function(e, t) {
                            return h[e][t]
                        },
                        sub: function(e, t) {
                            return h[e][p.inv(t)]
                        },
                        rotate180: function(e) {
                            return 4 ^ e
                        },
                        isVertical: function(e) {
                            return 2 == (3 & e)
                        },
                        byDirection: function(e, t) {
                            return 2 * Math.abs(e) <= Math.abs(t) ? t >= 0 ? p.S : p.N : 2 * Math.abs(t) <= Math.abs(e) ? e > 0 ? p.E : p.W : t > 0 ? e > 0 ? p.SE : p.SW : e > 0 ? p.NE : p.NW
                        },
                        matrixAppendRotationInv: function(e, t) {
                            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,
                                r = c[p.inv(t)];
                            r.tx = n, r.ty = i, e.append(r)
                        }
                    };
                    n.default = p
                }, {
                    "./Matrix": 67
                }],
                67: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = e("./Point"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = function() {
                            function e() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1,
                                    a = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,
                                    s = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0;
                                i(this, e), this.a = t, this.b = n, this.c = r, this.d = o, this.tx = a, this.ty = s, this.array = null
                            }
                            return e.prototype.fromArray = function(e) {
                                this.a = e[0], this.b = e[1], this.c = e[3], this.d = e[4], this.tx = e[2], this.ty = e[5]
                            }, e.prototype.set = function(e, t, n, i, r, o) {
                                return this.a = e, this.b = t, this.c = n, this.d = i, this.tx = r, this.ty = o, this
                            }, e.prototype.toArray = function(e, t) {
                                this.array || (this.array = new Float32Array(9));
                                var n = t || this.array;
                                return e ? (n[0] = this.a, n[1] = this.b, n[2] = 0, n[3] = this.c, n[4] = this.d, n[5] = 0, n[6] = this.tx, n[7] = this.ty, n[8] = 1) : (n[0] = this.a, n[1] = this.c, n[2] = this.tx, n[3] = this.b, n[4] = this.d, n[5] = this.ty, n[6] = 0, n[7] = 0, n[8] = 1), n
                            }, e.prototype.apply = function(e, t) {
                                t = t || new a.default;
                                var n = e.x,
                                    i = e.y;
                                return t.x = this.a * n + this.c * i + this.tx, t.y = this.b * n + this.d * i + this.ty, t
                            }, e.prototype.applyInverse = function(e, t) {
                                t = t || new a.default;
                                var n = 1 / (this.a * this.d + this.c * -this.b),
                                    i = e.x,
                                    r = e.y;
                                return t.x = this.d * n * i + -this.c * n * r + (this.ty * this.c - this.tx * this.d) * n, t.y = this.a * n * r + -this.b * n * i + (-this.ty * this.a + this.tx * this.b) * n, t
                            }, e.prototype.translate = function(e, t) {
                                return this.tx += e, this.ty += t, this
                            }, e.prototype.scale = function(e, t) {
                                return this.a *= e, this.d *= t, this.c *= e, this.b *= t, this.tx *= e, this.ty *= t, this
                            }, e.prototype.rotate = function(e) {
                                var t = Math.cos(e),
                                    n = Math.sin(e),
                                    i = this.a,
                                    r = this.c,
                                    o = this.tx;
                                return this.a = i * t - this.b * n, this.b = i * n + this.b * t, this.c = r * t - this.d * n, this.d = r * n + this.d * t, this.tx = o * t - this.ty * n, this.ty = o * n + this.ty * t, this
                            }, e.prototype.append = function(e) {
                                var t = this.a,
                                    n = this.b,
                                    i = this.c,
                                    r = this.d;
                                return this.a = e.a * t + e.b * i, this.b = e.a * n + e.b * r, this.c = e.c * t + e.d * i, this.d = e.c * n + e.d * r, this.tx = e.tx * t + e.ty * i + this.tx, this.ty = e.tx * n + e.ty * r + this.ty, this
                            }, e.prototype.setTransform = function(e, t, n, i, r, o, a, s, u) {
                                var l = Math.sin(a),
                                    c = Math.cos(a),
                                    h = Math.cos(u),
                                    p = Math.sin(u),
                                    d = -Math.sin(s),
                                    f = Math.cos(s),
                                    m = c * r,
                                    _ = l * r,
                                    g = -l * o,
                                    y = c * o;
                                return this.a = h * m + p * g, this.b = h * _ + p * y, this.c = d * m + f * g, this.d = d * _ + f * y, this.tx = e + (n * m + i * g), this.ty = t + (n * _ + i * y), this
                            }, e.prototype.prepend = function(e) {
                                var t = this.tx;
                                if (1 !== e.a || 0 !== e.b || 0 !== e.c || 1 !== e.d) {
                                    var n = this.a,
                                        i = this.c;
                                    this.a = n * e.a + this.b * e.c, this.b = n * e.b + this.b * e.d, this.c = i * e.a + this.d * e.c, this.d = i * e.b + this.d * e.d
                                }
                                return this.tx = t * e.a + this.ty * e.c + e.tx, this.ty = t * e.b + this.ty * e.d + e.ty, this
                            }, e.prototype.decompose = function(e) {
                                var t = this.a,
                                    n = this.b,
                                    i = this.c,
                                    r = this.d,
                                    o = -Math.atan2(-i, r),
                                    a = Math.atan2(n, t);
                                return Math.abs(o + a) < 1e-5 ? (e.rotation = a, t < 0 && r >= 0 && (e.rotation += e.rotation <= 0 ? Math.PI : -Math.PI), e.skew.x = e.skew.y = 0) : (e.skew.x = o, e.skew.y = a), e.scale.x = Math.sqrt(t * t + n * n), e.scale.y = Math.sqrt(i * i + r * r), e.position.x = this.tx, e.position.y = this.ty, e
                            }, e.prototype.invert = function() {
                                var e = this.a,
                                    t = this.b,
                                    n = this.c,
                                    i = this.d,
                                    r = this.tx,
                                    o = e * i - t * n;
                                return this.a = i / o, this.b = -t / o, this.c = -n / o, this.d = e / o, this.tx = (n * this.ty - i * r) / o, this.ty = -(e * this.ty - t * r) / o, this
                            }, e.prototype.identity = function() {
                                return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this
                            }, e.prototype.clone = function() {
                                var t = new e;
                                return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t
                            }, e.prototype.copy = function(e) {
                                return e.a = this.a, e.b = this.b, e.c = this.c, e.d = this.d, e.tx = this.tx, e.ty = this.ty, e
                            }, r(e, null, [{
                                key: "IDENTITY",
                                get: function() {
                                    return new e
                                }
                            }, {
                                key: "TEMP_MATRIX",
                                get: function() {
                                    return new e
                                }
                            }]), e
                        }();
                    n.default = s
                }, {
                    "./Point": 69
                }],
                68: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = function() {
                            function e(t, n) {
                                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                                i(this, e), this._x = r, this._y = o, this.cb = t, this.scope = n
                            }
                            return e.prototype.set = function(e, t) {
                                var n = e || 0,
                                    i = t || (0 !== t ? n : 0);
                                this._x === n && this._y === i || (this._x = n, this._y = i, this.cb.call(this.scope))
                            }, e.prototype.copy = function(e) {
                                this._x === e.x && this._y === e.y || (this._x = e.x, this._y = e.y, this.cb.call(this.scope))
                            }, r(e, [{
                                key: "x",
                                get: function() {
                                    return this._x
                                },
                                set: function(e) {
                                    this._x !== e && (this._x = e, this.cb.call(this.scope))
                                }
                            }, {
                                key: "y",
                                get: function() {
                                    return this._y
                                },
                                set: function(e) {
                                    this._y !== e && (this._y = e, this.cb.call(this.scope))
                                }
                            }]), e
                        }();
                    n.default = o
                }, {}],
                69: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
                            i(this, e), this.x = t, this.y = n
                        }
                        return e.prototype.clone = function() {
                            return new e(this.x, this.y)
                        }, e.prototype.copy = function(e) {
                            this.set(e.x, e.y)
                        }, e.prototype.equals = function(e) {
                            return e.x === this.x && e.y === this.y
                        }, e.prototype.set = function(e, t) {
                            this.x = e || 0, this.y = t || (0 !== t ? this.x : 0)
                        }, e
                    }();
                    n.default = r
                }, {}],
                70: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./Point");
                    Object.defineProperty(n, "Point", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./ObservablePoint");
                    Object.defineProperty(n, "ObservablePoint", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    });
                    var a = e("./Matrix");
                    Object.defineProperty(n, "Matrix", {
                        enumerable: !0,
                        get: function() {
                            return i(a).default
                        }
                    });
                    var s = e("./GroupD8");
                    Object.defineProperty(n, "GroupD8", {
                        enumerable: !0,
                        get: function() {
                            return i(s).default
                        }
                    });
                    var u = e("./shapes/Circle");
                    Object.defineProperty(n, "Circle", {
                        enumerable: !0,
                        get: function() {
                            return i(u).default
                        }
                    });
                    var l = e("./shapes/Ellipse");
                    Object.defineProperty(n, "Ellipse", {
                        enumerable: !0,
                        get: function() {
                            return i(l).default
                        }
                    });
                    var c = e("./shapes/Polygon");
                    Object.defineProperty(n, "Polygon", {
                        enumerable: !0,
                        get: function() {
                            return i(c).default
                        }
                    });
                    var h = e("./shapes/Rectangle");
                    Object.defineProperty(n, "Rectangle", {
                        enumerable: !0,
                        get: function() {
                            return i(h).default
                        }
                    });
                    var p = e("./shapes/RoundedRectangle");
                    Object.defineProperty(n, "RoundedRectangle", {
                        enumerable: !0,
                        get: function() {
                            return i(p).default
                        }
                    })
                }, {
                    "./GroupD8": 66,
                    "./Matrix": 67,
                    "./ObservablePoint": 68,
                    "./Point": 69,
                    "./shapes/Circle": 71,
                    "./shapes/Ellipse": 72,
                    "./shapes/Polygon": 73,
                    "./shapes/Rectangle": 74,
                    "./shapes/RoundedRectangle": 75
                }],
                71: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("./Rectangle"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = e("../../const"),
                        s = function() {
                            function e() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
                                i(this, e), this.x = t, this.y = n, this.radius = r, this.type = a.SHAPES.CIRC
                            }
                            return e.prototype.clone = function() {
                                return new e(this.x, this.y, this.radius)
                            }, e.prototype.contains = function(e, t) {
                                if (this.radius <= 0) return !1;
                                var n = this.radius * this.radius,
                                    i = this.x - e,
                                    r = this.y - t;
                                return i *= i, r *= r, i + r <= n
                            }, e.prototype.getBounds = function() {
                                return new o.default(this.x - this.radius, this.y - this.radius, 2 * this.radius, 2 * this.radius)
                            }, e
                        }();
                    n.default = s
                }, {
                    "../../const": 46,
                    "./Rectangle": 74
                }],
                72: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("./Rectangle"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = e("../../const"),
                        s = function() {
                            function e() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                                i(this, e), this.x = t, this.y = n, this.width = r, this.height = o, this.type = a.SHAPES.ELIP
                            }
                            return e.prototype.clone = function() {
                                return new e(this.x, this.y, this.width, this.height)
                            }, e.prototype.contains = function(e, t) {
                                if (this.width <= 0 || this.height <= 0) return !1;
                                var n = (e - this.x) / this.width,
                                    i = (t - this.y) / this.height;
                                return n *= n, i *= i, n + i <= 1
                            }, e.prototype.getBounds = function() {
                                return new o.default(this.x - this.width, this.y - this.height, this.width, this.height)
                            }, e
                        }();
                    n.default = s
                }, {
                    "../../const": 46,
                    "./Rectangle": 74
                }],
                73: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../Point"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = e("../../const"),
                        s = function() {
                            function e() {
                                for (var t = arguments.length, n = Array(t), r = 0; r < t; r++) n[r] = arguments[r];
                                if (i(this, e), Array.isArray(n[0]) && (n = n[0]), n[0] instanceof o.default) {
                                    for (var s = [], u = 0, l = n.length; u < l; u++) s.push(n[u].x, n[u].y);
                                    n = s
                                }
                                this.closed = !0, this.points = n, this.type = a.SHAPES.POLY
                            }
                            return e.prototype.clone = function() {
                                return new e(this.points.slice())
                            }, e.prototype.close = function() {
                                var e = this.points;
                                e[0] === e[e.length - 2] && e[1] === e[e.length - 1] || e.push(e[0], e[1])
                            }, e.prototype.contains = function(e, t) {
                                for (var n = !1, i = this.points.length / 2, r = 0, o = i - 1; r < i; o = r++) {
                                    var a = this.points[2 * r],
                                        s = this.points[2 * r + 1],
                                        u = this.points[2 * o],
                                        l = this.points[2 * o + 1];
                                    s > t != l > t && e < (t - s) / (l - s) * (u - a) + a && (n = !n)
                                }
                                return n
                            }, e
                        }();
                    n.default = s
                }, {
                    "../../const": 46,
                    "../Point": 69
                }],
                74: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = e("../../const"),
                        a = function() {
                            function e() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                                i(this, e), this.x = Number(t), this.y = Number(n), this.width = Number(r), this.height = Number(a), this.type = o.SHAPES.RECT
                            }
                            return e.prototype.clone = function() {
                                return new e(this.x, this.y, this.width, this.height)
                            }, e.prototype.copy = function(e) {
                                return this.x = e.x, this.y = e.y, this.width = e.width, this.height = e.height, this
                            }, e.prototype.contains = function(e, t) {
                                return !(this.width <= 0 || this.height <= 0) && (e >= this.x && e < this.x + this.width && t >= this.y && t < this.y + this.height)
                            }, e.prototype.pad = function(e, t) {
                                e = e || 0, t = t || (0 !== t ? e : 0), this.x -= e, this.y -= t, this.width += 2 * e, this.height += 2 * t
                            }, e.prototype.fit = function(e) {
                                this.x < e.x && (this.width += this.x, this.width < 0 && (this.width = 0), this.x = e.x), this.y < e.y && (this.height += this.y, this.height < 0 && (this.height = 0), this.y = e.y), this.x + this.width > e.x + e.width && (this.width = e.width - this.x, this.width < 0 && (this.width = 0)), this.y + this.height > e.y + e.height && (this.height = e.height - this.y, this.height < 0 && (this.height = 0))
                            }, e.prototype.enlarge = function(e) {
                                var t = Math.min(this.x, e.x),
                                    n = Math.max(this.x + this.width, e.x + e.width),
                                    i = Math.min(this.y, e.y),
                                    r = Math.max(this.y + this.height, e.y + e.height);
                                this.x = t, this.width = n - t, this.y = i, this.height = r - i
                            }, r(e, [{
                                key: "left",
                                get: function() {
                                    return this.x
                                }
                            }, {
                                key: "right",
                                get: function() {
                                    return this.x + this.width
                                }
                            }, {
                                key: "top",
                                get: function() {
                                    return this.y
                                }
                            }, {
                                key: "bottom",
                                get: function() {
                                    return this.y + this.height
                                }
                            }], [{
                                key: "EMPTY",
                                get: function() {
                                    return new e(0, 0, 0, 0)
                                }
                            }]), e
                        }();
                    n.default = a
                }, {
                    "../../const": 46
                }],
                75: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../const"),
                        o = function() {
                            function e() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,
                                    s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 20;
                                i(this, e), this.x = t, this.y = n, this.width = o, this.height = a, this.radius = s, this.type = r.SHAPES.RREC
                            }
                            return e.prototype.clone = function() {
                                return new e(this.x, this.y, this.width, this.height, this.radius)
                            }, e.prototype.contains = function(e, t) {
                                if (this.width <= 0 || this.height <= 0) return !1;
                                if (e >= this.x && e <= this.x + this.width && t >= this.y && t <= this.y + this.height) {
                                    if (t >= this.y + this.radius && t <= this.y + this.height - this.radius || e >= this.x + this.radius && e <= this.x + this.width - this.radius) return !0;
                                    var n = e - (this.x + this.radius),
                                        i = t - (this.y + this.radius),
                                        r = this.radius * this.radius;
                                    if (n * n + i * i <= r) return !0;
                                    if ((n = e - (this.x + this.width - this.radius)) * n + i * i <= r) return !0;
                                    if (i = t - (this.y + this.height - this.radius), n * n + i * i <= r) return !0;
                                    if ((n = e - (this.x + this.radius)) * n + i * i <= r) return !0
                                }
                                return !1
                            }, e
                        }();
                    n.default = o
                }, {
                    "../../const": 46
                }],
                76: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("../utils"),
                        l = e("../math"),
                        c = e("../const"),
                        h = e("../settings"),
                        p = i(h),
                        d = e("../display/Container"),
                        f = i(d),
                        m = e("../textures/RenderTexture"),
                        _ = i(m),
                        g = e("eventemitter3"),
                        y = i(g),
                        v = new l.Matrix,
                        b = function(e) {
                            function t(n, i, a, s) {
                                r(this, t);
                                var h = o(this, e.call(this));
                                return (0, u.sayHello)(n), "number" == typeof i && (i = Object.assign({
                                    width: i,
                                    height: a || p.default.RENDER_OPTIONS.height
                                }, s)), i = Object.assign({}, p.default.RENDER_OPTIONS, i), h.options = i, h.type = c.RENDERER_TYPE.UNKNOWN, h.screen = new l.Rectangle(0, 0, i.width, i.height), h.view = i.view || document.createElement("canvas"), h.resolution = i.resolution || p.default.RESOLUTION, h.transparent = i.transparent, h.autoResize = i.autoResize || !1, h.blendModes = null, h.preserveDrawingBuffer = i.preserveDrawingBuffer, h.clearBeforeRender = i.clearBeforeRender, h.roundPixels = i.roundPixels, h._backgroundColor = 0, h._backgroundColorRgba = [0, 0, 0, 0], h._backgroundColorString = "#000000", h.backgroundColor = i.backgroundColor || h._backgroundColor, h._tempDisplayObjectParent = new f.default, h._lastObjectRendered = h._tempDisplayObjectParent, h
                            }
                            return a(t, e), t.prototype.resize = function(e, t) {
                                this.screen.width = e, this.screen.height = t, this.view.width = e * this.resolution, this.view.height = t * this.resolution, this.autoResize && (this.view.style.width = e + "px", this.view.style.height = t + "px")
                            }, t.prototype.generateTexture = function(e, t, n, i) {
                                i = i || e.getLocalBounds();
                                var r = _.default.create(0 | i.width, 0 | i.height, t, n);
                                return v.tx = -i.x, v.ty = -i.y, this.render(e, r, !1, v, !0), r
                            }, t.prototype.destroy = function(e) {
                                e && this.view.parentNode && this.view.parentNode.removeChild(this.view), this.type = c.RENDERER_TYPE.UNKNOWN, this.view = null, this.screen = null, this.resolution = 0, this.transparent = !1, this.autoResize = !1, this.blendModes = null, this.options = null, this.preserveDrawingBuffer = !1, this.clearBeforeRender = !1, this.roundPixels = !1, this._backgroundColor = 0, this._backgroundColorRgba = null, this._backgroundColorString = null, this._tempDisplayObjectParent = null, this._lastObjectRendered = null
                            }, s(t, [{
                                key: "width",
                                get: function() {
                                    return this.view.width
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.view.height
                                }
                            }, {
                                key: "backgroundColor",
                                get: function() {
                                    return this._backgroundColor
                                },
                                set: function(e) {
                                    this._backgroundColor = e, this._backgroundColorString = (0, u.hex2string)(e), (0, u.hex2rgb)(e, this._backgroundColorRgba)
                                }
                            }]), t
                        }(y.default);
                    n.default = b
                }, {
                    "../const": 46,
                    "../display/Container": 48,
                    "../math": 70,
                    "../settings": 101,
                    "../textures/RenderTexture": 113,
                    "../utils": 125,
                    eventemitter3: 3
                }],
                77: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../SystemRenderer"),
                        u = i(s),
                        l = e("./utils/CanvasMaskManager"),
                        c = i(l),
                        h = e("./utils/CanvasRenderTarget"),
                        p = i(h),
                        d = e("./utils/mapCanvasBlendModesToPixi"),
                        f = i(d),
                        m = e("../../utils"),
                        _ = e("../../const"),
                        g = e("../../settings"),
                        y = i(g),
                        v = function(e) {
                            function t(n, i, a) {
                                r(this, t);
                                var s = o(this, e.call(this, "Canvas", n, i, a));
                                return s.type = _.RENDERER_TYPE.CANVAS, s.rootContext = s.view.getContext("2d", {
                                    alpha: s.transparent
                                }), s.context = s.rootContext, s.refresh = !0, s.maskManager = new c.default(s), s.smoothProperty = "imageSmoothingEnabled", s.rootContext.imageSmoothingEnabled || (s.rootContext.webkitImageSmoothingEnabled ? s.smoothProperty = "webkitImageSmoothingEnabled" : s.rootContext.mozImageSmoothingEnabled ? s.smoothProperty = "mozImageSmoothingEnabled" : s.rootContext.oImageSmoothingEnabled ? s.smoothProperty = "oImageSmoothingEnabled" : s.rootContext.msImageSmoothingEnabled && (s.smoothProperty = "msImageSmoothingEnabled")), s.initPlugins(), s.blendModes = (0, f.default)(), s._activeBlendMode = null, s.renderingToScreen = !1, s.resize(s.options.width, s.options.height), s
                            }
                            return a(t, e), t.prototype.render = function(e, t, n, i, r) {
                                if (this.view) {
                                    this.renderingToScreen = !t, this.emit("prerender");
                                    var o = this.resolution;
                                    t ? (t = t.baseTexture || t, t._canvasRenderTarget || (t._canvasRenderTarget = new p.default(t.width, t.height, t.resolution), t.source = t._canvasRenderTarget.canvas, t.valid = !0), this.context = t._canvasRenderTarget.context, this.resolution = t._canvasRenderTarget.resolution) : this.context = this.rootContext;
                                    var a = this.context;
                                    if (t || (this._lastObjectRendered = e), !r) {
                                        var s = e.parent,
                                            u = this._tempDisplayObjectParent.transform.worldTransform;
                                        i ? (i.copy(u), this._tempDisplayObjectParent.transform._worldID = -1) : u.identity(), e.parent = this._tempDisplayObjectParent, e.updateTransform(), e.parent = s
                                    }
                                    a.save(), a.setTransform(1, 0, 0, 1, 0, 0), a.globalAlpha = 1, this._activeBlendMode = _.BLEND_MODES.NORMAL, a.globalCompositeOperation = this.blendModes[_.BLEND_MODES.NORMAL], navigator.isCocoonJS && this.view.screencanvas && (a.fillStyle = "black", a.clear()), (void 0 !== n ? n : this.clearBeforeRender) && this.renderingToScreen && (this.transparent ? a.clearRect(0, 0, this.width, this.height) : (a.fillStyle = this._backgroundColorString, a.fillRect(0, 0, this.width, this.height)));
                                    var l = this.context;
                                    this.context = a, e.renderCanvas(this), this.context = l, a.restore(), this.resolution = o, this.emit("postrender")
                                }
                            }, t.prototype.clear = function(e) {
                                var t = this.context;
                                e = e || this._backgroundColorString, !this.transparent && e ? (t.fillStyle = e, t.fillRect(0, 0, this.width, this.height)) : t.clearRect(0, 0, this.width, this.height)
                            }, t.prototype.setBlendMode = function(e) {
                                this._activeBlendMode !== e && (this._activeBlendMode = e, this.context.globalCompositeOperation = this.blendModes[e])
                            }, t.prototype.destroy = function(t) {
                                this.destroyPlugins(), e.prototype.destroy.call(this, t), this.context = null, this.refresh = !0, this.maskManager.destroy(), this.maskManager = null, this.smoothProperty = null
                            }, t.prototype.resize = function(t, n) {
                                e.prototype.resize.call(this, t, n), this.smoothProperty && (this.rootContext[this.smoothProperty] = y.default.SCALE_MODE === _.SCALE_MODES.LINEAR)
                            }, t.prototype.invalidateBlendMode = function() {
                                this._activeBlendMode = this.blendModes.indexOf(this.context.globalCompositeOperation)
                            }, t
                        }(u.default);
                    n.default = v, m.pluginTarget.mixin(v)
                }, {
                    "../../const": 46,
                    "../../settings": 101,
                    "../../utils": 125,
                    "../SystemRenderer": 76,
                    "./utils/CanvasMaskManager": 78,
                    "./utils/CanvasRenderTarget": 79,
                    "./utils/mapCanvasBlendModesToPixi": 81
                }],
                78: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../../const"),
                        o = function() {
                            function e(t) {
                                i(this, e), this.renderer = t
                            }
                            return e.prototype.pushMask = function(e) {
                                var t = this.renderer;
                                t.context.save();
                                var n = e.alpha,
                                    i = e.transform.worldTransform,
                                    r = t.resolution;
                                t.context.setTransform(i.a * r, i.b * r, i.c * r, i.d * r, i.tx * r, i.ty * r), e._texture || (this.renderGraphicsShape(e), t.context.clip()), e.worldAlpha = n
                            }, e.prototype.renderGraphicsShape = function(e) {
                                var t = this.renderer.context,
                                    n = e.graphicsData.length;
                                if (0 !== n) {
                                    t.beginPath();
                                    for (var i = 0; i < n; i++) {
                                        var o = e.graphicsData[i],
                                            a = o.shape;
                                        if (o.type === r.SHAPES.POLY) {
                                            var s = a.points;
                                            t.moveTo(s[0], s[1]);
                                            for (var u = 1; u < s.length / 2; u++) t.lineTo(s[2 * u], s[2 * u + 1]);
                                            s[0] === s[s.length - 2] && s[1] === s[s.length - 1] && t.closePath()
                                        } else if (o.type === r.SHAPES.RECT) t.rect(a.x, a.y, a.width, a.height), t.closePath();
                                        else if (o.type === r.SHAPES.CIRC) t.arc(a.x, a.y, a.radius, 0, 2 * Math.PI), t.closePath();
                                        else if (o.type === r.SHAPES.ELIP) {
                                            var l = 2 * a.width,
                                                c = 2 * a.height,
                                                h = a.x - l / 2,
                                                p = a.y - c / 2,
                                                d = l / 2 * .5522848,
                                                f = c / 2 * .5522848,
                                                m = h + l,
                                                _ = p + c,
                                                g = h + l / 2,
                                                y = p + c / 2;
                                            t.moveTo(h, y), t.bezierCurveTo(h, y - f, g - d, p, g, p), t.bezierCurveTo(g + d, p, m, y - f, m, y), t.bezierCurveTo(m, y + f, g + d, _, g, _), t.bezierCurveTo(g - d, _, h, y + f, h, y), t.closePath()
                                        } else if (o.type === r.SHAPES.RREC) {
                                            var v = a.x,
                                                b = a.y,
                                                x = a.width,
                                                T = a.height,
                                                w = a.radius,
                                                S = Math.min(x, T) / 2 | 0;
                                            w = w > S ? S : w, t.moveTo(v, b + w), t.lineTo(v, b + T - w), t.quadraticCurveTo(v, b + T, v + w, b + T), t.lineTo(v + x - w, b + T), t.quadraticCurveTo(v + x, b + T, v + x, b + T - w), t.lineTo(v + x, b + w), t.quadraticCurveTo(v + x, b, v + x - w, b), t.lineTo(v + w, b), t.quadraticCurveTo(v, b, v, b + w), t.closePath()
                                        }
                                    }
                                }
                            }, e.prototype.popMask = function(e) {
                                e.context.restore(), e.invalidateBlendMode()
                            }, e.prototype.destroy = function() {}, e
                        }();
                    n.default = o
                }, {
                    "../../../const": 46
                }],
                79: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = e("../../../settings"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = function() {
                            function e(t, n, r) {
                                i(this, e), this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.resolution = r || a.default.RESOLUTION, this.resize(t, n)
                            }
                            return e.prototype.clear = function() {
                                    this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.canvas.width, this.canvas.height)
                                }, e.prototype.resize = function(e, t) {
                                    this.canvas.width = e * this.resolution, this.canvas.height = t * this.resolution
                                },
                                e.prototype.destroy = function() {
                                    this.context = null, this.canvas = null
                                }, r(e, [{
                                    key: "width",
                                    get: function() {
                                        return this.canvas.width
                                    },
                                    set: function(e) {
                                        this.canvas.width = e
                                    }
                                }, {
                                    key: "height",
                                    get: function() {
                                        return this.canvas.height
                                    },
                                    set: function(e) {
                                        this.canvas.height = e
                                    }
                                }]), e
                        }();
                    n.default = s
                }, {
                    "../../../settings": 101
                }],
                80: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        var t = document.createElement("canvas");
                        t.width = 6, t.height = 1;
                        var n = t.getContext("2d");
                        return n.fillStyle = e, n.fillRect(0, 0, 6, 1), t
                    }

                    function r() {
                        if ("undefined" == typeof document) return !1;
                        var e = i("#ff00ff"),
                            t = i("#ffff00"),
                            n = document.createElement("canvas");
                        n.width = 6, n.height = 1;
                        var r = n.getContext("2d");
                        r.globalCompositeOperation = "multiply", r.drawImage(e, 0, 0), r.drawImage(t, 2, 0);
                        var o = r.getImageData(2, 0, 1, 1);
                        if (!o) return !1;
                        var a = o.data;
                        return 255 === a[0] && 0 === a[1] && 0 === a[2]
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                81: [function(e, t, n) {
                    "use strict";

                    function i() {
                        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
                        return (0, a.default)() ? (e[r.BLEND_MODES.NORMAL] = "source-over", e[r.BLEND_MODES.ADD] = "lighter", e[r.BLEND_MODES.MULTIPLY] = "multiply", e[r.BLEND_MODES.SCREEN] = "screen", e[r.BLEND_MODES.OVERLAY] = "overlay", e[r.BLEND_MODES.DARKEN] = "darken", e[r.BLEND_MODES.LIGHTEN] = "lighten", e[r.BLEND_MODES.COLOR_DODGE] = "color-dodge", e[r.BLEND_MODES.COLOR_BURN] = "color-burn", e[r.BLEND_MODES.HARD_LIGHT] = "hard-light", e[r.BLEND_MODES.SOFT_LIGHT] = "soft-light", e[r.BLEND_MODES.DIFFERENCE] = "difference", e[r.BLEND_MODES.EXCLUSION] = "exclusion", e[r.BLEND_MODES.HUE] = "hue", e[r.BLEND_MODES.SATURATION] = "saturate", e[r.BLEND_MODES.COLOR] = "color", e[r.BLEND_MODES.LUMINOSITY] = "luminosity") : (e[r.BLEND_MODES.NORMAL] = "source-over", e[r.BLEND_MODES.ADD] = "lighter", e[r.BLEND_MODES.MULTIPLY] = "source-over", e[r.BLEND_MODES.SCREEN] = "source-over", e[r.BLEND_MODES.OVERLAY] = "source-over", e[r.BLEND_MODES.DARKEN] = "source-over", e[r.BLEND_MODES.LIGHTEN] = "source-over", e[r.BLEND_MODES.COLOR_DODGE] = "source-over", e[r.BLEND_MODES.COLOR_BURN] = "source-over", e[r.BLEND_MODES.HARD_LIGHT] = "source-over", e[r.BLEND_MODES.SOFT_LIGHT] = "source-over", e[r.BLEND_MODES.DIFFERENCE] = "source-over", e[r.BLEND_MODES.EXCLUSION] = "source-over", e[r.BLEND_MODES.HUE] = "source-over", e[r.BLEND_MODES.SATURATION] = "source-over", e[r.BLEND_MODES.COLOR] = "source-over", e[r.BLEND_MODES.LUMINOSITY] = "source-over"), e[r.BLEND_MODES.NORMAL_NPM] = e[r.BLEND_MODES.NORMAL], e[r.BLEND_MODES.ADD_NPM] = e[r.BLEND_MODES.ADD], e[r.BLEND_MODES.SCREEN_NPM] = e[r.BLEND_MODES.SCREEN], e
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("../../../const"),
                        o = e("./canUseNewCanvasBlendModes"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o)
                }, {
                    "../../../const": 46,
                    "./canUseNewCanvasBlendModes": 80
                }],
                82: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../const"),
                        o = e("../../settings"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = function() {
                            function e(t) {
                                i(this, e), this.renderer = t, this.count = 0, this.checkCount = 0, this.maxIdle = a.default.GC_MAX_IDLE, this.checkCountMax = a.default.GC_MAX_CHECK_COUNT, this.mode = a.default.GC_MODE
                            }
                            return e.prototype.update = function() {
                                this.count++, this.mode !== r.GC_MODES.MANUAL && ++this.checkCount > this.checkCountMax && (this.checkCount = 0, this.run())
                            }, e.prototype.run = function() {
                                for (var e = this.renderer.textureManager, t = e._managedTextures, n = !1, i = 0; i < t.length; i++) {
                                    var r = t[i];
                                    !r._glRenderTargets && this.count - r.touched > this.maxIdle && (e.destroyTexture(r, !0), t[i] = null, n = !0)
                                }
                                if (n) {
                                    for (var o = 0, a = 0; a < t.length; a++) null !== t[a] && (t[o++] = t[a]);
                                    t.length = o
                                }
                            }, e.prototype.unload = function(e) {
                                var t = this.renderer.textureManager;
                                e._texture && e._texture._glRenderTargets && t.destroyTexture(e._texture, !0);
                                for (var n = e.children.length - 1; n >= 0; n--) this.unload(e.children[n])
                            }, e
                        }();
                    n.default = s
                }, {
                    "../../const": 46,
                    "../../settings": 101
                }],
                83: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("pixi-gl-core"),
                        o = e("../../const"),
                        a = e("./utils/RenderTarget"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = e("../../utils"),
                        l = function() {
                            function e(t) {
                                i(this, e), this.renderer = t, this.gl = t.gl, this._managedTextures = []
                            }
                            return e.prototype.bindTexture = function() {}, e.prototype.getTexture = function() {}, e.prototype.updateTexture = function(e, t) {
                                var n = this.gl,
                                    i = !!e._glRenderTargets;
                                if (!e.hasLoaded) return null;
                                var a = this.renderer.boundTextures;
                                if (void 0 === t) {
                                    t = 0;
                                    for (var u = 0; u < a.length; ++u)
                                        if (a[u] === e) {
                                            t = u;
                                            break
                                        }
                                }
                                a[t] = e, n.activeTexture(n.TEXTURE0 + t);
                                var l = e._glTextures[this.renderer.CONTEXT_UID];
                                if (l) i ? e._glRenderTargets[this.renderer.CONTEXT_UID].resize(e.width, e.height) : l.upload(e.source);
                                else {
                                    if (i) {
                                        var c = new s.default(this.gl, e.width, e.height, e.scaleMode, e.resolution);
                                        c.resize(e.width, e.height), e._glRenderTargets[this.renderer.CONTEXT_UID] = c, l = c.texture
                                    } else l = new r.GLTexture(this.gl, null, null, null, null), l.bind(t), l.premultiplyAlpha = !0, l.upload(e.source);
                                    e._glTextures[this.renderer.CONTEXT_UID] = l, e.on("update", this.updateTexture, this), e.on("dispose", this.destroyTexture, this), this._managedTextures.push(e), e.isPowerOfTwo ? (e.mipmap && l.enableMipmap(), e.wrapMode === o.WRAP_MODES.CLAMP ? l.enableWrapClamp() : e.wrapMode === o.WRAP_MODES.REPEAT ? l.enableWrapRepeat() : l.enableWrapMirrorRepeat()) : l.enableWrapClamp(), e.scaleMode === o.SCALE_MODES.NEAREST ? l.enableNearestScaling() : l.enableLinearScaling()
                                }
                                return l
                            }, e.prototype.destroyTexture = function(e, t) {
                                if (e = e.baseTexture || e, e.hasLoaded) {
                                    var n = this.renderer.CONTEXT_UID,
                                        i = e._glTextures,
                                        r = e._glRenderTargets;
                                    if (i[n] && (this.renderer.unbindTexture(e), i[n].destroy(), e.off("update", this.updateTexture, this), e.off("dispose", this.destroyTexture, this), delete i[n], !t)) {
                                        var o = this._managedTextures.indexOf(e); - 1 !== o && (0, u.removeItems)(this._managedTextures, o, 1)
                                    }
                                    r && r[n] && (r[n].destroy(), delete r[n])
                                }
                            }, e.prototype.removeAll = function() {
                                for (var e = 0; e < this._managedTextures.length; ++e) {
                                    var t = this._managedTextures[e];
                                    t._glTextures[this.renderer.CONTEXT_UID] && delete t._glTextures[this.renderer.CONTEXT_UID]
                                }
                            }, e.prototype.destroy = function() {
                                for (var e = 0; e < this._managedTextures.length; ++e) {
                                    var t = this._managedTextures[e];
                                    this.destroyTexture(t, !0), t.off("update", this.updateTexture, this), t.off("dispose", this.destroyTexture, this)
                                }
                                this._managedTextures = null
                            }, e
                        }();
                    n.default = l
                }, {
                    "../../const": 46,
                    "../../utils": 125,
                    "./utils/RenderTarget": 96,
                    "pixi-gl-core": 12
                }],
                84: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../SystemRenderer"),
                        u = i(s),
                        l = e("./managers/MaskManager"),
                        c = i(l),
                        h = e("./managers/StencilManager"),
                        p = i(h),
                        d = e("./managers/FilterManager"),
                        f = i(d),
                        m = e("./utils/RenderTarget"),
                        _ = i(m),
                        g = e("./utils/ObjectRenderer"),
                        y = i(g),
                        v = e("./TextureManager"),
                        b = i(v),
                        x = e("../../textures/BaseTexture"),
                        T = i(x),
                        w = e("./TextureGarbageCollector"),
                        S = i(w),
                        P = e("./WebGLState"),
                        C = i(P),
                        E = e("./utils/mapWebGLDrawModesToPixi"),
                        M = i(E),
                        O = e("./utils/validateContext"),
                        I = i(O),
                        A = e("../../utils"),
                        R = e("pixi-gl-core"),
                        k = i(R),
                        L = e("../../const"),
                        D = 0,
                        B = function(e) {
                            function t(n, i, a) {
                                r(this, t);
                                var s = o(this, e.call(this, "WebGL", n, i, a));
                                return s.legacy = s.options.legacy, s.legacy && (k.default.VertexArrayObject.FORCE_NATIVE = !0), s.type = L.RENDERER_TYPE.WEBGL, s.handleContextLost = s.handleContextLost.bind(s), s.handleContextRestored = s.handleContextRestored.bind(s), s.view.addEventListener("webglcontextlost", s.handleContextLost, !1), s.view.addEventListener("webglcontextrestored", s.handleContextRestored, !1), s._contextOptions = {
                                    alpha: s.transparent,
                                    antialias: s.options.antialias,
                                    premultipliedAlpha: s.transparent && "notMultiplied" !== s.transparent,
                                    stencil: !0,
                                    preserveDrawingBuffer: s.options.preserveDrawingBuffer,
                                    powerPreference: s.options.powerPreference
                                }, s._backgroundColorRgba[3] = s.transparent ? 0 : 1, s.maskManager = new c.default(s), s.stencilManager = new p.default(s), s.emptyRenderer = new y.default(s), s.currentRenderer = s.emptyRenderer, s.textureManager = null, s.filterManager = null, s.initPlugins(), s.options.context && (0, I.default)(s.options.context), s.gl = s.options.context || k.default.createContext(s.view, s._contextOptions), s.CONTEXT_UID = D++, s.state = new C.default(s.gl), s.renderingToScreen = !0, s.boundTextures = null, s._activeShader = null, s._activeVao = null, s._activeRenderTarget = null, s._initContext(), s.drawModes = (0, M.default)(s.gl), s._nextTextureLocation = 0, s.setBlendMode(0), s
                            }
                            return a(t, e), t.prototype._initContext = function() {
                                var e = this.gl;
                                e.isContextLost() && e.getExtension("WEBGL_lose_context") && e.getExtension("WEBGL_lose_context").restoreContext();
                                var t = e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);
                                this._activeShader = null, this._activeVao = null, this.boundTextures = new Array(t), this.emptyTextures = new Array(t), this.textureManager = new b.default(this), this.filterManager = new f.default(this), this.textureGC = new S.default(this), this.state.resetToDefault(), this.rootRenderTarget = new _.default(e, this.width, this.height, null, this.resolution, !0), this.rootRenderTarget.clearColor = this._backgroundColorRgba, this.bindRenderTarget(this.rootRenderTarget);
                                var n = new k.default.GLTexture.fromData(e, null, 1, 1),
                                    i = {
                                        _glTextures: {}
                                    };
                                i._glTextures[this.CONTEXT_UID] = {};
                                for (var r = 0; r < t; r++) {
                                    var o = new T.default;
                                    o._glTextures[this.CONTEXT_UID] = n, this.boundTextures[r] = i, this.emptyTextures[r] = o, this.bindTexture(null, r)
                                }
                                this.emit("context", e), this.resize(this.screen.width, this.screen.height)
                            }, t.prototype.render = function(e, t, n, i, r) {
                                if (this.renderingToScreen = !t, this.emit("prerender"), this.gl && !this.gl.isContextLost()) {
                                    if (this._nextTextureLocation = 0, t || (this._lastObjectRendered = e), !r) {
                                        var o = e.parent;
                                        e.parent = this._tempDisplayObjectParent, e.updateTransform(), e.parent = o
                                    }
                                    this.bindRenderTexture(t, i), this.currentRenderer.start(), (void 0 !== n ? n : this.clearBeforeRender) && this._activeRenderTarget.clear(), e.renderWebGL(this), this.currentRenderer.flush(), this.textureGC.update(), this.emit("postrender")
                                }
                            }, t.prototype.setObjectRenderer = function(e) {
                                this.currentRenderer !== e && (this.currentRenderer.stop(), this.currentRenderer = e, this.currentRenderer.start())
                            }, t.prototype.flush = function() {
                                this.setObjectRenderer(this.emptyRenderer)
                            }, t.prototype.resize = function(e, t) {
                                u.default.prototype.resize.call(this, e, t), this.rootRenderTarget.resize(e, t), this._activeRenderTarget === this.rootRenderTarget && (this.rootRenderTarget.activate(), this._activeShader && (this._activeShader.uniforms.projectionMatrix = this.rootRenderTarget.projectionMatrix.toArray(!0)))
                            }, t.prototype.setBlendMode = function(e) {
                                this.state.setBlendMode(e)
                            }, t.prototype.clear = function(e) {
                                this._activeRenderTarget.clear(e)
                            }, t.prototype.setTransform = function(e) {
                                this._activeRenderTarget.transform = e
                            }, t.prototype.clearRenderTexture = function(e, t) {
                                var n = e.baseTexture,
                                    i = n._glRenderTargets[this.CONTEXT_UID];
                                return i && i.clear(t), this
                            }, t.prototype.bindRenderTexture = function(e, t) {
                                var n = void 0;
                                if (e) {
                                    var i = e.baseTexture;
                                    i._glRenderTargets[this.CONTEXT_UID] || this.textureManager.updateTexture(i, 0), this.unbindTexture(i), n = i._glRenderTargets[this.CONTEXT_UID], n.setFrame(e.frame)
                                } else n = this.rootRenderTarget;
                                return n.transform = t, this.bindRenderTarget(n), this
                            }, t.prototype.bindRenderTarget = function(e) {
                                return e !== this._activeRenderTarget && (this._activeRenderTarget = e, e.activate(), this._activeShader && (this._activeShader.uniforms.projectionMatrix = e.projectionMatrix.toArray(!0)), this.stencilManager.setMaskStack(e.stencilMaskStack)), this
                            }, t.prototype.bindShader = function(e, t) {
                                return this._activeShader !== e && (this._activeShader = e, e.bind(), !1 !== t && (e.uniforms.projectionMatrix = this._activeRenderTarget.projectionMatrix.toArray(!0))), this
                            }, t.prototype.bindTexture = function(e, t, n) {
                                if (e = e || this.emptyTextures[t], e = e.baseTexture || e, e.touched = this.textureGC.count, n) t = t || 0;
                                else {
                                    for (var i = 0; i < this.boundTextures.length; i++)
                                        if (this.boundTextures[i] === e) return i;
                                    void 0 === t && (this._nextTextureLocation++, this._nextTextureLocation %= this.boundTextures.length, t = this.boundTextures.length - this._nextTextureLocation - 1)
                                }
                                var r = this.gl,
                                    o = e._glTextures[this.CONTEXT_UID];
                                return o ? (this.boundTextures[t] = e, r.activeTexture(r.TEXTURE0 + t), r.bindTexture(r.TEXTURE_2D, o.texture)) : this.textureManager.updateTexture(e, t), t
                            }, t.prototype.unbindTexture = function(e) {
                                var t = this.gl;
                                e = e.baseTexture || e;
                                for (var n = 0; n < this.boundTextures.length; n++) this.boundTextures[n] === e && (this.boundTextures[n] = this.emptyTextures[n], t.activeTexture(t.TEXTURE0 + n), t.bindTexture(t.TEXTURE_2D, this.emptyTextures[n]._glTextures[this.CONTEXT_UID].texture));
                                return this
                            }, t.prototype.createVao = function() {
                                return new k.default.VertexArrayObject(this.gl, this.state.attribState)
                            }, t.prototype.bindVao = function(e) {
                                return this._activeVao === e ? this : (e ? e.bind() : this._activeVao && this._activeVao.unbind(), this._activeVao = e, this)
                            }, t.prototype.reset = function() {
                                this.setObjectRenderer(this.emptyRenderer), this.bindVao(null), this._activeShader = null, this._activeRenderTarget = this.rootRenderTarget;
                                for (var e = 0; e < this.boundTextures.length; e++) this.boundTextures[e] = this.emptyTextures[e];
                                return this.rootRenderTarget.activate(), this.state.resetToDefault(), this
                            }, t.prototype.handleContextLost = function(e) {
                                e.preventDefault()
                            }, t.prototype.handleContextRestored = function() {
                                this.textureManager.removeAll(), this.filterManager.destroy(!0), this._initContext()
                            }, t.prototype.destroy = function(t) {
                                this.destroyPlugins(), this.view.removeEventListener("webglcontextlost", this.handleContextLost), this.view.removeEventListener("webglcontextrestored", this.handleContextRestored), this.textureManager.destroy(), e.prototype.destroy.call(this, t), this.uid = 0, this.maskManager.destroy(), this.stencilManager.destroy(), this.filterManager.destroy(), this.maskManager = null, this.filterManager = null, this.textureManager = null, this.currentRenderer = null, this.handleContextLost = null, this.handleContextRestored = null, this._contextOptions = null, this.gl.useProgram(null), this.gl.getExtension("WEBGL_lose_context") && this.gl.getExtension("WEBGL_lose_context").loseContext(), this.gl = null
                            }, t
                        }(u.default);
                    n.default = B, A.pluginTarget.mixin(B)
                }, {
                    "../../const": 46,
                    "../../textures/BaseTexture": 112,
                    "../../utils": 125,
                    "../SystemRenderer": 76,
                    "./TextureGarbageCollector": 82,
                    "./TextureManager": 83,
                    "./WebGLState": 85,
                    "./managers/FilterManager": 90,
                    "./managers/MaskManager": 91,
                    "./managers/StencilManager": 92,
                    "./utils/ObjectRenderer": 94,
                    "./utils/RenderTarget": 96,
                    "./utils/mapWebGLDrawModesToPixi": 99,
                    "./utils/validateContext": 100,
                    "pixi-gl-core": 12
                }],
                85: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("./utils/mapWebGLBlendModesToPixi"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = function() {
                            function e(t) {
                                i(this, e), this.activeState = new Uint8Array(16), this.defaultState = new Uint8Array(16), this.defaultState[0] = 1, this.stackIndex = 0, this.stack = [], this.gl = t, this.maxAttribs = t.getParameter(t.MAX_VERTEX_ATTRIBS), this.attribState = {
                                    tempAttribState: new Array(this.maxAttribs),
                                    attribState: new Array(this.maxAttribs)
                                }, this.blendModes = (0, o.default)(t), this.nativeVaoExtension = t.getExtension("OES_vertex_array_object") || t.getExtension("MOZ_OES_vertex_array_object") || t.getExtension("WEBKIT_OES_vertex_array_object")
                            }
                            return e.prototype.push = function() {
                                var e = this.stack[this.stackIndex];
                                e || (e = this.stack[this.stackIndex] = new Uint8Array(16)), ++this.stackIndex;
                                for (var t = 0; t < this.activeState.length; t++) e[t] = this.activeState[t]
                            }, e.prototype.pop = function() {
                                var e = this.stack[--this.stackIndex];
                                this.setState(e)
                            }, e.prototype.setState = function(e) {
                                this.setBlend(e[0]), this.setDepthTest(e[1]), this.setFrontFace(e[2]), this.setCullFace(e[3]), this.setBlendMode(e[4])
                            }, e.prototype.setBlend = function(e) {
                                e = e ? 1 : 0, this.activeState[0] !== e && (this.activeState[0] = e, this.gl[e ? "enable" : "disable"](this.gl.BLEND))
                            }, e.prototype.setBlendMode = function(e) {
                                if (e !== this.activeState[4]) {
                                    this.activeState[4] = e;
                                    var t = this.blendModes[e];
                                    2 === t.length ? this.gl.blendFunc(t[0], t[1]) : this.gl.blendFuncSeparate(t[0], t[1], t[2], t[3])
                                }
                            }, e.prototype.setDepthTest = function(e) {
                                e = e ? 1 : 0, this.activeState[1] !== e && (this.activeState[1] = e, this.gl[e ? "enable" : "disable"](this.gl.DEPTH_TEST))
                            }, e.prototype.setCullFace = function(e) {
                                e = e ? 1 : 0, this.activeState[3] !== e && (this.activeState[3] = e, this.gl[e ? "enable" : "disable"](this.gl.CULL_FACE))
                            }, e.prototype.setFrontFace = function(e) {
                                e = e ? 1 : 0, this.activeState[2] !== e && (this.activeState[2] = e, this.gl.frontFace(this.gl[e ? "CW" : "CCW"]))
                            }, e.prototype.resetAttributes = function() {
                                for (var e = 0; e < this.attribState.tempAttribState.length; e++) this.attribState.tempAttribState[e] = 0;
                                for (var t = 0; t < this.attribState.attribState.length; t++) this.attribState.attribState[t] = 0;
                                for (var n = 1; n < this.maxAttribs; n++) this.gl.disableVertexAttribArray(n)
                            }, e.prototype.resetToDefault = function() {
                                this.nativeVaoExtension && this.nativeVaoExtension.bindVertexArrayOES(null), this.resetAttributes();
                                for (var e = 0; e < this.activeState.length; ++e) this.activeState[e] = 32;
                                this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, !1), this.setState(this.defaultState)
                            }, e
                        }();
                    n.default = a
                }, {
                    "./utils/mapWebGLBlendModesToPixi": 98
                }],
                86: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        a = e("./extractUniformsFromSrc"),
                        s = i(a),
                        u = e("../../../utils"),
                        l = e("../../../const"),
                        c = e("../../../settings"),
                        h = i(c),
                        p = {},
                        d = function() {
                            function e(t, n, i) {
                                r(this, e), this.vertexSrc = t || e.defaultVertexSrc, this.fragmentSrc = n || e.defaultFragmentSrc, this._blendMode = l.BLEND_MODES.NORMAL, this.uniformData = i || (0, s.default)(this.vertexSrc, this.fragmentSrc, "projectionMatrix|uSampler"), this.uniforms = {};
                                for (var o in this.uniformData) this.uniforms[o] = this.uniformData[o].value, this.uniformData[o].type && (this.uniformData[o].type = this.uniformData[o].type.toLowerCase());
                                this.glShaders = {}, p[this.vertexSrc + this.fragmentSrc] || (p[this.vertexSrc + this.fragmentSrc] = (0, u.uid)()), this.glShaderKey = p[this.vertexSrc + this.fragmentSrc], this.padding = 4, this.resolution = h.default.RESOLUTION, this.enabled = !0, this.autoFit = !0
                            }
                            return e.prototype.apply = function(e, t, n, i, r) {
                                e.applyFilter(this, t, n, i)
                            }, o(e, [{
                                key: "blendMode",
                                get: function() {
                                    return this._blendMode
                                },
                                set: function(e) {
                                    this._blendMode = e
                                }
                            }], [{
                                key: "defaultVertexSrc",
                                get: function() {
                                    return ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "uniform mat3 projectionMatrix;", "uniform mat3 filterMatrix;", "varying vec2 vTextureCoord;", "varying vec2 vFilterCoord;", "void main(void){", "   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);", "   vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0)  ).xy;", "   vTextureCoord = aTextureCoord ;", "}"].join("\n")
                                }
                            }, {
                                key: "defaultFragmentSrc",
                                get: function() {
                                    return ["varying vec2 vTextureCoord;", "varying vec2 vFilterCoord;", "uniform sampler2D uSampler;", "uniform sampler2D filterSampler;", "void main(void){", "   vec4 masky = texture2D(filterSampler, vFilterCoord);", "   vec4 sample = texture2D(uSampler, vTextureCoord);", "   vec4 color;", "   if(mod(vFilterCoord.x, 1.0) > 0.5)", "   {", "     color = vec4(1.0, 0.0, 0.0, 1.0);", "   }", "   else", "   {", "     color = vec4(0.0, 1.0, 0.0, 1.0);", "   }", "   gl_FragColor = mix(sample, masky, 0.5);", "   gl_FragColor *= sample.a;", "}"].join("\n")
                                }
                            }]), e
                        }();
                    n.default = d
                }, {
                    "../../../const": 46,
                    "../../../settings": 101,
                    "../../../utils": 125,
                    "./extractUniformsFromSrc": 87
                }],
                87: [function(e, t, n) {
                    "use strict";

                    function i(e, t, n) {
                        var i = r(e),
                            o = r(t);
                        return Object.assign(i, o)
                    }

                    function r(e) {
                        for (var t = new RegExp("^(projectionMatrix|uSampler|filterArea|filterClamp)$"), n = {}, i = void 0, r = e.replace(/\s+/g, " ").split(/\s*;\s*/), o = 0; o < r.length; o++) {
                            var a = r[o].trim();
                            if (a.indexOf("uniform") > -1) {
                                var u = a.split(" "),
                                    l = u[1],
                                    c = u[2],
                                    h = 1;
                                c.indexOf("[") > -1 && (i = c.split(/\[|]/), c = i[0], h *= Number(i[1])), c.match(t) || (n[c] = {
                                    value: s(l, h),
                                    name: c,
                                    type: l
                                })
                            }
                        }
                        return n
                    }
                    n.__esModule = !0, n.default = i;
                    var o = e("pixi-gl-core"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = a.default.shader.defaultValue
                }, {
                    "pixi-gl-core": 12
                }],
                88: [function(e, t, n) {
                    "use strict";

                    function i(e, t, n) {
                        var i = e.identity();
                        return i.translate(t.x / n.width, t.y / n.height), i.scale(n.width, n.height), i
                    }

                    function r(e, t, n) {
                        var i = e.identity();
                        i.translate(t.x / n.width, t.y / n.height);
                        var r = n.width / t.width,
                            o = n.height / t.height;
                        return i.scale(r, o), i
                    }

                    function o(e, t, n, i) {
                        var r = i._texture.orig,
                            o = e.set(n.width, 0, 0, n.height, t.x, t.y),
                            s = i.worldTransform.copy(a.Matrix.TEMP_MATRIX);
                        return s.invert(), o.prepend(s), o.scale(1 / r.width, 1 / r.height), o.translate(i.anchor.x, i.anchor.y), o
                    }
                    n.__esModule = !0, n.calculateScreenSpaceMatrix = i, n.calculateNormalizedScreenSpaceMatrix = r, n.calculateSpriteMatrix = o;
                    var a = e("../../../math")
                }, {
                    "../../../math": 70
                }],
                89: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../Filter"),
                        u = i(s),
                        l = e("../../../../math"),
                        c = (e("path"), e("../../../../textures/TextureMatrix")),
                        h = i(c),
                        p = function(e) {
                            function t(n) {
                                r(this, t);
                                var i = new l.Matrix,
                                    a = o(this, e.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0)  ).xy;\n}\n", "varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform vec4 maskClamp;\n\nvoid main(void)\n{\n    float clip = step(3.5,\n        step(maskClamp.x, vMaskCoord.x) +\n        step(maskClamp.y, vMaskCoord.y) +\n        step(vMaskCoord.x, maskClamp.z) +\n        step(vMaskCoord.y, maskClamp.w));\n\n    vec4 original = texture2D(uSampler, vTextureCoord);\n    vec4 masky = texture2D(mask, vMaskCoord);\n\n    original *= (masky.r * masky.a * alpha * clip);\n\n    gl_FragColor = original;\n}\n"));
                                return n.renderable = !1, a.maskSprite = n, a.maskMatrix = i, a
                            }
                            return a(t, e), t.prototype.apply = function(e, t, n) {
                                var i = this.maskSprite,
                                    r = this.maskSprite.texture;
                                r.valid && (r.transform || (r.transform = new h.default(r, 0)), r.transform.update(), this.uniforms.mask = r, this.uniforms.otherMatrix = e.calculateSpriteMatrix(this.maskMatrix, i).prepend(r.transform.mapCoord), this.uniforms.alpha = i.worldAlpha, this.uniforms.maskClamp = r.transform.uClampFrame, e.applyFilter(this, t, n))
                            }, t
                        }(u.default);
                    n.default = p
                }, {
                    "../../../../math": 70,
                    "../../../../textures/TextureMatrix": 116,
                    "../Filter": 86,
                    path: 23
                }],
                90: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }

                    function a(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var s = e("./WebGLManager"),
                        u = i(s),
                        l = e("../utils/RenderTarget"),
                        c = i(l),
                        h = e("../utils/Quad"),
                        p = i(h),
                        d = e("../../../math"),
                        f = e("../../../Shader"),
                        m = i(f),
                        _ = e("../filters/filterTransforms"),
                        g = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(_),
                        y = e("bit-twiddle"),
                        v = i(y),
                        b = function e() {
                            a(this, e), this.renderTarget = null, this.sourceFrame = new d.Rectangle, this.destinationFrame = new d.Rectangle, this.filters = [], this.target = null, this.resolution = 1
                        },
                        x = function(e) {
                            function t(n) {
                                a(this, t);
                                var i = r(this, e.call(this, n));
                                return i.gl = i.renderer.gl, i.quad = new p.default(i.gl, n.state.attribState), i.shaderCache = {}, i.pool = {}, i.filterData = null, i.managedFilters = [], i
                            }
                            return o(t, e), t.prototype.pushFilter = function(e, t) {
                                var n = this.renderer,
                                    i = this.filterData;
                                if (!i) {
                                    i = this.renderer._activeRenderTarget.filterStack;
                                    var r = new b;
                                    r.sourceFrame = r.destinationFrame = this.renderer._activeRenderTarget.size, r.renderTarget = n._activeRenderTarget, this.renderer._activeRenderTarget.filterData = i = {
                                        index: 0,
                                        stack: [r]
                                    }, this.filterData = i
                                }
                                var o = i.stack[++i.index];
                                o || (o = i.stack[i.index] = new b);
                                var a = t[0].resolution,
                                    s = 0 | t[0].padding,
                                    u = e.filterArea || e.getBounds(!0),
                                    l = o.sourceFrame,
                                    c = o.destinationFrame;
                                l.x = (u.x * a | 0) / a, l.y = (u.y * a | 0) / a, l.width = (u.width * a | 0) / a, l.height = (u.height * a | 0) / a, i.stack[0].renderTarget.transform || t[0].autoFit && l.fit(i.stack[0].destinationFrame), l.pad(s), c.width = l.width, c.height = l.height;
                                var h = this.getPotRenderTarget(n.gl, l.width, l.height, a);
                                o.target = e, o.filters = t, o.resolution = a, o.renderTarget = h, h.setFrame(c, l), n.bindRenderTarget(h), h.clear()
                            }, t.prototype.popFilter = function() {
                                var e = this.filterData,
                                    t = e.stack[e.index - 1],
                                    n = e.stack[e.index];
                                this.quad.map(n.renderTarget.size, n.sourceFrame).upload();
                                var i = n.filters;
                                if (1 === i.length) i[0].apply(this, n.renderTarget, t.renderTarget, !1, n), this.freePotRenderTarget(n.renderTarget);
                                else {
                                    var r = n.renderTarget,
                                        o = this.getPotRenderTarget(this.renderer.gl, n.sourceFrame.width, n.sourceFrame.height, n.resolution);
                                    o.setFrame(n.destinationFrame, n.sourceFrame), o.clear();
                                    var a = 0;
                                    for (a = 0; a < i.length - 1; ++a) {
                                        i[a].apply(this, r, o, !0, n);
                                        var s = r;
                                        r = o, o = s
                                    }
                                    i[a].apply(this, r, t.renderTarget, !1, n), this.freePotRenderTarget(r), this.freePotRenderTarget(o)
                                }
                                0 === --e.index && (this.filterData = null)
                            }, t.prototype.applyFilter = function(e, t, n, i) {
                                var r = this.renderer,
                                    o = r.gl,
                                    a = e.glShaders[r.CONTEXT_UID];
                                a || (e.glShaderKey ? (a = this.shaderCache[e.glShaderKey]) || (a = new m.default(this.gl, e.vertexSrc, e.fragmentSrc), e.glShaders[r.CONTEXT_UID] = this.shaderCache[e.glShaderKey] = a, this.managedFilters.push(e)) : (a = e.glShaders[r.CONTEXT_UID] = new m.default(this.gl, e.vertexSrc, e.fragmentSrc), this.managedFilters.push(e)), r.bindVao(null), this.quad.initVao(a)), r.bindVao(this.quad.vao), r.bindRenderTarget(n), i && (o.disable(o.SCISSOR_TEST), r.clear(), o.enable(o.SCISSOR_TEST)), n === r.maskManager.scissorRenderTarget && r.maskManager.pushScissorMask(null, r.maskManager.scissorData), r.bindShader(a);
                                var s = this.renderer.emptyTextures[0];
                                this.renderer.boundTextures[0] = s, this.syncUniforms(a, e), r.state.setBlendMode(e.blendMode), o.activeTexture(o.TEXTURE0), o.bindTexture(o.TEXTURE_2D, t.texture.texture), this.quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0), o.bindTexture(o.TEXTURE_2D, s._glTextures[this.renderer.CONTEXT_UID].texture)
                            }, t.prototype.syncUniforms = function(e, t) {
                                var n = t.uniformData,
                                    i = t.uniforms,
                                    r = 1,
                                    o = void 0;
                                if (e.uniforms.filterArea) {
                                    o = this.filterData.stack[this.filterData.index];
                                    var a = e.uniforms.filterArea;
                                    a[0] = o.renderTarget.size.width, a[1] = o.renderTarget.size.height, a[2] = o.sourceFrame.x, a[3] = o.sourceFrame.y, e.uniforms.filterArea = a
                                }
                                if (e.uniforms.filterClamp) {
                                    o = o || this.filterData.stack[this.filterData.index];
                                    var s = e.uniforms.filterClamp;
                                    s[0] = 0, s[1] = 0, s[2] = (o.sourceFrame.width - 1) / o.renderTarget.size.width, s[3] = (o.sourceFrame.height - 1) / o.renderTarget.size.height, e.uniforms.filterClamp = s
                                }
                                for (var u in n) {
                                    var l = n[u].type;
                                    if ("sampler2d" === l && 0 !== i[u]) {
                                        if (i[u].baseTexture) e.uniforms[u] = this.renderer.bindTexture(i[u].baseTexture, r);
                                        else {
                                            e.uniforms[u] = r;
                                            var c = this.renderer.gl;
                                            this.renderer.boundTextures[r] = this.renderer.emptyTextures[r], c.activeTexture(c.TEXTURE0 + r), i[u].texture.bind()
                                        }
                                        r++
                                    } else if ("mat3" === l) void 0 !== i[u].a ? e.uniforms[u] = i[u].toArray(!0) : e.uniforms[u] = i[u];
                                    else if ("vec2" === l)
                                        if (void 0 !== i[u].x) {
                                            var h = e.uniforms[u] || new Float32Array(2);
                                            h[0] = i[u].x, h[1] = i[u].y, e.uniforms[u] = h
                                        } else e.uniforms[u] = i[u];
                                    else "float" === l ? e.uniforms.data[u].value !== n[u] && (e.uniforms[u] = i[u]) : e.uniforms[u] = i[u]
                                }
                            }, t.prototype.getRenderTarget = function(e, t) {
                                var n = this.filterData.stack[this.filterData.index],
                                    i = this.getPotRenderTarget(this.renderer.gl, n.sourceFrame.width, n.sourceFrame.height, t || n.resolution);
                                return i.setFrame(n.destinationFrame, n.sourceFrame), i
                            }, t.prototype.returnRenderTarget = function(e) {
                                this.freePotRenderTarget(e)
                            }, t.prototype.calculateScreenSpaceMatrix = function(e) {
                                var t = this.filterData.stack[this.filterData.index];
                                return g.calculateScreenSpaceMatrix(e, t.sourceFrame, t.renderTarget.size)
                            }, t.prototype.calculateNormalizedScreenSpaceMatrix = function(e) {
                                var t = this.filterData.stack[this.filterData.index];
                                return g.calculateNormalizedScreenSpaceMatrix(e, t.sourceFrame, t.renderTarget.size, t.destinationFrame)
                            }, t.prototype.calculateSpriteMatrix = function(e, t) {
                                var n = this.filterData.stack[this.filterData.index];
                                return g.calculateSpriteMatrix(e, n.sourceFrame, n.renderTarget.size, t)
                            }, t.prototype.destroy = function() {
                                for (var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], t = this.renderer, n = this.managedFilters, i = 0; i < n.length; i++) e || n[i].glShaders[t.CONTEXT_UID].destroy(), delete n[i].glShaders[t.CONTEXT_UID];
                                this.shaderCache = {}, e ? this.pool = {} : this.emptyPool()
                            }, t.prototype.getPotRenderTarget = function(e, t, n, i) {
                                t = v.default.nextPow2(t * i), n = v.default.nextPow2(n * i);
                                var r = (65535 & t) << 16 | 65535 & n;
                                this.pool[r] || (this.pool[r] = []);
                                var o = this.pool[r].pop();
                                if (!o) {
                                    var a = this.renderer.boundTextures[0];
                                    e.activeTexture(e.TEXTURE0), o = new c.default(e, t, n, null, 1), e.bindTexture(e.TEXTURE_2D, a._glTextures[this.renderer.CONTEXT_UID].texture)
                                }
                                return o.resolution = i, o.defaultFrame.width = o.size.width = t / i, o.defaultFrame.height = o.size.height = n / i, o
                            }, t.prototype.emptyPool = function() {
                                for (var e in this.pool) {
                                    var t = this.pool[e];
                                    if (t)
                                        for (var n = 0; n < t.length; n++) t[n].destroy(!0)
                                }
                                this.pool = {}
                            }, t.prototype.freePotRenderTarget = function(e) {
                                var t = e.size.width * e.resolution,
                                    n = e.size.height * e.resolution,
                                    i = (65535 & t) << 16 | 65535 & n;
                                this.pool[i].push(e)
                            }, t
                        }(u.default);
                    n.default = x
                }, {
                    "../../../Shader": 44,
                    "../../../math": 70,
                    "../filters/filterTransforms": 88,
                    "../utils/Quad": 95,
                    "../utils/RenderTarget": 96,
                    "./WebGLManager": 93,
                    "bit-twiddle": 1
                }],
                91: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("./WebGLManager"),
                        u = i(s),
                        l = e("../filters/spriteMask/SpriteMaskFilter"),
                        c = i(l),
                        h = function(e) {
                            function t(n) {
                                r(this, t);
                                var i = o(this, e.call(this, n));
                                return i.scissor = !1, i.scissorData = null, i.scissorRenderTarget = null, i.enableScissor = !0, i.alphaMaskPool = [], i.alphaMaskIndex = 0, i
                            }
                            return a(t, e), t.prototype.pushMask = function(e, t) {
                                if (t.texture) this.pushSpriteMask(e, t);
                                else if (this.enableScissor && !this.scissor && this.renderer._activeRenderTarget.root && !this.renderer.stencilManager.stencilMaskStack.length && t.isFastRect()) {
                                    var n = t.worldTransform,
                                        i = Math.atan2(n.b, n.a);
                                    i = Math.round(i * (180 / Math.PI)), i % 90 ? this.pushStencilMask(t) : this.pushScissorMask(e, t)
                                } else this.pushStencilMask(t)
                            }, t.prototype.popMask = function(e, t) {
                                t.texture ? this.popSpriteMask(e, t) : this.enableScissor && !this.renderer.stencilManager.stencilMaskStack.length ? this.popScissorMask(e, t) : this.popStencilMask(e, t)
                            }, t.prototype.pushSpriteMask = function(e, t) {
                                var n = this.alphaMaskPool[this.alphaMaskIndex];
                                n || (n = this.alphaMaskPool[this.alphaMaskIndex] = [new c.default(t)]), n[0].resolution = this.renderer.resolution, n[0].maskSprite = t, e.filterArea = t.getBounds(!0), this.renderer.filterManager.pushFilter(e, n), this.alphaMaskIndex++
                            }, t.prototype.popSpriteMask = function() {
                                this.renderer.filterManager.popFilter(), this.alphaMaskIndex--
                            }, t.prototype.pushStencilMask = function(e) {
                                this.renderer.currentRenderer.stop(), this.renderer.stencilManager.pushStencil(e)
                            }, t.prototype.popStencilMask = function() {
                                this.renderer.currentRenderer.stop(), this.renderer.stencilManager.popStencil()
                            }, t.prototype.pushScissorMask = function(e, t) {
                                t.renderable = !0;
                                var n = this.renderer._activeRenderTarget,
                                    i = t.getBounds();
                                i.fit(n.size), t.renderable = !1, this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST);
                                var r = this.renderer.resolution;
                                this.renderer.gl.scissor(i.x * r, (n.root ? n.size.height - i.y - i.height : i.y) * r, i.width * r, i.height * r), this.scissorRenderTarget = n, this.scissorData = t, this.scissor = !0
                            }, t.prototype.popScissorMask = function() {
                                this.scissorRenderTarget = null, this.scissorData = null, this.scissor = !1;
                                var e = this.renderer.gl;
                                e.disable(e.SCISSOR_TEST)
                            }, t
                        }(u.default);
                    n.default = h
                }, {
                    "../filters/spriteMask/SpriteMaskFilter": 89,
                    "./WebGLManager": 93
                }],
                92: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("./WebGLManager"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = function(e) {
                            function t(n) {
                                i(this, t);
                                var o = r(this, e.call(this, n));
                                return o.stencilMaskStack = null, o
                            }
                            return o(t, e), t.prototype.setMaskStack = function(e) {
                                this.stencilMaskStack = e;
                                var t = this.renderer.gl;
                                0 === e.length ? t.disable(t.STENCIL_TEST) : t.enable(t.STENCIL_TEST)
                            }, t.prototype.pushStencil = function(e) {
                                this.renderer.setObjectRenderer(this.renderer.plugins.graphics), this.renderer._activeRenderTarget.attachStencilBuffer();
                                var t = this.renderer.gl,
                                    n = this.stencilMaskStack.length;
                                0 === n && t.enable(t.STENCIL_TEST), this.stencilMaskStack.push(e), t.colorMask(!1, !1, !1, !1), t.stencilFunc(t.EQUAL, n, this._getBitwiseMask()), t.stencilOp(t.KEEP, t.KEEP, t.INCR), this.renderer.plugins.graphics.render(e), this._useCurrent()
                            }, t.prototype.popStencil = function() {
                                this.renderer.setObjectRenderer(this.renderer.plugins.graphics);
                                var e = this.renderer.gl,
                                    t = this.stencilMaskStack.pop();
                                0 === this.stencilMaskStack.length ? (e.disable(e.STENCIL_TEST), e.clear(e.STENCIL_BUFFER_BIT), e.clearStencil(0)) : (e.colorMask(!1, !1, !1, !1), e.stencilOp(e.KEEP, e.KEEP, e.DECR), this.renderer.plugins.graphics.render(t), this._useCurrent())
                            }, t.prototype._useCurrent = function() {
                                var e = this.renderer.gl;
                                e.colorMask(!0, !0, !0, !0), e.stencilFunc(e.EQUAL, this.stencilMaskStack.length, this._getBitwiseMask()), e.stencilOp(e.KEEP, e.KEEP, e.KEEP)
                            }, t.prototype._getBitwiseMask = function() {
                                return (1 << this.stencilMaskStack.length) - 1
                            }, t.prototype.destroy = function() {
                                s.default.prototype.destroy.call(this), this.stencilMaskStack.stencilStack = null
                            }, t
                        }(s.default);
                    n.default = u
                }, {
                    "./WebGLManager": 93
                }],
                93: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e(t) {
                            i(this, e), this.renderer = t, this.renderer.on("context", this.onContextChange, this)
                        }
                        return e.prototype.onContextChange = function() {}, e.prototype.destroy = function() {
                            this.renderer.off("context", this.onContextChange, this), this.renderer = null
                        }, e
                    }();
                    n.default = r
                }, {}],
                94: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("../managers/WebGLManager"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = function(e) {
                            function t() {
                                return i(this, t), r(this, e.apply(this, arguments))
                            }
                            return o(t, e), t.prototype.start = function() {}, t.prototype.stop = function() {
                                this.flush()
                            }, t.prototype.flush = function() {}, t.prototype.render = function(e) {}, t
                        }(s.default);
                    n.default = u
                }, {
                    "../managers/WebGLManager": 93
                }],
                95: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = e("pixi-gl-core"),
                        a = i(o),
                        s = e("../../../utils/createIndicesForQuads"),
                        u = i(s),
                        l = function() {
                            function e(t, n) {
                                r(this, e), this.gl = t, this.vertices = new Float32Array([-1, -1, 1, -1, 1, 1, -1, 1]), this.uvs = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), this.interleaved = new Float32Array(16);
                                for (var i = 0; i < 4; i++) this.interleaved[4 * i] = this.vertices[2 * i], this.interleaved[4 * i + 1] = this.vertices[2 * i + 1], this.interleaved[4 * i + 2] = this.uvs[2 * i], this.interleaved[4 * i + 3] = this.uvs[2 * i + 1];
                                this.indices = (0, u.default)(1), this.vertexBuffer = a.default.GLBuffer.createVertexBuffer(t, this.interleaved, t.STATIC_DRAW), this.indexBuffer = a.default.GLBuffer.createIndexBuffer(t, this.indices, t.STATIC_DRAW), this.vao = new a.default.VertexArrayObject(t, n)
                            }
                            return e.prototype.initVao = function(e) {
                                this.vao.clear().addIndex(this.indexBuffer).addAttribute(this.vertexBuffer, e.attributes.aVertexPosition, this.gl.FLOAT, !1, 16, 0).addAttribute(this.vertexBuffer, e.attributes.aTextureCoord, this.gl.FLOAT, !1, 16, 8)
                            }, e.prototype.map = function(e, t) {
                                var n = 0,
                                    i = 0;
                                return this.uvs[0] = n, this.uvs[1] = i, this.uvs[2] = n + t.width / e.width, this.uvs[3] = i, this.uvs[4] = n + t.width / e.width, this.uvs[5] = i + t.height / e.height, this.uvs[6] = n, this.uvs[7] = i + t.height / e.height, n = t.x, i = t.y, this.vertices[0] = n, this.vertices[1] = i, this.vertices[2] = n + t.width, this.vertices[3] = i, this.vertices[4] = n + t.width, this.vertices[5] = i + t.height, this.vertices[6] = n, this.vertices[7] = i + t.height, this
                            }, e.prototype.upload = function() {
                                for (var e = 0; e < 4; e++) this.interleaved[4 * e] = this.vertices[2 * e], this.interleaved[4 * e + 1] = this.vertices[2 * e + 1], this.interleaved[4 * e + 2] = this.uvs[2 * e], this.interleaved[4 * e + 3] = this.uvs[2 * e + 1];
                                return this.vertexBuffer.upload(this.interleaved), this
                            }, e.prototype.destroy = function() {
                                var e = this.gl;
                                e.deleteBuffer(this.vertexBuffer), e.deleteBuffer(this.indexBuffer)
                            }, e
                        }();
                    n.default = l
                }, {
                    "../../../utils/createIndicesForQuads": 123,
                    "pixi-gl-core": 12
                }],
                96: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../../math"),
                        o = e("../../../const"),
                        a = e("../../../settings"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = e("pixi-gl-core"),
                        l = function() {
                            function e(t, n, a, l, c, h) {
                                i(this, e), this.gl = t, this.frameBuffer = null, this.texture = null, this.clearColor = [0, 0, 0, 0], this.size = new r.Rectangle(0, 0, 1, 1), this.resolution = c || s.default.RESOLUTION, this.projectionMatrix = new r.Matrix, this.transform = null, this.frame = null, this.defaultFrame = new r.Rectangle, this.destinationFrame = null, this.sourceFrame = null, this.stencilBuffer = null, this.stencilMaskStack = [], this.filterData = null, this.scaleMode = void 0 !== l ? l : s.default.SCALE_MODE, this.root = h, this.root ? (this.frameBuffer = new u.GLFramebuffer(t, 100, 100), this.frameBuffer.framebuffer = null) : (this.frameBuffer = u.GLFramebuffer.createRGBA(t, 100, 100), this.scaleMode === o.SCALE_MODES.NEAREST ? this.frameBuffer.texture.enableNearestScaling() : this.frameBuffer.texture.enableLinearScaling(), this.texture = this.frameBuffer.texture), this.setFrame(), this.resize(n, a)
                            }
                            return e.prototype.clear = function(e) {
                                var t = e || this.clearColor;
                                this.frameBuffer.clear(t[0], t[1], t[2], t[3])
                            }, e.prototype.attachStencilBuffer = function() {
                                this.root || this.frameBuffer.enableStencil()
                            }, e.prototype.setFrame = function(e, t) {
                                this.destinationFrame = e || this.destinationFrame || this.defaultFrame, this.sourceFrame = t || this.sourceFrame || this.destinationFrame
                            }, e.prototype.activate = function() {
                                var e = this.gl;
                                this.frameBuffer.bind(), this.calculateProjection(this.destinationFrame, this.sourceFrame), this.transform && this.projectionMatrix.append(this.transform), this.destinationFrame !== this.sourceFrame ? (e.enable(e.SCISSOR_TEST), e.scissor(0 | this.destinationFrame.x, 0 | this.destinationFrame.y, this.destinationFrame.width * this.resolution | 0, this.destinationFrame.height * this.resolution | 0)) : e.disable(e.SCISSOR_TEST), e.viewport(0 | this.destinationFrame.x, 0 | this.destinationFrame.y, this.destinationFrame.width * this.resolution | 0, this.destinationFrame.height * this.resolution | 0)
                            }, e.prototype.calculateProjection = function(e, t) {
                                var n = this.projectionMatrix;
                                t = t || e, n.identity(), this.root ? (n.a = 1 / e.width * 2, n.d = -1 / e.height * 2, n.tx = -1 - t.x * n.a, n.ty = 1 - t.y * n.d) : (n.a = 1 / e.width * 2, n.d = 1 / e.height * 2, n.tx = -1 - t.x * n.a, n.ty = -1 - t.y * n.d)
                            }, e.prototype.resize = function(e, t) {
                                if (e |= 0, t |= 0, this.size.width !== e || this.size.height !== t) {
                                    this.size.width = e, this.size.height = t, this.defaultFrame.width = e, this.defaultFrame.height = t, this.frameBuffer.resize(e * this.resolution, t * this.resolution);
                                    var n = this.frame || this.size;
                                    this.calculateProjection(n)
                                }
                            }, e.prototype.destroy = function() {
                                this.frameBuffer.destroy(), this.frameBuffer = null, this.texture = null
                            }, e
                        }();
                    n.default = l
                }, {
                    "../../../const": 46,
                    "../../../math": 70,
                    "../../../settings": 101,
                    "pixi-gl-core": 12
                }],
                97: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        var n = !t;
                        if (0 === e) throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");
                        if (n) {
                            var i = document.createElement("canvas");
                            i.width = 1, i.height = 1, t = a.default.createContext(i)
                        }
                        for (var o = t.createShader(t.FRAGMENT_SHADER);;) {
                            var u = s.replace(/%forloop%/gi, r(e));
                            if (t.shaderSource(o, u), t.compileShader(o), t.getShaderParameter(o, t.COMPILE_STATUS)) break;
                            e = e / 2 | 0
                        }
                        return n && t.getExtension("WEBGL_lose_context") && t.getExtension("WEBGL_lose_context").loseContext(), e
                    }

                    function r(e) {
                        for (var t = "", n = 0; n < e; ++n) n > 0 && (t += "\nelse "), n < e - 1 && (t += "if(test == " + n + ".0){}");
                        return t
                    }
                    n.__esModule = !0, n.default = i;
                    var o = e("pixi-gl-core"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = ["precision mediump float;", "void main(void){", "float test = 0.1;", "%forloop%", "gl_FragColor = vec4(0.0);", "}"].join("\n")
                }, {
                    "pixi-gl-core": 12
                }],
                98: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
                        return t[r.BLEND_MODES.NORMAL] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.ADD] = [e.ONE, e.DST_ALPHA], t[r.BLEND_MODES.MULTIPLY] = [e.DST_COLOR, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.SCREEN] = [e.ONE, e.ONE_MINUS_SRC_COLOR], t[r.BLEND_MODES.OVERLAY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.DARKEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.LIGHTEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.COLOR_DODGE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.COLOR_BURN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.HARD_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.SOFT_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.DIFFERENCE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.EXCLUSION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.HUE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.SATURATION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.COLOR] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.LUMINOSITY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.NORMAL_NPM] = [e.SRC_ALPHA, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA], t[r.BLEND_MODES.ADD_NPM] = [e.SRC_ALPHA, e.DST_ALPHA, e.ONE, e.DST_ALPHA], t[r.BLEND_MODES.SCREEN_NPM] = [e.SRC_ALPHA, e.ONE_MINUS_SRC_COLOR, e.ONE, e.ONE_MINUS_SRC_COLOR], t
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("../../../const")
                }, {
                    "../../../const": 46
                }],
                99: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                        return t[r.DRAW_MODES.POINTS] = e.POINTS, t[r.DRAW_MODES.LINES] = e.LINES, t[r.DRAW_MODES.LINE_LOOP] = e.LINE_LOOP, t[r.DRAW_MODES.LINE_STRIP] = e.LINE_STRIP, t[r.DRAW_MODES.TRIANGLES] = e.TRIANGLES, t[r.DRAW_MODES.TRIANGLE_STRIP] = e.TRIANGLE_STRIP, t[r.DRAW_MODES.TRIANGLE_FAN] = e.TRIANGLE_FAN, t
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("../../../const")
                }, {
                    "../../../const": 46
                }],
                100: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        e.getContextAttributes().stencil
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                101: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./utils/maxRecommendedTextures"),
                        o = i(r),
                        a = e("./utils/canUploadSameBuffer"),
                        s = i(a);
                    n.default = {
                        TARGET_FPMS: .06,
                        MIPMAP_TEXTURES: !0,
                        RESOLUTION: 1,
                        FILTER_RESOLUTION: 1,
                        SPRITE_MAX_TEXTURES: (0, o.default)(32),
                        SPRITE_BATCH_SIZE: 4096,
                        RETINA_PREFIX: /@([0-9\.]+)x/,
                        RENDER_OPTIONS: {
                            view: null,
                            antialias: !1,
                            forceFXAA: !1,
                            autoResize: !1,
                            transparent: !1,
                            backgroundColor: 0,
                            clearBeforeRender: !0,
                            preserveDrawingBuffer: !1,
                            roundPixels: !1,
                            width: 800,
                            height: 600,
                            legacy: !1
                        },
                        TRANSFORM_MODE: 0,
                        GC_MODE: 0,
                        GC_MAX_IDLE: 3600,
                        GC_MAX_CHECK_COUNT: 600,
                        WRAP_MODE: 0,
                        SCALE_MODE: 0,
                        PRECISION_VERTEX: "highp",
                        PRECISION_FRAGMENT: "mediump",
                        CAN_UPLOAD_SAME_BUFFER: (0, s.default)()
                    }
                }, {
                    "./utils/canUploadSameBuffer": 122,
                    "./utils/maxRecommendedTextures": 127
                }],
                102: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("../math"),
                        l = e("../utils"),
                        c = e("../const"),
                        h = e("../textures/Texture"),
                        p = i(h),
                        d = e("../display/Container"),
                        f = i(d),
                        m = new u.Point,
                        _ = function(e) {
                            function t(n) {
                                r(this, t);
                                var i = o(this, e.call(this));
                                return i._anchor = new u.ObservablePoint(i._onAnchorUpdate, i), i._texture = null, i._width = 0, i._height = 0, i._tint = null, i._tintRGB = null, i.tint = 16777215, i.blendMode = c.BLEND_MODES.NORMAL, i.shader = null, i.cachedTint = 16777215, i.texture = n || p.default.EMPTY, i.vertexData = new Float32Array(8), i.vertexTrimmedData = null, i._transformID = -1, i._textureID = -1, i._transformTrimmedID = -1, i._textureTrimmedID = -1, i.pluginName = "sprite", i
                            }
                            return a(t, e), t.prototype._onTextureUpdate = function() {
                                this._textureID = -1, this._textureTrimmedID = -1, this.cachedTint = 16777215, this._width && (this.scale.x = (0, l.sign)(this.scale.x) * this._width / this._texture.orig.width), this._height && (this.scale.y = (0, l.sign)(this.scale.y) * this._height / this._texture.orig.height)
                            }, t.prototype._onAnchorUpdate = function() {
                                this._transformID = -1, this._transformTrimmedID = -1
                            }, t.prototype.calculateVertices = function() {
                                if (this._transformID !== this.transform._worldID || this._textureID !== this._texture._updateID) {
                                    this._transformID = this.transform._worldID, this._textureID = this._texture._updateID;
                                    var e = this._texture,
                                        t = this.transform.worldTransform,
                                        n = t.a,
                                        i = t.b,
                                        r = t.c,
                                        o = t.d,
                                        a = t.tx,
                                        s = t.ty,
                                        u = this.vertexData,
                                        l = e.trim,
                                        c = e.orig,
                                        h = this._anchor,
                                        p = 0,
                                        d = 0,
                                        f = 0,
                                        m = 0;
                                    l ? (d = l.x - h._x * c.width, p = d + l.width, m = l.y - h._y * c.height, f = m + l.height) : (d = -h._x * c.width, p = d + c.width, m = -h._y * c.height, f = m + c.height), u[0] = n * d + r * m + a, u[1] = o * m + i * d + s, u[2] = n * p + r * m + a, u[3] = o * m + i * p + s, u[4] = n * p + r * f + a, u[5] = o * f + i * p + s, u[6] = n * d + r * f + a, u[7] = o * f + i * d + s
                                }
                            }, t.prototype.calculateTrimmedVertices = function() {
                                if (this.vertexTrimmedData) {
                                    if (this._transformTrimmedID === this.transform._worldID && this._textureTrimmedID === this._texture._updateID) return
                                } else this.vertexTrimmedData = new Float32Array(8);
                                this._transformTrimmedID = this.transform._worldID, this._textureTrimmedID = this._texture._updateID;
                                var e = this._texture,
                                    t = this.vertexTrimmedData,
                                    n = e.orig,
                                    i = this._anchor,
                                    r = this.transform.worldTransform,
                                    o = r.a,
                                    a = r.b,
                                    s = r.c,
                                    u = r.d,
                                    l = r.tx,
                                    c = r.ty,
                                    h = -i._x * n.width,
                                    p = h + n.width,
                                    d = -i._y * n.height,
                                    f = d + n.height;
                                t[0] = o * h + s * d + l, t[1] = u * d + a * h + c, t[2] = o * p + s * d + l, t[3] = u * d + a * p + c, t[4] = o * p + s * f + l, t[5] = u * f + a * p + c, t[6] = o * h + s * f + l, t[7] = u * f + a * h + c
                            }, t.prototype._renderWebGL = function(e) {
                                this.calculateVertices(), e.setObjectRenderer(e.plugins[this.pluginName]), e.plugins[this.pluginName].render(this)
                            }, t.prototype._renderCanvas = function(e) {
                                e.plugins[this.pluginName].render(this)
                            }, t.prototype._calculateBounds = function() {
                                var e = this._texture.trim,
                                    t = this._texture.orig;
                                !e || e.width === t.width && e.height === t.height ? (this.calculateVertices(), this._bounds.addQuad(this.vertexData)) : (this.calculateTrimmedVertices(), this._bounds.addQuad(this.vertexTrimmedData))
                            }, t.prototype.getLocalBounds = function(t) {
                                return 0 === this.children.length ? (this._bounds.minX = this._texture.orig.width * -this._anchor._x, this._bounds.minY = this._texture.orig.height * -this._anchor._y, this._bounds.maxX = this._texture.orig.width * (1 - this._anchor._x), this._bounds.maxY = this._texture.orig.height * (1 - this._anchor._y), t || (this._localBoundsRect || (this._localBoundsRect = new u.Rectangle), t = this._localBoundsRect), this._bounds.getRectangle(t)) : e.prototype.getLocalBounds.call(this, t)
                            }, t.prototype.containsPoint = function(e) {
                                this.worldTransform.applyInverse(e, m);
                                var t = this._texture.orig.width,
                                    n = this._texture.orig.height,
                                    i = -t * this.anchor.x,
                                    r = 0;
                                return m.x >= i && m.x < i + t && (r = -n * this.anchor.y, m.y >= r && m.y < r + n)
                            }, t.prototype.destroy = function(t) {
                                if (e.prototype.destroy.call(this, t), this._anchor = null, "boolean" == typeof t ? t : t && t.texture) {
                                    var n = "boolean" == typeof t ? t : t && t.baseTexture;
                                    this._texture.destroy(!!n)
                                }
                                this._texture = null, this.shader = null
                            }, t.from = function(e) {
                                return new t(p.default.from(e))
                            }, t.fromFrame = function(e) {
                                var n = l.TextureCache[e];
                                if (!n) throw new Error('The frameId "' + e + '" does not exist in the texture cache');
                                return new t(n)
                            }, t.fromImage = function(e, n, i) {
                                return new t(p.default.fromImage(e, n, i))
                            }, s(t, [{
                                key: "width",
                                get: function() {
                                    return Math.abs(this.scale.x) * this._texture.orig.width
                                },
                                set: function(e) {
                                    var t = (0, l.sign)(this.scale.x) || 1;
                                    this.scale.x = t * e / this._texture.orig.width, this._width = e
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return Math.abs(this.scale.y) * this._texture.orig.height
                                },
                                set: function(e) {
                                    var t = (0, l.sign)(this.scale.y) || 1;
                                    this.scale.y = t * e / this._texture.orig.height, this._height = e
                                }
                            }, {
                                key: "anchor",
                                get: function() {
                                    return this._anchor
                                },
                                set: function(e) {
                                    this._anchor.copy(e)
                                }
                            }, {
                                key: "tint",
                                get: function() {
                                    return this._tint
                                },
                                set: function(e) {
                                    this._tint = e, this._tintRGB = (e >> 16) + (65280 & e) + ((255 & e) << 16)
                                }
                            }, {
                                key: "texture",
                                get: function() {
                                    return this._texture
                                },
                                set: function(e) {
                                    this._texture !== e && (this._texture = e, this.cachedTint = 16777215, this._textureID = -1, this._textureTrimmedID = -1, e && (e.baseTexture.hasLoaded ? this._onTextureUpdate() : e.once("update", this._onTextureUpdate, this)))
                                }
                            }]), t
                        }(f.default);
                    n.default = _
                }, {
                    "../const": 46,
                    "../display/Container": 48,
                    "../math": 70,
                    "../textures/Texture": 115,
                    "../utils": 125
                }],
                103: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = e("../../renderers/canvas/CanvasRenderer"),
                        a = i(o),
                        s = e("../../const"),
                        u = e("../../math"),
                        l = e("./CanvasTinter"),
                        c = i(l),
                        h = new u.Matrix,
                        p = function() {
                            function e(t) {
                                r(this, e), this.renderer = t
                            }
                            return e.prototype.render = function(e) {
                                var t = e._texture,
                                    n = this.renderer,
                                    i = t._frame.width,
                                    r = t._frame.height,
                                    o = e.transform.worldTransform,
                                    a = 0,
                                    l = 0;
                                if (!(t.orig.width <= 0 || t.orig.height <= 0) && t.baseTexture.source && (n.setBlendMode(e.blendMode), t.valid)) {
                                    n.context.globalAlpha = e.worldAlpha;
                                    var p = t.baseTexture.scaleMode === s.SCALE_MODES.LINEAR;
                                    n.smoothProperty && n.context[n.smoothProperty] !== p && (n.context[n.smoothProperty] = p), t.trim ? (a = t.trim.width / 2 + t.trim.x - e.anchor.x * t.orig.width, l = t.trim.height / 2 + t.trim.y - e.anchor.y * t.orig.height) : (a = (.5 - e.anchor.x) * t.orig.width, l = (.5 - e.anchor.y) * t.orig.height), t.rotate && (o.copy(h), o = h, u.GroupD8.matrixAppendRotationInv(o, t.rotate, a, l), a = 0, l = 0), a -= i / 2, l -= r / 2, n.roundPixels ? (n.context.setTransform(o.a, o.b, o.c, o.d, o.tx * n.resolution | 0, o.ty * n.resolution | 0), a |= 0, l |= 0) : n.context.setTransform(o.a, o.b, o.c, o.d, o.tx * n.resolution, o.ty * n.resolution);
                                    var d = t.baseTexture.resolution;
                                    16777215 !== e.tint ? (e.cachedTint === e.tint && e.tintedTexture.tintId === e._texture._updateID || (e.cachedTint = e.tint, e.tintedTexture = c.default.getTintedTexture(e, e.tint)), n.context.drawImage(e.tintedTexture, 0, 0, i * d, r * d, a * n.resolution, l * n.resolution, i * n.resolution, r * n.resolution)) : n.context.drawImage(t.baseTexture.source, t._frame.x * d, t._frame.y * d, i * d, r * d, a * n.resolution, l * n.resolution, i * n.resolution, r * n.resolution)
                                }
                            }, e.prototype.destroy = function() {
                                this.renderer = null
                            }, e
                        }();
                    n.default = p, a.default.registerPlugin("sprite", p)
                }, {
                    "../../const": 46,
                    "../../math": 70,
                    "../../renderers/canvas/CanvasRenderer": 77,
                    "./CanvasTinter": 104
                }],
                104: [function(e, t, n) {
                    "use strict";
                    n.__esModule = !0;
                    var i = e("../../utils"),
                        r = e("../../renderers/canvas/utils/canUseNewCanvasBlendModes"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = {
                            getTintedTexture: function(e, t) {
                                var n = e._texture;
                                t = a.roundColor(t);
                                var i = "#" + ("00000" + (0 | t).toString(16)).substr(-6);
                                n.tintCache = n.tintCache || {};
                                var r = n.tintCache[i],
                                    o = void 0;
                                if (r) {
                                    if (r.tintId === n._updateID) return n.tintCache[i];
                                    o = n.tintCache[i]
                                } else o = a.canvas || document.createElement("canvas");
                                if (a.tintMethod(n, t, o), o.tintId = n._updateID, a.convertTintToImage) {
                                    var s = new Image;
                                    s.src = o.toDataURL(), n.tintCache[i] = s
                                } else n.tintCache[i] = o, a.canvas = null;
                                return o
                            },
                            tintWithMultiply: function(e, t, n) {
                                var i = n.getContext("2d"),
                                    r = e._frame.clone(),
                                    o = e.baseTexture.resolution;
                                r.x *= o, r.y *= o, r.width *= o, r.height *= o, n.width = Math.ceil(r.width), n.height = Math.ceil(r.height), i.save(), i.fillStyle = "#" + ("00000" + (0 | t).toString(16)).substr(-6), i.fillRect(0, 0, r.width, r.height), i.globalCompositeOperation = "multiply", i.drawImage(e.baseTexture.source, r.x, r.y, r.width, r.height, 0, 0, r.width, r.height), i.globalCompositeOperation = "destination-atop", i.drawImage(e.baseTexture.source, r.x, r.y, r.width, r.height, 0, 0, r.width, r.height), i.restore()
                            },
                            tintWithOverlay: function(e, t, n) {
                                var i = n.getContext("2d"),
                                    r = e._frame.clone(),
                                    o = e.baseTexture.resolution;
                                r.x *= o, r.y *= o, r.width *= o, r.height *= o, n.width = Math.ceil(r.width), n.height = Math.ceil(r.height), i.save(), i.globalCompositeOperation = "copy", i.fillStyle = "#" + ("00000" + (0 | t).toString(16)).substr(-6), i.fillRect(0, 0, r.width, r.height), i.globalCompositeOperation = "destination-atop", i.drawImage(e.baseTexture.source, r.x, r.y, r.width, r.height, 0, 0, r.width, r.height), i.restore()
                            },
                            tintWithPerPixel: function(e, t, n) {
                                var r = n.getContext("2d"),
                                    o = e._frame.clone(),
                                    a = e.baseTexture.resolution;
                                o.x *= a, o.y *= a, o.width *= a, o.height *= a, n.width = Math.ceil(o.width), n.height = Math.ceil(o.height), r.save(), r.globalCompositeOperation = "copy", r.drawImage(e.baseTexture.source, o.x, o.y, o.width, o.height, 0, 0, o.width, o.height), r.restore();
                                for (var s = (0, i.hex2rgb)(t), u = s[0], l = s[1], c = s[2], h = r.getImageData(0, 0, o.width, o.height), p = h.data, d = 0; d < p.length; d += 4) p[d + 0] *= u, p[d + 1] *= l, p[d + 2] *= c;
                                r.putImageData(h, 0, 0)
                            },
                            roundColor: function(e) {
                                var t = a.cacheStepsPerColorChannel,
                                    n = (0, i.hex2rgb)(e);
                                return n[0] = Math.min(255, n[0] / t * t), n[1] = Math.min(255, n[1] / t * t), n[2] = Math.min(255, n[2] / t * t), (0, i.rgb2hex)(n)
                            },
                            cacheStepsPerColorChannel: 8,
                            convertTintToImage: !1,
                            canUseMultiply: (0, o.default)(),
                            tintMethod: 0
                        };
                    a.tintMethod = a.canUseMultiply ? a.tintWithMultiply : a.tintWithPerPixel, n.default = a
                }, {
                    "../../renderers/canvas/utils/canUseNewCanvasBlendModes": 80,
                    "../../utils": 125
                }],
                105: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e(t) {
                            i(this, e), this.vertices = new ArrayBuffer(t), this.float32View = new Float32Array(this.vertices), this.uint32View = new Uint32Array(this.vertices)
                        }
                        return e.prototype.destroy = function() {
                            this.vertices = null, this.positions = null, this.uvs = null, this.colors = null
                        }, e
                    }();
                    n.default = r
                }, {}],
                106: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../../renderers/webgl/utils/ObjectRenderer"),
                        u = i(s),
                        l = e("../../renderers/webgl/WebGLRenderer"),
                        c = i(l),
                        h = e("../../utils/createIndicesForQuads"),
                        p = i(h),
                        d = e("./generateMultiTextureShader"),
                        f = i(d),
                        m = e("../../renderers/webgl/utils/checkMaxIfStatmentsInShader"),
                        _ = i(m),
                        g = e("./BatchBuffer"),
                        y = i(g),
                        v = e("../../settings"),
                        b = i(v),
                        x = e("../../utils"),
                        T = e("pixi-gl-core"),
                        w = i(T),
                        S = e("bit-twiddle"),
                        P = i(S),
                        C = 0,
                        E = 0,
                        M = function(e) {
                            function t(n) {
                                r(this, t);
                                var i = o(this, e.call(this, n));
                                i.vertSize = 5, i.vertByteSize = 4 * i.vertSize, i.size = b.default.SPRITE_BATCH_SIZE, i.buffers = [];
                                for (var a = 1; a <= P.default.nextPow2(i.size); a *= 2) i.buffers.push(new y.default(4 * a * i.vertByteSize));
                                i.indices = (0, p.default)(i.size), i.shader = null, i.currentIndex = 0, i.groups = [];
                                for (var s = 0; s < i.size; s++) i.groups[s] = {
                                    textures: [],
                                    textureCount: 0,
                                    ids: [],
                                    size: 0,
                                    start: 0,
                                    blend: 0
                                };
                                return i.sprites = [], i.vertexBuffers = [], i.vaos = [], i.vaoMax = 2, i.vertexCount = 0, i.renderer.on("prerender", i.onPrerender, i), i
                            }
                            return a(t, e), t.prototype.onContextChange = function() {
                                var e = this.renderer.gl;
                                this.renderer.legacy ? this.MAX_TEXTURES = 1 : (this.MAX_TEXTURES = Math.min(e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS), b.default.SPRITE_MAX_TEXTURES), this.MAX_TEXTURES = (0, _.default)(this.MAX_TEXTURES, e)), this.shader = (0, f.default)(e, this.MAX_TEXTURES), this.indexBuffer = w.default.GLBuffer.createIndexBuffer(e, this.indices, e.STATIC_DRAW), this.renderer.bindVao(null);
                                for (var t = this.shader.attributes, n = 0; n < this.vaoMax; n++) {
                                    var i = this.vertexBuffers[n] = w.default.GLBuffer.createVertexBuffer(e, null, e.STREAM_DRAW),
                                        r = this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(i, t.aVertexPosition, e.FLOAT, !1, this.vertByteSize, 0).addAttribute(i, t.aTextureCoord, e.UNSIGNED_SHORT, !0, this.vertByteSize, 8).addAttribute(i, t.aColor, e.UNSIGNED_BYTE, !0, this.vertByteSize, 12);
                                    t.aTextureId && r.addAttribute(i, t.aTextureId, e.FLOAT, !1, this.vertByteSize, 16), this.vaos[n] = r
                                }
                                this.vao = this.vaos[0], this.currentBlendMode = 99999, this.boundTextures = new Array(this.MAX_TEXTURES)
                            }, t.prototype.onPrerender = function() {
                                this.vertexCount = 0
                            }, t.prototype.render = function(e) {
                                this.currentIndex >= this.size && this.flush(), e._texture._uvs && (this.sprites[this.currentIndex++] = e)
                            }, t.prototype.flush = function() {
                                if (0 !== this.currentIndex) {
                                    var e = this.renderer.gl,
                                        t = this.MAX_TEXTURES,
                                        n = P.default.nextPow2(this.currentIndex),
                                        i = P.default.log2(n),
                                        r = this.buffers[i],
                                        o = this.sprites,
                                        a = this.groups,
                                        s = r.float32View,
                                        u = r.uint32View,
                                        l = this.boundTextures,
                                        c = this.renderer.boundTextures,
                                        h = this.renderer.textureGC.count,
                                        p = 0,
                                        d = void 0,
                                        f = void 0,
                                        m = 1,
                                        _ = 0,
                                        g = a[0],
                                        y = void 0,
                                        v = void 0,
                                        T = x.premultiplyBlendMode[o[0]._texture.baseTexture.premultipliedAlpha ? 1 : 0][o[0].blendMode];
                                    g.textureCount = 0, g.start = 0, g.blend = T, C++;
                                    var S = void 0;
                                    for (S = 0; S < t; ++S) {
                                        var M = c[S];
                                        M._enabled !== C ? (l[S] = M, M._virtalBoundId = S, M._enabled = C) : l[S] = this.renderer.emptyTextures[S]
                                    }
                                    for (C++, S = 0; S < this.currentIndex; ++S) {
                                        var O = o[S];
                                        d = O._texture.baseTexture;
                                        var I = x.premultiplyBlendMode[Number(d.premultipliedAlpha)][O.blendMode];
                                        if (T !== I && (T = I, f = null, _ = t, C++), f !== d && (f = d, d._enabled !== C)) {
                                            if (_ === t && (C++, g.size = S - g.start, _ = 0, g = a[m++], g.blend = T, g.textureCount = 0, g.start = S), d.touched = h, -1 === d._virtalBoundId)
                                                for (var A = 0; A < t; ++A) {
                                                    var R = (A + E) % t,
                                                        k = l[R];
                                                    if (k._enabled !== C) {
                                                        E++, k._virtalBoundId = -1, d._virtalBoundId = R, l[R] = d;
                                                        break
                                                    }
                                                }
                                            d._enabled = C, g.textureCount++, g.ids[_] = d._virtalBoundId, g.textures[_++] = d
                                        }
                                        if (y = O.vertexData, v = O._texture._uvs.uvsUint32, this.renderer.roundPixels) {
                                            var L = this.renderer.resolution;
                                            s[p] = (y[0] * L | 0) / L, s[p + 1] = (y[1] * L | 0) / L, s[p + 5] = (y[2] * L | 0) / L, s[p + 6] = (y[3] * L | 0) / L, s[p + 10] = (y[4] * L | 0) / L, s[p + 11] = (y[5] * L | 0) / L, s[p + 15] = (y[6] * L | 0) / L, s[p + 16] = (y[7] * L | 0) / L
                                        } else s[p] = y[0], s[p + 1] = y[1], s[p + 5] = y[2], s[p + 6] = y[3], s[p + 10] = y[4], s[p + 11] = y[5], s[p + 15] = y[6], s[p + 16] = y[7];
                                        u[p + 2] = v[0], u[p + 7] = v[1], u[p + 12] = v[2], u[p + 17] = v[3];
                                        var D = Math.min(O.worldAlpha, 1),
                                            B = D < 1 && d.premultipliedAlpha ? (0, x.premultiplyTint)(O._tintRGB, D) : O._tintRGB + (255 * D << 24);
                                        u[p + 3] = u[p + 8] = u[p + 13] = u[p + 18] = B, s[p + 4] = s[p + 9] = s[p + 14] = s[p + 19] = d._virtalBoundId, p += 20
                                    }
                                    if (g.size = S - g.start, b.default.CAN_UPLOAD_SAME_BUFFER) this.vertexBuffers[this.vertexCount].upload(r.vertices, 0, !0);
                                    else {
                                        if (this.vaoMax <= this.vertexCount) {
                                            this.vaoMax++;
                                            var F = this.shader.attributes,
                                                N = this.vertexBuffers[this.vertexCount] = w.default.GLBuffer.createVertexBuffer(e, null, e.STREAM_DRAW),
                                                j = this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(N, F.aVertexPosition, e.FLOAT, !1, this.vertByteSize, 0).addAttribute(N, F.aTextureCoord, e.UNSIGNED_SHORT, !0, this.vertByteSize, 8).addAttribute(N, F.aColor, e.UNSIGNED_BYTE, !0, this.vertByteSize, 12);
                                            F.aTextureId && j.addAttribute(N, F.aTextureId, e.FLOAT, !1, this.vertByteSize, 16), this.vaos[this.vertexCount] = j
                                        }
                                        this.renderer.bindVao(this.vaos[this.vertexCount]), this.vertexBuffers[this.vertexCount].upload(r.vertices, 0, !1), this.vertexCount++
                                    }
                                    for (S = 0; S < t; ++S) c[S]._virtalBoundId = -1;
                                    for (S = 0; S < m; ++S) {
                                        for (var G = a[S], U = G.textureCount, W = 0; W < U; W++) f = G.textures[W], c[G.ids[W]] !== f && this.renderer.bindTexture(f, G.ids[W], !0), f._virtalBoundId = -1;
                                        this.renderer.state.setBlendMode(G.blend), e.drawElements(e.TRIANGLES, 6 * G.size, e.UNSIGNED_SHORT, 6 * G.start * 2)
                                    }
                                    this.currentIndex = 0
                                }
                            }, t.prototype.start = function() {
                                this.renderer.bindShader(this.shader), b.default.CAN_UPLOAD_SAME_BUFFER && (this.renderer.bindVao(this.vaos[this.vertexCount]), this.vertexBuffers[this.vertexCount].bind())
                            }, t.prototype.stop = function() {
                                this.flush()
                            }, t.prototype.destroy = function() {
                                for (var t = 0; t < this.vaoMax; t++) this.vertexBuffers[t] && this.vertexBuffers[t].destroy(), this.vaos[t] && this.vaos[t].destroy();
                                this.indexBuffer && this.indexBuffer.destroy(), this.renderer.off("prerender", this.onPrerender, this), e.prototype.destroy.call(this), this.shader && (this.shader.destroy(), this.shader = null), this.vertexBuffers = null, this.vaos = null, this.indexBuffer = null, this.indices = null, this.sprites = null;
                                for (var n = 0; n < this.buffers.length; ++n) this.buffers[n].destroy()
                            }, t
                        }(u.default);
                    n.default = M, c.default.registerPlugin("sprite", M)
                }, {
                    "../../renderers/webgl/WebGLRenderer": 84,
                    "../../renderers/webgl/utils/ObjectRenderer": 94,
                    "../../renderers/webgl/utils/checkMaxIfStatmentsInShader": 97,
                    "../../settings": 101,
                    "../../utils": 125,
                    "../../utils/createIndicesForQuads": 123,
                    "./BatchBuffer": 105,
                    "./generateMultiTextureShader": 107,
                    "bit-twiddle": 1,
                    "pixi-gl-core": 12
                }],
                107: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        var n = s;
                        n = n.replace(/%count%/gi, t), n = n.replace(/%forloop%/gi, r(t));
                        for (var i = new a.default(e, "precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vTextureId = aTextureId;\n    vColor = aColor;\n}\n", n), o = [], u = 0; u < t; u++) o[u] = u;
                        return i.bind(), i.uniforms.uSamplers = o, i
                    }

                    function r(e) {
                        var t = "";
                        t += "\n", t += "\n";
                        for (var n = 0; n < e; n++) n > 0 && (t += "\nelse "), n < e - 1 && (t += "if(textureId == " + n + ".0)"), t += "\n{", t += "\n\tcolor = texture2D(uSamplers[" + n + "], vTextureCoord);", t += "\n}";
                        return t += "\n", t += "\n"
                    }
                    n.__esModule = !0, n.default = i;
                    var o = e("../../Shader"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = (e("path"), ["varying vec2 vTextureCoord;", "varying vec4 vColor;", "varying float vTextureId;", "uniform sampler2D uSamplers[%count%];", "void main(void){", "vec4 color;", "float textureId = floor(vTextureId+0.5);", "%forloop%", "gl_FragColor = color * vColor;", "}"].join("\n"))
                }, {
                    "../../Shader": 44,
                    path: 23
                }],
                108: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("../sprites/Sprite"),
                        l = i(u),
                        c = e("../textures/Texture"),
                        h = i(c),
                        p = e("../math"),
                        d = e("../utils"),
                        f = e("../const"),
                        m = e("../settings"),
                        _ = i(m),
                        g = e("./TextStyle"),
                        y = i(g),
                        v = e("./TextMetrics"),
                        b = i(v),
                        x = e("../utils/trimCanvas"),
                        T = i(x),
                        w = {
                            texture: !0,
                            children: !1,
                            baseTexture: !0
                        },
                        S = function(e) {
                            function t(n, i, a) {
                                r(this, t), a = a || document.createElement("canvas"), a.width = 3, a.height = 3;
                                var s = h.default.fromCanvas(a, _.default.SCALE_MODE, "text");
                                s.orig = new p.Rectangle, s.trim = new p.Rectangle;
                                var u = o(this, e.call(this, s));
                                return h.default.addToCache(u._texture, u._texture.baseTexture.textureCacheIds[0]), u.canvas = a, u.context = u.canvas.getContext("2d"), u.resolution = _.default.RESOLUTION, u._text = null, u._style = null, u._styleListener = null, u._font = "", u.text = n, u.style = i, u.localStyleID = -1, u
                            }
                            return a(t, e), t.prototype.updateText = function(e) {
                                var t = this._style;
                                if (this.localStyleID !== t.styleID && (this.dirty = !0, this.localStyleID = t.styleID), this.dirty || !e) {
                                    this._font = this._style.toFontString();
                                    var n = this.context,
                                        i = b.default.measureText(this._text, this._style, this._style.wordWrap, this.canvas),
                                        r = i.width,
                                        o = i.height,
                                        a = i.lines,
                                        s = i.lineHeight,
                                        u = i.lineWidths,
                                        l = i.maxLineWidth,
                                        c = i.fontProperties;
                                    this.canvas.width = Math.ceil((r + 2 * t.padding) * this.resolution), this.canvas.height = Math.ceil((o + 2 * t.padding) * this.resolution), n.scale(this.resolution, this.resolution), n.clearRect(0, 0, this.canvas.width, this.canvas.height), n.font = this._font, n.strokeStyle = t.stroke, n.lineWidth = t.strokeThickness, n.textBaseline = t.textBaseline, n.lineJoin = t.lineJoin, n.miterLimit = t.miterLimit;
                                    var h = void 0,
                                        p = void 0;
                                    if (t.dropShadow) {
                                        n.fillStyle = t.dropShadowColor, n.globalAlpha = t.dropShadowAlpha, n.shadowBlur = t.dropShadowBlur, t.dropShadowBlur > 0 && (n.shadowColor = t.dropShadowColor);
                                        for (var d = Math.cos(t.dropShadowAngle) * t.dropShadowDistance, f = Math.sin(t.dropShadowAngle) * t.dropShadowDistance, m = 0; m < a.length; m++) h = t.strokeThickness / 2, p = t.strokeThickness / 2 + m * s + c.ascent, "right" === t.align ? h += l - u[m] : "center" === t.align && (h += (l - u[m]) / 2), t.fill && (this.drawLetterSpacing(a[m], h + d + t.padding, p + f + t.padding), t.stroke && t.strokeThickness && (n.strokeStyle = t.dropShadowColor, this.drawLetterSpacing(a[m], h + d + t.padding, p + f + t.padding, !0), n.strokeStyle = t.stroke))
                                    }
                                    n.shadowBlur = 0, n.globalAlpha = 1, n.fillStyle = this._generateFillStyle(t, a);
                                    for (var _ = 0; _ < a.length; _++) h = t.strokeThickness / 2, p = t.strokeThickness / 2 + _ * s + c.ascent, "right" === t.align ? h += l - u[_] : "center" === t.align && (h += (l - u[_]) / 2), t.stroke && t.strokeThickness && this.drawLetterSpacing(a[_], h + t.padding, p + t.padding, !0), t.fill && this.drawLetterSpacing(a[_], h + t.padding, p + t.padding);
                                    this.updateTexture()
                                }
                            }, t.prototype.drawLetterSpacing = function(e, t, n) {
                                var i = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
                                    r = this._style,
                                    o = r.letterSpacing;
                                if (0 === o) return void(i ? this.context.strokeText(e, t, n) : this.context.fillText(e, t, n));
                                for (var a = String.prototype.split.call(e, ""), s = t, u = 0, l = ""; u < e.length;) l = a[u++], i ? this.context.strokeText(l, s, n) : this.context.fillText(l, s, n), s += this.context.measureText(l).width + o
                            }, t.prototype.updateTexture = function() {
                                var e = this.canvas;
                                if (this._style.trim) {
                                    var t = (0, T.default)(e);
                                    e.width = t.width, e.height = t.height, this.context.putImageData(t.data, 0, 0)
                                }
                                var n = this._texture,
                                    i = this._style,
                                    r = i.trim ? 0 : i.padding,
                                    o = n.baseTexture;
                                o.hasLoaded = !0, o.resolution = this.resolution, o.realWidth = e.width, o.realHeight = e.height, o.width = e.width / this.resolution, o.height = e.height / this.resolution, n.trim.width = n._frame.width = e.width / this.resolution, n.trim.height = n._frame.height = e.height / this.resolution, n.trim.x = -r, n.trim.y = -r, n.orig.width = n._frame.width - 2 * r, n.orig.height = n._frame.height - 2 * r, this._onTextureUpdate(), o.emit("update", o), this.dirty = !1
                            }, t.prototype.renderWebGL = function(t) {
                                this.resolution !== t.resolution && (this.resolution = t.resolution, this.dirty = !0), this.updateText(!0), e.prototype.renderWebGL.call(this, t)
                            }, t.prototype._renderCanvas = function(t) {
                                this.resolution !== t.resolution && (this.resolution = t.resolution, this.dirty = !0), this.updateText(!0), e.prototype._renderCanvas.call(this, t)
                            }, t.prototype.getLocalBounds = function(t) {
                                return this.updateText(!0), e.prototype.getLocalBounds.call(this, t)
                            }, t.prototype._calculateBounds = function() {
                                this.updateText(!0), this.calculateVertices(), this._bounds.addQuad(this.vertexData)
                            }, t.prototype._onStyleChange = function() {
                                this.dirty = !0
                            }, t.prototype._generateFillStyle = function(e, t) {
                                if (!Array.isArray(e.fill)) return e.fill;
                                if (navigator.isCocoonJS) return e.fill[0];
                                var n = void 0,
                                    i = void 0,
                                    r = void 0,
                                    o = void 0,
                                    a = this.canvas.width / this.resolution,
                                    s = this.canvas.height / this.resolution,
                                    u = e.fill.slice(),
                                    l = e.fillGradientStops.slice();
                                if (!l.length)
                                    for (var c = u.length + 1, h = 1; h < c; ++h) l.push(h / c);
                                if (u.unshift(e.fill[0]), l.unshift(0), u.push(e.fill[e.fill.length - 1]), l.push(1), e.fillGradientType === f.TEXT_GRADIENT.LINEAR_VERTICAL) {
                                    n = this.context.createLinearGradient(a / 2, 0, a / 2, s), i = (u.length + 1) * t.length, r = 0;
                                    for (var p = 0; p < t.length; p++) {
                                        r += 1;
                                        for (var d = 0; d < u.length; d++) o = "number" == typeof l[d] ? l[d] / t.length + p / t.length : r / i, n.addColorStop(o, u[d]), r++
                                    }
                                } else {
                                    n = this.context.createLinearGradient(0, s / 2, a, s / 2), i = u.length + 1, r = 1;
                                    for (var m = 0; m < u.length; m++) o = "number" == typeof l[m] ? l[m] : r / i, n.addColorStop(o, u[m]), r++
                                }
                                return n
                            }, t.prototype.destroy = function(t) {
                                "boolean" == typeof t && (t = {
                                    children: t
                                }), t = Object.assign({}, w, t), e.prototype.destroy.call(this, t), this.context = null, this.canvas = null, this._style = null
                            }, s(t, [{
                                key: "width",
                                get: function() {
                                    return this.updateText(!0), Math.abs(this.scale.x) * this._texture.orig.width
                                },
                                set: function(e) {
                                    this.updateText(!0);
                                    var t = (0, d.sign)(this.scale.x) || 1;
                                    this.scale.x = t * e / this._texture.orig.width, this._width = e
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.updateText(!0), Math.abs(this.scale.y) * this._texture.orig.height
                                },
                                set: function(e) {
                                    this.updateText(!0);
                                    var t = (0, d.sign)(this.scale.y) || 1;
                                    this.scale.y = t * e / this._texture.orig.height, this._height = e
                                }
                            }, {
                                key: "style",
                                get: function() {
                                    return this._style
                                },
                                set: function(e) {
                                    e = e || {}, e instanceof y.default ? this._style = e : this._style = new y.default(e), this.localStyleID = -1, this.dirty = !0
                                }
                            }, {
                                key: "text",
                                get: function() {
                                    return this._text
                                },
                                set: function(e) {
                                    e = String("" === e || null === e || void 0 === e ? " " : e), this._text !== e && (this._text = e, this.dirty = !0)
                                }
                            }]), t
                        }(l.default);
                    n.default = S
                }, {
                    "../const": 46,
                    "../math": 70,
                    "../settings": 101,
                    "../sprites/Sprite": 102,
                    "../textures/Texture": 115,
                    "../utils": 125,
                    "../utils/trimCanvas": 130,
                    "./TextMetrics": 109,
                    "./TextStyle": 110
                }],
                109: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e(t, n, r, o, a, s, u, l, c) {
                            i(this, e), this.text = t, this.style = n, this.width = r, this.height = o, this.lines = a, this.lineWidths = s, this.lineHeight = u, this.maxLineWidth = l, this.fontProperties = c
                        }
                        return e.measureText = function(t, n, i) {
                            var r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : e._canvas;
                            i = i || n.wordWrap;
                            var o = n.toFontString(),
                                a = e.measureFont(o),
                                s = r.getContext("2d");
                            s.font = o;
                            for (var u = i ? e.wordWrap(t, n, r) : t, l = u.split(/(?:\r\n|\r|\n)/), c = new Array(l.length), h = 0, p = 0; p < l.length; p++) {
                                var d = s.measureText(l[p]).width + (l[p].length - 1) * n.letterSpacing;
                                c[p] = d, h = Math.max(h, d)
                            }
                            var f = h + n.strokeThickness;
                            n.dropShadow && (f += n.dropShadowDistance);
                            var m = n.lineHeight || a.fontSize + n.strokeThickness,
                                _ = Math.max(m, a.fontSize + n.strokeThickness) + (l.length - 1) * (m + n.leading);
                            return n.dropShadow && (_ += n.dropShadowDistance), new e(t, n, f, _, l, c, m + n.leading, h, a)
                        }, e.wordWrap = function(t, n) {
                            for (var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : e._canvas, r = i.getContext("2d"), o = "", a = t.charAt(0), s = t.split("\n"), u = n.wordWrapWidth, l = {}, c = 0; c < s.length; c++) {
                                for (var h = u, p = s[c].split(" "), d = 0; d < p.length; d++) {
                                    var f = r.measureText(p[d]).width;
                                    if (n.breakWords && f > u)
                                        for (var m = p[d].split(""), _ = 0; _ < m.length; _++) {
                                            var g = m[_],
                                                y = l[g];
                                            void 0 === y && (y = r.measureText(g).width, l[g] = y), y > h ? (o += "\n" + g, h = u - y) : (0 === _ && (d > 0 || " " === a) && (o += " "), o += g, h -= y)
                                        } else {
                                            var v = f + r.measureText(" ").width;
                                            0 === d || v > h ? (d > 0 && (o += "\n"), o += p[d], h = u - f) : (h -= v, o += " " + p[d])
                                        }
                                }
                                c < s.length - 1 && (o += "\n")
                            }
                            return o
                        }, e.measureFont = function(t) {
                            if (e._fonts[t]) return e._fonts[t];
                            var n = {},
                                i = e._canvas,
                                r = e._context;
                            r.font = t;
                            var o = Math.ceil(r.measureText("|MÉq").width),
                                a = Math.ceil(r.measureText("M").width),
                                s = 2 * a;
                            a = 1.4 * a | 0, i.width = o, i.height = s, r.fillStyle = "#f00", r.fillRect(0, 0, o, s), r.font = t, r.textBaseline = "alphabetic", r.fillStyle = "#000", r.fillText("|MÉq", 0, a);
                            var u = r.getImageData(0, 0, o, s).data,
                                l = u.length,
                                c = 4 * o,
                                h = 0,
                                p = 0,
                                d = !1;
                            for (h = 0; h < a; ++h) {
                                for (var f = 0; f < c; f += 4)
                                    if (255 !== u[p + f]) {
                                        d = !0;
                                        break
                                    }
                                if (d) break;
                                p += c
                            }
                            for (n.ascent = a - h, p = l - c, d = !1, h = s; h > a; --h) {
                                for (var m = 0; m < c; m += 4)
                                    if (255 !== u[p + m]) {
                                        d = !0;
                                        break
                                    }
                                if (d) break;
                                p -= c
                            }
                            return n.descent = h - a, n.fontSize = n.ascent + n.descent, e._fonts[t] = n, n
                        }, e
                    }();
                    n.default = r;
                    var o = document.createElement("canvas");
                    o.width = o.height = 10, r._canvas = o, r._context = o.getContext("2d"), r._fonts = {}
                }, {}],
                110: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e) {
                        return "number" == typeof e ? (0, c.hex2string)(e) : ("string" == typeof e && 0 === e.indexOf("0x") && (e = e.replace("0x", "#")), e)
                    }

                    function o(e) {
                        if (Array.isArray(e)) {
                            for (var t = 0; t < e.length; ++t) e[t] = r(e[t]);
                            return e
                        }
                        return r(e)
                    }

                    function a(e, t) {
                        if (!Array.isArray(e) || !Array.isArray(t)) return !1;
                        if (e.length !== t.length) return !1;
                        for (var n = 0; n < e.length; ++n)
                            if (e[n] !== t[n]) return !1;
                        return !0
                    }

                    function s(e, t, n) {
                        for (var i in n) Array.isArray(t[i]) ? e[i] = t[i].slice() : e[i] = t[i]
                    }
                    n.__esModule = !0;
                    var u = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        l = e("../const"),
                        c = e("../utils"),
                        h = {
                            align: "left",
                            breakWords: !1,
                            dropShadow: !1,
                            dropShadowAlpha: 1,
                            dropShadowAngle: Math.PI / 6,
                            dropShadowBlur: 0,
                            dropShadowColor: "black",
                            dropShadowDistance: 5,
                            fill: "black",
                            fillGradientType: l.TEXT_GRADIENT.LINEAR_VERTICAL,
                            fillGradientStops: [],
                            fontFamily: "Arial",
                            fontSize: 26,
                            fontStyle: "normal",
                            fontVariant: "normal",
                            fontWeight: "normal",
                            letterSpacing: 0,
                            lineHeight: 0,
                            lineJoin: "miter",
                            miterLimit: 10,
                            padding: 0,
                            stroke: "black",
                            strokeThickness: 0,
                            textBaseline: "alphabetic",
                            trim: !1,
                            wordWrap: !1,
                            wordWrapWidth: 100,
                            leading: 0
                        },
                        p = function() {
                            function e(t) {
                                i(this, e), this.styleID = 0, this.reset(), s(this, t, t)
                            }
                            return e.prototype.clone = function() {
                                var t = {};
                                return s(t, this, h), new e(t)
                            }, e.prototype.reset = function() {
                                s(this, h, h)
                            }, e.prototype.toFontString = function() {
                                var e = "number" == typeof this.fontSize ? this.fontSize + "px" : this.fontSize,
                                    t = this.fontFamily;
                                Array.isArray(this.fontFamily) || (t = this.fontFamily.split(","));
                                for (var n = t.length - 1; n >= 0; n--) {
                                    var i = t[n].trim();
                                    /([\"\'])[^\'\"]+\1/.test(i) || (i = '"' + i + '"'), t[n] = i
                                }
                                return this.fontStyle + " " + this.fontVariant + " " + this.fontWeight + " " + e + " " + t.join(",")
                            }, u(e, [{
                                key: "align",
                                get: function() {
                                    return this._align
                                },
                                set: function(e) {
                                    this._align !== e && (this._align = e, this.styleID++)
                                }
                            }, {
                                key: "breakWords",
                                get: function() {
                                    return this._breakWords
                                },
                                set: function(e) {
                                    this._breakWords !== e && (this._breakWords = e, this.styleID++)
                                }
                            }, {
                                key: "dropShadow",
                                get: function() {
                                    return this._dropShadow
                                },
                                set: function(e) {
                                    this._dropShadow !== e && (this._dropShadow = e, this.styleID++)
                                }
                            }, {
                                key: "dropShadowAlpha",
                                get: function() {
                                    return this._dropShadowAlpha
                                },
                                set: function(e) {
                                    this._dropShadowAlpha !== e && (this._dropShadowAlpha = e, this.styleID++)
                                }
                            }, {
                                key: "dropShadowAngle",
                                get: function() {
                                    return this._dropShadowAngle
                                },
                                set: function(e) {
                                    this._dropShadowAngle !== e && (this._dropShadowAngle = e, this.styleID++)
                                }
                            }, {
                                key: "dropShadowBlur",
                                get: function() {
                                    return this._dropShadowBlur
                                },
                                set: function(e) {
                                    this._dropShadowBlur !== e && (this._dropShadowBlur = e, this.styleID++)
                                }
                            }, {
                                key: "dropShadowColor",
                                get: function() {
                                    return this._dropShadowColor
                                },
                                set: function(e) {
                                    var t = o(e);
                                    this._dropShadowColor !== t && (this._dropShadowColor = t, this.styleID++)
                                }
                            }, {
                                key: "dropShadowDistance",
                                get: function() {
                                    return this._dropShadowDistance
                                },
                                set: function(e) {
                                    this._dropShadowDistance !== e && (this._dropShadowDistance = e, this.styleID++)
                                }
                            }, {
                                key: "fill",
                                get: function() {
                                    return this._fill
                                },
                                set: function(e) {
                                    var t = o(e);
                                    this._fill !== t && (this._fill = t, this.styleID++)
                                }
                            }, {
                                key: "fillGradientType",
                                get: function() {
                                    return this._fillGradientType
                                },
                                set: function(e) {
                                    this._fillGradientType !== e && (this._fillGradientType = e, this.styleID++)
                                }
                            }, {
                                key: "fillGradientStops",
                                get: function() {
                                    return this._fillGradientStops
                                },
                                set: function(e) {
                                    a(this._fillGradientStops, e) || (this._fillGradientStops = e, this.styleID++)
                                }
                            }, {
                                key: "fontFamily",
                                get: function() {
                                    return this._fontFamily
                                },
                                set: function(e) {
                                    this.fontFamily !== e && (this._fontFamily = e, this.styleID++)
                                }
                            }, {
                                key: "fontSize",
                                get: function() {
                                    return this._fontSize
                                },
                                set: function(e) {
                                    this._fontSize !== e && (this._fontSize = e, this.styleID++)
                                }
                            }, {
                                key: "fontStyle",
                                get: function() {
                                    return this._fontStyle
                                },
                                set: function(e) {
                                    this._fontStyle !== e && (this._fontStyle = e, this.styleID++)
                                }
                            }, {
                                key: "fontVariant",
                                get: function() {
                                    return this._fontVariant
                                },
                                set: function(e) {
                                    this._fontVariant !== e && (this._fontVariant = e, this.styleID++)
                                }
                            }, {
                                key: "fontWeight",
                                get: function() {
                                    return this._fontWeight
                                },
                                set: function(e) {
                                    this._fontWeight !== e && (this._fontWeight = e, this.styleID++)
                                }
                            }, {
                                key: "letterSpacing",
                                get: function() {
                                    return this._letterSpacing
                                },
                                set: function(e) {
                                    this._letterSpacing !== e && (this._letterSpacing = e, this.styleID++)
                                }
                            }, {
                                key: "lineHeight",
                                get: function() {
                                    return this._lineHeight
                                },
                                set: function(e) {
                                    this._lineHeight !== e && (this._lineHeight = e, this.styleID++)
                                }
                            }, {
                                key: "leading",
                                get: function() {
                                    return this._leading
                                },
                                set: function(e) {
                                    this._leading !== e && (this._leading = e, this.styleID++)
                                }
                            }, {
                                key: "lineJoin",
                                get: function() {
                                    return this._lineJoin
                                },
                                set: function(e) {
                                    this._lineJoin !== e && (this._lineJoin = e, this.styleID++)
                                }
                            }, {
                                key: "miterLimit",
                                get: function() {
                                    return this._miterLimit
                                },
                                set: function(e) {
                                    this._miterLimit !== e && (this._miterLimit = e, this.styleID++)
                                }
                            }, {
                                key: "padding",
                                get: function() {
                                    return this._padding
                                },
                                set: function(e) {
                                    this._padding !== e && (this._padding = e, this.styleID++)
                                }
                            }, {
                                key: "stroke",
                                get: function() {
                                    return this._stroke
                                },
                                set: function(e) {
                                    var t = o(e);
                                    this._stroke !== t && (this._stroke = t, this.styleID++)
                                }
                            }, {
                                key: "strokeThickness",
                                get: function() {
                                    return this._strokeThickness
                                },
                                set: function(e) {
                                    this._strokeThickness !== e && (this._strokeThickness = e, this.styleID++)
                                }
                            }, {
                                key: "textBaseline",
                                get: function() {
                                    return this._textBaseline
                                },
                                set: function(e) {
                                    this._textBaseline !== e && (this._textBaseline = e, this.styleID++)
                                }
                            }, {
                                key: "trim",
                                get: function() {
                                    return this._trim
                                },
                                set: function(e) {
                                    this._trim !== e && (this._trim = e, this.styleID++)
                                }
                            }, {
                                key: "wordWrap",
                                get: function() {
                                    return this._wordWrap
                                },
                                set: function(e) {
                                    this._wordWrap !== e && (this._wordWrap = e, this.styleID++)
                                }
                            }, {
                                key: "wordWrapWidth",
                                get: function() {
                                    return this._wordWrapWidth
                                },
                                set: function(e) {
                                    this._wordWrapWidth !== e && (this._wordWrapWidth = e, this.styleID++)
                                }
                            }]), e
                        }();
                    n.default = p
                }, {
                    "../const": 46,
                    "../utils": 125
                }],
                111: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("./BaseTexture"),
                        u = i(s),
                        l = e("../settings"),
                        c = i(l),
                        h = function(e) {
                            function t() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 100,
                                    i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 100,
                                    a = arguments[2],
                                    s = arguments[3];
                                r(this, t);
                                var u = o(this, e.call(this, null, a));
                                return u.resolution = s || c.default.RESOLUTION, u.width = Math.ceil(n), u.height = Math.ceil(i), u.realWidth = u.width * u.resolution, u.realHeight = u.height * u.resolution, u.scaleMode = void 0 !== a ? a : c.default.SCALE_MODE, u.hasLoaded = !0, u._glRenderTargets = {}, u._canvasRenderTarget = null, u.valid = !1, u
                            }
                            return a(t, e), t.prototype.resize = function(e, t) {
                                e = Math.ceil(e), t = Math.ceil(t), e === this.width && t === this.height || (this.valid = e > 0 && t > 0, this.width = e, this.height = t, this.realWidth = this.width * this.resolution, this.realHeight = this.height * this.resolution, this.valid && this.emit("update", this))
                            }, t.prototype.destroy = function() {
                                e.prototype.destroy.call(this, !0), this.renderer = null
                            }, t
                        }(u.default);
                    n.default = h
                }, {
                    "../settings": 101,
                    "./BaseTexture": 112
                }],
                112: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../utils"),
                        u = e("../settings"),
                        l = i(u),
                        c = e("eventemitter3"),
                        h = i(c),
                        p = e("../utils/determineCrossOrigin"),
                        d = i(p),
                        f = e("bit-twiddle"),
                        m = i(f),
                        _ = function(e) {
                            function t(n, i, a) {
                                r(this, t);
                                var u = o(this, e.call(this));
                                return u.uid = (0, s.uid)(), u.touched = 0, u.resolution = a || l.default.RESOLUTION, u.width = 100, u.height = 100, u.realWidth = 100, u.realHeight = 100, u.scaleMode = void 0 !== i ? i : l.default.SCALE_MODE, u.hasLoaded = !1, u.isLoading = !1, u.source = null, u.origSource = null, u.imageType = null, u.sourceScale = 1, u.premultipliedAlpha = !0, u.imageUrl = null, u.isPowerOfTwo = !1, u.mipmap = l.default.MIPMAP_TEXTURES, u.wrapMode = l.default.WRAP_MODE, u._glTextures = {}, u._enabled = 0, u._virtalBoundId = -1, u._destroyed = !1, u.textureCacheIds = [], n && u.loadSource(n), u
                            }
                            return a(t, e), t.prototype.update = function() {
                                "svg" !== this.imageType && (this.realWidth = this.source.naturalWidth || this.source.videoWidth || this.source.width, this.realHeight = this.source.naturalHeight || this.source.videoHeight || this.source.height, this._updateDimensions()), this.emit("update", this)
                            }, t.prototype._updateDimensions = function() {
                                this.width = this.realWidth / this.resolution, this.height = this.realHeight / this.resolution, this.isPowerOfTwo = m.default.isPow2(this.realWidth) && m.default.isPow2(this.realHeight)
                            }, t.prototype.loadSource = function(e) {
                                var t = this.isLoading;
                                this.hasLoaded = !1, this.isLoading = !1, t && this.source && (this.source.onload = null, this.source.onerror = null);
                                var n = !this.source;
                                if (this.source = e, (e.src && e.complete || e.getContext) && e.width && e.height) this._updateImageType(), "svg" === this.imageType ? this._loadSvgSource() : this._sourceLoaded(), n && this.emit("loaded", this);
                                else if (!e.getContext) {
                                    this.isLoading = !0;
                                    var i = this;
                                    if (e.onload = function() {
                                            if (i._updateImageType(), e.onload = null, e.onerror = null, i.isLoading) {
                                                if (i.isLoading = !1, i._sourceLoaded(), "svg" === i.imageType) return void i._loadSvgSource();
                                                i.emit("loaded", i)
                                            }
                                        }, e.onerror = function() {
                                            e.onload = null, e.onerror = null, i.isLoading && (i.isLoading = !1, i.emit("error", i))
                                        }, e.complete && e.src) {
                                        if (e.onload = null, e.onerror = null, "svg" === i.imageType) return void i._loadSvgSource();
                                        this.isLoading = !1, e.width && e.height ? (this._sourceLoaded(), t && this.emit("loaded", this)) : t && this.emit("error", this)
                                    }
                                }
                            }, t.prototype._updateImageType = function() {
                                if (this.imageUrl) {
                                    var e = (0, s.decomposeDataUri)(this.imageUrl),
                                        t = void 0;
                                    if (e && "image" === e.mediaType) {
                                        var n = e.subType.split("+")[0];
                                        if (!(t = (0, s.getUrlFileExtension)("." + n))) throw new Error("Invalid image type in data URI.")
                                    } else(t = (0, s.getUrlFileExtension)(this.imageUrl)) || (t = "png");
                                    this.imageType = t
                                }
                            }, t.prototype._loadSvgSource = function() {
                                if ("svg" === this.imageType) {
                                    var e = (0, s.decomposeDataUri)(this.imageUrl);
                                    e ? this._loadSvgSourceUsingDataUri(e) : this._loadSvgSourceUsingXhr()
                                }
                            }, t.prototype._loadSvgSourceUsingDataUri = function(e) {
                                var t = void 0;
                                if ("base64" === e.encoding) {
                                    if (!atob) throw new Error("Your browser doesn't support base64 conversions.");
                                    t = atob(e.data)
                                } else t = e.data;
                                this._loadSvgSourceUsingString(t)
                            }, t.prototype._loadSvgSourceUsingXhr = function() {
                                var e = this,
                                    t = new XMLHttpRequest;
                                t.onload = function() {
                                    if (t.readyState !== t.DONE || 200 !== t.status) throw new Error("Failed to load SVG using XHR.");
                                    e._loadSvgSourceUsingString(t.response)
                                }, t.onerror = function() {
                                    return e.emit("error", e)
                                }, t.open("GET", this.imageUrl, !0), t.send()
                            }, t.prototype._loadSvgSourceUsingString = function(e) {
                                var n = (0, s.getSvgSize)(e),
                                    i = n.width,
                                    r = n.height;
                                if (!i || !r) throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");
                                this.realWidth = Math.round(i * this.sourceScale), this.realHeight = Math.round(r * this.sourceScale), this._updateDimensions();
                                var o = document.createElement("canvas");
                                o.width = this.realWidth, o.height = this.realHeight, o._pixiId = "canvas_" + (0, s.uid)(), o.getContext("2d").drawImage(this.source, 0, 0, i, r, 0, 0, this.realWidth, this.realHeight), this.origSource = this.source, this.source = o, t.addToCache(this, o._pixiId), this.isLoading = !1, this._sourceLoaded(), this.emit("loaded", this)
                            }, t.prototype._sourceLoaded = function() {
                                this.hasLoaded = !0, this.update()
                            }, t.prototype.destroy = function() {
                                this.imageUrl && (delete s.TextureCache[this.imageUrl], this.imageUrl = null, navigator.isCocoonJS || (this.source.src = "")), this.source = null, this.dispose(), t.removeFromCache(this), this.textureCacheIds = null, this._destroyed = !0
                            }, t.prototype.dispose = function() {
                                this.emit("dispose", this)
                            }, t.prototype.updateSourceImage = function(e) {
                                this.source.src = e, this.loadSource(this.source)
                            }, t.fromImage = function(e, n, i, r) {
                                var o = s.BaseTextureCache[e];
                                if (!o) {
                                    var a = new Image;
                                    void 0 === n && 0 !== e.indexOf("data:") ? a.crossOrigin = (0, d.default)(e) : n && (a.crossOrigin = "string" == typeof n ? n : "anonymous"), o = new t(a, i), o.imageUrl = e, r && (o.sourceScale = r), o.resolution = (0, s.getResolutionOfUrl)(e), a.src = e, t.addToCache(o, e)
                                }
                                return o
                            }, t.fromCanvas = function(e, n) {
                                var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "canvas";
                                e._pixiId || (e._pixiId = i + "_" + (0, s.uid)());
                                var r = s.BaseTextureCache[e._pixiId];
                                return r || (r = new t(e, n), t.addToCache(r, e._pixiId)), r
                            }, t.from = function(e, n, i) {
                                if ("string" == typeof e) return t.fromImage(e, void 0, n, i);
                                if (e instanceof HTMLImageElement) {
                                    var r = e.src,
                                        o = s.BaseTextureCache[r];
                                    return o || (o = new t(e, n), o.imageUrl = r, i && (o.sourceScale = i), o.resolution = (0, s.getResolutionOfUrl)(r), t.addToCache(o, r)), o
                                }
                                return e instanceof HTMLCanvasElement ? t.fromCanvas(e, n) : e
                            }, t.addToCache = function(e, t) {
                                t && (-1 === e.textureCacheIds.indexOf(t) && e.textureCacheIds.push(t), s.BaseTextureCache[t], s.BaseTextureCache[t] = e)
                            }, t.removeFromCache = function(e) {
                                if ("string" == typeof e) {
                                    var t = s.BaseTextureCache[e];
                                    if (t) {
                                        var n = t.textureCacheIds.indexOf(e);
                                        return n > -1 && t.textureCacheIds.splice(n, 1), delete s.BaseTextureCache[e], t
                                    }
                                } else if (e && e.textureCacheIds) {
                                    for (var i = 0; i < e.textureCacheIds.length; ++i) delete s.BaseTextureCache[e.textureCacheIds[i]];
                                    return e.textureCacheIds.length = 0, e
                                }
                                return null
                            }, t
                        }(h.default);
                    n.default = _
                }, {
                    "../settings": 101,
                    "../utils": 125,
                    "../utils/determineCrossOrigin": 124,
                    "bit-twiddle": 1,
                    eventemitter3: 3
                }],
                113: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("./BaseRenderTexture"),
                        u = i(s),
                        l = e("./Texture"),
                        c = i(l),
                        h = function(e) {
                            function t(n, i) {
                                r(this, t);
                                var a = null;
                                if (!(n instanceof u.default)) {
                                    var s = arguments[1],
                                        l = arguments[2],
                                        c = arguments[3],
                                        h = arguments[4];
                                    a = arguments[0], i = null, n = new u.default(s, l, c, h)
                                }
                                var p = o(this, e.call(this, n, i));
                                return p.legacyRenderer = a, p.valid = !0, p._updateUvs(), p
                            }
                            return a(t, e), t.prototype.resize = function(e, t, n) {
                                e = Math.ceil(e), t = Math.ceil(t), this.valid = e > 0 && t > 0, this._frame.width = this.orig.width = e, this._frame.height = this.orig.height = t, n || this.baseTexture.resize(e, t), this._updateUvs()
                            }, t.create = function(e, n, i, r) {
                                return new t(new u.default(e, n, i, r))
                            }, t
                        }(c.default);
                    n.default = h
                }, {
                    "./BaseRenderTexture": 111,
                    "./Texture": 115
                }],
                114: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = e("../"),
                        a = e("../utils"),
                        s = function() {
                            function e(t, n) {
                                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
                                i(this, e), this.baseTexture = t, this.textures = {}, this.data = n, this.resolution = this._updateResolution(r || this.baseTexture.imageUrl), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null
                            }
                            return r(e, null, [{
                                key: "BATCH_SIZE",
                                get: function() {
                                    return 1e3
                                }
                            }]), e.prototype._updateResolution = function(e) {
                                var t = this.data.meta.scale,
                                    n = (0, a.getResolutionOfUrl)(e, null);
                                return null === n && (n = void 0 !== t ? parseFloat(t) : 1), 1 !== n && (this.baseTexture.resolution = n, this.baseTexture.update()), n
                            }, e.prototype.parse = function(t) {
                                this._batchIndex = 0, this._callback = t, this._frameKeys.length <= e.BATCH_SIZE ? (this._processFrames(0), this._parseComplete()) : this._nextBatch()
                            }, e.prototype._processFrames = function(t) {
                                for (var n = t, i = e.BATCH_SIZE, r = this.baseTexture.sourceScale; n - t < i && n < this._frameKeys.length;) {
                                    var a = this._frameKeys[n],
                                        s = this._frames[a].frame;
                                    if (s) {
                                        var u = null,
                                            l = null,
                                            c = new o.Rectangle(0, 0, Math.floor(this._frames[a].sourceSize.w * r) / this.resolution, Math.floor(this._frames[a].sourceSize.h * r) / this.resolution);
                                        u = this._frames[a].rotated ? new o.Rectangle(Math.floor(s.x * r) / this.resolution, Math.floor(s.y * r) / this.resolution, Math.floor(s.h * r) / this.resolution, Math.floor(s.w * r) / this.resolution) : new o.Rectangle(Math.floor(s.x * r) / this.resolution, Math.floor(s.y * r) / this.resolution, Math.floor(s.w * r) / this.resolution, Math.floor(s.h * r) / this.resolution), this._frames[a].trimmed && (l = new o.Rectangle(Math.floor(this._frames[a].spriteSourceSize.x * r) / this.resolution, Math.floor(this._frames[a].spriteSourceSize.y * r) / this.resolution, Math.floor(s.w * r) / this.resolution, Math.floor(s.h * r) / this.resolution)), this.textures[a] = new o.Texture(this.baseTexture, u, c, l, this._frames[a].rotated ? 2 : 0), o.Texture.addToCache(this.textures[a], a)
                                    }
                                    n++
                                }
                            }, e.prototype._parseComplete = function() {
                                var e = this._callback;
                                this._callback = null, this._batchIndex = 0, e.call(this, this.textures)
                            }, e.prototype._nextBatch = function() {
                                var t = this;
                                this._processFrames(this._batchIndex * e.BATCH_SIZE), this._batchIndex++, setTimeout(function() {
                                    t._batchIndex * e.BATCH_SIZE < t._frameKeys.length ? t._nextBatch() : t._parseComplete()
                                }, 0)
                            }, e.prototype.destroy = function() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                                for (var t in this.textures) this.textures[t].destroy();
                                this._frames = null, this._frameKeys = null, this.data = null, this.textures = null, e && this.baseTexture.destroy(), this.baseTexture = null
                            }, e
                        }();
                    n.default = s
                }, {
                    "../": 65,
                    "../utils": 125
                }],
                115: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }

                    function s(e) {
                        e.destroy = function() {}, e.on = function() {}, e.once = function() {}, e.emit = function() {}
                    }
                    n.__esModule = !0;
                    var u = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        l = e("./BaseTexture"),
                        c = i(l),
                        h = e("./VideoBaseTexture"),
                        p = i(h),
                        d = e("./TextureUvs"),
                        f = i(d),
                        m = e("eventemitter3"),
                        _ = i(m),
                        g = e("../math"),
                        y = e("../utils"),
                        v = e("../settings"),
                        b = i(v),
                        x = function(e) {
                            function t(n, i, a, s, u) {
                                r(this, t);
                                var l = o(this, e.call(this));
                                if (l.noFrame = !1, i || (l.noFrame = !0, i = new g.Rectangle(0, 0, 1, 1)), n instanceof t && (n = n.baseTexture), l.baseTexture = n, l._frame = i, l.trim = s, l.valid = !1, l.requiresUpdate = !1, l._uvs = null, l.orig = a || i, l._rotate = Number(u || 0), !0 === u) l._rotate = 2;
                                else if (l._rotate % 2 != 0) throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");
                                return n.hasLoaded ? (l.noFrame && (i = new g.Rectangle(0, 0, n.width, n.height), n.on("update", l.onBaseTextureUpdated, l)), l.frame = i) : n.once("loaded", l.onBaseTextureLoaded, l), l._updateID = 0, l.transform = null, l.textureCacheIds = [], l
                            }
                            return a(t, e), t.prototype.update = function() {
                                this.baseTexture.update()
                            }, t.prototype.onBaseTextureLoaded = function(e) {
                                this._updateID++, this.noFrame ? this.frame = new g.Rectangle(0, 0, e.width, e.height) : this.frame = this._frame, this.baseTexture.on("update", this.onBaseTextureUpdated, this), this.emit("update", this)
                            }, t.prototype.onBaseTextureUpdated = function(e) {
                                this._updateID++, this._frame.width = e.width, this._frame.height = e.height, this.emit("update", this)
                            }, t.prototype.destroy = function(e) {
                                this.baseTexture && (e && (y.TextureCache[this.baseTexture.imageUrl] && t.removeFromCache(this.baseTexture.imageUrl), this.baseTexture.destroy()), this.baseTexture.off("update", this.onBaseTextureUpdated, this), this.baseTexture.off("loaded", this.onBaseTextureLoaded, this), this.baseTexture = null), this._frame = null, this._uvs = null, this.trim = null, this.orig = null, this.valid = !1, t.removeFromCache(this), this.textureCacheIds = null
                            }, t.prototype.clone = function() {
                                return new t(this.baseTexture, this.frame, this.orig, this.trim, this.rotate)
                            }, t.prototype._updateUvs = function() {
                                this._uvs || (this._uvs = new f.default), this._uvs.set(this._frame, this.baseTexture, this.rotate), this._updateID++
                            }, t.fromImage = function(e, n, i, r) {
                                var o = y.TextureCache[e];
                                return o || (o = new t(c.default.fromImage(e, n, i, r)), t.addToCache(o, e)), o
                            }, t.fromFrame = function(e) {
                                var t = y.TextureCache[e];
                                if (!t) throw new Error('The frameId "' + e + '" does not exist in the texture cache');
                                return t
                            }, t.fromCanvas = function(e, n) {
                                var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "canvas";
                                return new t(c.default.fromCanvas(e, n, i))
                            }, t.fromVideo = function(e, n) {
                                return "string" == typeof e ? t.fromVideoUrl(e, n) : new t(p.default.fromVideo(e, n))
                            }, t.fromVideoUrl = function(e, n) {
                                return new t(p.default.fromUrl(e, n))
                            }, t.from = function(e) {
                                if ("string" == typeof e) {
                                    var n = y.TextureCache[e];
                                    if (!n) {
                                        return null !== e.match(/\.(mp4|webm|ogg|h264|avi|mov)$/) ? t.fromVideoUrl(e) : t.fromImage(e)
                                    }
                                    return n
                                }
                                return e instanceof HTMLImageElement ? new t(c.default.from(e)) : e instanceof HTMLCanvasElement ? t.fromCanvas(e, b.default.SCALE_MODE, "HTMLCanvasElement") : e instanceof HTMLVideoElement ? t.fromVideo(e) : e instanceof c.default ? new t(e) : e
                            }, t.fromLoader = function(e, n, i) {
                                var r = new c.default(e, void 0, (0, y.getResolutionOfUrl)(n)),
                                    o = new t(r);
                                return r.imageUrl = n, i || (i = n), c.default.addToCache(o.baseTexture, i), t.addToCache(o, i), i !== n && (c.default.addToCache(o.baseTexture, n), t.addToCache(o, n)), o
                            }, t.addToCache = function(e, t) {
                                t && (-1 === e.textureCacheIds.indexOf(t) && e.textureCacheIds.push(t), y.TextureCache[t], y.TextureCache[t] = e)
                            }, t.removeFromCache = function(e) {
                                if ("string" == typeof e) {
                                    var t = y.TextureCache[e];
                                    if (t) {
                                        var n = t.textureCacheIds.indexOf(e);
                                        return n > -1 && t.textureCacheIds.splice(n, 1), delete y.TextureCache[e], t
                                    }
                                } else if (e && e.textureCacheIds) {
                                    for (var i = 0; i < e.textureCacheIds.length; ++i) y.TextureCache[e.textureCacheIds[i]] === e && delete y.TextureCache[e.textureCacheIds[i]];
                                    return e.textureCacheIds.length = 0, e
                                }
                                return null
                            }, u(t, [{
                                key: "frame",
                                get: function() {
                                    return this._frame
                                },
                                set: function(e) {
                                    this._frame = e, this.noFrame = !1;
                                    var t = e.x,
                                        n = e.y,
                                        i = e.width,
                                        r = e.height,
                                        o = t + i > this.baseTexture.width,
                                        a = n + r > this.baseTexture.height;
                                    if (o || a) {
                                        var s = o && a ? "and" : "or",
                                            u = "X: " + t + " + " + i + " = " + (t + i) + " > " + this.baseTexture.width,
                                            l = "Y: " + n + " + " + r + " = " + (n + r) + " > " + this.baseTexture.height;
                                        throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: " + u + " " + s + " " + l)
                                    }
                                    this.valid = i && r && this.baseTexture.hasLoaded, this.trim || this.rotate || (this.orig = e), this.valid && this._updateUvs()
                                }
                            }, {
                                key: "rotate",
                                get: function() {
                                    return this._rotate
                                },
                                set: function(e) {
                                    this._rotate = e, this.valid && this._updateUvs()
                                }
                            }, {
                                key: "width",
                                get: function() {
                                    return this.orig.width
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.orig.height
                                }
                            }]), t
                        }(_.default);
                    n.default = x, x.EMPTY = new x(new c.default), s(x.EMPTY), s(x.EMPTY.baseTexture), x.WHITE = function() {
                        var e = document.createElement("canvas");
                        e.width = 10, e.height = 10;
                        var t = e.getContext("2d");
                        return t.fillStyle = "white", t.fillRect(0, 0, 10, 10), new x(new c.default(e))
                    }(), s(x.WHITE), s(x.WHITE.baseTexture)
                }, {
                    "../math": 70,
                    "../settings": 101,
                    "../utils": 125,
                    "./BaseTexture": 112,
                    "./TextureUvs": 117,
                    "./VideoBaseTexture": 118,
                    eventemitter3: 3
                }],
                116: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = e("../math/Matrix"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = new a.default,
                        u = function() {
                            function e(t, n) {
                                i(this, e), this._texture = t, this.mapCoord = new a.default, this.uClampFrame = new Float32Array(4), this.uClampOffset = new Float32Array(2), this._lastTextureID = -1, this.clampOffset = 0, this.clampMargin = void 0 === n ? .5 : n
                            }
                            return e.prototype.multiplyUvs = function(e, t) {
                                void 0 === t && (t = e);
                                for (var n = this.mapCoord, i = 0; i < e.length; i += 2) {
                                    var r = e[i],
                                        o = e[i + 1];
                                    t[i] = r * n.a + o * n.c + n.tx, t[i + 1] = r * n.b + o * n.d + n.ty
                                }
                                return t
                            }, e.prototype.update = function(e) {
                                var t = this._texture;
                                if (!t || !t.valid) return !1;
                                if (!e && this._lastTextureID === t._updateID) return !1;
                                this._lastTextureID = t._updateID;
                                var n = t._uvs;
                                this.mapCoord.set(n.x1 - n.x0, n.y1 - n.y0, n.x3 - n.x0, n.y3 - n.y0, n.x0, n.y0);
                                var i = t.orig,
                                    r = t.trim;
                                r && (s.set(i.width / r.width, 0, 0, i.height / r.height, -r.x / r.width, -r.y / r.height), this.mapCoord.append(s));
                                var o = t.baseTexture,
                                    a = this.uClampFrame,
                                    u = this.clampMargin / o.resolution,
                                    l = this.clampOffset;
                                return a[0] = (t._frame.x + u + l) / o.width, a[1] = (t._frame.y + u + l) / o.height, a[2] = (t._frame.x + t._frame.width - u + l) / o.width, a[3] = (t._frame.y + t._frame.height - u + l) / o.height, this.uClampOffset[0] = l / o.realWidth, this.uClampOffset[1] = l / o.realHeight, !0
                            }, r(e, [{
                                key: "texture",
                                get: function() {
                                    return this._texture
                                },
                                set: function(e) {
                                    this._texture = e, this._lastTextureID = -1
                                }
                            }]), e
                        }();
                    n.default = u
                }, {
                    "../math/Matrix": 67
                }],
                117: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../math/GroupD8"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = function() {
                            function e() {
                                i(this, e), this.x0 = 0, this.y0 = 0, this.x1 = 1, this.y1 = 0, this.x2 = 1, this.y2 = 1, this.x3 = 0, this.y3 = 1, this.uvsUint32 = new Uint32Array(4)
                            }
                            return e.prototype.set = function(e, t, n) {
                                var i = t.width,
                                    r = t.height;
                                if (n) {
                                    var a = e.width / 2 / i,
                                        s = e.height / 2 / r,
                                        u = e.x / i + a,
                                        l = e.y / r + s;
                                    n = o.default.add(n, o.default.NW), this.x0 = u + a * o.default.uX(n), this.y0 = l + s * o.default.uY(n), n = o.default.add(n, 2), this.x1 = u + a * o.default.uX(n), this.y1 = l + s * o.default.uY(n), n = o.default.add(n, 2), this.x2 = u + a * o.default.uX(n), this.y2 = l + s * o.default.uY(n), n = o.default.add(n, 2), this.x3 = u + a * o.default.uX(n), this.y3 = l + s * o.default.uY(n)
                                } else this.x0 = e.x / i, this.y0 = e.y / r, this.x1 = (e.x + e.width) / i, this.y1 = e.y / r, this.x2 = (e.x + e.width) / i, this.y2 = (e.y + e.height) / r, this.x3 = e.x / i, this.y3 = (e.y + e.height) / r;
                                this.uvsUint32[0] = (65535 * this.y0 & 65535) << 16 | 65535 * this.x0 & 65535, this.uvsUint32[1] = (65535 * this.y1 & 65535) << 16 | 65535 * this.x1 & 65535, this.uvsUint32[2] = (65535 * this.y2 & 65535) << 16 | 65535 * this.x2 & 65535, this.uvsUint32[3] = (65535 * this.y3 & 65535) << 16 | 65535 * this.x3 & 65535
                            }, e
                        }();
                    n.default = a
                }, {
                    "../math/GroupD8": 66
                }],
                118: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }

                    function s(e, t) {
                        t || (t = "video/" + e.substr(e.lastIndexOf(".") + 1));
                        var n = document.createElement("source");
                        return n.src = e, n.type = t, n
                    }
                    n.__esModule = !0;
                    var u = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        l = e("./BaseTexture"),
                        c = i(l),
                        h = e("../utils"),
                        p = e("../ticker"),
                        d = e("../const"),
                        f = e("../utils/determineCrossOrigin"),
                        m = i(f),
                        _ = function(e) {
                            function t(n, i) {
                                if (r(this, t), !n) throw new Error("No video source element specified.");
                                (n.readyState === n.HAVE_ENOUGH_DATA || n.readyState === n.HAVE_FUTURE_DATA) && n.width && n.height && (n.complete = !0);
                                var a = o(this, e.call(this, n, i));
                                return a.width = n.videoWidth, a.height = n.videoHeight, a._autoUpdate = !0, a._isAutoUpdating = !1, a.autoPlay = !0, a.update = a.update.bind(a), a._onCanPlay = a._onCanPlay.bind(a), n.addEventListener("play", a._onPlayStart.bind(a)), n.addEventListener("pause", a._onPlayStop.bind(a)), a.hasLoaded = !1, a.__loaded = !1, a._isSourceReady() ? a._onCanPlay() : (n.addEventListener("canplay", a._onCanPlay), n.addEventListener("canplaythrough", a._onCanPlay)), a
                            }
                            return a(t, e), t.prototype._isSourcePlaying = function() {
                                var e = this.source;
                                return e.currentTime > 0 && !1 === e.paused && !1 === e.ended && e.readyState > 2
                            }, t.prototype._isSourceReady = function() {
                                return 3 === this.source.readyState || 4 === this.source.readyState
                            }, t.prototype._onPlayStart = function() {
                                this.hasLoaded || this._onCanPlay(), !this._isAutoUpdating && this.autoUpdate && (p.shared.add(this.update, this, d.UPDATE_PRIORITY.HIGH), this._isAutoUpdating = !0)
                            }, t.prototype._onPlayStop = function() {
                                this._isAutoUpdating && (p.shared.remove(this.update, this), this._isAutoUpdating = !1)
                            }, t.prototype._onCanPlay = function() {
                                this.hasLoaded = !0, this.source && (this.source.removeEventListener("canplay", this._onCanPlay), this.source.removeEventListener("canplaythrough", this._onCanPlay), this.width = this.source.videoWidth, this.height = this.source.videoHeight, this.__loaded || (this.__loaded = !0, this.emit("loaded", this)), this._isSourcePlaying() ? this._onPlayStart() : this.autoPlay && this.source.play())
                            }, t.prototype.destroy = function() {
                                this._isAutoUpdating && p.shared.remove(this.update, this), this.source && this.source._pixiId && (c.default.removeFromCache(this.source._pixiId), delete this.source._pixiId, this.source.pause(), this.source.src = "", this.source.load()), e.prototype.destroy.call(this)
                            }, t.fromVideo = function(e, n) {
                                e._pixiId || (e._pixiId = "video_" + (0, h.uid)());
                                var i = h.BaseTextureCache[e._pixiId];
                                return i || (i = new t(e, n), c.default.addToCache(i, e._pixiId)), i
                            }, t.fromUrl = function(e, n, i) {
                                var r = document.createElement("video");
                                r.setAttribute("webkit-playsinline", ""), r.setAttribute("playsinline", "");
                                var o = Array.isArray(e) ? e[0].src || e[0] : e.src || e;
                                if (void 0 === i && 0 !== o.indexOf("data:") ? r.crossOrigin = (0, m.default)(o) : i && (r.crossOrigin = "string" == typeof i ? i : "anonymous"), Array.isArray(e))
                                    for (var a = 0; a < e.length; ++a) r.appendChild(s(e[a].src || e[a], e[a].mime));
                                else r.appendChild(s(o, e.mime));
                                return r.load(), t.fromVideo(r, n)
                            }, u(t, [{
                                key: "autoUpdate",
                                get: function() {
                                    return this._autoUpdate
                                },
                                set: function(e) {
                                    e !== this._autoUpdate && (this._autoUpdate = e, !this._autoUpdate && this._isAutoUpdating ? (p.shared.remove(this.update, this), this._isAutoUpdating = !1) : this._autoUpdate && !this._isAutoUpdating && (p.shared.add(this.update, this, d.UPDATE_PRIORITY.HIGH), this._isAutoUpdating = !0))
                                }
                            }]), t
                        }(c.default);
                    n.default = _, _.fromUrls = _.fromUrl
                }, {
                    "../const": 46,
                    "../ticker": 121,
                    "../utils": 125,
                    "../utils/determineCrossOrigin": 124,
                    "./BaseTexture": 112
                }],
                119: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        a = e("../settings"),
                        s = i(a),
                        u = e("../const"),
                        l = e("./TickerListener"),
                        c = i(l),
                        h = function() {
                            function e() {
                                var t = this;
                                r(this, e), this._head = new c.default(null, null, 1 / 0), this._requestId = null, this._maxElapsedMS = 100, this.autoStart = !1, this.deltaTime = 1, this.elapsedMS = 1 / s.default.TARGET_FPMS, this.lastTime = -1, this.speed = 1, this.started = !1, this._tick = function(e) {
                                    t._requestId = null, t.started && (t.update(e), t.started && null === t._requestId && t._head.next && (t._requestId = requestAnimationFrame(t._tick)))
                                }
                            }
                            return e.prototype._requestIfNeeded = function() {
                                null === this._requestId && this._head.next && (this.lastTime = performance.now(), this._requestId = requestAnimationFrame(this._tick))
                            }, e.prototype._cancelIfNeeded = function() {
                                null !== this._requestId && (cancelAnimationFrame(this._requestId), this._requestId = null)
                            }, e.prototype._startIfPossible = function() {
                                this.started ? this._requestIfNeeded() : this.autoStart && this.start()
                            }, e.prototype.add = function(e, t) {
                                var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : u.UPDATE_PRIORITY.NORMAL;
                                return this._addListener(new c.default(e, t, n))
                            }, e.prototype.addOnce = function(e, t) {
                                var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : u.UPDATE_PRIORITY.NORMAL;
                                return this._addListener(new c.default(e, t, n, !0))
                            }, e.prototype._addListener = function(e) {
                                var t = this._head.next,
                                    n = this._head;
                                if (t) {
                                    for (; t;) {
                                        if (e.priority > t.priority) {
                                            e.connect(n);
                                            break
                                        }
                                        n = t, t = t.next
                                    }
                                    e.previous || e.connect(n)
                                } else e.connect(n);
                                return this._startIfPossible(), this
                            }, e.prototype.remove = function(e, t) {
                                for (var n = this._head.next; n;) n = n.match(e, t) ? n.destroy() : n.next;
                                return this._head.next || this._cancelIfNeeded(), this
                            }, e.prototype.start = function() {
                                this.started || (this.started = !0, this._requestIfNeeded())
                            }, e.prototype.stop = function() {
                                this.started && (this.started = !1, this._cancelIfNeeded())
                            }, e.prototype.destroy = function() {
                                this.stop();
                                for (var e = this._head.next; e;) e = e.destroy(!0);
                                this._head.destroy(), this._head = null
                            }, e.prototype.update = function() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : performance.now(),
                                    t = void 0;
                                if (e > this.lastTime) {
                                    t = this.elapsedMS = e - this.lastTime, t > this._maxElapsedMS && (t = this._maxElapsedMS), this.deltaTime = t * s.default.TARGET_FPMS * this.speed;
                                    for (var n = this._head, i = n.next; i;) i = i.emit(this.deltaTime);
                                    n.next || this._cancelIfNeeded()
                                } else this.deltaTime = this.elapsedMS = 0;
                                this.lastTime = e
                            }, o(e, [{
                                key: "FPS",
                                get: function() {
                                    return 1e3 / this.elapsedMS
                                }
                            }, {
                                key: "minFPS",
                                get: function() {
                                    return 1e3 / this._maxElapsedMS
                                },
                                set: function(e) {
                                    var t = Math.min(Math.max(0, e) / 1e3, s.default.TARGET_FPMS);
                                    this._maxElapsedMS = 1 / t
                                }
                            }]), e
                        }();
                    n.default = h
                }, {
                    "../const": 46,
                    "../settings": 101,
                    "./TickerListener": 120
                }],
                120: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e(t) {
                            var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
                                r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                o = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                            i(this, e), this.fn = t, this.context = n, this.priority = r, this.once = o, this.next = null, this.previous = null, this._destroyed = !1
                        }
                        return e.prototype.match = function(e, t) {
                            return t = t || null, this.fn === e && this.context === t
                        }, e.prototype.emit = function(e) {
                            this.fn && (this.context ? this.fn.call(this.context, e) : this.fn(e));
                            var t = this.next;
                            return this.once && this.destroy(!0), this._destroyed && (this.next = null), t
                        }, e.prototype.connect = function(e) {
                            this.previous = e, e.next && (e.next.previous = this), this.next = e.next, e.next = this
                        }, e.prototype.destroy = function() {
                            var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                            this._destroyed = !0, this.fn = null, this.context = null, this.previous && (this.previous.next = this.next), this.next && (this.next.previous = this.previous);
                            var t = this.previous;
                            return this.next = e ? null : t, this.previous = null, t
                        }, e
                    }();
                    n.default = r
                }, {}],
                121: [function(e, t, n) {
                    "use strict";
                    n.__esModule = !0, n.Ticker = n.shared = void 0;
                    var i = e("./Ticker"),
                        r = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(i),
                        o = new r.default;
                    o.autoStart = !0, o.destroy = function() {}, n.shared = o, n.Ticker = r.default
                }, {
                    "./Ticker": 119
                }],
                122: [function(e, t, n) {
                    "use strict";

                    function i() {
                        return !(!!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform))
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                123: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        for (var t = 6 * e, n = new Uint16Array(t), i = 0, r = 0; i < t; i += 6, r += 4) n[i + 0] = r + 0, n[i + 1] = r + 1, n[i + 2] = r + 2, n[i + 3] = r + 0, n[i + 4] = r + 2, n[i + 5] = r + 3;
                        return n
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                124: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : window.location;
                        if (0 === e.indexOf("data:")) return "";
                        t = t || window.location, a || (a = document.createElement("a")), a.href = e, e = o.default.parse(a.href);
                        var n = !e.port && "" === t.port || e.port === t.port;
                        return e.hostname === t.hostname && n && e.protocol === t.protocol ? "" : "anonymous"
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("url"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r),
                        a = void 0
                }, {
                    url: 29
                }],
                125: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        if (e && e.__esModule) return e;
                        var t = {};
                        if (null != e)
                            for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                        return t.default = e, t
                    }

                    function r(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function o() {
                        return ++N
                    }

                    function a(e, t) {
                        return t = t || [], t[0] = (e >> 16 & 255) / 255, t[1] = (e >> 8 & 255) / 255, t[2] = (255 & e) / 255, t
                    }

                    function s(e) {
                        return e = e.toString(16), "#" + (e = "000000".substr(0, 6 - e.length) + e)
                    }

                    function u(e) {
                        return (255 * e[0] << 16) + (255 * e[1] << 8) + (255 * e[2] | 0)
                    }

                    function l(e, t) {
                        var n = P.default.RETINA_PREFIX.exec(e);
                        return n ? parseFloat(n[1]) : void 0 !== t ? t : 1
                    }

                    function c(e) {
                        var t = w.DATA_URI.exec(e);
                        if (t) return {
                            mediaType: t[1] ? t[1].toLowerCase() : void 0,
                            subType: t[2] ? t[2].toLowerCase() : void 0,
                            encoding: t[3] ? t[3].toLowerCase() : void 0,
                            data: t[4]
                        }
                    }

                    function h(e) {
                        var t = w.URL_FILE_EXTENSION.exec(e);
                        if (t) return t[1].toLowerCase()
                    }

                    function p(e) {
                        var t = w.SVG_SIZE.exec(e),
                            n = {};
                        return t && (n[t[1]] = Math.round(parseFloat(t[3])), n[t[5]] = Math.round(parseFloat(t[7]))), n
                    }

                    function d() {
                        j = !0
                    }

                    function f(e) {
                        if (!j) {
                            if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
                                var t = ["\n %c %c %c PixiJS " + w.VERSION + " - ✰ " + e + " ✰  %c  %c  http://www.pixijs.com/  %c %c ♥%c♥%c♥ \n\n", "background: #ff66a5; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff66a5; background: #030307; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "background: #ffc3dc; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;"];
                                window.console.log.apply(console, t)
                            } else window.console && window.console.log("PixiJS " + w.VERSION + " - " + e + " - http://www.pixijs.com/");
                            j = !0
                        }
                    }

                    function m() {
                        var e = {
                            stencil: !0,
                            failIfMajorPerformanceCaveat: !0
                        };
                        try {
                            if (!window.WebGLRenderingContext) return !1;
                            var t = document.createElement("canvas"),
                                n = t.getContext("webgl", e) || t.getContext("experimental-webgl", e),
                                i = !(!n || !n.getContextAttributes().stencil);
                            if (n) {
                                var r = n.getExtension("WEBGL_lose_context");
                                r && r.loseContext()
                            }
                            return n = null, i
                        } catch (e) {
                            return !1
                        }
                    }

                    function _(e) {
                        return 0 === e ? 0 : e < 0 ? -1 : 1
                    }

                    function g() {
                        var e = void 0;
                        for (e in G) G[e].destroy();
                        for (e in U) U[e].destroy()
                    }

                    function y() {
                        var e = void 0;
                        for (e in G) delete G[e];
                        for (e in U) delete U[e]
                    }

                    function v(e, t) {
                        return W[t ? 1 : 0][e]
                    }

                    function b(e, t) {
                        if (1 === t) return (255 * t << 24) + e;
                        if (0 === t) return 0;
                        var n = e >> 16 & 255,
                            i = e >> 8 & 255,
                            r = 255 & e;
                        return n = n * t + .5 | 0, i = i * t + .5 | 0, r = r * t + .5 | 0, (255 * t << 24) + (n << 16) + (i << 8) + r
                    }

                    function x(e, t, n, i) {
                        return n = n || new Float32Array(4), i || void 0 === i ? (n[0] = e[0] * t, n[1] = e[1] * t, n[2] = e[2] * t) : (n[0] = e[0], n[1] = e[1], n[2] = e[2]), n[3] = t, n
                    }

                    function T(e, t, n, i) {
                        return n = n || new Float32Array(4), n[0] = (e >> 16 & 255) / 255, n[1] = (e >> 8 & 255) / 255, n[2] = (255 & e) / 255, (i || void 0 === i) && (n[0] *= t, n[1] *= t, n[2] *= t), n[3] = t, n
                    }
                    n.__esModule = !0, n.premultiplyBlendMode = n.BaseTextureCache = n.TextureCache = n.mixins = n.pluginTarget = n.EventEmitter = n.removeItems = n.isMobile = void 0, n.uid = o, n.hex2rgb = a, n.hex2string = s, n.rgb2hex = u, n.getResolutionOfUrl = l, n.decomposeDataUri = c, n.getUrlFileExtension = h, n.getSvgSize = p, n.skipHello = d, n.sayHello = f, n.isWebGLSupported = m, n.sign = _, n.destroyTextureCache = g, n.clearTextureCache = y, n.correctBlendMode = v, n.premultiplyTint = b, n.premultiplyRgba = x, n.premultiplyTintToRgba = T;
                    var w = e("../const"),
                        S = e("../settings"),
                        P = r(S),
                        C = e("eventemitter3"),
                        E = r(C),
                        M = e("./pluginTarget"),
                        O = r(M),
                        I = e("./mixin"),
                        A = i(I),
                        R = e("ismobilejs"),
                        k = i(R),
                        L = e("remove-array-items"),
                        D = r(L),
                        B = e("./mapPremultipliedBlendModes"),
                        F = r(B),
                        N = 0,
                        j = !1;
                    n.isMobile = k, n.removeItems = D.default, n.EventEmitter = E.default, n.pluginTarget = O.default, n.mixins = A;
                    var G = n.TextureCache = Object.create(null),
                        U = n.BaseTextureCache = Object.create(null),
                        W = n.premultiplyBlendMode = (0, F.default)()
                }, {
                    "../const": 46,
                    "../settings": 101,
                    "./mapPremultipliedBlendModes": 126,
                    "./mixin": 128,
                    "./pluginTarget": 129,
                    eventemitter3: 3,
                    ismobilejs: 4,
                    "remove-array-items": 31
                }],
                126: [function(e, t, n) {
                    "use strict";

                    function i() {
                        for (var e = [], t = [], n = 0; n < 32; n++) e[n] = n, t[n] = n;
                        e[r.BLEND_MODES.NORMAL_NPM] = r.BLEND_MODES.NORMAL, e[r.BLEND_MODES.ADD_NPM] = r.BLEND_MODES.ADD, e[r.BLEND_MODES.SCREEN_NPM] = r.BLEND_MODES.SCREEN, t[r.BLEND_MODES.NORMAL] = r.BLEND_MODES.NORMAL_NPM, t[r.BLEND_MODES.ADD] = r.BLEND_MODES.ADD_NPM, t[r.BLEND_MODES.SCREEN] = r.BLEND_MODES.SCREEN_NPM;
                        var i = [];
                        return i.push(t), i.push(e), i
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("../const")
                }, {
                    "../const": 46
                }],
                127: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return o.default.tablet || o.default.phone ? 4 : e
                    }
                    n.__esModule = !0, n.default = i;
                    var r = e("ismobilejs"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r)
                }, {
                    ismobilejs: 4
                }],
                128: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (e && t)
                            for (var n = Object.keys(t), i = 0; i < n.length; ++i) {
                                var r = n[i];
                                Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r))
                            }
                    }

                    function r(e, t) {
                        a.push(e, t)
                    }

                    function o() {
                        for (var e = 0; e < a.length; e += 2) i(a[e], a[e + 1]);
                        a.length = 0
                    }
                    n.__esModule = !0, n.mixin = i, n.delayMixin = r, n.performMixins = o;
                    var a = []
                }, {}],
                129: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        e.__plugins = {}, e.registerPlugin = function(t, n) {
                            e.__plugins[t] = n
                        }, e.prototype.initPlugins = function() {
                            this.plugins = this.plugins || {};
                            for (var t in e.__plugins) this.plugins[t] = new e.__plugins[t](this)
                        }, e.prototype.destroyPlugins = function() {
                            for (var e in this.plugins) this.plugins[e].destroy(), this.plugins[e] = null;
                            this.plugins = null
                        }
                    }
                    n.__esModule = !0, n.default = {
                        mixin: function(e) {
                            i(e)
                        }
                    }
                }, {}],
                130: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        var t = e.width,
                            n = e.height,
                            i = e.getContext("2d"),
                            r = i.getImageData(0, 0, t, n),
                            o = r.data,
                            a = o.length,
                            s = {
                                top: null,
                                left: null,
                                right: null,
                                bottom: null
                            },
                            u = void 0,
                            l = void 0,
                            c = void 0;
                        for (u = 0; u < a; u += 4) 0 !== o[u + 3] && (l = u / 4 % t, c = ~~(u / 4 / t), null === s.top && (s.top = c), null === s.left ? s.left = l : l < s.left && (s.left = l), null === s.right ? s.right = l + 1 : s.right < l && (s.right = l + 1), null === s.bottom ? s.bottom = c : s.bottom < c && (s.bottom = c));
                        return t = s.right - s.left, n = s.bottom - s.top + 1, {
                            height: n,
                            width: t,
                            data: i.getImageData(s.left, s.top, t, n)
                        }
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                131: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        var t = (new Error).stack;
                        void 0 === t || (t = t.split("\n").splice(3).join("\n"), console.groupCollapsed)
                    }

                    function r(e) {
                        var t = e.mesh,
                            n = e.particles,
                            r = e.extras,
                            o = e.filters,
                            a = e.prepare,
                            s = e.loaders,
                            u = e.interaction;
                        Object.defineProperties(e, {
                            SpriteBatch: {
                                get: function() {
                                    throw new ReferenceError("SpriteBatch does not exist any more, please use the new ParticleContainer instead.")
                                }
                            },
                            AssetLoader: {
                                get: function() {
                                    throw new ReferenceError("The loader system was overhauled in PixiJS v3, please see the new PIXI.loaders.Loader class.")
                                }
                            },
                            Stage: {
                                get: function() {
                                    return i("You do not need to use a PIXI Stage any more, you can simply render any container."), e.Container
                                }
                            },
                            DisplayObjectContainer: {
                                get: function() {
                                    return i("DisplayObjectContainer has been shortened to Container, please use Container from now on."), e.Container
                                }
                            },
                            Strip: {
                                get: function() {
                                    return i("The Strip class has been renamed to Mesh and moved to mesh.Mesh, please use mesh.Mesh from now on."), t.Mesh
                                }
                            },
                            Rope: {
                                get: function() {
                                    return i("The Rope class has been moved to mesh.Rope, please use mesh.Rope from now on."), t.Rope
                                }
                            },
                            ParticleContainer: {
                                get: function() {
                                    return i("The ParticleContainer class has been moved to particles.ParticleContainer, please use particles.ParticleContainer from now on."), n.ParticleContainer
                                }
                            },
                            MovieClip: {
                                get: function() {
                                    return i("The MovieClip class has been moved to extras.AnimatedSprite, please use extras.AnimatedSprite."), r.AnimatedSprite
                                }
                            },
                            TilingSprite: {
                                get: function() {
                                    return i("The TilingSprite class has been moved to extras.TilingSprite, please use extras.TilingSprite from now on."), r.TilingSprite
                                }
                            },
                            BitmapText: {
                                get: function() {
                                    return i("The BitmapText class has been moved to extras.BitmapText, please use extras.BitmapText from now on."), r.BitmapText
                                }
                            },
                            blendModes: {
                                get: function() {
                                    return i("The blendModes has been moved to BLEND_MODES, please use BLEND_MODES from now on."), e.BLEND_MODES
                                }
                            },
                            scaleModes: {
                                get: function() {
                                    return i("The scaleModes has been moved to SCALE_MODES, please use SCALE_MODES from now on."), e.SCALE_MODES
                                }
                            },
                            BaseTextureCache: {
                                get: function() {
                                    return i("The BaseTextureCache class has been moved to utils.BaseTextureCache, please use utils.BaseTextureCache from now on."), e.utils.BaseTextureCache
                                }
                            },
                            TextureCache: {
                                get: function() {
                                    return i("The TextureCache class has been moved to utils.TextureCache, please use utils.TextureCache from now on."), e.utils.TextureCache
                                }
                            },
                            math: {
                                get: function() {
                                    return i("The math namespace is deprecated, please access members already accessible on PIXI."), e
                                }
                            },
                            AbstractFilter: {
                                get: function() {
                                    return i("AstractFilter has been renamed to Filter, please use PIXI.Filter"), e.Filter
                                }
                            },
                            TransformManual: {
                                get: function() {
                                    return i("TransformManual has been renamed to TransformBase, please update your pixi-spine"), e.TransformBase
                                }
                            },
                            TARGET_FPMS: {
                                get: function() {
                                    return i("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"), e.settings.TARGET_FPMS
                                },
                                set: function(t) {
                                    i("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"), e.settings.TARGET_FPMS = t
                                }
                            },
                            FILTER_RESOLUTION: {
                                get: function() {
                                    return i("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"), e.settings.FILTER_RESOLUTION
                                },
                                set: function(t) {
                                    i("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"), e.settings.FILTER_RESOLUTION = t
                                }
                            },
                            RESOLUTION: {
                                get: function() {
                                    return i("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"), e.settings.RESOLUTION
                                },
                                set: function(t) {
                                    i("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"), e.settings.RESOLUTION = t
                                }
                            },
                            MIPMAP_TEXTURES: {
                                get: function() {
                                    return i("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"), e.settings.MIPMAP_TEXTURES
                                },
                                set: function(t) {
                                    i("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"), e.settings.MIPMAP_TEXTURES = t
                                }
                            },
                            SPRITE_BATCH_SIZE: {
                                get: function() {
                                    return i("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"), e.settings.SPRITE_BATCH_SIZE
                                },
                                set: function(t) {
                                    i("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"), e.settings.SPRITE_BATCH_SIZE = t
                                }
                            },
                            SPRITE_MAX_TEXTURES: {
                                get: function() {
                                    return i("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"), e.settings.SPRITE_MAX_TEXTURES
                                },
                                set: function(t) {
                                    i("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"), e.settings.SPRITE_MAX_TEXTURES = t
                                }
                            },
                            RETINA_PREFIX: {
                                get: function() {
                                    return i("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"), e.settings.RETINA_PREFIX
                                },
                                set: function(t) {
                                    i("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"), e.settings.RETINA_PREFIX = t
                                }
                            },
                            DEFAULT_RENDER_OPTIONS: {
                                get: function() {
                                    return i("PIXI.DEFAULT_RENDER_OPTIONS has been deprecated, please use PIXI.settings.DEFAULT_RENDER_OPTIONS"), e.settings.RENDER_OPTIONS
                                }
                            }
                        });
                        for (var l = [{
                                parent: "TRANSFORM_MODE",
                                target: "TRANSFORM_MODE"
                            }, {
                                parent: "GC_MODES",
                                target: "GC_MODE"
                            }, {
                                parent: "WRAP_MODES",
                                target: "WRAP_MODE"
                            }, {
                                parent: "SCALE_MODES",
                                target: "SCALE_MODE"
                            }, {
                                parent: "PRECISION",
                                target: "PRECISION_FRAGMENT"
                            }], c = 0; c < l.length; c++) ! function(t) {
                            var n = l[t];
                            Object.defineProperty(e[n.parent], "DEFAULT", {
                                get: function() {
                                    return i("PIXI." + n.parent + ".DEFAULT has been deprecated, please use PIXI.settings." + n.target), e.settings[n.target]
                                },
                                set: function(t) {
                                    i("PIXI." + n.parent + ".DEFAULT has been deprecated, please use PIXI.settings." + n.target), e.settings[n.target] = t
                                }
                            })
                        }(c);
                        Object.defineProperties(e.settings, {
                            PRECISION: {
                                get: function() {
                                    return i("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"), e.settings.PRECISION_FRAGMENT
                                },
                                set: function(t) {
                                    i("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"), e.settings.PRECISION_FRAGMENT = t
                                }
                            }
                        }), r.AnimatedSprite && Object.defineProperties(r, {
                            MovieClip: {
                                get: function() {
                                    return i("The MovieClip class has been renamed to AnimatedSprite, please use AnimatedSprite from now on."), r.AnimatedSprite
                                }
                            }
                        }), r && Object.defineProperties(r, {
                            TextureTransform: {
                                get: function() {
                                    return i("The TextureTransform class has been renamed to TextureMatrix, please use PIXI.TextureMatrix from now on."), e.TextureMatrix
                                }
                            }
                        }), e.DisplayObject.prototype.generateTexture = function(e, t, n) {
                            return i("generateTexture has moved to the renderer, please use renderer.generateTexture(displayObject)"), e.generateTexture(this, t, n)
                        }, e.Graphics.prototype.generateTexture = function(e, t) {
                            return i("graphics generate texture has moved to the renderer. Or to render a graphics to a texture using canvas please use generateCanvasTexture"), this.generateCanvasTexture(e, t)
                        }, e.GroupD8.isSwapWidthHeight = function(t) {
                            return i("GroupD8.isSwapWidthHeight was renamed to GroupD8.isVertical"), e.GroupD8.isVertical(t)
                        }, e.RenderTexture.prototype.render = function(e, t, n, r) {
                            this.legacyRenderer.render(e, this, n, t, !r), i("RenderTexture.render is now deprecated, please use renderer.render(displayObject, renderTexture)")
                        }, e.RenderTexture.prototype.getImage = function(e) {
                            return i("RenderTexture.getImage is now deprecated, please use renderer.extract.image(target)"), this.legacyRenderer.extract.image(e)
                        }, e.RenderTexture.prototype.getBase64 = function(e) {
                            return i("RenderTexture.getBase64 is now deprecated, please use renderer.extract.base64(target)"), this.legacyRenderer.extract.base64(e)
                        }, e.RenderTexture.prototype.getCanvas = function(e) {
                            return i("RenderTexture.getCanvas is now deprecated, please use renderer.extract.canvas(target)"), this.legacyRenderer.extract.canvas(e)
                        }, e.RenderTexture.prototype.getPixels = function(e) {
                            return i("RenderTexture.getPixels is now deprecated, please use renderer.extract.pixels(target)"), this.legacyRenderer.pixels(e)
                        }, e.Sprite.prototype.setTexture = function(e) {
                            this.texture = e, i("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;")
                        }, r.BitmapText && (r.BitmapText.prototype.setText = function(e) {
                            this.text = e, i("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';")
                        }), e.Text.prototype.setText = function(e) {
                            this.text = e, i("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';")
                        }, e.Text.calculateFontProperties = function(t) {
                            return i("Text.calculateFontProperties is now deprecated, please use the TextMetrics.measureFont"), e.TextMetrics.measureFont(t)
                        }, Object.defineProperties(e.Text, {
                            fontPropertiesCache: {
                                get: function() {
                                    return i("Text.fontPropertiesCache is deprecated"), e.TextMetrics._fonts
                                }
                            },
                            fontPropertiesCanvas: {
                                get: function() {
                                    return i("Text.fontPropertiesCanvas is deprecated"), e.TextMetrics._canvas
                                }
                            },
                            fontPropertiesContext: {
                                get: function() {
                                    return i("Text.fontPropertiesContext is deprecated"), e.TextMetrics._context
                                }
                            }
                        }), e.Text.prototype.setStyle = function(e) {
                            this.style = e, i("setStyle is now deprecated, please use the style property, e.g : myText.style = style;")
                        }, e.Text.prototype.determineFontProperties = function(t) {
                            return i("determineFontProperties is now deprecated, please use TextMetrics.measureFont method"), e.TextMetrics.measureFont(t)
                        }, e.Text.getFontStyle = function(t) {
                            return i("getFontStyle is now deprecated, please use TextStyle.toFontString() instead"), t = t || {}, t instanceof e.TextStyle || (t = new e.TextStyle(t)), t.toFontString()
                        }, Object.defineProperties(e.TextStyle.prototype, {
                            font: {
                                get: function() {
                                    i("text style property 'font' is now deprecated, please use the 'fontFamily', 'fontSize', 'fontStyle', 'fontVariant' and 'fontWeight' properties from now on");
                                    var e = "number" == typeof this._fontSize ? this._fontSize + "px" : this._fontSize;
                                    return this._fontStyle + " " + this._fontVariant + " " + this._fontWeight + " " + e + " " + this._fontFamily
                                },
                                set: function(e) {
                                    i("text style property 'font' is now deprecated, please use the 'fontFamily','fontSize',fontStyle','fontVariant' and 'fontWeight' properties from now on"), e.indexOf("italic") > 1 ? this._fontStyle = "italic" : e.indexOf("oblique") > -1 ? this._fontStyle = "oblique" : this._fontStyle = "normal", e.indexOf("small-caps") > -1 ? this._fontVariant = "small-caps" : this._fontVariant = "normal";
                                    var t = e.split(" "),
                                        n = -1;
                                    this._fontSize = 26;
                                    for (var r = 0; r < t.length; ++r)
                                        if (t[r].match(/(px|pt|em|%)/)) {
                                            n = r, this._fontSize = t[r];
                                            break
                                        }
                                    this._fontWeight = "normal";
                                    for (var o = 0; o < n; ++o)
                                        if (t[o].match(/(bold|bolder|lighter|100|200|300|400|500|600|700|800|900)/)) {
                                            this._fontWeight = t[o];
                                            break
                                        }
                                    if (n > -1 && n < t.length - 1) {
                                        this._fontFamily = "";
                                        for (var a = n + 1; a < t.length; ++a) this._fontFamily += t[a] + " ";
                                        this._fontFamily = this._fontFamily.slice(0, -1)
                                    } else this._fontFamily = "Arial";
                                    this.styleID++
                                }
                            }
                        }), e.Texture.prototype.setFrame = function(e) {
                            this.frame = e, i("setFrame is now deprecated, please use the frame property, e.g: myTexture.frame = frame;")
                        }, e.Texture.addTextureToCache = function(t, n) {
                            e.Texture.addToCache(t, n), i("Texture.addTextureToCache is deprecated, please use Texture.addToCache from now on.")
                        }, e.Texture.removeTextureFromCache = function(t) {
                            return i("Texture.removeTextureFromCache is deprecated, please use Texture.removeFromCache from now on. Be aware that Texture.removeFromCache does not automatically its BaseTexture from the BaseTextureCache. For that, use BaseTexture.removeFromCache"), e.BaseTexture.removeFromCache(t), e.Texture.removeFromCache(t)
                        }, Object.defineProperties(o, {
                            AbstractFilter: {
                                get: function() {
                                    return i("AstractFilter has been renamed to Filter, please use PIXI.Filter"), e.AbstractFilter
                                }
                            },
                            SpriteMaskFilter: {
                                get: function() {
                                    return i("filters.SpriteMaskFilter is an undocumented alias, please use SpriteMaskFilter from now on."), e.SpriteMaskFilter
                                }
                            },
                            VoidFilter: {
                                get: function() {
                                    return i("VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter"), o.AlphaFilter
                                }
                            }
                        }), e.utils.uuid = function() {
                            return i("utils.uuid() is deprecated, please use utils.uid() from now on."), e.utils.uid()
                        }, e.utils.canUseNewCanvasBlendModes = function() {
                            return i("utils.canUseNewCanvasBlendModes() is deprecated, please use CanvasTinter.canUseMultiply from now on"), e.CanvasTinter.canUseMultiply
                        };
                        var h = !0;
                        if (Object.defineProperty(e.utils, "_saidHello", {
                                set: function(e) {
                                    e && (i("PIXI.utils._saidHello is deprecated, please use PIXI.utils.skipHello()"), this.skipHello()), h = e
                                },
                                get: function() {
                                    return h
                                }
                            }), a.BasePrepare && (a.BasePrepare.prototype.register = function(e, t) {
                                return i("renderer.plugins.prepare.register is now deprecated, please use renderer.plugins.prepare.registerFindHook & renderer.plugins.prepare.registerUploadHook"), e && this.registerFindHook(e), t && this.registerUploadHook(t), this
                            }), a.canvas && Object.defineProperty(a.canvas, "UPLOADS_PER_FRAME", {
                                set: function() {
                                    i("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")
                                },
                                get: function() {
                                    return i("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"), NaN
                                }
                            }), a.webgl && Object.defineProperty(a.webgl, "UPLOADS_PER_FRAME", {
                                set: function() {
                                    i("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")
                                },
                                get: function() {
                                    return i("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"), NaN
                                }
                            }), s.Loader) {
                            var p = s.Resource,
                                d = s.Loader;
                            Object.defineProperties(p.prototype, {
                                isJson: {
                                    get: function() {
                                        return i("The isJson property is deprecated, please use `resource.type === Resource.TYPE.JSON`."), this.type === p.TYPE.JSON
                                    }
                                },
                                isXml: {
                                    get: function() {
                                        return i("The isXml property is deprecated, please use `resource.type === Resource.TYPE.XML`."), this.type === p.TYPE.XML
                                    }
                                },
                                isImage: {
                                    get: function() {
                                        return i("The isImage property is deprecated, please use `resource.type === Resource.TYPE.IMAGE`."), this.type === p.TYPE.IMAGE
                                    }
                                },
                                isAudio: {
                                    get: function() {
                                        return i("The isAudio property is deprecated, please use `resource.type === Resource.TYPE.AUDIO`."), this.type === p.TYPE.AUDIO
                                    }
                                },
                                isVideo: {
                                    get: function() {
                                        return i("The isVideo property is deprecated, please use `resource.type === Resource.TYPE.VIDEO`."), this.type === p.TYPE.VIDEO
                                    }
                                }
                            }), Object.defineProperties(d.prototype, {
                                before: {
                                    get: function() {
                                        return i("The before() method is deprecated, please use pre()."), this.pre
                                    }
                                },
                                after: {
                                    get: function() {
                                        return i("The after() method is deprecated, please use use()."), this.use
                                    }
                                }
                            })
                        }
                        u.interactiveTarget && Object.defineProperty(u.interactiveTarget, "defaultCursor", {
                            set: function(e) {
                                i("Property defaultCursor has been replaced with 'cursor'. "), this.cursor = e
                            },
                            get: function() {
                                return i("Property defaultCursor has been replaced with 'cursor'. "), this.cursor
                            }
                        }), u.InteractionManager && (Object.defineProperty(u.InteractionManager, "defaultCursorStyle", {
                            set: function(e) {
                                i("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "), this.cursorStyles.default = e
                            },
                            get: function() {
                                return i("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "), this.cursorStyles.default
                            }
                        }), Object.defineProperty(u.InteractionManager, "currentCursorStyle", {
                            set: function(e) {
                                i("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."), this.currentCursorMode = e
                            },
                            get: function() {
                                return i("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."), this.currentCursorMode
                            }
                        }))
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                132: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../core"),
                        o = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(r),
                        a = new o.Rectangle,
                        s = function() {
                            function e(t) {
                                i(this, e), this.renderer = t, t.extract = this
                            }
                            return e.prototype.image = function(e) {
                                var t = new Image;
                                return t.src = this.base64(e), t
                            }, e.prototype.base64 = function(e) {
                                return this.canvas(e).toDataURL()
                            }, e.prototype.canvas = function(e) {
                                var t = this.renderer,
                                    n = void 0,
                                    i = void 0,
                                    r = void 0,
                                    s = void 0;
                                e && (s = e instanceof o.RenderTexture ? e : t.generateTexture(e)), s ? (n = s.baseTexture._canvasRenderTarget.context, i = s.baseTexture._canvasRenderTarget.resolution, r = s.frame) : (n = t.rootContext, r = a, r.width = this.renderer.width, r.height = this.renderer.height);
                                var u = r.width * i,
                                    l = r.height * i,
                                    c = new o.CanvasRenderTarget(u, l),
                                    h = n.getImageData(r.x * i, r.y * i, u, l);
                                return c.context.putImageData(h, 0, 0), c.canvas
                            }, e.prototype.pixels = function(e) {
                                var t = this.renderer,
                                    n = void 0,
                                    i = void 0,
                                    r = void 0,
                                    s = void 0;
                                return e && (s = e instanceof o.RenderTexture ? e : t.generateTexture(e)), s ? (n = s.baseTexture._canvasRenderTarget.context, i = s.baseTexture._canvasRenderTarget.resolution, r = s.frame) : (n = t.rootContext, r = a, r.width = t.width, r.height = t.height), n.getImageData(0, 0, r.width * i, r.height * i).data
                            }, e.prototype.destroy = function() {
                                this.renderer.extract = null, this.renderer = null
                            }, e
                        }();
                    n.default = s, o.CanvasRenderer.registerPlugin("extract", s)
                }, {
                    "../../core": 65
                }],
                133: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./webgl/WebGLExtract");
                    Object.defineProperty(n, "webgl", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./canvas/CanvasExtract");
                    Object.defineProperty(n, "canvas", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    })
                }, {
                    "./canvas/CanvasExtract": 132,
                    "./webgl/WebGLExtract": 134
                }],
                134: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../core"),
                        o = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(r),
                        a = new o.Rectangle,
                        s = function() {
                            function e(t) {
                                i(this, e), this.renderer = t, t.extract = this
                            }
                            return e.prototype.image = function(e) {
                                var t = new Image;
                                return t.src = this.base64(e), t
                            }, e.prototype.base64 = function(e) {
                                return this.canvas(e).toDataURL()
                            }, e.prototype.canvas = function(e) {
                                var t = this.renderer,
                                    n = void 0,
                                    i = void 0,
                                    r = void 0,
                                    s = !1,
                                    u = void 0;
                                e && (u = e instanceof o.RenderTexture ? e : this.renderer.generateTexture(e)), u ? (n = u.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID], i = n.resolution, r = u.frame, s = !1) : (n = this.renderer.rootRenderTarget, i = n.resolution, s = !0, r = a, r.width = n.size.width, r.height = n.size.height);
                                var l = r.width * i,
                                    c = r.height * i,
                                    h = new o.CanvasRenderTarget(l, c);
                                if (n) {
                                    t.bindRenderTarget(n);
                                    var p = new Uint8Array(4 * l * c),
                                        d = t.gl;
                                    d.readPixels(r.x * i, r.y * i, l, c, d.RGBA, d.UNSIGNED_BYTE, p);
                                    var f = h.context.getImageData(0, 0, l, c);
                                    f.data.set(p), h.context.putImageData(f, 0, 0), s && (h.context.scale(1, -1), h.context.drawImage(h.canvas, 0, -c))
                                }
                                return h.canvas
                            }, e.prototype.pixels = function(e) {
                                var t = this.renderer,
                                    n = void 0,
                                    i = void 0,
                                    r = void 0,
                                    s = void 0;
                                e && (s = e instanceof o.RenderTexture ? e : this.renderer.generateTexture(e)), s ? (n = s.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID], i = n.resolution, r = s.frame) : (n = this.renderer.rootRenderTarget, i = n.resolution, r = a, r.width = n.size.width, r.height = n.size.height);
                                var u = r.width * i,
                                    l = r.height * i,
                                    c = new Uint8Array(4 * u * l);
                                if (n) {
                                    t.bindRenderTarget(n);
                                    var h = t.gl;
                                    h.readPixels(r.x * i, r.y * i, u, l, h.RGBA, h.UNSIGNED_BYTE, c)
                                }
                                return c
                            }, e.prototype.destroy = function() {
                                this.renderer.extract = null, this.renderer = null
                            }, e
                        }();
                    n.default = s, o.WebGLRenderer.registerPlugin("extract", s)
                }, {
                    "../../core": 65
                }],
                135: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = function(e) {
                            function t(n, o) {
                                i(this, t);
                                var a = r(this, e.call(this, n[0] instanceof u.Texture ? n[0] : n[0].texture));
                                return a._textures = null, a._durations = null, a.textures = n, a._autoUpdate = !1 !== o, a.animationSpeed = 1, a.loop = !0, a.onComplete = null, a.onFrameChange = null, a.onLoop = null, a._currentTime = 0, a.playing = !1, a
                            }
                            return o(t, e), t.prototype.stop = function() {
                                this.playing && (this.playing = !1, this._autoUpdate && u.ticker.shared.remove(this.update, this))
                            }, t.prototype.play = function() {
                                this.playing || (this.playing = !0, this._autoUpdate && u.ticker.shared.add(this.update, this, u.UPDATE_PRIORITY.HIGH))
                            }, t.prototype.gotoAndStop = function(e) {
                                this.stop();
                                var t = this.currentFrame;
                                this._currentTime = e, t !== this.currentFrame && this.updateTexture()
                            }, t.prototype.gotoAndPlay = function(e) {
                                var t = this.currentFrame;
                                this._currentTime = e, t !== this.currentFrame && this.updateTexture(), this.play()
                            }, t.prototype.update = function(e) {
                                var t = this.animationSpeed * e,
                                    n = this.currentFrame;
                                if (null !== this._durations) {
                                    var i = this._currentTime % 1 * this._durations[this.currentFrame];
                                    for (i += t / 60 * 1e3; i < 0;) this._currentTime--, i += this._durations[this.currentFrame];
                                    var r = Math.sign(this.animationSpeed * e);
                                    for (this._currentTime = Math.floor(this._currentTime); i >= this._durations[this.currentFrame];) i -= this._durations[this.currentFrame] * r, this._currentTime += r;
                                    this._currentTime += i / this._durations[this.currentFrame]
                                } else this._currentTime += t;
                                this._currentTime < 0 && !this.loop ? (this.gotoAndStop(0), this.onComplete && this.onComplete()) : this._currentTime >= this._textures.length && !this.loop ? (this.gotoAndStop(this._textures.length - 1), this.onComplete && this.onComplete()) : n !== this.currentFrame && (this.loop && this.onLoop && (this.animationSpeed > 0 && this.currentFrame < n ? this.onLoop() : this.animationSpeed < 0 && this.currentFrame > n && this.onLoop()), this.updateTexture())
                            }, t.prototype.updateTexture = function() {
                                this._texture = this._textures[this.currentFrame], this._textureID = -1, this.cachedTint = 16777215, this.onFrameChange && this.onFrameChange(this.currentFrame)
                            }, t.prototype.destroy = function(t) {
                                this.stop(), e.prototype.destroy.call(this, t)
                            }, t.fromFrames = function(e) {
                                for (var n = [], i = 0; i < e.length; ++i) n.push(u.Texture.fromFrame(e[i]));
                                return new t(n)
                            }, t.fromImages = function(e) {
                                for (var n = [], i = 0; i < e.length; ++i) n.push(u.Texture.fromImage(e[i]));
                                return new t(n)
                            }, a(t, [{
                                key: "totalFrames",
                                get: function() {
                                    return this._textures.length
                                }
                            }, {
                                key: "textures",
                                get: function() {
                                    return this._textures
                                },
                                set: function(e) {
                                    if (e[0] instanceof u.Texture) this._textures = e, this._durations = null;
                                    else {
                                        this._textures = [], this._durations = [];
                                        for (var t = 0; t < e.length; t++) this._textures.push(e[t].texture), this._durations.push(e[t].time)
                                    }
                                    this.gotoAndStop(0), this.updateTexture()
                                }
                            }, {
                                key: "currentFrame",
                                get: function() {
                                    var e = Math.floor(this._currentTime) % this._textures.length;
                                    return e < 0 && (e += this._textures.length), e
                                }
                            }]), t
                        }(u.Sprite);
                    n.default = l
                }, {
                    "../core": 65
                }],
                136: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("../core"),
                        l = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(u),
                        c = e("../core/math/ObservablePoint"),
                        h = i(c),
                        p = e("../core/utils"),
                        d = e("../core/settings"),
                        f = i(d),
                        m = function(e) {
                            function t(n) {
                                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                                r(this, t);
                                var a = o(this, e.call(this));
                                return a._textWidth = 0, a._textHeight = 0, a._glyphs = [], a._font = {
                                    tint: void 0 !== i.tint ? i.tint : 16777215,
                                    align: i.align || "left",
                                    name: null,
                                    size: 0
                                }, a.font = i.font, a._text = n, a._maxWidth = 0, a._maxLineHeight = 0, a._anchor = new h.default(function() {
                                    a.dirty = !0
                                }, a, 0, 0), a.dirty = !1, a.updateText(), a
                            }
                            return a(t, e), t.prototype.updateText = function() {
                                for (var e = t.fonts[this._font.name], n = this._font.size / e.size, i = new l.Point, r = [], o = [], a = null, s = 0, u = 0, c = 0, h = -1, p = 0, d = 0, f = 0, m = 0; m < this.text.length; m++) {
                                    var _ = this.text.charCodeAt(m);
                                    if (/(\s)/.test(this.text.charAt(m)) && (h = m, p = s), /(?:\r\n|\r|\n)/.test(this.text.charAt(m))) o.push(s), u = Math.max(u, s), c++, i.x = 0, i.y += e.lineHeight, a = null;
                                    else if (-1 !== h && this._maxWidth > 0 && i.x * n > this._maxWidth) l.utils.removeItems(r, h - d, m - h), m = h, h = -1, ++d, o.push(p), u = Math.max(u, p), c++, i.x = 0, i.y += e.lineHeight, a = null;
                                    else {
                                        var g = e.chars[_];
                                        g && (a && g.kerning[a] && (i.x += g.kerning[a]), r.push({
                                            texture: g.texture,
                                            line: c,
                                            charCode: _,
                                            position: new l.Point(i.x + g.xOffset, i.y + g.yOffset)
                                        }), s = i.x + (g.texture.width + g.xOffset), i.x += g.xAdvance, f = Math.max(f, g.yOffset + g.texture.height), a = _)
                                    }
                                }
                                o.push(s), u = Math.max(u, s);
                                for (var y = [], v = 0; v <= c; v++) {
                                    var b = 0;
                                    "right" === this._font.align ? b = u - o[v] : "center" === this._font.align && (b = (u - o[v]) / 2), y.push(b)
                                }
                                for (var x = r.length, T = this.tint, w = 0; w < x; w++) {
                                    var S = this._glyphs[w];
                                    S ? S.texture = r[w].texture : (S = new l.Sprite(r[w].texture), this._glyphs.push(S)), S.position.x = (r[w].position.x + y[r[w].line]) * n, S.position.y = r[w].position.y * n, S.scale.x = S.scale.y = n, S.tint = T, S.parent || this.addChild(S)
                                }
                                for (var P = x; P < this._glyphs.length; ++P) this.removeChild(this._glyphs[P]);
                                if (this._textWidth = u * n, this._textHeight = (i.y + e.lineHeight) * n, 0 !== this.anchor.x || 0 !== this.anchor.y)
                                    for (var C = 0; C < x; C++) this._glyphs[C].x -= this._textWidth * this.anchor.x, this._glyphs[C].y -= this._textHeight * this.anchor.y;
                                this._maxLineHeight = f * n
                            }, t.prototype.updateTransform = function() {
                                this.validate(), this.containerUpdateTransform()
                            }, t.prototype.getLocalBounds = function() {
                                return this.validate(), e.prototype.getLocalBounds.call(this)
                            }, t.prototype.validate = function() {
                                this.dirty && (this.updateText(), this.dirty = !1)
                            }, t.registerFont = function(e, n) {
                                var i = {},
                                    r = e.getElementsByTagName("info")[0],
                                    o = e.getElementsByTagName("common")[0],
                                    a = e.getElementsByTagName("page")[0].getAttribute("file"),
                                    s = (0, p.getResolutionOfUrl)(a, f.default.RESOLUTION);
                                i.font = r.getAttribute("face"), i.size = parseInt(r.getAttribute("size"), 10), i.lineHeight = parseInt(o.getAttribute("lineHeight"), 10) / s, i.chars = {};
                                for (var u = e.getElementsByTagName("char"), c = 0; c < u.length; c++) {
                                    var h = u[c],
                                        d = parseInt(h.getAttribute("id"), 10),
                                        m = new l.Rectangle(parseInt(h.getAttribute("x"), 10) / s + n.frame.x / s, parseInt(h.getAttribute("y"), 10) / s + n.frame.y / s, parseInt(h.getAttribute("width"), 10) / s, parseInt(h.getAttribute("height"), 10) / s);
                                    i.chars[d] = {
                                        xOffset: parseInt(h.getAttribute("xoffset"), 10) / s,
                                        yOffset: parseInt(h.getAttribute("yoffset"), 10) / s,
                                        xAdvance: parseInt(h.getAttribute("xadvance"), 10) / s,
                                        kerning: {},
                                        texture: new l.Texture(n.baseTexture, m)
                                    }
                                }
                                for (var _ = e.getElementsByTagName("kerning"), g = 0; g < _.length; g++) {
                                    var y = _[g],
                                        v = parseInt(y.getAttribute("first"), 10) / s,
                                        b = parseInt(y.getAttribute("second"), 10) / s,
                                        x = parseInt(y.getAttribute("amount"), 10) / s;
                                    i.chars[b] && (i.chars[b].kerning[v] = x)
                                }
                                return t.fonts[i.font] = i, i
                            }, s(t, [{
                                key: "tint",
                                get: function() {
                                    return this._font.tint
                                },
                                set: function(e) {
                                    this._font.tint = "number" == typeof e && e >= 0 ? e : 16777215, this.dirty = !0
                                }
                            }, {
                                key: "align",
                                get: function() {
                                    return this._font.align
                                },
                                set: function(e) {
                                    this._font.align = e || "left", this.dirty = !0
                                }
                            }, {
                                key: "anchor",
                                get: function() {
                                    return this._anchor
                                },
                                set: function(e) {
                                    "number" == typeof e ? this._anchor.set(e) : this._anchor.copy(e)
                                }
                            }, {
                                key: "font",
                                get: function() {
                                    return this._font
                                },
                                set: function(e) {
                                    e && ("string" == typeof e ? (e = e.split(" "), this._font.name = 1 === e.length ? e[0] : e.slice(1).join(" "), this._font.size = e.length >= 2 ? parseInt(e[0], 10) : t.fonts[this._font.name].size) : (this._font.name = e.name, this._font.size = "number" == typeof e.size ? e.size : parseInt(e.size, 10)), this.dirty = !0)
                                }
                            }, {
                                key: "text",
                                get: function() {
                                    return this._text
                                },
                                set: function(e) {
                                    e = e.toString() || " ", this._text !== e && (this._text = e, this.dirty = !0)
                                }
                            }, {
                                key: "maxWidth",
                                get: function() {
                                    return this._maxWidth
                                },
                                set: function(e) {
                                    this._maxWidth !== e && (this._maxWidth = e, this.dirty = !0)
                                }
                            }, {
                                key: "maxLineHeight",
                                get: function() {
                                    return this.validate(), this._maxLineHeight
                                }
                            }, {
                                key: "textWidth",
                                get: function() {
                                    return this.validate(), this._textWidth
                                }
                            }, {
                                key: "textHeight",
                                get: function() {
                                    return this.validate(), this._textHeight
                                }
                            }]), t
                        }(l.Container);
                    n.default = m, m.fonts = {}
                }, {
                    "../core": 65,
                    "../core/math/ObservablePoint": 68,
                    "../core/settings": 101,
                    "../core/utils": 125
                }],
                137: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = e("../core/sprites/canvas/CanvasTinter"),
                        c = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(l),
                        h = new u.Point,
                        p = function(e) {
                            function t(n) {
                                var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 100,
                                    a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 100;
                                i(this, t);
                                var s = r(this, e.call(this, n));
                                return s.tileTransform = new u.TransformStatic, s._width = o, s._height = a, s._canvasPattern = null, s.uvTransform = n.transform || new u.TextureMatrix(n), s.pluginName = "tilingSprite", s.uvRespectAnchor = !1, s
                            }
                            return o(t, e), t.prototype._onTextureUpdate = function() {
                                this.uvTransform && (this.uvTransform.texture = this._texture), this.cachedTint = 16777215
                            }, t.prototype._renderWebGL = function(e) {
                                var t = this._texture;
                                t && t.valid && (this.tileTransform.updateLocalTransform(), this.uvTransform.update(), e.setObjectRenderer(e.plugins[this.pluginName]), e.plugins[this.pluginName].render(this))
                            }, t.prototype._renderCanvas = function(e) {
                                var t = this._texture;
                                if (t.baseTexture.hasLoaded) {
                                    var n = e.context,
                                        i = this.worldTransform,
                                        r = e.resolution,
                                        o = t.baseTexture,
                                        a = o.resolution,
                                        s = this.tilePosition.x / this.tileScale.x % t._frame.width * a,
                                        l = this.tilePosition.y / this.tileScale.y % t._frame.height * a;
                                    if (this._textureID !== this._texture._updateID || this.cachedTint !== this.tint) {
                                        this._textureID = this._texture._updateID;
                                        var h = new u.CanvasRenderTarget(t._frame.width, t._frame.height, a);
                                        16777215 !== this.tint ? (this.tintedTexture = c.default.getTintedTexture(this, this.tint), h.context.drawImage(this.tintedTexture, 0, 0)) : h.context.drawImage(o.source, -t._frame.x * a, -t._frame.y * a), this.cachedTint = this.tint, this._canvasPattern = h.context.createPattern(h.canvas, "repeat")
                                    }
                                    n.globalAlpha = this.worldAlpha, n.setTransform(i.a * r, i.b * r, i.c * r, i.d * r, i.tx * r, i.ty * r), e.setBlendMode(this.blendMode), n.fillStyle = this._canvasPattern, n.scale(this.tileScale.x / a, this.tileScale.y / a);
                                    var p = this.anchor.x * -this._width,
                                        d = this.anchor.y * -this._height;
                                    this.uvRespectAnchor ? (n.translate(s, l), n.fillRect(-s + p, -l + d, this._width / this.tileScale.x * a, this._height / this.tileScale.y * a)) : (n.translate(s + p, l + d), n.fillRect(-s, -l, this._width / this.tileScale.x * a, this._height / this.tileScale.y * a))
                                }
                            }, t.prototype._calculateBounds = function() {
                                var e = this._width * -this._anchor._x,
                                    t = this._height * -this._anchor._y,
                                    n = this._width * (1 - this._anchor._x),
                                    i = this._height * (1 - this._anchor._y);
                                this._bounds.addFrame(this.transform, e, t, n, i)
                            }, t.prototype.getLocalBounds = function(t) {
                                return 0 === this.children.length ? (this._bounds.minX = this._width * -this._anchor._x, this._bounds.minY = this._height * -this._anchor._y, this._bounds.maxX = this._width * (1 - this._anchor._x), this._bounds.maxY = this._height * (1 - this._anchor._x), t || (this._localBoundsRect || (this._localBoundsRect = new u.Rectangle), t = this._localBoundsRect), this._bounds.getRectangle(t)) : e.prototype.getLocalBounds.call(this, t)
                            }, t.prototype.containsPoint = function(e) {
                                this.worldTransform.applyInverse(e, h);
                                var t = this._width,
                                    n = this._height,
                                    i = -t * this.anchor._x;
                                if (h.x >= i && h.x < i + t) {
                                    var r = -n * this.anchor._y;
                                    if (h.y >= r && h.y < r + n) return !0
                                }
                                return !1
                            }, t.prototype.destroy = function(t) {
                                e.prototype.destroy.call(this, t), this.tileTransform = null, this.uvTransform = null
                            }, t.from = function(e, n, i) {
                                return new t(u.Texture.from(e), n, i)
                            }, t.fromFrame = function(e, n, i) {
                                var r = u.utils.TextureCache[e];
                                if (!r) throw new Error('The frameId "' + e + '" does not exist in the texture cache ' + this);
                                return new t(r, n, i)
                            }, t.fromImage = function(e, n, i, r, o) {
                                return new t(u.Texture.fromImage(e, r, o), n, i)
                            }, a(t, [{
                                key: "clampMargin",
                                get: function() {
                                    return this.uvTransform.clampMargin
                                },
                                set: function(e) {
                                    this.uvTransform.clampMargin = e, this.uvTransform.update(!0)
                                }
                            }, {
                                key: "tileScale",
                                get: function() {
                                    return this.tileTransform.scale
                                },
                                set: function(e) {
                                    this.tileTransform.scale.copy(e)
                                }
                            }, {
                                key: "tilePosition",
                                get: function() {
                                    return this.tileTransform.position
                                },
                                set: function(e) {
                                    this.tileTransform.position.copy(e)
                                }
                            }, {
                                key: "width",
                                get: function() {
                                    return this._width
                                },
                                set: function(e) {
                                    this._width = e
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this._height
                                },
                                set: function(e) {
                                    this._height = e
                                }
                            }]), t
                        }(u.Sprite);
                    n.default = p
                }, {
                    "../core": 65,
                    "../core/sprites/canvas/CanvasTinter": 104
                }],
                138: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    var o = e("../core"),
                        a = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(o),
                        s = e("../core/textures/Texture"),
                        u = i(s),
                        l = e("../core/textures/BaseTexture"),
                        c = i(l),
                        h = e("../core/utils"),
                        p = a.DisplayObject,
                        d = new a.Matrix;
                    p.prototype._cacheAsBitmap = !1, p.prototype._cacheData = !1;
                    var f = function e() {
                        r(this, e), this.textureCacheId = null, this.originalRenderWebGL = null, this.originalRenderCanvas = null, this.originalCalculateBounds = null, this.originalGetLocalBounds = null, this.originalUpdateTransform = null, this.originalHitTest = null, this.originalDestroy = null, this.originalMask = null, this.originalFilterArea = null, this.sprite = null
                    };
                    Object.defineProperties(p.prototype, {
                        cacheAsBitmap: {
                            get: function() {
                                return this._cacheAsBitmap
                            },
                            set: function(e) {
                                if (this._cacheAsBitmap !== e) {
                                    this._cacheAsBitmap = e;
                                    var t = void 0;
                                    e ? (this._cacheData || (this._cacheData = new f), t = this._cacheData, t.originalRenderWebGL = this.renderWebGL, t.originalRenderCanvas = this.renderCanvas, t.originalUpdateTransform = this.updateTransform, t.originalCalculateBounds = this._calculateBounds, t.originalGetLocalBounds = this.getLocalBounds, t.originalDestroy = this.destroy, t.originalContainsPoint = this.containsPoint, t.originalMask = this._mask, t.originalFilterArea = this.filterArea, this.renderWebGL = this._renderCachedWebGL, this.renderCanvas = this._renderCachedCanvas, this.destroy = this._cacheAsBitmapDestroy) : (t = this._cacheData, t.sprite && this._destroyCachedDisplayObject(), this.renderWebGL = t.originalRenderWebGL, this.renderCanvas = t.originalRenderCanvas, this._calculateBounds = t.originalCalculateBounds, this.getLocalBounds = t.originalGetLocalBounds, this.destroy = t.originalDestroy, this.updateTransform = t.originalUpdateTransform, this.containsPoint = t.originalContainsPoint, this._mask = t.originalMask, this.filterArea = t.originalFilterArea)
                                }
                            }
                        }
                    }), p.prototype._renderCachedWebGL = function(e) {
                        !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObject(e), this._cacheData.sprite._transformID = -1, this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._renderWebGL(e))
                    }, p.prototype._initCachedDisplayObject = function(e) {
                        if (!this._cacheData || !this._cacheData.sprite) {
                            var t = this.alpha;
                            this.alpha = 1, e.currentRenderer.flush();
                            var n = this.getLocalBounds().clone();
                            if (this._filters) {
                                var i = this._filters[0].padding;
                                n.pad(i)
                            }
                            var r = e._activeRenderTarget,
                                o = e.filterManager.filterStack,
                                s = a.RenderTexture.create(0 | n.width, 0 | n.height),
                                l = "cacheAsBitmap_" + (0, h.uid)();
                            this._cacheData.textureCacheId = l, c.default.addToCache(s.baseTexture, l), u.default.addToCache(s, l);
                            var p = d;
                            p.tx = -n.x, p.ty = -n.y, this.transform.worldTransform.identity(), this.renderWebGL = this._cacheData.originalRenderWebGL, e.render(this, s, !0, p, !0), e.bindRenderTarget(r), e.filterManager.filterStack = o, this.renderWebGL = this._renderCachedWebGL, this.updateTransform = this.displayObjectUpdateTransform, this._mask = null, this.filterArea = null;
                            var f = new a.Sprite(s);
                            f.transform.worldTransform = this.transform.worldTransform, f.anchor.x = -n.x / n.width, f.anchor.y = -n.y / n.height, f.alpha = t, f._bounds = this._bounds, this._calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._cacheData.sprite = f, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = e._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = f.containsPoint.bind(f)
                        }
                    }, p.prototype._renderCachedCanvas = function(e) {
                        !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObjectCanvas(e), this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite.renderCanvas(e))
                    }, p.prototype._initCachedDisplayObjectCanvas = function(e) {
                        if (!this._cacheData || !this._cacheData.sprite) {
                            var t = this.getLocalBounds(),
                                n = this.alpha;
                            this.alpha = 1;
                            var i = e.context,
                                r = a.RenderTexture.create(0 | t.width, 0 | t.height),
                                o = "cacheAsBitmap_" + (0, h.uid)();
                            this._cacheData.textureCacheId = o, c.default.addToCache(r.baseTexture, o), u.default.addToCache(r, o);
                            var s = d;
                            this.transform.localTransform.copy(s), s.invert(), s.tx -= t.x, s.ty -= t.y, this.renderCanvas = this._cacheData.originalRenderCanvas, e.render(this, r, !0, s, !1), e.context = i, this.renderCanvas = this._renderCachedCanvas, this._calculateBounds = this._calculateCachedBounds, this._mask = null, this.filterArea = null;
                            var l = new a.Sprite(r);
                            l.transform.worldTransform = this.transform.worldTransform, l.anchor.x = -t.x / t.width, l.anchor.y = -t.y / t.height, l._bounds = this._bounds, l.alpha = n, this.parent ? this.updateTransform() : (this.parent = e._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.updateTransform = this.displayObjectUpdateTransform, this._cacheData.sprite = l, this.containsPoint = l.containsPoint.bind(l)
                        }
                    }, p.prototype._calculateCachedBounds = function() {
                        this._cacheData.sprite._calculateBounds()
                    }, p.prototype._getCachedLocalBounds = function() {
                        return this._cacheData.sprite.getLocalBounds()
                    }, p.prototype._destroyCachedDisplayObject = function() {
                        this._cacheData.sprite._texture.destroy(!0), this._cacheData.sprite = null, c.default.removeFromCache(this._cacheData.textureCacheId), u.default.removeFromCache(this._cacheData.textureCacheId), this._cacheData.textureCacheId = null
                    }, p.prototype._cacheAsBitmapDestroy = function(e) {
                        this.cacheAsBitmap = !1, this.destroy(e)
                    }
                }, {
                    "../core": 65,
                    "../core/textures/BaseTexture": 112,
                    "../core/textures/Texture": 115,
                    "../core/utils": 125
                }],
                139: [function(e, t, n) {
                    "use strict";
                    var i = e("../core"),
                        r = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(i);
                    r.DisplayObject.prototype.name = null, r.Container.prototype.getChildByName = function(e) {
                        for (var t = 0; t < this.children.length; t++)
                            if (this.children[t].name === e) return this.children[t];
                        return null
                    }
                }, {
                    "../core": 65
                }],
                140: [function(e, t, n) {
                    "use strict";
                    var i = e("../core"),
                        r = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(i);
                    r.DisplayObject.prototype.getGlobalPosition = function() {
                        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new r.Point,
                            t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
                        return this.parent ? this.parent.toGlobal(this.position, e, t) : (e.x = this.position.x, e.y = this.position.y), e
                    }
                }, {
                    "../core": 65
                }],
                141: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0, n.BitmapText = n.TilingSpriteRenderer = n.TilingSprite = n.AnimatedSprite = void 0;
                    var r = e("./AnimatedSprite");
                    Object.defineProperty(n, "AnimatedSprite", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./TilingSprite");
                    Object.defineProperty(n, "TilingSprite", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    });
                    var a = e("./webgl/TilingSpriteRenderer");
                    Object.defineProperty(n, "TilingSpriteRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(a).default
                        }
                    });
                    var s = e("./BitmapText");
                    Object.defineProperty(n, "BitmapText", {
                        enumerable: !0,
                        get: function() {
                            return i(s).default
                        }
                    }), e("./cacheAsBitmap"), e("./getChildByName"), e("./getGlobalPosition")
                }, {
                    "./AnimatedSprite": 135,
                    "./BitmapText": 136,
                    "./TilingSprite": 137,
                    "./cacheAsBitmap": 138,
                    "./getChildByName": 139,
                    "./getGlobalPosition": 140,
                    "./webgl/TilingSpriteRenderer": 142
                }],
                142: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("../../core"),
                        s = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(a),
                        u = e("../../core/const"),
                        l = (e("path"), new s.Matrix),
                        c = function(e) {
                            function t(n) {
                                i(this, t);
                                var o = r(this, e.call(this, n));
                                return o.shader = null, o.simpleShader = null, o.quad = null, o
                            }
                            return o(t, e), t.prototype.onContextChange = function() {
                                var e = this.renderer.gl;
                                this.shader = new s.Shader(e, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n    vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\n    coord = (uMapCoord * vec3(coord, 1.0)).xy;\n    coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n    vec4 sample = texture2D(uSampler, coord);\n    gl_FragColor = sample * uColor;\n}\n"), this.simpleShader = new s.Shader(e, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n    vec4 sample = texture2D(uSampler, vTextureCoord);\n    gl_FragColor = sample * uColor;\n}\n"), this.renderer.bindVao(null), this.quad = new s.Quad(e, this.renderer.state.attribState), this.quad.initVao(this.shader)
                            }, t.prototype.render = function(e) {
                                var t = this.renderer,
                                    n = this.quad;
                                t.bindVao(n.vao);
                                var i = n.vertices;
                                i[0] = i[6] = e._width * -e.anchor.x, i[1] = i[3] = e._height * -e.anchor.y, i[2] = i[4] = e._width * (1 - e.anchor.x), i[5] = i[7] = e._height * (1 - e.anchor.y), e.uvRespectAnchor && (i = n.uvs, i[0] = i[6] = -e.anchor.x, i[1] = i[3] = -e.anchor.y, i[2] = i[4] = 1 - e.anchor.x, i[5] = i[7] = 1 - e.anchor.y), n.upload();
                                var r = e._texture,
                                    o = r.baseTexture,
                                    a = e.tileTransform.localTransform,
                                    c = e.uvTransform,
                                    h = o.isPowerOfTwo && r.frame.width === o.width && r.frame.height === o.height;
                                h && (o._glTextures[t.CONTEXT_UID] ? h = o.wrapMode !== u.WRAP_MODES.CLAMP : o.wrapMode === u.WRAP_MODES.CLAMP && (o.wrapMode = u.WRAP_MODES.REPEAT));
                                var p = h ? this.simpleShader : this.shader;
                                t.bindShader(p);
                                var d = r.width,
                                    f = r.height,
                                    m = e._width,
                                    _ = e._height;
                                l.set(a.a * d / m, a.b * d / _, a.c * f / m, a.d * f / _, a.tx / m, a.ty / _), l.invert(), h ? l.prepend(c.mapCoord) : (p.uniforms.uMapCoord = c.mapCoord.toArray(!0), p.uniforms.uClampFrame = c.uClampFrame, p.uniforms.uClampOffset = c.uClampOffset), p.uniforms.uTransform = l.toArray(!0), p.uniforms.uColor = s.utils.premultiplyTintToRgba(e.tint, e.worldAlpha, p.uniforms.uColor, o.premultipliedAlpha), p.uniforms.translationMatrix = e.transform.worldTransform.toArray(!0), p.uniforms.uSampler = t.bindTexture(r), t.setBlendMode(s.utils.correctBlendMode(e.blendMode, o.premultipliedAlpha)), n.vao.draw(this.renderer.gl.TRIANGLES, 6, 0)
                            }, t
                        }(s.ObjectRenderer);
                    n.default = c, s.WebGLRenderer.registerPlugin("tilingSprite", c)
                }, {
                    "../../core": 65,
                    "../../core/const": 46,
                    path: 23
                }],
                143: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = (e("path"), function(e) {
                            function t() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1;
                                i(this, t);
                                var o = r(this, e.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float uAlpha;\n\nvoid main(void)\n{\n   gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;\n}\n"));
                                return o.alpha = n, o.glShaderKey = "alpha", o
                            }
                            return o(t, e), a(t, [{
                                key: "alpha",
                                get: function() {
                                    return this.uniforms.uAlpha
                                },
                                set: function(e) {
                                    this.uniforms.uAlpha = e
                                }
                            }]), t
                        }(u.Filter));
                    n.default = l
                }, {
                    "../../core": 65,
                    path: 23
                }],
                144: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("../../core"),
                        l = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(u),
                        c = e("./BlurXFilter"),
                        h = i(c),
                        p = e("./BlurYFilter"),
                        d = i(p),
                        f = function(e) {
                            function t(n, i, a, s) {
                                r(this, t);
                                var u = o(this, e.call(this));
                                return u.blurXFilter = new h.default(n, i, a, s), u.blurYFilter = new d.default(n, i, a, s), u.padding = 0, u.resolution = a || l.settings.RESOLUTION, u.quality = i || 4, u.blur = n || 8, u
                            }
                            return a(t, e), t.prototype.apply = function(e, t, n) {
                                var i = e.getRenderTarget(!0);
                                this.blurXFilter.apply(e, t, i, !0), this.blurYFilter.apply(e, i, n, !1), e.returnRenderTarget(i)
                            }, s(t, [{
                                key: "blur",
                                get: function() {
                                    return this.blurXFilter.blur
                                },
                                set: function(e) {
                                    this.blurXFilter.blur = this.blurYFilter.blur = e, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
                                }
                            }, {
                                key: "quality",
                                get: function() {
                                    return this.blurXFilter.quality
                                },
                                set: function(e) {
                                    this.blurXFilter.quality = this.blurYFilter.quality = e
                                }
                            }, {
                                key: "blurX",
                                get: function() {
                                    return this.blurXFilter.blur
                                },
                                set: function(e) {
                                    this.blurXFilter.blur = e, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
                                }
                            }, {
                                key: "blurY",
                                get: function() {
                                    return this.blurYFilter.blur
                                },
                                set: function(e) {
                                    this.blurYFilter.blur = e, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
                                }
                            }, {
                                key: "blendMode",
                                get: function() {
                                    return this.blurYFilter._blendMode
                                },
                                set: function(e) {
                                    this.blurYFilter._blendMode = e
                                }
                            }]), t
                        }(l.Filter);
                    n.default = f
                }, {
                    "../../core": 65,
                    "./BlurXFilter": 145,
                    "./BlurYFilter": 146
                }],
                145: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("../../core"),
                        l = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(u),
                        c = e("./generateBlurVertSource"),
                        h = i(c),
                        p = e("./generateBlurFragSource"),
                        d = i(p),
                        f = e("./getMaxBlurKernelSize"),
                        m = i(f),
                        _ = function(e) {
                            function t(n, i, a, s) {
                                r(this, t), s = s || 5;
                                var u = (0, h.default)(s, !0),
                                    c = (0, d.default)(s),
                                    p = o(this, e.call(this, u, c));
                                return p.resolution = a || l.settings.RESOLUTION, p._quality = 0, p.quality = i || 4, p.strength = n || 8, p.firstRun = !0, p
                            }
                            return a(t, e), t.prototype.apply = function(e, t, n, i) {
                                if (this.firstRun) {
                                    var r = e.renderer.gl,
                                        o = (0, m.default)(r);
                                    this.vertexSrc = (0, h.default)(o, !0), this.fragmentSrc = (0, d.default)(o), this.firstRun = !1
                                }
                                if (this.uniforms.strength = 1 / n.size.width * (n.size.width / t.size.width), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) e.applyFilter(this, t, n, i);
                                else {
                                    for (var a = e.getRenderTarget(!0), s = t, u = a, l = 0; l < this.passes - 1; l++) {
                                        e.applyFilter(this, s, u, !0);
                                        var c = u;
                                        u = s, s = c
                                    }
                                    e.applyFilter(this, s, n, i), e.returnRenderTarget(a)
                                }
                            }, s(t, [{
                                key: "blur",
                                get: function() {
                                    return this.strength
                                },
                                set: function(e) {
                                    this.padding = 2 * Math.abs(e), this.strength = e
                                }
                            }, {
                                key: "quality",
                                get: function() {
                                    return this._quality
                                },
                                set: function(e) {
                                    this._quality = e, this.passes = e
                                }
                            }]), t
                        }(l.Filter);
                    n.default = _
                }, {
                    "../../core": 65,
                    "./generateBlurFragSource": 147,
                    "./generateBlurVertSource": 148,
                    "./getMaxBlurKernelSize": 149
                }],
                146: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        u = e("../../core"),
                        l = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(u),
                        c = e("./generateBlurVertSource"),
                        h = i(c),
                        p = e("./generateBlurFragSource"),
                        d = i(p),
                        f = e("./getMaxBlurKernelSize"),
                        m = i(f),
                        _ = function(e) {
                            function t(n, i, a, s) {
                                r(this, t), s = s || 5;
                                var u = (0, h.default)(s, !1),
                                    c = (0, d.default)(s),
                                    p = o(this, e.call(this, u, c));
                                return p.resolution = a || l.settings.RESOLUTION, p._quality = 0, p.quality = i || 4, p.strength = n || 8, p.firstRun = !0, p
                            }
                            return a(t, e), t.prototype.apply = function(e, t, n, i) {
                                if (this.firstRun) {
                                    var r = e.renderer.gl,
                                        o = (0, m.default)(r);
                                    this.vertexSrc = (0, h.default)(o, !1), this.fragmentSrc = (0, d.default)(o), this.firstRun = !1
                                }
                                if (this.uniforms.strength = 1 / n.size.height * (n.size.height / t.size.height), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) e.applyFilter(this, t, n, i);
                                else {
                                    for (var a = e.getRenderTarget(!0), s = t, u = a, l = 0; l < this.passes - 1; l++) {
                                        e.applyFilter(this, s, u, !0);
                                        var c = u;
                                        u = s, s = c
                                    }
                                    e.applyFilter(this, s, n, i), e.returnRenderTarget(a)
                                }
                            }, s(t, [{
                                key: "blur",
                                get: function() {
                                    return this.strength
                                },
                                set: function(e) {
                                    this.padding = 2 * Math.abs(e), this.strength = e
                                }
                            }, {
                                key: "quality",
                                get: function() {
                                    return this._quality
                                },
                                set: function(e) {
                                    this._quality = e, this.passes = e
                                }
                            }]), t
                        }(l.Filter);
                    n.default = _
                }, {
                    "../../core": 65,
                    "./generateBlurFragSource": 147,
                    "./generateBlurVertSource": 148,
                    "./getMaxBlurKernelSize": 149
                }],
                147: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        for (var t = r[e], n = t.length, i = o, a = "", s = "gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;", u = void 0, l = 0; l < e; l++) {
                            var c = s.replace("%index%", l);
                            u = l, l >= n && (u = e - l - 1), c = c.replace("%value%", t[u]), a += c, a += "\n"
                        }
                        return i = i.replace("%blur%", a), i = i.replace("%size%", e)
                    }
                    n.__esModule = !0, n.default = i;
                    var r = {
                            5: [.153388, .221461, .250301],
                            7: [.071303, .131514, .189879, .214607],
                            9: [.028532, .067234, .124009, .179044, .20236],
                            11: [.0093, .028002, .065984, .121703, .175713, .198596],
                            13: [.002406, .009255, .027867, .065666, .121117, .174868, .197641],
                            15: [489e-6, .002403, .009246, .02784, .065602, .120999, .174697, .197448]
                        },
                        o = ["varying vec2 vBlurTexCoords[%size%];", "uniform sampler2D uSampler;", "void main(void)", "{", "    gl_FragColor = vec4(0.0);", "    %blur%", "}"].join("\n")
                }, {}],
                148: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        var n = Math.ceil(e / 2),
                            i = r,
                            o = "",
                            a = void 0;
                        a = t ? "vBlurTexCoords[%index%] = aTextureCoord + vec2(%sampleIndex% * strength, 0.0);" : "vBlurTexCoords[%index%] = aTextureCoord + vec2(0.0, %sampleIndex% * strength);";
                        for (var s = 0; s < e; s++) {
                            var u = a.replace("%index%", s);
                            u = u.replace("%sampleIndex%", s - (n - 1) + ".0"), o += u, o += "\n"
                        }
                        return i = i.replace("%blur%", o), i = i.replace("%size%", e)
                    }
                    n.__esModule = !0, n.default = i;
                    var r = ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "uniform float strength;", "uniform mat3 projectionMatrix;", "varying vec2 vBlurTexCoords[%size%];", "void main(void)", "{", "gl_Position = vec4((projectionMatrix * vec3((aVertexPosition), 1.0)).xy, 0.0, 1.0);", "%blur%", "}"].join("\n")
                }, {}],
                149: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        for (var t = e.getParameter(e.MAX_VARYING_VECTORS), n = 15; n > t;) n -= 2;
                        return n
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                150: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = (e("path"), function(e) {
                            function t() {
                                i(this, t);
                                var n = r(this, e.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n    vec4 c = texture2D(uSampler, vTextureCoord);\n\n    if (uAlpha == 0.0) {\n        gl_FragColor = c;\n        return;\n    }\n\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\n    if (c.a > 0.0) {\n      c.rgb /= c.a;\n    }\n\n    vec4 result;\n\n    result.r = (m[0] * c.r);\n        result.r += (m[1] * c.g);\n        result.r += (m[2] * c.b);\n        result.r += (m[3] * c.a);\n        result.r += m[4];\n\n    result.g = (m[5] * c.r);\n        result.g += (m[6] * c.g);\n        result.g += (m[7] * c.b);\n        result.g += (m[8] * c.a);\n        result.g += m[9];\n\n    result.b = (m[10] * c.r);\n       result.b += (m[11] * c.g);\n       result.b += (m[12] * c.b);\n       result.b += (m[13] * c.a);\n       result.b += m[14];\n\n    result.a = (m[15] * c.r);\n       result.a += (m[16] * c.g);\n       result.a += (m[17] * c.b);\n       result.a += (m[18] * c.a);\n       result.a += m[19];\n\n    vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n    // Premultiply alpha again.\n    rgb *= result.a;\n\n    gl_FragColor = vec4(rgb, result.a);\n}\n"));
                                return n.uniforms.m = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], n.alpha = 1, n
                            }
                            return o(t, e), t.prototype._loadMatrix = function(e) {
                                var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
                                    n = e;
                                t && (this._multiply(n, this.uniforms.m, e), n = this._colorMatrix(n)), this.uniforms.m = n
                            }, t.prototype._multiply = function(e, t, n) {
                                return e[0] = t[0] * n[0] + t[1] * n[5] + t[2] * n[10] + t[3] * n[15], e[1] = t[0] * n[1] + t[1] * n[6] + t[2] * n[11] + t[3] * n[16], e[2] = t[0] * n[2] + t[1] * n[7] + t[2] * n[12] + t[3] * n[17], e[3] = t[0] * n[3] + t[1] * n[8] + t[2] * n[13] + t[3] * n[18], e[4] = t[0] * n[4] + t[1] * n[9] + t[2] * n[14] + t[3] * n[19] + t[4], e[5] = t[5] * n[0] + t[6] * n[5] + t[7] * n[10] + t[8] * n[15], e[6] = t[5] * n[1] + t[6] * n[6] + t[7] * n[11] + t[8] * n[16], e[7] = t[5] * n[2] + t[6] * n[7] + t[7] * n[12] + t[8] * n[17], e[8] = t[5] * n[3] + t[6] * n[8] + t[7] * n[13] + t[8] * n[18], e[9] = t[5] * n[4] + t[6] * n[9] + t[7] * n[14] + t[8] * n[19] + t[9], e[10] = t[10] * n[0] + t[11] * n[5] + t[12] * n[10] + t[13] * n[15], e[11] = t[10] * n[1] + t[11] * n[6] + t[12] * n[11] + t[13] * n[16], e[12] = t[10] * n[2] + t[11] * n[7] + t[12] * n[12] + t[13] * n[17], e[13] = t[10] * n[3] + t[11] * n[8] + t[12] * n[13] + t[13] * n[18], e[14] = t[10] * n[4] + t[11] * n[9] + t[12] * n[14] + t[13] * n[19] + t[14], e[15] = t[15] * n[0] + t[16] * n[5] + t[17] * n[10] + t[18] * n[15], e[16] = t[15] * n[1] + t[16] * n[6] + t[17] * n[11] + t[18] * n[16], e[17] = t[15] * n[2] + t[16] * n[7] + t[17] * n[12] + t[18] * n[17], e[18] = t[15] * n[3] + t[16] * n[8] + t[17] * n[13] + t[18] * n[18], e[19] = t[15] * n[4] + t[16] * n[9] + t[17] * n[14] + t[18] * n[19] + t[19], e
                            }, t.prototype._colorMatrix = function(e) {
                                var t = new Float32Array(e);
                                return t[4] /= 255, t[9] /= 255, t[14] /= 255, t[19] /= 255, t
                            }, t.prototype.brightness = function(e, t) {
                                var n = [e, 0, 0, 0, 0, 0, e, 0, 0, 0, 0, 0, e, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, t)
                            }, t.prototype.greyscale = function(e, t) {
                                var n = [e, e, e, 0, 0, e, e, e, 0, 0, e, e, e, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, t)
                            }, t.prototype.blackAndWhite = function(e) {
                                var t = [.3, .6, .1, 0, 0, .3, .6, .1, 0, 0, .3, .6, .1, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.hue = function(e, t) {
                                e = (e || 0) / 180 * Math.PI;
                                var n = Math.cos(e),
                                    i = Math.sin(e),
                                    r = Math.sqrt,
                                    o = 1 / 3,
                                    a = r(o),
                                    s = n + (1 - n) * o,
                                    u = o * (1 - n) - a * i,
                                    l = o * (1 - n) + a * i,
                                    c = o * (1 - n) + a * i,
                                    h = n + o * (1 - n),
                                    p = o * (1 - n) - a * i,
                                    d = o * (1 - n) - a * i,
                                    f = o * (1 - n) + a * i,
                                    m = n + o * (1 - n),
                                    _ = [s, u, l, 0, 0, c, h, p, 0, 0, d, f, m, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(_, t)
                            }, t.prototype.contrast = function(e, t) {
                                var n = (e || 0) + 1,
                                    i = -.5 * (n - 1),
                                    r = [n, 0, 0, 0, i, 0, n, 0, 0, i, 0, 0, n, 0, i, 0, 0, 0, 1, 0];
                                this._loadMatrix(r, t)
                            }, t.prototype.saturate = function() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    t = arguments[1],
                                    n = 2 * e / 3 + 1,
                                    i = -.5 * (n - 1),
                                    r = [n, i, i, 0, 0, i, n, i, 0, 0, i, i, n, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(r, t)
                            }, t.prototype.desaturate = function() {
                                this.saturate(-1)
                            }, t.prototype.negative = function(e) {
                                var t = [0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.sepia = function(e) {
                                var t = [.393, .7689999, .18899999, 0, 0, .349, .6859999, .16799999, 0, 0, .272, .5339999, .13099999, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.technicolor = function(e) {
                                var t = [1.9125277891456083, -.8545344976951645, -.09155508482755585, 0, 11.793603434377337, -.3087833385928097, 1.7658908555458428, -.10601743074722245, 0, -70.35205161461398, -.231103377548616, -.7501899197440212, 1.847597816108189, 0, 30.950940869491138, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.polaroid = function(e) {
                                var t = [1.438, -.062, -.062, 0, 0, -.122, 1.378, -.122, 0, 0, -.016, -.016, 1.483, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.toBGR = function(e) {
                                var t = [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.kodachrome = function(e) {
                                var t = [1.1285582396593525, -.3967382283601348, -.03992559172921793, 0, 63.72958762196502, -.16404339962244616, 1.0835251566291304, -.05498805115633132, 0, 24.732407896706203, -.16786010706155763, -.5603416277695248, 1.6014850761964943, 0, 35.62982807460946, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.browni = function(e) {
                                var t = [.5997023498159715, .34553243048391263, -.2708298674538042, 0, 47.43192855600873, -.037703249837783157, .8609577587992641, .15059552388459913, 0, -36.96841498319127, .24113635128153335, -.07441037908422492, .44972182064877153, 0, -7.562075277591283, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.vintage = function(e) {
                                var t = [.6279345635605994, .3202183420819367, -.03965408211312453, 0, 9.651285835294123, .02578397704808868, .6441188644374771, .03259127616149294, 0, 7.462829176470591, .0466055556782719, -.0851232987247891, .5241648018700465, 0, 5.159190588235296, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.colorTone = function(e, t, n, i, r) {
                                e = e || .2, t = t || .15, n = n || 16770432, i = i || 3375104;
                                var o = (n >> 16 & 255) / 255,
                                    a = (n >> 8 & 255) / 255,
                                    s = (255 & n) / 255,
                                    u = (i >> 16 & 255) / 255,
                                    l = (i >> 8 & 255) / 255,
                                    c = (255 & i) / 255,
                                    h = [.3, .59, .11, 0, 0, o, a, s, e, 0, u, l, c, t, 0, o - u, a - l, s - c, 0, 0];
                                this._loadMatrix(h, r)
                            }, t.prototype.night = function(e, t) {
                                e = e || .1;
                                var n = [-2 * e, -e, 0, 0, 0, -e, 0, e, 0, 0, 0, e, 2 * e, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, t)
                            }, t.prototype.predator = function(e, t) {
                                var n = [11.224130630493164 * e, -4.794486999511719 * e, -2.8746118545532227 * e, 0 * e, .40342438220977783 * e, -3.6330697536468506 * e, 9.193157196044922 * e, -2.951810836791992 * e, 0 * e, -1.316135048866272 * e, -3.2184197902679443 * e, -4.2375030517578125 * e, 7.476448059082031 * e, 0 * e, .8044459223747253 * e, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, t)
                            }, t.prototype.lsd = function(e) {
                                var t = [2, -.4, .5, 0, 0, -.5, 2, -.4, 0, 0, -.4, -.5, 3, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, e)
                            }, t.prototype.reset = function() {
                                var e = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, !1)
                            }, a(t, [{
                                key: "matrix",
                                get: function() {
                                    return this.uniforms.m
                                },
                                set: function(e) {
                                    this.uniforms.m = e
                                }
                            }, {
                                key: "alpha",
                                get: function() {
                                    return this.uniforms.uAlpha
                                },
                                set: function(e) {
                                    this.uniforms.uAlpha = e
                                }
                            }]), t
                        }(u.Filter));
                    n.default = l, l.prototype.grayscale = l.prototype.greyscale
                }, {
                    "../../core": 65,
                    path: 23
                }],
                151: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = (e("path"), function(e) {
                            function t(n, o) {
                                i(this, t);
                                var a = new u.Matrix;
                                n.renderable = !1;
                                var s = r(this, e.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 filterMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vFilterCoord;\n\nvoid main(void)\n{\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n   vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0)  ).xy;\n   vTextureCoord = aTextureCoord;\n}", "varying vec2 vFilterCoord;\nvarying vec2 vTextureCoord;\n\nuniform vec2 scale;\n\nuniform sampler2D uSampler;\nuniform sampler2D mapSampler;\n\nuniform vec4 filterClamp;\n\nvoid main(void)\n{\n   vec4 map =  texture2D(mapSampler, vFilterCoord);\n\n   map -= 0.5;\n   map.xy *= scale;\n\n   gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), filterClamp.xy, filterClamp.zw));\n}\n"));
                                return s.maskSprite = n, s.maskMatrix = a, s.uniforms.mapSampler = n._texture, s.uniforms.filterMatrix = a, s.uniforms.scale = {
                                    x: 1,
                                    y: 1
                                }, null !== o && void 0 !== o || (o = 20), s.scale = new u.Point(o, o), s
                            }
                            return o(t, e), t.prototype.apply = function(e, t, n) {
                                var i = 1 / n.destinationFrame.width * (n.size.width / t.size.width);
                                this.uniforms.filterMatrix = e.calculateSpriteMatrix(this.maskMatrix, this.maskSprite), this.uniforms.scale.x = this.scale.x * i, this.uniforms.scale.y = this.scale.y * i, e.applyFilter(this, t, n)
                            }, a(t, [{
                                key: "map",
                                get: function() {
                                    return this.uniforms.mapSampler
                                },
                                set: function(e) {
                                    this.uniforms.mapSampler = e
                                }
                            }]), t
                        }(u.Filter));
                    n.default = l
                }, {
                    "../../core": 65,
                    path: 23
                }],
                152: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("../../core"),
                        s = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(a),
                        u = (e("path"), function(e) {
                            function t() {
                                return i(this, t), r(this, e.call(this, "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nuniform vec4 filterArea;\n\nvarying vec2 vTextureCoord;\n\nvec2 mapCoord( vec2 coord )\n{\n    coord *= filterArea.xy;\n    coord += filterArea.zw;\n\n    return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n    coord -= filterArea.zw;\n    coord /= filterArea.xy;\n\n    return coord;\n}\n\nvoid texcoords(vec2 fragCoord, vec2 resolution,\n               out vec2 v_rgbNW, out vec2 v_rgbNE,\n               out vec2 v_rgbSW, out vec2 v_rgbSE,\n               out vec2 v_rgbM) {\n    vec2 inverseVP = 1.0 / resolution.xy;\n    v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\n    v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\n    v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\n    v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\n    v_rgbM = vec2(fragCoord * inverseVP);\n}\n\nvoid main(void) {\n\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n   vTextureCoord = aTextureCoord;\n\n   vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n   texcoords(fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}", 'varying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\n/**\n Basic FXAA implementation based on the code on geeks3d.com with the\n modification that the texture2DLod stuff was removed since it\'s\n unsupported by WebGL.\n \n --\n \n From:\n https://github.com/mitsuhiko/webgl-meincraft\n \n Copyright (c) 2011 by Armin Ronacher.\n \n Some rights reserved.\n \n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n \n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n \n * The names of the contributors may not be used to endorse or\n promote products derived from this software without specific\n prior written permission.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#ifndef FXAA_REDUCE_MIN\n#define FXAA_REDUCE_MIN   (1.0/ 128.0)\n#endif\n#ifndef FXAA_REDUCE_MUL\n#define FXAA_REDUCE_MUL   (1.0 / 8.0)\n#endif\n#ifndef FXAA_SPAN_MAX\n#define FXAA_SPAN_MAX     8.0\n#endif\n\n//optimized version for mobile, where dependent\n//texture reads can be a bottleneck\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 resolution,\n          vec2 v_rgbNW, vec2 v_rgbNE,\n          vec2 v_rgbSW, vec2 v_rgbSE,\n          vec2 v_rgbM) {\n    vec4 color;\n    mediump vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y);\n    vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\n    vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\n    vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\n    vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\n    vec4 texColor = texture2D(tex, v_rgbM);\n    vec3 rgbM  = texColor.xyz;\n    vec3 luma = vec3(0.299, 0.587, 0.114);\n    float lumaNW = dot(rgbNW, luma);\n    float lumaNE = dot(rgbNE, luma);\n    float lumaSW = dot(rgbSW, luma);\n    float lumaSE = dot(rgbSE, luma);\n    float lumaM  = dot(rgbM,  luma);\n    float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n    float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n    \n    mediump vec2 dir;\n    dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n    dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n    \n    float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\n                          (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n    \n    float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n    dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n              max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n                  dir * rcpDirMin)) * inverseVP;\n    \n    vec3 rgbA = 0.5 * (\n                       texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\n                       texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\n    vec3 rgbB = rgbA * 0.5 + 0.25 * (\n                                     texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\n                                     texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\n    \n    float lumaB = dot(rgbB, luma);\n    if ((lumaB < lumaMin) || (lumaB > lumaMax))\n        color = vec4(rgbA, texColor.a);\n    else\n        color = vec4(rgbB, texColor.a);\n    return color;\n}\n\nvoid main() {\n\n      vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n      vec4 color;\n\n    color = fxaa(uSampler, fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n      gl_FragColor = color;\n}\n'))
                            }
                            return o(t, e), t
                        }(s.Filter));
                    n.default = u
                }, {
                    "../../core": 65,
                    path: 23
                }],
                153: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./fxaa/FXAAFilter");
                    Object.defineProperty(n, "FXAAFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./noise/NoiseFilter");
                    Object.defineProperty(n, "NoiseFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    });
                    var a = e("./displacement/DisplacementFilter");
                    Object.defineProperty(n, "DisplacementFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(a).default
                        }
                    });
                    var s = e("./blur/BlurFilter");
                    Object.defineProperty(n, "BlurFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(s).default
                        }
                    });
                    var u = e("./blur/BlurXFilter");
                    Object.defineProperty(n, "BlurXFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(u).default
                        }
                    });
                    var l = e("./blur/BlurYFilter");
                    Object.defineProperty(n, "BlurYFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(l).default
                        }
                    });
                    var c = e("./colormatrix/ColorMatrixFilter");
                    Object.defineProperty(n, "ColorMatrixFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(c).default
                        }
                    });
                    var h = e("./alpha/AlphaFilter");
                    Object.defineProperty(n, "AlphaFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(h).default
                        }
                    })
                }, {
                    "./alpha/AlphaFilter": 143,
                    "./blur/BlurFilter": 144,
                    "./blur/BlurXFilter": 145,
                    "./blur/BlurYFilter": 146,
                    "./colormatrix/ColorMatrixFilter": 150,
                    "./displacement/DisplacementFilter": 151,
                    "./fxaa/FXAAFilter": 152,
                    "./noise/NoiseFilter": 154
                }],
                154: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = (e("path"), function(e) {
                            function t() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5,
                                    o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Math.random();
                                i(this, t);
                                var a = r(this, e.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "precision highp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n    return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n    vec4 color = texture2D(uSampler, vTextureCoord);\n    float randomValue = rand(gl_FragCoord.xy * uSeed);\n    float diff = (randomValue - 0.5) * uNoise;\n\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\n    if (color.a > 0.0) {\n        color.rgb /= color.a;\n    }\n\n    color.r += diff;\n    color.g += diff;\n    color.b += diff;\n\n    // Premultiply alpha again.\n    color.rgb *= color.a;\n\n    gl_FragColor = color;\n}\n"));
                                return a.noise = n, a.seed = o, a
                            }
                            return o(t, e), a(t, [{
                                key: "noise",
                                get: function() {
                                    return this.uniforms.uNoise
                                },
                                set: function(e) {
                                    this.uniforms.uNoise = e
                                }
                            }, {
                                key: "seed",
                                get: function() {
                                    return this.uniforms.uSeed
                                },
                                set: function(e) {
                                    this.uniforms.uSeed = e
                                }
                            }]), t
                        }(u.Filter));
                    n.default = l
                }, {
                    "../../core": 65,
                    path: 23
                }],
                155: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = e("../core"),
                        a = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(o),
                        s = function() {
                            function e() {
                                i(this, e), this.global = new a.Point, this.target = null, this.originalEvent = null, this.identifier = null, this.isPrimary = !1, this.button = 0, this.buttons = 0, this.width = 0, this.height = 0, this.tiltX = 0, this.tiltY = 0, this.pointerType = null, this.pressure = 0, this.rotationAngle = 0, this.twist = 0, this.tangentialPressure = 0
                            }
                            return e.prototype.getLocalPosition = function(e, t, n) {
                                return e.worldTransform.applyInverse(n || this.global, t)
                            }, e.prototype._copyEvent = function(e) {
                                e.isPrimary && (this.isPrimary = !0), this.button = e.button, this.buttons = e.buttons, this.width = e.width, this.height = e.height, this.tiltX = e.tiltX, this.tiltY = e.tiltY, this.pointerType = e.pointerType, this.pressure = e.pressure, this.rotationAngle = e.rotationAngle, this.twist = e.twist || 0, this.tangentialPressure = e.tangentialPressure || 0
                            }, e.prototype._reset = function() {
                                this.isPrimary = !1
                            }, r(e, [{
                                key: "pointerId",
                                get: function() {
                                    return this.identifier
                                }
                            }]), e
                        }();
                    n.default = s
                }, {
                    "../core": 65
                }],
                156: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e() {
                            i(this, e), this.stopped = !1, this.target = null, this.currentTarget = null, this.type = null, this.data = null
                        }
                        return e.prototype.stopPropagation = function() {
                            this.stopped = !0
                        }, e.prototype._reset = function() {
                            this.stopped = !1, this.currentTarget = null, this.target = null
                        }, e
                    }();
                    n.default = r
                }, {}],
                157: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                            return typeof e
                        } : function(e) {
                            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                        },
                        u = e("../core"),
                        l = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(u),
                        c = e("./InteractionData"),
                        h = i(c),
                        p = e("./InteractionEvent"),
                        d = i(p),
                        f = e("./InteractionTrackingData"),
                        m = i(f),
                        _ = e("eventemitter3"),
                        g = i(_),
                        y = e("./interactiveTarget"),
                        v = i(y);
                    l.utils.mixins.delayMixin(l.DisplayObject.prototype, v.default);
                    var b = "MOUSE",
                        x = {
                            target: null,
                            data: {
                                global: null
                            }
                        },
                        T = function(e) {
                            function t(n, i) {
                                r(this, t);
                                var a = o(this, e.call(this));
                                return i = i || {}, a.renderer = n, a.autoPreventDefault = void 0 === i.autoPreventDefault || i.autoPreventDefault, a.interactionFrequency = i.interactionFrequency || 10, a.mouse = new h.default, a.mouse.identifier = b, a.mouse.global.set(-999999), a.activeInteractionData = {}, a.activeInteractionData[b] = a.mouse, a.interactionDataPool = [], a.eventData = new d.default, a.interactionDOMElement = null, a.moveWhenInside = !1, a.eventsAdded = !1, a.mouseOverRenderer = !1, a.supportsTouchEvents = "ontouchstart" in window, a.supportsPointerEvents = !!window.PointerEvent, a.onPointerUp = a.onPointerUp.bind(a), a.processPointerUp = a.processPointerUp.bind(a), a.onPointerCancel = a.onPointerCancel.bind(a), a.processPointerCancel = a.processPointerCancel.bind(a), a.onPointerDown = a.onPointerDown.bind(a), a.processPointerDown = a.processPointerDown.bind(a), a.onPointerMove = a.onPointerMove.bind(a), a.processPointerMove = a.processPointerMove.bind(a), a.onPointerOut = a.onPointerOut.bind(a), a.processPointerOverOut = a.processPointerOverOut.bind(a), a.onPointerOver = a.onPointerOver.bind(a), a.cursorStyles = {
                                    default: "inherit",
                                    pointer: "pointer"
                                }, a.currentCursorMode = null, a.cursor = null, a._tempPoint = new l.Point, a.resolution = 1, a.setTargetElement(a.renderer.view, a.renderer.resolution), a
                            }
                            return a(t, e), t.prototype.hitTest = function(e, t) {
                                return x.target = null, x.data.global = e, t || (t = this.renderer._lastObjectRendered), this.processInteractive(x, t, null, !0), x.target
                            }, t.prototype.setTargetElement = function(e) {
                                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
                                this.removeEvents(), this.interactionDOMElement = e, this.resolution = t, this.addEvents()
                            }, t.prototype.addEvents = function() {
                                this.interactionDOMElement && (l.ticker.shared.add(this.update, this, l.UPDATE_PRIORITY.INTERACTION), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "none", this.interactionDOMElement.style["-ms-touch-action"] = "none") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = "none"), this.supportsPointerEvents ? (window.document.addEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("pointerover", this.onPointerOver, !0), window.addEventListener("pointercancel", this.onPointerCancel, !0), window.addEventListener("pointerup", this.onPointerUp, !0)) : (window.document.addEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("mouseover", this.onPointerOver, !0), window.addEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.addEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.addEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.addEventListener("touchmove", this.onPointerMove, !0)), this.eventsAdded = !0)
                            }, t.prototype.removeEvents = function() {
                                this.interactionDOMElement && (l.ticker.shared.remove(this.update, this), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "", this.interactionDOMElement.style["-ms-touch-action"] = "") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = ""), this.supportsPointerEvents ? (window.document.removeEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("pointerover", this.onPointerOver, !0), window.removeEventListener("pointercancel", this.onPointerCancel, !0), window.removeEventListener("pointerup", this.onPointerUp, !0)) : (window.document.removeEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("mouseover", this.onPointerOver, !0), window.removeEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.removeEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.removeEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.removeEventListener("touchmove", this.onPointerMove, !0)), this.interactionDOMElement = null, this.eventsAdded = !1)
                            }, t.prototype.update = function(e) {
                                if (this._deltaTime += e, !(this._deltaTime < this.interactionFrequency) && (this._deltaTime = 0, this.interactionDOMElement)) {
                                    if (this.didMove) return void(this.didMove = !1);
                                    this.cursor = null;
                                    for (var t in this.activeInteractionData)
                                        if (this.activeInteractionData.hasOwnProperty(t)) {
                                            var n = this.activeInteractionData[t];
                                            if (n.originalEvent && "touch" !== n.pointerType) {
                                                var i = this.configureInteractionEventForDOMEvent(this.eventData, n.originalEvent, n);
                                                this.processInteractive(i, this.renderer._lastObjectRendered, this.processPointerOverOut, !0)
                                            }
                                        }
                                    this.setCursorMode(this.cursor)
                                }
                            }, t.prototype.setCursorMode = function(e) {
                                if (e = e || "default", this.currentCursorMode !== e) {
                                    this.currentCursorMode = e;
                                    var t = this.cursorStyles[e];
                                    if (t) switch (void 0 === t ? "undefined" : s(t)) {
                                        case "string":
                                            this.interactionDOMElement.style.cursor = t;
                                            break;
                                        case "function":
                                            t(e);
                                            break;
                                        case "object":
                                            Object.assign(this.interactionDOMElement.style, t)
                                    } else "string" != typeof e || Object.prototype.hasOwnProperty.call(this.cursorStyles, e) || (this.interactionDOMElement.style.cursor = e)
                                }
                            }, t.prototype.dispatchEvent = function(e, t, n) {
                                n.stopped || (n.currentTarget = e, n.type = t, e.emit(t, n), e[t] && e[t](n))
                            }, t.prototype.mapPositionToPoint = function(e, t, n) {
                                var i = void 0;
                                i = this.interactionDOMElement.parentElement ? this.interactionDOMElement.getBoundingClientRect() : {
                                    x: 0,
                                    y: 0,
                                    width: 0,
                                    height: 0
                                };
                                var r = navigator.isCocoonJS ? this.resolution : 1 / this.resolution;
                                e.x = (t - i.left) * (this.interactionDOMElement.width / i.width) * r, e.y = (n - i.top) * (this.interactionDOMElement.height / i.height) * r
                            }, t.prototype.processInteractive = function(e, t, n, i, r) {
                                if (!t || !t.visible) return !1;
                                var o = e.data.global;
                                r = t.interactive || r;
                                var a = !1,
                                    s = r;
                                if (t.hitArea ? s = !1 : i && t._mask && (t._mask.containsPoint(o) || (i = !1)), t.interactiveChildren && t.children)
                                    for (var u = t.children, l = u.length - 1; l >= 0; l--) {
                                        var c = u[l],
                                            h = this.processInteractive(e, c, n, i, s);
                                        if (h) {
                                            if (!c.parent) continue;
                                            s = !1, h && (e.target && (i = !1), a = !0)
                                        }
                                    }
                                return r && (i && !e.target && (t.hitArea ? (t.worldTransform.applyInverse(o, this._tempPoint), t.hitArea.contains(this._tempPoint.x, this._tempPoint.y) && (a = !0)) : t.containsPoint && t.containsPoint(o) && (a = !0)), t.interactive && (a && !e.target && (e.target = t), n && n(e, t, !!a))), a
                            }, t.prototype.onPointerDown = function(e) {
                                if (!this.supportsTouchEvents || "touch" !== e.pointerType) {
                                    var t = this.normalizeToPointerData(e);
                                    this.autoPreventDefault && t[0].isNormalized && e.preventDefault();
                                    for (var n = t.length, i = 0; i < n; i++) {
                                        var r = t[i],
                                            o = this.getInteractionDataForPointerId(r),
                                            a = this.configureInteractionEventForDOMEvent(this.eventData, r, o);
                                        if (a.data.originalEvent = e, this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerDown, !0), this.emit("pointerdown", a), "touch" === r.pointerType) this.emit("touchstart", a);
                                        else if ("mouse" === r.pointerType || "pen" === r.pointerType) {
                                            var s = 2 === r.button;
                                            this.emit(s ? "rightdown" : "mousedown", this.eventData)
                                        }
                                    }
                                }
                            }, t.prototype.processPointerDown = function(e, t, n) {
                                var i = e.data,
                                    r = e.data.identifier;
                                if (n)
                                    if (t.trackedPointers[r] || (t.trackedPointers[r] = new m.default(r)), this.dispatchEvent(t, "pointerdown", e), "touch" === i.pointerType) this.dispatchEvent(t, "touchstart", e);
                                    else if ("mouse" === i.pointerType || "pen" === i.pointerType) {
                                    var o = 2 === i.button;
                                    o ? t.trackedPointers[r].rightDown = !0 : t.trackedPointers[r].leftDown = !0, this.dispatchEvent(t, o ? "rightdown" : "mousedown", e)
                                }
                            }, t.prototype.onPointerComplete = function(e, t, n) {
                                for (var i = this.normalizeToPointerData(e), r = i.length, o = e.target !== this.interactionDOMElement ? "outside" : "", a = 0; a < r; a++) {
                                    var s = i[a],
                                        u = this.getInteractionDataForPointerId(s),
                                        l = this.configureInteractionEventForDOMEvent(this.eventData, s, u);
                                    if (l.data.originalEvent = e, this.processInteractive(l, this.renderer._lastObjectRendered, n, t || !o), this.emit(t ? "pointercancel" : "pointerup" + o, l), "mouse" === s.pointerType || "pen" === s.pointerType) {
                                        var c = 2 === s.button;
                                        this.emit(c ? "rightup" + o : "mouseup" + o, l)
                                    } else "touch" === s.pointerType && (this.emit(t ? "touchcancel" : "touchend" + o, l), this.releaseInteractionDataForPointerId(s.pointerId, u))
                                }
                            }, t.prototype.onPointerCancel = function(e) {
                                this.supportsTouchEvents && "touch" === e.pointerType || this.onPointerComplete(e, !0, this.processPointerCancel)
                            }, t.prototype.processPointerCancel = function(e, t) {
                                var n = e.data,
                                    i = e.data.identifier;
                                void 0 !== t.trackedPointers[i] && (delete t.trackedPointers[i], this.dispatchEvent(t, "pointercancel", e), "touch" === n.pointerType && this.dispatchEvent(t, "touchcancel", e))
                            }, t.prototype.onPointerUp = function(e) {
                                this.supportsTouchEvents && "touch" === e.pointerType || this.onPointerComplete(e, !1, this.processPointerUp)
                            }, t.prototype.processPointerUp = function(e, t, n) {
                                var i = e.data,
                                    r = e.data.identifier,
                                    o = t.trackedPointers[r],
                                    a = "touch" === i.pointerType;
                                if ("mouse" === i.pointerType || "pen" === i.pointerType) {
                                    var s = 2 === i.button,
                                        u = m.default.FLAGS,
                                        l = s ? u.RIGHT_DOWN : u.LEFT_DOWN,
                                        c = void 0 !== o && o.flags & l;
                                    n ? (this.dispatchEvent(t, s ? "rightup" : "mouseup", e), c && this.dispatchEvent(t, s ? "rightclick" : "click", e)) : c && this.dispatchEvent(t, s ? "rightupoutside" : "mouseupoutside", e), o && (s ? o.rightDown = !1 : o.leftDown = !1)
                                }
                                n ? (this.dispatchEvent(t, "pointerup", e), a && this.dispatchEvent(t, "touchend", e), o && (this.dispatchEvent(t, "pointertap", e), a && (this.dispatchEvent(t, "tap", e), o.over = !1))) : o && (this.dispatchEvent(t, "pointerupoutside", e), a && this.dispatchEvent(t, "touchendoutside", e)), o && o.none && delete t.trackedPointers[r]
                            }, t.prototype.onPointerMove = function(e) {
                                if (!this.supportsTouchEvents || "touch" !== e.pointerType) {
                                    var t = this.normalizeToPointerData(e);
                                    "mouse" === t[0].pointerType && (this.didMove = !0, this.cursor = null);
                                    for (var n = t.length, i = 0; i < n; i++) {
                                        var r = t[i],
                                            o = this.getInteractionDataForPointerId(r),
                                            a = this.configureInteractionEventForDOMEvent(this.eventData, r, o);
                                        a.data.originalEvent = e;
                                        var s = "touch" !== r.pointerType || this.moveWhenInside;
                                        this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerMove, s), this.emit("pointermove", a), "touch" === r.pointerType && this.emit("touchmove", a), "mouse" !== r.pointerType && "pen" !== r.pointerType || this.emit("mousemove", a)
                                    }
                                    "mouse" === t[0].pointerType && this.setCursorMode(this.cursor)
                                }
                            }, t.prototype.processPointerMove = function(e, t, n) {
                                var i = e.data,
                                    r = "touch" === i.pointerType,
                                    o = "mouse" === i.pointerType || "pen" === i.pointerType;
                                o && this.processPointerOverOut(e, t, n), this.moveWhenInside && !n || (this.dispatchEvent(t, "pointermove", e), r && this.dispatchEvent(t, "touchmove", e), o && this.dispatchEvent(t, "mousemove", e))
                            }, t.prototype.onPointerOut = function(e) {
                                if (!this.supportsTouchEvents || "touch" !== e.pointerType) {
                                    var t = this.normalizeToPointerData(e),
                                        n = t[0];
                                    "mouse" === n.pointerType && (this.mouseOverRenderer = !1, this.setCursorMode(null));
                                    var i = this.getInteractionDataForPointerId(n),
                                        r = this.configureInteractionEventForDOMEvent(this.eventData, n, i);
                                    r.data.originalEvent = n, this.processInteractive(r, this.renderer._lastObjectRendered, this.processPointerOverOut, !1), this.emit("pointerout", r), "mouse" === n.pointerType || "pen" === n.pointerType ? this.emit("mouseout", r) : this.releaseInteractionDataForPointerId(i.identifier)
                                }
                            }, t.prototype.processPointerOverOut = function(e, t, n) {
                                var i = e.data,
                                    r = e.data.identifier,
                                    o = "mouse" === i.pointerType || "pen" === i.pointerType,
                                    a = t.trackedPointers[r];
                                n && !a && (a = t.trackedPointers[r] = new m.default(r)), void 0 !== a && (n && this.mouseOverRenderer ? (a.over || (a.over = !0, this.dispatchEvent(t, "pointerover", e), o && this.dispatchEvent(t, "mouseover", e)), o && null === this.cursor && (this.cursor = t.cursor)) : a.over && (a.over = !1, this.dispatchEvent(t, "pointerout", this.eventData), o && this.dispatchEvent(t, "mouseout", e), a.none && delete t.trackedPointers[r]))
                            }, t.prototype.onPointerOver = function(e) {
                                var t = this.normalizeToPointerData(e),
                                    n = t[0],
                                    i = this.getInteractionDataForPointerId(n),
                                    r = this.configureInteractionEventForDOMEvent(this.eventData, n, i);
                                r.data.originalEvent = n, "mouse" === n.pointerType && (this.mouseOverRenderer = !0), this.emit("pointerover", r), "mouse" !== n.pointerType && "pen" !== n.pointerType || this.emit("mouseover", r)
                            }, t.prototype.getInteractionDataForPointerId = function(e) {
                                var t = e.pointerId,
                                    n = void 0;
                                return t === b || "mouse" === e.pointerType ? n = this.mouse : this.activeInteractionData[t] ? n = this.activeInteractionData[t] : (n = this.interactionDataPool.pop() || new h.default, n.identifier = t, this.activeInteractionData[t] = n), n._copyEvent(e), n
                            }, t.prototype.releaseInteractionDataForPointerId = function(e) {
                                var t = this.activeInteractionData[e];
                                t && (delete this.activeInteractionData[e], t._reset(), this.interactionDataPool.push(t))
                            }, t.prototype.configureInteractionEventForDOMEvent = function(e, t, n) {
                                return e.data = n, this.mapPositionToPoint(n.global, t.clientX, t.clientY), navigator.isCocoonJS && "touch" === t.pointerType && (n.global.x = n.global.x / this.resolution, n.global.y = n.global.y / this.resolution), "touch" === t.pointerType && (t.globalX = n.global.x, t.globalY = n.global.y), n.originalEvent = t, e._reset(), e
                            }, t.prototype.normalizeToPointerData = function(e) {
                                var t = [];
                                if (this.supportsTouchEvents && e instanceof TouchEvent)
                                    for (var n = 0, i = e.changedTouches.length; n < i; n++) {
                                        var r = e.changedTouches[n];
                                        void 0 === r.button && (r.button = e.touches.length ? 1 : 0), void 0 === r.buttons && (r.buttons = e.touches.length ? 1 : 0), void 0 === r.isPrimary && (r.isPrimary = 1 === e.touches.length && "touchstart" === e.type), void 0 === r.width && (r.width = r.radiusX || 1), void 0 === r.height && (r.height = r.radiusY || 1), void 0 === r.tiltX && (r.tiltX = 0), void 0 === r.tiltY && (r.tiltY = 0), void 0 === r.pointerType && (r.pointerType = "touch"), void 0 === r.pointerId && (r.pointerId = r.identifier || 0), void 0 === r.pressure && (r.pressure = r.force || .5), r.twist = 0, r.tangentialPressure = 0, void 0 === r.layerX && (r.layerX = r.offsetX = r.clientX), void 0 === r.layerY && (r.layerY = r.offsetY = r.clientY), r.isNormalized = !0, t.push(r)
                                    } else !(e instanceof MouseEvent) || this.supportsPointerEvents && e instanceof window.PointerEvent ? t.push(e) : (void 0 === e.isPrimary && (e.isPrimary = !0), void 0 === e.width && (e.width = 1), void 0 === e.height && (e.height = 1), void 0 === e.tiltX && (e.tiltX = 0), void 0 === e.tiltY && (e.tiltY = 0), void 0 === e.pointerType && (e.pointerType = "mouse"), void 0 === e.pointerId && (e.pointerId = b), void 0 === e.pressure && (e.pressure = .5), e.twist = 0, e.tangentialPressure = 0, e.isNormalized = !0, t.push(e));
                                return t
                            }, t.prototype.destroy = function() {
                                this.removeEvents(), this.removeAllListeners(), this.renderer = null, this.mouse = null, this.eventData = null, this.interactionDOMElement = null, this.onPointerDown = null, this.processPointerDown = null, this.onPointerUp = null, this.processPointerUp = null, this.onPointerCancel = null, this.processPointerCancel = null, this.onPointerMove = null, this.processPointerMove = null, this.onPointerOut = null, this.processPointerOverOut = null, this.onPointerOver = null, this._tempPoint = null
                            }, t
                        }(g.default);
                    n.default = T, l.WebGLRenderer.registerPlugin("interaction", T), l.CanvasRenderer.registerPlugin("interaction", T)
                }, {
                    "../core": 65,
                    "./InteractionData": 155,
                    "./InteractionEvent": 156,
                    "./InteractionTrackingData": 158,
                    "./interactiveTarget": 160,
                    eventemitter3: 3
                }],
                158: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        o = function() {
                            function e(t) {
                                i(this, e), this._pointerId = t, this._flags = e.FLAGS.NONE
                            }
                            return e.prototype._doSet = function(e, t) {
                                this._flags = t ? this._flags | e : this._flags & ~e
                            }, r(e, [{
                                key: "pointerId",
                                get: function() {
                                    return this._pointerId
                                }
                            }, {
                                key: "flags",
                                get: function() {
                                    return this._flags
                                },
                                set: function(e) {
                                    this._flags = e
                                }
                            }, {
                                key: "none",
                                get: function() {
                                    return this._flags === this.constructor.FLAGS.NONE
                                }
                            }, {
                                key: "over",
                                get: function() {
                                    return 0 != (this._flags & this.constructor.FLAGS.OVER)
                                },
                                set: function(e) {
                                    this._doSet(this.constructor.FLAGS.OVER, e)
                                }
                            }, {
                                key: "rightDown",
                                get: function() {
                                    return 0 != (this._flags & this.constructor.FLAGS.RIGHT_DOWN)
                                },
                                set: function(e) {
                                    this._doSet(this.constructor.FLAGS.RIGHT_DOWN, e)
                                }
                            }, {
                                key: "leftDown",
                                get: function() {
                                    return 0 != (this._flags & this.constructor.FLAGS.LEFT_DOWN)
                                },
                                set: function(e) {
                                    this._doSet(this.constructor.FLAGS.LEFT_DOWN, e)
                                }
                            }]), e
                        }();
                    n.default = o, o.FLAGS = Object.freeze({
                        NONE: 0,
                        OVER: 1,
                        LEFT_DOWN: 2,
                        RIGHT_DOWN: 4
                    })
                }, {}],
                159: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./InteractionData");
                    Object.defineProperty(n, "InteractionData", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./InteractionManager");
                    Object.defineProperty(n, "InteractionManager", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    });
                    var a = e("./interactiveTarget");
                    Object.defineProperty(n, "interactiveTarget", {
                        enumerable: !0,
                        get: function() {
                            return i(a).default
                        }
                    });
                    var s = e("./InteractionTrackingData");
                    Object.defineProperty(n, "InteractionTrackingData", {
                        enumerable: !0,
                        get: function() {
                            return i(s).default
                        }
                    });
                    var u = e("./InteractionEvent");
                    Object.defineProperty(n, "InteractionEvent", {
                        enumerable: !0,
                        get: function() {
                            return i(u).default
                        }
                    })
                }, {
                    "./InteractionData": 155,
                    "./InteractionEvent": 156,
                    "./InteractionManager": 157,
                    "./InteractionTrackingData": 158,
                    "./interactiveTarget": 160
                }],
                160: [function(e, t, n) {
                    "use strict";
                    n.__esModule = !0, n.default = {
                        interactive: !1,
                        interactiveChildren: !0,
                        hitArea: null,
                        get buttonMode() {
                            return "pointer" === this.cursor
                        },
                        set buttonMode(e) {
                            e ? this.cursor = "pointer" : "pointer" === this.cursor && (this.cursor = null)
                        },
                        cursor: null,
                        get trackedPointers() {
                            return void 0 === this._trackedPointers && (this._trackedPointers = {}), this._trackedPointers
                        },
                        _trackedPointers: void 0
                    }
                }, {}],
                161: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        e.bitmapFont = u.BitmapText.registerFont(e.data, t)
                    }
                    n.__esModule = !0, n.parse = i, n.default = function() {
                        return function(e, t) {
                            if (!e.data || e.type !== s.Resource.TYPE.XML) return void t();
                            if (0 === e.data.getElementsByTagName("page").length || 0 === e.data.getElementsByTagName("info").length || null === e.data.getElementsByTagName("info")[0].getAttribute("face")) return void t();
                            var n = e.isDataUrl ? "" : o.dirname(e.url);
                            e.isDataUrl && ("." === n && (n = ""), this.baseUrl && n && "/" === this.baseUrl.charAt(this.baseUrl.length - 1) && (n += "/")), (n = n.replace(this.baseUrl, "")) && "/" !== n.charAt(n.length - 1) && (n += "/");
                            var r = n + e.data.getElementsByTagName("page")[0].getAttribute("file");
                            if (a.utils.TextureCache[r]) i(e, a.utils.TextureCache[r]), t();
                            else {
                                var u = {
                                    crossOrigin: e.crossOrigin,
                                    loadType: s.Resource.LOAD_TYPE.IMAGE,
                                    metadata: e.metadata.imageMetadata,
                                    parentResource: e
                                };
                                this.add(e.name + "_image", r, u, function(n) {
                                    i(e, n.texture), t()
                                })
                            }
                        }
                    };
                    var r = e("path"),
                        o = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(r),
                        a = e("../core"),
                        s = e("resource-loader"),
                        u = e("../extras")
                }, {
                    "../core": 65,
                    "../extras": 141,
                    path: 23,
                    "resource-loader": 36
                }],
                162: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0, n.shared = n.Resource = n.textureParser = n.getResourcePath = n.spritesheetParser = n.parseBitmapFontData = n.bitmapFontParser = n.Loader = void 0;
                    var r = e("./bitmapFontParser");
                    Object.defineProperty(n, "bitmapFontParser", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    }), Object.defineProperty(n, "parseBitmapFontData", {
                        enumerable: !0,
                        get: function() {
                            return r.parse
                        }
                    });
                    var o = e("./spritesheetParser");
                    Object.defineProperty(n, "spritesheetParser", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    }), Object.defineProperty(n, "getResourcePath", {
                        enumerable: !0,
                        get: function() {
                            return o.getResourcePath
                        }
                    });
                    var a = e("./textureParser");
                    Object.defineProperty(n, "textureParser", {
                        enumerable: !0,
                        get: function() {
                            return i(a).default
                        }
                    });
                    var s = e("resource-loader");
                    Object.defineProperty(n, "Resource", {
                        enumerable: !0,
                        get: function() {
                            return s.Resource
                        }
                    });
                    var u = e("../core/Application"),
                        l = i(u),
                        c = e("./loader"),
                        h = i(c);
                    n.Loader = h.default;
                    var p = new h.default;
                    p.destroy = function() {}, n.shared = p;
                    var d = l.default.prototype;
                    d._loader = null, Object.defineProperty(d, "loader", {
                        get: function() {
                            if (!this._loader) {
                                var e = this._options.sharedLoader;
                                this._loader = e ? p : new h.default
                            }
                            return this._loader
                        }
                    }), d._parentDestroy = d.destroy, d.destroy = function(e) {
                        this._loader && (this._loader.destroy(), this._loader = null), this._parentDestroy(e)
                    }
                }, {
                    "../core/Application": 43,
                    "./bitmapFontParser": 161,
                    "./loader": 163,
                    "./spritesheetParser": 164,
                    "./textureParser": 165,
                    "resource-loader": 36
                }],
                163: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("resource-loader"),
                        u = i(s),
                        l = e("resource-loader/lib/middlewares/parsing/blob"),
                        c = e("eventemitter3"),
                        h = i(c),
                        p = e("./textureParser"),
                        d = i(p),
                        f = e("./spritesheetParser"),
                        m = i(f),
                        _ = e("./bitmapFontParser"),
                        g = i(_),
                        y = function(e) {
                            function t(n, i) {
                                r(this, t);
                                var a = o(this, e.call(this, n, i));
                                h.default.call(a);
                                for (var s = 0; s < t._pixiMiddleware.length; ++s) a.use(t._pixiMiddleware[s]());
                                return a.onStart.add(function(e) {
                                    return a.emit("start", e)
                                }), a.onProgress.add(function(e, t) {
                                    return a.emit("progress", e, t)
                                }), a.onError.add(function(e, t, n) {
                                    return a.emit("error", e, t, n)
                                }), a.onLoad.add(function(e, t) {
                                    return a.emit("load", e, t)
                                }), a.onComplete.add(function(e, t) {
                                    return a.emit("complete", e, t)
                                }), a
                            }
                            return a(t, e), t.addPixiMiddleware = function(e) {
                                t._pixiMiddleware.push(e)
                            }, t.prototype.destroy = function() {
                                this.removeAllListeners(), this.reset()
                            }, t
                        }(u.default);
                    n.default = y;
                    for (var v in h.default.prototype) y.prototype[v] = h.default.prototype[v];
                    y._pixiMiddleware = [l.blobMiddlewareFactory, d.default, m.default, g.default];
                    var b = u.default.Resource;
                    b.setExtensionXhrType("fnt", b.XHR_RESPONSE_TYPE.DOCUMENT)
                }, {
                    "./bitmapFontParser": 161,
                    "./spritesheetParser": 164,
                    "./textureParser": 165,
                    eventemitter3: 3,
                    "resource-loader": 36,
                    "resource-loader/lib/middlewares/parsing/blob": 37
                }],
                164: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        return e.isDataUrl ? e.data.meta.image : a.default.resolve(e.url.replace(t, ""), e.data.meta.image)
                    }
                    n.__esModule = !0, n.default = function() {
                        return function(e, t) {
                            var n = e.name + "_image";
                            if (!e.data || e.type !== r.Resource.TYPE.JSON || !e.data.frames || this.resources[n]) return void t();
                            var o = {
                                    crossOrigin: e.crossOrigin,
                                    loadType: r.Resource.LOAD_TYPE.IMAGE,
                                    metadata: e.metadata.imageMetadata,
                                    parentResource: e
                                },
                                a = i(e, this.baseUrl);
                            this.add(n, a, o, function(n) {
                                var i = new s.Spritesheet(n.texture.baseTexture, e.data, e.url);
                                i.parse(function() {
                                    e.spritesheet = i, e.textures = i.textures, t()
                                })
                            })
                        }
                    }, n.getResourcePath = i;
                    var r = e("resource-loader"),
                        o = e("url"),
                        a = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(o),
                        s = e("../core")
                }, {
                    "../core": 65,
                    "resource-loader": 36,
                    url: 29
                }],
                165: [function(e, t, n) {
                    "use strict";
                    n.__esModule = !0, n.default = function() {
                        return function(e, t) {
                            e.data && e.type === i.Resource.TYPE.IMAGE && (e.texture = o.default.fromLoader(e.data, e.url, e.name)), t()
                        }
                    };
                    var i = e("resource-loader"),
                        r = e("../core/textures/Texture"),
                        o = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(r)
                }, {
                    "../core/textures/Texture": 115,
                    "resource-loader": 36
                }],
                166: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = e("../core/textures/Texture"),
                        c = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(l),
                        h = new u.Point,
                        p = new u.Polygon,
                        d = function(e) {
                            function t(n, o, a, s, l) {
                                i(this, t);
                                var h = r(this, e.call(this));
                                return h._texture = n || c.default.EMPTY, h.uvs = a || new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), h.vertices = o || new Float32Array([0, 0, 100, 0, 100, 100, 0, 100]), h.indices = s || new Uint16Array([0, 1, 3, 2]), h.dirty = 0, h.indexDirty = 0, h.blendMode = u.BLEND_MODES.NORMAL, h.canvasPadding = 0, h.drawMode = l || t.DRAW_MODES.TRIANGLE_MESH, h.shader = null, h.tintRgb = new Float32Array([1, 1, 1]), h._glDatas = {}, h._uvTransform = new u.TextureMatrix(h._texture), h.uploadUvTransform = !1, h.pluginName = "mesh", h
                            }
                            return o(t, e), t.prototype._renderWebGL = function(e) {
                                this.refresh(), e.setObjectRenderer(e.plugins[this.pluginName]), e.plugins[this.pluginName].render(this)
                            }, t.prototype._renderCanvas = function(e) {
                                this.refresh(), e.plugins[this.pluginName].render(this)
                            }, t.prototype._onTextureUpdate = function() {
                                this._uvTransform.texture = this._texture, this.refresh()
                            }, t.prototype.multiplyUvs = function() {
                                this.uploadUvTransform || this._uvTransform.multiplyUvs(this.uvs)
                            }, t.prototype.refresh = function(e) {
                                this._uvTransform.update(e) && this._refresh()
                            }, t.prototype._refresh = function() {}, t.prototype._calculateBounds = function() {
                                this._bounds.addVertices(this.transform, this.vertices, 0, this.vertices.length)
                            }, t.prototype.containsPoint = function(e) {
                                if (!this.getBounds().contains(e.x, e.y)) return !1;
                                this.worldTransform.applyInverse(e, h);
                                for (var n = this.vertices, i = p.points, r = this.indices, o = this.indices.length, a = this.drawMode === t.DRAW_MODES.TRIANGLES ? 3 : 1, s = 0; s + 2 < o; s += a) {
                                    var u = 2 * r[s],
                                        l = 2 * r[s + 1],
                                        c = 2 * r[s + 2];
                                    if (i[0] = n[u], i[1] = n[u + 1], i[2] = n[l], i[3] = n[l + 1], i[4] = n[c], i[5] = n[c + 1], p.contains(h.x, h.y)) return !0
                                }
                                return !1
                            }, a(t, [{
                                key: "texture",
                                get: function() {
                                    return this._texture
                                },
                                set: function(e) {
                                    this._texture !== e && (this._texture = e, e && (e.baseTexture.hasLoaded ? this._onTextureUpdate() : e.once("update", this._onTextureUpdate, this)))
                                }
                            }, {
                                key: "tint",
                                get: function() {
                                    return u.utils.rgb2hex(this.tintRgb)
                                },
                                set: function(e) {
                                    this.tintRgb = u.utils.hex2rgb(e, this.tintRgb)
                                }
                            }]), t
                        }(u.Container);
                    n.default = d, d.DRAW_MODES = {
                        TRIANGLE_MESH: 0,
                        TRIANGLES: 1
                    }
                }, {
                    "../core": 65,
                    "../core/textures/Texture": 115
                }],
                167: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("./Plane"),
                        u = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(s),
                        l = 10,
                        c = function(e) {
                            function t(n, o, a, s, u) {
                                i(this, t);
                                var c = r(this, e.call(this, n, 4, 4));
                                return c._origWidth = n.orig.width, c._origHeight = n.orig.height, c._width = c._origWidth, c._height = c._origHeight, c.leftWidth = void 0 !== o ? o : l, c.rightWidth = void 0 !== s ? s : l, c.topHeight = void 0 !== a ? a : l, c.bottomHeight = void 0 !== u ? u : l, c.refresh(!0), c
                            }
                            return o(t, e), t.prototype.updateHorizontalVertices = function() {
                                var e = this.vertices;
                                e[9] = e[11] = e[13] = e[15] = this._topHeight, e[17] = e[19] = e[21] = e[23] = this._height - this._bottomHeight, e[25] = e[27] = e[29] = e[31] = this._height
                            }, t.prototype.updateVerticalVertices = function() {
                                var e = this.vertices;
                                e[2] = e[10] = e[18] = e[26] = this._leftWidth, e[4] = e[12] = e[20] = e[28] = this._width - this._rightWidth, e[6] = e[14] = e[22] = e[30] = this._width
                            }, t.prototype._renderCanvas = function(e) {
                                var t = e.context;
                                t.globalAlpha = this.worldAlpha;
                                var n = this.worldTransform,
                                    i = e.resolution;
                                e.roundPixels ? t.setTransform(n.a * i, n.b * i, n.c * i, n.d * i, n.tx * i | 0, n.ty * i | 0) : t.setTransform(n.a * i, n.b * i, n.c * i, n.d * i, n.tx * i, n.ty * i);
                                var r = this._texture.baseTexture,
                                    o = r.source,
                                    a = r.width * r.resolution,
                                    s = r.height * r.resolution;
                                this.drawSegment(t, o, a, s, 0, 1, 10, 11), this.drawSegment(t, o, a, s, 2, 3, 12, 13), this.drawSegment(t, o, a, s, 4, 5, 14, 15), this.drawSegment(t, o, a, s, 8, 9, 18, 19), this.drawSegment(t, o, a, s, 10, 11, 20, 21), this.drawSegment(t, o, a, s, 12, 13, 22, 23), this.drawSegment(t, o, a, s, 16, 17, 26, 27), this.drawSegment(t, o, a, s, 18, 19, 28, 29), this.drawSegment(t, o, a, s, 20, 21, 30, 31)
                            }, t.prototype.drawSegment = function(e, t, n, i, r, o, a, s) {
                                var u = this.uvs,
                                    l = this.vertices,
                                    c = (u[a] - u[r]) * n,
                                    h = (u[s] - u[o]) * i,
                                    p = l[a] - l[r],
                                    d = l[s] - l[o];
                                c < 1 && (c = 1), h < 1 && (h = 1), p < 1 && (p = 1), d < 1 && (d = 1), e.drawImage(t, u[r] * n, u[o] * i, c, h, l[r], l[o], p, d)
                            }, t.prototype._refresh = function() {
                                e.prototype._refresh.call(this);
                                var t = this.uvs,
                                    n = this._texture;
                                this._origWidth = n.orig.width, this._origHeight = n.orig.height;
                                var i = 1 / this._origWidth,
                                    r = 1 / this._origHeight;
                                t[0] = t[8] = t[16] = t[24] = 0, t[1] = t[3] = t[5] = t[7] = 0, t[6] = t[14] = t[22] = t[30] = 1, t[25] = t[27] = t[29] = t[31] = 1, t[2] = t[10] = t[18] = t[26] = i * this._leftWidth, t[4] = t[12] = t[20] = t[28] = 1 - i * this._rightWidth, t[9] = t[11] = t[13] = t[15] = r * this._topHeight, t[17] = t[19] = t[21] = t[23] = 1 - r * this._bottomHeight, this.updateHorizontalVertices(), this.updateVerticalVertices(), this.dirty++, this.multiplyUvs()
                            }, a(t, [{
                                key: "width",
                                get: function() {
                                    return this._width
                                },
                                set: function(e) {
                                    this._width = e, this._refresh()
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this._height
                                },
                                set: function(e) {
                                    this._height = e, this._refresh()
                                }
                            }, {
                                key: "leftWidth",
                                get: function() {
                                    return this._leftWidth
                                },
                                set: function(e) {
                                    this._leftWidth = e, this._refresh()
                                }
                            }, {
                                key: "rightWidth",
                                get: function() {
                                    return this._rightWidth
                                },
                                set: function(e) {
                                    this._rightWidth = e, this._refresh()
                                }
                            }, {
                                key: "topHeight",
                                get: function() {
                                    return this._topHeight
                                },
                                set: function(e) {
                                    this._topHeight = e, this._refresh()
                                }
                            }, {
                                key: "bottomHeight",
                                get: function() {
                                    return this._bottomHeight
                                },
                                set: function(e) {
                                    this._bottomHeight = e, this._refresh()
                                }
                            }]), t
                        }(u.default);
                    n.default = c
                }, {
                    "./Plane": 168
                }],
                168: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("./Mesh"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = function(e) {
                            function t(n, o, a) {
                                i(this, t);
                                var u = r(this, e.call(this, n));
                                return u._ready = !0, u.verticesX = o || 10, u.verticesY = a || 10, u.drawMode = s.default.DRAW_MODES.TRIANGLES, u.refresh(), u
                            }
                            return o(t, e), t.prototype._refresh = function() {
                                for (var e = this._texture, t = this.verticesX * this.verticesY, n = [], i = [], r = [], o = [], a = this.verticesX - 1, s = this.verticesY - 1, u = e.width / a, l = e.height / s, c = 0; c < t; c++) {
                                    var h = c % this.verticesX,
                                        p = c / this.verticesX | 0;
                                    n.push(h * u, p * l), r.push(h / a, p / s)
                                }
                                for (var d = a * s, f = 0; f < d; f++) {
                                    var m = f % a,
                                        _ = f / a | 0,
                                        g = _ * this.verticesX + m,
                                        y = _ * this.verticesX + m + 1,
                                        v = (_ + 1) * this.verticesX + m,
                                        b = (_ + 1) * this.verticesX + m + 1;
                                    o.push(g, y, v), o.push(y, b, v)
                                }
                                this.vertices = new Float32Array(n), this.uvs = new Float32Array(r), this.colors = new Float32Array(i), this.indices = new Uint16Array(o), this.dirty++, this.indexDirty++, this.multiplyUvs()
                            }, t.prototype._onTextureUpdate = function() {
                                s.default.prototype._onTextureUpdate.call(this), this._ready && this.refresh()
                            }, t
                        }(s.default);
                    n.default = u
                }, {
                    "./Mesh": 166
                }],
                169: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("./Mesh"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = function(e) {
                            function t(n, o) {
                                i(this, t);
                                var a = r(this, e.call(this, n));
                                return a.points = o, a.vertices = new Float32Array(4 * o.length), a.uvs = new Float32Array(4 * o.length), a.colors = new Float32Array(2 * o.length), a.indices = new Uint16Array(2 * o.length), a.autoUpdate = !0, a.refresh(), a
                            }
                            return o(t, e), t.prototype._refresh = function() {
                                var e = this.points;
                                if (!(e.length < 1) && this._texture._uvs) {
                                    this.vertices.length / 4 !== e.length && (this.vertices = new Float32Array(4 * e.length), this.uvs = new Float32Array(4 * e.length), this.colors = new Float32Array(2 * e.length), this.indices = new Uint16Array(2 * e.length));
                                    var t = this.uvs,
                                        n = this.indices,
                                        i = this.colors;
                                    t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 1, i[0] = 1, i[1] = 1, n[0] = 0, n[1] = 1;
                                    for (var r = e.length, o = 1; o < r; o++) {
                                        var a = 4 * o,
                                            s = o / (r - 1);
                                        t[a] = s, t[a + 1] = 0, t[a + 2] = s, t[a + 3] = 1, a = 2 * o, i[a] = 1, i[a + 1] = 1, a = 2 * o, n[a] = a, n[a + 1] = a + 1
                                    }
                                    this.dirty++, this.indexDirty++, this.multiplyUvs(), this.refreshVertices()
                                }
                            }, t.prototype.refreshVertices = function() {
                                var e = this.points;
                                if (!(e.length < 1))
                                    for (var t = e[0], n = void 0, i = 0, r = 0, o = this.vertices, a = e.length, s = 0; s < a; s++) {
                                        var u = e[s],
                                            l = 4 * s;
                                        n = s < e.length - 1 ? e[s + 1] : u, r = -(n.x - t.x), i = n.y - t.y;
                                        var c = 10 * (1 - s / (a - 1));
                                        c > 1 && (c = 1);
                                        var h = Math.sqrt(i * i + r * r),
                                            p = this._texture.height / 2;
                                        i /= h, r /= h, i *= p, r *= p, o[l] = u.x + i, o[l + 1] = u.y + r, o[l + 2] = u.x - i, o[l + 3] = u.y - r, t = u
                                    }
                            }, t.prototype.updateTransform = function() {
                                this.autoUpdate && this.refreshVertices(), this.containerUpdateTransform()
                            }, t
                        }(s.default);
                    n.default = u
                }, {
                    "./Mesh": 166
                }],
                170: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = e("../../core"),
                        o = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(r),
                        a = e("../Mesh"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = function() {
                            function e(t) {
                                i(this, e), this.renderer = t
                            }
                            return e.prototype.render = function(e) {
                                var t = this.renderer,
                                    n = t.context,
                                    i = e.worldTransform,
                                    r = t.resolution;
                                t.roundPixels ? n.setTransform(i.a * r, i.b * r, i.c * r, i.d * r, i.tx * r | 0, i.ty * r | 0) : n.setTransform(i.a * r, i.b * r, i.c * r, i.d * r, i.tx * r, i.ty * r), t.setBlendMode(e.blendMode), e.drawMode === s.default.DRAW_MODES.TRIANGLE_MESH ? this._renderTriangleMesh(e) : this._renderTriangles(e)
                            }, e.prototype._renderTriangleMesh = function(e) {
                                for (var t = e.vertices.length / 2, n = 0; n < t - 2; n++) {
                                    var i = 2 * n;
                                    this._renderDrawTriangle(e, i, i + 2, i + 4)
                                }
                            }, e.prototype._renderTriangles = function(e) {
                                for (var t = e.indices, n = t.length, i = 0; i < n; i += 3) {
                                    var r = 2 * t[i],
                                        o = 2 * t[i + 1],
                                        a = 2 * t[i + 2];
                                    this._renderDrawTriangle(e, r, o, a)
                                }
                            }, e.prototype._renderDrawTriangle = function(e, t, n, i) {
                                var r = this.renderer.context,
                                    o = e.uvs,
                                    a = e.vertices,
                                    s = e._texture;
                                if (s.valid) {
                                    var u = s.baseTexture,
                                        l = u.source,
                                        c = u.width,
                                        h = u.height,
                                        p = void 0,
                                        d = void 0,
                                        f = void 0,
                                        m = void 0,
                                        _ = void 0,
                                        g = void 0;
                                    if (e.uploadUvTransform) {
                                        var y = e._uvTransform.mapCoord;
                                        p = (o[t] * y.a + o[t + 1] * y.c + y.tx) * u.width, d = (o[n] * y.a + o[n + 1] * y.c + y.tx) * u.width, f = (o[i] * y.a + o[i + 1] * y.c + y.tx) * u.width, m = (o[t] * y.b + o[t + 1] * y.d + y.ty) * u.height, _ = (o[n] * y.b + o[n + 1] * y.d + y.ty) * u.height, g = (o[i] * y.b + o[i + 1] * y.d + y.ty) * u.height
                                    } else p = o[t] * u.width, d = o[n] * u.width, f = o[i] * u.width, m = o[t + 1] * u.height, _ = o[n + 1] * u.height, g = o[i + 1] * u.height;
                                    var v = a[t],
                                        b = a[n],
                                        x = a[i],
                                        T = a[t + 1],
                                        w = a[n + 1],
                                        S = a[i + 1];
                                    if (e.canvasPadding > 0) {
                                        var P = e.canvasPadding / e.worldTransform.a,
                                            C = e.canvasPadding / e.worldTransform.d,
                                            E = (v + b + x) / 3,
                                            M = (T + w + S) / 3,
                                            O = v - E,
                                            I = T - M,
                                            A = Math.sqrt(O * O + I * I);
                                        v = E + O / A * (A + P), T = M + I / A * (A + C), O = b - E, I = w - M, A = Math.sqrt(O * O + I * I), b = E + O / A * (A + P), w = M + I / A * (A + C), O = x - E, I = S - M, A = Math.sqrt(O * O + I * I), x = E + O / A * (A + P), S = M + I / A * (A + C)
                                    }
                                    r.save(), r.beginPath(), r.moveTo(v, T), r.lineTo(b, w), r.lineTo(x, S), r.closePath(), r.clip();
                                    var R = p * _ + m * f + d * g - _ * f - m * d - p * g,
                                        k = v * _ + m * x + b * g - _ * x - m * b - v * g,
                                        L = p * b + v * f + d * x - b * f - v * d - p * x,
                                        D = p * _ * x + m * b * f + v * d * g - v * _ * f - m * d * x - p * b * g,
                                        B = T * _ + m * S + w * g - _ * S - m * w - T * g,
                                        F = p * w + T * f + d * S - w * f - T * d - p * S,
                                        N = p * _ * S + m * w * f + T * d * g - T * _ * f - m * d * S - p * w * g;
                                    r.transform(k / R, B / R, L / R, F / R, D / R, N / R), r.drawImage(l, 0, 0, c * u.resolution, h * u.resolution, 0, 0, c, h), r.restore(), this.renderer.invalidateBlendMode()
                                }
                            }, e.prototype.renderMeshFlat = function(e) {
                                var t = this.renderer.context,
                                    n = e.vertices,
                                    i = n.length / 2;
                                t.beginPath();
                                for (var r = 1; r < i - 2; ++r) {
                                    var o = 2 * r,
                                        a = n[o],
                                        s = n[o + 1],
                                        u = n[o + 2],
                                        l = n[o + 3],
                                        c = n[o + 4],
                                        h = n[o + 5];
                                    t.moveTo(a, s), t.lineTo(u, l), t.lineTo(c, h)
                                }
                                t.fillStyle = "#FF0000", t.fill(), t.closePath()
                            }, e.prototype.destroy = function() {
                                this.renderer = null
                            }, e
                        }();
                    n.default = u, o.CanvasRenderer.registerPlugin("mesh", u)
                }, {
                    "../../core": 65,
                    "../Mesh": 166
                }],
                171: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./Mesh");
                    Object.defineProperty(n, "Mesh", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./webgl/MeshRenderer");
                    Object.defineProperty(n, "MeshRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    });
                    var a = e("./canvas/CanvasMeshRenderer");
                    Object.defineProperty(n, "CanvasMeshRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(a).default
                        }
                    });
                    var s = e("./Plane");
                    Object.defineProperty(n, "Plane", {
                        enumerable: !0,
                        get: function() {
                            return i(s).default
                        }
                    });
                    var u = e("./NineSlicePlane");
                    Object.defineProperty(n, "NineSlicePlane", {
                        enumerable: !0,
                        get: function() {
                            return i(u).default
                        }
                    });
                    var l = e("./Rope");
                    Object.defineProperty(n, "Rope", {
                        enumerable: !0,
                        get: function() {
                            return i(l).default
                        }
                    })
                }, {
                    "./Mesh": 166,
                    "./NineSlicePlane": 167,
                    "./Plane": 168,
                    "./Rope": 169,
                    "./canvas/CanvasMeshRenderer": 170,
                    "./webgl/MeshRenderer": 172
                }],
                172: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = e("pixi-gl-core"),
                        c = i(l),
                        h = e("../Mesh"),
                        p = i(h),
                        d = (e("path"), u.Matrix.IDENTITY),
                        f = function(e) {
                            function t(n) {
                                r(this, t);
                                var i = o(this, e.call(this, n));
                                return i.shader = null, i
                            }
                            return a(t, e), t.prototype.onContextChange = function() {
                                var e = this.renderer.gl;
                                this.shader = new u.Shader(e, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\nuniform vec4 uColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\n}\n")
                            }, t.prototype.render = function(e) {
                                var t = this.renderer,
                                    n = t.gl,
                                    i = e._texture;
                                if (i.valid) {
                                    var r = e._glDatas[t.CONTEXT_UID];
                                    r || (t.bindVao(null), r = {
                                        shader: this.shader,
                                        vertexBuffer: c.default.GLBuffer.createVertexBuffer(n, e.vertices, n.STREAM_DRAW),
                                        uvBuffer: c.default.GLBuffer.createVertexBuffer(n, e.uvs, n.STREAM_DRAW),
                                        indexBuffer: c.default.GLBuffer.createIndexBuffer(n, e.indices, n.STATIC_DRAW),
                                        vao: null,
                                        dirty: e.dirty,
                                        indexDirty: e.indexDirty
                                    }, r.vao = new c.default.VertexArrayObject(n).addIndex(r.indexBuffer).addAttribute(r.vertexBuffer, r.shader.attributes.aVertexPosition, n.FLOAT, !1, 8, 0).addAttribute(r.uvBuffer, r.shader.attributes.aTextureCoord, n.FLOAT, !1, 8, 0), e._glDatas[t.CONTEXT_UID] = r), t.bindVao(r.vao), e.dirty !== r.dirty && (r.dirty = e.dirty, r.uvBuffer.upload(e.uvs)), e.indexDirty !== r.indexDirty && (r.indexDirty = e.indexDirty, r.indexBuffer.upload(e.indices)), r.vertexBuffer.upload(e.vertices), t.bindShader(r.shader), r.shader.uniforms.uSampler = t.bindTexture(i), t.state.setBlendMode(u.utils.correctBlendMode(e.blendMode, i.baseTexture.premultipliedAlpha)), r.shader.uniforms.uTransform && (e.uploadUvTransform ? r.shader.uniforms.uTransform = e._uvTransform.mapCoord.toArray(!0) : r.shader.uniforms.uTransform = d.toArray(!0)), r.shader.uniforms.translationMatrix = e.worldTransform.toArray(!0), r.shader.uniforms.uColor = u.utils.premultiplyRgba(e.tintRgb, e.worldAlpha, r.shader.uniforms.uColor, i.baseTexture.premultipliedAlpha);
                                    var o = e.drawMode === p.default.DRAW_MODES.TRIANGLE_MESH ? n.TRIANGLE_STRIP : n.TRIANGLES;
                                    r.vao.draw(o, e.indices.length, 0)
                                }
                            }, t
                        }(u.ObjectRenderer);
                    n.default = f, u.WebGLRenderer.registerPlugin("mesh", f)
                }, {
                    "../../core": 65,
                    "../Mesh": 166,
                    path: 23,
                    "pixi-gl-core": 12
                }],
                173: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function e(e, t) {
                                for (var n = 0; n < t.length; n++) {
                                    var i = t[n];
                                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
                                }
                            }
                            return function(t, n, i) {
                                return n && e(t.prototype, n), i && e(t, i), t
                            }
                        }(),
                        s = e("../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = e("../core/utils"),
                        c = function(e) {
                            function t() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1500,
                                    o = arguments[1],
                                    a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 16384,
                                    s = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                                i(this, t);
                                var l = r(this, e.call(this));
                                return a > 16384 && (a = 16384), a > n && (a = n), l._properties = [!1, !0, !1, !1, !1], l._maxSize = n, l._batchSize = a, l._glBuffers = {}, l._bufferToUpdate = 0, l.interactiveChildren = !1, l.blendMode = u.BLEND_MODES.NORMAL, l.autoResize = s, l.roundPixels = !0, l.baseTexture = null, l.setProperties(o), l._tint = 0, l.tintRgb = new Float32Array(4), l.tint = 16777215, l
                            }
                            return o(t, e), t.prototype.setProperties = function(e) {
                                e && (this._properties[0] = "scale" in e ? !!e.scale : this._properties[0], this._properties[1] = "position" in e ? !!e.position : this._properties[1], this._properties[2] = "rotation" in e ? !!e.rotation : this._properties[2], this._properties[3] = "uvs" in e ? !!e.uvs : this._properties[3], this._properties[4] = "alpha" in e || "tint" in e ? !!e.alpha || !!e.tint : this._properties[4])
                            }, t.prototype.updateTransform = function() {
                                this.displayObjectUpdateTransform()
                            }, t.prototype.renderWebGL = function(e) {
                                var t = this;
                                this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable && (this.baseTexture || (this.baseTexture = this.children[0]._texture.baseTexture, this.baseTexture.hasLoaded || this.baseTexture.once("update", function() {
                                    return t.onChildrenChange(0)
                                })), e.setObjectRenderer(e.plugins.particle), e.plugins.particle.render(this))
                            }, t.prototype.onChildrenChange = function(e) {
                                var t = Math.floor(e / this._batchSize);
                                t < this._bufferToUpdate && (this._bufferToUpdate = t)
                            }, t.prototype.renderCanvas = function(e) {
                                if (this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable) {
                                    var t = e.context,
                                        n = this.worldTransform,
                                        i = !0,
                                        r = 0,
                                        o = 0,
                                        a = 0,
                                        s = 0;
                                    e.setBlendMode(this.blendMode), t.globalAlpha = this.worldAlpha, this.displayObjectUpdateTransform();
                                    for (var u = 0; u < this.children.length; ++u) {
                                        var l = this.children[u];
                                        if (l.visible) {
                                            var c = l._texture.frame;
                                            if (t.globalAlpha = this.worldAlpha * l.alpha, l.rotation % (2 * Math.PI) == 0) i && (t.setTransform(n.a, n.b, n.c, n.d, n.tx * e.resolution, n.ty * e.resolution), i = !1), r = l.anchor.x * (-c.width * l.scale.x) + l.position.x + .5, o = l.anchor.y * (-c.height * l.scale.y) + l.position.y + .5, a = c.width * l.scale.x, s = c.height * l.scale.y;
                                            else {
                                                i || (i = !0), l.displayObjectUpdateTransform();
                                                var h = l.worldTransform;
                                                e.roundPixels ? t.setTransform(h.a, h.b, h.c, h.d, h.tx * e.resolution | 0, h.ty * e.resolution | 0) : t.setTransform(h.a, h.b, h.c, h.d, h.tx * e.resolution, h.ty * e.resolution), r = l.anchor.x * -c.width + .5, o = l.anchor.y * -c.height + .5, a = c.width, s = c.height
                                            }
                                            var p = l._texture.baseTexture.resolution;
                                            t.drawImage(l._texture.baseTexture.source, c.x * p, c.y * p, c.width * p, c.height * p, r * e.resolution, o * e.resolution, a * e.resolution, s * e.resolution)
                                        }
                                    }
                                }
                            }, t.prototype.destroy = function(t) {
                                if (e.prototype.destroy.call(this, t), this._buffers)
                                    for (var n = 0; n < this._buffers.length; ++n) this._buffers[n].destroy();
                                this._properties = null, this._buffers = null
                            }, a(t, [{
                                key: "tint",
                                get: function() {
                                    return this._tint
                                },
                                set: function(e) {
                                    this._tint = e, (0, l.hex2rgb)(e, this.tintRgb)
                                }
                            }]), t
                        }(u.Container);
                    n.default = c
                }, {
                    "../core": 65,
                    "../core/utils": 125
                }],
                174: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./ParticleContainer");
                    Object.defineProperty(n, "ParticleContainer", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./webgl/ParticleRenderer");
                    Object.defineProperty(n, "ParticleRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    })
                }, {
                    "./ParticleContainer": 173,
                    "./webgl/ParticleRenderer": 176
                }],
                175: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = e("pixi-gl-core"),
                        a = i(o),
                        s = e("../../core/utils/createIndicesForQuads"),
                        u = i(s),
                        l = function() {
                            function e(t, n, i, o) {
                                r(this, e), this.gl = t, this.size = o, this.dynamicProperties = [], this.staticProperties = [];
                                for (var a = 0; a < n.length; ++a) {
                                    var s = n[a];
                                    s = {
                                        attribute: s.attribute,
                                        size: s.size,
                                        uploadFunction: s.uploadFunction,
                                        unsignedByte: s.unsignedByte,
                                        offset: s.offset
                                    }, i[a] ? this.dynamicProperties.push(s) : this.staticProperties.push(s)
                                }
                                this.staticStride = 0, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.dynamicStride = 0, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this.initBuffers()
                            }
                            return e.prototype.initBuffers = function() {
                                var e = this.gl,
                                    t = 0;
                                this.indices = (0, u.default)(this.size), this.indexBuffer = a.default.GLBuffer.createIndexBuffer(e, this.indices, e.STATIC_DRAW), this.dynamicStride = 0;
                                for (var n = 0; n < this.dynamicProperties.length; ++n) {
                                    var i = this.dynamicProperties[n];
                                    i.offset = t, t += i.size, this.dynamicStride += i.size
                                }
                                var r = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4);
                                this.dynamicData = new Float32Array(r), this.dynamicDataUint32 = new Uint32Array(r), this.dynamicBuffer = a.default.GLBuffer.createVertexBuffer(e, r, e.STREAM_DRAW);
                                var o = 0;
                                this.staticStride = 0;
                                for (var s = 0; s < this.staticProperties.length; ++s) {
                                    var l = this.staticProperties[s];
                                    l.offset = o, o += l.size, this.staticStride += l.size
                                }
                                var c = new ArrayBuffer(this.size * this.staticStride * 4 * 4);
                                this.staticData = new Float32Array(c), this.staticDataUint32 = new Uint32Array(c), this.staticBuffer = a.default.GLBuffer.createVertexBuffer(e, c, e.STATIC_DRAW), this.vao = new a.default.VertexArrayObject(e).addIndex(this.indexBuffer);
                                for (var h = 0; h < this.dynamicProperties.length; ++h) {
                                    var p = this.dynamicProperties[h];
                                    p.unsignedByte ? this.vao.addAttribute(this.dynamicBuffer, p.attribute, e.UNSIGNED_BYTE, !0, 4 * this.dynamicStride, 4 * p.offset) : this.vao.addAttribute(this.dynamicBuffer, p.attribute, e.FLOAT, !1, 4 * this.dynamicStride, 4 * p.offset)
                                }
                                for (var d = 0; d < this.staticProperties.length; ++d) {
                                    var f = this.staticProperties[d];
                                    f.unsignedByte ? this.vao.addAttribute(this.staticBuffer, f.attribute, e.UNSIGNED_BYTE, !0, 4 * this.staticStride, 4 * f.offset) : this.vao.addAttribute(this.staticBuffer, f.attribute, e.FLOAT, !1, 4 * this.staticStride, 4 * f.offset)
                                }
                            }, e.prototype.uploadDynamic = function(e, t, n) {
                                for (var i = 0; i < this.dynamicProperties.length; i++) {
                                    var r = this.dynamicProperties[i];
                                    r.uploadFunction(e, t, n, r.unsignedByte ? this.dynamicDataUint32 : this.dynamicData, this.dynamicStride, r.offset)
                                }
                                this.dynamicBuffer.upload()
                            }, e.prototype.uploadStatic = function(e, t, n) {
                                for (var i = 0; i < this.staticProperties.length; i++) {
                                    var r = this.staticProperties[i];
                                    r.uploadFunction(e, t, n, r.unsignedByte ? this.staticDataUint32 : this.staticData, this.staticStride, r.offset)
                                }
                                this.staticBuffer.upload()
                            }, e.prototype.destroy = function() {
                                this.dynamicProperties = null, this.dynamicBuffer.destroy(), this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this.staticProperties = null, this.staticBuffer.destroy(), this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null
                            }, e
                        }();
                    n.default = l
                }, {
                    "../../core/utils/createIndicesForQuads": 123,
                    "pixi-gl-core": 12
                }],
                176: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }

                    function r(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function a(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var s = e("../../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = e("./ParticleShader"),
                        c = i(l),
                        h = e("./ParticleBuffer"),
                        p = i(h),
                        d = e("../../core/utils"),
                        f = function(e) {
                            function t(n) {
                                r(this, t);
                                var i = o(this, e.call(this, n));
                                return i.shader = null, i.indexBuffer = null, i.properties = null, i.tempMatrix = new u.Matrix, i.CONTEXT_UID = 0, i
                            }
                            return a(t, e), t.prototype.onContextChange = function() {
                                var e = this.renderer.gl;
                                this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.shader = new c.default(e), this.properties = [{
                                    attribute: this.shader.attributes.aVertexPosition,
                                    size: 2,
                                    uploadFunction: this.uploadVertices,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aPositionCoord,
                                    size: 2,
                                    uploadFunction: this.uploadPosition,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aRotation,
                                    size: 1,
                                    uploadFunction: this.uploadRotation,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aTextureCoord,
                                    size: 2,
                                    uploadFunction: this.uploadUvs,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aColor,
                                    size: 1,
                                    unsignedByte: !0,
                                    uploadFunction: this.uploadTint,
                                    offset: 0
                                }]
                            }, t.prototype.start = function() {
                                this.renderer.bindShader(this.shader)
                            }, t.prototype.render = function(e) {
                                var t = e.children,
                                    n = e._maxSize,
                                    i = e._batchSize,
                                    r = this.renderer,
                                    o = t.length;
                                if (0 !== o) {
                                    o > n && (o = n);
                                    var a = e._glBuffers[r.CONTEXT_UID];
                                    a || (a = e._glBuffers[r.CONTEXT_UID] = this.generateBuffers(e));
                                    var s = t[0]._texture.baseTexture;
                                    this.renderer.setBlendMode(u.utils.correctBlendMode(e.blendMode, s.premultipliedAlpha));
                                    var l = r.gl,
                                        c = e.worldTransform.copy(this.tempMatrix);
                                    c.prepend(r._activeRenderTarget.projectionMatrix), this.shader.uniforms.projectionMatrix = c.toArray(!0), this.shader.uniforms.uColor = u.utils.premultiplyRgba(e.tintRgb, e.worldAlpha, this.shader.uniforms.uColor, s.premultipliedAlpha), this.shader.uniforms.uSampler = r.bindTexture(s);
                                    for (var h = 0, p = 0; h < o; h += i, p += 1) {
                                        var d = o - h;
                                        if (d > i && (d = i), p >= a.length) {
                                            if (!e.autoResize) break;
                                            a.push(this._generateOneMoreBuffer(e))
                                        }
                                        var f = a[p];
                                        f.uploadDynamic(t, h, d), e._bufferToUpdate === p && (f.uploadStatic(t, h, d), e._bufferToUpdate = p + 1), r.bindVao(f.vao), f.vao.draw(l.TRIANGLES, 6 * d)
                                    }
                                }
                            }, t.prototype.generateBuffers = function(e) {
                                for (var t = this.renderer.gl, n = [], i = e._maxSize, r = e._batchSize, o = e._properties, a = 0; a < i; a += r) n.push(new p.default(t, this.properties, o, r));
                                return n
                            }, t.prototype._generateOneMoreBuffer = function(e) {
                                var t = this.renderer.gl,
                                    n = e._batchSize,
                                    i = e._properties;
                                return new p.default(t, this.properties, i, n)
                            }, t.prototype.uploadVertices = function(e, t, n, i, r, o) {
                                for (var a = 0, s = 0, u = 0, l = 0, c = 0; c < n; ++c) {
                                    var h = e[t + c],
                                        p = h._texture,
                                        d = h.scale.x,
                                        f = h.scale.y,
                                        m = p.trim,
                                        _ = p.orig;
                                    m ? (s = m.x - h.anchor.x * _.width, a = s + m.width, l = m.y - h.anchor.y * _.height, u = l + m.height) : (a = _.width * (1 - h.anchor.x), s = _.width * -h.anchor.x, u = _.height * (1 - h.anchor.y), l = _.height * -h.anchor.y), i[o] = s * d, i[o + 1] = l * f, i[o + r] = a * d, i[o + r + 1] = l * f, i[o + 2 * r] = a * d, i[o + 2 * r + 1] = u * f, i[o + 3 * r] = s * d, i[o + 3 * r + 1] = u * f, o += 4 * r
                                }
                            }, t.prototype.uploadPosition = function(e, t, n, i, r, o) {
                                for (var a = 0; a < n; a++) {
                                    var s = e[t + a].position;
                                    i[o] = s.x, i[o + 1] = s.y, i[o + r] = s.x, i[o + r + 1] = s.y, i[o + 2 * r] = s.x, i[o + 2 * r + 1] = s.y, i[o + 3 * r] = s.x, i[o + 3 * r + 1] = s.y, o += 4 * r
                                }
                            }, t.prototype.uploadRotation = function(e, t, n, i, r, o) {
                                for (var a = 0; a < n; a++) {
                                    var s = e[t + a].rotation;
                                    i[o] = s, i[o + r] = s, i[o + 2 * r] = s, i[o + 3 * r] = s, o += 4 * r
                                }
                            }, t.prototype.uploadUvs = function(e, t, n, i, r, o) {
                                for (var a = 0; a < n; ++a) {
                                    var s = e[t + a]._texture._uvs;
                                    s ? (i[o] = s.x0, i[o + 1] = s.y0, i[o + r] = s.x1, i[o + r + 1] = s.y1, i[o + 2 * r] = s.x2, i[o + 2 * r + 1] = s.y2, i[o + 3 * r] = s.x3, i[o + 3 * r + 1] = s.y3, o += 4 * r) : (i[o] = 0, i[o + 1] = 0, i[o + r] = 0, i[o + r + 1] = 0, i[o + 2 * r] = 0, i[o + 2 * r + 1] = 0, i[o + 3 * r] = 0, i[o + 3 * r + 1] = 0, o += 4 * r)
                                }
                            }, t.prototype.uploadTint = function(e, t, n, i, r, o) {
                                for (var a = 0; a < n; ++a) {
                                    var s = e[t + a],
                                        u = s._texture.baseTexture.premultipliedAlpha,
                                        l = s.alpha,
                                        c = l < 1 && u ? (0, d.premultiplyTint)(s._tintRGB, l) : s._tintRGB + (255 * l << 24);
                                    i[o] = c, i[o + r] = c, i[o + 2 * r] = c, i[o + 3 * r] = c, o += 4 * r
                                }
                            }, t.prototype.destroy = function() {
                                this.renderer.gl && this.renderer.gl.deleteBuffer(this.indexBuffer), e.prototype.destroy.call(this), this.shader.destroy(), this.indices = null, this.tempMatrix = null
                            }, t
                        }(u.ObjectRenderer);
                    n.default = f, u.WebGLRenderer.registerPlugin("particle", f)
                }, {
                    "../../core": 65,
                    "../../core/utils": 125,
                    "./ParticleBuffer": 175,
                    "./ParticleShader": 177
                }],
                177: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }
                    n.__esModule = !0;
                    var a = e("../../core/Shader"),
                        s = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(a),
                        u = function(e) {
                            function t(n) {
                                return i(this, t), r(this, e.call(this, n, ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "attribute vec4 aColor;", "attribute vec2 aPositionCoord;", "attribute vec2 aScale;", "attribute float aRotation;", "uniform mat3 projectionMatrix;", "uniform vec4 uColor;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "void main(void){", "   float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);", "   float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);", "   vec2 v = vec2(x, y);", "   v = v + aPositionCoord;", "   gl_Position = vec4((projectionMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);", "   vTextureCoord = aTextureCoord;", "   vColor = aColor * uColor;", "}"].join("\n"), ["varying vec2 vTextureCoord;", "varying vec4 vColor;", "uniform sampler2D uSampler;", "void main(void){", "  vec4 color = texture2D(uSampler, vTextureCoord) * vColor;", "  gl_FragColor = color;", "}"].join("\n")))
                            }
                            return o(t, e), t
                        }(s.default);
                    n.default = u
                }, {
                    "../../core/Shader": 44
                }],
                178: [function(e, t, n) {
                    "use strict";
                    Math.sign || (Math.sign = function(e) {
                        return e = Number(e), 0 === e || isNaN(e) ? e : e > 0 ? 1 : -1
                    })
                }, {}],
                179: [function(e, t, n) {
                    "use strict";
                    var i = e("object-assign"),
                        r = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(i);
                    Object.assign || (Object.assign = r.default)
                }, {
                    "object-assign": 5
                }],
                180: [function(e, t, n) {
                    "use strict";
                    e("./Object.assign"), e("./requestAnimationFrame"), e("./Math.sign"), window.ArrayBuffer || (window.ArrayBuffer = Array), window.Float32Array || (window.Float32Array = Array), window.Uint32Array || (window.Uint32Array = Array), window.Uint16Array || (window.Uint16Array = Array)
                }, {
                    "./Math.sign": 178,
                    "./Object.assign": 179,
                    "./requestAnimationFrame": 181
                }],
                181: [function(e, t, n) {
                    (function(e) {
                        "use strict";
                        if (Date.now && Date.prototype.getTime || (Date.now = function() {
                                return (new Date).getTime()
                            }), !e.performance || !e.performance.now) {
                            var t = Date.now();
                            e.performance || (e.performance = {}), e.performance.now = function() {
                                return Date.now() - t
                            }
                        }
                        for (var n = Date.now(), i = ["ms", "moz", "webkit", "o"], r = 0; r < i.length && !e.requestAnimationFrame; ++r) {
                            var o = i[r];
                            e.requestAnimationFrame = e[o + "RequestAnimationFrame"], e.cancelAnimationFrame = e[o + "CancelAnimationFrame"] || e[o + "CancelRequestAnimationFrame"]
                        }
                        e.requestAnimationFrame || (e.requestAnimationFrame = function(e) {
                            if ("function" != typeof e) throw new TypeError(e + "is not a function");
                            var t = Date.now(),
                                i = 16 + n - t;
                            return i < 0 && (i = 0), n = t, setTimeout(function() {
                                n = Date.now(), e(performance.now())
                            }, i)
                        }), e.cancelAnimationFrame || (e.cancelAnimationFrame = function(e) {
                            return clearTimeout(e)
                        })
                    }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
                }, {}],
                182: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        var n = !1;
                        if (e && e._textures && e._textures.length)
                            for (var i = 0; i < e._textures.length; i++)
                                if (e._textures[i] instanceof p.Texture) {
                                    var r = e._textures[i].baseTexture; - 1 === t.indexOf(r) && (t.push(r), n = !0)
                                }
                        return n
                    }

                    function o(e, t) {
                        return e instanceof p.BaseTexture && (-1 === t.indexOf(e) && t.push(e), !0)
                    }

                    function a(e, t) {
                        if (e._texture && e._texture instanceof p.Texture) {
                            var n = e._texture.baseTexture;
                            return -1 === t.indexOf(n) && t.push(n), !0
                        }
                        return !1
                    }

                    function s(e, t) {
                        return t instanceof p.Text && (t.updateText(!0), !0)
                    }

                    function u(e, t) {
                        if (t instanceof p.TextStyle) {
                            var n = t.toFontString();
                            return p.TextMetrics.measureFont(n), !0
                        }
                        return !1
                    }

                    function l(e, t) {
                        if (e instanceof p.Text) {
                            -1 === t.indexOf(e.style) && t.push(e.style), -1 === t.indexOf(e) && t.push(e);
                            var n = e._texture.baseTexture;
                            return -1 === t.indexOf(n) && t.push(n), !0
                        }
                        return !1
                    }

                    function c(e, t) {
                        return e instanceof p.TextStyle && (-1 === t.indexOf(e) && t.push(e), !0)
                    }
                    n.__esModule = !0;
                    var h = e("../core"),
                        p = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(h),
                        d = e("./limiters/CountLimiter"),
                        f = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(d),
                        m = p.ticker.shared;
                    p.settings.UPLOADS_PER_FRAME = 4;
                    var _ = function() {
                        function e(t) {
                            var n = this;
                            i(this, e), this.limiter = new f.default(p.settings.UPLOADS_PER_FRAME), this.renderer = t, this.uploadHookHelper = null, this.queue = [], this.addHooks = [], this.uploadHooks = [], this.completes = [], this.ticking = !1, this.delayedTick = function() {
                                n.queue && n.prepareItems()
                            }, this.registerFindHook(l), this.registerFindHook(c), this.registerFindHook(r), this.registerFindHook(o), this.registerFindHook(a), this.registerUploadHook(s), this.registerUploadHook(u)
                        }
                        return e.prototype.upload = function(e, t) {
                            "function" == typeof e && (t = e, e = null), e && this.add(e), this.queue.length ? (t && this.completes.push(t), this.ticking || (this.ticking = !0, m.addOnce(this.tick, this, p.UPDATE_PRIORITY.UTILITY))) : t && t()
                        }, e.prototype.tick = function() {
                            setTimeout(this.delayedTick, 0)
                        }, e.prototype.prepareItems = function() {
                            for (this.limiter.beginFrame(); this.queue.length && this.limiter.allowedToUpload();) {
                                var e = this.queue[0],
                                    t = !1;
                                if (e && !e._destroyed)
                                    for (var n = 0, i = this.uploadHooks.length; n < i; n++)
                                        if (this.uploadHooks[n](this.uploadHookHelper, e)) {
                                            this.queue.shift(), t = !0;
                                            break
                                        }
                                t || this.queue.shift()
                            }
                            if (this.queue.length) m.addOnce(this.tick, this, p.UPDATE_PRIORITY.UTILITY);
                            else {
                                this.ticking = !1;
                                var r = this.completes.slice(0);
                                this.completes.length = 0;
                                for (var o = 0, a = r.length; o < a; o++) r[o]()
                            }
                        }, e.prototype.registerFindHook = function(e) {
                            return e && this.addHooks.push(e), this
                        }, e.prototype.registerUploadHook = function(e) {
                            return e && this.uploadHooks.push(e), this
                        }, e.prototype.add = function(e) {
                            for (var t = 0, n = this.addHooks.length; t < n && !this.addHooks[t](e, this.queue); t++);
                            if (e instanceof p.Container)
                                for (var i = e.children.length - 1; i >= 0; i--) this.add(e.children[i]);
                            return this
                        }, e.prototype.destroy = function() {
                            this.ticking && m.remove(this.tick, this), this.ticking = !1, this.addHooks = null, this.uploadHooks = null, this.renderer = null, this.completes = null, this.queue = null, this.limiter = null, this.uploadHookHelper = null
                        }, e
                    }();
                    n.default = _
                }, {
                    "../core": 65,
                    "./limiters/CountLimiter": 185
                }],
                183: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }

                    function a(e, t) {
                        if (t instanceof u.BaseTexture) {
                            var n = t.source,
                                i = 0 === n.width ? e.canvas.width : Math.min(e.canvas.width, n.width),
                                r = 0 === n.height ? e.canvas.height : Math.min(e.canvas.height, n.height);
                            return e.ctx.drawImage(n, 0, 0, i, r, 0, 0, e.canvas.width, e.canvas.height), !0
                        }
                        return !1
                    }
                    n.__esModule = !0;
                    var s = e("../../core"),
                        u = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(s),
                        l = e("../BasePrepare"),
                        c = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(l),
                        h = 16,
                        p = function(e) {
                            function t(n) {
                                i(this, t);
                                var o = r(this, e.call(this, n));
                                return o.uploadHookHelper = o, o.canvas = document.createElement("canvas"), o.canvas.width = h, o.canvas.height = h, o.ctx = o.canvas.getContext("2d"), o.registerUploadHook(a), o
                            }
                            return o(t, e), t.prototype.destroy = function() {
                                e.prototype.destroy.call(this), this.ctx = null, this.canvas = null
                            }, t
                        }(c.default);
                    n.default = p, u.CanvasRenderer.registerPlugin("prepare", p)
                }, {
                    "../../core": 65,
                    "../BasePrepare": 182
                }],
                184: [function(e, t, n) {
                    "use strict";

                    function i(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    n.__esModule = !0;
                    var r = e("./webgl/WebGLPrepare");
                    Object.defineProperty(n, "webgl", {
                        enumerable: !0,
                        get: function() {
                            return i(r).default
                        }
                    });
                    var o = e("./canvas/CanvasPrepare");
                    Object.defineProperty(n, "canvas", {
                        enumerable: !0,
                        get: function() {
                            return i(o).default
                        }
                    });
                    var a = e("./BasePrepare");
                    Object.defineProperty(n, "BasePrepare", {
                        enumerable: !0,
                        get: function() {
                            return i(a).default
                        }
                    });
                    var s = e("./limiters/CountLimiter");
                    Object.defineProperty(n, "CountLimiter", {
                        enumerable: !0,
                        get: function() {
                            return i(s).default
                        }
                    });
                    var u = e("./limiters/TimeLimiter");
                    Object.defineProperty(n, "TimeLimiter", {
                        enumerable: !0,
                        get: function() {
                            return i(u).default
                        }
                    })
                }, {
                    "./BasePrepare": 182,
                    "./canvas/CanvasPrepare": 183,
                    "./limiters/CountLimiter": 185,
                    "./limiters/TimeLimiter": 186,
                    "./webgl/WebGLPrepare": 187
                }],
                185: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e(t) {
                            i(this, e), this.maxItemsPerFrame = t, this.itemsLeft = 0
                        }
                        return e.prototype.beginFrame = function() {
                            this.itemsLeft = this.maxItemsPerFrame
                        }, e.prototype.allowedToUpload = function() {
                            return this.itemsLeft-- > 0
                        }, e
                    }();
                    n.default = r
                }, {}],
                186: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var r = function() {
                        function e(t) {
                            i(this, e), this.maxMilliseconds = t, this.frameStart = 0
                        }
                        return e.prototype.beginFrame = function() {
                            this.frameStart = Date.now()
                        }, e.prototype.allowedToUpload = function() {
                            return Date.now() - this.frameStart < this.maxMilliseconds
                        }, e
                    }();
                    n.default = r
                }, {}],
                187: [function(e, t, n) {
                    "use strict";

                    function i(e, t) {
                        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                    }

                    function r(e, t) {
                        if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !t || "object" != typeof t && "function" != typeof t ? e : t
                    }

                    function o(e, t) {
                        if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                    }

                    function a(e, t) {
                        return t instanceof c.BaseTexture && (t._glTextures[e.CONTEXT_UID] || e.textureManager.updateTexture(t), !0)
                    }

                    function s(e, t) {
                        return t instanceof c.Graphics && ((t.dirty || t.clearDirty || !t._webGL[e.plugins.graphics.CONTEXT_UID]) && e.plugins.graphics.updateGraphics(t), !0)
                    }

                    function u(e, t) {
                        return e instanceof c.Graphics && (t.push(e), !0)
                    }
                    n.__esModule = !0;
                    var l = e("../../core"),
                        c = function(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }(l),
                        h = e("../BasePrepare"),
                        p = function(e) {
                            return e && e.__esModule ? e : {
                                default: e
                            }
                        }(h),
                        d = function(e) {
                            function t(n) {
                                i(this, t);
                                var o = r(this, e.call(this, n));
                                return o.uploadHookHelper = o.renderer, o.registerFindHook(u), o.registerUploadHook(a), o.registerUploadHook(s), o
                            }
                            return o(t, e), t
                        }(p.default);
                    n.default = d, c.WebGLRenderer.registerPlugin("prepare", d)
                }, {
                    "../../core": 65,
                    "../BasePrepare": 182
                }],
                188: [function(e, t, n) {
                    (function(t) {
                        "use strict";

                        function i(e) {
                            if (e && e.__esModule) return e;
                            var t = {};
                            if (null != e)
                                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
                            return t.default = e, t
                        }
                        n.__esModule = !0, n.loader = n.prepare = n.particles = n.mesh = n.loaders = n.interaction = n.filters = n.extras = n.extract = n.accessibility = void 0;
                        var r = e("./polyfill");
                        Object.keys(r).forEach(function(e) {
                            "default" !== e && "__esModule" !== e && Object.defineProperty(n, e, {
                                enumerable: !0,
                                get: function() {
                                    return r[e]
                                }
                            })
                        });
                        var o = e("./core");
                        Object.keys(o).forEach(function(e) {
                            "default" !== e && "__esModule" !== e && Object.defineProperty(n, e, {
                                enumerable: !0,
                                get: function() {
                                    return o[e]
                                }
                            })
                        });
                        var a = e("./deprecation"),
                            s = function(e) {
                                return e && e.__esModule ? e : {
                                    default: e
                                }
                            }(a),
                            u = e("./accessibility"),
                            l = i(u),
                            c = e("./extract"),
                            h = i(c),
                            p = e("./extras"),
                            d = i(p),
                            f = e("./filters"),
                            m = i(f),
                            _ = e("./interaction"),
                            g = i(_),
                            y = e("./loaders"),
                            v = i(y),
                            b = e("./mesh"),
                            x = i(b),
                            T = e("./particles"),
                            w = i(T),
                            S = e("./prepare"),
                            P = i(S);
                        o.utils.mixins.performMixins();
                        var C = v.shared || null;
                        n.accessibility = l, n.extract = h, n.extras = d, n.filters = m, n.interaction = g, n.loaders = v, n.mesh = x, n.particles = w, n.prepare = P, n.loader = C, "function" == typeof s.default && (0, s.default)(n), t.PIXI = n
                    }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
                }, {
                    "./accessibility": 42,
                    "./core": 65,
                    "./deprecation": 131,
                    "./extract": 133,
                    "./extras": 141,
                    "./filters": 153,
                    "./interaction": 159,
                    "./loaders": 162,
                    "./mesh": 171,
                    "./particles": 174,
                    "./polyfill": 180,
                    "./prepare": 184
                }]
            }, {}, [188])(188)
        }), define("skbJet/component/utils/Interface", [], function() {
            function e(e, t) {
                if (this.functions = e || [], t)
                    for (var n = 0; n < t.functions.length; n++) this.functions.indexOf(t.functions[n]) < 0 && this.functions.push(t.functions[n])
            }

            function t() {
                throw "Not implemented yet."
            }
            return e.prototype.implementedBy = function(e) {
                for (var n = 0; n < this.functions.length; n++) e[this.functions[n]] || (e[this.functions[n]] = t)
            }, e.prototype.isImplementedBy = function(e) {
                for (var t = 0; t < this.functions.length; t++) {
                    var n = e[this.functions[t]];
                    if (!n || "function" != typeof n) return !1
                }
                return !0
            }, e
        }), define("skbJet/component/gladRenderer/IgladRenderer", ["skbJet/component/utils/Interface"], function(e) {
            return new e(["init", "showScene", "fitSize", "getSize", "setSize", "getTicker", "forceRender", "getSprite", "getAnimation"])
        }), define("skbJet/component/gladRenderer/gladUtil", [], function() {
            function e(e, t) {
                function n(e) {
                    var t = e._style;
                    if (t && (t._width && (t._width = Number(t._width) * i), t._height && (t._height = Number(t._height) * i), t._top && (t._top = Number(t._top) * i), t._left && (t._left = Number(t._left) * i), t._background && t._background._position && (t._background._position._x && (t._background._position._x = Number(t._background._position._x) * i), t._background._position._y && (t._background._position._y = Number(t._background._position._y) * i)), t._font && t._font._size && (t._font._size = Number(t._font._size) * i), t._text && t._text._lineHeight && (t._text._lineHeight = Number(t._text._lineHeight) * i), t._text && t._text._strokeWidth && (t._text._strokeWidth = Number(t._text._strokeWidth) * i)), e._SPRITES)
                        for (var r = 0; r < e._SPRITES.length; r++) n(e._SPRITES[r])
                }
                var i = t || 2;
                e._width && (e._width = Number(e._width) * i), e._height && (e._height = Number(e._height) * i);
                for (var r = 0; r < e._SCENES.length; r++) {
                    for (var o = 0; o < e._SCENES[r]._LAYERS.length; o++) n(e._SCENES[r]._LAYERS[o]);
                    for (var a = 0; a < e._SCENES[r]._ANIMATIONS.length; a++) {
                        var s = e._SCENES[r]._ANIMATIONS[a];
                        if ("_KEY_FRAME_ANIMATION" !== s._type) throw "Other animation type not support conver sprite pixel rate yet.";
                        for (var u = 0; u < s._keyFrames.length; u++)
                            for (var l = 0; l < s._keyFrames[u]._SPRITES.length; l++) n(s._keyFrames[u]._SPRITES[l])
                    }
                }
            }

            function t(e) {
                function t(e) {
                    if (e && e._style && e._style._text && e._style._text._token && (e._style._text._token = " "), e && e._SPRITES)
                        for (var n = 0; n < e._SPRITES.length; n++) t(e._SPRITES[n])
                }
                for (var n = 0; n < e._SCENES.length; n++)
                    for (var i = 0; i < e._SCENES[n]._LAYERS.length; i++) t(e._SCENES[n]._LAYERS[i])
            }

            function n(e, t) {
                if (e[t])
                    for (var n in e) t === n ? e[n].show(!0) : e[n].show(!1)
            }

            function i(e, t) {
                var n = e - t;
                return (n = n > 0 ? n : -n) <= 1
            }

            function r(e, t, n, r, a) {
                if (!(0 === n || 0 === r || 0 === e || 0 === t || i(e, o.w) && i(t, o.h))) {
                    o.w = e, o.h = t;
                    var s, u, l = r / n;
                    t / e > l ? (s = Math.round(e), u = Math.round(e * l), a.style.transform = "translate(0px," + (t - u) / 2 + "px)") : (u = Math.round(t), s = Math.round(t / l), a.style.transform = "translate(" + (e - s) / 2 + "px,0px)"), a.style.width = s + "px", a.style.height = u + "px"
                }
            }
            var o = {
                w: -1,
                h: -1
            };
            return {
                convertPixelRate: e,
                clearGladDataText: t,
                showScene: n,
                fitSize: r
            }
        }), define("skbJet/component/gladPixiRenderer/globalStore", [], function() {
            return {
                lib: {},
                animMap: {}
            }
        }), define("skbJet/component/utils/PauseTimer", [], function() {
            function e(t, n) {
                this.index = e.index++, e.map[this.index] = this, this.callBack = t, this.delay = n, this.startTime = Date.now(), this.pauseTime = null;
                var i = this;
                this._innerIndex = window.setTimeout(function() {
                    delete e.map[i.index], i.callBack()
                }, n)
            }

            function t(e, n) {
                this.index = t.index++, t.map[this.index] = this, this.callBack = e, this.delay = n, this.startTime = Date.now(), this.pauseTime = null, this._innerTimeoutIndex = null;
                var i = this;
                this._innerIndex = window.setInterval(i.callBack, n)
            }

            function n(t, n) {
                return new e(t, n).index
            }

            function i(t) {
                e.map[t] && e.map[t].clear()
            }

            function r(e, n) {
                return new t(e, n).index
            }

            function o(e) {
                t.map[e] && t.map[e].clear()
            }

            function a() {
                t.pause(), e.pause()
            }

            function s() {
                t.resume(), e.resume()
            }
            e.index = 1, e.map = {}, e.pause = function() {
                for (var t in e.map) e.map[t] && e.map[t].pause()
            }, e.resume = function() {
                for (var t in e.map) e.map[t] && e.map[t].resume()
            }, e.prototype.pause = function() {
                var e = this;
                e._innerIndex && (window.clearTimeout(e._innerIndex), e.pauseTime = Date.now() - e.startTime, e._innerIndex = null)
            }, e.prototype.resume = function() {
                var t = this;
                t._innerIndex || null === t.pauseTime || void 0 === t.pauseTime || (this._innerIndex = window.setTimeout(function() {
                    delete e.map[t.index], t.callBack()
                }, t.delay - t.pauseTime), t.startTime = Date.now() - t.pauseTime, this.pauseTime = null)
            }, e.prototype.clear = function() {
                var t = this;
                t._innerIndex && (window.clearTimeout(t._innerIndex), t._innerIndex = null), delete e.map[t.index]
            }, t.index = 1, t.map = {}, t.pause = function() {
                for (var e in t.map) t.map[e] && t.map[e].pause()
            }, t.resume = function() {
                for (var e in t.map) t.map[e] && t.map[e].resume()
            }, t.prototype.pause = function() {
                var e = this;
                e._innerIndex ? (window.clearInterval(e._innerIndex), e.pauseTime = (Date.now() - e.startTime) % e.delay, e._innerIndex = null, e._innerTimeoutIndex = null) : e._innerTimeoutIndex && (window.clearTimeout(e._innerTimeoutIndex), e.pauseTime = Date.now() - e.startTime, e._innerIndex = null, e._innerTimeoutIndex = null)
            }, t.prototype.resume = function() {
                var e = this;
                e._innerIndex || e._innerTimeoutIndex || null === e.pauseTime || void 0 === e.pauseTime || (e._innerTimeoutIndex = window.setTimeout(function() {
                    e._innerIndex = window.setInterval(e.callBack, e.delay), e._innerTimeoutIndex = null, e.callBack()
                }, e.delay - e.pauseTime), e.startTime = Date.now() - e.pauseTime, this.pauseTime = null)
            }, t.prototype.clear = function() {
                var e = this;
                e._innerIndex ? (window.clearInterval(e._innerIndex), e._innerIndex = null, e._innerTimeoutIndex = null) : e._innerTimeoutIndex && (window.clearTimeout(e._innerTimeoutIndex), e._innerIndex = null, e._innerTimeoutIndex = null), delete t.map[e.index]
            };
            var u = {
                setTimeout: n,
                clearTimeout: i,
                setInterval: r,
                clearInterval: o,
                pause: a,
                resume: s
            };
            return document.addEventListener("visibilitychange", function() {
                "hidden" === document.visibilityState ? u.pause() : u.resume()
            }), u
        }), define("skbJet/component/gladRenderer/view/IViewObject", ["skbJet/component/utils/Interface"], function(e) {
            return new e(["getChildren", "getParent", "getData", "show"])
        }), define("skbJet/component/gladRenderer/view/ISprite", ["skbJet/component/utils/Interface", "skbJet/component/gladRenderer/view/IViewObject"], function(e, t) {
            return new e(["getCurrentStyle", "draw", "addChildFromData", "getText", "setText", "getTextWidth", "setImage", "getImage", "on", "off", "getName", "getParent", "setTextAutoFit", "updateCurrentStyle", "toLocal", "toGlobal"], t)
        }), define("skbJet/component/gladRenderer/view/spriteUtil", [], function() {
            function e(e) {
                return e.match(/^_/) ? e.substring(1) : e
            }

            function t() {
                return {
                    _width: 0,
                    _height: 0,
                    _top: 0,
                    _left: 0,
                    _opacity: 1,
                    _background: {
                        _color: null,
                        _imagePlate: null,
                        _position: {
                            _x: 0,
                            _y: 0
                        }
                    },
                    _transform: {
                        _scale: {
                            _x: 1,
                            _y: 1
                        },
                        _rotate: 0
                    },
                    _text: {
                        _align: "center",
                        _color: "000000",
                        _token: "",
                        _lineHeight: 12,
                        _strokeWidth: 0,
                        _strokeColor: "",
                        _gradient: {
                            _color: ["000000", "000000"],
                            _stop: [0, 1],
                            _orientation: "vertical"
                        }
                    },
                    _font: {
                        _size: 12,
                        _weight: "normal"
                    },
                    _display: "block"
                }
            }

            function n(e, t) {
                if (!t) return e;
                if (null != t._width && "" !== t._width && (e._width = Number(t._width)), null != t._height && "" !== t._height && (e._height = Number(t._height)), null != t._left && "" !== t._left && (e._left = Number(t._left)), null != t._top && "" !== t._top && (e._top = Number(t._top)), null != t._opacity && ("string" == typeof t._opacity && "" === t._opacity || (e._opacity = Number(t._opacity))), t._background ? (t._background._color && (e._background._color = t._background._color), t._background._imagePlate && e._background._imagePlate !== t._background._imagePlate ? (e._background._imagePlate = t._background._imagePlate, e._background._imagePlateUpdateFlag = !0) : e._background._imagePlateUpdateFlag = !1, t._background._position && (null != t._background._position._x && "" !== t._background._position._x && (e._background._position._x = Number(t._background._position._x)), null != t._background._position._y && "" !== t._background._position._y && (e._background._position._y = Number(t._background._position._y)))) : e._background._imagePlateUpdateFlag = !1, t._transform) {
                    if (t._transform._scale) {
                        if (null != t._transform._scale._x && ("string" != typeof t._transform._scale._x || "" !== t._transform._scale._x)) {
                            var n = Number(t._transform._scale._x);
                            e._transform._scale._x = n
                        }
                        if (null != t._transform._scale._y && ("string" != typeof t._transform._scale._y || "" !== t._transform._scale._y)) {
                            var n = Number(t._transform._scale._y);
                            e._transform._scale._y = n
                        }
                    }
                    null != t._transform._rotate && "" !== t._transform._rotate && (e._transform._rotate = Number(t._transform._rotate))
                }
                return t._text && (t._text._align && (e._text._align = t._text._align), t._text._color && (e._text._color = t._text._color), null != t._text._token && (e._text._token = t._text._token), null != t._text._strokeWidth && (e._text._strokeWidth = t._text._strokeWidth), null != t._text._strokeColor && (e._text._strokeColor = t._text._strokeColor), t._text._gradient && (null != t._text._gradient._color && (e._text._gradient._color = t._text._gradient._color), null != t._text._gradient._stop && (e._text._gradient._stop = t._text._gradient._stop), null != t._text._gradient._orientation && (e._text._gradient._orientation = t._text._gradient._orientation)), null != t._text._lineHeight ? e._text._lineHeight = t._text._lineHeight : t._font && t._font._size && (e._text._gradient && (e._text._gradient._color.length > 2 || e._text._gradient._stop[0] !== e._text._gradient._stop[1]) ? e._text._lineHeight = 1.2 * t._font._size : e._text._lineHeight = t._font._size)), t._font && (t._font._size && (e._font._size = t._font._size), t._font._weight && (e._font._weight = t._font._weight), t._font._family && (e._font._family = t._font._family)), t._display && (e._display = t._display), t._overflow && (e._overflow = t._overflow), e
            }

            function i(e) {
                return !(null === e || void 0 === e || "" === e)
            }

            function r(e, t) {
                var i = e.getCurrentStyle();
                if (!i) throw "Sprite style not init yet.";
                n(i, t), e.draw()
            }

            function o(e, t) {
                var n = e.getCurrentStyle(),
                    i = n._width,
                    r = n._height,
                    o = n._top,
                    a = n._left,
                    s = n._transform._scale._x,
                    u = n._transform._scale._y,
                    l = n._transform._rotate * Math.PI / 180,
                    c = t.x,
                    h = t.y;
                c = c - a - i / 2, h = h - o - r / 2;
                var p = c * Math.cos(l) + h * Math.sin(l),
                    d = h * Math.cos(l) - c * Math.sin(l);
                return c = p / s, h = d / u, c += i / 2, h += r / 2, {
                    x: c,
                    y: h
                }
            }

            function a(e, t) {
                for (var n = [], i = t; e._currentStyle && (n.push(e), e.parent);) e = e.parent;
                for (var r = n.length - 1; r >= 0; r--) e = n[r], i = o(e, i);
                return i
            }

            function s(e, t) {
                var n = e.getCurrentStyle(),
                    i = n._width,
                    r = n._height,
                    o = n._top,
                    a = n._left,
                    s = n._transform._scale._x,
                    u = n._transform._scale._y,
                    l = n._transform._rotate * Math.PI / 180,
                    c = t.x,
                    h = t.y;
                c -= i / 2, h -= r / 2, c *= s, h *= u;
                var p = c * Math.cos(l) - h * Math.sin(l),
                    d = h * Math.cos(l) + c * Math.sin(l);
                return c = p + a + i / 2, h = d + o + r / 2, {
                    x: c,
                    y: h
                }
            }

            function u(e, t) {
                for (var n = t; e._currentStyle && n && (n = s(e, n), e.parent);) e = e.parent;
                return n
            }
            return {
                removeUnderLinePrefix: e,
                getDefaultStyle: t,
                updateStyle: n,
                updateCurrentStyle: r,
                isNotEmpty: i,
                toLocal: a,
                toGlobal: u
            }
        }), define("skbJet/component/gladPixiRenderer/Sprite", ["com/pixijs/pixi", "skbJet/component/gladRenderer/view/ISprite", "skbJet/component/gladRenderer/view/spriteUtil", "skbJet/component/gladPixiRenderer/globalStore"], function(e, t, n, i) {
            function r(e) {
                this.sprites = {}, this.data = e, i.lib[e._name] = this, this._currentStyle = s(), this.updateCurrentStyle(this.data._style);
                for (var t = 0; t < e._SPRITES.length; t++) this.addChildFromData(e._SPRITES[t])
            }

            function o() {
                var t = {};
                for (var n in e.utils.TextureCache) {
                    var i = n.match(/^(\w+)_\d+$/);
                    if (i) {
                        var r = i[1];
                        t[r] || (t[r] = []), t[r].push(n)
                    }
                }
                for (var o in t) t[o].sort(function(e, t) {
                    return parseInt(e.match(/\d+$/)[0]) - parseInt(t.match(/\d+$/)[0])
                });
                return t
            }
            var a = n.removeUnderLinePrefix,
                s = n.getDefaultStyle,
                u = n.updateStyle,
                l = n.isNotEmpty;
            t.implementedBy(r.prototype), r.prototype.getChildren = function() {
                return this.sprites
            }, r.prototype.getData = function() {
                return this.data
            }, r.prototype.getCurrentStyle = function() {
                return this._currentStyle
            }, r.prototype.draw = function() {
                var t = this;
                t.pixiContainer || (t.pixiContainer = new e.Container, t.pixiContainer.name = t.data._name);
                var n = t._currentStyle,
                    i = t.pixiContainer,
                    r = Number(n._width),
                    o = Number(n._height);
                if (i.pivot.x = r / 2, i.pivot.y = o / 2, i.x = Number(n._left) + i.pivot.x, i.y = Number(n._top) + i.pivot.y, l(n._background)) {
                    if (l(n._background._color)) {
                        var s = n._background._color + "";
                        if ("#" === s.charAt(0) && (s = s.substring(1)), s = s.toUpperCase(), i.$bgColor && i.$bgColor._color !== s) {
                            var u = i.$bgColor;
                            i.removeChild(u), u.destroy(), i.$bgColor = null
                        }
                        i.$bgColor || (i.$bgColor = new e.Graphics, i.addChild(i.$bgColor), i.$bgColor.width = r, i.$bgColor.height = o, i.$bgColor._color = s, i.$bgColor.beginFill(Number("0x" + s), 1), i.$bgColor.drawRect(0, 0, r, o), i.$bgColor.endFill()), i.$bgColor.width = r, i.$bgColor.height = o
                    }
                    if (i.$sprite || (i.$sprite = new e.Sprite, i.addChildAt(i.$sprite, 0)), i.$sprite.width = r, i.$sprite.height = o, l(n._background._imagePlate) && n._background._imagePlateUpdateFlag) {
                        var c = a(n._background._imagePlate);
                        i.$sprite.texture = e.Texture.fromFrame(c)
                    }
                }
                if (l(n._text) && l(n._text._token)) {
                    i.$text || (i.$text = new e.Text, i.addChild(i.$text));
                    var h = i.$text;
                    if (l(n._text._align) && (h.style.align = n._text._align), l(n._text._color) && (h.style.fill = "#" + n._text._color), l(n._text._strokeWidth) && (h.style.strokeThickness = n._text._strokeWidth, h.style.miterLimit = 2.6), l(n._text._strokeColor) && (h.style.stroke = "#" + n._text._strokeColor), 2 !== n._text._gradient._color.length || n._text._gradient._color[1] !== n._text._gradient._color[0]) {
                        for (var p = [], d = 0; d < n._text._gradient._color.length; d++) p[d] = "#" + n._text._gradient._color[d];
                        h.style.fill = p, h.style.fillGradientStops = n._text._gradient._stop, "horizontal" === n._text._gradient._orientation ? h.style.fillGradientType = e.TEXT_GRADIENT.LINEAR_HORIZONTAL : h.style.fillGradientType = e.TEXT_GRADIENT.LINEAR_VERTICAL
                    }
                    l(n._font) && (l(n._font._family) && (h.style.fontFamily = n._font._family.split(",")[0]), l(n._font._size) && (h.style.fontSize = n._font._size), l(n._font._weight) && (h.style.fontWeight = "" + n._font._weight)), l(n._text._lineHeight) && (h.style.lineHeight = Number(n._text._lineHeight)), l(n._width) && (h.style.wordWrapWidth = Number(n._width), h.style.wordWrap = !0), l(n._height) && 0 === h.style.padding && (h.style.padding = 1), h.text = n._text._token, l(n._font) && l(n._font._size) && t.autoFontFitText && (h.style.wordWrap = !1, h.scale.set(1), h.width > r && h.scale.set(r / h.width), h.y = Math.floor(o * (1 - h.scale.y) / 2));
                    var f = h.style.align;
                    h.x = "right" === f ? r - h.width : "center" === f ? i.x - h.width / 2 - Number(n._left) : 0
                } else i.$text && (i.$text.text = "");
                l(n._transform) && l(n._transform._scale) && (l(n._transform._scale._x) && (i.scale.x = Number(n._transform._scale._x)), l(n._transform._scale._y) && (i.scale.y = Number(n._transform._scale._y))), l(n._transform) && l(n._transform._rotate) && (i.rotation = Number(n._transform._rotate) * Math.PI / 180), l(n._opacity) && (i.alpha = Number(n._opacity))
            }, r.prototype.updateCurrentStyle = function(e) {
                n.updateCurrentStyle(this, e)
            }, r.prototype.addChildFromData = function(e) {
                var t = new r(e);
                return this.sprites[e._name] = t, t.parent = this, this.pixiContainer.addChild(t.pixiContainer), t
            }, r.prototype.setText = function(e) {
                this.updateCurrentStyle({
                    _text: {
                        _token: e
                    }
                })
            }, r.prototype.getText = function() {
                return this.pixiContainer.$text.text
            }, r.prototype.getTextWidth = function() {
                return this.pixiContainer.$text.width
            }, r.prototype.setImage = function(t) {
                e.utils.TextureCache[t] && (u(this._currentStyle, {
                    _background: {
                        _imagePlate: t
                    }
                }), this.pixiContainer.$sprite.texture = e.Texture.fromFrame(t))
            }, r.prototype.getImage = function() {
                return this._currentStyle && this._currentStyle._background ? this._currentStyle._background._imagePlate : null
            }, r.prototype.on = function(e, t) {
                if (this.pixiContainer.interactive = !0, "click" === e) this.pixiContainer.on("touchstart", t), this.pixiContainer.on("click", t);
                else if ("mouseover" === e) this.pixiContainer.on(e, t);
                else if ("mouseout" === e) "ontouchend" in window ? this.pixiContainer.on("touchendoutside", t) : this.pixiContainer.on("mouseout", t);
                else if ("mousedown" === e) "ontouchstart" in window ? this.pixiContainer.on("touchstart", t) : this.pixiContainer.on("mousedown", t);
                else if ("mouseup" === e) "ontouchend" in window ? this.pixiContainer.on("touchend", t) : this.pixiContainer.on("mouseup", t);
                else if ("mouseupoutside" === e) "ontouchend" in window ? this.pixiContainer.on("touchendoutside", t) : this.pixiContainer.on("mouseupoutside", t);
                else {
                    if ("mousemove" !== e) throw "Not supported event!";
                    "ontouchmove" in window ? this.pixiContainer.on("touchmove", t) : this.pixiContainer.on("mousemove", t)
                }
            }, r.prototype.off = function(e, t) {
                if ("click" === e) "ontouchstart" in window ? this.pixiContainer.off("touchstart", t) : this.pixiContainer.off("click", t);
                else if ("mouseover" === e) this.pixiContainer.off("mouseover", t);
                else if ("mouseout" === e) "ontouchend" in window ? this.pixiContainer.off("touchendoutside", t) : this.pixiContainer.off("mouseout", t);
                else if ("mousedown" === e) "ontouchstart" in window ? this.pixiContainer.off("touchstart", t) : this.pixiContainer.off("mousedown", t);
                else {
                    if ("mouseup" !== e) throw "Not supported event!";
                    "ontouchend" in window ? this.pixiContainer.off("touchend", t) : this.pixiContainer.off("mouseup", t)
                }
            }, r.prototype.toLocal = function(e) {
                return n.toLocal(this, e)
            }, r.prototype.toGlobal = function(e) {
                return n.toGlobal(this, e)
            }, r.prototype.getName = function() {
                return this.data._name
            }, r.prototype.getParent = function() {
                return this.parent
            }, r.prototype.show = function(e) {
                this.pixiContainer.visible = !!e
            };
            var c = null;
            return r.addSpriteSheetAnimation = function(e, t) {
                c || (c = o()), c[e] = t
            }, r.getSpriteSheetAnimationFrameArray = function(e) {
                return c || (c = o()), c[e]
            }, r.prototype.gotoAndPlay = function(t, n, i, r) {
                if (c || (c = o()), !c[t]) throw "Cannot find sprite animation " + t;
                this.pixiContainer.$sprite ? this.pixiContainer.$sprite.animName !== t && (this.pixiContainer.removeChild(this.pixiContainer.$sprite).destroy(), this.pixiContainer.$sprite = e.extras.AnimatedSprite.fromFrames(c[t]), this.pixiContainer.addChildAt(this.pixiContainer.$sprite, this.data._style._background && this.data._style._background._color ? 1 : 0), this.pixiContainer.$sprite.width = Number(this._currentStyle._width), this.pixiContainer.$sprite.height = Number(this._currentStyle._height)) : (this.pixiContainer.$sprite = e.extras.AnimatedSprite.fromFrames(c[t]), this.pixiContainer.addChildAt(this.pixiContainer.$sprite, this.data._style._background._color ? 1 : 0)), this.pixiContainer.$sprite.animName = t, this.pixiContainer.$sprite.animationSpeed = n || 1, this.pixiContainer.$sprite.loop = !!i;
                var a = this;
                this.pixiContainer.$sprite.onComplete = function() {
                    "function" == typeof a.onComplete && a.onComplete()
                }, (!r || r < 0) && (r = 0), this.pixiContainer.$sprite.gotoAndPlay(r)
            }, r.prototype.stopPlay = function() {
                this.pixiContainer.$sprite && this.pixiContainer.$sprite.stop && this.pixiContainer.$sprite.stop()
            }, r.prototype.gotoAndStop = function(e) {
                this.pixiContainer.$sprite && this.pixiContainer.$sprite.gotoAndStop && this.pixiContainer.$sprite.gotoAndStop(e)
            }, r.prototype.onComplete = null, r.prototype.autoFontFitText = !1, r.prototype.setTextAutoFit = function(e) {
                this.autoFontFitText = e
            }, r
        }), define("skbJet/component/gladPixiRenderer/Layer", ["com/pixijs/pixi", "skbJet/component/gladPixiRenderer/Sprite", "skbJet/component/gladRenderer/view/IViewObject", "skbJet/component/gladPixiRenderer/globalStore"], function(e, t, n, i) {
            function r(n) {
                this.sprites = {}, this.data = n, i.lib[n._name] = this, this.pixiContainer = new e.Container, this.pixiContainer.name = n._name;
                for (var r = 0; r < n._SPRITES.length; r++) {
                    var o = n._SPRITES[r];
                    this.sprites[o._name] = new t(o), this.sprites[o._name].parent = this, this.pixiContainer.addChild(this.sprites[o._name].pixiContainer)
                }
            }
            return n.implementedBy(r.prototype), r.prototype.getChildren = function() {
                return this.sprites
            }, r.prototype.getParent = function() {
                return null
            }, r.prototype.getData = function() {
                return this.data
            }, r.prototype.show = function(e) {
                this.pixiContainer.visible = !!e
            }, r
        }), define("skbJet/component/gladRenderer/animation/IAnimation", ["skbJet/component/utils/Interface"], function(e) {
            return new e(["isPlaying", "onTick"])
        }), define("skbJet/component/gladRenderer/animation/KeyFrameAnimation", ["skbJet/component/gladRenderer/animation/IAnimation"], function(e) {
            function t() {}

            function n(e, t, n, i, r, o) {
                if (e.animData = t, o || (o = e.animData._name), t._keyFrames && t._keyFrames.length > 0) {
                    var a = t._keyFrames[t._keyFrames.length - 1];
                    e.maxTime = Number(a._time), e._spritesNameList = [];
                    for (var s = 0; s < a._SPRITES.length; s++) e._spritesNameList.push(a._SPRITES[s]._name);
                    if (r)
                        for (var s = 0; s < r.length && s < a._SPRITES.length; s++) e._spritesNameList[s] = r[s]
                }
                e._name = o, e._gladObjLib = i, e._gladAnimMap = n, n[o] = e
            }

            function i(e) {
                e.pause(), e.timeCount = 0, e.loopCount = 0, e.loopNumber = 1, e._frameIndex = 0
            }

            function r(e, t, n) {
                var i = Number(e);
                return (Number(t) - i) * n + i
            }

            function o(e, t, n) {
                if (t = Number(t), e.animData._keyFrames.length <= 1 || t <= 0) return 0;
                n || (n = 0);
                for (var i = n; i < e.animData._keyFrames.length; i++)
                    if (t <= Number(e.animData._keyFrames[i]._time) && t > Number(e.animData._keyFrames[i - 1]._time)) return i;
                return e.animData._keyFrames.length
            }

            function a(e) {
                return !(null === e || void 0 === e || "" === e)
            }

            function s(e, t, n, i) {
                if (n._style) {
                    var o = e._style,
                        s = t._style,
                        u = n._style;
                    a(u._width) && (s._width = r(o._width, u._width, i)), a(u._height) && (s._height = r(o._height, u._height, i)), a(u._top) && (s._top = r(o._top, u._top, i)), a(u._left) && (s._left = r(o._left, u._left, i)), a(u._opacity) && (s._opacity = r(o._opacity, u._opacity, i)), a(u._background) && (s._background = {}, a(u._background._position) && (s._background._position = {}, a(u._background._position._x) && (s._background._position._x = r(o._background._position._x, u._background._position._x, i)), a(u._background._position._y) && (s._background._position._y = r(o._background._position._y, u._background._position._y, i)))), a(u._transform) && (s._transform = {}, a(u._transform._rotate) && (s._transform._rotate = r(o._transform._rotate, u._transform._rotate, i)), a(u._transform._scale) && (s._transform._scale = {}, a(u._transform._scale._x) && (s._transform._scale._x = r(o._transform._scale._x, u._transform._scale._x, i)), a(u._transform._scale._y) && (s._transform._scale._y = r(o._transform._scale._y, u._transform._scale._y, i))), a(u._transform._skew) && (s._transform._skew = {}, a(u._transform._skew._x) && (s._transform._skew._x = r(o._transform._skew._x, u._transform._skew._x, i)), a(u._transform._skew._y) && (s._transform._skew._y = r(o._transform._skew._y, u._transform._skew._y, i))))
                }
            }
            return e.implementedBy(t.prototype), t.prototype._isPlaying = !1, t.prototype.animData = null, t.prototype.maxTime = 0, t.prototype.timeCount = 0, t.prototype.loopCount = 0, t.prototype.loopNumber = 1, t.prototype._frameIndex = 0, t.prototype._onStart = null, t.prototype._onEnd = null, t.prototype._onComplete = null, t.prototype._onLoop = null, t.prototype._onFrame = null, t.prototype._onResume = null, t.prototype._gladObjLib = null, t.prototype._gladAnimMap = null, t.prototype.isPlaying = function() {
                return this._isPlaying
            }, t.prototype.init = function(e, t, i) {
                n(this, e, t, i)
            }, t.prototype.onTick = function(e) {
                if (this._isPlaying) {
                    if (0 === this.timeCount && 0 === this.loopCount && this._onStart ? this._onStart() : (this.timeCount > 0 || this.loopCount > 0) && this._onResume && this._onResume(), this.timeCount += e, this.timeCount >= this.maxTime) {
                        if (++this.loopCount >= this.loopNumber) return this.updateStyleToTime(this.maxTime), i(this), void(this._onComplete && this._onComplete());
                        this.timeCount = 0, this._frameIndex = 0, this._onLoop && this._onLoop()
                    }
                    this.updateStyleToTime(this.timeCount)
                }
            }, t.prototype.updateStyleToTime = function(e) {
                if (!(e < 0 || e > this.maxTime)) {
                    var t = this.getFrameAtTime(e);
                    if (t._SPRITES)
                        for (var n = 0; n < this._spritesNameList.length; n++) {
                            var i = this._gladObjLib[this._spritesNameList[n]];
                            i.updateCurrentStyle(t._SPRITES[n]._style)
                        }
                }
            }, t.prototype.play = function(e) {
                this.maxTime <= 0 || !0 !== this._isPlaying && ("number" == typeof e && (e = {
                    loopNumber: e
                }), e || (e = {}), e.loopNumber ? this.loopNumber = e.loopNumber : this.loopNumber = 1, e.startTime ? this.timeCount = e.startTime : this.timeCount = 0, this._isPlaying = !0)
            }, t.prototype.stop = function() {
                i(this), this._onEnd && this._onEnd()
            }, t.prototype.pause = function() {
                this._isPlaying = !1
            }, t.prototype.clone = function(e, i) {
                var r = new t;
                return n(r, this.animData, this._gladAnimMap, this._gladObjLib, e, i), r
            }, t.prototype.getFrameAtTime = function(e) {
                var t = this;
                if (e = Number(e), 1 === t.animData._keyFrames.length) return e === Number(t.animData._keyFrames[0]._time) ? t.animData._keyFrames[0] : null;
                t._frameIndex = o(t, e, t._frameIndex);
                var n = t.animData._keyFrames[t._frameIndex];
                if (null == n) return null;
                if (n && n._time === e) return n;
                var i = t.animData._keyFrames[t._frameIndex - 1],
                    r = {
                        _time: e,
                        _SPRITES: []
                    },
                    a = r._time;
                t.animData._step && (a = t.animData._step * Math.floor(r._time / t.animData._step));
                for (var u = (a - i._time) / (n._time - i._time), l = 0; l < n._SPRITES.length; l++) {
                    var c = n._SPRITES[l],
                        h = i._SPRITES[l];
                    if (h._id !== c._id) throw "Error: sprite list dismatch in animation frames";
                    var p = {
                        _id: c._id,
                        _name: c._name,
                        _style: {}
                    };
                    s(h, p, c, u), r._SPRITES.push(p)
                }
                return r
            }, t
        }), define("skbJet/component/gladPixiRenderer/KeyFrameAnimation", ["skbJet/component/gladRenderer/animation/KeyFrameAnimation", "skbJet/component/gladPixiRenderer/globalStore"], function(e, t) {
            function n(e) {
                this.init(e, t.animMap, t.lib), this.updateStyleIfPlaying = this.onTick
            }
            return n.prototype = new e, n
        }), define("skbJet/component/gladPixiRenderer/Scene", ["com/pixijs/pixi", "skbJet/component/gladPixiRenderer/Layer", "skbJet/component/gladPixiRenderer/KeyFrameAnimation", "skbJet/component/gladRenderer/view/IViewObject", "skbJet/component/gladRenderer/view/spriteUtil", "skbJet/component/gladPixiRenderer/globalStore"], function(e, t, n, i, r, o) {
            function a(i) {
                this.layers = {}, this.data = i, o.lib[i._name] = this, this.pixiContainer = new e.Container, this.pixiContainer.name = i._name;
                for (var r = 0; r < i._LAYERS.length; r++) {
                    var a = i._LAYERS[r];
                    this.layers[a._name] = new t(a), this.layers[a._name].parent = this, this.pixiContainer.addChild(this.layers[a._name].pixiContainer)
                }
                this._animations = [], this.show = function(e) {
                    this.pixiContainer.visible = e
                };
                for (var r = 0; r < i._ANIMATIONS.length; r++) {
                    "_KEY_FRAME_ANIMATION" === i._ANIMATIONS[r]._type && new n(i._ANIMATIONS[r])
                }
            }
            var s;
            i.implementedBy(a.prototype), a.prototype.getChildren = function() {
                return this.layers
            }, a.prototype.getParent = function() {
                return null
            }, a.prototype.getData = function() {
                return this.data
            };
            var u = r.isNotEmpty;
            return a.prototype.updateCurrentStyle = function(e) {
                var t = this.pixiContainer,
                    n = e,
                    i = Number(n._width),
                    r = Number(n._height);
                i || (s || (s = require("skbJet/component/gladPixiRenderer/gladPixiRenderer")), i = s.getSize().width), r || (s || (s = require("skbJet/component/gladPixiRenderer/gladPixiRenderer")), r = s.getSize().height), t.pivot.x = i / 2, t.pivot.y = r / 2, t.x = Number(n._left) + t.pivot.x, t.y = Number(n._top) + t.pivot.y, u(n._transform) && u(n._transform._scale) && (u(n._transform._scale._x) && (t.scale.x = Number(n._transform._scale._x)), u(n._transform._scale._y) && (t.scale.y = Number(n._transform._scale._y))), u(n._transform) && u(n._transform._rotate) && (t.rotation = Number(n._transform._rotate) * Math.PI / 180), u(n._opacity) && (t.alpha = Number(n._opacity))
            }, a
        }), define("skbJet/component/gladPixiRenderer/gladPixiRenderer", ["com/pixijs/pixi", "skbJet/component/gladRenderer/IgladRenderer", "skbJet/component/gladRenderer/gladUtil", "skbJet/component/gladPixiRenderer/globalStore", "skbJet/component/utils/PauseTimer", "skbJet/component/gladPixiRenderer/Scene"], function(e, t, n, i, r, o) {
            function a(e, t) {
                e === y.width && t === y.height || (y.width = e, y.height = t, c.resize(y.width, y.height), l(v.width, v.height))
            }

            function s(t, i, r) {
                h = t, h || (h = window._gladData), n.convertPixelRate(h, 2), n.clearGladDataText(h), i || (i = document.getElementById("game")), f = i, c = "webgl" === r ? new e.WebGLRenderer(h._width, h._height, {
                    transparent: !0,
                    resolution: 1,
                    antialias: !0
                }) : "2d" === r ? new e.CanvasRenderer(h._width, h._height, {
                    transparent: !0,
                    resolution: 1,
                    antialias: !0
                }) : e.autoDetectRenderer(h._width, h._height, {
                    transparent: !0,
                    resolution: 1,
                    antialias: !0
                }), f.appendChild(c.view), v.width = h._width, v.height = h._height, a(h._width, h._height), d = new e.Container;
                for (var s = 0; s < h._SCENES.length; s++) {
                    var u = h._SCENES[s];
                    _[u._name] = new o(u), d.addChild(_[u._name].pixiContainer)
                }
                p = new e.ticker.Ticker, p.add(function() {
                    for (var e in g) g[e].updateStyleIfPlaying ? g[e].updateStyleIfPlaying(p.elapsedMS) : g[e].onTick(p.elapsedMS);
                    c.render(d)
                }), p.start(), document.addEventListener("visibilitychange", function() {
                    "hidden" === document.visibilityState ? p.stop() : p.start()
                })
            }

            function u(e) {
                n.showScene(_, e)
            }

            function l(e, t) {
                var i = Number(c.view.width),
                    r = Number(c.view.height);
                v.width = e, v.height = t, n.fitSize(e, t, i, r, c.view)
            }
            var c, h, p, d, f, m = i.lib,
                _ = {},
                g = i.animMap,
                y = {
                    width: 0,
                    height: 0
                },
                v = {
                    width: 0,
                    height: 0
                },
                b = {
                    init: s,
                    lib: m,
                    fitSize: l,
                    showScene: u,
                    animMap: g,
                    setSize: a,
                    getSize: function() {
                        return {
                            width: y.width,
                            height: y.height
                        }
                    },
                    getPixiRenderer: function() {
                        return c
                    },
                    getTicker: function() {
                        return p
                    },
                    getTimer: function() {
                        return r
                    },
                    forceRender: function() {
                        c.render(d)
                    },
                    getSprite: function(e) {
                        return m[e]
                    },
                    getAnimation: function(e) {
                        return g[e]
                    }
                };
            return t.implementedBy(b), b
        }),
        function() {
            function e(e, t, n) {
                for (var i = e.length, r = n ? i : -1; n ? r-- : ++r < i;)
                    if (t(e[r], r, e)) return r;
                return -1
            }

            function t(e, t, n) {
                if (t !== t) return i(e, n);
                for (var r = n - 1, o = e.length; ++r < o;)
                    if (e[r] === t) return r;
                return -1
            }

            function n(e) {
                return null == e ? "" : e + ""
            }

            function i(e, t, n) {
                for (var i = e.length, r = t + (n ? 0 : -1); n ? r-- : ++r < i;) {
                    var o = e[r];
                    if (o !== o) return r
                }
                return -1
            }

            function r(e) {
                return !!e && "object" == typeof e
            }

            function o(e, t) {
                for (var n = -1, i = e.length, r = -1, o = []; ++n < i;) e[n] === t && (e[n] = Rt, o[++r] = n);
                return o
            }

            function a(e) {
                if (r(e) && !li(e) && !(e instanceof l)) {
                    if (e instanceof u) return e;
                    if (wn.call(e, "__chain__") && wn.call(e, "__wrapped__")) return ke(e)
                }
                return new u(e)
            }

            function s() {}

            function u(e, t, n) {
                this.__wrapped__ = e, this.__actions__ = n || [], this.__chain__ = !!t
            }

            function l(e) {
                this.__wrapped__ = e, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = Gn, this.__views__ = []
            }

            function c() {
                var e = new l(this.__wrapped__);
                return e.__actions__ = g(this.__actions__), e.__dir__ = this.__dir__, e.__filtered__ = this.__filtered__, e.__iteratees__ = g(this.__iteratees__), e.__takeCount__ = this.__takeCount__, e.__views__ = g(this.__views__), e
            }

            function h() {
                if (this.__filtered__) {
                    var e = new l(this);
                    e.__dir__ = -1, e.__filtered__ = !0
                } else e = this.clone(), e.__dir__ *= -1;
                return e
            }

            function p() {
                var e = this.__wrapped__.value(),
                    t = this.__dir__,
                    n = li(e),
                    i = t < 0,
                    r = n ? e.length : 0,
                    o = ge(0, r, this.__views__),
                    a = o.start,
                    s = o.end,
                    u = s - a,
                    l = i ? s : a - 1,
                    c = this.__iteratees__,
                    h = c.length,
                    p = 0,
                    d = Nn(u, this.__takeCount__);
                if (!n || r < Mt || r == u && d == u) return $(e, this.__actions__);
                var f = [];
                e: for (; u-- && p < d;) {
                    l += t;
                    for (var m = -1, _ = e[l]; ++m < h;) {
                        var g = c[m],
                            y = g.iteratee,
                            v = g.type,
                            b = y(_);
                        if (v == It) _ = b;
                        else if (!b) {
                            if (v == Ot) continue e;
                            break e
                        }
                    }
                    f[p++] = _
                }
                return f
            }

            function d(e) {
                var t = e ? e.length : 0;
                for (this.data = {
                        hash: Rn(null),
                        set: new Mn
                    }; t--;) this.push(e[t])
            }

            function f(e, t) {
                var n = e.data;
                return ("string" == typeof t || rt(t) ? n.set.has(t) : n.hash[t]) ? 0 : -1
            }

            function m(e) {
                var t = this.data;
                "string" == typeof e || rt(e) ? t.set.add(e) : t.hash[e] = !0
            }

            function _(e, t) {
                for (var n = -1, i = e.length, r = -1, o = t.length, a = Array(i + o); ++n < i;) a[n] = e[n];
                for (; ++r < o;) a[n++] = t[r];
                return a
            }

            function g(e, t) {
                var n = -1,
                    i = e.length;
                for (t || (t = Array(i)); ++n < i;) t[n] = e[n];
                return t
            }

            function y(e, t) {
                for (var n = -1, i = e.length; ++n < i && !1 !== t(e[n], n, e););
                return e
            }

            function v(e, t) {
                for (var n = -1, i = e.length, r = -1, o = []; ++n < i;) {
                    var a = e[n];
                    t(a, n, e) && (o[++r] = a)
                }
                return o
            }

            function b(e, t) {
                for (var n = -1, i = e.length, r = Array(i); ++n < i;) r[n] = t(e[n], n, e);
                return r
            }

            function x(e, t) {
                for (var n = -1, i = t.length, r = e.length; ++n < i;) e[r + n] = t[n];
                return e
            }

            function T(e, t, n, i) {
                var r = -1,
                    o = e.length;
                for (i && o && (n = e[++r]); ++r < o;) n = t(n, e[r], r, e);
                return n
            }

            function w(e, t) {
                for (var n = -1, i = e.length; ++n < i;)
                    if (t(e[n], n, e)) return !0;
                return !1
            }

            function S(e, t) {
                return e === yt ? t : e
            }

            function P(e, t, n) {
                for (var i = -1, r = pi(t), o = r.length; ++i < o;) {
                    var a = r[i],
                        s = e[a],
                        u = n(s, t[a], a, e, t);
                    (u === u ? u === s : s !== s) && (s !== yt || a in e) || (e[a] = u)
                }
                return e
            }

            function C(e, t) {
                return null == t ? e : E(t, pi(t), e)
            }

            function E(e, t, n) {
                n || (n = {});
                for (var i = -1, r = t.length; ++i < r;) {
                    var o = t[i];
                    n[o] = e[o]
                }
                return n
            }

            function M(e, t, n) {
                var i = typeof e;
                return "function" == i ? t === yt ? e : Z(e, t, n) : null == e ? dt : "object" == i ? W(e) : t === yt ? gt(e) : H(e, t)
            }

            function O(e, t, n, i, r, o, a) {
                var s;
                if (n && (s = r ? n(e, i, r) : n(e)), s !== yt) return s;
                if (!rt(e)) return e;
                var u = li(e);
                if (u) {
                    if (s = ye(e), !t) return g(e, s)
                } else {
                    var l = Sn.call(e),
                        c = l == Nt;
                    if (l != Gt && l != kt && (!c || r)) return ln[l] ? be(e, l, t) : r ? e : {};
                    if (gn(e)) return r ? e : {};
                    if (s = ve(c ? {} : e), !t) return C(s, e)
                }
                o || (o = []), a || (a = []);
                for (var h = o.length; h--;)
                    if (o[h] == e) return a[h];
                return o.push(e), a.push(s), (u ? y : D)(e, function(i, r) {
                    s[r] = O(i, t, n, r, e, o, a)
                }), s
            }

            function I(e, n) {
                var i = e ? e.length : 0,
                    r = [];
                if (!i) return r;
                var o = -1,
                    a = fe(),
                    s = a === t,
                    u = s && n.length >= Mt ? re(n) : null,
                    l = n.length;
                u && (a = f, s = !1, n = u);
                e: for (; ++o < i;) {
                    var c = e[o];
                    if (s && c === c) {
                        for (var h = l; h--;)
                            if (n[h] === c) continue e;
                        r.push(c)
                    } else a(n, c, 0) < 0 && r.push(c)
                }
                return r
            }

            function A(e, t) {
                var n = [];
                return $n(e, function(e, i, r) {
                    t(e, i, r) && n.push(e)
                }), n
            }

            function R(e, t, n, i) {
                var r;
                return n(e, function(e, n, o) {
                    if (t(e, n, o)) return r = i ? n : e, !1
                }), r
            }

            function k(e, t, n, i) {
                i || (i = []);
                for (var o = -1, a = e.length; ++o < a;) {
                    var s = e[o];
                    r(s) && xe(s) && (n || li(s) || tt(s)) ? t ? k(s, t, n, i) : x(i, s) : n || (i[i.length] = s)
                }
                return i
            }

            function L(e, t) {
                return Kn(e, t, lt)
            }

            function D(e, t) {
                return Kn(e, t, pi)
            }

            function B(e, t) {
                for (var n = -1, i = t.length, r = -1, o = []; ++n < i;) {
                    var a = t[n];
                    it(e[a]) && (o[++r] = a)
                }
                return o
            }

            function F(e, t, n) {
                if (null != e) {
                    e = Ae(e), n !== yt && n in e && (t = [n]);
                    for (var i = 0, r = t.length; null != e && i < r;) e = Ae(e)[t[i++]];
                    return i && i == r ? e : yt
                }
            }

            function N(e, t, n, i, o, a) {
                return e === t || (null == e || null == t || !rt(e) && !r(t) ? e !== e && t !== t : j(e, t, N, n, i, o, a))
            }

            function j(e, t, n, i, r, o, a) {
                var s = li(e),
                    u = li(t),
                    l = Lt,
                    c = Lt;
                s || (l = Sn.call(e), l == kt ? l = Gt : l != Gt && (s = ut(e))), u || (c = Sn.call(t), c == kt ? c = Gt : c != Gt && (u = ut(t)));
                var h = l == Gt && !gn(e),
                    p = c == Gt && !gn(t),
                    d = l == c;
                if (d && !s && !h) return ce(e, t, l);
                if (!r) {
                    var f = h && wn.call(e, "__wrapped__"),
                        m = p && wn.call(t, "__wrapped__");
                    if (f || m) return n(f ? e.value() : e, m ? t.value() : t, i, r, o, a)
                }
                if (!d) return !1;
                o || (o = []), a || (a = []);
                for (var _ = o.length; _--;)
                    if (o[_] == e) return a[_] == t;
                o.push(e), a.push(t);
                var g = (s ? le : he)(e, t, n, i, r, o, a);
                return o.pop(), a.pop(), g
            }

            function G(e, t, n) {
                var i = t.length,
                    r = i,
                    o = !n;
                if (null == e) return !r;
                for (e = Ae(e); i--;) {
                    var a = t[i];
                    if (o && a[2] ? a[1] !== e[a[0]] : !(a[0] in e)) return !1
                }
                for (; ++i < r;) {
                    a = t[i];
                    var s = a[0],
                        u = e[s],
                        l = a[1];
                    if (o && a[2]) {
                        if (u === yt && !(s in e)) return !1
                    } else {
                        var c = n ? n(u, l, s) : yt;
                        if (!(c === yt ? N(l, u, n, !0) : c)) return !1
                    }
                }
                return !0
            }

            function U(e, t) {
                var n = -1,
                    i = xe(e) ? Array(e.length) : [];
                return $n(e, function(e, r, o) {
                    i[++n] = t(e, r, o)
                }), i
            }

            function W(e) {
                var t = me(e);
                if (1 == t.length && t[0][2]) {
                    var n = t[0][0],
                        i = t[0][1];
                    return function(e) {
                        return null != e && (e = Ae(e), e[n] === i && (i !== yt || n in e))
                    }
                }
                return function(e) {
                    return G(e, t)
                }
            }

            function H(e, t) {
                var n = li(e),
                    i = Se(e) && Ee(t),
                    r = e + "";
                return e = Re(e),
                    function(o) {
                        if (null == o) return !1;
                        var a = r;
                        if (o = Ae(o), (n || !i) && !(a in o)) {
                            if (null == (o = 1 == e.length ? o : F(o, J(e, 0, -1)))) return !1;
                            a = De(e), o = Ae(o)
                        }
                        return o[a] === t ? t !== yt || a in o : N(t, o[a], yt, !0)
                    }
            }

            function X(e) {
                return function(t) {
                    return null == t ? yt : Ae(t)[e]
                }
            }

            function z(e) {
                var t = e + "";
                return e = Re(e),
                    function(n) {
                        return F(n, e, t)
                    }
            }

            function V(e, t, n, i, r) {
                return r(e, function(e, r, o) {
                    n = i ? (i = !1, e) : t(n, e, r, o)
                }), n
            }

            function J(e, t, n) {
                var i = -1,
                    r = e.length;
                t = null == t ? 0 : +t || 0, t < 0 && (t = -t > r ? 0 : r + t), n = n === yt || n > r ? r : +n || 0, n < 0 && (n += r), r = t > n ? 0 : n - t >>> 0, t >>>= 0;
                for (var o = Array(r); ++i < r;) o[i] = e[i + t];
                return o
            }

            function q(e, t) {
                var n;
                return $n(e, function(e, i, r) {
                    return !(n = t(e, i, r))
                }), !!n
            }

            function Y(e, t) {
                for (var n = -1, i = t.length, r = Array(i); ++n < i;) r[n] = e[t[n]];
                return r
            }

            function $(e, t) {
                var n = e;
                n instanceof l && (n = n.value());
                for (var i = -1, r = t.length; ++i < r;) {
                    var o = t[i];
                    n = o.func.apply(o.thisArg, x([n], o.args))
                }
                return n
            }

            function K(e, t, n) {
                var i = 0,
                    r = e ? e.length : i;
                if ("number" == typeof t && t === t && r <= Wn) {
                    for (; i < r;) {
                        var o = i + r >>> 1,
                            a = e[o];
                        (n ? a <= t : a < t) && null !== a ? i = o + 1 : r = o
                    }
                    return r
                }
                return Q(e, t, dt, n)
            }

            function Q(e, t, n, i) {
                t = n(t);
                for (var r = 0, o = e ? e.length : 0, a = t !== t, s = null === t, u = t === yt; r < o;) {
                    var l = kn((r + o) / 2),
                        c = n(e[l]),
                        h = c !== yt,
                        p = c === c;
                    if (a) var d = p || i;
                    else d = s ? p && h && (i || null != c) : u ? p && (i || h) : null != c && (i ? c <= t : c < t);
                    d ? r = l + 1 : o = l
                }
                return Nn(o, Un)
            }

            function Z(e, t, n) {
                if ("function" != typeof e) return dt;
                if (t === yt) return e;
                switch (n) {
                    case 1:
                        return function(n) {
                            return e.call(t, n)
                        };
                    case 3:
                        return function(n, i, r) {
                            return e.call(t, n, i, r)
                        };
                    case 4:
                        return function(n, i, r, o) {
                            return e.call(t, n, i, r, o)
                        };
                    case 5:
                        return function(n, i, r, o, a) {
                            return e.call(t, n, i, r, o, a)
                        }
                }
                return function() {
                    return e.apply(t, arguments)
                }
            }

            function ee(e) {
                var t = new Cn(e.byteLength);
                return new In(t).set(new In(e)), t
            }

            function te(e, t, n) {
                for (var i = n.length, r = -1, o = Fn(e.length - i, 0), a = -1, s = t.length, u = Array(s + o); ++a < s;) u[a] = t[a];
                for (; ++r < i;) u[n[r]] = e[r];
                for (; o--;) u[a++] = e[r++];
                return u
            }

            function ne(e, t, n) {
                for (var i = -1, r = n.length, o = -1, a = Fn(e.length - r, 0), s = -1, u = t.length, l = Array(a + u); ++o < a;) l[o] = e[o];
                for (var c = o; ++s < u;) l[c + s] = t[s];
                for (; ++i < r;) l[c + n[i]] = e[o++];
                return l
            }

            function ie(e, t) {
                function n() {
                    return (this && this !== _n && this instanceof n ? i : e).apply(t, arguments)
                }
                var i = oe(e);
                return n
            }

            function re(e) {
                return Rn && Mn ? new d(e) : null
            }

            function oe(e) {
                return function() {
                    var t = arguments;
                    switch (t.length) {
                        case 0:
                            return new e;
                        case 1:
                            return new e(t[0]);
                        case 2:
                            return new e(t[0], t[1]);
                        case 3:
                            return new e(t[0], t[1], t[2]);
                        case 4:
                            return new e(t[0], t[1], t[2], t[3]);
                        case 5:
                            return new e(t[0], t[1], t[2], t[3], t[4]);
                        case 6:
                            return new e(t[0], t[1], t[2], t[3], t[4], t[5]);
                        case 7:
                            return new e(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
                    }
                    var n = Yn(e.prototype),
                        i = e.apply(n, t);
                    return rt(i) ? i : n
                }
            }

            function ae(e, t, n, i, r, a, s, u, l, c) {
                function h() {
                    for (var b = arguments.length, x = b, T = Array(b); x--;) T[x] = arguments[x];
                    if (i && (T = te(T, i, r)), a && (T = ne(T, a, s)), m || y) {
                        var w = h.placeholder,
                            S = o(T, w);
                        if ((b -= S.length) < c) {
                            var P = u ? g(u) : yt,
                                C = Fn(c - b, 0),
                                E = m ? S : yt,
                                M = m ? yt : S,
                                O = m ? T : yt,
                                I = m ? yt : T;
                            t |= m ? St : Pt, t &= ~(m ? Pt : St), _ || (t &= ~(vt | bt));
                            var A = [e, t, n, O, E, I, M, P, l, C],
                                R = ae.apply(yt, A);
                            return Pe(e) && ti(R, A), R.placeholder = w, R
                        }
                    }
                    var k = d ? n : this,
                        L = f ? k[e] : e;
                    return u && (T = Oe(T, u)), p && l < T.length && (T.length = l), this && this !== _n && this instanceof h && (L = v || oe(e)), L.apply(k, T)
                }
                var p = t & Ct,
                    d = t & vt,
                    f = t & bt,
                    m = t & Tt,
                    _ = t & xt,
                    y = t & wt,
                    v = f ? yt : oe(e);
                return h
            }

            function se(e, t, n, i) {
                function r() {
                    for (var t = -1, s = arguments.length, u = -1, l = i.length, c = Array(l + s); ++u < l;) c[u] = i[u];
                    for (; s--;) c[u++] = arguments[++t];
                    return (this && this !== _n && this instanceof r ? a : e).apply(o ? n : this, c)
                }
                var o = t & vt,
                    a = oe(e);
                return r
            }

            function ue(e, t, n, i, r, o, a, s) {
                var u = t & bt;
                if (!u && "function" != typeof e) throw new TypeError(At);
                var l = i ? i.length : 0;
                if (l || (t &= ~(St | Pt), i = r = yt), l -= r ? r.length : 0, t & Pt) {
                    var c = i,
                        h = r;
                    i = r = yt
                }
                var p = u ? yt : Zn(e),
                    d = [e, t, n, i, r, c, h, o, a, s];
                if (p && (Me(d, p), t = d[1], s = d[9]), d[9] = null == s ? u ? 0 : e.length : Fn(s - l, 0) || 0, t == vt) var f = ie(d[0], d[2]);
                else f = t != St && t != (vt | St) || d[4].length ? ae.apply(yt, d) : se.apply(yt, d);
                return (p ? Qn : ti)(f, d)
            }

            function le(e, t, n, i, r, o, a) {
                var s = -1,
                    u = e.length,
                    l = t.length;
                if (u != l && !(r && l > u)) return !1;
                for (; ++s < u;) {
                    var c = e[s],
                        h = t[s],
                        p = i ? i(r ? h : c, r ? c : h, s) : yt;
                    if (p !== yt) {
                        if (p) continue;
                        return !1
                    }
                    if (r) {
                        if (!w(t, function(e) {
                                return c === e || n(c, e, i, r, o, a)
                            })) return !1
                    } else if (c !== h && !n(c, h, i, r, o, a)) return !1
                }
                return !0
            }

            function ce(e, t, n) {
                switch (n) {
                    case Dt:
                    case Bt:
                        return +e == +t;
                    case Ft:
                        return e.name == t.name && e.message == t.message;
                    case jt:
                        return e != +e ? t != +t : e == +t;
                    case Ut:
                    case Wt:
                        return e == t + ""
                }
                return !1
            }

            function he(e, t, n, i, r, o, a) {
                var s = pi(e),
                    u = s.length;
                if (u != pi(t).length && !r) return !1;
                for (var l = u; l--;) {
                    var c = s[l];
                    if (!(r ? c in t : wn.call(t, c))) return !1
                }
                for (var h = r; ++l < u;) {
                    c = s[l];
                    var p = e[c],
                        d = t[c],
                        f = i ? i(r ? d : p, r ? p : d, c) : yt;
                    if (!(f === yt ? n(p, d, i, r, o, a) : f)) return !1;
                    h || (h = "constructor" == c)
                }
                if (!h) {
                    var m = e.constructor,
                        _ = t.constructor;
                    if (m != _ && "constructor" in e && "constructor" in t && !("function" == typeof m && m instanceof m && "function" == typeof _ && _ instanceof _)) return !1
                }
                return !0
            }

            function pe(e, t, n) {
                var i = a.callback || pt;
                return i = i === pt ? M : i, n ? i(e, t, n) : i
            }

            function de(e) {
                for (var t = e.name + "", n = zn[t], i = n ? n.length : 0; i--;) {
                    var r = n[i],
                        o = r.func;
                    if (null == o || o == e) return r.name
                }
                return t
            }

            function fe(e, n, i) {
                var r = a.indexOf || Le;
                return r = r === Le ? t : r, e ? r(e, n, i) : r
            }

            function me(e) {
                for (var t = ct(e), n = t.length; n--;) t[n][2] = Ee(t[n][1]);
                return t
            }

            function _e(e, t) {
                var n = null == e ? yt : e[t];
                return ot(n) ? n : yt
            }

            function ge(e, t, n) {
                for (var i = -1, r = n.length; ++i < r;) {
                    var o = n[i],
                        a = o.size;
                    switch (o.type) {
                        case "drop":
                            e += a;
                            break;
                        case "dropRight":
                            t -= a;
                            break;
                        case "take":
                            t = Nn(t, e + a);
                            break;
                        case "takeRight":
                            e = Fn(e, t - a)
                    }
                }
                return {
                    start: e,
                    end: t
                }
            }

            function ye(e) {
                var t = e.length,
                    n = new e.constructor(t);
                return t && "string" == typeof e[0] && wn.call(e, "index") && (n.index = e.index, n.input = e.input), n
            }

            function ve(e) {
                var t = e.constructor;
                return "function" == typeof t && t instanceof t || (t = Object), new t
            }

            function be(e, t, n) {
                var i = e.constructor;
                switch (t) {
                    case Ht:
                        return ee(e);
                    case Dt:
                    case Bt:
                        return new i(+e);
                    case Xt:
                    case zt:
                    case Vt:
                    case Jt:
                    case qt:
                    case Yt:
                    case $t:
                    case Kt:
                    case Qt:
                        i instanceof i && (i = Vn[t]);
                        var r = e.buffer;
                        return new i(n ? ee(r) : r, e.byteOffset, e.length);
                    case jt:
                    case Wt:
                        return new i(e);
                    case Ut:
                        var o = new i(e.source, rn.exec(e));
                        o.lastIndex = e.lastIndex
                }
                return o
            }

            function xe(e) {
                return null != e && Ce(ei(e))
            }

            function Te(e, t) {
                return e = "number" == typeof e || an.test(e) ? +e : -1, t = null == t ? Hn : t, e > -1 && e % 1 == 0 && e < t
            }

            function we(e, t, n) {
                if (!rt(n)) return !1;
                var i = typeof t;
                if ("number" == i ? xe(n) && Te(t, n.length) : "string" == i && t in n) {
                    var r = n[t];
                    return e === e ? e === r : r !== r
                }
                return !1
            }

            function Se(e, t) {
                var n = typeof e;
                return !!("string" == n && en.test(e) || "number" == n) || !li(e) && (!Zt.test(e) || null != t && e in Ae(t))
            }

            function Pe(e) {
                var t = de(e),
                    n = a[t];
                if ("function" != typeof n || !(t in l.prototype)) return !1;
                if (e === n) return !0;
                var i = Zn(n);
                return !!i && e === i[0]
            }

            function Ce(e) {
                return "number" == typeof e && e > -1 && e % 1 == 0 && e <= Hn
            }

            function Ee(e) {
                return e === e && !rt(e)
            }

            function Me(e, t) {
                var n = e[1],
                    i = t[1],
                    r = n | i,
                    a = r < Ct,
                    s = i == Ct && n == Tt || i == Ct && n == Et && e[7].length <= t[8] || i == (Ct | Et) && n == Tt;
                if (!a && !s) return e;
                i & vt && (e[2] = t[2], r |= n & vt ? 0 : xt);
                var u = t[3];
                if (u) {
                    var l = e[3];
                    e[3] = l ? te(l, u, t[4]) : g(u), e[4] = l ? o(e[3], Rt) : g(t[4])
                }
                return u = t[5], u && (l = e[5], e[5] = l ? ne(l, u, t[6]) : g(u), e[6] = l ? o(e[5], Rt) : g(t[6])), u = t[7], u && (e[7] = g(u)), i & Ct && (e[8] = null == e[8] ? t[8] : Nn(e[8], t[8])), null == e[9] && (e[9] = t[9]), e[0] = t[0], e[1] = r, e
            }

            function Oe(e, t) {
                for (var n = e.length, i = Nn(t.length, n), r = g(e); i--;) {
                    var o = t[i];
                    e[i] = Te(o, n) ? r[o] : yt
                }
                return e
            }

            function Ie(e) {
                for (var t = lt(e), n = t.length, i = n && e.length, r = !!i && Ce(i) && (li(e) || tt(e) || st(e)), o = -1, a = []; ++o < n;) {
                    var s = t[o];
                    (r && Te(s, i) || wn.call(e, s)) && a.push(s)
                }
                return a
            }

            function Ae(e) {
                if (a.support.unindexedChars && st(e)) {
                    for (var t = -1, n = e.length, i = Object(e); ++t < n;) i[t] = e.charAt(t);
                    return i
                }
                return rt(e) ? e : Object(e)
            }

            function Re(e) {
                if (li(e)) return e;
                var t = [];
                return n(e).replace(tn, function(e, n, i, r) {
                    t.push(i ? r.replace(nn, "$1") : n || e)
                }), t
            }

            function ke(e) {
                return e instanceof l ? e.clone() : new u(e.__wrapped__, e.__chain__, g(e.__actions__))
            }

            function Le(e, n, i) {
                var r = e ? e.length : 0;
                if (!r) return -1;
                if ("number" == typeof i) i = i < 0 ? Fn(r + i, 0) : i;
                else if (i) {
                    var o = K(e, n);
                    return o < r && (n === n ? n === e[o] : e[o] !== e[o]) ? o : -1
                }
                return t(e, n, i || 0)
            }

            function De(e) {
                var t = e ? e.length : 0;
                return t ? e[t - 1] : yt
            }

            function Be(e) {
                var t = a(e);
                return t.__chain__ = !0, t
            }

            function Fe(e, t, n) {
                return t.call(n, e), e
            }

            function Ne(e, t, n) {
                return t.call(n, e)
            }

            function je() {
                return Be(this)
            }

            function Ge() {
                return new u(this.value(), this.__chain__)
            }

            function Ue(e) {
                for (var t, n = this; n instanceof s;) {
                    var i = ke(n);
                    t ? r.__wrapped__ = i : t = i;
                    var r = i;
                    n = n.__wrapped__
                }
                return r.__wrapped__ = e, t
            }

            function We() {
                var e = this.__wrapped__,
                    t = function(e) {
                        return e.reverse()
                    };
                if (e instanceof l) {
                    var n = e;
                    return this.__actions__.length && (n = new l(this)), n = n.reverse(), n.__actions__.push({
                        func: Ne,
                        args: [t],
                        thisArg: yt
                    }), new u(n, this.__chain__)
                }
                return this.thru(t)
            }

            function He() {
                return this.value() + ""
            }

            function Xe() {
                return $(this.__wrapped__, this.__actions__)
            }

            function ze(e, t, n) {
                var i = li(e) ? v : A;
                return t = pe(t, n, 3), i(e, t)
            }

            function Ve(e, t, n, i) {
                var r = e ? ei(e) : 0;
                return Ce(r) || (e = ht(e), r = e.length), n = "number" != typeof n || i && we(t, n, i) ? 0 : n < 0 ? Fn(r + n, 0) : n || 0, "string" == typeof e || !li(e) && st(e) ? n <= r && e.indexOf(t, n) > -1 : !!r && fe(e, t, n) > -1
            }

            function Je(e, t, n) {
                var i = li(e) ? b : U;
                return t = pe(t, n, 3), i(e, t)
            }

            function qe(e, t, n) {
                var i = li(e) ? w : q;
                return n && we(e, t, n) && (t = yt), "function" == typeof t && n === yt || (t = pe(t, n, 3)), i(e, t)
            }

            function Ye(e, t) {
                if ("function" != typeof t) {
                    if ("function" != typeof e) throw new TypeError(At);
                    var n = e;
                    e = t, t = n
                }
                return e = Dn(e = +e) ? e : 0,
                    function() {
                        if (--e < 1) return t.apply(this, arguments)
                    }
            }

            function $e(e, t, n) {
                function i() {
                    d && clearTimeout(d), l && clearTimeout(l), m = 0, l = d = f = yt
                }

                function r(t, n) {
                    n && clearTimeout(n), l = d = f = yt, t && (m = si(), c = e.apply(p, u), d || l || (u = p = yt))
                }

                function o() {
                    var e = t - (si() - h);
                    e <= 0 || e > t ? r(f, l) : d = setTimeout(o, e)
                }

                function a() {
                    r(g, d)
                }

                function s() {
                    if (u = arguments, h = si(), p = this, f = g && (d || !y), !1 === _) var n = y && !d;
                    else {
                        l || y || (m = h);
                        var i = _ - (h - m),
                            r = i <= 0 || i > _;
                        r ? (l && (l = clearTimeout(l)), m = h, c = e.apply(p, u)) : l || (l = setTimeout(a, i))
                    }
                    return r && d ? d = clearTimeout(d) : d || t === _ || (d = setTimeout(o, t)), n && (r = !0, c = e.apply(p, u)), !r || d || l || (u = p = yt), c
                }
                var u, l, c, h, p, d, f, m = 0,
                    _ = !1,
                    g = !0;
                if ("function" != typeof e) throw new TypeError(At);
                if (t = t < 0 ? 0 : +t || 0, !0 === n) {
                    var y = !0;
                    g = !1
                } else rt(n) && (y = !!n.leading, _ = "maxWait" in n && Fn(+n.maxWait || 0, t), g = "trailing" in n ? !!n.trailing : g);
                return s.cancel = i, s
            }

            function Ke(e, t) {
                if ("function" != typeof e) throw new TypeError(At);
                return t = Fn(t === yt ? e.length - 1 : +t || 0, 0),
                    function() {
                        for (var n = arguments, i = -1, r = Fn(n.length - t, 0), o = Array(r); ++i < r;) o[i] = n[t + i];
                        switch (t) {
                            case 0:
                                return e.call(this, o);
                            case 1:
                                return e.call(this, n[0], o);
                            case 2:
                                return e.call(this, n[0], n[1], o)
                        }
                        var a = Array(t + 1);
                        for (i = -1; ++i < t;) a[i] = n[i];
                        return a[t] = o, e.apply(this, a)
                    }
            }

            function Qe(e, t, n) {
                var i = !0,
                    r = !0;
                if ("function" != typeof e) throw new TypeError(At);
                return !1 === n ? i = !1 : rt(n) && (i = "leading" in n ? !!n.leading : i, r = "trailing" in n ? !!n.trailing : r), $e(e, t, {
                    leading: i,
                    maxWait: +t,
                    trailing: r
                })
            }

            function Ze(e, t, n, i) {
                return t && "boolean" != typeof t && we(e, t, n) ? t = !1 : "function" == typeof t && (i = n, n = t, t = !1), "function" == typeof n ? O(e, t, Z(n, i, 3)) : O(e, t)
            }

            function et(e, t, n) {
                return "function" == typeof t ? O(e, !0, Z(t, n, 3)) : O(e, !0)
            }

            function tt(e) {
                return r(e) && xe(e) && wn.call(e, "callee") && !En.call(e, "callee")
            }

            function nt(e, t, n, i) {
                n = "function" == typeof n ? Z(n, i, 3) : yt;
                var r = n ? n(e, t) : yt;
                return r === yt ? N(e, t, n) : !!r
            }

            function it(e) {
                return rt(e) && Sn.call(e) == Nt
            }

            function rt(e) {
                var t = typeof e;
                return !!e && ("object" == t || "function" == t)
            }

            function ot(e) {
                return null != e && (it(e) ? Pn.test(Tn.call(e)) : r(e) && (gn(e) ? Pn : on).test(e))
            }

            function at(e) {
                var t;
                if (!r(e) || Sn.call(e) != Gt || gn(e) || tt(e) || !wn.call(e, "constructor") && "function" == typeof(t = e.constructor) && !(t instanceof t)) return !1;
                var n;
                return a.support.ownLast ? (L(e, function(e, t, i) {
                    return n = wn.call(i, t), !1
                }), !1 !== n) : (L(e, function(e, t) {
                    n = t
                }), n === yt || wn.call(e, n))
            }

            function st(e) {
                return "string" == typeof e || r(e) && Sn.call(e) == Wt
            }

            function ut(e) {
                return r(e) && Ce(e.length) && !!un[Sn.call(e)]
            }

            function lt(e) {
                if (null == e) return [];
                rt(e) || (e = Object(e));
                var t = e.length,
                    n = a.support;
                t = t && Ce(t) && (li(e) || tt(e) || st(e)) && t || 0;
                for (var i = e.constructor, r = -1, o = it(i) && i.prototype || bn, s = o === e, u = Array(t), l = t > 0, c = n.enumErrorProps && (e === vn || e instanceof Error), h = n.enumPrototypes && it(e); ++r < t;) u[r] = r + "";
                for (var p in e) h && "prototype" == p || c && ("message" == p || "name" == p) || l && Te(p, t) || "constructor" == p && (s || !wn.call(e, p)) || u.push(p);
                if (n.nonEnumShadows && e !== bn) {
                    var d = e === xn ? Wt : e === vn ? Ft : Sn.call(e),
                        f = Jn[d] || Jn[Gt];
                    for (d == Gt && (o = bn), t = sn.length; t--;) {
                        p = sn[t];
                        var m = f[p];
                        s && m || (m ? !wn.call(e, p) : e[p] === o[p]) || u.push(p)
                    }
                }
                return u
            }

            function ct(e) {
                e = Ae(e);
                for (var t = -1, n = pi(e), i = n.length, r = Array(i); ++t < i;) {
                    var o = n[t];
                    r[t] = [o, e[o]]
                }
                return r
            }

            function ht(e) {
                return Y(e, pi(e))
            }

            function pt(e, t, n) {
                return n && we(e, t, n) && (t = yt), r(e) ? ft(e) : M(e, t)
            }

            function dt(e) {
                return e
            }

            function ft(e) {
                return W(O(e, !0))
            }

            function mt(e, t, n) {
                if (null == n) {
                    var i = rt(t),
                        r = i ? pi(t) : yt,
                        o = r && r.length ? B(t, r) : yt;
                    (o ? o.length : i) || (o = !1, n = t, t = e, e = this)
                }
                o || (o = B(t, pi(t)));
                var a = !0,
                    s = -1,
                    u = it(e),
                    l = o.length;
                !1 === n ? a = !1 : rt(n) && "chain" in n && (a = n.chain);
                for (; ++s < l;) {
                    var c = o[s],
                        h = t[c];
                    e[c] = h, u && (e.prototype[c] = function(t) {
                        return function() {
                            var n = this.__chain__;
                            if (a || n) {
                                var i = e(this.__wrapped__);
                                return (i.__actions__ = g(this.__actions__)).push({
                                    func: t,
                                    args: arguments,
                                    thisArg: e
                                }), i.__chain__ = n, i
                            }
                            return t.apply(e, x([this.value()], arguments))
                        }
                    }(h))
                }
                return e
            }

            function _t() {}

            function gt(e) {
                return Se(e) ? X(e) : z(e)
            }
            var yt, vt = 1,
                bt = 2,
                xt = 4,
                Tt = 8,
                wt = 16,
                St = 32,
                Pt = 64,
                Ct = 128,
                Et = 256,
                Mt = 200,
                Ot = 1,
                It = 2,
                At = "Expected a function",
                Rt = "__lodash_placeholder__",
                kt = "[object Arguments]",
                Lt = "[object Array]",
                Dt = "[object Boolean]",
                Bt = "[object Date]",
                Ft = "[object Error]",
                Nt = "[object Function]",
                jt = "[object Number]",
                Gt = "[object Object]",
                Ut = "[object RegExp]",
                Wt = "[object String]",
                Ht = "[object ArrayBuffer]",
                Xt = "[object Float32Array]",
                zt = "[object Float64Array]",
                Vt = "[object Int8Array]",
                Jt = "[object Int16Array]",
                qt = "[object Int32Array]",
                Yt = "[object Uint8Array]",
                $t = "[object Uint8ClampedArray]",
                Kt = "[object Uint16Array]",
                Qt = "[object Uint32Array]",
                Zt = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
                en = /^\w*$/,
                tn = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,
                nn = /\\(\\)?/g,
                rn = /\w*$/,
                on = /^\[object .+?Constructor\]$/,
                an = /^\d+$/,
                sn = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"],
                un = {};
            un[Xt] = un[zt] = un[Vt] = un[Jt] = un[qt] = un[Yt] = un[$t] = un[Kt] = un[Qt] = !0, un[kt] = un[Lt] = un[Ht] = un[Dt] = un[Bt] = un[Ft] = un[Nt] = un["[object Map]"] = un[jt] = un[Gt] = un[Ut] = un["[object Set]"] = un[Wt] = un["[object WeakMap]"] = !1;
            var ln = {};
            ln[kt] = ln[Lt] = ln[Ht] = ln[Dt] = ln[Bt] = ln[Xt] = ln[zt] = ln[Vt] = ln[Jt] = ln[qt] = ln[jt] = ln[Gt] = ln[Ut] = ln[Wt] = ln[Yt] = ln[$t] = ln[Kt] = ln[Qt] = !0, ln[Ft] = ln[Nt] = ln["[object Map]"] = ln["[object Set]"] = ln["[object WeakMap]"] = !1;
            var cn = {
                    function: !0,
                    object: !0
                },
                hn = cn[typeof exports] && exports && !exports.nodeType && exports,
                pn = cn[typeof module] && module && !module.nodeType && module,
                dn = hn && pn && "object" == typeof global && global && global.Object && global,
                fn = cn[typeof self] && self && self.Object && self,
                mn = cn[typeof window] && window && window.Object && window,
                _n = dn || mn !== (this && this.window) && mn || fn || this,
                gn = function() {
                    try {
                        Object({
                            toString: 0
                        } + "")
                    } catch (e) {
                        return function() {
                            return !1
                        }
                    }
                    return function(e) {
                        return "function" != typeof e.toString && "string" == typeof(e + "")
                    }
                }(),
                yn = Array.prototype,
                vn = Error.prototype,
                bn = Object.prototype,
                xn = String.prototype,
                Tn = Function.prototype.toString,
                wn = bn.hasOwnProperty,
                Sn = bn.toString,
                Pn = RegExp("^" + Tn.call(wn).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
                Cn = _n.ArrayBuffer,
                En = bn.propertyIsEnumerable,
                Mn = _e(_n, "Set"),
                On = yn.splice,
                In = _n.Uint8Array,
                An = _e(_n, "WeakMap"),
                Rn = _e(Object, "create"),
                kn = Math.floor,
                Ln = _e(Array, "isArray"),
                Dn = _n.isFinite,
                Bn = _e(Object, "keys"),
                Fn = Math.max,
                Nn = Math.min,
                jn = _e(Date, "now"),
                Gn = Number.POSITIVE_INFINITY,
                Un = 4294967294,
                Wn = 2147483647,
                Hn = 9007199254740991,
                Xn = An && new An,
                zn = {},
                Vn = {};
            Vn[Xt] = _n.Float32Array, Vn[zt] = _n.Float64Array, Vn[Vt] = _n.Int8Array, Vn[Jt] = _n.Int16Array, Vn[qt] = _n.Int32Array, Vn[Yt] = In, Vn[$t] = _n.Uint8ClampedArray, Vn[Kt] = _n.Uint16Array, Vn[Qt] = _n.Uint32Array;
            var Jn = {};
            Jn[Lt] = Jn[Bt] = Jn[jt] = {
                constructor: !0,
                toLocaleString: !0,
                toString: !0,
                valueOf: !0
            }, Jn[Dt] = Jn[Wt] = {
                constructor: !0,
                toString: !0,
                valueOf: !0
            }, Jn[Ft] = Jn[Nt] = Jn[Ut] = {
                constructor: !0,
                toString: !0
            }, Jn[Gt] = {
                constructor: !0
            }, y(sn, function(e) {
                for (var t in Jn)
                    if (wn.call(Jn, t)) {
                        var n = Jn[t];
                        n[e] = wn.call(n, e)
                    }
            });
            var qn = a.support = {};
            ! function(e) {
                var t = function() {
                        this.x = 1
                    },
                    n = {
                        0: 1,
                        length: 1
                    },
                    i = [];
                t.prototype = {
                    valueOf: 1,
                    y: 1
                };
                for (var r in new t) i.push(r);
                qn.enumErrorProps = En.call(vn, "message") || En.call(vn, "name"), qn.enumPrototypes = En.call(t, "prototype"), qn.nonEnumShadows = !/valueOf/.test(i), qn.ownLast = "x" != i[0], qn.spliceObjects = (On.call(n, 0, 1), !n[0]), qn.unindexedChars = "x" [0] + Object("x")[0] != "xx"
            }();
            var Yn = function() {
                    function e() {}
                    return function(t) {
                        if (rt(t)) {
                            e.prototype = t;
                            var n = new e;
                            e.prototype = yt
                        }
                        return n || {}
                    }
                }(),
                $n = function(e, t) {
                    return function(n, i) {
                        var r = n ? ei(n) : 0;
                        if (!Ce(r)) return e(n, i);
                        for (var o = t ? r : -1, a = Ae(n);
                            (t ? o-- : ++o < r) && !1 !== i(a[o], o, a););
                        return n
                    }
                }(D),
                Kn = function(e) {
                    return function(t, n, i) {
                        for (var r = Ae(t), o = i(t), a = o.length, s = e ? a : -1; e ? s-- : ++s < a;) {
                            var u = o[s];
                            if (!1 === n(r[u], u, r)) break
                        }
                        return t
                    }
                }(),
                Qn = Xn ? function(e, t) {
                    return Xn.set(e, t), e
                } : dt,
                Zn = Xn ? function(e) {
                    return Xn.get(e)
                } : _t,
                ei = X("length"),
                ti = function() {
                    var e = 0,
                        t = 0;
                    return function(n, i) {
                        var r = si(),
                            o = 16 - (r - t);
                        if (t = r, o > 0) {
                            if (++e >= 150) return n
                        } else e = 0;
                        return Qn(n, i)
                    }
                }(),
                ni = Ke(function(e, t) {
                    return xe(e) ? I(e, t) : []
                }),
                ii = Ke(function(e) {
                    return e = k(e), this.thru(function(t) {
                        return _(li(t) ? t : [Ae(t)], e)
                    })
                }),
                ri = function(t, n) {
                    return function(i, r, o) {
                        if (r = pe(r, o, 3), li(i)) {
                            var a = e(i, r, n);
                            return a > -1 ? i[a] : yt
                        }
                        return R(i, r, t)
                    }
                }($n),
                oi = function(e, t) {
                    return function(n, i, r) {
                        return "function" == typeof i && r === yt && li(n) ? e(n, i) : t(n, Z(i, r, 3))
                    }
                }(y, $n),
                ai = function(e, t) {
                    return function(n, i, r, o) {
                        var a = arguments.length < 3;
                        return "function" == typeof i && o === yt && li(n) ? e(n, i, r, a) : V(n, pe(i, o, 4), r, a, t)
                    }
                }(T, $n),
                si = jn || function() {
                    return (new Date).getTime()
                },
                ui = Ke(function(e, t, n) {
                    var i = vt;
                    if (n.length) {
                        var r = o(n, ui.placeholder);
                        i |= St
                    }
                    return ue(e, i, t, n, r)
                }),
                li = Ln || function(e) {
                    return r(e) && Ce(e.length) && Sn.call(e) == Lt
                },
                ci = function(e) {
                    return Ke(function(t, n) {
                        var i = -1,
                            r = null == t ? 0 : n.length,
                            o = r > 2 ? n[r - 2] : yt,
                            a = r > 2 ? n[2] : yt,
                            s = r > 1 ? n[r - 1] : yt;
                        for ("function" == typeof o ? (o = Z(o, s, 5), r -= 2) : (o = "function" == typeof s ? s : yt, r -= o ? 1 : 0), a && we(n[0], n[1], a) && (o = r < 3 ? yt : o, r = 1); ++i < r;) {
                            var u = n[i];
                            u && e(t, u, o)
                        }
                        return t
                    })
                }(function(e, t, n) {
                    return n ? P(e, t, n) : C(e, t)
                }),
                hi = function(e, t) {
                    return Ke(function(n) {
                        var i = n[0];
                        return null == i ? i : (n.push(t), e.apply(yt, n))
                    })
                }(ci, S),
                pi = Bn ? function(e) {
                    var t = null == e ? yt : e.constructor;
                    return "function" == typeof t && t.prototype === e || ("function" == typeof e ? a.support.enumPrototypes : xe(e)) ? Ie(e) : rt(e) ? Bn(e) : []
                } : Ie;
            a.prototype = s.prototype, u.prototype = Yn(s.prototype), u.prototype.constructor = u, l.prototype = Yn(s.prototype), l.prototype.constructor = l, d.prototype.push = m, a.after = Ye, a.assign = ci, a.bind = ui, a.callback = pt, a.chain = Be, a.debounce = $e, a.defaults = hi, a.filter = ze, a.forEach = oi, a.keys = pi, a.keysIn = lt, a.map = Je, a.matches = ft, a.mixin = mt, a.pairs = ct, a.property = gt, a.restParam = Ke, a.tap = Fe, a.throttle = Qe, a.thru = Ne, a.values = ht, a.without = ni, a.collect = Je, a.each = oi, a.extend = ci, a.iteratee = pt, a.select = ze, mt(a, a), a.clone = Ze, a.cloneDeep = et, a.find = ri, a.identity = dt, a.includes = Ve, a.indexOf = Le, a.isArguments = tt, a.isArray = li, a.isEqual = nt, a.isFunction = it, a.isNative = ot, a.isObject = rt, a.isPlainObject = at, a.isString = st, a.isTypedArray = ut, a.last = De, a.noop = _t, a.now = si, a.reduce = ai, a.some = qe, a.any = qe, a.contains = Ve, a.eq = nt, a.detect = ri, a.foldl = ai, a.include = Ve, a.inject = ai, mt(a, function() {
                var e = {};
                return D(a, function(t, n) {
                    a.prototype[n] || (e[n] = t)
                }), e
            }(), !1), a.prototype.sample = function(e) {
                return this.__chain__ || null != e ? this.thru(function(t) {
                    return sample(t, e)
                }) : sample(this.value())
            }, a.VERSION = "3.10.1", ui.placeholder = a, y(["drop", "take"], function(e, t) {
                l.prototype[e] = function(n) {
                    var i = this.__filtered__;
                    if (i && !t) return new l(this);
                    n = null == n ? 1 : Fn(kn(n) || 0, 0);
                    var r = this.clone();
                    return i ? r.__takeCount__ = Nn(r.__takeCount__, n) : r.__views__.push({
                        size: n,
                        type: e + (r.__dir__ < 0 ? "Right" : "")
                    }), r
                }, l.prototype[e + "Right"] = function(t) {
                    return this.reverse()[e](t).reverse()
                }
            }), y(["filter", "map", "takeWhile"], function(e, t) {
                var n = t + 1,
                    i = n != It;
                l.prototype[e] = function(e, t) {
                    var r = this.clone();
                    return r.__iteratees__.push({
                        iteratee: pe(e, t, 1),
                        type: n
                    }), r.__filtered__ = r.__filtered__ || i, r
                }
            }), y(["first", "last"], function(e, t) {
                var n = "take" + (t ? "Right" : "");
                l.prototype[e] = function() {
                    return this[n](1).value()[0]
                }
            }), y(["initial", "rest"], function(e, t) {
                var n = "drop" + (t ? "" : "Right");
                l.prototype[e] = function() {
                    return this.__filtered__ ? new l(this) : this[n](1)
                }
            }), y(["pluck", "where"], function(e, t) {
                var n = t ? "filter" : "map",
                    i = t ? W : gt;
                l.prototype[e] = function(e) {
                    return this[n](i(e))
                }
            }), l.prototype.compact = function() {
                return this.filter(dt)
            }, l.prototype.reject = function(e, t) {
                return e = pe(e, t, 1), this.filter(function(t) {
                    return !e(t)
                })
            }, l.prototype.slice = function(e, t) {
                e = null == e ? 0 : +e || 0;
                var n = this;
                return n.__filtered__ && (e > 0 || t < 0) ? new l(n) : (e < 0 ? n = n.takeRight(-e) : e && (n = n.drop(e)), t !== yt && (t = +t || 0, n = t < 0 ? n.dropRight(-t) : n.take(t - e)), n)
            }, l.prototype.takeRightWhile = function(e, t) {
                return this.reverse().takeWhile(e, t).reverse()
            }, l.prototype.toArray = function() {
                return this.take(Gn)
            }, D(l.prototype, function(e, t) {
                var n = /^(?:filter|map|reject)|While$/.test(t),
                    i = /^(?:first|last)$/.test(t),
                    r = a[i ? "take" + ("last" == t ? "Right" : "") : t];
                r && (a.prototype[t] = function() {
                    var t = i ? [1] : arguments,
                        o = this.__chain__,
                        a = this.__wrapped__,
                        s = !!this.__actions__.length,
                        c = a instanceof l,
                        h = t[0],
                        p = c || li(a);
                    p && n && "function" == typeof h && 1 != h.length && (c = p = !1);
                    var d = function(e) {
                            return i && o ? r(e, 1)[0] : r.apply(yt, x([e], t))
                        },
                        f = {
                            func: Ne,
                            args: [d],
                            thisArg: yt
                        },
                        m = c && !s;
                    if (i && !o) return m ? (a = a.clone(), a.__actions__.push(f), e.call(a)) : r.call(yt, this.value())[0];
                    if (!i && p) {
                        a = m ? a : new l(this);
                        var _ = e.apply(a, t);
                        return _.__actions__.push(f), new u(_, o)
                    }
                    return this.thru(d)
                })
            }), y(["join", "pop", "push", "replace", "shift", "sort", "splice", "split", "unshift"], function(e) {
                var t = (/^(?:replace|split)$/.test(e) ? xn : yn)[e],
                    n = /^(?:push|sort|unshift)$/.test(e) ? "tap" : "thru",
                    i = !qn.spliceObjects && /^(?:pop|shift|splice)$/.test(e),
                    r = /^(?:join|pop|replace|shift)$/.test(e),
                    o = i ? function() {
                        var e = t.apply(this, arguments);
                        return 0 === this.length && delete this[0], e
                    } : t;
                a.prototype[e] = function() {
                    var e = arguments;
                    return r && !this.__chain__ ? o.apply(this.value(), e) : this[n](function(t) {
                        return o.apply(t, e)
                    })
                }
            }), D(l.prototype, function(e, t) {
                var n = a[t];
                if (n) {
                    var i = n.name + "";
                    (zn[i] || (zn[i] = [])).push({
                        name: t,
                        func: n
                    })
                }
            }), zn[ae(yt, bt).name] = [{
                name: "wrapper",
                func: yt
            }], l.prototype.clone = c, l.prototype.reverse = h, l.prototype.value = p, a.prototype.chain = je, a.prototype.commit = Ge, a.prototype.concat = ii, a.prototype.plant = Ue, a.prototype.reverse = We, a.prototype.toString = He, a.prototype.run = a.prototype.toJSON = a.prototype.valueOf = a.prototype.value = Xe, a.prototype.collect = a.prototype.map, a.prototype.head = a.prototype.first, a.prototype.select = a.prototype.filter, a.prototype.tail = a.prototype.rest, "function" == typeof define && "object" == typeof define.amd && define.amd && define("lodash", [], function() {
                return a
            })
        }.call(this),
        function(e, t) {
            "function" == typeof define && define.amd ? define("postal", ["lodash"], function(n) {
                return t(n, e)
            }) : "object" == typeof module && module.exports ? module.exports = t(require("lodash"), this) : e.postal = t(e._, e)
        }(this, function(e, t, n) {
            function i() {
                for (; x.length;) c.unsubscribe(x.shift())
            }

            function r(e, t, n) {
                return function(i, r, o) {
                    i === e && o.splice(r, 1), 0 === o.length && delete n[t]
                }
            }

            function o(e, t, n, i, r) {
                var o = r && r.headers || {};
                return function(r) {
                    var a;
                    h.resolver.compare(r.topic, e, o) && (o.resolverNoCache || (a = t[n] = t[n] || [], a.push(r)), r.cacheKeys.push(n), i && i(r))
                }
            }

            function a(e, t) {
                return {
                    channel: h.SYSTEM_CHANNEL,
                    topic: "subscription." + e,
                    data: {
                        event: "subscription." + e,
                        channel: t.channel,
                        topic: t.topic
                    }
                }
            }

            function s(t, n) {
                return "function" == typeof t ? t : t ? function(i) {
                    var r = 0,
                        o = 0;
                    return e.each(t, function(e, a) {
                        r += 1, ("topic" === a && n.compare(i.topic, t.topic, {
                            resolverNoCache: !0
                        }) || "context" === a && t.context === i._context || i[a] === t[a]) && (o += 1)
                    }), r === o
                } : function() {
                    return !0
                }
            }
            var u = t.postal,
                l = {
                    DEFAULT_CHANNEL: "/",
                    SYSTEM_CHANNEL: "postal",
                    enableSystemMessages: !0,
                    cacheKeyDelimiter: "|",
                    autoCompactResolver: !1
                },
                c = {
                    configuration: e.extend({}, l)
                },
                h = c.configuration,
                p = function(e, t) {
                    this.bus = t, this.channel = e || h.DEFAULT_CHANNEL
                };
            p.prototype.subscribe = function() {
                return this.bus.subscribe({
                    channel: this.channel,
                    topic: 1 === arguments.length ? arguments[0].topic : arguments[0],
                    callback: 1 === arguments.length ? arguments[0].callback : arguments[1]
                })
            }, p.prototype.publish = function() {
                var e, t = {};
                if ("string" == typeof arguments[0] ? (t.topic = arguments[0], t.data = arguments[1], e = arguments[2]) : (t = arguments[0], e = arguments[1]), "object" != typeof t) throw new Error("The first argument to ChannelDefinition.publish should be either an envelope object or a string topic.");
                t.channel = this.channel, this.bus.publish(t, e)
            };
            var d = function(e, t, i) {
                    if (3 !== arguments.length) throw new Error("You must provide a channel, topic and callback when creating a SubscriptionDefinition instance.");
                    if (0 === t.length) throw new Error("Topics cannot be empty");
                    this.channel = e, this.topic = t, this.callback = i, this.pipeline = [], this.cacheKeys = [], this._context = n
                },
                f = function() {
                    var t;
                    return function(n) {
                        var i = !1;
                        return "string" == typeof n ? (i = n === t, t = n) : (i = e.isEqual(n, t), t = e.extend({}, n)), !i
                    }
                },
                m = function() {
                    var t = [];
                    return function(n) {
                        var i = !e.any(t, function(t) {
                            return e.isEqual(n, t)
                        });
                        return i && t.push(n), i
                    }
                };
            d.prototype = {
                catch: function(e) {
                    var t = this.callback,
                        n = function() {
                            try {
                                t.apply(this, arguments)
                            } catch (t) {
                                e(t, arguments[0])
                            }
                        };
                    return this.callback = n, this
                },
                defer: function() {
                    return this.delay(0)
                },
                disposeAfter: function(t) {
                    if ("number" != typeof t || t <= 0) throw new Error("The value provided to disposeAfter (maxCalls) must be a number greater than zero.");
                    var n = this,
                        i = e.after(t, e.bind(function() {
                            n.unsubscribe()
                        }));
                    return n.pipeline.push(function(e, t, n) {
                        n(e, t), i()
                    }), n
                },
                distinct: function() {
                    return this.constraint(new m)
                },
                distinctUntilChanged: function() {
                    return this.constraint(new f)
                },
                invokeSubscriber: function(e, t) {
                    if (!this.inactive) {
                        var n = this,
                            i = n.pipeline,
                            r = i.length,
                            o = n._context,
                            a = -1,
                            s = !1;
                        if (r) {
                            i = i.concat([n.callback]);
                            ! function e(t, u) {
                                a += 1, a < r ? i[a].call(o, t, u, e) : (n.callback.call(o, t, u), s = !0)
                            }(e, t)
                        } else n.callback.call(o, e, t), s = !0;
                        return s
                    }
                },
                logError: function() {
                    if (console) {
                        var e;
                        e = console.warn ? console.warn : console.log, this.catch(e)
                    }
                    return this
                },
                once: function() {
                    return this.disposeAfter(1)
                },
                subscribe: function(e) {
                    return this.callback = e, this
                },
                unsubscribe: function() {
                    this.inactive || c.unsubscribe(this)
                },
                constraint: function(e) {
                    if ("function" != typeof e) throw new Error("Predicate constraint must be a function");
                    return this.pipeline.push(function(t, n, i) {
                        e.call(this, t, n) && i(t, n)
                    }), this
                },
                constraints: function(t) {
                    var n = this;
                    return e.each(t, function(e) {
                        n.constraint(e)
                    }), n
                },
                context: function(e) {
                    return this._context = e, this
                },
                debounce: function(t, n) {
                    if ("number" != typeof t) throw new Error("Milliseconds must be a number");
                    return this.pipeline.push(e.debounce(function(e, t, n) {
                        n(e, t)
                    }, t, !!n)), this
                },
                delay: function(e) {
                    if ("number" != typeof e) throw new Error("Milliseconds must be a number");
                    return this.pipeline.push(function(t, n, i) {
                        setTimeout(function() {
                            i(t, n)
                        }, e)
                    }), this
                },
                throttle: function(t) {
                    if ("number" != typeof t) throw new Error("Milliseconds must be a number");
                    var n = function(e, t, n) {
                        n(e, t)
                    };
                    return this.pipeline.push(e.throttle(n, t)), this
                }
            };
            for (var _ = ["withConstraint", "withConstraints", "withContext", "withDebounce", "withDelay", "withThrottle"], g = ["constraint", "constraints", "context", "debounce", "delay", "throttle"], y = 0; y < 6; y++) {
                var v = _[y];
                d.prototype[v] = function(e, t) {
                    return function() {
                        if (console.warn || console.log) {
                            console.warn
                        }
                        return d.prototype[t].apply(this, arguments)
                    }
                }(v, g[y])
            }
            var b = (h.resolver = {
                    cache: {},
                    regex: {},
                    enableCache: !0,
                    compare: function(t, n, i) {
                        var r, o, a, s = n + h.cacheKeyDelimiter + t,
                            u = this.cache[s],
                            l = i || {},
                            c = this.enableCache && !l.resolverNoCache;
                        return !0 === u ? u : -1 === t.indexOf("#") && -1 === t.indexOf("*") ? (u = n === t, c && (this.cache[s] = u), u) : ((o = this.regex[t]) || (r = "^" + e.map(t.split("."), function(e) {
                            var t = "";
                            return a && (t = "#" !== a ? "\\.\\b" : "\\b"), t += "#" === e ? "[\\s\\S]*" : "*" === e ? "[^.]+" : e, a = e, t
                        }).join("") + "$", o = this.regex[t] = new RegExp(r)), u = o.test(n), c && (this.cache[s] = u), u)
                    },
                    reset: function() {
                        this.cache = {}, this.regex = {}
                    },
                    purge: function(t) {
                        var n = this,
                            i = h.cacheKeyDelimiter,
                            r = function(e, r) {
                                var o = r.split(i),
                                    a = o[0],
                                    s = o[1];
                                void 0 !== t.topic && t.topic !== a || void 0 !== t.binding && t.binding !== s || delete n.cache[r]
                            },
                            o = function(e, t) {
                                var r = t.split(i);
                                0 === c.getSubscribersFor({
                                    topic: r[0]
                                }).length && delete n.cache[t]
                            };
                        if (void 0 === t) this.reset();
                        else {
                            var a = !0 === t.compact ? o : r;
                            e.each(this.cache, a)
                        }
                    }
                }, 0),
                x = [],
                T = 0,
                w = e.bind(a, this, "created"),
                S = e.bind(a, this, "removed");
            if (e.extend(c, {
                    cache: {},
                    subscriptions: {},
                    wireTaps: [],
                    ChannelDefinition: p,
                    SubscriptionDefinition: d,
                    channel: function(e) {
                        return new p(e, this)
                    },
                    addWireTap: function(e) {
                        var t = this;
                        return t.wireTaps.push(e),
                            function() {
                                var n = t.wireTaps.indexOf(e); - 1 !== n && t.wireTaps.splice(n, 1)
                            }
                    },
                    noConflict: function() {
                        if ("undefined" == typeof window || "undefined" != typeof window && "function" == typeof define && define.amd) throw new Error("noConflict can only be used in browser clients which aren't using AMD modules");
                        return t.postal = u, this
                    },
                    getSubscribersFor: function(t) {
                        var n = [],
                            i = this;
                        return e.each(i.subscriptions, function(i) {
                            e.each(i, function(i) {
                                n = n.concat(e.filter(i, s(t, h.resolver)))
                            })
                        }), n
                    },
                    publish: function(t, n) {
                        ++b;
                        var r = t.channel = t.channel || h.DEFAULT_CHANNEL,
                            a = t.topic;
                        t.timeStamp = new Date, this.wireTaps.length && e.each(this.wireTaps, function(e) {
                            e(t.data, t, b)
                        });
                        var s = r + h.cacheKeyDelimiter + a,
                            u = this.cache[s],
                            l = 0,
                            c = 0;
                        if (u) e.each(u, function(e) {
                            e.invokeSubscriber(t.data, t) ? c++ : l++
                        });
                        else {
                            var p = o(a, this.cache, s, function(e) {
                                e.invokeSubscriber(t.data, t) ? c++ : l++
                            }, t);
                            e.each(this.subscriptions[r], function(t) {
                                e.each(t, p)
                            })
                        }
                        0 == --b && i(), n && n({
                            activated: c,
                            skipped: l
                        })
                    },
                    reset: function() {
                        this.unsubscribeFor(), h.resolver.reset(), this.subscriptions = {}, this.cache = {}
                    },
                    subscribe: function(t) {
                        var n, i = this.subscriptions,
                            r = new d(t.channel || h.DEFAULT_CHANNEL, t.topic, t.callback),
                            a = i[r.channel],
                            s = r.channel.length;
                        return a || (a = i[r.channel] = {}), n = i[r.channel][r.topic], n || (n = i[r.channel][r.topic] = []), n.push(r), e.each(e.keys(this.cache), function(e) {
                            e.substr(0, s) === r.channel && o(e.split(h.cacheKeyDelimiter)[1], this.cache, e)(r)
                        }, this), h.enableSystemMessages && this.publish(w(r)), r
                    },
                    unsubscribe: function() {
                        for (var t, n, i, o, a = arguments.length, s = 0; s < a; s++) {
                            if (t = arguments[s], t.inactive = !0, b) return void x.push(t);
                            if (n = this.subscriptions[t.channel], i = n && n[t.topic]) {
                                var u = i.length;
                                for (o = 0; o < u;) {
                                    if (i[o] === t) {
                                        i.splice(o, 1);
                                        break
                                    }
                                    o += 1
                                }
                                if (0 === i.length && (delete n[t.topic], e.keys(n).length || delete this.subscriptions[t.channel]), t.cacheKeys && t.cacheKeys.length)
                                    for (var l; l = t.cacheKeys.pop();) e.each(this.cache[l], r(t, l, this.cache));
                                if ("function" == typeof h.resolver.purge) {
                                    var c = !0 === h.autoCompactResolver ? 0 : "number" == typeof h.autoCompactResolver && h.autoCompactResolver - 1;
                                    c >= 0 && T === c ? (h.resolver.purge({
                                        compact: !0
                                    }), T = 0) : c >= 0 && T < c && (T += 1)
                                }
                            }
                            h.enableSystemMessages && this.publish(S(t))
                        }
                    },
                    unsubscribeFor: function(e) {
                        var t = [];
                        this.subscriptions && (t = this.getSubscribersFor(e), this.unsubscribe.apply(this, t))
                    }
                }), t && Object.prototype.hasOwnProperty.call(t, "__postalReady__") && e.isArray(t.__postalReady__))
                for (; t.__postalReady__.length;) t.__postalReady__.shift().onReady(c);
            return c
        }),
        function(e) {
            "use strict";
            if ("function" == typeof bootstrap) bootstrap("promise", e);
            else if ("object" == typeof exports && "object" == typeof module) module.exports = e();
            else if ("function" == typeof define && define.amd) define("promise", e);
            else if ("undefined" != typeof ses) {
                if (!ses.ok()) return;
                ses.makeQ = e
            } else {
                if ("undefined" == typeof window && "undefined" == typeof self) throw new Error("This environment was not anticipated by Q. Please file a bug.");
                var t = "undefined" != typeof window ? window : self,
                    n = t.Q;
                t.Q = e(), t.Q.noConflict = function() {
                    return t.Q = n, this
                }
            }
        }(function() {
            "use strict";

            function e(e) {
                return function() {
                    return V.apply(e, arguments)
                }
            }

            function t(e) {
                return e === Object(e)
            }

            function n(e) {
                return "[object StopIteration]" === ee(e) || e instanceof W
            }

            function i(e, t) {
                if (G && t.stack && "object" == typeof e && null !== e && e.stack && -1 === e.stack.indexOf(te)) {
                    for (var n = [], i = t; i; i = i.source) i.stack && n.unshift(i.stack);
                    n.unshift(e.stack);
                    var o = n.join("\n" + te + "\n");
                    e.stack = r(o)
                }
            }

            function r(e) {
                for (var t = e.split("\n"), n = [], i = 0; i < t.length; ++i) {
                    var r = t[i];
                    s(r) || o(r) || !r || n.push(r)
                }
                return n.join("\n")
            }

            function o(e) {
                return -1 !== e.indexOf("(module.js:") || -1 !== e.indexOf("(node.js:")
            }

            function a(e) {
                var t = /at .+ \((.+):(\d+):(?:\d+)\)$/.exec(e);
                if (t) return [t[1], Number(t[2])];
                var n = /at ([^ ]+):(\d+):(?:\d+)$/.exec(e);
                if (n) return [n[1], Number(n[2])];
                var i = /.*@(.+):(\d+)$/.exec(e);
                return i ? [i[1], Number(i[2])] : void 0
            }

            function s(e) {
                var t = a(e);
                if (!t) return !1;
                var n = t[0],
                    i = t[1];
                return n === U && i >= H && i <= ae
            }

            function u() {
                if (G) try {
                    throw new Error
                } catch (i) {
                    var e = i.stack.split("\n"),
                        t = e[0].indexOf("@") > 0 ? e[1] : e[2],
                        n = a(t);
                    if (!n) return;
                    return U = n[0], n[1]
                }
            }

            function l(e) {
                return e instanceof d ? e : g(e) ? C(e) : P(e)
            }

            function c() {
                function e(e) {
                    t = e, o.source = e, q(n, function(t, n) {
                        l.nextTick(function() {
                            e.promiseDispatch.apply(e, n)
                        })
                    }, void 0), n = void 0, i = void 0
                }
                var t, n = [],
                    i = [],
                    r = K(c.prototype),
                    o = K(d.prototype);
                if (o.promiseDispatch = function(e, r, o) {
                        var a = J(arguments);
                        n ? (n.push(a), "when" === r && o[1] && i.push(o[1])) : l.nextTick(function() {
                            t.promiseDispatch.apply(t, a)
                        })
                    }, o.valueOf = function() {
                        if (n) return o;
                        var e = m(t);
                        return _(e) && (t = e), e
                    }, o.inspect = function() {
                        return t ? t.inspect() : {
                            state: "pending"
                        }
                    }, l.longStackSupport && G) try {
                    throw new Error
                } catch (e) {
                    o.stack = e.stack.substring(e.stack.indexOf("\n") + 1)
                }
                return r.promise = o, r.resolve = function(n) {
                    t || e(l(n))
                }, r.fulfill = function(n) {
                    t || e(P(n))
                }, r.reject = function(n) {
                    t || e(S(n))
                }, r.notify = function(e) {
                    t || q(i, function(t, n) {
                        l.nextTick(function() {
                            n(e)
                        })
                    }, void 0)
                }, r
            }

            function h(e) {
                if ("function" != typeof e) throw new TypeError("resolver must be a function.");
                var t = c();
                try {
                    e(t.resolve, t.reject, t.notify)
                } catch (e) {
                    t.reject(e)
                }
                return t.promise
            }

            function p(e) {
                return h(function(t, n) {
                    for (var i = 0, r = e.length; i < r; i++) l(e[i]).then(t, n)
                })
            }

            function d(e, t, n) {
                void 0 === t && (t = function(e) {
                    return S(new Error("Promise does not support operation: " + e))
                }), void 0 === n && (n = function() {
                    return {
                        state: "unknown"
                    }
                });
                var i = K(d.prototype);
                if (i.promiseDispatch = function(n, r, o) {
                        var a;
                        try {
                            a = e[r] ? e[r].apply(i, o) : t.call(i, r, o)
                        } catch (e) {
                            a = S(e)
                        }
                        n && n(a)
                    }, i.inspect = n, n) {
                    var r = n();
                    "rejected" === r.state && (i.exception = r.reason), i.valueOf = function() {
                        var e = n();
                        return "pending" === e.state || "rejected" === e.state ? i : e.value
                    }
                }
                return i
            }

            function f(e, t, n, i) {
                return l(e).then(t, n, i)
            }

            function m(e) {
                if (_(e)) {
                    var t = e.inspect();
                    if ("fulfilled" === t.state) return t.value
                }
                return e
            }

            function _(e) {
                return e instanceof d
            }

            function g(e) {
                return t(e) && "function" == typeof e.then
            }

            function y(e) {
                return _(e) && "pending" === e.inspect().state
            }

            function v(e) {
                return !_(e) || "fulfilled" === e.inspect().state
            }

            function b(e) {
                return _(e) && "rejected" === e.inspect().state
            }

            function x() {
                ne.length = 0, ie.length = 0, oe || (oe = !0)
            }

            function T(e, t) {
                oe && ("object" == typeof process && "function" == typeof process.emit && l.nextTick.runAfter(function() {
                    -1 !== Y(ie, e) && (process.emit("unhandledRejection", t, e), re.push(e))
                }), ie.push(e), t && void 0 !== t.stack ? ne.push(t.stack) : ne.push("(no stack) " + t))
            }

            function w(e) {
                if (oe) {
                    var t = Y(ie, e); - 1 !== t && ("object" == typeof process && "function" == typeof process.emit && l.nextTick.runAfter(function() {
                        var n = Y(re, e); - 1 !== n && (process.emit("rejectionHandled", ne[t], e), re.splice(n, 1))
                    }), ie.splice(t, 1), ne.splice(t, 1))
                }
            }

            function S(e) {
                var t = d({
                    when: function(t) {
                        return t && w(this), t ? t(e) : this
                    }
                }, function() {
                    return this
                }, function() {
                    return {
                        state: "rejected",
                        reason: e
                    }
                });
                return T(t, e), t
            }

            function P(e) {
                return d({
                    when: function() {
                        return e
                    },
                    get: function(t) {
                        return e[t]
                    },
                    set: function(t, n) {
                        e[t] = n
                    },
                    delete: function(t) {
                        delete e[t]
                    },
                    post: function(t, n) {
                        return null === t || void 0 === t ? e.apply(void 0, n) : e[t].apply(e, n)
                    },
                    apply: function(t, n) {
                        return e.apply(t, n)
                    },
                    keys: function() {
                        return Z(e)
                    }
                }, void 0, function() {
                    return {
                        state: "fulfilled",
                        value: e
                    }
                })
            }

            function C(e) {
                var t = c();
                return l.nextTick(function() {
                    try {
                        e.then(t.resolve, t.reject, t.notify)
                    } catch (e) {
                        t.reject(e)
                    }
                }), t.promise
            }

            function E(e) {
                return d({
                    isDef: function() {}
                }, function(t, n) {
                    return k(e, t, n)
                }, function() {
                    return l(e).inspect()
                })
            }

            function M(e, t, n) {
                return l(e).spread(t, n)
            }

            function O(e) {
                return function() {
                    function t(e, t) {
                        var a;
                        if ("undefined" == typeof StopIteration) {
                            try {
                                a = i[e](t)
                            } catch (e) {
                                return S(e)
                            }
                            return a.done ? l(a.value) : f(a.value, r, o)
                        }
                        try {
                            a = i[e](t)
                        } catch (e) {
                            return n(e) ? l(e.value) : S(e)
                        }
                        return f(a, r, o)
                    }
                    var i = e.apply(this, arguments),
                        r = t.bind(t, "next"),
                        o = t.bind(t, "throw");
                    return r()
                }
            }

            function I(e) {
                l.done(l.async(e)())
            }

            function A(e) {
                throw new W(e)
            }

            function R(e) {
                return function() {
                    return M([this, L(arguments)], function(t, n) {
                        return e.apply(t, n)
                    })
                }
            }

            function k(e, t, n) {
                return l(e).dispatch(t, n)
            }

            function L(e) {
                return f(e, function(e) {
                    var t = 0,
                        n = c();
                    return q(e, function(i, r, o) {
                        var a;
                        _(r) && "fulfilled" === (a = r.inspect()).state ? e[o] = a.value : (++t, f(r, function(i) {
                            e[o] = i, 0 == --t && n.resolve(e)
                        }, n.reject, function(e) {
                            n.notify({
                                index: o,
                                value: e
                            })
                        }))
                    }, void 0), 0 === t && n.resolve(e), n.promise
                })
            }

            function D(e) {
                if (0 === e.length) return l.resolve();
                var t = l.defer(),
                    n = 0;
                return q(e, function(i, r, o) {
                    function a(e) {
                        t.resolve(e)
                    }

                    function s() {
                        0 === --n && t.reject(new Error("Q can't get fulfillment value from any promise, all promises were rejected."))
                    }

                    function u(e) {
                        t.notify({
                            index: o,
                            value: e
                        })
                    }
                    var l = e[o];
                    n++, f(l, a, s, u)
                }, void 0), t.promise
            }

            function B(e) {
                return f(e, function(e) {
                    return e = $(e, l), f(L($(e, function(e) {
                        return f(e, X, X)
                    })), function() {
                        return e
                    })
                })
            }

            function F(e) {
                return l(e).allSettled()
            }

            function N(e, t) {
                return l(e).then(void 0, void 0, t)
            }

            function j(e, t) {
                return l(e).nodeify(t)
            }
            var G = !1;
            try {
                throw new Error
            } catch (e) {
                G = !!e.stack
            }
            var U, W, H = u(),
                X = function() {},
                z = function() {
                    function e() {
                        for (var e, i; n.next;) n = n.next, e = n.task, n.task = void 0, i = n.domain, i && (n.domain = void 0, i.enter()), t(e, i);
                        for (; s.length;) e = s.pop(), t(e);
                        r = !1
                    }

                    function t(t, n) {
                        try {
                            t()
                        } catch (t) {
                            if (a) throw n && n.exit(), setTimeout(e, 0), n && n.enter(), t;
                            setTimeout(function() {
                                throw t
                            }, 0)
                        }
                        n && n.exit()
                    }
                    var n = {
                            task: void 0,
                            next: null
                        },
                        i = n,
                        r = !1,
                        o = void 0,
                        a = !1,
                        s = [];
                    if (z = function(e) {
                            i = i.next = {
                                task: e,
                                domain: a && process.domain,
                                next: null
                            }, r || (r = !0, o())
                        }, "object" == typeof process && "[object process]" === process.toString() && process.nextTick) a = !0, o = function() {
                        process.nextTick(e)
                    };
                    else if ("function" == typeof setImmediate) o = "undefined" != typeof window ? setImmediate.bind(window, e) : function() {
                        setImmediate(e)
                    };
                    else if ("undefined" != typeof MessageChannel) {
                        var u = new MessageChannel;
                        u.port1.onmessage = function() {
                            o = l, u.port1.onmessage = e, e()
                        };
                        var l = function() {
                            u.port2.postMessage(0)
                        };
                        o = function() {
                            setTimeout(e, 0), l()
                        }
                    } else o = function() {
                        setTimeout(e, 0)
                    };
                    return z.runAfter = function(e) {
                        s.push(e), r || (r = !0, o())
                    }, z
                }(),
                V = Function.call,
                J = e(Array.prototype.slice),
                q = e(Array.prototype.reduce || function(e, t) {
                    var n = 0,
                        i = this.length;
                    if (1 === arguments.length)
                        for (;;) {
                            if (n in this) {
                                t = this[n++];
                                break
                            }
                            if (++n >= i) throw new TypeError
                        }
                    for (; n < i; n++) n in this && (t = e(t, this[n], n));
                    return t
                }),
                Y = e(Array.prototype.indexOf || function(e) {
                    for (var t = 0; t < this.length; t++)
                        if (this[t] === e) return t;
                    return -1
                }),
                $ = e(Array.prototype.map || function(e, t) {
                    var n = this,
                        i = [];
                    return q(n, function(r, o, a) {
                        i.push(e.call(t, o, a, n))
                    }, void 0), i
                }),
                K = Object.create || function(e) {
                    function t() {}
                    return t.prototype = e, new t
                },
                Q = e(Object.prototype.hasOwnProperty),
                Z = Object.keys || function(e) {
                    var t = [];
                    for (var n in e) Q(e, n) && t.push(n);
                    return t
                },
                ee = e(Object.prototype.toString);
            W = "undefined" != typeof ReturnValue ? ReturnValue : function(e) {
                this.value = e
            };
            var te = "From previous event:";
            l.resolve = l, l.nextTick = z, l.longStackSupport = !1, "object" == typeof process && process && process.env && process.env.Q_DEBUG && (l.longStackSupport = !0), l.defer = c, c.prototype.makeNodeResolver = function() {
                var e = this;
                return function(t, n) {
                    t ? e.reject(t) : arguments.length > 2 ? e.resolve(J(arguments, 1)) : e.resolve(n)
                }
            }, l.Promise = h, l.promise = h, h.race = p, h.all = L, h.reject = S, h.resolve = l, l.passByCopy = function(e) {
                return e
            }, d.prototype.passByCopy = function() {
                return this
            }, l.join = function(e, t) {
                return l(e).join(t)
            }, d.prototype.join = function(e) {
                return l([this, e]).spread(function(e, t) {
                    if (e === t) return e;
                    throw new Error("Q can't join: not the same: " + e + " " + t)
                })
            }, l.race = p, d.prototype.race = function() {
                return this.then(l.race)
            }, l.makePromise = d, d.prototype.toString = function() {
                return "[object Promise]"
            }, d.prototype.then = function(e, t, n) {
                function r(t) {
                    try {
                        return "function" == typeof e ? e(t) : t
                    } catch (e) {
                        return S(e)
                    }
                }

                function o(e) {
                    if ("function" == typeof t) {
                        i(e, s);
                        try {
                            return t(e)
                        } catch (e) {
                            return S(e)
                        }
                    }
                    return S(e)
                }

                function a(e) {
                    return "function" == typeof n ? n(e) : e
                }
                var s = this,
                    u = c(),
                    h = !1;
                return l.nextTick(function() {
                    s.promiseDispatch(function(e) {
                        h || (h = !0, u.resolve(r(e)))
                    }, "when", [function(e) {
                        h || (h = !0, u.resolve(o(e)))
                    }])
                }), s.promiseDispatch(void 0, "when", [void 0, function(e) {
                    var t, n = !1;
                    try {
                        t = a(e)
                    } catch (e) {
                        if (n = !0, !l.onerror) throw e;
                        l.onerror(e)
                    }
                    n || u.notify(t)
                }]), u.promise
            }, l.tap = function(e, t) {
                return l(e).tap(t)
            }, d.prototype.tap = function(e) {
                return e = l(e), this.then(function(t) {
                    return e.fcall(t).thenResolve(t)
                })
            }, l.when = f, d.prototype.thenResolve = function(e) {
                return this.then(function() {
                    return e
                })
            }, l.thenResolve = function(e, t) {
                return l(e).thenResolve(t)
            }, d.prototype.thenReject = function(e) {
                return this.then(function() {
                    throw e
                })
            }, l.thenReject = function(e, t) {
                return l(e).thenReject(t)
            }, l.nearer = m, l.isPromise = _, l.isPromiseAlike = g, l.isPending = y, d.prototype.isPending = function() {
                return "pending" === this.inspect().state
            }, l.isFulfilled = v, d.prototype.isFulfilled = function() {
                return "fulfilled" === this.inspect().state
            }, l.isRejected = b, d.prototype.isRejected = function() {
                return "rejected" === this.inspect().state
            };
            var ne = [],
                ie = [],
                re = [],
                oe = !0;
            l.resetUnhandledRejections = x, l.getUnhandledReasons = function() {
                return ne.slice()
            }, l.stopUnhandledRejectionTracking = function() {
                x(), oe = !1
            }, x(), l.reject = S, l.fulfill = P, l.master = E, l.spread = M, d.prototype.spread = function(e, t) {
                return this.all().then(function(t) {
                    return e.apply(void 0, t)
                }, t)
            }, l.async = O, l.spawn = I, l.return = A, l.promised = R, l.dispatch = k, d.prototype.dispatch = function(e, t) {
                var n = this,
                    i = c();
                return l.nextTick(function() {
                    n.promiseDispatch(i.resolve, e, t)
                }), i.promise
            }, l.get = function(e, t) {
                return l(e).dispatch("get", [t])
            }, d.prototype.get = function(e) {
                return this.dispatch("get", [e])
            }, l.set = function(e, t, n) {
                return l(e).dispatch("set", [t, n])
            }, d.prototype.set = function(e, t) {
                return this.dispatch("set", [e, t])
            }, l.del = l.delete = function(e, t) {
                return l(e).dispatch("delete", [t])
            }, d.prototype.del = d.prototype.delete = function(e) {
                return this.dispatch("delete", [e])
            }, l.mapply = l.post = function(e, t, n) {
                return l(e).dispatch("post", [t, n])
            }, d.prototype.mapply = d.prototype.post = function(e, t) {
                return this.dispatch("post", [e, t])
            }, l.send = l.mcall = l.invoke = function(e, t) {
                return l(e).dispatch("post", [t, J(arguments, 2)])
            }, d.prototype.send = d.prototype.mcall = d.prototype.invoke = function(e) {
                return this.dispatch("post", [e, J(arguments, 1)])
            }, l.fapply = function(e, t) {
                return l(e).dispatch("apply", [void 0, t])
            }, d.prototype.fapply = function(e) {
                return this.dispatch("apply", [void 0, e])
            }, l.try = l.fcall = function(e) {
                return l(e).dispatch("apply", [void 0, J(arguments, 1)])
            }, d.prototype.fcall = function() {
                return this.dispatch("apply", [void 0, J(arguments)])
            }, l.fbind = function(e) {
                var t = l(e),
                    n = J(arguments, 1);
                return function() {
                    return t.dispatch("apply", [this, n.concat(J(arguments))])
                }
            }, d.prototype.fbind = function() {
                var e = this,
                    t = J(arguments);
                return function() {
                    return e.dispatch("apply", [this, t.concat(J(arguments))])
                }
            }, l.keys = function(e) {
                return l(e).dispatch("keys", [])
            }, d.prototype.keys = function() {
                return this.dispatch("keys", [])
            }, l.all = L, d.prototype.all = function() {
                return L(this)
            }, l.any = D, d.prototype.any = function() {
                return D(this)
            }, l.allResolved = function(e, t, n) {
                return function() {
                    return "undefined" != typeof console && console.warn, e.apply(e, arguments)
                }
            }(B, "allResolved", "allSettled"), d.prototype.allResolved = function() {
                return B(this)
            }, l.allSettled = F, d.prototype.allSettled = function() {
                return this.then(function(e) {
                    return L($(e, function(e) {
                        function t() {
                            return e.inspect()
                        }
                        return e = l(e), e.then(t, t)
                    }))
                })
            }, l.fail = l.catch = function(e, t) {
                return l(e).then(void 0, t)
            }, d.prototype.fail = d.prototype.catch = function(e) {
                return this.then(void 0, e)
            }, l.progress = N, d.prototype.progress = function(e) {
                return this.then(void 0, void 0, e)
            }, l.fin = l.finally = function(e, t) {
                return l(e).finally(t)
            }, d.prototype.fin = d.prototype.finally = function(e) {
                if (!e || "function" != typeof e.apply) throw new Error("Q can't apply finally callback");
                return e = l(e), this.then(function(t) {
                    return e.fcall().then(function() {
                        return t
                    })
                }, function(t) {
                    return e.fcall().then(function() {
                        throw t
                    })
                })
            }, l.done = function(e, t, n, i) {
                return l(e).done(t, n, i)
            }, d.prototype.done = function(e, t, n) {
                var r = function(e) {
                        l.nextTick(function() {
                            if (i(e, o), !l.onerror) throw e;
                            l.onerror(e)
                        })
                    },
                    o = e || t || n ? this.then(e, t, n) : this;
                "object" == typeof process && process && process.domain && (r = process.domain.bind(r)), o.then(void 0, r)
            }, l.timeout = function(e, t, n) {
                return l(e).timeout(t, n)
            }, d.prototype.timeout = function(e, t) {
                var n = c(),
                    i = setTimeout(function() {
                        t && "string" != typeof t || (t = new Error(t || "Timed out after " + e + " ms"), t.code = "ETIMEDOUT"), n.reject(t)
                    }, e);
                return this.then(function(e) {
                    clearTimeout(i), n.resolve(e)
                }, function(e) {
                    clearTimeout(i), n.reject(e)
                }, n.notify), n.promise
            }, l.delay = function(e, t) {
                return void 0 === t && (t = e, e = void 0), l(e).delay(t)
            }, d.prototype.delay = function(e) {
                return this.then(function(t) {
                    var n = c();
                    return setTimeout(function() {
                        n.resolve(t)
                    }, e), n.promise
                })
            }, l.nfapply = function(e, t) {
                return l(e).nfapply(t)
            }, d.prototype.nfapply = function(e) {
                var t = c(),
                    n = J(e);
                return n.push(t.makeNodeResolver()), this.fapply(n).fail(t.reject), t.promise
            }, l.nfcall = function(e) {
                var t = J(arguments, 1);
                return l(e).nfapply(t)
            }, d.prototype.nfcall = function() {
                var e = J(arguments),
                    t = c();
                return e.push(t.makeNodeResolver()), this.fapply(e).fail(t.reject), t.promise
            }, l.nfbind = l.denodeify = function(e) {
                if (void 0 === e) throw new Error("Q can't wrap an undefined function");
                var t = J(arguments, 1);
                return function() {
                    var n = t.concat(J(arguments)),
                        i = c();
                    return n.push(i.makeNodeResolver()), l(e).fapply(n).fail(i.reject), i.promise
                }
            }, d.prototype.nfbind = d.prototype.denodeify = function() {
                var e = J(arguments);
                return e.unshift(this), l.denodeify.apply(void 0, e)
            }, l.nbind = function(e, t) {
                var n = J(arguments, 2);
                return function() {
                    function i() {
                        return e.apply(t, arguments)
                    }
                    var r = n.concat(J(arguments)),
                        o = c();
                    return r.push(o.makeNodeResolver()), l(i).fapply(r).fail(o.reject), o.promise
                }
            }, d.prototype.nbind = function() {
                var e = J(arguments, 0);
                return e.unshift(this), l.nbind.apply(void 0, e)
            }, l.nmapply = l.npost = function(e, t, n) {
                return l(e).npost(t, n)
            }, d.prototype.nmapply = d.prototype.npost = function(e, t) {
                var n = J(t || []),
                    i = c();
                return n.push(i.makeNodeResolver()), this.dispatch("post", [e, n]).fail(i.reject), i.promise
            }, l.nsend = l.nmcall = l.ninvoke = function(e, t) {
                var n = J(arguments, 2),
                    i = c();
                return n.push(i.makeNodeResolver()), l(e).dispatch("post", [t, n]).fail(i.reject), i.promise
            }, d.prototype.nsend = d.prototype.nmcall = d.prototype.ninvoke = function(e) {
                var t = J(arguments, 1),
                    n = c();
                return t.push(n.makeNodeResolver()), this.dispatch("post", [e, t]).fail(n.reject), n.promise
            }, l.nodeify = j, d.prototype.nodeify = function(e) {
                if (!e) return this;
                this.then(function(t) {
                    l.nextTick(function() {
                        e(null, t)
                    })
                }, function(t) {
                    l.nextTick(function() {
                        e(t)
                    })
                })
            }, l.noConflict = function() {
                throw new Error("Q.noConflict only works when Q is used as a global")
            };
            var ae = u();
            return l
        }),
        function() {
            function e(e) {
                function t(t, n, i, r, o, a) {
                    for (; o >= 0 && a > o; o += e) {
                        var s = r ? r[o] : o;
                        i = n(i, t[s], s, t)
                    }
                    return i
                }
                return function(n, i, r, o) {
                    i = v(i, o, 4);
                    var a = !C(n) && y.keys(n),
                        s = (a || n).length,
                        u = e > 0 ? 0 : s - 1;
                    return arguments.length < 3 && (r = n[a ? a[u] : u], u += e), t(n, i, r, a, u, s)
                }
            }

            function t(e) {
                return function(t, n, i) {
                    n = b(n, i);
                    for (var r = P(t), o = e > 0 ? 0 : r - 1; o >= 0 && r > o; o += e)
                        if (n(t[o], o, t)) return o;
                    return -1
                }
            }

            function n(e, t, n) {
                return function(i, r, o) {
                    var a = 0,
                        s = P(i);
                    if ("number" == typeof o) e > 0 ? a = o >= 0 ? o : Math.max(o + s, a) : s = o >= 0 ? Math.min(o + 1, s) : o + s + 1;
                    else if (n && o && s) return o = n(i, r), i[o] === r ? o : -1;
                    if (r !== r) return o = t(c.call(i, a, s), y.isNaN), o >= 0 ? o + a : -1;
                    for (o = e > 0 ? a : s - 1; o >= 0 && s > o; o += e)
                        if (i[o] === r) return o;
                    return -1
                }
            }

            function i(e, t) {
                var n = A.length,
                    i = e.constructor,
                    r = y.isFunction(i) && i.prototype || s,
                    o = "constructor";
                for (y.has(e, o) && !y.contains(t, o) && t.push(o); n--;)(o = A[n]) in e && e[o] !== r[o] && !y.contains(t, o) && t.push(o)
            }
            var r = this,
                o = r._,
                a = Array.prototype,
                s = Object.prototype,
                u = Function.prototype,
                l = a.push,
                c = a.slice,
                h = s.toString,
                p = s.hasOwnProperty,
                d = Array.isArray,
                f = Object.keys,
                m = u.bind,
                _ = Object.create,
                g = function() {},
                y = function(e) {
                    return e instanceof y ? e : this instanceof y ? void(this._wrapped = e) : new y(e)
                };
            "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = y), exports._ = y) : r._ = y, y.VERSION = "1.8.3";
            var v = function(e, t, n) {
                    if (void 0 === t) return e;
                    switch (null == n ? 3 : n) {
                        case 1:
                            return function(n) {
                                return e.call(t, n)
                            };
                        case 2:
                            return function(n, i) {
                                return e.call(t, n, i)
                            };
                        case 3:
                            return function(n, i, r) {
                                return e.call(t, n, i, r)
                            };
                        case 4:
                            return function(n, i, r, o) {
                                return e.call(t, n, i, r, o)
                            }
                    }
                    return function() {
                        return e.apply(t, arguments)
                    }
                },
                b = function(e, t, n) {
                    return null == e ? y.identity : y.isFunction(e) ? v(e, t, n) : y.isObject(e) ? y.matcher(e) : y.property(e)
                };
            y.iteratee = function(e, t) {
                return b(e, t, 1 / 0)
            };
            var x = function(e, t) {
                    return function(n) {
                        var i = arguments.length;
                        if (2 > i || null == n) return n;
                        for (var r = 1; i > r; r++)
                            for (var o = arguments[r], a = e(o), s = a.length, u = 0; s > u; u++) {
                                var l = a[u];
                                t && void 0 !== n[l] || (n[l] = o[l])
                            }
                        return n
                    }
                },
                T = function(e) {
                    if (!y.isObject(e)) return {};
                    if (_) return _(e);
                    g.prototype = e;
                    var t = new g;
                    return g.prototype = null, t
                },
                w = function(e) {
                    return function(t) {
                        return null == t ? void 0 : t[e]
                    }
                },
                S = Math.pow(2, 53) - 1,
                P = w("length"),
                C = function(e) {
                    var t = P(e);
                    return "number" == typeof t && t >= 0 && S >= t
                };
            y.each = y.forEach = function(e, t, n) {
                t = v(t, n);
                var i, r;
                if (C(e))
                    for (i = 0, r = e.length; r > i; i++) t(e[i], i, e);
                else {
                    var o = y.keys(e);
                    for (i = 0, r = o.length; r > i; i++) t(e[o[i]], o[i], e)
                }
                return e
            }, y.map = y.collect = function(e, t, n) {
                t = b(t, n);
                for (var i = !C(e) && y.keys(e), r = (i || e).length, o = Array(r), a = 0; r > a; a++) {
                    var s = i ? i[a] : a;
                    o[a] = t(e[s], s, e)
                }
                return o
            }, y.reduce = y.foldl = y.inject = e(1), y.reduceRight = y.foldr = e(-1), y.find = y.detect = function(e, t, n) {
                var i;
                return i = C(e) ? y.findIndex(e, t, n) : y.findKey(e, t, n), void 0 !== i && -1 !== i ? e[i] : void 0
            }, y.filter = y.select = function(e, t, n) {
                var i = [];
                return t = b(t, n), y.each(e, function(e, n, r) {
                    t(e, n, r) && i.push(e)
                }), i
            }, y.reject = function(e, t, n) {
                return y.filter(e, y.negate(b(t)), n)
            }, y.every = y.all = function(e, t, n) {
                t = b(t, n);
                for (var i = !C(e) && y.keys(e), r = (i || e).length, o = 0; r > o; o++) {
                    var a = i ? i[o] : o;
                    if (!t(e[a], a, e)) return !1
                }
                return !0
            }, y.some = y.any = function(e, t, n) {
                t = b(t, n);
                for (var i = !C(e) && y.keys(e), r = (i || e).length, o = 0; r > o; o++) {
                    var a = i ? i[o] : o;
                    if (t(e[a], a, e)) return !0
                }
                return !1
            }, y.contains = y.includes = y.include = function(e, t, n, i) {
                return C(e) || (e = y.values(e)), ("number" != typeof n || i) && (n = 0), y.indexOf(e, t, n) >= 0
            }, y.invoke = function(e, t) {
                var n = c.call(arguments, 2),
                    i = y.isFunction(t);
                return y.map(e, function(e) {
                    var r = i ? t : e[t];
                    return null == r ? r : r.apply(e, n)
                })
            }, y.pluck = function(e, t) {
                return y.map(e, y.property(t))
            }, y.where = function(e, t) {
                return y.filter(e, y.matcher(t))
            }, y.findWhere = function(e, t) {
                return y.find(e, y.matcher(t))
            }, y.max = function(e, t, n) {
                var i, r, o = -1 / 0,
                    a = -1 / 0;
                if (null == t && null != e) {
                    e = C(e) ? e : y.values(e);
                    for (var s = 0, u = e.length; u > s; s++)(i = e[s]) > o && (o = i)
                } else t = b(t, n), y.each(e, function(e, n, i) {
                    ((r = t(e, n, i)) > a || r === -1 / 0 && o === -1 / 0) && (o = e, a = r)
                });
                return o
            }, y.min = function(e, t, n) {
                var i, r, o = 1 / 0,
                    a = 1 / 0;
                if (null == t && null != e) {
                    e = C(e) ? e : y.values(e);
                    for (var s = 0, u = e.length; u > s; s++) i = e[s], o > i && (o = i)
                } else t = b(t, n), y.each(e, function(e, n, i) {
                    r = t(e, n, i), (a > r || 1 / 0 === r && 1 / 0 === o) && (o = e, a = r)
                });
                return o
            }, y.shuffle = function(e) {
                for (var t, n = C(e) ? e : y.values(e), i = n.length, r = Array(i), o = 0; i > o; o++) t = y.random(0, o), t !== o && (r[o] = r[t]), r[t] = n[o];
                return r
            }, y.sample = function(e, t, n) {
                return null == t || n ? (C(e) || (e = y.values(e)), e[y.random(e.length - 1)]) : y.shuffle(e).slice(0, Math.max(0, t))
            }, y.sortBy = function(e, t, n) {
                return t = b(t, n), y.pluck(y.map(e, function(e, n, i) {
                    return {
                        value: e,
                        index: n,
                        criteria: t(e, n, i)
                    }
                }).sort(function(e, t) {
                    var n = e.criteria,
                        i = t.criteria;
                    if (n !== i) {
                        if (n > i || void 0 === n) return 1;
                        if (i > n || void 0 === i) return -1
                    }
                    return e.index - t.index
                }), "value")
            };
            var E = function(e) {
                return function(t, n, i) {
                    var r = {};
                    return n = b(n, i), y.each(t, function(i, o) {
                        var a = n(i, o, t);
                        e(r, i, a)
                    }), r
                }
            };
            y.groupBy = E(function(e, t, n) {
                y.has(e, n) ? e[n].push(t) : e[n] = [t]
            }), y.indexBy = E(function(e, t, n) {
                e[n] = t
            }), y.countBy = E(function(e, t, n) {
                y.has(e, n) ? e[n]++ : e[n] = 1
            }), y.toArray = function(e) {
                return e ? y.isArray(e) ? c.call(e) : C(e) ? y.map(e, y.identity) : y.values(e) : []
            }, y.size = function(e) {
                return null == e ? 0 : C(e) ? e.length : y.keys(e).length
            }, y.partition = function(e, t, n) {
                t = b(t, n);
                var i = [],
                    r = [];
                return y.each(e, function(e, n, o) {
                    (t(e, n, o) ? i : r).push(e)
                }), [i, r]
            }, y.first = y.head = y.take = function(e, t, n) {
                return null == e ? void 0 : null == t || n ? e[0] : y.initial(e, e.length - t)
            }, y.initial = function(e, t, n) {
                return c.call(e, 0, Math.max(0, e.length - (null == t || n ? 1 : t)))
            }, y.last = function(e, t, n) {
                return null == e ? void 0 : null == t || n ? e[e.length - 1] : y.rest(e, Math.max(0, e.length - t))
            }, y.rest = y.tail = y.drop = function(e, t, n) {
                return c.call(e, null == t || n ? 1 : t)
            }, y.compact = function(e) {
                return y.filter(e, y.identity)
            };
            var M = function(e, t, n, i) {
                for (var r = [], o = 0, a = i || 0, s = P(e); s > a; a++) {
                    var u = e[a];
                    if (C(u) && (y.isArray(u) || y.isArguments(u))) {
                        t || (u = M(u, t, n));
                        var l = 0,
                            c = u.length;
                        for (r.length += c; c > l;) r[o++] = u[l++]
                    } else n || (r[o++] = u)
                }
                return r
            };
            y.flatten = function(e, t) {
                return M(e, t, !1)
            }, y.without = function(e) {
                return y.difference(e, c.call(arguments, 1))
            }, y.uniq = y.unique = function(e, t, n, i) {
                y.isBoolean(t) || (i = n, n = t, t = !1), null != n && (n = b(n, i));
                for (var r = [], o = [], a = 0, s = P(e); s > a; a++) {
                    var u = e[a],
                        l = n ? n(u, a, e) : u;
                    t ? (a && o === l || r.push(u), o = l) : n ? y.contains(o, l) || (o.push(l), r.push(u)) : y.contains(r, u) || r.push(u)
                }
                return r
            }, y.union = function() {
                return y.uniq(M(arguments, !0, !0))
            }, y.intersection = function(e) {
                for (var t = [], n = arguments.length, i = 0, r = P(e); r > i; i++) {
                    var o = e[i];
                    if (!y.contains(t, o)) {
                        for (var a = 1; n > a && y.contains(arguments[a], o); a++);
                        a === n && t.push(o)
                    }
                }
                return t
            }, y.difference = function(e) {
                var t = M(arguments, !0, !0, 1);
                return y.filter(e, function(e) {
                    return !y.contains(t, e)
                })
            }, y.zip = function() {
                return y.unzip(arguments)
            }, y.unzip = function(e) {
                for (var t = e && y.max(e, P).length || 0, n = Array(t), i = 0; t > i; i++) n[i] = y.pluck(e, i);
                return n
            }, y.object = function(e, t) {
                for (var n = {}, i = 0, r = P(e); r > i; i++) t ? n[e[i]] = t[i] : n[e[i][0]] = e[i][1];
                return n
            }, y.findIndex = t(1), y.findLastIndex = t(-1), y.sortedIndex = function(e, t, n, i) {
                n = b(n, i, 1);
                for (var r = n(t), o = 0, a = P(e); a > o;) {
                    var s = Math.floor((o + a) / 2);
                    n(e[s]) < r ? o = s + 1 : a = s
                }
                return o
            }, y.indexOf = n(1, y.findIndex, y.sortedIndex), y.lastIndexOf = n(-1, y.findLastIndex), y.range = function(e, t, n) {
                null == t && (t = e || 0, e = 0), n = n || 1;
                for (var i = Math.max(Math.ceil((t - e) / n), 0), r = Array(i), o = 0; i > o; o++, e += n) r[o] = e;
                return r
            };
            var O = function(e, t, n, i, r) {
                if (!(i instanceof t)) return e.apply(n, r);
                var o = T(e.prototype),
                    a = e.apply(o, r);
                return y.isObject(a) ? a : o
            };
            y.bind = function(e, t) {
                if (m && e.bind === m) return m.apply(e, c.call(arguments, 1));
                if (!y.isFunction(e)) throw new TypeError("Bind must be called on a function");
                var n = c.call(arguments, 2),
                    i = function() {
                        return O(e, i, t, this, n.concat(c.call(arguments)))
                    };
                return i
            }, y.partial = function(e) {
                var t = c.call(arguments, 1),
                    n = function() {
                        for (var i = 0, r = t.length, o = Array(r), a = 0; r > a; a++) o[a] = t[a] === y ? arguments[i++] : t[a];
                        for (; i < arguments.length;) o.push(arguments[i++]);
                        return O(e, n, this, this, o)
                    };
                return n
            }, y.bindAll = function(e) {
                var t, n, i = arguments.length;
                if (1 >= i) throw new Error("bindAll must be passed function names");
                for (t = 1; i > t; t++) n = arguments[t], e[n] = y.bind(e[n], e);
                return e
            }, y.memoize = function(e, t) {
                var n = function(i) {
                    var r = n.cache,
                        o = "" + (t ? t.apply(this, arguments) : i);
                    return y.has(r, o) || (r[o] = e.apply(this, arguments)), r[o]
                };
                return n.cache = {}, n
            }, y.delay = function(e, t) {
                var n = c.call(arguments, 2);
                return setTimeout(function() {
                    return e.apply(null, n)
                }, t)
            }, y.defer = y.partial(y.delay, y, 1), y.throttle = function(e, t, n) {
                var i, r, o, a = null,
                    s = 0;
                n || (n = {});
                var u = function() {
                    s = !1 === n.leading ? 0 : y.now(), a = null, o = e.apply(i, r), a || (i = r = null)
                };
                return function() {
                    var l = y.now();
                    s || !1 !== n.leading || (s = l);
                    var c = t - (l - s);
                    return i = this, r = arguments, 0 >= c || c > t ? (a && (clearTimeout(a), a = null), s = l, o = e.apply(i, r), a || (i = r = null)) : a || !1 === n.trailing || (a = setTimeout(u, c)), o
                }
            }, y.debounce = function(e, t, n) {
                var i, r, o, a, s, u = function() {
                    var l = y.now() - a;
                    t > l && l >= 0 ? i = setTimeout(u, t - l) : (i = null, n || (s = e.apply(o, r), i || (o = r = null)))
                };
                return function() {
                    o = this, r = arguments, a = y.now();
                    var l = n && !i;
                    return i || (i = setTimeout(u, t)), l && (s = e.apply(o, r), o = r = null), s
                }
            }, y.wrap = function(e, t) {
                return y.partial(t, e)
            }, y.negate = function(e) {
                return function() {
                    return !e.apply(this, arguments)
                }
            }, y.compose = function() {
                var e = arguments,
                    t = e.length - 1;
                return function() {
                    for (var n = t, i = e[t].apply(this, arguments); n--;) i = e[n].call(this, i);
                    return i
                }
            }, y.after = function(e, t) {
                return function() {
                    return --e < 1 ? t.apply(this, arguments) : void 0
                }
            }, y.before = function(e, t) {
                var n;
                return function() {
                    return --e > 0 && (n = t.apply(this, arguments)), 1 >= e && (t = null), n
                }
            }, y.once = y.partial(y.before, 2);
            var I = !{
                    toString: null
                }.propertyIsEnumerable("toString"),
                A = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];
            y.keys = function(e) {
                if (!y.isObject(e)) return [];
                if (f) return f(e);
                var t = [];
                for (var n in e) y.has(e, n) && t.push(n);
                return I && i(e, t), t
            }, y.allKeys = function(e) {
                if (!y.isObject(e)) return [];
                var t = [];
                for (var n in e) t.push(n);
                return I && i(e, t), t
            }, y.values = function(e) {
                for (var t = y.keys(e), n = t.length, i = Array(n), r = 0; n > r; r++) i[r] = e[t[r]];
                return i
            }, y.mapObject = function(e, t, n) {
                t = b(t, n);
                for (var i, r = y.keys(e), o = r.length, a = {}, s = 0; o > s; s++) i = r[s], a[i] = t(e[i], i, e);
                return a
            }, y.pairs = function(e) {
                for (var t = y.keys(e), n = t.length, i = Array(n), r = 0; n > r; r++) i[r] = [t[r], e[t[r]]];
                return i
            }, y.invert = function(e) {
                for (var t = {}, n = y.keys(e), i = 0, r = n.length; r > i; i++) t[e[n[i]]] = n[i];
                return t
            }, y.functions = y.methods = function(e) {
                var t = [];
                for (var n in e) y.isFunction(e[n]) && t.push(n);
                return t.sort()
            }, y.extend = x(y.allKeys), y.extendOwn = y.assign = x(y.keys), y.findKey = function(e, t, n) {
                t = b(t, n);
                for (var i, r = y.keys(e), o = 0, a = r.length; a > o; o++)
                    if (i = r[o], t(e[i], i, e)) return i
            }, y.pick = function(e, t, n) {
                var i, r, o = {},
                    a = e;
                if (null == a) return o;
                y.isFunction(t) ? (r = y.allKeys(a), i = v(t, n)) : (r = M(arguments, !1, !1, 1), i = function(e, t, n) {
                    return t in n
                }, a = Object(a));
                for (var s = 0, u = r.length; u > s; s++) {
                    var l = r[s],
                        c = a[l];
                    i(c, l, a) && (o[l] = c)
                }
                return o
            }, y.omit = function(e, t, n) {
                if (y.isFunction(t)) t = y.negate(t);
                else {
                    var i = y.map(M(arguments, !1, !1, 1), String);
                    t = function(e, t) {
                        return !y.contains(i, t)
                    }
                }
                return y.pick(e, t, n)
            }, y.defaults = x(y.allKeys, !0), y.create = function(e, t) {
                var n = T(e);
                return t && y.extendOwn(n, t), n
            }, y.clone = function(e) {
                return y.isObject(e) ? y.isArray(e) ? e.slice() : y.extend({}, e) : e
            }, y.tap = function(e, t) {
                return t(e), e
            }, y.isMatch = function(e, t) {
                var n = y.keys(t),
                    i = n.length;
                if (null == e) return !i;
                for (var r = Object(e), o = 0; i > o; o++) {
                    var a = n[o];
                    if (t[a] !== r[a] || !(a in r)) return !1
                }
                return !0
            };
            var R = function(e, t, n, i) {
                if (e === t) return 0 !== e || 1 / e == 1 / t;
                if (null == e || null == t) return e === t;
                e instanceof y && (e = e._wrapped), t instanceof y && (t = t._wrapped);
                var r = h.call(e);
                if (r !== h.call(t)) return !1;
                switch (r) {
                    case "[object RegExp]":
                    case "[object String]":
                        return "" + e == "" + t;
                    case "[object Number]":
                        return +e != +e ? +t != +t : 0 == +e ? 1 / +e == 1 / t : +e == +t;
                    case "[object Date]":
                    case "[object Boolean]":
                        return +e == +t
                }
                var o = "[object Array]" === r;
                if (!o) {
                    if ("object" != typeof e || "object" != typeof t) return !1;
                    var a = e.constructor,
                        s = t.constructor;
                    if (a !== s && !(y.isFunction(a) && a instanceof a && y.isFunction(s) && s instanceof s) && "constructor" in e && "constructor" in t) return !1
                }
                n = n || [], i = i || [];
                for (var u = n.length; u--;)
                    if (n[u] === e) return i[u] === t;
                if (n.push(e), i.push(t), o) {
                    if ((u = e.length) !== t.length) return !1;
                    for (; u--;)
                        if (!R(e[u], t[u], n, i)) return !1
                } else {
                    var l, c = y.keys(e);
                    if (u = c.length, y.keys(t).length !== u) return !1;
                    for (; u--;)
                        if (l = c[u], !y.has(t, l) || !R(e[l], t[l], n, i)) return !1
                }
                return n.pop(), i.pop(), !0
            };
            y.isEqual = function(e, t) {
                return R(e, t)
            }, y.isEmpty = function(e) {
                return null == e || (C(e) && (y.isArray(e) || y.isString(e) || y.isArguments(e)) ? 0 === e.length : 0 === y.keys(e).length)
            }, y.isElement = function(e) {
                return !(!e || 1 !== e.nodeType)
            }, y.isArray = d || function(e) {
                return "[object Array]" === h.call(e)
            }, y.isObject = function(e) {
                var t = typeof e;
                return "function" === t || "object" === t && !!e
            }, y.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(e) {
                y["is" + e] = function(t) {
                    return h.call(t) === "[object " + e + "]"
                }
            }), y.isArguments(arguments) || (y.isArguments = function(e) {
                return y.has(e, "callee")
            }), "function" != typeof /./ && "object" != typeof Int8Array && (y.isFunction = function(e) {
                return "function" == typeof e || !1
            }), y.isFinite = function(e) {
                return isFinite(e) && !isNaN(parseFloat(e))
            }, y.isNaN = function(e) {
                return y.isNumber(e) && e !== +e
            }, y.isBoolean = function(e) {
                return !0 === e || !1 === e || "[object Boolean]" === h.call(e)
            }, y.isNull = function(e) {
                return null === e
            }, y.isUndefined = function(e) {
                return void 0 === e
            }, y.has = function(e, t) {
                return null != e && p.call(e, t)
            }, y.noConflict = function() {
                return r._ = o, this
            }, y.identity = function(e) {
                return e
            }, y.constant = function(e) {
                return function() {
                    return e
                }
            }, y.noop = function() {}, y.property = w, y.propertyOf = function(e) {
                return null == e ? function() {} : function(t) {
                    return e[t]
                }
            }, y.matcher = y.matches = function(e) {
                return e = y.extendOwn({}, e),
                    function(t) {
                        return y.isMatch(t, e)
                    }
            }, y.times = function(e, t, n) {
                var i = Array(Math.max(0, e));
                t = v(t, n, 1);
                for (var r = 0; e > r; r++) i[r] = t(r);
                return i
            }, y.random = function(e, t) {
                return null == t && (t = e, e = 0), e + Math.floor(Math.random() * (t - e + 1))
            }, y.now = Date.now || function() {
                return (new Date).getTime()
            };
            var k = {
                    "&": "&amp;",
                    "<": "&lt;",
                    ">": "&gt;",
                    '"': "&quot;",
                    "'": "&#x27;",
                    "`": "&#x60;"
                },
                L = y.invert(k),
                D = function(e) {
                    var t = function(t) {
                            return e[t]
                        },
                        n = "(?:" + y.keys(e).join("|") + ")",
                        i = RegExp(n),
                        r = RegExp(n, "g");
                    return function(e) {
                        return e = null == e ? "" : "" + e, i.test(e) ? e.replace(r, t) : e
                    }
                };
            y.escape = D(k), y.unescape = D(L), y.result = function(e, t, n) {
                var i = null == e ? void 0 : e[t];
                return void 0 === i && (i = n), y.isFunction(i) ? i.call(e) : i
            };
            var B = 0;
            y.uniqueId = function(e) {
                var t = ++B + "";
                return e ? e + t : t
            }, y.templateSettings = {
                evaluate: /<%([\s\S]+?)%>/g,
                interpolate: /<%=([\s\S]+?)%>/g,
                escape: /<%-([\s\S]+?)%>/g
            };
            var F = /(.)^/,
                N = {
                    "'": "'",
                    "\\": "\\",
                    "\r": "r",
                    "\n": "n",
                    "\u2028": "u2028",
                    "\u2029": "u2029"
                },
                j = /\\|'|\r|\n|\u2028|\u2029/g,
                G = function(e) {
                    return "\\" + N[e]
                };
            y.template = function(e, t, n) {
                !t && n && (t = n), t = y.defaults({}, t, y.templateSettings);
                var i = RegExp([(t.escape || F).source, (t.interpolate || F).source, (t.evaluate || F).source].join("|") + "|$", "g"),
                    r = 0,
                    o = "__p+='";
                e.replace(i, function(t, n, i, a, s) {
                    return o += e.slice(r, s).replace(j, G), r = s + t.length, n ? o += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'" : i ? o += "'+\n((__t=(" + i + "))==null?'':__t)+\n'" : a && (o += "';\n" + a + "\n__p+='"), t
                }), o += "';\n", t.variable || (o = "with(obj||{}){\n" + o + "}\n"), o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o + "return __p;\n";
                try {
                    var a = new Function(t.variable || "obj", "_", o)
                } catch (e) {
                    throw e.source = o, e
                }
                var s = function(e) {
                    return a.call(this, e, y)
                };
                return s.source = "function(" + (t.variable || "obj") + "){\n" + o + "}", s
            }, y.chain = function(e) {
                var t = y(e);
                return t._chain = !0, t
            };
            var U = function(e, t) {
                return e._chain ? y(t).chain() : t
            };
            y.mixin = function(e) {
                y.each(y.functions(e), function(t) {
                    var n = y[t] = e[t];
                    y.prototype[t] = function() {
                        var e = [this._wrapped];
                        return l.apply(e, arguments), U(this, n.apply(y, e))
                    }
                })
            }, y.mixin(y), y.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(e) {
                var t = a[e];
                y.prototype[e] = function() {
                    var n = this._wrapped;
                    return t.apply(n, arguments), "shift" !== e && "splice" !== e || 0 !== n.length || delete n[0], U(this, n)
                }
            }), y.each(["concat", "join", "slice"], function(e) {
                var t = a[e];
                y.prototype[e] = function() {
                    return U(this, t.apply(this._wrapped, arguments))
                }
            }), y.prototype.value = function() {
                return this._wrapped
            }, y.prototype.valueOf = y.prototype.toJSON = y.prototype.value, y.prototype.toString = function() {
                return "" + this._wrapped
            }, "function" == typeof define && define.amd && define("underscore", [], function() {
                return y
            })
        }.call(this),
        function(e, t) {
            "object" == typeof module && module.exports ? module.exports = t(require("underscore")) : "function" == typeof define && define.amd ? define("riveter", ["underscore"], function(n) {
                return t(n, e)
            }) : e.riveter = t(e._, e)
        }(this, function(e, t, n) {
            var i = Array.prototype.slice,
                r = function() {
                    for (var e = i.call(arguments, 0); e.length;) r.rivet(e.shift())
                };
            return r.rivet = function(e) {
                e.hasOwnProperty("extend") || (e.extend = function(t, n) {
                    return r.extend(e, t, n)
                }), e.hasOwnProperty("compose") || (e.compose = function() {
                    return r.compose.apply(this, [e].concat(i.call(arguments, 0)))
                }), e.hasOwnProperty("inherits") || (e.inherits = function(t, n) {
                    r.inherits(e, t, n)
                }), e.hasOwnProperty("mixin") || (e.mixin = function() {
                    r.mixin.apply(this, [e].concat(i.call(arguments, 0)))
                })
            }, r.inherits = function(t, n, i) {
                var o, a = function() {},
                    s = function() {
                        n.apply(this, arguments)
                    };
                return "object" == typeof t ? (t.hasOwnProperty("constructor") && (s = t.constructor), o = t) : (s = t, o = t.prototype), r.rivet(s), e.defaults(s, n, i), a.prototype = n.prototype, s.prototype = new a, e.extend(s.prototype, o, {
                    constructor: s
                }), s.__super = n, s.__super__ = n.prototype, s
            }, r.extend = function(e, t, n) {
                return r.inherits(t, e, n)
            }, r.compose = function() {
                var t = i.call(arguments, 0),
                    n = t.shift();
                r.rivet(n);
                var o = e.reduce(t, function(e, t) {
                        return t.hasOwnProperty("_preInit") && e.preInit.push(t._preInit), t.hasOwnProperty("_postInit") && e.postInit.push(t._postInit), t = t.mixin || t, e.items.push(t), e
                    }, {
                        items: [],
                        preInit: [],
                        postInit: []
                    }),
                    a = n.extend({
                        constructor: function() {
                            var t = i.call(arguments, 0);
                            e.each(o.preInit, function(e) {
                                e.apply(this, t)
                            }, this), n.prototype.constructor.apply(this, t), e.each(o.postInit, function(e) {
                                e.apply(this, t)
                            }, this)
                        }
                    });
                return r.rivet(a), e.defaults(a.prototype, e.extend.apply(null, [{}].concat(o.items))), a
            }, r.mixin = function() {
                var t = i.call(arguments, 0),
                    n = t.shift();
                r.rivet(n), e.defaults(n.prototype, e.extend.apply(null, [{}].concat(t)))
            }, r
        }),
        function(e, t) {
            "object" == typeof module && module.exports ? module.exports = function(e) {
                return t(require("lodash"), e, require("riveter"))
            } : "function" == typeof define && define.amd ? define("postal.federation", ["lodash", "postal", "riveter"], function(n, i, r) {
                return t(n, i, r, e)
            }) : e.postal = t(e._, e.postal, e.riveter, e)
        }(this, function(e, t, n, i, r) {
            function o(e) {
                t.fedx.signalReady.apply(this, e)
            }

            function a(e) {
                t.fedx.send.apply(this, e)
            }

            function s(e) {
                t.fedx.onFederatedMsg.call(this, e)
            }
            t.createUUID || (t.createUUID = function() {
                for (var e = [], t = "0123456789abcdef", n = 0; n < 36; n++) e[n] = t.substr(Math.floor(16 * Math.random()), 1);
                return e[14] = "4", e[19] = t.substr(3 & e[19] | 8, 1), e[8] = e[13] = e[18] = e[23] = "-", e.join("")
            }), t.instanceId || (t.instanceId = function() {
                var e, n;
                return function(i) {
                    return i && (n = e, e = i, t.publish({
                        channel: t.configuration.SYSTEM_CHANNEL,
                        topic: "instanceId.changed",
                        data: {
                            oldId: n,
                            newId: e
                        }
                    })), e
                }
            }());
            var u = function() {},
                l = !1,
                c = [],
                h = [],
                p = [],
                d = {
                    enabled: !0,
                    filterMode: "whitelist",
                    filterDirection: "both"
                },
                f = d,
                m = function(n, i, r) {
                    var o = Object.prototype.hasOwnProperty.call(t.fedx.filters[r], n),
                        a = o && e.any(t.fedx.filters[r][n], function(e) {
                            return t.configuration.resolver.compare(e, i)
                        }),
                        s = "blacklist" === f.filterMode;
                    return f.enabled && (s && (!o || o && !a) || !s && o && a)
                },
                _ = {
                    ping: function() {
                        return {
                            type: "federation.ping",
                            instanceId: t.instanceId(),
                            timeStamp: new Date,
                            ticket: t.createUUID()
                        }
                    },
                    pong: function(e) {
                        return {
                            type: "federation.pong",
                            instanceId: t.instanceId(),
                            timeStamp: new Date,
                            pingData: {
                                instanceId: e.instanceId,
                                timeStamp: e.timeStamp,
                                ticket: e.ticket
                            }
                        }
                    },
                    message: function(e) {
                        return {
                            type: "federation.message",
                            instanceId: t.instanceId(),
                            timeStamp: new Date,
                            envelope: e
                        }
                    },
                    disconnect: function() {
                        return {
                            type: "federation.disconnect",
                            instanceId: t.instanceId(),
                            timeStamp: new Date
                        }
                    },
                    bundle: function(e) {
                        return {
                            type: "federation.bundle",
                            instanceId: t.instanceId(),
                            timeStamp: new Date,
                            packingSlips: e
                        }
                    }
                },
                g = {
                    "federation.ping": function(e) {
                        e.source.setInstanceId(e.packingSlip.instanceId), e.source.handshakeComplete ? e.source.sendPong(e.packingSlip) : e.source.sendBundle([t.fedx.getPackingSlip("pong", e.packingSlip), t.fedx.getPackingSlip("ping")])
                    },
                    "federation.pong": function(n) {
                        n.source.handshakeComplete = !0, n.source.setInstanceId(n.packingSlip.instanceId), n.source.pings[n.packingSlip.pingData.ticket] && (n.source.pings[n.packingSlip.pingData.ticket].callback({
                            ticket: n.packingSlip.pingData.ticket,
                            instanceId: n.packingSlip.instanceId,
                            source: n.source
                        }), n.source.pings[n.packingSlip.pingData.ticket] = r), e.contains(t.fedx.clients, n.packingSlip.instanceId) || t.fedx.clients.push(n.packingSlip.instanceId), t.publish({
                            channel: "postal.federation",
                            topic: "client.federated",
                            data: {
                                remoteId: n.source.instanceId,
                                localId: t.instanceId(),
                                transport: n.transport
                            }
                        })
                    },
                    "federation.disconnect": function(n) {
                        t.fedx.clients = e.without(t.fedx.clients, n.source.instanceId), t.fedx.disconnect({
                            transport: n.source.transportName,
                            instanceId: n.source.instanceId,
                            doNotNotify: !0
                        })
                    },
                    "federation.message": function(e) {
                        var n = e.packingSlip.envelope;
                        m(n.channel, n.topic, "in") && (n.lastSender = e.packingSlip.instanceId, t.publish(n))
                    },
                    "federation.bundle": function(n) {
                        e.each(n.packingSlip.packingSlips, function(i) {
                            t.fedx.onFederatedMsg(e.extend({}, n, {
                                packingSlip: i
                            }))
                        })
                    }
                },
                y = function(e, t, n) {
                    this.target = e, this.options = t || {}, this.pings = {}, this.instanceId = n, this.handshakeComplete = !1
                };
            return y.prototype.sendPing = function(e) {
                var n = t.fedx.getPackingSlip("ping");
                this.pings[n.ticket] = {
                    ticket: n.ticket,
                    callback: e || u
                }, this.send(n)
            }, y.prototype.sendPong = function(e) {
                this.send(t.fedx.getPackingSlip("pong", e))
            }, y.prototype.sendBundle = function(e) {
                this.send(t.fedx.getPackingSlip("bundle", e))
            }, y.prototype.sendMessage = function(n) {
                if (this.handshakeComplete) {
                    n.originId = n.originId || t.instanceId();
                    var i = e.clone(n);
                    !this.instanceId || this.instanceId === i.lastSender || i.knownIds && i.knownIds.length && (!i.knownIds || e.include(i.knownIds, this.instanceId)) || (i.knownIds = (i.knownIds || []).concat(e.without(t.fedx.clients, this.instanceId)), this.send(t.fedx.getPackingSlip("message", i)))
                }
            }, y.prototype.disconnect = function() {
                this.send(t.fedx.getPackingSlip("disconnect"))
            }, y.prototype.onMessage = function(e) {
                this.shouldProcess() && t.fedx.onFederatedMsg({
                    transport: this.transportName,
                    packingSlip: e,
                    source: this
                })
            }, y.prototype.shouldProcess = function() {
                return !0
            }, y.prototype.send = function() {
                throw new Error("An object deriving from FederationClient must provide an implementation for 'send'.")
            }, y.prototype.setInstanceId = function(e) {
                this.instanceId = e
            }, n(y), t.fedx = e.extend({
                FederationClient: y,
                packingSlips: _,
                handlers: g,
                clients: [],
                transports: {},
                filters: { in: {},
                    out: {}
                },
                addFilter: function(t) {
                    t = e.isArray(t) ? t : [t], e.each(t, function(t) {
                        t.direction = t.direction || f.filterDirection, e.each("both" === t.direction ? ["in", "out"] : [t.direction], function(n) {
                            this.filters[n][t.channel] ? e.include(this.filters[n][t.channel], t.topic) || this.filters[n][t.channel].push(t.topic) : this.filters[n][t.channel] = [t.topic]
                        }, this)
                    }, this)
                },
                removeFilter: function(t) {
                    t = e.isArray(t) ? t : [t], e.each(t, function(t) {
                        t.direction = t.direction || f.filterDirection, e.each("both" === t.direction ? ["in", "out"] : [t.direction], function(n) {
                            this.filters[n][t.channel] && e.include(this.filters[n][t.channel], t.topic) && (this.filters[n][t.channel] = e.without(this.filters[n][t.channel], t.topic))
                        }, this)
                    }, this)
                },
                canSendRemote: function(e, t) {
                    return m(e, t, "out")
                },
                configure: function(t) {
                    if (t && t.filterMode && "blacklist" !== t.filterMode && "whitelist" !== t.filterMode) throw new Error("postal.fedx filterMode must be 'blacklist' or 'whitelist'.");
                    return t && (f = e.defaults(t, d)), f
                },
                getPackingSlip: function(e) {
                    if (Object.prototype.hasOwnProperty.call(_, e)) return _[e].apply(this, Array.prototype.slice.call(arguments, 1))
                },
                onFederatedMsg: function(e) {
                    if (!l) return void c.push(e);
                    if (!Object.prototype.hasOwnProperty.call(g, e.packingSlip.type)) throw new Error("postal.federation does not have a message handler for '" + e.packingSlip.type + "'.");
                    g[e.packingSlip.type](e)
                },
                sendMessage: function(t) {
                    if (!l) return void h.push(arguments);
                    e.each(this.transports, function(e) {
                        e.sendMessage(t)
                    })
                },
                disconnect: function(t) {
                    t = t || {};
                    var n = this.transports;
                    t.transport && (n = {}, n[t.transport] = this.transports[t.transport]), e.each(n, function(e) {
                        e.disconnect({
                            target: t.target,
                            instanceId: t.instanceId,
                            doNotNotify: !!t.doNotNotify
                        })
                    }, this)
                },
                _getTransports: function() {
                    return e.reduce(this.transports, function(e, t, n) {
                        return e[n] = !0, e
                    }, {})
                },
                signalReady: function(t, n, i) {
                    if (!l) return void p.push(arguments);
                    var r = this._getTransports();
                    switch (arguments.length) {
                        case 1:
                            "function" == typeof t ? i = t : "string" == typeof t && (r = {}, r[t] = this.transports[t], i = u);
                            break;
                        case 2:
                            "string" == typeof t ? (r = {}, r[t] = this.transports[t]) : r = t, i = n || u;
                            break;
                        case 3:
                            r = {}, r[t] = [n]
                    }
                    e.each(r, function(e, t) {
                        e = "boolean" == typeof e ? [] : e, this.transports[t].signalReady(e, i)
                    }, this)
                }
            }, t.fedx), t.addWireTap(function(e, n) {
                t.fedx.canSendRemote(n.channel, n.topic) && t.fedx.sendMessage(n)
            }), t.subscribe({
                channel: t.configuration.SYSTEM_CHANNEL,
                topic: "instanceId.changed",
                callback: function() {
                    for (l = !0; p.length;) o(p.shift());
                    for (; h.length;) a(h.shift());
                    for (; c.length;) s(c.shift())
                }
            }), t.instanceId() !== r && (l = !0), t
        }),
        function(e, t) {
            "function" == typeof define && define.amd ? define("xframe", ["lodash", "postal.federation"], function(n, i) {
                return t(n, i, e)
            }) : "object" == typeof module && module.exports ? module.exports = function(e) {
                return t(require("lodash"), e)
            } : e.postal = t(e._, e.postal, e)
        }(this, function(e, t, n, i) {
            function r() {
                g.routeMessage.apply(g, arguments)
            }

            function o(t) {
                for (var n in t) t.hasOwnProperty(n) && ("function" == typeof t[n] && delete t[n], e.isPlainObject(t[n]) && o(t[n]), e.isArray(t[n]) && e.each(t[n], o));
                return t
            }
            var a = location.origin || location.protocol + "//" + location.host,
                s = /MSIE [8,9]/.test(navigator.userAgent),
                u = function(t, n) {
                    var i = e.find(this.remotes, function(e) {
                        return e.instanceId === n
                    });
                    return i && t.push(i), t
                },
                l = function(t, n) {
                    var i = e.find(this.remotes, function(e) {
                        return e.target === n
                    });
                    return i && t.push(i), t
                },
                c = function(e) {
                    e.disconnect()
                },
                h = "undefined" == typeof window && postMessage && location,
                p = [],
                d = function() {},
                f = {
                    allowedOrigins: [a],
                    enabled: !0,
                    defaultOriginUrl: "*",
                    safeSerialize: !1
                },
                m = e.extend({}, f),
                _ = t.fedx.FederationClient.extend({
                    transportName: "xframe",
                    shouldProcess: function() {
                        var t = !!m.allowedOrigins.length;
                        return m.enabled && ("*" === this.options.origin || t && e.contains(m.allowedOrigins, this.options.origin) || !t || this.options.isWorker && e.contains(p, this.target) || h)
                    },
                    send: function(e) {
                        var n, i;
                        this.shouldProcess() && (i = h ? null : this.target, n = [t.fedx.transports.xframe.wrapForTransport(e)], this.options.isWorker || h || n.push(this.options.origin), h ? this.target.postMessage.apply(i, n) : 1 === n.length ? this.target.postMessage(n[0]) : this.target.postMessage(n[0], n[1]))
                    }
                }, {
                    getInstance: function(e, t, n) {
                        var i = new _(e, {
                            origin: t,
                            isWorker: "undefined" != typeof Worker && e instanceof Worker
                        }, n);
                        return i.options.isWorker && g.listenToWorker(i.target), i
                    }
                }),
                g = t.fedx.transports.xframe = {
                    eagerSerialize: s,
                    XFrameClient: _,
                    configure: function(t) {
                        return t && (m = e.defaults(e.extend(m, t), f)), m
                    },
                    clearConfiguration: function() {
                        m = e.extend({}, f)
                    },
                    getTargets: h ? function() {
                        return [{
                            target: {
                                postMessage: postMessage
                            }
                        }]
                    } : function() {
                        var t = e.map(document.getElementsByTagName("iframe"), function(e) {
                            var t = document.createElement("a");
                            t.href = e.src;
                            var n = t.protocol + "//" + t.host;
                            return "//" === n && (n = null), {
                                target: e.contentWindow,
                                origin: n || m.defaultOriginUrl
                            }
                        });
                        return window.parent && window.parent !== window && t.push({
                            target: window.parent,
                            origin: "*"
                        }), t.concat(p)
                    },
                    remotes: [],
                    wrapForTransport: s ? function(e) {
                        return JSON.stringify({
                            postal: !0,
                            packingSlip: e
                        })
                    } : function(e) {
                        return {
                            postal: !0,
                            packingSlip: e
                        }
                    },
                    unwrapFromTransport: function(e) {
                        if ("string" != typeof e || !s && -1 === e.indexOf('"postal":true')) return e;
                        try {
                            return JSON.parse(e)
                        } catch (e) {
                            return {}
                        }
                    },
                    routeMessage: function(n) {
                        var i = n.source || n.currentTarget,
                            r = this.unwrapFromTransport(n.data);
                        if (r.postal) {
                            t.instanceId();
                            var o = e.find(this.remotes, function(e) {
                                return e.target === i
                            });
                            o || (o = _.getInstance(i, n.origin, r.packingSlip.instanceId), this.remotes.push(o)), o.onMessage(r.packingSlip)
                        }
                    },
                    sendMessage: function(t) {
                        var n = t;
                        m.safeSerialize && (n = o(e.cloneDeep(t))), e.each(this.remotes, function(e) {
                            e.sendMessage(n)
                        })
                    },
                    disconnect: function(t) {
                        t = t || {};
                        var n = t.instanceId ? e.reduce(e.isArray(t.instanceId) ? t.instanceId : [t.instanceId], u, [], this) : t.target ? e.reduce(e.isArray(t.target) ? t.target : [t.target], l, [], this) : this.remotes;
                        t.doNotNotify || e.each(n, c, this), this.remotes = e.without.apply(null, [this.remotes].concat(n))
                    },
                    signalReady: function(t, n) {
                        t = e.isArray(t) ? t : [t], t = t.length ? t : this.getTargets(), n = n || d, e.each(t, function(t) {
                            if (t.target) {
                                t.origin = t.origin || m.defaultOriginUrl;
                                var i = e.find(this.remotes, function(e) {
                                    return e.target === t.target
                                });
                                i || (i = _.getInstance(t.target, t.origin), this.remotes.push(i)), i.sendPing(n)
                            }
                        }, this)
                    },
                    addEventListener: h ? function() {
                        addEventListener("message", r)
                    } : function(e, t, n, i) {
                        "undefined" != typeof window && ("addEventListener" in e ? e.addEventListener(t, n, i) : e.attachEvent("on" + t, n))
                    },
                    listenToWorker: function(t) {
                        e.include(p, t) || (t.addEventListener("message", r), p.push(t))
                    },
                    stopListeningToWorker: function(t) {
                        if (t) t.removeEventListener("message", r), p = e.without(p, t);
                        else
                            for (; p.length;) p.pop().removeEventListener("message", r)
                    }
                };
            return g.addEventListener(this, "message", r, !1), t
        }),
        function(e, t) {
            "function" == typeof define && define.amd ? define("request-response", ["lodash", "postal"], function(n, i) {
                return t(n, i, e)
            }) : "object" == typeof module && module.exports ? module.exports = function(e) {
                return t(require("lodash"), e, this)
            } : e.postal = t(e._, e.postal, e)
        }(this, function(e, t, n, i) {
            t.configuration.promise = {
                createDeferred: function() {
                    throw new Error("You need to provide an implementation for postal.configuration.promise.createDeferred that returns a deferred/promise instance.")
                },
                getPromise: function() {
                    throw new Error("You need to provide an implementation for postal.configuration.promise.getPromise that returns a promise safe for consuming APIs to use.")
                },
                fulfill: "resolve",
                fail: "reject"
            };
            var r = function() {
                for (var e = {}, t = [], n = 0; n < 256; n++) t[n] = (n < 16 ? "0" : "") + n.toString(16);
                return e.create = function() {
                    var e = 4294967295 * Math.random() | 0,
                        n = 4294967295 * Math.random() | 0,
                        i = 4294967295 * Math.random() | 0,
                        r = 4294967295 * Math.random() | 0;
                    return t[255 & e] + t[e >> 8 & 255] + t[e >> 16 & 255] + t[e >> 24 & 255] + "-" + t[255 & n] + t[n >> 8 & 255] + "-" + t[n >> 16 & 15 | 64] + t[n >> 24 & 255] + "-" + t[63 & i | 128] + t[i >> 8 & 255] + "-" + t[i >> 16 & 255] + t[i >> 24 & 255] + t[255 & r] + t[r >> 8 & 255] + t[r >> 16 & 255] + t[r >> 24 & 255]
                }, e
            }();
            t.ChannelDefinition.prototype.request = function(e) {
                var n = e.envelope ? e.envelope : {
                        topic: e.topic,
                        data: e.data,
                        headers: e.headers
                    },
                    i = r.create(),
                    o = e.replyTopic || i,
                    a = e.replyChannel || "postal.request-response",
                    s = t.configuration.promise.createDeferred();
                n.headers = n.headers || {}, n.headers.replyable = !0, n.headers.requestId = i, n.headers.replyTopic = o, n.headers.replyChannel = a;
                t.subscribe({
                    channel: a,
                    topic: o,
                    callback: function(e, n) {
                        n.headers && n.headers.isError ? s[t.configuration.promise.fail](e) : s[t.configuration.promise.fulfill](e)
                    }
                }).once();
                return e.timeout && setTimeout(function() {
                    s[t.configuration.promise.fail](new Error("Timeout limit exceeded for request."))
                }, e.timeout), this.publish(n), t.configuration.promise.getPromise(s)
            };
            var o = t.publish;
            return t.publish = function(e) {
                e.headers && e.headers.replyable && (e.reply = function(n, i) {
                    t.publish({
                        channel: e.headers.replyChannel,
                        topic: e.headers.replyTopic,
                        headers: {
                            isReply: !0,
                            isError: !!n,
                            requestId: e.headers.requestId,
                            resolverNoCache: !0
                        },
                        data: n || i
                    })
                }), o.call(this, e)
            }, t
        }), define("skbJet/component/gameMsgBus/PlatformMessageBus", ["postal", "promise", "postal.federation", "xframe", "request-response"], function(e, t) {
            "use strict";

            function n(n) {
                if (0 === arguments.length) throw new Error("Message Bus Configuration Payload cannot be empty, malformed or undefined");
                return s = n, e.instanceId("Game"), e.fedx.transports.xframe.configure({
                    allowedOrigins: n.allowedDomains,
                    defaultOriginUrl: n.defaultOrigin,
                    filterMode: "blacklist",
                    safeSerialize: !0
                }), e.configuration.promise.createDeferred = function() {
                    return t.defer()
                }, e.configuration.promise.getPromise = function(e) {
                    return e.promise
                }, n.channels && e.fedx.addFilter(n.channels), e.fedx.signalReady(function() {}), !0
            }

            function i(t) {
                e.publish(t)
            }

            function r(t, n, i) {
                e.channel(t.channel).request(t).then(n, i)
            }

            function o(t) {
                e.subscribe(t)
            }

            function a(t) {
                e.unsubscribe(t)
            }
            var s;
            return function() {
                return Object.freeze({
                    init: n,
                    publish: i,
                    subscribe: o,
                    unsubscribe: a,
                    getPostal: e,
                    request: r
                })
            }
        }), define("skbJet/component/gameMsgBus/PlatformMsgBusAdapter", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gameMsgBus/PlatformMessageBus"], function(e, t) {
            function n() {}
            var i = t();
            i.init({
                allowedDomains: ["*"],
                channels: [{
                    channel: "Kernel",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "ClientService",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "ConsoleService",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "Game",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "postal.request-response",
                    topic: "#",
                    direction: "both"
                }]
            }), i.getPostal.addWireTap(function(t, n) {
                "postal" === n.channel || "postal.federation" === n.channel || n._fromGame || setTimeout(function() {
                    e.publish("platformMsg/" + n.channel + "/" + n.topic, n.data)
                }, 0)
            }), e.subscribe("toPlatform", function(e) {
                e._fromGame = !0, i.publish(e)
            }), e.subscribe("toPlatformRequest", function(e) {
                i.request({
                    channel: e.channel,
                    topic: e.topic,
                    data: e.data
                }, e.successCallback, e.failCallback)
            }), e.subscribe("error", function(e) {
                var t = e;
                e.errorCode || (t = {
                    errorCode: "GM-001",
                    message: "" + e
                }), i.publish({
                    channel: "Game",
                    topic: "ErrorHandler.Throw",
                    data: t
                })
            });
            var r = null;
            return i.getPostal.channel("ClientService").subscribe("StateChange", function(t, i) {
                r = function() {
                    r = n, i.reply(null, {
                        state: t.state
                    })
                }, e.publish(t.state, t)
            }), e.subscribe("nextState", function() {
                r && r()
            }), {}
        }), define("skbJet/component/channelAudioPlayer/IChannelAudioPlayer", ["skbJet/component/utils/Interface"], function(e) {
            return new e(["play", "stopChannel", "stopAll", "pauseChannel", "pauseAll", "resumeChannel", "resumeAll", "muteChannel", "muteAll", "volume", "fadeOut", "playAndFadeIn", "cancelFade", "gameAudioControlChanged", "consoleAudioControlChanged"])
        }), define("skbJet/component/resourceLoader/resourceLib", [], function() {
            return {}
        }), define("skbJet/component/deviceCompatibility/IWindowSize", ["skbJet/component/utils/Interface"], function(e) {
            return new e(["getDeviceWidth", "getDeviceHeight"])
        }), define("skbJet/component/deviceCompatibility/IOSWindow", ["skbJet/component/deviceCompatibility/IWindowSize"], function(e) {
            var t = {
                getDeviceWidth: function() {
                    return navigator.userAgent.match(/Version/) ? window.innerWidth : window.innerWidth >= window.innerHeight ? window.innerWidth >= screen.height ? screen.height : window.innerWidth : window.innerWidth >= screen.width ? screen.width : window.innerWidth
                },
                getDeviceHeight: function() {
                    return navigator.userAgent.match(/Version/) ? window.innerHeight : window.innerWidth >= window.innerHeight ? window.innerHeight > screen.width ? screen.width : window.innerHeight : window.innerHeight > screen.height ? screen.height : window.innerHeight
                }
            };
            return e.implementedBy(t), t
        }), define("skbJet/component/deviceCompatibility/AndroidWindow", ["skbJet/component/deviceCompatibility/IWindowSize"], function(e) {
            var t = {
                getDeviceWidth: function() {
                    return Number(window.innerWidth)
                },
                getDeviceHeight: function() {
                    return Number(window.innerHeight)
                }
            };
            return e.implementedBy(t), t
        }), define("skbJet/component/deviceCompatibility/windowSize", ["skbJet/component/deviceCompatibility/IWindowSize", "skbJet/component/deviceCompatibility/IOSWindow", "skbJet/component/deviceCompatibility/AndroidWindow"], function(e, t, n) {
            var i = function() {
                    return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream
                }() ? t : n,
                r = {
                    getDeviceWidth: i.getDeviceWidth,
                    getDeviceHeight: i.getDeviceHeight
                };
            return e.implementedBy(r), r
        }), define("skbJet/component/channelAudioPlayer/channelAudioPlayerHelper", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/resourceLoader/resourceLib", "skbJet/component/deviceCompatibility/windowSize"], function(e, t, n) {
            function i() {}

            function r(e) {
                d = e
            }

            function o(e) {
                p = e
            }

            function a(t) {
                function i() {
                    var e = n.getDeviceWidth(),
                        t = n.getDeviceHeight();
                    a.style.top = (t - 100) / 2 + "px", a.style.left = (e - 240) / 2 + "px";
                    var i = e > t ? t : e,
                        r = i > 600 ? i / 600 : 1;
                    a.style.transform = "scale(" + r + ")"
                }

                function r(t) {
                    var n = t || window.event;
                    n.stopPropagation(), n.cancelBubble = !0, document.body.removeChild(o);
                    var r = !1;
                    "audio_btn_YES" === this.id && (r = !0), p && p(r), setTimeout(function() {
                        d.muteAll(!r), u(r), e.publish("audioPlayer.playerSelectedWhenGameLaunch", r)
                    }, 110), window.removeEventListener("resize", i)
                }
                var o = document.createElement("div");
                o.style.width = "100%", o.style.height = "100%", o.style.backgroundColor = "rgba(0,0,0,.9)", o.style.position = "absolute", o.style.zIndex = 8, o.style.top = "0", o.style.left = "0", document.body.appendChild(o);
                var a = document.createElement("div");
                a.style.width = "240px", a.style.height = "100px", a.style.backgroundColor = "black", a.style.border = "2px solid white", a.style.borderRadius = "14px", a.style.position = "absolute", a.style.zIndex = 10, i(), window.addEventListener("resize", i), o.appendChild(a);
                var s = document.createElement("p");
                s.style.width = "220px", s.style.height = "40px", s.style.margin = "10px", s.style.color = "white", s.style.font = "normal 20px Arial", s.style.textAlign = "center", s.innerHTML = t.query, a.appendChild(s);
                var l = document.createElement("button");
                l.style.width = "60px", l.style.height = "26px", l.style.backgroundColor = "#DDDDDD", l.style.border = "2px solid white", l.style.borderRadius = "5px", l.style.float = "left", l.style.marginLeft = "33px", l.style.color = "balck", l.innerHTML = t.yes, l.id = "audio_btn_YES", a.appendChild(l);
                var c = document.createElement("button");
                c.style.width = "60px", c.style.height = "26px", c.style.backgroundColor = "#DDDDDD", c.style.border = "2px solid white", c.style.borderRadius = "5px", c.style.float = "right", c.style.marginRight = "33px", c.style.color = "balck", c.innerHTML = t.no, c.id = "audio_btn_NO", a.appendChild(c), l.addEventListener("click", r), c.addEventListener("click", r)
            }

            function s(n) {
                if (!_)
                    if ("INT" !== f) {
                        var i = {
                            query: t.i18n.game.audioLoader.confirm,
                            yes: t.i18n.game.audioLoader.yes,
                            no: t.i18n.game.audioLoader.no
                        };
                        a(i)
                    } else {
                        var r;
                        "STD" === m ? r = !0 : "BaseGame" === n.response.OutcomeDetail.NextStage ? (r = !1, localStorage.setItem("audioDefaultSwitchForDesktopmini" + g, r)) : r = null !== localStorage.getItem("audioDefaultSwitchForDesktopmini" + g) && "true" === localStorage.getItem("audioDefaultSwitchForDesktopmini" + g), u(r), setTimeout(function() {
                            d.muteAll(!r), e.publish("audioPlayer.playerSelectedWhenGameLaunch", r)
                        }, 20)
                    }
            }

            function u(n) {
                var i = "Sound",
                    r = "On",
                    o = "Off";
                _ = !0, t.i18n.game.MenuCommand.audio && (i = t.i18n.game.MenuCommand.audio.sound, r = t.i18n.game.MenuCommand.audio.on, o = t.i18n.game.MenuCommand.audio.off), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            name: "sound",
                            text: i,
                            type: "list",
                            enabled: 1,
                            value: n ? 0 : 1,
                            values: ["0", "1"],
                            valueText: [r, o]
                        }]
                    }
                })
            }

            function l(e) {
                "sound" === e.option && d.muteAll("1" === e.value), "INT" === f && "STD" !== m && localStorage.setItem("audioDefaultSwitchForDesktopmini" + g, "1" !== e.value)
            }

            function c(e) {
                f = e.serverConfig.channel, m = e.serverConfig.presenttype, g = e.serverConfig.softwareid
            }

            function h() {
                function n() {
                    if ("device" === i.config.screenEnvironment) {
                        a({
                            query: t.i18n.game.audioLoader.confirm,
                            yes: t.i18n.game.audioLoader.yes,
                            no: t.i18n.game.audioLoader.no
                        })
                    }
                    e.unsubscribe("SKBeInstant.gameParametersUpdated", n)
                }
                var i = require("skbJet/component/SKBeInstant/SKBeInstant");
                i.isSKB() || e.subscribe("SKBeInstant.gameParametersUpdated", n)
            }
            var p, d = {
                    muteAll: i,
                    pauseAll: i,
                    resumeAll: i
                },
                f = null,
                m = null,
                _ = !1,
                g = null;
            return document.addEventListener("visibilitychange", function() {
                "hidden" === document.visibilityState ? d.pauseAll() : d.resumeAll()
            }), e.subscribe("platformMsg/Kernel/System.Init", c), e.subscribe("platformMsg/ConsoleService/Game.Control", l), e.subscribe("onBeforeShowStage", s), e.subscribe("jLotteryGame.assetsLoadedAndGameReady", h), {
                setChannelAudioPlayer: r,
                setPlayerAudioChoiceCallBack: o,
                gameAudioControlChanged: function(t) {
                    var n = 0;
                    t && (n = 1), e.publish("toPlatform", {
                        channel: "Game",
                        topic: "Game.Control",
                        data: {
                            name: "sound",
                            event: "change",
                            params: [n]
                        }
                    })
                },
                consoleAudioControlChanged: function(e) {
                    var t = !1;
                    return "sound" === e.option && "1" === e.value && (t = !0), t
                }
            }
        }),
        function() {
            "use strict";
            var e = function() {
                this.init()
            };
            e.prototype = {
                init: function() {
                    var e = this || t;
                    return e._counter = 1e3, e._codecs = {}, e._howls = [], e._muted = !1, e._volume = 1, e._canPlayEvent = "canplaythrough", e._navigator = "undefined" != typeof window && window.navigator ? window.navigator : null, e.masterGain = null, e.noAudio = !1, e.usingWebAudio = !0, e.autoSuspend = !0, e.ctx = null, e.mobileAutoEnable = !0, e._setup(), e
                },
                volume: function(e) {
                    var n = this || t;
                    if (e = parseFloat(e), n.ctx || l(), void 0 !== e && e >= 0 && e <= 1) {
                        if (n._volume = e, n._muted) return n;
                        n.usingWebAudio && n.masterGain.gain.setValueAtTime(e, t.ctx.currentTime);
                        for (var i = 0; i < n._howls.length; i++)
                            if (!n._howls[i]._webAudio)
                                for (var r = n._howls[i]._getSoundIds(), o = 0; o < r.length; o++) {
                                    var a = n._howls[i]._soundById(r[o]);
                                    a && a._node && (a._node.volume = a._volume * e)
                                }
                        return n
                    }
                    return n._volume
                },
                mute: function(e) {
                    var n = this || t;
                    n.ctx || l(), n._muted = e, n.usingWebAudio && n.masterGain.gain.setValueAtTime(e ? 0 : n._volume, t.ctx.currentTime);
                    for (var i = 0; i < n._howls.length; i++)
                        if (!n._howls[i]._webAudio)
                            for (var r = n._howls[i]._getSoundIds(), o = 0; o < r.length; o++) {
                                var a = n._howls[i]._soundById(r[o]);
                                a && a._node && (a._node.muted = !!e || a._muted)
                            }
                    return n
                },
                unload: function() {
                    for (var e = this || t, n = e._howls.length - 1; n >= 0; n--) e._howls[n].unload();
                    return e.usingWebAudio && e.ctx && void 0 !== e.ctx.close && (e.ctx.close(), e.ctx = null, l()), e
                },
                codecs: function(e) {
                    return (this || t)._codecs[e.replace(/^x-/, "")]
                },
                _setup: function() {
                    var e = this || t;
                    if (e.state = e.ctx ? e.ctx.state || "running" : "running", e._autoSuspend(), !e.usingWebAudio)
                        if ("undefined" != typeof Audio) try {
                            var n = new Audio;
                            void 0 === n.oncanplaythrough && (e._canPlayEvent = "canplay")
                        } catch (t) {
                            e.noAudio = !0
                        } else e.noAudio = !0;
                    try {
                        var n = new Audio;
                        n.muted && (e.noAudio = !0)
                    } catch (e) {}
                    return e.noAudio || e._setupCodecs(), e
                },
                _setupCodecs: function() {
                    var e = this || t,
                        n = null;
                    try {
                        n = "undefined" != typeof Audio ? new Audio : null
                    } catch (t) {
                        return e
                    }
                    if (!n || "function" != typeof n.canPlayType) return e;
                    var i = n.canPlayType("audio/mpeg;").replace(/^no$/, ""),
                        r = e._navigator && e._navigator.userAgent.match(/OPR\/([0-6].)/g),
                        o = r && parseInt(r[0].split("/")[1], 10) < 33;
                    return e._codecs = {
                        mp3: !(o || !i && !n.canPlayType("audio/mp3;").replace(/^no$/, "")),
                        mpeg: !!i,
                        opus: !!n.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ""),
                        ogg: !!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""),
                        oga: !!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""),
                        wav: !!n.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""),
                        aac: !!n.canPlayType("audio/aac;").replace(/^no$/, ""),
                        caf: !!n.canPlayType("audio/x-caf;").replace(/^no$/, ""),
                        m4a: !!(n.canPlayType("audio/x-m4a;") || n.canPlayType("audio/m4a;") || n.canPlayType("audio/aac;")).replace(/^no$/, ""),
                        mp4: !!(n.canPlayType("audio/x-mp4;") || n.canPlayType("audio/mp4;") || n.canPlayType("audio/aac;")).replace(/^no$/, ""),
                        weba: !!n.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""),
                        webm: !!n.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""),
                        dolby: !!n.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ""),
                        flac: !!(n.canPlayType("audio/x-flac;") || n.canPlayType("audio/flac;")).replace(/^no$/, "")
                    }, e
                },
                _enableMobileAudio: function() {
                    var e = this || t,
                        n = /iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi/i.test(e._navigator && e._navigator.userAgent),
                        i = !!("ontouchend" in window || e._navigator && e._navigator.maxTouchPoints > 0 || e._navigator && e._navigator.msMaxTouchPoints > 0);
                    if (!e._mobileEnabled && e.ctx && (n || i)) {
                        e._mobileEnabled = !1, e._mobileUnloaded || 44100 === e.ctx.sampleRate || (e._mobileUnloaded = !0, e.unload()), e._scratchBuffer = e.ctx.createBuffer(1, 1, 22050);
                        var r = function() {
                            t._autoResume();
                            var n = e.ctx.createBufferSource();
                            n.buffer = e._scratchBuffer, n.connect(e.ctx.destination), void 0 === n.start ? n.noteOn(0) : n.start(0), "function" == typeof e.ctx.resume && e.ctx.resume(), n.onended = function() {
                                n.disconnect(0), e._mobileEnabled = !0, e.mobileAutoEnable = !1, document.removeEventListener("touchstart", r, !0), document.removeEventListener("touchend", r, !0)
                            }
                        };
                        return document.addEventListener("touchstart", r, !0), document.addEventListener("touchend", r, !0), e
                    }
                },
                _autoSuspend: function() {
                    var e = this;
                    if (e.autoSuspend && e.ctx && void 0 !== e.ctx.suspend && t.usingWebAudio) {
                        for (var n = 0; n < e._howls.length; n++)
                            if (e._howls[n]._webAudio)
                                for (var i = 0; i < e._howls[n]._sounds.length; i++)
                                    if (!e._howls[n]._sounds[i]._paused) return e;
                        return e._suspendTimer && clearTimeout(e._suspendTimer), e._suspendTimer = setTimeout(function() {
                            e.autoSuspend && (e._suspendTimer = null, e.state = "suspending", e.ctx.suspend().then(function() {
                                e.state = "suspended", e._resumeAfterSuspend && (delete e._resumeAfterSuspend, e._autoResume())
                            }))
                        }, 3e4), e
                    }
                },
                _autoResume: function() {
                    var e = this;
                    if (e.ctx && void 0 !== e.ctx.resume && t.usingWebAudio) return "running" === e.state && e._suspendTimer ? (clearTimeout(e._suspendTimer), e._suspendTimer = null) : "suspended" === e.state ? (e.ctx.resume().then(function() {
                        e.state = "running";
                        for (var t = 0; t < e._howls.length; t++) e._howls[t]._emit("resume")
                    }), e._suspendTimer && (clearTimeout(e._suspendTimer), e._suspendTimer = null)) : "suspending" === e.state && (e._resumeAfterSuspend = !0), e
                }
            };
            var t = new e,
                n = function(e) {
                    var t = this;
                    e.src && 0 !== e.src.length && t.init(e)
                };
            n.prototype = {
                init: function(e) {
                    var n = this;
                    return t.ctx || l(), n._autoplay = e.autoplay || !1, n._format = "string" != typeof e.format ? e.format : [e.format], n._html5 = e.html5 || !1, n._muted = e.mute || !1, n._loop = e.loop || !1, n._pool = e.pool || 5, n._preload = "boolean" != typeof e.preload || e.preload, n._rate = e.rate || 1, n._sprite = e.sprite || {}, n._src = "string" != typeof e.src ? e.src : [e.src], n._volume = void 0 !== e.volume ? e.volume : 1, n._xhrWithCredentials = e.xhrWithCredentials || !1, n._duration = 0, n._state = "unloaded", n._sounds = [], n._endTimers = {}, n._queue = [], n._playLock = !1, n._onend = e.onend ? [{
                        fn: e.onend
                    }] : [], n._onfade = e.onfade ? [{
                        fn: e.onfade
                    }] : [], n._onload = e.onload ? [{
                        fn: e.onload
                    }] : [], n._onloaderror = e.onloaderror ? [{
                        fn: e.onloaderror
                    }] : [], n._onplayerror = e.onplayerror ? [{
                        fn: e.onplayerror
                    }] : [], n._onpause = e.onpause ? [{
                        fn: e.onpause
                    }] : [], n._onplay = e.onplay ? [{
                        fn: e.onplay
                    }] : [], n._onstop = e.onstop ? [{
                        fn: e.onstop
                    }] : [], n._onmute = e.onmute ? [{
                        fn: e.onmute
                    }] : [], n._onvolume = e.onvolume ? [{
                        fn: e.onvolume
                    }] : [], n._onrate = e.onrate ? [{
                        fn: e.onrate
                    }] : [], n._onseek = e.onseek ? [{
                        fn: e.onseek
                    }] : [], n._onresume = [], n._webAudio = t.usingWebAudio && !n._html5, void 0 !== t.ctx && t.ctx && t.mobileAutoEnable && t._enableMobileAudio(), t._howls.push(n), n._autoplay && n._queue.push({
                        event: "play",
                        action: function() {
                            n.play()
                        }
                    }), n._preload && n.load(), n
                },
                load: function() {
                    var e = this,
                        n = null;
                    if (t.noAudio) return void e._emit("loaderror", null, "No audio support.");
                    "string" == typeof e._src && (e._src = [e._src]);
                    for (var r = 0; r < e._src.length; r++) {
                        var a, s;
                        if (e._format && e._format[r]) a = e._format[r];
                        else {
                            if ("string" != typeof(s = e._src[r])) {
                                e._emit("loaderror", null, "Non-string found in selected audio sources - ignoring.");
                                continue
                            }
                            a = /^data:audio\/([^;,]+);/i.exec(s), a || (a = /\.([^.]+)$/.exec(s.split("?", 1)[0])), a && (a = a[1].toLowerCase())
                        }
                        if (a && t.codecs(a)) {
                            n = e._src[r];
                            break
                        }
                    }
                    return n ? (e._src = n, e._state = "loading", "https:" === window.location.protocol && "http:" === n.slice(0, 5) && (e._html5 = !0, e._webAudio = !1), new i(e), e._webAudio && o(e), e) : void e._emit("loaderror", null, "No codec support for selected audio sources.")
                },
                play: function(e, n) {
                    var i = this,
                        r = null;
                    if ("number" == typeof e) r = e, e = null;
                    else {
                        if ("string" == typeof e && "loaded" === i._state && !i._sprite[e]) return null;
                        if (void 0 === e) {
                            e = "__default";
                            for (var o = 0, a = 0; a < i._sounds.length; a++) i._sounds[a]._paused && !i._sounds[a]._ended && (o++, r = i._sounds[a]._id);
                            1 === o ? e = null : r = null
                        }
                    }
                    var s = r ? i._soundById(r) : i._inactiveSound();
                    if (!s) return null;
                    if (r && !e && (e = s._sprite || "__default"), "loaded" !== i._state) {
                        s._sprite = e, s._ended = !1;
                        var u = s._id;
                        return i._queue.push({
                            event: "play",
                            action: function() {
                                i.play(u)
                            }
                        }), u
                    }
                    if (r && !s._paused) return n || i._loadQueue("play"), s._id;
                    i._webAudio && t._autoResume();
                    var l = Math.max(0, s._seek > 0 ? s._seek : i._sprite[e][0] / 1e3),
                        c = Math.max(0, (i._sprite[e][0] + i._sprite[e][1]) / 1e3 - l),
                        h = 1e3 * c / Math.abs(s._rate);
                    s._paused = !1, s._ended = !1, s._sprite = e, s._seek = l, s._start = i._sprite[e][0] / 1e3, s._stop = (i._sprite[e][0] + i._sprite[e][1]) / 1e3, s._loop = !(!s._loop && !i._sprite[e][2]);
                    var p = s._node;
                    if (i._webAudio) {
                        var d = function() {
                            i._refreshBuffer(s);
                            var e = s._muted || i._muted ? 0 : s._volume;
                            p.gain.setValueAtTime(e, t.ctx.currentTime), s._playStart = t.ctx.currentTime, void 0 === p.bufferSource.start ? s._loop ? p.bufferSource.noteGrainOn(0, l, 86400) : p.bufferSource.noteGrainOn(0, l, c) : s._loop ? p.bufferSource.start(0, l, 86400) : p.bufferSource.start(0, l, c), h !== 1 / 0 && (i._endTimers[s._id] = setTimeout(i._ended.bind(i, s), h)), n || setTimeout(function() {
                                i._emit("play", s._id)
                            }, 0)
                        };
                        "running" === t.state ? d() : (i.once("resume", d), i._clearTimer(s._id))
                    } else {
                        var f = function() {
                                p.currentTime = l, p.muted = s._muted || i._muted || t._muted || p.muted, p.volume = s._volume * t.volume(), p.playbackRate = s._rate;
                                try {
                                    var r = p.play();
                                    if ("undefined" != typeof Promise && r instanceof Promise) {
                                        i._playLock = !0;
                                        var o = function() {
                                            i._playLock = !1, n || i._emit("play", s._id)
                                        };
                                        r.then(o, o)
                                    } else n || i._emit("play", s._id);
                                    if (p.paused) return void i._emit("playerror", s._id, "Playback was unable to start. This is most commonly an issue on mobile devices where playback was not within a user interaction.");
                                    "__default" !== e ? i._endTimers[s._id] = setTimeout(i._ended.bind(i, s), h) : (i._endTimers[s._id] = function() {
                                        i._ended(s), p.removeEventListener("ended", i._endTimers[s._id], !1)
                                    }, p.addEventListener("ended", i._endTimers[s._id], !1))
                                } catch (e) {
                                    i._emit("playerror", s._id, e)
                                }
                            },
                            m = window && window.ejecta || !p.readyState && t._navigator.isCocoonJS;
                        if (p.readyState >= 3 || m) f();
                        else {
                            var _ = function() {
                                f(), p.removeEventListener(t._canPlayEvent, _, !1)
                            };
                            p.addEventListener(t._canPlayEvent, _, !1), i._clearTimer(s._id)
                        }
                    }
                    return s._id
                },
                pause: function(e) {
                    var t = this;
                    if ("loaded" !== t._state || t._playLock) return t._queue.push({
                        event: "pause",
                        action: function() {
                            t.pause(e)
                        }
                    }), t;
                    for (var n = t._getSoundIds(e), i = 0; i < n.length; i++) {
                        t._clearTimer(n[i]);
                        var r = t._soundById(n[i]);
                        if (r && !r._paused && (r._seek = t.seek(n[i]), r._rateSeek = 0, r._paused = !0, t._stopFade(n[i]), r._node))
                            if (t._webAudio) {
                                if (!r._node.bufferSource) continue;
                                void 0 === r._node.bufferSource.stop ? r._node.bufferSource.noteOff(0) : r._node.bufferSource.stop(0), t._cleanBuffer(r._node)
                            } else isNaN(r._node.duration) && r._node.duration !== 1 / 0 || r._node.pause();
                        arguments[1] || t._emit("pause", r ? r._id : null)
                    }
                    return t
                },
                stop: function(e, t) {
                    var n = this;
                    if ("loaded" !== n._state) return n._queue.push({
                        event: "stop",
                        action: function() {
                            n.stop(e)
                        }
                    }), n;
                    for (var i = n._getSoundIds(e), r = 0; r < i.length; r++) {
                        n._clearTimer(i[r]);
                        var o = n._soundById(i[r]);
                        o && (o._seek = o._start || 0, o._rateSeek = 0, o._paused = !0, o._ended = !0, n._stopFade(i[r]), o._node && (n._webAudio ? o._node.bufferSource && (void 0 === o._node.bufferSource.stop ? o._node.bufferSource.noteOff(0) : o._node.bufferSource.stop(0), n._cleanBuffer(o._node)) : isNaN(o._node.duration) && o._node.duration !== 1 / 0 || (o._node.currentTime = o._start || 0, o._node.pause())), t || n._emit("stop", o._id))
                    }
                    return n
                },
                mute: function(e, n) {
                    var i = this;
                    if ("loaded" !== i._state) return i._queue.push({
                        event: "mute",
                        action: function() {
                            i.mute(e, n)
                        }
                    }), i;
                    if (void 0 === n) {
                        if ("boolean" != typeof e) return i._muted;
                        i._muted = e
                    }
                    for (var r = i._getSoundIds(n), o = 0; o < r.length; o++) {
                        var a = i._soundById(r[o]);
                        a && (a._muted = e, a._interval && i._stopFade(a._id), i._webAudio && a._node ? a._node.gain.setValueAtTime(e ? 0 : a._volume, t.ctx.currentTime) : a._node && (a._node.muted = !!t._muted || e), i._emit("mute", a._id))
                    }
                    return i
                },
                volume: function() {
                    var e, n, i = this,
                        r = arguments;
                    if (0 === r.length) return i._volume;
                    1 === r.length || 2 === r.length && void 0 === r[1] ? i._getSoundIds().indexOf(r[0]) >= 0 ? n = parseInt(r[0], 10) : e = parseFloat(r[0]) : r.length >= 2 && (e = parseFloat(r[0]), n = parseInt(r[1], 10));
                    var o;
                    if (!(void 0 !== e && e >= 0 && e <= 1)) return o = n ? i._soundById(n) : i._sounds[0], o ? o._volume : 0;
                    if ("loaded" !== i._state) return i._queue.push({
                        event: "volume",
                        action: function() {
                            i.volume.apply(i, r)
                        }
                    }), i;
                    void 0 === n && (i._volume = e), n = i._getSoundIds(n);
                    for (var a = 0; a < n.length; a++)(o = i._soundById(n[a])) && (o._volume = e, r[2] || i._stopFade(n[a]), i._webAudio && o._node && !o._muted ? o._node.gain.setValueAtTime(e, t.ctx.currentTime) : o._node && !o._muted && (o._node.volume = e * t.volume()), i._emit("volume", o._id));
                    return i
                },
                fade: function(e, n, i, r) {
                    var o = this;
                    if ("loaded" !== o._state) return o._queue.push({
                        event: "fade",
                        action: function() {
                            o.fade(e, n, i, r)
                        }
                    }), o;
                    o.volume(e, r);
                    for (var a = o._getSoundIds(r), s = 0; s < a.length; s++) {
                        var u = o._soundById(a[s]);
                        if (u) {
                            if (r || o._stopFade(a[s]), o._webAudio && !u._muted) {
                                var l = t.ctx.currentTime,
                                    c = l + i / 1e3;
                                u._volume = e, u._node.gain.setValueAtTime(e, l), u._node.gain.linearRampToValueAtTime(n, c)
                            }
                            o._startFadeInterval(u, e, n, i, a[s], void 0 === r)
                        }
                    }
                    return o
                },
                _startFadeInterval: function(e, t, n, i, r, o) {
                    var a = this,
                        s = t,
                        u = n - t,
                        l = Math.abs(u / .01),
                        c = Math.max(4, l > 0 ? i / l : i),
                        h = Date.now();
                    e._fadeTo = n, e._interval = setInterval(function() {
                        var r = (Date.now() - h) / i;
                        h = Date.now(), s += u * r, s = Math.max(0, s), s = Math.min(1, s), s = Math.round(100 * s) / 100, a._webAudio ? e._volume = s : a.volume(s, e._id, !0), o && (a._volume = s), (n < t && s <= n || n > t && s >= n) && (clearInterval(e._interval), e._interval = null, e._fadeTo = null, a.volume(n, e._id), a._emit("fade", e._id))
                    }, c)
                },
                _stopFade: function(e) {
                    var n = this,
                        i = n._soundById(e);
                    return i && i._interval && (n._webAudio && i._node.gain.cancelScheduledValues(t.ctx.currentTime), clearInterval(i._interval), i._interval = null, n.volume(i._fadeTo, e), i._fadeTo = null, n._emit("fade", e)), n
                },
                loop: function() {
                    var e, t, n, i = this,
                        r = arguments;
                    if (0 === r.length) return i._loop;
                    if (1 === r.length) {
                        if ("boolean" != typeof r[0]) return !!(n = i._soundById(parseInt(r[0], 10))) && n._loop;
                        e = r[0], i._loop = e
                    } else 2 === r.length && (e = r[0], t = parseInt(r[1], 10));
                    for (var o = i._getSoundIds(t), a = 0; a < o.length; a++)(n = i._soundById(o[a])) && (n._loop = e, i._webAudio && n._node && n._node.bufferSource && (n._node.bufferSource.loop = e, e && (n._node.bufferSource.loopStart = n._start || 0, n._node.bufferSource.loopEnd = n._stop)));
                    return i
                },
                rate: function() {
                    var e, n, i = this,
                        r = arguments;
                    if (0 === r.length) n = i._sounds[0]._id;
                    else if (1 === r.length) {
                        var o = i._getSoundIds(),
                            a = o.indexOf(r[0]);
                        a >= 0 ? n = parseInt(r[0], 10) : e = parseFloat(r[0])
                    } else 2 === r.length && (e = parseFloat(r[0]), n = parseInt(r[1], 10));
                    var s;
                    if ("number" != typeof e) return s = i._soundById(n), s ? s._rate : i._rate;
                    if ("loaded" !== i._state) return i._queue.push({
                        event: "rate",
                        action: function() {
                            i.rate.apply(i, r)
                        }
                    }), i;
                    void 0 === n && (i._rate = e), n = i._getSoundIds(n);
                    for (var u = 0; u < n.length; u++)
                        if (s = i._soundById(n[u])) {
                            s._rateSeek = i.seek(n[u]), s._playStart = i._webAudio ? t.ctx.currentTime : s._playStart, s._rate = e, i._webAudio && s._node && s._node.bufferSource ? s._node.bufferSource.playbackRate.setValueAtTime(e, t.ctx.currentTime) : s._node && (s._node.playbackRate = e);
                            var l = i.seek(n[u]),
                                c = (i._sprite[s._sprite][0] + i._sprite[s._sprite][1]) / 1e3 - l,
                                h = 1e3 * c / Math.abs(s._rate);
                            !i._endTimers[n[u]] && s._paused || (i._clearTimer(n[u]), i._endTimers[n[u]] = setTimeout(i._ended.bind(i, s), h)), i._emit("rate", s._id)
                        }
                    return i
                },
                seek: function() {
                    var e, n, i = this,
                        r = arguments;
                    if (0 === r.length) n = i._sounds[0]._id;
                    else if (1 === r.length) {
                        var o = i._getSoundIds(),
                            a = o.indexOf(r[0]);
                        a >= 0 ? n = parseInt(r[0], 10) : i._sounds.length && (n = i._sounds[0]._id, e = parseFloat(r[0]))
                    } else 2 === r.length && (e = parseFloat(r[0]), n = parseInt(r[1], 10));
                    if (void 0 === n) return i;
                    if ("loaded" !== i._state) return i._queue.push({
                        event: "seek",
                        action: function() {
                            i.seek.apply(i, r)
                        }
                    }), i;
                    var s = i._soundById(n);
                    if (s) {
                        if (!("number" == typeof e && e >= 0)) {
                            if (i._webAudio) {
                                var u = i.playing(n) ? t.ctx.currentTime - s._playStart : 0,
                                    l = s._rateSeek ? s._rateSeek - s._seek : 0;
                                return s._seek + (l + u * Math.abs(s._rate))
                            }
                            return s._node.currentTime
                        }
                        var c = i.playing(n);
                        if (c && i.pause(n, !0), s._seek = e, s._ended = !1, i._clearTimer(n), c && i.play(n, !0), !i._webAudio && s._node && (s._node.currentTime = e), c && !i._webAudio) {
                            var h = function() {
                                i._playLock ? setTimeout(h, 0) : i._emit("seek", n)
                            };
                            setTimeout(h, 0)
                        } else i._emit("seek", n)
                    }
                    return i
                },
                playing: function(e) {
                    var t = this;
                    if ("number" == typeof e) {
                        var n = t._soundById(e);
                        return !!n && !n._paused
                    }
                    for (var i = 0; i < t._sounds.length; i++)
                        if (!t._sounds[i]._paused) return !0;
                    return !1
                },
                duration: function(e) {
                    var t = this,
                        n = t._duration,
                        i = t._soundById(e);
                    return i && (n = t._sprite[i._sprite][1] / 1e3), n
                },
                state: function() {
                    return this._state
                },
                unload: function() {
                    for (var e = this, n = e._sounds, i = 0; i < n.length; i++) {
                        n[i]._paused || e.stop(n[i]._id), e._webAudio || (/MSIE |Trident\//.test(t._navigator && t._navigator.userAgent) || (n[i]._node.src = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"), n[i]._node.removeEventListener("error", n[i]._errorFn, !1), n[i]._node.removeEventListener(t._canPlayEvent, n[i]._loadFn, !1)), delete n[i]._node, e._clearTimer(n[i]._id);
                        var o = t._howls.indexOf(e);
                        o >= 0 && t._howls.splice(o, 1)
                    }
                    var a = !0;
                    for (i = 0; i < t._howls.length; i++)
                        if (t._howls[i]._src === e._src) {
                            a = !1;
                            break
                        }
                    return r && a && delete r[e._src], t.noAudio = !1, e._state = "unloaded", e._sounds = [], e = null, null
                },
                on: function(e, t, n, i) {
                    var r = this,
                        o = r["_on" + e];
                    return "function" == typeof t && o.push(i ? {
                        id: n,
                        fn: t,
                        once: i
                    } : {
                        id: n,
                        fn: t
                    }), r
                },
                off: function(e, t, n) {
                    var i = this,
                        r = i["_on" + e],
                        o = 0;
                    if ("number" == typeof t && (n = t, t = null), t || n)
                        for (o = 0; o < r.length; o++) {
                            var a = n === r[o].id;
                            if (t === r[o].fn && a || !t && a) {
                                r.splice(o, 1);
                                break
                            }
                        } else if (e) i["_on" + e] = [];
                        else {
                            var s = Object.keys(i);
                            for (o = 0; o < s.length; o++) 0 === s[o].indexOf("_on") && Array.isArray(i[s[o]]) && (i[s[o]] = [])
                        }
                    return i
                },
                once: function(e, t, n) {
                    var i = this;
                    return i.on(e, t, n, 1), i
                },
                _emit: function(e, t, n) {
                    for (var i = this, r = i["_on" + e], o = r.length - 1; o >= 0; o--) r[o].id && r[o].id !== t && "load" !== e || (setTimeout(function(e) {
                        e.call(this, t, n)
                    }.bind(i, r[o].fn), 0), r[o].once && i.off(e, r[o].fn, r[o].id));
                    return i._loadQueue(e), i
                },
                _loadQueue: function(e) {
                    var t = this;
                    if (t._queue.length > 0) {
                        var n = t._queue[0];
                        n.event === e && (t._queue.shift(), t._loadQueue()), e || n.action()
                    }
                    return t
                },
                _ended: function(e) {
                    var n = this,
                        i = e._sprite;
                    if (!n._webAudio && e._node && !e._node.paused && !e._node.ended && e._node.currentTime < e._stop) return setTimeout(n._ended.bind(n, e), 100), n;
                    var r = !(!e._loop && !n._sprite[i][2]);
                    if (n._emit("end", e._id), !n._webAudio && r && n.stop(e._id, !0).play(e._id), n._webAudio && r) {
                        n._emit("play", e._id), e._seek = e._start || 0, e._rateSeek = 0, e._playStart = t.ctx.currentTime;
                        var o = 1e3 * (e._stop - e._start) / Math.abs(e._rate);
                        n._endTimers[e._id] = setTimeout(n._ended.bind(n, e), o)
                    }
                    return n._webAudio && !r && (e._paused = !0, e._ended = !0, e._seek = e._start || 0, e._rateSeek = 0, n._clearTimer(e._id), n._cleanBuffer(e._node), t._autoSuspend()), n._webAudio || r || n.stop(e._id), n
                },
                _clearTimer: function(e) {
                    var t = this;
                    if (t._endTimers[e]) {
                        if ("function" != typeof t._endTimers[e]) clearTimeout(t._endTimers[e]);
                        else {
                            var n = t._soundById(e);
                            n && n._node && n._node.removeEventListener("ended", t._endTimers[e], !1)
                        }
                        delete t._endTimers[e]
                    }
                    return t
                },
                _soundById: function(e) {
                    for (var t = this, n = 0; n < t._sounds.length; n++)
                        if (e === t._sounds[n]._id) return t._sounds[n];
                    return null
                },
                _inactiveSound: function() {
                    var e = this;
                    e._drain();
                    for (var t = 0; t < e._sounds.length; t++)
                        if (e._sounds[t]._ended) return e._sounds[t].reset();
                    return new i(e)
                },
                _drain: function() {
                    var e = this,
                        t = e._pool,
                        n = 0,
                        i = 0;
                    if (!(e._sounds.length < t)) {
                        for (i = 0; i < e._sounds.length; i++) e._sounds[i]._ended && n++;
                        for (i = e._sounds.length - 1; i >= 0; i--) {
                            if (n <= t) return;
                            e._sounds[i]._ended && (e._webAudio && e._sounds[i]._node && e._sounds[i]._node.disconnect(0), e._sounds.splice(i, 1), n--)
                        }
                    }
                },
                _getSoundIds: function(e) {
                    var t = this;
                    if (void 0 === e) {
                        for (var n = [], i = 0; i < t._sounds.length; i++) n.push(t._sounds[i]._id);
                        return n
                    }
                    return [e]
                },
                _refreshBuffer: function(e) {
                    var n = this;
                    return e._node.bufferSource = t.ctx.createBufferSource(), e._node.bufferSource.buffer = r[n._src], e._panner ? e._node.bufferSource.connect(e._panner) : e._node.bufferSource.connect(e._node), e._node.bufferSource.loop = e._loop, e._loop && (e._node.bufferSource.loopStart = e._start || 0, e._node.bufferSource.loopEnd = e._stop), e._node.bufferSource.playbackRate.setValueAtTime(e._rate, t.ctx.currentTime), n
                },
                _cleanBuffer: function(e) {
                    var n = this;
                    if (t._scratchBuffer) {
                        e.bufferSource.onended = null, e.bufferSource.disconnect(0);
                        try {
                            e.bufferSource.buffer = t._scratchBuffer
                        } catch (e) {}
                    }
                    return e.bufferSource = null, n
                }
            };
            var i = function(e) {
                this._parent = e, this.init()
            };
            i.prototype = {
                init: function() {
                    var e = this,
                        n = e._parent;
                    return e._muted = n._muted, e._loop = n._loop, e._volume = n._volume, e._rate = n._rate, e._seek = 0, e._paused = !0, e._ended = !0, e._sprite = "__default", e._id = ++t._counter, n._sounds.push(e), e.create(), e
                },
                create: function() {
                    var e = this,
                        n = e._parent,
                        i = t._muted || e._muted || e._parent._muted ? 0 : e._volume;
                    return n._webAudio ? (e._node = void 0 === t.ctx.createGain ? t.ctx.createGainNode() : t.ctx.createGain(), e._node.gain.setValueAtTime(i, t.ctx.currentTime), e._node.paused = !0, e._node.connect(t.masterGain)) : (e._node = new Audio, e._errorFn = e._errorListener.bind(e), e._node.addEventListener("error", e._errorFn, !1), e._loadFn = e._loadListener.bind(e), e._node.addEventListener(t._canPlayEvent, e._loadFn, !1), e._node.src = n._src, e._node.preload = "auto", e._node.volume = i * t.volume(), e._node.load()), e
                },
                reset: function() {
                    var e = this,
                        n = e._parent;
                    return e._muted = n._muted, e._loop = n._loop, e._volume = n._volume, e._rate = n._rate, e._seek = 0, e._rateSeek = 0, e._paused = !0, e._ended = !0, e._sprite = "__default", e._id = ++t._counter, e
                },
                _errorListener: function() {
                    var e = this;
                    e._parent._emit("loaderror", e._id, e._node.error ? e._node.error.code : 0), e._node.removeEventListener("error", e._errorFn, !1)
                },
                _loadListener: function() {
                    var e = this,
                        n = e._parent;
                    n._duration = Math.ceil(10 * e._node.duration) / 10, 0 === Object.keys(n._sprite).length && (n._sprite = {
                        __default: [0, 1e3 * n._duration]
                    }), "loaded" !== n._state && (n._state = "loaded", n._emit("load"), n._loadQueue()), e._node.removeEventListener(t._canPlayEvent, e._loadFn, !1)
                }
            };
            var r = {},
                o = function(e) {
                    var t = e._src;
                    if (r[t]) return e._duration = r[t].duration, void u(e);
                    if (/^data:[^;]+;base64,/.test(t)) {
                        for (var n = atob(t.split(",")[1]), i = new Uint8Array(n.length), o = 0; o < n.length; ++o) i[o] = n.charCodeAt(o);
                        s(i.buffer, e)
                    } else {
                        var l = new XMLHttpRequest;
                        l.open("GET", t, !0), l.withCredentials = e._xhrWithCredentials, l.responseType = "arraybuffer", l.onload = function() {
                            var t = (l.status + "")[0];
                            if ("0" !== t && "2" !== t && "3" !== t) return void e._emit("loaderror", null, "Failed loading audio file with status: " + l.status + ".");
                            s(l.response, e)
                        }, l.onerror = function() {
                            e._webAudio && (e._html5 = !0, e._webAudio = !1, e._sounds = [], delete r[t], e.load())
                        }, a(l)
                    }
                },
                a = function(e) {
                    try {
                        e.send()
                    } catch (t) {
                        e.onerror()
                    }
                },
                s = function(e, n) {
                    t.ctx.decodeAudioData(e, function(e) {
                        e && n._sounds.length > 0 && (r[n._src] = e, u(n, e))
                    }, function() {
                        n._emit("loaderror", null, "Decoding audio data failed.")
                    })
                },
                u = function(e, t) {
                    t && !e._duration && (e._duration = t.duration), 0 === Object.keys(e._sprite).length && (e._sprite = {
                        __default: [0, 1e3 * e._duration]
                    }), "loaded" !== e._state && (e._state = "loaded", e._emit("load"), e._loadQueue())
                },
                l = function() {
                    try {
                        "undefined" != typeof AudioContext ? t.ctx = new AudioContext : "undefined" != typeof webkitAudioContext ? t.ctx = new webkitAudioContext : t.usingWebAudio = !1
                    } catch (e) {
                        t.usingWebAudio = !1
                    }
                    var e = /iP(hone|od|ad)/.test(t._navigator && t._navigator.platform),
                        n = t._navigator && t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),
                        i = n ? parseInt(n[1], 10) : null;
                    if (e && i && i < 9) {
                        var r = /safari/.test(t._navigator && t._navigator.userAgent.toLowerCase());
                        (t._navigator && t._navigator.standalone && !r || t._navigator && !t._navigator.standalone && !r) && (t.usingWebAudio = !1)
                    }
                    t.usingWebAudio && (t.masterGain = void 0 === t.ctx.createGain ? t.ctx.createGainNode() : t.ctx.createGain(), t.masterGain.gain.setValueAtTime(t._muted ? 0 : 1, t.ctx.currentTime), t.masterGain.connect(t.ctx.destination)), t._setup()
                };
            "function" == typeof define && define.amd && define("com/howlerjs/howler", [], function() {
                return {
                    Howler: t,
                    Howl: n
                }
            }), "undefined" != typeof exports && (exports.Howler = t, exports.Howl = n), "undefined" != typeof window ? (window.HowlerGlobal = e, window.Howler = t, window.Howl = n, window.Sound = i) : "undefined" != typeof global && (global.HowlerGlobal = e, global.Howler = t, global.Howl = n, global.Sound = i)
        }(),
        function() {
            "use strict";
            HowlerGlobal.prototype._pos = [0, 0, 0], HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0], HowlerGlobal.prototype.stereo = function(e) {
                var t = this;
                if (!t.ctx || !t.ctx.listener) return t;
                for (var n = t._howls.length - 1; n >= 0; n--) t._howls[n].stereo(e);
                return t
            }, HowlerGlobal.prototype.pos = function(e, t, n) {
                var i = this;
                return i.ctx && i.ctx.listener ? (t = "number" != typeof t ? i._pos[1] : t, n = "number" != typeof n ? i._pos[2] : n, "number" != typeof e ? i._pos : (i._pos = [e, t, n], i.ctx.listener.setPosition(i._pos[0], i._pos[1], i._pos[2]), i)) : i
            }, HowlerGlobal.prototype.orientation = function(e, t, n, i, r, o) {
                var a = this;
                if (!a.ctx || !a.ctx.listener) return a;
                var s = a._orientation;
                return t = "number" != typeof t ? s[1] : t, n = "number" != typeof n ? s[2] : n, i = "number" != typeof i ? s[3] : i, r = "number" != typeof r ? s[4] : r, o = "number" != typeof o ? s[5] : o, "number" != typeof e ? s : (a._orientation = [e, t, n, i, r, o], a.ctx.listener.setOrientation(e, t, n, i, r, o), a)
            }, Howl.prototype.init = function(e) {
                return function(t) {
                    var n = this;
                    return n._orientation = t.orientation || [1, 0, 0], n._stereo = t.stereo || null, n._pos = t.pos || null, n._pannerAttr = {
                        coneInnerAngle: void 0 !== t.coneInnerAngle ? t.coneInnerAngle : 360,
                        coneOuterAngle: void 0 !== t.coneOuterAngle ? t.coneOuterAngle : 360,
                        coneOuterGain: void 0 !== t.coneOuterGain ? t.coneOuterGain : 0,
                        distanceModel: void 0 !== t.distanceModel ? t.distanceModel : "inverse",
                        maxDistance: void 0 !== t.maxDistance ? t.maxDistance : 1e4,
                        panningModel: void 0 !== t.panningModel ? t.panningModel : "HRTF",
                        refDistance: void 0 !== t.refDistance ? t.refDistance : 1,
                        rolloffFactor: void 0 !== t.rolloffFactor ? t.rolloffFactor : 1
                    }, n._onstereo = t.onstereo ? [{
                        fn: t.onstereo
                    }] : [], n._onpos = t.onpos ? [{
                        fn: t.onpos
                    }] : [], n._onorientation = t.onorientation ? [{
                        fn: t.onorientation
                    }] : [], e.call(this, t)
                }
            }(Howl.prototype.init), Howl.prototype.stereo = function(t, n) {
                var i = this;
                if (!i._webAudio) return i;
                if ("loaded" !== i._state) return i._queue.push({
                    event: "stereo",
                    action: function() {
                        i.stereo(t, n)
                    }
                }), i;
                var r = void 0 === Howler.ctx.createStereoPanner ? "spatial" : "stereo";
                if (void 0 === n) {
                    if ("number" != typeof t) return i._stereo;
                    i._stereo = t, i._pos = [t, 0, 0]
                }
                for (var o = i._getSoundIds(n), a = 0; a < o.length; a++) {
                    var s = i._soundById(o[a]);
                    if (s) {
                        if ("number" != typeof t) return s._stereo;
                        s._stereo = t, s._pos = [t, 0, 0], s._node && (s._pannerAttr.panningModel = "equalpower", s._panner && s._panner.pan || e(s, r), "spatial" === r ? s._panner.setPosition(t, 0, 0) : s._panner.pan.setValueAtTime(t, Howler.ctx.currentTime)), i._emit("stereo", s._id)
                    }
                }
                return i
            }, Howl.prototype.pos = function(t, n, i, r) {
                var o = this;
                if (!o._webAudio) return o;
                if ("loaded" !== o._state) return o._queue.push({
                    event: "pos",
                    action: function() {
                        o.pos(t, n, i, r)
                    }
                }), o;
                if (n = "number" != typeof n ? 0 : n, i = "number" != typeof i ? -.5 : i, void 0 === r) {
                    if ("number" != typeof t) return o._pos;
                    o._pos = [t, n, i]
                }
                for (var a = o._getSoundIds(r), s = 0; s < a.length; s++) {
                    var u = o._soundById(a[s]);
                    if (u) {
                        if ("number" != typeof t) return u._pos;
                        u._pos = [t, n, i], u._node && (u._panner && !u._panner.pan || e(u, "spatial"), u._panner.setPosition(t, n, i)), o._emit("pos", u._id)
                    }
                }
                return o
            }, Howl.prototype.orientation = function(t, n, i, r) {
                var o = this;
                if (!o._webAudio) return o;
                if ("loaded" !== o._state) return o._queue.push({
                    event: "orientation",
                    action: function() {
                        o.orientation(t, n, i, r)
                    }
                }), o;
                if (n = "number" != typeof n ? o._orientation[1] : n, i = "number" != typeof i ? o._orientation[2] : i, void 0 === r) {
                    if ("number" != typeof t) return o._orientation;
                    o._orientation = [t, n, i]
                }
                for (var a = o._getSoundIds(r), s = 0; s < a.length; s++) {
                    var u = o._soundById(a[s]);
                    if (u) {
                        if ("number" != typeof t) return u._orientation;
                        u._orientation = [t, n, i], u._node && (u._panner || (u._pos || (u._pos = o._pos || [0, 0, -.5]), e(u, "spatial")), u._panner.setOrientation(t, n, i)), o._emit("orientation", u._id)
                    }
                }
                return o
            }, Howl.prototype.pannerAttr = function() {
                var t, n, i, r = this,
                    o = arguments;
                if (!r._webAudio) return r;
                if (0 === o.length) return r._pannerAttr;
                if (1 === o.length) {
                    if ("object" != typeof o[0]) return i = r._soundById(parseInt(o[0], 10)), i ? i._pannerAttr : r._pannerAttr;
                    t = o[0], void 0 === n && (t.pannerAttr || (t.pannerAttr = {
                        coneInnerAngle: t.coneInnerAngle,
                        coneOuterAngle: t.coneOuterAngle,
                        coneOuterGain: t.coneOuterGain,
                        distanceModel: t.distanceModel,
                        maxDistance: t.maxDistance,
                        refDistance: t.refDistance,
                        rolloffFactor: t.rolloffFactor,
                        panningModel: t.panningModel
                    }), r._pannerAttr = {
                        coneInnerAngle: void 0 !== t.pannerAttr.coneInnerAngle ? t.pannerAttr.coneInnerAngle : r._coneInnerAngle,
                        coneOuterAngle: void 0 !== t.pannerAttr.coneOuterAngle ? t.pannerAttr.coneOuterAngle : r._coneOuterAngle,
                        coneOuterGain: void 0 !== t.pannerAttr.coneOuterGain ? t.pannerAttr.coneOuterGain : r._coneOuterGain,
                        distanceModel: void 0 !== t.pannerAttr.distanceModel ? t.pannerAttr.distanceModel : r._distanceModel,
                        maxDistance: void 0 !== t.pannerAttr.maxDistance ? t.pannerAttr.maxDistance : r._maxDistance,
                        refDistance: void 0 !== t.pannerAttr.refDistance ? t.pannerAttr.refDistance : r._refDistance,
                        rolloffFactor: void 0 !== t.pannerAttr.rolloffFactor ? t.pannerAttr.rolloffFactor : r._rolloffFactor,
                        panningModel: void 0 !== t.pannerAttr.panningModel ? t.pannerAttr.panningModel : r._panningModel
                    })
                } else 2 === o.length && (t = o[0], n = parseInt(o[1], 10));
                for (var a = r._getSoundIds(n), s = 0; s < a.length; s++)
                    if (i = r._soundById(a[s])) {
                        var u = i._pannerAttr;
                        u = {
                            coneInnerAngle: void 0 !== t.coneInnerAngle ? t.coneInnerAngle : u.coneInnerAngle,
                            coneOuterAngle: void 0 !== t.coneOuterAngle ? t.coneOuterAngle : u.coneOuterAngle,
                            coneOuterGain: void 0 !== t.coneOuterGain ? t.coneOuterGain : u.coneOuterGain,
                            distanceModel: void 0 !== t.distanceModel ? t.distanceModel : u.distanceModel,
                            maxDistance: void 0 !== t.maxDistance ? t.maxDistance : u.maxDistance,
                            refDistance: void 0 !== t.refDistance ? t.refDistance : u.refDistance,
                            rolloffFactor: void 0 !== t.rolloffFactor ? t.rolloffFactor : u.rolloffFactor,
                            panningModel: void 0 !== t.panningModel ? t.panningModel : u.panningModel
                        };
                        var l = i._panner;
                        l ? (l.coneInnerAngle = u.coneInnerAngle, l.coneOuterAngle = u.coneOuterAngle, l.coneOuterGain = u.coneOuterGain, l.distanceModel = u.distanceModel, l.maxDistance = u.maxDistance, l.refDistance = u.refDistance, l.rolloffFactor = u.rolloffFactor, l.panningModel = u.panningModel) : (i._pos || (i._pos = r._pos || [0, 0, -.5]), e(i, "spatial"))
                    }
                return r
            }, Sound.prototype.init = function(e) {
                return function() {
                    var t = this,
                        n = t._parent;
                    t._orientation = n._orientation, t._stereo = n._stereo, t._pos = n._pos, t._pannerAttr = n._pannerAttr, e.call(this), t._stereo ? n.stereo(t._stereo) : t._pos && n.pos(t._pos[0], t._pos[1], t._pos[2], t._id)
                }
            }(Sound.prototype.init), Sound.prototype.reset = function(e) {
                return function() {
                    var t = this,
                        n = t._parent;
                    return t._orientation = n._orientation, t._pos = n._pos, t._pannerAttr = n._pannerAttr, e.call(this)
                }
            }(Sound.prototype.reset);
            var e = function(e, t) {
                t = t || "spatial", "spatial" === t ? (e._panner = Howler.ctx.createPanner(), e._panner.coneInnerAngle = e._pannerAttr.coneInnerAngle, e._panner.coneOuterAngle = e._pannerAttr.coneOuterAngle, e._panner.coneOuterGain = e._pannerAttr.coneOuterGain, e._panner.distanceModel = e._pannerAttr.distanceModel,
                    e._panner.maxDistance = e._pannerAttr.maxDistance, e._panner.refDistance = e._pannerAttr.refDistance, e._panner.rolloffFactor = e._pannerAttr.rolloffFactor, e._panner.panningModel = e._pannerAttr.panningModel, e._panner.setPosition(e._pos[0], e._pos[1], e._pos[2]), e._panner.setOrientation(e._orientation[0], e._orientation[1], e._orientation[2])) : (e._panner = Howler.ctx.createStereoPanner(), e._panner.pan.setValueAtTime(e._stereo, Howler.ctx.currentTime)), e._panner.connect(e._node), e._paused || e._parent.pause(e._id, !0).play(e._id, !0)
            }
        }(), define("skbJet/component/howlerAudioPlayer/HowlerChannel", ["com/howlerjs/howler", "skbJet/component/utils/PauseTimer"], function(e, t) {
            function n() {}

            function i(e, t) {
                e._loaded || (e._loaded = !0, t())
            }

            function r(e) {
                e._fadeInterval && (t.clearInterval(e._fadeInterval), e._fadeInterval = null)
            }
            return n.prototype._muteFlag = !1, n.prototype._curSound = null, n.prototype._howl = null, n.prototype._loaded = !1, n.prototype._currentVolume = 1, n.prototype._fadeOutEndPause = !1, n.prototype.load = function(e, t, n) {
                this._howl = new window.Howl({
                    src: e.urls,
                    sprite: e.sprite
                });
                var r = this;
                this._howl.once("load", function() {
                    i(r, t)
                }), setTimeout(function() {
                    i(r, t)
                }, 14e3), this._howl.once("loaderror", n)
            }, n.prototype.currentPlaying = function() {
                return this._curSound ? this._curSound.name : null
            }, n.prototype._onVolumeUpdated = function() {
                this._muteFlag ? (this._howl._soundById(this._howl._getSoundIds()[0])._node.gain.value = 0, this._howl._soundById(this._howl._getSoundIds()[0])._volume = 0) : this._curSound && this._curSound.id && this._howl.volume(this._howl._volume, this._curSound.id)
            }, n.prototype.play = function(e, t) {
                var n = this;
                this.stop(), this._curSound = {
                    name: null,
                    id: null
                };
                for (var i = this._howl._sounds || [], r = 0; r < i.length; r++) "suspended" !== i[r]._node.context.state && "interrupted" !== i[r]._node.context.state || i[r]._node.context.resume();
                this._curSound.id = this._howl.play(e), this._howl.loop(!!t, this._curSound.id), this._howl.mute(this._muteFlag), t || this._howl.once("end", function() {
                    n._curSound = null
                }, n._curSound.id), this._curSound.name = e
            }, n.prototype.stop = function() {
                this._howl.stop(), this._fadeOutEndPause = !1, this._curSound = null
            }, n.prototype.pause = function() {
                this._howl.pause()
            }, n.prototype.resume = function() {
                this._fadeOutEndPause || this._curSound && (this._howl.play(this._curSound.id), this._howl.mute(this._muteFlag, this._curSound.id), this._onVolumeUpdated())
            }, n.prototype.volume = function(e) {
                this._howl._volume = e, this._currentVolume = e, this._curSound && this._curSound.id && this._howl.volume(e, this._curSound.id)
            }, n.prototype.fadeOut = function(e, n) {
                n = n || {}, e = e || 1500;
                var i = this._howl._volume / 20,
                    o = this;
                r(this), o._fadeInterval = t.setInterval(function() {
                    o._howl._volume - i <= 0 ? (o._howl._volume = 0, o._onVolumeUpdated(), o.pause(), o._fadeOutEndPause = !0, t.clearInterval(o._fadeInterval), n.completeCallback && n.completeCallback()) : (o._howl._volume -= i, o._onVolumeUpdated())
                }, e / 20)
            }, n.prototype.playAndFadeIn = function(e, n, i, o) {
                o = o || {};
                var a = this._currentVolume;
                n = n || !1, i = i || 2e3, this.play(e, n), this._howl._volume = 0;
                var s = a / 20,
                    u = this;
                r(this), u._fadeInterval = t.setInterval(function() {
                    u._howl._volume + s >= a ? (u._howl._volume = a, u._onVolumeUpdated(), t.clearInterval(u._fadeInterval), o.completeCallback && o.completeCallback()) : (u._howl._volume += s, u._onVolumeUpdated())
                }, i / 20)
            }, n.prototype.cancelFade = function() {
                r(this), this._howl._volume = this._currentVolume, this._onVolumeUpdated(), this._fadeOutEndPause = !1, this.resume()
            }, n.mute = function(e) {
                window.Howler.mute(e)
            }, n
        }), define("skbJet/component/howlerAudioPlayer/Html5Channel", ["skbJet/component/utils/PauseTimer"], function(e) {
            function t() {}

            function n(e) {
                try {
                    e.loop ? (clearTimeout(e._endTimerId), e.audioTag.currentTime = e.spriteMap[e._currentPlaying][0] / 1e3, e._endTimerId = setTimeout(function() {
                        n(e)
                    }, e.spriteMap[e._currentPlaying][1])) : e.stop()
                } catch (e) {
                    return
                }
            }

            function i(t) {
                t._fadeInterval && (e.clearInterval(t._fadeInterval), t._fadeInterval = null)
            }
            var r = [],
                o = !1;
            return t.STATUS = {
                Loading: "Loading",
                Playing: "Playing",
                Paused: "Paused",
                Stopped: "Stopped"
            }, t.prototype._currentVolume = 1, t.prototype._fadeOutEndPause = !1, t.prototype.load = function(e, n) {
                this.spriteMap = e.sprite, this.audioTag = new Audio, this.audioTag.muted = !0, this.status = t.STATUS.Loading;
                var i = this;
                i.audioTag.oncanplaythrough = function() {
                    i.audioTag.onplay = function() {
                        i.audioTag.onplay = null, i.audioTag.pause(), setTimeout(function() {
                            i.audioTag.muted = !1
                        }, 300), i.status = t.STATUS.Stopped, r.push(i)
                    }, i.audioTag.play()
                };
                for (var o = null, a = document.createElement("audio"), s = 0; s < e.urls.length; s++) {
                    var u = e.urls[s].split(".")[1];
                    if (null !== a.canPlayType("audio/" + u)) {
                        o = e.urls[s];
                        break
                    }
                }
                i.audioTag.src = o, i.audioTag.load(), setTimeout(n, 500)
            }, t.prototype.play = function(e, i) {
                if (this.status !== t.STATUS.Loading) try {
                    if (!this.spriteMap[e]) return;
                    var r = this;
                    this.audioTag.currentTime = this.spriteMap[e][0] / 1e3, this._endTimerId && clearTimeout(this._endTimerId), this.status !== t.STATUS.Stopped && this.status !== t.STATUS.Paused || (this.audioTag.muted = this.audioTag.muted || o, this.audioTag.play()), this.status = t.STATUS.Playing, this._currentPlaying = e, this.loop = !!i, this._endTimerId = setTimeout(function() {
                        n(r)
                    }, this.spriteMap[e][1])
                } catch (e) {
                    return
                }
            }, t.prototype.pause = function() {
                this.status === t.STATUS.Playing && (this.audioTag.pause(), clearTimeout(this._endTimerId), this._endTimerId = null, this.status = t.STATUS.Paused)
            }, t.prototype.resume = function() {
                if (!this._fadeOutEndPause && this.status === t.STATUS.Paused) {
                    this.audioTag.play(), this.status = t.STATUS.Playing;
                    var e = this,
                        i = e.spriteMap[e._currentPlaying][1] - (1e3 * e.audioTag.currentTime - e.spriteMap[e._currentPlaying][0]);
                    e._endTimerId = setTimeout(function() {
                        n(e)
                    }, i)
                }
            }, t.prototype.stop = function() {
                this.audioTag.pause(), this._fadeOutEndPause = !1, clearTimeout(this._endTimerId), this._endTimerId = null, this.status = t.STATUS.Stopped, this._currentPlaying = null, this.loop = !1
            }, t.prototype.currentPlaying = function() {
                return this._currentPlaying
            }, t.mute = function(e) {
                o = e;
                for (var t = 0; t < r.length; t++) r[t].audioTag.muted = e
            }, t.prototype.volume = function(e) {
                this.audioTag.volume = e, this._currentVolume = e
            }, t.prototype.fadeOut = function(t, n) {
                n = n || {}, t = t || 1500;
                var r = this,
                    o = r.audioTag.volume / 20;
                i(r), r._fadeInterval = e.setInterval(function() {
                    r.audioTag.volume - o <= 0 ? (r.audioTag.volume = 0, r.pause(), r._fadeOutEndPause = !0, e.clearInterval(r._fadeInterval), n.completeCallback && n.completeCallback()) : r.audioTag.volume -= o
                }, t / 20)
            }, t.prototype.playAndFadeIn = function(t, n, r, o) {
                o = o || {}, r = r || 2e3;
                var a = this,
                    s = a._currentVolume;
                n = n || !1, a.play(t, n), a.audioTag.volume = 0;
                var u = s / 20;
                i(a), a._fadeInterval = e.setInterval(function() {
                    a.audioTag.volume + u >= s ? (a.audioTag.volume = s, e.clearInterval(a._fadeInterval), o.completeCallback && o.completeCallback()) : a.audioTag.volume += u
                }, r / 20)
            }, t.prototype.cancelFade = function() {
                i(this), this.audioTag.volume = this._currentVolume, this._fadeOutEndPause = !1, this.resume()
            }, t
        }), define("skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", ["skbJet/component/utils/Interface", "skbJet/component/channelAudioPlayer/IChannelAudioPlayer", "skbJet/component/channelAudioPlayer/channelAudioPlayerHelper", "skbJet/component/howlerAudioPlayer/HowlerChannel", "skbJet/component/howlerAudioPlayer/Html5Channel"], function(e, t, n, i, r) {
            function o(e) {
                r.mute(e), i.mute(e)
            }

            function a() {
                for (var e in c) c[e] && c[e].pause()
            }

            function s() {
                for (var e in c) c[e] && c[e].resume()
            }

            function u() {
                o(!0);
                for (var e in c) {
                    var t = c[e];
                    if (t) {
                        var n = t._howl ? t._howl._sprite : null;
                        if (n) {
                            for (var i in n) {
                                t.play(i), setTimeout(function() {
                                    t.stop()
                                }, 100);
                                break
                            }
                            break
                        }
                    }
                }
            }

            function l() {
                for (var e in c) c[e] && c[e].stop()
            }
            var c = [],
                h = {
                    gameAudioControlChanged: n.gameAudioControlChanged,
                    consoleAudioControlChanged: n.consoleAudioControlChanged,
                    play: function(e, t, n) {
                        e && (t || (t = 0), n || (n = !1), c[t] && (c[t].play(e, n), c[t].volume(1)))
                    },
                    currentPlaying: function(e) {
                        return c[e] ? c[e].currentPlaying() : null
                    },
                    stopChannel: function(e) {
                        c[e] && c[e].stop()
                    },
                    stopAllChannel: l,
                    stopAll: l,
                    pauseChannel: function(e) {
                        c[e] && c[e].pause()
                    },
                    pauseAll: a,
                    resumeChannel: function(e) {
                        c[e] && c[e].resume()
                    },
                    resumeAll: s,
                    muteAll: o,
                    _addChannel: function(e, t) {
                        c[t] = e
                    },
                    volume: function(e, t) {
                        c[e] && c[e].volume(t)
                    },
                    fadeOut: function(e, t, n) {
                        c[e] && c[e].fadeOut(t, n)
                    },
                    playAndFadeIn: function(e, t, n, i, r) {
                        t && (e || (e = 0), c[e] && c[e].playAndFadeIn(t, n, i, r))
                    },
                    cancelFade: function(e) {
                        c[e] && c[e].cancelFade()
                    }
                };
            return t.implementedBy(h), n.setChannelAudioPlayer(h), n.setPlayerAudioChoiceCallBack(u), h
        }), define("skbJet/component/resourceLoader/Util", [], function() {
            var e = {};
            return e.httpGetJson = function(t, n, i) {
                e.httpGetText(t, function(e) {
                    n(JSON.parse(e))
                }, i)
            }, e.httpGetText = function(e, t, n) {
                var i = new XMLHttpRequest;
                i.addEventListener("load", function(e) {
                    e.target.status >= 200 && e.target.status < 300 ? t(e.target.responseText) : n()
                }), i.addEventListener("error", n), i.addEventListener("timeout", n), i.open("GET", e), i.send()
            }, e.removeQueryStr = function(e) {
                var t = e.match(/(.*)\?/);
                return t ? t[1] : e
            }, e.getFileNameFromPath = function(e) {
                var t = e.match(/\/?([^\/]+)$/);
                return t ? t[1] : e
            }, e.getFileExt = function(t, n) {
                t = e.removeQueryStr(t), t = e.getFileNameFromPath(t);
                var i = t.match(/\.(\w+)$/);
                return i && i[1] ? n ? i[1].toLowerCase() : i[1] : null
            }, e.getFileNameWithoutExt = function(t) {
                t = e.removeQueryStr(t), t = e.getFileNameFromPath(t);
                var n = t.match(/(.*)(\.\w+)+$/);
                return n ? n[1] : t
            }, e.getParentFolder = function(t) {
                t = e.removeQueryStr(t);
                var n = e.getFileNameFromPath(t);
                return t.substring(0, t.length - n.length)
            }, e
        }), define("skbJet/component/resourceLoader/LoaderContext", [], function() {
            function e(e, t, n) {
                this.assetPackUrl = e, this.languageCode = t, this.skinCode = n, this.totalResAmount = 0, this.currentLoaded = 0, this.gameFolder = null, this.i18nParent = null, this.queryStr = "", window._cacheFlag && window._cacheFlag.queryStr && (this.queryStr = window._cacheFlag.queryStr), this.fileListMap = {
                    i18n: null
                }, this.subLoaderMap = {}, this.onFileLoaded = function() {}, this.onLoadFailed = function() {}
            }
            return e
        }), define("skbJet/component/resourceLoader/LoaderChainHandler", [], function() {
            function e() {}
            return e.prototype.next = null, e.prototype.handle = null, e
        }), define("skbJet/component/resourceLoader/handlers/languageListHandler", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderChainHandler"], function(e, t) {
            function n(e, t) {
                for (var n = {}, i = 0; i < e.length; i++) n[e[i]] = [e[i].toLowerCase()], e[i].indexOf("_") > -1 ? n[e[i]].push(e[i].replace("_", "-").toLowerCase()) : e[i].indexOf("-") > -1 && n[e[i]].push(e[i].replace("-", "_").toLowerCase());
                var r;
                for (var o in n)
                    if (n[o].indexOf("i18n/" + t.languageCode.toLowerCase() + ".json") >= 0) {
                        r = o.substring(o.lastIndexOf("/") + 1, o.lastIndexOf("."));
                        break
                    }
                if (!r)
                    for (var o in n)
                        if (n[o].indexOf("i18n/default.json") >= 0) {
                            r = o.substring(o.lastIndexOf("/") + 1, o.lastIndexOf("."));
                            break
                        }
                if (!r)
                    for (var o in n)
                        if (n[o].indexOf("i18n/en.json") >= 0) {
                            r = o.substring(o.lastIndexOf("/") + 1, o.lastIndexOf("."));
                            break
                        }
                return !!r && (t.languageCode = r, !0)
            }

            function i(t) {
                var n = t.gameFolder,
                    i = !1;
                if (window.location.search.match(/&?custom=true&?/) && (i = !0), window.gtk && window.gtk.jLottery && window.gtk.jLottery.embeddedParams && window.gtk.jLottery.embeddedParams.custom && (i = !0), i) {
                    var r, o = window.location.pathname;
                    o.match(/\/splash\.html$/) || o.match(/\/launcher\.html$/) ? (r = e.getParentFolder(o), r = r.match(/\/([^\/]+\/)$/)[1]) : r = t.gameFolder.match(/\/([^\/]+\/)$/)[1], n = "/custom_lang/" + t.skinCode + "/" + r
                }
                return n
            }
            var r = new t;
            return r.handle = function(t) {
                t.languageCode = t.languageCode || "default", t.languageCode = t.languageCode.toLowerCase();
                var o = t.assetPackUrl.substring(0, t.assetPackUrl.lastIndexOf("/"));
                t.gameFolder = o.substring(0, o.lastIndexOf("/") + 1), t.i18nParent = i(t), e.httpGetJson(t.i18nParent + "i18n.json" + t.queryStr, function(e) {
                    n(e.i18n, t) ? r.next.handle(t) : t.onLoadFailed()
                }, t.onLoadFailed)
            }, r
        }), define("skbJet/component/resourceLoader/handlers/skinListHandler", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderChainHandler"], function(e, t) {
            function n(e, t) {
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    if (i = i.substring(i.lastIndexOf("/") + 1, i.lastIndexOf(".")), t.skinCode.toLowerCase() === i.toLowerCase()) return
                }
                t.skinCode = "default"
            }
            var i = new t;
            return i.handle = function(t) {
                t.skinCode = t.skinCode || "default";
                var r = t.i18nParent + "i18n/" + t.languageCode + ".json" + t.queryStr;
                e.httpGetJson(r, function(e) {
                    n(e[t.languageCode], t), i.next.handle(t)
                }, t.onLoadFailed)
            }, i
        }), define("skbJet/component/resourceLoader/handlers/fileListHandler", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderChainHandler"], function(e, t) {
            function n(e, t, n, i) {
                i.fileListMap[e] || (i.fileListMap[e] = {});
                for (var r = 0; r < t.length; r++) i.fileListMap[e][t[r]] = n
            }

            function i(t, i) {
                var o = t.assetPackUrl + ".json" + t.queryStr;
                e.httpGetJson(o, function(e) {
                    for (var o in e) n(o, e[o], t.gameFolder + "assetPacks/", t);
                    var s = t.assetPackUrl.substring(t.assetPackUrl.lastIndexOf("assetPacks"));
                    i && i.indexOf(t.skinCode + "/" + s + ".json") > -1 ? r(t, s) : a.next.handle(t)
                }, t.onLoadFailed)
            }

            function r(t, i) {
                var r = t.i18nParent + "i18n/" + t.languageCode + "/" + t.skinCode + "/",
                    o = r + i + ".json" + t.queryStr;
                e.httpGetJson(o, function(e) {
                    for (var i in e) n(i, e[i], r + "assetPacks/", t);
                    a.next.handle(t)
                }, t.onLoadFailed)
            }

            function o(t) {
                var r = t.i18nParent + "i18n/",
                    o = r + t.languageCode + "/",
                    a = o + t.skinCode + ".json" + t.queryStr;
                e.httpGetJson(a, function(e) {
                    n("i18n", e[t.skinCode], o, t), i(t, e.assetPacks)
                }, t.onLoadFailed)
            }
            var a = new t;
            return a.handle = o, a
        }), define("skbJet/component/resourceLoader/handlers/fileLoadHandler", ["skbJet/component/resourceLoader/LoaderChainHandler"], function(e) {
            function t(e, t, n) {
                setTimeout(function() {
                    e.load(t, n)
                }, 1)
            }
            var n = new e;
            return n.handle = function(e) {
                for (var n in e.fileListMap) e.subLoaderMap[n] && t(e.subLoaderMap[n], e.fileListMap[n], {
                    onFileLoaded: e.onFileLoaded,
                    onLoadFailed: e.onLoadFailed,
                    queryStr: e.queryStr
                })
            }, n.addSubLoader = function(e, t, n) {
                e.subLoaderMap[t] = n
            }, n.summary = function(e) {
                var t = 0,
                    n = 0,
                    i = !0;
                for (var r in e.fileListMap) e.subLoaderMap[r] && (t += e.subLoaderMap[r].getTotal(), n += e.subLoaderMap[r].getCurrent(), i = i && e.subLoaderMap[r].isComplete());
                return {
                    total: t,
                    current: n,
                    complete: i
                }
            }, n
        }), define("skbJet/component/resourceLoader/ResourceLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderContext", "skbJet/component/resourceLoader/handlers/languageListHandler", "skbJet/component/resourceLoader/handlers/skinListHandler", "skbJet/component/resourceLoader/handlers/fileListHandler", "skbJet/component/resourceLoader/handlers/fileLoadHandler"], function(e, t, n, i, r, o) {
            function a(e, a, s) {
                this.context = new t(e, a, s), this.loadChain = [n, i, r, o]
            }
            var s;
            return a.prototype.load = function(e, t) {
                for (var n = 0; n < this.loadChain.length - 1; n++) this.loadChain[n].next = this.loadChain[n + 1];
                this.context.onFileLoaded = e, this.context.onLoadFailed = t, this.loadChain[0].handle(this.context)
            }, a.prototype.addSubLoader = function(e, t) {
                o.addSubLoader(this.context, e, t)
            }, a.prototype.currentProgress = function() {
                return o.summary(this.context)
            }, a.initDefault = function(e, t, n) {
                if (s) throw "Default loader already inited.";
                s = new a(e, t, n)
            }, a.getDefault = function() {
                return s
            }, a.prototype.addHeartBeat = function(e, t) {
                function n() {
                    var t = r.currentProgress();
                    if (t.complete) return void clearInterval(i);
                    e(t)
                }
                var i, r = this;
                t || (t = 5e3), i = setInterval(n, t)
            }, a
        }), define("skbJet/component/resourceLoader/AbstractSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/resourceLib"], function(e, t) {
            function n() {}

            function i() {}
            return i.prototype._initOptions = function(e, n) {
                this._count = {
                    total: 0,
                    current: 0,
                    complete: !1
                }, this.options = n || {}, this.options.type = this.options.type || e, t[this.options.type] || (t[this.options.type] = {})
            }, i.prototype.getTotal = function() {
                return this._count.total
            }, i.prototype.getCurrent = function() {
                return this._count.current
            }, i.prototype.isComplete = function() {
                return this._count.complete
            }, i.prototype._prepareLoad = function(e) {
                e = e || {}, this._count.total = 0, this._count.current = 0, e.queryStr = e.queryStr ? e.queryStr : "", e.onFileLoaded = e.onFileLoaded ? e.onFileLoaded : n, e.onLoadFailed = e.onLoadFailed ? e.onLoadFailed : n;
                for (var t in e) this.options[t] = e[t]
            }, i.prototype.load = function(n, i) {
                this._prepareLoad(i);
                var r = [];
                for (var o in n)
                    if (n[o]) {
                        if (this.options.fileExtFilterList) {
                            var a = e.getFileExt(o, !0);
                            if (this.options.fileExtFilterList.indexOf(a) < 0) continue
                        }
                        this._count.total++, r.push(o)
                    }
                if (0 === this._count.total) return this._count.complete = !0, void this.options.onFileLoaded();
                for (var s = this, u = 0; u < r.length; u++) {
                    var o = r[u];
                    this._doLoadFile(n[o] + o + this.options.queryStr, function(e) {
                        return function(n) {
                            s._count.current++, s._count.current === s._count.total && (s._count.complete = !0), t[s.options.type] = t[s.options.type] || {}, t[s.options.type][e] = n, s.options.onFileLoaded()
                        }
                    }(e.getFileNameWithoutExt(o)), this.options.onLoadFailed)
                }
            }, i.prototype._doLoadFile = function(e, t, n) {
                throw "Not implemented yet. Params: url:" + e + "   success:" + t + "   fail:" + n
            }, i
        }), define("skbJet/component/resourceLoader/subLoaders/TextFilesSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader"], function(e, t) {
            function n(e) {
                this._initOptions("_text_files", e)
            }
            return n.prototype = new t, n.prototype._doLoadFile = function(t, n, i) {
                "json" === e.getFileExt(t, !0) && this.options.parseJson ? e.httpGetJson(t, n, i) : e.httpGetText(t, n, i)
            }, n
        }), define("skbJet/component/resourceLoader/subLoaders/HtmlTagSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader"], function(e, t) {
            function n(e) {
                this._initOptions("_html_tags", e)
            }
            return n.prototype = new t, n.prototype._doLoadFile = function(e, t, n) {
                var i = document.createElement(this.options.tagName);
                if (i.onload = function() {
                        t(i)
                    }, i.onerror = n, this.options.parentTag && this.options.parentTag.appendChild(i), this.options.tagAttributes)
                    for (var r in this.options.tagAttributes) i.setAttribute(r, this.options.tagAttributes[r]);
                i.src = e
            }, n
        }), define("skbJet/component/pixiResourceLoader/PixiSpriteSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader", "com/pixijs/pixi"], function(e, t, n) {
            function i(e) {
                e = e || {}, e.fileExtFilterList = ["json"], this._initOptions("sprites", e)
            }
            return i.prototype = new t, i.prototype._load = i.prototype.load, i.prototype.load = function(t, i) {
                this.loader = new n.loaders.Loader, this.loader.defaultQueryString = "?" === i.queryStr.charAt(0) ? i.queryStr.replace("?", "") : i.queryStr, i.queryStr = null, this._load(t, i);
                var r = this;
                this.loader.on("load", function(t, i) {
                    if (i.textures) {
                        for (var o in i.textures) {
                            var a = e.getFileNameWithoutExt(o);
                            n.Texture.addToCache(i.textures[o], a)
                        }
                        r._count.current++, r.options.onFileLoaded()
                    }
                }), this.loader.once("complete", function() {
                    r._count.current === r._count.total && (r._count.complete = !0, r.options.onFileLoaded())
                }), this.loader.on("error", this.options.onLoadFailed), this.loader.load()
            }, i.prototype._doLoadFile = function(t) {
                var n = e.getFileNameWithoutExt(t);
                this.loader.add(n, t)
            }, i
        }), define("skbJet/component/pixiResourceLoader/PixiImageSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader", "com/pixijs/pixi"], function(e, t, n) {
            function i(e) {
                this._initOptions("images", e)
            }
            return i.prototype = new t, i.prototype._load = i.prototype.load, i.prototype.load = function(e, t) {
                this.loader = new n.loaders.Loader, this._load(e, t);
                var i = this;
                this.loader.on("load", function(e, t) {
                    n.Texture.addToCache(t.texture, t.name), i._count.current++, i.options.onFileLoaded()
                }), this.loader.once("complete", function() {
                    i._count.current === i._count.total && (i._count.complete = !0, i.options.onFileLoaded())
                }), this.loader.on("error", this.options.onLoadFailed), this.loader.load()
            }, i.prototype._doLoadFile = function(t) {
                var n = e.getFileNameWithoutExt(t);
                this.loader.add(n, t)
            }, i
        }), define("skbJet/component/pixiResourceLoader/pixiResourceLoader", ["skbJet/component/gameMsgBus/GameMsgBus", "com/pixijs/pixi", "skbJet/component/resourceLoader/resourceLib", "skbJet/component/resourceLoader/ResourceLoader", "skbJet/component/resourceLoader/subLoaders/TextFilesSubLoader", "skbJet/component/resourceLoader/subLoaders/HtmlTagSubLoader", "skbJet/component/pixiResourceLoader/PixiSpriteSubLoader", "skbJet/component/pixiResourceLoader/PixiImageSubLoader"], function(e, t, n, i, r, o, a, s) {
            function u() {
                d = h.currentProgress(), d.complete && (p.i18n = n.i18n.game || {}, p.i18n.helpHTML = n.i18n.help, p.i18n.paytableHTML = n.i18n.paytable), e.publish("resourceLoader.loadProgress", {
                    total: d.total,
                    current: d.current,
                    complete: d.complete
                })
            }

            function l() {
                e.publish("toPlatform", {
                    channel: "Kernel",
                    topic: "LoadProgress",
                    data: {
                        id: "game",
                        items: d.total,
                        current: d.current,
                        complete: !1,
                        fail: !0
                    }
                })
            }

            function c(e) {
                if (t.utils.TextureCache[e]) {
                    var n = t.utils.TextureCache[e],
                        i = new t.CanvasRenderer(n.orig.width, n.orig.height, {
                            transparent: !0
                        }),
                        r = new t.Sprite(n);
                    m.addChild(r), i.render(m);
                    var o = new Image;
                    o.src = i.view.toDataURL(), f[e] = o, m.removeChild(r)
                }
            }
            n.sounds = n.sounds || {}, n.images = n.images || {}, n.layout = n.layout || {}, n.sprites = n.sprites || {}, n.i18n = n.i18n || {};
            var h, p = {
                    audio: n.sounds,
                    images: n.images,
                    layout: n.layout,
                    sprites: n.sprites,
                    i18n: null
                },
                d = {};
            p.load = function(e, t, n) {
                i.initDefault(e, t, n), h = i.getDefault(), h.addSubLoader("images", new s({
                    type: "images"
                })), h.addSubLoader("sprites", new a({
                    type: "sprites"
                }));
                var c = new r({
                    type: "i18n",
                    parseJson: !0
                });
                c.origLoad = c.load, c.load = function(e, t) {
                    for (var n in e) n.match(/splash\.json$/) && delete e[n];
                    this.origLoad(e, t)
                }, h.addSubLoader("i18n", c), h.addSubLoader("layout", new o({
                    tagName: "script",
                    tagAttributes: {
                        type: "text/javascript"
                    },
                    fileExtFilterList: ["js"],
                    parentTag: document.getElementsByTagName("head")[0]
                })), h.load(u, l)
            };
            var f = {},
                m = new t.Container;
            return p.getImgObj = function(e) {
                return f[e] || c(e), f[e]
            }, p
        }), define("skbJet/componentManchester/webfontLoader/FontSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader"], function(e, t) {
            function n(e) {
                e = e || {}, e.fileExtFilterList = ["json"], e.checkInterval = e.checkInterval || 250, e.timeout = e.timeout || 3e4, e.testString = e.testString || "abcdefghijklmnopqrstuvwxyz 1234567890_-", this._initOptions("fonts", e), this._testCanvas = document.createElement("canvas"), this._testCtx = this._testCanvas.getContext("2d")
            }
            return n.prototype = new t, n.prototype._doLoadFile = function(t, n, i) {
                var r = {
                        woff: "woff",
                        woff2: "woff2",
                        ttf: "truetype"
                    },
                    o = ["woff2", "woff", "ttf"],
                    a = this._testCtx,
                    s = this.options;
                e.httpGetJson(t, function(u) {
                    function l() {
                        g += 1, a.font = f + u.family + ", sans-serif", a.measureText(s.testString).width !== m ? n() : g > s.timeout / s.checkInterval ? i() : setTimeout(l, s.checkInterval)
                    }
                    var c = e.getParentFolder(t);
                    "string" == typeof u.files && (u.files = [u.files]), u.files.sort(function(t, n) {
                        return o.indexOf(e.getFileExt(t, !0)) > o.indexOf(e.getFileExt(n, !0))
                    });
                    var h = u.files.map(function(t) {
                        var n = "url(" + c + t + ") ",
                            i = e.getFileExt(t, !0);
                        return n += 'format("' + r[i] + '")'
                    });
                    if ("FontFace" in window) {
                        var p = new window.FontFace(u.family, h[0], u);
                        document.fonts.add(p), p.load().then(function() {
                            n()
                        }).catch(function() {
                            i()
                        })
                    } else {
                        var d = "@font-face {";
                        d += 'font-family: "' + u.family + '";', d += "src: " + h.join(", ") + ";", d += "font-weight: " + (u.weight || "normal") + ";", d += "font-style: " + (u.style || "normal") + ";", d += "font-display: block; }";
                        var f = (u.style || "normal") + " " + (u.weight || "normal") + " 30px ";
                        a.font = f + "sans-serif";
                        var m = a.measureText(s.testString).width,
                            _ = document.createElement("style");
                        document.head.appendChild(_), _.sheet.insertRule(d, 0);
                        var g = 0;
                        l()
                    }
                }, i)
            }, n
        }), define("skbJet/component/howlerAudioPlayer/HowlerAudioSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader", "skbJet/component/resourceLoader/resourceLib", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/howlerAudioPlayer/HowlerChannel", "skbJet/component/howlerAudioPlayer/Html5Channel", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer"], function(e, t, n, i, r, o, a) {
            function s(e) {
                e = e || {}, e.fileExtFilterList = ["json"], this._initOptions("sounds", e)
            }
            return s.prototype = new t, s.prototype._doLoadFile = function(t, n, i) {
                var s = this.options.queryStr;
                e.httpGetJson(t, function(u) {
                    var l = null;
                    l = window.AudioContext || window.webkitAudioContext ? new r : new o;
                    for (var c = e.getFileNameWithoutExt(t), h = e.getParentFolder(t), p = 0; p < u.urls.length; p++) u.urls[p] = h + u.urls[p] + s;
                    l.load(u, n, i);
                    var d = c.match(/\d+$/);
                    d && d[0] && a._addChannel(l, parseInt(d[0]))
                }, i)
            }, s
        }), define("game/loadController", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/resourceLoader/ResourceLoader", "skbJet/componentManchester/webfontLoader/FontSubLoader", "skbJet/component/howlerAudioPlayer/HowlerAudioSubLoader", "skbJet/component/gameMsgBus/GameMsgBus", "com/pixijs/pixi"], function(e) {
            function t(e) {
                s.publish("toPlatform", {
                    channel: "Kernel",
                    topic: "LoadProgress",
                    data: {
                        id: "game",
                        items: e.total + 1,
                        current: e.current,
                        complete: !1
                    }
                }), e.complete && (navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform) && !window.MSStream && (h.settings.PRECISION_FRAGMENT = h.PRECISION.HIGH), n.init(null, null, null), n.showScene("_GameScene"), n.lib._GameScene.pixiContainer.alpha = 0, s.publish("toPlatform", {
                    channel: "Kernel",
                    topic: "LoadProgress",
                    data: {
                        id: "game",
                        items: e.total + 1,
                        current: e.total + 1,
                        complete: !0
                    }
                }))
            }
            var n = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                i = e("skbJet/component/pixiResourceLoader/pixiResourceLoader"),
                r = e("skbJet/component/resourceLoader/ResourceLoader"),
                o = e("skbJet/componentManchester/webfontLoader/FontSubLoader"),
                a = e("skbJet/component/howlerAudioPlayer/HowlerAudioSubLoader"),
                s = e("skbJet/component/gameMsgBus/GameMsgBus"),
                u = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                l = window.location.search.match(/&?language=([^&]+)&?/)[1],
                c = window.location.search.match(/&?skincode=([^&]+)&?/)[1],
                h = e("com/pixijs/pixi");
            i.load("assetPacks/" + u, l, c), s.subscribe("resourceLoader.loadProgress", t), r.getDefault().addSubLoader("sounds", new a({
                type: "sounds"
            })), r.getDefault().addSubLoader("fonts", new o)
        }), define("game/gameSizeController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(e, t) {
            function n() {
                var e = Number(window.innerWidth),
                    n = Number(window.innerHeight);
                if (document.documentElement.style.width = e + "px", document.documentElement.style.height = n + "px", document.body.style.width = e + "px", document.body.style.height = n + "px", o.style.width = e + "px", o.style.height = n + "px", a) {
                    var i = t.animMap._landscape2portrait;
                    e < n ? (t.setSize(s[0], s[1]), i.updateStyleToTime(i.maxTime)) : (t.setSize(u[0], u[1]), i.updateStyleToTime(0))
                }
                t.fitSize(e, n)
            }

            function i() {
                if (a = a && !!t.animMap._landscape2portraitTemplate) {
                    for (var e = [], i = t.animMap._landscape2portraitTemplate._spritesNameList, r = 0; r < i.length; r++) {
                        var s = i[r].match(/^_portrait_(.*)$/);
                        s ? e.push("_" + s[1]) : e.push(i[r])
                    }
                    t.animMap._landscape2portraitTemplate.clone(e, "_landscape2portrait")
                }
                o.width = 2 * window._gladData._width, o.height = 2 * window._gladData._height, window.addEventListener("resize", n), n()
            }

            function r(e) {
                "INT" !== e.serverConfig.channel && "STD" === e.serverConfig.presenttype && (a = !0)
            }
            var o = document.getElementById("game"),
                a = !1,
                s = [540, 864],
                u = [960, 540];
            return {
                onSystemInit: r,
                onBeforeShowStage: i
            }
        }), define("game/textSetup", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "com/pixijs/pixi"], function(e) {
            function t() {
                var e = S.i18n.Game,
                    t = w.lib;
                i(t._linesValue), i(t._linesText, e.selectorPatternsBet), i(t._lineBetValue), i(t._lineBetText, e.selectorBetPerPattern), i(t._totalBetValue), i(t._totalBetText, e.consoleBet), i(t._winValue), i(t._winText, e.consoleWin), i(t._balanceValue), i(t._balanceText, e.consoleBalance), i(t._promoFreeSpinsValue), i(t._promoFreeSpinsText, e.promoFreeSpin), "desktop" !== C && (i(t._betPromptText, e.betPrompt), i(t._totalBetValueDup), i(t._totalBetTextDup, e.consoleBet)), i(t._spinsRemainingValue), i(t._spinsRemainingText, e.consoleBonusCount), i(t._bonusWinValue), i(t._bonusWinText, e.consoleWin), i(t._bonusTotalWinValue), i(t._bonusTotalWinText, e.consoleBonus), i(t._multiwaysBadgeValueText, e.waysToWin), i(t._multiwaysBadgeTextText, e.ways), i(t._multiwaysBadgeValueTextDuplicate, e.waysToWin), i(t._multiwaysBadgeTextTextDuplicate, e.ways), i(t._multiwaysBadgeValueTextFS, e.waysToWin), i(t._multiwaysBadgeTextTextFS, e.ways), i(t._multiwaysBadgeValueTextDuplicateFS, e.waysToWin), i(t._multiwaysBadgeTextTextDuplicateFS, e.ways), r(), n()
            }

            function n() {
                w.lib._multiwaysBadgeValueText.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeValueText.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeValueText.pixiContainer.$text.style._dropShadowBlur = 5, w.lib._multiwaysBadgeValueTextDuplicate.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeValueTextDuplicate.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeValueTextDuplicate.pixiContainer.$text.style._dropShadowBlur = 5, w.lib._multiwaysBadgeTextText.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeTextText.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeTextText.pixiContainer.$text.style._dropShadowBlur = 5, w.lib._multiwaysBadgeTextTextDuplicate.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeTextTextDuplicate.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeTextTextDuplicate.pixiContainer.$text.style._dropShadowBlur = 5, w.lib._multiwaysBadgeValueTextFS.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeValueTextFS.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeValueTextFS.pixiContainer.$text.style._dropShadowBlur = 5, w.lib._multiwaysBadgeValueTextDuplicateFS.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeValueTextDuplicateFS.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeValueTextDuplicateFS.pixiContainer.$text.style._dropShadowBlur = 5, w.lib._multiwaysBadgeTextTextFS.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeTextTextFS.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeTextTextFS.pixiContainer.$text.style._dropShadowBlur = 5, w.lib._multiwaysBadgeTextTextDuplicateFS.pixiContainer.$text.style._dropShadow = !0, w.lib._multiwaysBadgeTextTextDuplicateFS.pixiContainer.$text.style._dropShadowDistance = 2, w.lib._multiwaysBadgeTextTextDuplicateFS.pixiContainer.$text.style._dropShadowBlur = 5
            }

            function i(e, t) {
                e.autoFontFitText = !0, e.setText(t || " "), e.pixiContainer.$text.style.padding = 5
            }

            function r() {
                m = new P.Text(S.i18n.Game.bigWin, {
                    dropShadow: !0,
                    dropShadowAngle: .6,
                    dropShadowBlur: 20,
                    dropShadowDistance: 3,
                    fill: ["#fee927", "#e67300"],
                    fontFamily: "Colus",
                    fontSize: g,
                    align: "center",
                    stroke: "#551352",
                    strokeThickness: x,
                    lineJoin: "bevel",
                    lineHeight: g - 5
                }), _ = new P.Text("£0.00", {
                    fontFamily: "Oswald",
                    weight: "bold",
                    stroke: "#000000",
                    strokeThickness: 2,
                    fontSize: g,
                    fill: 16777215,
                    align: "center",
                    lineJoin: "bevel"
                }), m.anchor.x = .5, m.anchor.y = .5, m.y = w.lib._bigWinPlaqueText.pixiContainer.y + w.lib._bigWinPlaque._currentStyle._top, m.x = w.getSize().width / 2, _.anchor.x = .5, _.anchor.y = .5, _.y = w.lib._bigWinPlaqueValue.pixiContainer.y + w.lib._bigWinPlaque._currentStyle._top, _.x = w.getSize().width / 2, w.lib._gameLayer.pixiContainer.addChild(m), w.lib._gameLayer.pixiContainer.addChild(_), w.lib._bigWinText = m, w.lib._bigWinValue = _, w.lib._bigWinText.visible = !1, w.lib._bigWinText.alpha = 0, w.lib._bigWinValue.visible = !1, w.lib._bigWinValue.alpha = 0
            }

            function o(e) {
                w.lib._FSTransText.text = S.i18n.Game.bonusAwardedIntro.replace("{0}", e.response.FreeSpinOutcome.Awarded)
            }

            function a(e) {
                w.lib._FSTransText.text = 0 === e ? S.i18n.Game.freeSpinCompleteNoWin : S.i18n.Game.freeSpinCompleteWin + "<value>" + e + "</value>"
            }

            function s(e) {
                w.lib._bonusRetrigText.text = S.i18n.Game.bonusRetrigger.replace("{0}", e.response.FreeSpinOutcome.Awarded)
            }

            function u(e) {
                var t = S.i18n.Game.capFreeSpinNo;
                "0" !== e.response.FreeSpinOutcome.Awarded && (t = "<value>" + e.response.FreeSpinOutcome.Awarded + "</value>"), w.lib._capRetrigText.text = S.i18n.Game.capFreeSpin.replace("{0}", e.response.FreeSpinOutcome.TotalAwarded).replace("{1}", t)
            }

            function l(e) {
                var t = S.i18n.Game.capAward.replace("{0}", e);
                w.lib._awardCapText.text = t
            }

            function c(e, t) {
                return e ? t + S.i18n.Game.selectorLines + S.i18n.Game.selectorLinesMulti : t + S.i18n.Game.selectorLines
            }

            function h() {
                return S.i18n.Game.selectorPatternsBet
            }

            function p() {
                w.lib._bigWinText.setText(S.i18n.Game.bigWin)
            }

            function d() {
                w.lib._bigWinText.setText(S.i18n.Game.hugeWin)
            }

            function f() {
                w.lib._bigWinText.setText(S.i18n.Game.massiveWin)
            }
            var m, _, g, y, v, b, x, T, w = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                S = e("skbJet/component/pixiResourceLoader/pixiResourceLoader"),
                P = e("com/pixijs/pixi"),
                C = window.location.search.match(/&?assetPack=([^&]+)&?/)[1];
            switch (C) {
                case "desktop":
                    g = 100,
                        y = 130, v = 50, b = 62, x = 10, T = 5;
                    break;
                case "tablet":
                    g = 100, y = 110, v = 50, b = 62, x = 10, T = 5;
                    break;
                case "mobile":
                    g = 69, y = 65, v = 40, b = 55, x = 10, T = 5;
                    break;
                case "desktopmini":
                    g = 40, y = 35, v = 20, b = 25, x = 6, T = 3
            }
            return {
                init: t,
                bonusTransitionText: o,
                bonusRetriggerText: s,
                capRetriggerText: u,
                awardCapBGText: l,
                setBigWin: p,
                setHugeWin: d,
                setMassiveWin: f,
                baseGameTransitionText: a,
                getLineMeterText: c,
                getLinesText: h,
                defaultText: {
                    align: "center",
                    fill: ["#fee927", "#e09f08"],
                    fontFamily: "Colus",
                    fontSize: g,
                    stroke: "#551352",
                    strokeThickness: x,
                    lineJoin: "bevel"
                },
                value: {
                    align: "center",
                    fill: ["#c7aaff", "#AD82FF"],
                    fontSize: y,
                    fontFamily: "Oswald",
                    stroke: "#551352",
                    strokeThickness: x,
                    lineJoin: "bevel"
                },
                defaultTextSM: {
                    align: "center",
                    fill: "#f5cb1e",
                    fontSize: v,
                    valign: "middle",
                    fontFamily: "Colus",
                    dropShadow: !0,
                    dropShadowBlur: 25,
                    dropShadowDistance: 4,
                    dropShadowAlpha: 1,
                    strokeThickness: T,
                    stroke: "#522557",
                    lineJoin: "bevel"
                },
                valueSM: {
                    align: "center",
                    fill: "#ff7800",
                    fontSize: b,
                    valign: "middle",
                    fontFamily: "Oswald",
                    dropShadow: !0,
                    dropShadowBlur: 25,
                    dropShadowDistance: 4,
                    dropShadowAlpha: 1,
                    strokeThickness: T,
                    stroke: "#3c0000",
                    lineJoin: "bevel"
                }
            }
        }),
        function(e, t) {
            "use strict";
            var n = {},
                i = e.document,
                r = e.GreenSockGlobals = e.GreenSockGlobals || e;
            if (!r.TweenLite) {
                var o, a, s, u, l, c = function(e) {
                        var t, n = e.split("."),
                            i = r;
                        for (t = 0; t < n.length; t++) i[n[t]] = i = i[n[t]] || {};
                        return i
                    },
                    h = c("com.greensock"),
                    p = function(e) {
                        var t, n = [],
                            i = e.length;
                        for (t = 0; t !== i; n.push(e[t++]));
                        return n
                    },
                    d = function() {},
                    f = function() {
                        var e = Object.prototype.toString,
                            t = e.call([]);
                        return function(n) {
                            return null != n && (n instanceof Array || "object" == typeof n && !!n.push && e.call(n) === t)
                        }
                    }(),
                    m = {},
                    _ = function(t, i, o, a) {
                        this.sc = m[t] ? m[t].sc : [], m[t] = this, this.gsClass = null, this.func = o;
                        var s = [];
                        this.check = function(u) {
                            for (var l, h, p, d, f = i.length, g = f; --f > -1;)(l = m[i[f]] || new _(i[f], [])).gsClass ? (s[f] = l.gsClass, g--) : u && l.sc.push(this);
                            if (0 === g && o) {
                                if (h = ("com.greensock." + t).split("."), p = h.pop(), d = c(h.join("."))[p] = this.gsClass = o.apply(o, s), a)
                                    if (r[p] = n[p] = d, "undefined" != typeof module && module.exports)
                                        if ("TweenLite" === t) {
                                            module.exports = n.TweenLite = d;
                                            for (f in n) d[f] = n[f]
                                        } else n.TweenLite && (n.TweenLite[p] = d);
                                else "function" == typeof define && define.amd && define((e.GreenSockAMDPath ? e.GreenSockAMDPath + "/" : "") + t.split(".").pop(), [], function() {
                                    return d
                                });
                                for (f = 0; f < this.sc.length; f++) this.sc[f].check()
                            }
                        }, this.check(!0)
                    },
                    g = e._gsDefine = function(e, t, n, i) {
                        return new _(e, t, n, i)
                    },
                    y = h._class = function(e, t, n) {
                        return t = t || function() {}, g(e, [], function() {
                            return t
                        }, n), t
                    };
                g.globals = r;
                var v = [0, 0, 1, 1],
                    b = y("easing.Ease", function(e, t, n, i) {
                        this._func = e, this._type = n || 0, this._power = i || 0, this._params = t ? v.concat(t) : v
                    }, !0),
                    x = b.map = {},
                    T = b.register = function(e, t, n, i) {
                        for (var r, o, a, s, u = t.split(","), l = u.length, c = (n || "easeIn,easeOut,easeInOut").split(","); --l > -1;)
                            for (o = u[l], r = i ? y("easing." + o, null, !0) : h.easing[o] || {}, a = c.length; --a > -1;) s = c[a], x[o + "." + s] = x[s + o] = r[s] = e.getRatio ? e : e[s] || new e
                    };
                for (s = b.prototype, s._calcEnd = !1, s.getRatio = function(e) {
                        if (this._func) return this._params[0] = e, this._func.apply(null, this._params);
                        var t = this._type,
                            n = this._power,
                            i = 1 === t ? 1 - e : 2 === t ? e : e < .5 ? 2 * e : 2 * (1 - e);
                        return 1 === n ? i *= i : 2 === n ? i *= i * i : 3 === n ? i *= i * i * i : 4 === n && (i *= i * i * i * i), 1 === t ? 1 - i : 2 === t ? i : e < .5 ? i / 2 : 1 - i / 2
                    }, o = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"], a = o.length; --a > -1;) s = o[a] + ",Power" + a, T(new b(null, null, 1, a), s, "easeOut", !0), T(new b(null, null, 2, a), s, "easeIn" + (0 === a ? ",easeNone" : "")), T(new b(null, null, 3, a), s, "easeInOut");
                x.linear = h.easing.Linear.easeIn, x.swing = h.easing.Quad.easeInOut;
                var w = y("events.EventDispatcher", function(e) {
                    this._listeners = {}, this._eventTarget = e || this
                });
                s = w.prototype, s.addEventListener = function(e, t, n, i, r) {
                    r = r || 0;
                    var o, a, s = this._listeners[e],
                        c = 0;
                    for (this !== u || l || u.wake(), null == s && (this._listeners[e] = s = []), a = s.length; --a > -1;) o = s[a], o.c === t && o.s === n ? s.splice(a, 1) : 0 === c && o.pr < r && (c = a + 1);
                    s.splice(c, 0, {
                        c: t,
                        s: n,
                        up: i,
                        pr: r
                    })
                }, s.removeEventListener = function(e, t) {
                    var n, i = this._listeners[e];
                    if (i)
                        for (n = i.length; --n > -1;)
                            if (i[n].c === t) return void i.splice(n, 1)
                }, s.dispatchEvent = function(e) {
                    var t, n, i, r = this._listeners[e];
                    if (r)
                        for (t = r.length, t > 1 && (r = r.slice(0)), n = this._eventTarget; --t > -1;)(i = r[t]) && (i.up ? i.c.call(i.s || n, {
                            type: e,
                            target: n
                        }) : i.c.call(i.s || n))
                };
                var S = e.requestAnimationFrame,
                    P = e.cancelAnimationFrame,
                    C = Date.now || function() {
                        return (new Date).getTime()
                    },
                    E = C();
                for (o = ["ms", "moz", "webkit", "o"], a = o.length; --a > -1 && !S;) S = e[o[a] + "RequestAnimationFrame"], P = e[o[a] + "CancelAnimationFrame"] || e[o[a] + "CancelRequestAnimationFrame"];
                y("Ticker", function(e, t) {
                    var n, r, o, a, s, c = this,
                        h = C(),
                        p = !(!1 === t || !S) && "auto",
                        f = 500,
                        m = 33,
                        _ = function(e) {
                            var t, i, u = C() - E;
                            u > f && (h += u - m), E += u, c.time = (E - h) / 1e3, t = c.time - s, (!n || t > 0 || !0 === e) && (c.frame++, s += t + (t >= a ? .004 : a - t), i = !0), !0 !== e && (o = r(_)), i && c.dispatchEvent("tick")
                        };
                    w.call(c), c.time = c.frame = 0, c.tick = function() {
                        _(!0)
                    }, c.lagSmoothing = function(e, t) {
                        f = e || 1e10, m = Math.min(t, f, 0)
                    }, c.sleep = function() {
                        null != o && (p && P ? P(o) : clearTimeout(o), r = d, o = null, c === u && (l = !1))
                    }, c.wake = function(e) {
                        null !== o ? c.sleep() : e ? h += -E + (E = C()) : c.frame > 10 && (E = C() - f + 5), r = 0 === n ? d : p && S ? S : function(e) {
                            return setTimeout(e, 1e3 * (s - c.time) + 1 | 0)
                        }, c === u && (l = !0), _(2)
                    }, c.fps = function(e) {
                        if (!arguments.length) return n;
                        n = e, a = 1 / (n || 60), s = this.time + a, c.wake()
                    }, c.useRAF = function(e) {
                        if (!arguments.length) return p;
                        c.sleep(), p = e, c.fps(n)
                    }, c.fps(e), setTimeout(function() {
                        "auto" === p && c.frame < 5 && "hidden" !== i.visibilityState && c.useRAF(!1)
                    }, 1500)
                }), s = h.Ticker.prototype = new h.events.EventDispatcher, s.constructor = h.Ticker;
                var M = y("core.Animation", function(e, t) {
                    if (this.vars = t = t || {}, this._duration = this._totalDuration = e || 0, this._delay = Number(t.delay) || 0, this._timeScale = 1, this._active = !0 === t.immediateRender, this.data = t.data, this._reversed = !0 === t.reversed, q) {
                        l || u.wake();
                        var n = this.vars.useFrames ? J : q;
                        n.add(this, n._time), this.vars.paused && this.paused(!0)
                    }
                });
                u = M.ticker = new h.Ticker, s = M.prototype, s._dirty = s._gc = s._initted = s._paused = !1, s._totalTime = s._time = 0, s._rawPrevTime = -1, s._next = s._last = s._onUpdate = s._timeline = s.timeline = null, s._paused = !1;
                var O = function() {
                    l && C() - E > 2e3 && "hidden" !== i.visibilityState && u.wake();
                    var e = setTimeout(O, 2e3);
                    e.unref && e.unref()
                };
                O(), s.play = function(e, t) {
                    return null != e && this.seek(e, t), this.reversed(!1).paused(!1)
                }, s.pause = function(e, t) {
                    return null != e && this.seek(e, t), this.paused(!0)
                }, s.resume = function(e, t) {
                    return null != e && this.seek(e, t), this.paused(!1)
                }, s.seek = function(e, t) {
                    return this.totalTime(Number(e), !1 !== t)
                }, s.restart = function(e, t) {
                    return this.reversed(!1).paused(!1).totalTime(e ? -this._delay : 0, !1 !== t, !0)
                }, s.reverse = function(e, t) {
                    return null != e && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1)
                }, s.render = function(e, t, n) {}, s.invalidate = function() {
                    return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, !this._gc && this.timeline || this._enabled(!0), this
                }, s.isActive = function() {
                    var e, t = this._timeline,
                        n = this._startTime;
                    return !t || !this._gc && !this._paused && t.isActive() && (e = t.rawTime(!0)) >= n && e < n + this.totalDuration() / this._timeScale - 1e-7
                }, s._enabled = function(e, t) {
                    return l || u.wake(), this._gc = !e, this._active = this.isActive(), !0 !== t && (e && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !e && this.timeline && this._timeline._remove(this, !0)), !1
                }, s._kill = function(e, t) {
                    return this._enabled(!1, !1)
                }, s.kill = function(e, t) {
                    return this._kill(e, t), this
                }, s._uncache = function(e) {
                    for (var t = e ? this : this.timeline; t;) t._dirty = !0, t = t.timeline;
                    return this
                }, s._swapSelfInParams = function(e) {
                    for (var t = e.length, n = e.concat(); --t > -1;) "{self}" === e[t] && (n[t] = this);
                    return n
                }, s._callback = function(e) {
                    var t = this.vars,
                        n = t[e],
                        i = t[e + "Params"],
                        r = t[e + "Scope"] || t.callbackScope || this;
                    switch (i ? i.length : 0) {
                        case 0:
                            n.call(r);
                            break;
                        case 1:
                            n.call(r, i[0]);
                            break;
                        case 2:
                            n.call(r, i[0], i[1]);
                            break;
                        default:
                            n.apply(r, i)
                    }
                }, s.eventCallback = function(e, t, n, i) {
                    if ("on" === (e || "").substr(0, 2)) {
                        var r = this.vars;
                        if (1 === arguments.length) return r[e];
                        null == t ? delete r[e] : (r[e] = t, r[e + "Params"] = f(n) && -1 !== n.join("").indexOf("{self}") ? this._swapSelfInParams(n) : n, r[e + "Scope"] = i), "onUpdate" === e && (this._onUpdate = t)
                    }
                    return this
                }, s.delay = function(e) {
                    return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + e - this._delay), this._delay = e, this) : this._delay
                }, s.duration = function(e) {
                    return arguments.length ? (this._duration = this._totalDuration = e, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== e && this.totalTime(this._totalTime * (e / this._duration), !0), this) : (this._dirty = !1, this._duration)
                }, s.totalDuration = function(e) {
                    return this._dirty = !1, arguments.length ? this.duration(e) : this._totalDuration
                }, s.time = function(e, t) {
                    return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(e > this._duration ? this._duration : e, t)) : this._time
                }, s.totalTime = function(e, t, n) {
                    if (l || u.wake(), !arguments.length) return this._totalTime;
                    if (this._timeline) {
                        if (e < 0 && !n && (e += this.totalDuration()), this._timeline.smoothChildTiming) {
                            this._dirty && this.totalDuration();
                            var i = this._totalDuration,
                                r = this._timeline;
                            if (e > i && !n && (e = i), this._startTime = (this._paused ? this._pauseTime : r._time) - (this._reversed ? i - e : e) / this._timeScale, r._dirty || this._uncache(!1), r._timeline)
                                for (; r._timeline;) r._timeline._time !== (r._startTime + r._totalTime) / r._timeScale && r.totalTime(r._totalTime, !0), r = r._timeline
                        }
                        this._gc && this._enabled(!0, !1), this._totalTime === e && 0 !== this._duration || (L.length && $(), this.render(e, t, !1), L.length && $())
                    }
                    return this
                }, s.progress = s.totalProgress = function(e, t) {
                    var n = this.duration();
                    return arguments.length ? this.totalTime(n * e, t) : n ? this._time / n : this.ratio
                }, s.startTime = function(e) {
                    return arguments.length ? (e !== this._startTime && (this._startTime = e, this.timeline && this.timeline._sortChildren && this.timeline.add(this, e - this._delay)), this) : this._startTime
                }, s.endTime = function(e) {
                    return this._startTime + (0 != e ? this.totalDuration() : this.duration()) / this._timeScale
                }, s.timeScale = function(e) {
                    if (!arguments.length) return this._timeScale;
                    if (e = e || 1e-10, this._timeline && this._timeline.smoothChildTiming) {
                        var t = this._pauseTime,
                            n = t || 0 === t ? t : this._timeline.totalTime();
                        this._startTime = n - (n - this._startTime) * this._timeScale / e
                    }
                    return this._timeScale = e, this._uncache(!1)
                }, s.reversed = function(e) {
                    return arguments.length ? (e != this._reversed && (this._reversed = e, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed
                }, s.paused = function(e) {
                    if (!arguments.length) return this._paused;
                    var t, n, i = this._timeline;
                    return e != this._paused && i && (l || e || u.wake(), t = i.rawTime(), n = t - this._pauseTime, !e && i.smoothChildTiming && (this._startTime += n, this._uncache(!1)), this._pauseTime = e ? t : null, this._paused = e, this._active = this.isActive(), !e && 0 !== n && this._initted && this.duration() && (t = i.smoothChildTiming ? this._totalTime : (t - this._startTime) / this._timeScale, this.render(t, t === this._totalTime, !0))), this._gc && !e && this._enabled(!0, !1), this
                };
                var I = y("core.SimpleTimeline", function(e) {
                    M.call(this, 0, e), this.autoRemoveChildren = this.smoothChildTiming = !0
                });
                s = I.prototype = new M, s.constructor = I, s.kill()._gc = !1, s._first = s._last = s._recent = null, s._sortChildren = !1, s.add = s.insert = function(e, t, n, i) {
                    var r, o;
                    if (e._startTime = Number(t || 0) + e._delay, e._paused && this !== e._timeline && (e._pauseTime = e._startTime + (this.rawTime() - e._startTime) / e._timeScale), e.timeline && e.timeline._remove(e, !0), e.timeline = e._timeline = this, e._gc && e._enabled(!0, !0), r = this._last, this._sortChildren)
                        for (o = e._startTime; r && r._startTime > o;) r = r._prev;
                    return r ? (e._next = r._next, r._next = e) : (e._next = this._first, this._first = e), e._next ? e._next._prev = e : this._last = e, e._prev = r, this._recent = e, this._timeline && this._uncache(!0), this
                }, s._remove = function(e, t) {
                    return e.timeline === this && (t || e._enabled(!1, !0), e._prev ? e._prev._next = e._next : this._first === e && (this._first = e._next), e._next ? e._next._prev = e._prev : this._last === e && (this._last = e._prev), e._next = e._prev = e.timeline = null, e === this._recent && (this._recent = this._last), this._timeline && this._uncache(!0)), this
                }, s.render = function(e, t, n) {
                    var i, r = this._first;
                    for (this._totalTime = this._time = this._rawPrevTime = e; r;) i = r._next, (r._active || e >= r._startTime && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = i
                }, s.rawTime = function() {
                    return l || u.wake(), this._totalTime
                };
                var A = y("TweenLite", function(t, n, i) {
                        if (M.call(this, n, i), this.render = A.prototype.render, null == t) throw "Cannot tween a null target.";
                        this.target = t = "string" != typeof t ? t : A.selector(t) || t;
                        var r, o, a, s = t.jquery || t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType),
                            u = this.vars.overwrite;
                        if (this._overwrite = u = null == u ? V[A.defaultOverwrite] : "number" == typeof u ? u >> 0 : V[u], (s || t instanceof Array || t.push && f(t)) && "number" != typeof t[0])
                            for (this._targets = a = p(t), this._propLookup = [], this._siblings = [], r = 0; r < a.length; r++) o = a[r], o ? "string" != typeof o ? o.length && o !== e && o[0] && (o[0] === e || o[0].nodeType && o[0].style && !o.nodeType) ? (a.splice(r--, 1), this._targets = a = a.concat(p(o))) : (this._siblings[r] = K(o, this, !1), 1 === u && this._siblings[r].length > 1 && Z(o, this, null, 1, this._siblings[r])) : "string" == typeof(o = a[r--] = A.selector(o)) && a.splice(r + 1, 1) : a.splice(r--, 1);
                        else this._propLookup = {}, this._siblings = K(t, this, !1), 1 === u && this._siblings.length > 1 && Z(t, this, null, 1, this._siblings);
                        (this.vars.immediateRender || 0 === n && 0 === this._delay && !1 !== this.vars.immediateRender) && (this._time = -1e-10, this.render(Math.min(0, -this._delay)))
                    }, !0),
                    R = function(t) {
                        return t && t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType)
                    },
                    k = function(e, t) {
                        var n, i = {};
                        for (n in e) z[n] || n in t && "transform" !== n && "x" !== n && "y" !== n && "width" !== n && "height" !== n && "className" !== n && "border" !== n || !(!W[n] || W[n] && W[n]._autoCSS) || (i[n] = e[n], delete e[n]);
                        e.css = i
                    };
                s = A.prototype = new M, s.constructor = A, s.kill()._gc = !1, s.ratio = 0, s._firstPT = s._targets = s._overwrittenProps = s._startAt = null, s._notifyPluginsOfEnabled = s._lazy = !1, A.version = "1.20.1", A.defaultEase = s._ease = new b(null, null, 1, 1), A.defaultOverwrite = "auto", A.ticker = u, A.autoSleep = 120, A.lagSmoothing = function(e, t) {
                    u.lagSmoothing(e, t)
                }, A.selector = e.$ || e.jQuery || function(t) {
                    var n = e.$ || e.jQuery;
                    return n ? (A.selector = n, n(t)) : void 0 === i ? t : i.querySelectorAll ? i.querySelectorAll(t) : i.getElementById("#" === t.charAt(0) ? t.substr(1) : t)
                };
                var L = [],
                    D = {},
                    B = /(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,
                    F = /[\+-]=-?[\.\d]/,
                    N = function(e) {
                        for (var t, n = this._firstPT; n;) t = n.blob ? 1 === e && this.end ? this.end : e ? this.join("") : this.start : n.c * e + n.s, n.m ? t = n.m(t, this._target || n.t) : t < 1e-6 && t > -1e-6 && !n.blob && (t = 0), n.f ? n.fp ? n.t[n.p](n.fp, t) : n.t[n.p](t) : n.t[n.p] = t, n = n._next
                    },
                    j = function(e, t, n, i) {
                        var r, o, a, s, u, l, c, h = [],
                            p = 0,
                            d = "",
                            f = 0;
                        for (h.start = e, h.end = t, e = h[0] = e + "", t = h[1] = t + "", n && (n(h), e = h[0], t = h[1]), h.length = 0, r = e.match(B) || [], o = t.match(B) || [], i && (i._next = null, i.blob = 1, h._firstPT = h._applyPT = i), u = o.length, s = 0; s < u; s++) c = o[s], l = t.substr(p, t.indexOf(c, p) - p), d += l || !s ? l : ",", p += l.length, f ? f = (f + 1) % 5 : "rgba(" === l.substr(-5) && (f = 1), c === r[s] || r.length <= s ? d += c : (d && (h.push(d), d = ""), a = parseFloat(r[s]), h.push(a), h._firstPT = {
                            _next: h._firstPT,
                            t: h,
                            p: h.length - 1,
                            s: a,
                            c: ("=" === c.charAt(1) ? parseInt(c.charAt(0) + "1", 10) * parseFloat(c.substr(2)) : parseFloat(c) - a) || 0,
                            f: 0,
                            m: f && f < 4 ? Math.round : 0
                        }), p += c.length;
                        return d += t.substr(p), d && h.push(d), h.setRatio = N, F.test(t) && (h.end = 0), h
                    },
                    G = function(e, t, n, i, r, o, a, s, u) {
                        "function" == typeof i && (i = i(u || 0, e));
                        var l, c = typeof e[t],
                            h = "function" !== c ? "" : t.indexOf("set") || "function" != typeof e["get" + t.substr(3)] ? t : "get" + t.substr(3),
                            p = "get" !== n ? n : h ? a ? e[h](a) : e[h]() : e[t],
                            d = "string" == typeof i && "=" === i.charAt(1),
                            f = {
                                t: e,
                                p: t,
                                s: p,
                                f: "function" === c,
                                pg: 0,
                                n: r || t,
                                m: o ? "function" == typeof o ? o : Math.round : 0,
                                pr: 0,
                                c: d ? parseInt(i.charAt(0) + "1", 10) * parseFloat(i.substr(2)) : parseFloat(i) - p || 0
                            };
                        if (("number" != typeof p || "number" != typeof i && !d) && (a || isNaN(p) || !d && isNaN(i) || "boolean" == typeof p || "boolean" == typeof i ? (f.fp = a, l = j(p, d ? parseFloat(f.s) + f.c : i, s || A.defaultStringFilter, f), f = {
                                t: l,
                                p: "setRatio",
                                s: 0,
                                c: 1,
                                f: 2,
                                pg: 0,
                                n: r || t,
                                pr: 0,
                                m: 0
                            }) : (f.s = parseFloat(p), d || (f.c = parseFloat(i) - f.s || 0))), f.c) return (f._next = this._firstPT) && (f._next._prev = f), this._firstPT = f, f
                    },
                    U = A._internals = {
                        isArray: f,
                        isSelector: R,
                        lazyTweens: L,
                        blobDif: j
                    },
                    W = A._plugins = {},
                    H = U.tweenLookup = {},
                    X = 0,
                    z = U.reservedProps = {
                        ease: 1,
                        delay: 1,
                        overwrite: 1,
                        onComplete: 1,
                        onCompleteParams: 1,
                        onCompleteScope: 1,
                        useFrames: 1,
                        runBackwards: 1,
                        startAt: 1,
                        onUpdate: 1,
                        onUpdateParams: 1,
                        onUpdateScope: 1,
                        onStart: 1,
                        onStartParams: 1,
                        onStartScope: 1,
                        onReverseComplete: 1,
                        onReverseCompleteParams: 1,
                        onReverseCompleteScope: 1,
                        onRepeat: 1,
                        onRepeatParams: 1,
                        onRepeatScope: 1,
                        easeParams: 1,
                        yoyo: 1,
                        immediateRender: 1,
                        repeat: 1,
                        repeatDelay: 1,
                        data: 1,
                        paused: 1,
                        reversed: 1,
                        autoCSS: 1,
                        lazy: 1,
                        onOverwrite: 1,
                        callbackScope: 1,
                        stringFilter: 1,
                        id: 1,
                        yoyoEase: 1
                    },
                    V = {
                        none: 0,
                        all: 1,
                        auto: 2,
                        concurrent: 3,
                        allOnStart: 4,
                        preexisting: 5,
                        true: 1,
                        false: 0
                    },
                    J = M._rootFramesTimeline = new I,
                    q = M._rootTimeline = new I,
                    Y = 30,
                    $ = U.lazyRender = function() {
                        var e, t = L.length;
                        for (D = {}; --t > -1;)(e = L[t]) && !1 !== e._lazy && (e.render(e._lazy[0], e._lazy[1], !0), e._lazy = !1);
                        L.length = 0
                    };
                q._startTime = u.time, J._startTime = u.frame, q._active = J._active = !0, setTimeout($, 1), M._updateRoot = A.render = function() {
                    var e, t, n;
                    if (L.length && $(), q.render((u.time - q._startTime) * q._timeScale, !1, !1), J.render((u.frame - J._startTime) * J._timeScale, !1, !1), L.length && $(), u.frame >= Y) {
                        Y = u.frame + (parseInt(A.autoSleep, 10) || 120);
                        for (n in H) {
                            for (t = H[n].tweens, e = t.length; --e > -1;) t[e]._gc && t.splice(e, 1);
                            0 === t.length && delete H[n]
                        }
                        if ((!(n = q._first) || n._paused) && A.autoSleep && !J._first && 1 === u._listeners.tick.length) {
                            for (; n && n._paused;) n = n._next;
                            n || u.sleep()
                        }
                    }
                }, u.addEventListener("tick", M._updateRoot);
                var K = function(e, t, n) {
                        var i, r, o = e._gsTweenID;
                        if (H[o || (e._gsTweenID = o = "t" + X++)] || (H[o] = {
                                target: e,
                                tweens: []
                            }), t && (i = H[o].tweens, i[r = i.length] = t, n))
                            for (; --r > -1;) i[r] === t && i.splice(r, 1);
                        return H[o].tweens
                    },
                    Q = function(e, t, n, i) {
                        var r, o, a = e.vars.onOverwrite;
                        return a && (r = a(e, t, n, i)), a = A.onOverwrite, a && (o = a(e, t, n, i)), !1 !== r && !1 !== o
                    },
                    Z = function(e, t, n, i, r) {
                        var o, a, s, u;
                        if (1 === i || i >= 4) {
                            for (u = r.length, o = 0; o < u; o++)
                                if ((s = r[o]) !== t) s._gc || s._kill(null, e, t) && (a = !0);
                                else if (5 === i) break;
                            return a
                        }
                        var l, c = t._startTime + 1e-10,
                            h = [],
                            p = 0,
                            d = 0 === t._duration;
                        for (o = r.length; --o > -1;)(s = r[o]) === t || s._gc || s._paused || (s._timeline !== t._timeline ? (l = l || ee(t, 0, d), 0 === ee(s, l, d) && (h[p++] = s)) : s._startTime <= c && s._startTime + s.totalDuration() / s._timeScale > c && ((d || !s._initted) && c - s._startTime <= 2e-10 || (h[p++] = s)));
                        for (o = p; --o > -1;)
                            if (s = h[o], 2 === i && s._kill(n, e, t) && (a = !0), 2 !== i || !s._firstPT && s._initted) {
                                if (2 !== i && !Q(s, t)) continue;
                                s._enabled(!1, !1) && (a = !0)
                            }
                        return a
                    },
                    ee = function(e, t, n) {
                        for (var i = e._timeline, r = i._timeScale, o = e._startTime; i._timeline;) {
                            if (o += i._startTime, r *= i._timeScale, i._paused) return -100;
                            i = i._timeline
                        }
                        return o /= r, o > t ? o - t : n && o === t || !e._initted && o - t < 2e-10 ? 1e-10 : (o += e.totalDuration() / e._timeScale / r) > t + 1e-10 ? 0 : o - t - 1e-10
                    };
                s._init = function() {
                    var e, t, n, i, r, o, a = this.vars,
                        s = this._overwrittenProps,
                        u = this._duration,
                        l = !!a.immediateRender,
                        c = a.ease;
                    if (a.startAt) {
                        this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), r = {};
                        for (i in a.startAt) r[i] = a.startAt[i];
                        if (r.overwrite = !1, r.immediateRender = !0, r.lazy = l && !1 !== a.lazy, r.startAt = r.delay = null, r.onUpdate = a.onUpdate, r.onUpdateScope = a.onUpdateScope || a.callbackScope || this, this._startAt = A.to(this.target, 0, r), l)
                            if (this._time > 0) this._startAt = null;
                            else if (0 !== u) return
                    } else if (a.runBackwards && 0 !== u)
                        if (this._startAt) this._startAt.render(-1, !0), this._startAt.kill(), this._startAt = null;
                        else {
                            0 !== this._time && (l = !1), n = {};
                            for (i in a) z[i] && "autoCSS" !== i || (n[i] = a[i]);
                            if (n.overwrite = 0, n.data = "isFromStart", n.lazy = l && !1 !== a.lazy, n.immediateRender = l, this._startAt = A.to(this.target, 0, n), l) {
                                if (0 === this._time) return
                            } else this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null)
                        }
                    if (this._ease = c = c ? c instanceof b ? c : "function" == typeof c ? new b(c, a.easeParams) : x[c] || A.defaultEase : A.defaultEase, a.easeParams instanceof Array && c.config && (this._ease = c.config.apply(c, a.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
                        for (o = this._targets.length, e = 0; e < o; e++) this._initProps(this._targets[e], this._propLookup[e] = {}, this._siblings[e], s ? s[e] : null, e) && (t = !0);
                    else t = this._initProps(this.target, this._propLookup, this._siblings, s, 0);
                    if (t && A._onPluginEvent("_onInitAllProps", this), s && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), a.runBackwards)
                        for (n = this._firstPT; n;) n.s += n.c, n.c = -n.c, n = n._next;
                    this._onUpdate = a.onUpdate, this._initted = !0
                }, s._initProps = function(t, n, i, r, o) {
                    var a, s, u, l, c, h;
                    if (null == t) return !1;
                    D[t._gsTweenID] && $(), this.vars.css || t.style && t !== e && t.nodeType && W.css && !1 !== this.vars.autoCSS && k(this.vars, t);
                    for (a in this.vars)
                        if (h = this.vars[a], z[a]) h && (h instanceof Array || h.push && f(h)) && -1 !== h.join("").indexOf("{self}") && (this.vars[a] = h = this._swapSelfInParams(h, this));
                        else if (W[a] && (l = new W[a])._onInitTween(t, this.vars[a], this, o)) {
                        for (this._firstPT = c = {
                                _next: this._firstPT,
                                t: l,
                                p: "setRatio",
                                s: 0,
                                c: 1,
                                f: 1,
                                n: a,
                                pg: 1,
                                pr: l._priority,
                                m: 0
                            }, s = l._overwriteProps.length; --s > -1;) n[l._overwriteProps[s]] = this._firstPT;
                        (l._priority || l._onInitAllProps) && (u = !0), (l._onDisable || l._onEnable) && (this._notifyPluginsOfEnabled = !0), c._next && (c._next._prev = c)
                    } else n[a] = G.call(this, t, a, "get", h, a, 0, null, this.vars.stringFilter, o);
                    return r && this._kill(r, t) ? this._initProps(t, n, i, r, o) : this._overwrite > 1 && this._firstPT && i.length > 1 && Z(t, this, n, this._overwrite, i) ? (this._kill(n, t), this._initProps(t, n, i, r, o)) : (this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration) && (D[t._gsTweenID] = !0), u)
                }, s.render = function(e, t, n) {
                    var i, r, o, a, s = this._time,
                        u = this._duration,
                        l = this._rawPrevTime;
                    if (e >= u - 1e-7 && e >= 0) this._totalTime = this._time = u, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (i = !0, r = "onComplete", n = n || this._timeline.autoRemoveChildren), 0 === u && (this._initted || !this.vars.lazy || n) && (this._startTime === this._timeline._duration && (e = 0), (l < 0 || e <= 0 && e >= -1e-7 || 1e-10 === l && "isPause" !== this.data) && l !== e && (n = !0, l > 1e-10 && (r = "onReverseComplete")), this._rawPrevTime = a = !t || e || l === e ? e : 1e-10);
                    else if (e < 1e-7) this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== s || 0 === u && l > 0) && (r = "onReverseComplete", i = this._reversed), e < 0 && (this._active = !1, 0 === u && (this._initted || !this.vars.lazy || n) && (l >= 0 && (1e-10 !== l || "isPause" !== this.data) && (n = !0), this._rawPrevTime = a = !t || e || l === e ? e : 1e-10)), (!this._initted || this._startAt && this._startAt.progress()) && (n = !0);
                    else if (this._totalTime = this._time = e, this._easeType) {
                        var c = e / u,
                            h = this._easeType,
                            p = this._easePower;
                        (1 === h || 3 === h && c >= .5) && (c = 1 - c), 3 === h && (c *= 2), 1 === p ? c *= c : 2 === p ? c *= c * c : 3 === p ? c *= c * c * c : 4 === p && (c *= c * c * c * c), this.ratio = 1 === h ? 1 - c : 2 === h ? c : e / u < .5 ? c / 2 : 1 - c / 2
                    } else this.ratio = this._ease.getRatio(e / u);
                    if (this._time !== s || n) {
                        if (!this._initted) {
                            if (this._init(), !this._initted || this._gc) return;
                            if (!n && this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration)) return this._time = this._totalTime = s, this._rawPrevTime = l, L.push(this), void(this._lazy = [e, t]);
                            this._time && !i ? this.ratio = this._ease.getRatio(this._time / u) : i && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                        }
                        for (!1 !== this._lazy && (this._lazy = !1), this._active || !this._paused && this._time !== s && e >= 0 && (this._active = !0), 0 === s && (this._startAt && (e >= 0 ? this._startAt.render(e, t, n) : r || (r = "_dummyGS")), this.vars.onStart && (0 === this._time && 0 !== u || t || this._callback("onStart"))), o = this._firstPT; o;) o.f ? o.t[o.p](o.c * this.ratio + o.s) : o.t[o.p] = o.c * this.ratio + o.s, o = o._next;
                        this._onUpdate && (e < 0 && this._startAt && -1e-4 !== e && this._startAt.render(e, t, n), t || (this._time !== s || i || n) && this._callback("onUpdate")), r && (this._gc && !n || (e < 0 && this._startAt && !this._onUpdate && -1e-4 !== e && this._startAt.render(e, t, n), i && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[r] && this._callback(r), 0 === u && 1e-10 === this._rawPrevTime && 1e-10 !== a && (this._rawPrevTime = 0)))
                    }
                }, s._kill = function(e, t, n) {
                    if ("all" === e && (e = null), null == e && (null == t || t === this.target)) return this._lazy = !1, this._enabled(!1, !1);
                    t = "string" != typeof t ? t || this._targets || this.target : A.selector(t) || t;
                    var i, r, o, a, s, u, l, c, h, p = n && this._time && n._startTime === this._startTime && this._timeline === n._timeline;
                    if ((f(t) || R(t)) && "number" != typeof t[0])
                        for (i = t.length; --i > -1;) this._kill(e, t[i], n) && (u = !0);
                    else {
                        if (this._targets) {
                            for (i = this._targets.length; --i > -1;)
                                if (t === this._targets[i]) {
                                    s = this._propLookup[i] || {}, this._overwrittenProps = this._overwrittenProps || [], r = this._overwrittenProps[i] = e ? this._overwrittenProps[i] || {} : "all";
                                    break
                                }
                        } else {
                            if (t !== this.target) return !1;
                            s = this._propLookup, r = this._overwrittenProps = e ? this._overwrittenProps || {} : "all"
                        }
                        if (s) {
                            if (l = e || s, c = e !== r && "all" !== r && e !== s && ("object" != typeof e || !e._tempKill), n && (A.onOverwrite || this.vars.onOverwrite)) {
                                for (o in l) s[o] && (h || (h = []), h.push(o));
                                if ((h || !e) && !Q(this, n, t, h)) return !1
                            }
                            for (o in l)(a = s[o]) && (p && (a.f ? a.t[a.p](a.s) : a.t[a.p] = a.s, u = !0), a.pg && a.t._kill(l) && (u = !0), a.pg && 0 !== a.t._overwriteProps.length || (a._prev ? a._prev._next = a._next : a === this._firstPT && (this._firstPT = a._next), a._next && (a._next._prev = a._prev), a._next = a._prev = null), delete s[o]), c && (r[o] = 1);
                            !this._firstPT && this._initted && this._enabled(!1, !1)
                        }
                    }
                    return u
                }, s.invalidate = function() {
                    return this._notifyPluginsOfEnabled && A._onPluginEvent("_onDisable", this), this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], M.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -1e-10, this.render(Math.min(0, -this._delay))), this
                }, s._enabled = function(e, t) {
                    if (l || u.wake(), e && this._gc) {
                        var n, i = this._targets;
                        if (i)
                            for (n = i.length; --n > -1;) this._siblings[n] = K(i[n], this, !0);
                        else this._siblings = K(this.target, this, !0)
                    }
                    return M.prototype._enabled.call(this, e, t), !(!this._notifyPluginsOfEnabled || !this._firstPT) && A._onPluginEvent(e ? "_onEnable" : "_onDisable", this)
                }, A.to = function(e, t, n) {
                    return new A(e, t, n)
                }, A.from = function(e, t, n) {
                    return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, new A(e, t, n)
                }, A.fromTo = function(e, t, n, i) {
                    return i.startAt = n, i.immediateRender = 0 != i.immediateRender && 0 != n.immediateRender, new A(e, t, i)
                }, A.delayedCall = function(e, t, n, i, r) {
                    return new A(t, 0, {
                        delay: e,
                        onComplete: t,
                        onCompleteParams: n,
                        callbackScope: i,
                        onReverseComplete: t,
                        onReverseCompleteParams: n,
                        immediateRender: !1,
                        lazy: !1,
                        useFrames: r,
                        overwrite: 0
                    })
                }, A.set = function(e, t) {
                    return new A(e, 0, t)
                }, A.getTweensOf = function(e, t) {
                    if (null == e) return [];
                    e = "string" != typeof e ? e : A.selector(e) || e;
                    var n, i, r, o;
                    if ((f(e) || R(e)) && "number" != typeof e[0]) {
                        for (n = e.length, i = []; --n > -1;) i = i.concat(A.getTweensOf(e[n], t));
                        for (n = i.length; --n > -1;)
                            for (o = i[n], r = n; --r > -1;) o === i[r] && i.splice(n, 1)
                    } else if (e._gsTweenID)
                        for (i = K(e).concat(), n = i.length; --n > -1;)(i[n]._gc || t && !i[n].isActive()) && i.splice(n, 1);
                    return i || []
                }, A.killTweensOf = A.killDelayedCallsTo = function(e, t, n) {
                    "object" == typeof t && (n = t, t = !1);
                    for (var i = A.getTweensOf(e, t), r = i.length; --r > -1;) i[r]._kill(n, e)
                };
                var te = y("plugins.TweenPlugin", function(e, t) {
                    this._overwriteProps = (e || "").split(","), this._propName = this._overwriteProps[0], this._priority = t || 0, this._super = te.prototype
                }, !0);
                if (s = te.prototype, te.version = "1.19.0", te.API = 2, s._firstPT = null, s._addTween = G, s.setRatio = N, s._kill = function(e) {
                        var t, n = this._overwriteProps,
                            i = this._firstPT;
                        if (null != e[this._propName]) this._overwriteProps = [];
                        else
                            for (t = n.length; --t > -1;) null != e[n[t]] && n.splice(t, 1);
                        for (; i;) null != e[i.n] && (i._next && (i._next._prev = i._prev), i._prev ? (i._prev._next = i._next, i._prev = null) : this._firstPT === i && (this._firstPT = i._next)), i = i._next;
                        return !1
                    }, s._mod = s._roundProps = function(e) {
                        for (var t, n = this._firstPT; n;) t = e[this._propName] || null != n.n && e[n.n.split(this._propName + "_").join("")], t && "function" == typeof t && (2 === n.f ? n.t._applyPT.m = t : n.m = t), n = n._next
                    }, A._onPluginEvent = function(e, t) {
                        var n, i, r, o, a, s = t._firstPT;
                        if ("_onInitAllProps" === e) {
                            for (; s;) {
                                for (a = s._next, i = r; i && i.pr > s.pr;) i = i._next;
                                (s._prev = i ? i._prev : o) ? s._prev._next = s: r = s, (s._next = i) ? i._prev = s : o = s, s = a
                            }
                            s = t._firstPT = r
                        }
                        for (; s;) s.pg && "function" == typeof s.t[e] && s.t[e]() && (n = !0), s = s._next;
                        return n
                    }, te.activate = function(e) {
                        for (var t = e.length; --t > -1;) e[t].API === te.API && (W[(new e[t])._propName] = e[t]);
                        return !0
                    }, g.plugin = function(e) {
                        if (!(e && e.propName && e.init && e.API)) throw "illegal plugin definition.";
                        var t, n = e.propName,
                            i = e.priority || 0,
                            r = e.overwriteProps,
                            o = {
                                init: "_onInitTween",
                                set: "setRatio",
                                kill: "_kill",
                                round: "_mod",
                                mod: "_mod",
                                initAll: "_onInitAllProps"
                            },
                            a = y("plugins." + n.charAt(0).toUpperCase() + n.substr(1) + "Plugin", function() {
                                te.call(this, n, i), this._overwriteProps = r || []
                            }, !0 === e.global),
                            s = a.prototype = new te(n);
                        s.constructor = a, a.API = e.API;
                        for (t in o) "function" == typeof e[t] && (s[o[t]] = e[t]);
                        return a.version = e.version, te.activate([a]), a
                    }, o = e._gsQueue) {
                    for (a = 0; a < o.length; a++) o[a]();
                    for (s in m) m[s].func || e.console.log("GSAP encountered missing dependency: " + s)
                }
                l = !1
            }
        }("undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window), define("com/gsap/TweenLite", function() {});
    var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
    (_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
            "use strict";
            _gsScope._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function(e, t, n) {
                var i = function(t) {
                        e.call(this, t), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = !0 === this.vars.yoyo, this._dirty = !0
                    },
                    r = t._internals,
                    o = r.lazyTweens,
                    a = r.lazyRender,
                    s = _gsScope._gsDefine.globals,
                    u = new n(null, null, 1, 0),
                    l = i.prototype = new e;
                return l.constructor = i, l.kill()._gc = !1, i.version = "1.20.1", l.invalidate = function() {
                    return this._yoyo = !0 === this.vars.yoyo, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), e.prototype.invalidate.call(this)
                }, l.addCallback = function(e, n, i, r) {
                    return this.add(t.delayedCall(0, e, i, r), n)
                }, l.removeCallback = function(e, t) {
                    if (e)
                        if (null == t) this._kill(null, e);
                        else
                            for (var n = this.getTweensOf(e, !1), i = n.length, r = this._parseTimeOrLabel(t); --i > -1;) n[i]._startTime === r && n[i]._enabled(!1, !1);
                    return this
                }, l.removePause = function(t) {
                    return this.removeCallback(e._internals.pauseCallback, t)
                }, l.tweenTo = function(e, n) {
                    n = n || {};
                    var i, r, o, a = {
                            ease: u,
                            useFrames: this.usesFrames(),
                            immediateRender: !1
                        },
                        l = n.repeat && s.TweenMax || t;
                    for (r in n) a[r] = n[r];
                    return a.time = this._parseTimeOrLabel(e), i = Math.abs(Number(a.time) - this._time) / this._timeScale || .001, o = new l(this, i, a), a.onStart = function() {
                        o.target.paused(!0), o.vars.time !== o.target.time() && i === o.duration() && o.duration(Math.abs(o.vars.time - o.target.time()) / o.target._timeScale), n.onStart && n.onStart.apply(n.onStartScope || n.callbackScope || o, n.onStartParams || [])
                    }, o
                }, l.tweenFromTo = function(e, t, n) {
                    n = n || {}, e = this._parseTimeOrLabel(e), n.startAt = {
                        onComplete: this.seek,
                        onCompleteParams: [e],
                        callbackScope: this
                    }, n.immediateRender = !1 !== n.immediateRender;
                    var i = this.tweenTo(t, n);
                    return i.duration(Math.abs(i.vars.time - e) / this._timeScale || .001)
                }, l.render = function(e, t, n) {
                    this._gc && this._enabled(!0, !1);
                    var i, r, s, u, l, c, h, p, d = this._dirty ? this.totalDuration() : this._totalDuration,
                        f = this._duration,
                        m = this._time,
                        _ = this._totalTime,
                        g = this._startTime,
                        y = this._timeScale,
                        v = this._rawPrevTime,
                        b = this._paused,
                        x = this._cycle;
                    if (e >= d - 1e-7 && e >= 0) this._locked || (this._totalTime = d, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (r = !0, u = "onComplete", l = !!this._timeline.autoRemoveChildren, 0 === this._duration && (e <= 0 && e >= -1e-7 || v < 0 || 1e-10 === v) && v !== e && this._first && (l = !0, v > 1e-10 && (u = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-10, this._yoyo && 0 != (1 & this._cycle) ? this._time = e = 0 : (this._time = f, e = f + 1e-4);
                    else if (e < 1e-7)
                        if (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (0 !== m || 0 === f && 1e-10 !== v && (v > 0 || e < 0 && v >= 0) && !this._locked) && (u = "onReverseComplete", r = this._reversed), e < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (l = r = !0, u = "onReverseComplete") : v >= 0 && this._first && (l = !0), this._rawPrevTime = e;
                        else {
                            if (this._rawPrevTime = f || !t || e || this._rawPrevTime === e ? e : 1e-10, 0 === e && r)
                                for (i = this._first; i && 0 === i._startTime;) i._duration || (r = !1), i = i._next;
                            e = 0, this._initted || (l = !0)
                        }
                    else if (0 === f && v < 0 && (l = !0), this._time = this._rawPrevTime = e, this._locked || (this._totalTime = e, 0 !== this._repeat && (c = f + this._repeatDelay, this._cycle = this._totalTime / c >> 0,
                            0 !== this._cycle && this._cycle === this._totalTime / c && _ <= e && this._cycle--, this._time = this._totalTime - this._cycle * c, this._yoyo && 0 != (1 & this._cycle) && (this._time = f - this._time), this._time > f ? (this._time = f, e = f + 1e-4) : this._time < 0 ? this._time = e = 0 : e = this._time)), this._hasPause && !this._forcingPlayhead && !t) {
                        if ((e = this._time) >= m || this._repeat && x !== this._cycle)
                            for (i = this._first; i && i._startTime <= e && !h;) i._duration || "isPause" !== i.data || i.ratio || 0 === i._startTime && 0 === this._rawPrevTime || (h = i), i = i._next;
                        else
                            for (i = this._last; i && i._startTime >= e && !h;) i._duration || "isPause" === i.data && i._rawPrevTime > 0 && (h = i), i = i._prev;
                        h && h._startTime < f && (this._time = e = h._startTime, this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay))
                    }
                    if (this._cycle !== x && !this._locked) {
                        var T = this._yoyo && 0 != (1 & x),
                            w = T === (this._yoyo && 0 != (1 & this._cycle)),
                            S = this._totalTime,
                            P = this._cycle,
                            C = this._rawPrevTime,
                            E = this._time;
                        if (this._totalTime = x * f, this._cycle < x ? T = !T : this._totalTime += f, this._time = m, this._rawPrevTime = 0 === f ? v - 1e-4 : v, this._cycle = x, this._locked = !0, m = T ? 0 : f, this.render(m, t, 0 === f), t || this._gc || this.vars.onRepeat && (this._cycle = P, this._locked = !1, this._callback("onRepeat")), m !== this._time) return;
                        if (w && (this._cycle = x, this._locked = !0, m = T ? f + 1e-4 : -1e-4, this.render(m, !0, !1)), this._locked = !1, this._paused && !b) return;
                        this._time = E, this._totalTime = S, this._cycle = P, this._rawPrevTime = C
                    }
                    if (!(this._time !== m && this._first || n || l || h)) return void(_ !== this._totalTime && this._onUpdate && (t || this._callback("onUpdate")));
                    if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== _ && e > 0 && (this._active = !0), 0 === _ && this.vars.onStart && (0 === this._totalTime && this._totalDuration || t || this._callback("onStart")), (p = this._time) >= m)
                        for (i = this._first; i && (s = i._next, p === this._time && (!this._paused || b));)(i._active || i._startTime <= this._time && !i._paused && !i._gc) && (h === i && this.pause(), i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)), i = s;
                    else
                        for (i = this._last; i && (s = i._prev, p === this._time && (!this._paused || b));) {
                            if (i._active || i._startTime <= m && !i._paused && !i._gc) {
                                if (h === i) {
                                    for (h = i._prev; h && h.endTime() > this._time;) h.render(h._reversed ? h.totalDuration() - (e - h._startTime) * h._timeScale : (e - h._startTime) * h._timeScale, t, n), h = h._prev;
                                    h = null, this.pause()
                                }
                                i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)
                            }
                            i = s
                        }
                    this._onUpdate && (t || (o.length && a(), this._callback("onUpdate"))), u && (this._locked || this._gc || g !== this._startTime && y === this._timeScale || (0 === this._time || d >= this.totalDuration()) && (r && (o.length && a(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[u] && this._callback(u)))
                }, l.getActive = function(e, t, n) {
                    null == e && (e = !0), null == t && (t = !0), null == n && (n = !1);
                    var i, r, o = [],
                        a = this.getChildren(e, t, n),
                        s = 0,
                        u = a.length;
                    for (i = 0; i < u; i++) r = a[i], r.isActive() && (o[s++] = r);
                    return o
                }, l.getLabelAfter = function(e) {
                    e || 0 !== e && (e = this._time);
                    var t, n = this.getLabelsArray(),
                        i = n.length;
                    for (t = 0; t < i; t++)
                        if (n[t].time > e) return n[t].name;
                    return null
                }, l.getLabelBefore = function(e) {
                    null == e && (e = this._time);
                    for (var t = this.getLabelsArray(), n = t.length; --n > -1;)
                        if (t[n].time < e) return t[n].name;
                    return null
                }, l.getLabelsArray = function() {
                    var e, t = [],
                        n = 0;
                    for (e in this._labels) t[n++] = {
                        time: this._labels[e],
                        name: e
                    };
                    return t.sort(function(e, t) {
                        return e.time - t.time
                    }), t
                }, l.invalidate = function() {
                    return this._locked = !1, e.prototype.invalidate.call(this)
                }, l.progress = function(e, t) {
                    return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 != (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) : this._time / this.duration() || 0
                }, l.totalProgress = function(e, t) {
                    return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration() || 0
                }, l.totalDuration = function(t) {
                    return arguments.length ? -1 !== this._repeat && t ? this.timeScale(this.totalDuration() / t) : this : (this._dirty && (e.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
                }, l.time = function(e, t) {
                    return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 != (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
                }, l.repeat = function(e) {
                    return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
                }, l.repeatDelay = function(e) {
                    return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
                }, l.yoyo = function(e) {
                    return arguments.length ? (this._yoyo = e, this) : this._yoyo
                }, l.currentLabel = function(e) {
                    return arguments.length ? this.seek(e, !0) : this.getLabelBefore(this._time + 1e-8)
                }, i
            }, !0), _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, n) {
                var i = function(e) {
                        t.call(this, e), this._labels = {}, this.autoRemoveChildren = !0 === this.vars.autoRemoveChildren, this.smoothChildTiming = !0 === this.vars.smoothChildTiming, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
                        var n, i, r = this.vars;
                        for (i in r) n = r[i], s(n) && -1 !== n.join("").indexOf("{self}") && (r[i] = this._swapSelfInParams(n));
                        s(r.tweens) && this.add(r.tweens, 0, r.align, r.stagger)
                    },
                    r = n._internals,
                    o = i._internals = {},
                    a = r.isSelector,
                    s = r.isArray,
                    u = r.lazyTweens,
                    l = r.lazyRender,
                    c = _gsScope._gsDefine.globals,
                    h = function(e) {
                        var t, n = {};
                        for (t in e) n[t] = e[t];
                        return n
                    },
                    p = function(e, t, n) {
                        var i, r, o = e.cycle;
                        for (i in o) r = o[i], e[i] = "function" == typeof r ? r(n, t[n]) : r[n % r.length];
                        delete e.cycle
                    },
                    d = o.pauseCallback = function() {},
                    f = function(e) {
                        var t, n = [],
                            i = e.length;
                        for (t = 0; t !== i; n.push(e[t++]));
                        return n
                    },
                    m = i.prototype = new t;
                return i.version = "1.20.1", m.constructor = i, m.kill()._gc = m._forcingPlayhead = m._hasPause = !1, m.to = function(e, t, i, r) {
                    var o = i.repeat && c.TweenMax || n;
                    return t ? this.add(new o(e, t, i), r) : this.set(e, i, r)
                }, m.from = function(e, t, i, r) {
                    return this.add((i.repeat && c.TweenMax || n).from(e, t, i), r)
                }, m.fromTo = function(e, t, i, r, o) {
                    var a = r.repeat && c.TweenMax || n;
                    return t ? this.add(a.fromTo(e, t, i, r), o) : this.set(e, r, o)
                }, m.staggerTo = function(e, t, r, o, s, u, l, c) {
                    var d, m, _ = new i({
                            onComplete: u,
                            onCompleteParams: l,
                            callbackScope: c,
                            smoothChildTiming: this.smoothChildTiming
                        }),
                        g = r.cycle;
                    for ("string" == typeof e && (e = n.selector(e) || e), e = e || [], a(e) && (e = f(e)), o = o || 0, o < 0 && (e = f(e), e.reverse(), o *= -1), m = 0; m < e.length; m++) d = h(r), d.startAt && (d.startAt = h(d.startAt), d.startAt.cycle && p(d.startAt, e, m)), g && (p(d, e, m), null != d.duration && (t = d.duration, delete d.duration)), _.to(e[m], t, d, m * o);
                    return this.add(_, s)
                }, m.staggerFrom = function(e, t, n, i, r, o, a, s) {
                    return n.immediateRender = 0 != n.immediateRender, n.runBackwards = !0, this.staggerTo(e, t, n, i, r, o, a, s)
                }, m.staggerFromTo = function(e, t, n, i, r, o, a, s, u) {
                    return i.startAt = n, i.immediateRender = 0 != i.immediateRender && 0 != n.immediateRender, this.staggerTo(e, t, i, r, o, a, s, u)
                }, m.call = function(e, t, i, r) {
                    return this.add(n.delayedCall(0, e, t, i), r)
                }, m.set = function(e, t, i) {
                    return i = this._parseTimeOrLabel(i, 0, !0), null == t.immediateRender && (t.immediateRender = i === this._time && !this._paused), this.add(new n(e, 0, t), i)
                }, i.exportRoot = function(e, t) {
                    e = e || {}, null == e.smoothChildTiming && (e.smoothChildTiming = !0);
                    var r, o, a = new i(e),
                        s = a._timeline;
                    for (null == t && (t = !0), s._remove(a, !0), a._startTime = 0, a._rawPrevTime = a._time = a._totalTime = s._time, r = s._first; r;) o = r._next, t && r instanceof n && r.target === r.vars.onComplete || a.add(r, r._startTime - r._delay), r = o;
                    return s.add(a, 0), a
                }, m.add = function(r, o, a, u) {
                    var l, c, h, p, d, f;
                    if ("number" != typeof o && (o = this._parseTimeOrLabel(o, 0, !0, r)), !(r instanceof e)) {
                        if (r instanceof Array || r && r.push && s(r)) {
                            for (a = a || "normal", u = u || 0, l = o, c = r.length, h = 0; h < c; h++) s(p = r[h]) && (p = new i({
                                tweens: p
                            })), this.add(p, l), "string" != typeof p && "function" != typeof p && ("sequence" === a ? l = p._startTime + p.totalDuration() / p._timeScale : "start" === a && (p._startTime -= p.delay())), l += u;
                            return this._uncache(!0)
                        }
                        if ("string" == typeof r) return this.addLabel(r, o);
                        if ("function" != typeof r) throw "Cannot add " + r + " into the timeline; it is not a tween, timeline, function, or string.";
                        r = n.delayedCall(0, r)
                    }
                    if (t.prototype.add.call(this, r, o), r._time && r.render((this.rawTime() - r._startTime) * r._timeScale, !1, !1), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
                        for (d = this, f = d.rawTime() > r._startTime; d._timeline;) f && d._timeline.smoothChildTiming ? d.totalTime(d._totalTime, !0) : d._gc && d._enabled(!0, !1), d = d._timeline;
                    return this
                }, m.remove = function(t) {
                    if (t instanceof e) {
                        this._remove(t, !1);
                        var n = t._timeline = t.vars.useFrames ? e._rootFramesTimeline : e._rootTimeline;
                        return t._startTime = (t._paused ? t._pauseTime : n._time) - (t._reversed ? t.totalDuration() - t._totalTime : t._totalTime) / t._timeScale, this
                    }
                    if (t instanceof Array || t && t.push && s(t)) {
                        for (var i = t.length; --i > -1;) this.remove(t[i]);
                        return this
                    }
                    return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t)
                }, m._remove = function(e, n) {
                    return t.prototype._remove.call(this, e, n), this._last ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
                }, m.append = function(e, t) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e))
                }, m.insert = m.insertMultiple = function(e, t, n, i) {
                    return this.add(e, t || 0, n, i)
                }, m.appendMultiple = function(e, t, n, i) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e), n, i)
                }, m.addLabel = function(e, t) {
                    return this._labels[e] = this._parseTimeOrLabel(t), this
                }, m.addPause = function(e, t, i, r) {
                    var o = n.delayedCall(0, d, i, r || this);
                    return o.vars.onComplete = o.vars.onReverseComplete = t, o.data = "isPause", this._hasPause = !0, this.add(o, e)
                }, m.removeLabel = function(e) {
                    return delete this._labels[e], this
                }, m.getLabelTime = function(e) {
                    return null != this._labels[e] ? this._labels[e] : -1
                }, m._parseTimeOrLabel = function(t, n, i, r) {
                    var o, a;
                    if (r instanceof e && r.timeline === this) this.remove(r);
                    else if (r && (r instanceof Array || r.push && s(r)))
                        for (a = r.length; --a > -1;) r[a] instanceof e && r[a].timeline === this && this.remove(r[a]);
                    if (o = this.duration() > 99999999999 ? this.recent().endTime(!1) : this._duration, "string" == typeof n) return this._parseTimeOrLabel(n, i && "number" == typeof t && null == this._labels[n] ? t - o : 0, i);
                    if (n = n || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t]) null == t && (t = o);
                    else {
                        if (-1 === (a = t.indexOf("="))) return null == this._labels[t] ? i ? this._labels[t] = o + n : n : this._labels[t] + n;
                        n = parseInt(t.charAt(a - 1) + "1", 10) * Number(t.substr(a + 1)), t = a > 1 ? this._parseTimeOrLabel(t.substr(0, a - 1), 0, i) : o
                    }
                    return Number(t) + n
                }, m.seek = function(e, t) {
                    return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), !1 !== t)
                }, m.stop = function() {
                    return this.paused(!0)
                }, m.gotoAndPlay = function(e, t) {
                    return this.play(e, t)
                }, m.gotoAndStop = function(e, t) {
                    return this.pause(e, t)
                }, m.render = function(e, t, n) {
                    this._gc && this._enabled(!0, !1);
                    var i, r, o, a, s, c, h, p = this._dirty ? this.totalDuration() : this._totalDuration,
                        d = this._time,
                        f = this._startTime,
                        m = this._timeScale,
                        _ = this._paused;
                    if (e >= p - 1e-7 && e >= 0) this._totalTime = this._time = p, this._reversed || this._hasPausedChild() || (r = !0, a = "onComplete", s = !!this._timeline.autoRemoveChildren, 0 === this._duration && (e <= 0 && e >= -1e-7 || this._rawPrevTime < 0 || 1e-10 === this._rawPrevTime) && this._rawPrevTime !== e && this._first && (s = !0, this._rawPrevTime > 1e-10 && (a = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-10, e = p + 1e-4;
                    else if (e < 1e-7)
                        if (this._totalTime = this._time = 0, (0 !== d || 0 === this._duration && 1e-10 !== this._rawPrevTime && (this._rawPrevTime > 0 || e < 0 && this._rawPrevTime >= 0)) && (a = "onReverseComplete", r = this._reversed), e < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (s = r = !0, a = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (s = !0), this._rawPrevTime = e;
                        else {
                            if (this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-10, 0 === e && r)
                                for (i = this._first; i && 0 === i._startTime;) i._duration || (r = !1), i = i._next;
                            e = 0, this._initted || (s = !0)
                        }
                    else {
                        if (this._hasPause && !this._forcingPlayhead && !t) {
                            if (e >= d)
                                for (i = this._first; i && i._startTime <= e && !c;) i._duration || "isPause" !== i.data || i.ratio || 0 === i._startTime && 0 === this._rawPrevTime || (c = i), i = i._next;
                            else
                                for (i = this._last; i && i._startTime >= e && !c;) i._duration || "isPause" === i.data && i._rawPrevTime > 0 && (c = i), i = i._prev;
                            c && (this._time = e = c._startTime, this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay))
                        }
                        this._totalTime = this._time = this._rawPrevTime = e
                    }
                    if (this._time !== d && this._first || n || s || c) {
                        if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== d && e > 0 && (this._active = !0), 0 === d && this.vars.onStart && (0 === this._time && this._duration || t || this._callback("onStart")), (h = this._time) >= d)
                            for (i = this._first; i && (o = i._next, h === this._time && (!this._paused || _));)(i._active || i._startTime <= h && !i._paused && !i._gc) && (c === i && this.pause(), i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)), i = o;
                        else
                            for (i = this._last; i && (o = i._prev, h === this._time && (!this._paused || _));) {
                                if (i._active || i._startTime <= d && !i._paused && !i._gc) {
                                    if (c === i) {
                                        for (c = i._prev; c && c.endTime() > this._time;) c.render(c._reversed ? c.totalDuration() - (e - c._startTime) * c._timeScale : (e - c._startTime) * c._timeScale, t, n), c = c._prev;
                                        c = null, this.pause()
                                    }
                                    i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)
                                }
                                i = o
                            }
                        this._onUpdate && (t || (u.length && l(), this._callback("onUpdate"))), a && (this._gc || f !== this._startTime && m === this._timeScale || (0 === this._time || p >= this.totalDuration()) && (r && (u.length && l(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[a] && this._callback(a)))
                    }
                }, m._hasPausedChild = function() {
                    for (var e = this._first; e;) {
                        if (e._paused || e instanceof i && e._hasPausedChild()) return !0;
                        e = e._next
                    }
                    return !1
                }, m.getChildren = function(e, t, i, r) {
                    r = r || -9999999999;
                    for (var o = [], a = this._first, s = 0; a;) a._startTime < r || (a instanceof n ? !1 !== t && (o[s++] = a) : (!1 !== i && (o[s++] = a), !1 !== e && (o = o.concat(a.getChildren(!0, t, i)), s = o.length))), a = a._next;
                    return o
                }, m.getTweensOf = function(e, t) {
                    var i, r, o = this._gc,
                        a = [],
                        s = 0;
                    for (o && this._enabled(!0, !0), i = n.getTweensOf(e), r = i.length; --r > -1;)(i[r].timeline === this || t && this._contains(i[r])) && (a[s++] = i[r]);
                    return o && this._enabled(!1, !0), a
                }, m.recent = function() {
                    return this._recent
                }, m._contains = function(e) {
                    for (var t = e.timeline; t;) {
                        if (t === this) return !0;
                        t = t.timeline
                    }
                    return !1
                }, m.shiftChildren = function(e, t, n) {
                    n = n || 0;
                    for (var i, r = this._first, o = this._labels; r;) r._startTime >= n && (r._startTime += e), r = r._next;
                    if (t)
                        for (i in o) o[i] >= n && (o[i] += e);
                    return this._uncache(!0)
                }, m._kill = function(e, t) {
                    if (!e && !t) return this._enabled(!1, !1);
                    for (var n = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), i = n.length, r = !1; --i > -1;) n[i]._kill(e, t) && (r = !0);
                    return r
                }, m.clear = function(e) {
                    var t = this.getChildren(!1, !0, !0),
                        n = t.length;
                    for (this._time = this._totalTime = 0; --n > -1;) t[n]._enabled(!1, !1);
                    return !1 !== e && (this._labels = {}), this._uncache(!0)
                }, m.invalidate = function() {
                    for (var t = this._first; t;) t.invalidate(), t = t._next;
                    return e.prototype.invalidate.call(this)
                }, m._enabled = function(e, n) {
                    if (e === this._gc)
                        for (var i = this._first; i;) i._enabled(e, !0), i = i._next;
                    return t.prototype._enabled.call(this, e, n)
                }, m.totalTime = function(t, n, i) {
                    this._forcingPlayhead = !0;
                    var r = e.prototype.totalTime.apply(this, arguments);
                    return this._forcingPlayhead = !1, r
                }, m.duration = function(e) {
                    return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration)
                }, m.totalDuration = function(e) {
                    if (!arguments.length) {
                        if (this._dirty) {
                            for (var t, n, i = 0, r = this._last, o = 999999999999; r;) t = r._prev, r._dirty && r.totalDuration(), r._startTime > o && this._sortChildren && !r._paused ? this.add(r, r._startTime - r._delay) : o = r._startTime, r._startTime < 0 && !r._paused && (i -= r._startTime, this._timeline.smoothChildTiming && (this._startTime += r._startTime / this._timeScale), this.shiftChildren(-r._startTime, !1, -9999999999), o = 0), n = r._startTime + r._totalDuration / r._timeScale, n > i && (i = n), r = t;
                            this._duration = this._totalDuration = i, this._dirty = !1
                        }
                        return this._totalDuration
                    }
                    return e && this.totalDuration() ? this.timeScale(this._totalDuration / e) : this
                }, m.paused = function(t) {
                    if (!t)
                        for (var n = this._first, i = this._time; n;) n._startTime === i && "isPause" === n.data && (n._rawPrevTime = 0), n = n._next;
                    return e.prototype.paused.apply(this, arguments)
                }, m.usesFrames = function() {
                    for (var t = this._timeline; t._timeline;) t = t._timeline;
                    return t === e._rootFramesTimeline
                }, m.rawTime = function(e) {
                    return e && (this._paused || this._repeat && this.time() > 0 && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(e) - this._startTime) * this._timeScale
                }, i
            }, !0)
        }), _gsScope._gsDefine && _gsScope._gsQueue.pop()(),
        function(e) {
            "use strict";
            var t = function() {
                return (_gsScope.GreenSockGlobals || _gsScope).TimelineMax
            };
            "undefined" != typeof module && module.exports ? (require("./TweenLite.js"), module.exports = t()) : "function" == typeof define && define.amd && define("com/gsap/TimelineMax", ["TweenLite"], t)
        }(),
        function(e) {
            if ("object" == typeof exports && "undefined" != typeof module) module.exports = e();
            else if ("function" == typeof define && define.amd) define("com/pixijs/pixi-particles", [], e);
            else {
                var t;
                t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, t.pixiParticles = e()
            }
        }(function() {
            var define, module, exports;
            return function e(t, n, i) {
                function r(a, s) {
                    if (!n[a]) {
                        if (!t[a]) {
                            var u = "function" == typeof require && require;
                            if (!s && u) return u(a, !0);
                            if (o) return o(a, !0);
                            var l = new Error("Cannot find module '" + a + "'");
                            throw l.code = "MODULE_NOT_FOUND", l
                        }
                        var c = n[a] = {
                            exports: {}
                        };
                        t[a][0].call(c.exports, function(e) {
                            var n = t[a][1][e];
                            return r(n || e)
                        }, c, c.exports, e, t, n, i)
                    }
                    return n[a].exports
                }
                for (var o = "function" == typeof require && require, a = 0; a < i.length; a++) r(i[a]);
                return r
            }({
                1: [function(e, t, n) {
                    "use strict";
                    var i = e("./ParticleUtils"),
                        r = e("./Particle"),
                        o = PIXI.Texture,
                        a = function(e) {
                            r.call(this, e), this.textures = null, this.duration = 0, this.framerate = 0, this.elapsed = 0, this.loop = !1
                        },
                        s = r.prototype,
                        u = a.prototype = Object.create(s);
                    u.init = function() {
                        this.Particle_init(), this.elapsed = 0, this.framerate < 0 && (this.duration = this.maxLife, this.framerate = this.textures.length / this.duration)
                    }, u.applyArt = function(e) {
                        this.textures = e.textures, this.framerate = e.framerate, this.duration = e.duration, this.loop = e.loop
                    }, u.update = function(e) {
                        if (this.Particle_update(e) >= 0) {
                            this.elapsed += e, this.elapsed > this.duration && (this.loop ? this.elapsed = this.elapsed % this.duration : this.elapsed = this.duration - 1e-6);
                            var t = this.elapsed * this.framerate + 1e-7 | 0;
                            this.texture = this.textures[t] || i.EMPTY_TEXTURE
                        }
                    }, u.Particle_destroy = r.prototype.destroy, u.destroy = function() {
                        this.Particle_destroy(), this.textures = null
                    }, a.parseArt = function(e) {
                        var t, n, i, r, a, s, u = [];
                        for (t = 0; t < e.length; ++t) {
                            for (n = e[t], e[t] = u = {}, u.textures = s = [], r = n.textures, i = 0; i < r.length; ++i)
                                if ("string" == typeof(a = r[i])) s.push(o.fromImage(a));
                                else if (a instanceof o) s.push(a);
                            else {
                                var l = a.count || 1;
                                for (a = "string" == typeof a.texture ? o.fromImage(a.texture) : a.texture; l > 0; --l) s.push(a)
                            }
                            "matchLife" == n.framerate ? (u.framerate = -1, u.duration = 0, u.loop = !1) : (u.loop = !!n.loop, u.framerate = n.framerate > 0 ? n.framerate : 60, u.duration = s.length / u.framerate)
                        }
                        return e
                    }, t.exports = a
                }, {
                    "./Particle": 3,
                    "./ParticleUtils": 4
                }],
                2: [function(e, t, n) {
                    "use strict";
                    var i = e("./ParticleUtils"),
                        r = e("./Particle"),
                        o = PIXI.particles.ParticleContainer || PIXI.ParticleContainer,
                        a = PIXI.ticker.shared,
                        s = function(e, t, n) {
                            this._particleConstructor = r, this.particleImages = null, this.startAlpha = 1, this.endAlpha = 1, this.startSpeed = 0, this.endSpeed = 0, this.minimumSpeedMultiplier = 1, this.acceleration = null, this.maxSpeed = NaN, this.startScale = 1, this.endScale = 1, this.minimumScaleMultiplier = 1, this.startColor = null, this.endColor = null, this.minLifetime = 0, this.maxLifetime = 0, this.minStartRotation = 0, this.maxStartRotation = 0, this.noRotation = !1, this.minRotationSpeed = 0, this.maxRotationSpeed = 0, this.particleBlendMode = 0, this.customEase = null, this.extraData = null, this._frequency = 1, this.maxParticles = 1e3, this.emitterLifetime = -1, this.spawnPos = null, this.spawnType = null, this._spawnFunc = null, this.spawnRect = null, this.spawnCircle = null, this.particlesPerWave = 1, this.particleSpacing = 0, this.angleStart = 0, this.rotation = 0, this.ownerPos = null, this._prevEmitterPos = null, this._prevPosIsValid = !1, this._posChanged = !1, this._parentIsPC = !1, this._parent = null, this.addAtBack = !1, this.particleCount = 0, this._emit = !1, this._spawnTimer = 0, this._emitterLife = -1, this._activeParticlesFirst = null, this._activeParticlesLast = null, this._poolFirst = null, this._origConfig = null, this._origArt = null, this._autoUpdate = !1, this._destroyWhenComplete = !1, this.parent = e, t && n && this.init(t, n), this.recycle = this.recycle, this.update = this.update, this.rotate = this.rotate, this.updateSpawnPos = this.updateSpawnPos, this.updateOwnerPos = this.updateOwnerPos
                        },
                        u = s.prototype = {},
                        l = new PIXI.Point;
                    Object.defineProperty(u, "frequency", {
                        get: function() {
                            return this._frequency
                        },
                        set: function(e) {
                            this._frequency = "number" == typeof e && e > 0 ? e : 1
                        }
                    }), Object.defineProperty(u, "particleConstructor", {
                        get: function() {
                            return this._particleConstructor
                        },
                        set: function(e) {
                            if (e != this._particleConstructor) {
                                this._particleConstructor = e, this.cleanup();
                                for (var t = this._poolFirst; t; t = t.next) t.destroy();
                                this._poolFirst = null, this._origConfig && this._origArt && this.init(this._origArt, this._origConfig)
                            }
                        }
                    }), Object.defineProperty(u, "parent", {
                        get: function() {
                            return this._parent
                        },
                        set: function(e) {
                            if (this._parentIsPC)
                                for (var t = this._poolFirst; t; t = t.next) t.parent && t.parent.removeChild(t);
                            this.cleanup(), this._parent = e, this._parentIsPC = o && e && e instanceof o
                        }
                    }), u.init = function(e, t) {
                        if (e && t) {
                            this.cleanup(), this._origConfig = t, this._origArt = e, e = Array.isArray(e) ? e.slice() : [e];
                            var n = this._particleConstructor;
                            this.particleImages = n.parseArt ? n.parseArt(e) : e, t.alpha ? (this.startAlpha = t.alpha.start, this.endAlpha = t.alpha.end) : this.startAlpha = this.endAlpha = 1, t.speed ? (this.startSpeed = t.speed.start, this.endSpeed = t.speed.end, this.minimumSpeedMultiplier = t.speed.minimumSpeedMultiplier || 1) : (this.minimumSpeedMultiplier = 1, this.startSpeed = this.endSpeed = 0);
                            var r = t.acceleration;
                            r && (r.x || r.y) ? (this.endSpeed = this.startSpeed, this.acceleration = new PIXI.Point(r.x, r.y), this.maxSpeed = t.maxSpeed || NaN) : this.acceleration = new PIXI.Point, t.scale ? (this.startScale = t.scale.start, this.endScale = t.scale.end, this.minimumScaleMultiplier = t.scale.minimumScaleMultiplier || 1) : this.startScale = this.endScale = this.minimumScaleMultiplier = 1, t.color && (this.startColor = i.hexToRGB(t.color.start), t.color.start != t.color.end ? this.endColor = i.hexToRGB(t.color.end) : this.endColor = null), t.startRotation ? (this.minStartRotation = t.startRotation.min, this.maxStartRotation = t.startRotation.max) : this.minStartRotation = this.maxStartRotation = 0, t.noRotation && (this.minStartRotation || this.maxStartRotation) ? this.noRotation = !!t.noRotation : this.noRotation = !1, t.rotationSpeed ? (this.minRotationSpeed = t.rotationSpeed.min, this.maxRotationSpeed = t.rotationSpeed.max) : this.minRotationSpeed = this.maxRotationSpeed = 0, this.minLifetime = t.lifetime.min, this.maxLifetime = t.lifetime.max, this.particleBlendMode = i.getBlendMode(t.blendMode), t.ease ? this.customEase = "function" == typeof t.ease ? t.ease : i.generateEase(t.ease) : this.customEase = null, n.parseData ? this.extraData = n.parseData(t.extraData) : this.extraData = t.extraData || null, this.spawnRect = this.spawnCircle = null, this.particlesPerWave = 1, this.particleSpacing = 0, this.angleStart = 0;
                            var o;
                            switch (t.spawnType) {
                                case "rect":
                                    this.spawnType = "rect", this._spawnFunc = this._spawnRect;
                                    var a = t.spawnRect;
                                    this.spawnRect = new PIXI.Rectangle(a.x, a.y, a.w, a.h);
                                    break;
                                case "circle":
                                    this.spawnType = "circle", this._spawnFunc = this._spawnCircle, o = t.spawnCircle, this.spawnCircle = new PIXI.Circle(o.x, o.y, o.r);
                                    break;
                                case "ring":
                                    this.spawnType = "ring", this._spawnFunc = this._spawnRing, o = t.spawnCircle, this.spawnCircle = new PIXI.Circle(o.x, o.y, o.r), this.spawnCircle.minRadius = o.minR;
                                    break;
                                case "burst":
                                    this.spawnType = "burst", this._spawnFunc = this._spawnBurst, this.particlesPerWave = t.particlesPerWave, this.particleSpacing = t.particleSpacing, this.angleStart = t.angleStart ? t.angleStart : 0;
                                    break;
                                case "point":
                                    this.spawnType = "point", this._spawnFunc = this._spawnPoint;
                                    break;
                                default:
                                    this.spawnType = "point", this._spawnFunc = this._spawnPoint
                            }
                            this.frequency = t.frequency, this.emitterLifetime = t.emitterLifetime || -1, this.maxParticles = t.maxParticles > 0 ? t.maxParticles : 1e3, this.addAtBack = !!t.addAtBack, this.rotation = 0, this.ownerPos = new PIXI.Point, this.spawnPos = new PIXI.Point(t.pos.x, t.pos.y), this._prevEmitterPos = this.spawnPos.clone(), this._prevPosIsValid = !1, this._spawnTimer = 0, this.emit = void 0 === t.emit || !!t.emit, this.autoUpdate = void 0 !== t.autoUpdate && !!t.autoUpdate
                        }
                    }, u.recycle = function(e) {
                        e.next && (e.next.prev = e.prev), e.prev && (e.prev.next = e.next), e == this._activeParticlesLast && (this._activeParticlesLast = e.prev), e == this._activeParticlesFirst && (this._activeParticlesFirst = e.next), e.prev = null, e.next = this._poolFirst, this._poolFirst = e, this._parentIsPC ? (e.alpha = 0, e.visible = !1) : e.parent && e.parent.removeChild(e), --this.particleCount
                    }, u.rotate = function(e) {
                        if (this.rotation != e) {
                            var t = e - this.rotation;
                            this.rotation = e, i.rotatePoint(t, this.spawnPos), this._posChanged = !0
                        }
                    }, u.updateSpawnPos = function(e, t) {
                        this._posChanged = !0, this.spawnPos.x = e, this.spawnPos.y = t
                    }, u.updateOwnerPos = function(e, t) {
                        this._posChanged = !0, this.ownerPos.x = e, this.ownerPos.y = t
                    }, u.resetPositionTracking = function() {
                        this._prevPosIsValid = !1
                    }, Object.defineProperty(u, "emit", {
                        get: function() {
                            return this._emit
                        },
                        set: function(e) {
                            this._emit = !!e, this._emitterLife = this.emitterLifetime
                        }
                    }), Object.defineProperty(u, "autoUpdate", {
                        get: function() {
                            return this._autoUpdate
                        },
                        set: function(e) {
                            this._autoUpdate && !e ? a.remove(this.update, this) : !this._autoUpdate && e && a.add(this.update, this), this._autoUpdate = !!e
                        }
                    }), u.playOnceAndDestroy = function() {
                        this.autoUpdate = !0, this.emit = !0, this._destroyWhenComplete = !0
                    }, u.update = function(e) {
                        if (this._autoUpdate && (e = e / PIXI.settings.TARGET_FPMS / 1e3), this._parent) {
                            var t, n, i;
                            for (n = this._activeParticlesFirst; n; n = i) i = n.next, n.update(e);
                            var r, o;
                            this._prevPosIsValid && (r = this._prevEmitterPos.x, o = this._prevEmitterPos.y);
                            var a = this.ownerPos.x + this.spawnPos.x,
                                s = this.ownerPos.y + this.spawnPos.y;
                            if (this._emit)
                                for (this._spawnTimer -= e; this._spawnTimer <= 0;) {
                                    if (this._emitterLife > 0 && (this._emitterLife -= this._frequency, this._emitterLife <= 0)) {
                                        this._spawnTimer = 0, this._emitterLife = 0, this.emit = !1;
                                        break
                                    }
                                    if (this.particleCount >= this.maxParticles) this._spawnTimer += this._frequency;
                                    else {
                                        var u;
                                        if (u = this.minLifetime == this.maxLifetime ? this.minLifetime : Math.random() * (this.maxLifetime - this.minLifetime) + this.minLifetime, -this._spawnTimer < u) {
                                            var l, c;
                                            if (this._prevPosIsValid && this._posChanged) {
                                                var h = 1 + this._spawnTimer / e;
                                                l = (a - r) * h + r, c = (s - o) * h + o
                                            } else l = a, c = s;
                                            t = 0;
                                            for (var p = Math.min(this.particlesPerWave, this.maxParticles - this.particleCount); t < p; ++t) {
                                                var d, f;
                                                if (this._poolFirst ? (d = this._poolFirst, this._poolFirst = this._poolFirst.next, d.next = null) : d = new this.particleConstructor(this), this.particleImages.length > 1 ? d.applyArt(this.particleImages.random()) : d.applyArt(this.particleImages[0]), d.startAlpha = this.startAlpha, d.endAlpha = this.endAlpha, 1 != this.minimumSpeedMultiplier ? (f = Math.random() * (1 - this.minimumSpeedMultiplier) + this.minimumSpeedMultiplier, d.startSpeed = this.startSpeed * f, d.endSpeed = this.endSpeed * f) : (d.startSpeed = this.startSpeed, d.endSpeed = this.endSpeed), d.acceleration.x = this.acceleration.x, d.acceleration.y = this.acceleration.y, d.maxSpeed = this.maxSpeed, 1 != this.minimumScaleMultiplier ? (f = Math.random() * (1 - this.minimumScaleMultiplier) + this.minimumScaleMultiplier, d.startScale = this.startScale * f, d.endScale = this.endScale * f) : (d.startScale = this.startScale, d.endScale = this.endScale), d.startColor = this.startColor, d.endColor = this.endColor, this.minRotationSpeed == this.maxRotationSpeed ? d.rotationSpeed = this.minRotationSpeed : d.rotationSpeed = Math.random() * (this.maxRotationSpeed - this.minRotationSpeed) + this.minRotationSpeed, d.noRotation = this.noRotation, d.maxLife = u, d.blendMode = this.particleBlendMode, d.ease = this.customEase, d.extraData = this.extraData, this._spawnFunc(d, l, c, t), d.init(), d.update(-this._spawnTimer), this._parentIsPC && d.parent) {
                                                    var m = this._parent.children;
                                                    if (m[0] == d) m.shift();
                                                    else if (m[m.length - 1] == d) m.pop();
                                                    else {
                                                        var _ = m.indexOf(d);
                                                        m.splice(_, 1)
                                                    }
                                                    this.addAtBack ? m.unshift(d) : m.push(d)
                                                } else this.addAtBack ? this._parent.addChildAt(d, 0) : this._parent.addChild(d);
                                                this._activeParticlesLast ? (this._activeParticlesLast.next = d, d.prev = this._activeParticlesLast, this._activeParticlesLast = d) : this._activeParticlesLast = this._activeParticlesFirst = d, ++this.particleCount
                                            }
                                        }
                                        this._spawnTimer += this._frequency
                                    }
                                }
                            this._posChanged && (this._prevEmitterPos.x = a, this._prevEmitterPos.y = s, this._prevPosIsValid = !0, this._posChanged = !1), !this._destroyWhenComplete || this._emit || this._activeParticlesFirst || this.destroy()
                        }
                    }, u._spawnPoint = function(e, t, n) {
                        this.minStartRotation == this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, e.position.x = t, e.position.y = n
                    }, u._spawnRect = function(e, t, n) {
                        this.minStartRotation == this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, l.x = Math.random() * this.spawnRect.width + this.spawnRect.x, l.y = Math.random() * this.spawnRect.height + this.spawnRect.y, 0 !== this.rotation && i.rotatePoint(this.rotation, l), e.position.x = t + l.x, e.position.y = n + l.y
                    }, u._spawnCircle = function(e, t, n) {
                        this.minStartRotation == this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, l.x = Math.random() * this.spawnCircle.radius, l.y = 0, i.rotatePoint(360 * Math.random(), l), l.x += this.spawnCircle.x, l.y += this.spawnCircle.y, 0 !== this.rotation && i.rotatePoint(this.rotation, l), e.position.x = t + l.x, e.position.y = n + l.y
                    }, u._spawnRing = function(e, t, n) {
                        var r = this.spawnCircle;
                        this.minStartRotation == this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, r.minRadius == r.radius ? l.x = Math.random() * (r.radius - r.minRadius) + r.minRadius : l.x = r.radius, l.y = 0;
                        var o = 360 * Math.random();
                        e.rotation += o, i.rotatePoint(o, l), l.x += this.spawnCircle.x, l.y += this.spawnCircle.y, 0 !== this.rotation && i.rotatePoint(this.rotation, l), e.position.x = t + l.x, e.position.y = n + l.y
                    }, u._spawnBurst = function(e, t, n, i) {
                        0 === this.particleSpacing ? e.rotation = 360 * Math.random() : e.rotation = this.angleStart + this.particleSpacing * i + this.rotation, e.position.x = t, e.position.y = n
                    }, u.cleanup = function() {
                        var e, t;
                        for (e = this._activeParticlesFirst; e; e = t) t = e.next, this.recycle(e), e.parent && e.parent.removeChild(e);
                        this._activeParticlesFirst = this._activeParticlesLast = null, this.particleCount = 0
                    }, u.destroy = function() {
                        this.autoUpdate = !1, this.cleanup();
                        for (var e, t = this._poolFirst; t; t = e) e = t.next, t.destroy();
                        this._poolFirst = this._parent = this.particleImages = this.spawnPos = this.ownerPos = this.startColor = this.endColor = this.customEase = null
                    }, t.exports = s
                }, {
                    "./Particle": 3,
                    "./ParticleUtils": 4
                }],
                3: [function(e, t, n) {
                    var i = e("./ParticleUtils"),
                        r = PIXI.Sprite,
                        o = function(e) {
                            r.call(this), this.emitter = e, this.anchor.x = this.anchor.y = .5, this.velocity = new PIXI.Point, this.maxLife = 0, this.age = 0, this.ease = null, this.extraData = null, this.startAlpha = 0, this.endAlpha = 0, this.startSpeed = 0, this.endSpeed = 0, this.acceleration = new PIXI.Point, this.maxSpeed = NaN, this.startScale = 0, this.endScale = 0, this.startColor = null, this._sR = 0, this._sG = 0, this._sB = 0, this.endColor = null, this._eR = 0, this._eG = 0, this._eB = 0, this._doAlpha = !1, this._doScale = !1, this._doSpeed = !1, this._doAcceleration = !1, this._doColor = !1, this._doNormalMovement = !1, this._oneOverLife = 0, this.next = null, this.prev = null, this.init = this.init, this.Particle_init = this.Particle_init, this.update = this.update, this.Particle_update = this.Particle_update, this.applyArt = this.applyArt, this.kill = this.kill
                        },
                        a = o.prototype = Object.create(r.prototype);
                    a.init = a.Particle_init = function() {
                        this.age = 0, this.velocity.x = this.startSpeed, this.velocity.y = 0, i.rotatePoint(this.rotation, this.velocity), this.noRotation ? this.rotation = 0 : this.rotation *= i.DEG_TO_RADS, this.rotationSpeed *= i.DEG_TO_RADS,
                            this.alpha = this.startAlpha, this.scale.x = this.scale.y = this.startScale, this.startColor && (this._sR = this.startColor[0], this._sG = this.startColor[1], this._sB = this.startColor[2], this.endColor && (this._eR = this.endColor[0], this._eG = this.endColor[1], this._eB = this.endColor[2])), this._doAlpha = this.startAlpha != this.endAlpha, this._doSpeed = this.startSpeed != this.endSpeed, this._doScale = this.startScale != this.endScale, this._doColor = !!this.endColor, this._doAcceleration = 0 !== this.acceleration.x || 0 !== this.acceleration.y, this._doNormalMovement = this._doSpeed || 0 !== this.startSpeed || this._doAcceleration, this._oneOverLife = 1 / this.maxLife, this.tint = i.combineRGBComponents(this._sR, this._sG, this._sB), this.visible = !0
                    }, a.applyArt = function(e) {
                        this.texture = e || i.EMPTY_TEXTURE
                    }, a.update = a.Particle_update = function(e) {
                        if (this.age += e, this.age >= this.maxLife) return this.kill(), -1;
                        var t = this.age * this._oneOverLife;
                        if (this.ease && (t = 4 == this.ease.length ? this.ease(t, 0, 1, 1) : this.ease(t)), this._doAlpha && (this.alpha = (this.endAlpha - this.startAlpha) * t + this.startAlpha), this._doScale) {
                            var n = (this.endScale - this.startScale) * t + this.startScale;
                            this.scale.x = this.scale.y = n
                        }
                        if (this._doNormalMovement) {
                            if (this._doSpeed) {
                                var r = (this.endSpeed - this.startSpeed) * t + this.startSpeed;
                                i.normalize(this.velocity), i.scaleBy(this.velocity, r)
                            } else if (this._doAcceleration && (this.velocity.x += this.acceleration.x * e, this.velocity.y += this.acceleration.y * e, this.maxSpeed)) {
                                var o = i.length(this.velocity);
                                o > this.maxSpeed && i.scaleBy(this.velocity, this.maxSpeed / o)
                            }
                            this.position.x += this.velocity.x * e, this.position.y += this.velocity.y * e
                        }
                        if (this._doColor) {
                            var a = (this._eR - this._sR) * t + this._sR,
                                s = (this._eG - this._sG) * t + this._sG,
                                u = (this._eB - this._sB) * t + this._sB;
                            this.tint = i.combineRGBComponents(a, s, u)
                        }
                        return 0 !== this.rotationSpeed ? this.rotation += this.rotationSpeed * e : this.acceleration && !this.noRotation && (this.rotation = Math.atan2(this.velocity.y, this.velocity.x)), t
                    }, a.kill = function() {
                        this.emitter.recycle(this)
                    }, a.Sprite_Destroy = r.prototype.destroy, a.destroy = function() {
                        this.parent && this.parent.removeChild(this), this.Sprite_Destroy && this.Sprite_Destroy(), this.emitter = this.velocity = this.startColor = this.endColor = this.ease = this.next = this.prev = null
                    }, o.parseArt = function(e) {
                        var t;
                        for (t = e.length; t >= 0; --t) "string" == typeof e[t] && (e[t] = PIXI.Texture.fromImage(e[t]));
                        if (i.verbose)
                            for (t = e.length - 1; t > 0; --t)
                                if (e[t].baseTexture != e[t - 1].baseTexture) {
                                    window.console;
                                    break
                                }
                        return e
                    }, o.parseData = function(e) {
                        return e
                    }, t.exports = o
                }, {
                    "./ParticleUtils": 4
                }],
                4: [function(e, t, n) {
                    "use strict";
                    var i = PIXI.BLEND_MODES || PIXI.blendModes,
                        r = PIXI.Texture,
                        o = {};
                    o.verbose = !1;
                    var a = o.DEG_TO_RADS = Math.PI / 180,
                        s = o.EMPTY_TEXTURE = r.EMPTY;
                    s.on = s.destroy = s.once = s.emit = function() {}, o.rotatePoint = function(e, t) {
                        if (e) {
                            e *= a;
                            var n = Math.sin(e),
                                i = Math.cos(e),
                                r = t.x * i - t.y * n,
                                o = t.x * n + t.y * i;
                            t.x = r, t.y = o
                        }
                    }, o.combineRGBComponents = function(e, t, n) {
                        return e << 16 | t << 8 | n
                    }, o.normalize = function(e) {
                        var t = 1 / o.length(e);
                        e.x *= t, e.y *= t
                    }, o.scaleBy = function(e, t) {
                        e.x *= t, e.y *= t
                    }, o.length = function(e) {
                        return Math.sqrt(e.x * e.x + e.y * e.y)
                    }, o.hexToRGB = function(e, t) {
                        t ? t.length = 0 : t = [], "#" == e.charAt(0) ? e = e.substr(1) : 0 === e.indexOf("0x") && (e = e.substr(2));
                        var n;
                        return 8 == e.length && (n = e.substr(0, 2), e = e.substr(2)), t.push(parseInt(e.substr(0, 2), 16)), t.push(parseInt(e.substr(2, 2), 16)), t.push(parseInt(e.substr(4, 2), 16)), n && t.push(parseInt(n, 16)), t
                    }, o.generateEase = function(e) {
                        var t = e.length,
                            n = 1 / t;
                        return function(i) {
                            var r, o, a = t * i | 0;
                            return r = (i - a * n) * t, o = e[a] || e[t - 1], o.s + r * (2 * (1 - r) * (o.cp - o.s) + r * (o.e - o.s))
                        }
                    }, o.getBlendMode = function(e) {
                        if (!e) return i.NORMAL;
                        for (e = e.toUpperCase(); e.indexOf(" ") >= 0;) e = e.replace(" ", "_");
                        return i[e] || i.NORMAL
                    }, t.exports = o
                }, {}],
                5: [function(require, module, exports) {
                    "use strict";
                    var ParticleUtils = require("./ParticleUtils"),
                        Particle = require("./Particle"),
                        PathParticle = function(e) {
                            Particle.call(this, e), this.path = null, this.initialRotation = 0, this.initialPosition = new PIXI.Point, this.movement = 0
                        },
                        s = Particle.prototype,
                        p = PathParticle.prototype = Object.create(s),
                        helperPoint = new PIXI.Point;
                    p.init = function() {
                        this.initialRotation = this.rotation, this.Particle_init(), this.path = this.extraData.path, this._doNormalMovement = !this.path, this.movement = 0, this.initialPosition.x = this.position.x, this.initialPosition.y = this.position.y
                    };
                    for (var MATH_FUNCS = ["pow", "sqrt", "abs", "floor", "round", "ceil", "E", "PI", "sin", "cos", "tan", "asin", "acos", "atan", "atan2", "log"], WHITELISTER = "[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]", index = MATH_FUNCS.length - 1; index >= 0; --index) WHITELISTER += "|" + MATH_FUNCS[index];
                    WHITELISTER = new RegExp(WHITELISTER, "g");
                    var parsePath = function(pathString) {
                        for (var rtn, matches = pathString.match(WHITELISTER), i = matches.length - 1; i >= 0; --i) MATH_FUNCS.indexOf(matches[i]) >= 0 && (matches[i] = "Math." + matches[i]);
                        return pathString = matches.join(""), eval("rtn = function(x){ return " + pathString + "; };"), rtn
                    };
                    p.update = function(e) {
                        var t = this.Particle_update(e);
                        if (t >= 0 && this.path) {
                            var n = (this.endSpeed - this.startSpeed) * t + this.startSpeed;
                            this.movement += n * e, helperPoint.x = this.movement, helperPoint.y = this.path(this.movement), ParticleUtils.rotatePoint(this.initialRotation, helperPoint), this.position.x = this.initialPosition.x + helperPoint.x, this.position.y = this.initialPosition.y + helperPoint.y
                        }
                    }, p.Particle_destroy = Particle.prototype.destroy, p.destroy = function() {
                        this.Particle_destroy(), this.path = this.initialPosition = null
                    }, PathParticle.parseArt = function(e) {
                        return Particle.parseArt(e)
                    }, PathParticle.parseData = function(e) {
                        var t = {};
                        if (e && e.path) try {
                            t.path = parsePath(e.path)
                        } catch (e) {
                            ParticleUtils.verbose, t.path = null
                        } else ParticleUtils.verbose, t.path = null;
                        return t
                    }, module.exports = PathParticle
                }, {
                    "./Particle": 3,
                    "./ParticleUtils": 4
                }],
                6: [function(e, t, n) {}, {}],
                7: [function(e, t, n) {
                    e("./polyfills.js"), n.ParticleUtils = e("./ParticleUtils.js"), n.Particle = e("./Particle.js"), n.Emitter = e("./Emitter.js"), n.PathParticle = e("./PathParticle.js"), n.AnimatedParticle = e("./AnimatedParticle.js"), e("./deprecation.js")
                }, {
                    "./AnimatedParticle.js": 1,
                    "./Emitter.js": 2,
                    "./Particle.js": 3,
                    "./ParticleUtils.js": 4,
                    "./PathParticle.js": 5,
                    "./deprecation.js": 6,
                    "./polyfills.js": 8
                }],
                8: [function(e, t, n) {
                    Array.prototype.shuffle || Object.defineProperty(Array.prototype, "shuffle", {
                        enumerable: !1,
                        writable: !1,
                        value: function() {
                            for (var e, t, n = this.length; n; e = Math.floor(Math.random() * n), t = this[--n], this[n] = this[e], this[e] = t);
                            return this
                        }
                    }), Array.prototype.random || Object.defineProperty(Array.prototype, "random", {
                        enumerable: !1,
                        writable: !1,
                        value: function() {
                            return this[Math.floor(Math.random() * this.length)]
                        }
                    })
                }, {}],
                9: [function(e, t, n) {
                    "use strict";
                    var i = "undefined" != typeof window ? window : GLOBAL;
                    if (i.PIXI.particles || (i.PIXI.particles = {}), void 0 !== t && t.exports) "undefined" == typeof PIXI && e("pixi.js"), t.exports = i.PIXI.particles || r;
                    else if ("undefined" == typeof PIXI) throw "pixi-particles requires pixi.js to be loaded first";
                    var r = e("./particles");
                    for (var o in r) i.PIXI.particles[o] = r[o]
                }, {
                    "./particles": 7,
                    "pixi.js": void 0
                }]
            }, {}, [9])(9)
        }), define("game/bigWinController", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "com/pixijs/pixi", "game/textSetup", "com/gsap/TimelineMax", "com/pixijs/pixi-particles", "com/gsap/TweenLite"], function(e) {
            function t() {
                P = new v.particles.Emitter(Z, [v.Texture.fromImage("hardCircle")], ae), S = y.getTicker(), S.add(d), y.lib._bigWinContainer.pixiContainer.addChild(Z), E = new v.particles.Emitter(ee, [v.Texture.fromImage("starParticle")], se), y.lib._bigWinContainer.pixiContainer.addChild(ee), O = new v.particles.Emitter(te, [v.Texture.fromImage("starParticle")], ue), y.lib._bigWinContainer.pixiContainer.addChild(te), y.lib._bigWinContainer.pixiContainer.visible = !1, A = y.lib._bigWinPyramid1.pixiContainer.y, R = y.lib._bigWinPyramid2.pixiContainer.y, k = y.lib._bigWinPyramid3.pixiContainer.y;
                var e = y.lib._bigWinPyramidContainer.pixiContainer;
                L = new v.Graphics, L.beginFill(0, 1), L.drawRect(0, 0, e.width, e.height), L.endFill(), e.addChild(L), e.mask = L, y.lib._bigWinBlackOverlay.pixiContainer.alpha = 0, y.lib._bigWinLightBurst.pixiContainer.alpha = 0, y.lib._bigWinPyramidContainer.pixiContainer.alpha = 0, y.lib._bigWinPlaque.pixiContainer.alpha = 0, c(), le.forEach(function(e) {
                    he.push(v.utils.TextureCache[e])
                }), ne = new v.extras.AnimatedSprite(he), ce.forEach(function(e) {
                    pe.push(v.utils.TextureCache[e])
                }), ne.scale.x = 2, ne.scale.y = 2, "desktopmini" === Q && (ne.scale.x = 1, ne.scale.y = 1), ne.loop = !1, ne.position.x += F, ne.position.y += N, ie = new v.extras.AnimatedSprite(pe), re = new v.extras.AnimatedSprite(pe), oe = new v.extras.AnimatedSprite(pe), y.lib._gameLayer.pixiContainer.addChild(ne), y.lib._bigWinPyramid1.pixiContainer.addChild(ie), y.lib._bigWinPyramid2.pixiContainer.addChild(re), y.lib._bigWinPyramid3.pixiContainer.addChild(oe), ie.animationSpeed = 1, re.animationSpeed = .8, oe.animationSpeed = .6
            }

            function n() {
                C = !0, P.emit = !0
            }

            function i() {
                M = !0, E.emit = !0
            }

            function r() {
                I = !0, O.emit = !0
            }

            function o(e) {
                switch (a(), e) {
                    case 0:
                        s();
                        break;
                    case 1:
                        u();
                        break;
                    case 2:
                        l()
                }
            }

            function a() {
                y.lib._bigWinPyramidContainer.pixiContainer.alpha = 0, y.lib._bigWinPyramid1.pixiContainer.y += 80, y.lib._bigWinPyramid2.pixiContainer.y += 70, y.lib._bigWinPyramid3.pixiContainer.y += 130, y.lib._bigWinContainer.pixiContainer.visible = !0, y.lib._bigWinLightBurst.pixiContainer.alpha = 0, y.lib._bigWinBlackOverlay.pixiContainer.alpha = 0, y.lib._bigWinText.visible = !0, y.lib._bigWinValue.visible = !0, b.setBigWin(), y.lib._bigWinValue.setText(" "), ne.gotoAndStop(0), ie.play(), re.play(), oe.play()
            }

            function s() {
                b.setBigWin(), T = new x({}), ne.visible = !0, ne.play(), T.to(y.lib._bigWinBlackOverlay.pixiContainer, 1, {
                    alpha: .8
                }).to(y.lib._bigWinPlaqueDropShadow.pixiContainer, 1, {
                    visible: !0,
                    alpha: 1
                }, "-=1").to(ne, .2, {}).call(function() {
                    ne.visible = !1, y.lib._bigWinPlaque.pixiContainer.alpha = 1
                }).call(function() {
                    c(), h(), n()
                }).to(y.lib._bigWinValue, 1, {
                    alpha: 1
                }).to(y.lib._bigWinText, 1, {
                    alpha: 1
                }, "-=1").to(y.lib._bigWinPyramidContainer.pixiContainer, .3, {
                    alpha: 1
                }, "-=0.3").to(y.lib._bigWinPyramid1.pixiContainer, .6, {
                    y: A
                }, "-=0.1").to(y.lib._bigWinPyramid2.pixiContainer, .6, {
                    y: R
                }, "-=0.3").to(y.lib._bigWinPyramid3.pixiContainer, .6, {
                    y: k
                }, "-=0.3")
            }

            function u() {
                b.setHugeWin(), T = new x({}), ne.visible = !0, ne.play(), T.to(y.lib._bigWinBlackOverlay.pixiContainer, 1, {
                    alpha: .8
                }).to(y.lib._bigWinPlaqueDropShadow.pixiContainer, 1, {
                    visible: !0,
                    alpha: 1
                }, "-=1").to(ne, .2, {}).call(function() {
                    ne.visible = !1, y.lib._bigWinPlaque.pixiContainer.alpha = 1
                }).call(function() {
                    c(), h(), n()
                }).to(y.lib._bigWinValue, 1, {
                    alpha: 1
                }).to(y.lib._bigWinText, 1, {
                    alpha: 1
                }, "-=1").to(y.lib._bigWinPyramidContainer.pixiContainer, .3, {
                    alpha: 1
                }, "-=0.3").to(y.lib._bigWinPyramid1.pixiContainer, .6, {
                    y: A
                }, "-=0.1").to(y.lib._bigWinPyramid2.pixiContainer, .6, {
                    y: R
                }, "-=0.3").to(y.lib._bigWinPyramid3.pixiContainer, .6, {
                    y: k
                }, "-=0.3").to({}, 3, {}).call(function() {
                    c(), h(), i(), n(), p()
                })
            }

            function l() {
                b.setMassiveWin(), T = new x({}), ne.visible = !0, ne.play(), T.to(y.lib._bigWinBlackOverlay.pixiContainer, 1, {
                    alpha: .8
                }).to(y.lib._bigWinPlaqueDropShadow.pixiContainer, 1, {
                    visible: !0,
                    alpha: 1
                }, "-=1").to(ne, .2, {}).call(function() {
                    ne.visible = !1, y.lib._bigWinPlaque.pixiContainer.alpha = 1
                }).call(function() {
                    c(), h(), n()
                }).to(y.lib._bigWinValue, 1, {
                    alpha: 1
                }, "-=0").to(y.lib._bigWinText, 1, {
                    alpha: 1
                }, "-=1").to(y.lib._bigWinPyramidContainer.pixiContainer, .3, {
                    alpha: 1
                }, "-=1").to(y.lib._bigWinPyramid1.pixiContainer, .6, {
                    y: A
                }, "-=0.1").to(y.lib._bigWinPyramid2.pixiContainer, .6, {
                    y: R
                }, "-=0.3").to(y.lib._bigWinPyramid3.pixiContainer, .6, {
                    y: k
                }, "-=0.3").to({}, 1, {}).call(function() {
                    c(), h(), i(), n(), p()
                }).to({}, 4, {}).call(function() {
                    c(), h(), n(), i(), r()
                })
            }

            function c() {
                D = new x, D.to(y.lib._bigWinText.scale, .7, {
                    x: 1.2,
                    y: 1.2
                }).to(y.lib._bigWinText.scale, .3, {
                    x: 1,
                    y: 1
                })
            }

            function h() {
                B = new x, B.to(y.lib._bigWinPlaque.pixiContainer.scale, .6, {
                    x: 1.1,
                    y: 1.1
                }).to(y.lib._bigWinPlaque.pixiContainer.scale, .5, {
                    x: 1,
                    y: 1
                })
            }

            function p() {
                y.lib._bigWinLightBurst.pixiContainer.alpha = .5, y.lib._bigWinLightBurst.pixiContainer.rotation = 0, w = new x({
                    repeat: -1
                }), w.to(y.lib._bigWinLightBurst.pixiContainer, 1, {
                    alpha: .2,
                    rotation: Math.PI,
                    ease: "Power0.easeNone"
                }).to(y.lib._bigWinLightBurst.pixiContainer, 1, {
                    alpha: .5,
                    rotation: 2 * Math.PI,
                    ease: "Power0.easeNone"
                })
            }

            function d() {
                C ? P.update(.001 * S.elapsedMS) : P.emit = !1, M ? E.update(.001 * S.elapsedMS) : E.emit = !1, I ? O.update(.001 * S.elapsedMS) : O.emit = !1
            }

            function f() {
                P.emit = !1, E.emit = !1, O.emit = !1, new K.to({}, 3, {
                    onComplete: function() {
                        C = !1, M = !1, I = !1, d()
                    }
                }), d()
            }

            function m() {
                T && T.kill(), w && w.kill(), g(y.lib._bigWinPlaque.pixiContainer, .7, 0), g(y.lib._bigWinPlaqueDropShadow.pixiContainer, .7, 0), g(y.lib._bigWinBlackOverlay.pixiContainer, .7, 0), g(y.lib._bigWinLightBurst.pixiContainer, .7, 0), g(y.lib._bigWinPyramidContainer.pixiContainer, .7, 0), g(y.lib._bigWinText, .7, 0), g(y.lib._bigWinValue, .7, 0), ie.stop(), re.stop(), oe.stop(), new K.to({}, 1, {
                    onComplete: function() {
                        y.lib._bigWinContainer.pixiContainer.visible = !1
                    }
                })
            }

            function _() {
                T && T.kill(), w && w.kill(), y.lib._bigWinPyramid1.pixiContainer.y = A, y.lib._bigWinPyramid2.pixiContainer.y = R, y.lib._bigWinPyramid3.pixiContainer.y = k, y.lib._bigWinPyramidContainer.pixiContainer.alpha = 1, y.lib._bigWinLightBurst.pixiContainer.alpha = 0, y.lib._bigWinValue.alpha = 1, y.lib._bigWinText.alpha = 1
            }

            function g(e, t, n) {
                e.visible || (e.visible = !0), new K.to(e, t, {
                    alpha: n
                })
            }
            var y = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                v = e("com/pixijs/pixi"),
                b = e("game/textSetup"),
                x = e("com/gsap/TimelineMax");
            e("com/pixijs/pixi-particles"), e("com/gsap/TweenLite");
            var T, w, S, P, C, E, M, O, I, A, R, k, L, D, B, F, N, j, G, U, W, H, X, z, V, J, q, Y, $, K = window.TweenLite,
                Q = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                Z = new v.Container,
                ee = new v.Container,
                te = new v.Container;
            switch (Q) {
                case "desktop":
                    1440, 810, F = 115, N = 135, j = 450, G = 100, U = 400, W = 100, H = 720, X = 360, z = .5, V = .2, J = 1, q = 1.6, Y = 2.5, $ = 1.5;
                    break;
                case "tablet":
                    1440, 810, F = 115, N = 135, j = 450, G = 100, U = 400, W = 80, H = 720, X = 360, z = .5, V = .2, J = 1, q = 1.6, Y = 2.5, $ = 1.5;
                    break;
                case "mobile":
                    960, 540, F = 65, N = 105, j = 280, G = 40, U = 130, W = 40, H = 480, X = 270, z = .3, V = .07, J = .5, q = 1, Y = 1.8, $ = .9;
                    break;
                case "desktopmini":
                    480, 320, F = 11, N = 55, j = 10, G = 20, U = 20, W = 30, H = 240, X = 160, z = .14, V = .04, J = .3, q = .8, Y = 1, $ = .2
            }
            var ne, ie, re, oe, ae = {
                    alpha: {
                        start: .97,
                        end: .22
                    },
                    scale: {
                        start: z,
                        end: V,
                        minimumScaleMultiplier: 1
                    },
                    color: {
                        start: "#fadf0f",
                        end: "#d17b19"
                    },
                    speed: {
                        start: 200,
                        end: 450,
                        minimumSpeedMultiplier: 1
                    },
                    acceleration: {
                        x: 0,
                        y: 5
                    },
                    maxSpeed: 0,
                    startRotation: {
                        min: -180,
                        max: 0
                    },
                    noRotation: !1,
                    rotationSpeed: {
                        min: 0,
                        max: 0
                    },
                    lifetime: {
                        min: .5,
                        max: .5
                    },
                    blendMode: "screen",
                    frequency: .008,
                    emitterLifetime: .31,
                    maxParticles: 1e3,
                    pos: {
                        x: 0,
                        y: 0
                    },
                    addAtBack: !1,
                    spawnType: "rect",
                    spawnRect: {
                        x: j,
                        y: G,
                        w: 500,
                        h: 200
                    }
                },
                se = {
                    alpha: {
                        start: 1,
                        end: .26
                    },
                    scale: {
                        start: J,
                        end: q,
                        minimumScaleMultiplier: 1
                    },
                    color: {
                        start: "#fff461",
                        end: "#ffd900"
                    },
                    speed: {
                        start: 250,
                        end: 150,
                        minimumSpeedMultiplier: .001
                    },
                    acceleration: {
                        x: 0,
                        y: 0
                    },
                    maxSpeed: 0,
                    startRotation: {
                        min: 0,
                        max: 360
                    },
                    noRotation: !1,
                    rotationSpeed: {
                        min: 270,
                        max: 360
                    },
                    lifetime: {
                        min: .25,
                        max: .75
                    },
                    blendMode: "add",
                    frequency: .001,
                    emitterLifetime: .7,
                    maxParticles: 50,
                    pos: {
                        x: 0,
                        y: 0
                    },
                    addAtBack: !1,
                    spawnType: "rect",
                    spawnRect: {
                        x: U,
                        y: W,
                        w: 700,
                        h: 450
                    }
                },
                ue = {
                    alpha: {
                        start: 1,
                        end: 0
                    },
                    scale: {
                        start: Y,
                        end: $,
                        minimumScaleMultiplier: 1
                    },
                    color: {
                        start: "#ff9ee7",
                        end: "#ff66c7"
                    },
                    speed: {
                        start: 150,
                        end: 95,
                        minimumSpeedMultiplier: 2
                    },
                    acceleration: {
                        x: 0,
                        y: 0
                    },
                    maxSpeed: 0,
                    startRotation: {
                        min: 0,
                        max: 360
                    },
                    noRotation: !1,
                    rotationSpeed: {
                        min: 0,
                        max: 100
                    },
                    lifetime: {
                        min: 2,
                        max: 2.4
                    },
                    blendMode: "add",
                    frequency: .008,
                    emitterLifetime: 3,
                    maxParticles: 200,
                    pos: {
                        x: H,
                        y: X
                    },
                    addAtBack: !0,
                    spawnType: "circle",
                    spawnCircle: {
                        x: 0,
                        y: 0,
                        r: 14
                    }
                },
                le = ["MeterFadeIn_00000", "MeterFadeIn_00001", "MeterFadeIn_00002", "MeterFadeIn_00003", "MeterFadeIn_00004", "MeterFadeIn_00005", "MeterFadeIn_00006", "MeterFadeIn_00007", "MeterFadeIn_00008", "MeterFadeIn_00009", "MeterFadeIn_00010", "MeterFadeIn_00011", "MeterFadeIn_00012", "MeterFadeIn_00013", "MeterFadeIn_00014", "MeterFadeIn_00015", "MeterFadeIn_00016", "MeterFadeIn_00017", "MeterFadeIn_00018", "MeterFadeIn_00019", "MeterFadeIn_00020", "MeterFadeIn_00021", "MeterFadeIn_00022", "MeterFadeIn_00023", "MeterFadeIn_00024", "MeterFadeIn_00025", "MeterFadeIn_00026", "MeterFadeIn_00027", "MeterFadeIn_00028", "MeterFadeIn_00029", "MeterFadeIn_00030", "MeterFadeIn_00031", "MeterFadeIn_00032", "MeterFadeIn_00033", "MeterFadeIn_00034", "MeterFadeIn_00035", "MeterFadeIn_00036", "MeterFadeIn_00037", "MeterFadeIn_00038", "MeterFadeIn_00039", "MeterFadeIn_00040", "MeterFadeIn_00041", "MeterFadeIn_00042", "MeterFadeIn_00043", "MeterFadeIn_00044", "MeterFadeIn_00045", "MeterFadeIn_00046", "MeterFadeIn_00047", "MeterFadeIn_00048", "MeterFadeIn_00049", "MeterFadeIn_00050", "MeterFadeIn_00051"],
                ce = ["PyramidSpin_00000", "PyramidSpin_00001", "PyramidSpin_00002", "PyramidSpin_00003", "PyramidSpin_00004", "PyramidSpin_00005", "PyramidSpin_00006", "PyramidSpin_00007", "PyramidSpin_00008", "PyramidSpin_00009", "PyramidSpin_00010", "PyramidSpin_00011", "PyramidSpin_00012", "PyramidSpin_00013", "PyramidSpin_00014", "PyramidSpin_00015", "PyramidSpin_00016", "PyramidSpin_00017", "PyramidSpin_00018", "PyramidSpin_00019", "PyramidSpin_00020"],
                he = [],
                pe = [];
            return {
                init: t,
                start: o,
                hide: m,
                skip: _,
                stop: f
            }
        }), define("skbJet/component/currencyHelper/Currency", [], function() {
            function e(e) {
                this.currencyData = e, this.decimalPrecision = Number(e.DECIMAL_PRECISION)
            }

            function t(e, t) {
                var n = Math.floor(e);
                if ("no" === t.USE_THOUSANDS_SEPARATOR) return n + "";
                for (var i = ""; n.toString().length > 3;) {
                    var r = n.toString().length - 3,
                        o = t.THOUSANDS_SEPARATOR;
                    o = "_" === o ? " " : o, i = o + n.toString().substring(r) + i, n = parseInt(n.toString().substring(0, r))
                }
                return i = n + i
            }

            function n(e, t, n) {
                if (!isNaN(e = Number(e))) {
                    if (n <= 0) return "";
                    var i = e.toFixed(n),
                        r = i.indexOf(".");
                    return -1 === r ? "" : t.DECIMAL_SEPARATOR + i.substring(r + 1)
                }
            }
            return e.prototype.formatBalance = function(e) {
                var i = t(Number(e), this.currencyData) + n(Number(e), this.currencyData, this.decimalPrecision);
                return "left" === this.currencyData.MAJOR_SYMBOL_ALIGNMENT ? i = "false" === this.currencyData.MAJOR_SYMBOL_PADDING_SPACE || !1 === this.currencyData.MAJOR_SYMBOL_PADDING_SPACE ? this.currencyData.MAJOR_SYMBOL + i : this.currencyData.MAJOR_SYMBOL + " " + i : "false" === this.currencyData.MAJOR_SYMBOL_PADDING_SPACE || !1 === this.currencyData.MAJOR_SYMBOL_PADDING_SPACE ? i += this.currencyData.MAJOR_SYMBOL : i = i + " " + this.currencyData.MAJOR_SYMBOL, i
            }, e.prototype.formatDecimal = function(e) {
                return e = Number(e), this.decimalPrecision <= 0 ? e : e.toFixed(this.decimalPrecision)
            }, e.prototype.formatFloat = function(e) {
                return e = Number(e), Number(this.decimalPrecision <= 0 ? e : e.toFixed(this.decimalPrecision))
            }, e.prototype.getCurrencyCode = function() {
                return this.currencyData["@currencyCode"]
            }, e
        }), define("skbJet/component/currencyHelper/currencyHelper", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/currencyHelper/Currency"], function(e, t) {
            function n(e) {
                if (Array.isArray(e.CurrencyResponse))
                    for (var n = 0; n < e.CurrencyResponse.length; n++) {
                        var i = new t(e.CurrencyResponse[n].CURRENCY);
                        d[i.getCurrencyCode()] = i
                    } else {
                        var i = new t(e.CurrencyResponse.CURRENCY);
                        d[p] = i
                    }
            }

            function i(e) {
                h = Number(e.serverConfig.denomamount), p = e.gameConfig.currencycode
            }

            function r(e, t) {
                return t || (t = p), d[t] ? d[t].formatBalance(e) : ""
            }

            function o(e) {
                return u(e.replace(/[^\d.]/g, ""))
            }

            function a(e, t) {
                return t || (t = p), d[t] ? d[t].formatDecimal(e) : ""
            }

            function s(e) {
                if (!isNaN(e = Number(e))) return parseInt(e)
            }

            function u(e, t) {
                return t || (t = p), d[t] ? d[t].formatFloat(e) : ""
            }

            function l(e) {
                return e * (1e3 * h) / 1e3
            }

            function c(e) {
                return 1e3 * e / (1e3 * h)
            }
            var h, p, d = {};
            return e.subscribe("platformMsg/ClientService/Game.Init", n), e.subscribe("platformMsg/Kernel/System.Init", i), {
                formatBalance: r,
                formatFloat: u,
                formatInteger: s,
                convertToNumber: o,
                formatDecimal: a,
                fromStakeUnits: l,
                toStakeUnits: c
            }
        }), define("skbJet/componentManchester/rgsModel/proxyFix", [], function() {
            function e(e, t, n) {
                var i;
                if (n = n || "@name", e instanceof Array) {
                    for (i = 0; i < e.length; ++i)
                        if (e[i][n] === t) return e[i]
                } else if (e[n] === t) return e
            }

            function t(e) {
                return e
            }

            function n(e) {
                return e instanceof Array ? e : void 0 !== e ? [e] : []
            }

            function i(e) {
                return parseFloat(e) || 0
            }

            function r(e) {
                return parseInt(e, 10) || 0
            }

            function o(e) {
                return "true" === e
            }

            function a(e) {
                return e instanceof Array ? e : e ? [e] : []
            }
            return Object.freeze({
                namedNode: e,
                singleNode: t,
                multipleNode: n,
                toNumber: i,
                toInt: r,
                toBoolean: o,
                array: a
            })
        }), define("skbJet/componentManchester/rgsModel/proxyCachedNode", ["require", "./proxyFix"], function(e) {
            "use strict";

            function t(e, t) {
                var n = e.call(t);
                return n instanceof Object && (n = Object.freeze(n)), n
            }
            var n = e("./proxyFix");
            return function(e, i) {
                function r(r, o, a) {
                    var s, u = e[r];
                    if (a = a || "", p[r] || (p[r] = Object.create(null)), !i[r]) throw new Error("No model for " + r);
                    return p[r][a] || (u && (s = n.namedNode(u, a, o)), s && (p[r][a] = t(i[r], s))), p[r][a]
                }

                function o(r) {
                    var o = e[r];
                    if (!i[r]) throw new Error("No model for " + r);
                    return p[r] || (o = n.multipleNode(o), p[r] = o && Object.freeze(o.map(function(e) {
                        return t(i[r], e)
                    }))), p[r]
                }

                function a(r, o) {
                    var a = e[r];
                    if (!i[r]) throw new Error("No model for " + r);
                    if (!p[r]) {
                        var s;
                        a = n.multipleNode(a), a && (a.forEach(function(e) {
                            var n = t(i[r], e);
                            void 0 !== n && (s = s || {}, s[e[o]] = n)
                        }), s instanceof Object && (s = Object.freeze(s))), p[r] = s
                    }
                    return p[r]
                }

                function s(r) {
                    var o = e[r];
                    if (!i[r]) throw new Error("No model for " + r);
                    return !p[r] && o && (p[r] = t(i[r], n.singleNode(o))), p[r]
                }

                function u(e, t) {
                    return function(n) {
                        return r(e, t, n)
                    }
                }

                function l(e) {
                    return function() {
                        return s(e)
                    }
                }

                function c(e) {
                    return function() {
                        return o(e)
                    }
                }

                function h(e, t) {
                    return function() {
                        return a(e, t)
                    }
                }
                var p = Object.create(null);
                return Object.freeze({
                    named: u,
                    single: l,
                    multiple: c,
                    mapped: h
                })
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/ActionInput", [], function() {
            "use strict";
            return function() {
                return {
                    Action: this.Action
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/Balances", [], function() {
            "use strict";
            return function() {
                return this
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/HighlightOutcome", ["require", "./../proxyFix", "./../proxyCachedNode"], function(e) {
            "use strict";

            function t(e) {
                return e["#text"] ? 0 === e["#text"].length ? [] : e["#text"].split(",") : Object.freeze(n.multipleNode(e.Cell).map(function(e) {
                    return e["@name"]
                }, {}))
            }
            var n = e("./../proxyFix"),
                i = e("./../proxyCachedNode"),
                r = {
                    Highlight: function() {
                        return {
                            type: this["@type"],
                            cells: t(this)
                        }
                    }
                };
            return function() {
                var e = i(this, r);
                return {
                    type: this["@type"],
                    Highlight: e.mapped("Highlight", "@name").call(this)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/proxyNode", ["require", "./proxyFix"], function(e) {
            "use strict";

            function t(e, t) {
                var n = e.call(t);
                return n instanceof Object && (n = Object.freeze(n)), n
            }
            var n = e("./proxyFix");
            return function(e, i) {
                function r(r) {
                    var o = e[r];
                    if (o) return o = n.multipleNode(o), Object.freeze(o.map(function(e) {
                        return t(i[r], e)
                    }))
                }

                function o(t) {
                    var r = e[t];
                    return Object.freeze(i[t].call(n.singleNode(r)))
                }

                function a(r, o) {
                    var a = e[r],
                        s = {};
                    if (a) return a = n.multipleNode(a), a.forEach(function(e) {
                        s[e[o]] = t(i[r], e)
                    }), Object.freeze(s)
                }
                return Object.freeze({
                    single: o,
                    multiple: r,
                    mapped: a
                })
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/JackpotOutcome", ["require", "./../proxyFix", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyNode"),
                i = {
                    Jackpot: function() {
                        return {
                            id: this["@id"],
                            level: t.toInt(this["@level"]),
                            value: t.toNumber(this["@value"])
                        }
                    }
                };
            return function() {
                return n(this, i).mapped("Jackpot", "@name")
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/LadderOutcome", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    Ladder: {
                        Value: t.toInt(this.Ladder["#text"]),
                        Level: t.namedNode(this.Ladder["@level"])
                    }
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/MultiplierOutcome", ["require", "./../proxyFix", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyCachedNode"),
                i = {
                    Multiplier: function() {
                        return t.toNumber(this["#text"])
                    }
                };
            return function() {
                return {
                    Multiplier: n(this, i).named("Multiplier")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/OutcomeDetail", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    Stage: this.Stage,
                    NextStage: this.NextStage,
                    Balance: t.toNumber(this.Balance),
                    GameStatus: this.GameStatus,
                    Settled: t.toNumber(this.Settled),
                    Pending: t.toNumber(this.Pending),
                    Payout: t.toNumber(this.Payout)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PatternSliderInput", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    BetPerPattern: t.toNumber(this.BetPerPattern),
                    PatternsBet: t.toNumber(this.PatternsBet)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PickerOutcome", ["require", "./../proxyFix", "./../proxyNode", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyNode"),
                i = e("./../proxyCachedNode"),
                r = {
                    Feature: function() {
                        var e = this["@value"],
                            n = this["@type"];
                        switch (n) {
                            case "credits":
                            case "multiplier":
                                e = t.toInt(e)
                        }
                        return {
                            type: n,
                            value: e
                        }
                    }
                },
                o = {
                    Pick: function() {
                        var e = n(this, r);
                        return {
                            name: this["@name"],
                            picked: t.toBoolean(this["@picked"]),
                            Feature: e.multiple("Feature")
                        }
                    }
                },
                a = {
                    Layer: function() {
                        var e = n(this, o);
                        return {
                            index: t.toInt(this["@index"]),
                            Pick: e.multiple("Pick")
                        }
                    }
                };
            return function() {
                return {
                    Layer: i(this, a).named("Layer")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PickerSummaryOutcome", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    awarded: t.toInt(this.Awarded),
                    incrementTriggered: t.toBoolean(this.IncrementTriggered),
                    initAwarded: t.toInt(this.InitAwarded),
                    maxPicksAwarded: t.toBoolean(this.MaxPicksAwarded),
                    pickCount: t.toInt(this.PickCount),
                    picksRemaining: t.toInt(this.PicksRemaining),
                    CurrentLayer: Object.freeze({
                        index: t.toInt(this.CurrentLayer["@index"]),
                        name: this.CurrentLayer["@name"]
                    })
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PopulationOutcome", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                if (this["#text"]) return this["#text"].split(",");
                var e = t.multipleNode(this.Entry);
                return {
                    stop: e.map(function(e) {
                        return t.toInt(e["@stripIndex"])
                    }),
                    map: e.reduce(function(e, n) {
                        return t.multipleNode(n.Cell).forEach(function(t) {
                            e[t["@name"]] = t["#text"]
                        }), e
                    }, {})
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PatternOutcome", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return this["#text"] ? this["#text"].split(",") : {
                    map: t.multipleNode(this.Pattern).reduce(function(e, n) {
                        return t.multipleNode(n.Cell).forEach(function(t) {
                            e[t["@name"]] = t["#text"]
                        }), e
                    }, {})
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PrizeOutcome", ["require", "./../proxyFix", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyCachedNode"),
                i = {
                    Prize: function() {
                        return {
                            betMultiplier: t.toInt(this["@betMultiplier"]),
                            multiplier: t.toInt(this["@multiplier"]),
                            name: this["@name"],
                            pay: t.toNumber(this["@pay"]),
                            payName: this["@payName"],
                            symbolCount: t.toInt(this["@symbolCount"]),
                            totalPay: t.toNumber(this["@totalPay"]),
                            ways: t.toInt(this["@ways"])
                        }
                    }
                };
            return function() {
                var e = n(this, i);
                return {
                    multiplier: t.toInt(this["@multiplier"]),
                    pay: t.toNumber(this["@pay"]),
                    stage: this["@stage"],
                    totalPay: t.toNumber(this["@totalPay"]),
                    type: this["@type"],
                    Prize: e.multiple("Prize").call(this)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/TriggerOutcome", ["require", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyNode"),
                n = {
                    Trigger: function() {
                        return {
                            name: this["@name"],
                            priority: this["@priority"],
                            stageConnector: this["@stageConnector"]
                        }
                    }
                };
            return function() {
                var e = t(this, n);
                return {
                    component: this["@component"],
                    stage: this["@stage"],
                    Triggers: e.mapped("Trigger", "@name")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/AwardCapOutcome", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    AwardCapExceeded: t.toBoolean(this.AwardCapExceeded)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/FreeSpinOutcome", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    Awarded: t.toInt(this.Awarded),
                    Count: t.toInt(this.Count),
                    Countdown: t.toInt(this.Countdown),
                    IncrementTriggered: t.toBoolean(this.IncrementTriggered),
                    InitAwarded: t.toInt(this.InitAwarded),
                    MaxAwarded: t.toBoolean(this.MaxAwarded),
                    MaxSpinsHit: t.toBoolean(this.MaxSpinsHit),
                    TotalAwarded: t.toInt(this.TotalAwarded)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PickerInput", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                var e = [],
                    n = t.multiple(this.Pick).reduce(function(t, n) {
                        var i = n["@name"];
                        return t[i] = n["#text"], e.push(i), t
                    }, {});
                return Object.freeze({
                    names: Object.freeze(e),
                    Picks: Object.freeze(n)
                })
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PlayerHistoryOutcome", ["require", "./../proxyCachedNode", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyCachedNode"),
                n = e("./../proxyFix"),
                i = {
                    PlayerHistory: function() {
                        return n.multipleNode(this.PastResult).reduce(function(e, t) {
                            return e[t["@index"]] = t["#text"], e
                        }, [])
                    }
                };
            return function() {
                return {
                    PlayerHistory: t(this, i).named("PlayerHistory")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/KeyValuePairOutcome", ["require", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyNode"),
                n = {
                    Mapping: function() {
                        return this["@value"]
                    }
                };
            return function() {
                return t(this, n).mapped("Mapping", "@key")
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/PromotionalFreeSpin", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    count: t.toInt(this["@count"])
                }
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/SymbolListOutcome", ["require", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyCachedNode"),
                n = {
                    Symbol: function() {
                        return {
                            cell: this["@cellName"],
                            from: this["@moveFrom"],
                            symbol: this["@name"],
                            transform: this["@transforms"]
                        }
                    }
                };
            return function() {
                var e = t(this, n);
                return this.Symbol ? e.multiple("Symbol").call(this) : void 0
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse/WagerInput", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                var e = t.multipleNode(this.Wager).map(function(e) {
                    return Object.freeze({
                        name: e["@name"],
                        wager: t.toInt(e["#text"])
                    })
                });
                return Object.freeze({
                    Wager: Object.freeze(e)
                })
            }
        }), define("skbJet/componentManchester/rgsModel/GameLogicResponse", ["require", "./proxyCachedNode", "./GameLogicResponse/ActionInput", "./GameLogicResponse/Balances", "./GameLogicResponse/HighlightOutcome", "./GameLogicResponse/JackpotOutcome", "./GameLogicResponse/LadderOutcome", "./GameLogicResponse/MultiplierOutcome", "./GameLogicResponse/OutcomeDetail", "./GameLogicResponse/PatternSliderInput", "./GameLogicResponse/PickerOutcome", "./GameLogicResponse/PickerSummaryOutcome", "./GameLogicResponse/PopulationOutcome", "./GameLogicResponse/PatternOutcome", "./GameLogicResponse/PrizeOutcome", "./GameLogicResponse/TriggerOutcome", "./GameLogicResponse/AwardCapOutcome", "./GameLogicResponse/FreeSpinOutcome", "./GameLogicResponse/PickerInput", "./GameLogicResponse/PlayerHistoryOutcome", "./GameLogicResponse/KeyValuePairOutcome", "./GameLogicResponse/PromotionalFreeSpin", "./GameLogicResponse/SymbolListOutcome", "./GameLogicResponse/WagerInput"], function(e) {
            "use strict";
            var t = e("./proxyCachedNode"),
                n = Object.freeze({
                    ActionInput: e("./GameLogicResponse/ActionInput"),
                    Balances: e("./GameLogicResponse/Balances"),
                    HighlightOutcome: e("./GameLogicResponse/HighlightOutcome"),
                    JackpotOutcome: e("./GameLogicResponse/JackpotOutcome"),
                    LadderOutcome: e("./GameLogicResponse/LadderOutcome"),
                    MultiplierOutcome: e("./GameLogicResponse/MultiplierOutcome"),
                    OutcomeDetail: e("./GameLogicResponse/OutcomeDetail"),
                    PatternSliderInput: e("./GameLogicResponse/PatternSliderInput"),
                    PickerOutcome: e("./GameLogicResponse/PickerOutcome"),
                    PickerSummaryOutcome: e("./GameLogicResponse/PickerSummaryOutcome"),
                    PopulationOutcome: e("./GameLogicResponse/PopulationOutcome"),
                    PatternOutcome: e("./GameLogicResponse/PatternOutcome"),
                    PrizeOutcome: e("./GameLogicResponse/PrizeOutcome"),
                    TriggerOutcome: e("./GameLogicResponse/TriggerOutcome"),
                    AwardCapOutcome: e("./GameLogicResponse/AwardCapOutcome"),
                    FreeSpinOutcome: e("./GameLogicResponse/FreeSpinOutcome"),
                    PickerInput: e("./GameLogicResponse/PickerInput"),
                    PlayerHistoryOutcome: e("./GameLogicResponse/PlayerHistoryOutcome"),
                    KeyValuePairOutcome: e("./GameLogicResponse/KeyValuePairOutcome"),
                    PromotionalFreeSpin: e("./GameLogicResponse/PromotionalFreeSpin"),
                    SymbolListOutcome: e("./GameLogicResponse/SymbolListOutcome"),
                    WagerInput: e("./GameLogicResponse/WagerInput")
                });
            return function(e) {
                var i = t(e, n);
                return Object.freeze({
                    ActionInput: i.named("ActionInput"),
                    Balances: i.single("Balances")(),
                    HighlightOutcome: i.named("HighlightOutcome"),
                    JackpotOutcome: i.mapped("JackpotOutcome", "@name"),
                    LadderOutcome: i.named("LadderOutcome"),
                    MultiplierOutcome: i.named("MultiplierOutcome"),
                    OutcomeDetail: i.single("OutcomeDetail")(),
                    PatternSliderInput: i.single("PatternSliderInput"),
                    PickerOutcome: i.named("PickerOutcome"),
                    PickerSummaryOutcome: i.named("PickerSummaryOutcome"),
                    PopulationOutcome: i.named("PopulationOutcome"),
                    PatternOutcome: i.named("PatternOutcome"),
                    PrizeOutcome: i.named("PrizeOutcome"),
                    TriggerOutcome: i.named("TriggerOutcome"),
                    AwardCapOutcome: i.named("AwardCapOutcome"),
                    FreeSpinOutcome: i.named("FreeSpinOutcome"),
                    PickerInput: i.named("PickerInput"),
                    PlayerHistoryOutcome: i.named("PlayerHistoryOutcome"),
                    KeyValuePairOutcome: i.named("KeyValuePairOutcome"),
                    PromotionalFreeSpin: i.single("PromotionalFreeSpin"),
                    SymbolListOutcome: i.named("SymbolListOutcome"),
                    WagerInput: i.named("WagerInput")
                })
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/AwardCapInfo", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return t.toNumber(this.CurrencyCap.AwardCap)
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/PaytableStatistics", [], function() {
            "use strict";
            return function() {
                return {
                    description: this["@description"],
                    maxRTP: this["@maxRTP"],
                    minRTP: this["@minRTP"],
                    name: this["@name"],
                    type: this["@type"]
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/PatternSliderInfo", ["require", "./../proxyFix", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyCachedNode"),
                i = {
                    BetInfo: function() {
                        return {
                            min: this["@min"],
                            max: this["@max"],
                            Step: t.multipleNode(this.Step)
                        }
                    },
                    PatternInfo: function() {
                        return {
                            min: this["@min"],
                            max: this["@max"],
                            Step: t.multipleNode(this.Step)
                        }
                    }
                };
            return function() {
                var e = n(this, i);
                return {
                    BetInfo: e.single("BetInfo"),
                    PatternInfo: e.single("PatternInfo")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/StripInfo", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return t.multipleNode(this.Strip).map(function(e) {
                    if (e["#text"]) return e["#text"].split(",");
                    var n = t.multipleNode(e.Stop);
                    return Object.keys(n).map(function(e) {
                        return n[e]["@symbolID"]
                    })
                })
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/LadderInfo", ["require", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyCachedNode"),
                n = {
                    InputEvents: function() {
                        return {
                            isExtraIncrement: this["@isExtraIncrement"],
                            ladderIncrement: this["@ladderIncrement"]
                        }
                    },
                    OutputEvents: function() {
                        return {
                            minTriggerCount: this["@minTriggerCount"],
                            extraIncrement: this["@extraIncrement"]
                        }
                    }
                };
            return function() {
                var e = t(this, n);
                return {
                    InputEvents: e.mapped("InputEvents", "@triggerName"),
                    OutputEvents: e.mapped("OutputEvents", "@triggerName")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/TriggerInfo", ["require", "./../proxyFix", "./../proxyNode"], function(e) {
            "use strict";

            function t(e) {
                var t = e["@category"];
                if (!(r[t] instanceof Function)) throw new Error('No compiler for Condition with @category "' + t + '"');
                return r[t](e)
            }
            var n = e("./../proxyFix"),
                i = e("./../proxyNode"),
                r = {
                    TRIGGER: function(e) {
                        return function(t) {
                            return e["@value"] === t
                        }
                    },
                    OR: function(e) {
                        var i = n.multipleNode(e.Condition).map(function(e) {
                            return t(e)
                        });
                        return function(e) {
                            return i.some(function(t) {
                                return t(e)
                            })
                        }
                    },
                    AND: function(e) {
                        var i = n.multipleNode(e.Condition).map(function(e) {
                            return t(e)
                        });
                        return function(e) {
                            return i.every(function(t) {
                                return t(e)
                            })
                        }
                    },
                    NOT: function(e) {
                        var n = t(e.Condition);
                        return function(e) {
                            return !n(e)
                        }
                    }
                },
                o = {
                    Trigger: function() {
                        return {
                            priority: n.toInt(this["@priority"]),
                            Condition: t(this.Condition)
                        }
                    }
                };
            return function() {
                return {
                    Trigger: i(this, o).mapped("Trigger", "@name")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/KeyValuePairInfo", ["require", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyNode"),
                n = {
                    Mapping: function() {
                        return this["@value"]
                    }
                };
            return function() {
                return t(this, n).mapped("Mapping", "@key")
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/KeyValueListInfo", ["require", "./../proxyFix", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyNode"),
                i = {
                    Mapping: function() {
                        return t.multipleNode(this.Entry).map(function(e) {
                            return e["@value"]
                        })
                    }
                };
            return function() {
                return n(this, i).mapped("Mapping", "@key")
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/MultiplierInfo", ["require", "./../proxyFix", "./../proxyNode", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyNode"),
                i = e("./../proxyCachedNode"),
                r = {
                    Action: function() {
                        return {
                            strategy: this["@strategy"],
                            value: t.toInt(this["@value"])
                        }
                    }
                },
                o = {
                    Trigger: function() {
                        return {
                            Action: n(this, r).multiple("Action")
                        }
                    }
                };
            return function() {
                return {
                    Trigger: i(this, o).named("Trigger")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/PickerInfo", ["require", "./../proxyFix", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyNode"),
                i = {
                    Layer: function() {
                        return t.multipleNode(this.Pick).reduce(function(e, t) {
                            return e[t["@name"]] = t["@cellName"], e
                        }, {})
                    }
                };
            return function() {
                var e = n(this, i);
                return {
                    InitialLayer: t.toInt(this.InitialLayer),
                    InitialPickCount: t.toInt(this.InitialPickCount),
                    MaxPicksPerTurn: t.toInt(this.MaxPicksPerTurn),
                    MaxTotalPicks: t.toInt(this.MaxTotalPicks),
                    MinPicks: t.toInt(this.MinPicks),
                    Layers: e.mapped("Layer", "@index")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/PrizeInfo", ["require", "./../proxyFix", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyNode"),
                i = {
                    PrizePay: function() {
                        return t.toInt(this["@value"])
                    }
                },
                r = {
                    Prize: function() {
                        var e = n(this, i);
                        return {
                            name: this["@name"],
                            PrizePay: e.mapped("PrizePay", "@count")
                        }
                    }
                };
            return function() {
                return {
                    Prize: n(this, r).multiple("Prize")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/SelectiveStackingInfo", ["require", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyNode"),
                n = {
                    SelectiveStackingSymbolList: function() {
                        return this["@name"]
                    }
                };
            return function() {
                var e = t(this, n);
                return {
                    DefaultSchema: this.DefaultSchema,
                    SelectiveStackingSymbolList: e.multiple("SelectiveStackingSymbolList")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/Jackpot", ["require", "./../proxyNode"], function(e) {
            "use strict";
            var t = e("./../proxyNode"),
                n = {
                    BetBandMap: function() {
                        return {
                            bandId: this["@bandId"]
                        }
                    }
                };
            return function() {
                var e = t(this, n);
                return {
                    id: this["@id"],
                    BetBandMap: e.mapped("BetBandMap", "@totalBet")
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/ChipValues", [], function() {
            "use strict";
            return function() {
                return {
                    min: this["@min"],
                    max: this["@min"],
                    Chip: this.Chip
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/GameData", ["require", "./../proxyCachedNode", "./ChipValues", "./KeyValuePairInfo"], function(e) {
            "use strict";
            var t = e("./../proxyCachedNode"),
                n = Object.freeze({
                    ChipValues: e("./ChipValues"),
                    KeyValuePairInfo: e("./KeyValuePairInfo")
                });
            return function() {
                var e = t(this, n);
                return Object.freeze({
                    ChipValues: e.single("ChipValues"),
                    KeyValuePairInfo: e.named("KeyValuePairInfo")
                })
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/TableInfo", ["require", "./../proxyFix", "./../proxyCachedNode"], function(e) {
            "use strict";
            var t = e("./../proxyFix"),
                n = e("./../proxyCachedNode"),
                i = {
                    Chips: function() {
                        return t.multipleNode(this.Chip)
                    }
                };
            return function() {
                return {
                    Chips: n(this, i).named("Chips", "@currency"),
                    MaxSpotBetDivider: t.toNumber(this.MaxSpotBetDivider),
                    MinChipValue: t.toNumber(this.MinChipValue),
                    SideBetMax: t.toNumber(this.SideBetMax),
                    SideBetMin: t.toNumber(this.SideBetMin),
                    TableMax: t.toNumber(this.TableMax),
                    TableMin: t.toNumber(this.TableMin)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/GameBetInfo", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    MinChipValue: t.toNumber(this.MinChipValue),
                    MinBet: t.toNumber(this.MinBet),
                    MaxBet: t.toNumber(this.MaxBet),
                    MinSideBet: t.toNumber(this.MinSideBet),
                    MaxSideBet: t.toNumber(this.MaxSideBet)
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse/PersonalProgressiveInfo", ["require", "./../proxyFix"], function(e) {
            "use strict";
            var t = e("./../proxyFix");
            return function() {
                return {
                    precision: t.toNumber(this["@precision"]),
                    strategy: this["@strategy"]
                }
            }
        }), define("skbJet/componentManchester/rgsModel/PaytableResponse", ["require", "./proxyCachedNode", "./PaytableResponse/AwardCapInfo", "./PaytableResponse/PaytableStatistics", "./PaytableResponse/PatternSliderInfo", "./PaytableResponse/StripInfo", "./PaytableResponse/LadderInfo", "./PaytableResponse/TriggerInfo", "./PaytableResponse/KeyValuePairInfo", "./PaytableResponse/KeyValueListInfo", "./PaytableResponse/MultiplierInfo", "./PaytableResponse/PickerInfo", "./PaytableResponse/PrizeInfo", "./PaytableResponse/SelectiveStackingInfo", "./PaytableResponse/Jackpot", "./PaytableResponse/GameData", "./PaytableResponse/TableInfo", "./PaytableResponse/GameBetInfo", "./PaytableResponse/PersonalProgressiveInfo"], function(e) {
            "use strict";
            var t = e("./proxyCachedNode"),
                n = Object.freeze({
                    AwardCapInfo: e("./PaytableResponse/AwardCapInfo"),
                    PaytableStatistics: e("./PaytableResponse/PaytableStatistics"),
                    PatternSliderInfo: e("./PaytableResponse/PatternSliderInfo"),
                    StripInfo: e("./PaytableResponse/StripInfo"),
                    LadderInfo: e("./PaytableResponse/LadderInfo"),
                    TriggerInfo: e("./PaytableResponse/TriggerInfo"),
                    KeyValuePairInfo: e("./PaytableResponse/KeyValuePairInfo"),
                    KeyValueListInfo: e("./PaytableResponse/KeyValueListInfo"),
                    MultiplierInfo: e("./PaytableResponse/MultiplierInfo"),
                    PickerInfo: e("./PaytableResponse/PickerInfo"),
                    PrizeInfo: e("./PaytableResponse/PrizeInfo"),
                    SelectiveStackingInfo: e("./PaytableResponse/SelectiveStackingInfo"),
                    Jackpot: e("./PaytableResponse/Jackpot"),
                    GameData: e("./PaytableResponse/GameData"),
                    TableInfo: e("./PaytableResponse/TableInfo"),
                    GameBetInfo: e("./PaytableResponse/GameBetInfo"),
                    PersonalProgressiveInfo: e("./PaytableResponse/PersonalProgressiveInfo")
                });
            return function(e) {
                var i = t(e, n);
                return Object.freeze({
                    AwardCapInfo: i.single("AwardCapInfo"),
                    PaytableStatistics: i.single("PaytableStatistics"),
                    PatternSliderInfo: i.single("PatternSliderInfo"),
                    StripInfo: i.named("StripInfo"),
                    LadderInfo: i.named("LadderInfo"),
                    TriggerInfo: i.named("TriggerInfo"),
                    KeyValuePairInfo: i.named("KeyValuePairInfo"),
                    KeyValueListInfo: i.named("KeyValueListInfo"),
                    MultiplierInfo: i.named("MultiplierInfo"),
                    PickerInfo: i.named("PickerInfo"),
                    PrizeInfo: i.named("PrizeInfo"),
                    SelectiveStackingInfo: i.single("SelectiveStackingInfo"),
                    Jackpot: i.single("Jackpot"),
                    GameData: i.single("GameData"),
                    TableInfo: i.named("TableInfo"),
                    GameBetInfo: i.single("GameBetInfo"),
                    PersonalProgressiveInfo: i.single("PersonalProgressiveInfo")
                })
            }
        }), define("skbJet/componentManchester/rgsModel/CurrencyResponse", ["require", "./proxyFix"], function(e) {
            "use strict";
            var t = e("./proxyFix");
            return function(e) {
                return function(n, i, r) {
                    function o(e) {
                        return (e * r).toFixed(c)
                    }

                    function a(e, t) {
                        var n, i = o(e).split("."),
                            r = (+i[0]).toString(),
                            a = i[1] || 0;
                        if (d)
                            for (; n = r.match(/^(\d+)(\d\d\d)(.*)$/);) r = n[1].concat(d, n[2], n[3]);
                        return t = t && 0 == +a, h.concat(r, t ? "" : f, t ? "" : a, p)
                    }
                    i = i.toLowerCase();
                    var s = e.filter(function(e) {
                        return e["@currencyCode"] === n
                    });
                    s = s.find(function(e) {
                        return e["@language"] && e["@language"].toLowerCase() === i
                    }) || s.find(function(e) {
                        return void 0 === e["@language"]
                    });
                    var u = s["@currencyCode"],
                        l = "true" === s.MAJOR_SYMBOL_PADDING_SPACE ? " " : "",
                        c = t.toInt(s.DECIMAL_PRECISION),
                        h = "left" === s.MAJOR_SYMBOL_ALIGNMENT ? s.MAJOR_SYMBOL + l : "",
                        p = "right" === s.MAJOR_SYMBOL_ALIGNMENT ? l + s.MAJOR_SYMBOL : "",
                        d = ("yes" === s.USE_THOUSANDS_SEPARATOR ? s.THOUSANDS_SEPARATOR : "").replace("_", " "),
                        f = (c ? s.DECIMAL_SEPARATOR : "").replace("_", " ");
                    return r = r || Math.pow(10, -c), Object.freeze({
                        toString: function() {
                            return u
                        },
                        toStakeUnits: function(e) {
                            return e / r
                        },
                        toCurrency: o,
                        formatFloat: function(e, t) {
                            return a(e / r, t)
                        },
                        format: a,
                        formatShort: function(e) {
                            return a(e, 1)
                        },
                        formatLong: function(e) {
                            return a(e, 0)
                        }
                    })
                }
            }
        }), define("skbJet/componentManchester/rgsModel/rgsModel", ["require", "skbJet/component/gameMsgBus/GameMsgBus", "./GameLogicResponse", "./PaytableResponse", "./CurrencyResponse"], function(e) {
            "use strict";

            function t(e) {
                s.gameLogic = r(e.GameLogicResponse), s.paytable = o(e.PaytableResponse), s.currency = a(e.CurrencyResponse)
            }

            function n(e) {
                s.gameLogic = r(e.response)
            }
            var i = e("skbJet/component/gameMsgBus/GameMsgBus"),
                r = e("./GameLogicResponse"),
                o = e("./PaytableResponse"),
                a = e("./CurrencyResponse"),
                s = Object.seal({
                    gameLogic: {},
                    paytable: {},
                    currency: {}
                });
            return i.subscribe("platformMsg/ClientService/Game.Init", t), i.subscribe("onResolveStage", n), s
        }), define("game/metersController", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/currencyHelper/currencyHelper", "skbJet/componentManchester/rgsModel/rgsModel", "com/pixijs/pixi", "game/textSetup"], function(e) {
            function t(e) {
                E = e.serverConfig
            }

            function n() {
                b = A.paytable.PatternSliderInfo().BetInfo().Step, Array.isArray(b) || (b = [b]), w = A.paytable.PatternSliderInfo().PatternInfo(), S = A.gameLogic.PatternSliderInput().PatternsBet, P = A.gameLogic.PatternSliderInput().BetPerPattern, x = w.Step.indexOf(S.toString()), "freespin" === E.paramGame.playMode && (P = Number(E.freespin_bet) / Number(E.denomamount), S = Number(E.freespin_lines)), "desktop" !== L && (M.lib._changeBet.show(!1), i(), r(1, w.Step.indexOf(S.toString())), r(0, b.indexOf(P.toString()))), O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "list",
                            name: "patternsBet",
                            text: "Lines",
                            enabled: 1,
                            valueText: w.Step,
                            values: w.Step,
                            value: S
                        }]
                    }
                }), O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "list",
                            name: "betPerPattern",
                            text: "Coin Value",
                            enabled: 1,
                            valueText: b.map(function(e) {
                                return I.formatBalance(I.fromStakeUnits(e))
                            }),
                            values: b,
                            value: P
                        }]
                    }
                }), O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            name: "stake",
                            text: "Stake",
                            type: "stake",
                            enabled: 0,
                            value: 0,
                            valueText: "0"
                        }]
                    }
                }), s(), u(P), o(S)
            }

            function i() {
                var e, t, n = A.paytable.PatternSliderInfo().BetInfo().Step;
                "mobile" === L ? (e = 101, t = M.lib._changeBet.pixiContainer.width / 2 - 4) : "tablet" === L ? (e = 151, t = M.lib._changeBet.pixiContainer.width / 2 - 7) : -1 !== L.indexOf("mini") && (e = 54, t = M.lib._changeBet.pixiContainer.width / 2 - 7);
                var i = n.map(function(e, t) {
                    var i = R.Sprite.fromFrame("pageTab_off");
                    return i.anchor.x = .5, i.x = (i.width + 3) * (t - n.length / 2 + 1), i
                });
                M.lib._changeBet.sprites._lineBet.pipContainer = new R.Container, M.lib._changeBet.sprites._lineBet.pixiContainer.addChild(M.lib._changeBet.sprites._lineBet.pipContainer), M.lib._changeBet.sprites._lineBet.pipContainer.addChild.apply(M.lib._changeBet.sprites._lineBet.pipContainer, i), M.lib._changeBet.sprites._lineBet.pipContainer.transform.position.x = t, M.lib._changeBet.sprites._lineBet.pipContainer.transform.position.y = e;
                var r = A.paytable.PatternSliderInfo().PatternInfo().Step,
                    o = r.map(function(e, t) {
                        var n = R.Sprite.fromFrame("pageTab_off");
                        return n.anchor.x = .5, n.x = (n.width + 3) * (t - r.length / 2 + 1), n
                    });
                M.lib._changeBet.sprites._multiwayLines.pipContainer = new R.Container, M.lib._changeBet.sprites._multiwayLines.pixiContainer.addChild(M.lib._changeBet.sprites._multiwayLines.pipContainer), M.lib._changeBet.sprites._multiwayLines.pipContainer.addChild.apply(M.lib._changeBet.sprites._multiwayLines.pipContainer, o), M.lib._changeBet.sprites._multiwayLines.pipContainer.transform.position.x = t, M.lib._changeBet.sprites._multiwayLines.pipContainer.transform.position.y = e
            }

            function r(e, t) {
                0 === e ? (M.lib._lineBet.pipContainer.children.forEach(function(e) {
                    e.setTexture(R.Texture.fromImage("pageTab_off"))
                }), M.lib._lineBet.pipContainer.children[t].setTexture(R.Texture.fromImage("pageTab_on"))) : (M.lib._multiwayLines.pipContainer.children.forEach(function(e) {
                    e.setTexture(R.Texture.fromImage("pageTab_off"))
                }), M.lib._multiwayLines.pipContainer.children[t].setTexture(R.Texture.fromImage("pageTab_on")))
            }

            function o(e) {
                var t;
                t = 80 === e ? k.getLineMeterText(!0, 40) : k.getLineMeterText(!1, e), M.lib._linesValue.setText(t), M.lib._linesText.setText(e + k.getLinesText()), M.lib._linesValue.pixiContainer.$text.style.padding = 5
            }

            function a(e) {
                M.lib._balanceValue.setText(e.balance), M.lib._balanceValue.pixiContainer.$text.style.padding = 5
            }

            function s() {
                C = I.fromStakeUnits(P) * S, M.lib._totalBetValue.setText(I.formatBalance(C)), M.lib._totalBetValue.pixiContainer.$text.style.padding = 5, "desktop" !== L && (M.lib._totalBetValueDup.setText(I.formatBalance(C)), M.lib._totalBetValueDup.pixiContainer.$text.style.padding = 5), O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "stake",
                        event: "change",
                        params: [C, I.formatBalance(C)]
                    }
                })
            }

            function u(e) {
                M.lib._lineBetValue.setText(I.formatBalance(I.fromStakeUnits(e))), M.lib._lineBetValue.pixiContainer.$text.style.padding = 5
            }

            function l(e) {
                x = w.Step.indexOf(e), S = w.Step[x], o(Number(S)), "desktop" !== L && r(1, x), s()
            }

            function c(e) {
                return x = w.Step.indexOf(S.toString()), S = w.Step[x + e], w.Step[x + e] && o(Number(S)), s(), "freespin" === E.paramGame.playMode && (S = Number(E.freespin_lines)), O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "patternsBet",
                        event: "change",
                        params: [S, S]
                    }
                }), "desktop" !== L && r(1, x + e), S
            }

            function h(e) {
                T = b.indexOf(e), P = b[T], M.lib._lineBetValue.setText(I.formatBalance(I.fromStakeUnits(P))), "desktop" !== L && r(0, T), s()
            }

            function p(e) {
                return T = b.indexOf(P.toString()), P = b[T + e], M.lib._lineBetValue.setText(I.formatBalance(I.fromStakeUnits(P))), s(), O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "betPerPattern",
                        event: "change",
                        params: [P]
                    }
                }), "desktop" !== L && r(0, T + e), P
            }

            function d(e) {
                "BaseGame" === e && O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.DeductStake",
                    data: C
                }), O.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.PlayData",
                    data: {
                        ActionInput: {
                            Action: "play"
                        },
                        PatternSliderInput: {
                            BetPerPattern: P,
                            PatternsBet: S
                        }
                    }
                }), O.publish("nextState")
            }

            function f(e) {
                "patternsBet" === e.option ? l(e.value.toString()) : "betPerPattern" === e.option && h(e.value)
            }

            function m() {
                M.lib._balanceMeter.show(!0), M.lib._promoFreeSpinsMeter.show(!1)
            }

            function _(e) {
                g(e), M.lib._promoFreeSpinsMeter.show(!0), M.lib._balanceMeter.show(!1)
            }

            function g(e) {
                var t = Number(e.response.PromotionalFreeSpin["@count"]);
                t <= 0 && (t = 0), M.lib._promoFreeSpinsValue.setText(t)
            }

            function y() {
                return S
            }

            function v() {
                return P
            }
            var b, x, T, w, S, P, C, S, E, M = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                O = e("skbJet/component/gameMsgBus/GameMsgBus"),
                I = e("skbJet/component/currencyHelper/currencyHelper"),
                A = e("skbJet/componentManchester/rgsModel/rgsModel"),
                R = e("com/pixijs/pixi"),
                k = e("game/textSetup"),
                L = window.location.search.match(/&?assetPack=([^&]+)&?/)[1];
            return O.subscribe("platformMsg/ConsoleService/Game.Control", f), O.subscribe("platformMsg/ClientService/Account.Balances", a), {
                onSystemInit: t,
                onGameInit: n,
                onBeforeRequest: d,
                updateTotalBet: s,
                updateLineBet: p,
                updateMultiwayLines: c,
                betValues: b,
                patternInfo: y,
                patternsBet: v,
                betPerPattern: P,
                showBalanceMeter: m,
                showPFSMeter: _,
                setFreeSpinNum: g
            }
        }), define("game/buttonSpriteController", [], function() {
            function e(e, n, i) {
                this.sprite = e, this.activeImg = n + "-Up", this.inactiveImg = n + "Inactive", this.overImg = n + "-Over", this.pressedImg = n + "-Down", this.enabled = !0;
                var r = this;
                r.options = {}, r.options.avoidMultiTouch = !1, i && i.avoidMultiTouch && (r.options.avoidMultiTouch = !0), r.sprite.on("mouseover", function() {
                    if (r.enabled) try {
                        e.setImage(r.overImg)
                    } catch (e) {}
                }), r.sprite.on("mouseout", function() {
                    r.enabled && r.sprite.setImage(r.activeImg)
                }), r.sprite.on("mousedown", function() {
                    r.enabled && r.sprite.setImage(r.pressedImg)
                }), r.sprite.on("mouseup", function() {
                    r.enabled && r.sprite.setImage(r.activeImg)
                }), r.sprite.on("click", function(e) {
                    r.enabled && r.onClick && (e.stopPropagation(), r.sprite.setImage(r.pressedImg), setTimeout(function() {
                        if (r.options.avoidMultiTouch) {
                            var n = Date.now(),
                                i = n - t;
                            t = n, i >= 150 && r.onClick(e)
                        } else r.onClick(e);
                        r.enabled && r.sprite.setImage(r.activeImg)
                    }, 100))
                })
            }
            var t = 0;
            return e.prototype.enable = function(e) {
                if (void 0 === e || null === e) return this.enabled;
                this.enabled = !!e, this.enabled ? this.sprite.setImage(this.activeImg) : this.sprite.setImage(this.inactiveImg)
            }, e.prototype.show = function(e) {
                this.sprite.show(e)
            }, e.prototype.click = function(e) {
                this.onClick = e
            }, e.prototype.changeImg = function(e) {
                this.activeImg = e, this.inactiveImg = e + "Inactive", this.overImg = e + "Over", this.pressedImg = e + "Pressed", this.enabled ? this.sprite.setImage(this.activeImg) : this.sprite.setImage(this.inactiveImg)
            }, e.prototype.getEnabled = function() {
                return this.enabled
            }, e
        }), define("game/addButtons", ["require", "game/buttonSpriteController", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(e) {
            function t() {
                o.spinButton = new n(i.lib._spinButton, "SpinButton", {
                    avoidMultiTouch: !0
                }), o.skipButton = new n(i.lib._skipButton, "SkipButton", {
                    avoidMultiTouch: !0
                }), o.awardCapSkipButton = new n(i.lib._awardCapSkipButton, "SkipButton", {
                    avoidMultiTouch: !0
                }), o.startButton = new n(i.lib._startButton, "StartButton", {
                    avoidMultiTouch: !0
                }), o.multiwayMinusBtn = new n(i.lib._multiwayMinusBtn, "Minusarrow", {
                    avoidMultiTouch: !0
                }), o.lineMinusBtn = new n(i.lib._lineMinusBtn, "Minusarrow", {
                    avoidMultiTouch: !0
                }), o.linePlusBtn = new n(i.lib._linePlusBtn, "Plusarrow", {
                    avoidMultiTouch: !0
                }), o.multiwayPlusBtn = new n(i.lib._multiwayPlusBtn, "Plusarrow", {
                    avoidMultiTouch: !0
                }), "desktopmini" !== r && (o.autoSpinBtn = new n(i.lib._autoSpin, "autospin", {
                    avoidMultiTouch: !0
                }), i.lib._autoSpin.pixiContainer.buttonMode = !0, o.autoSpinStopBtn = new n(i.lib._autoSpinStop, "autospin-Stop", {
                    avoidMultiTouch: !0
                }), i.lib._autoSpinStop.pixiContainer.buttonMode = !0), "desktop" !== r && (o.openMetersButton = new n(i.lib._openMetersButton, "betOpen", {
                    avoidMultiTouch: !0
                }), i.lib._openMetersButton.pixiContainer.buttonMode = !0, o.betConfirmBtn = new n(i.lib._betConfirm, "betConfirm", {
                    avoidMultiTouch: !0
                }), i.lib._betConfirm.pixiContainer.buttonMode = !0), i.lib._spinButton.pixiContainer.buttonMode = !0, i.lib._skipButton.pixiContainer.buttonMode = !0, i.lib._awardCapSkipButton.pixiContainer.buttonMode = !0, i.lib._startButton.pixiContainer.buttonMode = !0, i.lib._multiwayMinusBtn.pixiContainer.buttonMode = !0, i.lib._lineMinusBtn.pixiContainer.buttonMode = !0, i.lib._linePlusBtn.pixiContainer.buttonMode = !0, i.lib._multiwayPlusBtn.pixiContainer.buttonMode = !0
            }
            var n = e("game/buttonSpriteController"),
                i = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                r = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                o = {};
            return {
                addButtons: t,
                buttonObj: o
            }
        });
    var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
    (_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
            "use strict";
            _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, n) {
                var i = function(e) {
                        t.call(this, e), this._labels = {}, this.autoRemoveChildren = !0 === this.vars.autoRemoveChildren, this.smoothChildTiming = !0 === this.vars.smoothChildTiming, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
                        var n, i, r = this.vars;
                        for (i in r) n = r[i], s(n) && -1 !== n.join("").indexOf("{self}") && (r[i] = this._swapSelfInParams(n));
                        s(r.tweens) && this.add(r.tweens, 0, r.align, r.stagger)
                    },
                    r = n._internals,
                    o = i._internals = {},
                    a = r.isSelector,
                    s = r.isArray,
                    u = r.lazyTweens,
                    l = r.lazyRender,
                    c = _gsScope._gsDefine.globals,
                    h = function(e) {
                        var t, n = {};
                        for (t in e) n[t] = e[t];
                        return n
                    },
                    p = function(e, t, n) {
                        var i, r, o = e.cycle;
                        for (i in o) r = o[i], e[i] = "function" == typeof r ? r(n, t[n]) : r[n % r.length];
                        delete e.cycle
                    },
                    d = o.pauseCallback = function() {},
                    f = function(e) {
                        var t, n = [],
                            i = e.length;
                        for (t = 0; t !== i; n.push(e[t++]));
                        return n
                    },
                    m = i.prototype = new t;
                return i.version = "1.20.1", m.constructor = i, m.kill()._gc = m._forcingPlayhead = m._hasPause = !1, m.to = function(e, t, i, r) {
                    var o = i.repeat && c.TweenMax || n;
                    return t ? this.add(new o(e, t, i), r) : this.set(e, i, r)
                }, m.from = function(e, t, i, r) {
                    return this.add((i.repeat && c.TweenMax || n).from(e, t, i), r)
                }, m.fromTo = function(e, t, i, r, o) {
                    var a = r.repeat && c.TweenMax || n;
                    return t ? this.add(a.fromTo(e, t, i, r), o) : this.set(e, r, o)
                }, m.staggerTo = function(e, t, r, o, s, u, l, c) {
                    var d, m, _ = new i({
                            onComplete: u,
                            onCompleteParams: l,
                            callbackScope: c,
                            smoothChildTiming: this.smoothChildTiming
                        }),
                        g = r.cycle;
                    for ("string" == typeof e && (e = n.selector(e) || e), e = e || [], a(e) && (e = f(e)), o = o || 0, o < 0 && (e = f(e), e.reverse(), o *= -1), m = 0; m < e.length; m++) d = h(r), d.startAt && (d.startAt = h(d.startAt), d.startAt.cycle && p(d.startAt, e, m)), g && (p(d, e, m), null != d.duration && (t = d.duration, delete d.duration)), _.to(e[m], t, d, m * o);
                    return this.add(_, s)
                }, m.staggerFrom = function(e, t, n, i, r, o, a, s) {
                    return n.immediateRender = 0 != n.immediateRender, n.runBackwards = !0, this.staggerTo(e, t, n, i, r, o, a, s)
                }, m.staggerFromTo = function(e, t, n, i, r, o, a, s, u) {
                    return i.startAt = n, i.immediateRender = 0 != i.immediateRender && 0 != n.immediateRender, this.staggerTo(e, t, i, r, o, a, s, u)
                }, m.call = function(e, t, i, r) {
                    return this.add(n.delayedCall(0, e, t, i), r)
                }, m.set = function(e, t, i) {
                    return i = this._parseTimeOrLabel(i, 0, !0), null == t.immediateRender && (t.immediateRender = i === this._time && !this._paused), this.add(new n(e, 0, t), i)
                }, i.exportRoot = function(e, t) {
                    e = e || {}, null == e.smoothChildTiming && (e.smoothChildTiming = !0);
                    var r, o, a = new i(e),
                        s = a._timeline;
                    for (null == t && (t = !0), s._remove(a, !0), a._startTime = 0, a._rawPrevTime = a._time = a._totalTime = s._time, r = s._first; r;) o = r._next, t && r instanceof n && r.target === r.vars.onComplete || a.add(r, r._startTime - r._delay), r = o;
                    return s.add(a, 0), a
                }, m.add = function(r, o, a, u) {
                    var l, c, h, p, d, f;
                    if ("number" != typeof o && (o = this._parseTimeOrLabel(o, 0, !0, r)), !(r instanceof e)) {
                        if (r instanceof Array || r && r.push && s(r)) {
                            for (a = a || "normal", u = u || 0, l = o, c = r.length, h = 0; h < c; h++) s(p = r[h]) && (p = new i({
                                tweens: p
                            })), this.add(p, l), "string" != typeof p && "function" != typeof p && ("sequence" === a ? l = p._startTime + p.totalDuration() / p._timeScale : "start" === a && (p._startTime -= p.delay())), l += u;
                            return this._uncache(!0)
                        }
                        if ("string" == typeof r) return this.addLabel(r, o);
                        if ("function" != typeof r) throw "Cannot add " + r + " into the timeline; it is not a tween, timeline, function, or string.";
                        r = n.delayedCall(0, r)
                    }
                    if (t.prototype.add.call(this, r, o), r._time && r.render((this.rawTime() - r._startTime) * r._timeScale, !1, !1), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
                        for (d = this, f = d.rawTime() > r._startTime; d._timeline;) f && d._timeline.smoothChildTiming ? d.totalTime(d._totalTime, !0) : d._gc && d._enabled(!0, !1), d = d._timeline;
                    return this
                }, m.remove = function(t) {
                    if (t instanceof e) {
                        this._remove(t, !1);
                        var n = t._timeline = t.vars.useFrames ? e._rootFramesTimeline : e._rootTimeline;
                        return t._startTime = (t._paused ? t._pauseTime : n._time) - (t._reversed ? t.totalDuration() - t._totalTime : t._totalTime) / t._timeScale, this
                    }
                    if (t instanceof Array || t && t.push && s(t)) {
                        for (var i = t.length; --i > -1;) this.remove(t[i]);
                        return this
                    }
                    return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t)
                }, m._remove = function(e, n) {
                    return t.prototype._remove.call(this, e, n), this._last ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
                }, m.append = function(e, t) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e))
                }, m.insert = m.insertMultiple = function(e, t, n, i) {
                    return this.add(e, t || 0, n, i)
                }, m.appendMultiple = function(e, t, n, i) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e), n, i)
                }, m.addLabel = function(e, t) {
                    return this._labels[e] = this._parseTimeOrLabel(t), this
                }, m.addPause = function(e, t, i, r) {
                    var o = n.delayedCall(0, d, i, r || this);
                    return o.vars.onComplete = o.vars.onReverseComplete = t, o.data = "isPause", this._hasPause = !0, this.add(o, e)
                }, m.removeLabel = function(e) {
                    return delete this._labels[e], this
                }, m.getLabelTime = function(e) {
                    return null != this._labels[e] ? this._labels[e] : -1
                }, m._parseTimeOrLabel = function(t, n, i, r) {
                    var o, a;
                    if (r instanceof e && r.timeline === this) this.remove(r);
                    else if (r && (r instanceof Array || r.push && s(r)))
                        for (a = r.length; --a > -1;) r[a] instanceof e && r[a].timeline === this && this.remove(r[a]);
                    if (o = this.duration() > 99999999999 ? this.recent().endTime(!1) : this._duration, "string" == typeof n) return this._parseTimeOrLabel(n, i && "number" == typeof t && null == this._labels[n] ? t - o : 0, i);
                    if (n = n || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t]) null == t && (t = o);
                    else {
                        if (-1 === (a = t.indexOf("="))) return null == this._labels[t] ? i ? this._labels[t] = o + n : n : this._labels[t] + n;
                        n = parseInt(t.charAt(a - 1) + "1", 10) * Number(t.substr(a + 1)), t = a > 1 ? this._parseTimeOrLabel(t.substr(0, a - 1), 0, i) : o
                    }
                    return Number(t) + n
                }, m.seek = function(e, t) {
                    return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), !1 !== t)
                }, m.stop = function() {
                    return this.paused(!0)
                }, m.gotoAndPlay = function(e, t) {
                    return this.play(e, t)
                }, m.gotoAndStop = function(e, t) {
                    return this.pause(e, t)
                }, m.render = function(e, t, n) {
                    this._gc && this._enabled(!0, !1);
                    var i, r, o, a, s, c, h, p = this._dirty ? this.totalDuration() : this._totalDuration,
                        d = this._time,
                        f = this._startTime,
                        m = this._timeScale,
                        _ = this._paused;
                    if (e >= p - 1e-7 && e >= 0) this._totalTime = this._time = p, this._reversed || this._hasPausedChild() || (r = !0, a = "onComplete", s = !!this._timeline.autoRemoveChildren, 0 === this._duration && (e <= 0 && e >= -1e-7 || this._rawPrevTime < 0 || 1e-10 === this._rawPrevTime) && this._rawPrevTime !== e && this._first && (s = !0, this._rawPrevTime > 1e-10 && (a = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-10, e = p + 1e-4;
                    else if (e < 1e-7)
                        if (this._totalTime = this._time = 0, (0 !== d || 0 === this._duration && 1e-10 !== this._rawPrevTime && (this._rawPrevTime > 0 || e < 0 && this._rawPrevTime >= 0)) && (a = "onReverseComplete", r = this._reversed), e < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (s = r = !0, a = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (s = !0), this._rawPrevTime = e;
                        else {
                            if (this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-10, 0 === e && r)
                                for (i = this._first; i && 0 === i._startTime;) i._duration || (r = !1), i = i._next;
                            e = 0, this._initted || (s = !0)
                        }
                    else {
                        if (this._hasPause && !this._forcingPlayhead && !t) {
                            if (e >= d)
                                for (i = this._first; i && i._startTime <= e && !c;) i._duration || "isPause" !== i.data || i.ratio || 0 === i._startTime && 0 === this._rawPrevTime || (c = i), i = i._next;
                            else
                                for (i = this._last; i && i._startTime >= e && !c;) i._duration || "isPause" === i.data && i._rawPrevTime > 0 && (c = i), i = i._prev;
                            c && (this._time = e = c._startTime, this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay))
                        }
                        this._totalTime = this._time = this._rawPrevTime = e
                    }
                    if (this._time !== d && this._first || n || s || c) {
                        if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== d && e > 0 && (this._active = !0), 0 === d && this.vars.onStart && (0 === this._time && this._duration || t || this._callback("onStart")), (h = this._time) >= d)
                            for (i = this._first; i && (o = i._next, h === this._time && (!this._paused || _));)(i._active || i._startTime <= h && !i._paused && !i._gc) && (c === i && this.pause(), i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)), i = o;
                        else
                            for (i = this._last; i && (o = i._prev, h === this._time && (!this._paused || _));) {
                                if (i._active || i._startTime <= d && !i._paused && !i._gc) {
                                    if (c === i) {
                                        for (c = i._prev; c && c.endTime() > this._time;) c.render(c._reversed ? c.totalDuration() - (e - c._startTime) * c._timeScale : (e - c._startTime) * c._timeScale, t, n), c = c._prev;
                                        c = null, this.pause()
                                    }
                                    i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)
                                }
                                i = o
                            }
                        this._onUpdate && (t || (u.length && l(), this._callback("onUpdate"))), a && (this._gc || f !== this._startTime && m === this._timeScale || (0 === this._time || p >= this.totalDuration()) && (r && (u.length && l(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[a] && this._callback(a)))
                    }
                }, m._hasPausedChild = function() {
                    for (var e = this._first; e;) {
                        if (e._paused || e instanceof i && e._hasPausedChild()) return !0;
                        e = e._next
                    }
                    return !1
                }, m.getChildren = function(e, t, i, r) {
                    r = r || -9999999999;
                    for (var o = [], a = this._first, s = 0; a;) a._startTime < r || (a instanceof n ? !1 !== t && (o[s++] = a) : (!1 !== i && (o[s++] = a), !1 !== e && (o = o.concat(a.getChildren(!0, t, i)), s = o.length))), a = a._next;
                    return o
                }, m.getTweensOf = function(e, t) {
                    var i, r, o = this._gc,
                        a = [],
                        s = 0;
                    for (o && this._enabled(!0, !0), i = n.getTweensOf(e), r = i.length; --r > -1;)(i[r].timeline === this || t && this._contains(i[r])) && (a[s++] = i[r]);
                    return o && this._enabled(!1, !0), a
                }, m.recent = function() {
                    return this._recent
                }, m._contains = function(e) {
                    for (var t = e.timeline; t;) {
                        if (t === this) return !0;
                        t = t.timeline
                    }
                    return !1
                }, m.shiftChildren = function(e, t, n) {
                    n = n || 0;
                    for (var i, r = this._first, o = this._labels; r;) r._startTime >= n && (r._startTime += e), r = r._next;
                    if (t)
                        for (i in o) o[i] >= n && (o[i] += e);
                    return this._uncache(!0)
                }, m._kill = function(e, t) {
                    if (!e && !t) return this._enabled(!1, !1);
                    for (var n = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), i = n.length, r = !1; --i > -1;) n[i]._kill(e, t) && (r = !0);
                    return r
                }, m.clear = function(e) {
                    var t = this.getChildren(!1, !0, !0),
                        n = t.length;
                    for (this._time = this._totalTime = 0; --n > -1;) t[n]._enabled(!1, !1);
                    return !1 !== e && (this._labels = {}), this._uncache(!0)
                }, m.invalidate = function() {
                    for (var t = this._first; t;) t.invalidate(), t = t._next;
                    return e.prototype.invalidate.call(this)
                }, m._enabled = function(e, n) {
                    if (e === this._gc)
                        for (var i = this._first; i;) i._enabled(e, !0), i = i._next;
                    return t.prototype._enabled.call(this, e, n)
                }, m.totalTime = function(t, n, i) {
                    this._forcingPlayhead = !0;
                    var r = e.prototype.totalTime.apply(this, arguments);
                    return this._forcingPlayhead = !1, r
                }, m.duration = function(e) {
                    return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration)
                }, m.totalDuration = function(e) {
                    if (!arguments.length) {
                        if (this._dirty) {
                            for (var t, n, i = 0, r = this._last, o = 999999999999; r;) t = r._prev, r._dirty && r.totalDuration(), r._startTime > o && this._sortChildren && !r._paused ? this.add(r, r._startTime - r._delay) : o = r._startTime, r._startTime < 0 && !r._paused && (i -= r._startTime, this._timeline.smoothChildTiming && (this._startTime += r._startTime / this._timeScale), this.shiftChildren(-r._startTime, !1, -9999999999), o = 0), n = r._startTime + r._totalDuration / r._timeScale, n > i && (i = n), r = t;
                            this._duration = this._totalDuration = i, this._dirty = !1
                        }
                        return this._totalDuration
                    }
                    return e && this.totalDuration() ? this.timeScale(this._totalDuration / e) : this
                }, m.paused = function(t) {
                    if (!t)
                        for (var n = this._first, i = this._time; n;) n._startTime === i && "isPause" === n.data && (n._rawPrevTime = 0), n = n._next;
                    return e.prototype.paused.apply(this, arguments)
                }, m.usesFrames = function() {
                    for (var t = this._timeline; t._timeline;) t = t._timeline;
                    return t === e._rootFramesTimeline
                }, m.rawTime = function(e) {
                    return e && (this._paused || this._repeat && this.time() > 0 && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(e) - this._startTime) * this._timeScale
                }, i
            }, !0)
        }), _gsScope._gsDefine && _gsScope._gsQueue.pop()(),
        function(e) {
            "use strict";
            var t = function() {
                return (_gsScope.GreenSockGlobals || _gsScope).TimelineLite
            };
            "undefined" != typeof module && module.exports ? (require("./TweenLite.js"), module.exports = t()) : "function" == typeof define && define.amd && define("com/gsap/TimelineLite", ["TweenLite"], t)
        }(), define("game/multiwayAnimations", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "com/pixijs/pixi", "com/gsap/TweenLite", "com/gsap/TimelineLite"], function(e) {
            function t() {
                "desktop" === v && (p = s.lib._multiwayPlaque.pixiContainer, p.visible = !1, p.alpha = 0, s.lib._multiwaysPlaqueTopText.pixiContainer.$text._style._dropShadow = !0, s.lib._multiwaysPlaqueTopText.pixiContainer.$text._style._dropShadowDistance = 2, s.lib._multiwaysPlaqueTopText.pixiContainer.$text._style._dropShadowBlur = 5, s.lib._multiwaysPlaqueTopText.setText(u.i18n.Game.waysPlaque), s.lib._multiwaysPlaqueBottomText.pixiContainer.$text._style._dropShadow = !0, s.lib._multiwaysPlaqueBottomText.pixiContainer.$text._style._dropShadowDistance = 2, s.lib._multiwaysPlaqueBottomText.pixiContainer.$text._style._dropShadowBlur = 5), x.forEach(function(e) {
                    w.push(l.utils.TextureCache[e])
                }), T.forEach(function(e) {
                    S.push(l.utils.TextureCache[e])
                }), d = new l.extras.AnimatedSprite(w), d.loop = !1, d.animationSpeed = .6, s.lib._multiwaysBadge.pixiContainer.$sprite.addChild(d), s.lib._multiwayAnimation = d, s.lib._multiwaysBadge.pixiContainer.$sprite.transform.scale.x = .8, s.lib._multiwaysBadge.pixiContainer.$sprite.transform.scale.y = .8, d.gotoAndStop(0), f = new l.extras.AnimatedSprite(w), f.loop = !1, f.animationSpeed = .6, s.lib._multiwaysBadgeDuplicate.pixiContainer.$sprite.addChild(f), s.lib._multiwayAnimationDuplicate = f, s.lib._multiwaysBadgeDuplicate.pixiContainer.$sprite.transform.scale.x = .8, s.lib._multiwaysBadgeDuplicate.pixiContainer.$sprite.transform.scale.y = .8, f.gotoAndStop(0), s.lib._multiwaysBadgeFreeSpins.show(!1), m = new l.extras.AnimatedSprite(S), m.loop = !1, m.animationSpeed = .6, s.lib._multiwaysBadgeFS.pixiContainer.$sprite.addChild(m), s.lib._multiwayAnimationFS = m, s.lib._multiwaysBadgeFS.pixiContainer.$sprite.transform.scale.x = .8, s.lib._multiwaysBadgeFS.pixiContainer.$sprite.transform.scale.y = .8, m.gotoAndStop(0), _ = new l.extras.AnimatedSprite(S), _.loop = !1, _.animationSpeed = .6, s.lib._multiwaysBadgeDuplicateFS.pixiContainer.$sprite.addChild(_), s.lib._multiwayAnimationDuplicateFS = _, s.lib._multiwaysBadgeDuplicateFS.pixiContainer.$sprite.transform.scale.x = .8, s.lib._multiwaysBadgeDuplicateFS.pixiContainer.$sprite.transform.scale.y = .8, _.gotoAndStop(0)
            }

            function n() {
                d.gotoAndPlay(0), f.gotoAndPlay(0), m.gotoAndPlay(0), _.gotoAndPlay(0), h = new g.to({}, .5, {
                    onComplete: function() {
                        a(s.lib._multiwaysBadgeTextText.pixiContainer, .2, 1), a(s.lib._multiwaysBadgeTextTextDuplicate.pixiContainer, .2, 1), a(s.lib._multiwaysBadgeValueText.pixiContainer, .2, 1), a(s.lib._multiwaysBadgeValueTextDuplicate.pixiContainer, .2, 1), a(s.lib._multiwaysBadgeTextTextFS.pixiContainer, .2, 1), a(s.lib._multiwaysBadgeTextTextDuplicateFS.pixiContainer, .2, 1), a(s.lib._multiwaysBadgeValueTextFS.pixiContainer, .2, 1), a(s.lib._multiwaysBadgeValueTextDuplicateFS.pixiContainer, .2, 1)
                    }
                })
            }

            function i() {
                a(s.lib._multiwaysBadgeTextText.pixiContainer, .1, 0), a(s.lib._multiwaysBadgeTextTextDuplicate.pixiContainer, .1, 0), a(s.lib._multiwaysBadgeValueText.pixiContainer, .1, 0), a(s.lib._multiwaysBadgeValueTextDuplicate.pixiContainer, .1, 0), a(s.lib._multiwaysBadgeTextTextFS.pixiContainer, .1, 0), a(s.lib._multiwaysBadgeTextTextDuplicateFS.pixiContainer, .1, 0), a(s.lib._multiwaysBadgeValueTextFS.pixiContainer, .1, 0), a(s.lib._multiwaysBadgeValueTextDuplicateFS.pixiContainer, .1, 0), h && h.kill()
            }

            function r(e) {
                "Activated" === e && (c && c.kill(), "desktop" === v && (s.lib._multiwayPlaque.setImage("1024WaysPlaque"), s.lib._multiwaysPlaqueBottomText.setText(u.i18n.Game.activated))), "Deactivated" === e && (c && c.kill(), "desktop" === v && (s.lib._multiwayPlaque.setImage("1024WaysPlaque-" + e), s.lib._multiwaysPlaqueBottomText.setText(u.i18n.Game.deactivated))), s.lib._multiwaysPlaqueBottomText.pixiContainer.$text.style.padding = 10, o()
            }

            function o() {
                p.visible = !0, c = new y({
                    onComplete: function() {
                        p.visible = !1, b = !1
                    }
                }), c.to(p, .2, {
                    alpha: 1
                }).to(p, .4, {
                    alpha: 0
                }, "+=1")
            }

            function a(e, t, n) {
                var i = !1;
                0 === n && (i = !0), e.visible || (e.visible = !0), new g.to(e, t, {
                    alpha: n,
                    onComplete: function() {
                        e.visible = !i
                    }
                })
            }
            var s = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                u = e("skbJet/component/pixiResourceLoader/pixiResourceLoader"),
                l = e("com/pixijs/pixi");
            e("com/gsap/TweenLite");
            var c, h, p, d, f, m, _, g = window.TweenLite,
                y = e("com/gsap/TimelineLite"),
                v = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                b = !1,
                x = ["1024Enable_0000", "1024Enable_0001", "1024Enable_0002", "1024Enable_0003", "1024Enable_0004", "1024Enable_0005", "1024Enable_0006", "1024Enable_0007", "1024Enable_0008", "1024Enable_0009", "1024Enable_0010", "1024Enable_0011", "1024Enable_0012", "1024Enable_0013", "1024Enable_0014", "1024Enable_0015", "1024Enable_0016", "1024Enable_0017", "1024Enable_0018", "1024Enable_0019", "1024Enable_0020", "1024Enable_0021", "1024Enable_0022", "1024Enable_0023", "1024Enable_0024", "1024Enable_0025", "1024Enable_0026", "1024Enable_0027", "1024Enable_0028", "1024Enable_0029", "1024Enable_0030", "1024Enable_0031"],
                T = ["FS1024-Ways-Badge-Inactive", "FS1024-Ways-Badge-Active"],
                w = [],
                S = [];
            return {
                init: t,
                multiwayDeactivatedAnim: i,
                multiwayActivatedAnim: n,
                changeActiveAssets: r
            }
        }), define("game/buttonController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", "game/metersController", "game/addButtons", "skbJet/componentManchester/rgsModel/rgsModel", "game/multiwayAnimations", "com/gsap/TimelineMax"], function(e, t, n, i, r, o, a, s) {
            function u(e) {
                J = Number(e.serverConfig.denomamount), fe = e.serverConfig.channel, de = e.serverConfig.presenttype
            }

            function l(e) {
                se = o.paytable.PatternSliderInfo().BetInfo().Step, he = "false" !== e.PaytableResponse.AutoSpinInfo["@enable"].toLowerCase(), Array.isArray(se) || (se = [se]), ue = o.paytable.PatternSliderInfo().PatternInfo(), le = 80 === o.gameLogic.PatternSliderInput("BetPerPattern").PatternsBet, le ? R() : k(), r.addButtons(), q = r.buttonObj.spinButton, Y = r.buttonObj.skipButton, Q = r.buttonObj.awardCapSkipButton, Z = r.buttonObj.startButton, ee = r.buttonObj.multiwayMinusBtn, te = r.buttonObj.lineMinusBtn, ne = r.buttonObj.multiwayPlusBtn, ie = r.buttonObj.linePlusBtn, re = r.buttonObj.autoSpinBtn, oe = r.buttonObj.autoSpinStopBtn, "desktop" !== pe && ($ = r.buttonObj.openMetersButton, K = r.buttonObj.betConfirmBtn), c(), y(!1), v(!1), w(!1), ae = t.lib._networkActivity, ae.show(!1)
            }

            function c() {
                q.click(g), Y.click(x), Q.click(T), Z.click(P), ee.click(E), te.click(O), ne.click(M), ie.click(I), "desktopmini" !== pe && (re.click(G), oe.click(V)), "desktop" !== pe && ($.click(X), K.click(z))
            }

            function h() {
                ce = new s({
                    delay: 1,
                    onStart: function() {
                        ae.show(!0)
                    },
                    repeat: -1
                }), ce.to(ae.pixiContainer, 2, {
                    rotation: ae.pixiContainer.rotation + 6,
                    ease: "Linear.easeNone"
                })
            }

            function p() {
                ae.show(!1), ce && ce.kill()
            }

            function d(e, t) {
                r.buttonObj[e].enabled = !0, r.buttonObj[e].sprite.pixiContainer.interactive = !0, r.buttonObj[e].sprite.setImage(t + "-Up")
            }

            function f(e, t) {
                r.buttonObj[e].enabled = !1, r.buttonObj[e].sprite.pixiContainer.interactive = !1, r.buttonObj[e].sprite.setImage(t + "-Inactive")
            }

            function m(e) {
                q.show(e)
            }

            function _(e) {
                e ? (d("spinButton", "SpinButton"), me = !1) : f("spinButton", "SpinButton")
            }

            function g() {
                me || _e || (me = !0, e.publish("onSpinButtonClicked"), e.publish("nextState"), t.lib._betPrompt && t.lib._betPrompt.show(!1))
            }

            function y(e) {
                Y.show(e)
            }

            function v(e) {
                Q.show(e)
            }

            function b(e) {
                e ? d("skipButton", "SkipButton") : f("skipButton", "SkipButton")
            }

            function x() {
                e.publish("onSkipButtonClicked")
            }

            function T() {
                v(!1), e.publish("onAwardCapSkipButtonClicked")
            }

            function w(e) {
                Z.show(e)
            }

            function S(e) {
                e ? d("startButton", "StartButton") : f("startButton", "StartButton")
            }

            function P() {
                e.publish("nextState"), w(!1), y(!0), b(!1)
            }

            function C(e, t, i) {
                i.indexOf(t) === i.length - 1 ? (n.play("MaxBet", 1), n.volume(1, 1)) : e > 0 ? (n.play("Bet_Up", 1), n.volume(1, 1)) : e < 0 && (n.play("Bet_Down", 1), n.volume(1, 1))
            }

            function E() {
                var t = i.updateMultiwayLines(-1);
                L(t), C(-1, t, ue.Step), e.publish("betUpdate")
            }

            function M() {
                var t = i.updateMultiwayLines(1);
                L(t), C(1, t, ue.Step), e.publish("betUpdate")
            }

            function O() {
                var t = i.updateLineBet(-1);
                A(t), C(-1, t, se), e.publish("betUpdate")
            }

            function I() {
                var t = i.updateLineBet(1);
                A(t), C(1, t, se), e.publish("betUpdate")
            }

            function A(e) {
                1 === se.length ? (f("lineMinusBtn", "Minusarrow"), f("linePlusBtn", "Plusarrow")) : (d("lineMinusBtn", "Minusarrow"), d("linePlusBtn", "Plusarrow"), 0 === se.indexOf(e) ? f("lineMinusBtn", "Minusarrow") : se.indexOf(e) === se.length - 1 && f("linePlusBtn", "Plusarrow"))
            }

            function R() {
                le ? (t.lib._multiwayAnimation.gotoAndStop(t.lib._multiwayAnimation._textures.length - 1), t.lib._multiwayAnimationDuplicate.gotoAndStop(t.lib._multiwayAnimationDuplicate._textures.length - 1), t.lib._multiwayAnimationFS.gotoAndStop(t.lib._multiwayAnimationFS._textures.length - 1), t.lib._multiwayAnimationDuplicateFS.gotoAndStop(t.lib._multiwayAnimationDuplicateFS._textures.length - 1)) : (a.multiwayActivatedAnim(), le = !0, "desktop" === pe && a.changeActiveAssets("Activated"))
            }

            function k() {
                t.lib._multiwayAnimation.gotoAndStop(0), t.lib._multiwayAnimationDuplicate.gotoAndStop(0), t.lib._multiwayAnimationFS.gotoAndStop(0), t.lib._multiwayAnimationDuplicateFS.gotoAndStop(0), a.multiwayDeactivatedAnim(), le && ("desktop" === pe && a.changeActiveAssets("Deactivated"), le = !1)
            }

            function L(e) {
                1 === ue.Step.length ? (f("multiwayMinusBtn", "Minusarrow"), f("multiwayPlusBtn", "Plusarrow")) : (d("multiwayMinusBtn", "Minusarrow"), d("multiwayPlusBtn", "Plusarrow"), 0 === ue.Step.indexOf(e) ? (f("multiwayMinusBtn", "Minusarrow"), k()) : ue.Step.indexOf(e) === ue.Step.length - 1 ? (f("multiwayPlusBtn", "Plusarrow"), R()) : k())
            }

            function D() {
                A(i.patternsBet().toString()), L(i.patternInfo().toString()), "desktop" !== pe && H(!0)
            }

            function B() {
                f("linePlusBtn", "Plusarrow"), f("lineMinusBtn", "Minusarrow"), f("multiwayPlusBtn", "Plusarrow"), f("multiwayMinusBtn", "Minusarrow"), "desktop" !== pe && H(!1)
            }

            function F(t) {
                "betPerPattern" === t.option ? (A(t.value.toString()), e.publish("betUpdate")) : "patternsBet" === t.option && (L(t.value), e.publish("betUpdate"))
            }

            function N(e) {
                "desktopmini" !== pe && re.show(e && he)
            }

            function j(e) {
                "desktopmini" !== pe && (e && he ? (d("autoSpinBtn", "autospin"), _e = !1) : f("autoSpinBtn", "autospin"))
            }

            function G() {
                _e = !0, e.publish("onAutoSpinBtnClicked")
            }

            function U(e) {
                oe.show(e), e && (_e = !1)
            }

            function W(e) {
                "desktop" !== pe && $.show(e)
            }

            function H(e) {
                e ? d("openMetersButton", "betOpen") : f("openMetersButton", "betOpen")
            }

            function X() {
                t.lib._changeBet.show(!0), t.lib._betPrompt.show(!1), t.lib._buttonFrame.show(!1), m(!1), W(!1), N(!1), e.publish("betUpdate")
            }

            function z() {
                t.lib._changeBet.show(!1), t.lib._buttonFrame.show(!0), W(!0), m(!0), N(!0)
            }

            function V() {
                e.publish("onAutoSpinBtnStopClicked")
            }
            var J, q, Y, $, K, Q, Z, ee, te, ne, ie, re, oe, ae, se, ue, le, ce, he, pe = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                de = null,
                fe = null,
                me = !1,
                _e = !1;
            return e.subscribe("platformMsg/ConsoleService/Game.Control", F), {
                onSystemInit: u,
                onGameInit: l,
                showSpinButton: m,
                enableSpinButton: _,
                showSkipButton: y,
                showAwardCapButton: v,
                enableSkipButton: b,
                showStartButton: w,
                enableStartButton: S,
                startNetworkActivity: h,
                stopNetworkActivity: p,
                lineBetBtnUpdate: A,
                linesBtnUpdate: L,
                enableBetControls: D,
                disableBetControls: B,
                showAutoSpinButton: N,
                enableAutoSpinButton: j,
                showAutoSpinStopButton: U,
                showOpenMetersButton: W,
                enableOpenMetersButton: H,
                multiwayEnabledFlag: le
            }
        }), define("gamePlayConfig/reelSetup", [], function() {
            function e(e) {
                return {
                    BaseGame: {
                        b01: "b01",
                        s01: "s01",
                        s02: "s02",
                        s03: "s03",
                        s04: "s04",
                        s05: "s05",
                        s06: "s06",
                        s07: "s07",
                        s08: "s08",
                        s09: "s09",
                        w01: "w01"
                    },
                    FreeSpin: {
                        b01: "b01fs",
                        s01: "s01fs",
                        s02: "s02fs",
                        s03: "s03fs",
                        s04: "s04fs",
                        s05: "s05fs",
                        s06: "s06fs",
                        s07: "s07fs",
                        s08: "s08fs",
                        s09: "s09fs",
                        w01: "w01fs"
                    }
                }[e]
            }
            return function(t) {
                return {
                    options: {
                        pos: {
                            x: 0,
                            y: 0
                        },
                        reels: [{
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }, {
                            symbolCount: 1
                        }]
                    },
                    spriteOffsets: {},
                    StripInfo: {},
                    locationsMap: ["L0C0R0", "L0C0R1", "L0C0R2", "L0C0R3", "L0C1R0", "L0C1R1", "L0C1R2", "L0C1R3", "L0C2R0", "L0C2R1", "L0C2R2", "L0C2R3", "L0C3R0", "L0C3R1", "L0C3R2", "L0C3R3", "L0C4R0", "L0C4R1", "L0C4R2", "L0C4R3"],
                    bonusSymbolsLocationsMap: ["L0C2R0", "L0C2R1", "L0C2R2", "L0C2R3"],
                    spriteMap: e(t),
                    symbolNames: ["b01", "s01", "s02", "s03", "s04", "s05", "s06", "s07", "s08", "s09", "w01"]
                }
            }
        }), define("skbJet/component/phoenixReel/animationLayer", ["com/pixijs/pixi"], function(e) {
            return function(t, n) {
                function i() {
                    var t = new e.extras.AnimatedSprite([e.Texture.EMPTY]);
                    return t.visible = !1, t.zIndex = 1, t
                }

                function r(i, r) {
                    P[i] = [];
                    for (var a = -1; a < t.options.reels[i].symbolCount + 1; a++) {
                        var s = S[i][a + 1],
                            u = r.spriteRefs[a + 1];
                        u ? (Array.isArray(n[u].textures) ? (s.textures = n[u].textures, s.texture = s.textures[0], s.visible = !0, s.gotoAndStop(0), s.loop = !0) : (s.visible = !0, s.textures = [n[u].textures], s.texture = s.textures[0], s.gotoAndStop(0), s.loop = !0), s.position.x = s.position.rx + n[u].xOffset, s.position.y = s.position.ry + n[u].yOffset, s.zIndex = n[u].zOffset) : s.visible = !1, P[i].push(u), a >= 0 && a < t.options.reels[i].symbolCount && (C[i][a].textures = [e.Texture.EMPTY], C[i][a].texture = e.Texture.EMPTY, C[i][a].visible = !1, C[i][a].gotoAndStop(0), C[i][a].loop = !0)
                    }
                    P[i].pop(), P[i].shift(), o(T), o(w)
                }

                function o(e) {
                    e.children.sort(function(e, t) {
                        return e.zIndex - t.zIndex || t.x - e.x || e.y - t.y
                    })
                }

                function a(e, t) {
                    for (var n = [], i = 0; i < t; i++) n = n.concat(e);
                    return n
                }

                function s(t) {
                    return t ? Array.isArray(t) ? t.map(function(t) {
                        return t ? e.utils.TextureCache[t] : e.Texture.EMPTY
                    }) : [e.utils.TextureCache[t]] : [e.Texture.EMPTY]
                }

                function u(e) {
                    return e.every(function(e) {
                        return e.completed
                    })
                }

                function l(e, t, n, i, r, o, a) {
                    var s = {},
                        u = {};
                    return e instanceof Object ? (s = e, u = t) : (s = {
                        location: e,
                        textures: t,
                        animationSpeed: n,
                        layer: i,
                        position: r,
                        playmode: o
                    }, u = a), c(s, u)
                }

                function c(e, t) {
                    j.push({
                        location: e.location,
                        layer: e.layer
                    });
                    var n;
                    return 0 === e.layer ? n = E[O[e.location]] : 1 === e.layer && (n = M[O[e.location]]), n && (e.textures ? (n.visible = !0, n.textures = s(e.playmode && e.playmode.playCount ? a(e.textures, e.playmode.playCount) : e.textures), n.texture = n.textures[0], n.position.x = n.position.rx, n.position.y = n.position.ry, e.position && (e.position.x && (n.position.x += e.position.x), e.position.y && (n.position.y += e.position.y)), n.animationSpeed = e.animationSpeed, n.loop = !0, e.playmode && (!1 === e.playmode.loop || e.playmode.hasOwnProperty("playCount")) && (n.loop = !1), n.gotoAndStop(0), t && (t.onComplete && (n.onComplete = t.onComplete), t.onFrameChange && (n.onFrameChange = t.onFrameChange))) : n.visible = !1), {
                        gotoAndPlay: function(e) {
                            n.gotoAndPlay(e)
                        },
                        gotoAndStop: function(e) {
                            n.gotoAndStop(e)
                        }
                    }
                }

                function h(e, t) {
                    return e.map(function(n) {
                        return n.completed = !1, l(n, {
                            onComplete: function() {
                                n.completed = !0, u(e) && t && t.onComplete && t.onComplete()
                            }
                        })
                    })
                }

                function p(e) {
                    return 0 === e ? T : 1 === e ? w : void 0
                }

                function d(e, t) {
                    return 0 === t ? E[O[e]] : 1 === t ? M[O[e]] : void 0
                }

                function f() {
                    j.forEach(function(e) {
                        var t;
                        0 === e.layer ? t = E[O[e.location]] : 1 === e.layer && (t = M[O[e.location]]), t.gotoAndPlay(0)
                    })
                }

                function m() {
                    j.forEach(function(e) {
                        var t;
                        0 === e.layer ? t = E[O[e.location]] : 1 === e.layer && (t = M[O[e.location]]), t.gotoAndStop(0), t.loop = !0, t.onFrameChange = void 0, t.onComplete = void 0
                    })
                }

                function _(i) {
                    if (m(), !j || 0 !== j.length) {
                        for (var r = 0; r < t.options.reels.length; r++)
                            for (var o = 0; o < t.options.reels[r].symbolCount; o++) {
                                if (!i || 0 === i) {
                                    var a = S[r][o + 1],
                                        s = P[r][o];
                                    s ? (Array.isArray(n[s].textures) ? (a.textures = n[s].textures, a.texture = a.textures[0], a.gotoAndStop(0), a.loop = !0) : (a.textures = [n[s].textures], a.texture = a.textures[0], a.gotoAndStop(0), a.loop = !0), a.onFrameChange = void 0, a.onComplete = void 0, a.visible = !0, a.position.x = a.position.rx + n[s].xOffset, a.position.y = a.position.ry + n[s].yOffset, a.zIndex = n[s].zOffset) : a.visible = !1
                                }
                                0 !== i && (C[r][o].textures = [e.Texture.EMPTY], C[r][o].texture = e.Texture.EMPTY, C[r][o].gotoAndStop(0), C[r][o].loop = !0, C[r][o].onFrameChange = void 0, C[r][o].onComplete = void 0)
                            }
                        j = []
                    }
                }

                function g() {
                    if (m(), !j || 0 !== j.length) {
                        for (var n = 0; n < t.options.reels.length; n++) {
                            for (var i = 0; i < S[n].length; i++) S[n][i].textures = [e.Texture.EMPTY], S[n][i].texture = e.Texture.EMPTY, S[n][i].gotoAndStop(0), S[n][i].loop = !0, S[n][i].onFrameChange = void 0, S[n][i].onComplete = void 0;
                            for (i = 0; i < C[n].length; i++) C[n][i].textures = [e.Texture.EMPTY], C[n][i].texture = e.Texture.EMPTY, C[n][i].gotoAndStop(0), C[n][i].loop = !0, C[n][i].onFrameChange = void 0, C[n][i].onComplete = void 0
                        }
                        j = []
                    }
                }

                function y(e) {
                    x.visible = !0;
                    for (var n = -1; n < t.options.reels[e].symbolCount + 1; n++) {
                        S[e][n + 1].visible = !0, n >= 0 && n < t.options.reels[e].symbolCount && (C[e][n].visible = !0)
                    }
                }

                function v(e) {
                    for (var n = -1; n < t.options.reels[e].symbolCount + 1; n++) {
                        S[e][n + 1].visible = !1, n >= 0 && n < t.options.reels[e].symbolCount && (C[e][n].visible = !1)
                    }
                }

                function b() {
                    return {
                        startAnimating: f,
                        stopAnimating: m,
                        resetAnimations: _,
                        clearAnimations: g,
                        setCellAnimation: l,
                        setCellAnimations: h,
                        getLayerContainer: p,
                        getCellHandle: d,
                        getContainer: function() {
                            return x
                        }
                    }
                }
                var x = new e.Container,
                    T = new e.Container,
                    w = new e.Container;
                x.addChild(T), x.addChild(w);
                var S = [],
                    P = [],
                    C = [],
                    E = [],
                    M = [],
                    O = t.locationsMap.reduce(function(e, t, n) {
                        return e[t] = n, e
                    }, {});
                e.extras.AnimatedSprite || (e.extras.AnimatedSprite = e.extras.MovieClip);
                for (var I = [], A = new e.Graphics, R = !0, k = 0; k < t.options.reels.length; k++) 0 !== t.options.reels[k].y && (R = !1);
                if (t.options.reels.length > 1 && R)
                    for (k = 1; k < t.options.reels.length; k++) t.options.reels[k - 1].symbolCount !== t.options.reels[k].symbolCount && (R = !1);
                var L = !0;
                if (t.options.clip) t.options.clip[0].hasOwnProperty("reels") ? t.options.clip.forEach(function(t) {
                    A = new e.Graphics, A.beginFill(), A.drawRect(t.x, t.y, t.w, t.h), A.endFill(), A.zIndex = 1e3, t.reels.forEach(function(e) {
                        I[e] = A
                    }), x.addChild(A)
                }) : (t.options.clip.forEach(function(e) {
                    A.beginFill(), A.drawRect(e.x, e.y, e.w, e.h), A.endFill()
                }), A.zIndex = 1e3, T.addChild(A), I = [A]);
                else if (R) A.beginFill(), A.drawRect(t.options.pos.x + t.options.reels[0].x, t.options.pos.y + t.options.reels[0].y, (t.symbolSlotWidth + t.symbolSpacingW) * t.options.reels.length - t.symbolSpacingW, (t.symbolSlotHeight + t.symbolSpacingH) * t.options.reels[0].symbolCount - t.symbolSpacingH), A.endFill(), A.zIndex = 1e3, T.addChild(A), I = [A];
                else {
                    for (A.beginFill(), k = 0; k < t.options.reels.length; k++) A.drawRect(t.options.pos.x + t.options.reels[k].x, t.options.pos.y + t.options.reels[k].y, t.symbolSlotWidth + t.symbolSpacingW, (t.symbolSlotHeight + t.symbolSpacingH) * t.options.reels[k].symbolCount);
                    A.endFill(), A.zIndex = 1e3, T.addChild(A), I = [A]
                }
                for (I.length > 1 && (L = !1), L && (T.mask = I[0]), k = 0; k < t.options.reels.length; k++) {
                    for (var D = [], B = [], F = -1; F < t.options.reels[k].symbolCount + 1; F++) {
                        var N = i();
                        N.position.x = t.options.pos.x + t.options.reels[k].x, N.position.y = t.options.pos.y + t.options.reels[k].y + (t.symbolSlotHeight + t.symbolSpacingH) * F, N.position.rx = N.position.x, N.position.ry = N.position.y, L || (N.mask = I[k]), D.push(N), F >= 0 && F < t.options.reels[k].symbolCount && (E.push(N), N = i(), N.position.x = t.options.pos.x + t.options.reels[k].x, N.position.y = t.options.pos.y + t.options.reels[k].y + (t.symbolSlotHeight + t.symbolSpacingH) * F, N.position.rx = N.position.x, N.position.ry = N.position.y, M.push(N), B.push(N))
                    }
                    S.push(D), P.push([]), C.push(B)
                }
                for (k = 0; k < t.options.reels.length; k++) S[k].forEach(function(e) {
                    T.addChild(e)
                });
                for (k = 0; k < t.options.reels.length; k++) C[k].forEach(function(e) {
                    w.addChild(e)
                });
                var j = [];
                return {
                    setViewData: r,
                    show: y,
                    hide: v,
                    startAnimating: f,
                    stopAnimating: m,
                    resetAnimations: _,
                    clearAnimations: g,
                    setCellAnimation: l,
                    setCellAnimations: h,
                    getLayerContainer: p,
                    getCellHandle: d,
                    getContainer: function() {
                        return x
                    },
                    getLimitedAccess: b
                }
            }
        }), define("skbJet/component/phoenixReel/reelspin", ["com/pixijs/pixi", "skbJet/component/phoenixReel/animationLayer"], function(e, t) {
            return function(n, i) {
                function r(t) {
                    var n = new e.extras.AnimatedSprite([e.Texture.EMPTY]);
                    return n.zIndex = 1, n.visible = !1, n
                }

                function o(e) {
                    for (var t = i.StripInfo[ne], n = -2; n < i.options.reels[e].symbolCount + 2; n++) {
                        var r = L[e][n + 2],
                            o = t[e][(J[e] + t[e].length + n) % t[e].length];
                        K.symbolsMap && K.symbolsMap[o] && (o = K.symbolsMap[o]), Array.isArray(B[o].textures) ? (r.textures = B[o].textures, r.texture = r.textures[0], r.gotoAndStop(0)) : (r.textures = [B[o].textures], r.texture = r.textures[0], r.gotoAndStop(0)), r.zIndex = B[o].zOffset, r.visible = !0, r.position.x = i.options.pos.x + i.options.reels[e].x + B[o].xOffset, r.position.y = i.options.pos.y - V[e] + B[o].yOffset + i.options.reels[e].y + ($.symbolSlotHeight + $.symbolSpacingH) * n
                    }
                }

                function a(e) {
                    for (var t = i.StripInfo[Q.reelset], n = -2; n < i.options.reels[e].symbolCount + 2; n++) {
                        var r = D[e][n + 2],
                            o = t[e][(F[e] + t[e].length + n) % t[e].length];
                        Q.symbolsMap && Q.symbolsMap[o] && (o = Q.symbolsMap[o]), Array.isArray(B[o].textures) ? (r.textures = B[o].textures, r.texture = r.textures[0], r.gotoAndStop(0)) : (r.textures = [B[o].textures], r.texture = r.textures[0], r.gotoAndStop(0)), r.zIndex = B[o].zOffset, r.visible = !0, r.position.x = i.options.pos.x + i.options.reels[e].x + B[o].xOffset;
                        var a = H[e] + W[e];
                        q[e] > 0 && (a = -a), r.position.y = i.options.pos.y - a + i.options.reels[e].y + B[o].yOffset + ($.symbolSlotHeight + $.symbolSpacingH) * n
                    }
                }

                function s(e, t) {
                    for (var n = i.StripInfo[t.reelset], r = {
                            spriteRefs: []
                        }, o = -1; o < i.options.reels[e].symbolCount + 1; o++) {
                        var a = n[e][(k[e] + n[e].length + o) % n[e].length];
                        t.symbolsMap && t.symbolsMap[a] && (a = t.symbolsMap[a]), r.spriteRefs.push(a)
                    }
                    Z.show(e), Z.setViewData(e, r)
                }

                function u() {
                    for (var e = 0; e < i.options.reels.length; e++)
                        for (var t = -2; t < i.options.reels[e].symbolCount + 2; t++) {
                            var n = D[e][t + 2];
                            n.visible = !1
                        }
                }

                function l() {
                    for (var e = 0; e < i.options.reels.length; e++)
                        for (var t = -2; t < i.options.reels[e].symbolCount + 2; t++) {
                            var n = L[e][t + 2];
                            n.visible = !1
                        }
                }

                function c(e) {
                    for (var t = -2; t < i.options.reels[e].symbolCount + 2; t++) L[e][t + 2].visible = !1, D[e][t + 2].visible = !1
                }

                function h(e, t) {
                    return A[t] === E.SPIN_SPINUP || A[t] === E.SPIN_FINDEND || A[t] === E.SPIN_SPINNING || A[t] === E.SPIN_PRESTOP ? (z[t] = Math.floor((z[t] + q[t] * e + te[t]) % te[t]), J[t] = Math.floor(z[t] / ($.symbolSlotHeight + $.symbolSpacingH)), V[t] = z[t] % ($.symbolSlotHeight + $.symbolSpacingH)) : (J[t] = Math.floor(z[t] / ($.symbolSlotHeight + $.symbolSpacingH)), V[t] += q[t] * e), o(t), !0
                }

                function p(e) {
                    return Math.abs(V[e]) > ($.symbolSlotHeight + $.symbolSpacingH) * ($.options.reels[e].symbolCount + 4)
                }

                function d(e) {
                    return 0 === H[e]
                }

                function f(e) {
                    return 0 === H[e] && (Q.stopBounce && Q.stopBounce.length && W[e] === Q.stopBounce[0] || !(Q.stopBounce && Q.stopBounce.length) && 0 === W[e])
                }

                function m(e, t) {
                    H[t] > 0 ? (H[t] -= Math.abs(q[t] * e), H[t] <= 0 && (W[t] += H[t], H[t] = 0)) : (W[t] -= Math.abs(q[t] * e), Q.stopBounce && Q.stopBounce.length ? W[t] <= Q.stopBounce[0] && (W[t] = Q.stopBounce[0], H[t] = 0) : W[t] <= 0 && (W[t] = 0, H[t] = 0)), a(t)
                }

                function _(e, t) {
                    var n = z[t] % ($.symbolSlotHeight + $.symbolSpacingH);
                    H[t] = n, W[t] = ($.symbolSlotHeight + $.symbolSpacingH) * ($.options.reels[t].symbolCount + 4), q[t] > 0 && (H[t] = $.symbolSlotHeight + $.symbolSpacingH - n, W[t] -= $.symbolSlotHeight + $.symbolSpacingH), F[t] = Q.stopLocations[t]
                }

                function g(e, t) {
                    R[e] = t
                }

                function y() {
                    R[0], A[0];
                    for (var e = 0; e < i.options.reels.length; e++) A[e] = R[e]
                }

                function v() {
                    b(O)
                }

                function b(e) {
                    e.children.sort(function(e, t) {
                        return e.zIndex - t.zIndex || t.x - e.x || e.y - t.y
                    })
                }

                function x(e) {
                    e = Math.min(e, 100);
                    for (var t = 0; t < i.options.reels.length; t++) switch (L[t].sort(function(e, t) {
                        return e.ry > t.ry
                    }), D[t].sort(function(e, t) {
                        return e.ry > t.ry
                    }), A[t]) {
                        case E.INIT_NEEDED:
                            c(t), A[t] = E.SPIN_REST;
                        case E.SPIN_REST:
                            break;
                        case E.SPIN_INIT:
                            Z.hide(t), N[t] = K.startTimer ? K.startTimer[t] : 0, j[t] = K.startTicks ? K.startTicks[t] : 0, g(t, E.SPIN_WAITSTART);
                        case E.SPIN_WAITSTART:
                            j[t]--, N[t] -= e, Math.max(j[t], N[t]) <= 0 && (g(t, E.SPIN_FAUX_BOUNCE_START), X[t] = 0, oe && oe(t, "STARTED")), h(0, t);
                            break;
                        case E.SPIN_FAUX_BOUNCE_START:
                            K.startBounce && X[t] < K.startBounce.length ? (V[t] = q[t] > 0 ? -K.startBounce[X[t]] : K.startBounce[X[t]], X[t] += 1) : (V[t] = 0, X[t] = 0, g(t, E.SPIN_SPINUP)), o(t);
                            break;
                        case E.SPIN_SPINUP:
                            h(e, t) && (g(t, E.SPIN_SPINNING), (ae += 1) === A.length && (ie && ie.call(), ie = null));
                            break;
                        case E.SPIN_SPINNING:
                            h(e, t), Y && (G[t] = Q.stopTimer[t], U[t] = Q.stopTicks[t], g(t, E.SPIN_PRESTOP));
                            break;
                        case E.SPIN_PRESTOP:
                            h(e, t), U[t]--, G[t] -= e, Math.max(U[t], G[t]) <= 0 && g(t, E.SPIN_FINDEND);
                            break;
                        case E.SPIN_FINDEND:
                            h(e, t), _(e, t), m(e, t), g(t, E.SPIN_STITCH);
                            break;
                        case E.SPIN_STITCH:
                            h(e, t), m(e, t), p(t) && g(t, E.SPIN_STOPPING);
                            break;
                        case E.SPIN_STOPPING:
                            m(e, t), d(t) && g(t, E.SPIN_STOPEND);
                            break;
                        case E.SPIN_STOPEND:
                            m(e, t), f(t) && (g(t, E.SPIN_FAUX_BOUNCE), W[t] = 0, X[t] = 0, oe && oe(t, "BOUNCE"));
                            break;
                        case E.SPIN_FAUX_BOUNCE:
                            Q.stopBounce && X[t] < Q.stopBounce.length ? (H[t] = Q.stopBounce[X[t]], X[t] += 1) : (H[t] = 0, X[t] = 0, g(t, E.SPIN_HANDBRAKE)), a(t);
                            break;
                        case E.SPIN_HANDBRAKE:
                            k[t] = F[t], g(t, E.SPIN_REST), s(t, Q), c(t), oe && oe(t, "STOPPED"), ae -= 1, 0 === ae && re && (K = Q, re.call(), re = null)
                    }
                    y(), v()
                }

                function T(e, t) {
                    K = e, K.reelset && (ne = K.reelset);
                    for (var n = 0; n < i.options.reels.length; n++) V[n] = 0, z[n] = k[n] * ($.symbolSlotHeight + $.symbolSpacingH), g(n, E.SPIN_INIT), q[n] = e.reelSpeed[n] / 1e3;
                    u(), ae = 0, ie = t, Y = !1
                }

                function w(e, t, n) {
                    Q = e, re = t, oe = n, ae = A.length, Y = !0
                }

                function S(e) {
                    ne = e.reelset;
                    for (var t = 0; t < e.stopLocations.length; t++) k[t] = e.stopLocations[t], A[t] = E.SPIN_REST, R[t] = E.SPIN_REST, V[t] = 0, z[t] = k[t] * ($.symbolSlotHeight + $.symbolSpacingH), J[t] = Math.floor(z[t] / ($.symbolSlotHeight + $.symbolSpacingH)), s(t, e);
                    u(), l(), v()
                }

                function P(e) {
                    S(K), e && e()
                }

                function C() {
                    return Z.getLimitedAccess()
                }
                var E = {
                        INIT_NEEDED: -1,
                        SPIN_REST: 0,
                        SPIN_INIT: 2,
                        SPIN_WAITSTART: 3,
                        SPIN_FAUX_BOUNCE_START: 4,
                        SPIN_SPINUP: 6,
                        SPIN_SPINNING: 8,
                        SPIN_PRESTOP: 9,
                        SPIN_FINDEND: 10,
                        SPIN_STITCH: 12,
                        SPIN_STOPPING: 14,
                        SPIN_STOPEND: 16,
                        SPIN_FAUX_BOUNCE: 18,
                        SPIN_HANDBRAKE: 99
                    },
                    M = new e.Container,
                    O = new e.Container,
                    I = [],
                    A = [],
                    R = [],
                    k = [],
                    L = [],
                    D = [],
                    B = {},
                    F = [],
                    N = [],
                    j = [],
                    G = [],
                    U = [],
                    W = [],
                    H = [],
                    X = [],
                    z = [],
                    V = [],
                    J = [],
                    q = [],
                    Y = !1,
                    $ = i,
                    K = {},
                    Q = {};
                e.extras.AnimatedSprite || (e.extras.AnimatedSprite = e.extras.MovieClip);
                var Z, ee = [],
                    te = [],
                    ne = "BaseGame";
                ! function() {
                    i.spriteOffsets || (i.spriteOffsets = {}), i.symbolNames.forEach(function(t) {
                        if (Array.isArray(i.spriteMap[t])) {
                            var n = [];
                            i.spriteMap[t].forEach(function(t) {
                                n.push(e.Texture.fromFrame(t))
                            }), B[t] = {
                                textures: n
                            }
                        } else B[t] = {
                            textures: e.Texture.fromFrame(i.spriteMap[t])
                        };
                        i.spriteOffsets[t] || (i.spriteOffsets[t] = {
                            x: 0,
                            y: 0,
                            z: 0
                        }), B[t].xOffset = i.spriteOffsets[t].x, B[t].yOffset = i.spriteOffsets[t].y, B[t].zOffset = i.spriteOffsets[t].z || 0
                    }), Z = t(i, B), i.StripInfo && (ne = Object.keys(i.StripInfo)[0], Object.keys(i.StripInfo).forEach(function(e) {
                        i.StripInfo[e][0].Stop && i.StripInfo[e].forEach(function(t, n) {
                            var r = [];
                            t.Stop.forEach(function(e, t) {
                                r.push(e["@symbolID"])
                            }), i.StripInfo[e][n] = r
                        })
                    }));
                    for (var n = 0, o = new e.Graphics, a = !0, s = i.options.reels[0].y, u = 0; u < i.options.reels.length; u++) i.options.reels[u].y !== s && (a = !1);
                    if (i.options.reels.length > 1 && a)
                        for (u = 1; u < i.options.reels.length; u++) $.options.reels[u - 1].symbolCount != $.options.reels[u].symbolCount && (a = !1);
                    var l = !0;
                    if ($.options.clip) $.options.clip[0].hasOwnProperty("reels") ? $.options.clip.forEach(function(t) {
                        o = new e.Graphics, o.beginFill(), o.drawRect(t.x, t.y, t.w, t.h), o.endFill(), o.zIndex = 1e3, t.reels.forEach(function(e) {
                            ee[e] = o
                        }), M.addChild(o)
                    }) : ($.options.clip.forEach(function(e) {
                        o.beginFill(), o.drawRect(e.x, e.y, e.w, e.h), o.endFill()
                    }), o.zIndex = 1e3, M.addChild(o), ee = [o]);
                    else if (a) o.beginFill(), o.drawRect(i.options.pos.x + i.options.reels[0].x, i.options.pos.y + i.options.reels[0].y, ($.symbolSlotWidth + $.symbolSpacingW) * i.options.reels.length - $.symbolSpacingW, ($.symbolSlotHeight + $.symbolSpacingH) * $.options.reels[0].symbolCount - $.symbolSpacingH), o.endFill(), o.zIndex = 1e3, M.addChild(o), ee = [o];
                    else {
                        for (o.beginFill(), u = 0; u < i.options.reels.length; u++) o.drawRect(i.options.pos.x + i.options.reels[u].x, i.options.pos.y + i.options.reels[u].y, $.symbolSlotWidth + i.symbolSpacingW, ($.symbolSlotHeight + i.symbolSpacingH) * $.options.reels[u].symbolCount);
                        o.endFill(), o.zIndex = 1e3, M.addChild(o), ee = [o]
                    }
                    for (ee.length > 1 && (l = !1), u = 0; u < i.options.reels.length; u++) {
                        te.push(i.StripInfo[ne][u].length * ($.symbolSlotHeight + $.symbolSpacingH)), k.push(0), A.push(E.INIT_NEEDED), R.push(E.INIT_NEEDED);
                        for (var c = [r(u), r(u), r(u), r(u)], h = [r(u), r(u), r(u), r(u)], p = [], d = 0; d < i.options.reels[u].symbolCount; d++) c.push(r(u)), h.push(r(u)), I.push(r(u)), p.push(I[n]), n += 1;
                        L.push(c), D.push(h)
                    }
                    for (u = 0; u < i.options.reels.length; u++) L[u].forEach(function(e) {
                        l || (e.mask = ee[u]), O.addChild(e)
                    });
                    for (u = 0; u < i.options.reels.length; u++) D[u].forEach(function(e) {
                        l || (e.mask = ee[u]), O.addChild(e)
                    });
                    for (l && (O.mask = ee[0]), M.addChild(O), u = 0; u < i.options.reels.length; u++) F.push(0), N.push(0), j.push(0), G.push(0), U.push(0), W.push(0), H.push(0), X.push(0), z.push(0), V.push(0), J.push(0), q.push(-400);
                    M.addChild(Z.getContainer())
                }();
                var ie, re, oe, ae = 0;
                return {
                    spin: T,
                    resolve: w,
                    setReels: S,
                    cancelSpin: P,
                    getContainer: function() {
                        return M
                    },
                    process: x,
                    getWinPresentationLayer: C
                }
            }
        }), define("game/reelsController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "gamePlayConfig/reelSetup", "skbJet/component/phoenixReel/reelspin", "skbJet/componentManchester/rgsModel/rgsModel", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/gladPixiRenderer/Sprite", "com/pixijs/pixi", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer"], function(e, t, n, i, r, o, a, s, u) {
            function l() {
                t.lib._betPrompt.show(!1), t.lib._baseGameBg.pixiContainer.interactive = !1, t.lib._reels.pixiContainer.interactive = !1
            }

            function c(e) {
                C = t.getTicker(), M.BaseGame = h("BaseGame"), M.FreeSpin = h("FreeSpin");
                var n = new s.Graphics;
                n.beginFill(0, 0), n.drawRect(0, 0, M.BaseGame.reelsConfig.symbolSlotWidth, M.BaseGame.reelsConfig.symbolSlotHeight), n.endFill();
                var i = n.generateCanvasTexture(1, 1),
                    r = new s.Graphics;
                r.beginFill(0, .5), r.drawRect(0, 0, M.BaseGame.reelsConfig.symbolSlotWidth, M.BaseGame.reelsConfig.symbolSlotHeight), r.endFill();
                var o = r.generateCanvasTexture(1, 1);
                s.utils.TextureCache.overlayTexture0 = i, s.utils.TextureCache.overlayTexture1 = o, f(e.GameLogicResponse.OutcomeDetail.Stage), m(e.GameLogicResponse.OutcomeDetail.Stage), t.lib._betPrompt && (t.lib._baseGameBg.pixiContainer.on("pointerup", function() {
                    l()
                }), t.lib._reels.pixiContainer.on("pointerup", function() {
                    l()
                }), t.lib._baseGameBg.pixiContainer.interactive = !0, t.lib._reels.pixiContainer.interactive = !0)
            }

            function h(e) {
                var o = {};
                o.reelsConfig = new n(e), p(o.reelsConfig),
                    o.reelsConfig.StripInfo.BaseGame = r.paytable.StripInfo("BaseGame"), o.reelsConfig.StripInfo.FreeSpin = r.paytable.StripInfo("FreeSpin"), o.reelSpin = new i(t.getPixiRenderer, o.reelsConfig), o.presentationLayer = o.reelSpin.getWinPresentationLayer(), o.container = o.reelSpin.getContainer(), o.tickHandler = function() {
                        o.reelSpin.process(C.elapsedMS)
                    }, t.lib._reels.sprites._reelsSet.pixiContainer.addChild(o.container), o.container.visible = !1;
                for (var a in t.lib._reels.sprites._reelsSet.sprites) t.lib._reels.sprites._reelsSet.sprites[a].show(!1);
                return o
            }

            function p(e) {
                e.symbolSlotWidth = o.formatFloat(t.lib._reels_0_0._currentStyle._width), e.symbolSlotHeight = o.formatFloat(t.lib._reels_0_0._currentStyle._height), e.options.pos.x = 0, e.options.pos.y = 0, e.symbolSpacingW = o.formatFloat(t.lib._reels_0_1._currentStyle._left) - o.formatFloat(t.lib._reels_0_0._currentStyle._left) - e.symbolSlotWidth, e.symbolSpacingH = 0;
                for (var n = 0; n < e.options.reels.length; n++) e.options.reels[n].x = t.lib["_reels_" + A[n]]._currentStyle._left, e.options.reels[n].y = t.lib["_reels_" + A[n]]._currentStyle._top;
                e.options.clip = [{
                    x: e.options.pos.x + e.options.reels[0].x,
                    y: e.options.pos.y + e.options.reels[0].y,
                    w: 5 * e.symbolSpacingW + 5 * e.symbolSlotWidth,
                    h: e.symbolSlotHeight,
                    reels: [0, 4, 8, 12, 16]
                }, {
                    x: e.options.pos.x + e.options.reels[1].x,
                    y: e.options.pos.y + e.options.reels[1].y,
                    w: 5 * e.symbolSpacingW + 5 * e.symbolSlotWidth,
                    h: e.symbolSlotHeight,
                    reels: [1, 5, 9, 13, 17]
                }, {
                    x: e.options.pos.x + e.options.reels[2].x,
                    y: e.options.pos.y + e.options.reels[2].y,
                    w: 5 * e.symbolSpacingW + 5 * e.symbolSlotWidth,
                    h: e.symbolSlotHeight,
                    reels: [2, 6, 10, 14, 18]
                }, {
                    x: e.options.pos.x + e.options.reels[3].x,
                    y: e.options.pos.y + e.options.reels[3].y,
                    w: 5 * e.symbolSpacingW + 5 * e.symbolSlotWidth,
                    h: e.symbolSlotHeight,
                    reels: [3, 7, 11, 15, 19]
                }]
            }

            function d() {
                return M.BaseGame.reelsConfig
            }

            function f(e) {
                "BaseGame" === e ? (C.remove(M.FreeSpin.tickHandler), C.add(M.BaseGame.tickHandler)) : (C.remove(M.BaseGame.tickHandler), C.add(M.FreeSpin.tickHandler)), M.BaseGame.container.visible = "BaseGame" === e, M.FreeSpin.container.visible = "FreeSpin" === e
            }

            function m(e) {
                M[e].reelSpin.setReels({
                    reelset: e,
                    stopLocations: r.gameLogic.PopulationOutcome(e + ".Reels").stop
                })
            }

            function _(t) {
                R.reelset = t, R.stopLocations = r.gameLogic.PopulationOutcome(t + ".Reels").stop, M[t].reelSpin.spin(R, function() {
                    e.publish("nextState")
                })
            }

            function g(t) {
                var n = t.response.OutcomeDetail.Stage;
                R.reelset = n, R.stopLocations = r.gameLogic.PopulationOutcome(n + ".Reels").stop, M[n].reelSpin.resolve(R, function() {
                    "BaseGame" === n ? e.publish("BaseGame.reelsResolved", t.response.OutcomeDetail.NextStage) : e.publish("nextState")
                }, v)
            }

            function y(e) {
                M[e].reelSpin.cancelSpin()
            }

            function v(e, t) {
                if ("BOUNCE" === t) {
                    var n = M[r.gameLogic.OutcomeDetail.Stage].reelsConfig.locationsMap[e],
                        i = "reelstop",
                        o = .4;
                    I = 6, e > 6 && e < 12 && "b01" === r.gameLogic.PopulationOutcome(r.gameLogic.OutcomeDetail.Stage + ".Reels").map[n] && (i = "SmartSound", I = 5, o = 1), 19 === e && "BOUNCE" === t && u.stopChannel(4), u.play(i, I), u.volume(6, o), u.volume(5, o)
                }
            }

            function b(e, t, n) {
                M[n].presentationLayer.setCellAnimations(e, t), M[n].presentationLayer.startAnimating()
            }

            function x(e) {
                M[e].presentationLayer.resetAnimations()
            }

            function T(e, t, n, i, r, o) {
                return {
                    location: e,
                    textures: t,
                    animationSpeed: n,
                    layer: i,
                    position: r,
                    playmode: o
                }
            }

            function w(e) {
                return S(e)
            }

            function S(e) {
                var t, n, i, r = [],
                    o = e.startFrame ? e.startFrame : 0;
                for (n = o; n < e.frames + 1; ++n) i = e.name + ("0000" + n).slice(-4), t = s.Texture.fromImage(i), !0 === t.valid && r.push(i);
                return r
            }

            function P(e, t) {
                return a.getSpriteSheetAnimationFrameArray(M[e].reelsConfig.spriteMap[t].toUpperCase())
            }
            var C, E, M = {},
                O = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                I = 3,
                A = ["0_0", "1_0", "2_0", "3_0", "0_1", "1_1", "2_1", "3_1", "0_2", "1_2", "2_2", "3_2", "0_3", "1_3", "2_3", "3_3", "0_4", "1_4", "2_4", "3_4"];
            E = -1 !== O.indexOf("mini") ? -900 : -1700;
            var R = {
                startTicks: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                startTimer: [0, 10, 20, 30, 10, 20, 30, 40, 20, 30, 40, 50, 30, 40, 50, 60, 40, 50, 60, 70],
                reelSpeed: [E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E],
                stopTicks: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                stopTimer: [0, 106, 212, 318, 124, 230, 336, 442, 248, 354, 460, 566, 372, 478, 584, 690, 496, 602, 708, 814],
                stopLocations: null,
                stopBounce: [-4, -8, -12, -16, -20, -24, -28, -30, -27, -24, -20, -16, -14, -12, -9, -6, -3, -2],
                reelset: "BaseGame"
            };
            return {
                onGameInit: c,
                getReelsConfig: d,
                spin: _,
                resolve: g,
                cancelSpin: y,
                showReels: f,
                setReels: m,
                animateSymbols: b,
                resetAnimations: x,
                createAnimationDataObject: T,
                getSpriteSheetAnimationFrameArray: w,
                getSymbolSpriteSheetAnimationFrameArray: P
            }
        }),
        function(e) {
            if ("object" == typeof exports && "undefined" != typeof module) module.exports = e();
            else if ("function" == typeof define && define.amd) define("com/pixijs/pixi-multistyle-text", [], e);
            else {
                var t;
                t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, t.pixiMultistyleText = e()
            }
        }(function() {
            var e;
            return function e(t, n, i) {
                function r(a, s) {
                    if (!n[a]) {
                        if (!t[a]) {
                            var u = "function" == typeof require && require;
                            if (!s && u) return u(a, !0);
                            if (o) return o(a, !0);
                            var l = new Error("Cannot find module '" + a + "'");
                            throw l.code = "MODULE_NOT_FOUND", l
                        }
                        var c = n[a] = {
                            exports: {}
                        };
                        t[a][0].call(c.exports, function(e) {
                            var n = t[a][1][e];
                            return r(n || e)
                        }, c, c.exports, e, t, n, i)
                    }
                    return n[a].exports
                }
                for (var o = "function" == typeof require && require, a = 0; a < i.length; a++) r(i[a]);
                return r
            }({
                1: [function(t, n, i) {
                    (function(r) {
                        ! function(t) {
                            if ("object" == typeof i && void 0 !== n) n.exports = t();
                            else if ("function" == typeof e && e.amd) e([], t);
                            else {
                                var o;
                                o = "undefined" != typeof window ? window : void 0 !== r ? r : "undefined" != typeof self ? self : this, o.MultiStyleText = t()
                            }
                        }(function() {
                            var e;
                            return function e(n, i, r) {
                                function o(s, u) {
                                    if (!i[s]) {
                                        if (!n[s]) {
                                            var l = "function" == typeof t && t;
                                            if (!u && l) return l(s, !0);
                                            if (a) return a(s, !0);
                                            var c = new Error("Cannot find module '" + s + "'");
                                            throw c.code = "MODULE_NOT_FOUND", c
                                        }
                                        var h = i[s] = {
                                            exports: {}
                                        };
                                        n[s][0].call(h.exports, function(e) {
                                            var t = n[s][1][e];
                                            return o(t || e)
                                        }, h, h.exports, e, n, i, r)
                                    }
                                    return i[s].exports
                                }
                                for (var a = "function" == typeof t && t, s = 0; s < r.length; s++) o(r[s]);
                                return o
                            }({
                                1: [function(e, t) {
                                    t.exports = e("./pixi-multistyle-text").default
                                }, {
                                    "./pixi-multistyle-text": 2
                                }],
                                2: [function(t, n, i) {
                                    var r = this && this.__extends || function(e, t) {
                                        function n() {
                                            this.constructor = e
                                        }
                                        for (var i in t) t.hasOwnProperty(i) && (e[i] = t[i]);
                                        e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                                    };
                                    ! function(r) {
                                        if ("object" == typeof n && "object" == typeof n.exports) {
                                            var o = r(t, i);
                                            void 0 !== o && (n.exports = o)
                                        } else "function" == typeof e && e.amd && e(["require", "exports"], r)
                                    }(function(e, t) {
                                        "use strict";
                                        var n = function(e) {
                                            function t(t, n) {
                                                var i = e.call(this, t) || this;
                                                return i.styles = n, i
                                            }
                                            return r(t, e), Object.defineProperty(t.prototype, "styles", {
                                                set: function(e) {
                                                    this.textStyles = {}, this.textStyles.default = this.assign({}, t.DEFAULT_TAG_STYLE);
                                                    for (var n in e) "default" === n ? this.assign(this.textStyles.default, e[n]) : this.textStyles[n] = this.assign({}, e[n]);
                                                    this._style = new PIXI.TextStyle(this.textStyles.default), this.dirty = !0
                                                },
                                                enumerable: !0,
                                                configurable: !0
                                            }), t.prototype.setTagStyle = function(e, t) {
                                                e in this.textStyles ? this.assign(this.textStyles[e], t) : this.textStyles[e] = this.assign({}, t), this._style = new PIXI.TextStyle(this.textStyles.default), this.dirty = !0
                                            }, t.prototype.deleteTagStyle = function(e) {
                                                "default" === e ? this.textStyles.default = this.assign({}, t.DEFAULT_TAG_STYLE) : delete this.textStyles[e], this._style = new PIXI.TextStyle(this.textStyles.default), this.dirty = !0
                                            }, t.prototype._getTextDataPerLine = function(e) {
                                                for (var t = [], n = Object.keys(this.textStyles).join("|"), i = new RegExp("</?(" + n + ")>", "g"), r = [this.assign({}, this.textStyles.default)], o = 0; o < e.length; o++) {
                                                    for (var a = [], s = [], u = void 0; u = i.exec(e[o]);) s.push(u);
                                                    if (0 === s.length) a.push(this.createTextData(e[o], r[r.length - 1]));
                                                    else {
                                                        for (var l = 0, c = 0; c < s.length; c++) s[c].index > l && a.push(this.createTextData(e[o].substring(l, s[c].index), r[r.length - 1])), "/" === s[c][0][1] ? r.length > 1 && r.pop() : r.push(this.assign({}, r[r.length - 1], this.textStyles[s[c][1]])), l = s[c].index + s[c][0].length;
                                                        l < e[o].length && a.push(this.createTextData(e[o].substring(l), r[r.length - 1]))
                                                    }
                                                    t.push(a)
                                                }
                                                return t
                                            }, t.prototype.createTextData = function(e, t) {
                                                return {
                                                    text: e,
                                                    style: t,
                                                    width: 0,
                                                    height: 0,
                                                    fontProperties: void 0
                                                }
                                            }, t.prototype.getDropShadowPadding = function() {
                                                var e = this,
                                                    t = 0,
                                                    n = 0;
                                                return Object.keys(this.textStyles).forEach(function(i) {
                                                    var r = e.textStyles[i],
                                                        o = r.dropShadowDistance,
                                                        a = r.dropShadowBlur;
                                                    t = Math.max(t, o || 0), n = Math.max(n, a || 0)
                                                }), t + n
                                            }, t.prototype.updateText = function() {
                                                var e = this;
                                                if (this.dirty) {
                                                    this.texture.baseTexture.resolution = this.resolution;
                                                    var t = this.textStyles,
                                                        n = this.text;
                                                    this._style.wordWrap && (n = this.wordWrap(this.text));
                                                    for (var i = n.split(/(?:\r\n|\r|\n)/), r = this._getTextDataPerLine(i), o = [], a = [], s = 0, u = 0; u < i.length; u++) {
                                                        for (var l = 0, c = 0, h = 0; h < r[u].length; h++) {
                                                            var p = r[u][h].style;
                                                            this.context.font = PIXI.Text.getFontStyle(p), r[u][h].width = this.context.measureText(r[u][h].text).width, 0 === r[u][h].text.length && (r[u][h].width += (r[u][h].text.length - 1) * p.letterSpacing, h > 0 && (l += p.letterSpacing / 2), h < r[u].length - 1 && (l += p.letterSpacing / 2)), l += r[u][h].width, r[u][h].fontProperties = PIXI.Text.calculateFontProperties(this.context.font), r[u][h].height = r[u][h].fontProperties.fontSize + r[u][h].style.strokeThickness, c = Math.max(c, r[u][h].height)
                                                        }
                                                        o[u] = l, a[u] = c, s = Math.max(s, l)
                                                    }
                                                    var d = Object.keys(t).map(function(e) {
                                                            return t[e]
                                                        }),
                                                        f = d.reduce(function(e, t) {
                                                            return Math.max(e, t.strokeThickness || 0)
                                                        }, 0),
                                                        m = this.getDropShadowPadding(),
                                                        _ = a.reduce(function(e, t) {
                                                            return Math.max(e, t)
                                                        }, 0),
                                                        g = s + f + 2 * m,
                                                        y = _ * i.length + 2 * m;
                                                    this.canvas.width = (g + this.context.lineWidth) * this.resolution, this.canvas.height = y * this.resolution, this.context.scale(this.resolution, this.resolution), this.context.textBaseline = "alphabetic", this.context.lineJoin = "round";
                                                    for (var v = m, b = [], u = 0; u < r.length; u++) {
                                                        var x = r[u],
                                                            T = void 0;
                                                        switch (this._style.align) {
                                                            case "left":
                                                                T = m;
                                                                break;
                                                            case "center":
                                                                T = m + (s - o[u]) / 2;
                                                                break;
                                                            case "right":
                                                                T = m + s - o[u]
                                                        }
                                                        for (var h = 0; h < x.length; h++) {
                                                            var w = x[h],
                                                                S = w.style,
                                                                P = w.text,
                                                                C = w.fontProperties;
                                                            T += f / 2;
                                                            var E = f / 2 + v + C.ascent;
                                                            if ("bottom" === S.valign ? E += a[u] - x[h].height - (f - S.strokeThickness) / 2 : "middle" === S.valign && (E += (a[u] - x[h].height) / 2 - (f - S.strokeThickness) / 2), 0 === S.letterSpacing) b.push({
                                                                text: P,
                                                                style: S,
                                                                x: T,
                                                                y: E
                                                            }), T += x[h].width;
                                                            else {
                                                                this.context.font = PIXI.Text.getFontStyle(x[h].style);
                                                                for (var M = 0; M < P.length; M++)(M > 0 || h > 0) && (T += S.letterSpacing / 2), b.push({
                                                                    text: P.charAt(M),
                                                                    style: S,
                                                                    x: T,
                                                                    y: E
                                                                }), T += this.context.measureText(P.charAt(M)).width, (M < P.length - 1 || h < x.length - 1) && (T += S.letterSpacing / 2)
                                                            }
                                                            T -= f / 2
                                                        }
                                                        v += a[u]
                                                    }
                                                    this.context.save(), b.forEach(function(t) {
                                                        var n = t.style,
                                                            i = t.text,
                                                            r = t.x,
                                                            o = t.y;
                                                        if (n.dropShadow) {
                                                            e.context.font = PIXI.Text.getFontStyle(n);
                                                            var a = n.dropShadowColor;
                                                            "number" == typeof a && (a = PIXI.utils.hex2string(a)), e.context.shadowColor = a, e.context.shadowBlur = n.dropShadowBlur, e.context.shadowOffsetX = Math.cos(n.dropShadowAngle) * n.dropShadowDistance * e.resolution, e.context.shadowOffsetY = Math.sin(n.dropShadowAngle) * n.dropShadowDistance * e.resolution, e.context.fillText(i, r, o)
                                                        }
                                                    }), this.context.restore(), b.forEach(function(t) {
                                                        var n = t.style,
                                                            i = t.text,
                                                            r = t.x,
                                                            o = t.y;
                                                        e.context.font = PIXI.Text.getFontStyle(n);
                                                        var a = n.stroke;
                                                        "number" == typeof a && (a = PIXI.utils.hex2string(a)), e.context.strokeStyle = a, e.context.lineWidth = n.strokeThickness;
                                                        var s = n.fill;
                                                        if ("number" == typeof s) s = PIXI.utils.hex2string(s);
                                                        else if (Array.isArray(s))
                                                            for (var u = 0; u < s.length; u++) {
                                                                var l = s[u];
                                                                "number" == typeof l && (s[u] = PIXI.utils.hex2string(l))
                                                            }
                                                        e.context.fillStyle = e._generateFillStyle(new PIXI.TextStyle(n), [i]), n.stroke && n.strokeThickness && e.context.strokeText(i, r, o), n.fill && e.context.fillText(i, r, o)
                                                    }), this.updateTexture()
                                                }
                                            }, t.prototype.wordWrap = function(e) {
                                                var t = "",
                                                    n = Object.keys(this.textStyles).join("|"),
                                                    i = new RegExp("(</?(" + n + ")>)", "g"),
                                                    r = e.split("\n"),
                                                    o = this._style.wordWrapWidth,
                                                    a = [this.assign({}, this.textStyles.default)];
                                                this.context.font = PIXI.Text.getFontStyle(this.textStyles.default);
                                                for (var s = 0; s < r.length; s++) {
                                                    for (var u = o, l = r[s].split(" "), c = 0; c < l.length; c++)
                                                        for (var h = l[c].split(i), p = 0; p < h.length; p++)
                                                            if (i.test(h[p])) t += h[p], "/" === h[p][1] ? (p++, a.pop()) : (p++, a.push(this.assign({}, a[a.length - 1], this.textStyles[h[p]]))), this.context.font = PIXI.Text.getFontStyle(a[a.length - 1]);
                                                            else {
                                                                var d = this.context.measureText(h[p]).width;
                                                                if (this._style.breakWords && d > o) {
                                                                    var f = h[p].split("");
                                                                    c > 0 && 0 === p && (t += " ", u -= this.context.measureText(" ").width);
                                                                    for (var m = 0; m < f.length; m++) {
                                                                        var _ = this.context.measureText(f[m]).width;
                                                                        _ > u ? (t += "\n" + f[m], u = o - _) : (c > 0 && 0 === p && 0 === m && (t += " "), t += f[m], u -= _)
                                                                    }
                                                                } else {
                                                                    var g = d + (0 === p ? this.context.measureText(" ").width : 0);
                                                                    0 === c || g > u ? (c > 0 && (t += "\n"), t += h[p], u = o - d) : (u -= g, 0 === p && (t += " "), t += h[p])
                                                                }
                                                            }
                                                    s < r.length - 1 && (t += "\n")
                                                }
                                                return t
                                            }, t.prototype.updateTexture = function() {
                                                var e = this._texture,
                                                    t = this.getDropShadowPadding();
                                                e.baseTexture.hasLoaded = !0, e.baseTexture.resolution = this.resolution, e.baseTexture.realWidth = this.canvas.width, e.baseTexture.realHeight = this.canvas.height, e.baseTexture.width = this.canvas.width / this.resolution, e.baseTexture.height = this.canvas.height / this.resolution, e.trim.width = e.frame.width = this.canvas.width / this.resolution, e.trim.height = e.frame.height = this.canvas.height / this.resolution, e.trim.x = -this._style.padding - t, e.trim.y = -this._style.padding - t, e.orig.width = e.frame.width - 2 * (this._style.padding + t), e.orig.height = e.frame.height - 2 * (this._style.padding + t), this._onTextureUpdate(), e.baseTexture.emit("update", e.baseTexture), this.dirty = !1
                                            }, t.prototype.assign = function(e) {
                                                for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
                                                for (var i = 0, r = t; i < r.length; i++) {
                                                    var o = r[i];
                                                    for (var a in o) e[a] = o[a]
                                                }
                                                return e
                                            }, t
                                        }(PIXI.Text);
                                        n.DEFAULT_TAG_STYLE = {
                                            align: "left",
                                            breakWords: !1,
                                            dropShadow: !1,
                                            dropShadowAngle: Math.PI / 6,
                                            dropShadowBlur: 0,
                                            dropShadowColor: "#000000",
                                            dropShadowDistance: 5,
                                            fill: "black",
                                            fillGradientType: PIXI.TEXT_GRADIENT.LINEAR_VERTICAL,
                                            fontFamily: "Arial",
                                            fontSize: 26,
                                            fontStyle: "normal",
                                            fontVariant: "normal",
                                            fontWeight: "normal",
                                            letterSpacing: 0,
                                            lineHeight: 0,
                                            lineJoin: "miter",
                                            miterLimit: 10,
                                            padding: 0,
                                            stroke: "black",
                                            strokeThickness: 0,
                                            textBaseline: "alphabetic",
                                            wordWrap: !1,
                                            wordWrapWidth: 100
                                        }, Object.defineProperty(t, "__esModule", {
                                            value: !0
                                        }), t.default = n
                                    })
                                }, {}]
                            }, {}, [1])(1)
                        })
                    }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
                }, {
                    "./pixi-multistyle-text": 1
                }]
            }, {}, [1])(1)
        }), define("game/awardCap", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/componentManchester/rgsModel/rgsModel", "com/pixijs/pixi-multistyle-text", "game/textSetup", "game/buttonController", "com/gsap/TweenLite"], function(e) {
            function t() {
                n()
            }

            function n() {
                g = new d("TEST\nTEST", {
                    default: f.defaultTextSM,
                    value: f.valueSM
                }), g.y = l.getSize().height / 2 + u, g.x = l.getSize().width / 2, g.anchor.x = .5, g.anchor.y = .5, l.lib._gameLayer.pixiContainer.addChild(g), l.lib._gameLayer.sprites._awardCapText = g, l.lib._awardCapText = g, l.lib._awardCapText.visible = !1, l.lib._awardCapText.alpha = 0
            }

            function i() {
                f.awardCapBGText(c.formatBalance(c.fromStakeUnits(p.gameLogic.PrizeOutcome("Game.Total").totalPay))), l.lib._winValue.setText(c.formatBalance(c.fromStakeUnits(p.gameLogic.PrizeOutcome("Game.Total").totalPay))), s(l.lib._awardCapText, 1, 1), s(l.lib._reelsOverlay, 1, 1)
            }

            function r() {
                l.lib._winValue.setText(" "), s(l.lib._awardCapText, .2, 0), s(l.lib._reelsOverlay, .2, 0), -1 === _.indexOf("desktop") && m.showSpinButton(!0)
            }

            function o() {
                i(), m.showAwardCapButton(!0), -1 === _.indexOf("desktop") && m.showSpinButton(!1)
            }

            function a() {
                r(), h.publish("nextState")
            }

            function s(e, t, n) {
                var i = !1;
                0 === n && (i = !0), e.visible || (e.visible = !0), new y.to(e, t, {
                    alpha: n,
                    onComplete: function() {
                        e.visible = !i
                    }
                })
            }
            var u, l = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                c = e("skbJet/component/currencyHelper/currencyHelper"),
                h = e("skbJet/component/gameMsgBus/GameMsgBus"),
                p = e("skbJet/componentManchester/rgsModel/rgsModel"),
                d = e("com/pixijs/pixi-multistyle-text"),
                f = e("game/textSetup"),
                m = e("game/buttonController"),
                _ = window.location.search.match(/&?assetPack=([^&]+)&?/)[1];
            switch (_) {
                case "desktop":
                case "tablet":
                    u = 10;
                    break;
                case "mobile":
                    u = 5;
                    break;
                case "desktopmini":
                    u = 1
            }
            e("com/gsap/TweenLite");
            var g, y = window.TweenLite;
            return h.subscribe("onAwardCapSkipButtonClicked", a), {
                init: t,
                runAwardCap: o
            }
        }), define("skbJet/component/phoenixReel/winline", ["com/pixijs/pixi", "skbJet/component/phoenixReel/animationLayer"], function(e, t) {
            return function(n, i, r) {
                function o() {
                    1 !== z && (G.cacheAsBitmap = !0, U.alpha = z)
                }

                function a() {}

                function s(e, t, n, i) {
                    if (!ee || !ee[e]) {
                        $ = !0;
                        var r = re[e];
                        G.lineStyle(n, t, i), n = Math.max(V, J), l(r.x, r.y, r.width, r.height)
                    }
                }

                function u(e, t, n, i) {
                    if (!ee || !ee[e]) {
                        $ = !0;
                        var r = re[e];
                        G.lineStyle(n, t, i), n = Math.max(V, J), l(r.x, r.y, r.width, r.height)
                    }
                }

                function l(e, t, n, i) {
                    "round" === Y ? G.drawRoundedRect(e, t, n, i, Math.max(n, i) / 16) : G.drawRect(e, t, n, i)
                }

                function c() {
                    var e = Math.max(J, V);
                    q && (e -= q);
                    var t = [];
                    return i.options.reels.forEach(function(n) {
                        for (var r = 0; r < n.symbolCount; r++) {
                            var o = {};
                            o.x = i.options.pos.x + n.x + e / 2, o.y = i.options.pos.y + n.y + (i.symbolSlotHeight + i.symbolSpacingH) * r + e / 2, o.width = i.symbolSlotWidth - e, o.height = i.symbolSlotHeight - e, t.push(o)
                        }
                    }), t
                }

                function h(e, t, n, i, r, o) {
                    return Math.abs(n - e) <= r / 2 && Math.abs(i - t) <= o / 2
                }

                function p(e) {
                    ae = e.reduce(function(e, t, n) {
                        return e[t] = n, e
                    }, {})
                }

                function d(e) {
                    return ((16711680 & e) / 2 & 16711680) + ((65280 & e) / 2 & 65280) + ((255 & e) / 2 & 255)
                }

                function f(e) {
                    oe.winlines.forEach(function(e) {
                        var t, n, r, o, a, s, u, l, c;
                        e.hasOwnProperty("backgroundColour") || (e.backgroundColour = 0), e.hasOwnProperty("start") || (e.start = 0), e.hasOwnProperty("end") || (e.end = 0), e.x = [], e.y = [], e.leftx = [], e.lefty = [], e.rightx = [], e.righty = [], e.leftToRight || (e.locations = e.locations.reverse());
                        for (var p, d = oe.leftx + e.start + i.options.pos.x, f = 0; f < e.locations.length; f++) {
                            if (u = re[e.locations[f]], l = u.x + u.width / 2, c = u.y + u.height / 2 + e.yOffset, e.x.push(l), e.y.push(c), p || (p = c), a = d - l, 0 === (s = p - c)) e.leftx.push(u.x), e.lefty.push(c);
                            else if (Math.abs(a) > Math.abs(s)) {
                                for (t = s / a, r = e.x[f], o = e.y[f]; h(r, o, l, c - e.yOffset, u.width, u.height);) r -= 1, o -= t;
                                r += 1, o += t, e.leftx.push(r), e.lefty.push(o)
                            } else {
                                for (t = a / s, r = e.x[f], o = e.y[f], n = s < 0 ? -1 : 1; h(r, o, l, c - e.yOffset, u.width, u.height);) r -= Math.abs(t), o += n;
                                r += Math.abs(t), o -= n, e.leftx.push(r), e.lefty.push(o)
                            }
                            d = l, p = c
                        }
                        for (f = 0; f < e.locations.length - 1; f++)
                            if (a = e.x[f] - e.x[f + 1], s = e.y[f] - e.y[f + 1], u = re[e.locations[f]], 0 === s) e.rightx.push(u.x + u.width), e.righty.push(e.y[f]);
                            else if (Math.abs(a) > Math.abs(s)) {
                            for (t = s / a, r = e.x[f], o = e.y[f]; h(r, o, e.x[f], e.y[f] - e.yOffset, u.width, u.height);) r += 1, o += t;
                            r -= 1, o -= t, e.rightx.push(r), e.righty.push(o)
                        } else {
                            for (t = a / s, r = e.x[f], o = e.y[f], n = s < 0 ? 1 : -1; h(r, o, e.x[f], e.y[f] - e.yOffset, u.width, u.height);) r += Math.abs(t), o += n;
                            r -= Math.abs(t), o -= n, e.rightx.push(r), e.righty.push(o)
                        }
                        e.rightx.push(e.x[e.locations.length - 1] + re[e.locations.length - 1].width / 2), e.righty.push(e.y[e.locations.length - 1]), e.leftToRight || (e.locations = e.locations.reverse(), e.x = e.x.reverse(), e.y = e.y.reverse(), e.leftx = e.leftx.reverse(), e.lefty = e.lefty.reverse(), e.rightx = e.rightx.reverse(), e.righty = e.righty.reverse())
                    }), e || (oe.leftx += i.options.pos.x, oe.rightx += i.options.pos.x)
                }

                function m(e, t, n, i, r) {
                    $ = !0, G.moveTo(oe.leftx + e.start, e.y[0]), _(oe.leftx + e.start, e.y[0], n, i, r), G.moveTo(oe.leftx + e.start, e.y[0]);
                    for (var o = 0; o < e.locations.length; o++) t > o ? (G.lineTo(e.leftx[o], e.lefty[o]), G.moveTo(e.rightx[o], e.righty[o])) : G.lineTo(e.x[o], e.y[o]);
                    var a = oe.shortenright ? oe.shortenright : 0;
                    (t < e.locations.length || 0 === a) && (G.lineTo(oe.rightx + e.end - a, e.y[e.locations.length - 1]), _(oe.rightx + e.end - a, e.y[e.locations.length - 1], n, i, r))
                }

                function _(e, t, n, i, r) {
                    if ($ = !0, "round" === se) G.lineStyle(n / 2, r, i), G.drawCircle(e, t, 1), G.lineStyle(n, r, i);
                    else {
                        if ("square" !== se) return;
                        G.moveTo(e, t), G.lineTo(e, t)
                    }
                }

                function g(e, t, n, i, r) {
                    $ = !0, G.moveTo(oe.rightx + e.end + (se ? n / 2 : 0), e.y[0]), _(oe.rightx + e.end + (se ? n / 2 : 0), e.y[0], n, i, r), G.moveTo(oe.rightx + e.end + (se ? n / 2 : 0), e.y[0]);
                    for (var o = 0; o < e.locations.length; o++) t > e.locations.length - 1 - o ? (G.lineTo(e.rightx[o], e.righty[o]), G.moveTo(e.leftx[o], e.lefty[o])) : G.lineTo(e.x[o], e.y[o]);
                    var a = oe.shortenleft ? oe.shortenleft : 0;
                    0 !== t && 0 !== a || (G.lineTo(oe.leftx + e.start + a - (se ? n / 2 : 0), e.y[e.locations.length - 1]), _(oe.leftx + e.start - n / 2 + a, e.y[e.locations.length - 1], n, i, r))
                }

                function y(e, t, n, i, r) {
                    $ = !0;
                    var o = oe.winlines[e];
                    G.lineStyle(n, r || o.backgroundColour, i), oe.winlines[e].leftToRight ? m(o, t, n, i, r || o.backgroundColour) : g(o, t, n, i, r || o.backgroundColour)
                }

                function v(e, t, n, i, r) {
                    $ = !0;
                    var o = oe.winlines[e];
                    G.lineStyle(n, r || o.colour, i), oe.winlines[e].leftToRight ? m(o, t, n, i, r || o.colour) : g(o, t, n, i, r || o.colour)
                }

                function b(e) {
                    ie(), $ = !0, e.forEach(function(e) {
                        y(e - 1, 0, J, X), v(e - 1, 0, V, X)
                    }), o()
                }

                function x(e, t) {
                    ie(), $ = !0;
                    var n = e - 1;
                    y(n, t, J, X);
                    for (var i, r = 0; r < t; r++) i = oe.winlines[n].leftToRight ? r : oe.winlines[n].locations.length - 1 - r, s(oe.winlines[n].locations[i], oe.winlines[n].backgroundColour, J, X);
                    for (v(n, t, V, X), r = 0; r < t; r++) i = oe.winlines[n].leftToRight ? r : oe.winlines[n].locations.length - 1 - r, u(oe.winlines[n].locations[i], oe.winlines[n].colour, V, X);
                    o()
                }

                function T(e) {
                    var t = parseInt(e["@name"].substring(5)) - 1,
                        n = e.Cell.map(function(e) {
                            return ae[e["@name"]]
                        });
                    ie(), $ = !0, y(t, n.length, J, X);
                    for (var i = 0; i < n.length; i++) s(n[i], oe.winlines[t].backgroundColour, J, X);
                    for (v(t, n.length, V, X), i = 0; i < n.length; i++) u(n[i], oe.winlines[t].colour, V, X);
                    o()
                }

                function w(t, n) {
                    var i = parseInt(t["@name"].substring(5)) - 1,
                        r = t.Cell.map(function(e) {
                            return ae[e["@name"]]
                        });
                    n.opacity && (n.opacity = parseFloat(n.opacity)), n.height && (n.height = parseInt(n.height)), ie(), $ = !0;
                    var a, l;
                    y(i, r.length, J, X);
                    for (var c = 0; c < r.length; c++) s(r[c], oe.winlines[i].backgroundColour, J, X), n && n.location === t.Cell[c]["@name"] && (a = re[r[c]], l = J, G.moveTo(a.x, a.y + (a.height - n.height)), G.lineTo(a.x + a.width, a.y + (a.height - n.height)), n.hasOwnProperty("backgroundColor") && (G.lineStyle(1, n.backgroundColor, X), G.beginFill(n.backgroundColor, n.hasOwnProperty("opacity") ? n.opacity : X), G.drawRect(a.x + l / 2, a.y + (a.height - parseInt(n.height)), a.width - l, parseInt(n.height) - l / 2), G.endFill()));
                    for (v(i, r.length, V, X), c = 0; c < r.length; c++) u(r[c], oe.winlines[i].colour, V, X), n && n.location === t.Cell[c]["@name"] && (a = re[r[c]], l = V, G.moveTo(a.x, a.y + (a.height - n.height)), G.lineTo(a.x + a.width, a.y + (a.height - n.height)), n.displayText && n.textStyle && (W && H.removeChild(W), W = new e.Text(n.displayText, n.textStyle), W.x = a.x + 2 * l, W.y = a.y + (a.height - n.height / 2 - W.height / 2), "center" === n.textStyle.align && (W.x = a.x + a.width / 2 - W.width / 2), H.addChild(W)));
                    o()
                }

                function S(e, t, n) {
                    $ = !0, e.forEach(function(e) {
                        s(e, n || 0, J, X), u(e, t, V, X)
                    })
                }

                function P(e, t, n) {
                    $ = !0, e.forEach(function(e) {
                        void 0 !== ae[e] && (s(ae[e], n || 0, J, X), u(ae[e], t, V, X))
                    })
                }

                function C(t, n, i, r) {
                    $ = !0, t.forEach(function(t) {
                        if (void 0 !== ae[t]) {
                            var o, a = J;
                            s(ae[t], i, a, X), r && r.location === t && (o = re[ae[t]], G.moveTo(o.x, o.y + (o.height - r.height)), G.lineTo(o.x + o.width, o.y + (o.height - r.height)), r.hasOwnProperty("backgroundColor") && (G.lineStyle(1, r.backgroundColor, X), G.beginFill(r.backgroundColor, r.hasOwnProperty("opacity") ? r.opacity : X), G.drawRect(o.x + a / 2, o.y + (o.height - parseInt(r.height)), o.width - a, parseInt(r.height) - a / 2), G.endFill())), a = V, u(ae[t], n, a, X), r && r.location === t && (o = re[ae[t]], G.moveTo(o.x + a / 2, o.y + (o.height - r.height)), G.lineTo(o.x + a / 2 + (o.width - a), o.y + (o.height - r.height)), r.displayText && r.textStyle && (W && H.removeChild(W), W = new e.Text(r.displayText, r.textStyle), W.x = o.x + 2 * a, W.y = o.y + (o.height - r.height / 2 - W.height / 2), "center" === r.textStyle.align && (W.x = o.x + o.width / 2 - W.width / 2), H.addChild(W)))
                        }
                    }), o()
                }

                function E(e) {
                    G && (G.visible = e), W && (W.visible = e)
                }

                function M(e) {
                    var t = e - 1,
                        n = {};
                    return n.lineData = oe.winlines[t], n.boxData = [], oe.winlines[t].locations.forEach(function(e) {
                        n.boxData.push(re[e])
                    }), n.thickness = J, n.leftx = oe.leftx + n.lineData.start, n.rightx = oe.rightx + n.lineData.end, n
                }

                function O(e) {
                    se = "round" === e || "square" === e ? e : void 0
                }

                function I(e, t) {
                    var n = e,
                        i = arguments.length > 1 ? t : 2 * e;
                    V === n && J === i || (V = n, J = i, re = c(), f(!0))
                }

                function A(e) {
                    z = e
                }

                function R(e) {
                    Y = "round" === e ? "round" : "square"
                }

                function k(e) {
                    q = e, re = c(), f(!0)
                }

                function L() {
                    return Z
                }

                function D(e) {
                    e ? ue || (ue = ie, ie = function() {}) : ue && (ie = ue, ue = void 0)
                }

                function B() {
                    for (var e = JSON.parse(JSON.stringify(oe)), t = 0; t < oe.winlines.length; t++) delete e.winlines[t].x, delete e.winlines[t].y, delete e.winlines[t].leftx, delete e.winlines[t].lefty, delete e.winlines[t].rightx, delete e.winlines[t].righty
                }

                function F(e) {
                    switch (e.key.toLowerCase()) {
                        case "arrowleft":
                            --ce < 0 && (ce = oe.winlines.length - 1);
                            break;
                        case "arrowright":
                            ++ce >= oe.winlines.length && (ce = 0);
                            break;
                        case "arrowup":
                            oe.winlines[ce].yOffset--;
                            break;
                        case "arrowdown":
                            oe.winlines[ce].yOffset++;
                            break;
                        case "g":
                            he = !he, pe = !1;
                            break;
                        case "q":
                            oe.winlines[ce].start--;
                            break;
                        case "w":
                            oe.winlines[ce].start++;
                            break;
                        case "a":
                            oe.winlines[ce].end--;
                            break;
                        case "s":
                            oe.winlines[ce].end++;
                            break;
                        case "x":
                            j(!1);
                            break;
                        case "d":
                            B();
                            break;
                        default:
                            return void e.preventDefault()
                    }
                    if (oe.winlines[ce].yOffset > i.symbolSlotHeight / 2 && (oe.winlines[ce].yOffset = Math.floor(i.symbolSlotHeight / 2)), oe.winlines[ce].yOffset < -i.symbolSlotHeight / 2 && (oe.winlines[ce].yOffset = -Math.floor(i.symbolSlotHeight / 2)), f(!0), !le) return void ie();
                    if (ue(), he)
                        for (var t = 0; t < oe.winlines.length; t++) y(t, 0, J, X, 0), v(t, 0, V, X, 6710886);
                    x(ce + 1, 0), e.preventDefault()
                }

                function N() {}

                function j(e) {
                    e ? (le && window.removeEventListener("keydown", F), window.addEventListener("keydown", F, !1), N(), x(ce + 1, 0), le = !0) : (window.removeEventListener("keydown", F), le = !1), D(le)
                }
                var G, U, W, H = new e.Container,
                    X = 1,
                    z = 1,
                    V = 4,
                    J = 8,
                    q = 0,
                    Y = "square",
                    $ = !1,
                    K = t(i, null),
                    Q = K.getContainer(),
                    Z = K.getLimitedAccess(),
                    ee = {},
                    te = Z.clearAnimations;
                Z.clearAnimations = function() {
                    ee = {}, te()
                };
                var ne = Z.setCellAnimation;
                Z.setCellAnimation = function(e, t, n, i, r) {
                    0 === i && void 0 !== ae[e] && (ee[ae[e]] = !0), ne(e, t, n, i, r)
                };
                var ie = function() {
                        G ? $ && ($ = !1, G.cacheAsBitmap = !1, G.clear()) : (G = new e.Graphics, U = new e.Container, U.addChild(G), H.addChild(U), H.addChild(Q)), W && (H.removeChild(W), W = null)
                    },
                    re = [],
                    oe = r,
                    ae = {};
                ! function() {
                    re = c(), f(), p(i.locationsMap)
                }();
                var se, ue, le = !1,
                    ce = 0,
                    he = !1,
                    pe = !1;
                return {
                    drawWinline: x,
                    drawHighlightOutcome: T,
                    drawHighlightOutcomeWithWinBox: w,
                    drawSpaghetti: b,
                    drawBoxes: S,
                    drawBoxesFromLocations: P,
                    drawBoxesFromLocationsWithWinBox: C,
                    setLineCap: O,
                    clear: ie,
                    done: a,
                    show: E,
                    getContainer: function() {
                        return H
                    },
                    getWinline: M,
                    setLineThickness: I,
                    setOpacity: A,
                    setBoxMode: R,
                    setBoxPadding: k,
                    getHalfbrightColour: d,
                    getAnimationLayer: L,
                    editLines: j
                }
            }
        }), define("game/infoBar", ["skbJet/component/gladPixiRenderer/gladPixiRenderer", "com/gsap/TweenLite"], function(e) {
            function t() {
                s = {
                    BaseGame: {
                        bar: e.lib._infoBar,
                        value: e.lib._infoValue
                    },
                    FreeSpin: {
                        bar: e.lib._infoBarFS,
                        value: e.lib._infoValueFS
                    }
                }, s.BaseGame.bar.pixiContainer.alpha = 0, s.BaseGame.bar.pixiContainer.visible = !1, s.BaseGame.value.autoFontFitText = !0, s.FreeSpin.bar.pixiContainer.alpha = 0, s.FreeSpin.bar.pixiContainer.visible = !1, s.FreeSpin.value.autoFontFitText = !0, "mobile" !== c && (s.FreeSpin.value._currentStyle._font._size = a, s.BaseGame.value._currentStyle._font._size = a), r("BaseGame", " "), r("FreeSpin", " "), s.BaseGame.value.pixiContainer.$text.style.padding = u, s.FreeSpin.value.pixiContainer.$text.style.padding = u
            }

            function n(e) {
                s[e].bar.pixiContainer.visible = !0, new l.to(s[e].bar.pixiContainer, .1, {
                    alpha: 1
                })
            }

            function i(e) {
                new l.to(s[e].bar.pixiContainer, .1, {
                    onComplete: function() {
                        s[e].bar.pixiContainer.visible = !1
                    },
                    alpha: 0
                })
            }

            function r(e, t) {
                s[e].value.setText(t), s[e].value.pixiContainer.$text.style.strokeThickness = o() ? 5 : 3, s[e].value.pixiContainer.$text.style.padding = u
            }

            function o() {
                return !(e.getSize().width > e.getSize().height)
            }
            var a, s, u, l = window.TweenLite,
                c = window.location.search.match(/&?assetPack=([^&]+)&?/)[1];
            switch (c) {
                case "desktop":
                    a = 35, u = 10;
                    break;
                case "tablet":
                    a = 30, u = 10;
                    break;
                case "mobile":
                    a = 22, u = 8;
                    break;
                case "desktopmini":
                    a = 20, u = 8
            }
            return {
                onGameInit: t,
                show: n,
                hide: i,
                setText: r
            }
        }), define("game/autoSpin", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", "game/buttonController"], function(e, t, n, i, r) {
            function o(e) {
                f = "false" !== e.PaytableResponse.AutoSpinInfo["@enable"].toLowerCase(), g = 0, m = n.lib._autoSpinMeter, _ = n.lib._autoSpinMeterText, m.pixiContainer.visible = !1, r.showAutoSpinStopButton(!1), r.showAutoSpinButton(f), r.enableAutoSpinButton(f)
            }

            function a() {
                f && (n.lib._betPrompt && n.lib._betPrompt.show(!1), i.play("GenericClick1", 1), i.volume(1, 1), r.enableSpinButton(!1), r.enableAutoSpinButton(!1), r.disableBetControls(), t.publish("toPlatformRequest", {
                    channel: "Game",
                    topic: "Game.AutoSpinOption",
                    data: {},
                    successCallback: function(e) {
                        e && "cancel" !== e.action ? u(e.steps) : (t.publish("onAutoSpinClose"), r.enableSpinButton(!0), r.enableAutoSpinButton(!0), r.enableBetControls())
                    },
                    failCallback: function() {
                        r.enableSpinButton(!0), r.enableAutoSpinButton(!0), r.enableBetControls()
                    }
                }))
            }

            function s() {
                i.play("GenericClick1", 1), i.volume(1, 1), p()
            }

            function u(e) {
                g = e, r.showAutoSpinStopButton(!0), _.setText(g), m.pixiContainer.visible = !0, t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.AutoSpinStart"
                }), l()
            }

            function l() {
                g > 0 && (r.enableSpinButton(!1), r.disableBetControls(), t.publish("nextState"))
            }

            function c() {
                f && (g > 0 && (g -= 1, _.setText(g)), 0 === g && p())
            }

            function h() {
                f && 0 === g && r.enableAutoSpinButton(!0)
            }

            function p() {
                f && (g = 0, r.showAutoSpinStopButton(!1), r.enableAutoSpinButton(!1), m.pixiContainer.visible = !1, t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.AutoSpinStopped"
                }))
            }

            function d() {
                return g > 0
            }
            var f, m, _, g;
            return t.subscribe("onAutoSpinBtnClicked", a), t.subscribe("onAutoSpinBtnStopClicked", s), t.subscribe("platformMsg/ClientService/Game.StopAutoSpin", p), {
                onGameInit: o,
                enable: h,
                cancel: p,
                spin: l,
                decrement: c,
                active: d
            }
        }), define("game/winSequence", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/phoenixReel/winline", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", "skbJet/component/currencyHelper/currencyHelper", "game/reelsController", "game/bigWinController", "game/buttonController", "game/infoBar", "skbJet/componentManchester/rgsModel/rgsModel", "game/autoSpin", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "com/gsap/TweenLite"], function(e, t, n, i, r, o, a, s, u, l, c, h) {
            function p(e) {
                D = Number(e.serverConfig.denomamount);
                var t = e.gameConfig.rgPresentation;
                G = void 0 !== t && ("boolean" == typeof t ? t : "true" === t.toLowerCase())
            }

            function d(e, i) {
                R = e.GameLogicResponse.OutcomeDetail.Stage, k = n(t.getPixiRenderer(), i, oe), k.setLineCap("round"), -1 !== Z.indexOf("mini") && k.setLineThickness(2, 4), L = k.getContainer(), t.lib._reelsSet.pixiContainer.addChild(L), X.BaseGame = t.lib._winValue, X.FreeSpin = t.lib._bonusWinValue, X.FreeSpinTotal = t.lib._bonusTotalWinValue
            }

            function f(e) {
                z = [], V = [], J = [], [".Scatter", ".Lines", ".MultiWayLeftRight"].forEach(function(t) {
                    var n = l.gameLogic.PrizeOutcome(e + t),
                        i = l.gameLogic.HighlightOutcome(e + t);
                    n && n.Prize.forEach(function(e) {
                        var n;
                        n = oe.winlines.map(function(e) {
                            return e.id
                        }).indexOf(e.name) + 1, z.push({
                            winLineIndex: n > 0 ? n : 0,
                            boxLocations: i.Highlight[e.name].cells,
                            totalPay: e.totalPay,
                            pay: e.pay,
                            symbolName: e.payName.slice(-3),
                            symbolCount: e.symbolCount,
                            betMultiplier: e.betMultiplier,
                            multiplier: e.multiplier,
                            ways: e.ways,
                            winType: t.slice(1)
                        })
                    })
                }), z.sort(function(e, t) {
                    return 0 === e.totalPay ? -1 : 0 === t.totalPay ? -1 : t.totalPay - e.totalPay || e.winLineIndex - t.winLineIndex
                }), V = z.map(function(e) {
                    return e.winLineIndex
                }).filter(function(e) {
                    return e > 0
                });
                var t = 0;
                z.forEach(function(e) {
                    "MultiWayLeftRight" === e.winType && (e.winBoxColor = ae[t].color, e.winBoxbgColor = ae[t].bgColor, t += 1), J = J.concat(e.boxLocations.filter(function(e) {
                        return J.indexOf(e) < 0
                    }))
                })
            }

            function m() {
                var e = R;
                W = !1;
                var t = ["s01", "s02", "s03", "s04", "s05", "w01"],
                    n = J.map(function(n) {
                        var i, r = l.gameLogic.PopulationOutcome(e + ".Reels").map[n],
                            a = ["overlayTexture1", "overlayTexture0", "overlayTexture1", "overlayTexture0"];
                        return t.indexOf(r) > -1 ? (a = o.getSymbolSpriteSheetAnimationFrameArray(e, r), i = o.createAnimationDataObject(n, a, .75, 0, null, {
                            loop: !1
                        })) : i = o.createAnimationDataObject(n, a, .0375, 1, null, {
                            loop: !1
                        }), i
                    });
                t.indexOf(z[0].symbolName) > -1 && (i.play(z[0].symbolName.toUpperCase(), 2), i.volume(2, 1)), o.animateSymbols(n, {
                    onComplete: _
                }, e)
            }

            function _() {
                if (!W) {
                    var e = R;
                    o.resetAnimations(e), Q >= 0 ? (new H.to({}, 1.5, {
                        onComplete: function() {
                            C(), s.showSkipButton(!0), s.showSpinButton(!1), s.enableSkipButton(!0)
                        }
                    }), a.start(Q)) : v(), W = !0
                }
            }

            function g() {
                u.setText(R, ""), u.hide(R), k.drawSpaghetti(V), z.filter(function(e) {
                    return "MultiWayLeftRight" === e.winType
                }).forEach(function(e) {
                    k.drawBoxesFromLocations(e.boxLocations, e.winBoxColor, e.winBoxbgColor)
                }), z.filter(function(e) {
                    return "Scatter" === e.winType
                }).forEach(function(e) {
                    k.drawBoxesFromLocations(e.boxLocations, ae[0].color, ae[0].bgColor)
                }), re.spaghetti = new H.to({}, 1, {
                    onComplete: function() {
                        k.clear(), u.show(R), y()
                    }
                })
            }

            function y() {
                function t() {
                    k.clear(), o.resetAnimations(n), y()
                }
                var n = R;
                if (!(B = q.shift())) return void("BaseGame" === n & !c.active() ? (b(), v()) : (Y || S(), b(), j = setTimeout(function() {
                    T(), e.publish("nextState")
                }, 1e3)));
                var i;
                "Lines" === B.winType && (k.drawWinline(B.winLineIndex, B.symbolCount), i = h.i18n.Game.lineWin + r.formatBalance(r.fromStakeUnits(B.totalPay))), "MultiWayLeftRight" === B.winType && (k.drawBoxesFromLocations(B.boxLocations, B.winBoxColor, B.winBoxbgColor), i = h.i18n.Game.multiwayWin + r.formatBalance(r.fromStakeUnits(B.totalPay)), B.ways > 1 && (i = h.i18n.Game.multiwayWin + r.formatBalance(r.fromStakeUnits(B.totalPay / B.ways)) + " X " + B.ways)), "Scatter" === B.winType && (k.drawBoxesFromLocations(B.boxLocations, ae[0].color, ae[0].bgColor), i = l.gameLogic.PrizeOutcome("FreeSpin.Total").totalPay ? h.i18n.Game.scatterWin + r.formatBalance(r.fromStakeUnits(l.gameLogic.PrizeOutcome("FreeSpin.Total").totalPay)) : h.i18n.Game.freeSpinCompleteNoWin), u.setText(n, i);
                var a = ["overlayTexture1", "overlayTexture0", "overlayTexture1", "overlayTexture0"],
                    s = {
                        FreeSpin: ["W01FS_0071", "W01FS_0035", "W01FS_0071", "W01FS_0035"],
                        BaseGame: ["W01_0028", "W01_0071", "W01_0028", "W01_0071"]
                    };
                !ee && G && (a = ["overlayTexture0", "overlayTexture0", "overlayTexture0", "overlayTexture0"], s = {
                    FreeSpin: ["W01FS_0028", "W01FS_0028", "W01FS_0028", "W01FS_0028"],
                    BaseGame: ["W01_0028", "W01_0028", "W01_0028", "W01_0028"]
                });
                var p = B.boxLocations.map(function(e) {
                    return "w01" === l.gameLogic.PopulationOutcome(n + ".Reels").map[e] ? o.createAnimationDataObject(e, s[n], .0375, 0, null, {
                        loop: !1
                    }) : o.createAnimationDataObject(e, a, .0375, 1, null, {
                        loop: !1
                    })
                });
                o.animateSymbols(p, {
                    onComplete: t
                }, n)
            }

            function v() {
                q = z.slice(0), g()
            }

            function b() {
                u.setText(R, ""), u.hide(R), k.clear()
            }

            function x() {
                Y && e.publish("nextState")
            }

            function T() {
                var e = R;
                b(), te && te.kill(), te = null, ee = !1, X[e].setText(""), re.spaghetti && re.spaghetti.kill(), re.rollUpWinMeter && re.rollUpWinMeter.kill(), re.rollUpWinMeter = null, re.presentWin && re.presentWin.kill(), o.resetAnimations(e), clearTimeout(j)
            }

            function w(e) {
                var t = "BaseGame" === e ? l.gameLogic.PrizeOutcome("Game.Total").totalPay : l.gameLogic.PrizeOutcome("FreeSpin.Lines").totalPay + l.gameLogic.PrizeOutcome("FreeSpin.MultiWayLeftRight").totalPay,
                    n = l.gameLogic.PatternSliderInput().BetPerPattern * l.gameLogic.PatternSliderInput().PatternsBet,
                    o = 1,
                    a = 1,
                    s = 4,
                    u = !0,
                    c = !0;
                ee = t > n, !ee && G && (a = 0, c = !1, s = 6, u = !1), t > n && (o = Math.floor(Math.log(t - n)), a = 2), t > 3 * n && (o = Math.floor(Math.log(t)), a = 3), o > 8 && (o = 8), i.play("Rollup0" + a, s, u), i.volume(s, 1), c ? (re.rollUpWinMeter = new H.to({
                    currentWinValue: 0
                }, o, {
                    currentWinValue: t,
                    onUpdate: function() {
                        X[e].setText(r.formatBalance(r.fromStakeUnits(this.target.currentWinValue)))
                    },
                    onComplete: S
                }), te = null) : (X[e].setText(r.formatBalance(r.fromStakeUnits(t))), te = H.delayedCall(o, function() {
                    S()
                }))
            }

            function S() {
                var t = R,
                    n = "BaseGame" === t ? l.gameLogic.PrizeOutcome("Game.Total").totalPay : l.gameLogic.PrizeOutcome("FreeSpin.Lines").totalPay + l.gameLogic.PrizeOutcome("FreeSpin.MultiWayLeftRight").totalPay;
                G ? ee && (i.stopChannel(4), i.play("RollupTerm", 4), i.volume(4, 1)) : (i.stopChannel(4), i.play("RollupTerm", 4), i.volume(4, 1)), re.rollUpWinMeter && re.rollUpWinMeter.kill(), X[t].setText(r.formatBalance(r.fromStakeUnits(n))), Y = !0, "BaseGame" !== t || c.active() ? "FreeSpin" === t && P() : e.publish("nextState")
            }

            function P(e) {
                var t;
                (t = e || l.gameLogic.PrizeOutcome("FreeSpin.Total").totalPay) && X.FreeSpinTotal.setText(r.formatBalance(r.fromStakeUnits(t)))
            }

            function C() {
                var e = Math.floor(Math.log(l.gameLogic.PrizeOutcome("Game.Total").totalPay));
                e > 10 && (e = 10), $ = !0, K = !0, i.play("Rollup01", 4, !0), i.fadeOut(2, .5), i.volume(4, 1), re.rollUpWinMeter = new H.to({
                    currentWinValue: 0
                }, e, {
                    currentWinValue: l.gameLogic.PrizeOutcome("Game.Total").totalPay,
                    onUpdate: function() {
                        t.lib._bigWinValue.text = r.formatBalance(r.fromStakeUnits(this.target.currentWinValue))
                    },
                    onComplete: E,
                    ease: "Quant.easeIn"
                })
            }

            function E() {
                re.rollUpWinMeter && re.rollUpWinMeter.kill();
                var n = R;
                K = !1, i.play("RollupTerm", 4), i.volume(4, 1), t.lib._bigWinValue.text = r.formatBalance(r.fromStakeUnits(l.gameLogic.PrizeOutcome("Game.Total").totalPay)), X[n].setText(r.formatBalance(r.fromStakeUnits(l.gameLogic.PrizeOutcome("Game.Total").totalPay))), a.stop(), new H.to({}, 3, {
                    onComplete: function() {
                        Q = -1, a.hide()
                    }
                }), new H.to({}, 4, {
                    onComplete: function() {
                        c.active() ? s.enableSpinButton(!0) : (s.showSkipButton(!1), e.publish("nextState"), s.enableSpinButton(!1)), Y = !0, $ = !1, v(), s.showSpinButton(!0)
                    }
                })
            }

            function M() {
                Y = !1
            }

            function O(e) {
                R = e;
                var t = l.gameLogic.PrizeOutcome("Game.Total").totalPay,
                    n = l.gameLogic.PatternSliderInput().BetPerPattern * l.gameLogic.PatternSliderInput().PatternsBet;
                "FreeSpin" === e && (t = l.gameLogic.PrizeOutcome("FreeSpin.Lines").totalPay + l.gameLogic.PrizeOutcome("FreeSpin.MultiWayLeftRight").totalPay), f(e), Q = -1, "BaseGame" === e && t >= 10 * n ? (Q = 0, t >= 25 * n && (Q = 1), t >= 50 * n && (Q = 2), I(e)) : (Y || (w(e), s.showSkipButton(!0), s.showSpinButton(!1), s.enableSkipButton(!0)), t >= 3 * n ? m() : v())
            }

            function I(e) {
                "BaseGame" === e && "FreeSpin" === l.gameLogic.OutcomeDetail.Stage ? (W = !1, _()) : m()
            }

            function A() {
                var t = R;
                null !== te && (te.kill(), te = null), $ && K ? (E(), a.skip()) : Y || $ || S(), "BaseGame" === t ? (s.showSkipButton(!1), s.showSpinButton(!0)) : (T(), e.publish("nextState"), s.enableSkipButton(!1)), c.active() && (s.showSpinButton(!0), $ || K || s.enableSpinButton(!0))
            }
            var R, k, L, D, B, F, N, j, G, U, W = !1,
                H = window.TweenLite,
                X = [],
                z = [],
                V = [],
                J = [],
                q = [],
                Y = !1,
                $ = !1,
                K = !1,
                Q = !1,
                Z = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                ee = !1,
                te = null,
                ne = [0, 0, -.6, 4.8, -3, -1.2, -.6, -1.2, -1.2, -16.8, 15.6, -.6, -14, 4.8, -1.2, -15.6, 15.6, 2.4, 3, -13.2, 6, -14, 3, -4.8, -2.4, -15.6, 13.2, -15.6, 6, -8.4, 7, -.6, 13.2, -13.2, 16.8, 7, -8.4, 1.2, 0, 9.6],
                ie = [0, 0, -1, 14, -11, -3, -1, -3, -4, -44, 39, -2, -37, 14, -3, -39, 40, 6, 9, -33, 17, -38, 9, -12, -7, -41, 34, -41, 16, -23, 19, -2, 35, -34, 43, 18, -21, 3, 0, 26];
            switch (Z) {
                case "desktop":
                case "tablet":
                    F = 203, N = 1248, U = ie;
                    break;
                case "mobile":
                    F = 137, N = 840, U = ie;
                    break;
                case "desktopmini":
                case "tabletmini":
                    F = 38, N = 468, U = ne
            }
            var re = {
                    spaghetti: null,
                    presentWin: null,
                    rollUpWinMeter: null
                },
                oe = {
                    winlines: [{
                        id: "Line 1",
                        locations: [1, 5, 9, 13, 17],
                        colour: "0xac46ff",
                        backgroundColour: "0x6600ff",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 2",
                        locations: [2, 6, 10, 14, 18],
                        colour: "0x48ffff",
                        backgroundColour: "0x02bdec",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 3",
                        locations: [0, 4, 8, 12, 16],
                        colour: "0xffdf46",
                        backgroundColour: "0xff9900",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 4",
                        locations: [3, 7, 11, 15, 19],
                        colour: "0x7dcd47",
                        backgroundColour: "0x378701",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 5",
                        locations: [1, 6, 11, 14, 17],
                        colour: "0xff46ff",
                        backgroundColour: "0xcc00ff",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 6",
                        locations: [2, 5, 8, 13, 18],
                        colour: "0x46ffff",
                        backgroundColour: "0x00ccff",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 7",
                        locations: [0, 4, 9, 14, 19],
                        colour: "0xffac46",
                        backgroundColour: "0xcc6600",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 8",
                        locations: [3, 7, 10, 13, 16],
                        colour: "0x79dfac",
                        backgroundColour: "0x339966",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 9",
                        locations: [1, 4, 8, 12, 17],
                        colour: "0xac46ff",
                        backgroundColour: "0x6600cc",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 10",
                        locations: [2, 7, 11, 15, 18],
                        colour: "0x79dfff",
                        backgroundColour: "0x3399ff",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 11",
                        locations: [0, 5, 10, 15, 19],
                        colour: "0xffffac",
                        backgroundColour: "0xeebb55",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 12",
                        locations: [3, 6, 9, 12, 16],
                        colour: "0xacdf79",
                        backgroundColour: "0x669933",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 13",
                        locations: [1, 4, 9, 14, 17],
                        colour: "0xac4646",
                        backgroundColour: "0x660000",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 14",
                        locations: [2, 7, 10, 13, 18],
                        colour: "0x46ffff",
                        backgroundColour: "0x00cccc",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 15",
                        locations: [0, 5, 8, 13, 16],
                        colour: "0xffff46",
                        backgroundColour: "0xfdcc00",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 16",
                        locations: [3, 6, 11, 14, 19],
                        colour: "0x46ffdf",
                        backgroundColour: "0x00cc99",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 17",
                        locations: [1, 6, 9, 12, 17],
                        colour: "0xacacff",
                        backgroundColour: "0x6666cc",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 18",
                        locations: [2, 5, 10, 15, 18],
                        colour: "0x46acff",
                        backgroundColour: "0x0066cc",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 19",
                        locations: [0, 5, 9, 13, 16],
                        colour: "0xff4679",
                        backgroundColour: "0xcc0033",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 20",
                        locations: [3, 6, 10, 14, 19],
                        colour: "0x46ac46",
                        backgroundColour: "0x006600",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 21",
                        locations: [1, 5, 10, 15, 19],
                        colour: "0xffffd8",
                        backgroundColour: "0xaadd55",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 22",
                        locations: [2, 6, 9, 12, 16],
                        colour: "0x46acac",
                        backgroundColour: "0x006666",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 23",
                        locations: [1, 5, 8, 13, 17],
                        colour: "0xacdfac",
                        backgroundColour: "0x669966",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 24",
                        locations: [2, 6, 11, 14, 18],
                        colour: "0xdf79ff",
                        backgroundColour: "0x9933cc",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 25",
                        locations: [1, 6, 10, 14, 19],
                        colour: "0xffffac",
                        backgroundColour: "0xffcc66",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 26",
                        locations: [2, 5, 9, 13, 16],
                        colour: "0x46acac",
                        backgroundColour: "0x006666",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 27",
                        locations: [0, 4, 9, 12, 16],
                        colour: "0x46ac79",
                        backgroundColour: "0x006633",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 28",
                        locations: [3, 7, 10, 15, 19],
                        colour: "0xffffdf",
                        backgroundColour: "0xffcc99",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 29",
                        locations: [0, 5, 10, 14, 19],
                        colour: "0xffdfac",
                        backgroundColour: "0xff9966",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 30",
                        locations: [3, 6, 9, 13, 16],
                        colour: "0x79df79",
                        backgroundColour: "0x339933",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 31",
                        locations: [0, 4, 8, 13, 18],
                        colour: "0xc8bbd7",
                        backgroundColour: "0x827591",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 32",
                        locations: [3, 7, 11, 14, 17],
                        colour: "0xdfdfdf",
                        backgroundColour: "0x999999",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 33",
                        locations: [1, 4, 8, 13, 18],
                        colour: "0xd2acff",
                        backgroundColour: "0x8c66cc",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 34",
                        locations: [2, 7, 11, 14, 17],
                        colour: "0xacacc0",
                        backgroundColour: "0x66667a",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 35",
                        locations: [0, 5, 9, 14, 19],
                        colour: "0xffff46",
                        backgroundColour: "0xeebb00",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 36",
                        locations: [3, 6, 10, 13, 16],
                        colour: "0x79acac",
                        backgroundColour: "0x336666",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 37",
                        locations: [1, 4, 9, 14, 19],
                        colour: "0xffacac",
                        backgroundColour: "0xff6666",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 38",
                        locations: [2, 7, 10, 13, 16],
                        colour: "0x79dfac",
                        backgroundColour: "0x339966",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 39",
                        locations: [0, 5, 10, 15, 18],
                        colour: "0xff46ff",
                        backgroundColour: "0xcc00ff",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 40",
                        locations: [3, 6, 9, 12, 17],
                        colour: "0xffffff",
                        backgroundColour: "0xaaaaaa",
                        leftToRight: 1,
                        yOffset: 0
                    }],
                    leftx: F,
                    rightx: N,
                    shortenright: 30,
                    shortenleft: 30
                };
            oe.winlines.forEach(function(e, t) {
                e.yOffset = U[t]
            });
            var ae = [{
                color: "0XFF0000",
                bgColor: "0Xff6666"
            }, {
                color: "0X46ff79",
                bgColor: "0X00CC33"
            }, {
                color: "0Xffff46",
                bgColor: "0XFFAA00"
            }, {
                color: "0X4646ff",
                bgColor: "0X0000FF"
            }];
            return e.subscribe("onSpinButtonClicked", T), e.subscribe("onSkipButtonClicked", A), e.subscribe("betUpdate", T), e.subscribe("onAutoSpinBtnClicked", T), e.subscribe("onAutoSpinBtnStopClicked", x), {
                onSystemInit: p,
                onGameInit: d,
                setBonusWin: P,
                winlineConfig: oe,
                start: O,
                initRollUpComplete: M
            }
        }), define("game/backgroundController", ["skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(e) {
            function t(e) {
                i = e, r && n()
            }

            function n(t) {
                t && (r = t), e.lib._baseGameBg.show("BaseGame" === t), e.lib._bonusGameBg.show("BaseGame" !== t)
            }
            var i, r;
            return {
                updateBackground: n,
                updateOrienatation: t
            }
        });
    var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
    (_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
            "use strict";
            _gsScope._gsDefine("easing.Back", ["easing.Ease"], function(e) {
                var t, n, i, r = _gsScope.GreenSockGlobals || _gsScope,
                    o = r.com.greensock,
                    a = 2 * Math.PI,
                    s = Math.PI / 2,
                    u = o._class,
                    l = function(t, n) {
                        var i = u("easing." + t, function() {}, !0),
                            r = i.prototype = new e;
                        return r.constructor = i, r.getRatio = n, i
                    },
                    c = e.register || function() {},
                    h = function(e, t, n, i, r) {
                        var o = u("easing." + e, {
                            easeOut: new t,
                            easeIn: new n,
                            easeInOut: new i
                        }, !0);
                        return c(o, e), o
                    },
                    p = function(e, t, n) {
                        this.t = e, this.v = t, n && (this.next = n, n.prev = this, this.c = n.v - t, this.gap = n.t - e)
                    },
                    d = function(t, n) {
                        var i = u("easing." + t, function(e) {
                                this._p1 = e || 0 === e ? e : 1.70158, this._p2 = 1.525 * this._p1
                            }, !0),
                            r = i.prototype = new e;
                        return r.constructor = i, r.getRatio = n, r.config = function(e) {
                            return new i(e)
                        }, i
                    },
                    f = h("Back", d("BackOut", function(e) {
                        return (e -= 1) * e * ((this._p1 + 1) * e + this._p1) + 1
                    }), d("BackIn", function(e) {
                        return e * e * ((this._p1 + 1) * e - this._p1)
                    }), d("BackInOut", function(e) {
                        return (e *= 2) < 1 ? .5 * e * e * ((this._p2 + 1) * e - this._p2) : .5 * ((e -= 2) * e * ((this._p2 + 1) * e + this._p2) + 2)
                    })),
                    m = u("easing.SlowMo", function(e, t, n) {
                        t = t || 0 === t ? t : .7, null == e ? e = .7 : e > 1 && (e = 1), this._p = 1 !== e ? t : 0, this._p1 = (1 - e) / 2, this._p2 = e, this._p3 = this._p1 + this._p2, this._calcEnd = !0 === n
                    }, !0),
                    _ = m.prototype = new e;
                return _.constructor = m, _.getRatio = function(e) {
                    var t = e + (.5 - e) * this._p;
                    return e < this._p1 ? this._calcEnd ? 1 - (e = 1 - e / this._p1) * e : t - (e = 1 - e / this._p1) * e * e * e * t : e > this._p3 ? this._calcEnd ? 1 - (e = (e - this._p3) / this._p1) * e : t + (e - t) * (e = (e - this._p3) / this._p1) * e * e * e : this._calcEnd ? 1 : t
                }, m.ease = new m(.7, .7), _.config = m.config = function(e, t, n) {
                    return new m(e, t, n)
                }, t = u("easing.SteppedEase", function(e, t) {
                    e = e || 1, this._p1 = 1 / e, this._p2 = e + (t ? 0 : 1), this._p3 = t ? 1 : 0
                }, !0), _ = t.prototype = new e, _.constructor = t, _.getRatio = function(e) {
                    return e < 0 ? e = 0 : e >= 1 && (e = .999999999), ((this._p2 * e | 0) + this._p3) * this._p1
                }, _.config = t.config = function(e, n) {
                    return new t(e, n)
                }, n = u("easing.RoughEase", function(t) {
                    t = t || {};
                    for (var n, i, r, o, a, s, u = t.taper || "none", l = [], c = 0, h = 0 | (t.points || 20), d = h, f = !1 !== t.randomize, m = !0 === t.clamp, _ = t.template instanceof e ? t.template : null, g = "number" == typeof t.strength ? .4 * t.strength : .4; --d > -1;) n = f ? Math.random() : 1 / h * d, i = _ ? _.getRatio(n) : n, "none" === u ? r = g : "out" === u ? (o = 1 - n, r = o * o * g) : "in" === u ? r = n * n * g : n < .5 ? (o = 2 * n, r = o * o * .5 * g) : (o = 2 * (1 - n), r = o * o * .5 * g), f ? i += Math.random() * r - .5 * r : d % 2 ? i += .5 * r : i -= .5 * r, m && (i > 1 ? i = 1 : i < 0 && (i = 0)), l[c++] = {
                        x: n,
                        y: i
                    };
                    for (l.sort(function(e, t) {
                            return e.x - t.x
                        }), s = new p(1, 1, null), d = h; --d > -1;) a = l[d], s = new p(a.x, a.y, s);
                    this._prev = new p(0, 0, 0 !== s.t ? s : s.next)
                }, !0), _ = n.prototype = new e, _.constructor = n, _.getRatio = function(e) {
                    var t = this._prev;
                    if (e > t.t) {
                        for (; t.next && e >= t.t;) t = t.next;
                        t = t.prev
                    } else
                        for (; t.prev && e <= t.t;) t = t.prev;
                    return this._prev = t, t.v + (e - t.t) / t.gap * t.c
                }, _.config = function(e) {
                    return new n(e)
                }, n.ease = new n, h("Bounce", l("BounceOut", function(e) {
                    return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
                }), l("BounceIn", function(e) {
                    return (e = 1 - e) < 1 / 2.75 ? 1 - 7.5625 * e * e : e < 2 / 2.75 ? 1 - (7.5625 * (e -= 1.5 / 2.75) * e + .75) : e < 2.5 / 2.75 ? 1 - (7.5625 * (e -= 2.25 / 2.75) * e + .9375) : 1 - (7.5625 * (e -= 2.625 / 2.75) * e + .984375)
                }), l("BounceInOut", function(e) {
                    var t = e < .5;
                    return e = t ? 1 - 2 * e : 2 * e - 1, e < 1 / 2.75 ? e *= 7.5625 * e : e = e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375, t ? .5 * (1 - e) : .5 * e + .5
                })), h("Circ", l("CircOut", function(e) {
                    return Math.sqrt(1 - (e -= 1) * e)
                }), l("CircIn", function(e) {
                    return -(Math.sqrt(1 - e * e) - 1)
                }), l("CircInOut", function(e) {
                    return (e *= 2) < 1 ? -.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1)
                })), i = function(t, n, i) {
                    var r = u("easing." + t, function(e, t) {
                            this._p1 = e >= 1 ? e : 1, this._p2 = (t || i) / (e < 1 ? e : 1), this._p3 = this._p2 / a * (Math.asin(1 / this._p1) || 0), this._p2 = a / this._p2
                        }, !0),
                        o = r.prototype = new e;
                    return o.constructor = r, o.getRatio = n, o.config = function(e, t) {
                        return new r(e, t)
                    }, r
                }, h("Elastic", i("ElasticOut", function(e) {
                    return this._p1 * Math.pow(2, -10 * e) * Math.sin((e - this._p3) * this._p2) + 1
                }, .3), i("ElasticIn", function(e) {
                    return -this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2)
                }, .3), i("ElasticInOut", function(e) {
                    return (e *= 2) < 1 ? this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2) * -.5 : this._p1 * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2) * .5 + 1
                }, .45)), h("Expo", l("ExpoOut", function(e) {
                    return 1 - Math.pow(2, -10 * e)
                }), l("ExpoIn", function(e) {
                    return Math.pow(2, 10 * (e - 1)) - .001
                }), l("ExpoInOut", function(e) {
                    return (e *= 2) < 1 ? .5 * Math.pow(2, 10 * (e - 1)) : .5 * (2 - Math.pow(2, -10 * (e - 1)))
                })), h("Sine", l("SineOut", function(e) {
                    return Math.sin(e * s)
                }), l("SineIn", function(e) {
                    return 1 - Math.cos(e * s)
                }), l("SineInOut", function(e) {
                    return -.5 * (Math.cos(Math.PI * e) - 1)
                })), u("easing.EaseLookup", {
                    find: function(t) {
                        return e.map[t]
                    }
                }, !0), c(r.SlowMo, "SlowMo", "ease,"), c(n, "RoughEase", "ease,"), c(t, "SteppedEase", "ease,"), f
            }, !0)
        }), _gsScope._gsDefine && _gsScope._gsQueue.pop()(),
        function() {
            "use strict";
            var e = function() {
                return _gsScope.GreenSockGlobals || _gsScope
            };
            "undefined" != typeof module && module.exports ? (require("../TweenLite.js"), module.exports = e()) : "function" == typeof define && define.amd && define("com/gsap/easing/EasePack", ["TweenLite"], e)
        }(), define("game/bonusTransitionController", ["require", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/componentManchester/rgsModel/rgsModel", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", "skbJet/component/currencyHelper/currencyHelper", "com/pixijs/pixi-multistyle-text", "com/pixijs/pixi", "game/reelsController", "game/textSetup", "game/buttonController", "game/backgroundController", "com/gsap/easing/EasePack", "com/pixijs/pixi-particles", "com/gsap/TweenLite"], function(e) {
            function t() {
                O = g.getTicker(), g.lib._transitionContainer.pixiContainer.visible = !1, g.lib._transitionContainer.pixiContainer.alpha = 0, M = g.lib._transitionContainer.pixiContainer, I = new T.particles.Emitter(L, [T.Texture.fromImage("starParticle")], k), g.lib._gameLayer.pixiContainer.addChildAt(L, 1), n()
            }

            function n() {
                var e = new x("", {
                    default: S.defaultText,
                    value: S.value
                });
                g.lib._transitionTextContainer.pixiContainer.addChild(e), g.lib._FSTransText = e, i()
            }

            function i() {
                g.lib._FSTransText.y = g.getSize().height / 2, g.lib._FSTransText.x = g.getSize().width / 2, g.lib._FSTransText.anchor.x = .5, g.lib._FSTransText.anchor.y = .5
            }

            function r() {
                g.lib._transitionContainer.pixiContainer.scale.x = .2, g.lib._transitionContainer.pixiContainer.scale.y = .2, g.lib._FSTransText.scale.x = .2, g.lib._FSTransText.scale.y = .2, p(g.lib._transitionContainer.pixiContainer.scale, 1.2, 1), d(g.lib._transitionContainer.pixiContainer, 1.2, 1), p(g.lib._FSTransText.scale, 1.2, 1), d(g.lib._FSTransText, 1.2, 1)
            }

            function o() {
                p(M.scale, 1.2, .2), d(M, .7, 0), p(g.lib._FSTransText.scale, 1.2, .2), d(g.lib._FSTransText, .7, 0), new R.to(g.lib._FSTransText, 1.2, {
                    onComplete: function() {
                        _.publish("BaseGame.reelsResolved", "BaseGame")
                    }
                })
            }

            function a(e, t) {
                v.stopChannel(3), v.play("FreeSpinsMusicLoop", 3, !0), v.volume(3, .4), S.bonusTransitionText(e), "desktop" === E && (g.lib._FSTransText.y = g.getSize().height / 2), r(), new R.to(M, 3, {
                    onComplete: function() {
                        g.lib._bonusTotalWinValue.setText(""), t(0), m(), w.showReels("FreeSpin"), w.setReels("FreeSpin"), u()
                    }
                })
            }

            function s() {
                v.play("FreeSpinsMusicTerm", 3), P.enableSkipButton(!1), 0 === y.gameLogic.PrizeOutcome("FreeSpin.Total").totalPay ? (S.baseGameTransitionText(0), "desktop" === E && (g.lib._FSTransText.y = g.getSize().height / 2 - 50)) : y.gameLogic.AwardCapOutcome("AwardCap").AwardCapExceeded ? S.baseGameTransitionText(b.formatBalance(b.fromStakeUnits(y.gameLogic.PrizeOutcome("Game.Total").totalPay))) : S.baseGameTransitionText(b.formatBalance(b.fromStakeUnits(y.gameLogic.PrizeOutcome("FreeSpin.Total").totalPay))), r(), new R.to(M, 3, {
                    onComplete: function() {
                        f(), c(), w.showReels("BaseGame"), w.setReels("BaseGame"), o(), v.play("GameAmbience", 3, !0), v.volume(3, .2)
                    }
                })
            }

            function u() {
                p(M.scale, 1, .2), p(g.lib._FSTransText.scale, 1, .2), new R.to(M, .7, {
                    onComplete: function() {
                        d(M, .5, 0), d(g.lib._FSTransText, .5, 0)
                    }
                }), new R.to({}, 1.5, {
                    onComplete: function() {
                        _.publish("nextState")
                    }
                })
            }

            function l() {
                "mobile" === E && (A = !0, I.emit = !0, O.add(h))
            }

            function c() {
                "mobile" === E && (A = !1, I.emit = !1, I.cleanup(), O.remove(h))
            }

            function h() {
                A && I.update(.001 * O.elapsedMS)
            }

            function p(e, t, n) {
                new R.to(e, t, {
                    x: n,
                    y: n
                })
            }

            function d(e, t, n) {
                var i = !1;
                0 === n && (i = !0), e.visible || (e.visible = !0), new R.to(e, t, {
                    alpha: n,
                    onComplete: function() {
                        e.visible = !i
                    }
                })
            }

            function f() {
                C.updateBackground("BaseGame"), g.lib._meters.show(!0), g.lib._multiwaysBadgeFreeSpins.show(!1), g.lib._multiwaysBadgeBaseGame.show(!0), "desktop" === E && P.showAutoSpinButton(!0), g.lib._buttonFrame.setImage("SpinButtonFrame"), g.lib._bonusMeters.show(!1)
            }

            function m() {
                g.lib._bonusMeters.show(!0), g.lib._multiwaysBadgeFreeSpins.show(!0), g.lib._multiwaysBadgeBaseGame.show(!1), g.lib._buttonFrame.setImage("FSSpinButtonFrame"), P.showSkipButton(!0), P.enableSkipButton(!1), C.updateBackground("FreeSpin"), g.lib._meters.show(!1), P.showAutoSpinButton(!1), P.showOpenMetersButton(!1), P.showSpinButton(!1), l()
            }
            var _ = e("skbJet/component/gameMsgBus/GameMsgBus"),
                g = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                y = e("skbJet/componentManchester/rgsModel/rgsModel"),
                v = e("skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer"),
                b = e("skbJet/component/currencyHelper/currencyHelper"),
                x = e("com/pixijs/pixi-multistyle-text"),
                T = e("com/pixijs/pixi"),
                w = e("game/reelsController"),
                S = e("game/textSetup"),
                P = e("game/buttonController"),
                C = e("game/backgroundController"),
                E = window.location.search.match(/&?assetPack=([^&]+)&?/)[1];
            e("com/gsap/easing/EasePack"), e("com/pixijs/pixi-particles"), e("com/gsap/TweenLite");
            var M, O, I, A, R = window.TweenLite,
                k = {
                    alpha: {
                        start: 1,
                        end: 0
                    },
                    scale: {
                        start: .9,
                        end: .5,
                        minimumScaleMultiplier: 1
                    },
                    color: {
                        start: "#ffffff",
                        end: "#ffffff"
                    },
                    speed: {
                        start: 2,
                        end: 2,
                        minimumSpeedMultiplier: 1
                    },
                    acceleration: {
                        x: 4,
                        y: 4
                    },
                    maxSpeed: 7,
                    startRotation: {
                        min: 0,
                        max: 360
                    },
                    noRotation: !1,
                    rotationSpeed: {
                        min: 7,
                        max: 22
                    },
                    lifetime: {
                        min: 1,
                        max: 2
                    },
                    blendMode: "normal",
                    frequency: 1,
                    emitterLifetime: -1,
                    maxParticles: 500,
                    pos: {
                        x: 0,
                        y: 0
                    },
                    addAtBack: !1,
                    spawnType: "rect",
                    spawnRect: {
                        x: 280,
                        y: -160,
                        w: 380,
                        h: 200
                    }
                },
                L = new T.Container;
            return {
                init: t,
                showBaseGameUI: f,
                showFreeSpinUI: m,
                bonusAnimation: a,
                baseGameTransition: s
            }
        }), define("game/baseGameController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", "game/buttonController", "game/metersController", "game/reelsController", "game/awardCap", "game/winSequence", "skbJet/componentManchester/rgsModel/rgsModel", "game/bonusTransitionController", "game/infoBar", "game/autoSpin", "com/gsap/TweenLite"], function(e, t, n, i, r, o, a, s, u, l, c, h, p) {
            function d(e) {
                "freespin" === e.serverConfig.paramGame.playMode && (L = !0)
            }

            function f() {
                "desktop" === A || -1 !== A.indexOf("mini") ? m() : e.subscribe("audioPlayer.playerSelectedWhenGameLaunch", m)
            }

            function m() {
                r.enableSpinButton(!0), r.enableBetControls(), i.play("GameIntro", 3), i.volume(3, .6), D.delayedCall(7, function() {
                    i.play("GameAmbience", 3, !0), i.volume(3, .2)
                }, [], this)
            }

            function _() {
                r.enableSpinButton(!1), r.startNetworkActivity(), r.enableAutoSpinButton(!1), o.onBeforeRequest("BaseGame"), "desktop" !== A && r.enableOpenMetersButton(!1)
            }

            function g(e) {
                L ? o.showPFSMeter(e) : o.showBalanceMeter(), t.lib._betPrompt && t.lib._betPrompt.show(!L)
            }

            function y() {
                ++k > 4 && (k = 0)
            }

            function v() {
                a.spin("BaseGame"), p.active() && p.decrement(), y(), i.play(R[k], 4, !0), i.volume(4, .6)
            }

            function b(e) {
                a.resolve(e), r.stopNetworkActivity(), L && o.setFreeSpinNum(e)
            }

            function x(t) {
                l.gameLogic.AwardCapOutcome("AwardCap").AwardCapExceeded ? (p.cancel(), s.runAwardCap()) : l.gameLogic.PrizeOutcome("Game.Total").totalPay && "BaseGame" === t ? u.start("BaseGame") : e.publish("nextState")
            }

            function T(t) {
                r.enableSkipButton(!1), L && 0 === Number(t.response.PromotionalFreeSpin["@count"]) && (r.showSpinButton(!0), r.showSkipButton(!1), r.enableSpinButton(!1), p.cancel()), e.publish("nextState")
            }

            function w() {
                r.enableSkipButton(!1), r.showSkipButton(!1), p.active() ? setTimeout(function() {
                    e.publish("nextState")
                }, 250) : (r.enableBetControls(), r.enableSpinButton(!0), r.enableAutoSpinButton(!0), "desktop" !== A && (r.showAutoSpinButton(!0), r.showOpenMetersButton(!0), r.enableOpenMetersButton(!0))), r.showSpinButton(!0)
            }

            function S(e) {
                p.cancel(), O()
            }

            function P(e) {
                c.baseGameTransition(), L ? o.showPFSMeter(e) : o.showBalanceMeter()
            }

            function C(n) {
                "desktop" === A || -1 !== A.indexOf("mini") ? O() : e.subscribe("audioPlayer.playerSelectedWhenGameLaunch", O), "desktop" !== A && t.lib._betPrompt.show(!1)
            }

            function E() {
                p.cancel(), r.enableBetControls(), r.enableSpinButton(!0), r.enableAutoSpinButton(!0), "desktop" !== A && r.enableOpenMetersButton(!0)
            }

            function M() {
                i.stopChannel(4)
            }

            function O() {
                var e = a.getReelsConfig(),
                    t = a.getSymbolSpriteSheetAnimationFrameArray("BaseGame", "b01"),
                    n = a.getSpriteSheetAnimationFrameArray({
                        name: "B01-Ipulse_",
                        frames: 23
                    }),
                    r = e.bonusSymbolsLocationsMap.filter(function(e) {
                        if ("b01" === l.gameLogic.PopulationOutcome("BaseGame.Reels").map[e]) return e
                    }),
                    o = r.map(function(e) {
                        return a.createAnimationDataObject(e, t, .75, 0, null, {
                            loop: !1
                        })
                    }),
                    s = r.map(function(e) {
                        return a.createAnimationDataObject(e, n, .75, 0, null, {
                            loop: !0
                        })
                    });
                i.play("B01", 2), i.volume(2, .9), a.animateSymbols(o, {
                    onComplete: function() {
                        I(), a.animateSymbols(s, {
                            onComplete: function() {}
                        }, "BaseGame")
                    }
                }, "BaseGame")
            }

            function I() {
                h.show("BaseGame"), h.setText("BaseGame", n.i18n.Game.bonusStartPrompt), r.enableSpinButton(!1), -1 === A.indexOf("desktop") && r.showSpinButton(!1), r.showStartButton(!0)
            }
            var A = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                R = ["JLspin01", "JLspin02", "JLspin03", "JLspin04", "JLspin05"],
                k = 0,
                L = !1,
                D = window.TweenLite;
            return e.subscribe("BaseGame.reelsResolved", x), {
                onStartGameInitial: f,
                onBeforeRequest: _,
                onBeforeShowStage: g,
                onMakeRequest: v,
                onResolveStage: b,
                onEndGame: T,
                onBeginNewGame: w,
                onExitStage: S,
                onEnterNextStage: P,
                onStartGameInProgressStage: C,
                onResetNextStage: E,
                onSystemInit: d,
                onAbortNextStage: M
            }
        }), define("game/bonusRetriggerController", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "com/pixijs/pixi-multistyle-text", "com/pixijs/pixi", "game/textSetup", "com/gsap/TweenLite"], function(e) {
            function t() {
                i(), n()
            }

            function n() {
                _ = new d("TEST\nTEST", {
                    default: m.defaultTextSM,
                    value: m.valueSM
                }), _.y = p.getSize().height / 2, _.x = p.getSize().width / 2, _.anchor.x = .5, _.anchor.y = .5, p.lib._reels.pixiContainer.addChild(_), p.lib._reels.sprites._bonusRetrigText = _, p.lib._bonusRetrigText = _, p.lib._bonusRetrigText.visible = !1, p.lib._bonusRetrigText.alpha = 0, g = new d("TEST\nTEST", {
                    default: m.defaultTextSM,
                    value: m.valueSM
                }), g.y = p.getSize().height / 2, g.x = p.getSize().width / 2, g.anchor.x = .5, g.anchor.y = .5, p.lib._reels.pixiContainer.addChild(g), p.lib._reels.sprites._maxRetrigText = g, p.lib._maxRetrigText = g, p.lib._maxRetrigText.visible = !1, p.lib._maxRetrigText.alpha = 0, y = new d("TEST\nTEST", {
                    default: m.defaultTextSM,
                    value: m.valueSM
                }), y.y = p.getSize().height / 2, y.x = p.getSize().width / 2, y.anchor.x = .5, y.anchor.y = .5, p.lib._reels.pixiContainer.addChild(y), p.lib._reels.sprites._capRetrigText = y, p.lib._capRetrigText = y, p.lib._capRetrigText.visible = !1, p.lib._capRetrigText.alpha = 0
            }

            function i() {
                v = f.Sprite.fromFrame("Transition-Main"), v.width = S, v.height = P, p.lib._reels.pixiContainer.addChild(v), p.lib._reels.sprites._reelsOverlay = v, p.lib._reelsOverlay = v, c(), p.lib._reelsOverlay.visible = !1, p.lib._reelsOverlay.alpha = 0
            }

            function r(e) {
                c(), m.bonusRetriggerText(e), h(p.lib._bonusRetrigText, 1, 1), h(p.lib._reelsOverlay, 1, 1)
            }

            function o() {
                h(p.lib._bonusRetrigText, 1, 0), h(p.lib._reelsOverlay, 1, 0)
            }

            function a(e) {
                c(), m.capRetriggerText(e), h(p.lib._capRetrigText, 1, 1), h(p.lib._reelsOverlay, 1, 1)
            }

            function s() {
                h(p.lib._capRetrigText, 1, 0), h(p.lib._reelsOverlay, 1, 0)
            }

            function u(e, t) {
                r(e), new C.to(p.lib._bonusRetrigText, 5, {
                    onComplete: function() {
                        o(), new C.to(p.lib._bonusRetrigText, 1, {
                            onComplete: t
                        })
                    }
                })
            }

            function l(e, t) {
                a(e), new C.to(p.lib._capRetrigText, 5, {
                    onComplete: function() {
                        s(), new C.to(p.lib._capRetrigText, 1, {
                            onComplete: t
                        })
                    }
                })
            }

            function c() {
                p.lib._reelsOverlay.width = b, p.lib._reelsOverlay.height = x, p.lib._reelsOverlay.anchor.x = 0, p.lib._reelsOverlay.anchor.y = 0, p.lib._reelsOverlay.position.x = T, p.lib._reelsOverlay.position.y = w
            }

            function h(e, t, n) {
                var i = !1;
                0 === n && (i = !0), e.visible || (e.visible = !0), new C.to(e, t, {
                    alpha: n,
                    onComplete: function() {
                        e.visible = !i
                    }
                })
            }
            var p = e("skbJet/component/gladPixiRenderer/gladPixiRenderer"),
                d = e("com/pixijs/pixi-multistyle-text"),
                f = e("com/pixijs/pixi"),
                m = e("game/textSetup");
            e("com/gsap/TweenLite");
            var _, g, y, v, b, x, T, w, S, P, C = window.TweenLite,
                E = window.location.search.match(/&?assetPack=([^&]+)&?/)[1];
            switch (E) {
                case "desktop":
                case "tablet":
                    S = 1440, P = 810, b = 1030, x = 615, T = 204, w = 84;
                    break;
                case "mobile":
                    S = 960, P = 540, b = 682, x = 408, T = 138, w = 56;
                    break;
                case "desktopmini":
                case "tabletmini":
                    S = 480, P = 320, b = 402, x = 233, T = 39, w = 32
            }
            return {
                init: t,
                runBonusReTrigger: u,
                runCapReTriggers: l
            }
        }), define("game/bonusController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "game/buttonController", "game/metersController", "game/reelsController", "game/winSequence", "skbJet/componentManchester/rgsModel/rgsModel", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", "game/bonusTransitionController", "game/bonusRetriggerController", "game/infoBar", "com/gsap/TweenLite"], function(e, t, n, i, r, o, a, s, u, l, c, h) {
            function p(e) {
                l.bonusAnimation(e, C), -1 === E.indexOf("desktop") && i.showSpinButton(!0), h.setText("BaseGame", ""), h.hide("BaseGame")
            }

            function d() {
                i.showSpinButton(!1), i.showSkipButton(!0), i.startNetworkActivity(), i.enableSkipButton(!1), r.onBeforeRequest("FreeSpin"), h.hide("FreeSpin"), h.setText("FreeSpin", "")
            }

            function f() {
                o.spin("FreeSpin"), C(1)
            }

            function m(e) {
                o.resolve(e), i.stopNetworkActivity()
            }

            function _() {
                s.gameLogic.PrizeOutcome("FreeSpin.Lines").totalPay || s.gameLogic.PrizeOutcome("FreeSpin.MultiWayLeftRight").totalPay ? a.start("FreeSpin") : e.publish("nextState")
            }

            function g(e) {
                "true" === e.response.FreeSpinOutcome.IncrementTriggered ? w(e) : _()
            }

            function y() {
                s.gameLogic.AwardCapOutcome("AwardCap").AwardCapExceeded ? (a.setBonusWin(s.gameLogic.PrizeOutcome("Game.Total").totalPay), e.publish("nextState")) : _()
            }

            function v() {
                l.showFreeSpinUI(), i.enableSpinButton(!1), i.showSpinButton(!1), i.showSkipButton(!1), i.showStartButton(!0), h.show("FreeSpin"), h.setText("FreeSpin", n.i18n.Game.bonusResumePrompt), C(0), a.setBonusWin(), "desktop" !== E ? e.subscribe("audioPlayer.playerSelectedWhenGameLaunch", b) : b(), t.lib._betPrompt && t.lib._betPrompt.show(!1)
            }

            function b() {
                u.play("FreeSpinsMusicLoop", 3, !0), u.volume(3, .8)
            }

            function x(t) {
                "0" === t.response.FreeSpinOutcome.Count ? p(t) : (i.showSkipButton(!0), i.enableSkipButton(!1), e.publish("nextState"))
            }

            function T() {
                i.showSkipButton(!1), i.showStartButton(!0), i.enableStartButton(!0)
            }

            function w(e) {
                var t = o.getReelsConfig(),
                    n = o.getSymbolSpriteSheetAnimationFrameArray("FreeSpin", "b01"),
                    i = t.bonusSymbolsLocationsMap.filter(function(e) {
                        if ("b01" === s.gameLogic.PopulationOutcome("FreeSpin.Reels").map[e]) return e
                    }).map(function(e) {
                        return o.createAnimationDataObject(e, n, .75, 0, null, {
                            loop: !1
                        })
                    });
                u.play("B01", 2), u.volume(2, 1), o.animateSymbols(i, {
                    onComplete: function() {
                        new M.to(o, 2, {
                            onComplete: function() {
                                P(e), new M.to(o, 2, {
                                    onComplete: function() {
                                        o.resetAnimations("FreeSpin")
                                    }
                                })
                            }
                        })
                    }
                }, "FreeSpin")
            }

            function S() {
                C(0), _()
            }

            function P(e) {
                "false" === e.response.FreeSpinOutcome.MaxAwarded ? c.runBonusReTrigger(e, S) : c.runCapReTriggers(e, S)
            }

            function C(e) {
                var i = s.gameLogic.FreeSpinOutcome().Count + e + n.i18n.Game.consoleSpinsPlayedOf + s.gameLogic.FreeSpinOutcome().TotalAwarded;
                t.lib._spinsRemainingValue.setText(i), t.lib._spinsRemainingValue.pixiContainer.$text.style.padding = 5
            }
            var E = window.location.search.match(/&?assetPack=([^&]+)&?/)[1],
                M = window.TweenLite;
            return {
                onBeforeRequest: d,
                onMakeRequest: f,
                onResolveStage: m,
                onInProgressStage: g,
                onExitStage: y,
                onEnterNextStage: p,
                onStartGameInProgressStage: v,
                onStartGameInProgressNextStage: x,
                onResetNextStage: T,
                updateSpinMeter: C
            }
        }), define("skbJet/componentManchester/paylineDiagrams/PaylineDiagrams", [], function() {
            function e(e) {
                if (e.cellWidth = e.cellWidth || 10, e.cellHeight = e.cellHeight || 10, !e.reels) {
                    e.reels = [];
                    for (var t = 0; t < e.columns; t += 1) e.reels.push({
                        x: t * e.cellWidth,
                        y: 0,
                        h: e.rows
                    })
                }
                e.canvasH = 0, e.canvasW = 0, e.reels.forEach(function(t) {
                    var n = t.y + t.h * e.cellHeight + 1;
                    e.canvasH = Math.max(e.canvasH, n);
                    var i = t.x + e.cellWidth + 1;
                    e.canvasW = Math.max(e.canvasW, i)
                }), this.dimensions = e
            }
            return e.prototype.renderDiagram = function(e, t, n) {
                var i = window.devicePixelRatio || 1,
                    r = document.createElement("canvas"),
                    o = r.getContext("2d");
                r.width = this.dimensions.canvasW * i, r.height = this.dimensions.canvasH * i, r.style.width = this.dimensions.canvasW + "px", r.style.height = this.dimensions.canvasH + "px", o.scale(i, i), o.fillStyle = "#fff", o.fillRect(1, 1, this.dimensions.canvasW, this.dimensions.canvasH);
                for (var a = 0, s = 0; s < this.dimensions.reels.length; s += 1)
                    for (var u = this.dimensions.reels[s], l = 0; l < u.h; l += 1) {
                        var c = u.x,
                            h = u.y + l * this.dimensions.cellHeight;
                        o.fillStyle = "#333", o.fillRect(c, h, this.dimensions.cellWidth + 1, this.dimensions.cellHeight + 1), o.fillStyle = e.locations.indexOf(a) > -1 ? n : "#fff", o.fillRect(c + 1, h + 1, this.dimensions.cellWidth - 1, this.dimensions.cellHeight - 1),
                            a += 1
                    }
                var p = document.createElement("div"),
                    d = document.createElement("div");
                return p.className = "paylineDiagram", d.className = "paylineCaption", d.textContent = t, p.appendChild(d), p.appendChild(r), p
            }, e.prototype.render = function(e, t) {
                t = t || "#36a9e2";
                var n = document.createElement("div");
                n.className = "paylineWrapper";
                for (var i = 0; i < e.length; i += 1) {
                    var r = this.renderDiagram(e[i], i + 1, t);
                    n.appendChild(r)
                }
                return n
            }, e
        }), define("game/helpFile", ["require", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/componentManchester/paylineDiagrams/PaylineDiagrams", "game/winSequence", "skbJet/component/currencyHelper/currencyHelper"], function(e) {
            function t(e) {
                _ = e.PaytableResponse.AwardCapInfo.CurrencyCap.AwardCap, "true" === e.PaytableResponse.PaytableStatistics["@singleRTP"] ? (f = e.PaytableResponse.PaytableStatistics["@maxSingleRTP"], d = e.PaytableResponse.PaytableStatistics["@minSingleRTP"]) : (d = e.PaytableResponse.PaytableStatistics["@maxRTP"], f = e.PaytableResponse.PaytableStatistics["@minRTP"]), d === f ? (v.i18n.Paytable.RTPvalue = v.i18n.Paytable.RTPvalue.replace("{@minRTP}", f), m = v.i18n.Paytable.RTPvalue) : (v.i18n.Paytable.RTPrange = v.i18n.Paytable.RTPrange.replace("{@minRTP}", f), v.i18n.Paytable.RTPrange = v.i18n.Paytable.RTPrange.replace("{@maxRTP}", d), m = v.i18n.Paytable.RTPrange), document.getElementById("searchContainer").style.display = "none", a(), i(), r(), n(), u(), s();
                var t = v.i18n.helpHTML;
                document.getElementById("gameRulesArticle").innerHTML = t
            }

            function n() {
                var e = document.getElementsByClassName("closeBtn");
                Array.prototype.forEach.call(e, function(e) {
                    e.innerHTML = v.i18n.Game.buttonClose, e.onclick = function() {
                        p("game")
                    }
                })
            }

            function i() {
                var e = v.i18n.paytableHTML.replace(/\"/g, "'");
                e = e.replace("<winlinediagrams/>", g), e = e.replace("{awardCap}", T.formatBalance(_)), e = e.replace("{RTP}", m), e = o(e), document.getElementById("paytableArticle").innerHTML = e;
                var t = v.i18n.helpHTML.replace(/\"/g, "'");
                document.getElementById("gameRulesArticle").innerHTML = t;
                var n = new b({
                    cellWidth: 12,
                    cellHeight: 10,
                    reels: [{
                        x: 0,
                        y: 0,
                        h: 4
                    }, {
                        x: 12,
                        y: 0,
                        h: 4
                    }, {
                        x: 24,
                        y: 0,
                        h: 4
                    }, {
                        x: 36,
                        y: 0,
                        h: 4
                    }, {
                        x: 48,
                        y: 0,
                        h: 4
                    }]
                });
                document.getElementById("baseLinesContainer").appendChild(n.render(x.winlines))
            }

            function r() {
                var e = document.getElementById("gameRulesHeader"),
                    t = document.getElementById("paytableHeader");
                e.innerHTML = v.i18n.MenuCommand.howToPlay, t.innerHTML = v.i18n.MenuCommand.payTable
            }

            function o(e) {
                e = e.replace(/{w01}/g, v.getImgObj("w01").outerHTML), e = e.replace(/{b01}/g, v.getImgObj("b01").outerHTML), e = e.replace(/{s01}/g, v.getImgObj("s01").outerHTML), e = e.replace(/{s02}/g, v.getImgObj("s02").outerHTML), e = e.replace(/{s03}/g, v.getImgObj("s03").outerHTML), e = e.replace(/{s04}/g, v.getImgObj("s04").outerHTML), e = e.replace(/{s05}/g, v.getImgObj("s05").outerHTML), e = e.replace(/{s06}/g, v.getImgObj("s06").outerHTML), e = e.replace(/{s07}/g, v.getImgObj("s07").outerHTML), e = e.replace(/{s08}/g, v.getImgObj("s08").outerHTML), e = e.replace(/{s09}/g, v.getImgObj("s09").outerHTML), e = e.replace(/{fw01}/g, v.getImgObj("w01fs").outerHTML), e = e.replace(/{fb01}/g, v.getImgObj("b01fs").outerHTML), e = e.replace(/{fs01}/g, v.getImgObj("s01fs").outerHTML), e = e.replace(/{fs02}/g, v.getImgObj("s02fs").outerHTML), e = e.replace(/{fs03}/g, v.getImgObj("s03fs").outerHTML), e = e.replace(/{fs04}/g, v.getImgObj("s04fs").outerHTML), e = e.replace(/{fs05}/g, v.getImgObj("s05fs").outerHTML), e = e.replace(/{fs06}/g, v.getImgObj("s06fs").outerHTML), e = e.replace(/{fs07}/g, v.getImgObj("s07fs").outerHTML), e = e.replace(/{fs08}/g, v.getImgObj("s08fs").outerHTML), e = e.replace(/{fs09}/g, v.getImgObj("s09fs").outerHTML), e = e.replace(/{MultiWay}/g, v.getImgObj("multiwayForText").outerHTML);
                var t = v.getImgObj("Plusarrow-Up").outerHTML;
                return t = t.substr(0, 5) + 'class="fixHeight" ' + t.substr(5), e = e.replace(/{Plus}/g, t)
            }

            function a() {
                y.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "command",
                            name: "paytable",
                            text: v.i18n.MenuCommand.payTable,
                            enabled: 1
                        }]
                    }
                }), y.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "command",
                            name: "howToPlay",
                            text: v.i18n.MenuCommand.howToPlay,
                            enabled: 1
                        }]
                    }
                })
            }

            function s() {
                y.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "howToPlay",
                        event: "enable",
                        params: [1]
                    }
                }), y.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "paytable",
                        event: "enable",
                        params: [1]
                    }
                })
            }

            function u() {
                y.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "howToPlay",
                        event: "enable",
                        params: [0]
                    }
                }), y.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "paytable",
                        event: "enable",
                        params: [0]
                    }
                })
            }

            function l(e) {
                var t = "howToPlay" === e.option ? "gameRules" : "paytable";
                "howToPlay" === e.option ? (document.getElementById("searchContainer").style.display = "block", c(t)) : "paytable" === e.option && (document.getElementById("searchContainer").style.display = "block", h(t, e))
            }

            function c(e) {
                p("block" === document.getElementById(e).style.display ? "game" : e)
            }

            function h(e, t) {
                if ("paytable" === t.option || "howToPlay" === t.option) {
                    var e = "howToPlay" === t.option ? "gameRules" : "paytable";
                    p("block" === document.getElementById(e).style.display ? "game" : e)
                }
            }

            function p(e) {
                "game" === e && (document.getElementById("searchContainer").style.display = "none");
                for (var t = document.getElementsByClassName("tab"), n = 0; n < t.length; n++) t[n].style.display = "none";
                document.getElementById(e).style.display = "block"
            }
            var d, f, m, _, g, y = e("skbJet/component/gameMsgBus/GameMsgBus"),
                v = e("skbJet/component/pixiResourceLoader/pixiResourceLoader"),
                b = e("skbJet/componentManchester/paylineDiagrams/PaylineDiagrams"),
                x = e("game/winSequence").winlineConfig,
                T = e("skbJet/component/currencyHelper/currencyHelper");
            return y.subscribe("platformMsg/ConsoleService/Game.Control", l), y.subscribe("onAutoSpinBtnClicked", u), y.subscribe("onAutoSpinClose", s), {
                onGameInit: t,
                enableConsole: s,
                disableConsole: u
            }
        }), define("game", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/gameMsgBus/PlatformMsgBusAdapter", "skbJet/component/howlerAudioPlayer/howlerAudioSpritePlayer", "game/loadController", "game/gameSizeController", "game/bigWinController", "game/baseGameController", "game/bonusController", "game/bonusTransitionController", "game/bonusRetriggerController", "game/awardCap", "game/metersController", "game/buttonController", "game/reelsController", "game/winSequence", "game/textSetup", "game/multiwayAnimations", "game/infoBar", "game/autoSpin", "game/helpFile", "game/backgroundController"], function(e, t, n, i, r, o, a, s, u, l, c, h, p, d, f, m, _, g, y, v, b, x) {
            function T(e) {
                o.onSystemInit(e), d.onSystemInit(e), m.onSystemInit(e), s.onSystemInit(e), p.onSystemInit(e), "freespin" === e.serverConfig.paramGame.playMode && (F = !0)
            }

            function w(n) {
                var i = n.PaytableResponse.VersionInfo;
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.InitDone",
                    data: {
                        version: {
                            gameVersion: window._cacheFlag.gameVersion,
                            gleVersion: i && i.GameLogicVersion || "dev"
                        }
                    }
                }), t.lib._bonusMeters.show(!1), _.init(), g.init(), d.onGameInit(n), p.onGameInit(), f.onGameInit(n), m.onGameInit(n, f.getReelsConfig()), l.init(), y.onGameInit(), a.init(), c.init(), h.init(), "desktopmini" !== N && v.onGameInit(n), b.onGameInit(n), t.lib._betPrompt && t.lib._betPrompt.show(!1)
            }

            function S(n) {
                o.onBeforeShowStage(), x.updateBackground(n.nextStage), t.lib._GameScene.pixiContainer.alpha = 1, "FreeSpin" === n.response.OutcomeDetail.NextStage && (B(), d.disableBetControls(), d.enableSpinButton(!1), d.enableAutoSpinButton(!1)), F && B(), s.onBeforeShowStage(n), e.publish("nextState")
            }

            function P(e) {
                b.disableConsole(), "BaseGame" === e.nextStage ? (B(), d.disableBetControls(), s.onBeforeRequest(), m.initRollUpComplete()) : (u.onBeforeRequest(), m.initRollUpComplete())
            }

            function C(e) {
                "BaseGame" === e.nextStage ? s.onMakeRequest() : u.onMakeRequest()
            }

            function E(e) {
                v.active() || (F || D(), b.enableConsole()), s.onBeginNewGame(e)
            }

            function M(e) {
                "BaseGame" === e.nextStage ? s.onResolveStage(e) : u.onResolveStage(e)
            }

            function O(e) {
                "BaseGame" === e.nextStage ? s.onExitStage(e) : u.onExitStage(e)
            }

            function I(e) {
                "BaseGame" === e.nextStage ? (s.onEnterNextStage(), m.initRollUpComplete()) : (u.onEnterNextStage(e), m.initRollUpComplete())
            }

            function A(e) {
                "BaseGame" === e.nextStage ? s.onStartGameInProgressStage() : u.onStartGameInProgressStage()
            }

            function R(e) {
                b.disableConsole(), u.onStartGameInProgressNextStage(e)
            }

            function k() {
                d.enableSpinButton(!1), d.stopNetworkActivity(), e.publish("nextState")
            }

            function L(e) {
                f.cancelSpin(e.nextStage), s.onAbortNextStage(), i.stopChannel(5), "BaseGame" === e.nextStage ? (F || D(), b.enableConsole(), s.onResetNextStage()) : u.onResetNextStage()
            }

            function D() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "betPerPattern",
                        event: "enable",
                        params: [1]
                    }
                }), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "patternsBet",
                        event: "enable",
                        params: [1]
                    }
                })
            }

            function B() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "betPerPattern",
                        event: "enable",
                        params: [0]
                    }
                }), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "patternsBet",
                        event: "enable",
                        params: [0]
                    }
                })
            }
            var F = !1,
                N = window.location.search.match(/&?assetPack=([^&]+)&?/)[1];
            e.subscribe("platformMsg/Kernel/System.Init", T), e.subscribe("platformMsg/ClientService/Game.Init", w), e.subscribe("onBeforeShowStage", S), e.subscribe("onStartGameInitial", s.onStartGameInitial), e.subscribe("onBeforeRequest", P), e.subscribe("onMakeRequest", C), e.subscribe("onResolveStage", M), e.subscribe("onEndGame", s.onEndGame), e.subscribe("onInProgressStage", u.onInProgressStage), e.subscribe("onBeginNewGame", E), e.subscribe("onExitStage", O), e.subscribe("onEnterNextStage", I), e.subscribe("onStartGameInProgressStage", A), e.subscribe("onStartGameInProgressNextStage", R), e.subscribe("onAbortNextStage", k), e.subscribe("onResetNextStage", L)
        })
}();