Overview

URL afwantech.com/
IP51.77.52.109
ASNOVH SAS
Location Poland
Report completed2022-09-25 17:34:13 UTC
StatusLoading report..
urlquery Alerts No alerts detected


Settings

UserAgentMozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Referer


Intrusion Detection Systems

Suricata /w Emerging Threats Pro  No alerts detected


Blocklists

OpenPhish  No alerts detected
PhishTank  No alerts detected
Fortinet's Web Filter
Scan Date Severity Indicator Comment
2022-09-25 2 afwantech.com/ Malware
2022-09-25 2 afwantech.com/ Malware
mnemonic secure dns  No alerts detected
Quad9 DNS  No alerts detected


Files

No files detected



Passive DNS (18)

Passive DNS Source Fully Qualifying Domain Name Rank First Seen Last Seen IP Comment
mnemonic passive DNS googleads.g.doubleclick.net (1) 42 2021-02-20 15:43:32 UTC 2022-09-25 12:11:05 UTC 142.250.74.162
mnemonic passive DNS partner.googleadservices.com (1) 798 2012-10-03 01:04:21 UTC 2022-09-25 05:10:15 UTC 172.217.21.162
mnemonic passive DNS ocsp.pki.goog (15) 175 2017-06-14 07:23:31 UTC 2022-09-25 04:54:16 UTC 142.250.74.3
mnemonic passive DNS fonts.gstatic.com (9) 0 2014-08-29 13:43:22 UTC 2022-09-25 04:49:39 UTC 142.250.74.163 Domain (gstatic.com) ranked at: 540
mnemonic passive DNS ocsp.digicert.com (1) 86 2012-05-21 07:02:23 UTC 2022-09-25 12:15:08 UTC 93.184.220.29
mnemonic passive DNS contile.services.mozilla.com (1) 1114 2021-05-27 18:32:35 UTC 2022-09-25 04:51:16 UTC 34.117.237.239
mnemonic passive DNS pagead2.googlesyndication.com (2) 101 2021-02-20 15:52:05 UTC 2022-09-25 14:54:41 UTC 216.58.207.194
mnemonic passive DNS push.services.mozilla.com (1) 2140 2015-09-03 10:29:36 UTC 2022-09-25 05:07:25 UTC 34.216.192.228
mnemonic passive DNS tpc.googlesyndication.com (2) 126 2015-02-20 14:12:31 UTC 2022-09-25 07:29:22 UTC 142.250.74.33
mnemonic passive DNS www.google.com (1) 7 2016-08-04 12:36:31 UTC 2022-09-25 10:22:46 UTC 142.250.74.164
mnemonic passive DNS afwantech.com (2) 0 2020-02-14 12:23:53 UTC 2022-09-25 17:33:55 UTC 51.77.52.109 Unknown ranking
mnemonic passive DNS firefox.settings.services.mozilla.com (2) 867 2020-06-04 20:08:41 UTC 2022-09-25 11:34:24 UTC 143.204.55.36
mnemonic passive DNS content-signature-2.cdn.mozilla.net (1) 1152 2020-11-03 12:26:46 UTC 2022-09-25 05:42:52 UTC 143.204.55.110
mnemonic passive DNS fonts.googleapis.com (2) 8877 2013-06-10 20:14:26 UTC 2022-09-25 11:00:52 UTC 142.250.74.10
mnemonic passive DNS adservice.google.com (1) 76 2021-02-20 16:10:48 UTC 2022-09-25 12:22:03 UTC 142.250.74.2
mnemonic passive DNS img-getpocket.cdn.mozilla.net (6) 1631 2017-09-01 03:40:57 UTC 2022-09-25 04:26:31 UTC 34.120.237.76
mnemonic passive DNS r3.o.lencr.org (5) 344 2020-12-02 08:52:13 UTC 2022-09-25 05:02:41 UTC 23.36.76.226
mnemonic passive DNS adservice.google.no (1) 96969 2017-09-26 14:23:08 UTC 2022-09-25 04:50:39 UTC 142.250.74.162


Recent reports on same IP/ASN/Domain/Screenshot

Last 4 reports on IP: 51.77.52.109

Date UQ / IDS / BL URL IP
2022-09-25 17:34:13 +0000
0 - 0 - 2 afwantech.com/ 51.77.52.109
2022-09-20 17:34:43 +0000
0 - 0 - 2 afwantech.com/ 51.77.52.109
2022-09-05 17:38:28 +0000
0 - 0 - 51 afwantech.com/ 51.77.52.109
2022-09-01 17:37:38 +0000
0 - 0 - 51 afwantech.com/ 51.77.52.109

Last 5 reports on ASN: OVH SAS

Date UQ / IDS / BL URL IP
2022-11-28 04:38:49 +0000
0 - 0 - 2 www.estadoempresaweblife.com/1669609956/ib/pr (...) 46.105.204.31
2022-11-28 04:34:29 +0000
0 - 0 - 2 altamira.info/ 176.31.35.197
2022-11-28 04:29:24 +0000
0 - 0 - 6 www.got-data.cloud/ 188.165.46.189
2022-11-28 04:05:53 +0000
0 - 0 - 16 lift-force.imperoserver.in/ 54.36.151.155
2022-11-28 04:04:50 +0000
0 - 0 - 2 burlacugeorge.ro/ 217.182.196.38

Last 4 reports on domain: afwantech.com

Date UQ / IDS / BL URL IP
2022-09-25 17:34:13 +0000
0 - 0 - 2 afwantech.com/ 51.77.52.109
2022-09-20 17:34:43 +0000
0 - 0 - 2 afwantech.com/ 51.77.52.109
2022-09-05 17:38:28 +0000
0 - 0 - 51 afwantech.com/ 51.77.52.109
2022-09-01 17:37:38 +0000
0 - 0 - 51 afwantech.com/ 51.77.52.109

Last 3 reports with similar screenshot

Date UQ / IDS / BL URL IP
2022-09-20 17:34:43 +0000
0 - 0 - 2 afwantech.com/ 51.77.52.109
2022-09-05 17:38:28 +0000
0 - 0 - 51 afwantech.com/ 51.77.52.109
2022-09-01 17:37:38 +0000
0 - 0 - 51 afwantech.com/ 51.77.52.109


JavaScript

Executed Scripts (63)


Executed Evals (110)

#1 JavaScript::Eval (size: 92, repeated: 1) - SHA256: 196dbf343ca89fbeda04bf4fd7059158342b1fbe8acf87417d6dcc96bb2ddc47

                                        0,
function(D, H, A, q, S) {
    p(D, (S = GQ("object", (H = Z(D, (A = J(3, (q = J(5, D), D)), q)), "number"), H), A), S)
}
                                    

#2 JavaScript::Eval (size: 234, repeated: 1) - SHA256: 18ae94d007d2f2ca068cde3d2fd3862125a2d0de521dd502dbccfdd8030ee439

                                        0, At = function(Y, G, R, g, M, X, D, H, A, q) {
    for (H = J(5, (D = ((A = J((q = R[ku] || {}, 5), R), q.DV = J(3, R), q).o = [], R.h == R ? (X = V(8, Y, R), -4 * ~(X & 1) + ~X + -6 + g * (X ^ 1)) : 1), R)), M = G; M < D; M++) q.o.push(J(6, R));
    for (q.X2 = Z(R, H); D--;) q.o[D] = Z(R, q.o[D]);
    return q.Rz = Z(R, A), q
}
                                    

#3 JavaScript::Eval (size: 32, repeated: 1) - SHA256: f30f563fff3be7c1937a490184875e3070cedfeb22f23bd5c8bfadbd483857af

                                        0,
function(D) {
    kD(8, D, true, 20, 2)
}
                                    

#4 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 1e834bb7952719e83c2cd0bdb3c055a97e3c0012d32cce4f17e4800c3932bb9d

                                        vO
                                    

#5 JavaScript::Eval (size: 94, repeated: 1) - SHA256: 612b08b0ea6847b153267f6f278987546373d3cddaccb0a265bf9580bb15c89e

                                        0,
function(D, H, A, q, S, a) {
    p(D, (A = Z(D, (a = Z(D, (S = (H = (q = J(5, D), J(3, D)), J(3, D)), q)), H)), S), +(a == A))
}
                                    

#6 JavaScript::Eval (size: 588, repeated: 1) - SHA256: 1e3b6b3b6682c696450812025008eab274c62115c15fa9003712cd445fa9106d

                                        0,
function(D, H, A, q, S, a, m, v, e, B, N, n, F, C, I, BD, HD) {
    function l(x, E) {
        for (; F < x;) e |= V(8, true, D) << F, F += 8;
        return e >>= (F -= x, E = e & (1 << x) - 1, x), E
    }
    for (S = (m = (a = (n = (F = (B = J(3, D), e = 0), N = l(3), ~N - 3 * ~(N | 1) + (N & -2) + 2 * (~N ^ 1)), l)(5), []), C = 0); C < a; C++) HD = l(1), m.push(HD), S += HD ? 0 : 1;
    for (v = (A = (BD = ((S | 0) - 1).toString(2).length, []), 0); v < a; v++) m[v] || (A[v] = l(BD));
    for (H = 0; H < a; H++) m[H] && (A[H] = J(5, D));
    for (q = [], I = n; I--;) q.push(Z(D, J(3, D)));
    y(38, B, function(x, E, D$, cD, hg) {
        for (cD = (hg = (E = [], 0), []); hg < a; hg++) {
            if (!(D$ = A[hg], m)[hg]) {
                for (; D$ >= E.length;) E.push(J(3, x));
                D$ = E[D$]
            }
            cD.push(D$)
        }
        x.V = J(24, x, (x.j = J(26, x, q.slice()), cD))
    }, D)
}
                                    

#7 JavaScript::Eval (size: 77, repeated: 1) - SHA256: 5f72facda7b42f03c51ea7db110c781bd7b42deaaca69c38a5c6dfe188f41937

                                        0,
function(D, H, A, q, S) {
    p(D, (A = Z(D, (S = (H = J(6, (q = J(3, D), D)), Z)(D, H), q)), H), S * A)
}
                                    

#8 JavaScript::Eval (size: 447, repeated: 1) - SHA256: 0742b61976eb67f76ed9d2f272e6a69e54f06e321fc6a09870dca8d0fa2c4747

                                        0, BO = function(Y, G, R, g, M, X, D, H, A, q) {
    if (!G.NE) {
        if (3 < (M = Z(G, (q = (0 == (X = Z(G, ((D = void 0, Y) && Y[0] === ht && (R = Y[1], D = Y[2], Y = void 0), 482)), X.length) && (A = Z(G, 223) >> 3, X.push(R, A >> 8 & 255, -255 - ~A - ~(A | 255) + 2 * (~A | 255)), void 0 != D && X.push(D & 255)), ""), Y && (Y.message && (q += Y.message), Y.stack && (q += ":" + Y.stack)), 370)), M)) {
            G.h = (H = (q = (M -= ((q = q.slice(0, (M & -4) + (~M ^ 3) - (~M | 3)), q).length | 0) + 3, Uj)(q, g), G.h), G);
            try {
                K(G, P(2, q.length).concat(q), 194, 12)
            } finally {
                G.h = H
            }
        }
        p(G, 370, M)
    }
}
                                    

#9 JavaScript::Eval (size: 81, repeated: 1) - SHA256: 15053d2271e8b6ffd7857e9291409bfd61e57a3c44b7d9a7c32527a464545bda

                                        0,
function(D, H, A) {
    (A = Z((H = J(6, D), D.h), H), A[0]).removeEventListener(A[1], A[2], q$)
}
                                    

#10 JavaScript::Eval (size: 218, repeated: 1) - SHA256: 66a7799412377d9048c65546d5a3321f9d9844aa386830a26c659058b3fc6900

                                        kD = function(Y, G, R, g, M, X, D, H) {
    if (g - 9 << 1 >= (1 == (g >> 2 & 7) && (M = V(Y, R, G), -~(M & 128) - -1 + 2 * (M ^ 128) + 2 * (~M ^ 128) && (M = (M | 0) + 127 - (M | 127) | V(Y, R, G) << 7), H = M), g) && (g - 1 | 16) < g) {
        for (X = (D = J(3, G), 0); 0 < M; M--) X = X << Y | V(Y, R, G);
        p(G, D, X)
    }
    return H
}
                                    

#11 JavaScript::Eval (size: 2, repeated: 1) - SHA256: e63717504f43d1699f229076a3cc62364f00fdf8f8dad0ef630129204fa441a1

                                        Mu
                                    

#12 JavaScript::Eval (size: 64, repeated: 1) - SHA256: 91b6e711383dddaf6070732fc1a1965841f03f16e48d5b210997ad051eb172e1

                                        0, HO = function(Y, G, R, g) {
    (R = J(7, (g = J(7, Y), Y)), K)(Y, P(G, Z(Y, g)), R)
}
                                    

#13 JavaScript::Eval (size: 1042, repeated: 1) - SHA256: 66b64ce68a825c53d4cd14c90fedfd950823ac321911062affe1b82c46cff8f4

                                        0, d = function(Y, G, R, g, M, X, D, H, A, q, S, a, m) {
    if ((R & 70) == (2 == ((R ^ 70) & 7) && (m = (D = G[Y] << 24 | G[(Y | 0) + 1] << 16, X = G[-2 * ~Y + (~Y ^ 2) + g * (~Y & 2) + (Y | -3)] << M, -~D + (D ^ X) + (~D | X)) | G[-4 * ~(Y & g) + -8 + g * (Y ^ g) + 2 * (~Y | g)]), R))
        if (X = "array" === GQ("object", "number", Y) ? Y : [Y], this.A) g(this.A);
        else try {
            D = !this.L.length, G = [], U(0, [Xq, G, X], this, 3), U(0, [gx, g, G], this, 6), M && !D || M$(true, M, true, false, this)
        } catch (v) {
            z("~", 35, 0, v, this), g(this.A)
        }
        return ((R ^ 21) & 5 || (m = a = function() {
            if (D.h == D) {
                if (D.O) {
                    var v = [Ag, G, X, void 0, H, A, arguments];
                    if (Y == g) var e = M$(true, false, (U(0, v, D, 11), false), false, D);
                    else if (Y == M) {
                        var B = !D.L.length;
                        U(0, v, D, 18), B && M$(true, false, false, false, D)
                    } else e = $D(424, v, 29, D);
                    return e
                }
                H && A && H.removeEventListener(A, a, q$)
            }
        }), R ^ 47) >> 4 || (A = G & M, H = SX, D = [-3, -76, -36, 8, -24, -56, D, 27, 67, -33], S = Rb[X.F](X.Hp), S[X.F] = function(v) {
            A = (q = (A += 6 + M * G, v), -1 - ~A) - (A & -8)
        }, S.concat = function(v, e, B, N) {
            return (v = (q = (e = -(B = Y % 16 + 1, B) * q - 108 * Y * Y * q + D[A + 11 & M] * Y * B + 3 * Y * Y * B + A + 36 * q * q - -2736 * Y * q + (H() | 0) * B - 252 * q, void 0), D[e]), D[(N = A + 53, -1 - ~N + (~N ^ M) - (N | -8)) + (g * (G | g) - -2 + ~(G | g) + (~G ^ g))] = v, D)[A + (G & g)] = -76, v
        }, m = S), m
}
                                    

#14 JavaScript::Eval (size: 35, repeated: 1) - SHA256: 1e3606d95ce27d593157594820335681a9380f51a96147303cd8000e60a95e12

                                        document.createElement('div').style
                                    

#15 JavaScript::Eval (size: 29, repeated: 1) - SHA256: 53e5b7d706a350fe98d52499058624e15cddc1541f17370f94a899a386c50255

                                        document.createElement('img')
                                    

#16 JavaScript::Eval (size: 70, repeated: 1) - SHA256: 59b05b3dcf22ba30ce2653443dc2c6406cb1a48e1b0ee027bf0ab1d2b8f9b17f

                                        0,
function(D, H, A, q) {
    p(D, (A = (q = (H = J(7, D), J)(7, D), D).O[H] && Z(D, H), q), A)
}
                                    

#17 JavaScript::Eval (size: 1040, repeated: 1) - SHA256: f699ad5ff8ac4243d5c6fd1c6b50602a774961aaa39b9672a32f1e35a9c5d029

                                        d = function(Y, G, R, g, M, X, D, H, A, q, S, a, m) {
    if ((R & 70) == (2 == ((R ^ 70) & 7) && (m = (D = G[Y] << 24 | G[(Y | 0) + 1] << 16, X = G[-2 * ~Y + (~Y ^ 2) + g * (~Y & 2) + (Y | -3)] << M, -~D + (D ^ X) + (~D | X)) | G[-4 * ~(Y & g) + -8 + g * (Y ^ g) + 2 * (~Y | g)]), R))
        if (X = "array" === GQ("object", "number", Y) ? Y : [Y], this.A) g(this.A);
        else try {
            D = !this.L.length, G = [], U(0, [Xq, G, X], this, 3), U(0, [gx, g, G], this, 6), M && !D || M$(true, M, true, false, this)
        } catch (v) {
            z("~", 35, 0, v, this), g(this.A)
        }
        return ((R ^ 21) & 5 || (m = a = function() {
            if (D.h == D) {
                if (D.O) {
                    var v = [Ag, G, X, void 0, H, A, arguments];
                    if (Y == g) var e = M$(true, false, (U(0, v, D, 11), false), false, D);
                    else if (Y == M) {
                        var B = !D.L.length;
                        U(0, v, D, 18), B && M$(true, false, false, false, D)
                    } else e = $D(424, v, 29, D);
                    return e
                }
                H && A && H.removeEventListener(A, a, q$)
            }
        }), R ^ 47) >> 4 || (A = G & M, H = SX, D = [-3, -76, -36, 8, -24, -56, D, 27, 67, -33], S = Rb[X.F](X.Hp), S[X.F] = function(v) {
            A = (q = (A += 6 + M * G, v), -1 - ~A) - (A & -8)
        }, S.concat = function(v, e, B, N) {
            return (v = (q = (e = -(B = Y % 16 + 1, B) * q - 108 * Y * Y * q + D[A + 11 & M] * Y * B + 3 * Y * Y * B + A + 36 * q * q - -2736 * Y * q + (H() | 0) * B - 252 * q, void 0), D[e]), D[(N = A + 53, -1 - ~N + (~N ^ M) - (N | -8)) + (g * (G | g) - -2 + ~(G | g) + (~G ^ g))] = v, D)[A + (G & g)] = -76, v
        }, m = S), m
}
                                    

#18 JavaScript::Eval (size: 22, repeated: 1) - SHA256: da62b929925ecaecbafafefeb45aa9a75c431f4e84d07cc7dc4a72aae0e2dfe6

                                        0,
function(D) {
    HO(D, 1)
}
                                    

#19 JavaScript::Eval (size: 19, repeated: 1) - SHA256: 5421715bbdaf2550e31d10fc28d444310a8fe7147bbddecf0abb490358a1553b

                                        /.*\d:\d\d | \d+$/g
                                    

#20 JavaScript::Eval (size: 37168, repeated: 1) - SHA256: 07ed9c54fe628609596ca698c6f4df9d53562807c5ff20430df3a868eeb183c1

                                        //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjogMywic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiICJdLCJuYW1lcyI6WyJjbG9zdXJlRHluYW1pY0J1dHRvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEifQ==
(function() {
    var J = function(Y, G, R, g, M) {
            return (Y | ((Y | 4) >> 4 || (G.j ? M = YD(G, G.V) : (g = ob(8, true, G, 8), g & 128 && (g ^= 128, R = ob(8, true, G, 2), g = (g << 2) + (R | 0)), M = g)), 8)) == Y && (g = Rb[G.F](G.YW), g[G.F] = function() {
                return R
            }, g.concat = function(X) {
                R = X
            }, M = g), M
        },
        d = function(Y, G, R, g, M, X, D, H, A, q, S, a, m) {
            if ((R & 70) == (2 == ((R ^ 70) & 7) && (m = (D = G[Y] << 24 | G[(Y | 0) + 1] << 16, X = G[-2 * ~Y + (~Y ^ 2) + g * (~Y & 2) + (Y | -3)] << M, -~D + (D ^ X) + (~D | X)) | G[-4 * ~(Y & g) + -8 + g * (Y ^ g) + 2 * (~Y | g)]), R))
                if (X = "array" === GQ("object", "number", Y) ? Y : [Y], this.A) g(this.A);
                else try {
                    D = !this.L.length, G = [], U(0, [Xq, G, X], this, 3), U(0, [gx, g, G], this, 6), M && !D || M$(true, M, true, false, this)
                } catch (v) {
                    z("~", 35, 0, v, this), g(this.A)
                }
                return ((R ^ 21) & 5 || (m = a = function() {
                    if (D.h == D) {
                        if (D.O) {
                            var v = [Ag, G, X, void 0, H, A, arguments];
                            if (Y == g) var e = M$(true, false, (U(0, v, D, 11), false), false, D);
                            else if (Y == M) {
                                var B = !D.L.length;
                                U(0, v, D, 18), B && M$(true, false, false, false, D)
                            } else e = $D(424, v, 29, D);
                            return e
                        }
                        H && A && H.removeEventListener(A, a, q$)
                    }
                }), R ^ 47) >> 4 || (A = G & M, H = SX, D = [-3, -76, -36, 8, -24, -56, D, 27, 67, -33], S = Rb[X.F](X.Hp), S[X.F] = function(v) {
                    A = (q = (A += 6 + M * G, v), -1 - ~A) - (A & -8)
                }, S.concat = function(v, e, B, N) {
                    return (v = (q = (e = -(B = Y % 16 + 1, B) * q - 108 * Y * Y * q + D[A + 11 & M] * Y * B + 3 * Y * Y * B + A + 36 * q * q - -2736 * Y * q + (H() | 0) * B - 252 * q, void 0), D[e]), D[(N = A + 53, -1 - ~N + (~N ^ M) - (N | -8)) + (g * (G | g) - -2 + ~(G | g) + (~G ^ g))] = v, D)[A + (G & g)] = -76, v
                }, m = S), m
        },
        Q = function(Y, G, R, g, M, X, D, H, A, q, S, a, m) {
            if (1 == (Y >> 1 & 7))
                if (D = M.C.U[String(g)]) {
                    for (H = !(q = (D = D.concat(), 0), 0); q < D.length; ++q)(A = D[q]) && !A.H && A.capture == X && (a = A.hb || A.src, S = A.listener, A.Y && ab(7, 3, G, A, M.C), H = false !== S.call(a, R) && H);
                    m = H && !R.defaultPrevented
                } else m = true;
            if ((Y - 5 ^ 26) >= Y && (Y - 3 | 34) < Y)
                for (D in X = G, g.U) {
                    for (M = (H = g.U[D], G); M < H.length; M++) ++X, h(32, H[M], R);
                    delete(g.T--, g).U[D]
                }
            return 3 == ((((Y + 9 & 60) < Y && (Y - 3 ^ 25) >= Y && (this.W = k.document || document), Y) ^ 17) >> 4 || ("function" === typeof G ? m = G : (G[mE] || (G[mE] = function(v) {
                return G.handleEvent(v)
            }), m = G[mE])), (Y ^ 50) & 7) && (X = U(G, g, R, 32), (M = 0 <= X) && Array.prototype.splice.call(R, X, G), m = M), m
        },
        jX = function(Y, G, R, g, M, X, D, H, A) {
            if (((14 > (G << 2 & 16) && 28 <= G >> 1 && (this.h = R), 4) == G - 9 >> 4 && (A = function() {}, M = void 0, X = Jg(R, function(q) {
                    A && (g && vD(g), M = q, A(), A = void 0)
                }, !!g)[0], H = {
                    invoke: function(q, S, a, m, v) {
                        function e() {
                            M(function(B) {
                                vD(function() {
                                    q(B)
                                })
                            }, a)
                        }
                        if (!S) return m = X(a), q && q(m), m;
                        M ? e() : (v = A, A = function() {
                            v(), vD(e)
                        })
                    }
                }), 2) == (G >> 1 & Y))
                if (X = g.length, X > R) {
                    for (M = (D = Array(X), R); M < X; M++) D[M] = g[M];
                    H = D
                } else H = [];
            return H
        },
        UD = function(Y, G, R, g, M, X, D, H, A) {
            return (((G + 5 & 74) >= G && (G + 4 ^ 8) < G && (R.H ? X = true : (D = new u(g, this), M = R.listener, H = R.hb || R.src, R.Y && b(null, 28, "on", 1, R), X = M.call(H, D)), A = X), G | 24) == G && (R.az = function() {
                return R.Pp ? R.Pp : R.Pp = new R
            }, R.Pp = void 0), 5 > (G ^ Y) && 0 <= (G ^ 5) >> 4) && (X = g, X = (D = X << 13, (X | D) - 2 * (X & D) - ~X + (~X | D)), X ^= X >> 17, X = (H = X << 5, ~(X & H) - 2 * ~X + ~(X | H) + 2 * (~X & H)), (X &= M) || (X = 1), A = R ^ X), A
        },
        zQ = function(Y, G, R, g, M, X, D, H, A, q, S) {
            if (18 > (g ^ 2) && 3 <= ((g ^ 60) & 7))
                if (G.classList) Array.prototype.forEach.call(R, function(a, m) {
                    G.classList ? G.classList.add(a) : eX(63, 26, 0, Y, a, G) || (m = b(null, 64, Y, "", G), h(25, G, Y, m + (0 < m.length ? " " + a : a)))
                });
                else {
                    for (X in M = (((D = {}, Array).prototype.forEach.call(T(5, Y, G), function(a) {
                            D[a] = true
                        }), Array.prototype).forEach.call(R, function(a) {
                            D[a] = true
                        }), ""), D) M += 0 < M.length ? " " + X : X;
                    h(26, G, Y, M)
                }
            if (2 == g + 5 >> 3) {
                for (H = X = 0; H < G.length; H++) X += G.charCodeAt(H), X += X << 10, X ^= X >> 6;
                S = (A = new Number((q = (X += X << 3, X ^= X >> 11, X + (X << 15)) >>> 0, q & (D = 1 << R, -~(D & 1) + -4 - ~(D | 1)))), A[0] = (q >>> R) % M, A)
            }
            return g + 9 & 13 || (S = Rb[R](Rb.prototype, {
                console: G,
                stack: G,
                pop: G,
                floor: G,
                propertyIsEnumerable: G,
                document: G,
                length: G,
                call: G,
                prototype: G,
                parent: G,
                splice: G,
                replace: G
            })), S
        },
        b = function(Y, G, R, g, M, X, D, H, A, q) {
            if (1 == ((G - 5 | 20) >= G && (G - 1 ^ 28) < G && (q = (X = L[R.substring(0, 3) + "_"]) ? X(R.substring(3), g, M) : dx(16, g, 3, R)), G - 2 & 11))
                for (H = X.length, A = "string" === typeof X ? X.split(g) : X, D = R; D < H; D++) D in A && M.call(void 0, A[D], D, X);
            return ((G & 60) == G && "number" !== typeof M && M && !M.H && ((X = M.src) && X[iM] ? ab(7, 18, g, M, X.C) : (D = M.proxy, H = M.type, X.removeEventListener ? X.removeEventListener(H, D, M.capture) : X.detachEvent ? X.detachEvent(dx(16, H, 18, R), D) : X.addListener && X.removeListener && X.removeListener(D), N$--, (A = T(72, X)) ? (ab(7, 19, g, M, A), 0 == A.T && (A.src = Y, X[xD] = Y)) : h(56, M, true))), G << 1 & 15) || (q = typeof M.className == R ? M.className : M.getAttribute && M.getAttribute("class") || g), q
        },
        h = function(Y, G, R, g, M, X, D, H) {
            return (Y - 2 ^ (Y << (4 == (3 == ((Y | 88) == Y && (X = typeof M, D = X != G ? X : M ? Array.isArray(M) ? "array" : X : "null", H = D == R || D == G && typeof M.length == g), (Y | 3) >> 3) && (typeof G.className == R ? G.className = g : G.setAttribute && G.setAttribute("class", g)), Y - 9 & 14) && (H = !!(g = G.X, -~(g & R) + (g & ~R) + (~g | R))), 1) & 15 || (G.H = R, G.listener = null, G.proxy = null, G.src = null, G.hb = null), 3)) < Y && (Y + 7 & 26) >= Y && (this.type = R, this.currentTarget = this.target = G, this.defaultPrevented = this.l = false), H
        },
        kD = function(Y, G, R, g, M, X, D, H) {
            if (g - 9 << 1 >= (1 == (g >> 2 & 7) && (M = V(Y, R, G), -~(M & 128) - -1 + 2 * (M ^ 128) + 2 * (~M ^ 128) && (M = (M | 0) + 127 - (M | 127) | V(Y, R, G) << 7), H = M), g) && (g - 1 | 16) < g) {
                for (X = (D = J(3, G), 0); 0 < M; M--) X = X << Y | V(Y, R, G);
                p(G, D, X)
            }
            return H
        },
        T = function(Y, G, R, g, M, X, D, H, A, q, S, a, m) {
            if (2 == (1 == (Y ^ 70) >> 3 && (R = G[xD], m = R instanceof f ? R : null), Y << 1 & 15)) {
                if ((X.h = (A = (D = (S = (R || X.r7++, 0) < X.ZV && X.U6 && X.cp && 1 >= X.p4 && !X.j && !X.R && (!R || 1 < X.yH - M) && 0 == document.hidden, (q = X.r7 == G) || S) ? X.G() : X.D, H = D - X.D, H) >> 14, X.g && (X.g ^= A * (H << 2)), X.zl += A, A || X.h), q) || S) X.r7 = 0, X.D = D;
                !S || D - X.S < X.ZV - (g ? 255 : R ? 5 : 2) ? m = false : (X.yH = M, a = Z(X, R ? 223 : 166), p(X, 166, X.s), X.L.push([Q1, a, R ? M + 1 : M]), X.R = vD, m = true)
            }
            return ((Y | 56) == Y && (sD.call(this), this.C = new f(this), this.w7 = this, this.tb = null), Y + 4 >> 4) || (m = R.classList ? R.classList : b(null, 72, G, "", R).match(/\S+/g) || []), m
        },
        nz = function(Y, G, R, g, M, X, D, H, A, q, S, a, m) {
            if (!(Y << 1 & 7))
                if (Array.isArray(H))
                    for (a = R; a < H.length; a++) nz(12, null, 0, g, M, X, D, H[a]);
                else S = O(20, G, M) ? !!M.capture : !!M, X = Q(21, X), D && D[iM] ? D.C.remove(String(H), X, S, g) : D && (q = T(74, D)) && (A = q.jv(g, H, S, X)) && b(null, 12, "on", 1, A);
            return Y + 4 >> 4 || (this.src = G, this.T = 0, this.U = {}), m
        },
        O = function(Y, G, R, g, M, X, D, H, A) {
            if (4 == (Y - 3 & 15)) a: {
                for (H = G; H < M.length; ++H)
                    if (D = M[H], !D.H && D.listener == X && D.capture == !!g && D.hb == R) {
                        A = H;
                        break a
                    }
                A = -1
            }
            if ((Y | (Y << 2 & 13 || (g = typeof R, A = "object" == g && R != G || "function" == g), 56)) == Y && (A = Math.floor(this.G())), !(Y + 3 >> 4)) {
                if (!R) throw Error("Invalid class name " + R);
                if ("function" !== typeof G) throw Error("Invalid decorator function " + G);
            }
            return A
        },
        ab = function(Y, G, R, g, M, X, D, H, A, q, S) {
            if (1 == (G - Y & Y))
                if (Array.isArray(D))
                    for (q = R; q < D.length; q++) ab(7, 16, 0, g, null, X, D[q], H, A);
                else A = Q(16, A), g && g[iM] ? g.C.add(String(D), A, true, O(40, M, X) ? !!X.capture : !!X, H) : y(9, false, g, null, D, X, A, H, true);
            return 1 == (G >> 1 & Y) && (X = g.type, X in M.U && Q(57, R, M.U[X], g) && (h(40, g, true), 0 == M.U[X].length && (delete M.U[X], M.T--))), S
        },
        dx = function(Y, G, R, g, M) {
            return (2 == ((R | ((R ^ Y) & 6 || G.L4 && G.L4.forEach(g, void 0), 4)) & 3) && (M = G in uM ? uM[G] : uM[G] = g + G), 2) <= (R + 9 & 7) && 2 > (R >> 2 & 4) && (G(function(X) {
                X(g)
            }), M = [function() {
                return g
            }]), M
        },
        Cz = function(Y, G, R, g, M, X, D) {
            return (19 <= R - 2 && 2 > (R << Y & 8) && (D = !!(X = M.pK, (X | 0) - G * ~(X & g) + G * ~X + (X & ~g))), R - 9 << Y) < R && (R + 6 & 30) >= R && c.call(this, G, g || W.az(), M), D
        },
        TQ = function(Y, G, R, g, M, X, D, H, A) {
            if (-86 <= G << 1 && 2 > (G >> 1 & 12)) {
                if (g = window.btoa) {
                    for (M = (D = "", 0); M < R.length; M += 8192) D += String.fromCharCode.apply(null, R.slice(M, M + 8192));
                    X = g(D).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")
                } else X = void 0;
                H = X
            }
            return ((G | (2 == G - 3 >> 3 && (H = R && R.parentNode ? R.parentNode.removeChild(R) : null), Y)) == G && (H = R), 12 <= G + 3) && 17 > (G ^ 46) && (A = function(q) {
                return R.call(A.src, A.listener, q)
            }, R = bM, H = A), H
        },
        eX = function(Y, G, R, g, M, X, D, H, A) {
            return (((G & 60) == (G << 1 & (3 == G - 2 >> 3 && (X.classList ? D = X.classList.contains(M) : (H = T(7, g, X), D = U(1, M, H, 33) >= R), A = D), 13) || (this.listener = R, this.proxy = null, this.src = M, this.type = g, this.capture = !!X, this.hb = D, this.key = ++Lz, this.Y = this.H = false), G) && (D.classList ? D.classList.remove(X) : eX(63, 27, M, g, X, D) && h(28, D, g, Array.prototype.filter.call(T(6, g, D), function(q) {
                return q != X
            }).join(R))), G) + 7 & Y) < G && (G - 6 | 19) >= G && (this.C4 = this.C4), A
        },
        r = function(Y, G, R, g, M, X, D, H, A, q, S) {
            if (5 <= (R + 7 & 15) && 8 > ((R ^ 47) & 8))
                if (D && D.once) ab(7, 8, Y, X, g, D, M, H, G);
                else if (Array.isArray(M))
                for (A = Y; A < M.length; A++) r(0, G, 30, null, M[A], X, D, H);
            else G = Q(20, G), X && X[iM] ? X.C.add(String(M), G, false, O(28, g, D) ? !!D.capture : !!D, H) : y(8, false, X, null, M, D, G, H, false);
            if (!((R ^ 67) & 14)) a: {
                switch (D) {
                    case 1:
                        S = X ? "disable" : "enable";
                        break a;
                    case 2:
                        S = X ? "highlight" : "unhighlight";
                        break a;
                    case g:
                        S = X ? "activate" : "deactivate";
                        break a;
                    case G:
                        S = X ? "select" : "unselect";
                        break a;
                    case M:
                        S = X ? "check" : "uncheck";
                        break a;
                    case Y:
                        S = X ? "focus" : "blur";
                        break a;
                    case 64:
                        S = X ? "open" : "close";
                        break a
                }
                throw Error("Invalid component state");
            }
            if (!((R | 64) == R && (q = function() {}, q.prototype = G.prototype, Y.u = G.prototype, Y.prototype = new q, Y.prototype.constructor = Y, Y.GV = function(a, m, v) {
                    for (var e = Array(arguments.length - g), B = g; B < arguments.length; B++) e[B - g] = arguments[B];
                    return G.prototype[m].apply(a, e)
                }), (R | 1) >> 4)) {
                if (!(V1.call(this, G), D = Y)) {
                    for (H = this.constructor; H;) {
                        if (X = pz(1, H, 10), A = ED[X]) break;
                        H = (M = Object.getPrototypeOf(H.prototype)) && M.constructor
                    }
                    D = A ? "function" === typeof A.az ? A.az() : new A : null
                }
                this.v = D
            }
            return S
        },
        Ib = function(Y, G, R, g, M, X, D, H, A) {
            if (2 == (R ^ 30) >> (2 == ((R ^ 49) & 15) && (fz.call(this), G || Z$ || (Z$ = new Fq), this.L4 = null, this.ln = false, this.Iz = this.K4 = this.Ab = null, this.VH = void 0, this.O6 = null), 3)) a: {
                for (D in M)
                    if (X.call(void 0, M[D], D, M)) {
                        A = g;
                        break a
                    }
                A = G
            }
            if ((R - 7 | 51) >= R && (R + 5 & 62) < R) {
                for (X = (H = D = 0, []); H < G.length; H++)
                    for (M = M << g | G[H], D += g; 7 < D;) D -= 8, X.push(M >> D & 255);
                A = X
            }
            return R + 9 & 14 || (A = Cz(1, 2, 26, X, g) && h(62, g, X) != M && (!(D = g.hm, (D | X) - -1 - (~D & X) + (~D | X)) || g.dispatchEvent(r(Y, G, 18, 4, 16, M, X))) && !g.C4), A
        },
        U = function(Y, G, R, g, M, X) {
            if (!(g >> (25 > g - 3 && 6 <= ((g | 5) & 7) && R.L.splice(Y, Y, G), 1) & 7)) a: if ("string" === typeof R) X = "string" !== typeof G || G.length != Y ? -1 : R.indexOf(G, 0);
                else {
                    for (M = 0; M < R.length; M++)
                        if (M in R && R[M] === G) {
                            X = M;
                            break a
                        }
                    X = -1
                }
            return X
        },
        z = function(Y, G, R, g, M, X, D, H) {
            return (2 == G - 9 >> (G << 2 & ((G & 109) == G && (R.classList ? Array.prototype.forEach.call(g, function(A) {
                eX(63, 12, " ", "string", 0, A, R)
            }) : h(27, R, "string", Array.prototype.filter.call(T(3, "string", R), function(A) {
                return !(0 <= U(1, A, g, 16))
            }).join(" "))), 15) || (OD.call(this, R ? R.type : ""), this.relatedTarget = this.currentTarget = this.target = null, this.button = this.screenY = this.screenX = this.clientY = this.clientX = this.offsetY = this.offsetX = 0, this.key = "", this.charCode = this.keyCode = 0, this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = false, this.state = null, this.pointerId = 0, this.pointerType = "", this.i = null, R && (M = this.type = R.type, D = R.changedTouches && R.changedTouches.length ? R.changedTouches[0] : null, this.target = R.target || R.srcElement, this.currentTarget = g, X = R.relatedTarget, X || ("mouseover" == M ? X = R.fromElement : "mouseout" == M && (X = R.toElement)), this.relatedTarget = X, D ? (this.clientX = void 0 !== D.clientX ? D.clientX : D.pageX, this.clientY = void 0 !== D.clientY ? D.clientY : D.pageY, this.screenX = D.screenX || 0, this.screenY = D.screenY || 0) : (this.offsetX = R.offsetX, this.offsetY = R.offsetY, this.clientX = void 0 !== R.clientX ? R.clientX : R.pageX, this.clientY = void 0 !== R.clientY ? R.clientY : R.pageY, this.screenX = R.screenX || 0, this.screenY = R.screenY || 0), this.button = R.button, this.keyCode = R.keyCode || 0, this.key = R.key || "", this.charCode = R.charCode || ("keypress" == M ? R.keyCode : 0), this.ctrlKey = R.ctrlKey, this.altKey = R.altKey, this.shiftKey = R.shiftKey, this.metaKey = R.metaKey, this.pointerId = R.pointerId || 0, this.pointerType = "string" === typeof R.pointerType ? R.pointerType : lM[R.pointerType] || "", this.state = R.state, this.i = R, R.defaultPrevented && u.u.preventDefault.call(this))), 3) && (H = Math.floor(this.n4 + (this.G() - this.S))), (G & 99) == G) && (M.A = ((M.A ? M.A + Y : "E:") + g.message + ":" + g.stack).slice(R, 2048)), H
        },
        pz = function(Y, G, R, g, M, X, D, H, A, q, S) {
            return 2 == (R << Y & (2 == (R + 7 & ((R | 8) == R && (S = Object.prototype.hasOwnProperty.call(G, y1) && G[y1] || (G[y1] = ++WD)), 6)) && (g.QH(function(a) {
                X = a
            }, G, M), S = X), 7)) && (Array.isArray(X) && (X = X.join(" ")), q = "aria-" + D, "" === X || void 0 == X ? (rx || (H = {}, rx = (H.atomic = false, H.autocomplete = G, H.dropeffect = G, H.haspopup = false, H.live = "off", H.multiline = false, H.multiselectable = false, H.orientation = "vertical", H.readonly = false, H.relevant = "additions text", H.required = false, H.sort = G, H[g] = false, H.disabled = false, H.hidden = false, H.invalid = "false", H)), A = rx, D in A ? M.setAttribute(q, A[D]) : M.removeAttribute(q)) : M.setAttribute(q, X)), S
        },
        y = function(Y, G, R, g, M, X, D, H, A, q, S, a, m, v) {
            if ((Y | (Y - 2 & 3 || (p(g, G, R), R[tg] = 2796), 8)) == Y) {
                if (!M) throw Error("Invalid event type");
                if (m = (a = O(24, ((q = T(75, R)) || (R[xD] = q = new f(R)), g), X) ? !!X.capture : !!X, q.add(M, D, A, a, H)), !m.proxy) {
                    if (((S = TQ(72, 40), m.proxy = S, S).src = R, S.listener = m, R).addEventListener) Kz || (X = a), void 0 === X && (X = G), R.addEventListener(M.toString(), S, X);
                    else if (R.attachEvent) R.attachEvent(dx(16, M.toString(), 22, "on"), S);
                    else if (R.addListener && R.removeListener) R.addListener(S);
                    else throw Error("addEventListener and attachEvent are unavailable.");
                    N$++
                }
            }
            return v
        },
        wx = function(Y, G, R, g, M) {
            if (3 == Y.length) {
                for (M = 0; 3 > M; M++) G[M] += Y[M];
                for (R = (g = [13, 8, 13, 12, 16, 5, 3, 10, 15], 0); 9 > R; R++) G[3](G, R % 3, g[R])
            }
        },
        Yu = function(Y, G) {
            for (var R, g, M = 1; M < arguments.length; M++) {
                for (g in R = arguments[M], R) Y[g] = R[g];
                for (var X = 0; X < PD.length; X++) g = PD[X], Object.prototype.hasOwnProperty.call(R, g) && (Y[g] = R[g])
            }
        },
        OD = function(Y, G) {
            return h.call(this, 3, G, Y)
        },
        or = function() {
            return b.call(this, null, 6)
        },
        DO = function(Y, G, R, g) {
            return jX.call(this, 7, 76, Y, G, R, g)
        },
        Rr = function(Y, G, R) {
            p(R, Y, ((R.qE.push(R.O.slice()), R.O)[Y] = void 0, G))
        },
        mS = function(Y, G, R, g, M, X) {
            for (g = (Y.YW = (Y.Hp = zQ("string", ((Y.Oo = Y[gx], Y.kl = Xu, Y).j2 = GJ, {get: function() {
                        return this.concat()
                    }
                }), Y.F, 23), Rb[Y.F](Y.Hp, {
                    value: {
                        value: {}
                    }
                })), 0), X = []; 128 > g; g++) X[g] = String.fromCharCode(g);
            M$(true, true, (U((U(0, (y(22, (y(6, 230, function(D, H, A, q, S) {
                for (q = (H = kD(8, D, (S = J(7, D), true), 6), A = [], 0); q < H; q++) A.push(V(8, true, D));
                p(D, S, A)
            }, (p(Y, (y(18, (y(6, (y(6, 52, function(D, H, A, q, S, a, m, v, e) {
                T(17, 4, true, false, H, D) || (m = At(true, 0, D.h, 2), e = m.X2, v = m.DV, S = m.Rz, a = m.o, A = a.length, q = 0 == A ? new e[S] : 1 == A ? new e[S](a[0]) : 2 == A ? new e[S](a[0], a[1]) : 3 == A ? new e[S](a[0], a[1], a[2]) : 4 == A ? new e[S](a[0], a[1], a[2], a[3]) : 2(), p(D, v, q))
            }, (y(34, 131, (y(6, 272, (y(22, (p(Y, 397, (y(38, (p(Y, 194, (y(6, (y(34, 99, ((y(18, 186, (new(p(Y, (p(((y(22, 443, (y((y(18, 214, function(D) {
                Mu(D, 4)
            }, (Y.uI = (y(22, (p(Y, (p(Y, 361, (Y.KK = (p((y(34, (y(18, 51, (p(Y, 482, (p(Y, 448, (p(Y, (y(18, (y(6, (y(34, 140, function(D) {
                HO(D, 1)
            }, (y(38, (y(38, 402, function(D, H, A, q, S) {
                (H = Z((S = 0 != (q = J(3, (A = J(6, D), D)), Z)(D, A), D), q), S) && p(D, 166, H)
            }, (y(38, (y(22, 139, function(D, H, A, q, S, a) {
                p(D, (A = Z(D, (a = Z(D, (S = (H = (q = J(5, D), J(3, D)), J(3, D)), q)), H)), S), +(a == A))
            }, (p(Y, (p(Y, 166, (Y.fK = (Y.h = (((Y.yH = 8001, Y).V = ((Y.N = [], Y).Gl = [], (Y.A = void 0, Y).g = void 0, Y.L = [], (Y.vp = (M = window.performance || {}, void 0), Y.p4 = 0, Y).n4 = (Y.qE = [], Y.g7 = (Y.O = [], 25), Y.NE = false, 0), void 0), Y).S = (Y.ev = function(D) {
                return jX.call(this, 7, 64, D)
            }, Y.F2 = [], Y.Z = void 0, 0), Y.zl = 1, Y.cp = (Y.s = 0, false), Y.U6 = (Y.j = (Y.ZV = (Y.r7 = void 0, 0), void 0), !(Y.PG = 0, 1)), Y.D = (Y.R = null, 0), Y), M.timeOrigin || (M.timing || {}).navigationStart) || 0, 0)), 223), 0), Y)), 115), function(D, H, A, q) {
                p((q = (H = (A = J(5, D), J)(5, D), J)(6, D), D), q, Z(D, A) || Z(D, H))
            }, Y), Y)), 328), function(D, H, A, q) {
                p(D, (H = J(3, (q = V(8, true, (A = J(6, D), D)), D)), H), Z(D, A) >>> q)
            }, Y), y(18, 253, function(D) {
                Mu(D, 3)
            }, Y), Y)), 170), function(D, H) {
                Rr(166, (H = Z(D, J(7, D)), H), D.h)
            }, Y), 5), function() {}, Y), 208), 0), [0, 0, 0])), [])), function(D, H, A, q) {
                if (A = D.qE.pop()) {
                    for (q = V(8, true, D); 0 < q; q--) H = J(7, D), A[H] = D.O[H];
                    (A[370] = (A[482] = D.O[482], D.O[370]), D).O = A
                } else p(D, 166, D.s)
            }), Y), 187), function(D) {
                HO(D, 4)
            }, Y), Y), 465, 0), 0), k)), 228), 394), 298), function(D) {
                kD(8, D, true, 18, 4)
            }, Y), 0), Y)), 34), 134, function(D, H, A, q, S, a, m, v) {
                S = Z(D, (A = Z((H = (a = J(6, (v = J(6, (m = J(5, (q = J(7, D), D)), D)), D)), Z(D, a)), D), m), v)), p(D, q, d(H, A, 7, 2, 1, S, D))
            }, Y), function(D, H, A, q, S) {
                p(D, (S = GQ("object", (H = Z(D, (A = J(3, (q = J(5, D), D)), q)), "number"), H), A), S)
            }), Y), y)(22, 282, function(D, H, A, q, S) {
                !T(49, 4, true, false, H, D) && (q = At(true, 0, D, 2), S = q.Rz, A = q.X2, D.h == D || S == D.ev && A == D) && (p(D, q.DV, S.apply(A, q.o)), D.D = D.G())
            }, Y), Y), 370, 2048), 309), []), $u)("Submit"), function(D, H, A, q, S, a) {
                p(D, (S = Z(D, (q = Z(D, (H = J(5, (A = J(3, (a = J(5, D), D)), D)), A)), a)), H), S in q | 0)
            }), Y), p)(Y, 29, {}), function(D, H, A) {
                (A = Z((H = J(6, D), D.h), H), A[0]).removeEventListener(A[1], A[2], q$)
            }), Y), 404), function(D, H, A, q, S, a, m, v, e, B) {
                0 !== (B = (m = Z(D, (q = (v = (e = J(6, (a = J(6, (S = (H = J(3, D), J(7, D)), D)), D)), Z)(D, a), Z(D.h, H)), e)), Z)(D, S), q) && (A = d(1, v, 5, 2, 1, m, D, q, B), q.addEventListener(B, A, q$), p(D, 208, [q, B, A]))
            }, Y), qu(4))), 14), function(D, H, A, q, S, a) {
                p(D, (S = (A = Z((q = J(6, (H = J((a = J(7, D), 3), D), D)), D), H), Z(D, a)), q), S[A])
            }, Y), Y)), 226), function(D, H, A, q, S, a, m) {
                for (A = (H = (S = Z(D, (m = (a = kD(8, D, true, (q = J(5, D), 7)), ""), 472)), S.length), 0); a--;) A = ((A | 0) + (kD(8, D, true, 5) | 0)) % H, m += X[S[A]];
                p(D, q, m)
            }, Y), function(D, H, A, q) {
                T(25, 4, true, false, H, D) || (q = J(5, D), A = J(6, D), p(D, A, function(S) {
                    return eval(S)
                }(gj(Z(D.h, q)))))
            }), Y), function(D, H, A) {
                p(D, (H = (A = J(6, D), J)(7, D), H), "" + Z(D, A))
            }), Y), Y)), 165), function(D, H, A, q, S) {
                p(D, (A = Z(D, (S = (H = J(6, (q = J(3, D), D)), Z)(D, H), q)), H), S + A)
            }, Y), 114), function(D, H, A, q, S, a, m, v, e, B, N, n, F, C) {
                if (!T(41, 4, true, true, H, D)) {
                    if ("object" == GQ("object", "number", (n = Z(D, (B = Z(D, (v = Z(D, (C = (q = J(6, (A = J(5, (a = J(7, (S = J(6, D), D)), D)), D)), Z(D, A)), a)), q)), S)), n))) {
                        for (e in m = [], n) m.push(e);
                        n = m
                    }
                    for (C = (F = n.length, N = 0, 0) < C ? C : 1; N < F; N += C) v(n.slice(N, 3 * (N & C) + ~(N & C) - (~N ^ C)), B)
                }
            }, Y), 417), [165, 0, 0]), Y)), Y.d6 = 0, 398), function(D, H, A, q, S, a) {
                (S = J(3, (H = J(5, (a = J(7, D), D)), D)), D.h) == D && (q = Z(D, H), A = Z(D, S), Z(D, a)[q] = A, 463 == a && (D.Z = void 0, 2 == q && (D.g = ob(8, false, D, 32), D.Z = void 0)))
            }, Y), y(34, 129, function(D, H, A, q, S, a, m, v, e, B, N, n, F, C, I, BD, HD) {
                function l(x, E) {
                    for (; F < x;) e |= V(8, true, D) << F, F += 8;
                    return e >>= (F -= x, E = e & (1 << x) - 1, x), E
                }
                for (S = (m = (a = (n = (F = (B = J(3, D), e = 0), N = l(3), ~N - 3 * ~(N | 1) + (N & -2) + 2 * (~N ^ 1)), l)(5), []), C = 0); C < a; C++) HD = l(1), m.push(HD), S += HD ? 0 : 1;
                for (v = (A = (BD = ((S | 0) - 1).toString(2).length, []), 0); v < a; v++) m[v] || (A[v] = l(BD));
                for (H = 0; H < a; H++) m[H] && (A[H] = J(5, D));
                for (q = [], I = n; I--;) q.push(Z(D, J(3, D)));
                y(38, B, function(x, E, D$, cD, hg) {
                    for (cD = (hg = (E = [], 0), []); hg < a; hg++) {
                        if (!(D$ = A[hg], m)[hg]) {
                            for (; D$ >= E.length;) E.push(J(3, x));
                            D$ = E[D$]
                        }
                        cD.push(D$)
                    }
                    x.V = J(24, x, (x.j = J(26, x, q.slice()), cD))
                }, D)
            }, Y), U(0, [tg], Y, 14), [SG, R]), Y, 10), 0), [ar, G], Y, 7), true), false, Y)
        },
        GQ = function(Y, G, R, g, M) {
            if ((M = typeof R, M) == Y)
                if (R) {
                    if (R instanceof Array) return "array";
                    if (R instanceof Object) return M;
                    if (g = Object.prototype.toString.call(R), "[object Window]" == g) return Y;
                    if ("[object Array]" == g || typeof R.length == G && "undefined" != typeof R.splice && "undefined" != typeof R.propertyIsEnumerable && !R.propertyIsEnumerable("splice")) return "array";
                    if ("[object Function]" == g || "undefined" != typeof R.call && "undefined" != typeof R.propertyIsEnumerable && !R.propertyIsEnumerable("call")) return "function"
                } else return "null";
            else if ("function" == M && "undefined" == typeof R.call) return Y;
            return M
        },
        vO = function(Y, G, R, g, M) {
            if (g = (M = Y, k.trustedTypes), !g || !g.createPolicy) return M;
            try {
                M = g.createPolicy(G, {
                    createHTML: Jt,
                    createScript: Jt,
                    createScriptURL: Jt
                })
            } catch (X) {
                if (k.console) k.console[R](X.message)
            }
            return M
        },
        jG = function(Y, G) {
            return z.call(this, "~", 5, Y, G)
        },
        t = function(Y, G, R) {
            R = this;
            try {
                mS(this, Y, G)
            } catch (g) {
                z("~", 3, 0, g, this), Y(function(M) {
                    M(R.A)
                })
            }
        },
        Jt = function(Y) {
            return TQ.call(this, 72, 72, Y)
        },
        f = function(Y) {
            return nz.call(this, 3, Y)
        },
        Uj = function(Y, G, R, g, M, X, D, H, A, q) {
            for (R = (D = (g = (H = Y.replace(/\r\n/g, "\n"), 0), []), 0); g < H.length; g++) A = H.charCodeAt(g), 128 > A ? D[R++] = A : (A < G ? D[R++] = (X = A >> 6, -~(X | 192) + (X & -193) + (~X | 192)) : (55296 == (A | 64512) - ~A + -64513 - 2 * (A & -64513) && g + 1 < H.length && 56320 == (H.charCodeAt(g + 1) & 64512) ? (A = 65536 + (1023 - (~A & 1023) << 10) + (H.charCodeAt(++g) & 1023), D[R++] = A >> 18 | 240, D[R++] = (q = A >> 12, 63 - ~(q & 63) + -64) | 128) : D[R++] = A >> 12 | 224, D[R++] = A >> 6 & 63 | 128), D[R++] = (M = A & 63, 128 + ~(M & 128) - ~M));
            return D
        },
        eG = function(Y, G, R, g, M, X, D, H, A, q) {
            for (; g.L.length;) {
                A = (g.R = M, g.L.pop());
                try {
                    H = $D(X, A, Y, g)
                } catch (S) {
                    z("~", 34, 0, S, g)
                }
                if (G && g.R) {
                    q = g.R, q(function() {
                        M$(true, R, R, D, g)
                    });
                    break
                }
            }
            return H
        },
        c = function(Y, G, R, g, M, X, D, H) {
            return r.call(this, G, R, 5, Y, g, M, X, D, H)
        },
        $D = function(Y, G, R, g, M, X, D, H, A, q) {
            if ((X = G[0], X) == Xq) g.g7 = 25, g.I(G);
            else if (X == gx) {
                H = G[1];
                try {
                    A = g.A || g.I(G)
                } catch (S) {
                    z("~", 66, 0, S, g), A = g.A
                }
                H(A)
            } else if (X == Q1) g.I(G);
            else if (X == SG) g.I(G);
            else if (X == ar) {
                try {
                    for (M = 0; M < g.F2.length; M++) try {
                        q = g.F2[M], q[0][q[1]](q[2])
                    } catch (S) {}
                } catch (S) {}(0, G[1])(function(S, a) {
                    g.QH(S, true, a)
                }, (g.F2 = [], function(S) {
                    (U((S = !g.L.length, 0), [zJ], g, 15), S) && M$(true, true, false, false, g)
                }))
            } else {
                if (X == Ag) return D = G[2], p(g, Y, G[6]), p(g, R, D), g.I(G);
                X == zJ ? (g.O = null, g.Gl = [], g.N = []) : X == tg && "loading" === k.document.readyState && (g.R = function(S, a) {
                    function m() {
                        a || (a = true, S())
                    }
                    k.document.addEventListener((a = false, "DOMContentLoaded"), m, q$), k.addEventListener("load", m, q$)
                })
            }
        },
        dj = function(Y, G, R, g, M) {
            return eX.call(this, 63, 9, g, R, M, Y, G)
        },
        ih = function(Y, G, R, g, M, X, D, H) {
            if (!g.A) {
                g.p4++;
                try {
                    for (H = (M = void 0, X = g.s, 0); --G;) try {
                        if ((D = void 0, g).j) M = YD(g, g.j);
                        else {
                            if (H = Z(g, 166), H >= X) break;
                            M = (p(g, Y, H), D = J(5, g), Z(g, D))
                        }
                        T(33, 4, R, R, (M && M[zJ] & 2048 ? M(g, G) : BO([ht, 21, D], g, 0, 2048), G), g)
                    } catch (A) {
                        Z(g, 228) ? BO(A, g, 22, 2048) : p(g, 228, A)
                    }
                    if (!G) {
                        if (g.bn) {
                            ih(223, 383840374050, (g.p4--, false), g);
                            return
                        }
                        BO([ht, 33], g, 0, 2048)
                    }
                } catch (A) {
                    try {
                        BO(A, g, 22, 2048)
                    } catch (q) {
                        z("~", 67, 0, q, g)
                    }
                }
                g.p4--
            }
        },
        K = function(Y, G, R, g, M, X, D, H, A) {
            if (Y.h == Y)
                for (M = Z(Y, R), 194 == R ? (H = function(q, S, a, m, v, e) {
                        if (M.Sv != (m = ((e = M.length, e) ^ 4) + 2 * (~e ^ 4) - 2 * (~e | 4) >> 3, m)) {
                            S = (a = (m << 3) - 4, M.Sv = m, [0, 0, D[1], D[2]]);
                            try {
                                M.mZ = Nu(1419, 24, d(a, M, 12, 3, 8), d((a | 0) + 4, M, 20, 3, 8), S, 255, 8)
                            } catch (B) {
                                throw B;
                            }
                        }
                        M.push((v = M.mZ[e & 7], 1 + 2 * (v & ~q) - (~v ^ q) + 2 * (~v | q)))
                    }, D = Z(Y, 448)) : H = function(q) {
                        M.push(q)
                    }, g && H(~g - 2 * ~(g | 255) - (g ^ 255) + (g | -256)), X = G.length, A = 0; A < X; A++) H(G[A])
        },
        xu = function(Y, G, R, g, M, X, D, H) {
            try {
                H = Y[((G | 0) + 2) % 3], Y[G] = (X = (M = Y[G], g = Y[((G | 0) + 1) % 3], (M ^ g) - (~M ^ g) - 3 * (~M & g) + (~M | g)) - (H | 0), D = 1 == G ? H << R : H >>> R, (X | D) + ~X - (~X | D))
            } catch (A) {
                throw A;
            }
        },
        Nu = function(Y, G, R, g, M, X, D, H, A, q) {
            for (A = M[3] | (H = 0, 0), q = M[2] | 0; 14 > H; H++) g = g >>> D | g << G, g += R | 0, R = R << 3 | R >>> 29, A = A >>> D | A << G, g ^= q + Y, A += q | 0, A ^= H + Y, q = q << 3 | q >>> 29, R ^= g, q ^= A;
            return [R >>> G & X, R >>> 16 & X, R >>> D & X, R >>> 0 & X, g >>> G & X, g >>> 16 & X, g >>> D & X, g >>> 0 & X]
        },
        M$ = function(Y, G, R, g, M, X, D, H) {
            if (M.L.length) {
                M.cp = (M.U6 && 0(), M.U6 = Y, G);
                try {
                    X = M.G(), M.r7 = 0, M.S = X, M.D = X, D = eG(29, G, Y, M, null, 424, false), H = M.G() - M.S, M.n4 += H, H < (R ? 0 : 10) || 0 >= M.g7-- || (H = Math.floor(H), M.Gl.push(254 >= H ? H : 254))
                } finally {
                    M.U6 = g
                }
                return D
            }
        },
        w, At = function(Y, G, R, g, M, X, D, H, A, q) {
            for (H = J(5, (D = ((A = J((q = R[ku] || {}, 5), R), q.DV = J(3, R), q).o = [], R.h == R ? (X = V(8, Y, R), -4 * ~(X & 1) + ~X + -6 + g * (X ^ 1)) : 1), R)), M = G; M < D; M++) q.o.push(J(6, R));
            for (q.X2 = Z(R, H); D--;) q.o[D] = Z(R, q.o[D]);
            return q.Rz = Z(R, A), q
        },
        Fq = function() {
            return Q.call(this, 68)
        },
        Mu = function(Y, G, R, g, M, X, D) {
            K(((g = Z(Y, (D = J(7, (M = J(7, (X = -~(G & 4) - (~G ^ 4) + (G | -(R = (G | 0) - ~(G & 3) + ~G, 5)) + (~G | 4), Y)), Y)), M)), X) && (g = Uj("" + g, 2048)), R && K(Y, P(2, g.length), D), Y), g, D)
        },
        Qm = function() {
            return O.call(this, 15)
        },
        p = function(Y, G, R) {
            if (166 == G || 223 == G) Y.O[G] ? Y.O[G].concat(R) : Y.O[G] = J(25, Y, R);
            else {
                if (Y.NE && 463 != G) return;
                417 == G || 194 == G || 309 == G || 482 == G || 448 == G ? Y.O[G] || (Y.O[G] = d(G, 126, 32, 2, 7, Y, R)) : Y.O[G] = d(G, 153, 33, 2, 7, Y, R)
            }
            463 == G && (Y.g = ob(8, false, Y, 32), Y.Z = void 0)
        },
        YD = function(Y, G, R) {
            return (R = G.create().shift(), Y).j.create().length || Y.V.create().length || (Y.V = void 0, Y.j = void 0), R
        },
        sj = function(Y, G, R, g, M, X, D, H, A, q) {
            function S(a) {
                a && Y.appendChild("string" === typeof a ? R.createTextNode(a) : a)
            }
            for (q = G; q < X.length; q++)
                if (H = X[q], !h(89, "object", M, "number", H) || O(44, null, H) && 0 < H.nodeType) S(H);
                else {
                    a: {
                        if (H && "number" == typeof H.length) {
                            if (O(36, null, H)) {
                                A = "function" == typeof H.item || "string" == typeof H.item;
                                break a
                            }
                            if ("function" === typeof H) {
                                A = "function" == typeof H.item;
                                break a
                            }
                        }
                        A = g
                    }
                    b(null, 3, 0, D, S, A ? jX(7, 5, 0, H) : H)
                }
        },
        ob = function(Y, G, R, g, M, X, D, H, A, q, S, a, m, v, e, B, N) {
            if ((B = Z(R, 166), B) >= R.s) throw [ht, 31];
            for (H = (m = (N = (S = B, R.Oo.length), g), 0); 0 < m;) X = S % Y, D = Y - (X | 0), M = S >> 3, a = D < m ? D : m, A = R.N[M], G && (e = R, e.Z != S >> 6 && (e.Z = S >> 6, v = Z(e, 463), e.vp = Nu(1419, 24, e.g, e.Z, [0, 0, v[1], v[2]], 255, Y)), A ^= R.vp[M & N]), H |= (A >> Y - (X | 0) - (a | 0) & (1 << a) - 1) << (m | 0) - (a | 0), m -= a, S += a;
            return p(R, (q = H, 166), (B | 0) + (g | 0)), q
        },
        V1 = function(Y) {
            return Ib.call(this, 32, Y, 3)
        },
        bM = function(Y, G, R, g, M, X) {
            return UD.call(this, 52, 5, Y, G, R, g, M, X)
        },
        V = function(Y, G, R) {
            return R.j ? YD(R, R.V) : ob(Y, G, R, Y)
        },
        Z = function(Y, G, R) {
            if (void 0 === (R = Y.O[G], R)) throw [ht, 30, G];
            if (R.value) return R.create();
            return (R.create(3 * G * G + -76 * G + 7), R).prototype
        },
        nl = function(Y) {
            return TQ.call(this, 72, 19, Y)
        },
        $u = function(Y, G, R) {
            return Cz.call(this, 1, Y, 3, G, R)
        },
        k = this || self,
        P = function(Y, G, R, g) {
            for (R = (g = [], 2 * (Y & 1) + ~(Y & 1)) + ~(Y | 1) - 2 * (~Y | 1); 0 <= R; R--) g[(Y | 0) - 1 - (R | 0)] = G >> 8 * R & 255;
            return g
        },
        BO = function(Y, G, R, g, M, X, D, H, A, q) {
            if (!G.NE) {
                if (3 < (M = Z(G, (q = (0 == (X = Z(G, ((D = void 0, Y) && Y[0] === ht && (R = Y[1], D = Y[2], Y = void 0), 482)), X.length) && (A = Z(G, 223) >> 3, X.push(R, A >> 8 & 255, -255 - ~A - ~(A | 255) + 2 * (~A | 255)), void 0 != D && X.push(D & 255)), ""), Y && (Y.message && (q += Y.message), Y.stack && (q += ":" + Y.stack)), 370)), M)) {
                    G.h = (H = (q = (M -= ((q = q.slice(0, (M & -4) + (~M ^ 3) - (~M | 3)), q).length | 0) + 3, Uj)(q, g), G.h), G);
                    try {
                        K(G, P(2, q.length).concat(q), 194, 12)
                    } finally {
                        G.h = H
                    }
                }
                p(G, 370, M)
            }
        },
        uh = function(Y, G, R, g, M, X) {
            return Z((p(M, (ih(Y, (X = Z(M, 166), M.N && X < M.s ? (p(M, 166, M.s), Rr(166, G, M)) : p(M, 166, G), R), false, M), 166), X), M), g)
        },
        u = function(Y, G, R, g, M) {
            return z.call(this, "~", 16, Y, G, R, g, M)
        },
        Cl = function() {
            return jX.call(this, 7, 54)
        },
        fz = function() {
            return T.call(this, 56)
        },
        Jg = function(Y, G, R, g) {
            return b.call(this, null, 17, Y, G, R, g)
        },
        sD = function() {
            return eX.call(this, 63, 70)
        },
        HO = function(Y, G, R, g) {
            (R = J(7, (g = J(7, Y), Y)), K)(Y, P(G, Z(Y, g)), R)
        },
        bh = function(Y, G, R, g, M) {
            return zQ.call(this, "string", Y, G, 3, R, g, M)
        },
        W = function() {
            return jX.call(this, 7, 3)
        },
        qu = function(Y, G) {
            for (G = []; Y--;) G.push(255 * Math.random() | 0);
            return G
        },
        TJ = function(Y, G, R, g, M, X, D, H, A, q, S, a, m, v, e, B) {
            (G.push((A = (X = Y[0] << 24, H = Y[1] << 16, (H | 0) - 1 - (~X | H)), S = Y[2] << 8, (A & S) + ~(A & S) - ~(A | S)) | Y[3]), G).push((D = (M = Y[4] << 24, R = Y[5] << 16, (M & R) - ~(M & R) + ~(M | R) + 2 * (M ^ R)) | Y[6] << 8, m = Y[7], -~(D & m) + (D & ~m) + 2 * (~D & m) + (D | ~m))), G.push((a = (q = (B = Y[8] << 24, v = Y[9] << 16, (B | 0) + ~B - ~(B | v)), g = Y[10] << 8, (g | 0) - (q & ~g) - 2 * (~q ^ g) + 2 * (q | ~g)), e = Y[11], (a | 0) - (~a ^ e) + (~a | e)))
        },
        y1 = "closure_uid_" + (1E9 * Math.random() >>> 0),
        WD = 0,
        Z$, Kz = function(Y, G) {
            if (!k.addEventListener || !Object.defineProperty) return false;
            Y = Object.defineProperty({}, "passive", {get: (G = false, function() {
                    G = true
                })
            });
            try {
                k.addEventListener("test", function() {}, Y), k.removeEventListener("test", function() {}, Y)
            } catch (R) {}
            return G
        }(),
        lM = {
            2: ((OD.prototype.stopPropagation = function() {
                this.l = true
            }, sD.prototype).C4 = (OD.prototype.preventDefault = function() {
                this.defaultPrevented = true
            }, false), r(u, OD, 71, 2), "touch"),
            3: "pen",
            4: "mouse"
        },
        iM = "closure_listenable_" + (u.prototype.stopPropagation = function() {
            (u.u.stopPropagation.call(this), this.i).stopPropagation ? this.i.stopPropagation() : this.i.cancelBubble = true
        }, u.prototype.preventDefault = function(Y) {
            Y = (u.u.preventDefault.call(this), this).i, Y.preventDefault ? Y.preventDefault() : Y.returnValue = false
        }, 1E6 * Math.random() | 0),
        Lz = 0,
        PD = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),
        xD = "closure_lm_" + (1E6 * (f.prototype.add = function(Y, G, R, g, M, X, D, H, A) {
            return A = O(23, 0, (X = this.U[H = Y.toString(), H], X || (X = this.U[H] = [], this.T++), M), g, X, G), -1 < A ? (D = X[A], R || (D.Y = false)) : (D = new dj(!!g, M, H, G, this.src), D.Y = R, X.push(D)), D
        }, f.prototype.jv = (f.prototype.hasListener = function(Y, G, R, g, M) {
            return Ib(32, false, 9, true, (g = (R = (M = void 0 !== Y) ? Y.toString() : "", void 0) !== G, this.U), function(X, D) {
                for (D = 0; D < X.length; ++D)
                    if (!(M && X[D].type != R || g && X[D].capture != G)) return true;
                return false
            })
        }, function(Y, G, R, g, M, X) {
            return -(M = this.U[X = -1, G.toString()], M && (X = O(55, 0, Y, R, M, g)), 1) < X ? M[X] : null
        }), f.prototype.remove = function(Y, G, R, g, M, X, D) {
            if (D = Y.toString(), !(D in this.U)) return false;
            return -1 < (X = O(39, 0, (M = this.U[D], g), R, M, G), X) ? (h(48, M[X], true), Array.prototype.splice.call(M, X, 1), 0 == M.length && (delete this.U[D], this.T--), true) : false
        }, Math.random()) | 0),
        uM = {},
        N$ = 0,
        mE = "__closure_events_fn_" + (1E9 * Math.random() >>> 0);
    (((w = ((r(fz, sD, 64, 2), fz).prototype[iM] = true, fz).prototype, w).un = function(Y) {
        this.tb = Y
    }, w.addEventListener = function(Y, G, R, g) {
        r(0, G, 24, null, Y, this, R, g)
    }, w).removeEventListener = function(Y, G, R, g) {
        nz(16, null, 0, g, R, G, this, Y)
    }, w).dispatchEvent = function(Y, G, R, g, M, X, D, H, A, q, S) {
        if (g = this.tb)
            for (R = []; g; g = g.tb) R.push(g);
        if (S = (H = (M = (X = Y, (D = R, this).w7), X.type || X), "string" === typeof X ? X = new OD(X, M) : X instanceof OD ? X.target = X.target || M : (G = X, X = new OD(H, M), Yu(X, G)), true), D)
            for (A = D.length - 1; !X.l && 0 <= A; A--) q = X.currentTarget = D[A], S = Q(66, 1, X, H, q, true) && S;
        if (X.l || (q = X.currentTarget = M, S = Q(34, 1, X, H, q, true) && S, X.l || (S = Q(35, 1, X, H, q, false) && S)), D)
            for (A = 0; !X.l && A < D.length; A++) q = X.currentTarget = D[A], S = Q(3, 1, X, H, q, false) && S;
        return S
    }, w.jv = function(Y, G, R, g) {
        return this.C.jv(Y, String(G), R, g)
    }, w.hasListener = function(Y, G) {
        return this.C.hasListener(void 0 !== Y ? String(Y) : void 0, G)
    };
    var rx;
    ((w = (r(V1, (((UD(((((((w = Fq.prototype, w.B = function(Y) {
        return "string" === typeof Y ? this.W.getElementById(Y) : Y
    }, w).getElementsByTagName = function(Y, G) {
        return (G || this.W).getElementsByTagName(String(Y))
    }, w.createElement = function(Y, G, R) {
        return (R = String((G = this.W, Y)), "application/xhtml+xml" === G.contentType) && (R = R.toLowerCase()), G.createElement(R)
    }, w).createTextNode = function(Y) {
        return this.W.createTextNode(String(Y))
    }, w).appendChild = function(Y, G) {
        Y.appendChild(G)
    }, w.append = function(Y, G) {
        sj(Y, 1, 9 == Y.nodeType ? Y : Y.ownerDocument || Y.document, false, "array", arguments, "")
    }, w.canHaveChildren = function(Y) {
        if (1 != Y.nodeType) return false;
        switch (Y.tagName) {
            case "APPLET":
            case "AREA":
            case "BASE":
            case "BR":
            case "COL":
            case "COMMAND":
            case "EMBED":
            case "FRAME":
            case "HR":
            case "IMG":
            case "INPUT":
            case "IFRAME":
            case "ISINDEX":
            case "KEYGEN":
            case "LINK":
            case "NOFRAMES":
            case "NOSCRIPT":
            case "META":
            case "OBJECT":
            case "PARAM":
            case "SCRIPT":
            case "SOURCE":
            case "STYLE":
            case "TRACK":
            case "WBR":
                return false
        }
        return true
    }, w).removeNode = nl, w).contains = function(Y, G, R) {
        if (!Y || !G) return false;
        if (Y.contains && 1 == G.nodeType) return Y == G || Y.contains(G);
        if ("undefined" != typeof Y.compareDocumentPosition) return Y == G || !!(R = Y.compareDocumentPosition(G), -1 - ~(R | 16) - (R ^ 16));
        for (; G && Y != G;) G = G.parentNode;
        return G == Y
    }, 52), 24, or), or).prototype.ad = 0, or.prototype).E6 = "", fz), 70, 2), V1.prototype), w.Wp = or.az(), w.B = function() {
        return this.K4
    }, w.getParent = function() {
        return this.O6
    }, w).un = function(Y) {
        if (this.O6 && this.O6 != Y) throw Error("Method not supported");
        V1.u.un.call(this, Y)
    }, w).f4 = function() {
        ((dx(16, this, 8, function(Y) {
            Y.ln && Y.f4()
        }), this.VH) && Q(37, 0, true, this.VH), this).ln = false
    }, w.removeChild = function(Y, G, R, g, M, X, D, H, A, q, S, a) {
        if (Y && ("string" === typeof Y ? D = Y : ((S = Y.Iz) || (R = Y.Wp, A = Y, g = R.E6 + ":" + (R.ad++).toString(36), S = A.Iz = g), D = S), a = D, this.Ab && a ? (q = this.Ab, X = (null !== q && a in q ? q[a] : void 0) || null) : X = null, Y = X, a && Y)) {
            if (null == (Q(9, (H = this.Ab, a in H && delete H[a], 1), this.L4, Y), G && (Y.f4(), Y.K4 && nl(Y.K4)), M = Y, M)) throw Error("Unable to set parent component");
            M.O6 = null, V1.u.un.call(M, null)
        }
        if (!Y) throw Error("Child is not in parent component");
        return Y
    };
    var Ll, Vm = {
            button: "pressed",
            checkbox: "checked",
            menuitem: (((w = (UD(52, 25, Cl), Cl.prototype), w.kW = function(Y) {
                return Y.B()
            }, w).xW = function(Y, G, R, g, M, X, D) {
                D = (Ll || (Ll = {
                    1: "disabled",
                    8: "selected",
                    16: "checked",
                    64: "expanded"
                }), Ll[G]), (M = Y.getAttribute("role") || null) ? (X = Vm[M] || D, g = "checked" == D || "selected" == D ? X : D) : g = D, g && pz(1, "none", 17, "busy", Y, R, g)
            }, w).P = function(Y, G, R, g, M, X) {
                if (g = Y.B()) this.Bp || (X = this.oz(), X.replace(/\xa0|\s/g, " "), this.Bp = {
                    1: X + "-disabled",
                    2: X + "-hover",
                    4: X + "-active",
                    8: X + "-selected",
                    16: X + "-checked",
                    32: X + "-focused",
                    64: X + "-open"
                }), (M = this.Bp[G]) && this.J(Y, M, R), this.xW(g, G, R)
            }, w.J = function(Y, G, R, g) {
                (g = Y.B ? Y.B() : Y) && (R ? bh : jG)(g, [G])
            }, "selected"),
            menuitemcheckbox: "checked",
            menuitemradio: "checked",
            radio: "checked",
            tab: "selected",
            treeitem: "selected"
        },
        ED = ((UD(52, 27, (r(Qm, (w.oz = (w.d7 = function(Y, G, R, g, M, X) {
            if (Cz(1, 2, 24, 32, Y) && (g = Y.kW())) {
                if (!G && h(61, Y, 32)) {
                    try {
                        g.blur()
                    } catch (D) {}
                    h(45, Y, 32) && (Y.ME & 4 && Cz(1, 2, 27, 4, Y) && Y.setActive(false), Y.ME & 32 && Cz(1, 2, 32, 32, Y) && Ib(32, 8, 24, Y, false, 32) && Y.P(32, false))
                }
                if (M = g.hasAttribute("tabindex")) R = g.tabIndex, M = "number" === typeof R && 0 <= R && 32768 > R;
                M != G && (X = g, G ? X.tabIndex = 0 : (X.tabIndex = -1, X.removeAttribute("tabIndex")))
            }
        }, function() {
            return "goog-control"
        }), Cl), 65, 2), Qm)), Qm.prototype.xW = function(Y, G, R) {
            switch (G) {
                case 8:
                case 16:
                    pz(1, "none", 5, "busy", Y, R, "pressed");
                    break;
                default:
                case 64:
                case 1:
                    Qm.u.xW.call(this, Y, G, R)
            }
        }, Qm).prototype.oz = function() {
            return "goog-button"
        }, {});
    if ("function" !== ((((((((((w = (r(c, V1, 69, 2), c).prototype, w).Uo = true, w.K = null, w.ME = 255, w).J = function(Y, G) {
            G ? Y && (this.K ? 0 <= U(1, Y, this.K, 17) || this.K.push(Y) : this.K = [Y], this.v.J(this, Y, true)) : Y && this.K && Q(33, 1, this.K, Y) && (0 == this.K.length && (this.K = null), this.v.J(this, Y, false))
        }, w.X = 0, w.hm = 0, w.f4 = function() {
            (c.u.f4.call(this), this.Jb && this.Jb.detach(), this).isVisible() && this.isEnabled() && this.v.d7(this, false)
        }, w).kW = function() {
            return this.v.kW(this)
        }, w).pK = 39, w).isVisible = function() {
            return this.Uo
        }, w).isEnabled = function() {
            return !h(46, this, 1)
        }, w.isActive = function() {
            return h(77, this, 4)
        }, w).setActive = function(Y) {
            Ib(32, 8, 7, this, Y, 4) && this.P(4, Y)
        }, w).getState = function() {
            return this.X
        }, w).P = function(Y, G, R, g, M, X) {
            R || 1 != Y ? Cz(1, 2, 25, Y, this) && G != h(14, this, Y) && (this.v.P(this, Y, G), this.X = G ? (M = this.X, (M | 0) - 1 - (M | ~Y)) : this.X & ~Y) : (X = !G, g = this.getParent(), g && "function" == typeof g.isEnabled && !g.isEnabled() || !Ib(32, 8, 23, this, !X, 1) || (X || (this.setActive(false), Ib(32, 8, 39, this, false, 2) && this.P(2, false)), this.isVisible() && this.v.d7(this, X), this.P(1, !X, true)))
        }, typeof c)) throw Error("Invalid component class " + c);
    if ("function" !== typeof Cl) throw Error("Invalid renderer class " + Cl);
    var pl = pz(1, c, 8);
    (r($u, c, 68, (((UD(52, 26, (r(W, Qm, (O(3, (ED[pl] = Cl, function() {
        return new c(null)
    }), "goog-control"), 73), 2), W)), W.prototype).xW = function() {}, W).prototype.P = function(Y, G, R, g) {
        (g = (W.u.P.call(this, Y, G, R), Y.B())) && 1 == G && (g.disabled = R)
    }, W.prototype.d7 = function() {}, 2)), O)(5, function() {
        return new $u(null)
    }, "goog-button");
    var L, vD = k.requestIdleCallback ? function(Y) {
            requestIdleCallback(function() {
                Y()
            }, {
                timeout: 4
            })
        } : k.setImmediate ? function(Y) {
            setImmediate(Y)
        } : function(Y) {
            setTimeout(Y, 0)
        },
        q$ = {
            passive: true,
            capture: true
        },
        ku = String.fromCharCode(105, 110, 116, 101, 103, 67, 104, 101, 99, 107, 66, 121, 112, 97, 115, 115),
        ar = [],
        zJ = [],
        Ag = ((t.prototype.nK = (t.prototype.s6 = "toString", t.prototype.bn = false, void 0), t).prototype.FD = void 0, []),
        ht = {},
        tg = [],
        SG = [],
        Q1 = [],
        gx = [],
        Xq = [],
        Rb = (((TJ, qu, function() {})(xu), function() {})(wx), ht).constructor,
        SX = (t.prototype.F = (w = t.prototype, "create"), w.CK = function(Y, G, R, g, M, X, D, H) {
            return zQ.call(this, "string", Y, G, 12, R, g, M, X, D, H)
        }, w.tm = function(Y, G, R, g, M, X) {
            return Ib.call(this, 32, Y, 73, G, R, g, M, X)
        }, void 0);
    t.prototype.I = (w.G = ((w.QH = function(Y, G, R, g, M, X) {
        return d.call(this, R, g, 6, Y, G, M, X)
    }, w).LK = function() {
        return z.call(this, "~", 25)
    }, ((w.zV = function() {
        return O.call(this, 57)
    }, w.r6 = function(Y, G, R, g, M, X) {
        return UD.call(this, 52, 48, Y, G, R, g, M, X)
    }, window).performance || {}).now ? function() {
        return this.fK + window.performance.now()
    } : function() {
        return +new Date
    }), function(Y, G) {
        return G = (SX = (Y = {}, function() {
                return G == Y ? 7 : -54
            }), {}),
            function(R, g, M, X, D, H, A, q, S, a, m, v, e, B, N, n, F, C, I, BD, HD, l, x, E) {
                C = G, G = Y;
                try {
                    if (e = R[0], e == SG) {
                        BD = R[1];
                        try {
                            for (M = (q = [], atob)(BD), E = N = 0; E < M.length; E++) v = M.charCodeAt(E), 255 < v && (q[N++] = -~(v & 255) - (~v ^ 255) + (v | -256) + (~v | 255), v >>= 8), q[N++] = v;
                            p(this, (this.N = q, this.s = this.N.length << 3, 463), [0, 0, 0])
                        } catch (D$) {
                            BO(D$, this, 17, 2048);
                            return
                        }
                        ih(223, 8001, false, this)
                    } else if (e == Xq) R[1].push(Z(this, 309).length, Z(this, 417).length, Z(this, 194).length, Z(this, 370)), p(this, 29, R[2]), this.O[396] && uh(223, Z(this, 396), 8001, 29, this);
                    else {
                        if (e == gx) {
                            X = (m = R[2], P)(2, (Z(this, 417).length | 0) + 2), F = this.h, this.h = this;
                            try {
                                a = Z(this, 482), 0 < a.length && K(this, P(2, a.length).concat(a), 417, 15), K(this, P(1, this.zl), 417, 104), K(this, P(1, this[gx].length), 417), I = 0, I += Z(this, 465) & 2047, I -= (B = Z(this, 417).length, 11 - (~B ^ 5) + 2 * (B | -6)), n = Z(this, 194), 4 < n.length && (I -= (n.length | 0) + 3), 0 < I && K(this, P(2, I).concat(qu(I)), 417, 10), 4 < n.length && K(this, P(2, n.length).concat(n), 417, 153)
                            } finally {
                                this.h = F
                            }
                            if (g = (((x = qu(2).concat(Z(this, 417)), x)[1] = (H = x[0], ~H + -4 - 2 * ~(H | 3)), x)[3] = x[1] ^ X[0], x[4] = (l = x[1], A = X[1], -(A | 0) - ~(l | A) + 2 * (~l & A) + (l | ~A)), this.Tl(x))) g = "!" + g;
                            else
                                for (D = 0, g = ""; D < x.length; D++) S = x[D][this.s6](16), 1 == S.length && (S = "0" + S), g += S;
                            return (Z(this, (Z((Z(this, (HD = g, 309)).length = m.shift(), this), 417).length = m.shift(), 194)).length = m.shift(), p)(this, 370, m.shift()), HD
                        }
                        if (e == Q1) uh(223, R[1], R[2], 29, this);
                        else if (e == Ag) return uh(223, R[1], 8001, 29, this)
                    }
                } finally {
                    G = C
                }
            }
    }());
    var Xu, GJ = (((t.prototype[ar] = [0, 0, 1, 1, 0, 1, 1], t).prototype.so = 0, t).prototype.Tl = function(Y, G, R, g, M) {
            return TQ.call(this, 72, 3, Y, G, R, g, M)
        }, t.prototype.xl = 0, /./),
        Ej = SG.pop.bind(t.prototype[Xq]),
        gj = ((Xu = zQ("string", (GJ[t.prototype.s6] = Ej, {get: Ej
        }), t.prototype.F, 25), t.prototype).Am = void 0, function(Y, G) {
            return (G = vO(null, "bg", "error")) && 1 === Y.eval(G.createScript("1")) ? function(R) {
                return G.createScript(R)
            } : function(R) {
                return "" + R
            }
        })(k);
    (L = k.botguard || (k.botguard = {}), 40 < L.m || (L.m = 41, L.bg = DO, L.a = Jg), L).hBb_ = function(Y, G, R) {
        return [(R = new t(G, Y), function(g) {
            return pz(1, false, 3, R, g)
        })]
    };
}).call(this);
                                    

#21 JavaScript::Eval (size: 22, repeated: 1) - SHA256: 5af354bb04a6eda74eabd743b0fa9e248aeb8f31b45996872c5fdd3afe4e43ef

                                        0,
function(D) {
    Mu(D, 7)
}
                                    

#22 JavaScript::Eval (size: 198, repeated: 1) - SHA256: f9e43a2a1baa4ee50b4f2ade6879a9570cb699ab2bb78f9ecedb4fa1b0febfad

                                        0,
function(D, H, A, q, S, a, m, v, e, B) {
    0 !== (B = (m = Z(D, (q = (v = (e = J(6, (a = J(6, (S = (H = J(3, D), J(7, D)), D)), D)), Z)(D, a), Z(D.h, H)), e)), Z)(D, S), q) && (A = d(1, v, 5, 2, 1, m, D, q, B), q.addEventListener(B, A, q$), p(D, 208, [q, B, A]))
}
                                    

#23 JavaScript::Eval (size: 6, repeated: 1) - SHA256: 44ff7b02c80d38b26dd6aa31d9470aed81b32e10331a3c994fb1a9945fd847ba

                                        window
                                    

#24 JavaScript::Eval (size: 252, repeated: 1) - SHA256: 1305886e625a7c650f97b640388e8768ec312289e38d391b58dc222c5501f4e0

                                        0,
function(D, H, A, q, S, a, m, v, e) {
    T(17, 4, true, false, H, D) || (m = At(true, 0, D.h, 2), e = m.X2, v = m.DV, S = m.Rz, a = m.o, A = a.length, q = 0 == A ? new e[S] : 1 == A ? new e[S](a[0]) : 2 == A ? new e[S](a[0], a[1]) : 3 == A ? new e[S](a[0], a[1], a[2]) : 4 == A ? new e[S](a[0], a[1], a[2], a[3]) : 2(), p(D, v, q))
}
                                    

#25 JavaScript::Eval (size: 140, repeated: 1) - SHA256: 782402ce57c84eaf4e3d83e6f9136fb58d428784f48be90230a8fe55c058ff9f

                                        0,
function(D, H, A, q, S) {
    !T(49, 4, true, false, H, D) && (q = At(true, 0, D, 2), S = q.Rz, A = q.X2, D.h == D || S == D.ev && A == D) && (p(D, q.DV, S.apply(A, q.o)), D.D = D.G())
}
                                    

#26 JavaScript::Eval (size: 22, repeated: 1) - SHA256: 9830ece26a868bd7081731b7679f20e2a3a084f0a934f02e3e1d86b3069821aa

                                        0,
function(D) {
    Mu(D, 0)
}
                                    

#27 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 1ceeabf0c6a5a30bad12cdac0e3ab015a7188a42e6aebb556aad00bb9cd693ad

                                        Nu
                                    

#28 JavaScript::Eval (size: 171, repeated: 1) - SHA256: bbddcdaba665507bafb1a06519af26d2b9a5836244057f9bfa8015ba2207a004

                                        0, Mu = function(Y, G, R, g, M, X, D) {
    K(((g = Z(Y, (D = J(7, (M = J(7, (X = -~(G & 4) - (~G ^ 4) + (G | -(R = (G | 0) - ~(G & 3) + ~G, 5)) + (~G | 4), Y)), Y)), M)), X) && (g = Uj("" + g, 2048)), R && K(Y, P(2, g.length), D), Y), g, D)
}
                                    

#29 JavaScript::Eval (size: 358, repeated: 1) - SHA256: 33492cc43b37518059cff94378ef63e223a75513b24d8ea084103c19e764cc30

                                        ob = function(Y, G, R, g, M, X, D, H, A, q, S, a, m, v, e, B, N) {
    if ((B = Z(R, 166), B) >= R.s) throw [ht, 31];
    for (H = (m = (N = (S = B, R.Oo.length), g), 0); 0 < m;) X = S % Y, D = Y - (X | 0), M = S >> 3, a = D < m ? D : m, A = R.N[M], G && (e = R, e.Z != S >> 6 && (e.Z = S >> 6, v = Z(e, 463), e.vp = Nu(1419, 24, e.g, e.Z, [0, 0, v[1], v[2]], 255, Y)), A ^= R.vp[M & N]), H |= (A >> Y - (X | 0) - (a | 0) & (1 << a) - 1) << (m | 0) - (a | 0), m -= a, S += a;
    return p(R, (q = H, 166), (B | 0) + (g | 0)), q
}
                                    

#30 JavaScript::Eval (size: 131, repeated: 1) - SHA256: c7571ea934709b1b03f1da34abe47ddd56ae4c7e28881c9b8858cb7eec68036b

                                        Z = function(Y, G, R) {
    if (void 0 === (R = Y.O[G], R)) throw [ht, 30, G];
    if (R.value) return R.create();
    return (R.create(3 * G * G + -76 * G + 7), R).prototype
}
                                    

#31 JavaScript::Eval (size: 232, repeated: 1) - SHA256: fe992a69c22f9cfefbffb41ece3352131314b1ee33eb9615240abd9f450d19ad

                                        At = function(Y, G, R, g, M, X, D, H, A, q) {
    for (H = J(5, (D = ((A = J((q = R[ku] || {}, 5), R), q.DV = J(3, R), q).o = [], R.h == R ? (X = V(8, Y, R), -4 * ~(X & 1) + ~X + -6 + g * (X ^ 1)) : 1), R)), M = G; M < D; M++) q.o.push(J(6, R));
    for (q.X2 = Z(R, H); D--;) q.o[D] = Z(R, q.o[D]);
    return q.Rz = Z(R, A), q
}
                                    

#32 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 8c6b0adba54cdc59dcede1e7327fbdeba3ce24d5e74eb84dfb72297e512e2dab

                                        ih
                                    

#33 JavaScript::Eval (size: 1, repeated: 1) - SHA256: 6da43b944e494e885e69af021f93c6d9331c78aa228084711429160a5bbd15b5

                                        J
                                    

#34 JavaScript::Eval (size: 133, repeated: 1) - SHA256: 27902a9fd3e7a2064a609719599b95141bc4bdf99ad9ecf254ba2c74c010aa3f

                                        0, Z = function(Y, G, R) {
    if (void 0 === (R = Y.O[G], R)) throw [ht, 30, G];
    if (R.value) return R.create();
    return (R.create(3 * G * G + -76 * G + 7), R).prototype
}
                                    

#35 JavaScript::Eval (size: 210, repeated: 1) - SHA256: 927295fecd87b2ca8be8fb3ef72518fddec590d571b186cacc2bc20a88dc2882

                                        0, vO = function(Y, G, R, g, M) {
    if (g = (M = Y, k.trustedTypes), !g || !g.createPolicy) return M;
    try {
        M = g.createPolicy(G, {
            createHTML: Jt,
            createScript: Jt,
            createScriptURL: Jt
        })
    } catch (X) {
        if (k.console) k.console[R](X.message)
    }
    return M
}
                                    

#36 JavaScript::Eval (size: 238, repeated: 1) - SHA256: f25953bb8ca29fc13cca5856ed2a6ca2deea5864ea2cdde0f8ea2acc7e01cc6d

                                        0, Nu = function(Y, G, R, g, M, X, D, H, A, q) {
    for (A = M[3] | (H = 0, 0), q = M[2] | 0; 14 > H; H++) g = g >>> D | g << G, g += R | 0, R = R << 3 | R >>> 29, A = A >>> D | A << G, g ^= q + Y, A += q | 0, A ^= H + Y, q = q << 3 | q >>> 29, R ^= g, q ^= A;
    return [R >>> G & X, R >>> 16 & X, R >>> D & X, R >>> 0 & X, g >>> G & X, g >>> 16 & X, g >>> D & X, g >>> 0 & X]
}
                                    

#37 JavaScript::Eval (size: 220, repeated: 1) - SHA256: eaa2984e528b863bf0d3ec12572d45656d0d70476c581e81f45dec844e6a3493

                                        0, kD = function(Y, G, R, g, M, X, D, H) {
    if (g - 9 << 1 >= (1 == (g >> 2 & 7) && (M = V(Y, R, G), -~(M & 128) - -1 + 2 * (M ^ 128) + 2 * (~M ^ 128) && (M = (M | 0) + 127 - (M | 127) | V(Y, R, G) << 7), H = M), g) && (g - 1 | 16) < g) {
        for (X = (D = J(3, G), 0); 0 < M; M--) X = X << Y | V(Y, R, G);
        p(G, D, X)
    }
    return H
}
                                    

#38 JavaScript::Eval (size: 418, repeated: 1) - SHA256: 7cdca360cd87fe05957652e245a3ae03bf0024a8e49f62c5c0d53d30ecacdf34

                                        0, K = function(Y, G, R, g, M, X, D, H, A) {
    if (Y.h == Y)
        for (M = Z(Y, R), 194 == R ? (H = function(q, S, a, m, v, e) {
                if (M.Sv != (m = ((e = M.length, e) ^ 4) + 2 * (~e ^ 4) - 2 * (~e | 4) >> 3, m)) {
                    S = (a = (m << 3) - 4, M.Sv = m, [0, 0, D[1], D[2]]);
                    try {
                        M.mZ = Nu(1419, 24, d(a, M, 12, 3, 8), d((a | 0) + 4, M, 20, 3, 8), S, 255, 8)
                    } catch (B) {
                        throw B;
                    }
                }
                M.push((v = M.mZ[e & 7], 1 + 2 * (v & ~q) - (~v ^ q) + 2 * (~v | q)))
            }, D = Z(Y, 448)) : H = function(q) {
                M.push(q)
            }, g && H(~g - 2 * ~(g | 255) - (g ^ 255) + (g | -256)), X = G.length, A = 0; A < X; A++) H(G[A])
}
                                    

#39 JavaScript::Eval (size: 1, repeated: 1) - SHA256: 5c62e091b8c0565f1bafad0dad5934276143ae2ccef7a5381e8ada5b1a8d26d2

                                        P
                                    

#40 JavaScript::Eval (size: 427, repeated: 1) - SHA256: 34799cb03e488e82895b92b3c20a0c412a2bec226e04be1a718c3ec1ae15b8c7

                                        0, ih = function(Y, G, R, g, M, X, D, H) {
    if (!g.A) {
        g.p4++;
        try {
            for (H = (M = void 0, X = g.s, 0); --G;) try {
                if ((D = void 0, g).j) M = YD(g, g.j);
                else {
                    if (H = Z(g, 166), H >= X) break;
                    M = (p(g, Y, H), D = J(5, g), Z(g, D))
                }
                T(33, 4, R, R, (M && M[zJ] & 2048 ? M(g, G) : BO([ht, 21, D], g, 0, 2048), G), g)
            } catch (A) {
                Z(g, 228) ? BO(A, g, 22, 2048) : p(g, 228, A)
            }
            if (!G) {
                if (g.bn) {
                    ih(223, 383840374050, (g.p4--, false), g);
                    return
                }
                BO([ht, 33], g, 0, 2048)
            }
        } catch (A) {
            try {
                BO(A, g, 22, 2048)
            } catch (q) {
                z("~", 67, 0, q, g)
            }
        }
        g.p4--
    }
}
                                    

#41 JavaScript::Eval (size: 250, repeated: 1) - SHA256: c24bf739c9cb45b116ab6e6418c33ab8cebc071f7730dd6aaddc9bf730188c99

                                        p = function(Y, G, R) {
    if (166 == G || 223 == G) Y.O[G] ? Y.O[G].concat(R) : Y.O[G] = J(25, Y, R);
    else {
        if (Y.NE && 463 != G) return;
        417 == G || 194 == G || 309 == G || 482 == G || 448 == G ? Y.O[G] || (Y.O[G] = d(G, 126, 32, 2, 7, Y, R)) : Y.O[G] = d(G, 153, 33, 2, 7, Y, R)
    }
    463 == G && (Y.g = ob(8, false, Y, 32), Y.Z = void 0)
}
                                    

#42 JavaScript::Eval (size: 1, repeated: 1) - SHA256: bbeebd879e1dff6918546dc0c179fdde505f2a21591c9a9c96e36b054ec5af83

                                        Z
                                    

#43 JavaScript::Eval (size: 173, repeated: 1) - SHA256: c86ea25ee522e4708812a3a89bce200e97c2ae2f53518db3148ec784732f8861

                                        xu = function(Y, G, R, g, M, X, D, H) {
    try {
        H = Y[((G | 0) + 2) % 3], Y[G] = (X = (M = Y[G], g = Y[((G | 0) + 1) % 3], (M ^ g) - (~M ^ g) - 3 * (~M & g) + (~M | g)) - (H | 0), D = 1 == G ? H << R : H >>> R, (X | D) + ~X - (~X | D))
    } catch (A) {
        throw A;
    }
}
                                    

#44 JavaScript::Eval (size: 252, repeated: 1) - SHA256: 4c658a69fbd71f634fdfcf2c2ddebdc5352017f76c68d62821debd89a8f601ff

                                        0, p = function(Y, G, R) {
    if (166 == G || 223 == G) Y.O[G] ? Y.O[G].concat(R) : Y.O[G] = J(25, Y, R);
    else {
        if (Y.NE && 463 != G) return;
        417 == G || 194 == G || 309 == G || 482 == G || 448 == G ? Y.O[G] || (Y.O[G] = d(G, 126, 32, 2, 7, Y, R)) : Y.O[G] = d(G, 153, 33, 2, 7, Y, R)
    }
    463 == G && (Y.g = ob(8, false, Y, 32), Y.Z = void 0)
}
                                    

#45 JavaScript::Eval (size: 132, repeated: 1) - SHA256: 22184c3bb4acd2e557bd3e07fee1a4c7744f3190cea15ee945695451bdb577d2

                                        0, wx = function(Y, G, R, g, M) {
    if (3 == Y.length) {
        for (M = 0; 3 > M; M++) G[M] += Y[M];
        for (R = (g = [13, 8, 13, 12, 16, 5, 3, 10, 15], 0); 9 > R; R++) G[3](G, R % 3, g[R])
    }
}
                                    

#46 JavaScript::Eval (size: 22, repeated: 1) - SHA256: f408e3b96c07ae345e16d3fb7f28d864ac81fc836b53733b4bd0056d64ded745

                                        0,
function(D) {
    HO(D, 4)
}
                                    

#47 JavaScript::Eval (size: 51400, repeated: 1) - SHA256: fe08ee1b77a38bfc9b010174176daef008200916c7c64ac05bff2e860ca5c8a3

                                        var layerSliderTransitions = {
    t2d: [{
        name: "Sliding from right",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Sliding from left",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "right"
        }
    }, {
        name: "Sliding from bottom",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "top"
        }
    }, {
        name: "Sliding from top",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "bottom"
        }
    }, {
        name: "Crossfading",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles forward",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles reverse",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles col-forward",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "col-forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles col-reverse",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "col-reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Smooth fading from right",
        rows: 1,
        cols: 35,
        tile: {
            delay: 25,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "linear",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth fading from left",
        rows: 1,
        cols: 35,
        tile: {
            delay: 25,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth fading from bottom",
        rows: 35,
        cols: 1,
        tile: {
            delay: 25,
            sequence: "col-reverse"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth fading from top",
        rows: 35,
        cols: 1,
        tile: {
            delay: 25,
            sequence: "col-forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth sliding from right",
        rows: 1,
        cols: 25,
        tile: {
            delay: 30,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "left"
        }
    }, {
        name: "Smooth sliding from left",
        rows: 1,
        cols: 25,
        tile: {
            delay: 30,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "right"
        }
    }, {
        name: "Smooth sliging from bottom",
        rows: 25,
        cols: 1,
        tile: {
            delay: 30,
            sequence: "col-reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "top"
        }
    }, {
        name: "Smooth sliding from top",
        rows: 25,
        cols: 1,
        tile: {
            delay: 30,
            sequence: "col-forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "bottom"
        }
    }, {
        name: "Sliding tiles to right (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "right"
        }
    }, {
        name: "Sliding tiles to left (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "left"
        }
    }, {
        name: "Sliding tiles to bottom (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottom"
        }
    }, {
        name: "Sliding tiles to top (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "top"
        }
    }, {
        name: "Sliding random tiles to random directions",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "random"
        }
    }, {
        name: "Sliding rows to right (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding rows to right (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding rows to right (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding rows to left (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding rows to left (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding rows to left (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding rows from top to bottom (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding rows from top to bottom (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding rows from bottom to top (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding rows from bottom to top (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns to bottom (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding columns to bottom (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding columns to bottom (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding columns to top (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns to top (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns to top (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns from left to right (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding columns from left to right (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding columns from right to left (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding columns from right to left (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding tiles to right (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "right"
        }
    }, {
        name: "Fading and sliding tiles to left (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "left"
        }
    }, {
        name: "Fading and sliding tiles to bottom (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding tiles to top (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "top"
        }
    }, {
        name: "Fading and sliding random tiles to random directions",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "random"
        }
    }, {
        name: "Fading and sliding tiles from top-left (forward)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "topleft"
        }
    }, {
        name: "Fading and sliding tiles from bottom-right (reverse)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottomright"
        }
    }, {
        name: "Fading and sliding tiles from top-right (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "topright"
        }
    }, {
        name: "Fading and sliding tiles from bottom-left (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottomleft"
        }
    }, {
        name: "Fading and sliding rows to right (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding rows to right (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding rows to right (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding rows to left (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding rows to left (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding rows to left (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding rows from top to bottom (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding rows from top to bottom (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding rows from bottom to top (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding rows from bottom to top (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns to bottom (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding columns to bottom (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding columns to bottom (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding columns to top (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns to top (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns to top (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns from left to right (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding columns from left to right (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding columns from right to left (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding columns from right to left (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Carousel",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Carousel rows",
        rows: 4,
        cols: 1,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Carousel cols",
        rows: 1,
        cols: 4,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Carousel tiles horizontal",
        rows: 3,
        cols: 4,
        tile: {
            delay: 35,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5,
            rotateY: 90
        }
    }, {
        name: "Carousel tiles vertical",
        rows: 3,
        cols: 4,
        tile: {
            delay: 35,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "top",
            scale: .5,
            rotateX: -90
        }
    }, {
        name: "Carousel-mirror tiles horizontal",
        rows: 3,
        cols: 4,
        tile: {
            delay: 15,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5,
            rotateY: 90
        }
    }, {
        name: "Carousel-mirror tiles vertical",
        rows: 3,
        cols: 4,
        tile: {
            delay: 15,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "top",
            scale: .5,
            rotateX: -90
        }
    }, {
        name: "Carousel mirror rows",
        rows: 4,
        cols: 1,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "right",
            scale: .5
        }
    }, {
        name: "Carousel mirror cols",
        rows: 1,
        cols: 4,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Turning tile from left",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "right",
            rotateY: 90
        }
    }, {
        name: "Turning tile from right",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Turning tile from top",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "bottom",
            rotateX: -90
        }
    }, {
        name: "Turning tile from bottom",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "top",
            rotateX: 90
        }
    }, {
        name: "Turning tiles from left",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: 90
        }
    }, {
        name: "Turning tiles from right",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Turning tiles from top",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: -90
        }
    }, {
        name: "Turning tiles from bottom",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: 90
        }
    }, {
        name: "Turning rows from top",
        rows: [6, 12],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: 90
        }
    }, {
        name: "Turning rows from bottom",
        rows: [6, 12],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: -90
        }
    }, {
        name: "Turning cols from left",
        rows: 1,
        cols: [6, 12],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Turning cols from right",
        rows: 1,
        cols: [6, 12],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: 90
        }
    }, {
        name: "Flying rows from left",
        rows: [3, 10],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: 90
        }
    }, {
        name: "Flying rows from right",
        rows: [3, 10],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Flying cols from top",
        rows: 1,
        cols: [3, 10],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: -90
        }
    }, {
        name: "Flying cols from bottom",
        rows: 1,
        cols: [3, 10],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: 90
        }
    }, {
        name: "Flying and rotating tile from left",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "right",
            scale: .1,
            rotate: -90,
            rotateY: 90
        }
    }, {
        name: "Flying and rotating tile from right",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: .1,
            rotate: 90,
            rotateY: -90
        }
    }, {
        name: "Flying and rotating tiles from left",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "right",
            rotate: -45
        }
    }, {
        name: "Flying and rotating tiles from right",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotate: -45
        }
    }, {
        name: "Flying and rotating tiles from random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "random",
            rotate: -45
        }
    }, {
        name: "Scaling tile in",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1500,
            direction: "left",
            scale: .8
        }
    }, {
        name: "Scaling tile from out",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "left",
            scale: 1.2
        }
    }, {
        name: "Scaling tiles random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: .1
        }
    }, {
        name: "Scaling tiles from out random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: 2
        }
    }, {
        name: "Scaling in and rotating tiles random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: .1,
            rotate: 90
        }
    }, {
        name: "Scaling and rotating tiles from out random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: 2,
            rotate: -90
        }
    }, {
        name: "Mirror-sliding tiles diagonal",
        rows: 3,
        cols: 4,
        tile: {
            delay: 15,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 850,
            direction: "topright"
        }
    }, {
        name: "Mirror-sliding rows horizontal",
        rows: 6,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Mirror-sliding rows vertical",
        rows: 6,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "top"
        }
    }, {
        name: "Mirror-sliding cols horizontal",
        rows: 1,
        cols: 8,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Mirror-sliding cols vertical",
        rows: 1,
        cols: 8,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "top"
        }
    }, {
        name: "Random slices to left",
        rows: 10,
        cols: 1,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "left"
        }
    }, {
        name: "Random slices to right",
        rows: 10,
        cols: 1,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "right"
        }
    }, {
        name: "Random slices to bottom",
        rows: 1,
        cols: 15,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "bottom"
        }
    }, {
        name: "Random slices to top",
        rows: 1,
        cols: 15,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "top"
        }
    }],
    t3d: [{
        name: "Spinning tile to right (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 91
            },
            easing: "easeInQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: 180
            },
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tile to left (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -91
            },
            easing: "easeInQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: -180
            },
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tile to bottom (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -91
            },
            easing: "easeInQuart",
            duration: 800,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: -180
            },
            easing: "easeOutQuart",
            duration: 800,
            direction: "vertical"
        }
    }, {
        name: "Spinning tile to top (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: 91
            },
            easing: "easeInQuart",
            duration: 800,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: 180
            },
            easing: "easeOutQuart",
            duration: 800,
            direction: "vertical"
        }
    }, {
        name: "Spinning tiles to right (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tiles to left (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tiles to bottom (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Spinning tiles to top (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1300,
            direction: "horizontal"
        }
    }, {
        name: "Vertical spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1300,
            direction: "vertical"
        }
    }, {
        name: "Scaling and spinning tiles to right (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning tiles to left (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning tiles to bottom (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning tiles to top (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and horizontal spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .95,
                rotateX: 30
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180,
                rotateX: -30
            },
            easing: "easeInOutBack",
            duration: 1300,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0
            },
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and vertical spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .95,
                rotateY: -15
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180,
                rotateY: 15
            },
            easing: "easeInOutBack",
            duration: 1300,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateY: 0
            },
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Spinning rows to right (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning rows to left (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning rows to bottom (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Spinning rows to top (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Vertical spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Vertical spinning rows random (540�)",
        rows: [3, 7],
        cols: 1,
        tile: {
            delay: 150,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -540
            },
            easing: "easeInOutQuart",
            duration: 2e3,
            direction: "vertical"
        }
    }, {
        name: "Scaling and spinning rows to right (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning rows to left (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning rows to bottom (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning rows to top (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 600,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Spinning columns to right (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning columns to left (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning columns to bottom (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Spinning columns to top (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning columns random (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Vertical spinning columns random (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning columns random (540�)",
        rows: 1,
        cols: [4, 9],
        tile: {
            delay: 150,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 540
            },
            easing: "easeInOutQuart",
            duration: 2e3,
            direction: "horizontal"
        }
    }, {
        name: "Scaling and spinning columns to right (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning columns to left (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning columns to bottom (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning columns to top (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal spinning columns random (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 600,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical spinning columns random (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Drunk colums scaling and spinning to right (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85,
                rotateX: -30
            },
            duration: 600,
            easing: "easeOutQuart"
        },
        animation: {
            transition: {
                rotateX: -30,
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0,
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 600
        }
    }, {
        name: "Drunk colums scaling and spinning to left (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85,
                rotateX: -30
            },
            duration: 600,
            easing: "easeOutQuart"
        },
        animation: {
            transition: {
                rotateX: 30,
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0,
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 600
        }
    }, {
        name: "Turning cuboid to right (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Turning cuboid to left (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Turning cuboid to bottom (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Turning cuboid to top (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Scaling and turning cuboid to right (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                scale3d: .8,
                rotate: 7,
                rotateX: 10,
                rotateY: 45
            },
            easing: "easeInOutQuad",
            duration: 800,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotate: 0,
                rotateX: 0,
                rotateY: 90
            },
            duration: 800,
            easing: "easeInOutQuad"
        }
    }, {
        name: "Scaling and turning cuboid to left (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                scale3d: .8,
                rotate: -7,
                rotateX: 10,
                rotateY: -45
            },
            easing: "easeInOutQuad",
            duration: 800,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotate: 0,
                rotateX: 0,
                rotateY: -90
            },
            duration: 800,
            easing: "easeInOutQuad"
        }
    }, {
        name: "Scaling and turning cuboids to right (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and turning cuboids to left (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and turning cuboids to bottom (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and turning cuboids to top (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and horizontal turning cuboids random (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                rotateX: -15
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 75,
                rotateX: 15
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: 90,
                rotateX: 0
            },
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and vertical turning cuboids random (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                rotateY: 15
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 75,
                rotateY: -15
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: 90,
                rotateY: 0
            },
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Turning rows to right (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Turning rows to left (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Horizontal turning rows random (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Scaling and turning rows to right (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 87
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200,
                rotateY: 90
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning rows to left (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning rows to bottom (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning rows to top (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal turning rows random (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical turning rows random (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal turning drunk rows to right (90�)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateY: 45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Scaling and horizontal turning drunk rows to left (90�)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateY: -45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Turning columns to bottom (90�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Turning columns to top (90�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Vertical turning columns random (90�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Scaling and turning columns to bottom (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning columns to top (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning columns to right (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning columns to left (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal turning columns random (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical turning columns random (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical turning drunk columns to right (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateX: 45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Scaling and vertical turning drunk columns to left (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateX: -45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Spinning cuboid to right (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning cuboid to left (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning cuboid to bottom (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Spinning cuboid to top (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Scaling and spinning cuboids to right (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning cuboids to left (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning cuboids to bottom (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning cuboids to top (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and horizontal spinning cuboids random (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "horizontal"
        },
        after: {
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and vertical spinning cuboids random (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "vertical"
        },
        after: {
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning rows to right (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning rows to left (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning rows to bottom (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning rows to top (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and horizontal spinning rows random (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and vertical spinning rows random (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to bottom (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to top (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to right (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to left (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and horizontal spinning columns random (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and vertical spinning columns random (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Horizontally rotating and fading cube",
        rows: 1,
        cols: 1,
        tile: {
            delay: 1,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65,
                rotateY: -270,
                opacity: 0
            },
            duration: 1500,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                scale3d: 1,
                rotateY: -540,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Vertically rotating and fading cube",
        rows: 1,
        cols: 1,
        tile: {
            delay: 1,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65,
                rotateX: -270,
                opacity: 0
            },
            duration: 1500,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                scale3d: 1,
                rotateX: -540,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Horizontally rotating and fading cuboids",
        rows: [2, 3],
        cols: [3, 5],
        tile: {
            delay: 50,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                opacity: 0
            },
            duration: 350,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                rotateY: -45,
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateY: 0,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1200
        }
    }, {
        name: "Vertically rotating and fading cuboids",
        rows: [2, 3],
        cols: [3, 5],
        tile: {
            delay: 50,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                opacity: 0
            },
            duration: 350,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                rotateX: -45,
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1200
        }
    }]
};
                                    

#48 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 1ec9f8efacc73754babe6a497967887a294d93ce5f2b915d526514a0ddf56f94

                                        Uj
                                    

#49 JavaScript::Eval (size: 93, repeated: 1) - SHA256: f778cbcfc92a5afea45fa8dd885b83e3d33502cb09c58d9c4d49a4975709bcac

                                        0,
function(D, H, A, q, S, a) {
    p(D, (A = Z(D, (a = Z(D, (S = (H = (q = J(5, D), J(3, D)), J(3, D)), q)), H)), S), +(a > A))
}
                                    

#50 JavaScript::Eval (size: 1, repeated: 1) - SHA256: 148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940

                                        p
                                    

#51 JavaScript::Eval (size: 113, repeated: 1) - SHA256: d61ea21dce9d5f5f1682deb0260a012dbd4f1e947257cabd7df07a0d3b6a2296

                                        0,
function(D, H, A, q) {
    T(25, 4, true, false, H, D) || (q = J(5, D), A = J(6, D), p(D, A, function(S) {
        return eval(S)
    }(gj(Z(D.h, q)))))
}
                                    

#52 JavaScript::Eval (size: 75, repeated: 1) - SHA256: ab9cafbd78f132402b05007568ade05e8a1fa4ae5914910b3a51aa4b88e98779

                                        0,
function(D, H, A, q) {
    p((q = (H = (A = J(5, D), J)(5, D), J)(6, D), D), q, Z(D, A) || Z(D, H))
}
                                    

#53 JavaScript::Eval (size: 53, repeated: 1) - SHA256: e55373fba252ef862e1b120083b2f45c0d7907020bb016b2d8cdb5deeecd77aa

                                        0, V = function(Y, G, R) {
    return R.j ? YD(R, R.V) : ob(Y, G, R, Y)
}
                                    

#54 JavaScript::Eval (size: 153, repeated: 1) - SHA256: e2935164e0559dc221ac061cacc16f3e535ff81e2a5139e8d99174834d1e85e4

                                        0,
function(D, H, A, q, S, a, m) {
    for (A = (H = (S = Z(D, (m = (a = kD(8, D, true, (q = J(5, D), 7)), ""), 472)), S.length), 0); a--;) A = ((A | 0) + (kD(8, D, true, 5) | 0)) % H, m += X[S[A]];
    p(D, q, m)
}
                                    

#55 JavaScript::Eval (size: 77, repeated: 1) - SHA256: f91e38cc0be973ee8ce5ca34a3d4d7b100b18201f34cfbf4da05235a4c129e2d

                                        0,
function(D, H, A, q, S) {
    p(D, (A = Z(D, (S = (H = J(6, (q = J(3, D), D)), Z)(D, H), q)), H), S - A)
}
                                    

#56 JavaScript::Eval (size: 320, repeated: 1) - SHA256: a5bccf8fea2e36ce46f4d3280890f771b8683504ea608b824f266c507950adf1

                                        0,
function(D, H, A, q, S, a, m, v, e, B) {
    for (A = (B = e = a = 0, []); e < D.d.length;) {
        for (m = (S = "", D).d[e++]; S.length != m;) {
            for (; D.M[a] == B;) S += X[D.M[++a]], a++;
            if (S.length == m) break;
            S += X[D[B++]]
        }
        if (v = D.d[e++]) q = 1 == v ? S : v.match(/=$/) ? v + S : "this." + v + "=" + S, H = eval(gj("0," + q)), 1 == v && (H[Ag] = 371892), A.push(H)
    }
    return delete D.d, D.length = 0, delete D.M, A
}
                                    

#57 JavaScript::Eval (size: 46, repeated: 1) - SHA256: 0c7ce5e32cb06473b4746293ea99566d3e7ac0258f4bd8fa9dfdc82a71b07df3

                                        0,
function(D, H) {
    Rr(166, (H = Z(D, J(7, D)), H), D.h)
}
                                    

#58 JavaScript::Eval (size: 77, repeated: 1) - SHA256: 18c7249c246698047fe77dc869ec4615fafaf2f0ffa6c6345b320b3ad8f85a3d

                                        0,
function(D, H, A, q, S) {
    p(D, (A = Z(D, (S = (H = J(6, (q = J(3, D), D)), Z)(D, H), q)), H), S % A)
}
                                    

#59 JavaScript::Eval (size: 2, repeated: 1) - SHA256: c73e81873048dce45ab1bd599057ede07b66645a40fab6eb57984df159c7aed4

                                        HO
                                    

#60 JavaScript::Eval (size: 458, repeated: 1) - SHA256: 3a33455358565bd2514364279d34c00bc7dda20909c2c604fcdbcd8ec4bff711

                                        0, Uj = function(Y, G, R, g, M, X, D, H, A, q) {
    for (R = (D = (g = (H = Y.replace(/\r\n/g, "\n"), 0), []), 0); g < H.length; g++) A = H.charCodeAt(g), 128 > A ? D[R++] = A : (A < G ? D[R++] = (X = A >> 6, -~(X | 192) + (X & -193) + (~X | 192)) : (55296 == (A | 64512) - ~A + -64513 - 2 * (A & -64513) && g + 1 < H.length && 56320 == (H.charCodeAt(g + 1) & 64512) ? (A = 65536 + (1023 - (~A & 1023) << 10) + (H.charCodeAt(++g) & 1023), D[R++] = A >> 18 | 240, D[R++] = (q = A >> 12, 63 - ~(q & 63) + -64) | 128) : D[R++] = A >> 12 | 224, D[R++] = A >> 6 & 63 | 128), D[R++] = (M = A & 63, 128 + ~(M & 128) - ~M));
    return D
}
                                    

#61 JavaScript::Eval (size: 369, repeated: 1) - SHA256: 25fd68f90d67eca26e9efeca4031e52cbd63e2c1085699710186158025bc041a

                                        TJ = function(Y, G, R, g, M, X, D, H, A, q, S, a, m, v, e, B) {
    (G.push((A = (X = Y[0] << 24, H = Y[1] << 16, (H | 0) - 1 - (~X | H)), S = Y[2] << 8, (A & S) + ~(A & S) - ~(A | S)) | Y[3]), G).push((D = (M = Y[4] << 24, R = Y[5] << 16, (M & R) - ~(M & R) + ~(M | R) + 2 * (M ^ R)) | Y[6] << 8, m = Y[7], -~(D & m) + (D & ~m) + 2 * (~D & m) + (D | ~m))), G.push((a = (q = (B = Y[8] << 24, v = Y[9] << 16, (B | 0) + ~B - ~(B | v)), g = Y[10] << 8, (g | 0) - (q & ~g) - 2 * (~q ^ g) + 2 * (q | ~g)), e = Y[11], (a | 0) - (~a ^ e) + (~a | e)))
}
                                    

#62 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 84ed3cf343eb39fbef79b266e4d4cd9484fb89f3487ca7e080680a1fb4ec92d0

                                        BO
                                    

#63 JavaScript::Eval (size: 22, repeated: 1) - SHA256: 80cd5ba295ad162a44c06997742850bac922d8693e2100f029ad510032ed1d6f

                                        0,
function(D) {
    Mu(D, 3)
}
                                    

#64 JavaScript::Eval (size: 2, repeated: 1) - SHA256: b6d8a632f29cbb2f339f9da15e0de49bfbfc493abcf426bcab6f92c4e3564d7d

                                        kD
                                    

#65 JavaScript::Eval (size: 51, repeated: 1) - SHA256: 013f6e0357a7e9dca4875e02258b8ae52f61451b768373bc963b1474d9ed7a1a

                                        V = function(Y, G, R) {
    return R.j ? YD(R, R.V) : ob(Y, G, R, Y)
}
                                    

#66 JavaScript::Eval (size: 77, repeated: 1) - SHA256: aa70623b8834035335fa8a360bc467ead0e7c0a25d84a33eef6148864ba8bd89

                                        0,
function(D, H, A, q, S) {
    p(D, (A = Z(D, (S = (H = J(6, (q = J(3, D), D)), Z)(D, H), q)), H), S + A)
}
                                    

#67 JavaScript::Eval (size: 102, repeated: 1) - SHA256: a49739da362ce3b6e73757ddaa8c1230e97a55302f1192dbad0d0b5fb0d3bdee

                                        0,
function(D, H, A, q, S) {
    for (q = (H = kD(8, D, (S = J(7, D), true), 6), A = [], 0); q < H; q++) A.push(V(8, true, D));
    p(D, S, A)
}
                                    

#68 JavaScript::Eval (size: 2, repeated: 1) - SHA256: dbdbc97d5de3e2fe6756986e0f1f2885727d3dd8cd5a22183fa33c241ab6d28e

                                        ob
                                    

#69 JavaScript::Eval (size: 1, repeated: 1) - SHA256: 18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4

                                        d
                                    

#70 JavaScript::Eval (size: 1, repeated: 1) - SHA256: e3b98a4da31a127d4bde6e43033f66ba274cab0eb7eb1c70ec41402bf6273dd8

                                        t
                                    

#71 JavaScript::Eval (size: 32, repeated: 1) - SHA256: 3f5797626094c70880166e26ed3f76e4d97f3eab88bb5a3e32bcd85c65001708

                                        0,
function(D) {
    kD(8, D, true, 18, 4)
}
                                    

#72 JavaScript::Eval (size: 2, repeated: 1) - SHA256: a082f17cf976fb34724b2d88f5a779341f1db75157bde2da48cd392c0b74ecb7

                                        qu
                                    

#73 JavaScript::Eval (size: 118, repeated: 1) - SHA256: 8950bf21691c41839f60bec1b72c78bce2ff1c5c75b356239e8234dc6b8b6451

                                        0, YD = function(Y, G, R) {
    return (R = G.create().shift(), Y).j.create().length || Y.V.create().length || (Y.V = void 0, Y.j = void 0), R
}
                                    

#74 JavaScript::Eval (size: 77637, repeated: 1) - SHA256: ef8a2e3e82d8c14e82db2e286633a1c9ddf23fdc132c377c4c90479c851df332

                                        (function(g, p, Q) {
    function F(a, b) {
        return parseInt(a.css(b), 10) || 0
    }

    function J() {
        var a = p,
            b = "inner";
        "innerWidth" in p || (b = "client", a = document.documentElement || document.body);
        return {
            width: a[b + "Width"],
            height: a[b + "Height"]
        }
    }

    function ia() {
        var a = L();
        p.location.hash = "";
        p.scrollTo(a.x, a.y)
    }

    function ja(a, b) {
        a = "//ilightbox.net/getSource/jsonp.php?url=" + encodeURIComponent(a).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A");
        g.ajax({
            url: a,
            dataType: "jsonp"
        });
        iLCallback = function(a) {
            b.call(this, a)
        }
    }

    function R(a) {
        var b = [];
        g("*", a).each(function() {
            var a = "";
            "none" != g(this).css("background-image") ? a = g(this).css("background-image") : "undefined" != typeof g(this).attr("src") && "img" == this.nodeName.toLowerCase() && (a = g(this).attr("src"));
            if (-1 == a.indexOf("gradient")) {
                a = a.replace(/url\(\"/g, "");
                a = a.replace(/url\(/g, "");
                a = a.replace(/\"\)/g, "");
                a = a.replace(/\)/g, "");
                a = a.split(",");
                for (var d = 0; d < a.length; d++)
                    if (0 < a[d].length && -1 == g.inArray(a[d], b)) {
                        var e = "";
                        D.msie && 9 > D.version && (e = "?" + M(3E3 * S()));
                        b.push(a[d] + e)
                    }
            }
        });
        return b
    }

    function Z(a) {
        a = a.split(".").pop().toLowerCase();
        var b = -1 !== a.indexOf("?") ? a.split("?").pop() : "";
        return a.replace(b, "")
    }

    function aa(a) {
        a = Z(a);
        return -1 !== T.image.indexOf(a) ? "image" : -1 !== T.flash.indexOf(a) ? "flash" : -1 !== T.video.indexOf(a) ? "video" : "iframe"
    }

    function ba(a, b) {
        return parseInt(b / 100 * a)
    }

    function U(a) {
        return (a = String(a).replace(/^\s+|\s+$/g, "").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/)) ? {
            href: a[0] || "",
            protocol: a[1] || "",
            authority: a[2] || "",
            host: a[3] || "",
            hostname: a[4] || "",
            port: a[5] || "",
            pathname: a[6] || "",
            search: a[7] || "",
            hash: a[8] || ""
        } : null
    }

    function N(a, b) {
        function c(a) {
            var b = [];
            a.replace(/^(\.\.?(\/|$))+/, "").replace(/\/(\.(\/|$))+/g, "/").replace(/\/\.\.$/, "/../").replace(/\/?[^\/]*/g, function(a) {
                "/.." === a ? b.pop() : b.push(a)
            });
            return b.join("").replace(/^\//, "/" === a.charAt(0) ? "/" : "")
        }
        b = U(b || "");
        a = U(a || "");
        return b && a ? (b.protocol || a.protocol) + (b.protocol || b.authority ? b.authority : a.authority) + c(b.protocol || b.authority || "/" === b.pathname.charAt(0) ? b.pathname : b.pathname ? (a.authority && !a.pathname ? "/" : "") + a.pathname.slice(0, a.pathname.lastIndexOf("/") + 1) + b.pathname : a.pathname) + (b.protocol || b.authority || b.pathname ? b.search : b.search || a.search) + b.hash : null
    }

    function ka(a, b, c) {
        this.php_js = this.php_js || {};
        this.php_js.ENV = this.php_js.ENV || {};
        var d = 0,
            e = 0,
            f = 0,
            h = {
                dev: -6,
                alpha: -5,
                a: -5,
                beta: -4,
                b: -4,
                RC: -3,
                rc: -3,
                "#": -2,
                p: 1,
                pl: 1
            };
        d = function(a) {
            a = ("" + a).replace(/[_\-+]/g, ".");
            a = a.replace(/([^.\d]+)/g, ".$1.").replace(/\.{2,}/g, ".");
            return a.length ? a.split(".") : [-8]
        };
        var g = function(a) {
            return a ? isNaN(a) ? h[a] || -7 : parseInt(a, 10) : 0
        };
        a = d(a);
        b = d(b);
        e = ca(a.length, b.length);
        for (d = 0; d < e; d++)
            if (a[d] != b[d])
                if (a[d] = g(a[d]), b[d] = g(b[d]), a[d] < b[d]) {
                    f = -1;
                    break
                } else if (a[d] > b[d]) {
            f = 1;
            break
        }
        if (!c) return f;
        switch (c) {
            case ">":
            case "gt":
                return 0 < f;
            case ">=":
            case "ge":
                return 0 <= f;
            case "<=":
            case "le":
                return 0 >= f;
            case "==":
            case "=":
            case "eq":
                return 0 === f;
            case "<>":
            case "!=":
            case "ne":
                return 0 !== f;
            case "":
            case "<":
            case "lt":
                return 0 > f;
            default:
                return null
        }
    }

    function L() {
        var a = 0,
            b = 0;
        "number" == typeof p.pageYOffset ? (b = p.pageYOffset, a = p.pageXOffset) : document.body && (document.body.scrollLeft || document.body.scrollTop) ? (b = document.body.scrollTop, a = document.body.scrollLeft) : document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop) && (b = document.documentElement.scrollTop, a = document.documentElement.scrollLeft);
        return {
            x: a,
            y: b
        }
    }

    function da(a, b, c) {
        var d = r[a + b];
        null == d && (d = r[b]);
        return null != d ? (0 == b.indexOf(a) && null == c && (c = b.substring(a.length)), null == c && (c = b), c + '="' + d + '" ') : ""
    }

    function A(a, b) {
        if (0 == a.indexOf("emb#")) return "";
        0 == a.indexOf("obj#") && null == b && (b = a.substring(4));
        return da("obj#", a, b)
    }

    function G(a, b) {
        if (0 == a.indexOf("obj#")) return "";
        0 == a.indexOf("emb#") && null == b && (b = a.substring(4));
        return da("emb#", a, b)
    }

    function ea(a, b) {
        var c, d = "",
            e = b ? " />" : ">"; - 1 == a.indexOf("emb#") && (c = r["obj#" + a], null == c && (c = r[a]), 0 == a.indexOf("obj#") && (a = a.substring(4)), null != c && (d = '  <param name="' + a + '" value="' + c + '"' + e + "\n"));
        return d
    }

    function la() {
        for (var a = 0; a < arguments.length; a++) {
            var b = arguments[a];
            delete r[b];
            delete r["emb#" + b];
            delete r["obj#" + b]
        }
    }

    function ma() {
        var a = "QT_GenerateOBJECTText";
        var b = arguments;
        if (4 > b.length || 0 != b.length % 2) b = na, b = b.replace("%%", a), alert(b), a = "";
        else {
            r = [];
            r.src = b[0];
            r.width = b[1];
            r.height = b[2];
            r.classid = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";
            r.pluginspage = "http://www.apple.com/quicktime/download/";
            a = b[3];
            if (null == a || "" == a) a = "6,0,2,0";
            r.codebase = "http://www.apple.com/qtactivex/qtplugin.cab#version=" + a;
            for (var c, d = 4; d < b.length; d += 2) c = b[d].toLowerCase(), a = b[d + 1], "name" == c || "id" == c ? r.name = a : r[c] = a;
            b = "<object " + A("classid") + A("width") + A("height") + A("codebase") + A("name", "id") + A("tabindex") + A("hspace") + A("vspace") + A("border") + A("align") + A("class") + A("title") + A("accesskey") + A("noexternaldata") + ">\n" + ea("src", !1);
            d = "  <embed " + G("src") + G("width") + G("height") + G("pluginspage") + G("name") + G("align") + G("tabindex");
            la("src", "width", "height", "pluginspage", "classid", "codebase", "name", "tabindex", "hspace", "vspace", "border", "align", "noexternaldata", "class", "title", "accesskey");
            for (c in r) a = r[c], null != a && (d += G(c), b += ea(c, !1));
            a = b + d + "> </embed>\n</object>"
        }
        return a
    }
    var T = {
            flash: ["swf"],
            image: "bmp gif jpeg jpg png tiff tif jfif jpe".split(" "),
            iframe: "asp aspx cgi cfm htm html jsp php pl php3 php4 php5 phtml rb rhtml shtml txt".split(" "),
            video: "avi mov mpg mpeg movie mp4 webm ogv ogg 3gp m4v".split(" ")
        },
        O = g(p),
        E = g(document),
        D, B, H, t = "",
        V = navigator.userAgent || navigator.vendor || p.opera,
        z = !!("ontouchstart" in p) && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(V),
        oa = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(V) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(V.substr(0, 4)),
        K = z ? "itap.iLightBox" : "click.iLightBox",
        pa = z ? "touchstart.iLightBox" : "mousedown.iLightBox",
        qa = z ? "touchend.iLightBox" : "mouseup.iLightBox",
        W = z ? "touchmove.iLightBox" : "mousemove.iLightBox",
        I = Math.abs,
        P = Math.sqrt,
        X = Math.round,
        ca = Math.max,
        Y = Math.min,
        M = Math.floor,
        S = Math.random,
        fa = function(a, b, c, d) {
            var e = this;
            e.options = b;
            e.selector = a.selector || a;
            e.context = a.context;
            e.instant = d;
            1 > c.length ? e.attachItems() : e.items = c;
            e.vars = {
                total: e.items.length,
                start: 0,
                current: null,
                next: null,
                prev: null,
                BODY: g("body"),
                loadRequests: 0,
                overlay: g('<div class="ilightbox-overlay"></div>'),
                loader: g('<div class="ilightbox-loader"><div></div></div>'),
                toolbar: g('<div class="ilightbox-toolbar"></div>'),
                innerToolbar: g('<div class="ilightbox-inner-toolbar"></div>'),
                title: g('<div class="ilightbox-title"></div>'),
                closeButton: g('<a class="ilightbox-close" title="' + e.options.text.close + '"></a>'),
                fullScreenButton: g('<a class="ilightbox-fullscreen" title="' + e.options.text.enterFullscreen + '"></a>'),
                innerPlayButton: g('<a class="ilightbox-play" title="' + e.options.text.slideShow + '"></a>'),
                innerNextButton: g('<a class="ilightbox-next-button" title="' + e.options.text.next + '"></a>'),
                innerPrevButton: g('<a class="ilightbox-prev-button" title="' + e.options.text.previous + '"></a>'),
                holder: g('<div class="ilightbox-holder' + (z ? " supportTouch" : "") + '" ondragstart="return false;"><div class="ilightbox-container"></div></div>'),
                nextPhoto: g('<div class="ilightbox-holder' + (z ? " supportTouch" : "") + ' ilightbox-next" ondragstart="return false;"><div class="ilightbox-container"></div></div>'),
                prevPhoto: g('<div class="ilightbox-holder' + (z ? " supportTouch" : "") + ' ilightbox-prev" ondragstart="return false;"><div class="ilightbox-container"></div></div>'),
                nextButton: g('<a class="ilightbox-button ilightbox-next-button" ondragstart="return false;" title="' + e.options.text.next + '"><span></span></a>'),
                prevButton: g('<a class="ilightbox-button ilightbox-prev-button" ondragstart="return false;" title="' + e.options.text.previous + '"><span></span></a>'),
                thumbnails: g('<div class="ilightbox-thumbnails" ondragstart="return false;"><div class="ilightbox-thumbnails-container"><a class="ilightbox-thumbnails-dragger"></a><div class="ilightbox-thumbnails-grid"></div></div></div>'),
                thumbs: !1,
                nextLock: !1,
                prevLock: !1,
                hashLock: !1,
                isMobile: !1,
                mobileMaxWidth: 980,
                isInFullScreen: !1,
                isSwipe: !1,
                mouseID: 0,
                cycleID: 0,
                isPaused: 0
            };
            e.vars.hideableElements = e.vars.nextButton.add(e.vars.prevButton);
            e.normalizeItems();
            e.availPlugins();
            e.options.startFrom = 0 < e.options.startFrom && e.options.startFrom >= e.vars.total ? e.vars.total - 1 : e.options.startFrom;
            e.options.startFrom = e.options.randomStart ? M(S() * e.vars.total) : e.options.startFrom;
            e.vars.start = e.options.startFrom;
            d ? e.instantCall() : e.patchItemsEvents();
            e.options.linkId && (e.hashChangeHandler(), O.iLightBoxHashChange(function() {
                e.hashChangeHandler()
            }));
            z && (a = /(click|mouseenter|mouseleave|mouseover|mouseout)/ig, e.options.caption.show = e.options.caption.show.replace(a, "itap"), e.options.caption.hide = e.options.caption.hide.replace(a, "itap"), e.options.social.show = e.options.social.show.replace(a, "itap"), e.options.social.hide = e.options.social.hide.replace(a, "itap"));
            e.options.controls.arrows && g.extend(e.options.styles, {
                nextOffsetX: 0,
                prevOffsetX: 0,
                nextOpacity: 0,
                prevOpacity: 0
            })
        };
    fa.prototype = {
        showLoader: function() {
            this.vars.loadRequests += 1;
            "horizontal" == this.options.path.toLowerCase() ? this.vars.loader.addClass("ilightbox-show").stop().animate({
                top: "-30px"
            }, this.options.show.speed, "easeOutCirc") : this.vars.loader.addClass("ilightbox-show").stop().animate({
                left: "-30px"
            }, this.options.show.speed, "easeOutCirc")
        },
        hideLoader: function() {
            --this.vars.loadRequests;
            this.vars.loadRequests = 0 > this.vars.loadRequests ? 0 : this.vars.loadRequests;
            "horizontal" == this.options.path.toLowerCase() ? 0 >= this.vars.loadRequests && this.vars.loader.removeClass("ilightbox-show").stop().animate({
                top: "-192px"
            }, this.options.show.speed, "easeInCirc") : 0 >= this.vars.loadRequests && this.vars.loader.removeClass("ilightbox-show").stop().animate({
                left: "-192px"
            }, this.options.show.speed, "easeInCirc")
        },
        createUI: function() {
            var a = this;
            a.ui = {
                currentElement: a.vars.holder,
                nextElement: a.vars.nextPhoto,
                prevElement: a.vars.prevPhoto,
                currentItem: a.vars.current,
                nextItem: a.vars.next,
                prevItem: a.vars.prev,
                hide: function() {
                    a.closeAction()
                },
                refresh: function() {
                    0 < arguments.length ? a.repositionPhoto(!0) : a.repositionPhoto()
                },
                fullscreen: function() {
                    a.fullScreenAction()
                }
            }
        },
        attachItems: function() {
            var a = this,
                b = [],
                c = [];
            g(a.selector, a.context).each(function() {
                var d = g(this),
                    e = d.attr(a.options.attr) || null,
                    f = d.data("options") && eval("({" + d.data("options") + "})") || {},
                    h = d.data("caption"),
                    l = d.data("title"),
                    k = d.data("type") || aa(e);
                c.push({
                    URL: e,
                    caption: h,
                    title: l,
                    type: k,
                    options: f
                });
                a.instant || b.push(d)
            });
            a.items = c;
            a.itemsObject = b
        },
        normalizeItems: function() {
            var a = this,
                b = [];
            g.each(a.items, function(c, d) {
                "string" == typeof d && (d = {
                    url: d
                });
                var e = d.url || d.URL || null,
                    f = d.options || {},
                    h = d.caption || null,
                    l = d.title || null,
                    k = d.type ? d.type.toLowerCase() : aa(e),
                    n = "object" != typeof e ? Z(e) : "";
                f.thumbnail = f.thumbnail || ("image" == k ? e : null);
                f.videoType = f.videoType || null;
                f.skin = f.skin || a.options.skin;
                f.width = f.width || null;
                f.height = f.height || null;
                f.mousewheel = "undefined" != typeof f.mousewheel ? f.mousewheel : !0;
                f.swipe = "undefined" != typeof f.swipe ? f.swipe : !0;
                f.social = "undefined" != typeof f.social ? f.social : a.options.social.buttons && g.extend({}, {}, a.options.social.buttons);
                "video" == k && (f.html5video = "undefined" != typeof f.html5video ? f.html5video : {}, f.html5video.webm = f.html5video.webm || f.html5video.WEBM || null, f.html5video.controls = "undefined" != typeof f.html5video.controls ? f.html5video.controls : "controls", f.html5video.preload = f.html5video.preload || "metadata", f.html5video.autoplay = "undefined" != typeof f.html5video.autoplay ? f.html5video.autoplay : !1);
                f.width && f.height || ("video" == k ? (f.width = 1280, f.height = 720) : "iframe" == k ? (f.width = "100%", f.height = "90%") : "flash" == k && (f.width = 1280, f.height = 720));
                delete d.url;
                d.index = c;
                d.URL = e;
                d.caption = h;
                d.title = l;
                d.type = k;
                d.options = f;
                d.ext = n;
                b.push(d)
            });
            a.items = b
        },
        instantCall: function() {
            var a = this.vars.start;
            this.vars.current = a;
            this.vars.next = this.items[a + 1] ? a + 1 : null;
            this.vars.prev = this.items[a - 1] ? a - 1 : null;
            this.addContents();
            this.patchEvents()
        },
        addContents: function() {
            var a = this,
                b = a.vars,
                c = a.options,
                d = J(),
                e = c.path.toLowerCase(),
                f = 0 < b.total && a.items.filter(function(a, b, d) {
                    return -1 === ["image", "flash", "video"].indexOf(a.type) && "undefined" === typeof a.recognized && (c.smartRecognition || a.options.smartRecognition)
                }),
                h = 0 < f.length;
            c.mobileOptimizer && !c.innerToolbar && (b.isMobile = d.width <= b.mobileMaxWidth);
            b.overlay.addClass(c.skin).hide().css("opacity", c.overlay.opacity);
            c.linkId && b.overlay[0].setAttribute("linkid", c.linkId);
            c.controls.toolbar && (b.toolbar.addClass(c.skin).append(b.closeButton), c.controls.fullscreen && b.toolbar.append(b.fullScreenButton), c.controls.slideshow && b.toolbar.append(b.innerPlayButton), 1 < b.total && b.toolbar.append(b.innerPrevButton).append(b.innerNextButton));
            b.BODY.addClass("ilightbox-noscroll").append(b.overlay).append(b.loader).append(b.holder).append(b.nextPhoto).append(b.prevPhoto);
            c.innerToolbar || b.BODY.append(b.toolbar);
            c.controls.arrows && b.BODY.append(b.nextButton).append(b.prevButton);
            c.controls.thumbnail && 1 < b.total && (b.BODY.append(b.thumbnails), b.thumbnails.addClass(c.skin).addClass("ilightbox-" + e), g("div.ilightbox-thumbnails-grid", b.thumbnails).empty(), b.thumbs = !0);
            d = "horizontal" == c.path.toLowerCase() ? {
                left: parseInt(d.width / 2 - b.loader.outerWidth() / 2)
            } : {
                top: parseInt(d.height / 2 - b.loader.outerHeight() / 2)
            };
            b.loader.addClass(c.skin).css(d);
            b.nextButton.add(b.prevButton).addClass(c.skin);
            "horizontal" == e && b.loader.add(b.nextButton).add(b.prevButton).addClass("horizontal");
            b.BODY[b.isMobile ? "addClass" : "removeClass"]("isMobile");
            c.infinite || (b.prevButton.add(b.prevButton).add(b.innerPrevButton).add(b.innerNextButton).removeClass("disabled"), 0 == b.current && b.prevButton.add(b.innerPrevButton).addClass("disabled"), b.current >= b.total - 1 && b.nextButton.add(b.innerNextButton).addClass("disabled"));
            c.show.effect ? (b.overlay.stop().fadeIn(c.show.speed), b.toolbar.stop().fadeIn(c.show.speed)) : (b.overlay.show(), b.toolbar.show());
            var l = f.length;
            h ? (a.showLoader(), g.each(f, function(d, e) {
                a.ogpRecognition(this, function(d) {
                    console.log(d);
                    var e = -1;
                    a.items.filter(function(a, b, c) {
                        a.URL == d.url && (e = b);
                        return a.URL == d.url
                    });
                    var f = a.items[e];
                    d && g.extend(!0, f, {
                        URL: d.source,
                        type: d.type,
                        recognized: !0,
                        options: {
                            html5video: d.html5video,
                            width: "image" == d.type ? 0 : d.width || f.width,
                            height: "image" == d.type ? 0 : d.height || f.height,
                            thumbnail: f.options.thumbnail || d.thumbnail
                        }
                    });
                    l--;
                    0 == l && (a.hideLoader(), b.dontGenerateThumbs = !1, a.generateThumbnails(), c.show.effect ? setTimeout(function() {
                        a.generateBoxes()
                    }, c.show.speed) : a.generateBoxes())
                })
            })) : c.show.effect ? setTimeout(function() {
                a.generateBoxes()
            }, c.show.speed) : a.generateBoxes();
            a.createUI();
            p.iLightBox = {
                close: function() {
                    a.closeAction()
                },
                fullscreen: function() {
                    a.fullScreenAction()
                },
                moveNext: function() {
                    a.moveTo("next")
                },
                movePrev: function() {
                    a.moveTo("prev")
                },
                goTo: function(b) {
                    a.goTo(b)
                },
                refresh: function() {
                    a.refresh()
                },
                reposition: function() {
                    0 < arguments.length ? a.repositionPhoto(!0) : a.repositionPhoto()
                },
                setOption: function(b) {
                    a.setOption(b)
                },
                destroy: function() {
                    a.closeAction();
                    a.dispatchItemsEvents()
                }
            };
            c.linkId && (b.hashLock = !0, p.location.hash = c.linkId + "/" + b.current, setTimeout(function() {
                b.hashLock = !1
            }, 55));
            c.slideshow.startPaused || (a.resume(), b.innerPlayButton.removeClass("ilightbox-play").addClass("ilightbox-pause"));
            "function" == typeof a.options.callback.onOpen && a.options.callback.onOpen.call(a)
        },
        loadContent: function(a, b, c) {
            this.createUI();
            a.speed = c || this.options.effects.loadedFadeSpeed;
            "current" == b && (this.vars.lockWheel = a.options.mousewheel ? !1 : !0, this.vars.lockSwipe = a.options.swipe ? !1 : !0);
            switch (b) {
                case "current":
                    var d = this.vars.holder;
                    var e = this.vars.current;
                    break;
                case "next":
                    d = this.vars.nextPhoto;
                    e = this.vars.next;
                    break;
                case "prev":
                    d = this.vars.prevPhoto, e = this.vars.prev
            }
            d.removeAttr("style class").addClass("ilightbox-holder" + (z ? " supportTouch" : "")).addClass(a.options.skin);
            g("div.ilightbox-inner-toolbar", d).remove();
            if (a.title || this.options.innerToolbar) {
                var f = this.vars.innerToolbar.clone();
                if (a.title && this.options.show.title) {
                    var h = this.vars.title.clone();
                    h.empty().html(a.title);
                    f.append(h)
                }
                this.options.innerToolbar && f.append(1 < this.vars.total ? this.vars.toolbar.clone() : this.vars.toolbar);
                d.prepend(f)
            }
            console.warn("loadContent", arguments);
            this.loadSwitcher(a, d, e, b)
        },
        loadSwitcher: function(a, b, c, d) {
            var e = this,
                f = e.options,
                h = {
                    element: b,
                    position: c
                };
            switch (a.type) {
                case "image":
                    "function" == typeof f.callback.onBeforeLoad && f.callback.onBeforeLoad.call(e, e.ui, c);
                    "function" == typeof a.options.onBeforeLoad && a.options.onBeforeLoad.call(e, h);
                    e.loadImage(a.URL, function(k) {
                        "function" == typeof f.callback.onAfterLoad && f.callback.onAfterLoad.call(e, e.ui, c);
                        "function" == typeof a.options.onAfterLoad && a.options.onAfterLoad.call(e, h);
                        b.data({
                            naturalWidth: k ? k.width : 400,
                            naturalHeight: k ? k.height : 200
                        });
                        g("div.ilightbox-container", b).empty().append(k ? '<img src="' + a.URL + '" class="ilightbox-image" />' : '<span class="ilightbox-alert">' + f.errors.loadImage + "</span>");
                        "function" == typeof f.callback.onRender && f.callback.onRender.call(e, e.ui, c);
                        "function" == typeof a.options.onRender && a.options.onRender.call(e, h);
                        e.configureHolder(a, d, b)
                    });
                    break;
                case "video":
                    b.data({
                        naturalWidth: a.options.width,
                        naturalHeight: a.options.height
                    });
                    "current" === d ? (e.addContent(b, a), "function" == typeof f.callback.onRender && f.callback.onRender.call(e, e.ui, c), "function" == typeof a.options.onRender && a.options.onRender.call(e, h)) : g("div.ilightbox-container", b).empty();
                    e.configureHolder(a, d, b);
                    break;
                case "iframe":
                    b.data({
                        naturalWidth: a.options.width,
                        naturalHeight: a.options.height
                    });
                    e.configureHolder(a, d, b);
                    if ("current" === d) {
                        var l = e.addContent(b, a);
                        "function" == typeof f.callback.onRender && f.callback.onRender.call(e, e.ui, c);
                        "function" == typeof a.options.onRender && a.options.onRender.call(e, h);
                        "function" == typeof f.callback.onBeforeLoad && f.callback.onBeforeLoad.call(e, e.ui, c);
                        "function" == typeof a.options.onBeforeLoad && a.options.onBeforeLoad.call(e, h);
                        l.bind("load", function() {
                            "function" == typeof f.callback.onAfterLoad && f.callback.onAfterLoad.call(e, e.ui, c);
                            "function" == typeof a.options.onAfterLoad && a.options.onAfterLoad.call(e, h);
                            l.unbind("load")
                        })
                    } else g("div.ilightbox-container", b).empty();
                    break;
                case "inline":
                    l = g(a.URL);
                    var k = e.addContent(b, a),
                        n = R(b);
                    b.data({
                        naturalWidth: e.items[c].options.width || l.outerWidth(),
                        naturalHeight: e.items[c].options.height || l.outerHeight()
                    });
                    k.children().eq(0).show();
                    "function" == typeof f.callback.onRender && f.callback.onRender.call(e, e.ui, c);
                    "function" == typeof a.options.onRender && a.options.onRender.call(e, h);
                    "function" == typeof f.callback.onBeforeLoad && f.callback.onBeforeLoad.call(e, e.ui, c);
                    "function" == typeof a.options.onBeforeLoad && a.options.onBeforeLoad.call(e, h);
                    e.loadImage(n, function() {
                        "function" == typeof f.callback.onAfterLoad && f.callback.onAfterLoad.call(e, e.ui, c);
                        "function" == typeof a.options.onAfterLoad && a.options.onAfterLoad.call(e, h);
                        e.configureHolder(a, d, b)
                    });
                    break;
                case "flash":
                    l = e.addContent(b, a);
                    b.data({
                        naturalWidth: e.items[c].options.width || l.outerWidth(),
                        naturalHeight: e.items[c].options.height || l.outerHeight()
                    });
                    "function" == typeof f.callback.onRender && f.callback.onRender.call(e, e.ui, c);
                    "function" == typeof a.options.onRender && a.options.onRender.call(e, h);
                    e.configureHolder(a, d, b);
                    break;
                case "ajax":
                    var m = a.options.ajax || {};
                    "function" == typeof f.callback.onBeforeLoad && f.callback.onBeforeLoad.call(e, e.ui, c);
                    "function" == typeof a.options.onBeforeLoad && a.options.onBeforeLoad.call(e, h);
                    e.showLoader();
                    g.ajax({
                        url: a.URL || f.ajaxSetup.url,
                        data: m.data || null,
                        dataType: m.dataType || "html",
                        type: m.type || f.ajaxSetup.type,
                        cache: m.cache || f.ajaxSetup.cache,
                        crossDomain: m.crossDomain || f.ajaxSetup.crossDomain,
                        global: m.global || f.ajaxSetup.global,
                        ifModified: m.ifModified || f.ajaxSetup.ifModified,
                        username: m.username || f.ajaxSetup.username,
                        password: m.password || f.ajaxSetup.password,
                        beforeSend: m.beforeSend || f.ajaxSetup.beforeSend,
                        complete: m.complete || f.ajaxSetup.complete,
                        success: function(k, l, n) {
                            e.hideLoader();
                            var q = g(k),
                                u = g("div.ilightbox-container", b),
                                C = e.items[c].options.width || parseInt(q[0].getAttribute("width")),
                                v = e.items[c].options.height || parseInt(q[0].getAttribute("height")),
                                y = q[0].getAttribute("width") && q[0].getAttribute("height") ? {
                                    overflow: "hidden"
                                } : {};
                            u.empty().append(g('<div class="ilightbox-wrapper"></div>').css(y).html(q));
                            b.show().data({
                                naturalWidth: C || u.outerWidth(),
                                naturalHeight: v || u.outerHeight()
                            }).hide();
                            "function" == typeof f.callback.onRender && f.callback.onRender.call(e, e.ui, c);
                            "function" == typeof a.options.onRender && a.options.onRender.call(e, h);
                            q = R(b);
                            e.loadImage(q, function() {
                                "function" == typeof f.callback.onAfterLoad && f.callback.onAfterLoad.call(e, e.ui, c);
                                "function" == typeof a.options.onAfterLoad && a.options.onAfterLoad.call(e, h);
                                e.configureHolder(a, d, b)
                            });
                            f.ajaxSetup.success(k, l, n);
                            "function" == typeof m.success && m.success(k, l, n)
                        },
                        error: function(k, l, n) {
                            "function" == typeof f.callback.onAfterLoad && f.callback.onAfterLoad.call(e, e.ui, c);
                            "function" == typeof a.options.onAfterLoad && a.options.onAfterLoad.call(e, h);
                            e.hideLoader();
                            g("div.ilightbox-container", b).empty().append('<span class="ilightbox-alert">' + f.errors.loadContents + "</span>");
                            e.configureHolder(a, d, b);
                            f.ajaxSetup.error(k, l, n);
                            "function" == typeof m.error && m.error(k, l, n)
                        }
                    });
                    break;
                case "html":
                    k = a.URL;
                    container = g("div.ilightbox-container", b);
                    k[0].nodeName ? l = k.clone() : (k = g(k), l = k.selector ? g("<div>" + k + "</div>") : k);
                    var C = e.items[c].options.width || parseInt(l.attr("width")),
                        y = e.items[c].options.height || parseInt(l.attr("height"));
                    e.addContent(b, a);
                    l.appendTo(document.documentElement).hide();
                    "function" == typeof f.callback.onRender && f.callback.onRender.call(e, e.ui, c);
                    "function" == typeof a.options.onRender && a.options.onRender.call(e, h);
                    n = R(b);
                    "function" == typeof f.callback.onBeforeLoad && f.callback.onBeforeLoad.call(e, e.ui, c);
                    "function" == typeof a.options.onBeforeLoad && a.options.onBeforeLoad.call(e, h);
                    e.loadImage(n, function() {
                        "function" == typeof f.callback.onAfterLoad && f.callback.onAfterLoad.call(e, e.ui, c);
                        "function" == typeof a.options.onAfterLoad && a.options.onAfterLoad.call(e, h);
                        b.show().data({
                            naturalWidth: C || container.outerWidth(),
                            naturalHeight: y || container.outerHeight()
                        }).hide();
                        l.remove();
                        e.configureHolder(a, d, b)
                    })
            }
        },
        configureHolder: function(a, b, c) {
            var d = this,
                e = d.vars,
                f = d.options;
            "current" != b && ("next" == b ? c.addClass("ilightbox-next") : c.addClass("ilightbox-prev"));
            if ("current" == b) var h = e.current;
            else if ("next" == b) {
                var l = f.styles.nextOpacity;
                h = e.next
            } else l = f.styles.prevOpacity, h = e.prev;
            var k = {
                element: c,
                position: h
            };
            d.items[h].options.width = d.items[h].options.width || 0;
            d.items[h].options.height = d.items[h].options.height || 0;
            "current" == b ? f.show.effect ? c.css(B, H).fadeIn(a.speed, function() {
                c.css(B, "");
                if (a.caption) {
                    d.setCaption(a, c);
                    var b = g("div.ilightbox-caption", c),
                        e = parseInt(b.outerHeight() / c.outerHeight() * 100);
                    f.caption.start & 50 >= e && b.fadeIn(f.effects.fadeSpeed)
                }
                if (b = a.options.social) d.setSocial(b, a.URL, c), f.social.start && g("div.ilightbox-social", c).fadeIn(f.effects.fadeSpeed);
                d.generateThumbnails();
                "function" == typeof f.callback.onShow && f.callback.onShow.call(d, d.ui, h);
                "function" == typeof a.options.onShow && a.options.onShow.call(d, k)
            }) : (c.show(), d.generateThumbnails(), "function" == typeof f.callback.onShow && f.callback.onShow.call(d, d.ui, h), "function" == typeof a.options.onShow && a.options.onShow.call(d, k)) : f.show.effect ? c.fadeTo(a.speed, l, function() {
                "next" == b ? e.nextLock = !1 : e.prevLock = !1;
                d.generateThumbnails();
                "function" == typeof f.callback.onShow && f.callback.onShow.call(d, d.ui, h);
                "function" == typeof a.options.onShow && a.options.onShow.call(d, k)
            }) : (c.css({
                opacity: l
            }).show(), "next" == b ? e.nextLock = !1 : e.prevLock = !1, d.generateThumbnails(), "function" == typeof f.callback.onShow && f.callback.onShow.call(d, d.ui, h), "function" == typeof a.options.onShow && a.options.onShow.call(d, k));
            setTimeout(function() {
                d.repositionPhoto()
            }, 0)
        },
        generateBoxes: function() {
            var a = this.vars,
                b = this.options;
            b.infinite && 3 <= a.total ? (a.current == a.total - 1 && (a.next = 0), 0 == a.current && (a.prev = a.total - 1)) : b.infinite = !1;
            this.loadContent(this.items[a.current], "current", b.show.speed);
            this.items[a.next] && this.loadContent(this.items[a.next], "next", b.show.speed);
            this.items[a.prev] && this.loadContent(this.items[a.prev], "prev", b.show.speed)
        },
        generateThumbnails: function() {
            var a = this,
                b = a.vars,
                c = a.options,
                d = null;
            if (b.thumbs && !a.vars.dontGenerateThumbs) {
                var e = b.thumbnails,
                    f = g("div.ilightbox-thumbnails-container", e),
                    h = g("div.ilightbox-thumbnails-grid", f),
                    l = 0;
                h.removeAttr("style").empty();
                g.each(a.items, function(k, n) {
                    var m = b.current == k ? "ilightbox-active" : "",
                        C = b.current == k ? c.thumbnails.activeOpacity : c.thumbnails.normalOpacity,
                        y = n.options.thumbnail,
                        q = g('<div class="ilightbox-thumbnail"></div>'),
                        u = g('<div class="ilightbox-thumbnail-icon"></div>');
                    q.css({
                        opacity: 0
                    }).addClass(m);
                    "video" != n.type && "flash" != n.type || "undefined" != typeof n.options.icon ? n.options.icon && (u.addClass("ilightbox-thumbnail-" + n.options.icon), q.append(u)) : (u.addClass("ilightbox-thumbnail-video"), q.append(u));
                    y && a.loadImage(y, function(b) {
                        l++;
                        b ? q.data({
                            naturalWidth: b.width,
                            naturalHeight: b.height
                        }).append('<img src="' + y + '" border="0" />') : q.data({
                            naturalWidth: c.thumbnails.maxWidth,
                            naturalHeight: c.thumbnails.maxHeight
                        });
                        clearTimeout(d);
                        d = setTimeout(function() {
                            a.positionThumbnails(e, f, h)
                        }, 20);
                        setTimeout(function() {
                            q.fadeTo(c.effects.loadedFadeSpeed, C)
                        }, 20 * l)
                    });
                    h.append(q)
                });
                a.vars.dontGenerateThumbs = !0
            }
        },
        positionThumbnails: function(a, b, c) {
            var d = this,
                e = d.vars,
                f = d.options,
                h = J(),
                l = f.path.toLowerCase();
            a || (a = e.thumbnails);
            b || (b = g("div.ilightbox-thumbnails-container", a));
            c || (c = g("div.ilightbox-thumbnails-grid", b));
            var k = g(".ilightbox-thumbnail", c);
            e = "horizontal" == l ? h.width - f.styles.pageOffsetX : k.eq(0).outerWidth() - f.styles.pageOffsetX;
            h = "horizontal" == l ? k.eq(0).outerHeight() - f.styles.pageOffsetY : h.height - f.styles.pageOffsetY;
            var n = "horizontal" == l ? 0 : e,
                m = "horizontal" == l ? h : 0,
                C = g(".ilightbox-active", c),
                y = {};
            3 > arguments.length && (k.css({
                opacity: f.thumbnails.normalOpacity
            }), C.css({
                opacity: f.thumbnails.activeOpacity
            }));
            k.each(function(a) {
                a = g(this);
                var b = a.data(),
                    c = "horizontal" == l ? 0 : f.thumbnails.maxWidth;
                height = "horizontal" == l ? f.thumbnails.maxHeight : 0;
                dims = d.getNewDimenstions(c, height, b.naturalWidth, b.naturalHeight, !0);
                a.css({
                    width: dims.width,
                    height: dims.height
                });
                "horizontal" == l && a.css({
                    "float": "left"
                });
                "horizontal" == l ? n += a.outerWidth() : m += a.outerHeight()
            });
            y = {
                width: n,
                height: m
            };
            c.css(y);
            y = {};
            k = c.offset();
            var q = C.length ? C.offset() : {
                top: parseInt(h / 2),
                left: parseInt(e / 2)
            };
            k.top -= E.scrollTop();
            k.left -= E.scrollLeft();
            q.top = q.top - k.top - E.scrollTop();
            q.left = q.left - k.left - E.scrollLeft();
            "horizontal" == l ? (y.top = 0, y.left = parseInt(e / 2 - q.left - C.outerWidth() / 2)) : (y.top = parseInt(h / 2 - q.top - C.outerHeight() / 2), y.left = 0);
            3 > arguments.length ? c.stop().animate(y, f.effects.repositionSpeed, "easeOutCirc") : c.css(y)
        },
        loadImage: function(a, b) {
            g.isArray(a) || (a = [a]);
            var c = this,
                d = a.length;
            0 < d ? (c.showLoader(), g.each(a, function(e, f) {
                var h = new Image;
                h.onload = function() {
                    --d;
                    0 == d && (c.hideLoader(), b(h))
                };
                h.onerror = h.onabort = function() {
                    --d;
                    0 == d && (c.hideLoader(), b(!1))
                };
                h.src = a[e]
            })) : b(!1)
        },
        patchItemsEvents: function() {
            var a = this,
                b = a.vars,
                c = z ? "itap.iL" : "click.iL",
                d = z ? "click.iL" : "itap.iL";
            if (a.context && a.selector) {
                var e = g(a.selector, a.context);
                g(a.context).on(c, a.selector, function() {
                    var c = g(this);
                    c = e.index(c);
                    b.current = c;
                    b.next = a.items[c + 1] ? c + 1 : null;
                    b.prev = a.items[c - 1] ? c - 1 : null;
                    a.addContents();
                    a.patchEvents();
                    return !1
                }).on(d, a.selector, function() {
                    return !1
                })
            } else g.each(a.itemsObject, function(e, h) {
                h.on(c, function() {
                    b.current = e;
                    b.next = a.items[e + 1] ? e + 1 : null;
                    b.prev = a.items[e - 1] ? e - 1 : null;
                    a.addContents();
                    a.patchEvents();
                    return !1
                }).on(d, function() {
                    return !1
                })
            })
        },
        dispatchItemsEvents: function() {
            this.context && this.selector ? g(this.context).off(".iL", this.selector) : g.each(this.itemsObject, function(a, b) {
                b.off(".iL")
            })
        },
        refresh: function() {
            this.dispatchItemsEvents();
            this.attachItems();
            this.normalizeItems();
            this.patchItemsEvents()
        },
        patchEvents: function() {
            function a(a) {
                c.isMobile || (c.mouseID || c.hideableElements.show(), c.mouseID = clearTimeout(c.mouseID), -1 === k.indexOf(a.target) && (c.mouseID = setTimeout(function() {
                    c.hideableElements.hide();
                    c.mouseID = clearTimeout(c.mouseID)
                }, 3E3)))
            }
            var b = this,
                c = b.vars,
                d = b.options,
                e = d.path.toLowerCase(),
                f = g(".ilightbox-holder"),
                h = t.fullScreenEventName + ".iLightBox",
                l = verticalDistanceThreshold = 100,
                k = [c.nextButton[0], c.prevButton[0], c.nextButton[0].firstChild, c.prevButton[0].firstChild];
            O.bind("resize.iLightBox", function() {
                var a = J();
                d.mobileOptimizer && !d.innerToolbar && (c.isMobile = a.width <= c.mobileMaxWidth);
                c.BODY[c.isMobile ? "addClass" : "removeClass"]("isMobile");
                b.repositionPhoto(null);
                z && (clearTimeout(c.setTime), c.setTime = setTimeout(function() {
                    var a = L().y;
                    p.scrollTo(0, a - 30);
                    p.scrollTo(0, a + 30);
                    p.scrollTo(0, a)
                }, 2E3));
                c.thumbs && b.positionThumbnails()
            }).bind("keydown.iLightBox", function(a) {
                if (d.controls.keyboard) switch (a.keyCode) {
                    case 13:
                        a.shiftKey && d.keyboard.shift_enter && b.fullScreenAction();
                        break;
                    case 27:
                        d.keyboard.esc && b.closeAction();
                        break;
                    case 37:
                        d.keyboard.left && !c.lockKey && b.moveTo("prev");
                        break;
                    case 38:
                        d.keyboard.up && !c.lockKey && b.moveTo("prev");
                        break;
                    case 39:
                        d.keyboard.right && !c.lockKey && b.moveTo("next");
                        break;
                    case 40:
                        d.keyboard.down && !c.lockKey && b.moveTo("next")
                }
            });
            t.supportsFullScreen && O.bind(h, function() {
                b.doFullscreen()
            });
            h = [d.caption.show + ".iLightBox", d.caption.hide + ".iLightBox", d.social.show + ".iLightBox", d.social.hide + ".iLightBox"].filter(function(a, b, c) {
                return c.lastIndexOf(a) === b
            });
            var n = "";
            g.each(h, function(a, b) {
                0 != a && (n += " ");
                n += b
            });
            E.on(K, ".ilightbox-overlay", function() {
                d.overlay.blur && b.closeAction()
            }).on(K, ".ilightbox-next, .ilightbox-next-button", function() {
                b.moveTo("next")
            }).on(K, ".ilightbox-prev, .ilightbox-prev-button", function() {
                b.moveTo("prev")
            }).on(K, ".ilightbox-thumbnail", function() {
                var a = g(this);
                a = g(".ilightbox-thumbnail", c.thumbnails).index(a);
                a != c.current && b.goTo(a)
            }).on(n, ".ilightbox-holder:not(.ilightbox-next, .ilightbox-prev)", function(a) {
                var b = g("div.ilightbox-caption", c.holder),
                    e = g("div.ilightbox-social", c.holder),
                    f = d.effects.fadeSpeed;
                c.nextLock || c.prevLock ? (a.type != d.caption.show || b.is(":visible") ? a.type == d.caption.hide && b.is(":visible") && b.fadeOut(f) : b.fadeIn(f), a.type != d.social.show || e.is(":visible") ? a.type == d.social.hide && e.is(":visible") && e.fadeOut(f) : e.fadeIn(f)) : (a.type != d.caption.show || b.is(":visible") ? a.type == d.caption.hide && b.is(":visible") && b.stop().fadeOut(f) : b.stop().fadeIn(f), a.type != d.social.show || e.is(":visible") ? a.type == d.social.hide && e.is(":visible") && e.stop().fadeOut(f) : e.stop().fadeIn(f))
            }).on("mouseenter.iLightBox mouseleave.iLightBox", ".ilightbox-wrapper", function(a) {
                c.lockWheel = "mouseenter" == a.type ? !0 : !1
            }).on(K, ".ilightbox-toolbar a.ilightbox-close, .ilightbox-toolbar a.ilightbox-fullscreen, .ilightbox-toolbar a.ilightbox-play, .ilightbox-toolbar a.ilightbox-pause", function() {
                var a = g(this);
                a.hasClass("ilightbox-fullscreen") ? b.fullScreenAction() : a.hasClass("ilightbox-play") ? (b.resume(), a.addClass("ilightbox-pause").removeClass("ilightbox-play")) : a.hasClass("ilightbox-pause") ? (b.pause(), a.addClass("ilightbox-play").removeClass("ilightbox-pause")) : b.closeAction()
            }).on(W, ".ilightbox-overlay, .ilightbox-thumbnails-container", function(a) {
                a.preventDefault()
            });
            if (d.controls.arrows && !z) E.on("mousemove.iLightBox", a);
            if (d.controls.slideshow && d.slideshow.pauseOnHover) E.on("mouseenter.iLightBox mouseleave.iLightBox", ".ilightbox-holder:not(.ilightbox-next, .ilightbox-prev)", function(a) {
                "mouseenter" == a.type && c.cycleID ? b.pause() : "mouseleave" == a.type && c.isPaused && b.resume()
            });
            h = g(".ilightbox-overlay, .ilightbox-holder, .ilightbox-thumbnails");
            if (d.controls.mousewheel) h.on("mousewheel.iLightBox", function(a, d) {
                c.lockWheel || (a.preventDefault(), 0 > d ? b.moveTo("next") : 0 < d && b.moveTo("prev"))
            });
            if (d.controls.swipe) f.on(pa, function(a) {
                function h(a) {
                    var b = g(this);
                    a = r[a];
                    var c = [w.coords[0] - x.coords[0], w.coords[1] - x.coords[1]];
                    b[0].style["horizontal" == e ? "left" : "top"] = ("horizontal" == e ? a.left - c[0] : a.top - c[1]) + "px"
                }

                function k(a) {
                    if (w) {
                        var b = a.originalEvent.touches ? a.originalEvent.touches[0] : a;
                        x = {
                            time: (new Date).getTime(),
                            coords: [b.pageX - n, b.pageY - m]
                        };
                        f.each(h);
                        a.preventDefault()
                    }
                }

                function q() {
                    f.each(function() {
                        var a = g(this),
                            b = a.data("offset") || {
                                top: a.offset().top - m,
                                left: a.offset().left - n
                            },
                            c = b.top;
                        b = b.left;
                        a.css(B, H).stop().animate({
                            top: c,
                            left: b
                        }, 500, "easeOutCirc", function() {
                            a.css(B, "")
                        })
                    })
                }
                if (!(c.nextLock || c.prevLock || 1 == c.total || c.lockSwipe)) {
                    c.BODY.addClass("ilightbox-closedhand");
                    a = a.originalEvent.touches ? a.originalEvent.touches[0] : a;
                    var m = E.scrollTop(),
                        n = E.scrollLeft(),
                        p = [f.eq(0).offset(), f.eq(1).offset(), f.eq(2).offset()],
                        r = [{
                            top: p[0].top - m,
                            left: p[0].left - n
                        }, {
                            top: p[1].top - m,
                            left: p[1].left - n
                        }, {
                            top: p[2].top - m,
                            left: p[2].left - n
                        }],
                        w = {
                            time: (new Date).getTime(),
                            coords: [a.pageX - n, a.pageY - m]
                        },
                        x;
                    f.bind(W, k);
                    E.one(qa, function(a) {
                        f.unbind(W, k);
                        c.BODY.removeClass("ilightbox-closedhand");
                        w && x && ("horizontal" == e && 1E3 > x.time - w.time && I(w.coords[0] - x.coords[0]) > l && I(w.coords[1] - x.coords[1]) < verticalDistanceThreshold ? w.coords[0] > x.coords[0] ? c.current != c.total - 1 || d.infinite ? (c.isSwipe = !0, b.moveTo("next")) : q() : 0 != c.current || d.infinite ? (c.isSwipe = !0, b.moveTo("prev")) : q() : "vertical" == e && 1E3 > x.time - w.time && I(w.coords[1] - x.coords[1]) > l && I(w.coords[0] - x.coords[0]) < verticalDistanceThreshold ? w.coords[1] > x.coords[1] ? c.current != c.total - 1 || d.infinite ? (c.isSwipe = !0, b.moveTo("next")) : q() : 0 != c.current || d.infinite ? (c.isSwipe = !0, b.moveTo("prev")) : q() : q());
                        w = x = Q
                    })
                }
            })
        },
        goTo: function(a) {
            var b = this,
                c = b.vars,
                d = b.options,
                e = a - c.current;
            d.infinite && (a == c.total - 1 && 0 == c.current && (e = -1), c.current == c.total - 1 && 0 == a && (e = 1));
            if (1 == e) b.moveTo("next");
            else if (-1 == e) b.moveTo("prev");
            else {
                if (c.nextLock || c.prevLock) return !1;
                "function" == typeof d.callback.onBeforeChange && d.callback.onBeforeChange.call(b, b.ui);
                d.linkId && (c.hashLock = !0, p.location.hash = d.linkId + "/" + a);
                b.items[a] && (b.items[a].options.mousewheel ? b.vars.lockWheel = !1 : c.lockWheel = !0, c.lockSwipe = b.items[a].options.swipe ? !1 : !0);
                g.each([c.holder, c.nextPhoto, c.prevPhoto], function(a, b) {
                    b.css(B, H).fadeOut(d.effects.loadedFadeSpeed)
                });
                c.current = a;
                c.next = a + 1;
                c.prev = a - 1;
                b.createUI();
                setTimeout(function() {
                    b.generateBoxes()
                }, d.effects.loadedFadeSpeed + 50);
                g(".ilightbox-thumbnail", c.thumbnails).removeClass("ilightbox-active").eq(a).addClass("ilightbox-active");
                b.positionThumbnails();
                d.linkId && setTimeout(function() {
                    c.hashLock = !1
                }, 55);
                d.infinite || (c.nextButton.add(c.prevButton).add(c.innerPrevButton).add(c.innerNextButton).removeClass("disabled"), 0 == c.current && c.prevButton.add(c.innerPrevButton).addClass("disabled"), c.current >= c.total - 1 && c.nextButton.add(c.innerNextButton).addClass("disabled"));
                b.resetCycle();
                "function" == typeof d.callback.onAfterChange && d.callback.onAfterChange.call(b, b.ui)
            }
        },
        moveTo: function(a) {
            var b = this,
                c = b.vars,
                d = b.options,
                e = d.path.toLowerCase(),
                f = J(),
                h = d.effects.switchSpeed;
            if (c.nextLock || c.prevLock) return !1;
            var l = "next" == a ? c.next : c.prev;
            d.linkId && (c.hashLock = !0, p.location.hash = d.linkId + "/" + l);
            if ("next" == a) {
                if (!b.items[l]) return !1;
                var k = c.nextPhoto,
                    n = c.holder,
                    m = c.prevPhoto,
                    C = "ilightbox-prev",
                    y = "ilightbox-next"
            } else if ("prev" == a) {
                if (!b.items[l]) return !1;
                k = c.prevPhoto;
                n = c.holder;
                m = c.nextPhoto;
                C = "ilightbox-next";
                y = "ilightbox-prev"
            }
            "function" == typeof d.callback.onBeforeChange && d.callback.onBeforeChange.call(b, b.ui);
            "next" == a ? c.nextLock = !0 : c.prevLock = !0;
            var q = g("div.ilightbox-caption", n),
                u = g("div.ilightbox-social", n);
            q.length && q.stop().fadeOut(h, function() {
                g(this).remove()
            });
            u.length && u.stop().fadeOut(h, function() {
                g(this).remove()
            });
            b.items[l].caption && (b.setCaption(b.items[l], k), q = g("div.ilightbox-caption", k), u = parseInt(q.outerHeight() / k.outerHeight() * 100), d.caption.start && 50 >= u && q.fadeIn(h));
            if (q = b.items[l].options.social) b.setSocial(q, b.items[l].URL, k), d.social.start && g("div.ilightbox-social", k).fadeIn(d.effects.fadeSpeed);
            g.each([k, n, m], function(a, b) {
                b.removeClass("ilightbox-next ilightbox-prev")
            });
            var v = k.data("offset");
            q = f.width - d.styles.pageOffsetX;
            f = f.height - d.styles.pageOffsetY;
            u = v.newDims.width;
            var r = v.newDims.height,
                t = v.thumbsOffset;
            v = v.diff;
            var w = parseInt(f / 2 - r / 2 - v.H - t.H / 2);
            v = parseInt(q / 2 - u / 2 - v.W - t.W / 2);
            k.css(B, H).animate({
                top: w,
                left: v,
                opacity: 1
            }, h, c.isSwipe ? "easeOutCirc" : "easeInOutCirc", function() {
                k.css(B, "")
            });
            g("div.ilightbox-container", k).animate({
                width: u,
                height: r
            }, h, c.isSwipe ? "easeOutCirc" : "easeInOutCirc");
            r = n.data("offset");
            var x = r.object;
            v = r.diff;
            u = r.newDims.width;
            r = r.newDims.height;
            u = parseInt(u * d.styles["next" == a ? "prevScale" : "nextScale"]);
            r = parseInt(r * d.styles["next" == a ? "prevScale" : "nextScale"]);
            w = "horizontal" == e ? parseInt(f / 2 - x.offsetY - r / 2 - v.H - t.H / 2) : parseInt(f - x.offsetX - v.H - t.H / 2);
            "prev" == a ? v = "horizontal" == e ? parseInt(q - x.offsetX - v.W - t.W / 2) : parseInt(q / 2 - u / 2 - v.W - x.offsetY - t.W / 2) : (w = "horizontal" == e ? w : parseInt(x.offsetX - v.H - r - t.H / 2), v = "horizontal" == e ? parseInt(x.offsetX - v.W - u - t.W / 2) : parseInt(q / 2 - x.offsetY - u / 2 - v.W - t.W / 2));
            g("div.ilightbox-container", n).animate({
                width: u,
                height: r
            }, h, c.isSwipe ? "easeOutCirc" : "easeInOutCirc");
            n.addClass(C).css(B, H).animate({
                top: w,
                left: v,
                opacity: d.styles.prevOpacity
            }, h, c.isSwipe ? "easeOutCirc" : "easeInOutCirc", function() {
                n.css(B, "");
                g(".ilightbox-thumbnail", c.thumbnails).removeClass("ilightbox-active").eq(l).addClass("ilightbox-active");
                b.positionThumbnails();
                b.items[l] && (c.lockWheel = b.items[l].options.mousewheel ? !1 : !0, c.lockSwipe = b.items[l].options.swipe ? !1 : !0);
                c.isSwipe = !1; - 1 !== ["iframe", "video"].indexOf(b.items[c.current].type) && g("div.ilightbox-container", n).empty();
                "next" == a ? (c.nextPhoto = m, c.prevPhoto = n, c.holder = k, c.nextPhoto.hide(), c.next += 1, c.prev = c.current, c.current += 1, d.infinite && (c.current > c.total - 1 && (c.current = 0), c.current == c.total - 1 && (c.next = 0), 0 == c.current && (c.prev = c.total - 1)), b.createUI(), b.items[c.next] ? b.loadContent(b.items[c.next], "next") : c.nextLock = !1) : (c.prevPhoto = m, c.nextPhoto = n, c.holder = k, c.prevPhoto.hide(), c.next = c.current, c.current = c.prev, c.prev = c.current - 1, d.infinite && (c.current == c.total - 1 && (c.next = 0), 0 == c.current && (c.prev = c.total - 1)), b.createUI(), b.items[c.prev] ? b.loadContent(b.items[c.prev], "prev") : c.prevLock = !1); - 1 !== ["iframe", "video"].indexOf(b.items[c.current].type) && b.loadContent(b.items[c.current], "current");
                d.linkId && setTimeout(function() {
                    c.hashLock = !1
                }, 55);
                d.infinite || (c.nextButton.add(c.prevButton).add(c.innerPrevButton).add(c.innerNextButton).removeClass("disabled"), 0 == c.current && c.prevButton.add(c.innerPrevButton).addClass("disabled"), c.current >= c.total - 1 && c.nextButton.add(c.innerNextButton).addClass("disabled"));
                b.repositionPhoto();
                b.resetCycle();
                "function" == typeof d.callback.onAfterChange && d.callback.onAfterChange.call(b, b.ui)
            });
            w = "horizontal" == e ? F(m, "top") : "next" == a ? parseInt(-(f / 2) - m.outerHeight()) : parseInt(2 * w);
            v = "horizontal" == e ? "next" == a ? parseInt(-(q / 2) - m.outerWidth()) : parseInt(2 * v) : F(m, "left");
            m.css(B, H).animate({
                top: w,
                left: v,
                opacity: d.styles.nextOpacity
            }, h, c.isSwipe ? "easeOutCirc" : "easeInOutCirc", function() {
                m.css(B, "")
            }).addClass(y)
        },
        setCaption: function(a, b) {
            var c = g('<div class="ilightbox-caption"></div>');
            a.caption && (c.html(a.caption), g("div.ilightbox-container", b).append(c))
        },
        normalizeSocial: function(a, b) {
            var c = this.options,
                d = p.location.href;
            g.each(a, function(e, f) {
                if (!f) return !0;
                switch (e.toLowerCase()) {
                    case "facebook":
                        var h = "http://www.facebook.com/share.php?v=4&src=bm&u={URL}";
                        var g = "Share on Facebook";
                        break;
                    case "twitter":
                        h = "http://twitter.com/home?status={URL}";
                        g = "Share on Twitter";
                        break;
                    case "googleplus":
                        h = "https://plus.google.com/share?url={URL}";
                        g = "Share on Google+";
                        break;
                    case "delicious":
                        h = "http://delicious.com/post?url={URL}";
                        g = "Share on Delicious";
                        break;
                    case "digg":
                        h = "http://digg.com/submit?phase=2&url={URL}";
                        g = "Share on Digg";
                        break;
                    case "reddit":
                        h = "http://reddit.com/submit?url={URL}", g = "Share on reddit"
                }
                a[e] = {
                    URL: f.URL && N(d, f.URL) || c.linkId && p.location.href || "string" !== typeof b && d || b && N(d, b) || d,
                    source: f.source || h || f.URL && N(d, f.URL) || b && N(d, b),
                    text: f.text || g || "Share on " + e,
                    width: "undefined" == typeof f.width || isNaN(f.width) ? 640 : parseInt(f.width),
                    height: f.height || 360
                }
            });
            return a
        },
        setSocial: function(a, b, c) {
            var d = g('<div class="ilightbox-social"></div>'),
                e = "<ul>";
            a = this.normalizeSocial(a, b);
            g.each(a, function(a, b) {
                a.toLowerCase();
                var c = b.source.replace(/\{URL\}/g, encodeURIComponent(b.URL).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A").replace(/%20/g, "+"));
                e += '<li class="' + a + '"><a href="' + c + '" onclick="javascript:window.open(this.href' + (0 >= b.width || 0 >= b.height ? "" : ", '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=" + b.height + ",width=" + b.width + ",left=40,top=40'") + ');return false;" title="' + b.text + '" target="_blank"></a></li>'
            });
            e += "</ul>";
            d.html(e);
            g("div.ilightbox-container", c).append(d)
        },
        fullScreenAction: function() {
            t.supportsFullScreen ? t.isFullScreen() ? t.cancelFullScreen(document.documentElement) : t.requestFullScreen(document.documentElement) : this.doFullscreen()
        },
        doFullscreen: function() {
            var a = this.vars,
                b = J(),
                c = this.options;
            if (c.fullAlone) {
                var d = a.holder,
                    e = this.items[a.current],
                    f = b.width,
                    h = b.height,
                    l = [d, a.nextPhoto, a.prevPhoto, a.nextButton, a.prevButton, a.overlay, a.toolbar, a.thumbnails, a.loader];
                b = [a.nextPhoto, a.prevPhoto, a.nextButton, a.prevButton, a.loader, a.thumbnails];
                if (a.isInFullScreen) a.isInFullScreen = a.lockKey = a.lockWheel = a.lockSwipe = !1, a.overlay.css({
                    opacity: this.options.overlay.opacity
                }), g.each(b, function(a, b) {
                    b.show()
                }), a.fullScreenButton.attr("title", c.text.enterFullscreen), d.data({
                    naturalWidth: d.data("naturalWidthOld"),
                    naturalHeight: d.data("naturalHeightOld"),
                    naturalWidthOld: null,
                    naturalHeightOld: null
                }), g.each(l, function(a, b) {
                    b.removeClass("ilightbox-fullscreen")
                }), "function" == typeof c.callback.onExitFullScreen && c.callback.onExitFullScreen.call(this, this.ui);
                else {
                    a.isInFullScreen = a.lockKey = a.lockWheel = a.lockSwipe = !0;
                    a.overlay.css({
                        opacity: 1
                    });
                    g.each(b, function(a, b) {
                        b.hide()
                    });
                    a.fullScreenButton.attr("title", c.text.exitFullscreen);
                    if (-1 != c.fullStretchTypes.indexOf(e.type)) d.data({
                        naturalWidthOld: d.data("naturalWidth"),
                        naturalHeightOld: d.data("naturalHeight"),
                        naturalWidth: f,
                        naturalHeight: h
                    });
                    else {
                        b = e.options.fullViewPort || c.fullViewPort || "";
                        a = f;
                        e = h;
                        f = d.data("naturalWidth");
                        var k = d.data("naturalHeight");
                        "fill" == b.toLowerCase() ? (e = a / f * k, e < h && (a = h / k * f, e = h)) : "fit" == b.toLowerCase() ? (h = this.getNewDimenstions(a, e, f, k, !0), a = h.width, e = h.height) : "stretch" != b.toLowerCase() && (h = this.getNewDimenstions(a, e, f, k, f > a || k > e ? !0 : !1), a = h.width, e = h.height);
                        d.data({
                            naturalWidthOld: d.data("naturalWidth"),
                            naturalHeightOld: d.data("naturalHeight"),
                            naturalWidth: a,
                            naturalHeight: e
                        })
                    }
                    g.each(l, function(a, b) {
                        b.addClass("ilightbox-fullscreen")
                    });
                    "function" == typeof c.callback.onEnterFullScreen && c.callback.onEnterFullScreen.call(this, this.ui)
                }
            } else a.isInFullScreen = a.isInFullScreen ? !1 : !0;
            this.repositionPhoto(!0)
        },
        closeAction: function() {
            var a = this.vars,
                b = this.options;
            O.unbind(".iLightBox");
            E.off(".iLightBox");
            a.isInFullScreen && t.cancelFullScreen(document.documentElement);
            g(".ilightbox-overlay, .ilightbox-holder, .ilightbox-thumbnails").off(".iLightBox");
            b.hide.effect ? a.overlay.stop().fadeOut(b.hide.speed, function() {
                a.overlay.remove();
                a.BODY.removeClass("ilightbox-noscroll").off(".iLightBox")
            }) : (a.overlay.remove(), a.BODY.removeClass("ilightbox-noscroll").off(".iLightBox"));
            g.each([a.toolbar, a.holder, a.nextPhoto, a.prevPhoto, a.nextButton, a.prevButton, a.loader, a.thumbnails], function(a, b) {
                b.removeAttr("style").remove()
            });
            a.dontGenerateThumbs = a.isInFullScreen = !1;
            p.iLightBox = null;
            b.linkId && (a.hashLock = !0, ia(), setTimeout(function() {
                a.hashLock = !1
            }, 55));
            "function" == typeof b.callback.onHide && b.callback.onHide.call(this, this.ui)
        },
        repositionPhoto: function() {
            var a = this.vars,
                b = this.options,
                c = b.path.toLowerCase(),
                d = J(),
                e = d.width,
                f = d.height;
            d = a.isInFullScreen && b.fullAlone || a.isMobile ? 0 : "horizontal" == c ? 0 : a.thumbnails.outerWidth();
            var h = a.isMobile ? a.toolbar.outerHeight() : a.isInFullScreen && b.fullAlone ? 0 : "horizontal" == c ? a.thumbnails.outerHeight() : 0;
            e = a.isInFullScreen && b.fullAlone ? e : e - b.styles.pageOffsetX;
            f = a.isInFullScreen && b.fullAlone ? f : f - b.styles.pageOffsetY;
            var l = "horizontal" == c ? parseInt(this.items[a.next] || this.items[a.prev] ? 2 * (b.styles.nextOffsetX + b.styles.prevOffsetX) : 30 >= e / 10 ? 30 : e / 10) : parseInt(30 >= e / 10 ? 30 : e / 10) + d,
                k = "horizontal" == c ? parseInt(30 >= f / 10 ? 30 : f / 10) + h : parseInt(this.items[a.next] || this.items[a.prev] ? 2 * (b.styles.nextOffsetX + b.styles.prevOffsetX) : 30 >= f / 10 ? 30 : f / 10);
            d = {
                type: "current",
                width: e,
                height: f,
                item: this.items[a.current],
                offsetW: l,
                offsetH: k,
                thumbsOffsetW: d,
                thumbsOffsetH: h,
                animate: arguments.length,
                holder: a.holder
            };
            this.repositionEl(d);
            this.items[a.next] && (d = g.extend(d, {
                type: "next",
                item: this.items[a.next],
                offsetX: b.styles.nextOffsetX,
                offsetY: b.styles.nextOffsetY,
                holder: a.nextPhoto
            }), this.repositionEl(d));
            this.items[a.prev] && (d = g.extend(d, {
                type: "prev",
                item: this.items[a.prev],
                offsetX: b.styles.prevOffsetX,
                offsetY: b.styles.prevOffsetY,
                holder: a.prevPhoto
            }), this.repositionEl(d));
            b = "horizontal" == c ? {
                left: parseInt(e / 2 - a.loader.outerWidth() / 2)
            } : {
                top: parseInt(f / 2 - a.loader.outerHeight() / 2)
            };
            a.loader.css(b)
        },
        repositionEl: function(a) {
            var b = this.vars,
                c = this.options,
                d = c.path.toLowerCase(),
                e = "current" == a.type ? b.isInFullScreen && c.fullAlone ? a.width : a.width - a.offsetW : a.width - a.offsetW,
                f = "current" == a.type ? b.isInFullScreen && c.fullAlone ? a.height : a.height - a.offsetH : a.height - a.offsetH,
                h = a.item,
                l = a.item.options,
                k = a.holder,
                n = a.offsetX || 0,
                m = a.offsetY || 0,
                p = a.thumbsOffsetW,
                r = a.thumbsOffsetH;
            "current" == a.type ? ("number" == typeof l.width && l.width && (e = b.isInFullScreen && c.fullAlone && (-1 != c.fullStretchTypes.indexOf(h.type) || l.fullViewPort || c.fullViewPort) ? e : l.width > e ? e : l.width), "number" == typeof l.height && l.height && (f = b.isInFullScreen && c.fullAlone && (-1 != c.fullStretchTypes.indexOf(h.type) || l.fullViewPort || c.fullViewPort) ? f : l.height > f ? f : l.height)) : ("number" == typeof l.width && l.width && (e = l.width > e ? e : l.width), "number" == typeof l.height && l.height && (f = l.height > f ? f : l.height));
            c.innerToolbar && (f = parseInt(f - g(".ilightbox-inner-toolbar", k).outerHeight()));
            b = "string" == typeof l.width && -1 != l.width.indexOf("%") ? ba(parseInt(l.width.replace("%", "")), a.width) : k.data("naturalWidth");
            h = "string" == typeof l.height && -1 != l.height.indexOf("%") ? ba(parseInt(l.height.replace("%", "")), a.height) : k.data("naturalHeight");
            h = "string" == typeof l.width && -1 != l.width.indexOf("%") || "string" == typeof l.height && -1 != l.height.indexOf("%") ? {
                width: b,
                height: h
            } : this.getNewDimenstions(e, f, b, h);
            e = g.extend({}, h, {});
            "prev" == a.type || "next" == a.type ? (b = parseInt(h.width * ("next" == a.type ? c.styles.nextScale : c.styles.prevScale)), h = parseInt(h.height * ("next" == a.type ? c.styles.nextScale : c.styles.prevScale))) : (b = h.width, h = h.height);
            f = parseInt((F(k, "padding-left") + F(k, "padding-right") + F(k, "border-left-width") + F(k, "border-right-width")) / 2);
            l = parseInt((F(k, "padding-top") + F(k, "padding-bottom") + F(k, "border-top-width") + F(k, "border-bottom-width") + (g(".ilightbox-inner-toolbar", k).outerHeight() || 0)) / 2);
            switch (a.type) {
                case "current":
                    var q = parseInt(a.height / 2 - h / 2 - l - r / 2),
                        u = parseInt(a.width / 2 - b / 2 - f - p / 2);
                    break;
                case "next":
                    q = "horizontal" == d ? parseInt(a.height / 2 - m - h / 2 - l - r / 2) : parseInt(a.height - n - l - r / 2);
                    u = "horizontal" == d ? parseInt(a.width - n - f - p / 2) : parseInt(a.width / 2 - b / 2 - f - m - p / 2);
                    break;
                case "prev":
                    q = "horizontal" == d ? parseInt(a.height / 2 - m - h / 2 - l - r / 2) : parseInt(n - l - h - r / 2), u = "horizontal" == d ? parseInt(n - f - b - p / 2) : parseInt(a.width / 2 - m - b / 2 - f - p / 2)
            }
            k.data("offset", {
                top: q,
                left: u,
                newDims: e,
                diff: {
                    W: f,
                    H: l
                },
                thumbsOffset: {
                    W: p,
                    H: r
                },
                object: a
            });
            0 < a.animate && c.effects.reposition ? (k.css(B, H).stop().animate({
                top: q,
                left: u
            }, c.effects.repositionSpeed, "easeOutCirc", function() {
                k.css(B, "")
            }), g("div.ilightbox-container", k).stop().animate({
                width: b,
                height: h
            }, c.effects.repositionSpeed, "easeOutCirc"), g("div.ilightbox-inner-toolbar", k).stop().animate({
                width: b
            }, c.effects.repositionSpeed, "easeOutCirc", function() {
                g(this).css("overflow", "visible")
            })) : (k.css({
                top: q,
                left: u
            }), g("div.ilightbox-container", k).css({
                width: b,
                height: h
            }), g("div.ilightbox-inner-toolbar", k).css({
                width: b
            }))
        },
        resume: function(a) {
            var b = this,
                c = b.vars,
                d = b.options;
            !d.slideshow.pauseTime || d.controls.slideshow && 1 >= c.total || a < c.isPaused || (c.isPaused = 0, c.cycleID && (c.cycleID = clearTimeout(c.cycleID)), c.cycleID = setTimeout(function() {
                c.current == c.total - 1 ? b.goTo(0) : b.moveTo("next")
            }, d.slideshow.pauseTime))
        },
        pause: function(a) {
            var b = this.vars;
            a < b.isPaused || (b.isPaused = a || 100, b.cycleID && (b.cycleID = clearTimeout(b.cycleID)))
        },
        resetCycle: function() {
            var a = this.vars;
            this.options.controls.slideshow && a.cycleID && !a.isPaused && this.resume()
        },
        getNewDimenstions: function(a, b, c, d, e) {
            factor = a ? b ? Y(a / c, b / d) : a / c : b / d;
            e || (factor > this.options.maxScale ? factor = this.options.maxScale : factor < this.options.minScale && (factor = this.options.minScale));
            a = this.options.keepAspectRatio ? X(c * factor) : a;
            b = this.options.keepAspectRatio ? X(d * factor) : b;
            return {
                width: a,
                height: b,
                ratio: factor
            }
        },
        setOption: function(a) {
            this.options = g.extend(!0, this.options, a || {});
            this.refresh()
        },
        availPlugins: function() {
            var a = document.createElement("video");
            this.plugins = {
                flash: !oa,
                quicktime: 0 <= parseInt(ha.getVersion("QuickTime")) ? !0 : !1,
                html5H264: !(!a.canPlayType || !a.canPlayType("video/mp4").replace(/no/, "")),
                html5WebM: !(!a.canPlayType || !a.canPlayType("video/webm").replace(/no/, "")),
                html5Vorbis: !(!a.canPlayType || !a.canPlayType("video/ogg").replace(/no/, "")),
                html5QuickTime: !(!a.canPlayType || !a.canPlayType("video/quicktime").replace(/no/, ""))
            }
        },
        addContent: function(a, b) {
            switch (b.type) {
                case "video":
                    var c = !1,
                        d = b.videoType,
                        e = b.options.html5video;
                    ("video/mp4" == d || "mp4" == b.ext || "m4v" == b.ext || e.h264) && this.plugins.html5H264 ? (b.ext = "mp4", b.URL = e.h264 || b.URL) : e.webm && this.plugins.html5WebM ? (b.ext = "webm", b.URL = e.webm || b.URL) : e.ogg && this.plugins.html5Vorbis && (b.ext = "ogv", b.URL = e.ogg || b.URL);
                    !this.plugins.html5H264 || "video/mp4" != d && "mp4" != b.ext && "m4v" != b.ext ? !this.plugins.html5WebM || "video/webm" != d && "webm" != b.ext ? !this.plugins.html5Vorbis || "video/ogg" != d && "ogv" != b.ext ? !this.plugins.html5QuickTime || "video/quicktime" != d && "mov" != b.ext && "qt" != b.ext || (c = !0, d = "video/quicktime") : (c = !0, d = "video/ogg") : (c = !0, d = "video/webm") : (c = !0, d = "video/mp4");
                    if (c) var f = g("<video />", {
                        width: "100%",
                        height: "100%",
                        preload: e.preload,
                        autoplay: e.autoplay,
                        poster: e.poster,
                        controls: e.controls
                    }).append(g("<source />", {
                        src: b.URL,
                        type: d
                    }));
                    else this.plugins.quicktime ? (f = g("<object />", {
                        type: "video/quicktime",
                        pluginspage: "http://www.apple.com/quicktime/download"
                    }).attr({
                        data: b.URL,
                        width: "100%",
                        height: "100%"
                    }).append(g("<param />", {
                        name: "src",
                        value: b.URL
                    })).append(g("<param />", {
                        name: "autoplay",
                        value: "false"
                    })).append(g("<param />", {
                        name: "loop",
                        value: "false"
                    })).append(g("<param />", {
                        name: "scale",
                        value: "tofit"
                    })), D.msie && (f = ma(b.URL, "100%", "100%", "", "SCALE", "tofit", "AUTOPLAY", "false", "LOOP", "false"))) : f = g("<span />", {
                        "class": "ilightbox-alert",
                        html: this.options.errors.missingPlugin.replace("{pluginspage}", "http://www.apple.com/quicktime/download").replace("{type}", "QuickTime")
                    });
                    break;
                case "flash":
                    if (this.plugins.flash) {
                        var h = "",
                            l = 0;
                        b.options.flashvars ? g.each(b.options.flashvars, function(a, b) {
                            0 != l && (h += "&");
                            h += a + "=" + encodeURIComponent(b);
                            l++
                        }) : h = null;
                        f = g("<embed />").attr({
                            type: "application/x-shockwave-flash",
                            src: b.URL,
                            width: "number" == typeof b.options.width && b.options.width && "1" == this.options.minScale && "1" == this.options.maxScale ? b.options.width : "100%",
                            height: "number" == typeof b.options.height && b.options.height && "1" == this.options.minScale && "1" == this.options.maxScale ? b.options.height : "100%",
                            quality: "high",
                            bgcolor: "#000000",
                            play: "true",
                            loop: "true",
                            menu: "true",
                            wmode: "transparent",
                            scale: "showall",
                            allowScriptAccess: "always",
                            allowFullScreen: "true",
                            flashvars: h,
                            fullscreen: "yes"
                        })
                    } else f = g("<span />", {
                        "class": "ilightbox-alert",
                        html: this.options.errors.missingPlugin.replace("{pluginspage}", "http://www.adobe.com/go/getflash").replace("{type}", "Adobe Flash player")
                    });
                    break;
                case "iframe":
                    f = g("<iframe />").attr({
                        width: "number" == typeof b.options.width && b.options.width && "1" == this.options.minScale && "1" == this.options.maxScale ? b.options.width : "100%",
                        height: "number" == typeof b.options.height && b.options.height && "1" == this.options.minScale && "1" == this.options.maxScale ? b.options.height : "100%",
                        src: b.URL,
                        frameborder: 0,
                        hspace: 0,
                        vspace: 0,
                        scrolling: z ? "auto" : "scroll",
                        webkitAllowFullScreen: "",
                        mozallowfullscreen: "",
                        allowFullScreen: ""
                    });
                    break;
                case "inline":
                    f = g('<div class="ilightbox-wrapper"></div>').html(g(b.URL).clone(!0));
                    break;
                case "html":
                    c = b.URL, c[0].nodeName || (c = g(b.URL), c = c.selector ? g("<div>" + c + "</div>") : c), f = g('<div class="ilightbox-wrapper"></div>').html(c)
            }
            g("div.ilightbox-container", a).empty().html(f);
            "video" === f[0].tagName.toLowerCase() && D.webkit && setTimeout(function() {
                var a = f[0].currentSrc + "?" + M(3E4 * S());
                f[0].currentSrc = a;
                f[0].src = a
            });
            return f
        },
        ogpRecognition: function(a, b) {
            var c = this,
                d = a.URL;
            c.showLoader();
            ja(d, function(a) {
                c.hideLoader();
                if (a) {
                    var d = {
                        length: !1
                    };
                    d.url = a.url;
                    if (200 == a.status) {
                        a = a.results;
                        var e = a.type,
                            g = a.source;
                        d.source = g.src;
                        d.width = g.width && parseInt(g.width) || 0;
                        d.height = g.height && parseInt(g.height) || 0;
                        d.type = e;
                        d.thumbnail = g.thumbnail || a.images && a.images[0];
                        d.html5video = a.html5video || {};
                        d.length = !0;
                        "application/x-shockwave-flash" == g.type ? d.type = "flash" : -1 != g.type.indexOf("video/") ? d.type = "video" : -1 != g.type.indexOf("/html") ? d.type = "iframe" : -1 != g.type.indexOf("image/") && (d.type = "image")
                    } else if ("undefined" != typeof a.response) throw a.response;
                    b.call(this, d.length ? d : !1)
                }
            })
        },
        hashChangeHandler: function(a) {
            var b = this.vars,
                c = this.options;
            a = U(a || p.location.href).hash;
            var d = a.split("/");
            b.hashLock || "#" + c.linkId != d[0] && 1 < a.length || (d[1] ? (b = d[1] || 0, this.items[b] ? (a = g(".ilightbox-overlay"), a.length && a.attr("linkid") == c.linkId ? this.goTo(b) : this.itemsObject[b].trigger(z ? "itap" : "click")) : (a = g(".ilightbox-overlay"), a.length && this.closeAction())) : (a = g(".ilightbox-overlay"), a.length && this.closeAction()))
        }
    };
    g.fn.iLightBox = function() {
        var a = arguments,
            b = g.isPlainObject(a[0]) ? a[0] : a[1],
            c = g.isArray(a[0]) || "string" == typeof a[0] ? a[0] : a[1];
        b || (b = {});
        b = g.extend(!0, {
            attr: "href",
            path: "vertical",
            skin: "dark",
            linkId: !1,
            infinite: !1,
            startFrom: 0,
            randomStart: !1,
            keepAspectRatio: !0,
            maxScale: 1,
            minScale: .2,
            innerToolbar: !1,
            smartRecognition: !1,
            mobileOptimizer: !0,
            fullAlone: !0,
            fullViewPort: null,
            fullStretchTypes: "flash, video",
            overlay: {
                blur: !0,
                opacity: .85
            },
            controls: {
                arrows: !1,
                slideshow: !1,
                toolbar: !0,
                fullscreen: !0,
                thumbnail: !0,
                keyboard: !0,
                mousewheel: !0,
                swipe: !0
            },
            keyboard: {
                left: !0,
                right: !0,
                up: !0,
                down: !0,
                esc: !0,
                shift_enter: !0
            },
            show: {
                effect: !0,
                speed: 300,
                title: !0
            },
            hide: {
                effect: !0,
                speed: 300
            },
            caption: {
                start: !0,
                show: "mouseenter",
                hide: "mouseleave"
            },
            social: {
                start: !0,
                show: "mouseenter",
                hide: "mouseleave",
                buttons: !1
            },
            styles: {
                pageOffsetX: 0,
                pageOffsetY: 0,
                nextOffsetX: 45,
                nextOffsetY: 0,
                nextOpacity: 1,
                nextScale: 1,
                prevOffsetX: 45,
                prevOffsetY: 0,
                prevOpacity: 1,
                prevScale: 1
            },
            thumbnails: {
                maxWidth: 120,
                maxHeight: 80,
                normalOpacity: 1,
                activeOpacity: .6
            },
            effects: {
                reposition: !0,
                repositionSpeed: 200,
                switchSpeed: 500,
                loadedFadeSpeed: 180,
                fadeSpeed: 200
            },
            slideshow: {
                pauseTime: 5E3,
                pauseOnHover: !1,
                startPaused: !0
            },
            text: {
                close: "Press Esc to close",
                enterFullscreen: "Enter Fullscreen (Shift+Enter)",
                exitFullscreen: "Exit Fullscreen (Shift+Enter)",
                slideShow: "Slideshow",
                next: "Next",
                previous: "Previous"
            },
            errors: {
                loadImage: "An error occurred when trying to load photo.",
                loadContents: "An error occurred when trying to load contents.",
                missingPlugin: "The content your are attempting to view requires the <a href='{pluginspage}' target='_blank'>{type} plugin</a>."
            },
            ajaxSetup: {
                url: "",
                beforeSend: function(a, b) {},
                cache: !1,
                complete: function(a, b) {},
                crossDomain: !1,
                error: function(a, b, c) {},
                success: function(a, b, c) {},
                global: !0,
                ifModified: !1,
                username: null,
                password: null,
                type: "GET"
            },
            callback: {}
        }, b);
        var d = g.isArray(c) || "string" == typeof c ? !0 : !1;
        c = g.isArray(c) ? c : [];
        "string" == typeof a[0] && (c[0] = a[0]);
        if (ka(g.fn.jquery, "1.8", ">=")) {
            var e = new fa(g(this), b, c, d);
            return {
                close: function() {
                    e.closeAction()
                },
                fullscreen: function() {
                    e.fullScreenAction()
                },
                moveNext: function() {
                    e.moveTo("next")
                },
                movePrev: function() {
                    e.moveTo("prev")
                },
                goTo: function(a) {
                    e.goTo(a)
                },
                refresh: function() {
                    e.refresh()
                },
                reposition: function() {
                    0 < arguments.length ? e.repositionPhoto(!0) : e.repositionPhoto()
                },
                setOption: function(a) {
                    e.setOption(a)
                },
                destroy: function() {
                    e.closeAction();
                    e.dispatchItemsEvents()
                }
            }
        }
        throw "The jQuery version that was loaded is too old. iLightBox requires jQuery 1.8+";
    };
    g.iLightBox = function(a, b) {
        return g.fn.iLightBox(a, b)
    };
    g.extend(g.easing, {
        easeInCirc: function(a, b, c, d, e) {
            return -d * (P(1 - (b /= e) * b) - 1) + c
        },
        easeOutCirc: function(a, b, c, d, e) {
            return d * P(1 - (b = b / e - 1) * b) + c
        },
        easeInOutCirc: function(a, b, c, d, e) {
            return 1 > (b /= e / 2) ? -d / 2 * (P(1 - b * b) - 1) + c : d / 2 * (P(1 - (b -= 2) * b) + 1) + c
        }
    });
    (function() {
        g.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "), function(a, b) {
            g.fn[b] = function(a) {
                return a ? this.bind(b, a) : this.trigger(b)
            };
        });
        g.event.special.itap = {
            setup: function() {
                var a = this,
                    b = g(this),
                    c, d;
                b.bind("touchstart.iTap", function(e) {
                    c = L();
                    b.one("touchend.iTap", function(b) {
                        d = L();
                        b = g.event.fix(b || p.event);
                        b.type = "itap";
                        c && d && c.x == d.x && c.y == d.y && (g.event.dispatch || g.event.handle).call(a, b);
                        c = d = Q
                    })
                })
            },
            teardown: function() {
                g(this).unbind("touchstart.iTap")
            }
        }
    })();
    (function() {
        t = {
            supportsFullScreen: !1,
            isFullScreen: function() {
                return !1
            },
            requestFullScreen: function() {},
            cancelFullScreen: function() {},
            fullScreenEventName: "",
            prefix: ""
        };
        browserPrefixes = ["webkit", "moz", "o", "ms", "khtml"];
        if ("undefined" != typeof document.cancelFullScreen) t.supportsFullScreen = !0;
        else
            for (var a = 0, b = browserPrefixes.length; a < b; a++)
                if (t.prefix = browserPrefixes[a], "undefined" != typeof document[t.prefix + "CancelFullScreen"]) {
                    t.supportsFullScreen = !0;
                    break
                }
        t.supportsFullScreen && (t.fullScreenEventName = t.prefix + "fullscreenchange", t.isFullScreen = function() {
            switch (this.prefix) {
                case "":
                    return document.fullScreen;
                case "webkit":
                    return document.webkitIsFullScreen;
                default:
                    return document[this.prefix + "FullScreen"]
            }
        }, t.requestFullScreen = function(a) {
            return "" === this.prefix ? a.requestFullScreen() : a[this.prefix + "RequestFullScreen"]()
        }, t.cancelFullScreen = function(a) {
            return "" === this.prefix ? document.cancelFullScreen() : document[this.prefix + "CancelFullScreen"]()
        })
    })();
    (function() {
        var a = navigator.userAgent;
        a = a.toLowerCase();
        var b = /(chrome)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || 0 > a.indexOf("compatible") && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [];
        a = b[1] || "";
        b = b[2] || "0";
        D = {};
        a && (D[a] = !0, D.version = b);
        D.chrome ? D.webkit = !0 : D.webkit && (D.safari = !0)
    })();
    (function() {
        function a(a) {
            for (var d = 0, f = b.length; d < f; d++) {
                var h = b[d] ? b[d] + a.charAt(0).toUpperCase() + a.slice(1) : a;
                if (c.style[h] !== Q) return h
            }
        }
        var b = ["", "webkit", "moz", "ms", "o"],
            c = document.createElement("div");
        B = a("transform") || "";
        H = a("perspective") ? "translateZ(0) " : ""
    })();
    var ha = {
        version: "0.7.9",
        name: "PluginDetect",
        handler: function(a, b, c) {
            return function() {
                a(b, c)
            }
        },
        openTag: "<",
        isDefined: function(a) {
            return "undefined" != typeof a
        },
        isArray: function(a) {
            return /array/i.test(Object.prototype.toString.call(a))
        },
        isFunc: function(a) {
            return "function" == typeof a
        },
        isString: function(a) {
            return "string" == typeof a
        },
        isNum: function(a) {
            return "number" == typeof a
        },
        isStrNum: function(a) {
            return "string" == typeof a && /\d/.test(a)
        },
        getNumRegx: /[\d][\d\.\_,-]*/,
        splitNumRegx: /[\.\_,-]/g,
        getNum: function(a, b) {
            var c = this.isStrNum(a) ? (this.isDefined(b) ? new RegExp(b) : this.getNumRegx).exec(a) : null;
            return c ? c[0] : null
        },
        compareNums: function(a, b, c) {
            var d = parseInt;
            if (this.isStrNum(a) && this.isStrNum(b)) {
                if (this.isDefined(c) && c.compareNums) return c.compareNums(a, b);
                a = a.split(this.splitNumRegx);
                b = b.split(this.splitNumRegx);
                for (c = 0; c < Y(a.length, b.length); c++) {
                    if (d(a[c], 10) > d(b[c], 10)) return 1;
                    if (d(a[c], 10) < d(b[c], 10)) return -1
                }
            }
            return 0
        },
        formatNum: function(a, b) {
            var c;
            if (!this.isStrNum(a)) return null;
            this.isNum(b) || (b = 4);
            b--;
            var d = a.replace(/\s/g, "").split(this.splitNumRegx).concat(["0", "0", "0", "0"]);
            for (c = 0; 4 > c; c++)
                if (/^(0+)(.+)$/.test(d[c]) && (d[c] = RegExp.$2), c > b || !/\d/.test(d[c])) d[c] = "0";
            return d.slice(0, 4).join(",")
        },
        $$hasMimeType: function(a) {
            return function(b) {
                if (!a.isIE && b) {
                    var c, d, e = a.isArray(b) ? b : a.isString(b) ? [b] : [];
                    for (d = 0; d < e.length; d++)
                        if (a.isString(e[d]) && /[^\s]/.test(e[d]) && (c = (b = navigator.mimeTypes[e[d]]) ? b.enabledPlugin : 0) && (c.name || c.description)) return b
                }
                return null
            }
        },
        findNavPlugin: function(a, b, c) {
            a = new RegExp(a, "i");
            b = !this.isDefined(b) || b ? /\d/ : 0;
            c = c ? new RegExp(c, "i") : 0;
            var d = navigator.plugins,
                e;
            for (e = 0; e < d.length; e++) {
                var f = d[e].description || "";
                var h = d[e].name || "";
                if (a.test(f) && (!b || b.test(RegExp.leftContext + RegExp.rightContext)) || a.test(h) && (!b || b.test(RegExp.leftContext + RegExp.rightContext)))
                    if (!c || !c.test(f) && !c.test(h)) return d[e]
            }
            return null
        },
        getMimeEnabledPlugin: function(a, b, c) {
            var d;
            b = new RegExp(b, "i");
            c = c ? new RegExp(c, "i") : 0;
            var e, f = this.isString(a) ? [a] : a;
            for (e = 0; e < f.length; e++)
                if ((d = this.hasMimeType(f[e])) && (d = d.enabledPlugin)) {
                    var h = d.description || "";
                    a = d.name || "";
                    if (b.test(h) || b.test(a))
                        if (!c || !c.test(h) && !c.test(a)) return d
                }
            return 0
        },
        getPluginFileVersion: function(a, b) {
            var c, d, e = -1;
            if (2 < this.OS || !a || !a.version || !(c = this.getNum(a.version))) return b;
            if (!b) return c;
            c = this.formatNum(c);
            b = this.formatNum(b);
            var f = b.split(this.splitNumRegx);
            var h = c.split(this.splitNumRegx);
            for (d = 0; d < f.length; d++)
                if (-1 < e && d > e && "0" != f[d] || h[d] != f[d] && (-1 == e && (e = d), "0" != f[d])) return b;
            return c
        },
        AXO: p.ActiveXObject,
        getAXO: function(a) {
            var b = null;
            try {
                b = new this.AXO(a)
            } catch (c) {}
            return b
        },
        convertFuncs: function(a) {
            var b, c = /^[\$][\$]/;
            for (b in a)
                if (c.test(b)) try {
                    var d = b.slice(2);
                    0 < d.length && !a[d] && (a[d] = a[b](a), delete a[b])
                } catch (e) {}
        },
        initObj: function(a, b, c) {
            var d;
            if (a) {
                if (1 == a[b[0]] || c)
                    for (d = 0; d < b.length; d += 2) a[b[d]] = b[d + 1];
                for (d in a)(c = a[d]) && 1 == c[b[0]] && this.initObj(c, b)
            }
        },
        initScript: function() {
            var a = navigator,
                b, c = document,
                d = a.userAgent || "",
                e = a.vendor || "",
                f = a.platform || "";
            a = a.product || "";
            this.initObj(this, ["$", this]);
            for (b in this.Plugins) this.Plugins[b] && this.initObj(this.Plugins[b], ["$", this, "$$", this.Plugins[b]], 1);
            this.convertFuncs(this);
            this.OS = 100;
            if (f) {
                var h = ["Win", 1, "Mac", 2, "Linux", 3, "FreeBSD", 4, "iPhone", 21.1, "iPod", 21.2, "iPad", 21.3, "Win.*CE", 22.1, "Win.*Mobile", 22.2, "Pocket\\s*PC", 22.3, "", 100];
                for (b = h.length - 2; 0 <= b; b -= 2)
                    if (h[b] && (new RegExp(h[b], "i")).test(f)) {
                        this.OS = h[b + 1];
                        break
                    }
            }
            this.head = c.getElementsByTagName("head")[0] || c.getElementsByTagName("body")[0] || c.body || null;
            this.verIE = (this.isIE = (new Function("return/*@cc_on!@*/!1"))()) && /MSIE\s*(\d+\.?\d*)/i.test(d) ? parseFloat(RegExp.$1, 10) : null;
            this.docModeIE = this.verIEfull = null;
            if (this.isIE) {
                b = document.createElement("div");
                try {
                    b.style.behavior = "url(#default#clientcaps)", this.verIEfull = b.getComponentVersion("{89820200-ECBD-11CF-8B85-00AA005B4383}", "componentid").replace(/,/g, ".")
                } catch (l) {}
                b = parseFloat(this.verIEfull || "0", 10);
                this.docModeIE = c.documentMode || (/back/i.test(c.compatMode || "") ? 5 : b) || this.verIE;
                this.verIE = b || this.docModeIE
            }
            this.ActiveXEnabled = !1;
            if (this.isIE)
                for (c = "Msxml2.XMLHTTP Msxml2.DOMDocument Microsoft.XMLDOM ShockwaveFlash.ShockwaveFlash TDCCtl.TDCCtl Shell.UIHelper Scripting.Dictionary wmplayer.ocx".split(" "), b = 0; b < c.length; b++)
                    if (this.getAXO(c[b])) {
                        this.ActiveXEnabled = !0;
                        break
                    }
            this.verGecko = (this.isGecko = /Gecko/i.test(a) && /Gecko\s*\/\s*\d/i.test(d)) ? this.formatNum(/rv\s*\:\s*([\.\,\d]+)/i.test(d) ? RegExp.$1 : "0.9") : null;
            this.verChrome = (this.isChrome = /Chrome\s*\/\s*(\d[\d\.]*)/i.test(d)) ? this.formatNum(RegExp.$1) : null;
            this.verSafari = (this.isSafari = (/Apple/i.test(e) || !e && !this.isChrome) && /Safari\s*\/\s*(\d[\d\.]*)/i.test(d)) && /Version\s*\/\s*(\d[\d\.]*)/i.test(d) ? this.formatNum(RegExp.$1) : null;
            this.verOpera = (this.isOpera = /Opera\s*[\/]?\s*(\d+\.?\d*)/i.test(d)) && (/Version\s*\/\s*(\d+\.?\d*)/i.test(d), 1) ? parseFloat(RegExp.$1, 10) : null;
            this.addWinEvent("load", this.handler(this.runWLfuncs, this))
        },
        init: function(a) {
            var b = {
                status: -3,
                plugin: 0
            };
            if (!this.isString(a)) return b;
            if (1 == a.length) return this.getVersionDelimiter = a, b;
            a = a.toLowerCase().replace(/\s/g, "");
            var c = this.Plugins[a];
            if (!c || !c.getVersion) return b;
            b.plugin = c;
            this.isDefined(c.installed) || (c.installed = null, c.version = null, c.version0 = null, c.getVersionDone = null, c.pluginName = a);
            this.garbage = !1;
            if (this.isIE && !this.ActiveXEnabled && "java" !== a) return b.status = -2, b;
            b.status = 1;
            return b
        },
        fPush: function(a, b) {
            this.isArray(b) && (this.isFunc(a) || this.isArray(a) && 0 < a.length && this.isFunc(a[0])) && b.push(a)
        },
        callArray: function(a) {
            var b;
            if (this.isArray(a))
                for (b = 0; b < a.length && null !== a[b]; b++) this.call(a[b]), a[b] = null
        },
        call: function(a) {
            var b = this.isArray(a) ? a.length : -1;
            if (0 < b && this.isFunc(a[0])) a[0](this, 1 < b ? a[1] : 0, 2 < b ? a[2] : 0, 3 < b ? a[3] : 0);
            else this.isFunc(a) && a(this)
        },
        getVersionDelimiter: ",",
        $$getVersion: function(a) {
            return function(b, c, d) {
                b = a.init(b);
                if (0 > b.status) return null;
                b = b.plugin;
                1 != b.getVersionDone && (b.getVersion(null, c, d), null === b.getVersionDone && (b.getVersionDone = 1));
                a.cleanup();
                return c = (c = b.version || b.version0) ? c.replace(a.splitNumRegx, a.getVersionDelimiter) : c
            }
        },
        cleanup: function() {
            this.garbage && this.isDefined(p.CollectGarbage) && p.CollectGarbage()
        },
        isActiveXObject: function(a, b) {
            var c = !1,
                d = '<object width="1" height="1" style="display:none" ' + a.getCodeBaseVersion(b) + ">" + a.HTML + this.openTag + "/object>";
            if (!this.head) return c;
            this.head.insertBefore(document.createElement("object"), this.head.firstChild);
            this.head.firstChild.outerHTML = d;
            try {
                this.head.firstChild.classid = a.classID
            } catch (e) {}
            try {
                this.head.firstChild.object && (c = !0)
            } catch (e) {}
            try {
                c && 4 > this.head.firstChild.readyState && (this.garbage = !0)
            } catch (e) {}
            this.head.removeChild(this.head.firstChild);
            return c
        },
        codebaseSearch: function(a, b) {
            var c = this;
            if (!c.ActiveXEnabled || !a) return null;
            a.BIfuncs && a.BIfuncs.length && null !== a.BIfuncs[a.BIfuncs.length - 1] && c.callArray(a.BIfuncs);
            var d, e = a.SEARCH;
            if (c.isStrNum(b)) {
                if (e.match && e.min && 0 >= c.compareNums(b, e.min)) return !0;
                if (e.match && e.max && 0 <= c.compareNums(b, e.max)) return !1;
                (d = c.isActiveXObject(a, b)) && (!e.min || 0 < c.compareNums(b, e.min)) && (e.min = b);
                d || e.max && !(0 > c.compareNums(b, e.max)) || (e.max = b);
                return d
            }
            var f = [0, 0, 0, 0],
                h = [].concat(e.digits),
                g = e.min ? 1 : 0,
                k, n = function(b, d) {
                    var e = [].concat(f);
                    e[b] = d;
                    return c.isActiveXObject(a, e.join(","))
                };
            if (e.max) {
                d = e.max.split(c.splitNumRegx);
                for (k = 0; k < d.length; k++) d[k] = parseInt(d[k], 10);
                d[0] < h[0] && (h[0] = d[0])
            }
            if (e.min) {
                var m = e.min.split(c.splitNumRegx);
                for (k = 0; k < m.length; k++) m[k] = parseInt(m[k], 10);
                m[0] > f[0] && (f[0] = m[0])
            }
            if (m && d)
                for (k = 1; k < m.length && m[k - 1] == d[k - 1]; k++) d[k] < h[k] && (h[k] = d[k]), m[k] > f[k] && (f[k] = m[k]);
            if (e.max)
                for (k = 1; k < h.length; k++)
                    if (0 < d[k] && 0 == h[k] && h[k - 1] < e.digits[k - 1]) {
                        h[k - 1] += 1;
                        break
                    }
            for (k = 0; k < h.length; k++) {
                m = {};
                for (e = 0; 20 > e && !(1 > h[k] - f[k]); e++) {
                    d = X((h[k] + f[k]) / 2);
                    if (m["a" + d]) break;
                    m["a" + d] = 1;
                    n(k, d) ? (f[k] = d, g = 1) : h[k] = d
                }
                h[k] = f[k];
                !g && n(k, f[k]) && (g = 1);
                if (!g) break
            }
            return g ? f.join(",") : null
        },
        addWinEvent: function(a, b) {
            if (this.isFunc(b))
                if (p.addEventListener) p.addEventListener(a, b, !1);
                else if (p.attachEvent) p.attachEvent("on" + a, b);
            else {
                var c = p["on" + a];
                p["on" + a] = this.winHandler(b, c)
            }
        },
        winHandler: function(a, b) {
            return function() {
                a();
                "function" == typeof b && b()
            }
        },
        WLfuncs0: [],
        WLfuncs: [],
        runWLfuncs: function(a) {
            a.winLoaded = !0;
            a.callArray(a.WLfuncs0);
            a.callArray(a.WLfuncs);
            if (a.onDoneEmptyDiv) a.onDoneEmptyDiv()
        },
        winLoaded: !1,
        $$onWindowLoaded: function(a) {
            return function(b) {
                a.winLoaded ? a.call(b) : a.fPush(b, a.WLfuncs)
            }
        },
        div: null,
        divID: "plugindetect",
        divWidth: 50,
        pluginSize: 1,
        emptyDiv: function() {
            var a, b, c;
            if (this.div && this.div.childNodes)
                for (a = this.div.childNodes.length - 1; 0 <= a; a--) {
                    if ((c = this.div.childNodes[a]) && c.childNodes)
                        for (b = c.childNodes.length - 1; 0 <= b; b--) {
                            var d = c.childNodes[b];
                            try {
                                c.removeChild(d)
                            } catch (e) {}
                        }
                    if (c) try {
                        this.div.removeChild(c)
                    } catch (e) {}
                }!this.div && (a = document.getElementById(this.divID)) && (this.div = a);
            if (this.div && this.div.parentNode) {
                try {
                    this.div.parentNode.removeChild(this.div)
                } catch (e) {}
                this.div = null
            }
        },
        DONEfuncs: [],
        onDoneEmptyDiv: function() {
            var a, b;
            if (this.winLoaded && (!this.WLfuncs || !this.WLfuncs.length || null === this.WLfuncs[this.WLfuncs.length - 1])) {
                for (a in this)
                    if ((b = this[a]) && b.funcs && (3 == b.OTF || b.funcs.length && null !== b.funcs[b.funcs.length - 1])) return;
                for (a = 0; a < this.DONEfuncs.length; a++) this.callArray(this.DONEfuncs);
                this.emptyDiv()
            }
        },
        getWidth: function(a) {
            return a && (a = a.scrollWidth || a.offsetWidth, this.isNum(a)) ? a : -1
        },
        getTagStatus: function(a, b, c, d) {
            var e = a.span,
                f = this.getWidth(e);
            c = c.span;
            var g = this.getWidth(c);
            b = b.span;
            var l = this.getWidth(b);
            if (!(e && c && b && this.getDOMobj(a))) return -2;
            if (g < l || 0 > f || 0 > g || 0 > l || l <= this.pluginSize || 1 > this.pluginSize) return 0;
            if (f >= l) return -1;
            try {
                if (f == this.pluginSize && (!this.isIE || 4 == this.getDOMobj(a).readyState) && (!a.winLoaded && this.winLoaded || a.winLoaded && this.isNum(d) && (this.isNum(a.count) || (a.count = d), 10 <= d - a.count))) return 1
            } catch (k) {}
            return 0
        },
        getDOMobj: function(a, b) {
            var c = a ? a.span : 0,
                d = c && c.firstChild ? 1 : 0;
            try {
                d && b && this.div.focus()
            } catch (e) {}
            return d ? c.firstChild : null
        },
        setStyle: function(a, b) {
            var c = a.style,
                d;
            if (c && b)
                for (d = 0; d < b.length; d += 2) try {
                    c[b[d]] = b[d + 1]
                } catch (e) {}
        },
        insertDivInBody: function(a, b) {
            var c = null,
                d = b ? p.top.document : p.document,
                e = d.getElementsByTagName("body")[0] || d.body;
            if (!e) try {
                d.write('<div id="pd33993399">.' + this.openTag + "/div>"), c = d.getElementById("pd33993399")
            } catch (f) {}
            if (e = d.getElementsByTagName("body")[0] || d.body) e.insertBefore(a, e.firstChild), c && e.removeChild(c)
        },
        insertHTML: function(a, b, c, d, e) {
            e = document;
            var f = e.createElement("span"),
                g, l = "outlineStyle none borderStyle none padding 0px margin 0px visibility visible".split(" ");
            this.isDefined(d) || (d = "");
            if (this.isString(a) && /[^\s]/.test(a)) {
                a = a.toLowerCase().replace(/\s/g, "");
                var k = this.openTag + a + ' width="' + this.pluginSize + '" height="' + this.pluginSize + '" ';
                k += 'style="outline-style:none;border-style:none;padding:0px;margin:0px;visibility:visible;display:inline;" ';
                for (g = 0; g < b.length; g += 2) /[^\s]/.test(b[g + 1]) && (k += b[g] + '="' + b[g + 1] + '" ');
                k += ">";
                for (g = 0; g < c.length; g += 2) /[^\s]/.test(c[g + 1]) && (k += this.openTag + 'param name="' + c[g] + '" value="' + c[g + 1] + '" />');
                k += d + this.openTag + "/" + a + ">"
            } else k = d;
            this.div || ((b = e.getElementById(this.divID)) ? this.div = b : (this.div = e.createElement("div"), this.div.id = this.divID), this.setStyle(this.div, l.concat(["width", this.divWidth + "px", "height", this.pluginSize + 3 + "px", "fontSize", this.pluginSize + 3 + "px", "lineHeight", this.pluginSize + 3 + "px", "verticalAlign", "baseline", "display", "block"])), b || (this.setStyle(this.div, "position absolute right 0px top 0px".split(" ")), this.insertDivInBody(this.div)));
            if (this.div && this.div.parentNode) {
                this.setStyle(f, l.concat(["fontSize", this.pluginSize + 3 + "px", "lineHeight", this.pluginSize + 3 + "px", "verticalAlign", "baseline", "display", "inline"]));
                try {
                    f.innerHTML = k
                } catch (n) {}
                try {
                    this.div.appendChild(f)
                } catch (n) {}
                return {
                    span: f,
                    winLoaded: this.winLoaded,
                    tagName: a,
                    outerHTML: k
                }
            }
            return {
                span: null,
                winLoaded: this.winLoaded,
                tagName: "",
                outerHTML: k
            }
        },
        Plugins: {
            quicktime: {
                mimeType: ["video/quicktime", "application/x-quicktimeplayer", "image/x-macpaint", "image/x-quicktime"],
                progID: "QuickTimeCheckObject.QuickTimeCheck.1",
                progID0: "QuickTime.QuickTime",
                classID: "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B",
                minIEver: 7,
                HTML: '<param name="src" value="" /><param name="controller" value="false" />',
                getCodeBaseVersion: function(a) {
                    return 'codebase="#version=' + a + '"'
                },
                SEARCH: {
                    min: 0,
                    max: 0,
                    match: 0,
                    digits: [16, 128, 128, 0]
                },
                getVersion: function(a) {
                    var b = this.$,
                        c = null,
                        d = null;
                    if (b.isIE) {
                        b.isStrNum(a) && (a = a.split(b.splitNumRegx), 3 < a.length && 0 < parseInt(a[3], 10) && (a[3] = "9999"), a = a.join(","));
                        if (b.isStrNum(a) && b.verIE >= this.minIEver && 0 < this.canUseIsMin()) {
                            this.installed = this.isMin(a);
                            this.getVersionDone = 0;
                            return
                        }
                        this.getVersionDone = 1;
                        !c && b.verIE >= this.minIEver && (c = this.CDBASE2VER(b.codebaseSearch(this)));
                        c || (d = b.getAXO(this.progID)) && d.QuickTimeVersion && (c = d.QuickTimeVersion.toString(16), c = parseInt(c.charAt(0), 16) + "." + parseInt(c.charAt(1), 16) + "." + parseInt(c.charAt(2), 16))
                    } else b.hasMimeType(this.mimeType) && (d = 3 != b.OS ? b.findNavPlugin("QuickTime.*Plug-?in", 0) : null) && d.name && (c = b.getNum(d.name));
                    this.installed = c ? 1 : d ? 0 : -1;
                    this.version = b.formatNum(c, 3)
                },
                cdbaseUpper: ["7,60,0,0", "0,0,0,0"],
                cdbaseLower: ["7,50,0,0", null],
                cdbase2ver: [function(a, b) {
                    var c = b.split(a.$.splitNumRegx);
                    return [c[0], c[1].charAt(0), c[1].charAt(1), c[2]].join()
                }, null],
                CDBASE2VER: function(a) {
                    var b = this.$,
                        c, d = this.cdbaseUpper,
                        e = this.cdbaseLower;
                    if (a)
                        for (a = b.formatNum(a), c = 0; c < d.length; c++)
                            if (d[c] && 0 > b.compareNums(a, d[c]) && e[c] && 0 <= b.compareNums(a, e[c]) && this.cdbase2ver[c]) return this.cdbase2ver[c](this, a);
                    return a
                },
                canUseIsMin: function() {
                    var a = this.$,
                        b, c = this.canUseIsMin,
                        d = this.cdbaseUpper,
                        e = this.cdbaseLower;
                    if (!c.value)
                        for (c.value = -1, b = 0; b < d.length; b++) {
                            if (d[b] && a.codebaseSearch(this, d[b])) {
                                c.value = 1;
                                break
                            }
                            if (e[b] && a.codebaseSearch(this, e[b])) {
                                c.value = -1;
                                break
                            }
                        }
                    this.SEARCH.match = 1 == c.value ? 1 : 0;
                    return c.value
                },
                isMin: function(a) {
                    return this.$.codebaseSearch(this, a) ? .7 : -1
                }
            },
            flash: {
                mimeType: "application/x-shockwave-flash",
                progID: "ShockwaveFlash.ShockwaveFlash",
                classID: "clsid:D27CDB6E-AE6D-11CF-96B8-444553540000",
                getVersion: function() {
                    var a = function(a) {
                            return a ? (a = /[\d][\d\,\.\s]*[rRdD]{0,1}[\d\,]*/.exec(a)) ? a[0].replace(/[rRdD\.]/g, ",").replace(/\s/g, "") : null : null
                        },
                        b = this.$,
                        c, d = null,
                        e = null,
                        f = null;
                    if (b.isIE) {
                        for (c = 15; 2 < c; c--)
                            if (e = b.getAXO(this.progID + "." + c)) {
                                f = c.toString();
                                break
                            }
                        e || (e = b.getAXO(this.progID));
                        if ("6" == f) try {
                            e.AllowScriptAccess = "always"
                        } catch (h) {
                            return "6,0,21,0"
                        }
                        try {
                            d = a(e.GetVariable("$version"))
                        } catch (h) {}!d && f && (d = f)
                    } else {
                        if (e = b.hasMimeType(this.mimeType)) {
                            c = b.getDOMobj(b.insertHTML("object", ["type", this.mimeType], [], "", this));
                            try {
                                d = b.getNum(c.GetVariable("$version"))
                            } catch (h) {}
                        }
                        d || ((c = e ? e.enabledPlugin : null) && c.description && (d = a(c.description)), d && (d = b.getPluginFileVersion(c, d)))
                    }
                    this.installed = d ? 1 : -1;
                    this.version = b.formatNum(d);
                    return !0
                }
            },
            shockwave: {
                mimeType: "application/x-director",
                progID: "SWCtl.SWCtl",
                classID: "clsid:166B1BCA-3F9C-11CF-8075-444553540000",
                getVersion: function() {
                    var a = null,
                        b = null,
                        c = this.$;
                    if (c.isIE) {
                        try {
                            b = c.getAXO(this.progID).ShockwaveVersion("")
                        } catch (d) {}
                        c.isString(b) && 0 < b.length ? a = c.getNum(b) : c.getAXO(this.progID + ".8") ? a = "8" : c.getAXO(this.progID + ".7") ? a = "7" : c.getAXO(this.progID + ".1") && (a = "6")
                    } else(b = c.findNavPlugin("Shockwave\\s*for\\s*Director")) && b.description && c.hasMimeType(this.mimeType) && (a = c.getNum(b.description)), a && (a = c.getPluginFileVersion(b, a));
                    this.installed = a ? 1 : -1;
                    this.version = c.formatNum(a)
                }
            },
            zz: 0
        }
    };
    ha.initScript();
    var na = 'The "%%" function requires an even number of arguments.\nArguments should be in the form "atttributeName", "attributeValue", ...',
        r = null;
    (function() {
        function a(a) {
            a = a || location.href;
            return "#" + a.replace(/^[^#]*#?(.*)$/, "$1")
        }
        var b = document,
            c = g.event.special,
            d = b.documentMode,
            e = "oniLightBoxHashChange" in p && (void 0 === d || 7 < d);
        g.fn.iLightBoxHashChange = function(a) {
            return a ? this.bind("iLightBoxHashChange", a) : this.trigger("iLightBoxHashChange")
        };
        g.fn.iLightBoxHashChange.delay = 50;
        c.iLightBoxHashChange = g.extend(c.iLightBoxHashChange, {
            setup: function() {
                if (e) return !1;
                g(f.start)
            },
            teardown: function() {
                if (e) return !1;
                g(f.stop)
            }
        });
        var f = function() {
            function c() {
                var b = a(),
                    d = t(n);
                b !== n ? (r(n = b, d), g(p).trigger("iLightBoxHashChange")) : d !== n && (location.href = location.href.replace(/#.*/, "") + d);
                f = setTimeout(c, g.fn.iLightBoxHashChange.delay)
            }
            var d = {},
                f, n = a(),
                m = function(a) {
                    return a
                },
                r = m,
                t = m;
            d.start = function() {
                f || c()
            };
            d.stop = function() {
                f && clearTimeout(f);
                f = void 0
            };
            D.msie && !e && function() {
                var e, f;
                d.start = function() {
                    e || (f = (f = g.fn.iLightBoxHashChange.src) && f + a(), e = g('<iframe tabindex="-1" title="empty"/>').hide().one("load", function() {
                        f || r(a());
                        c()
                    }).attr("src", f || "javascript:0").insertAfter("body")[0].contentWindow, b.onpropertychange = function() {
                        try {
                            "title" === event.propertyName && (e.document.title = b.title)
                        } catch (v) {}
                    })
                };
                d.stop = m;
                t = function() {
                    return a(e.location.href)
                };
                r = function(a, c) {
                    var d = e.document,
                        f = g.fn.iLightBoxHashChange.domain;
                    a !== c && (d.title = b.title, d.open(), f && d.write('<script>document.domain="' + f + '"\x3c/script>'), d.close(), e.location.hash = a)
                }
            }();
            return d
        }()
    })();
    Array.prototype.filter || (Array.prototype.filter = function(a, b) {
        if (null == this) throw new TypeError;
        var c = Object(this),
            d = c.length >>> 0;
        if ("function" != typeof a) throw new TypeError;
        for (var e = [], f = 0; f < d; f++)
            if (f in c) {
                var g = c[f];
                a.call(b, g, f, c) && e.push(g)
            }
        return e
    });
    Array.prototype.indexOf || (Array.prototype.indexOf = function(a, b) {
        if (null == this) throw new TypeError('"this" is null or not defined');
        var c = Object(this),
            d = c.length >>> 0;
        if (0 === d) return -1;
        var e = +b || 0;
        Infinity === I(e) && (e = 0);
        if (e >= d) return -1;
        for (e = ca(0 <= e ? e : d - I(e), 0); e < d;) {
            if (e in c && c[e] === a) return e;
            e++
        }
        return -1
    });
    Array.prototype.lastIndexOf || (Array.prototype.lastIndexOf = function(a) {
        if (null == this) throw new TypeError;
        var b = Object(this),
            c = b.length >>> 0;
        if (0 === c) return -1;
        var d = c;
        1 < arguments.length && (d = Number(arguments[1]), d != d ? d = 0 : 0 != d && d != 1 / 0 && d != -(1 / 0) && (d = (0 < d || -1) * M(I(d))));
        for (c = 0 <= d ? Y(d, c - 1) : c - I(d); 0 <= c; c--)
            if (c in b && b[c] === a) return c;
        return -1
    })
})(jQuery, this);
                                    

#75 JavaScript::Eval (size: 83, repeated: 1) - SHA256: 0cb21d1de060008bab472c15c63e6f15828de601f85deff00d701d26c0f6819a

                                        0,
function(_, $) {
    while (_._ += !(_.$[_[_._] = _[$._]] && _.M.push(_._, _[$._])), $.$ ^ ++$._);
}
                                    

#76 JavaScript::Eval (size: 22, repeated: 1) - SHA256: ca052c007a6bda750373ed2fe6f63778dafa60f630c04f5796c278ab4dd57b0f

                                        0,
function(D) {
    HO(D, 2)
}
                                    

#77 JavaScript::Eval (size: 2, repeated: 1) - SHA256: beba745afae8503925089cc2f3cc9b87e849e81c07531e83c5c341a63bcaaed9

                                        uh
                                    

#78 JavaScript::Eval (size: 211492, repeated: 1) - SHA256: 08cc231ab72ed0694526dff19a105a3163d470b6c99eef8be0dfc7cfff1cb647

                                        ! function(X) {
    "use strict";
    window._layerSliders = {}, X.fn.layerSlider = function(i, a, s, r) {
        i = i || {};
        var t, e = "1.8.0",
            o = X.fn.jquery;
        if (window._layerSlider.checkVersions(e, o, e)) return (typeof i).match("object|undefined") ? this.each(function(e) {
            t = "LS" + Math.random().toString(36).substr(2, 9), X(this).data("lsSliderUID") || (window._layerSliders[t] = new n(this, X(this), i, t))
        }) : "data" === i ? window._layerSliders[this.data("lsSliderUID")] : "eventData" === i ? window._layerSliders[this.data("lsSliderUID")].api.eventData() : "defaultInitOptions" === i ? window._layerSliders[this.data("lsSliderUID")].defaults.init.options || !1 : "userInitOptions" === i ? window._layerSliders[this.data("lsSliderUID")].userInitOptions || !1 : "sliderInitOptions" === i ? window._layerSliders[this.data("lsSliderUID")].o || !1 : "originalMarkup" === i ? window._layerSliders[this.data("lsSliderUID")].originalMarkup || !1 : this.each(function(e) {
            var t = window._layerSliders[X(this).data("lsSliderUID")];
            t && t.api.methods(i, a, s, r), t = null
        });
        window._layerSlider.showNotice(this, "oldjquery", o, e)
    };
    var n = function(P, $, i, B) {
        $.data("lsSliderUID", B).attr("data-layerslider-uid", B);
        var N = this,
            H = N.gsap = window._layerSlider.GSAP || window;
        N.defaults = {
            init: {
                lsDataArraySplitChar: "|",
                dataKey: "_LS",
                controls: ["#playmedia", "#pausemedia", "#unmute", "#unmutemedia", "#start", "#stop", "#prev", "#next", "#replay", "#reverse", "#reverse-replay", "#reversereplay"],
                options: {
                    type: "responsive",
                    fullSizeMode: "normal",
                    fitScreenWidth: !0,
                    preventSliderClip: !0,
                    allowFullscreen: !0,
                    responsiveUnder: -1,
                    layersContainerWidth: -1,
                    layersContainerHeight: -1,
                    maxRatio: -1,
                    insertMethod: "prependTo",
                    insertSelector: null,
                    clipSlideTransition: !1,
                    slideBGSize: "cover",
                    slideBGPosition: "50% 50%",
                    preferBlendMode: !1,
                    autoStart: !0,
                    startInViewport: !0,
                    playByScroll: !1,
                    playByScrollSpeed: 1,
                    playByScrollStart: !1,
                    playByScrollSkipSlideBreaks: !1,
                    pauseOnHover: "slideshowOnly",
                    pauseLayers: !1,
                    firstSlide: 1,
                    sliderFadeInDuration: 350,
                    cycles: -1,
                    forceCycles: !0,
                    twoWaySlideshow: !1,
                    shuffleSlideshow: !1,
                    forceLayersOutDuration: 750,
                    skin: "v6",
                    skinsPath: "/layerslider/skins/",
                    globalBGColor: "transparent",
                    globalBGImage: !1,
                    globalBGRepeat: "no-repeat",
                    globalBGAttachment: "scroll",
                    globalBGSize: "auto",
                    globalBGPosition: "50% 50%",
                    navPrevNext: !0,
                    navStartStop: !0,
                    navButtons: !0,
                    keybNav: !0,
                    touchNav: !0,
                    hoverPrevNext: !0,
                    hoverBottomNav: !1,
                    showBarTimer: !1,
                    showCircleTimer: !0,
                    showSlideBarTimer: !1,
                    thumbnailNavigation: "hover",
                    tnContainerWidth: "60%",
                    tnWidth: 100,
                    tnHeight: 60,
                    tnActiveOpacity: 35,
                    tnInactiveOpacity: 100,
                    scrollModifier: 0,
                    autoPlayVideos: !0,
                    autoPauseSlideshow: "auto",
                    youtubePreview: "maxresdefault.jpg",
                    rememberUnmuteState: !0,
                    parallaxCenterDegree: 40,
                    parallaxSensitivity: 10,
                    parallaxCenterLayers: "center",
                    parallaxScrollReverse: !1,
                    yourLogo: !1,
                    yourLogoStyle: "left: -10px; top: -10px;",
                    yourLogoLink: !1,
                    yourLogoTarget: "_self",
                    optimizeForMobile: !0,
                    hideOnMobile: !1,
                    hideUnder: -1,
                    hideOver: -1,
                    slideOnSwipe: !0,
                    allowRestartOnResize: !1,
                    useSrcset: !0,
                    hashChange: !1,
                    refreshWaypoint: !0,
                    staticImage: ""
                }
            },
            slider: {
                errorText: "LayerSlider (UID: " + B + ") error:"
            },
            slide: {
                keys: {
                    slidedelay: ["data", "duration"],
                    duration: ["data", "duration"],
                    timeshift: ["data", "timeShift"],
                    transition2d: ["data", "transition2d"],
                    transition3d: ["data", "transition3d"],
                    transitionorigami: ["data", "transitionorigami"],
                    customtransition2d: ["data", "customtransition2d"],
                    customtransition3d: ["data", "customtransition3d"],
                    transitionduration: ["data", "transitionDuration"],
                    backgroundsize: ["data", "backgroundSize"],
                    bgsize: ["data", "backgroundSize"],
                    backgroundposition: ["data", "backgroundPosition"],
                    bgposition: ["data", "backgroundPosition"],
                    backgroundcolor: ["data", "backgroundColor"],
                    bgcolor: ["data", "backgroundColor"],
                    thumbnail: ["data", "thumbnail"],
                    deeplink: ["data", "deeplink"],
                    overflow: ["data", "overflow"],
                    kenburnspan: ["kenBurns", "pan"],
                    kenburnszoom: ["kenBurns", "zoom"],
                    kenburnsrotation: ["kenBurns", "rotation"],
                    kenburnsrotate: ["kenBurns", "rotation"],
                    kenburnsscale: ["kenBurns", "scale"],
                    filterfrom: ["filter", "from"],
                    filterto: ["filter", "to"],
                    parallaxtype: ["parallax", "type"],
                    parallaxevent: ["parallax", "event"],
                    parallaxpath: ["parallax", "path"],
                    parallaxdirection: ["parallax", "direction"],
                    parallaxduration: ["parallax", "duration"],
                    parallaxcount: ["parallax", "count"],
                    parallaxdelay: ["parallax", "startAt"],
                    parallaxstartat: ["parallax", "startAt"],
                    parallaxaxis: ["parallax", "axis"],
                    parallaxtransformorigin: ["parallax", "transformOrigin"],
                    parallaxdurationmove: ["parallax", "durationMove"],
                    parallaxdurationleave: ["parallax", "durationLeave"],
                    parallaxrotate: ["parallax", "rotation"],
                    parallaxrotation: ["parallax", "rotation"],
                    parallaxdistance: ["parallax", "distance"],
                    parallaxtransformperspective: ["parallax", "transformPerspective"],
                    globalhover: ["data", "globalhover"]
                },
                options: {
                    $link: !1,
                    index: -1,
                    data: {
                        duration: -1,
                        timeShift: 0,
                        calculatedTimeShift: 0
                    },
                    parallax: {},
                    kenBurns: {
                        scale: 1.2
                    },
                    filter: {}
                },
                registerPluginDefaults: function(e, t, i) {
                    N.defaults.slide.options.plugins || (N.defaults.slide.options.plugins = {}), N.defaults.slide.options.plugins[e] = t
                }
            },
            layer: {
                keys: {
                    keyframe: ["is"],
                    responsive: ["is"],
                    position: ["settings"],
                    static: ["settings"],
                    mirrortransitions: ["settings"],
                    minfontsize: ["styleSettings"],
                    minmobilefontsize: ["styleSettings"],
                    overlay: ["styleSettings"],
                    pointerevents: ["styleSettings"],
                    autoplay: ["mediaSettings"],
                    controls: ["mediaSettings"],
                    showinfo: ["mediaSettings"],
                    fillmode: ["mediaSettings"],
                    thumbnail: ["poster", "mediaSettings"],
                    poster: ["mediaSettings"],
                    volume: ["mediaSettings"],
                    muted: ["mediaSettings"],
                    loopmedia: ["loop", "mediaSettings"],
                    backgroundvideo: ["backgroundVideo", "mediaSettings"],
                    fadein: ["opacity", "inLayerFromCSS"],
                    opacityin: ["opacity", "inLayerFromCSS"],
                    rotatein: ["rotation", "inLayerFromCSS"],
                    rotatexin: ["rotationX", "inLayerFromCSS"],
                    rotateyin: ["rotationY", "inLayerFromCSS"],
                    rotationin: ["rotation", "inLayerFromCSS"],
                    rotationxin: ["rotationX", "inLayerFromCSS"],
                    rotationyin: ["rotationY", "inLayerFromCSS"],
                    scalein: ["scale", "inLayerFromCSS"],
                    scalexin: ["scaleX", "inLayerFromCSS"],
                    scaleyin: ["scaleY", "inLayerFromCSS"],
                    skewxin: ["skewX", "inLayerFromCSS"],
                    skewyin: ["skewY", "inLayerFromCSS"],
                    bgcolorin: ["backgroundColor", "inLayerStyleFromCSS"],
                    colorin: ["color", "inLayerStyleFromCSS"],
                    radiusin: ["borderRadius", "inLayerStyleShouldBeConvertedFrom"],
                    widthin: ["width", "inLayerStyleShouldBeConvertedFrom"],
                    heightin: ["height", "inLayerStyleShouldBeConvertedFrom"],
                    filterin: ["filter", "inLayerStyleShouldBeConvertedFrom"],
                    rotate: ["rotation", "inLayerToCSS"],
                    rotatex: ["rotationX", "inLayerToCSS"],
                    rotatey: ["rotationY", "inLayerToCSS"],
                    rotation: ["rotation", "inLayerToCSS"],
                    rotationx: ["rotationX", "inLayerToCSS"],
                    rotationy: ["rotationY", "inLayerToCSS"],
                    scale: ["scale", "inLayerToCSS"],
                    scalex: ["scaleX", "inLayerToCSS"],
                    scaley: ["scaleY", "inLayerToCSS"],
                    skewx: ["skewX", "inLayerToCSS"],
                    skewy: ["skewY", "inLayerToCSS"],
                    transformoriginin: ["transformOrigin", "inLayerShouldBeConverted"],
                    offsetxin: ["x", "inLayerShouldBeConverted"],
                    offsetyin: ["y", "inLayerShouldBeConverted"],
                    clipin: ["clip", "inClipShouldBeConverted"],
                    delayin: ["startAt", "in"],
                    startatin: ["startAt", "in"],
                    instartat: ["startAt", "in"],
                    durationin: ["duration", "in"],
                    easein: ["ease", "in"],
                    easingin: ["ease", "in"],
                    transitionin: ["enabled", "in"],
                    textfadein: ["opacity", "textInNodesFrom"],
                    textopacityin: ["opacity", "textInNodesFrom"],
                    textrotatein: ["rotation", "textInNodesFrom"],
                    textrotatexin: ["rotationX", "textInNodesFrom"],
                    textrotateyin: ["rotationY", "textInNodesFrom"],
                    textrotationin: ["rotation", "textInNodesFrom"],
                    textrotationxin: ["rotationX", "textInNodesFrom"],
                    textrotationyin: ["rotationY", "textInNodesFrom"],
                    textscalein: ["scale", "textInNodesFrom"],
                    textscalexin: ["scaleX", "textInNodesFrom"],
                    textscaleyin: ["scaleY", "textInNodesFrom"],
                    textskewxin: ["skewX", "textInNodesFrom"],
                    textskewyin: ["skewY", "textInNodesFrom"],
                    texteasein: ["ease", "textInNodesTo"],
                    texteasingin: ["ease", "textInNodesTo"],
                    texttransformoriginin: ["transformOrigin", "textInShouldBeConverted"],
                    textoffsetxin: ["x", "textInShouldBeConverted"],
                    textoffsetyin: ["y", "textInShouldBeConverted"],
                    texttypein: ["type", "textIn"],
                    textshiftin: ["shiftNodes", "textIn"],
                    textdelayin: ["startAt", "textIn"],
                    textstartatin: ["startAt", "textIn"],
                    textinstartat: ["startAt", "textIn"],
                    textdurationin: ["duration", "textIn"],
                    texttransitionin: ["enabled", "textIn"],
                    fadeout: ["opacity", "outLayerToCSS"],
                    opacityout: ["opacity", "outLayerToCSS"],
                    rotateout: ["rotation", "outLayerToCSS"],
                    rotatexout: ["rotationX", "outLayerToCSS"],
                    rotateyout: ["rotationY", "outLayerToCSS"],
                    rotationout: ["rotation", "outLayerToCSS"],
                    rotationxout: ["rotationX", "outLayerToCSS"],
                    rotationyout: ["rotationY", "outLayerToCSS"],
                    scaleout: ["scale", "outLayerToCSS"],
                    scalexout: ["scaleX", "outLayerToCSS"],
                    scaleyout: ["scaleY", "outLayerToCSS"],
                    skewxout: ["skewX", "outLayerToCSS"],
                    skewyout: ["skewY", "outLayerToCSS"],
                    bgcolorout: ["backgroundColor", "outLayerStyleToCSS"],
                    colorout: ["color", "outLayerStyleToCSS"],
                    radiusout: ["borderRadius", "outLayerStyleShouldBeConvertedTo"],
                    widthout: ["width", "outLayerStyleShouldBeConvertedTo"],
                    heightout: ["height", "outLayerStyleShouldBeConvertedTo"],
                    filterout: ["filter", "outLayerStyleShouldBeConvertedTo"],
                    transformoriginout: ["transformOrigin", "outLayerShouldBeConverted"],
                    offsetxout: ["x", "outLayerShouldBeConverted"],
                    offsetyout: ["y", "outLayerShouldBeConverted"],
                    clipout: ["clip", "outClipShouldBeConverted"],
                    showuntil: ["showUntil", "out"],
                    startatout: ["startAt", "out"],
                    outstartat: ["startAt", "out"],
                    durationout: ["duration", "out"],
                    easeout: ["ease", "out"],
                    easingout: ["ease", "out"],
                    transitionout: ["enabled", "out"],
                    textfadeout: ["opacity", "textOutNodesTo"],
                    textopacityout: ["opacity", "textOutNodesTo"],
                    textrotateout: ["rotation", "textOutNodesTo"],
                    textrotatexout: ["rotationX", "textOutNodesTo"],
                    textrotateyout: ["rotationY", "textOutNodesTo"],
                    textrotationout: ["rotation", "textOutNodesTo"],
                    textrotationxout: ["rotationX", "textOutNodesTo"],
                    textrotationyout: ["rotationY", "textOutNodesTo"],
                    textscaleout: ["scale", "textOutNodesTo"],
                    textscalexout: ["scaleX", "textOutNodesTo"],
                    textscaleyout: ["scaleY", "textOutNodesTo"],
                    textskewxout: ["skewX", "textOutNodesTo"],
                    textskewyout: ["skewY", "textOutNodesTo"],
                    texteaseout: ["ease", "textOutNodesTo"],
                    texteasingout: ["ease", "textOutNodesTo"],
                    texttransformoriginout: ["transformOrigin", "textOutShouldBeConverted"],
                    textoffsetxout: ["x", "textOutShouldBeConverted"],
                    textoffsetyout: ["y", "textOutShouldBeConverted"],
                    texttypeout: ["type", "textOut"],
                    textshiftout: ["shiftNodes", "textOut"],
                    textdelayout: ["startAt", "textOut"],
                    textstartatout: ["startAt", "textOut"],
                    textoutstartat: ["startAt", "textOut"],
                    textdurationout: ["duration", "textOut"],
                    texttransitionout: ["enabled", "textOut"],
                    loopopacity: ["opacity", "loopToCSS"],
                    looprotate: ["rotation", "loopToCSS"],
                    looprotatex: ["rotationX", "loopToCSS"],
                    looprotatey: ["rotationY", "loopToCSS"],
                    looprotation: ["rotation", "loopToCSS"],
                    looprotationx: ["rotationX", "loopToCSS"],
                    looprotationy: ["rotationY", "loopToCSS"],
                    loopscale: ["scale", "loopToCSS"],
                    loopscalex: ["scaleX", "loopToCSS"],
                    loopscaley: ["scaleY", "loopToCSS"],
                    loopskewx: ["skewX", "loopToCSS"],
                    loopskewy: ["skewY", "loopToCSS"],
                    looptransformorigin: ["transformOrigin", "loopLayerShouldBeConverted"],
                    loopoffsetx: ["x", "loopLayerShouldBeConverted"],
                    loopoffsety: ["y", "loopLayerShouldBeConverted"],
                    loopfilter: ["filter", "loopLayerShouldBeConverted"],
                    loopclip: ["clip", "loopClipShouldBeConverted"],
                    loopdelay: ["startAt", "loop"],
                    loopstartat: ["startAt", "loop"],
                    loopduration: ["duration", "loop"],
                    loopcount: ["count", "loop"],
                    looprepeatdelay: ["repeatDelay", "loop"],
                    loopyoyo: ["yoyo", "loop"],
                    loopease: ["ease", "loop"],
                    loopeasing: ["ease", "loop"],
                    loop: ["enabled", "loop"],
                    hoveropacity: ["opacity", "hoverToCSS"],
                    hoverrotate: ["rotation", "hoverToCSS"],
                    hoverrotatex: ["rotationX", "hoverToCSS"],
                    hoverrotatey: ["rotationY", "hoverToCSS"],
                    hoverrotation: ["rotation", "hoverToCSS"],
                    hoverrotationx: ["rotationX", "hoverToCSS"],
                    hoverrotationy: ["rotationY", "hoverToCSS"],
                    hoverscale: ["scale", "hoverToCSS"],
                    hoverscalex: ["scaleX", "hoverToCSS"],
                    hoverscaley: ["scaleY", "hoverToCSS"],
                    hoverskewx: ["skewX", "hoverToCSS"],
                    hoverskewy: ["skewY", "hoverToCSS"],
                    hoverbgcolor: ["backgroundColor", "hoverToCSS"],
                    hovercolor: ["color", "hoverToCSS"],
                    hoverease: ["easeIn", "hover"],
                    hovereasing: ["easeIn", "hover"],
                    hovereasein: ["easeIn", "hover"],
                    hovereasingin: ["easeIn", "hover"],
                    hovereaseout: ["easeOut", "hover"],
                    hovereasingout: ["easeOut", "hover"],
                    hoverduration: ["durationIn", "hover"],
                    hoverdurationin: ["durationIn", "hover"],
                    hoverdurationout: ["durationOut", "hover"],
                    hoveralwaysontop: ["alwaysOnTop", "hover"],
                    hoveroffsetx: ["x", "hoverShouldBeConverted"],
                    hoveroffsety: ["y", "hoverShouldBeConverted"],
                    hoverfilter: ["filter", "hoverShouldBeConverted"],
                    hoverborderradius: ["borderRadius", "hoverShouldBeConverted"],
                    hoverradius: ["borderRadius", "hoverShouldBeConverted"],
                    hovertransformorigin: ["transformOrigin", "hoverShouldBeConverted"],
                    hover: ["enabled", "hover"],
                    kenburnspan: ["pan", "kenBurns"],
                    kenburnszoom: ["zoom", "kenBurns"],
                    kenburnsrotation: ["rotation", "kenBurns"],
                    kenburnsrotate: ["rotation", "kenBurns"],
                    kenburnsscale: ["scale", "kenBurns"],
                    parallaxlevel: ["level", "parallax"],
                    parallaxtype: ["type", "parallax"],
                    parallaxevent: ["event", "parallax"],
                    parallaxpath: ["path", "parallax"],
                    parallaxdirection: ["direction", "parallax"],
                    parallaxduration: ["duration", "parallax"],
                    parallaxcount: ["count", "parallax"],
                    parallaxdelay: ["startAt", "parallax"],
                    parallaxstartat: ["startAt", "parallax"],
                    parallaxaxis: ["axis", "parallax"],
                    parallaxtransformorigin: ["transformOrigin", "parallax"],
                    parallaxdurationmove: ["durationMove", "parallax"],
                    parallaxdurationleave: ["durationLeave", "parallax"],
                    parallaxrotate: ["rotation", "parallax"],
                    parallaxrotation: ["rotation", "parallax"],
                    parallaxdistance: ["distance", "parallax"],
                    parallax: ["enabled", "parallax"],
                    transformperspective: ["layer", "transformPerspective"],
                    transformperspectivein: ["layer", "transformPerspective"],
                    transformperspectiveout: ["layer", "transformPerspective"],
                    texttransformperspective: ["text", "transformPerspective"],
                    texttransformperspectivein: ["text", "transformPerspective"],
                    texttransformperspectiveout: ["text", "transformPerspective"],
                    looptransformperspective: ["loop", "transformPerspective"],
                    hovertransformperspective: ["hover", "transformPerspective"],
                    parallaxtransformperspective: ["parallax", "transformPerspective"]
                },
                splitTypeKeys: ["chars_asc", "chars_desc", "chars_rand", "chars_center", "chars_edge", "words_asc", "words_desc", "words_rand", "words_center", "words_edge", "lines_asc", "lines_desc", "lines_rand", "lines_center", "lines_edge"],
                timelineHierarchy: {
                    slidestart: [0],
                    transitioninstart: [1],
                    transitioninend: [2],
                    textinstart: [3, [1, 2, 6, 7, 8]],
                    textinend: [4],
                    allinend: [5],
                    loopstart: [6, [1, 2, 3, 4, 5]],
                    loopend: [7],
                    autoparallaxstart: [6.5, [0, 1, 2, 3, 4, 5, 6, 7]],
                    autoparallaxend: [7.5],
                    transitioninandloopend: [8],
                    textinandloopend: [9],
                    allinandloopend: [10],
                    textoutstart: [11, [2, 3, 4, 5, 6, 7, 8, 9, 10]],
                    textoutend: [12],
                    textoutandloopend: [13],
                    transitionoutstart: [14, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]],
                    transitionoutend: [15],
                    alloutend: [16],
                    alloutandloopend: [17]
                },
                properties: {
                    filter: function() {
                        return {
                            blur: 0,
                            brightness: 100,
                            contrast: 100,
                            grayscale: 0,
                            "hue-rotate": 0,
                            invert: 0,
                            saturate: 100,
                            sepia: 0
                        }
                    }
                },
                options: function(e, t) {
                    t = {
                        is: {
                            slideBackground: !!e.is("img.ls-bg"),
                            backgroundVideo: !!e.is(".ls-bg-video"),
                            imageLayer: !!e.is("img.ls-layer"),
                            mediaLayer: !1,
                            textLayer: !1,
                            responsive: !0,
                            onSlide: t
                        },
                        should: {},
                        elements: {},
                        settings: {
                            position: "relative",
                            slideIn: t,
                            slideOut: t
                        },
                        styleSettings: {
                            minfontsize: 0,
                            minmobilefontsize: 0
                        },
                        mediaSettings: {
                            fillmode: "cover",
                            backgroundVideo: !1
                        },
                        timeline: {
                            slidestart: 0,
                            transitioninstart: 0,
                            transitioninend: 0,
                            textinstart: 0,
                            textinend: 0,
                            allinend: function(e) {
                                return Math.max(this.transitioninend, this.textinend)
                            },
                            loopstart: 0,
                            loopend: 0,
                            transitioninandloopend: function(e) {
                                return 0 === this.loopend && e.loop.enabled && ("number" == typeof e.loop.startAt || -1 !== e.loop.startAt.indexOf("textinstart") && -1 !== e.loop.startAt.indexOf("textinend") && -1 !== e.loop.startAt.indexOf("allinend")) ? (this.loopstart = N.transitions.layers.timeline.getTiming(e, e.loop.startAt, "loopstart"), this.loopend = -1 !== e.loop.count && e.timeline.loopstart + (e.loop.repeat + 1) * e.loop.duration + e.loop.repeat * e.loop.repeatDelay) : N.debugMode && N.debug.add("warn", "layerTransition.infinite", e.self[0].tagName + "." + e.self.attr("class") + " [ " + e.self.html().substr(0, 30) + "... ]"), Math.max(this.transitioninend, this.loopend)
                            },
                            textinandloopend: function(e) {
                                return Math.max(this.textinend, this.loopend)
                            },
                            allinandloopend: function(e) {
                                return Math.max(this.allinend(), this.loopend)
                            },
                            textoutstart: 0,
                            textoutend: 0,
                            textoutandloopend: function(e) {
                                return Math.max(this.textoutend, this.loopend)
                            },
                            transitionoutstart: function(e) {
                                return Math.max(this.allinandloopend(), this.textoutend)
                            },
                            transitionoutend: 0,
                            alloutend: function(e) {
                                return Math.max(this.transitionoutend, this.textoutend, this.allinend())
                            },
                            alloutandloopend: function(e) {
                                return Math.max(this.transitionoutend, this.textoutandloopend(), this.allinend())
                            },
                            staticfrom: !1,
                            staticto: !1
                        },
                        transitionProperties: { in : {
                                enabled: !0,
                                layerFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {
                                        opacity: 0
                                    }
                                },
                                layerTo: {
                                    autoCSS: !1,
                                    onStart: function() {
                                        N.transitions.layers.in.onStart(e)
                                    },
                                    onComplete: function() {
                                        N.transitions.layers.in.onComplete(e)
                                    },
                                    css: {
                                        display: "block",
                                        opacity: 1,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        x: 0,
                                        y: 0
                                    }
                                },
                                layerStyleFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerStyleTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                clipFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                clipTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                layerShouldBeConverted: {
                                    transformOrigin: "50% 50% 0",
                                    x: 0,
                                    y: 0
                                },
                                layerStyleShouldBeConvertedFrom: {},
                                layerStyleShouldBeConvertedTo: {},
                                clipShouldBeConverted: {},
                                startAt: 0,
                                duration: 1,
                                ease: "easeInOutQuint"
                            }, textIn: {
                                enabled: null,
                                nodesFrom: {
                                    cycle: {},
                                    random: {},
                                    opacity: 0
                                },
                                nodesTo: {
                                    ease: "easeInOutQuint",
                                    css: {
                                        opacity: 1,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        x: 0,
                                        y: 0
                                    }
                                },
                                shouldBeConverted: {
                                    cycle: {},
                                    random: {},
                                    transformOrigin: "50% 50% 0",
                                    x: 0,
                                    y: 0
                                },
                                split: "",
                                shiftNodes: .05,
                                startAt: "transitioninend",
                                duration: 1
                            }, out: {
                                enabled: !0,
                                layerFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerTo: {
                                    autoCSS: !1,
                                    onStart: function() {
                                        N.transitions.layers.out.onStart(e)
                                    },
                                    onComplete: function() {
                                        N.transitions.layers.out.onComplete(e)
                                    },
                                    css: {
                                        opacity: 0,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0
                                    }
                                },
                                layerStyleFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerStyleTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                clipFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                clipTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                layerShouldBeConverted: {
                                    x: 0,
                                    y: 0
                                },
                                layerStyleShouldBeConvertedFrom: {},
                                layerStyleShouldBeConvertedTo: {},
                                clipShouldBeConverted: {},
                                startAt: "slidechangeonly",
                                duration: 1,
                                ease: "easeInOutQuint"
                            }, textOut: {
                                enabled: null,
                                nodesFrom: {
                                    immediateRender: !1,
                                    cycle: {},
                                    opacity: 1
                                },
                                nodesTo: {
                                    ease: "easeInOutQuint",
                                    immediateRender: !1,
                                    cycle: {},
                                    random: {},
                                    opacity: 0
                                },
                                shouldBeConverted: {
                                    cycle: {},
                                    random: {},
                                    x: 0,
                                    y: 0
                                },
                                split: "",
                                startAt: "allinandloopend",
                                shiftNodes: .05,
                                duration: 1
                            }, loop: {
                                enabled: null,
                                from: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                to: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                clipTo: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerShouldBeConverted: {
                                    transformOrigin: "50% 50% 0",
                                    x: 0,
                                    y: 0
                                },
                                clipShouldBeConverted: {},
                                ease: "linear",
                                startAt: "allinend",
                                repeatDelay: 0,
                                duration: 1,
                                count: 0,
                                yoyo: !1
                            }, hover: {
                                enabled: null,
                                from: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                to: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                shouldBeConverted: {
                                    transformOrigin: "50% 50% 0"
                                },
                                alwaysOnTop: !0,
                                easeIn: "easeInOutQuint",
                                durationIn: .5
                            }, parallax: {
                                enabled: null
                            }, kenBurns: {
                                scale: 1.2
                            }, clip: {
                                enabled: !1,
                                min: "0 0 0 0",
                                max: "-9999 9999 9999 -9999"
                            }, filter: {
                                values: {
                                    style: {},
                                    in : {},
                                    out: {},
                                    loop: {},
                                    hover: {},
                                    afterIn: {},
                                    afterLoop: {},
                                    bgFrom: {},
                                    bgTo: {}
                                },
                                transitions: {
                                    bg: null,
                                    in : null,
                                    out: null,
                                    loop: null,
                                    hover: null
                                }
                            }, init: {
                                wrapper: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {
                                        display: "block"
                                    }
                                }
                            }, transformPerspective: {
                                layer: 500,
                                text: 500,
                                loop: 500,
                                hover: 500
                            }, reset: {
                                wrapperOnTimelineEnd: {
                                    autoCSS: !1,
                                    css: {
                                        opacity: 1,
                                        display: "none"
                                    }
                                },
                                wrapperOnSlideChange: {
                                    autoCSS: !1,
                                    css: {
                                        x: 0,
                                        y: 0,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        opacity: 1,
                                        display: "none"
                                    }
                                },
                                loopWrapperOnSlideChange: {
                                    autoCSS: !1,
                                    css: {
                                        x: 0,
                                        y: 0,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        opacity: 1
                                    }
                                }
                            }
                        }
                    };
                    return {
                        is: t.is,
                        should: t.should,
                        elements: t.elements,
                        settings: t.settings,
                        styleSettings: t.styleSettings,
                        mediaSettings: t.mediaSettings,
                        mediaProperties: t.mediaProperties,
                        timeline: t.timeline,
                        in : t.transitionProperties.in,
                        inLayerFrom: t.transitionProperties.in.layerFrom,
                        inLayerFromCSS: t.transitionProperties.in.layerFrom.css,
                        inLayerStyleFrom: t.transitionProperties.in.layerStyleFrom,
                        inLayerStyleFromCSS: t.transitionProperties.in.layerStyleFrom.css,
                        inClipFrom: t.transitionProperties.in.clipFrom,
                        inClipFromCSS: t.transitionProperties.in.clipFrom.css,
                        inLayerTo: t.transitionProperties.in.layerTo,
                        inLayerToCSS: t.transitionProperties.in.layerTo.css,
                        inLayerStyleTo: t.transitionProperties.in.layerStyleTo,
                        inLayerStyleToCSS: t.transitionProperties.in.layerStyleTo.css,
                        inClipTo: t.transitionProperties.in.clipTo,
                        inClipToCSS: t.transitionProperties.in.clipTo.css,
                        inClipShouldBeConverted: t.transitionProperties.in.clipShouldBeConverted,
                        inLayerShouldBeConverted: t.transitionProperties.in.layerShouldBeConverted,
                        inLayerStyleShouldBeConvertedFrom: t.transitionProperties.in.layerStyleShouldBeConvertedFrom,
                        inLayerStyleShouldBeConvertedTo: t.transitionProperties.in.layerStyleShouldBeConvertedTo,
                        textIn: t.transitionProperties.textIn,
                        textInNodesFrom: t.transitionProperties.textIn.nodesFrom,
                        textInNodesTo: t.transitionProperties.textIn.nodesTo,
                        textInNodesToCSS: t.transitionProperties.textIn.nodesTo.css,
                        textInShouldBeConverted: t.transitionProperties.textIn.shouldBeConverted,
                        out: t.transitionProperties.out,
                        outLayerFrom: t.transitionProperties.out.layerFrom,
                        outLayerFromCSS: t.transitionProperties.out.layerFrom.css,
                        outLayerStyleFrom: t.transitionProperties.out.layerStyleFrom,
                        outLayerStyleFromCSS: t.transitionProperties.out.layerStyleFrom.css,
                        outLayerTo: t.transitionProperties.out.layerTo,
                        outLayerToCSS: t.transitionProperties.out.layerTo.css,
                        outLayerStyleTo: t.transitionProperties.out.layerStyleTo,
                        outLayerStyleToCSS: t.transitionProperties.out.layerStyleTo.css,
                        outClipTo: t.transitionProperties.out.clipTo,
                        outClipToCSS: t.transitionProperties.out.clipTo.css,
                        outClipShouldBeConverted: t.transitionProperties.out.clipShouldBeConverted,
                        outLayerShouldBeConverted: t.transitionProperties.out.layerShouldBeConverted,
                        outLayerStyleShouldBeConvertedFrom: t.transitionProperties.out.layerStyleShouldBeConvertedFrom,
                        outLayerStyleShouldBeConvertedTo: t.transitionProperties.out.layerStyleShouldBeConvertedTo,
                        textOut: t.transitionProperties.textOut,
                        textOutNodesFrom: t.transitionProperties.textOut.nodesFrom,
                        textOutNodesTo: t.transitionProperties.textOut.nodesTo,
                        textOutShouldBeConverted: t.transitionProperties.textOut.shouldBeConverted,
                        loop: t.transitionProperties.loop,
                        loopFrom: t.transitionProperties.loop.from,
                        loopFromCSS: t.transitionProperties.loop.from.css,
                        loopTo: t.transitionProperties.loop.to,
                        loopToCSS: t.transitionProperties.loop.to.css,
                        loopClipTo: t.transitionProperties.loop.clipTo,
                        loopClipToCSS: t.transitionProperties.loop.clipTo.css,
                        loopClipShouldBeConverted: t.transitionProperties.loop.clipShouldBeConverted,
                        loopLayerShouldBeConverted: t.transitionProperties.loop.layerShouldBeConverted,
                        hover: t.transitionProperties.hover,
                        hoverFrom: t.transitionProperties.hover.from,
                        hoverFromCSS: t.transitionProperties.hover.from.css,
                        hoverTo: t.transitionProperties.hover.to,
                        hoverToCSS: t.transitionProperties.hover.to.css,
                        hoverShouldBeConverted: t.transitionProperties.hover.shouldBeConverted,
                        parallax: t.transitionProperties.parallax,
                        kenBurns: t.transitionProperties.kenBurns,
                        clip: t.transitionProperties.clip,
                        filter: t.transitionProperties.filter,
                        transformPerspective: t.transitionProperties.transformPerspective,
                        init: t.transitionProperties.init,
                        reset: t.transitionProperties.reset
                    }
                }
            }
        }, N.slides = {
            count: 0,
            first: {},
            prev: {},
            current: {},
            next: {},
            init: function() {
                if (!document.body.contains(P)) return !1;
                for (var e = $.find("> .ls-layer, > .ls-slide"), t = 0, i = N.defaults.slide.keys, a = 0, s = e.length; a < s; a++) {
                    var r = X(e[a]),
                        o = r[0].style,
                        n = X.extend(!0, {}, N.defaults.slide.options);
                    if (N.slides.count++, r.removeClass("ls-layer").addClass("ls-slide").css({
                            width: N.slider.initial.originalWidth,
                            height: N.slider.initial.originalHeight
                        }).appendTo(N.slider.$hiddenWrapper), r.data("ls"))
                        for (var l = r.data("ls").toLowerCase().split(";"), d = 0; d < l.length; d++) {
                            var u, p, c = l[d].split(":");
                            c[0] = X.trim(c[0]), c[1] = X.trim(c[1]), "" !== c[0] && (void 0 !== i[c[0]] ? (u = void 0 === i[c[0]][1] ? c[0] : i[c[0]][1], p = N.functions.convert.properties(c[1]), -1 === u.toLowerCase().indexOf("duration") && -1 === u.toLowerCase().indexOf("delay") && "timeShift" != u || (p /= 1e3), n[i[c[0]][0]] || (n[i[c[0]][0]] = {}), n[i[c[0]][0]][u] = p) : n.data[c[0]] = c[1])
                        }
                    if (n.plugins && !X.isEmptyObject(n.plugins))
                        for (var h in n.plugins)
                            if (r.data("ls-plugin-" + h)) {
                                var m, f = r.data("ls-plugin-" + h).toLowerCase().split(";"),
                                    g = {};
                                for (m in n.plugins[h]) g[m.toLowerCase()] = m;
                                for (var v = 0; v < f.length; v++) {
                                    var y, b = f[v].split(":");
                                    b[0] = X.trim(b[0]), "" !== b[0] && (y = N.functions.convert.properties(X.trim(b[1])), -1 === b[0].indexOf("duration") && -1 === b[0].indexOf("delay") || (y /= 1e3), g[b[0]] ? n.plugins[h][g[b[0]]] = y : n.plugins[h][b[0]] = y)
                                }
                            } else delete n.plugins[h];
                    r.children("a.ls-link").length && (n.data.$link = r.children("a.ls-link").first().css({
                        zIndex: 5
                    }).attr("data-ls-slide-link", t + 1).appendTo(N.slider.$layersWrapper), N.layers.set.smartLinks(n.data.$link)), n.data.$backgroundVideo = r.children('[data-ls*="backgroundvideo"]').first(), n.data.$backgroundVideo.length && (null !== n.data.$backgroundVideo.attr("data-ls").split("backgroundvideo")[1].split(";")[0].match(/(true|enabled|on|1)/i) ? (n.data.$backgroundVideo.addClass("ls-bg-video").css({
                        width: "auto",
                        height: "auto"
                    }).children("video, audio, iframe").css({
                        width: "100%",
                        height: "100%"
                    }), n.data.$backgroundVideo.append(X('<div class="ls-bg-video-overlay"></div>'))) : n.data.$backgroundVideo = !1);
                    for (var S, w = r.find("picture"), v = 0, x = w.length; v < x; v++) N.layers.set.pictureElement(X(w[v]));
                    r.find("> .ls-bg").length && (n.data.$background = r.find("> .ls-bg").first()), n.data.thumbnail || (r.find("> .ls-tn").length ? S = r.find("> .ls-tn").first() : r.find("> .ls-bg").length && (S = r.find("> .ls-bg").first()), S ? (n.data.thumbnail = N.functions.getURL(S), n.data.tnAlt = N.functions.getALT(S)) : n.data.thumbnail = N.o.skinsPath + N.o.skin + "/nothumb.png"), (n.data.customtransition2d || n.data.customtransition3d) && "undefined" == typeof layerSliderCustomTransitions && (delete n.data.customtransition2d, delete n.data.customtransition3d, N.debugMode && N.debug.add("warn", "sliderInit.customTransitions", t + 1)), "visible" === o.overflow && (n.data.overflow = "visible"), n.data.backgroundColor || (n.data.backgroundColor = "" === r[0].style.backgroundColor ? "transparent" : r[0].style.backgroundColor), N.slides[++t] = {}, N.slides[t].data = X.extend(!0, {}, N.defaults.slide.options.data, n.data), N.slides[t].parallax = n.parallax, N.slides[t].kenBurns = n.kenBurns, N.slides[t].filter = n.filter, N.slides[t].index = t, N.slides[t].$layers = X(), N.slides[t].plugins = n.plugins, N.slider.thumbnails.push(n.data.thumbnail), N.layers.init(r, t)
                }
                N.debugMode && N.debug.groupEnd("sliderInit.style")
            },
            set: {
                slideIndexes: function() {
                    var e = N.slides;
                    e.prev.index = e.current.index, e.current.index = e.next.index, e.next.index = N.slideshow.get.slideInSequence(N.slideshow.direction), e.set.slidesData(), N.slider.set.attributes()
                },
                nextSlideIndex: function(e) {
                    var t = N.slides;
                    t.next.index = e, t.set.slidesData()
                },
                slidesData: function() {
                    var e = N.slides;
                    e.prev = -1 !== e.prev.index ? X.extend(!0, {}, e[e.prev.index]) : {}, e.current = -1 !== e.current.index ? X.extend(!0, {}, e[e.current.index]) : {}, e.next = -1 !== e.next.index ? X.extend(!0, {}, e[e.next.index]) : {}
                },
                firstSlide: function() {
                    var e, t = N.slides;
                    t.first.index = "random" === N.o.firstSlide ? N.o.firstSlide : Math.max(N.functions.convert.properties(N.o.firstSlide, !0), 1), N.o.shuffleSlideshow && 2 < N.slides.count ? N.o.twoWaySlideshow = !1 : N.o.shuffleSlideshow = !1, t.first.index = "random" == t.first.index ? Math.floor(Math.random() * N.slides.count + 1) : t.first.index, !document.location.hash || (e = N.slides.deeplink(document.location.hash, !0)) && (N.slides.first.index = e), t.first.index = t.first.index < 1 || t.first.index > N.slides.count ? 1 : t.first.index, N.o.shuffleSlideshow && "random" != N.o.firstSlide && (t.first.index = N.o.firstSlide), t[t.first.index] && t[t.first.index].data && (t.first.data = X.extend(!0, {}, t[t.first.index].data)), N.o.playByScroll && N.slideshow.set.normalizedSequence(), N.debugMode && N.debug.options.firstSlide && (t.first.index = N.debug.options.firstSlide)
                }
            },
            get: {
                deeplink: function(e) {
                    return e && N.slides[e] && N.slides[e].data && N.slides[e].data.deeplink ? N.slides[e].data.deeplink : null
                }
            },
            deeplink: function(e, t) {
                for (var i = !1, a = 1; a < N.slides.count + 1; a++)
                    if (N.slides[a].data.deeplink == e.substring(1)) {
                        if (i = a, t) return i;
                        N.slideshow.changeTo(i, !0, !0)
                    }
                if (!i && t) return !1
            },
            slide: []
        }, N.layers = {
            $all: X(),
            getStyle: function(e, t) {
                return -1 != e.indexOf("%") ? parseFloat(e) * t : parseFloat(e)
            },
            init: function(e, t) {
                if (!document.body.contains(P)) return !1;
                for (var i, a = e.find('.ls-bg, .ls-l, .ls-layer, *[class^="ls-s"]'), s = 0, r = a.length; s < r; s++) {
                    var o = X(a[s]),
                        n = o[0],
                        l = o.children();
                    if (o.data("slideIndex", t), -1 != o.attr("class").indexOf("ls-s")) {
                        var d = o.attr("class").split("ls-s")[1].split(" ")[0];
                        o.removeClass("ls-s" + d).addClass("ls-layer")
                    } else if (o.hasClass("ls-l")) o.removeClass("ls-l").addClass("ls-layer");
                    else if (!o.is(".ls-bg, .ls-layer")) {
                        o.remove();
                        continue
                    }
                    o.is("a") && 1 === l.length && ((n = (o = o.children().first())[0]).setAttribute("data-ls", n.parentNode.getAttribute("data-ls")), n.parentNode.removeAttribute("data-ls"), o.parent().removeClass("ls-layer"), o.addClass("ls-layer")), o.data(N.defaults.init.dataKey, new N.defaults.layer.options(o, t)), -1 !== o.attr("class").indexOf("ls-linkto-") && this.set.linkTo(o), o.parent().is("a") ? (i = o.parent(), this.set.smartLinks(i)) : i = o, N.slides[t].$layers = N.slides[t].$layers.add(i)
                }
            },
            set: {
                pictureElement: function(e) {
                    var t = e.find("source").last().attr("srcset").split(" ")[0] || "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==",
                        i = e.find("img"),
                        a = i.length ? i : X("<img>").attr("src", t),
                        s = a[0],
                        r = (e.attr("ls-data") || a.attr("ls-data"), e.attr("style") || !1),
                        i = s.currentSrc || s.src,
                        o = i.split(".").pop(),
                        t = (i.indexOf("webp"), a.attr("data-src") ? "data-" : ""),
                        s = "";
                    e.hasClass("ls-bg") ? s = "ls-bg" : e.hasClass("ls-tn") ? s = "ls-tn" : (e.hasClass("ls-l") || e.hasClass("ls-layer")) && (s = "ls-layer");
                    for (var n, l, d, u = e.find("source"), p = 0; p < u.length && (n = u[p], l = (n = X(n)).attr("srcset"), d = n.attr("sizes"), l.split(" ")[0].split(".").pop() != o); p++);
                    a.removeAttr("width height sizes src srcset data-src data-srcset loading"), a.addClass(s).attr(t + "src", i).attr(t + "srcset", l).attr("sizes", d), r && a.attr("style", r), a.insertAfter(e), e.remove()
                },
                smartLinks: function(e) {
                    var i = e.attr("href"),
                        t = e.attr("target"),
                        a = "";
                    if (t && -1 !== t.indexOf("ls-scroll")) {
                        switch (i) {
                            case "pagetop":
                                a = "Scroll to page top";
                                break;
                            case "pagebottom":
                                a = "Scroll to page bottom";
                                break;
                            case "slidertop":
                                a = "Scroll to the top of the slider";
                                break;
                            case "":
                            case "sliderbottom":
                                a = "Scroll to the bottom of the slider";
                                break;
                            default:
                                a = "Scroll to a specified location on the page"
                        }
                        N.layers.set.ariaLabel(e, a), e.on("click." + B, function(e) {
                            e.preventDefault();
                            var t, e = document.body.scrollHeight - N.device.viewportHeight;
                            if (i) switch (i) {
                                case "pagetop":
                                    t = 0;
                                    break;
                                case "pagebottom":
                                    t = N.device.docHeight - N.device.viewportHeight;
                                    break;
                                case "slidertop":
                                    t = N.slider.offsetTop;
                                    break;
                                case "":
                                case "sliderbottom":
                                    t = N.slider.offsetTop + N.slider.height;
                                    break;
                                default:
                                    t = X(i).filter(":visible").last().length ? X(i).filter(":visible").last().offset().top : N.slider.offsetTop + N.slider.height
                            }
                            t += N.o.scrollModifier, t = Math.min(t, e), t = Math.max(0, t), H.TweenMax.to("html, body", 1, {
                                scrollTop: t,
                                ease: H.Quint.easeInOut
                            })
                        })
                    }
                    if (-1 !== N.defaults.init.controls.indexOf(i.toLowerCase()) || i.match(/^\#[0-9]/)) {
                        var s = X.trim(i.toLowerCase().split("#")[1]),
                            r = parseInt(s);
                        switch (s) {
                            case "playmedia":
                                a = "play active media elements on current slide";
                                break;
                            case "pausemedia":
                                a = "pause active media elements on current slide";
                                break;
                            case "prev":
                                a = "jump to the previous slide";
                                break;
                            case "next":
                                a = "jump to the next slide";
                                break;
                            case "start":
                                a = "start slideshow";
                                break;
                            case "stop":
                                a = "stop slideshow";
                                break;
                            case "replay":
                                a = "replay slide";
                                break;
                            case "reverse":
                                a = "reverse slide";
                                break;
                            case "reverse-replay":
                            case "reversereplay":
                                a = "reverse, than replay slide";
                                break;
                            default:
                                "number" == typeof r && r == r && (a = "jump to slide " + r)
                        }
                        N.layers.set.ariaLabel(e, a), e.on("click." + B, function(e) {
                            if (e.preventDefault(), -1 !== ["prev", "next", "start", "stop"].indexOf(s)) N.navigation[s]("clicked");
                            else if ("number" == typeof r && r == r) N.slideshow.changeTo(r, !0, !0);
                            else if (!N.slider.state.changingSlides) switch (s) {
                                case "replay":
                                    N.api.methods("replay");
                                    break;
                                case "reverse":
                                    N.api.methods("reverse");
                                    break;
                                case "reverse-replay":
                                case "reversereplay":
                                    N.api.methods("reverse", !0);
                                    break;
                                case "playmedia":
                                    N.media.functions.playActiveMedia();
                                    break;
                                case "pausemedia":
                                    N.media.functions.pauseActiveMedia();
                                    break;
                                case "unmute":
                                case "unmutemedia":
                                    N.media.unmute.multipleMediaElements()
                            }
                        })
                    }
                },
                ariaLabel: function(e, t) {
                    e.attr("aria-label") || e.attr("aria-label", t)
                },
                linkTo: function(e) {
                    for (var t = e.attr("class").split(" "), i = 1, a = 0; a < t.length; a++) - 1 != t[a].indexOf("ls-linkto-") && (i = parseInt(t[a].split("ls-linkto-")[1]));
                    e.data(N.defaults.init.dataKey).settings.linkedToSlide = i, e.css({
                        cursor: "pointer"
                    }).on("click." + B, function(e) {
                        e.preventDefault(), $.layerSlider(X(this).data(N.defaults.init.dataKey).settings.linkedToSlide)
                    })
                },
                wrappers: function(e, t, i) {
                    t.is.slideBackground || t.is.backgroundVideo ? (t.elements.$bgWrapper = e.closest(".ls-bg-wrap"), t.elements.$bgOuterWrapper = e.closest(".ls-bg-outer")) : (t.elements.$wrapper = e.closest(".ls-in-out"), t.elements.$wrapper.data(N.defaults.init.dataKey, {}), t.settings.wrapperData = t.elements.$wrapper.data(N.defaults.init.dataKey), t.elements.$clipWrapper = e.closest(".ls-clip"), t.elements.$clipWrapper.data(N.defaults.init.dataKey, {}), t.settings.clipWrapperData = t.elements.$clipWrapper.data(N.defaults.init.dataKey), t.elements.$loopWrapper = e.closest(".ls-loop"), t.elements.$loopWrapper.data(N.defaults.init.dataKey, {}), t.settings.loopWrapperData = t.elements.$loopWrapper.data(N.defaults.init.dataKey)), t.parallax.enabled && (t.elements.$parallaxWrapper = e.closest(".ls-parallax"), t.elements.$parallaxWrapper.data(N.defaults.init.dataKey, {
                        parallax: {}
                    }), t.settings.parallaxWrapperData = t.elements.$parallaxWrapper.data(N.defaults.init.dataKey), N.transitions.layers.parallax.addLayer(t.elements.$parallaxWrapper, t.settings.parallaxWrapperData.parallax, t, i)), t.hover.enabled && !N.slides[i].data.globalhover && N.transitions.layers.hover.set(e, t), N.browser.isSafari ? t.elements.$outerWrapper = e.closest(".ls-z") : t.elements.$outerWrapper = t.parallax.enabled ? t.elements.$parallaxWrapper : t.elements.$bgWrapper ? t.elements.$bgOuterWrapper : t.elements.$wrapper, t.elements.$outerWrapper.attr("data-slide-index", i)
                },
                singleLayer: function(e, t) {
                    N.layers.set.style(e), N.layers.set.properties(e, t), N.layers.set.dataAttribute(e, "hidden"), e.data("hasBeenSet", !0)
                },
                style: function(e) {
                    var i, t, a, s, r, o, n, l, d, u, p = e[0],
                        c = e.data(N.defaults.init.dataKey),
                        h = p.style,
                        m = N.layers,
                        f = 0,
                        g = 0,
                        v = !1,
                        y = p.getBoundingClientRect(),
                        b = "" !== h.paddingLeft ? m.getStyle(h.paddingLeft, N.slider.initial.percW) : parseFloat(e.css("padding-left")),
                        S = "" !== h.paddingRight ? m.getStyle(h.paddingRight, N.slider.initial.percW) : parseFloat(e.css("padding-right")),
                        w = "" !== h.paddingTop ? m.getStyle(h.paddingTop, N.slider.initial.percH) : parseFloat(e.css("padding-top")),
                        x = "" !== h.paddingBottom ? m.getStyle(h.paddingBottom, N.slider.initial.percH) : parseFloat(e.css("padding-bottom")),
                        T = "" !== h.marginLeft ? m.getStyle(h.marginLeft, N.slider.initial.percW) : parseFloat(e.css("margin-left")),
                        C = "" !== h.marginTop ? m.getStyle(h.marginTop, N.slider.initial.percH) : parseFloat(e.css("margin-top"));
                    p.style.margin = "0", r = "" !== h.borderLeftWidth ? parseFloat(h.borderLeftWidth) : parseFloat(e.css("border-left-width")), n = "" !== h.borderRightWidth ? parseFloat(h.borderRightWidth) : parseFloat(e.css("border-right-width")), o = "" !== h.borderTopWidth ? parseFloat(h.borderTopWidth) : parseFloat(e.css("border-top-width")), l = "" !== h.borderBottomWidth ? parseFloat(h.borderBottomWidth) : parseFloat(e.css("border-bottom-width")), 1 !== N.media.properties.$allMediaLayers.filter(e).length && !e.children("iframe").length || (u = (d = e.children()).attr("width") ? d.attr("width") : d.width(), k = d.attr("height") ? d.attr("height") : d.height(), 300 === parseInt(u) && 150 === parseInt(k) && (u = 640, k = 360), "" !== p.style.width && "auto" !== p.style.width || e.css("width", u), "" !== p.style.height && "auto" !== p.style.height || e.css("height", k), "100%" === h.width && "100%" === h.height && (h.left = "50%", h.top = "50%", c.mediaSettings.fullsize = !0), v = u / k, d.css({
                        width: "100%",
                        height: "100%"
                    }));
                    var k = c.attributes;
                    e.is("img") && (I = (a = e.data("preloadedWidth")) / (s = e.data("preloadedHeight")), (!h.width && !h.height || "auto" === h.width && "auto" === h.height) && k && (k.width && k.height ? (i = -1 === k.width.indexOf("%") ? parseInt(k.width) : (f = parseInt(k.width), m.getStyle(k.width, N.slider.initial.percW)), t = -1 === k.height.indexOf("%") ? parseInt(k.height) : (g = parseInt(k.height), m.getStyle(k.height, N.slider.initial.percH))) : k.maxWidth && (e[0].style.width = k.maxWidth + "px", i = k.maxWidth, t = e.height()))), d = y.width || y.right - y.left, y = y.height || y.bottom - y.top, i || (i = h.width, -1 !== h.width.indexOf("%") && (f = parseInt(h.width)), i = (i = "" !== i && "auto" !== i ? m.getStyle(i, N.slider.initial.percW) : d - b - S - r - n) || "auto"), t || (t = h.height, -1 !== h.height.indexOf("%") && (g = parseInt(h.height)), t = (t = "" !== t && "auto" !== t ? m.getStyle(t, N.slider.initial.percH) : y - w - x - o - l) || "auto"), y = v || i / t, !e.is("img") || h.width || h.height || k && (!k || k.width || k.height) || a === i && s === t || (a !== i ? t = (i = 5 < a ? a : i) / (y = 5 < a ? I : y) : s !== t && (i = (t = 5 < s ? s : t) * (y = 5 < s ? I : y))), parseFloat(e.css("opacity")), v = r + b + i + S + n, k = o + w + t + x + l, a = "" !== h.clip && h.clip, h.clip = "", s = h.webkitFilter || h.filter;
                    var I = function(e) {
                        var t = e;
                        return e && -1 !== e.indexOf("px ") && (e = e.replace("px", "").split(" "), t = Math.round(parseInt(e[0]) / i * 100) + "%"), t
                    };
                    c.original = {
                        clip: a,
                        clipShouldBeConverted: !1,
                        left: h.left || "0",
                        top: h.top || "0",
                        width: Math.ceil(i),
                        height: Math.ceil(t),
                        percentWidth: f,
                        percentHeight: g,
                        outerWidth: v,
                        outerHeight: k,
                        styleWidth: h.width,
                        styleHeight: h.height,
                        ratio: y,
                        paddingLeft: b,
                        paddingTop: w,
                        paddingRight: S,
                        paddingBottom: x,
                        marginLeft: T,
                        marginTop: C,
                        borderLeftWidth: r,
                        borderTopWidth: o,
                        borderRightWidth: n,
                        borderBottomWidth: l,
                        borderRadius: I(e.css("borderTopLeftRadius")) + " " + I(e.css("borderTopRightRadius")) + " " + I(e.css("borderBottomRightRadius")) + " " + I(e.css("borderBottomLeftRadius")),
                        fontSize: parseFloat(e.css("font-size")),
                        lineHeight: e.css("line-height"),
                        letterSpacing: e.css("letter-spacing"),
                        color: e.css("color"),
                        zIndex: parseInt(e.css("z-index")) || "auto",
                        filter: s,
                        backgroundColor: e.css("background-color"),
                        dataLS: e.attr("data-ls") || "",
                        styles: e.attr("style") || ""
                    }, h.zIndex = "auto", c.responsive = {
                        left: h.left || "0",
                        top: h.top || "0",
                        width: i,
                        height: t
                    }
                },
                properties: function(e, t, i) {
                    t = t || e.data("slideIndex");
                    var a = e.data(N.defaults.init.dataKey);
                    e.data("ls");
                    if (a.is.textLayer = !e.is("img") && !a.is.mediaLayer, (a.self = e).data("ls"))
                        for (var s = N.defaults.layer.keys, r = e.data("ls").split(";"), o = e.data("ls").toLowerCase().split(";"), n = 0; n < o.length; n++)
                            if (X.trim(o[n])) {
                                var l = o[n].indexOf(":"),
                                    d = [o[n].substring(0, l), o[n].substring(l + 1)],
                                    u = null,
                                    p = null,
                                    c = null,
                                    h = null,
                                    m = null;
                                if ("" !== (u = X.trim(d[0])))
                                    if (void 0 !== s[u = u.replace("split", "text")]) {
                                        if (p = s[u][0], m = "overlay" === u ? X.trim(r[n].substring(l + 1)) : N.functions.convert.properties(X.trim(d[1])), d[1] && -1 !== d[1].indexOf("random") && (u.match(/(text)/) || (m = N.functions.convert.randomProperties(m, p)), a.should.update || (a.should.update = !0)), "number" == typeof m && p.match(/(duration|startat|shift|delay)/i) && (m /= 1e3), u.match(/(fade)(.+)/)) switch (m) {
                                            case !0:
                                                m = 0;
                                                break;
                                            case !1:
                                                m = 1
                                        }
                                        void 0 !== (h = s[u][1]) ? "" !== m ? "object" == typeof m ? u.match(/(text)/) ? h.match(/(converted)/i) ? a[h][p] = m : a[h].cycle[p] = m : (c = N.functions.convert.properties(X.trim(m[0])), N.debugMode && N.debug.add("warn", "layerInit.prop1", [u, m, c]), "number" == typeof c && p.match(/(duration|startat|shift|delay)/i) && (c /= 1e3), a[h][p] = c) : u.match(/(text)/) && -1 !== m.toString().indexOf("random") ? a[h].random[p] = m : a[h][p] = m : N.debugMode && N.debug.add("warn", "layerInit.prop2", u) : a[p][u] = m
                                    } else "clip" === u ? (a.original.clip = d[1], a.original.clipShouldBeConverted = !0) : N.debugMode && N.debug.add("warn", "layerInit.prop4", u)
                            }
                    if (N.browser.isOld && (a.in.enabled = !0, a.textIn.enabled = !1, a.textOut.enabled = !1, a.textIn.type = null, a.textOut.type = null), a.in.enabled && (a.inLayerTo.ease = a.inLayerStyleTo.ease = a.inClipTo.ease = N.functions.convert.easing(a.in.ease)), void 0 !== a.inLayerStyleShouldBeConvertedFrom.borderRadius && (a.inLayerStyleShouldBeConvertedTo.borderRadius = a.original.borderRadius), void 0 !== a.outLayerStyleShouldBeConvertedTo.borderRadius && (a.outLayerStyleShouldBeConvertedFrom.borderRadius = a.original.borderRadius), a.inLayerStyleFromCSS.backgroundColor && (a.inLayerStyleToCSS.backgroundColor = a.original.backgroundColor), a.outLayerStyleToCSS.backgroundColor && (a.outLayerStyleFromCSS.backgroundColor = a.original.backgroundColor), a.inLayerStyleFromCSS.color && (a.inLayerStyleToCSS.color = a.original.color), a.outLayerStyleToCSS.color && (a.outLayerStyleFromCSS.color = a.original.color), void 0 !== a.inLayerStyleShouldBeConvertedFrom.width && (a.inLayerStyleShouldBeConvertedTo.width = a.original.width), void 0 !== a.outLayerStyleShouldBeConvertedTo.width && (a.outLayerStyleShouldBeConvertedFrom.width = a.original.width), void 0 !== a.inLayerStyleShouldBeConvertedFrom.height && (a.inLayerStyleShouldBeConvertedTo.height = a.original.height), void 0 !== a.outLayerStyleShouldBeConvertedTo.height && (a.outLayerStyleShouldBeConvertedFrom.height = a.original.height), void 0 !== a.out.showUntil && 0 !== a.out.showUntil && (a.out.startAt = "transitioninend + " + a.out.showUntil), -1 !== a.out.startAt.indexOf("slidechangeonly") && "slidechangeonly" !== a.out.startAt && (a.out.startAt = "slidechangeonly"), a.out.enabled && (a.outLayerTo.ease = a.outLayerStyleTo.ease = a.outClipTo.ease = N.functions.convert.easing(a.out.ease)), X.isNumeric(a.loop.count) && (0 < a.loop.count || -1 === a.loop.count) && !1 !== a.loop.enabled ? (a.loop.enabled = !0, a.loopTo.ease = a.loopClipTo.ease = N.functions.convert.easing(a.loop.ease), -1 !== a.loop.count ? a.loop.yoyo ? a.loop.repeat = 2 * a.loop.count - 1 : a.loop.repeat = a.loop.count - 1 : a.loop.repeat = -1) : a.loop.enabled = !1, (!X.isEmptyObject(a.hoverToCSS) || a.hoverShouldBeConverted.x || a.hoverShouldBeConverted.y || a.hoverShouldBeConverted.borderRadius || a.hoverShouldBeConverted.filter) && !1 !== a.hover.enabled ? (a.hover.enabled = !0, a.hover.easeOut || (a.hover.easeOut = a.hover.easeIn), a.hover.easeIn = N.functions.convert.easing(a.hover.easeIn), a.hover.easeOut = N.functions.convert.easing(a.hover.easeOut, !0), a.hover.durationOut || (a.hover.durationOut = a.hover.durationIn), H.TweenMax.set(e[0], {
                            autoCSS: !1,
                            css: {
                                transformPerspective: a.hoverShouldBeConverted.transformPerspective
                            }
                        })) : a.hover.enabled = !1, a.parallax.level && X.isNumeric(a.parallax.level) && 0 !== a.parallax.level && !1 !== a.parallax.enabled ? a.parallax.enabled = !0 : a.parallax.enabled = !1, a.is.slideBackground) {
                        var f = {
                            scale: 1,
                            rotation: 0
                        };
                        if (N.slides[t].kenBurns.zoom && (a.kenBurns = N.slides[t].kenBurns), a.kenBurns.zoom) {
                            switch (a.kenBurns.from = {}, a.kenBurns.to = {}, a.kenBurns.zoom) {
                                case "out":
                                    a.kenBurns.from.scale = a.kenBurns.scale || 1, a.kenBurns.from.rotation = a.kenBurns.rotation || 0, a.kenBurns.to = f;
                                    break;
                                case "in":
                                    a.kenBurns.from = f, a.kenBurns.to.scale = a.kenBurns.scale || 1, a.kenBurns.to.rotation = a.kenBurns.rotation || 0
                            }
                            delete a.kenBurns.scale, delete a.kenBurns.rotation
                        } else a.kenBurns.from = f, a.kenBurns.to = f;
                        X.isEmptyObject(N.slides[t].filter) || (N.slides[t].filter.from && (a.filter.values.bgFrom = N.transitions.layers.filters.convert(N.slides[t].filter.from)), N.slides[t].filter.to && (a.filter.values.bgTo = N.transitions.layers.filters.convert(N.slides[t].filter.to)))
                    }
                    if (a.textIn.type && -1 === N.defaults.layer.splitTypeKeys.indexOf(a.textIn.type) && (N.debugMode && N.debug.add("warn", "layerInit.splitType3a", [e[0].tagName, a.textIn.type]), delete a.textIn.type, delete a.textIn.ns, a.textIn.enabled = !1), a.textOut.type && -1 === N.defaults.layer.splitTypeKeys.indexOf(a.textOut.type) && (N.debugMode && N.debug.add("warn", "layerInit.splitType3b", [e[0].tagName, a.textOut.type]), delete a.textOut.type, delete a.textOut.ns, a.textOut.enabled = !1), a.textIn.type || a.textOut.type) {
                        var g = 0;
                        if (a.is.textLayer ? (a.textIn.type && (a.textIn.enabled = !0, a.textInNodesTo.ease = N.functions.convert.easing(a.textInNodesTo.ease), a.textIn.split = a.textIn.type.split("_")[0], e.children().length && N.debugMode && (g = 1)), a.textOut.type && (a.textOut.enabled = !0, a.textOutNodesTo.ease = N.functions.convert.easing(a.textOutNodesTo.ease)), a.textOut.enabled && a.textOut.type.split("_")[0] !== a.textIn.split && (a.textIn.split += ", " + a.textOut.type.split("_")[0], e.children().length && N.debugMode && (g = 1)), -1 !== a.textIn.split.indexOf("chars") && -1 === a.textIn.split.indexOf("words") && (a.textIn.split += ", words"), -1 !== a.textIn.split.indexOf("words") && -1 === a.textIn.split.indexOf("lines") && (a.textIn.split += ", lines")) : (delete a.textIn.type, delete a.textOut.type, delete a.textIn.ns, delete a.textOut.ns, N.debugMode && (g = 2)), N.debugMode && 0 !== g && t && !i) switch (g) {
                            case 1:
                                N.debug.add("warn", "layerInit.splitType1", [e.prop("nodeName"), t]);
                                break;
                            case 2:
                                N.debug.add("warn", "layerInit.splitType2", [t, e.prop("nodeName")])
                        }
                    }(a.original.clip || a.inClipShouldBeConverted.clip || a.outClipShouldBeConverted.clip || a.loopClipShouldBeConverted.clip) && (a.clip.enabled = !0), a.in.enabled && a.inLayerToCSS.scale && (delete a.inLayerToCSS.scaleX, delete a.inLayerToCSS.scaleY), a.out.enabled && a.outLayerToCSS.scale && (delete a.outLayerToCSS.scaleX, delete a.outLayerToCSS.scaleY), a.inLayerStyleShouldBeConvertedFrom.filter && (a.filter.values.in = N.transitions.layers.filters.convert(a.inLayerStyleShouldBeConvertedFrom.filter)), a.filter.values.style = N.transitions.layers.filters.convert(a.original.filter), a.outLayerStyleShouldBeConvertedTo.filter && (a.filter.values.out = N.transitions.layers.filters.convert(a.outLayerStyleShouldBeConvertedTo.filter)), a.loopLayerShouldBeConverted.filter && (a.filter.values.loop = N.transitions.layers.filters.convert(a.loopLayerShouldBeConverted.filter)), a.hoverShouldBeConverted.filter && (a.filter.values.hover = N.transitions.layers.filters.convert(a.hoverShouldBeConverted.filter)), a.in.enabled || (a.in.duration = 0), a.textIn.enabled || (a.textIn.duration = 0), a.loop.enabled || (a.loop.duration = 0), a.textOut.enabled || (a.textOut.duration = 0), a.out.enabled || (a.out.duration = 0), e.attr("data-ls-slidein", t), void 0 !== a.settings.static && "none" !== a.settings.static ? (0 !== (g = parseInt(a.settings.static)) && "forever" !== a.settings.static ? (e.attr("data-ls-slideout", g), a.settings.slideOut = g) : a.settings.slideOut = 0, a.is.static = !0, e.attr("data-ls-static", "1")) : e.attr("data-ls-slideout", t), a.is.mediaLayer && e.children("video, audio").length && N.media.html5.singleInit(e.children("video, audio").eq(0)), a.is.backgroundVideo && a.styleSettings.overlay && e.find(".ls-bg-video-overlay").css({
                        backgroundImage: "url(" + a.styleSettings.overlay + ")"
                    }), a.styleSettings.minfontsize && (a.styleSettings.minfontsize = parseFloat(a.styleSettings.minfontsize)), a.styleSettings.minmobilefontsize && (a.styleSettings.minmobilefontsize = parseFloat(a.styleSettings.minmobilefontsize))
                },
                dataAttribute: function(e, t) {
                    e.removeAttr("data-ls-animating-in data-ls-active data-ls-animating-out data-ls-hidden"), e.attr("data-ls-" + t, "")
                }
            },
            get: function(e) {
                var t, i, a, s, r, o = this.$all;
                return e && (t = "in", a = i = "", s = ':not(".ls-bg")', r = ':not(".ls-bg-video")', -1 == (e = e.toLowerCase()).indexOf("bgvideo") && -1 == e.indexOf("backgroundvideo") || (r = "", e = e.replace("bgvideo", "").replace("backgroundvideo", "")), -1 != e.indexOf("video") && (a += ", > video", e = e.replace("video", "")), -1 != e.indexOf("audio") && (a += ", > audio", e = e.replace("audio", "")), -1 != e.indexOf("html5") && (a += ", > video, > audio", e = e.replace("html5", "")), -1 != e.indexOf("youtube") && (a += ', > iframe[src*="youtube-nocookie.com"], > iframe[src*="youtube.com"], > iframe[src*="youtu.be"], > iframe[data-src*="youtube-nocookie.com"], > iframe[data-src*="youtube.com"], > iframe[data-src*="youtu.be"]', e = e.replace("youtube", "")), -1 != e.indexOf("vimeo") && (a += ', > iframe[src*="player.vimeo"], > iframe[data-src*="player.vimeo"]', e = e.replace("vimeo", "")), "," == a.charAt(0) && (a = a.substring(2, a.length)), -1 != e.indexOf("out") && (t = "out"), -1 == e.indexOf("img") && -1 == e.indexOf("image") || (i = "img"), -1 == e.indexOf("bg") && -1 == e.indexOf("background") && -1 == e.indexOf("bgonly") || (s = ""), o = -1 != e.indexOf("current") ? o.filter(i + "[data-ls-slide" + t + '="' + N.slides.current.index + '"]' + s + r) : -1 != e.indexOf("next") ? o.filter(i + "[data-ls-slide" + t + '="' + N.slides.next.index + '"]' + s + r) : o.filter(i + s + r), -1 != e.indexOf("notactive") && (o = o.filter(".ls-bg, .ls-bg-video, :hidden"), e = e.replace("notactive", "")), -1 != e.indexOf("active") && (o = o.filter(":visible:not(.ls-bg, .ls-bg-video)"), e = e.replace("active", "")), -1 != e.indexOf("notstatic") && (o = o.filter(':not([data-ls-static="1"])'), e = e.replace("notstatic", "")), -1 != e.indexOf("static") && (o = o.filter('[data-ls-static="1"]'), e = e.replace("static", "")), -1 != e.indexOf("bgonly") && (o = o.filter(".ls-bg"), e = e.replace("bgonly", "")), "" !== a && (o = o.find(a))), o
            },
            update: {
                data: function(e, t, i) {
                    var a, s, r;
                    switch (e instanceof jQuery || (e = X(e)), i && e.attr("data-ls", i).data("ls", i), a = (s = e.data(N.defaults.init.dataKey)).is.onSlide, r = s.original, t) {
                        default:
                            case "transitions":
                            s.settings.timelineIsCalculated = !1,
                        N.layers.set.properties(e, a, !0);
                        break;
                        case "all":
                                e.data(N.defaults.init.dataKey, new N.defaults.layer.options(e, a)),
                            (s = e.data(N.defaults.init.dataKey)).original = r,
                            N.layers.set.properties(e, a, !0),
                            N.layers.set.wrappers(e, s, a)
                    }
                }
            },
            wrap: function(u, e) {
                var t, p;
                N.slides[u].wrapped || "wrapping" === N.slides[u].wrapped || (N.slides[u].wrapped = "wrapping", t = e ? 25 : 0, e = N.slides[u].$layers, p = e.length, e.each(function(l, d) {
                    N.timeouts["slide-" + u + "-layer-" + l] = setTimeout(function() {
                        delete N.timeouts["slide-" + u + "-layer-" + l];
                        var e = X(d),
                            t = e,
                            i = "",
                            a = !1,
                            s = "";
                        e.hasClass("ls-hide-phone") && (s += " ls-hide-on-phone"), e.hasClass("ls-hide-tablet") && (s += " ls-hide-on-tablet"), e.hasClass("ls-hide-desktop") && (s += " ls-hide-on-desktop"), e.removeClass("ls-hide-phone ls-hide-tablet ls-hide-desktop"), t.is("a") && 1 === t.children().length && (a = !0, e = t.find(".ls-layer"));
                        var r, o = e.data(N.defaults.init.dataKey);
                        if (!o) return !0;
                        n = N.slider.$layersWrapper, o.is.backgroundVideo ? n = N.slider.$bgVideosWrapper : o.is.slideBackground && (n = N.slider.$slideBGWrapper), e.data("hasBeenSet") || N.layers.set.singleLayer(e, u), o.textIn.split && (r = new H.SplitType(e[0], {
                            split: o.textIn.split
                        }), o.textIn.type && (o.textIn.ns = r[o.textIn.type.split("_")[0]]), o.textOut.type && (o.textOut.ns = r[o.textOut.type.split("_")[0]])), i = o.is.slideBackground || o.is.backgroundVideo ? '<div class="ls-wrapper ls-bg-outer"><div class="ls-wrapper ls-bg-wrap"></div></div>' : (o.clip.enabled && (i = '<div class="ls-wrapper ls-clip"></div>'), o.loop.enabled && (i = '<div class="ls-wrapper ls-loop">' + i + "</div>"), '<div class="ls-wrapper ls-in-out">' + i + "</div>"), o.parallax.enabled && (i = '<div class="ls-wrapper ls-parallax">' + i + "</div>"), N.browser.isSafari && (i = '<div class="ls-wrapper ls-z">' + i + "</div>"), "" !== i ? e.appendTo(n).wrap(i) : e.appendTo(n), !0 === a && t.addClass("ls-layer-link").appendTo(e.parent());
                        var n = {},
                            a = e.css("mix-blend-mode");
                        a && "normal" !== a && (n["mix-blend-mode"] = a, e.css("mix-blend-mode", "normal")), o.original.customZIndex = 1;
                        a = parseInt(o.original.zIndex);
                        o.is.backgroundVideo || o.is.slideBackground ? n = {
                            zIndex: o.original.customZIndex
                        } : (a = a || l + 101, n.zIndex = a, o.original.customZIndex = a), o.styleSettings.pointerevents && (n.pointerEvents = "none"), N.browser.isSafari && (n.transform = "translateZ(" + 3e3 * a + "px )"), N.layers.set.wrappers(e, o, u), o.elements.$outerWrapper.css(n).addClass(s), o.is.slideBackground && o.elements.$bgWrapper.css({
                            backgroundColor: N.slides[u].data.backgroundColor
                        }), N.layers.$all = N.layers.$all.add(e), N.slides[u].$layers = N.slides[u].$layers.not(t), l === p - 1 && ($.children(".ls-slide").eq(u - 1).empty(), N.slides[u].wrapped = !0)
                    }, t * (l + 1))
                }))
            }
        }, N.slideshow = {
            direction: "next",
            nextLoop: 0,
            firstStart: !0,
            forceFastChange: !1,
            sequence: {
                normal: [],
                randomized: []
            },
            state: {
                running: !0,
                paused: !1,
                pausedByVideo: !1,
                pausedByHover: !1,
                pausedByLastCycle: !1
            },
            should: {
                change: !1,
                start: !1,
                stop: !1
            },
            isPaused: function() {
                return this.state.paused || this.state.pausedByVideo || this.state.pausedByHover
            },
            init: function() {
                1 == N.slides.count && (N.o.autoStart = !1, N.o.navPrevNext = !1, N.o.navStartStop = !1, N.o.navButtons = !1, N.o.cycles = -1, N.o.forceLoopNum = !1, N.o.autoPauseSlideshow = !0, N.o.firstSlide = 1, N.o.thumbnailNavigation = "disabled"), N.o.autoStart && 1 != N.slides.count || N.functions.setStates(this, {
                    running: !1,
                    paused: !0
                }), this.set.pauseOnHover(), this.set.sequences()
            },
            set: {
                pauseOnHover: function() {
                    N.o.pauseOnHover = (!0 === N.o.pauseOnHover ? N.defaults.init.options : N.o).pauseOnHover, !1 !== N.o.pauseOnHover && $.on("mouseenter." + B, function() {
                        N.slider.state.inFullscreen || (N.functions.setStates(N.slideshow, {
                            pausedByHover: !0
                        }), "slideshowOnly" !== N.o.pauseOnHover && N.transitions.layers.timeline.pause())
                    }).on("mouseleave." + B, function() {
                        var e = 1;
                        N.transitions._slideTimeline && N.transitions._slideTimeline.duration() > N.transitions.layers.timeline.totalDuration && (e = N.transitions.layers.timeline.totalDuration / N.transitions._slideTimeline.duration()), N.functions.setStates(N.slideshow, {
                            pausedByHover: !1
                        }), X("body").hasClass("ls-unselectable") || "slideshowOnly" === N.o.pauseOnHover || N.o.pauseLayers && N.slideshow.isPaused() || N.transitions.layers.timeline.resume(), N.transitions._slideTimeline && N.transitions.layers.timeline.state.finished && N.transitions._slideTimeline.progress() < e && N.functions.setStates(N.transitions.layers.timeline, {
                            finished: !1
                        }), N.slideshow.start()
                    })
                },
                sequences: function() {
                    for (var e = 0; e < N.slides.count; e++) N.slideshow.sequence.normal[e] = e + 1;
                    N.slideshow.sequence.randomized = N.functions.shuffleArray(X.merge([], N.slideshow.sequence.normal))
                },
                normalizedSequence: function() {
                    var e = N.o.shuffleSlideshow ? "randomized" : "normal",
                        t = N.slideshow.sequence[e],
                        i = N.slideshow.sequence[e].length,
                        a = t.indexOf(N.slides.first.index);
                    N.slideshow.sequence.normalized = [];
                    for (var s = a; s < i; s++) N.slideshow.sequence.normalized.push(t[s]);
                    for (var r = 0; r < a; r++) N.slideshow.sequence.normalized.push(t[r])
                },
                prevNext: function(e) {
                    switch (e) {
                        case "prev":
                            N.o.twoWaySlideshow && (N.slideshow.direction = "prev"), N.slideshow.changeTo(N.slideshow.get.slideInSequence("prev"), !0);
                            break;
                        case "next":
                            N.slideshow.direction = "next", N.slideshow.changeTo(N.slideshow.get.slideInSequence("next"), !0)
                    }
                }
            },
            get: {
                sequence: function() {
                    var e = "normal";
                    return N.o.playByScroll ? e = "normalized" : N.o.shuffleSlideshow && (e = "randomized"), e
                },
                slideInSequence: function(e) {
                    var t = N.slideshow.sequence[this.sequence()],
                        i = t.indexOf(N.slides.current.index);
                    switch (e) {
                        case "prev":
                            return 0 === i ? t[t.length - 1] : t[i - 1];
                        case "next":
                            return i === t.length - 1 ? t[0] : t[i + 1];
                        default:
                            return t[e]
                    }
                },
                indexOfSlideInSequence: function(e) {
                    return N.slideshow.sequence[this.sequence()].indexOf(e)
                }
            },
            cycles: {set: function() {
                    0 < N.o.cycles && (N.slideshow.curCycle = 1, N.slideshow.cycleSlideIndex = N.slideshow.get.indexOfSlideInSequence(N.slides.first.index))
                },
                check: function(e) {
                    if (N.slideshow.get.indexOfSlideInSequence(e) === N.slideshow.cycleSlideIndex) return ++N.slideshow.curCycle === N.o.cycles + 1
                }
            },
            start: function(e) {
                !this.isPaused() && N.transitions._slideTimeline && N.transitions.layers.timeline.state.finished && this.changeTo(N.slides.next.index)
            },
            stop: function() {
                N.functions.setStates(this, {
                    running: !1,
                    paused: !0
                })
            },
            changeTo: function(e, t, i) {
                if (!document.body.contains(P)) return !1;
                if (N.slides.current.index === e) return !1;
                if (!this.firstStart && N.api.hasEvent("slideChangeWillStart")) {
                    var a = $.triggerHandler("slideChangeWillStart", N.api.eventData());
                    if (!1 === a) return;
                    X.isNumeric(a) && (e = parseInt(a))
                }
                e > N.slides.count || e < 1 ? N.debugMode && (N.debug.add("group", "slideshow"), N.debug.add("warn", "slideshow.invalidSlideIndex", [e, N.slides.count]), N.debug.groupEnd()) : N.slider.isBusy() || N.slideshow.state.pausedByVideo && !t ? !N.slider.state.preloadingImages && N.slider.state.animatingSlides && N.transitions._slideTransition && (N.slideshow.should.change = !0, N.transitions._slideTransition.progress(1), N.transitions._forceLayersOut && N.transitions._forceLayersOut.progress(1)) : (N.functions.setStates(N.transitions.layers.timeline, {
                    finished: !1
                }), N.slideshow.should.change = !1, N.debugMode && N.debug.add("group", "slideshow"), t ? ("prev" === N.navigation.direction && N.o.twoWaySlideshow && (N.slideshow.direction = "prev"), N.debugMode && (N.debug.add("log", "slideshow.changedByUser", !1), N.o.twoWaySlideshow && N.debug.add("log", "slideshow.setdir", N.slideshow.direction))) : N.navigation.direction = N.slideshow.direction, N.transitions.timers.reverse(), N.gui.media.hideUnmute(), N.slides.set.nextSlideIndex(e), N.debugMode && (N.debug.add("log", "slideshow.change", [N.slides.current.index, N.slides.next.index, N.slideshow.direction, N.navigation.direction]), N.debug.groupEnd()), N.functions.setStates(this, {
                    pausedByVideo: !1
                }), N.functions.setStates(N.slider, {
                    changingSlides: !0
                }), N.preload.imagesOfSlide(N.slides.next.index, function() {
                    N.transitions.start()
                }))
            },
            forceStop: function() {
                N.navigation.stop(), X.each(N.timeouts, function(e, t) {
                    clearTimeout(N.timeouts[e])
                }), N.transitions.timers.stop(), N.transitions._slideTimeline.stop(), N.functions.setStates(N.transitions.layers.timeline, {
                    stopped: !0,
                    running: !1
                }), $.find("*").stop(!0, !1).dequeue()
            },
            restart: function() {
                $.find("*").stop(), N.navigation.change(N.slides.current.index, N.slideshow.direction)
            }
        }, N.media = {
            properties: {
                $allMediaLayers: X(),
                playingInCurSlide: 0,
                endedInCurSlide: 0,
                userDidUnmute: !1
            },
            init: function() {
                N.functions.setStates(N.slider, {
                    waitingForYouTube: !1,
                    waitingForVimeo: !1
                }), N.media.properties.allowToUnmute = !0, N.media.youtube.init(), N.media.vimeo.init(), N.media.html5.init()
            },
            get: function(e) {
                var t, i = N.media.properties.$allMediaLayers;
                return e && (-1 !== (e = e.toLowerCase()).indexOf("notbg") && (i = i.not(".ls-bg-video")), -1 !== e.indexOf("active") && (i = i.filter("[data-ls-active], [data-ls-animating-in]")), -1 !== e.indexOf("notstatic") && (i = i.not("[data-ls-static]")), t = i.find("video, audio, iframe"), -1 !== e.indexOf("notplaying") ? t = t.filter("[data-ls-not-playing]") : -1 !== e.indexOf("playing") && (t = t.filter("[data-ls-playing]")), -1 !== e.indexOf("allowtounmute") && (t = t.filter("[data-ls-allow-to-unmute]")), -1 !== e.indexOf("mutedbybrowser") && (t = t.filter("[data-ls-muted-by-browser]"))), t
            },
            set: {
                backgroundVideo: function(e, t) {
                    0 === e.children(".ls-vpcontainer").length && (e = X("<div>").addClass("ls-vpcontainer").appendTo(e), t.mediaSettings.poster && X("<div>").appendTo(e).addClass("ls-videopreview").attr({
                        style: "background-image: url(" + t.mediaSettings.poster + ")"
                    }))
                },
                customPoster: function(e, t) {
                    return t.mediaSettings.poster || !1
                },
                dataAttribute: function(e, t) {
                    e.removeAttr("data-ls-playing data-ls-not-playing"), e.attr("data-ls-" + t, ""), N.media.functions.checkSlideshowWaiting()
                },
                mediaElements: function(e, t, i) {
                    var a = X("<div>").addClass("ls-vpcontainer").appendTo(e);
                    !("autoplay" in i.mediaSettings) && N.o.autoPlayVideos || i.mediaSettings.autoplay ? e.addClass("ls-autoplay") : X("<div>").appendTo(a).addClass("ls-playvideo"), t.is("iframe") && i.mediaProperties.poster && X("<div>").appendTo(a).addClass("ls-videopreview").attr({
                        style: "background-image: url(" + i.mediaProperties.poster + ")"
                    }), t.is("video, audio") && i.mediaProperties.poster && X("<div>").appendTo(a).addClass("ls-videopreview").attr({
                        style: "background-image: url(" + i.mediaProperties.poster + ")"
                    })
                },
                properties: function(e, t, i) {
                    switch (i.is.mediaLayer = !0, i.mediaProperties.type) {
                        case "youtube":
                            i.is.backgroundVideo ? (i.mediaProperties.options = X.extend(!0, {
                                loop: 1,
                                playlist: i.mediaProperties.embedID,
                                controls: 0,
                                autoplay: 0,
                                showinfo: !1,
                                modestbranding: 1,
                                thumbnail: !1
                            }, N.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions), N.media.set.backgroundVideo(e, i)) : (i.mediaProperties.options = X.extend(!0, {}, N.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions, {
                                autoplay: 0
                            }), N.media.set.mediaElements(e, t, i));
                            break;
                        case "vimeo":
                            i.is.backgroundVideo ? (i.mediaProperties.options = X.extend(!0, {
                                loop: 1,
                                byline: 0,
                                portrait: 0,
                                title: 0,
                                fun: 0
                            }, N.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions), N.media.set.backgroundVideo(e, i)) : (i.mediaProperties.options = X.extend(!0, {}, N.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions, {
                                autoplay: 0
                            }), N.media.set.mediaElements(e, t, i));
                            break;
                        case "html5":
                            t.attr("autoplay") && (t.removeAttr("autoplay"), e.attr("data-ls", e.attr("data-ls") + " autoplay: true;")), i.is.backgroundVideo && (t.removeAttr("controls"), t[0].muted = !0, t.attr("loop", "")), "controls" in i.mediaSettings && (i.mediaSettings.controls ? (t.attr("controls", ""), t.removeAttr("nocontrols")) : t.removeAttr("controls")), "volume" in i.mediaSettings && (i.mediaSettings.volume < 0 ? i.mediaSettings.volume = 0 : 100 < i.mediaSettings.volume && (i.mediaSettings.volume = 100), t[0].volume = i.mediaSettings.volume / 100), "muted" in i.mediaSettings && (i.mediaSettings.muted ? t[0].muted = !0 : t[0].muted = !1), "loop" in i.mediaSettings && (i.mediaSettings.loop ? t.attr("loop", "") : t.removeAttr("loop")), i.is.backgroundVideo ? N.media.set.backgroundVideo(e, i) : N.media.set.mediaElements(e, t, i)
                    }
                },
                thumbnail: function(e, t) {
                    switch (t) {
                        case "show":
                            e.fadeIn(N.transitions.media.defaults.fadeIn);
                            break;
                        case "hide":
                            e.delay(N.transitions.media.defaults.delay).fadeOut(N.transitions.media.defaults.fadeOut)
                    }
                }
            },
            events: {
                start: function(e, t, i) {
                    var a;
                    N.api.hasEvent("mediaDidStart") && !i.mediaProperties.alreadyStarted && N.media.functions.allowedToPlay(e, i) && ((a = N.api.eventData()).event.target = e[0], $.triggerHandler("mediaDidStart", a), i.mediaProperties.alreadyStarted = !0)
                },
                stop: function(e, t, i) {
                    var a;
                    N.api.hasEvent("mediaDidStop") && i.mediaProperties.alreadyStarted && ((a = N.api.eventData()).event.target = e[0], $.triggerHandler("mediaDidStop", a), i.mediaProperties.alreadyStarted = !1)
                }
            },
            unmute: {set: function(e, t, i) {
                    ("youtube" !== t && "vimeo" !== t || N.media.properties.allowToUnmute) && N.gui.media.showUnmute(), e.attr("data-ls-allow-to-unmute", ""), i && e.attr("data-ls-muted-by-browser", "")
                },
                multipleMediaElements: function() {
                    var e = $.find("[data-ls-allow-to-unmute]");
                    (N.o.rememberUnmuteState ? e : e.filter("[data-ls-playing], [data-ls-muted-by-browser]")).each(function() {
                        N.media.unmute.singleMediaElement(X(this))
                    }), N.gui.media.hideUnmute(), N.media.properties.userDidUnmute = !0
                },
                singleMediaElement: function(e) {
                    var t, i = e.closest(".ls-layer").data(N.defaults.init.dataKey),
                        a = !1;
                    switch (i.mediaProperties.type) {
                        case "youtube":
                            N.media.properties.allowToUnmute && (a = !0, i.mediaProperties.player.unMute());
                            break;
                        case "vimeo":
                            N.media.properties.allowToUnmute && (a = !0, t = i.mediaSettings.volume ? i.mediaSettings.volume / 100 : 1, i.mediaProperties.player.setVolume(t));
                            break;
                        case "html5":
                            a = !0, e[0].muted = !1
                    }
                    a && e.removeAttr("data-ls-muted-by-browser data-ls-allow-to-unmute")
                }
            },
            functions: {
                allowedToPlay: function(e, t) {
                    e = e.closest(".ls-layer");
                    return !!(N.slides.current.index === parseInt(e.attr("data-ls-slidein")) || t.is.backgroundVideo && N.slides.next.index === parseInt(e.attr("data-ls-slidein")) || e.attr("data-ls-static") && void 0 !== e.attr("data-ls-active"))
                },
                playActiveMedia: function() {
                    var e;
                    N.media.get("notbg,active").each(function() {
                        if ((e = X(this).closest(".ls-layer").data(N.defaults.init.dataKey)).mediaProperties.alreadyStarted) switch (e.mediaProperties.type) {
                            case "youtube":
                                e.mediaProperties.player.playVideo();
                                break;
                            case "vimeo":
                                e.mediaProperties.player.play();
                                break;
                            case "html5":
                                e.mediaProperties.$media[0].play()
                        } else X(this).parent().find(".ls-vpcontainer").trigger("playMedia")
                    })
                },
                pauseActiveMedia: function() {
                    var e;
                    N.media.get("notbg,active,playing").each(function() {
                        switch ((e = X(this).closest(".ls-layer").data(N.defaults.init.dataKey)).mediaProperties.type) {
                            case "youtube":
                                e.mediaProperties.player.pauseVideo();
                                break;
                            case "vimeo":
                                e.mediaProperties.player.pause();
                                break;
                            case "html5":
                                this.pause()
                        }
                    })
                },
                urlToObject: function(e) {
                    var a = {},
                        e = e.split("?")[1];
                    return e && e.split("#")[0].replace(/([^=&]+)=([^&]*)/g, function(e, t, i) {
                        a[decodeURIComponent(t)] = X.isNumeric(decodeURIComponent(i)) ? parseInt(decodeURIComponent(i)) : decodeURIComponent(i)
                    }), a
                },
                checkSlideshowState: function(e, t) {
                    !t.is.static && N.o.autoPauseSlideshow && (N.functions.setStates(N.slideshow, {
                        pausedByVideo: !0
                    }), "auto" == N.o.autoPauseSlideshow && N.media.properties.playingInCurSlide++)
                },
                checkSlideshowWaiting: function() {
                    var e = N.media.properties.playingInCurSlide,
                        t = N.media.get("notbg,active,notstatic,notplaying"),
                        i = N.media.get("notbg,active,notstatic,notplaying").length;
                    i === e && 0 < i && N.slideshow.state.pausedByVideo && N.o.autoPauseSlideshow && !N.timeouts.pausedVideos && N.slideshow.state.running ? N.timeouts.pausedVideos = setTimeout(function() {
                        N.slideshow.state.running ? t.each(function() {
                            N.media.functions.mediaEnded(X(this), X(this).closest(".ls-layer"), X(this).closest(".ls-layer").data(N.defaults.init.dataKey))
                        }) : N.slideshow.state.pausedByVideo = !1
                    }, 5e3) : N.timeouts.pausedVideos && (clearTimeout(N.timeouts.pausedVideos), delete N.timeouts.pausedVideos)
                },
                playIfAllowed: function(e) {
                    var t = e.data(N.defaults.init.dataKey);
                    t.is.mediaLayer && (N.device.isMobile && ($.hasClass("ls-device-is-phone") && t.elements.$outerWrapper.hasClass("ls-hide-on-phone") || $.hasClass("ls-device-is-tablet") && t.elements.$outerWrapper.hasClass("ls-hide-on-tablet")) || ("autoplay" in t.mediaSettings || !N.o.autoPlayVideos) && !t.mediaSettings.autoplay || e.find(".ls-vpcontainer").trigger("playMedia"))
                },
                stop: function(a) {
                    a = void 0 === a || a;
                    N.layers.get("current,out,youtube").each(function() {
                        var e = X(this),
                            t = e.closest(".ls-layer"),
                            i = t.data(N.defaults.init.dataKey);
                        N.media.youtube.stop(t, e, i, a)
                    }), N.layers.get("current,out,vimeo").each(function() {
                        var e = X(this),
                            t = e.closest(".ls-layer"),
                            i = t.data(N.defaults.init.dataKey);
                        N.media.vimeo.stop(t, e, i, a)
                    }), N.layers.get("current,out,html5").each(function() {
                        var e = X(this),
                            t = e.closest(".ls-layer"),
                            i = t.data(N.defaults.init.dataKey);
                        N.media.html5.stop(t, e, i, a)
                    }), N.media.properties.playingInCurSlide = 0, N.media.properties.endedInCurSlide = 0
                },
                mediaEnded: function(e, t, i) {
                    "auto" != N.o.autoPauseSlideshow || i.is.backgroundVideo || (i.is.static || N.media.properties.endedInCurSlide++, N.media.properties.endedInCurSlide == N.media.properties.playingInCurSlide && 0 !== N.media.properties.playingInCurSlide && (N.functions.setStates(N.slideshow, {
                        pausedByVideo: !1
                    }), N.slideshow.remainingSlideDuration = 1, N.slideshow.start())), N.media.set.dataAttribute(e, "not-playing"), N.media.events.stop(e, t, i)
                },
                removeFromTimeline: function(e) {
                    N.transitions._slideTimeline.kill(null, e.closest(".ls-in-out")[0])
                }
            },
            youtube: {
                defaults: {
                    autoplay: 0,
                    playsinline: 1,
                    wmode: "opaque",
                    html5: 1,
                    enablejsapi: 1,
                    version: 3,
                    rel: 0
                },
                init: function() {
                    var f = 0;
                    this.$medias = N.slider.$hiddenWrapper.find('iframe[src*="youtube-nocookie.com"], iframe[src*="youtube.com"], iframe[src*="youtu.be"], iframe[data-src*="youtube-nocookie.com"], iframe[data-src*="youtube.com"], iframe[data-src*="youtu.be"]').each(function() {
                        var e = X(this).attr({
                                id: "ls-youtube-" + ++f,
                                allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; fullscreen",
                                allowfullscreen: ""
                            }),
                            t = e.closest(".ls-layer");
                        t.data("hasBeenSet") || N.layers.set.singleLayer(t);
                        var i, a, s, r, o, n, l, d, u = t.data(N.defaults.init.dataKey),
                            p = e.attr("src") || e.attr("data-src"),
                            c = N.media.functions.urlToObject(p),
                            h = (p = p.split("?")[0].split("//")[1]).split("/"),
                            m = h[h.length - 1],
                            h = N.media.set.customPoster(t, u);
                        u.mediaProperties = {
                            type: "youtube",
                            $media: e,
                            embedURL: p,
                            embedID: m,
                            embedOptions: c
                        }, h ? (u.mediaProperties.poster = h, N.media.set.properties(t, e, u)) : (i = ["default.jpg", "mqdefault.jpg", "hqdefault.jpg", "sddefault.jpg", "maxresdefault.jpg"], a = "https://img.youtube.com/vi/" + p.split("embed/")[1].split("?")[0] + "/", s = a + N.o.youtubePreview, o = r = 0, n = function() {
                            this.width > r && (r = this.width, s = this.src), d()
                        }, l = function() {
                            d()
                        }, d = function() {
                            (o += 1) === i.length && (u.mediaProperties.poster = s, N.media.set.properties(t, e, u))
                        }, i.forEach(function(e) {
                            var t = new Image;
                            t.addEventListener("error", l, !1), t.addEventListener("load", n, !1), t.src = a + e
                        }))
                    }), this.$medias.length && (N.media.properties.$allMediaLayers = N.media.properties.$allMediaLayers.add(this.$medias.closest(".ls-layer")), N.timeouts.loadYouTube = Math.floor(Date.now() / 1e3), window.YT || X("<script>").attr({
                        src: "https://www.youtube.com/iframe_api",
                        type: "text/javascript"
                    }).appendTo("head"), window.onYouTubeIframeAPIReady = function() {
                        window._layerSlider.globals.youTubeIsReady = !0
                    }, N.intervals.isYouTubeReady = setInterval(function() {
                        window.YT && 1 === window.YT.loaded || window._layerSlider.globals.youTubeIsReady || 3 < Math.floor(Date.now() / 1e3) - N.timeouts.loadYouTube ? (clearInterval(N.intervals.isYouTubeReady), delete N.intervals.isYouTubeReady, delete N.timeouts.loadYouTube, N.media.youtube.$medias.closest(".ls-layer").each(function() {
                            var e = X(this),
                                t = e.data(N.defaults.init.dataKey);
                            e.on("playMedia." + B + " click." + B, ".ls-vpcontainer", function() {
                                N.media.set.thumbnail(X(this), "hide"), N.media.functions.checkSlideshowState(e, t), N.media.functions.removeFromTimeline(e), N.media.youtube.play(e, t.mediaProperties.$media, t, t.mediaProperties.embedURL)
                            }).on("playBackgroundVideo." + B, function() {
                                N.media.youtube.play(e, t.mediaProperties.$media, t, t.mediaProperties.embedURL), N.layers.set.dataAttribute(e, "active")
                            }).on("stopBackgroundVideo." + B, function() {
                                N.media.youtube.stop(e, t.mediaProperties.$media, t, !0), N.layers.set.dataAttribute(e, "hidden")
                            }).on("preloadBackgroundVideo." + B, function() {
                                N.media.youtube.createPlayer(e, t.mediaProperties.$media, t, t.mediaProperties.embedURL, !0)
                            })
                        }), N.functions.setStates(N.slider, {
                            waitingForYouTube: !1
                        })) : N.functions.setStates(N.slider, {
                            waitingForYouTube: !0
                        })
                    }, 25))
                },
                createPlayer: function(t, i, a, s, r) {
                    a.mediaProperties.playerState = "initializing", "controls" in a.mediaSettings && (a.mediaProperties.options.controls = a.mediaSettings.controls ? 1 : 0), "loop" in a.mediaSettings && (a.mediaProperties.options.loop = a.mediaSettings.loop ? 1 : 0), "showinfo" in a.mediaSettings && (a.mediaProperties.options.showinfo = a.mediaSettings.showinfo ? 1 : 0), a.mediaProperties.options.loop ? a.mediaProperties.options.playlist = a.mediaProperties.embedID : delete a.mediaProperties.options.playlist, 0 === a.mediaProperties.options.showinfo && (a.mediaProperties.options.modestbranding = 1), i.attr("src", "https://" + s + "?" + jQuery.param(a.mediaProperties.options)).load(function() {
                        a.mediaProperties.player = new YT.Player(i[0], {
                            events: {
                                onReady: function(e) {
                                    a.mediaProperties.playerState = "ready", a.mediaSettings.volume && a.mediaProperties.player.setVolume(a.mediaSettings.volume), r && !a.mediaProperties.shouldPlay || (N.media.youtube.play(t, i, a, s), a.mediaProperties.shouldPlay = !1)
                                },
                                onStateChange: function(e) {
                                    switch (e.data) {
                                        case 0:
                                            a.mediaProperties.options.loop && 1 === a.mediaProperties.options.loop || N.media.functions.mediaEnded(i, t, a);
                                            break;
                                        case 1:
                                            N.media.events.start(i, t, a), a.mediaProperties.lastStarted = Date.now();
                                            break;
                                        case 2:
                                        case -1:
                                            a.mediaProperties.firstState && 0 !== a.mediaProperties.lastState && 1 !== a.mediaProperties.lastState || a.mediaProperties.lastStarted && (Date.now(), a.mediaProperties.lastStarted)
                                    }
                                    1 === e.data ? N.media.set.dataAttribute(i, "playing") : N.media.set.dataAttribute(i, "not-playing"), N.media.youtube.savePlayerState(a, e.data)
                                }
                            }
                        })
                    })
                },
                savePlayerState: function(e, t) {
                    e.mediaProperties.firstState || (e.mediaProperties.firstState = t), e.mediaProperties.lastState = t
                },
                play: function(e, t, i, a, s) {
                    void 0 !== t.attr("data-ls-muted-by-browser") && N.media.unmute.singleMediaElement(t), i.mediaProperties.player ? i.mediaProperties.player.playVideo ? (!i.is.backgroundVideo || "muted" in i.mediaSettings || i.mediaProperties.player.mute(), i.mediaSettings.muted ? N.o.rememberUnmuteState && N.media.properties.userDidUnmute || (i.mediaProperties.player.mute(), "offertounmute" == i.mediaSettings.muted && N.media.unmute.set(t, i.mediaProperties.type)) : s && (i.mediaProperties.player.mute(), N.media.unmute.set(t, i.mediaProperties.type, !0)), N.media.functions.allowedToPlay(t, i) ? i.mediaProperties.player.playVideo() : N.media.youtube.stop(e, t, i, !0)) : i.mediaProperties.shouldPlay = !0 : i.mediaProperties.playerState ? i.mediaProperties.shouldPlay = !0 : this.createPlayer(e, t, i, a)
                },
                stop: function(e, t, i, a) {
                    i.mediaProperties.player && (i.mediaProperties.player.pauseVideo(), a && i.mediaProperties.player.seekTo(0), i.is.backgroundVideo || N.media.set.thumbnail(e.find(".ls-vpcontainer"), "show"), N.media.events.stop(t, e, i))
                }
            },
            vimeo: {
                defaults: {
                    autoplay: 0,
                    autopause: 0,
                    wmode: "opaque",
                    playsinline: 1
                },
                init: function() {
                    var d, e, t = this.$medias = N.slider.$hiddenWrapper.find('iframe[src*="player.vimeo"], iframe[data-src*="player.vimeo"]'),
                        u = N.slider.$hiddenWrapper.find('.ls-slide:eq(0) iframe[src*="player.vimeo"], .ls-slide:eq(0) iframe[data-src*="player.vimeo"]').length;
                    t.length && (N.timeouts.loadVimeo = Math.floor(Date.now() / 1e3), N.media.properties.$allMediaLayers = N.media.properties.$allMediaLayers.add(t.closest(".ls-layer")), d = 0, X("<script>").attr({
                        src: "https://player.vimeo.com/api/player.js",
                        type: "text/javascript"
                    }).appendTo("head"), N.intervals.isVimeoReady = setInterval(function() {
                        N.functions.setStates(N.slider, {
                            waitingForVimeo: !0
                        }), (window.Vimeo || 3 < Math.floor(Date.now() / 1e3) - N.timeouts.loadVimeo) && (clearInterval(N.intervals.isVimeoReady), delete N.intervals.isVimeoReady, delete N.timeouts.loadVimeo, e())
                    }, 25), e = function() {
                        var l = 0;
                        N.media.vimeo.$medias.each(function() {
                            var t = X(this).attr({
                                    id: "ls-vimeo-" + ++d,
                                    allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; fullscreen",
                                    allowfullscreen: ""
                                }),
                                i = t.closest(".ls-layer");
                            i.data("hasBeenSet") || N.layers.set.singleLayer(i);
                            var a = i.data(N.defaults.init.dataKey),
                                e = t.attr("src") || t.attr("data-src"),
                                s = N.media.functions.urlToObject(e),
                                r = "https://vimeo.com/api/oembed.json?url=http://vimeo.com/" + e.split("video/")[1].split("?")[0],
                                e = e.split("?")[0].split("//")[1];
                            N.media.vimeo.defaults.player_id = "ls-vimeo-" + d;
                            var o = N.media.set.customPoster(i, a);
                            a.mediaProperties = {
                                type: "vimeo",
                                $media: t,
                                embedURL: e,
                                embedOptions: s
                            };

                            function n(e) {
                                a.mediaProperties.poster = e, (0 === u || 0 < u && ++l == u) && (window._layerSlider.globals.vimeoIsReady = !0), N.media.set.properties(i, t, a)
                            }
                            o ? n(o) : X.getJSON(r, function(e) {
                                n(e.thumbnail_url)
                            }), i.on("playMedia." + B + " click." + B, ".ls-vpcontainer", function() {
                                N.media.set.thumbnail(X(this), "hide"), N.media.functions.checkSlideshowState(i, a), N.media.functions.removeFromTimeline(i), N.media.vimeo.play(i, t, a, e)
                            }).on("playBackgroundVideo." + B, function() {
                                N.media.vimeo.play(i, t, a, e), N.layers.set.dataAttribute(i, "active")
                            }).on("stopBackgroundVideo." + B, function() {
                                N.media.vimeo.stop(i, t, a, !0), N.layers.set.dataAttribute(i, "hidden")
                            }).on("preloadBackgroundVideo." + B, function() {
                                N.media.vimeo.createPlayer(i, t, a, e, !0)
                            })
                        }), N.functions.setStates(N.slider, {
                            waitingForVimeo: !1
                        })
                    })
                },
                createPlayer: function(e, t, i, a, s) {
                    i.mediaProperties.playerState = "initializing";
                    "controls" in i.mediaSettings && delete i.mediaSettings.controls, "loop" in i.mediaSettings && (i.mediaProperties.options.loop = i.mediaSettings.loop ? 1 : 0), "showinfo" in i.mediaSettings && (i.mediaSettings.showinfo ? (i.mediaProperties.options.byline = 1, i.mediaProperties.options.portrait = 1, i.mediaProperties.options.title = 1) : (i.mediaProperties.options.byline = 0, i.mediaProperties.options.portrait = 0, i.mediaProperties.options.title = 0), delete i.mediaProperties.options.showinfo), "volume" in i.mediaSettings && (0 === i.mediaSettings.volume ? (i.mediaSettings.volume = 100, i.mediaSettings.muted = 1) : (i.mediaSettings.volume < 0 || 100 < i.mediaSettings.volume) && (i.mediaSettings.volume = 100)), t.attr("src", "https://" + a + "?" + jQuery.param(i.mediaProperties.options)), i.mediaProperties.player = new Vimeo.Player(t[0]), i.mediaProperties.player.on("play", function() {
                        N.media.set.dataAttribute(t, "playing"), N.media.events.start(t, e, i)
                    }), i.mediaProperties.player.on("pause", function() {
                        N.media.set.dataAttribute(t, "not-playing")
                    }), i.mediaProperties.player.on("ended", function() {
                        N.media.functions.mediaEnded(t, e, i)
                    }), i.mediaProperties.player.ready().then(function() {
                        i.mediaProperties.playerState = "ready", i.mediaSettings.volume && !i.mediaSettings.muted && X.isNumeric(i.mediaSettings.volume) && 0 <= i.mediaSettings.volume && i.mediaSettings.volume <= 100 && i.mediaProperties.player.setVolume(i.mediaSettings.volume / 100), s || N.media.vimeo.play(e, t, i, a)
                    })
                },
                play: function(t, i, a, s, e) {
                    void 0 !== i.attr("data-ls-muted-by-browser") && N.media.unmute.singleMediaElement(i), a.mediaProperties.player ? (!a.is.backgroundVideo || "muted" in a.mediaSettings || a.mediaProperties.player.setVolume(0), a.mediaSettings.muted && (N.o.rememberUnmuteState && N.media.properties.userDidUnmute ? N.o.rememberUnmuteState && N.media.properties.userDidUnmute && (a.mediaProperties.player.setVolume(a.mediaSettings.volume / 100 || 1), delete a.mediaSettings.muted) : (a.mediaProperties.player.setVolume(0), "offertounmute" == a.mediaSettings.muted && N.media.unmute.set(i, a.mediaProperties.type))), e ? (a.mediaProperties.player.setVolume(0), N.media.unmute.set(i, a.mediaProperties.type, !0)) : a.mediaProperties.player.getVolume().then(function(e) {
                        0 == e && "offertounmute" == a.mediaSettings.muted && N.media.unmute.set(i, a.mediaProperties.type)
                    }), N.media.functions.allowedToPlay(i, a) ? a.mediaProperties.player.play().then(function() {}).catch(function(e) {
                        switch (e.name) {
                            case "PasswordError":
                                window.console && (console.error(N.defaults.slider.errorText), console.error("Vimeo video is password protected and may cause playback issues."));
                                break;
                            case "PrivacyError":
                                window.console && (console.error(N.defaults.slider.errorText), console.error("Vimeo video is private and may cause playback issues."));
                                break;
                            default:
                                N.media.vimeo.play(t, i, a, s, !0)
                        }
                    }) : N.media.vimeo.stop(t, i, a, !0)) : this.createPlayer(t, i, a, s)
                },
                stop: function(e, t, i, a) {
                    i.mediaProperties.player && (i.mediaProperties.player.pause(), a && i.mediaProperties.player.setCurrentTime(0), i.is.backgroundVideo || N.media.set.thumbnail(e.find(".ls-vpcontainer"), "show"), N.media.events.stop(t, e, i))
                }
            },
            html5: {
                singleInit: function(t) {
                    var e, i, a, s, r = t.closest(".ls-layer"),
                        o = r.data(N.defaults.init.dataKey),
                        n = t.find("source"),
                        l = N.media.set.customPoster(r, o);
                    o.mediaProperties = {
                        type: "html5",
                        $media: t,
                        poster: l || t.attr("poster")
                    }, t.removeAttr("poster"), 0 < n.length ? n.each(function() {
                        void 0 !== (e = X(this).attr("type")) && !1 !== e || (i = X(this).attr("src"), a = i.split("."), s = a[a.length - 1].toLowerCase(), X(this).attr("type", X(this).parent()[0].tagName.toLowerCase() + "/" + s)), "" !== t[0].canPlayType(X(this).attr("type")) && (o.mediaProperties.canBePlayed = !0)
                    }) : void 0 !== t.attr("src") && !1 !== t.attr("src") && (i = t.attr("src"), a = i.split("."), s = a[a.length - 1].toLowerCase(), "" !== t[0].canPlayType(t[0].tagName.toLowerCase() + "/" + s) && (o.mediaProperties.canBePlayed = !0)), o.mediaProperties.canBePlayed && (N.media.set.properties(r, t, o), t.on("ended." + B, function() {
                        N.media.functions.mediaEnded(t, r, o)
                    }).on("play." + B, function() {}).on("playing." + B, function() {
                        N.media.events.start(t, r, o), N.media.set.dataAttribute(t, "playing")
                    }).on("pause." + B, function() {
                        N.media.set.dataAttribute(t, "not-playing")
                    }), r.on("playMedia." + B + " click." + B, ".ls-vpcontainer", function(e) {
                        N.media.set.thumbnail(X(this), "hide"), N.media.functions.checkSlideshowState(r, o), N.media.functions.removeFromTimeline(r), N.media.html5.play(r, t, o)
                    }).on("playBackgroundVideo." + B, function() {
                        N.media.html5.play(r, t, o), N.layers.set.dataAttribute(r, "active")
                    }).on("stopBackgroundVideo." + B, function() {
                        N.media.html5.stop(r, t, o, !0), N.layers.set.dataAttribute(r, "hidden")
                    }))
                },
                init: function() {
                    var e, t = N.slider.$hiddenWrapper.find("video, audio");
                    N.media.properties.$allMediaLayers = N.media.properties.$allMediaLayers.add(t.closest(".ls-layer")), t.length && (e = 0, t.each(function() {
                        X(this).closest(".ls-layer").data(N.defaults.init.dataKey).is.mediaLayer = !0, X(this).attr("id", "ls-html5-" + ++e).attr("playsinline", ""), X(this)[0].pause()
                    }))
                },
                play: function(e, t, i) {
                    var a;
                    i.mediaProperties.canBePlayed && (void 0 !== t.attr("data-ls-muted-by-browser") && N.media.unmute.singleMediaElement(t), i.mediaSettings.muted && (N.o.rememberUnmuteState && N.media.properties.userDidUnmute ? N.o.rememberUnmuteState && N.media.properties.userDidUnmute && (t[0].muted = !1) : (t[0].muted = !0, "offertounmute" == i.mediaSettings.muted && N.media.unmute.set(t, i.mediaProperties.type))), void 0 !== (a = t[0].play()) && a.then(function(e) {}).catch(function(e) {
                        t[0].muted = !0, t[0].play(), t[0].paused && N.functions.setStates(N.slideshow, {
                            pausedByVideo: !1
                        }), N.media.unmute.set(t, i.mediaProperties.type, !0)
                    }))
                },
                stop: function(e, t, i, a) {
                    i.mediaProperties.canBePlayed && (t[0].pause(), a && (t[0].currentTime = 0), i.is.backgroundVideo || N.media.set.thumbnail(X(this), "show"), N.media.events.stop(t, e, i))
                }
            }
        }, N.yourLogo = {
            init: function() {
                N.o.yourLogo && (this.$element = X("<img>").addClass("ls-yourlogo").appendTo($).attr("style", N.o.yourLogoStyle).css({
                    visibility: "hidden",
                    display: "bock"
                }).on("load." + B, function() {
                    var e = N.yourLogo.$element ? 500 : 0;
                    N.timeouts.yourLogo = setTimeout(function() {
                        delete N.timeouts.yourLogo, N.yourLogo.$element.data("originalWidth", N.yourLogo.$element.width()), N.yourLogo.$element.data("originalHeight", N.yourLogo.$element.height()), "auto" != N.yourLogo.$element.css("left") && N.yourLogo.$element.data("originalLeft", N.yourLogo.$element[0].style.left), "auto" != N.yourLogo.$element.css("right") && N.yourLogo.$element.data("originalRight", N.yourLogo.$element[0].style.right), "auto" != N.yourLogo.$element.css("top") && N.yourLogo.$element.data("originalTop", N.yourLogo.$element[0].style.top), "auto" != N.yourLogo.$element.css("bottom") && N.yourLogo.$element.data("originalBottom", N.yourLogo.$element[0].style.bottom), !1 !== N.o.yourLogoLink && X("<a>").appendTo($).attr("href", N.o.yourLogoLink).attr("target", N.o.yourLogoTarget).css({
                            textDecoration: "none",
                            outline: "none"
                        }).append(N.yourLogo.$element), N.yourLogo.$element.css({
                            display: "none",
                            visibility: "visible"
                        }), N.yourLogo.resize()
                    }, e)
                }).attr("src", N.o.yourLogo))
            },
            resize: function() {
                this.$element.css({
                    width: this.$element.data("originalWidth") * N.resize.ratio,
                    height: this.$element.data("originalHeight") * N.resize.ratio
                }), this.$element.fadeIn(300);
                var e = "auto",
                    t = "auto",
                    i = "auto",
                    a = "auto",
                    e = this.$element.data("originalLeft") && -1 != this.$element.data("originalLeft").indexOf("%") ? $.width() / 100 * parseFloat(this.$element.data("originalLeft")) - this.$element.width() / 2 + parseInt($.css("padding-left")) : parseInt(this.$element.data("originalLeft")) * N.resize.ratio,
                    t = this.$element.data("originalRight") && -1 != this.$element.data("originalRight").indexOf("%") ? $.width() / 100 * parseFloat(this.$element.data("originalRight")) - this.$element.width() / 2 + parseInt($.css("padding-right")) : parseInt(this.$element.data("originalRight")) * N.resize.ratio,
                    i = this.$element.data("originalTop") && -1 != this.$element.data("originalTop").indexOf("%") ? $.height() / 100 * parseFloat(this.$element.data("originalTop")) - this.$element.height() / 2 + parseInt($.css("padding-top")) : parseInt(this.$element.data("originalTop")) * N.resize.ratio,
                    a = this.$element.data("originalBottom") && -1 != this.$element.data("originalBottom").indexOf("%") ? $.height() / 100 * parseFloat(this.$element.data("originalBottom")) - this.$element.height() / 2 + parseInt($.css("padding-bottom")) : parseInt(this.$element.data("originalBottom")) * N.resize.ratio;
                this.$element.css({
                    left: e,
                    right: t,
                    top: i,
                    bottom: a
                })
            }
        }, N.gui = {
            navigation: {
                init: function() {
                    N.o.navPrevNext && this.prevNext.init(), (N.o.navStartStop || N.o.navButtons) && this.bottom.init()
                },
                prevNext: {
                    init: function() {
                        X('<a class="ls-gui-element ls-nav-prev" aria-label="jump to the previous slide" href="#" />').on("click." + B, function(e) {
                            e.preventDefault(), $.layerSlider("prev")
                        }).appendTo($), X('<a class="ls-gui-element ls-nav-next" aria-label="jump to the next slide" href="#" />').on("click." + B, function(e) {
                            e.preventDefault(), $.layerSlider("next")
                        }).appendTo($), N.o.hoverPrevNext && this.setHover()
                    },
                    setHover: function() {
                        $.find(".ls-nav-prev, .ls-nav-next").css({
                            display: "none"
                        }), $.on("mouseenter." + B, function() {
                            N.gui.navigation.forceHide || $.find(".ls-nav-prev, .ls-nav-next").stop(!0, !0).fadeIn(300)
                        }).on("mouseleave." + B, function() {
                            $.find(".ls-nav-prev, .ls-nav-next").stop(!0, !0).fadeOut(300)
                        })
                    }
                },
                bottom: {
                    init: function() {
                        this.wrapper = X('<div class="ls-gui-element ls-bottom-nav-wrapper" />').appendTo($), N.o.navButtons && "always" != N.o.thumbnailNavigation && this.bullets.init(), N.o.navStartStop ? this.createStartStop() : "always" != N.o.thumbnailNavigation && this.createSides(), N.o.hoverBottomNav && "always" != N.o.thumbnailNavigation && this.setHover(), "always" == N.o.thumbnailNavigation && (this.wrapper.addClass("ls-above-thumbnails"), this.thumbnails.init())
                    },
                    bullets: {
                        init: function() {
                            var t = this;
                            X('<span class="ls-bottom-slidebuttons" />').appendTo($.find(".ls-bottom-nav-wrapper"));
                            for (var e = 0; e < N.slides.count; e++) {
                                var i = X('<a href="#" aria-label="jump to slide ' + (e + 1) + '" />').appendTo($.find(".ls-bottom-slidebuttons")).data("index", e + 1).on("click." + B, function(e) {
                                    e.preventDefault(), $.layerSlider(X(this).data("index"))
                                });
                                "hover" == N.o.thumbnailNavigation && i.on("mouseenter." + B, function() {
                                    var e = X(this);
                                    $.find(".ls-thumbnail-hover-img").css({
                                        left: parseInt(t.hoverWrapper.css("padding-left")),
                                        top: parseInt(t.hoverWrapper.css("padding-top"))
                                    }), t.hoverImage.on("load." + B, function() {
                                        0 === X(this).width() ? t.hoverImage.css({
                                            position: "relative",
                                            margin: "0 auto",
                                            left: "auto"
                                        }) : t.hoverImage.css({
                                            position: "absolute",
                                            marginLeft: -X(this).width() / 2,
                                            left: "50%"
                                        }), t.hoverImage.css("display", "none").stop(!0, !0).fadeIn(250)
                                    }).attr("src", N.slides[e.data("index")].data.thumbnail), t.hoverWrapper.css({
                                        display: "block"
                                    }).stop().animate({
                                        left: X(this).position().left + (X(this).width() - t.hoverWrapper.outerWidth()) / 2
                                    }, 250), t.hoverWrapperInner.css({
                                        display: "none",
                                        visibility: "visible"
                                    }).stop().fadeIn(250)
                                }).on("mouseleave." + B, function() {
                                    t.hoverWrapperInner.stop().fadeOut(250, function() {
                                        t.hoverWrapper.css({
                                            visibility: "hidden",
                                            display: "block"
                                        })
                                    })
                                })
                            }
                            t.set.active(N.slides.first.index), "hover" == N.o.thumbnailNavigation && t.set.hover()
                        },
                        set: {
                            active: function(e) {
                                void 0 === e && (e = N.slides.current.index), e--, $.find(".ls-bottom-slidebuttons a").removeClass("ls-nav-active"), $.find(".ls-bottom-slidebuttons a:eq( " + e + " )").addClass("ls-nav-active")
                            },
                            hover: function() {
                                var e = N.gui.navigation.bottom.bullets,
                                    t = X('<div class="ls-thumbnail-hover"><div class="ls-thumbnail-hover-inner"><div class="ls-thumbnail-hover-bg"></div><div class="ls-thumbnail-hover-img"><img></div><span></span></div></div>').appendTo($.find(".ls-bottom-slidebuttons"));
                                $.find(".ls-thumbnail-hover, .ls-thumbnail-hover-img").css({
                                    width: N.o.tnWidth,
                                    height: N.o.tnHeight
                                }), e.hoverWrapper = $.find(".ls-thumbnail-hover"), e.hoverImage = e.hoverWrapper.find("img").css({
                                    height: N.o.tnHeight
                                }), e.hoverWrapperInner = $.find(".ls-thumbnail-hover-inner").css({
                                    visibility: "hidden",
                                    display: "block"
                                }), t.appendTo($.find(".ls-bottom-slidebuttons"))
                            }
                        }
                    },
                    createStartStop: function() {
                        this.buttonStart = X('<a class="ls-nav-start" aria-label="start slideshow" href="#" />').on("click." + B, function(e) {
                            e.preventDefault(), $.layerSlider("start")
                        }).prependTo($.find(".ls-bottom-nav-wrapper")), this.buttonStop = X('<a class="ls-nav-stop" aria-label="stop slideshow" href="#" />').on("click." + B, function(e) {
                            e.preventDefault(), $.layerSlider("stop")
                        }).appendTo($.find(".ls-bottom-nav-wrapper")), N.o.autoStart ? this.setStartStop("start") : this.setStartStop("stop")
                    },
                    setStartStop: function(e) {
                        if (N.o.navStartStop) switch (e) {
                            case "start":
                                this.buttonStart.addClass("ls-nav-start-active"), this.buttonStop.removeClass("ls-nav-stop-active");
                                break;
                            case "stop":
                                this.buttonStart.removeClass("ls-nav-start-active"), this.buttonStop.addClass("ls-nav-stop-active")
                        }
                    },
                    createSides: function() {
                        X('<span class="ls-nav-sides ls-nav-sideleft" />').prependTo($.find(".ls-bottom-nav-wrapper")), X('<span class="ls-nav-sides ls-nav-sideright" />').appendTo($.find(".ls-bottom-nav-wrapper"))
                    },
                    setHover: function() {
                        var e = this;
                        e.wrapper.css({
                            display: "none"
                        }), $.on("mouseenter." + B, function() {
                            N.gui.navigation.forceHide || e.wrapper.stop(!0, !0).fadeIn(300)
                        }).on("mouseleave." + B, function() {
                            e.wrapper.stop(!0, !0).fadeOut(300)
                        })
                    },
                    switchHelper: function(e) {
                        if (N.o.hoverBottomNav && !$.hasClass("ls-hover")) switch (e) {
                            case "on":
                                N.gui.navigation.bottom.thumbnails.wrapper.css({
                                    visibility: "hidden",
                                    display: "block"
                                });
                                break;
                            case "off":
                                N.gui.navigation.bottom.thumbnails.wrapper.css({
                                    visibility: "visible",
                                    display: "none"
                                })
                        }
                    },
                    thumbnails: {
                        init: function() {
                            this.wrapper = X('<div class="ls-gui-element ls-thumbnail-wrapper"></div>').appendTo($), X('<div class="ls-thumbnail"><div class="ls-thumbnail-inner"><div class="ls-thumbnail-slide-container"><div class="ls-thumbnail-slide"></div></div></div></div>').appendTo(this.wrapper), this.$element = $.find(".ls-thumbnail-slide-container"), "ontouchstart" in window ? this.$element.addClass("ls-touchscroll") : this.$element.on("mouseenter." + B, function() {
                                X(this).addClass("ls-thumbnail-slide-hover")
                            }).on("mouseleave." + B, function() {
                                X(this).removeClass("ls-thumbnail-slide-hover"), N.gui.navigation.bottom.thumbnails.scroll()
                            }).on("mousemove." + B, function(e) {
                                e = parseInt(e.pageX - X(this).offset().left) / X(this).width() * (X(this).width() - X(this).find(".ls-thumbnail-slide").width());
                                X(this).find(".ls-thumbnail-slide").stop().css({
                                    marginLeft: e
                                })
                            });
                            for (var e = 0; e < N.slides.count; e++) {
                                var t = e + 1,
                                    i = X('<a href="#" class="ls-thumb-' + (e + 1) + '"  aria-label="jump to slide ' + (e + 1) + '"><img src="' + N.slides[t].data.thumbnail + '"></a>');
                                N.slides[t].data.tnAlt && i.find("img").attr("alt", N.slides[t].data.tnAlt), i.data("index", t).on("click." + B, function(e) {
                                    e.preventDefault(), $.layerSlider(X(this).data("index"))
                                }).appendTo($.find(".ls-thumbnail-slide")), "ontouchstart" in window || i.on("mouseenter." + B, function() {
                                    X(this).children().stop().fadeTo(300, N.o.tnActiveOpacity / 100)
                                }).on("mouseleave." + B, function() {
                                    X(this).children().hasClass("ls-thumb-active") || X(this).children().stop().fadeTo(300, N.o.tnInactiveOpacity / 100)
                                })
                            }
                            N.gui.navigation.bottom.buttonStart && N.gui.navigation.bottom.buttonStop && (N.gui.navigation.bottom.wrapper = X('<div class="ls-bottom-nav-wrapper ls-below-thumbnails"></div>').appendTo($), N.gui.navigation.bottom.buttonStart.clone().on("click." + B, function(e) {
                                e.preventDefault(), $.layerSlider("start")
                            }).appendTo(N.gui.navigation.bottom.wrapper), N.gui.navigation.bottom.buttonStop.clone().on("click." + B, function(e) {
                                e.preventDefault(), $.layerSlider("stop")
                            }).appendTo(N.gui.navigation.bottom.wrapper)), N.o.hoverBottomNav && this.setHover()
                        },
                        setHover: function() {
                            var e = this;
                            e.wrapper.css("display", "none"), N.gui.navigation.bottom.wrapper && (N.gui.navigation.bottom.wrapper = "block" == N.gui.navigation.bottom.wrapper.css("display") ? N.gui.navigation.bottom.wrapper : $.find(".ls-above-thumbnails"), N.gui.navigation.bottom.wrapper.css("display", "none")), $.on("mouseenter." + B, function() {
                                $.addClass("ls-hover"), N.gui.navigation.forceHide || (e.wrapper.stop(!0, !0).fadeIn(300), N.gui.navigation.bottom.wrapper && N.gui.navigation.bottom.wrapper.stop(!0, !0).fadeIn(300))
                            }).on("mouseleave." + B, function() {
                                $.removeClass("ls-hover"), e.wrapper.stop(!0, !0).fadeOut(300), N.gui.navigation.bottom.wrapper && N.gui.navigation.bottom.wrapper.stop(!0, !0).fadeOut(300)
                            })
                        },
                        change: function(e) {
                            e = e || N.slides.next.index;
                            $.find(".ls-thumbnail-slide a:not(.ls-thumb-" + e + " )").children().each(function() {
                                X(this).removeClass("ls-thumb-active").stop().fadeTo(750, N.o.tnInactiveOpacity / 100)
                            }), $.find(".ls-thumbnail-slide a.ls-thumb-" + e).children().addClass("ls-thumb-active").stop().fadeTo(750, N.o.tnActiveOpacity / 100)
                        },
                        scroll: function() {
                            var e;
                            $.find(".ls-thumbnail-slide-container").hasClass("ls-thumbnail-slide-hover") || (e = !!$.find(".ls-thumb-active").length && $.find(".ls-thumb-active").parent()) && (e = e.position().left + e.width() / 2, e = 0 < (e = (e = $.find(".ls-thumbnail-slide-container").width() / 2 - e) < $.find(".ls-thumbnail-slide-container").width() - $.find(".ls-thumbnail-slide").width() ? $.find(".ls-thumbnail-slide-container").width() - $.find(".ls-thumbnail-slide").width() : e) ? 0 : e, $.find(".ls-thumbnail-slide").animate({
                                marginLeft: e
                            }, 600))
                        },
                        resize: function() {
                            N.gui.navigation.bottom.switchHelper("on");
                            var e = -1 == N.slider.initial.width.indexOf("%") ? parseInt(N.slider.initial.originalWidth) : $.width(),
                                t = $.find(".ls-thumbnail"),
                                e = -1 == N.o.tnContainerWidth.indexOf("%") ? parseInt(N.o.tnContainerWidth) : parseInt(e / 100 * parseInt(N.o.tnContainerWidth));
                            $.find(".ls-thumbnail-slide a").css({
                                width: parseInt(N.o.tnWidth * N.resize.ratio),
                                height: parseInt(N.o.tnHeight * N.resize.ratio)
                            }), $.find(".ls-thumbnail-slide a:last").css({
                                margin: 0
                            }), $.find(".ls-thumbnail-slide").css({
                                height: parseInt(N.o.tnHeight * N.resize.ratio)
                            }), t.css({
                                width: e * Math.floor(100 * N.resize.ratio) / 100
                            }), t.width() > $.find(".ls-thumbnail-slide").width() && t.css({
                                width: $.find(".ls-thumbnail-slide").width()
                            }), N.gui.navigation.bottom.switchHelper("off")
                        }
                    }
                }
            },
            media: {
                init: function() {
                    0 < N.media.properties.$allMediaLayers.length && X('<div class="ls-gui-element ls-media-unmute" aria-label="Unmute"><div class="ls-media-unmute-bg"></div><div class="ls-icon-muted"></div><div class="ls-icon-unmuted"></div></div>').on("click." + B, function(e) {
                        e.preventDefault(), $.layerSlider("unmute")
                    }).appendTo($)
                },
                showUnmute: function() {
                    $.find(".ls-media-unmute").addClass("ls-media-unmute-active")
                },
                hideUnmute: function() {
                    $.find(".ls-media-unmute").removeClass("ls-media-unmute-active")
                }
            },
            skin: {
                load: function() {
                    $.addClass("ls-" + N.o.skin);
                    var e, t = N.o.skinsPath + N.o.skin + "/skin.css",
                        i = X("head").length ? X("head") : X("body");
                    X('link[href="' + t + '"]').length ? (e = X('link[href="' + t + '"]'), N.gui.skin.isLoaded || (N.gui.skin.isLoaded = !0, N.timeouts.skinLoad1 = setTimeout(function() {
                        delete N.timeouts.skinLoad1, N.slider.init()
                    }, 150))) : e = document.createStyleSheet ? (document.createStyleSheet(t), X('link[href="' + t + '"]')) : X('<link rel="stylesheet" href="' + t + '" type="text/css" />').appendTo(i), e.on("load." + B, function() {
                        N.gui.skin.isLoaded || (N.gui.skin.isLoaded = !0, N.timeouts.skinLoad2 = setTimeout(function() {
                            delete N.timeouts.skinLoad2, N.slider.init()
                        }, 150))
                    }), X(window).on("load." + B, function() {
                        N.gui.skin.isLoaded || (N.gui.skin.isLoaded = !0, N.timeouts.skinLoad3 = setTimeout(function() {
                            delete N.timeouts.skinLoad3, N.slider.init()
                        }, 150))
                    }), N.timeouts.skinLoad4 = setTimeout(function() {
                        N.gui.skin.isLoaded || (N.gui.skin.isLoaded = !0, delete N.timeouts.skinLoad4, N.slider.init())
                    }, 1e3)
                }
            },
            shadow: {
                init: function() {
                    this.set(), this.resize()
                },
                set: function() {
                    this.$element = X('<div class="ls-gui-element ls-shadow"></div>').appendTo($), "block" != this.$element.css("display") || this.$element.find("img").length || (this.show = function() {
                        N.gui.shadow.$element.css({
                            display: "none",
                            visibility: "visible"
                        }).fadeIn(500, function() {
                            N.gui.shadow.show = !1
                        })
                    }, this.image = X("<img>").attr("src", N.o.skinsPath + N.o.skin + "/shadow.png").appendTo(this.$element), this.btmMod = "number" == typeof parseInt($.css("padding-bottom")) ? parseInt($.css("padding-bottom")) : 0)
                },
                resize: function() {
                    this.image && (0 < this.image.height() ? 0 < this.btmMod ? this.$element.css({
                        height: this.image.height() / 2
                    }) : this.$element.css({
                        height: this.image.height(),
                        marginTop: -this.image.height() / 2
                    }) : N.timeouts.resizeShadow = setTimeout(function() {
                        delete N.timeouts.resizeShadow, N.gui.shadow.resize()
                    }, 50))
                }
            },
            timers: {
                init: function() {
                    N.o.showBarTimer && this.bar.create(), N.o.showCircleTimer && this.circle.create();
                    var e = !1;
                    (e = N.o.showSlideBarTimer ? X("<div>").insertAfter($) : X('[data-slidebar-for="' + $.attr("id") + '"], [data-slidebar-for="' + B + '"]')).length && (e.addClass("ls-gui-element"), this.slidebar.create(e))
                },
                bar: {
                    create: function() {
                        this.$element = X("<div>").addClass("ls-gui-element ls-bar-timer").appendTo($)
                    }
                },
                circle: {
                    create: function() {
                        this.$element = X("<div>").addClass("ls-gui-element ls-circle-timer").appendTo($), this.$element.append(X('<div class="ls-ct-center"></div><div class="ls-ct-left"><div class="ls-ct-rotate"><div class="ls-ct-hider"><div class="ls-ct-half"></div></div></div></div><div class="ls-ct-right"><div class="ls-ct-rotate"><div class="ls-ct-hider"><div class="ls-ct-half"></div></div></div></div>')), this.$element.data("original", {
                            opacity: this.$element.css("opacity")
                        })
                    }
                },
                slidebar: {
                    $containerElement: [],
                    $element: [],
                    $progressBarElement: [],
                    $sliderContainerElement: [],
                    $sliderElement: [],
                    elementWidth: [],
                    containerElementWidth: [],
                    sliderContainerElementWidth: [],
                    state: {},
                    create: function(e) {
                        function i(e, t) {
                            (s = (e.pageX || N.device.touchX || 0) - o.$element[t].offset().left - o.sliderContainerElementWidth[t] / 2) < 0 && (s = 0), s > o.containerElementWidth[t] - o.sliderContainerElementWidth[t] && (s = "calc( 100% - " + N.gui.timers.slidebar.sliderContainerElementWidth[t] + "px )"), o.$sliderContainerElement[t].css({
                                left: s
                            }), N.transitions._slideTimeline && N.transitions._slideTimeline.progress("string" == typeof s ? N.transitions.layers.timeline.progress : s / (o.containerElementWidth[t] - o.sliderContainerElementWidth[t]) * N.transitions.layers.timeline.progress)
                        }

                        function a(e) {
                            "dragging" == N.gui.timers.slidebar.state && (N.transitions._slideTimeline && N.transitions.layers.timeline.state.finished && N.transitions._slideTimeline.progress() !== N.transitions.layers.timeline.progress && N.functions.setStates(N.transitions.layers.timeline, {
                                finished: !1
                            }), X(document).off("mousemove." + B), X("body").prop("unselectable", !1).removeClass("ls-unselectable"), N.o.pauseLayers && !N.slideshow.state.running || N.slider.isPaused || !N.transitions._slideTimeline || N.o.playByScroll || (!0 === N.transitions.layers.timeline.state.started ? N.transitions.layers.timeline.resume() : N.transitions.layers.timeline.play()), N.gui.timers.slidebar.state = !1)
                        }
                        var s, r = X(document),
                            o = this;
                        X.each(e, function(t, e) {
                            o.$containerElement[t] = X(e).addClass("ls-slidebar-container " + B), o.$element[t] = X("<div>").addClass("ls-slidebar").appendTo(o.$containerElement[t]), o.$progressBarElement[t] = X("<div>").addClass("ls-progressbar").appendTo(o.$element[t]), o.$sliderContainerElement[t] = X("<div>").addClass("ls-slidebar-slider-container").appendTo(o.$containerElement[t]), o.$sliderElement[t] = X("<div>").addClass("ls-slidebar-slider").appendTo(o.$sliderContainerElement[t]), o.sliderContainerElementWidth[t] = o.$sliderContainerElement[t].width(), o.$sliderContainerElement[t].css({
                                marginTop: -o.$sliderElement[t].outerHeight() / 2
                            }), o.$containerElement[t].on("touchmove." + B, function(e) {
                                i(e, t)
                            }), o.$containerElement[t].on("touchend." + B, function(e) {
                                a()
                            }), o.$containerElement[t].on("mousedown." + B + " touchstart." + B, function(e) {
                                N.transitions.layers.timeline.pause(0), X("body").prop("unselectable", !0).addClass("ls-unselectable"), X(document).on("mousemove." + B, function(e) {
                                    i(e, t)
                                }), i(e, t), N.gui.timers.slidebar.state = "dragging"
                            }), r = r.add(o.$sliderElement[t])
                        }), X("body").on("mouseup." + B, function(e) {
                            a()
                        })
                    }
                }
            },
            loadingIndicator: {
                init: function() {
                    this.$element = X("<div>").css({
                        display: "none"
                    }).addClass("ls-gui-element ls-loading-container").appendTo($), X("<div>").addClass("ls-loading-indicator").appendTo(this.$element)
                },
                show: function() {
                    this.$element.delay(400).fadeIn(300)
                },
                hide: function() {
                    this.$element.stop(!0, !0).fadeOut(300)
                }
            }
        }, N.navigation = {
            direction: "next",
            init: function() {
                1 < N.slides.count && (this.set.keyboard(), this.set.touch())
            },
            set: {
                keyboard: function() {
                    N.o.keybNav && X("body").on("keydown." + B, function(e) {
                        N.slider.isAnimating || N.slider.isPreloading || (37 == e.which ? N.navigation.prev() : 39 == e.which && N.navigation.next())
                    })
                },
                touch: function() {
                    "ontouchstart" in window && N.o.touchNav && (N.slider.$innerWrapper.on("touchstart." + B, function(e) {
                        e = e.touches || e.originalEvent.touches;
                        1 == e.length && (N.device.touchStartX = N.device.touchEndX = e[0].clientX)
                    }), N.slider.$innerWrapper.on("touchmove." + B, function(e) {
                        var t = e.touches || e.originalEvent.touches;
                        1 == t.length && (N.device.touchEndX = t[0].clientX), 45 < Math.abs(N.device.touchStartX - N.device.touchEndX) && e.preventDefault()
                    }), N.slider.$innerWrapper.on("touchend." + B, function(e) {
                        45 < Math.abs(N.device.touchStartX - N.device.touchEndX) && (0 < N.device.touchStartX - N.device.touchEndX ? $.layerSlider("touchNext") : $.layerSlider("touchPrev"))
                    }))
                }
            },
            prev: function() {
                (!N.slider.isPopup || N.slider.isPopup && N.slider.state.popupIsVisible) && (this.direction = "prev", this.forceDirection = "prev", N.slideshow.set.prevNext("prev"))
            },
            next: function() {
                (!N.slider.isPopup || N.slider.isPopup && N.slider.state.popupIsVisible) && (this.direction = "next", this.forceDirection = "next", N.slideshow.set.prevNext("next"))
            },
            start: function() {
                N.functions.setStates(N.slideshow, {
                    running: !0,
                    paused: !1
                }), !0 === N.slideshow.state.pausedByLastCycle && N.functions.setStates(N.slideshow, {
                    pausedByLastCycle: !1
                }), N.gui.navigation.bottom.setStartStop("start"), N.slideshow.state.pausedByHover || 1 !== N.transitions._slideTimeline.timeScale() && N.transitions.layers.timeline.resume(), N.slideshow.start()
            },
            stop: function() {
                N.gui.navigation.bottom.setStartStop("stop"), N.o.pauseLayers && N.transitions.layers.timeline.pause(), N.slideshow.stop()
            }
        }, N.preload = {
            init: function() {
                N.slider.$hiddenWrapper.find(".ls-slide img").each(function() {
                    var e, t = X(this),
                        i = t[0],
                        a = {};
                    t.is(".ls-layer, .ls-bg") && (i.getAttribute("width") && (a.width = i.getAttribute("width")), i.getAttribute("height") && (a.height = i.getAttribute("height")), i.sizes && (a.sizes = i.sizes), N.o.useSrcset && (t.data("srcset") || i.srcset) && (a.srcSet = t.data("srcset") || i.srcset, a.curSrc = i.currentSrc, e = a.srcSet.split(",").map(function(e) {
                        return parseInt(X.trim(e).split(" ")[1])
                    }), a.maxWidth = Math.max.apply(null, e)), t.removeAttr("width height sizes srcset loading"), X.isEmptyObject(a) || (t.data(N.defaults.init.dataKey).attributes = a)), t.data("lazy-src") ? t.data("src", t.data("lazy-src")) : t.attr("data-lazy-src") ? t.data("src", t.attr("data-lazy-src")) : t.data("src") ? a.curSrc && t.data("src", a.curSrc) : t.data("src", a.curSrc || i.src), t.attr("src", "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")
                })
            },
            imagesOfSlide: function(e, t) {
                var i, a, s;
                !0 !== N.slides[e].wrapped ? (this.slideIndex = e, t ? (this.onCompleteCallback = t, N.functions.setStates(N.slider, {
                    preloadingImages: !0
                }), N.gui.loadingIndicator.show()) : this.onCompleteCallback = !1, N.slider.canShow && $.css({
                    visibility: "visible"
                }), this.preImages = [], i = this, N.slider.$hiddenWrapper.find(".ls-slide:eq(" + (i.slideIndex - 1) + ") *").each(function() {
                    a = X(this), s = this;
                    var e, t = a.data(N.defaults.init.dataKey);
                    a.is("img") ? (a.data("src") && a.attr("src", a.data("src")), t && t.attributes && t.attributes.srcSet && N.o.useSrcset && (s.srcset = t.attributes.srcSet), e = s.src, (t = !!(t && t.attributes && t.attributes.curSrc) && t.attributes.curSrc) && e !== t && a.is(".ls-bg") && (e = t, N.slides[i.slideIndex].data.$background.attr("src", e)), N.preload.preImages.push([e, a])) : "none" !== a.css("background-image") && -1 !== a.css("background-image").indexOf("url") && N.preload.preImages.push([a.css("background-image").match(/url\((.*)\)/)[1].replace(/"/gi, ""), a])
                }), N.transitions.firstSlide && N.o.globalBGImage && N.preload.preImages.push([N.o.globalBGImage, X()]), this.thumbnailsAreLoaded || this.thumbnails(), 0 === this.preImages.length ? this.onComplete() : this.start()) : N.slider.shouldResize && t && (N.resize.setLayers(N.layers.get("next, bg")), N.resize.layers(t))
            },
            thumbnails: function() {
                for (var e = N.slider.thumbnails.filter(function(e, t, i) {
                        return i.indexOf(e) == t
                    }), t = e.length, i = 0; i < t; i++)(new Image).src = e[i];
                this.thumbnailsAreLoaded = !0
            },
            start: function() {
                N.debugMode && (N.debug.add("group", "preload"), N.debug.add("log", "preload.info", this.slideIndex)), this.preloadedImagesCount = 0;
                for (var e, t = this, i = function() {
                        ++t.preloadedImagesCount == t.preImages.length && (N.debugMode && N.debug.groupEnd(), t.onComplete())
                    }, a = function() {
                        N.debugMode && (e = this.src.substring(this.src.lastIndexOf("/") + 1, this.src.length), N.debug.add("log", "preload.success", e)), this.originalLayer.data("preloadedWidth", this.width), this.originalLayer.data("preloadedHeight", this.height), i()
                    }, s = function() {
                        N.debugMode && (e = this.src.substring(this.src.lastIndexOf("/") + 1, this.src.length), N.debug.add("warn", "preload.fail", e)), i()
                    }, r = 0; r < this.preImages.length; r++) {
                    var o = new Image;
                    o.addEventListener("error", s, !1), o.addEventListener("load", a, !1), o.src = this.preImages[r][0], o.originalLayer = this.preImages[r][1]
                }
            },
            onComplete: function() {
                var s = this;
                this.onCompleteCallback ? (N.layers.wrap(this.slideIndex), function e() {
                    var t, i, a;
                    0 !== N.slides[s.slideIndex].$layers.length ? N.timeouts.waitForWrap = setTimeout(e, 100) : (delete N.timeouts.waitForWrap, N.functions.setStates(N.transitions.layers.parallax, {
                        ready: !0
                    }), X(".ls-thumbnail-wrapper, .ls-nav-next, .ls-nav-prev, .ls-bottom-nav-wrapper").css({
                        visibility: "visible"
                    }), N.slides[s.slideIndex].wrapped = !0, t = !(!window._layerSlider.globals.youTubeIsReady && N.layers.get("next,in,youtube,bgvideo").length), i = !(!window._layerSlider.globals.vimeoIsReady && N.layers.get("next,in,vimeo,bgvideo").length), a = function() {
                        N.gui.loadingIndicator.hide(), N.slider.shouldResize ? (N.resize.setLayers(N.layers.get("next, bg")), N.resize.layers(s.onCompleteCallback)) : s.onCompleteCallback()
                    }, t && i ? a() : N.intervals.waitForJSApisLoaded = setInterval(function() {
                        (t || window._layerSlider.globals.youTubeIsReady) && (i || window._layerSlider.globals.vimeoIsReady) && (clearInterval(N.intervals.waitForJSApisLoaded), delete N.intervals.waitForJSApisLoaded, a())
                    }, 50))
                }()) : N.layers.wrap(this.slideIndex, !0), N.functions.setStates(N.slider, {
                    preloadingImages: !1
                })
            }
        }, N.resize = {
            setLayers: function(e) {
                this.$responsiveLayers = e.add(N.layers.get("active")), N.slides.next.data.$backgroundVideo.length && (this.$responsiveLayers = this.$responsiveLayers.add(N.slides.next.data.$backgroundVideo))
            },
            all: function() {
                if (!document.body.contains(P)) return !1;
                N.api.hasEvent("sliderWillResize") && $.triggerHandler("sliderWillResize", N.api.eventData()), this.slider(), this.navigation(), this.layers(), this.yourLogo(), this.shadow(), this.timers(), N.transitions.layers.timeline.shouldRestart && N.o.allowRestartOnResize && (N.functions.resetSlideTimelines(), N.transitions.layers.timeline.create(!0)), N.api.hasEvent("sliderDidResize") && $.triggerHandler("sliderDidResize", N.api.eventData())
            },
            viewport: function() {
                X(window).scrollTop(Math.round(N.slider.offsetTop) - (N.device.viewportHeight - N.slider.height) / 2)
            },
            slider: function() {
                if (!document.body.contains(P)) return !1;
                var e, t = N.slider.$parentWithNumericWidthValue && 0 < N.slider.$parentWithNumericWidthValue.width() ? N.slider.$parentWithNumericWidthValue : N.functions.getSliderClosestParentElementWidthNumericValueOfProperty("width"),
                    i = N.slider.initial,
                    a = N.slider.$parentWithNumericWidthValuePercent ? t.width() / 100 * N.slider.$parentWithNumericWidthValuePercent : t.width(),
                    s = i.type,
                    r = 0 !== i.maxWidth ? i.maxWidth : a,
                    o = "auto" === i.marginLeft ? 0 : i.marginLeft,
                    n = "auto" === i.marginRight ? 0 : i.marginRight;
                switch (N.slider.state.inFullscreen ? $[0].style.maxWidth = "" : 0 !== i.maxWidth && ($[0].style.maxWidth = i.maxWidth + "px"), -1 !== r.indexOf("%") && (r = a / 100 * parseInt(r)), r < (a -= o + n) && 0 <= r && (a = r), N.o.fitScreenWidth && ("fullwidth" === s || "fullsize" === s && "fitheight" !== N.o.fullSizeMode && "fitwidth" !== N.o.fullSizeMode) && (o = t.offset().left, n = parseInt(t.css("padding-left")) || 0, r = parseInt(t.css("border-left-width")) || 0, $[0].style.maxWidth = "none", $[0].style.marginLeft = -(o + n + r) + "px", a = N.device.viewportWidth || X(window).width()), a -= i.skinWidth, N.slider.state.inFullscreen && (a = N.device.width), s) {
                    case "responsive":
                        e = (N.slider.state.inFullscreen ? (N.device.ratio > i.ratio ? this.ratio = N.device.height / i.height : this.ratio = N.device.width / i.width, a = Math.round(i.width * this.ratio)) : this.ratio = a / i.width, Math.round(i.height * this.ratio));
                        break;
                    case "fullwidth":
                        e = a < N.o.responsiveUnder ? (this.ratio = a / N.o.responsiveUnder, Math.round(i.height * this.ratio)) : N.slider.state.inFullscreen ? N.device.ratio > i.layersWidth / i.height ? (this.ratio = N.device.height / i.height, N.device.height) : (this.ratio = N.device.width / i.layersWidth, i.height * this.ratio) : (this.ratio = 1, i.height);
                        break;
                    case "fullsize":
                        switch (N.o.fullSizeMode.toLowerCase()) {
                            case "normal":
                                e = N.device.viewportHeight - i.skinHeight;
                                break;
                            case "hero":
                                e = N.device.viewportHeight - i.skinHeight, N.slider.state.inFullscreen || (e -= N.slider.heroTop || N.slider.offsetTop);
                                break;
                            case "fitheight":
                                a = t.width() - i.skinWidth, e = t.height() - i.skinHeight;
                                break;
                            case "fitwidth":
                                a = t.width() - i.skinWidth, e = N.device.viewportHeight - i.skinHeight
                        }
                        a / e < i.ratio ? this.ratio = a / i.layersWidth : this.ratio = e / i.layersHeight;
                        break;
                    case "fixed":
                    case "fixedsize":
                        this.ratio = 1, a = i.width, e = i.height, N.o.maxRatio = 1, P.style.maxWidth = "none"
                }
                this.ratio = N.o.maxRatio && 0 < N.o.maxRatio && this.ratio > N.o.maxRatio ? N.o.maxRatio : this.ratio, P.style.width = a + "px", P.style.height = e + "px", N.slider.width = a, N.slider.height = e;
                s = $.offset();
                N.slider.offsetX = s.left, N.slider.offsetY = s.top, N.device.isMobile ? N.device.viewportWidth < 1025 && 767 < N.device.viewportWidth ? $.removeClass("ls-device-is-phone").addClass("ls-device-is-tablet") : N.device.viewportWidth < 768 && $.removeClass("ls-device-is-tablet").addClass("ls-device-is-phone") : $.removeClass("ls-device-is-phone ls-device-is-tablet").addClass("ls-device-is-desktop")
            },
            borderRadius: function(e) {
                for (var t = ("" + e).split(" "), i = "", a = N.o.maxRatio && 0 < N.o.maxRatio && this.ratio > N.o.maxRatio ? N.o.maxRatio : this.ratio, s = 0, r = t.length; s < r; s++) - 1 === t[s].indexOf("%") ? i += Math.ceil(parseInt(t[s]) * a) + "px " : i += t[s] + " ";
                return X.trim(i)
            },
            layers: function(e) {
                if (this.$responsiveLayers) {
                    N.debugMode && N.debug.add("group", "resize");
                    for (var t = this.ratio, i = this.$responsiveLayers, a = N.slider.initial, s = N.slider.width, r = N.slider.height, o = s / r, n = [], l = [], d = [], u = [], p = 0, c = 0, h = "responsive" === a.type && -1 !== N.o.maxRatio ? a.width : a.layersWidth, m = "responsive" === a.type && -1 !== N.o.maxRatio ? a.height : a.layersHeight, c = "fullsize" === a.type || "fullwidth" === a.type || "responsive" === a.type ? (p = 0 < h ? (s - h * t) / 2 : 0, 0 < m ? (r - m * t) / 2 : 0) : (p = p < 0 ? 0 : p, c < 0 ? 0 : c), f = 0, g = i.length; f < g; f++) {
                        var v = X(i[f]),
                            y = (i[f], v.data(N.defaults.init.dataKey)),
                            b = y.original,
                            S = "fixed" === y.settings.position,
                            w = S ? 0 : p,
                            x = S ? 0 : c,
                            T = {
                                width: S && 0 !== b.percentWidth ? s / 100 * b.percentWidth : b.width * t,
                                height: S && 0 !== b.percentHeight ? r / 100 * b.percentHeight : b.height * t,
                                paddingLeft: b.paddingLeft * t,
                                paddingTop: b.paddingTop * t,
                                paddingRight: b.paddingRight * t,
                                paddingBottom: b.paddingBottom * t,
                                borderLeftWidth: Math.ceil(b.borderLeftWidth * t),
                                borderTopWidth: Math.ceil(b.borderTopWidth * t),
                                borderRightWidth: Math.ceil(b.borderRightWidth * t),
                                borderBottomWidth: Math.ceil(b.borderBottomWidth * t),
                                borderRadius: this.borderRadius(b.borderRadius)
                            },
                            C = {
                                marginLeft: b.marginLeft * t,
                                marginTop: b.marginTop * t
                            },
                            k = {},
                            v = {
                                borderRadius: T.borderRadius
                            };
                        if (S && (b.percentHeight || b.percentWidth) && y.is.imageLayer && (b.percentHeight && !b.percentWidth && (T.width = b.width * (T.height / b.height)), b.percentWidth && !b.percentHeight && (T.height = b.height * (T.width / b.width))), ("number" == typeof b.width && b.width < 0 || "auto" == b.width) && N.debugMode && N.debug.add("warn", "resize.width", [f + 1, b.width]), ("number" == typeof b.height && b.height < 0 || "auto" == b.height) && N.debugMode && N.debug.add("warn", "resize.height", [f + 1, b.height]), y.is.textLayer && (T.fontSize = b.fontSize * t, N.device.isMobile && T.fontSize < y.styleSettings.minmobilefontsize ? T.fontSize = y.styleSettings.minmobilefontsize : T.fontSize < y.styleSettings.minfontsize && (T.fontSize = y.styleSettings.minfontsize), I = T.fontSize / b.fontSize, T.fontSize += "px", "normal" !== b.lineHeight && (T.lineHeight = parseFloat(b.lineHeight) * I + "px"), "normal" !== b.letterSpacing && (T.letterSpacing = parseFloat(b.letterSpacing) * I + "px")), y.is.slideBackground || y.is.backgroundVideo)
                            if (y.is.slideBackground) {
                                var I = N.slides[y.is.onSlide].data.backgroundSize;
                                switch ((void 0 !== I && "inherit" !== I ? I : N.o.slideBGSize).replace("100% 100%", "stretch")) {
                                    case "auto":
                                        break;
                                    case "cover":
                                        b.ratio < o ? (T.width = s, T.height = T.width / b.ratio) : (T.height = r, T.width = T.height * b.ratio);
                                        break;
                                    case "contain":
                                        b.ratio < o ? (T.height = r, T.width = T.height * b.ratio) : (T.width = s, T.height = T.width / b.ratio);
                                        break;
                                    case "stretch":
                                        T.width = s, T.height = r
                                }
                                T.width = Math.round(T.width), T.height = Math.round(T.height);
                                var O, I = N.slides[y.is.onSlide].data.backgroundPosition;
                                switch ((O = (void 0 !== I ? I : N.o.slideBGPosition).split(" "))[0]) {
                                    case "left":
                                        T.x = 0;
                                        break;
                                    case "center":
                                        T.x = (N.slider.width - T.width) / 2;
                                        break;
                                    case "right":
                                        T.x = N.slider.width - T.width;
                                        break;
                                    default:
                                        -1 !== O[0].indexOf("%") ? T.x = (N.slider.width - T.width) / 100 * parseInt(O[0]) : T.x = parseInt(O[0])
                                }
                                if (void 0 !== O[1]) switch (O[1]) {
                                    case "top":
                                        T.y = 0;
                                        break;
                                    case "center":
                                        T.y = (N.slider.height - T.height) / 2;
                                        break;
                                    case "bottom":
                                        T.y = N.slider.height - T.height;
                                        break;
                                    default:
                                        -1 !== O[1].indexOf("%") ? T.y = (N.slider.height - T.height) / 100 * parseInt(O[1]) : T.y = parseInt(O[1])
                                }
                                T.transform = "translateX(" + T.x + "px) translateY(" + T.y + "px)", T["-ms-transform"] = "translateX(" + T.x + "px) translateY(" + T.y + "px)", T["-webkit-transform"] = "translateX(" + T.x + "px) translateY(" + T.y + "px)"
                            } else y.is.backgroundVideo && (b.ratio < o ? (T.width = s, T.height = T.width / b.ratio) : (T.height = r, T.width = T.height * b.ratio), T.x = (N.slider.width - T.width) / 2, T.y = (N.slider.height - T.height) / 2, T.width = Math.round(T.width), T.height = Math.round(T.height), T.transform = "translateX(" + T.x + "px) translateY(" + T.y + "px)", T["-ms-transform"] = "translateX(" + T.x + "px) translateY(" + T.y + "px)", T["-webkit-transform"] = "translateX(" + T.x + "px) translateY(" + T.y + "px)");
                        else {
                            if (y.mediaSettings.fullsize) switch (y.mediaSettings.fillmode) {
                                default:
                                    case "cover":
                                    b.ratio < o ? (T.width = s, T.height = T.width / b.ratio) : (T.height = r, T.width = T.height * b.ratio);
                                break;
                                case "contain":
                                        b.ratio > o ? (T.width = s, T.height = T.width / b.ratio) : (T.height = r, T.width = T.height * b.ratio)
                            }
                            T.outerWidth = T.width + T.paddingLeft + T.paddingRight + T.borderLeftWidth + T.borderRightWidth, T.outerHeight = T.height + T.paddingTop + T.paddingBottom + T.borderTopWidth + T.borderBottomWidth, C.width = k.width = T.outerWidth, C.height = k.height = T.outerHeight, -1 != b.left.indexOf("%") ? "100%" === b.left ? T.left = 0 === w ? N.slider.width / 100 * parseFloat(b.left) - T.outerWidth : w + h * t / 100 * parseFloat(b.left) - T.outerWidth : "0%" === b.left ? T.left = 0 === w ? 0 : w : T.left = 0 === w ? N.slider.width / 100 * parseFloat(b.left) - T.outerWidth / 2 : w + h * t / 100 * parseFloat(b.left) - T.outerWidth / 2 : T.left = w + parseFloat(b.left) * t, C.left = T.left, -1 != b.top.indexOf("%") ? "100%" === b.top ? T.top = 0 === x ? N.slider.height / 100 * parseFloat(b.top) - T.outerHeight : x + m * t / 100 * parseFloat(b.top) - T.outerHeight : "0%" === b.top ? T.top = 0 === x ? 0 : x + 0 : T.top = 0 === x ? N.slider.height / 100 * parseFloat(b.top) - T.outerHeight / 2 : x + m * t / 100 * parseFloat(b.top) - T.outerHeight / 2 : T.top = x + parseFloat(b.top) * t, C.top = T.top
                        }
                        y.responsive = T, n[f] = T, y.is.slideBackground || y.is.backgroundVideo || (y.settings.wrapperData.responsive = C, l[f] = C, d[f] = k, u[f] = v)
                    }
                    for (var L = 0, P = n.length; L < P; L++) {
                        var $ = X(i[L]),
                            B = $.data(N.defaults.init.dataKey);
                        $.css(n[L]), B.is.slideBackground || B.is.backgroundVideo ? (B.is.slideBackground || B.is.backgroundVideo) && (B.elements.$bgOuterWrapper.css({
                            width: N.slider.width,
                            height: N.slider.height
                        }), B.elements.$outerWrapper.css({
                            width: N.slider.width,
                            height: N.slider.height
                        })) : ($.find(".split-item").css(u[L]), this.wrappers($, B, l[L], d[L]))
                    }
                    void 0 !== e && e(), N.debugMode && N.debug.groupEnd("resize")
                }
            },
            wrappers: function(e, t, i, a) {
                i && t.elements.$wrapper.css(i), a && t.loop.enabled && t.elements.$loopWrapper.css(a), H.TweenMax.set(t.elements.$wrapper[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.layer * N.resize.ratio
                    }
                }), t.loop.enabled && H.TweenMax.set(t.elements.$loopWrapper[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.loop * N.resize.ratio
                    }
                }), t.hover.enabled && H.TweenMax.set(e[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.hover * N.resize.ratio
                    }
                }), t.textIn.nodes && H.TweenMax.set(t.textIn.nodes, {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.text * N.resize.ratio
                    }
                }), t.textOut.nodes && H.TweenMax.set(t.textOut.nodes, {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.text * N.resize.ratio
                    }
                }), t.parallax.enabled && H.TweenMax.set(t.elements.$parallaxWrapper[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.parallax * N.resize.ratio
                    }
                })
            },
            transformProperties: function(e, t, i, a) {
                if ("object" == typeof i.x) {
                    for (var s = [], r = 0; r < i.x.length; r++) "string" == typeof i.x[r] ? s[r] = this.getXY(e, i.x[r], "Width") : s[r] = i.x[r] * N.resize.ratio;
                    t.cycle.x = s
                } else "string" == typeof i.x ? t.x = this.getXY(e, i.x, "Width") : void 0 !== i.x && (t.x = i.x * N.resize.ratio);
                if ("object" == typeof i.y) {
                    for (var o = [], n = 0; n < i.y.length; n++) "string" == typeof i.y[n] ? o[n] = this.getXY(e, i.y[n], "Height") : o[n] = i.y[n] * N.resize.ratio;
                    t.cycle.y = o
                } else "string" == typeof i.y ? t.y = this.getXY(e, i.y, "Height") : void 0 !== i.y && (t.y = i.y * N.resize.ratio);
                if (a && (t = a), "object" == typeof i.transformOrigin) {
                    for (var l = [], d = 0; d < i.transformOrigin.length; d++) l[d] = N.functions.convert.transformOrigin(i.transformOrigin[d], e);
                    t.cycle.transformOrigin = l
                } else "string" == typeof i.transformOrigin && (t.transformOrigin = N.functions.convert.transformOrigin(i.transformOrigin, e))
            },
            styleProperties: function(e, t) {
                void 0 !== t.width && (X.isNumeric(t.width) ? e.width = parseInt(t.width) * N.resize.ratio : "string" == typeof t.width && -1 !== t.width.indexOf("%") && (e.width = N.slider.width / 100 * parseInt(t.width))), void 0 !== t.height && (X.isNumeric(t.height) ? e.height = parseInt(t.height) * N.resize.ratio : "string" == typeof t.height && -1 !== t.height.indexOf("%") && (e.height = N.slider.height / 100 * parseInt(t.height))), t.borderRadius && (e.borderRadius = N.resize.borderRadius(t.borderRadius))
            },
            clip: function(e, t, i) {
                t = X.trim(t.replace("rect(", "").replace(")", ""));
                for (var a, e = e.data(N.defaults.init.dataKey).responsive, s = Math.ceil(e.outerWidth), r = Math.ceil(e.outerHeight), o = -1 === t.indexOf(",") ? t.split(" ") : t.split(","), n = "", l = 0; l < o.length; l++)
                    if (-1 !== o[l].indexOf("%")) switch (l) {
                        case 0:
                            n += parseInt(r / 100 * parseInt(o[l]) * 100) / 100 + "px ";
                            break;
                        case 1:
                            n += i ? parseInt(100 * (s - s / 100 * parseInt(o[l]))) / 100 + "px " : parseInt(s / 100 * parseInt(o[l]) * 100) / 100 + "px ";
                            break;
                        case 2:
                            n += i ? parseInt(100 * (r - r / 100 * parseInt(o[l]))) / 100 + "px " : parseInt(r / 100 * parseInt(o[l]) * 100) / 100 + "px ";
                            break;
                        case 3:
                            n += parseInt(s / 100 * parseInt(o[l]) * 100) / 100 + "px"
                    } else switch (a = parseInt(o[l]) * N.resize.ratio, l) {
                        case 0:
                            n += a + "px ";
                            break;
                        case 1:
                            n += i ? s - a + "px " : a + "px ";
                            break;
                        case 2:
                            n += i ? r - a + "px " : a + "px ";
                            break;
                        case 3:
                            n += a + "px"
                    }
                    return "rect(" + n + ")"
            },
            getXY: function(e, t, i) {
                var a = 0,
                    e = e.data(N.defaults.init.dataKey),
                    s = e.original,
                    r = e.responsive,
                    o = e.settings.wrapperData.responsive;
                if (s && r && o) switch (t) {
                    case "left":
                        a = -1 == s.left.indexOf("%") || "100%" === s.left ? -r.left - r.outerWidth - o.marginLeft : -parseInt(s.left) / 100 * N.slider.width - r.outerWidth / 2 - o.marginLeft;
                        break;
                    case "right":
                        a = -1 == s.left.indexOf("%") || "100%" === s.left ? N.slider.width - r.left - o.marginLeft : (1 - parseInt(s.left) / 100) * N.slider.width + r.outerWidth / 2 - o.marginLeft;
                        break;
                    case "top":
                        a = -1 == s.top.indexOf("%") || "100%" === s.top ? -r.top - r.outerHeight - o.marginTop : -parseInt(s.top) / 100 * N.slider.height - r.outerHeight / 2 - o.marginTop;
                        break;
                    case "bottom":
                        a = -1 == s.top.indexOf("%") || "100%" === s.top ? N.slider.height - r.top - o.marginTop : (1 - parseInt(s.top) / 100) * N.slider.height + r.outerHeight / 2 - o.marginTop;
                        break;
                    case "width":
                        a = r.outerWidth;
                        break;
                    case "-width":
                        a = -r.outerWidth;
                        break;
                    case "height":
                        a = r.outerHeight;
                        break;
                    case "-height":
                        a = -r.outerHeight;
                        break;
                    default:
                        a = -1 !== t.indexOf("%") ? r["outer" + i] / 100 * parseInt(t) : -1 !== t.indexOf("sw") ? parseInt(t.split("sw")[0]) / 100 * N.slider.width : -1 !== t.indexOf("sh") ? parseInt(t.split("sh")[0]) / 100 * N.slider.height : -1 !== t.indexOf("lw") ? r.outerWidth / 100 * parseInt(t.split("lw")[0]) : -1 !== t.indexOf("lh") ? r.outerHeight / 100 * parseInt(t.split("lh")[0]) : parseInt(t) * N.resize.ratio
                }
                return a
            },
            navigation: function() {
                "always" == N.o.thumbnailNavigation && N.gui.navigation.bottom.thumbnails.resize()
            },
            shadow: function() {
                N.gui.shadow.show && N.gui.shadow.show(), N.gui.shadow.$element && N.gui.shadow.resize()
            },
            yourLogo: function() {
                N.yourLogo.$element && N.yourLogo.resize()
            },
            timers: function() {
                if (0 < N.gui.timers.slidebar.$containerElement.length)
                    for (var e = 0, t = N.gui.timers.slidebar.$containerElement.length; e < t; e++) N.gui.timers.slidebar.containerElementWidth[e] = N.gui.timers.slidebar.$containerElement[e].width(), N.gui.timers.slidebar.elementWidth[e] = N.gui.timers.slidebar.$element[e].width()
            }
        }, N.transitions = {
            firstSlide: !0,
            start: function() {
                return !!document.body.contains(P) && (N.slider.isPopup && N.slider.state.popupIsWaitingForDelay ? !(N.slider.state.waitingForPopupTimer = !0) : (N.device.scroll.directionAtSlideTransitionStart = N.device.scroll.direction, "always" == N.o.thumbnailNavigation && (N.gui.navigation.bottom.thumbnails.change(), "ontouchstart" in window || N.gui.navigation.bottom.thumbnails.scroll()), this.layers.out.forced(), void this.slide.init()))
            },
            slide: {
                $wrapper: X(),
                init: function() {
                    var e, t, i;
                    N.functions.setStates(N.slider, {
                        animatingSlides: !0
                    }), N.transitions.layers.parallax.reset(), N.slider.$layersWrapper.children('.ls-parallax[data-ls-parallax="active"]').each(function() {
                        X(this).find(".ls-layer").data(N.defaults.init.dataKey).settings.slideOut === N.slides.current.index && X(this).attr("data-ls-parallax", "disbaled")
                    }), N.transitions.curSlide = N.slides.current, N.transitions.nextSlide = N.slides.next, N.transitions._slideTransition = new H.TimelineMax({
                        paused: !0,
                        onComplete: function() {
                            N.transitions.slide.onComplete()
                        }
                    }), N.transitions.firstSlide ? (void 0 !== N.transitions.nextSlide.data.$background && (e = (i = N.transitions.nextSlide.data.$background.data(N.defaults.init.dataKey)).kenBurns.zoom ? i.kenBurns.from.scale : 1, t = i.kenBurns.zoom ? i.kenBurns.from.rotation : 0, i = N.transitions.nextSlide.filter.from || "none", N.transitions._slideTransition.set(N.transitions.nextSlide.data.$background[0], {
                        "-webkit-filter": i,
                        filter: i
                    }, 0), N.transitions._slideTransition.fromTo(N.transitions.nextSlide.data.$background.closest(".ls-bg-wrap")[0], N.o.sliderFadeInDuration, {
                        autoCSS: !1,
                        css: {
                            scale: e,
                            rotation: t,
                            opacity: 0,
                            display: "block"
                        }
                    }, {
                        autoCSS: !1,
                        css: {
                            opacity: 1
                        }
                    }, 0)), this.start(!0)) : "undefined" == typeof layerSliderTransitions && "undefined" == typeof layerSliderCustomTransitions ? (this.start(!0), N.debugMode && N.debug.add("warn", "slideTransition.noSlideTransition", N.transitions.nextSlide.index)) : void 0 === N.transitions.curSlide.data.$background && void 0 === N.transitions.nextSlide.data.$background && "transparent" == N.transitions.curSlide.data.backgroundColor && "transparent" == N.transitions.nextSlide.data.backgroundColor ? this.start(!0) : ("x" === N.o.clipSlideTransition ? N.device.$overflowWrapper.addClass("ls-overflowx-hidden") : "y" === N.o.clipSlideTransition ? N.device.$overflowWrapper.addClass("ls-overflowy-hidden") : !0 === N.o.clipSlideTransition && N.device.$overflowWrapper.addClass("ls-overflow-hidden"), void 0 !== N.transitions.curSlide.data.$background && (e = N.transitions.curSlide.data.$background.closest(".ls-bg-wrap")[0]._gsTransform, (t = N.transitions.curSlide.data.$background.data(N.defaults.init.dataKey)).responsive.filter = N.transitions.curSlide.data.$background[0].style.filter, t.responsive.kbRotation = void 0 !== e ? " rotate(" + e.rotation + "deg)" : " rotate(0deg)", t.responsive.kbScale = void 0 !== e ? " scale(" + e.scaleX + ")" : " scale(1)"), N.transitions.slide.$wrapper = X("<div>").addClass("ls-slide-transition-wrapper").css({
                        width: N.slider.width,
                        height: N.slider.height
                    }), this.select.slideTransitionType())
                },
                select: {
                    slideTransitionType: function() {
                        N.transitions.slide.normal.select.transitionType()
                    }
                },
                start: function(e) {
                    var t, i = !(!N.slides.current.index || !N.slides.current.data.$backgroundVideo.length),
                        a = !(!N.slides.next.index || !N.slides.next.data.$backgroundVideo.length);
                    !N.slideshow.firstStart && N.api.hasEvent("slideChangeDidStart") && $.triggerHandler("slideChangeDidStart", N.api.eventData()), e || (void 0 !== N.transitions.nextSlide.data.transitionDuration && N.transitions._slideTransition.duration(N.transitions.nextSlide.data.transitionDuration), N.debugMode && N.debug.options.transitionDuration && N.transitions._slideTransition.duration(N.debug.options.transitionDuration), .25 < N.transitions.layers.timeline.timeScaleModifier && (r = (r = N.transitions._slideTransition.duration() / (.75 + N.transitions.layers.timeline.timeScaleModifier)) < .5 ? .5 : r, N.transitions._slideTransition.duration(r)));
                    var s = N.transitions._slideTransition.duration() / N.transitions._slideTransition.timeScale(),
                        e = s,
                        r = N.transitions.nextSlide.data.timeShift;
                    0 < r ? r = 0 : r < 0 && Math.abs(r) > s && (r = -s), N.transitions.nextSlide.data.calculatedTimeShift = r, r = N.transitions.firstSlide ? N.o.sliderFadeInDuration + .01 : (e + r) * N.transitions._slideTransition.timeScale(), (i || a) && N.transitions.media.changeBackgroundVideo(N.transitions.firstSlide, i && a), N.transitions._slideTransition.call(function() {
                        !N.slideshow.firstStart && N.api.hasEvent("slideChangeWillComplete") && $.triggerHandler("slideChangeWillComplete", N.api.eventData()), N.slideshow.should.change || N.transitions.layers.timeline.prepare(), N.media.functions.stop(!0), N.slides.set.slideIndexes(), N.o.hashChange && (document.location.hash = N.slides[N.slides.current.index].data.deeplink || "_no-deeplink-found_"), N.slideshow.start(), !N.transitions.firstSlide && N.slides.prev.index && N.slides.prev.data.$backgroundVideo.length && !N.slides.prev.data.$backgroundVideo.data(N.defaults.init.dataKey).mediaProperties.willBePaused && (N.slides.prev.data.$backgroundVideo.trigger("stopBackgroundVideo"), N.slides.prev.data.$backgroundVideo.data(N.defaults.init.dataKey).elements.$bgWrapper.css({
                            display: "none"
                        })), N.slideshow.should.change || N.slides.next.data.$backgroundVideo.length && N.slides.next.data.$backgroundVideo.data(N.defaults.init.dataKey).mediaProperties && !N.slides.next.data.$backgroundVideo.data(N.defaults.init.dataKey).mediaProperties.isPreloaded && (N.slides.next.data.$backgroundVideo.trigger("preloadBackgroundVideo"), N.slides.next.data.$backgroundVideo.data(N.defaults.init.dataKey).mediaProperties.isPreloaded = !0), N.transitions.firstSlide = !1
                    }, [], this, r), N.transitions._slideTransition.play(), N.slideshow.forceFastChange && N.transitions._slideTransition.progress(1), void 0 !== N.transitions.curSlide.data && void 0 !== N.transitions.curSlide.data.$background && (t = N.transitions.curSlide.data.$background.data(N.defaults.init.dataKey), N.timeouts.applyBG = setTimeout(function() {
                        delete N.timeouts.applyBG, N.transitions.curSlide.data.$background.closest(".ls-bg-wrap").hide(), t.kenBurns.zoom && H.TweenMax.set(N.transitions.curSlide.data.$background[0], {
                            autoCSS: !1,
                            css: t.kenBurns.from
                        })
                    }, 5))
                },
                onComplete: function() {
                    var e;
                    void 0 !== N.transitions.nextSlide.data.$background && N.transitions.nextSlide.data.$background.closest(".ls-bg-wrap").show(), "transparent" !== N.transitions.nextSlide.data.backgroundColor ? N.slider.$innerWrapper.css("background-color", N.transitions.nextSlide.data.backgroundColor) : N.slider.$innerWrapper.css("background-color", N.o.globalBGColor), N.o.leaveOverflow || N.device.$overflowWrapper.removeClass("ls-overflowx-hidden ls-overflowy-hidden ls-overflow-hidden"), this.$wrapper && (this.$wrapper.html("").remove(), this.$wrapper = !1), N.gui.navigation.bottom.bullets.set.active(), 0 < N.o.cycles && (N.slideshow.hasOwnProperty("cycleSlideIndex") ? N.slideshow.cycles.check(N.transitions.nextSlide.index) && (N.navigation.stop(), N.functions.setStates(N.slideshow, {
                        pausedByLastCycle: !0
                    }), N.o.forceCycles && (N.slideshow.curCycle = 1)) : N.slideshow.cycles.set()), N.functions.setStates(N.slider, {
                        animatingSlides: !1,
                        changingSlides: !1
                    }), !N.slideshow.firstStart && N.api.hasEvent("slideChangeDidComplete") && $.triggerHandler("slideChangeDidComplete", N.api.eventData()), N.slideshow.firstStart = !1, N.slideshow.forceFastChange = !1, N.slideshow.forceFastChangeCallback && (N.slideshow.forceFastChangeCallback(), N.slideshow.forceFastChangeCallback = !1), !1 !== N.slideshow.should.change && N.navigation.forceDirection ? (void 0 !== N.transitions.curSlide.data && void 0 !== N.transitions.curSlide.data.$background && (e = N.transitions.curSlide.data.$background.data(N.defaults.init.dataKey), N.transitions.curSlide.data.$background.closest(".ls-bg-wrap").hide(), e.kenBurns.zoom && H.TweenMax.set(N.transitions.curSlide.data.$background[0], {
                        autoCSS: !1,
                        css: e.kenBurns.from
                    })), N.slideshow.changeTo(N.slideshow.get.slideInSequence(N.navigation.forceDirection), !0)) : N.preload.imagesOfSlide(N.slides.next.index)
                },
                normal: {
                    select: {
                        transitionType: function() {
                            var e, t, i;
                            N.o.slideTransition ? N.transitions.slide.normal.setTransition(N.o.slideTransition.type, N.o.slideTransition.obj) : (i = !!N.transitions.nextSlide.data.transition2d && N.transitions.nextSlide.data.transition2d.toString().split(","), N.device.touchPrev && N.o.slideOnSwipe ? (N.device.touchPrev = !1, this.transition("2d", "1")) : N.device.touchNext && N.o.slideOnSwipe ? (N.device.touchNext = !1, this.transition("2d", "1")) : N.slides.next.data.$background || i && (!i || -1 != i.indexOf("1") || -1 != i.indexOf("2") || -1 != i.indexOf("3") || -1 != i.indexOf("4")) ? N.browser.supports3D() && (N.transitions.nextSlide.data.transition3d || N.transitions.nextSlide.data.customtransition3d) ? N.transitions.nextSlide.data.transition3d && N.transitions.nextSlide.data.customtransition3d ? (e = Math.floor(2 * Math.random()), t = [
                                ["3d", N.transitions.nextSlide.data.transition3d],
                                ["custom3d", N.transitions.nextSlide.data.customtransition3d]
                            ], this.transition(t[e][0], t[e][1])) : N.transitions.nextSlide.data.transition3d ? this.transition("3d", N.transitions.nextSlide.data.transition3d) : this.transition("custom3d", N.transitions.nextSlide.data.customtransition3d) : N.transitions.nextSlide.data.transition2d && N.transitions.nextSlide.data.customtransition2d ? (e = Math.floor(2 * Math.random()), t = [
                                ["2d", N.transitions.nextSlide.data.transition2d],
                                ["custom2d", N.transitions.nextSlide.data.customtransition2d]
                            ], this.transition(t[e][0], t[e][1])) : N.transitions.nextSlide.data.transition2d ? this.transition("2d", N.transitions.nextSlide.data.transition2d) : N.transitions.nextSlide.data.customtransition2d ? this.transition("custom2d", N.transitions.nextSlide.data.customtransition2d) : this.transition("2d", "1") : this.transition("2d", "5"))
                        },
                        transition: function(e, t) {
                            N.debugMode && N.debug.add("group", "slideTransition.info"), t += "";
                            var i, a, s = -1 == e.indexOf("custom") ? N.t : N.ct,
                                r = "3d"; - 1 != e.indexOf("2d") && (r = "2d"), a = -1 != t.indexOf("last") ? s["t" + r].length - 1 : -1 != t.indexOf("all") ? Math.floor(Math.random() * N.functions.countProp(s["t" + r])) : (t = (i = t.split(",")).length, parseInt(i[Math.floor(Math.random() * t)]) - 1), void 0 === s["t" + r][a] && (N.debugMode && N.debug.add("warn", "slideTransition.customTransition", [r.toUpperCase() + (-1 === e.indexOf("custom") ? "" : " (CUSTOM)"), a + 1]), s = N.t, e = r = "2d", a = 0), N.debugMode && N.debug.add("log", "slideTransition.info", [r.toUpperCase() + (-1 === e.indexOf("custom") ? "" : " (CUSTOM)"), a + 1, s["t" + r][a].name]), N.transitions.slide.normal.setTransition(r, s["t" + r][a])
                        }
                    },
                    setTransition: function(e, t) {
                        var i, a, s, r, o = X.extend(!0, {
                                cols: 1,
                                rows: 1
                            }, t),
                            n = typeof o.cols,
                            l = typeof o.rows,
                            d = [],
                            u = N.navigation.direction,
                            p = 0,
                            c = 0,
                            h = !!N.transitions.curSlide.data.$background && N.functions.getURL(N.transitions.curSlide.data.$background),
                            m = !!N.transitions.nextSlide.data.$background && N.functions.getURL(N.transitions.nextSlide.data.$background),
                            f = N.o.playByScroll && "up" === N.device.scroll.direction ? "to" : "from";
                        switch (n) {
                            case "number":
                                n = o.cols;
                                break;
                            case "string":
                                n = Math.floor(Math.random() * (parseInt(o.cols.split(",")[1]) - parseInt(o.cols.split(",")[0]) + 1)) + parseInt(o.cols.split(",")[0]);
                                break;
                            default:
                                n = Math.floor(Math.random() * (o.cols[1] - o.cols[0] + 1)) + o.cols[0]
                        }
                        switch (l) {
                            case "number":
                                l = o.rows;
                                break;
                            case "string":
                                l = Math.floor(Math.random() * (parseInt(o.rows.split(",")[1]) - parseInt(o.rows.split(",")[0]) + 1)) + parseInt(o.rows.split(",")[0]);
                                break;
                            default:
                                l = Math.floor(Math.random() * (o.rows[1] - o.rows[0] + 1)) + o.rows[0]
                        }
                        N.device.isMobile && N.o.optimizeForMobile ? (15 <= n ? n = 7 : 5 <= n ? n = 4 : 4 <= n ? n = 3 : 2 < n && (n = 2), 15 <= l ? l = 7 : 5 <= l ? l = 4 : 4 <= l ? l = 3 : 2 < l && (l = 2), 2 < l && 2 < n && (l = 2, 4 < n && (n = 4))) : (n = 35 < n ? 35 : n, l = 35 < l ? 35 : l), N.debugMode && !N.o.slideTransition && (N.debug.add("log", "slideTransition.properties", [
                            [n, l], n * l
                        ]), N.debug.groupEnd()), i = Math.floor(N.slider.width / n), a = Math.floor(N.slider.height / l), s = N.slider.width - i * n, r = N.slider.height - a * l, "prev" == u && (o.tile && o.tile.sequence && (o.tile.sequence = {
                            random: "random",
                            forward: "reverse",
                            reverse: "forward",
                            "col-forward": "col-reverse",
                            "col-reverse": "col-forward"
                        }[o.tile.sequence]), X.each(["animation", "before", "after"], function(e, t) {
                            o[t] && o[t].transition && ((t = o[t].transition).rotateX && 44 < Math.abs(t.rotateX) && (t.rotateX *= -1), t.rotateY && 44 < Math.abs(t.rotateY) && (t.rotateY *= -1), t.rotate && (t.rotate *= -1))
                        }));
                        for (var g, v, y = 0; y < n * l; y++) d.push(y);
                        switch (o.tile.sequence) {
                            case "reverse":
                                d.reverse();
                                break;
                            case "col-forward":
                                d = N.functions.sortArray(l, n, "forward");
                                break;
                            case "col-reverse":
                                d = N.functions.sortArray(l, n, "reverse");
                                break;
                            case "random":
                                d = N.functions.shuffleArray(d)
                        }
                        "transparent" === N.transitions.curSlide.data.backgroundColor && (N.transitions.curSlide.data.backgroundColor = N.o.globalBGColor), "transparent" === N.transitions.nextSlide.data.backgroundColor && (N.transitions.nextSlide.data.backgroundColor = N.o.globalBGColor), "2d" == e && (g = -1 != o.name.toLowerCase().indexOf("carousel"), v = -1 != o.name.toLowerCase().indexOf("crossfad"), this.$curTiles = X("<div>").addClass("ls-curtiles").appendTo(N.transitions.slide.$wrapper), this.$nextTiles = X("<div>").addClass("ls-nexttiles").appendTo(N.transitions.slide.$wrapper));
                        for (var b = 0; b < n * l; b++) {
                            var S, w = (b + 1) % n == 0 ? s : 0,
                                x = (l - 1) * n - 1 < b ? r : 0,
                                T = X("<div>").addClass("ls-slide-transition-tile").css({
                                    width: i + w,
                                    height: a + x
                                }).data("style", {
                                    width: i + w,
                                    height: a + x
                                }).appendTo(N.transitions.slide.$wrapper),
                                p = (d[b], b % n == 0 ? p + 1 : p),
                                c = b % n == 0 ? 1 : c + 1;
                            if ("3d" == e) {
                                T.addClass("ls-3d-container");
                                var C, k, I = i + w,
                                    O = a + x,
                                    L = new H.TimelineMax,
                                    P = Math.abs(Math.abs(c - n / 2 - .5) - n / 2 - .5) * Math.abs(Math.abs(p - l / 2 - .5) - l / 2 - .5);
                                T.css({
                                    zIndex: P
                                }), C = I / 2, k = O / 2, x = (P = "horizontal" == o.animation.direction ? 90 < Math.abs(o.animation.transition.rotateY) && "large" != o.tile.depth ? Math.floor(I / 7) + w : I : 90 < Math.abs(o.animation.transition.rotateX) && "large" != o.tile.depth ? Math.floor(O / 7) + x : O) / 2, this.createCuboids("ls-3d-box", T, 0, 0, 0, 0, -x, 0, 0, C + "px " + k + "px 0px"), this.createCuboids("ls-3d-front", T.find(".ls-3d-box"), I, O, 0, 0, x, 0, 0), "vertical" == o.animation.direction && 90 < Math.abs(o.animation.transition.rotateX) ? this.createCuboids("ls-3d-back", T.find(".ls-3d-box"), I, O, 0, 0, -x, 180, 0) : this.createCuboids("ls-3d-back", T.find(".ls-3d-box"), I, O, 0, 0, -x, 0, 180), this.createCuboids("ls-3d-left", T.find(".ls-3d-box"), P, O, -x, 0, 0, 0, -90), this.createCuboids("ls-3d-right", T.find(".ls-3d-box"), P, O, I - x, 0, 0, 0, 90), this.createCuboids("ls-3d-top", T.find(".ls-3d-box"), I, P, 0, -x, 0, 90, 0), this.createCuboids("ls-3d-bottom", T.find(".ls-3d-box"), I, P, 0, O - x, 0, -90, 0), I = T.find(".ls-3d-front"), P = "horizontal" == o.animation.direction ? 90 < Math.abs(o.animation.transition.rotateY) ? T.find(".ls-3d-back") : 0 < o.animation.transition.rotateY ? T.find(".ls-3d-left") : T.find(".ls-3d-right") : 90 < Math.abs(o.animation.transition.rotateX) ? T.find(".ls-3d-back") : 0 < o.animation.transition.rotateX ? T.find(".ls-3d-bottom") : T.find(".ls-3d-top"), O = d[b] * o.tile.delay, x = N.transitions.slide.$wrapper.find(".ls-3d-container:eq( " + b + " ) .ls-3d-box"), o.before && o.before.transition ? (o.before.transition.delay = o.before.transition.delay ? (o.before.transition.delay + O) / 1e3 : O / 1e3, L.to(x[0], o.before.duration / 1e3, N.functions.convert.transition(o.before.transition, o.before.easing))) : o.animation.transition.delay = o.animation.transition.delay ? (o.animation.transition.delay + O) / 1e3 : O / 1e3, L.to(x[0], o.animation.duration / 1e3, N.functions.convert.transition(o.animation.transition, o.animation.easing)), o.after && (o.after.transition || (o.after.transition = {}), L.to(x[0], o.after.duration / 1e3, N.functions.convert.transition(o.after.transition, o.after.easing, "after"))), N.transitions._slideTransition.add(L, 0)
                            } else {
                                var $, B, M, W, _, z = "auto",
                                    F = "auto",
                                    D = "auto",
                                    A = "auto",
                                    R = 1,
                                    E = 1,
                                    V = {},
                                    L = "random" == o.transition.direction ? (M = ["top", "bottom", "right", "left"])[Math.floor(Math.random() * M.length)] : o.transition.direction;
                                switch (-1 != o.name.toLowerCase().indexOf("mirror") && b % 2 == 0 && (u = "prev" == u ? "next" : "prev"), "prev" == u && (L = {
                                    top: "bottom",
                                    bottom: "top",
                                    left: "right",
                                    right: "left",
                                    topleft: "bottomright",
                                    topright: "bottomleft",
                                    bottomleft: "topright",
                                    bottomright: "topleft"
                                }[L]), L) {
                                    case "top":
                                        z = D = -T.data("style").height, F = A = 0;
                                        break;
                                    case "bottom":
                                        z = D = T.data("style").height, F = A = 0;
                                        break;
                                    case "left":
                                        z = D = 0, F = A = -T.data("style").width;
                                        break;
                                    case "right":
                                        z = D = 0, F = A = T.data("style").width;
                                        break;
                                    case "topleft":
                                        z = T.data("style").height, D = 0, F = T.data("style").width, A = 0;
                                        break;
                                    case "topright":
                                        z = T.data("style").height, D = 0, F = -T.data("style").width, A = 0;
                                        break;
                                    case "bottomleft":
                                        z = -T.data("style").height, D = 0, F = T.data("style").width, A = 0;
                                        break;
                                    case "bottomright":
                                        z = -T.data("style").height, D = 0, F = -T.data("style").width, A = 0
                                }
                                switch (this.scale2D = o.transition.scale || 1, 1 == g && 1 != this.scale2D && (z /= 2, D /= 2, F /= 2, A /= 2), o.transition.type) {
                                    case "fade":
                                        R = z = D = F = A = 0, E = 1;
                                        break;
                                    case "mixed":
                                        R = 0, (E = 1) == this.scale2D && (D = A = 0)
                                }(o.transition.rotate || o.transition.rotateX || o.transition.rotateY || 1 != this.scale2D) && "slide" != o.transition.type ? T.css({
                                    overflow: "visible"
                                }) : T.css({
                                    overflow: "hidden"
                                }), 1 == g ? this.$curTiles.css({
                                    overflow: "visible"
                                }) : this.$curTiles.css({
                                    overflow: "hidden"
                                }), !0 === v || "slide" == o.transition.type || !0 === g ? (W = T.appendTo(this.$curTiles), $ = T.clone().appendTo(this.$nextTiles), I = X("<div>").addClass("ls-curtile").appendTo(W)) : $ = T.appendTo(this.$nextTiles), P = X("<div>").addClass("ls-nexttile").appendTo($), B = d[b] * o.tile.delay / 1e3, M = o.transition.rotate || 0, L = o.transition.rotateX || 0, W = o.transition.rotateY || 0, "prev" == u && (M = -M, L = -L, W = -W), N.transitions._slideTransition.fromTo(P[0], o.transition.duration / 1e3, {
                                    immediateRender: !1,
                                    autoCSS: !1,
                                    css: {
                                        x: -F,
                                        y: -z,
                                        display: "block",
                                        opacity: R,
                                        rotation: M,
                                        rotationX: L,
                                        rotationY: W,
                                        scale: this.scale2D
                                    }
                                }, {
                                    autoCSS: !1,
                                    css: {
                                        x: 0,
                                        y: 0,
                                        opacity: E,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scale: 1
                                    },
                                    ease: N.functions.convert.easing(o.transition.easing)
                                }, B), 1 == v && (void 0 === N.transitions.nextSlide.data.$background || void 0 !== N.transitions.nextSlide.data.$background && (-1 != N.transitions.nextSlide.data.$background.attr("src").toLowerCase().indexOf("png") || N.transitions.nextSlide.data.$background.width() < N.slider.width || N.transitions.nextSlide.data.$background.height() < N.slider.height)) && (V.opacity = 0), "slide" != o.transition.type && 1 != g || -1 != o.name.toLowerCase().indexOf("mirror") || (_ = 0 !== M ? -M : 0, V.x = A, V.y = D, V.rotation = _, V.scale = this.scale2D, V.opacity = R), void 0 !== I && N.transitions._slideTransition.to(I[0], o.transition.duration / 1e3, {
                                    autoCSS: !1,
                                    css: V,
                                    ease: N.functions.convert.easing(o.transition.easing)
                                }, B)
                            }
                            _ = b % n * i, V = Math.floor(b / n) * a, void 0 !== N.transitions.curSlide.data.$background && (S = N.transitions.curSlide.data.$background.data(N.defaults.init.dataKey), "3d" === e || "2d" === e && (!0 === v || "slide" === o.transition.type || !0 === g) ? I.append(X("<img>").attr("src", h).css({
                                width: S.responsive.width,
                                height: S.responsive.height,
                                "-webkit-filter": S.responsive.filter,
                                filter: S.responsive.filter,
                                "-ms-transform": "translateX(" + (S.responsive.x - _) + "px) translateY(" + (S.responsive.y - V) + "px)" + S.responsive.kbRotation + S.responsive.kbScale,
                                "-webkit-transform": "translateX(" + (S.responsive.x - _) + "px) translateY(" + (S.responsive.y - V) + "px)" + S.responsive.kbRotation + S.responsive.kbScale,
                                transform: "translateX(" + (S.responsive.x - _) + "px) translateY(" + (S.responsive.y - V) + "px)" + S.responsive.kbRotation + S.responsive.kbScale
                            })) : 0 === this.$curTiles.children().length && this.$curTiles.css("background-color", N.transitions.curSlide.data.backgroundColor).append(X("<img>").attr("src", h).css({
                                width: S.responsive.width,
                                height: S.responsive.height,
                                "-webkit-filter": S.responsive.filter,
                                filter: S.responsive.filter,
                                "-ms-transform": "translateX(" + S.responsive.x + "px) translateY(" + S.responsive.y + "px)" + S.responsive.kbRotation + S.responsive.kbScale,
                                "-webkit-transform": "translateX(" + S.responsive.x + "px) translateY(" + S.responsive.y + "px)" + S.responsive.kbRotation + S.responsive.kbScale,
                                transform: "translateX(" + S.responsive.x + "px) translateY(" + S.responsive.y + "px)" + S.responsive.kbRotation + S.responsive.kbScale
                            }))), "transparent" === N.transitions.curSlide.data.backgroundColor || N.transitions.curSlide.data.$backgroundVideo.length || ("3d" === e || "2d" === e && (!0 === v || "slide" === o.transition.type || !0 === g) ? I.css("background-color", N.transitions.curSlide.data.backgroundColor) : 0 === this.$curTiles.children().length && this.$curTiles.css("background-color", N.transitions.curSlide.data.backgroundColor)), void 0 !== N.transitions.nextSlide.data.$background && (S = (B = N.transitions.nextSlide.data.$background.data(N.defaults.init.dataKey)).kenBurns[f], P.append(X("<img>").attr("src", m).css({
                                width: B.responsive.width,
                                height: B.responsive.height,
                                "-webkit-filter": N.transitions.nextSlide.filter.from || "none",
                                filter: N.transitions.nextSlide.filter.from || "none",
                                "-ms-transform": "translateX(" + (B.responsive.x - _) + "px) translateY(" + (B.responsive.y - V) + "px) rotate(" + S.rotation + "deg) scale(" + S.scale + ")",
                                "-webkit-transform": "translateX(" + (B.responsive.x - _) + "px) translateY(" + (B.responsive.y - V) + "px) rotate(" + S.rotation + "deg) scale(" + S.scale + ")",
                                transform: "translateX(" + (B.responsive.x - _) + "px) translateY(" + (B.responsive.y - V) + "px) rotate(" + S.rotation + "deg) scale(" + S.scale + ")"
                            }))), "transparent" === N.transitions.nextSlide.data.backgroundColor || N.transitions.nextSlide.data.$backgroundVideo.length || P.css("background-color", N.transitions.nextSlide.data.backgroundColor)
                        }
                        N.transitions.slide.$wrapper.prependTo(N.o.preferBlendMode ? N.slider.$layersWrapper : N.slider.$innerWrapper), N.transitions.slide.start()
                    },
                    createCuboids: function(e, t, i, a, s, r, o, n, l, d) {
                        o = "translate3d( " + s + "px, " + r + "px, " + o + "px)";
                        0 !== n && (o += "rotateX( " + n + "deg)"), 0 !== l && (o += "rotateY( " + l + "deg)");
                        o = {
                            width: i,
                            height: a,
                            transform: o,
                            "-ms-transform": o,
                            "-webkit-transform": o
                        };
                        d && (o["transform-origin"] = d, o["-ms-transform-origin"] = d, o["-webkit-transform-origin"] = d), X("<div>").addClass(e).css(o).appendTo(t)
                    }
                }
            },
            layers: { in : {
                    onStart: function(e) {
                        e.data(N.defaults.init.dataKey).hover.enabled && N.transitions.layers.hover.enable(e), N.layers.set.dataAttribute(e, "animating-in")
                    },
                    onComplete: function(e) {
                        N.media.functions.playIfAllowed(e), N.layers.set.dataAttribute(e, "active")
                    }
                }, out: {
                    forced: function() {
                        var s, r, o, n, e, t, i;
                        N.transitions._forceLayersOut && (N.transitions._slideTimeline && (s = new H.TimelineMax({
                            paused: !0,
                            autoRemoveChildren: !0
                        }), n = [], e = N.layers.get("current, in, static, active").add(N.layers.get("current, out, static, active")), i = N.layers.get("current, out, notstatic, active"), t = N.layers.get("current, out, active"), i = X().add(e).add(i), i.each(function() {
                            var e, t = X(this).data(N.defaults.init.dataKey);
                            if (t.loop._timeline && (N.transitions._slideTimeline.remove(t.loop._timeline), t.loop._timeline.play()), t.is.static) {
                                r = [t.elements.$wrapper[0]], t.elements.$clipWrapper && (r = r.concat(t.elements.$clipWrapper[0])), t.textIn.nodes && (r = r.concat(t.textIn.nodes));
                                for (var i = 0; i < r.length; i++) n = n.concat(N.transitions._slideTimeline.getTweensOf(r[i], !0));
                                for (var a = 0; a < n.length; a++) n[a].duration && 0 !== n[a].duration() && (o = n[a], e = o, s.add(e, 100 - e.duration() * e.progress()))
                            }
                        }), t.each(function() {
                            X(this).data(N.defaults.init.dataKey).should.reset = !0
                        }), s.play().seek(100), N.transitions._slideTimeline.eventCallback("onStart", null), N.transitions._slideTimeline.eventCallback("onComplete", null), N.transitions._slideTimeline.eventCallback("onReverseComplete", null), N.transitions._slideTimeline.eventCallback("onUpdate", null), N.transitions._slideTimeline.stop().clear()), N.transitions._forceLayersOut.play(), N.slideshow.forceFastChange && N.transitions._forceLayersOut.progress(1)), N.slider.$layersWrapper.find(".ls-link").css({
                            display: "none"
                        })
                    },
                    onStart: function(e) {
                        N.layers.set.dataAttribute(e, "animating-out")
                    },
                    onComplete: function(e) {
                        var t = e.data(N.defaults.init.dataKey);
                        !N.slider.state.changingSlides && t.settings.slideOut === N.slides.current.index || N.transitions.layers.reset(e, t), t.hover.enabled && N.transitions.layers.hover.disable(e), N.layers.set.dataAttribute(e, "hidden")
                    }
                }, reset: function(e, t) {
                    t.loop._timeline && (t.loop._timeline.stop().clear(), delete t.loop._timeline, H.TweenMax.set(t.elements.$loopWrapper[0], t.reset.loopWrapperOnSlideChange)), H.TweenMax.set(t.elements.$wrapper[0], t.reset.wrapperOnSlideChange), H.TweenMax.set(e[0], {
                        "-webkit-filter": "none",
                        filter: "none"
                    }), t.should.update && (t.textInNodesFrom.random = {}, t.textOutNodesTo.random = {}, N.layers.update.data(e)), t.should.reset = !1
                }, timeline: {
                    shouldRestart: !1,
                    create: function(e) {
                        var t, i, a, s = e ? "current" : "next";
                        N.transitions.curNext = s, N.transitions.layers.timeline.shouldRestart = !1, N.transitions.layers.timeline.resetStates(), N.transitions._slideTimeline && (N.transitions._slideTimeline.pause().progress(0).kill().clear(!0), N.transitions._slideTimeline = null), N.transitions._slideTimeline = new H.TimelineMax({
                            paused: !0,
                            onStart: function() {
                                N.api.hasEvent("slideTimelineDidStart") && $.triggerHandler("slideTimelineDidStart", N.api.eventData())
                            },
                            onComplete: function() {
                                N.o.playByScroll && N.o.playByScrollSkipSlideBreaks && ("next" === N.slideshow.direction ? N.transitions.layers.timeline.scrollForward(!0) : N.transitions.layers.timeline.scrollBackwards(!0, !0))
                            },
                            onReverseComplete: function() {
                                N.api.hasEvent("slideTimelineDidReverseComplete") && $.triggerHandler("slideTimelineDidReverseComplete", N.api.eventData()), N.transitions.layers.timeline.shouldReplay && (N.transitions.layers.timeline.shouldRestart = !1, N.transitions._slideTimeline.play()), N.o.playByScroll && N.o.playByScrollSkipSlideBreaks && N.transitions.layers.timeline.scrollBackwards(!0, !1)
                            },
                            onUpdate: function(e) {
                                N.api.hasEvent("slideTimelineDidUpdate") && $.triggerHandler("slideTimelineDidUpdate", e)
                            },
                            onUpdateParams: ["{self}"]
                        }), this.totalDuration = 0, this.progress = 1, N.transitions._forceLayersOut = new H.TimelineMax({
                            paused: !0,
                            autoRemoveChildren: !0
                        }), t = N.layers.get(s + ", in, notactive"), i = N.layers.get(s + ", out, notstatic").add(N.layers.get(s + ", out, active, static")), e = N.layers.get(s + ", in, bgonly, notactive"), a = X().add(t).add(i).add(e), this.addLayers(t, "in", N.transitions._slideTimeline, N.transitions._forceLayersOut), this.addLayers(i, "out", N.transitions._slideTimeline, N.transitions._forceLayersOut), N.slides[s].data && -1 !== N.slides[s].data.duration && N.slides[s].data.duration < this.totalDuration ? (this.progress = N.slides[s].data.duration / this.totalDuration, N.debugMode && N.debug.add("warn", "slideTimeline.duration", [N.slides[s].data.duration, this.totalDuration])) : N.transitions._slideTimeline.duration() > this.totalDuration && (this.progress = this.totalDuration / N.transitions._slideTimeline.duration()), -1 === N.slides[s].data.duration ? (N.slides[s].data.duration = this.totalDuration, N.slides[N.slides[s].index].data.duration = this.totalDuration) : this.totalDuration = N.slides[s].data.duration, this.addLayers(e, "in", N.transitions._slideTimeline, N.transitions._forceLayersOut), !0 === N.transitions.layers.timeline.shouldRestart && N.debugMode && N.debug.add("warn", "slideTimeline.restart", N.o.allowRestartOnResize ? "enabled" : "disabled");
                        for (var r, o = 0; o < a.length; o++) X(a[o]).data(N.defaults.init.dataKey).parallax.enabled && X(a[o]).data(N.defaults.init.dataKey).elements.$parallaxWrapper.attr("data-ls-parallax", "active");
                        N.transitions.layers.parallax.trigger(), N.api.hasEvent("slideTimelineDidCreate") && $.triggerHandler("slideTimelineDidCreate", {
                            slideTimeline: N.transitions._slideTimeline,
                            layersOnSlideTimeline: a,
                            slideTimelineDuration: this.totalDuration
                        }), N.transitions.timers.create(), N.transitions.timers.bar._transition && N.transitions._slideTimeline.add(N.transitions.timers.bar._transition.play(), 0), N.transitions.timers.circle._transition && N.transitions._slideTimeline.add(N.transitions.timers.circle._transition.play(), 0), N.transitions.timers.slidebar._transition && N.transitions._slideTimeline.add(N.transitions.timers.slidebar._transition.play(), 0), N.transitions._slideTimeline.call(function() {
                            N.transitions._slideTimeline.reversed() || N.api.hasEvent("slideTimelineDidComplete") && !1 === $.triggerHandler("slideTimelineDidComplete", N.api.eventData()) || (N.functions.setStates(N.transitions.layers.timeline, {
                                finished: !0
                            }), !N.slideshow.isPaused() && N.slideshow.state.running ? N.slideshow.changeTo(N.slides.next.index) : N.slideshow.state.pausedByLastCycle && N.transitions.timers.reverse())
                        }, [], this, N.slides[s].data.duration), N.slides.next.data.$link && N.slides.next.data.$link.css({
                            display: "block"
                        }), (!N.o.startInViewport || "inside" !== N.slider.positionToViewport && !N.o.playByScrollStart) && N.o.startInViewport || !(N.slider.isPopup && N.slider.state.popupIsVisible && N.slider.state.popupShouldStart) && N.slider.isPopup || (N.o.pauseLayers && N.slideshow.isPaused() && N.transitions._slideTimeline.timeScale(0), N.transitions.layers.timeline.play(), N.o.playByScroll && "up" === N.device.scroll.directionAtSlideTransitionStart && N.transitions._slideTimeline.progress(1)), $.trigger("mouseleave.globalhover" + B), $.off("mouseenter.globalhover" + B + " mouseleave.globalhover" + B + " mousemove.globalhover" + B), N.slides[s].data.globalhover && (r = N.layers.get(s + ",in,notactive").add(N.layers.get("static,active")), $.on("mouseenter.globalhover" + B, function() {
                            r.each(function() {
                                N.transitions.layers.hover.mouseEnter(X(this), X(this).data(N.defaults.init.dataKey))
                            })
                        }), $.on("mouseleave.globalhover" + B, function() {
                            r.each(function() {
                                N.transitions.layers.hover.mouseLeave(X(this), X(this).data(N.defaults.init.dataKey))
                            })
                        }), $.on("mousemove.globalhover" + B, function() {
                            r.each(function() {
                                N.transitions.layers.hover.mouseMove(X(this), X(this).data(N.defaults.init.dataKey))
                            })
                        }))
                    },
                    prepare: function() {
                        N.slides.next.data.overflow && "hidden" !== N.slides.next.data.overflow ? (N.slider.$layersWrapper.addClass("ls-visible"), N.slider.$slideBGWrapper.addClass("ls-visible")) : (N.slider.$layersWrapper.removeClass("ls-visible"), N.slider.$slideBGWrapper.removeClass("ls-visible")), this.create()
                    },
                    getTiming: function(e, t, i, a) {
                        if ("number" == typeof t) return t;
                        t = t.toLowerCase();
                        var s, r, o, n, l, d = N.defaults.layer.timelineHierarchy,
                            u = 0;
                        if (-1 !== t.indexOf("*") && (l = "*"), -1 !== t.indexOf("/") && (l = "/"), -1 !== t.indexOf("+") && (l = "+"), -1 !== t.indexOf("-") && (l = "-"), l)
                            if (n = t.split(l), s = X.trim(n[0]), o = parseInt(X.trim(n[1])), d[s] && -1 !== d[i][1].indexOf(d[s][0]))
                                if (r = "number" == typeof e.timeline[s] ? e.timeline[s] : e.timeline[s](e), a) u = o / 1e3;
                                else switch (l) {
                                    case "*":
                                        u = r * o;
                                        break;
                                    case "/":
                                        u = r / o;
                                        break;
                                    case "+":
                                        u = r + o / 1e3;
                                        break;
                                    case "-":
                                        u = r - o / 1e3
                                } else N.debugMode && (d[s] || N.debug.add("warn", "layerTransition.timing1", s), -1 === d[i][1].indexOf(d[s][0]) && N.debug.add("warn", "layerTransition.timing3", [s, d[s], i, d[i]])), "+" !== l && !a || (u = o / 1e3);
                        else d[s = X.trim(t)] && -1 !== d[i][1].indexOf(d[s][0]) ? u = a ? 0 : "number" == typeof e.timeline[s] ? e.timeline[s] : e.timeline[s](e) : N.debugMode && (d[s] ? -1 === d[i][1].indexOf(d[s][0]) && N.debug.add("warn", "layerTransition.timing3", [s, d[s], i, d[i]]) : N.debug.add("warn", "layerTransition.timing1", s));
                        return (u != u || u < 0) && (N.debugMode && N.debug.add("warn", "layerTransition.timing2", [i, s, u]), u = 0), u
                    },
                    addLayers: function(e, t, i, a) {
                        for (var s = 0, r = e.length; s < r; s++) {
                            var o, n = X(e[s]),
                                l = n.data(N.defaults.init.dataKey),
                                d = l.elements.$wrapper,
                                u = l.elements.$clipWrapper,
                                p = l.elements.$loopWrapper,
                                c = l.elements.$parallaxWrapper;
                            if (l.should.reset && N.transitions.layers.reset(n, l), n.hasClass("ls-bg")) l.kenBurns.zoom && i.fromTo(n.closest(".ls-bg-wrap"), N.transitions.nextSlide.data.duration + N.transitions.nextSlide.data.calculatedTimeShift, {
                                autoCSS: !1,
                                css: l.kenBurns.from
                            }, {
                                autoCSS: !1,
                                css: l.kenBurns.to,
                                ease: H.Quad.easeInOut
                            }, -N.transitions.nextSlide.data.calculatedTimeShift), X.isEmptyObject(l.filter.values.bgFrom) && X.isEmptyObject(l.filter.values.bgTo) || (l.filter.transitions.bg || (l.filter.transitions.bg = N.transitions.layers.filters.createTransition(l, "bg", l.filter.values.bgFrom, l.filter.values.bgTo)), i.to([{
                                p: 0
                            }, n[0]], N.transitions.nextSlide.data.duration, {
                                p: 1,
                                autoCSS: !1,
                                ease: H.Sine.easeInOut,
                                onUpdate: N.transitions.layers.filters.animate,
                                onUpdateParams: ["{self}", l.filter.transitions.bg]
                            }, 0));
                            else switch (t) {
                                case "in":
                                    if (l.in.enabled && (l.settings.timelineIsCalculated || ("number" != typeof l.in.startAt && (l.in.startAt = 0), l.timeline.transitioninstart = l.in.startAt, l.timeline.transitioninend = l.timeline.transitioninstart + l.in.duration), N.resize.transformProperties(n, l.inLayerFromCSS, l.inLayerShouldBeConverted), N.resize.styleProperties(l.inLayerStyleFromCSS, l.inLayerStyleShouldBeConvertedFrom), N.resize.styleProperties(l.inLayerStyleToCSS, l.inLayerStyleShouldBeConvertedTo), l.inLayerFromCSS.transformPerspective = l.transformPerspective.layer * N.resize.ratio, l.clip.enabled && (l.original.clip || (l.original.clip = l.clip.min, l.original.clipShouldBeConverted = !0), l.inClipShouldBeConverted.clip ? (l.inClipFromCSS.clip = N.resize.clip(n, l.inClipShouldBeConverted.clip, !0), l.inClipToCSS.clip = N.resize.clip(n, l.original.clip, l.original.clipShouldBeConverted), i.fromTo(u[0], l.in.duration, l.inClipFrom, l.inClipTo, l.timeline.transitioninstart)) : H.TweenMax.set(u[0], {
                                            clip: N.resize.clip(n, l.original.clip, l.original.clipShouldBeConverted)
                                        }), N.transitions.layers.timeline.shouldRestart = !0), X.isEmptyObject(l.filter.values.in) ? X.isEmptyObject(l.filter.values.out) || n.css("filter", l.original.filter) : (l.filter.transitions.in || (l.filter.transitions.in = N.transitions.layers.filters.createTransition(l, "in", l.filter.values.in, l.filter.values.style)), i.to([{
                                            p: 0
                                        }, n[0]], l.in.duration, {
                                            p: 1,
                                            autoCSS: !1,
                                            ease: l.inLayerTo.ease,
                                            onUpdate: N.transitions.layers.filters.animate,
                                            onUpdateParams: ["{self}", l.filter.transitions.in]
                                        }, l.timeline.transitioninstart)), i.fromTo(d[0], l.in.duration, l.inLayerFrom, l.inLayerTo, l.timeline.transitioninstart), i.fromTo(n[0], l.in.duration, l.inLayerStyleFrom, l.inLayerStyleTo, l.timeline.transitioninstart)), l.is.textLayer && ((l.textIn.type || l.textOut.type) && N.transitions.layers.splitType.resetNodes(n, l), l.textIn.enabled && (l.in.enabled || i.to(d[0], 0, X.extend(!0, {}, l.inLayerTo, l.init.wrapper), l.timeline.textinstart), l.textIn.nodes = N.transitions.layers.splitType.setNodesSequence(l.textIn.type.split("_"), l.textIn.ns), N.resize.transformProperties(n, l.textInNodesFrom, l.textInShouldBeConverted), l.textInNodesFrom.transformPerspective = l.transformPerspective.text * N.resize.ratio, X.isEmptyObject(l.textInShouldBeConverted.random) || N.transitions.layers.splitType.setRandomProperties(l, l.textInShouldBeConverted.random, l.textInNodesFrom), X.isEmptyObject(l.textInNodesFrom.random) || N.transitions.layers.splitType.setRandomProperties(l, l.textInNodesFrom.random, l.textInNodesFrom), delete l.textInNodesFrom.random, l.settings.timelineIsCalculated || (l.timeline.textinstart = this.getTiming(l, l.textIn.startAt, "textinstart"), l.timeline.textinend = l.timeline.textinstart + (l.textIn.nodes.length - 1) * l.textIn.shiftNodes + l.textIn.duration), i.staggerFromTo(l.textIn.nodes, l.textIn.duration, l.textInNodesFrom, l.textInNodesTo, l.textIn.shiftNodes, l.timeline.textinstart, function(e) {
                                            N.transitions.layers.in.onComplete(e)
                                        }, [n]))), l.is.keyframe && N.o.playByScroll && i.addPause(l.timeline.allinend(), function() {
                                            setTimeout(function() {
                                                delete N.timeouts.scroll, N.transitions.layers.timeline.timeScaleModifier = 0, N.device.scroll.timeout = 250
                                            }, 500)
                                        }), l.parallax.enabled && "auto" == l.parallax.event) {
                                        N.transitions.layers.parallax.auto();
                                        var h = new H.TimelineMax({
                                                paused: !0
                                            }),
                                            m = {
                                                repeat: -1 == l.parallax.count ? -1 : l.parallax.count - 1,
                                                ease: Linear.easeNone
                                            };
                                        switch (l.settings.timelineIsCalculated && !l.is.static || (l.timeline.autoparallaxstart = this.getTiming(l, l.parallax.startAt, "autoparallaxstart"), l.timeline.autoparallaxend = -1 !== l.parallax.count && l.timeline.autoparallaxstart + l.parallax.duration * l.parallax.count), l.parallax._timeline = h, l.parallax.dummy = {
                                            x: 0,
                                            y: -10
                                        }, l.parallax.path) {
                                            default:
                                                case "circle":
                                                m.bezier = {
                                                curviness: 1.5,
                                                values: [{
                                                    x: 10,
                                                    y: 0
                                                }, {
                                                    x: 0,
                                                    y: 10
                                                }, {
                                                    x: -10,
                                                    y: 0
                                                }, {
                                                    x: 0,
                                                    y: -10
                                                }]
                                            };
                                            break;
                                            case "oval-h":
                                                    m.bezier = {
                                                    type: "thru",
                                                    curviness: 1,
                                                    values: [{
                                                        x: 20,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: 10
                                                    }, {
                                                        x: -20,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: -10
                                                    }]
                                                };
                                                break;
                                            case "oval-v":
                                                    l.parallax.dummy = {
                                                    x: 0,
                                                    y: -20
                                                },
                                                m.bezier = {
                                                    type: "thru",
                                                    curviness: 1,
                                                    values: [{
                                                        x: 10,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: 20
                                                    }, {
                                                        x: -10,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: -20
                                                    }]
                                                };
                                                break;
                                            case "infinity":
                                                    l.parallax.dummy = {
                                                    x: 0,
                                                    y: 0
                                                },
                                                m.bezier = {
                                                    type: "thru",
                                                    curviness: 1,
                                                    values: [{
                                                        x: 20,
                                                        y: -10
                                                    }, {
                                                        x: 40,
                                                        y: 0
                                                    }, {
                                                        x: 20,
                                                        y: 10
                                                    }, {
                                                        x: 0,
                                                        y: 0
                                                    }, {
                                                        x: -20,
                                                        y: -10
                                                    }, {
                                                        x: -40,
                                                        y: 0
                                                    }, {
                                                        x: -20,
                                                        y: 10
                                                    }, {
                                                        x: 0,
                                                        y: 0
                                                    }]
                                                };
                                                break;
                                            case "linear-h":
                                                    l.parallax.dummy = {
                                                    x: -10,
                                                    y: 0
                                                },
                                                m.x = 10,
                                                m.ease = Quad.easeInOut,
                                                m.yoyo = !0,
                                                m.repeat = -1 == l.parallax.count ? -1 : 2 * l.parallax.count - 1;
                                                break;
                                            case "linear-v":
                                                    l.parallax.dummy = {
                                                    x: 0,
                                                    y: -10
                                                },
                                                m.y = 10,
                                                m.ease = Quad.easeInOut,
                                                m.yoyo = !0,
                                                m.repeat = -1 == l.parallax.count ? -1 : 2 * l.parallax.count - 1
                                        }
                                        m.onUpdate = function(e, t, i, a, s, r, o) {
                                            H.TweenMax.set(i, {
                                                x: -t.x * (a / 50) * parseInt(s),
                                                y: -t.y * (a / 50) * parseInt(s),
                                                rotationX: "3d" == r ? t.y / (100 / o) : 0,
                                                rotationY: "3d" == r ? -t.x / (100 / o) : 0
                                            })
                                        }, m.onUpdateParams = ["{self}", l.parallax.dummy, c[0], l.parallax.distance, l.parallax.level, l.parallax.type, l.parallax.rotation], h.to(l.parallax.dummy, -1 == l.parallax.path.indexOf("linear") ? l.parallax.duration : l.parallax.duration / 2, m), i.add(h, l.timeline.autoparallaxstart), h.play()
                                    }
                                    l.loop.enabled && (h = new H.TimelineMax({
                                        repeat: l.loop.repeat,
                                        repeatDelay: l.loop.repeatDelay,
                                        yoyo: l.loop.yoyo,
                                        paused: !0
                                    }), l.settings.timelineIsCalculated && !l.is.static || (l.timeline.loopstart = this.getTiming(l, l.loop.startAt, "loopstart"), l.timeline.loopend = -1 !== l.loop.count && l.timeline.loopstart + (l.loop.repeat + 1) * l.loop.duration + l.loop.repeat * l.loop.repeatDelay), l.loop._timeline = h, N.resize.transformProperties(n, l.loopToCSS, {
                                        x: l.loopLayerShouldBeConverted.x,
                                        y: l.loopLayerShouldBeConverted.y
                                    }), (l.loopToCSS.x && 0 !== l.loopToCSS.x || l.loopToCSS.y && 0 !== l.loopToCSS.y) && (N.transitions.layers.timeline.shouldRestart = !0), l.loopFromCSS.transformOrigin = N.functions.convert.transformOrigin(l.loopLayerShouldBeConverted.transformOrigin, n), l.loopFromCSS.transformPerspective = l.transformPerspective.loop * N.resize.ratio, X.isEmptyObject(l.filter.values.loop) || (l.filter.transitions.loop || (l.filter.transitions.loop = N.transitions.layers.filters.createTransition(l, "loop", X.isEmptyObject(l.filter.values.afterIn) ? l.filter.values.style : l.filter.values.afterIn, l.filter.values.loop)), h.to([{
                                        p: 0
                                    }, n[0]], l.loop.duration, {
                                        p: 1,
                                        autoCSS: !1,
                                        ease: l.loopTo.ease,
                                        onUpdate: N.transitions.layers.filters.animate,
                                        onUpdateParams: ["{self}", l.filter.transitions.loop]
                                    }, 0)), h.fromTo(p[0], l.loop.duration, l.loopFrom, l.loopTo, 0), l.loopClipShouldBeConverted.clip && (l.loopClipToCSS.clip = N.resize.clip(n, l.loopClipShouldBeConverted.clip, !0), h.to(u[0], l.loop.duration, l.loopClipTo, 0), N.transitions.layers.timeline.shouldRestart = !0), -1 !== l.loop.repeat && ("looplayers" === N.o.pauseOnHover || N.gui.timers.slidebar.$element || N.o.playByScroll) ? (i.add(h, l.timeline.loopstart), h.play()) : i.addCallback(function(e) {
                                        e.play()
                                    }, l.timeline.loopstart, [h])), l.is.static && (l.timeline.staticfrom = l.timeline.transitioninend, l.timeline.staticto = "100%", l.settings.timelineIsCalculated || (o = Math.max(l.timeline.allinandloopend(), 0), this.totalDuration = Math.max(this.totalDuration, o)));
                                    break;
                                case "out":
                                    l.is.textLayer && l.textOut.enabled && (l.textOut.nodes = N.transitions.layers.splitType.setNodesSequence(l.textOut.type.split("_"), l.textOut.ns), N.resize.transformProperties(n, l.textOutNodesTo, l.textOutShouldBeConverted, l.textOutNodesFrom), l.textOutNodesFrom.transformPerspective = l.transformPerspective.text * N.resize.ratio, X.isEmptyObject(l.textOutShouldBeConverted.random) || N.transitions.layers.splitType.setRandomProperties(l, l.textOutShouldBeConverted.random, l.textOutNodesTo), X.isEmptyObject(l.textOutNodesTo.random) || N.transitions.layers.splitType.setRandomProperties(l, l.textOutNodesTo.random, l.textOutNodesTo), delete l.textOutNodesTo.random, l.settings.timelineIsCalculated || (l.timeline.textoutstart = this.getTiming(l, l.textOut.startAt, "textoutstart"), l.timeline.textoutend = l.timeline.textoutstart + (l.textOut.nodes.length - 1) * l.textOut.shiftNodes + l.textOut.duration), l.clip.enabled && (void 0 === l.outClipShouldBeConverted.clip && i.to(u[0], 0, {
                                        immediateRender: !1,
                                        css: {
                                            clip: N.resize.clip(n, l.clip.max)
                                        }
                                    }, l.timeline.textoutstart), N.transitions.layers.timeline.shouldRestart = !0), i.staggerFromTo(l.textOut.nodes, l.textOut.duration, l.textOutNodesFrom, l.textOutNodesTo, l.textOut.shiftNodes, l.timeline.textoutstart)), N.resize.transformProperties(n, l.outLayerToCSS, l.outLayerShouldBeConverted, l.outLayerFromCSS), N.resize.styleProperties(l.outLayerStyleFromCSS, l.outLayerStyleShouldBeConvertedFrom), N.resize.styleProperties(l.outLayerStyleToCSS, l.outLayerStyleShouldBeConvertedTo), l.outLayerFromCSS.transformPerspective = l.transformPerspective.layer * N.resize.ratio, "slidechangeonly" !== l.out.startAt ? (l.settings.timelineIsCalculated && !l.is.static || (l.is.static ? (l.timeline.staticfrom = 0, l.timeline.transitionoutstart = this.getTiming(l, l.out.startAt, "transitionoutstart", !0), l.timeline.staticto = l.timeline.transitionoutstart) : l.timeline.transitionoutstart = Math.max(this.getTiming(l, l.out.startAt, "transitionoutstart"), l.timeline.transitioninend), l.timeline.transitionoutend = l.timeline.transitionoutstart + l.out.duration), l.clip.enabled && (void 0 === l.outClipShouldBeConverted.clip ? i.to(u[0], 0, {
                                        immediateRender: !1,
                                        css: {
                                            clip: N.resize.clip(n, l.clip.max)
                                        }
                                    }, l.timeline.transitionoutstart) : (l.outClipToCSS.clip = N.resize.clip(n, l.outClipShouldBeConverted.clip, !0), i.to(u[0], l.out.duration, l.outClipTo, l.timeline.transitionoutstart)), N.transitions.layers.timeline.shouldRestart = !0), X.isEmptyObject(l.filter.values.out) || (l.filter.transitions.out || (l.filter.transitions.out = N.transitions.layers.filters.createTransition(l, "out", X.isEmptyObject(l.filter.values.afterLoop) ? X.isEmptyObject(l.filter.values.afterIn) ? l.filter.values.style : l.filter.values.afterIn : l.filter.values.afterLoop, l.filter.values.out)), i.to([{
                                        p: 0
                                    }, n[0]], l.out.duration, {
                                        p: 1,
                                        autoCSS: !1,
                                        ease: l.outLayerTo.ease,
                                        onUpdate: N.transitions.layers.filters.animate,
                                        onUpdateParams: ["{self}", l.filter.transitions.out]
                                    }, l.timeline.transitionoutstart)), i.fromTo(d[0], l.out.duration, l.outLayerFrom, l.outLayerTo, l.timeline.transitionoutstart), i.fromTo(n[0], l.out.duration, l.outLayerStyleFrom, l.outLayerStyleTo, l.timeline.transitionoutstart), i.fromTo(d[0], 0, l.init.wrapper, l.reset.wrapperOnTimelineEnd, l.timeline.transitionoutend)) : (l.timeline.staticfrom = 0, l.timeline.staticto = "100%"), (!l.is.static || l.is.static && l.settings.slideOut === N.slides.next.index) && (a.fromTo(d[0], N.o.forceLayersOutDuration, l.outLayerFrom, l.outLayerTo, 0), a.fromTo(n[0], N.o.forceLayersOutDuration, l.outLayerStyleFrom, l.outLayerStyleTo, 0), l.clip.enabled && void 0 !== l.outClipShouldBeConverted.clip && (l.outClipToCSS.clip = N.resize.clip(n, l.outClipShouldBeConverted.clip, !0), a.to(u[0], N.o.forceLayersOutDuration, l.outClipTo, 0))), o = Math.max(l.timeline.alloutandloopend(), 0), this.totalDuration = Math.max(this.totalDuration, o), l.settings.timelineIsCalculated = !0
                            }
                        }
                    },
                    play: function() {
                        N.transitions._slideTimeline && (N.transitions._slideTimeline.play(), N.functions.setStates(this, {
                            started: !0,
                            running: !0,
                            stopped: !1,
                            paused: !1
                        }))
                    },
                    pause: function(e) {
                        e = X.isNumeric(e) ? e : .75;
                        N.transitions._slideTimeline && (H.TweenMax.to(N.transitions._slideTimeline, e, {
                            timeScale: 0
                        }), N.functions.setStates(this, {
                            paused: !0,
                            stopped: !1
                        }))
                    },
                    resume: function() {
                        N.transitions._slideTimeline && (H.TweenMax.to(N.transitions._slideTimeline, .75, {
                            timeScale: 1
                        }), N.functions.setStates(this, {
                            paused: !1,
                            stopped: !1
                        }))
                    },
                    reverse: function() {
                        N.transitions._slideTimeline && N.transitions._slideTimeline.reverse()
                    },
                    scrollForward: function(e) {
                        e || (this.play(), this.modifyTimeScale()), N.transitions._slideTimeline && (N.slider.isBusy() || 0 !== N.transitions._slideTimeline.totalDuration() && 1 !== N.transitions._slideTimeline.progress() || "down" !== N.device.scroll.direction || (N.slideshow.direction = "next", (e = N.slideshow.sequence.normalized).indexOf(N.slides.current.index) === e.length - 1 ? (N.slider.positionToViewport = "under", N.device.scroll.enable(), N.slideshow.direction = "prev") : N.navigation.next()))
                    },
                    scrollBackwards: function(e, t) {
                        e && !t || (this.reverse(), this.modifyTimeScale()), N.transitions._slideTimeline && (N.slider.isBusy() || 0 !== N.transitions._slideTimeline.totalDuration() && 0 !== N.transitions._slideTimeline.progress() || "up" !== N.device.scroll.direction || (N.slideshow.direction = "prev", 0 === N.slideshow.sequence.normalized.indexOf(N.slides.current.index) ? (N.slider.positionToViewport = "over", N.device.scroll.enable(), N.slideshow.direction = "next") : N.navigation.prev()))
                    },
                    modifyTimeScale: function() {
                        N.transitions._slideTimeline && H.TweenMax.to(N.transitions._slideTimeline, .25, {
                            timeScale: 1 + this.timeScaleModifier
                        })
                    },
                    resetStates: function() {
                        this.state = {
                            started: !1,
                            running: !1,
                            paused: !1,
                            stopped: !1,
                            finished: !1
                        }
                    }
                }, hover: {
                    enable: function(e) {
                        e.attr("data-ls-canhover", "1")
                    },
                    disable: function(e) {
                        e.attr("data-ls-canhover", "0")
                    },
                    set: function(e, t) {
                        t.elements.$wrapper.on("mouseenter." + B, function() {
                            N.transitions.layers.hover.mouseEnter(e, t)
                        }), t.elements.$wrapper.on("mouseleave." + B, function() {
                            N.transitions.layers.hover.mouseLeave(e, t)
                        }), t.elements.$wrapper.on("mousemove." + B, function() {
                            N.transitions.layers.hover.mouseMove(e, t)
                        })
                    },
                    createTimeline: function(e, t) {
                        var i, a, s;
                        t.hover._timeline = new H.TimelineMax({
                            paused: !0,
                            onReverseComplete: function(e, t) {
                                t.hover._timeline._reversed && (t.hover._timeline.stop().clear(), delete t.hover._timeline)
                            },
                            onReverseCompleteParams: [e, t]
                        }), N.resize.transformProperties(e, t.hoverToCSS, t.hoverShouldBeConverted, t.hoverFromCSS), N.resize.styleProperties(t.hoverToCSS, t.hoverShouldBeConverted), t.hoverFromCSS.transformPerspective = t.transformPerspective.hover * N.resize.ratio, t.hover._tween = H.TweenMax.fromTo(e[0], t.hover.durationIn, t.hoverFrom, t.hoverTo), t.hover._timeline.add(t.hover._tween, 0), e.next().is(".ls-layer-link") ? (i = e.next(), a = X.extend(!0, {}, t.hoverFrom, {
                            css: {
                                opacity: 1,
                                color: "transparent",
                                background: "transparent",
                                z: 0
                            }
                        }), s = X.extend(!0, {}, t.hoverTo, {
                            css: {
                                opacity: 1,
                                color: "transparent",
                                background: "transparent",
                                z: 0
                            }
                        }), t.hover._linkTween = H.TweenMax.fromTo(i[0], t.hover.durationIn, a, s), t.hover._timeline.add(t.hover._linkTween, 0)) : t.hover._linkTween = null, t.hover.alwaysOnTop && (s = {
                            zIndex: 9999
                        }, N.browser.isSafari && (s.transform = "translateZ(999999px)"), t.hover._timeline.to(t.elements.$outerWrapper[0], t.hover.durationIn, {
                            autoCSS: !1,
                            css: s
                        }, 0)), t.hover.reverseTimeScale = t.hover.durationIn / t.hover.durationOut == 1 ? 1 : t.hover.durationIn / t.hover.durationOut, this.hoverIn(e, t)
                    },
                    mouseEnter: function(e, t) {
                        "1" === e.attr("data-ls-canhover") && (e.attr("data-ls-hovered", 1), t.elements.$wrapper.off("mousemove." + B), t.hover._timeline ? (t.hover._timeline.play().stop().progress(0), this.hoverIn(e, t)) : this.createTimeline(e, t))
                    },
                    mouseLeave: function(e, t) {
                        t.hover._timeline && (t.hover._timeline.stop().progress(1), this.hoverOut(e, t)), e.removeAttr("data-ls-hovered")
                    },
                    mouseMove: function(e, t) {
                        e.attr("data-ls-hovered") || this.mouseEnter(e, t)
                    },
                    hoverIn: function(e, t) {
                        t.hover._tween.updateTo({
                            ease: t.hover.easeIn
                        }), t.hover._linkTween && t.hover._linkTween.updateTo({
                            ease: t.hover.easeIn
                        }), t.hover._timeline.play().timeScale(1)
                    },
                    hoverOut: function(e, t) {
                        t.hover._tween.updateTo({
                            ease: t.hover.easeOut
                        }), t.hover._linkTween && t.hover._linkTween.updateTo({
                            ease: t.hover.easeOut
                        }), t.hover._timeline.reverse().timeScale(t.hover.reverseTimeScale)
                    }
                }, parallax: {
                    defaultProperties: {
                        type: "2d",
                        event: "cursor",
                        path: "circle",
                        direction: "clockwise",
                        duration: 5,
                        count: -1,
                        startAt: "slidestart",
                        x: !0,
                        y: !0,
                        rotation: 10,
                        distance: 10,
                        durationMove: 1.5,
                        durationLeave: 1.2,
                        transformOrigin: "50% 50% 0",
                        transformPerspective: 500
                    },
                    defaults: {
                        scrollModifier: 5,
                        centerLayers: "center",
                        centerDegree: 40,
                        sensitive: 10
                    },
                    state: {
                        enabled: !1,
                        ready: !1
                    },
                    wrappers: {
                        cursor: {
                            $2d: X(),
                            $3d: X()
                        },
                        scroll: {
                            $2d: X(),
                            $3d: X()
                        },
                        auto: {
                            $2d: X(),
                            $3d: X()
                        }
                    },
                    init: function() {
                        var t = this;
                        $.on("mouseenter." + B, function() {
                            (t.wrappers.cursor.$2d.length || t.wrappers.cursor.$3d.length) && t.calculateTransformProperties()
                        }), $.on("mousemove." + B, function(e) {
                            (t.wrappers.cursor.$2d.length || t.wrappers.cursor.$3d.length) && t.mouseMove(e)
                        }), $.on("mouseleave." + B, function() {
                            (t.wrappers.cursor.$2d.length || t.wrappers.cursor.$3d.length) && t.reset()
                        }), N.device.isMobile && N.device.supportOrientation && (X(window).on("deviceorientation." + B, function() {
                            t.state.ready && t.deviceTurn(event)
                        }), X(window).on("orientationchange." + B, function() {
                            t.calculateTransformProperties()
                        })), X(window).on("scroll.parallax" + B + " touchmove.parallax" + B, function() {
                            (t.wrappers.scroll.$2d.length || t.wrappers.scroll.$3d.length) && t.scroll()
                        }), t.defaults.scrollModifier *= N.o.parallaxScrollReverse ? -1 : 1
                    },
                    addLayer: function(e, t, i, a) {
                        switch (this.state.enabled || (N.functions.setStates(this, {
                            enabled: !0
                        }), this.init()), X.extend(!0, t, this.defaultProperties, N.slides[a].parallax, i.parallax), i.transformPerspective.parallax ? t.transformPerspective = i.transformPerspective.parallax : i.transformPerspective.parallax = t.transformPerspective, t.event.match(/(cursor|scroll|auto)/) || (t.event = "cursor"), t.path.match(/(circle|oval-h|oval-v|infinity|linear-h|linear-v)/) || (t.path = "circle"), t.direction.match(/(clockwise|counterclockwise)/) || (t.direction = "clockwise"), t.type.match(/(2d,3d)/) && (t.type = "2d"), (i.parallax = t).axis) {
                            case "none":
                                t.x = !1, t.y = !1;
                                break;
                            case "x":
                                t.y = !1;
                                break;
                            case "y":
                                t.x = !1
                        }
                        this.wrappers[t.event]["$" + t.type] = this.wrappers[t.event]["$" + t.type].add(e)
                    },
                    addShadow: function() {
                        var e, t, i, a = N.gui.shadow.$element,
                            s = (N.slides.current && N.slides.current.parallax ? N.slides.current : N.slides.next).index;
                        N.slides[s].data.$background && N.slides[s].data.$background.data(N.defaults.init.dataKey).parallax.enabled && N.slides[s].data.overflow && "hidden" !== N.slides[s].data.overflow && (e = "50% -" + .25 * N.slider.height + "px 0", i = void 0 !== (t = N.slides[s].data.$background.data(N.defaults.init.dataKey).parallax).rotation ? 2 * t.rotation : void 0 !== N.slides[s].parallax.rotation ? 2 * N.slides[s].parallax.rotation : 2 * this.defaultProperties.rotation, a.data(N.defaults.init.dataKey, {
                            parallax: X.extend(!0, {}, this.defaultProperties, N.slides[s].parallax, {
                                level: t.level,
                                transformOrigin: e,
                                rotation: i
                            })
                        }), a.attr("data-ls-parallax", "active"), H.TweenMax.set(a[0], {
                            transformOrigin: e,
                            transformPerspective: a.data(N.defaults.init.dataKey).parallax.transformPerspective * N.resize.ratio
                        }), "3d" === N.slides[s].parallax.type || "3d" === t.type ? this.wrappers.cursor.$3d = this.wrappers.cursor.$3d.add(a) : this.wrappers.cursor.$2d = this.wrappers.cursor.$2d.add(a)), this.shadowIsChecked = !0
                    },
                    removeShadow: function() {
                        var e = N.gui.shadow.$element;
                        this.wrappers.cursor.$2d = this.wrappers.cursor.$2d.not(e), this.wrappers.cursor.$3d = this.wrappers.cursor.$3d.not(e), e.attr("data-ls-parallax", "disabled"), this.shadowIsChecked = !1
                    },
                    calculateTransformProperties: function() {
                        X().add(this.wrappers.cursor.$2d).add(this.wrappers.cursor.$3d).add(this.wrappers.scroll.$2d).add(this.wrappers.scroll.$3d).add(this.wrappers.auto.$2d).add(this.wrappers.auto.$3d).each(function() {
                            var e = X(this).data(N.defaults.init.dataKey).parallax;
                            H.TweenMax.set(X(this)[0], {
                                transformOrigin: N.functions.convert.transformOrigin(e.transformOrigin, X(this), N.slider.$layersWrapper),
                                transformPerspective: e.transformPerspective * N.resize.ratio
                            })
                        }), this.transformPropertiesCalculated = !0
                    },
                    deviceTurn: function(e) {
                        var t, i;
                        this.transformPropertiesCalculated ? (e = 0 === (t = window.orientation) ? (i = 5 * -parseInt(e.gamma) * this.defaults.sensitive * N.resize.ratio, 5 * (this.defaults.centerDegree - parseInt(e.beta)) * this.defaults.sensitive * N.resize.ratio) : 90 === t ? (i = 5 * -parseInt(e.beta) * this.defaults.sensitive * N.resize.ratio, 5 * (parseInt(e.gamma) + this.defaults.centerDegree) * this.defaults.sensitive * N.resize.ratio) : (i = 5 * parseInt(e.beta) * this.defaults.sensitive * N.resize.ratio, 5 * (this.defaults.centerDegree - parseInt(e.gamma)) * this.defaults.sensitive * N.resize.ratio), this.animate2D(i, e, "cursor"), this.animate3D(i, e, "cursor")) : this.calculateTransformProperties(), N.slider.state.animatingSlides || this.shadowIsChecked || !N.gui.shadow.$element || this.addShadow()
                    },
                    trigger: function() {
                        X(window).trigger("scroll.parallax" + B), X(window).trigger("touchmove.parallax" + B)
                    },
                    auto: function() {
                        this.transformPropertiesCalculated || this.calculateTransformProperties()
                    },
                    scroll: function() {
                        var e = (("top" === this.defaults.centerLayers ? N.device.winScrollTop : N.device.winScrollTop + (N.device.viewportHeight - N.slider.height) / 2) - N.slider.offsetTop) * N.resize.ratio * this.defaults.scrollModifier;
                        N.slider.state.inFullscreen && (e = 0), this.transformPropertiesCalculated || this.calculateTransformProperties(), this.animate2D(0, e, "scroll"), this.animate3D(0, e, "scroll")
                    },
                    mouseMove: function(e) {
                        var t, i;
                        this.transformPropertiesCalculated ? (N.slider.state.animatingSlides || this.shadowIsChecked || !N.gui.shadow.$element || this.addShadow(), t = N.slider.offsetLeft + N.slider.width / 2, i = N.slider.offsetTop + N.slider.height / 2, t = e.pageX - t, i = e.pageY - i, this.animate2D(t, i, "cursor"), this.animate3D(t, i, "cursor")) : this.calculateTransformProperties()
                    },
                    animate2D: function(s, r, e) {
                        this.wrappers[e].$2d.each(function() {
                            var e, t, i, a = X(this);
                            "active" === a.attr("data-ls-parallax") && (t = (e = a.data(N.defaults.init.dataKey).parallax).x ? -s * (e.distance / 2e3) * parseInt(e.level) : 0, i = e.y ? -r * (e.distance / 2e3) * parseInt(e.level) : 0, H.TweenMax.to(a[0], e.durationMove, {
                                x: t,
                                y: i
                            }))
                        })
                    },
                    animate3D: function(o, n, e) {
                        this.wrappers[e].$3d.each(function() {
                            var e, t, i, a, s, r = X(this);
                            "active" === r.attr("data-ls-parallax") && (a = (e = r.data(N.defaults.init.dataKey).parallax).x ? (i = -o / (4e3 / e.rotation), -o * (e.distance / 2e3) * parseInt(e.level)) : i = 0, s = e.y ? (t = n / (4e3 / e.rotation), -n * (e.distance / 2e3) * parseInt(e.level)) : t = 0, H.TweenMax.to(r[0], e.durationMove, {
                                rotationX: t,
                                rotationY: i,
                                x: a,
                                y: s
                            }))
                        })
                    },
                    reset: function() {
                        X().add(this.wrappers.cursor.$2d).add(this.wrappers.cursor.$3d).each(function() {
                            var e = X(this);
                            "active" === e.attr("data-ls-parallax") ? H.TweenMax.to(e[0], X(this).data(N.defaults.init.dataKey).parallax.durationLeave, {
                                x: 0,
                                y: 0,
                                rotationX: 0,
                                rotationY: 0
                            }) : H.TweenMax.set(e[0], {
                                x: 0,
                                y: 0,
                                rotationX: 0,
                                rotationY: 0
                            })
                        }), N.gui.shadow.$element && this.removeShadow(), this.transformPropertiesCalculated = !1
                    }
                }, filters: {
                    createTransition: function(e, t, i, a) {
                        var s, r = new N.defaults.layer.properties.filter,
                            o = {};
                        for (s in r) switch (t) {
                            case "in":
                                o[s] = [r[s], r[s]], o[s][0] = (i.hasOwnProperty(s) ? i : a.hasOwnProperty(s) ? a : r)[s], o[s][1] = (a.hasOwnProperty(s) ? a : r)[s], e.filter.values.afterIn[s] = o[s][1];
                                break;
                            case "hover":
                            case "loop":
                            case "out":
                                o[s] = [], o[s][0] = (i.hasOwnProperty(s) ? i : r)[s], o[s][1] = (a.hasOwnProperty(s) ? a : i.hasOwnProperty(s) && i[s] !== r[s] ? i : r)[s], "loop" === t && !0 !== e.loop.yoyo && -1 !== e.loop.count && (e.filter.values.afterLoop[s] = o[s][1]);
                                break;
                            case "bg":
                                o[s] = [r[s], r[s]], i.hasOwnProperty(s) && (o[s][0] = i[s]), a.hasOwnProperty(s) && (o[s][1] = a[s])
                        }
                        return o
                    },
                    convert: function(e) {
                        for (var t, i, a = {}, s = /(blur|brightness|contrast|grayscale|hue-rotate|invert|saturate|sepia)/i, r = 0, o = (e = e.split(" ")).length; r < o; r++)(t = (i = e[r].split("("))[0]).match(s) && (i = parseInt(i[1]), a[t] = i);
                        return a
                    },
                    animate: function(e, t) {
                        var i = 100 * e.target[0].p;
                        if ("object" == typeof t) {
                            var a, s = "";
                            for (a in t)
                                if ("object" == typeof t[a] && 2 === t[a].length) switch (a) {
                                    case "blur":
                                        s += " blur( " + (t[a][0] < t[a][1] ? t[a][0] + Math.abs(t[a][0] - t[a][1]) / 100 * i : t[a][0] - Math.abs(t[a][0] - t[a][1]) / 100 * i) + "px )";
                                        break;
                                    case "hue-rotate":
                                        s += " hue-rotate( " + (t[a][0] < t[a][1] ? t[a][0] + Math.abs(t[a][0] - t[a][1]) / 100 * i : t[a][0] - Math.abs(t[a][0] - t[a][1]) / 100 * i) + "deg )";
                                        break;
                                    default:
                                        s += " " + a + "( " + (t[a][0] < t[a][1] ? t[a][0] + Math.abs(t[a][0] - t[a][1]) / 100 * i : t[a][0] - Math.abs(t[a][0] - t[a][1]) / 100 * i) + "% )"
                                }
                                H.TweenMax.set(e.target, {
                                "-webkit-filter": s,
                                filter: s
                            })
                        }
                    }
                }, splitType: {
                    setNodesSequence: function(e, t) {
                        var i = t;
                        if ("desc" == e[1]) i = t.slice(0).reverse();
                        else if ("rand" == e[1]) i = t.slice(0).sort(function() {
                            return .5 - Math.random()
                        });
                        else if ("center" == e[1]) {
                            for (var a = Math.floor(t.length / 2), i = [t[a]], s = 1; s <= a; s++) i.push(t[a - s], t[a + s]);
                            i.length = t.length
                        } else if ("edge" == e[1]) {
                            var r, o = Math.floor(t.length / 2);
                            for (i = [t[0]], r = 1; r <= o; r++) i.push(t[t.length - r], t[r]);
                            i.length = t.length
                        }
                        return i
                    },
                    resetNodes: function(e, t) {
                        X(".char, .word, .line", e).add(t.elements.$wrapper).css({
                            transform: "none",
                            opacity: 1
                        }).each(function() {
                            delete this._gsTransform
                        })
                    },
                    setRandomProperties: function(e, t, i) {
                        for (var a in t) {
                            for (var s = [], r = 0, o = e.textIn.nodes.length; r < o; r++) s[r] = N.functions.convert.randomProperties(t[a], a);
                            delete i[a], i.cycle[a] = s
                        }
                        t = null
                    }
                }
            },
            media: {
                defaults: {
                    delay: 500,
                    fadeIn: 500,
                    fadeOut: 750
                },
                changeBackgroundVideo: function(e, t) {
                    var i, a, s, r;
                    N.slides.current.index && N.slides.current.data.$backgroundVideo.length && (r = (i = N.slides.current.data.$backgroundVideo).data(N.defaults.init.dataKey).elements.$bgWrapper, t && (i.data(N.defaults.init.dataKey).mediaProperties.willBePaused = !0, r.fadeOut(N.transitions.media.defaults.fadeOut, function() {
                        i.trigger("stopBackgroundVideo"), i.data(N.defaults.init.dataKey).mediaProperties.willBePaused = !1
                    }))), N.slides.next.data.$backgroundVideo.length && (s = (a = N.slides.next.data.$backgroundVideo).data(N.defaults.init.dataKey).elements.$bgWrapper, r = a.data(N.defaults.init.dataKey).elements.$bgOuterWrapper, N.device.isMobile && ($.hasClass("ls-device-is-phone") && r.hasClass("ls-hide-on-phone") || $.hasClass("ls-device-is-tablet") && r.hasClass("ls-hide-on-tablet")) || setTimeout(function() {
                        a.trigger("playBackgroundVideo")
                    }, e ? 50 : 0), e || t ? s.fadeIn(N.transitions.media.defaults.fadeOut) : s.css({
                        display: "block"
                    }), a.data(N.defaults.init.dataKey).mediaProperties.isPreloaded = !0)
                }
            },
            timers: {
                defaults: {
                    fadeInDuration: .35,
                    reverseDuration: .3
                },
                create: function(e) {
                    this.curNext = e || "next", this.reset(), N.gui.timers.bar.$element && this.bar.createTransition(), N.gui.timers.circle.$element && this.circle.createTransition(), N.gui.timers.slidebar.$element && this.slidebar.createTransition()
                },
                reverse: function() {
                    var e;
                    N.slides.current && N.slides.current.data && N.transitions._slideTimeline && (e = N.transitions._slideTimeline.progress(), e = N.slides.current.data.duration * e / this.defaults.reverseDuration, N.gui.timers.bar.$element && this.bar._transition && (N.transitions._slideTimeline.remove(N.transitions.timers.bar._transition), this.bar._transition.reverse().timeScale(e)), N.gui.timers.circle.$element && this.circle._transition && (N.transitions._slideTimeline.remove(N.transitions.timers.circle._transition), this.circle._transition.reverse().timeScale(e)), N.gui.timers.slidebar.$element && this.slidebar._transition && (N.transitions._slideTimeline.remove(N.transitions.timers.slidebar._transition), this.slidebar._transition.reverse().timeScale(e)))
                },
                reset: function() {
                    N.gui.timers.bar.$element && this.bar._transition && this.bar.reset(), N.gui.timers.circle.$element && this.circle._transition && this.circle.reset(), N.gui.timers.slidebar.$element && this.slidebar._transition && this.slidebar.reset()
                },
                bar: {
                    reset: function() {
                        this._transition && (this._transition.kill(), this._transition = !1)
                    },
                    createTransition: function() {
                        this._transition = H.TweenMax.fromTo(N.gui.timers.bar.$element[0], N.slides[N.transitions.curNext].data.duration, {
                            autoCSS: !1,
                            paused: !0,
                            css: {
                                width: 0
                            }
                        }, {
                            autoCSS: !1,
                            css: {},
                            ease: H.Linear.easeNone,
                            onReverseComplete: function() {
                                N.transitions.timers.bar._transition = !1
                            },
                            onComplete: function(e) {
                                e.target.style.width = "100%", e.target.style.width = "calc( 100% - " + N.slider.initial.skinWidth + "px )"
                            },
                            onCompleteParams: ["{self}"],
                            onUpdate: function(e) {
                                e.target.style.width = Math.min(N.slider.width, N.slider.width * e.progress()) + "px"
                            },
                            onUpdateParams: ["{self}"]
                        })
                    }
                },
                circle: {
                    reset: function() {
                        this._transition && (N.gui.timers.circle.$element.stop(!0, !0), this._transition.kill(), this._transition = !1)
                    },
                    createTransition: function() {
                        var e = N.gui.timers.circle.$element.find(".ls-ct-right .ls-ct-rotate")[0],
                            t = N.gui.timers.circle.$element.find(".ls-ct-left .ls-ct-rotate")[0],
                            i = N.slides[N.transitions.curNext].data.duration;
                        this._transition = new H.TimelineMax({
                            paused: !0
                        }).fromTo(N.gui.timers.circle.$element[0], N.transitions.timers.defaults.fadeInDuration, {
                            autoCSS: !1,
                            immediateRender: !0,
                            css: {
                                opacity: 0,
                                display: "block"
                            }
                        }, {
                            autoCSS: !1,
                            css: {
                                opacity: N.gui.timers.circle.$element.data("original").opacity
                            }
                        }).fromTo(e, i / 2, {
                            autoCSS: !1,
                            css: {
                                rotation: 0
                            }
                        }, {
                            autoCSS: !1,
                            css: {
                                rotation: 180
                            },
                            ease: H.Linear.easeNone
                        }, 0).fromTo(t, i / 2, {
                            autoCSS: !1,
                            css: {
                                rotation: 0
                            }
                        }, {
                            autoCSS: !1,
                            css: {
                                rotation: 180
                            },
                            ease: H.Linear.easeNone
                        }, i / 2)
                    }
                },
                slidebar: {
                    reset: function() {
                        this._transition && (this._transition.kill(), this._transition = !1)
                    },
                    createTransition: function() {
                        var i = this;
                        i._transition = new H.TimelineMax({
                            paused: !0,
                            onReverseComplete: function() {
                                N.transitions.timers.slidebar._transition = !1
                            }
                        }), X.each(N.gui.timers.slidebar.$sliderContainerElement, function(t, e) {
                            i._transition.add(H.TweenMax.fromTo(N.gui.timers.slidebar.$sliderContainerElement[t][0], N.slides[N.transitions.curNext].data.duration, {
                                autoCSS: !1,
                                css: {
                                    left: 0
                                }
                            }, {
                                autoCSS: !1,
                                css: {},
                                ease: H.Linear.easeNone,
                                onComplete: function(e) {
                                    e.target.style.left = "calc( 100% - " + N.gui.timers.slidebar.sliderContainerElementWidth[t] + "px )"
                                },
                                onCompleteParams: ["{self}"],
                                onUpdate: function(e) {
                                    e.target.style.left = (N.gui.timers.slidebar.containerElementWidth[t] - N.gui.timers.slidebar.sliderContainerElementWidth[t]) * e.progress() + "px"
                                },
                                onUpdateParams: ["{self}"]
                            }), 0), i._transition.add(H.TweenMax.fromTo(N.gui.timers.slidebar.$progressBarElement[t][0], N.slides[N.transitions.curNext].data.duration, {
                                autoCSS: !1,
                                css: {
                                    width: 0
                                }
                            }, {
                                autoCSS: !1,
                                css: {},
                                ease: H.Linear.easeNone,
                                onComplete: function(e) {
                                    e.target.style.width = "100%"
                                },
                                onCompleteParams: ["{self}"],
                                onUpdate: function(e) {
                                    e.target.style.width = N.gui.timers.slidebar.elementWidth[t] * e.progress() + "px"
                                },
                                onUpdateParams: ["{self}"]
                            }), 0)
                        })
                    }
                }
            }
        }, N.plugins = {
            load: function() {
                var e, a;
                N.o.plugins && 0 !== N.o.plugins.length ? (e = N.o.plugins[0], a = "object" == typeof e ? e.namespace : e, window._layerSlider.plugins[a] ? (N.plugins.init(a, e, !0), N.plugins.load()) : N.browser.usesFileProtocol || "object" != typeof e ? (N.browser.usesFileProtocol ? window.console && (console.error(N.defaults.slider.errorText, "Cannot load plugins on file:// protocol."), console.info("Please include the plugin files manually.")) : window.console && (console.error(N.defaults.slider.errorText, "Plugin files are missing!"), console.info('Plugin "' + a + '" has been added in slider init options, but the source files are not found on page.')), N.o.plugins.splice(0, 1), N.plugins.load()) : -1 === window._layerSlider.pluginsBeingLoaded.indexOf(a) ? -1 === window._layerSlider.pluginsLoaded.indexOf(a) && -1 === window._layerSlider.pluginsNotLoaded.indexOf(a) ? (window._layerSlider.pluginsBeingLoaded.push(a), X.ajax({
                    url: -1 === e.js.indexOf("http://") && -1 === e.js.indexOf("https://") ? (window._layerSlider.pluginsPath || window._layerSlider.scriptPath + "/../plugins/") + e.js : e.js,
                    dataType: "script",
                    success: function() {
                        N.plugins.init(e.namespace, e, !0), window._layerSlider.pluginsLoaded.push(a)
                    },
                    error: function(e, t, i) {
                        window.console && (console.error(N.defaults.slider.errorText, a, "plugin has not been loaded!"), console.error("Additional error info:", i)), window._layerSlider.pluginsNotLoaded.push(a)
                    },
                    complete: function() {
                        window._layerSlider.pluginsBeingLoaded.splice(window._layerSlider.pluginsBeingLoaded.indexOf(a), 1), N.plugins.load()
                    }
                })) : (N[a] || -1 !== window._layerSlider.pluginsNotLoaded.indexOf(a) ? N.o.plugins.splice(0, 1) : N.plugins.init(a, e), N.plugins.load()) : N.plugins.checkLoaded(a)) : N.slider.check.initialized()
            },
            init: function(e, t, i) {
                N.initializedPlugins[e] = new window._layerSlider.plugins[e](N, $, B, t.settings), window._layerSlider.checkVersions(N.initializedPlugins[e].pluginData.requiredLSVersion, N.plugin.version) ? (t.css && i && X('<link rel="stylesheet" href="' + (-1 === t.css.indexOf("http://") && -1 === t.css.indexOf("https://") ? (window._layerSlider.pluginsPath || window._layerSlider.scriptPath + "/../plugins/") + t.css : t.css) + '">').appendTo("head"), N.initializedPlugins[e].init && N.initializedPlugins[e].init()) : window.console && console.error(N.defaults.slider.errorText, e, "plugin has not been loaded! Required LayerSlider version:", N.initializedPlugins[e].pluginData.requiredLSVersion, "(you have:", N.plugin.version + ")"), N.o.plugins.splice(0, 1)
            },
            checkLoaded: function(e) {
                N.intervals.pluginLoaded = setInterval(function() {
                    -1 === window._layerSlider.pluginsLoaded.indexOf(e) && -1 === window._layerSlider.pluginsNotLoaded.indexOf(e) || -1 !== window._layerSlider.pluginsBeingLoaded.indexOf(e) || (clearInterval(N.intervals.pluginLoaded), delete N.intervals.pluginLoaded, N.plugins.load())
                }, 100)
            }
        }, N.slider = {
            shouldResize: !0,
            thumbnails: [],
            state: {
                preloadingImages: !1,
                changingSlides: !1,
                animatingSlides: !1
            },
            isPaused: !1,
            isBusy: function() {
                return this.state.preloadingImages || this.state.changingSlides || this.state.animatingSlides
            },
            load: function() {
                if (!document.body.contains(P)) return !1;
                N.api.hasEvent("sliderWillLoad") && $.triggerHandler("sliderWillLoad"), N.slider.set.global()
            },
            set: {
                global: function() {
                    var e;
                    N.originalMarkup = $[0].outerHTML, N.userInitOptions = N.functions.convert.properties(N.functions.convert.oldProperties(i)), N.meta = {}, N.o = X.extend(!0, {}, N.defaults.init.options, N.userInitOptions), N.o.forceLayersOutDuration /= 1e3, N.o.forceLayersOutDuration = 0 < N.o.forceLayersOutDuration ? N.o.forceLayersOutDuration : .75, N.o.sliderFadeInDuration /= 1e3, window.console && !0 !== N.o.hideWelcomeMessage && !0 !== window._layerSlider.hideWelcomeMessage && (window._layerSlider.hideWelcomeMessage = !0, t = window.console.info ? "info" : "log", e = window.LS_Meta && window.LS_Meta.v ? " | WP Plugin: " + window.LS_Meta.v : "", console[t]("LayerSlider initialized | core: " + N.plugin.version + "-" + N.plugin.release + e), console[t]("Find updates and docs @ https://layerslider.kreaturamedia.com/"));
                    var t = {
                        namespace: "debug",
                        js: "debug/layerslider.debug.js",
                        css: "debug/layerslider.debug.css"
                    }; - 1 !== document.location.hash.indexOf("debug") && window.console && (-1 !== document.location.hash.indexOf("url=") && (window._layerSlider.pluginsPath = document.location.hash.split("url=")[1].split("&")[0], t.js = window._layerSlider.pluginsPath + "debug/layerslider.debug.js", t.css = window._layerSlider.pluginsPath + "debug/layerslider.debug.css"), "object" == typeof N.o.plugins ? N.o.plugins.push(t) : N.o.plugins = [t]), (window._layerSlider.currentScript || window._layerSlider.lsScript) && (window._layerSlider.scriptPath = (window._layerSlider.currentScript || window._layerSlider.lsScript).src.replace(/\\/g, "/").replace(/\/[^\/]*$/, "")), "object" == typeof N.o.plugins ? N.plugins.load() : N.slider.check.initialized()
                },
                styles: function() {
                    var e, t, i, a, s, r, o, n, l, d, u, p, c, h, m, f, g, v, y = N.slider,
                        b = $.parent(),
                        S = P.style,
                        w = window.getComputedStyle(P, null),
                        x = parseInt(P.clientWidth),
                        T = parseInt(P.clientHeight),
                        C = parseInt(b.width()),
                        k = parseInt(b.height()),
                        I = N.o.layersContainerWidth,
                        O = N.o.layersContainerHeight,
                        L = N.o.type.toLowerCase();
                    switch (N.debugMode && N.debug.add("group", "sliderInit.style"), N.o.width ? e = -1 == N.o.width.indexOf("%") ? parseInt(N.o.width) : N.o.width : S.width ? e = -1 == S.width.indexOf("%") ? parseInt(S.width) : S.width : 0 < I ? (e = I, N.debugMode && N.debug.add("warn", "sliderInit.noWidth", I)) : (e = x, N.debugMode && N.debug.add("warn", "sliderInit.noWidth2", x)), i = e, N.o.height ? t = -1 == N.o.height.indexOf("%") ? parseInt(N.o.height) : N.o.height : S.height ? t = -1 == S.height.indexOf("%") ? parseInt(S.height) : S.height : 0 < O ? (t = O, N.debugMode && N.debug.add("warn", "sliderInit.noHeight", O)) : (t = T, N.debugMode && N.debug.add("warn", "sliderInit.noHeight2", k)), a = t, s = "" !== S.maxWidth ? -1 === S.maxWidth.indexOf("%") ? parseInt(S.maxWidth) : S.maxWidth : 0, void 0 === N.userInitOptions.type && (0 < I && 0 < O || "100%" === e && "100%" === t ? L = "fullsize" : I <= 0 && O <= 0 && (N.o.responsiveUnder <= 0 || 0 < N.o.responsiveUnder && N.o.sliderVersion) ? L = void 0 !== N.o.responsive && !1 === N.o.responsive ? "fixedsize" : "responsive" : 0 < N.o.responsiveUnder && (L = "fullwidth")), L) {
                        case "fullwidth":
                            -1 !== e.indexOf("%") && (N.debugMode && N.debug.add("warn", "sliderInit.percWidth", [L, e, x]), e = x), I <= 0 && (I = e, N.debugMode && N.debug.add("warn", "sliderInit.conWidth", [L, e])), N.o.responsiveUnder <= 0 && (N.o.responsiveUnder = I, N.debugMode && N.debug.add("warn", "sliderInit.fullwidth", I)), -1 !== t.indexOf("%") && (o = k / (100 / parseInt(t)), N.debugMode && N.debug.add("warn", "sliderInit.fullwidth2", [L, t, o]), t = o), O <= 0 && (O = t);
                            break;
                        case "fullsize":
                            -1 !== e.indexOf("%") && (r = 0 < I ? I : C, N.debugMode && N.debug.add("warn", "sliderInit.fullsize", [L, e, r, C, I]), e = r), I <= 0 && (I = e, N.debugMode && N.debug.add("warn", "sliderInit.conWidth", [L, e])), -1 !== t.indexOf("%") && (o = 0 < O ? O : X(window).height() / (100 / parseInt(t)), N.debugMode && N.debug.add("warn", "sliderInit.fullsize2", [L, t, o, X(window).height(), O]), t = o), O <= 0 && (O = t, N.debugMode && N.debug.add("warn", "sliderInit.conHeight", [L, t]));
                            break;
                        case "fixedsize":
                            break;
                        default:
                            N.userInitOptions.type = N.o.type = L = "responsive", (N.o.responsiveUnder = -1) !== e.indexOf("%") && (e = x, N.debugMode && N.debug.add("warn", "sliderInit.percWidth", [L, e, x])), -1 !== t.indexOf("%") && (e = T, N.debugMode && N.debug.add("warn", "sliderInit.responsive", [L, t, T])), N.debugMode && 0 < I && N.debug.add("warn", "sliderInit.conWidth2", [L, I]), N.debugMode && 0 < O && N.debug.add("warn", "sliderInit.conHeight2", [L, O])
                    }
                    $.addClass("ls-container ls-" + L), $.parent().addClass("ls-direction-fix"), N.o.preventSliderClip && N.o.fitScreenWidth && ("fullwidth" === L || "fullsize" === L && "fitheight" !== N.o.fullSizeMode) && $.parents(":not(body, html)").each(function() {
                        X(this).addClass("ls-overflow-visible")
                    }), N.userInitOptions.slideBGSize || "responsive" !== L || !N.userInitOptions.hasOwnProperty("sliderVersion") || N.userInitOptions.sliderVersion || (N.o.slideBGSize = "auto", N.debugMode && N.debug.add("warn", "sliderInit.bgCover", L)), N.o.slideBGSize = N.o.slideBGSize.replace("100% 100%", "stretch"), n = 0 < I ? I : e, l = 0 < O ? O : t, (d = "auto" === (v = P.style.marginLeft) ? "auto" : "" === v ? parseInt(w.getPropertyValue("margin-left")) : parseInt(P.style.marginLeft)) === (u = "auto" === (g = P.style.marginRight) ? "auto" : "" === g ? parseInt(w.getPropertyValue("margin-right")) : parseInt(P.style.marginRight)) && ("" === v && "" === g && (p = d, u = d = "auto"), $.css({
                        marginLeft: "auto",
                        marginRight: "auto"
                    })), c = "" !== S.paddingLeft ? parseInt(S.paddingLeft) : parseInt($.css("padding-left")), m = "" !== S.paddingRight ? parseInt(S.paddingRight) : parseInt($.css("padding-right")), h = "" !== S.paddingTop ? parseInt(S.paddingTop) : parseInt($.css("padding-top")), f = "" !== S.paddingBottom ? parseInt(S.paddingBottom) : parseInt($.css("padding-bottom")), b = "" !== S.borderLeftWidth ? parseInt(S.borderLeftWidth) : parseInt($.css("border-left-width")), v = "" !== S.borderRightWidth ? parseInt(S.borderRightWidth) : parseInt($.css("border-right-width")), g = "" !== S.borderTopWidth ? parseInt(S.borderTopWidth) : parseInt($.css("border-top-width")), S = "" !== S.borderBottomWidth ? parseInt(S.borderBottomWidth) : parseInt($.css("border-bottom-width")), y.initial = {
                        type: L,
                        width: e,
                        height: t,
                        originalWidth: i,
                        originalHeight: a,
                        percW: e / 100,
                        percH: t / 100,
                        layersWidth: I,
                        layersHeight: O,
                        ratio: n / l,
                        maxWidth: s,
                        marginLeft: d,
                        marginRight: u,
                        paddingLeft: c,
                        paddingTop: h,
                        paddingRight: m,
                        paddingBottom: f,
                        borderLeftWidth: b,
                        borderTopWidth: g,
                        borderRightWidth: v,
                        borderBottomWidth: S,
                        skinWidth: c + m + b + v,
                        skinHeight: h + f + g + S
                    }, N.debugMode && (N.debug.add("log", "sliderInit.style", [e, t, i, a, I, O, parseInt(n / l * 100) / 100, 0 < s ? s : void 0, [d, u]]), p && N.debug.add("warn", "sliderInit.margin", p)), X("html").attr("id") ? X("body").attr("id") || X("body").attr("id", "ls-global") : X("html").attr("id", "ls-global"), "static" !== w.getPropertyValue("position") && "absolute" !== w.getPropertyValue("position") && (P.style.position = "relative"), N.o.insertSelector && $[N.o.insertMethod](N.o.insertSelector), N.slider.$hiddenWrapper = X('<div class="ls-wp-container fitvidsignore ls-hidden" data-layerslider-uid="' + B + '"></div>').addClass($.attr("class")).prependTo("body"), N.slider.$innerWrapper = X('<div class="ls-inner"></div>'), N.slider.$layersWrapper = X('<div class="ls-layers"></div>').appendTo(N.slider.$innerWrapper), N.slider.$bgVideosWrapper = X('<div class="ls-background-videos"></div>').appendTo(N.slider.$layersWrapper), N.slider.$slideBGWrapper = X('<div class="ls-slide-backgrounds"></div>').appendTo(N.slider.$layersWrapper), N.slider.$innerWrapper.appendTo($), !0 === N.o.hideOnMobile && N.device.isMobile ? ($.addClass("ls-forcehide"), $.closest(".ls-wp-fullwidth-container").addClass("ls-forcehide"), N.o.autoStart = !1) : N.slider.check.showHide(), N.o.globalBGImage && N.slider.$innerWrapper.css({
                        backgroundImage: "url( " + N.o.globalBGImage + " )",
                        backgroundRepeat: N.o.globalBGRepeat,
                        backgroundAttachment: N.o.globalBGAttachment,
                        backgroundSize: N.o.globalBGSize,
                        backgroundPosition: N.o.globalBGPosition
                    }), N.slider.$innerWrapper.css({
                        backgroundColor: N.o.globalBGColor
                    }), "transparent" == N.o.globalBGColor && !1 === N.o.globalBGImage && N.slider.$innerWrapper.css({
                        background: "none transparent"
                    })
                },
                options: function() {
                    var t, i, a, s, r;
                    X("html").find('meta[content*="WordPress"]').length && (N.meta.wpVersion = X("html").find('meta[content*="WordPress"]').attr("content").split("WordPress")[1]), window.LS_Meta && window.LS_Meta.v ? N.meta.lswpVersion = window.LS_Meta.v : X("html").find('script[src*="layerslider"]').length && -1 != X("html").find('script[src*="layerslider"]').attr("src").indexOf("?") && (N.meta.lswpVersion = X("html").find('script[src*="layerslider"]').attr("src").split("?")[1].split("=")[1]), "undefined" != typeof layerSliderTransitions && (N.t = X.extend({}, layerSliderTransitions)), "undefined" != typeof layerSliderCustomTransitions && (N.ct = X.extend({}, layerSliderCustomTransitions)), N.debugMode && ("undefined" != typeof layerCustomSliderTransitions ? (N.debug.add("log", "sliderInit.customTransitions", !1), "undefined" == typeof layerSliderTransitions && N.debug.add("warn", "sliderInit.slideTransitions")) : "undefined" == typeof layerSliderTransitions && N.debug.add("warn", "sliderInit.noSlideTransitions")), "number" == typeof N.o.parallaxCenterDegree && (N.transitions.layers.parallax.defaults.centerDegree = N.o.parallaxCenterDegree), "number" == typeof N.o.parallaxSensitivity && (N.transitions.layers.parallax.defaults.sensitive = N.o.parallaxSensitivity), N.o.parallaxCenterLayers && (N.transitions.layers.parallax.defaults.centerLayers = N.o.parallaxCenterLayers), N.o.playByScroll && (N.o.cycles = -1, N.o.startInViewport = !0, N.o.pauseOnHover = !1, N.o.autoStart = !1), N.device.isMobile && (N.o.pauseOnHover = !1), X(window).on("hashchange." + B, function() {
                        document.location.hash && N.slides.deeplink(document.location.hash)
                    }), N.o.startInViewport && (N.slider.positionToViewport = N.device.winScrollTop > N.slider.offsetTop - (N.device.viewportHeight - N.slider.height) / 2 ? "under" : "over", N.o.playByScroll ? (t = !0, i = 4 * N.o.playByScrollSpeed, N.device.scroll.timeout = 250, N.transitions.layers.timeline.timeScaleModifier = 0, X(document).on("wheel." + B + " touchmove." + B, function(e) {
                        N.device.isMobile ? (a = e.originalEvent.touches[0].clientY, s < a ? N.device.scroll.direction = "up" : a < s && (N.device.scroll.direction = "down"), r = s - a, s = a) : (0 < e.originalEvent.deltaY ? N.device.scroll.direction = "down" : N.device.scroll.direction = "up", r = e.originalEvent.deltaY), 0 !== Math.abs(r) && (N.device.scroll.lastDirection ? N.device.scroll.lastDirection !== N.device.scroll.direction && (N.device.scroll.lastDirection = N.device.scroll.direction, N.transitions.layers.timeline.timeScaleModifier = 0) : N.device.scroll.lastDirection = N.device.scroll.direction, "inside" === N.slider.positionToViewport && (N.resize.viewport(), 0 <= r ? N.transitions.layers.timeline.scrollForward() : N.transitions.layers.timeline.scrollBackwards(), t && (clearTimeout(N.timeouts.scroll), t = !1, N.transitions.layers.timeline.timeScaleModifier = N.transitions.layers.timeline.timeScaleModifier < i ? N.transitions.layers.timeline.timeScaleModifier + .25 : i, N.timeouts.scroll2 = setTimeout(function() {
                            delete N.timeouts.scroll2, t = !0, N.device.scroll.timeout = 50 < N.device.scroll.timeout ? N.device.scroll.timeout - 50 : 50
                        }, N.device.scroll.timeout))), N.slider.check.positionToViewport())
                    })) : X(window).on("scroll." + B, function() {
                        N.slider.check.positionToViewport()
                    }), N.timeouts.checkPosition = setTimeout(function() {
                        N.slider.check.positionToViewport()
                    }, 25)), N.slider.canShow = !0
                },
                attributes: function() {
                    $.attr("data-current-slide", N.slides.current.index)
                }
            },
            check: {
                initialized: function() {
                    N.debugMode && N.debug.add("log", "sliderInit.info", [N.plugin.version, N.plugin.releaseDate, N.userInitOptions.sliderVersion || "n/a or slider version is pre 6.0.0", $.attr("id"), B, X.fn.jquery, N.meta.lswpVersion, N.meta.wpVersion], !0), N.slider.initialized || (N.slider.initialized = !0, this.skins())
                },
                skins: function() {
                    N.o.skin && "" !== N.o.skin && N.o.skinsPath && "" !== N.o.skinsPath ? N.gui.skin.load() : N.slider.init()
                },
                showHide: function() {
                    N.device.isMobile && !1 !== N.o.hideOnMobile || (N.device.viewportWidth < N.o.hideUnder || N.device.viewportWidth > N.o.hideOver && 0 < N.o.hideOver ? N.slider.hide() : N.slider.show())
                },
                positionToViewport: function() {
                    var e, t;
                    delete N.timeouts.checkPosition, N.o.playByScroll ? N.device.scroll.direction && (t = "down" === N.device.scroll.direction ? N.device.winScrollTop : N.slider.offsetTop - (N.device.viewportHeight - N.slider.height) / 2, (("down" === N.device.scroll.direction ? N.slider.offsetTop - (N.device.viewportHeight - N.slider.height) / 2 : N.device.winScrollTop) < t && ("up" === N.device.scroll.direction && "under" === N.slider.positionToViewport || "down" === N.device.scroll.direction && "over" === N.slider.positionToViewport) || N.device.docHeight <= N.device.viewportHeight || N.slider.height < N.device.viewportHeight && ("up" === N.device.scroll.direction && N.device.winScrollTop <= 0 && N.slider.offsetTop + N.slider.height / 2 < N.device.viewportHeight / 2 || "down" === N.device.scroll.direction && N.device.winScrollTop >= N.device.docHeight - N.device.viewportHeight && N.slider.offsetTop + N.slider.height / 2 > N.device.winScrollTop + N.device.viewportHeight / 2)) && (N.slider.positionToViewport = "inside", N.resize.viewport(), N.device.scroll.disable())) : (e = N.device.winScrollTop + N.device.viewportHeight / 2, t = N.slider.offsetTop + N.slider.height / 2, (Math.abs(e - t) < N.device.viewportHeight / 2 || N.device.winScrollTop < N.slider.offsetTop && N.device.winScrollTop + N.device.viewportHeight > N.slider.offsetTop + N.slider.height) && (N.slider.positionToViewport = "inside", X(window).off("scroll." + B), N.debugMode && N.debug.add("log", "slideshow.inviewport", !1), N.transitions._slideTimeline && N.transitions.layers.timeline.play()))
                }
            },
            init: function() {
                clearTimeout(N.timeouts.skinLoad1), clearTimeout(N.timeouts.skinLoad2), clearTimeout(N.timeouts.skinLoad3), clearTimeout(N.timeouts.skinLoad4), N.device.setBasicEvents(), N.slider.set.styles(), N.slider.set.options(), N.slides.init(), N.device.fullscreen.set(), N.media.init(), N.gui.timers.init(), N.gui.loadingIndicator.init(), N.preload.init(), N.gui.shadow.init(), N.navigation.init(), N.slideshow.init(), N.slides.set.firstSlide(), N.gui.navigation.init(), N.gui.media.init(), N.resize.slider(), N.yourLogo.init(), X(window).on("resize." + B, function() {
                    N.slider.check.showHide(), "inside" === N.slider.positionToViewport && N.o.playByScroll && N.resize.viewport(), N.slider.shouldResize && N.resize.all()
                }), N.debugMode && (X(window).off(".debug" + B), X(window).on("resize.debug" + B, function() {
                    N.debug.add("log", "resize.window", N.device.viewportWidth, !0)
                })), X(window).on("orientationchange." + B, function() {
                    N.device.getDimensions(), N.resize.all()
                }), N.device.getDimensions(), X(window).trigger("resize." + B), X(window).trigger("orientationchange." + B), N.o.refreshWaypoint && window.Waypoint && Waypoint.refreshAll(), N.api.hasEvent("sliderDidLoad") && $.triggerHandler("sliderDidLoad", N.api.eventData()), N.functions.setStates(N.slider, {
                    isLoaded: !0
                }), N.slider.state.shouldBeDestroyed ? N.api.methods("destroy") : ((-1 < N.o.hideOver || -1 < N.o.hideUnder || "fullsize" == N.slider.initial.type && "hero" == N.o.fullSizeMode) && !N.intervals.checkSliderOffset && (N.intervals.checkSliderOffset = setInterval(function() {
                    N.device.checkSliderOffset()
                }, 100)), N.slideshow.changeTo(N.slides.first.index))
            },
            hide: function() {
                $.addClass("ls-forcehide"), $.closest(".ls-wp-fullwidth-container").addClass("ls-forcehide"), $.closest(".ls-popup").addClass("ls-forcehide"), $.closest(".ls-popup").prev(".ls-popup-overlay").addClass("ls-forcehide")
            },
            show: function() {
                $.removeClass("ls-forcehide"), $.closest(".ls-wp-fullwidth-container").removeClass("ls-forcehide"), $.closest(".ls-popup").removeClass("ls-forcehide"), $.closest(".ls-popup").prev(".ls-popup-overlay").removeClass("ls-forcehide")
            }
        }, N.functions = {
            convert: {
                transformOrigin: function(e, t, i) {
                    for (var a = (n = X.trim(e)).split(" "), s = "", r = ["Left", "Top"], o = [N.slider.width, N.slider.height], n = n.replace("sliderleft", "0").replace("sliderright", "100%").replace("slidercenter", "50%").replace("slidermiddle", "50%").replace("slidertop", "0").replace("sliderbottom", "100%").replace("left", "0").replace("right", "100%").replace("center", "50%").replace("middle", "50%").replace("top", "0").replace("bottom", "100%").split(" "), l = 0; l < n.length; l++)
                        if (-1 !== a[l].indexOf("slider")) {
                            N.transitions.layers.timeline.shouldRestart = !0;
                            var d = t.data(N.defaults.init.dataKey).elements.$wrapper[0].style;
                            s += l < 2 ? o[l] / (100 / parseInt(n[l])) - parseInt(d[r[l].toLowerCase()]) - parseInt(d["margin" + r[l]]) + "px " : "0px"
                        } else {
                            if (l < 2 && t && i) switch (l) {
                                case 0:
                                    o = i.width();
                                    break;
                                case 1:
                                    o = i.height()
                            } - 1 !== n[l].indexOf("%") ? s += l < 2 && t && i ? o / (100 / parseInt(n[l])) + "px " : n[l] + " " : s += parseInt(n[l]) * N.resize.ratio + "px "
                        }
                    return X.trim(s)
                },
                easing: function(e, t) {
                    return "string" != typeof e ? e : (-1 !== (e = e.toLowerCase()).indexOf("swing") || -1 !== e.indexOf("linear") ? i = H.Linear.easeNone : (a = e.match(/(easeinout|easein|easeout)(.+)/)[2], a = H[a.charAt(0).toUpperCase() + a.slice(1)], -1 !== e.indexOf("easeinout") ? i = a.easeInOut : -1 !== e.indexOf("easeout") ? i = t ? a.easeIn : a.easeOut : -1 !== e.indexOf("easein") && (i = t ? a.easeOut : a.easeIn)), i);
                    var i, a
                },
                transition: function(e, t, i, a) {
                    var s = X.extend({}, e);
                    return X.each({
                        rotate: "rotation",
                        rotateX: "rotationX",
                        rotateY: "rotationY"
                    }, function(e, t) {
                        e in s && (s[t] = s[e], delete s[e])
                    }), "after" === i ? s.scaleX = s.scaleY = s.scaleZ = 1 : s.scale3d !== a && (s.scaleX = s.scaleY = s.scaleZ = s.scale3d, delete s.scale3d), s.delay && (s.delay = "after" === i ? s.delay / 1e3 : s.delay), void 0 === t && (t = "easeInOutQuart"), s.ease = N.functions.convert.easing(t), s
                },
                randomProperties: function(e, t) {
                    if (e && -1 !== e.indexOf("(") && -1 !== e.indexOf(",") && -1 !== e.indexOf(")")) {
                        var i = e.split("(")[1].split(")")[0].split(","),
                            a = 1;
                        return i[0] = parseFloat(i[0]), i[1] = parseFloat(i[1]), -1 !== t.indexOf("scale") && (a = 100, i[0] *= a, i[1] *= a), Math.floor(Math.random() * (i[1] - i[0] + 1) + i[0]) / a
                    }
                    return e
                },
                properties: function(e, t) {
                    if ("string" == typeof e) return N.functions.convert._properties(e, t);
                    if ("object" != typeof e) return e;
                    for (var i in e) e[i] = N.functions.convert._properties(e[i], t);
                    return e
                },
                _properties: function(e, t) {
                    if ("enable" == e || "enabled" == e || "true" == e) return !0;
                    if ("disable" == e || "disabled" == e || "false" == e) return !1;
                    if ("string" != typeof e || -1 === e.indexOf(N.defaults.init.lsDataArraySplitChar)) return t ? "" + parseInt(e) == "NaN" ? 0 : parseInt(e) : X.isNumeric(e) ? parseFloat(e) : e;
                    for (var i = e.split(N.defaults.init.lsDataArraySplitChar), a = [], s = 0; s < i.length; s++) a[s] = X.isNumeric(i[s]) ? parseFloat(X.trim(i[s])) : X.trim(i[s]);
                    return a
                },
                oldProperties: function(i) {
                    return X.each({
                        firstLayer: "firstSlide",
                        loops: "cycles",
                        forceLoopNum: "forceCycles",
                        layersContainer: "layersContainerWidth",
                        sublayerContainer: "layersContainerWidth",
                        randomSlideshow: "shuffleSlideshow"
                    }, function(e, t) {
                        e in i && (i[t] = i[e], delete i[e])
                    }), i
                }
            },
            getSliderClosestParentElementWidthNumericValueOfProperty: function(e) {
                for (var t, i = $.parents().not(".ls-fullscreen-wrapper"), a = i.length, s = 100, r = 0; r < a; r++)
                    if ("auto" !== (t = window.getComputedStyle(i[r]).getPropertyValue(e))) {
                        if (-1 !== t.indexOf("px")) return N.slider.$parentWithNumericWidthValue = X(i[r]), X(i[r]); - 1 !== t.indexOf("%") && (s = s / 100 * parseInt(t), N.slider.$parentWithNumericWidthValuePercent = s)
                    }
            },
            sortArray: function(e, t, i) {
                var a = [];
                if ("forward" == i)
                    for (var s = 0; s < e; s++)
                        for (var r = 0; r < t; r++) a.push(s + r * e);
                else
                    for (var o = e - 1; - 1 < o; o--)
                        for (var n = t - 1; - 1 < n; n--) a.push(o + n * e);
                return a
            },
            shuffleArray: function(e) {
                for (var t, i, a = e.length; 0 !== a;) i = Math.floor(Math.random() * a), t = e[--a], e[a] = e[i], e[i] = t;
                return e
            },
            countProp: function(e) {
                var t, i = 0;
                for (t in e) e.hasOwnProperty(t) && ++i;
                return i
            },
            getURL: function(e) {
                return e[0].currentSrc || (e.data("src") ? e.data("src") : e.attr("src"))
            },
            getALT: function(e) {
                return !!e.attr("alt") && e.attr("alt")
            },
            setStates: function(e, t, i) {
                if (e && e.state) {
                    var a = N.slideshow.isPaused();
                    if (i) e.state[t] = i;
                    else
                        for (var s in t) e.state[s] = t[s];
                    i = N.slideshow.isPaused();
                    e == N.slideshow && (N.api.hasEvent("slideshowStateDidChange") && $.triggerHandler("slideshowStateDidChange", N.api.eventData()), i != a && (i ? N.api.hasEvent("slideshowDidPause") && $.triggerHandler("slideshowDidPause", N.api.eventData()) : N.api.hasEvent("slideshowDidResume") && $.triggerHandler("slideshowDidResume", N.api.eventData())))
                }
            },
            clearTimers: function() {
                for (var e in N.timeouts) clearTimeout(N.timeouts[e]), delete N.timeouts[e];
                for (var t in N.intervals) clearInterval(N.intervals[t]), delete N.intervals[t]
            },
            clearTimelines: function() {
                N.transitions._slideTimeline && (N.transitions._slideTimeline.pause().clear().kill(), delete N.transitions._slideTimeline), N.transitions._forceLayersOut && (N.transitions._forceLayersOut.kill(), delete N.transitions._forceLayersOut), N.transitions._slideTransition && (N.transitions._slideTransition.pause().clear().kill(), delete N.transitions._slideTransition), H.TweenMax.killTweensOf($.find(".ls-bg, .ls-layer, .ls-wrapper, .ls-curtile, .ls-nexttile").get())
            },
            resetSlideTimelines: function() {
                N.transitions._slideTimeline && (N.transitions._slideTimeline.pause().progress(0).clear().kill(), delete N.transitions._slideTimeline), N.transitions._forceLayersOut && (N.transitions._forceLayersOut.pause().progress(1).clear().kill(), delete N.transitions._forceLayersOut), $.find(".ls-layer:not(.ls-bg-video)").each(function() {
                    var e = X(this).data(N.defaults.init.dataKey);
                    e.loop._timeline && (e.loop._timeline.stop().clear(), delete e.loop._timeline, H.TweenMax.set(e.elements.$loopWrapper[0], e.reset.loopWrapperOnSlideChange)), H.TweenMax.set(e.elements.$wrapper[0], e.reset.wrapperOnSlideChange)
                })
            },
            clearEvents: function() {
                X(window).add("body").add($).add($.find("*")).add("." + B).off("." + B + " .debug" + B + " .parallax" + B + " .setter" + B), $.off()
            }
        }, N.device = {
            $overflowWrapper: X("body").length ? X("body") : X("html"),
            isMobile: !!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|webOS|Windows Phone|mobi|opera mini|nexus 7)/i),
            supportOrientation: !!window.DeviceOrientationEvent,
            scroll: {
                keys: [32, 33, 34, 35, 36, 37, 38, 39, 40],
                disable: function() {
                    window.addEventListener("scroll", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("wheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("mousewheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("touchmove", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("keydown", this.preventDefaultForScrollKeys, {
                        capture: !0
                    })
                },
                enable: function() {
                    window.removeEventListener("scroll", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("wheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("mousewheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("touchmove", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("keydown", this.preventDefaultForScrollKeys, {
                        capture: !0
                    })
                },
                preventDefault: function(e) {
                    (e = e || window.event).preventDefault && e.preventDefault(), e.returnValue = !1
                },
                preventDefaultForScrollKeys: function(e) {
                    if (-1 !== N.device.scroll.keys.indexOf(e.keyCode)) return N.device.scroll.preventDefault(e), !1
                }
            },
            removeSelection: function() {
                window.getSelection ? window.getSelection().empty ? window.getSelection().empty() : window.getSelection().removeAllRanges && window.getSelection().removeAllRanges() : document.selection && document.selection.empty()
            },
            fullscreen: {
                enter: function() {
                    "fullsize" == N.slider.initial.type && "hero" == N.o.fullSizeMode && (N.slider.heroTop = N.slider.offsetTop), N.functions.setStates(N.slider, {
                        inFullscreen: !0
                    }), X("body, html").addClass("ls-fullscreen"), N.slider.fullscreenWrapper.requestFullscreen(), $.trigger("mouseleave"), N.device.removeSelection()
                },
                exit: function() {
                    N.functions.setStates(N.slider, {
                        inFullscreen: !1
                    }), N.resize.all(), X("body, html").removeClass("ls-fullscreen"), N.device.removeSelection()
                },
                toggle: function() {
                    N.device.fullscreen.element() ? (N.device.fullscreen.exit(), document.exitFullscreen()) : N.device.fullscreen.enter()
                },
                set: function() {
                    N.o.allowFullscreen && (document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled) && ($.wrap('<div class="ls-fullscreen-wrapper"></div>'), N.slider.$fullscreenWrapper = $.closest(".ls-fullscreen-wrapper"), N.slider.fullscreenWrapper = N.slider.$fullscreenWrapper[0], N.slider.fullscreenWrapper.requestFullscreen = N.slider.fullscreenWrapper.requestFullscreen || N.slider.fullscreenWrapper.webkitRequestFullscreen || N.slider.fullscreenWrapper.mozRequestFullScreen || N.slider.fullscreenWrapper.msRequestFullscreen, document.exitFullscreen = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen, X(document).on("fullscreenchange." + B + " webkitfullscreenchange." + B + " mozfullscreenchange." + B + " msfullscreenchange." + B, function() {
                        N.device.fullscreen.element() || N.device.fullscreen.exit()
                    }), N.slider.$fullscreenWrapper.on("dblclick." + B, function() {
                        N.device.fullscreen.toggle()
                    }))
                },
                element: function() {
                    return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement
                }
            },
            getDimensions: function() {
                this.width = screen.width, this.height = screen.height, this.viewportWidth = X(window).width(), this.viewportHeight = X(window).height(), this.docWidth = X(document).width(), this.docHeight = X(document).height(), this.winScrollTop = X(window).scrollTop(), this.winScrollLeft = X(window).scrollLeft(), this.ratio = this.width / this.height, this.checkSliderOffset()
            },
            checkSliderOffset: function() {
                "none" !== $.css("display") && (N.slider.offsetTopOld = N.slider.offsetTop || Math.round($.offset().top), N.slider.offsetLeftOld = N.slider.offsetLeft || Math.round($.offset().left), N.slider.offsetTop = Math.round($.offset().top), N.slider.offsetLeft = Math.round($.offset().left), N.slider.offsetTopOld === N.slider.offsetTop && N.slider.offsetLeftOld === N.slider.offsetLeft || (N.resize.all(), N.slider.check.positionToViewport(), X(window).trigger("scroll")))
            },
            setBasicEvents: function() {
                var t, i = this;
                X(window).on("resize.setter" + B, function() {
                    i.viewportWidth = X(window).width(), i.viewportHeight = X(window).height(), i.ratio = i.width / i.height, i.checkSliderOffset()
                }), X(window).on("scroll.setter" + B, function() {
                    i.winScrollTop = X(window).scrollTop(), i.winScrollLeft = X(window).scrollLeft(), i.checkSliderOffset()
                }), X(window).on("touchmove", function(e) {
                    i.winScrollTop = window.pageYOffset, i.winScrollLeft = window.pageXOffset, 1 == (t = e.touches || e.originalEvent.touches).length && (i.touchX = t[0].clientX)
                })
            }
        }, N.api = {
            hasEvent: function(e, t) {
                t = X._data(t || P, "events");
                return !(!t || !t[e])
            },
            methods: function(e, t, i, a) {
                if (!N.slider.isBusy())
                    if ("number" == typeof e) 0 < e && e < N.slides.count + 1 && e != N.slides.current.index && N.slideshow.changeTo(e, !0, !0);
                    else switch (e) {
                        case "touchPrev":
                            N.device.touchPrev = !0;
                        case "previousSlide":
                        case "prev":
                            N.navigation.prev();
                            break;
                        case "touchNext":
                            N.device.touchNext = !0;
                        case "nextSlide":
                        case "next":
                            N.navigation.next();
                            break;
                        case "startSlideshow":
                        case "start":
                            N.navigation.start()
                    }
                    switch (e) {
                        case "openPopup":
                            N.initializedPlugins.popup && (t && X.isNumeric(t) ? $.layerSlider("fastChangeTo", t, function() {
                                N.initializedPlugins.popup.events.show()
                            }) : N.initializedPlugins.popup.events.show());
                            break;
                        case "fastChangeTo":
                            t && X.isNumeric(t) && (N.slides.current.index !== t ? (N.slideshow.forceFastChange = !0, i && "function" == typeof i && (N.slideshow.forceFastChangeCallback = i), N.slideshow.changeTo(t, !0, !0)) : i && i());
                            break;
                        case "closePopup":
                            N.initializedPlugins.popup && N.initializedPlugins.popup.events.hide();
                            break;
                        case "updateLayerData":
                            t && N.layers.update.data(t, i, a);
                            break;
                        case "redrawSlider":
                        case "redraw":
                            N.resize.all();
                            break;
                        case "replaySlide":
                        case "replay":
                            N.transitions._slideTimeline && (N.transitions._slideTimeline.progress(0), N.transitions._slideTimeline.play());
                            break;
                        case "reverseSlide":
                        case "reverse":
                            N.transitions._slideTimeline && (N.transitions._slideTimeline.reversed() ? N.transitions._slideTimeline.play() : N.transitions._slideTimeline.reverse(), t && (N.transitions.layers.timeline.shouldReplay = !0));
                            break;
                        case "unmute":
                        case "unmuteMedia":
                            N.media.unmute.multipleMediaElements();
                            break;
                        case "stopSlideshow":
                        case "stop":
                            N.navigation.stop();
                            break;
                        case "pauseSlider":
                        case "pause":
                            N.transitions._slideTimeline && N.transitions._slideTimeline.stop(), N.transitions._slideTransition && N.transitions._slideTransition.stop(), N.media.functions.stop(!1);
                            break;
                        case "resumePopup":
                            N.layers.get("active").each(function() {
                                N.media.functions.playIfAllowed(X(this))
                            });
                        case "resumeSlider":
                        case "resume":
                            N.transitions._slideTimeline && (N.transitions._slideTimeline.timeScale() < .001 && N.transitions.layers.timeline.resume(), N.transitions._slideTimeline.play()), N.transitions._slideTransition && N.transitions._slideTransition.play();
                            break;
                        case "playMedia":
                            N.media.functions.playActiveMedia();
                            break;
                        case "pauseMedia":
                            N.media.functions.pauseActiveMedia();
                            break;
                        case "toggleSlider":
                        case "toggle":
                            N.slider.isPaused ? ($.layerSlider("resume"), N.slider.isPaused = !1) : ($.layerSlider("pause"), N.slider.isPaused = !0);
                            break;
                        case "reset":
                        case "resetSlider":
                            break;
                        case "resetSlide":
                        case "resetCurrentSlide":
                            N.transitions._slideTimeline && (N.transitions._slideTimeline.progress(0), N.transitions._slideTimeline.stop()), N.media.functions.stop(!0);
                            break;
                        case "destroy":
                        case "kill":
                            if (N.slider.state.isLoaded) {
                                if (N.functions.clearTimers(), N.functions.clearTimelines(), N.layers.$all.removeData(), N.api.hasEvent("sliderDidDestroy") && $.triggerHandler("sliderDidDestroy"), N.slider.state.sholudBeRemoved || t) {
                                    if (N.slider.$hiddenWrapper.remove(), N.gui.timers.slidebar.$containerElement)
                                        for (var s = 0; s < N.gui.timers.slidebar.$containerElement.length; s++) N.gui.timers.slidebar.$containerElement[s] instanceof jQuery && N.gui.timers.slidebar.$containerElement[s].remove();
                                    N.api.hasEvent("sliderDidRemove") && $.triggerHandler("sliderDidRemove");
                                    var r = $;
                                    r.closest(".ls-fullscreen-wrapper").length ? r = r.closest(".ls-fullscreen-wrapper") : r.closest(".ls-popup").length && (r = r.closest(".ls-popup")).prev(".ls-popup-overlay").remove(), r.remove()
                                }
                                N.functions.clearEvents(), window._layerSlider.removeSlider(B)
                            } else N.functions.setStates(N.slider, {
                                shouldBeDestroyed: !0,
                                sholudBeRemoved: t || !1
                            });
                            N.slider.positionToViewport = "under", N.device.scroll.enable()
                    }
            },
            eventData: function() {
                return {
                    data: N,
                    userData: N.o,
                    uid: B,
                    target: P,
                    slider: $,
                    state: N.slider.state,
                    isBusy: N.slider.isBusy(),
                    event: {
                        target: P
                    },
                    api: function(e, t, i, a) {
                        $.layerSlider(e, t, i, a)
                    },
                    slides: {
                        first: {
                            index: N.slides.first.index,
                            deeplink: N.slides.get.deeplink(N.slides.first.index),
                            data: N.slides.first.data
                        },
                        prev: {
                            index: N.slides.prev.index,
                            deeplink: N.slides.get.deeplink(N.slides.prev.index),
                            data: N.slides.prev.data
                        },
                        current: {
                            index: N.slides.current.index || N.slides.first.index,
                            deeplink: N.slides.get.deeplink(N.slides.current.index),
                            layersIn: N.layers.get("current,in"),
                            layersOut: N.layers.get("current,out"),
                            timeline: N.transitions._slideTimeline,
                            data: N.slides.current.data
                        },
                        next: {
                            index: N.slides.next.index,
                            deeplink: N.slides.get.deeplink(N.slides.next.index),
                            layersIn: N.layers.get("next,in"),
                            layersOut: N.layers.get("next,out"),
                            data: N.slides.next.data
                        },
                        count: N.slides.count
                    },
                    slideChangeTimeline: N.transitions._slideTransition,
                    slideshow: {
                        state: N.slideshow.state,
                        sequence: N.slideshow.sequence,
                        direction: N.slideshow.direction,
                        isPaused: N.slideshow.isPaused()
                    },
                    cycles: {
                        max: N.o.cycles,
                        current: N.slideshow.curCycle
                    }
                }
            }
        }, N.browser = {
            isSafari: !!navigator.userAgent.match(/(iPhone|iPod|iPad|Safari)/i) && !navigator.userAgent.match(/(Opera|Chrome|Edge)/i),
            isChrome: function() {
                var e = window.chrome,
                    t = window.navigator,
                    i = t.vendor,
                    a = void 0 !== window.opr,
                    s = -1 < t.userAgent.indexOf("Edge"),
                    s = !!t.userAgent.match("CriOS") || null != e && "Google Inc." === i && !1 == a && !1 == s;
                return s
            },
            usesFileProtocol: -1 !== document.location.href.indexOf("file://"),
            supports3D: function() {
                for (var e = X("<div>"), t = !1, i = !1, a = ["perspective", "OPerspective", "msPerspective", "MozPerspective", "WebkitPerspective"], s = ["transformStyle", "OTransformStyle", "msTransformStyle", "MozTransformStyle", "WebkitTransformStyle"], r = a.length - 1; 0 <= r; r--) t = t || void 0 !== e[0].style[a[r]];
                for (var o = s.length - 1; 0 <= o; o--) e.css("transform-style", "preserve-3d"), i = i || "preserve-3d" == e[0].style[s[o]];
                return t && void 0 !== e[0].style[a[4]] && (e.attr("id", "ls-test3d").appendTo($), t = 3 === e[0].offsetHeight && 9 === e[0].offsetLeft, e.remove()), t && i
            },
            isOld: -1 !== navigator.userAgent.indexOf("rident/5")
        }, N.initializedPlugins = {}, N.timeouts = {}, N.intervals = {}, N.debug = {
            options: {}
        }, N.plugin = {
            version: "6.11.7",
            release: "stable",
            releaseDate: "2021. 04. 07."
        }, N.slider.load()
    }
}(jQuery);
                                    

#79 JavaScript::Eval (size: 32, repeated: 1) - SHA256: 2ef00b0284fac06699d66459e111cd2775eb05a00f7341099ec347b6200ce021

                                        0,
function(D) {
    kD(8, D, true, 19, 1)
}
                                    

#80 JavaScript::Eval (size: 1, repeated: 1) - SHA256: de5a6f78116eca62d7fc5ce159d23ae6b889b365a1739ad2cf36f925a140d0cc

                                        V
                                    

#81 JavaScript::Eval (size: 175, repeated: 1) - SHA256: ddc9b2e0459559e8867876d9e45dbe61f8dd1d5f182b86d7ff75ccff08be8ebc

                                        0, xu = function(Y, G, R, g, M, X, D, H) {
    try {
        H = Y[((G | 0) + 2) % 3], Y[G] = (X = (M = Y[G], g = Y[((G | 0) + 1) % 3], (M ^ g) - (~M ^ g) - 3 * (~M & g) + (~M | g)) - (H | 0), D = 1 == G ? H << R : H >>> R, (X | D) + ~X - (~X | D))
    } catch (A) {
        throw A;
    }
}
                                    

#82 JavaScript::Eval (size: 144, repeated: 1) - SHA256: d54a8ea593915e69fcd68d76bd1240603f7e03316157bb2bfab2c8fc9edfc0f3

                                        0,
function(D, H, A, q) {
    if (A = D.qE.pop()) {
        for (q = V(8, true, D); 0 < q; q--) H = J(7, D), A[H] = D.O[H];
        (A[370] = (A[482] = D.O[482], D.O[370]), D).O = A
    } else p(D, 166, D.s)
}
                                    

#83 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 32e9a9804bffe909ff226129e9bed998115326d58d3eca039114f3865ff5269c

                                        YD
                                    

#84 JavaScript::Eval (size: 75, repeated: 1) - SHA256: a509c6f87e275963fd6d2d162af1f37401c3de9dc82b7adc794e6bab033f402f

                                        0,
function(D, H, A, q) {
    p(D, (H = J(3, (q = V(8, true, (A = J(6, D), D)), D)), H), Z(D, A) << q)
}
                                    

#85 JavaScript::Eval (size: 83, repeated: 1) - SHA256: f545997d70f5dc01ef00af1bef8babfd0d36f214df8cb04100f52978b93e1b80

                                        0,
function(D, H, A, q, S) {
    (H = Z((S = 0 != (q = J(3, (A = J(6, D), D)), Z)(D, A), D), q), S) && p(D, 166, H)
}
                                    

#86 JavaScript::Eval (size: 95, repeated: 1) - SHA256: 8ea63e682d59f962002c28cc6db9d4144a56e2dec3b0571dde239ed092e83c3f

                                        0,
function(D, H, A, q, S, a) {
    p(D, (S = Z(D, (q = Z(D, (H = J(5, (A = J(3, (a = J(5, D), D)), D)), A)), a)), H), S in q | 0)
}
                                    

#87 JavaScript::Eval (size: 302, repeated: 1) - SHA256: d11ae2dff5e34fc99d340f6625fec06416982ae161d1a87f742e4cec6f85bcfb

                                        0,
function(D, H, A, q, S, a, m, v, e, B, N, n, F, C) {
    if (!T(41, 4, true, true, H, D)) {
        if ("object" == GQ("object", "number", (n = Z(D, (B = Z(D, (v = Z(D, (C = (q = J(6, (A = J(5, (a = J(7, (S = J(6, D), D)), D)), D)), Z(D, A)), a)), q)), S)), n))) {
            for (e in m = [], n) m.push(e);
            n = m
        }
        for (C = (F = n.length, N = 0, 0) < C ? C : 1; N < F; N += C) v(n.slice(N, 3 * (N & C) + ~(N & C) - (~N ^ C)), B)
    }
}
                                    

#88 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 9c2f138690fca4890c3c4a6691610fbbbdf32091cc001f7355cfdf574baa52b9

                                        xu
                                    

#89 JavaScript::Eval (size: 134, repeated: 1) - SHA256: 3144c527fe20c444af9f0528a2b6916c40579cae4fd54fe8342f5b553eda1828

                                        0, uh = function(Y, G, R, g, M, X) {
    return Z((p(M, (ih(Y, (X = Z(M, 166), M.N && X < M.s ? (p(M, 166, M.s), Rr(166, G, M)) : p(M, 166, G), R), false, M), 166), X), M), g)
}
                                    

#90 JavaScript::Eval (size: 158, repeated: 1) - SHA256: d76bc85338d089c44a3c02aed8cc04008445e495d7fd3878aaaba696d9386665

                                        0,
function(D, H, A, q, S, a) {
    (S = J(3, (H = J(5, (a = J(7, D), D)), D)), D.h) == D && (q = Z(D, H), A = Z(D, S), Z(D, a)[q] = A, 463 == a && (D.Z = void 0, 2 == q && (D.g = ob(8, false, D, 32), D.Z = void 0)))
}
                                    

#91 JavaScript::Eval (size: 71, repeated: 1) - SHA256: e99bfe6a5d957e99184420bab0d7e98aa7b75c17a8a5652e26fd9dde7be7541d

                                        0, Rr = function(Y, G, R) {
    p(R, Y, ((R.qE.push(R.O.slice()), R.O)[Y] = void 0, G))
}
                                    

#92 JavaScript::Eval (size: 31, repeated: 1) - SHA256: 6e4c074bba968f3a2899edcbccf9e893ebdad7a5a533463e4d9630f28f3baed1

                                        (a = 0) => {
    let b;
    const c = class {};
}
                                    

#93 JavaScript::Eval (size: 106, repeated: 1) - SHA256: f559c4d9e9700b66e0f682f4db081bce7b7883fef69485a6b65680b682f814dd

                                        0,
function(Y, G, R, g) {
    for (g = 0; g < Y.length; g++) G.push(Y.charAt ? 255 & Y.charCodeAt(g) : Y[g]);
    G.d.push(Y.length, R)
}
                                    

#94 JavaScript::Eval (size: 130, repeated: 1) - SHA256: d832a31f4e01aea00cf5af606893ee2406174f8afcad073514e4bbdcdc6cae24

                                        wx = function(Y, G, R, g, M) {
    if (3 == Y.length) {
        for (M = 0; 3 > M; M++) G[M] += Y[M];
        for (R = (g = [13, 8, 13, 12, 16, 5, 3, 10, 15], 0); 9 > R; R++) G[3](G, R % 3, g[R])
    }
}
                                    

#95 JavaScript::Eval (size: 76, repeated: 1) - SHA256: 1bc6a12c69916d735ab73defc46b6744bb49982b6fe90f38e5847f3af857c38d

                                        0,
function(D, H, A, q) {
    p(D, (H = J(3, (q = V(8, true, (A = J(6, D), D)), D)), H), Z(D, A) >>> q)
}
                                    

#96 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 4985842a779748cfa0f2b32c6f9420960984295fef685d06378639a3ea2008ce

                                        TJ
                                    

#97 JavaScript::Eval (size: 217, repeated: 1) - SHA256: 7d9447e614b34daa9bef276809c8059f79791f104969d964ce413080f52905d3

                                        J = function(Y, G, R, g, M) {
    return (Y | ((Y | 4) >> 4 || (G.j ? M = YD(G, G.V) : (g = ob(8, true, G, 8), g & 128 && (g ^= 128, R = ob(8, true, G, 2), g = (g << 2) + (R | 0)), M = g)), 8)) == Y && (g = Rb[G.F](G.YW), g[G.F] = function() {
        return R
    }, g.concat = function(X) {
        R = X
    }, M = g), M
}
                                    

#98 JavaScript::Eval (size: 127, repeated: 1) - SHA256: 85d96a757c6e68a76fdd34706ecf68009730a32e022c8ec30312a7f154e69e41

                                        0,
function(D, H, A, q, S, a, m, v) {
    S = Z(D, (A = Z((H = (a = J(6, (v = J(6, (m = J(5, (q = J(7, D), D)), D)), D)), Z(D, a)), D), m), v)), p(D, q, d(H, A, 7, 2, 1, S, D))
}
                                    

#99 JavaScript::Eval (size: 91, repeated: 1) - SHA256: 72d2cbef0f1ac97fc5efa2b3ca287cfe4d11878cc10a93aae670de08a870e1be

                                        0,
function(D, H, A, q, S, a) {
    p(D, (S = (A = Z((q = J(6, (H = J((a = J(7, D), 3), D), D)), D), H), Z(D, a)), q), S[A])
}
                                    

#100 JavaScript::Eval (size: 57, repeated: 1) - SHA256: 07a7e098c48957ea36d3a656406fa037fdd7755bd0b2efdc248b89b8c0b56691

                                        0,
function(D, H, A) {
    p(D, (H = (A = J(6, D), J)(7, D), H), "" + Z(D, A))
}
                                    

#101 JavaScript::Eval (size: 22, repeated: 1) - SHA256: 703bc62b3d95089dd6719d35ff9a35a031ecc8defc4d5ffd2c1635e4d991043c

                                        0,
function(D) {
    Mu(D, 4)
}
                                    

#102 JavaScript::Eval (size: 371, repeated: 1) - SHA256: 84678e2cbc889807264932234c58fa5f59b6aaea77915d6c0fb53335bcfdd2b9

                                        0, TJ = function(Y, G, R, g, M, X, D, H, A, q, S, a, m, v, e, B) {
    (G.push((A = (X = Y[0] << 24, H = Y[1] << 16, (H | 0) - 1 - (~X | H)), S = Y[2] << 8, (A & S) + ~(A & S) - ~(A | S)) | Y[3]), G).push((D = (M = Y[4] << 24, R = Y[5] << 16, (M & R) - ~(M & R) + ~(M | R) + 2 * (M ^ R)) | Y[6] << 8, m = Y[7], -~(D & m) + (D & ~m) + 2 * (~D & m) + (D | ~m))), G.push((a = (q = (B = Y[8] << 24, v = Y[9] << 16, (B | 0) + ~B - ~(B | v)), g = Y[10] << 8, (g | 0) - (q & ~g) - 2 * (~q ^ g) + 2 * (q | ~g)), e = Y[11], (a | 0) - (~a ^ e) + (~a | e)))
}
                                    

#103 JavaScript::Eval (size: 219, repeated: 1) - SHA256: b04f21d0b40c1fed20500893e3ff73e1ad7dac2faa08b640ecd1915cc6bb6075

                                        0, J = function(Y, G, R, g, M) {
    return (Y | ((Y | 4) >> 4 || (G.j ? M = YD(G, G.V) : (g = ob(8, true, G, 8), g & 128 && (g ^= 128, R = ob(8, true, G, 2), g = (g << 2) + (R | 0)), M = g)), 8)) == Y && (g = Rb[G.F](G.YW), g[G.F] = function() {
        return R
    }, g.concat = function(X) {
        R = X
    }, M = g), M
}
                                    

#104 JavaScript::Eval (size: 1, repeated: 1) - SHA256: 86be9a55762d316a3026c2836d044f5fc76e34da10e1b45feee5f18be7edb177

                                        K
                                    

#105 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 7e914e06150b1f6c9521b189660f33d3227abe7e04823c320d1c911906e2a317

                                        Rr
                                    

#106 JavaScript::Eval (size: 74, repeated: 1) - SHA256: 6961409f1c8eab0d72215a3fddc263fbeb4b68ac0a6c316f6608ecc8353ce60a

                                        0,
function(D, H, A, q) {
    p((q = (H = (A = J(5, D), J)(5, D), J)(6, D), D), q, Z(D, A) | Z(D, H))
}
                                    

#107 JavaScript::Eval (size: 2, repeated: 1) - SHA256: 2eb0f31d74a9c43844d3dfd59208eabe5dd5d59cc84c565485f11af676f0e740

                                        wx
                                    

#108 JavaScript::Eval (size: 70, repeated: 1) - SHA256: 3c25d96e7c305feac744ca3f914fc66f8feb0be35e4ca3e2d121e16c13f7d7d2

                                        0, qu = function(Y, G) {
    for (G = []; Y--;) G.push(255 * Math.random() | 0);
    return G
}
                                    

#109 JavaScript::Eval (size: 2, repeated: 1) - SHA256: c72c5404cfcb01c1780bcb362c18d37e90af3a33888dad0c1c13e53819ef885f

                                        At
                                    

#110 JavaScript::Eval (size: 360, repeated: 1) - SHA256: 886fa166bf92267cd4cc45348e6da33e7fbc1a6ea113b38c97cb7c92cad764a6

                                        0, ob = function(Y, G, R, g, M, X, D, H, A, q, S, a, m, v, e, B, N) {
    if ((B = Z(R, 166), B) >= R.s) throw [ht, 31];
    for (H = (m = (N = (S = B, R.Oo.length), g), 0); 0 < m;) X = S % Y, D = Y - (X | 0), M = S >> 3, a = D < m ? D : m, A = R.N[M], G && (e = R, e.Z != S >> 6 && (e.Z = S >> 6, v = Z(e, 463), e.vp = Nu(1419, 24, e.g, e.Z, [0, 0, v[1], v[2]], 255, Y)), A ^= R.vp[M & N]), H |= (A >> Y - (X | 0) - (a | 0) & (1 << a) - 1) << (m | 0) - (a | 0), m -= a, S += a;
    return p(R, (q = H, 166), (B | 0) + (g | 0)), q
}
                                    

Executed Writes (0)



HTTP Transactions (54)


Request Response
                                        
                                            GET / HTTP/1.1 
Host: afwantech.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

                                         
                                         51.77.52.109
HTTP/1.1 301 Moved Permanently
content-type: text/html; charset=UTF-8
                                        
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
x-redirect-by: WordPress
location: https://afwantech.com/
x-litespeed-cache: hit
content-length: 0
date: Sun, 25 Sep 2022 17:34:01 GMT


--- Additional Info ---
Magic:  
Size:   0
Md5:    d41d8cd98f00b204e9800998ecf8427e
Sha1:   da39a3ee5e6b4b0d3255bfef95601890afd80709
Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Alerts:
  Blocklists:
    - fortinet: Malware
                                        
                                            GET /v1/ HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         143.204.55.36
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 939
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Content-Length, Backoff, Content-Type, Retry-After, Alert
Cache-Control: max-age=3600
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Date: Sun, 25 Sep 2022 17:15:02 GMT
X-Content-Type-Options: nosniff
X-Cache: Hit from cloudfront
Via: 1.1 a9120cc3ff449047c990e82a4d5566ba.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: BP8E4AwEb4NzXJMEVRJxInoj1O-iTqtnxjBv8GKvfCUQ5kNJVEzlZQ==
Age: 1140


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (939), with no line terminators
Size:   939
Md5:    2d12f67fe57a87e7366b662d153a5582
Sha1:   d7b02d81cc74f24a251d9363e0f4b0a149264ec1
Sha256: 73c273c0b5a2de3cb970b8e8c187999d3b55e760dc7766dab4bb76428d19b551
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "E82CA5F310E37267FBF792427747E65C2BB35E684D3F629C0AA302F688BC4F80"
Last-Modified: Fri, 23 Sep 2022 06:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=18420
Expires: Sun, 25 Sep 2022 22:41:02 GMT
Date: Sun, 25 Sep 2022 17:34:02 GMT
Connection: keep-alive

                                        
                                            GET /chains/remote-settings.content-signature.mozilla.org-2022-10-30-18-47-44.chain HTTP/1.1 
Host: content-signature-2.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         143.204.55.110
HTTP/2 200 OK
content-type: binary/octet-stream
                                        
content-length: 5348
last-modified: Sat, 10 Sep 2022 18:47:45 GMT
content-disposition: attachment
accept-ranges: bytes
server: AmazonS3
date: Sun, 25 Sep 2022 04:35:15 GMT
etag: "6113f8408c59aebe188d6af273b90743"
x-cache: Hit from cloudfront
via: 1.1 8ddb6d7670d8c5a85c04a10525a71b90.cloudfront.net (CloudFront)
x-amz-cf-pop: OSL50-C1
x-amz-cf-id: c4iFOGsLfCEea3JYix1LAOfdsr6FURdAT2fw7BRwVoRvIYkMlYuT4w==
age: 46728
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PEM certificate\012- , ASCII text
Size:   5348
Md5:    6113f8408c59aebe188d6af273b90743
Sha1:   7398873bf00f99944eaa77ad3ebc0d43c23dba6b
Sha256: b6e0cc9ad68306208a160f3835fb8da76acc5a82d8fde1da5a98e1de1c11a770
                                        
                                            GET /v1/tiles HTTP/1.1 
Host: contile.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.117.237.239
HTTP/2 200 OK
content-type: application/json
                                        
server: nginx
date: Sun, 25 Sep 2022 17:34:02 GMT
content-length: 12
strict-transport-security: max-age=31536000
via: 1.1 google
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with no line terminators
Size:   12
Md5:    23e88fb7b99543fb33315b29b1fad9d6
Sha1:   a48926c4ec03c7c8a4e8dffcd31e5a6cdda417ce
Sha256: 7d8f1de8b7de7bc21dfb546a1d0c51bf31f16eee5fad49dbceae1e76da38e5c3
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:02 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:02 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:02 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /v1/buckets/main/collections/ms-language-packs/records/cfr-v1-en-US HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/json
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         143.204.55.36
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 329
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag, Expires, Content-Length, Cache-Control, Pragma, Content-Type, Alert, Backoff, Last-Modified, Retry-After
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Last-Modified: Fri, 25 Mar 2022 17:45:46 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
Date: Sun, 25 Sep 2022 17:04:17 GMT
Cache-Control: max-age=3600, max-age=3600
Expires: Sun, 25 Sep 2022 17:17:03 GMT
ETag: "1648230346554"
X-Cache: Hit from cloudfront
Via: 1.1 185768229530368be94556dcab1c486a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: EaFh_3Ia3VC2K95lpNuM3IMf7KWSRmYiLrOM0QIn29rcFnqr0ESDEg==
Age: 1785


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (329), with no line terminators
Size:   329
Md5:    0333b0655111aa68de771adfcc4db243
Sha1:   63f295a144ac87a7c8e23417626724eeca68a7eb
Sha256: 60636eb1dc67c9ed000fe0b49f03777ad6f549cb1d2b9ff010cf198465ae6300
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:02 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /s/hind/v16/5aU69_a8oxmIdGl4BA.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 16216
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Tue, 20 Sep 2022 17:27:00 GMT
expires: Wed, 20 Sep 2023 17:27:00 GMT
cache-control: public, max-age=31536000
age: 432422
last-modified: Tue, 26 Apr 2022 15:45:50 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 16216, version 1.0\012- data
Size:   16216
Md5:    4c5bc71b3cf6f2584725c0bb3e25d391
Sha1:   f051f482061dc48d09c328c45459dd04db5b5547
Sha256: aca5dec430a7470ff1d8a16f9e7bb3ca30f2ff58f3bd60432cf1dddfa30c9d71
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:03 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 12372
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Wed, 21 Sep 2022 19:28:24 GMT
expires: Thu, 21 Sep 2023 19:28:24 GMT
cache-control: public, max-age=31536000
age: 338739
last-modified: Wed, 27 Apr 2022 16:19:22 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 12372, version 1.0\012- data
Size:   12372
Md5:    0ef99cf07a2a261ab43d5dc1937ffb27
Sha1:   bd39f9cd13ef2a6f912dcba8fa916fc67b4a19d9
Sha256: 557f6d0883db85be712c3a77baa38875ddf99ecbdfd6fec98e5c0b1f7a0e1532
                                        
                                            GET /s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 11796
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Wed, 21 Sep 2022 19:28:35 GMT
expires: Thu, 21 Sep 2023 19:28:35 GMT
cache-control: public, max-age=31536000
age: 338728
last-modified: Wed, 27 Apr 2022 15:47:01 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 11796, version 1.0\012- data
Size:   11796
Md5:    8d4079c3aa4f01e6d9bbd4f1bbcdf114
Sha1:   52ab47c062d0bfdbd34dbd31784008bd0e4c4227
Sha256: d5c1172f24f4f49f780c65cf5be897527fd08f3662a2ba8db0cfe0057d92e367
                                        
                                            GET /s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffBzCGItzYw.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 12136
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Wed, 21 Sep 2022 19:28:29 GMT
expires: Thu, 21 Sep 2023 19:28:29 GMT
cache-control: public, max-age=31536000
age: 338734
last-modified: Wed, 27 Apr 2022 15:39:24 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 12136, version 1.0\012- data
Size:   12136
Md5:    5d7c6bb8fd4fc992c54e596ab7433d5d
Sha1:   35fd6e4c125235cb7f9aa6e297da4b64ae45b06a
Sha256: dd870101ad4e95d687a2eb734707b0dd7c20808f76d7be77a71a5d13cf99401c
                                        
                                            GET /s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 15860
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Wed, 21 Sep 2022 19:34:08 GMT
expires: Thu, 21 Sep 2023 19:34:08 GMT
cache-control: public, max-age=31536000
age: 338395
last-modified: Wed, 11 May 2022 19:24:42 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 15860, version 1.0\012- data
Size:   15860
Md5:    e9f5aaf547f165386cd313b995dddd8e
Sha1:   acdef5603c2387b0e5bffd744b679a24a8bc1968
Sha256: f5aebdfea35d1e7656ef4acc5db1f243209755ae3300943ef8fc6280f363c860
                                        
                                            GET /s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 15744
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Wed, 21 Sep 2022 19:34:08 GMT
expires: Thu, 21 Sep 2023 19:34:08 GMT
cache-control: public, max-age=31536000
age: 338395
last-modified: Wed, 11 May 2022 19:24:48 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 15744, version 1.0\012- data
Size:   15744
Md5:    15d9f621c3bd1599f0169dcf0bd5e63e
Sha1:   7ca9c5967f3bb8bffeab24b639b49c1e7d03fa52
Sha256: f6734f8177112c0839b961f96d813fcb189d81b60e96c33278c1983b6f419615
                                        
                                            GET /s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffGjEGItzYw.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 12384
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Thu, 22 Sep 2022 06:42:58 GMT
expires: Fri, 22 Sep 2023 06:42:58 GMT
cache-control: public, max-age=31536000
age: 298265
last-modified: Wed, 27 Apr 2022 16:10:42 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 12384, version 1.0\012- data
Size:   12384
Md5:    39009d392a58f87dd2b448612c2cbd5b
Sha1:   45ca26b72258f56af6fb786b8c4552acfdb5252e
Sha256: d14d732f8caf915919ff661157edc3456a85f408b7a3c5ee1e21357e7df07e1a
                                        
                                            GET /s/hind/v16/5aU19_a8oxmIfNJdERySjQ.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 16268
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Tue, 20 Sep 2022 17:27:27 GMT
expires: Wed, 20 Sep 2023 17:27:27 GMT
cache-control: public, max-age=31536000
age: 432396
last-modified: Tue, 26 Apr 2022 15:48:34 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 16268, version 1.0\012- data
Size:   16268
Md5:    376d4202f0309c9a844661c230736ccb
Sha1:   10731308876ef0b8b9763815352d6b18020026e0
Sha256: 5aed4a8f357d7edc1ac50eb4de07867c83e69a10a1711e10053bddce99294b7e
                                        
                                            GET /s/hind/v16/5aU19_a8oxmIfMJaERySjQ.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 15860
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Tue, 20 Sep 2022 21:45:00 GMT
expires: Wed, 20 Sep 2023 21:45:00 GMT
cache-control: public, max-age=31536000
age: 416943
last-modified: Tue, 26 Apr 2022 15:54:56 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 15860, version 1.0\012- data
Size:   15860
Md5:    56815b67806b56493202b27cfd9f42c0
Sha1:   977eae4a3b34d8e39a5cb6a58a10ab2deba30d61
Sha256: 5e347565595b94716cf6f9fa7adfed6a5646bae6a163d35a20f73c067f48ad93
                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 4554
Cache-Control: 'max-age=158059'
Date: Sun, 25 Sep 2022 17:34:03 GMT
Last-Modified: Sun, 25 Sep 2022 16:18:09 GMT
Server: ECS (ska/F71E)
X-Cache: HIT
Content-Length: 471

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:03 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /pagead/js/adsbygoogle.js?client=ca-pub-4029081913620009 HTTP/1.1 
Host: pagead2.googlesyndication.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://afwantech.com
Connection: keep-alive
Referer: https://afwantech.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         216.58.207.194
HTTP/2 200 OK
content-type: text/javascript; charset=UTF-8
                                        
p3p: policyref="https://www.googleadservices.com/pagead/p3p.xml", CP="NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
vary: Accept-Encoding, Origin
date: Sun, 25 Sep 2022 17:34:03 GMT
expires: Sun, 25 Sep 2022 17:34:03 GMT
cache-control: private, max-age=3600
etag: 12880727397607234072
access-control-allow-origin: *
x-content-type-options: nosniff
content-disposition: attachment; filename="f.txt"
content-encoding: gzip
server: cafe
content-length: 57929
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (2910)
Size:   57929
Md5:    c73554ab3f49ba9616bb00f71749fde4
Sha1:   e42d32544f81ad29b6ef9ed44d9da2617470f6a5
Sha256: 8432396a5e81e5da1574966c4139ee974f0edfbe292eab183f3e89e06054ade9
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:03 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET / HTTP/1.1 
Host: push.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-WebSocket-Version: 13
Origin: wss://push.services.mozilla.com/
Sec-WebSocket-Protocol: push-notification
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: A3tp5STzF/Lgfc8cKqQf8Q==
Connection: keep-alive, Upgrade
Sec-Fetch-Dest: websocket
Sec-Fetch-Mode: websocket
Sec-Fetch-Site: cross-site
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket

                                         
                                         34.216.192.228
HTTP/1.1 101 Switching Protocols
                                        
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: Gt8alz5I5WSYvLG1CTrjQ2wdPOE=

                                        
                                            GET /pagead/html/r20220921/r20190131/zrt_lookup.html HTTP/1.1 
Host: googleads.g.doubleclick.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://afwantech.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.162
HTTP/2 200 OK
content-type: text/html; charset=UTF-8
                                        
p3p: policyref="https://googleads.g.doubleclick.net/pagead/gcn_p3p_.xml", CP="CURa ADMa DEVa TAIo PSAo PSDo OUR IND UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
vary: Accept-Encoding
x-content-type-options: nosniff
content-encoding: gzip
server: cafe
content-length: 4420
x-xss-protection: 0
date: Sun, 25 Sep 2022 03:27:15 GMT
expires: Sun, 09 Oct 2022 03:27:15 GMT
cache-control: public, max-age=1209600
age: 50808
etag: 9671129459699598864
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- exported SGML document, ASCII text, with very long lines (1731)
Size:   4420
Md5:    682bf699cccbc0ff817e1fcb7b95262a
Sha1:   11ad3edf0008f52b733c2d6d7199e1f052318d58
Sha256: bd42f773d589f85cf6884d7893746d5d4e0c082f78e1c80511cf3aefa1c69a0f
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:03 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:03 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /adsid/integrator.js?domain=afwantech.com HTTP/1.1 
Host: adservice.google.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://afwantech.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.162
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
p3p: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657 for more info."
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
cache-control: private, no-cache, no-store
x-content-type-options: nosniff
content-disposition: attachment; filename="f.txt"
content-encoding: gzip
date: Sun, 25 Sep 2022 17:34:03 GMT
server: cafe
content-length: 100
x-xss-protection: 0
alt-svc: h3="googleads.g.doubleclick.net:443"; ma=2592000,h3=":443"; ma=2592000,h3-29="googleads.g.doubleclick.net:443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050="googleads.g.doubleclick.net:443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046="googleads.g.doubleclick.net:443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043="googleads.g.doubleclick.net:443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic="googleads.g.doubleclick.net:443"; ma=2592000; v="46,43",quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with no line terminators
Size:   100
Md5:    917951a58be8c6c6f3680159550ba3c2
Sha1:   21cd25c2a4eb9ec7e0f37021ce7b69e852dab4b4
Sha256: cd8c45d9a0d98ca2e23d967483ec538bcafa246afdcf434bf60c8257acfacfac
                                        
                                            GET /adsid/integrator.js?domain=afwantech.com HTTP/1.1 
Host: adservice.google.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://afwantech.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.2
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
p3p: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657 for more info."
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
cache-control: private, no-cache, no-store
x-content-type-options: nosniff
content-disposition: attachment; filename="f.txt"
content-encoding: gzip
date: Sun, 25 Sep 2022 17:34:03 GMT
server: cafe
content-length: 100
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with no line terminators
Size:   100
Md5:    917951a58be8c6c6f3680159550ba3c2
Sha1:   21cd25c2a4eb9ec7e0f37021ce7b69e852dab4b4
Sha256: cd8c45d9a0d98ca2e23d967483ec538bcafa246afdcf434bf60c8257acfacfac
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:04 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 25 Sep 2022 17:34:04 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN