Overview

URLtraveslers.com/
IP 103.224.182.241 (Australia)
ASN#133618 Trellian Pty. Limited
UserAgentMozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Referer
Report completed2022-12-09 08:25:31 UTC
StatusLoading report..
IDS alerts0
Blocklist alert2
urlquery alerts No alerts detected
Tags None

Domain Summary (44)

Fully Qualifying Domain Name Rank First Seen Last Seen IP Comment
status.thawte.com (1) 5123 2017-11-27 12:33:51 UTC 2022-12-08 17:15:52 UTC 93.184.220.29
static.lipscore.com (2) 483894 2015-01-29 15:18:57 UTC 2022-12-08 19:28:05 UTC 143.204.55.127
vc.hotjar.io (1) 2334 2019-04-16 10:33:25 UTC 2022-12-08 17:15:42 UTC 54.230.111.91
jnn-pa.googleapis.com (4) 2640 2021-11-16 06:12:21 UTC 2022-12-08 17:32:01 UTC 142.250.74.10
chimpstatic.com (1) 4832 2017-04-21 05:35:42 UTC 2022-12-08 17:29:30 UTC 96.6.17.210
stats.g.doubleclick.net (1) 96 2012-07-01 17:13:23 UTC 2022-12-08 17:14:59 UTC 64.233.164.154
ocsp.sca1b.amazontrust.com (2) 1015 2016-02-14 02:37:56 UTC 2019-03-27 04:05:54 UTC 54.230.245.118
fonts.gstatic.com (3) 0 2014-04-02 10:51:04 UTC 2022-12-08 17:14:55 UTC 142.250.74.35 Domain (gstatic.com) ranked at: 540
prism.app-us1.com (1) 8479 2019-01-09 06:40:26 UTC 2022-12-08 17:13:17 UTC 104.17.146.91
no-go.kelkoogroup.net (4) 0 2017-10-30 14:27:38 UTC 2022-12-08 19:20:45 UTC 95.211.116.27 Domain (kelkoogroup.net) ranked at: 79339
bat.bing.com (3) 387 2014-04-08 09:23:16 UTC 2022-12-08 17:12:06 UTC 13.107.21.200
i.ytimg.com (1) 109 2012-10-03 17:11:04 UTC 2022-12-08 17:23:23 UTC 216.58.211.22
ciar-kep.com (3) 0 2022-12-08 13:12:21 UTC 2022-12-08 13:12:21 UTC 3.208.247.235 Unknown ranking
ocsp.pki.goog (20) 175 2017-06-14 07:23:31 UTC 2022-12-08 17:12:01 UTC 216.58.211.3
www.googletagmanager.com (1) 75 2012-10-04 01:07:32 UTC 2022-12-08 17:14:43 UTC 142.250.74.8
api.videoly.co (1) 65425 2014-10-25 09:10:58 UTC 2022-12-08 17:16:45 UTC 172.67.74.16
trackcmp.net (1) 8111 2014-05-09 04:45:07 UTC 2022-12-08 17:13:18 UTC 172.64.145.151
www.facebook.com (1) 99 No data No data 157.240.221.35
r3.o.lencr.org (9) 344 2020-12-02 08:52:13 UTC 2022-12-08 17:12:06 UTC 95.101.11.115
firefox.settings.services.mozilla.com (2) 867 2020-05-25 20:06:39 UTC 2022-12-08 17:12:32 UTC 35.241.9.150
content-signature-2.cdn.mozilla.net (1) 1152 2020-11-03 12:26:46 UTC 2022-12-08 17:21:04 UTC 34.160.144.191
ww38.traveslers.com (5) 0 No data No data 185.53.179.29 Unknown ranking
ocsp.godaddy.com (1) 698 2012-05-20 19:28:57 UTC 2022-12-08 17:15:00 UTC 192.124.249.24
www.golfhandelen.no (64) 0 2017-01-30 05:06:36 UTC 2022-12-08 14:58:10 UTC 46.21.98.6 Unknown ranking
personalization-wp-service.cluster.app-us1.com (1) 77564 2020-06-11 16:13:39 UTC 2022-12-08 08:49:20 UTC 52.73.227.78
www.youtube.com (1) 90 2013-04-13 07:43:20 UTC 2022-12-08 17:12:11 UTC 172.217.21.174
traveslers.com (1) 0 2021-02-04 09:38:23 UTC 2022-09-11 09:19:30 UTC 103.224.182.241 Unknown ranking
push.services.mozilla.com (1) 2140 2014-10-24 08:27:06 UTC 2022-12-08 17:20:00 UTC 35.86.38.2
img-getpocket.cdn.mozilla.net (7) 1631 2017-09-01 03:40:57 UTC 2022-12-08 15:50:00 UTC 34.120.237.76
vars.hotjar.com (1) 1014 2020-11-05 10:13:14 UTC 2022-12-08 17:12:53 UTC 143.204.55.101
www.google.no (1) 25607 2012-06-26 23:22:08 UTC 2022-12-08 17:14:59 UTC 142.250.74.163
wapi.lipscore.com (3) 318267 2018-02-11 13:12:58 UTC 2022-12-08 19:28:06 UTC 199.232.198.217
diffuser-cdn.app-us1.com (1) 8451 2019-06-13 03:58:17 UTC 2022-12-08 17:13:13 UTC 104.17.146.91
contile.services.mozilla.com (1) 1114 2021-05-27 18:32:35 UTC 2022-12-08 17:14:01 UTC 34.117.237.239
ocsp.digicert.com (3) 86 2012-05-21 07:02:23 UTC 2022-12-08 17:15:52 UTC 93.184.220.29
www.google-analytics.com (3) 40 2012-05-21 09:41:50 UTC 2022-12-08 17:20:06 UTC 142.250.74.110
ssl.google-analytics.com (1) 275 2012-10-02 04:58:30 UTC 2022-12-08 17:21:31 UTC 216.58.211.8
www.google.com (1) 7 2012-11-08 00:08:21 UTC 2022-12-08 17:22:52 UTC 216.58.207.228
region1.google-analytics.com (1) 0 2022-03-17 11:26:33 UTC 2022-12-08 17:12:10 UTC 216.239.34.36 Domain (google-analytics.com) ranked at: 8401
static.hotjar.com (1) 641 2014-11-01 05:14:27 UTC 2022-12-08 17:12:15 UTC 143.204.55.98
d38psrni17bvxu.cloudfront.net (1) 0 2022-09-22 16:48:38 UTC 2022-12-08 12:46:41 UTC 54.230.245.138 Unknown ranking
r.redirekted.com (5) 645251 2014-06-22 12:45:47 UTC 2022-12-08 08:54:23 UTC 66.165.243.160
script.hotjar.com (1) 887 2020-11-05 10:02:45 UTC 2022-12-08 17:12:53 UTC 143.204.55.96
in.hotjar.com (2) 1746 2018-07-03 09:33:18 UTC 2022-12-08 17:15:43 UTC 99.81.68.255

Network Intrusion Detection Systemsinfo

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-12-09 2 d38psrni17bvxu.cloudfront.net/scripts/js3.js Malware
2022-12-09 2 ciar-kep.com/zcvisitor/04df9075-779b-11ed-9c2f-127bbe85a12b/85aefdc2-9ed0-4 (...) Phishing

mnemonic secure dns
 No alerts detected

Quad9 DNS
 No alerts detected


Files

No files detected

Recent reports on same IP/ASN/Domain/Screenshot

Last 5 reports on IP: 103.224.182.241
Date UQ / IDS / BL URL IP
2023-02-06 05:38:05 +0000 0 - 0 - 3 accountsmicrosoft.com/ 103.224.182.241
2023-02-02 08:41:42 +0000 0 - 0 - 5 golimogli.com/ 103.224.182.241
2023-02-02 05:10:46 +0000 0 - 0 - 1 adeorama.com/ 103.224.182.241
2023-01-31 08:44:02 +0000 0 - 0 - 5 golimogli.com/ 103.224.182.241
2023-01-31 03:56:22 +0000 0 - 0 - 1 quiktech.com/__media__/js/netsoltrademark.php (...) 103.224.182.241


Last 5 reports on ASN: Trellian Pty. Limited
Date UQ / IDS / BL URL IP
2023-02-08 19:23:26 +0000 0 - 0 - 1 jhgfdfdsf.online/myonline.com/ 103.224.182.210
2023-02-08 18:18:11 +0000 0 - 0 - 3 www.yourarticle.info/login.php 103.224.212.220
2023-02-08 15:58:30 +0000 0 - 0 - 0 claro.do 103.224.182.250
2023-02-08 10:18:35 +0000 0 - 2 - 0 healthcaresource.co/ 103.224.182.244
2023-02-08 09:31:36 +0000 0 - 0 - 2 express-deals.cyou/ 103.224.182.210


Last 1 reports on domain: traveslers.com
Date UQ / IDS / BL URL IP
2022-12-09 08:25:31 +0000 0 - 0 - 2 traveslers.com/ 103.224.182.241


No other reports with similar screenshot

JavaScript

Executed Scripts (79)

Executed Evals (106)
#1 JavaScript::Eval (size: 167) - SHA256: e4435b5db664196a997db434d5a25e9531ec747d750ee54457e9fd9cb2e6006c
0,
function(F, G, Q, R, e, L, N) {
    (Q = (L = b(F, (G = b(F, 27), 25)), b(F, 27)), F).C == F && (e = r(L, F), R = r(G, F), N = r(Q, F), R[e] = N, 298 == G && (F.X = void 0, 2 == e && (F.T = tm(F, 32, 8, false), F.X = void 0)))
}
#2 JavaScript::Eval (size: 66) - SHA256: cc6b8b20b14fdf654abe9a237de9993c6c07d5a63a19570153c0a73b6b0e32a3
0, XI = function(h, A, S, n) {
    (n = b(h, (S = b(h, 29), 28)), Z)(n, f(r(S, h), A), h)
}
#3 JavaScript::Eval (size: 355) - SHA256: 066ae776872c1d49ff58eee770bdcc9e507c710d7549b6a881276ebc41bba7e4
tm = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v, W, K, E) {
    if ((F = r(334, h), F) >= h.U) throw [s1, 31];
    for (t = (L = (R = F, h.fW.length), 0), v = A; 0 < v;) W = R % S, Q = R >> 3, K = S - (W | 0), E = h.G[Q], Y = K < v ? K : v, n && (e = h, e.X != R >> 6 && (e.X = R >> 6, G = r(298, e), e.S1 = ww(24, 3, [0, 0, G[1], G[2]], 1702, e.X, e.T, 29)), E ^= h.S1[Q & L]), R += Y, t |= (E >> S - (W | 0) - (Y | 0) & (1 << Y) - 1) << (v | 0) - (Y | 0), v -= Y;
    return D(334, h, (F | 0) + (A | (N = t, 0))), N
}
#4 JavaScript::Eval (size: 2) - SHA256: 281317f5a54d671f07e300e15e5ca271bc8a5ecee2acbb642ecf8f0c21f0ceeb
XI
#5 JavaScript::Eval (size: 90) - SHA256: e5787cccda86c04eef25284b036260b29f4222cf0a6109db5f477d6f5f758f5a
0,
function(F, G, Q, R, e, L) {
    L = r((Q = b(F, (G = b(F, (R = b(F, 30), 27)), 31)), G), F), e = r(R, F) > L, D(Q, F, +e)
}
#6 JavaScript::Eval (size: 2) - SHA256: 316ca0efda6296d8f2c11d1e20890d220cec4266a0c16fbbef324c004688468a
U1
#7 JavaScript::Eval (size: 132) - SHA256: cc9dd86276709a7501c13362b5ef0a97ae33a7ed209b3e7e6737440d9e553f05
0, dz = function(h, A, S, n, t) {
    if (3 == h.length) {
        for (t = 0; 3 > t; t++) A[t] += h[t];
        for (n = [13, 8, 13, 12, 16, 5, 3, 10, (S = 0, 15)]; 9 > S; S++) A[3](A, S % 3, n[S])
    }
}
#8 JavaScript::Eval (size: 211) - SHA256: 676b2590b57f6874c7894b8c4d49ca94d7fef3844ad1634f196180975bf73c21
0,
function(F, G, Q, R, e, L, N, v, W, K) {
    (L = (N = r((W = (R = (v = b(F, (G = b((K = (Q = b(F, 25), b(F, 30)), F), 23), 28)), r(Q, F.C)), r(v, F)), G), F), r(K, F)), 0 !== R) && (e = fA(62, false, 1, 34, F, N, 1, W, R, L), R.addEventListener(L, e, ZB), D(343, F, [R, L, e]))
}
#9 JavaScript::Eval (size: 130) - SHA256: c093f047451546644cb3d5ad29dc727d99155e4a1b15e1f58a880d6f6818a49a
dz = function(h, A, S, n, t) {
    if (3 == h.length) {
        for (t = 0; 3 > t; t++) A[t] += h[t];
        for (n = [13, 8, 13, 12, 16, 5, 3, 10, (S = 0, 15)]; 9 > S; S++) A[3](A, S % 3, n[S])
    }
}
#10 JavaScript::Eval (size: 91) - SHA256: 46c9ba382790cdae6bba5d2389e08e23e2391fe951e5b2945908f6cdf87ead17
0,
function(F, G, Q, R, e, L) {
    L = r((Q = b(F, (G = b(F, (R = b(F, 30), 27)), 31)), G), F), e = r(R, F) == L, D(Q, F, +e)
}
#11 JavaScript::Eval (size: 29) - SHA256: 5bd630ee8e0bc3f15abc1c5812fff785acb39eb8ff68b874362799200114484f
0,
function(F) {
    b(true, 36, F, 1)
}
#12 JavaScript::Eval (size: 147) - SHA256: d33c4003fc0533b4caf9488ed1112917537ee682e8c238be44d913aa87ae545c
0,
function(h, A, S, n, t, Y) {
    for (t = 0; t < h.length; t++) Y = h.charAt ? (n = h.charCodeAt(t), -2 * ~n + ~(255 | n) + (255 & ~n) + (255 | ~n)) : h[t], A.push(Y);
    A.d.push(h.length, S)
}
#13 JavaScript::Eval (size: 229) - SHA256: 2304f71203bdd38d8138a08333af2fea5a9db131fd45577560bb88e6c68ebfe1
Nv = function(h, A, S, n, t, Y, F, G, Q, R) {
    for (R = (t = b(A, (Y = (G = b(A, (Q = A[L5] || {}, 23)), Q.xu = b(A, 25), Q.s = [], A.C == A ? (F = B(8, h, A), -(F & n) - ~F + (F | -2)) : 1), 28)), S); R < Y; R++) Q.s.push(b(A, 29));
    for (Q.gP = r(G, A); Y--;) Q.s[Y] = r(Q.s[Y], A);
    return Q.Iy = r(t, A), Q
}
#14 JavaScript::Eval (size: 22) - SHA256: 0f49386670707a242a13f75c8af2936c7c2a7869adbae26a34e8df92b398d688
0,
function(F) {
    eM(F, 0)
}
#15 JavaScript::Eval (size: 71) - SHA256: 93797be9c9b1c0be7db38034be3f21a68021f94fdb5baad59e0ac95c7e6b6bcc
0, hn = function(h, A, S) {
    D(A, ((h.Gv.push(h.o.slice()), h).o[A] = void 0, h), S)
}
#16 JavaScript::Eval (size: 22) - SHA256: 828d8dc072f0eec8d0c4fc8a30ddbdadc52bc5721d17ca9cffc54245d1c56354
0,
function(F) {
    eM(F, 7)
}
#17 JavaScript::Eval (size: 2) - SHA256: 193d984cc43c234ce581f221496f1965ff3be1a7f416f8ea6ed83e7b96a132a2
tn
#18 JavaScript::Eval (size: 79) - SHA256: f9598b917873c3252a0b12a1be430ec05d1fa9e3e45efd8deab1df670762de15
0,
function(F, G, Q, R, e) {
    D((R = (G = (e = b(F, (Q = b(F, 31), 29)), r)(Q, F), r(e, F)), e), F, R * G)
}
#19 JavaScript::Eval (size: 2) - SHA256: f2aafd5ed5195650cf8c292774829bb1e2d62a2f1d6de530d28159fdd0aae2ba
fA
#20 JavaScript::Eval (size: 47) - SHA256: 0b589bb8f0e6891813747909cc8b258dea7c65dd54e38d648bfacf7f3543d6a0
0,
function(F, G) {
    hn((G = r(b(F, 30), F), F).C, 334, G)
}
#21 JavaScript::Eval (size: 2) - SHA256: 2a92270185a50d8020949f2cfb2125d1af1c2bd3dd92eada9210fcdb5c4310bf
dz
#22 JavaScript::Eval (size: 1) - SHA256: df7e70e5021544f4834bbee64a9e3789febc4be81470df629cad6ddb03320a5c
B
#23 JavaScript::Eval (size: 97) - SHA256: e6f8db1678069f5f39aeff575285b78da8550a244e433b504c7cf239768d4257
0,
function(F, G, Q, R, e) {
    for (Q = (G = b(7, (R = b(F, 25), 8), F), e = [], 0); Q < G; Q++) e.push(B(8, true, F));
    D(R, F, e)
}
#24 JavaScript::Eval (size: 231) - SHA256: 614f4d69a68f79185f61b93507749de324dc5a7953086ff3d40be52236275548
0, Nv = function(h, A, S, n, t, Y, F, G, Q, R) {
    for (R = (t = b(A, (Y = (G = b(A, (Q = A[L5] || {}, 23)), Q.xu = b(A, 25), Q.s = [], A.C == A ? (F = B(8, h, A), -(F & n) - ~F + (F | -2)) : 1), 28)), S); R < Y; R++) Q.s.push(b(A, 29));
    for (Q.gP = r(G, A); Y--;) Q.s[Y] = r(Q.s[Y], A);
    return Q.Iy = r(t, A), Q
}
#25 JavaScript::Eval (size: 206) - SHA256: 1fb437ac78114eda813a7c4d5771b6d3aa34908a5ca3b743d5eb5c79088cf82c
(function(N, u, V, z) {
    return z = (V = this, V.length),
        function(G, a, A, r) {
            function M(K) {
                return (V[K + 2] << 8 | V[K] << 24) + V[K + 3] | V[K + 1] << 16
            }
            for (r = 0; r < G.length; r++) a = V.length, (A = a - z & 7) || (u = N(M(a - 8), M(a - 4))), V[a] = G[r] ^ u[A]
        }
})
#26 JavaScript::Eval (size: 29) - SHA256: 08446312d4ccd8a47d7d1e3da563137b140bf9019c1a061d39b39326296eec6b
0,
function(F) {
    b(true, 33, F, 2)
}
#27 JavaScript::Eval (size: 78) - SHA256: 1a2532f3b020386f3df3c676568a410a436cb937596c0763ce03db16cac122fe
0,
function(F, G, Q, R) {
    D((Q = (G = B(8, (R = b(F, 27), true), F), b(F, 25)), Q), F, r(R, F) >>> G)
}
#28 JavaScript::Eval (size: 336) - SHA256: b4c7f77522da31e842aba97ff4f7aae486ceca78226d8be658b0553cd5c3a7af
0, U1 = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v) {
    (A.push((L = (Q = h[0] << 24 | h[1] << 16, n = h[2] << 8, -1 - ~n + (Q ^ n) - (~Q & n)), v = h[3], -~(L & v) - -1 + 3 * (L ^ v) + 2 * (~L ^ v))), A).push((F = h[4] << 24, t = h[5] << 16, -2 - ~t - (~F | t)) | h[6] << 8 | h[7]), A.push((G = (R = (N = h[8] << 24, e = h[9] << 16, (N | 0) - (~N ^ e) + (~N | e)), S = h[10] << 8, (R | 0) + (R & ~S) - (R ^ S) + 2 * (~R & S)), Y = h[11], (G | 0) + ~(G & Y) - ~(G | Y) - (G & ~Y)))
}
#29 JavaScript::Eval (size: 6) - SHA256: 44ff7b02c80d38b26dd6aa31d9470aed81b32e10331a3c994fb1a9945fd847ba
window
#30 JavaScript::Eval (size: 250) - SHA256: ff8fd344108928e5825449a8903bded2550d4e3c86f87562e7962d165728575f
D = function(h, A, S) {
    if (334 == h || 339 == h) A.o[h] ? A.o[h].concat(S) : A.o[h] = fA(62, S, A, 57);
    else {
        if (A.mi && 298 != h) return;
        86 == h || 510 == h || 249 == h || 198 == h || 443 == h ? A.o[h] || (A.o[h] = b(0, 5, 7, h, A, 118, S)) : A.o[h] = b(0, 3, 7, h, A, 49, S)
    }
    298 == h && (A.T = tm(A, 32, 8, false), A.X = void 0)
}
#31 JavaScript::Eval (size: 1) - SHA256: 3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d
b
#32 JavaScript::Eval (size: 787) - SHA256: 6ba9e8360b552cc9714cbc2e7f287d0b9281ab634eebbeb3d043c240e1edcd11
fA = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
    if (3 <= ((n - 3 >> (2 == ((n ^ 32) & 11) && (L = e = function() {
            if (t.C == t) {
                if (t.o) {
                    var N = [Jm, Y, G, void 0, Q, R, arguments];
                    if (2 == F) var v = T(3, false, (d(0, 63, t, N), A), A, t);
                    else if (F == S) {
                        var W = !t.N.length;
                        (d(0, 61, t, N), W) && T(15, false, A, A, t)
                    } else v = KA(t, 421, 0, N);
                    return v
                }
                Q && R && Q.removeEventListener(R, e, ZB)
            }
        }), 4) || (L = (G = (Q = Y[t] << 24, F = Y[2 * (t | 1) - -2 + ~(t | 1) - (~t & 1)] << 16, -~(Q | F) + (Q ^ F) + (~Q ^ F)) | Y[-2 * ~t - 4 * (t & -3) + A * (t ^ 2) + 2 * (t | -3)] << S, R = Y[(t | 0) + A], A * (G & R) + ~G + ~R - 2 * (~G ^ R))), n) | 4) >> 4 && 23 > (n ^ 37))
        if (F = "array" === iQ("number", "call", t) ? t : [t], this.K) A(this.K);
        else try {
            Y = [], G = !this.N.length, d(0, 60, this, [gw, Y, F]), d(0, h, this, [cy, A, Y]), S && !G || T(10, false, true, S, this)
        } catch (N) {
            C(0, 5, N, this), A(this.K)
        }
        return (n | 56) == n && (t = FR[S.l](S.j1), t[S.l] = function() {
            return A
        }, t.concat = function(N) {
            A = N
        }, L = t), L
}
#33 JavaScript::Eval (size: 133) - SHA256: e86a6478ee13b5c83c4d1b16a58019b3c685f7db501052027b5fc52748d7a8c3
0, r = function(h, A, S) {
    if (S = A.o[h], void 0 === S) throw [s1, 30, h];
    if (S.value) return S.create();
    return (S.create(3 * h * h + -97 * h + -48), S).prototype
}
#34 JavaScript::Eval (size: 29) - SHA256: 53e5b7d706a350fe98d52499058624e15cddc1541f17370f94a899a386c50255
document.createElement('img')
#35 JavaScript::Eval (size: 2) - SHA256: 71b02ad1145a38f3e667196b254a01643ec2025956d7b746f2144143c666d9da
YH
#36 JavaScript::Eval (size: 1) - SHA256: 454349e422f05297191ead13e21d3db520e5abef52055e4964b82fb213f593a1
r
#37 JavaScript::Eval (size: 702) - SHA256: aef816efafc99b49a7ecb940ed040fc885a56c6ffbbff75e1fca0f75efb04aea
b = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
    if (!((A ^ ((26 > (26 > (A | 7) && 10 <= (A + 9 & 15) && (G = Y & S, R = Am, F = [-5, -97, -93, -48, -71, 72, F, 41, 66, 46], e = FR[t.l](t.zv), e[t.l] = function(N) {
            G += 6 + (Q = N, S) * Y, G &= S
        }, e.concat = function(N, v, W) {
            return ((W = (v = +F[G + 27 & S] * n * (N = n % 16 + 1, N) - N * Q - 144 * n * n * Q + 48 * Q * Q + G + 3 * n * n * N - -2304 * Q + (R() | h) * N - -4656 * n * Q, Q = void 0, F[v]), F)[(G + 13 & S) + ((Y | h) - -3 + ~(Y | 2))] = W, F)[G + (Y & 2)] = -97, W
        }, L = e), A) - 9 && 10 <= (A >> 1 & 15) && (h.O ? L = S_(h, h.v) : (n = tm(h, 8, 8, true), (n | 0) - (n ^ 128) + (~n & 128) && (n ^= 128, S = tm(h, 2, 8, true), n = (n << 2) + (S | 0)), L = n)), A << 1 & 11) || (Y = B(8, true, S), -(Y | 0) - -258 + (Y & -129) + 2 * (Y | -129) && (Y = (t = Y & 127, n = B(8, true, S) << h, -(t | 0) + 2 * (t & n) + 2 * (t & ~n) + (~t & n))), L = Y), 41)) >> 4)) {
        for (t = (Y = b(S, 23), 0); 0 < n; n--) t = t << 8 | B(8, h, S);
        D(Y, S, t)
    }
    return L
}
#38 JavaScript::Eval (size: 29) - SHA256: 05a189b0d190d083aae4e7c9178f4434f0c2e0a89ab5c698615bd5e149b7f36a
0,
function(F) {
    b(true, 35, F, 4)
}
#39 JavaScript::Eval (size: 252) - SHA256: 5b65b3ebc4109ce79a5344d255f4ba2154ade52d090aa1c67be24224f73b3e55
0,
function(F, G, Q, R, e, L, N, v, W) {
    C(1, 16, false, G, F, true) || (v = Nv(true, F.C, 0, 1), Q = v.gP, L = v.s, W = L.length, e = v.Iy, R = v.xu, N = 0 == W ? new e[Q] : 1 == W ? new e[Q](L[0]) : 2 == W ? new e[Q](L[0], L[1]) : 3 == W ? new e[Q](L[0], L[1], L[2]) : 4 == W ? new e[Q](L[0], L[1], L[2], L[3]) : 2(), D(R, F, N))
}
#40 JavaScript::Eval (size: 290) - SHA256: d2d73753b5314f86fb3da35d4f836cdaaea71c71352131c5e35f012d2d35309c
0,
function(F, G, Q, R, e, L, N, v, W, K, E, H, l, a) {
    if (!C(1, 18, true, G, F, true)) {
        if ("object" == iQ("number", "call", (L = r((Q = r((a = r((v = (E = b(F, (e = (R = b(F, 23), b(F, 31)), 27)), b(F, 29)), l = r(E, F), e), F), v), F), R), F), L))) {
            for (N in K = [], L) K.push(N);
            L = K
        }
        for (W = 0, H = L.length, l = 0 < l ? l : 1; W < H; W += l) a(L.slice(W, (W | 0) + (l | 0)), Q)
    }
}
#41 JavaScript::Eval (size: 704) - SHA256: ec9c4e6d49d26840bd4a9b02fb0df6d54bc2ee6199c937c0a1320c3e8fd66ad3
0, b = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
    if (!((A ^ ((26 > (26 > (A | 7) && 10 <= (A + 9 & 15) && (G = Y & S, R = Am, F = [-5, -97, -93, -48, -71, 72, F, 41, 66, 46], e = FR[t.l](t.zv), e[t.l] = function(N) {
            G += 6 + (Q = N, S) * Y, G &= S
        }, e.concat = function(N, v, W) {
            return ((W = (v = +F[G + 27 & S] * n * (N = n % 16 + 1, N) - N * Q - 144 * n * n * Q + 48 * Q * Q + G + 3 * n * n * N - -2304 * Q + (R() | h) * N - -4656 * n * Q, Q = void 0, F[v]), F)[(G + 13 & S) + ((Y | h) - -3 + ~(Y | 2))] = W, F)[G + (Y & 2)] = -97, W
        }, L = e), A) - 9 && 10 <= (A >> 1 & 15) && (h.O ? L = S_(h, h.v) : (n = tm(h, 8, 8, true), (n | 0) - (n ^ 128) + (~n & 128) && (n ^= 128, S = tm(h, 2, 8, true), n = (n << 2) + (S | 0)), L = n)), A << 1 & 11) || (Y = B(8, true, S), -(Y | 0) - -258 + (Y & -129) + 2 * (Y | -129) && (Y = (t = Y & 127, n = B(8, true, S) << h, -(t | 0) + 2 * (t & n) + 2 * (t & ~n) + (~t & n))), L = Y), 41)) >> 4)) {
        for (t = (Y = b(S, 23), 0); 0 < n; n--) t = t << 8 | B(8, h, S);
        D(Y, S, t)
    }
    return L
}
#42 JavaScript::Eval (size: 22) - SHA256: 5abeb32249dee657ee10862beb5b27b07999cb3aaa2e528ef9b7f3cc02f4f96c
0,
function(F) {
    XI(F, 4)
}
#43 JavaScript::Eval (size: 90) - SHA256: 67b9a197e008752f17ac89bae6ddc4248037daef93941169d1502fbde4ed1baf
0,
function(F, G, Q, R, e, L) {
    L = r((R = b(F, (G = b(F, (e = b(F, 31), 28)), 30)), Q = r(G, F), e), F), D(R, F, L[Q])
}
#44 JavaScript::Eval (size: 2) - SHA256: 7446783c207819c88f4358a528c02b9dbb7154a31cd89f4795a763ed8f829b5c
hn
#45 JavaScript::Eval (size: 2) - SHA256: 3af14080667e8a3424ced3b8d4d90a44003446c89a5421943a7045d1eb30db05
bE
#46 JavaScript::Eval (size: 35) - SHA256: 1e3606d95ce27d593157594820335681a9380f51a96147303cd8000e60a95e12
document.createElement('div').style
#47 JavaScript::Eval (size: 2) - SHA256: a268f9f4f6508439db3d94afb51714c396bd176398a09a4b7227105eee140d8b
Qq
#48 JavaScript::Eval (size: 145) - SHA256: 3f5f38f003fa1ba1ee3cd3d414d817c0ce09a5c587243dcae2e83446d09aaf6c
0,
function(F, G, Q, R) {
    if (R = F.Gv.pop()) {
        for (G = B(8, true, F); 0 < G; G--) Q = b(F, 25), R[Q] = F.o[Q];
        F.o = (R[229] = (R[198] = F.o[198], F.o[229]), R)
    } else D(334, F, F.U)
}
#49 JavaScript::Eval (size: 92) - SHA256: ad08fc915ab63088a6c0c9b7347f824fef1b0852638aa3e8228d5dd78c1391ba
0,
function(F, G, Q, R, e) {
    (R = (G = (e = b(F, (Q = b(F, 28), 28)), r(Q, F)), iQ("number", "call", G)), D)(e, F, R)
}
#50 JavaScript::Eval (size: 79) - SHA256: 08212e5a39e3b3010e966d7d158c601a71654c099aad015bf8f50e8097164ddc
0,
function(F, G, Q, R, e) {
    D((R = (G = (e = b(F, (Q = b(F, 31), 29)), r)(Q, F), r(e, F)), e), F, R % G)
}
#51 JavaScript::Eval (size: 210) - SHA256: 44498af955ad6f8438d9f30c8f4336b8023fb4b74e4e6aad70fc1553222aa045
0, Qq = function(h, A, S, n, t) {
    if (n = (t = q.trustedTypes, S), !t || !t.createPolicy) return n;
    try {
        n = t.createPolicy(A, {
            createHTML: Gr,
            createScript: Gr,
            createScriptURL: Gr
        })
    } catch (Y) {
        if (q.console) q.console[h](Y.message)
    }
    return n
}
#52 JavaScript::Eval (size: 83) - SHA256: 3eb8abc484d33a620c974de75babdd2caae4fff7dc8daad7d860dd41c93ee611
(function(r, K, a, V) {
    for (V = (a = [], 0); V < r.length; V++) a[V] = r[V] ^ K[V % K.length];
    return a
})
#53 JavaScript::Eval (size: 278) - SHA256: 63d1ee903d1897594fa79eae69157989d5656542a2c6be7e27229514b8df28eb
0, ww = function(h, A, S, n, t, Y, F, G, Q, R) {
    for (R = S[A] | (Q = (G = S[2] | 0, 0), 0); 15 > Q; Q++) t = t >>> 8 | t << h, R = R >>> 8 | R << h, R += G | 0, t += Y | 0, t ^= G + n, Y = Y << A | Y >>> F, G = G << A | G >>> F, R ^= Q + n, Y ^= t, G ^= R;
    return [z(Y, 12, A, 255), z(Y, 9, 2, 255), z(Y, 13, 1, 255), z(Y, 9, 0, 255), z(t, 5, A, 255), z(t, 8, 2, 255), z(t, 5, 1, 255), z(t, 8, 0, 255)]
}
#54 JavaScript::Eval (size: 136) - SHA256: a85a12e55024cb4a35a687d40f6b1a567178cdf6099103c07058bd3729f4eb20
0, SM = function(h, A, S, n, t, Y) {
    return r(S, (D(334, (FI(false, n, t, ((Y = r(334, n), n).G && Y < n.U ? (D(334, n, n.U), hn(n, 334, A)) : D(334, n, A), h)), n), Y), n))
}
#55 JavaScript::Eval (size: 2) - SHA256: 68915d5a1b08021e1fbbcdfa910e526c6c87c414972e55c4419bd336b1d32e80
FI
#56 JavaScript::Eval (size: 2) - SHA256: 6dee04b73e8d3336654bca37a2d58c001f0bfc572f4bf0d46c38fc08002d4da7
tm
#57 JavaScript::Eval (size: 22) - SHA256: 240721deb0a642e222c259d8a97377ef94efd2bf66909386fafb4d14f8abf3e5
0,
function(F) {
    XI(F, 2)
}
#58 JavaScript::Eval (size: 36624) - SHA256: d7e4a7ab6ad4a584c71b96df9638f1b1537b1d6f3e0eacb05e10937613dfac8f
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjogMywic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiICJdLCJuYW1lcyI6WyJjbG9zdXJlRHluYW1pY0J1dHRvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEifQ==
(function() {
    var b = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
            if (!((A ^ ((26 > (26 > (A | 7) && 10 <= (A + 9 & 15) && (G = Y & S, R = Am, F = [-5, -97, -93, -48, -71, 72, F, 41, 66, 46], e = FR[t.l](t.zv), e[t.l] = function(N) {
                    G += 6 + (Q = N, S) * Y, G &= S
                }, e.concat = function(N, v, W) {
                    return ((W = (v = +F[G + 27 & S] * n * (N = n % 16 + 1, N) - N * Q - 144 * n * n * Q + 48 * Q * Q + G + 3 * n * n * N - -2304 * Q + (R() | h) * N - -4656 * n * Q, Q = void 0, F[v]), F)[(G + 13 & S) + ((Y | h) - -3 + ~(Y | 2))] = W, F)[G + (Y & 2)] = -97, W
                }, L = e), A) - 9 && 10 <= (A >> 1 & 15) && (h.O ? L = S_(h, h.v) : (n = tm(h, 8, 8, true), (n | 0) - (n ^ 128) + (~n & 128) && (n ^= 128, S = tm(h, 2, 8, true), n = (n << 2) + (S | 0)), L = n)), A << 1 & 11) || (Y = B(8, true, S), -(Y | 0) - -258 + (Y & -129) + 2 * (Y | -129) && (Y = (t = Y & 127, n = B(8, true, S) << h, -(t | 0) + 2 * (t & n) + 2 * (t & ~n) + (~t & n))), L = Y), 41)) >> 4)) {
                for (t = (Y = b(S, 23), 0); 0 < n; n--) t = t << 8 | B(8, h, S);
                D(Y, S, t)
            }
            return L
        },
        nA = function(h, A, S, n, t, Y, F, G, Q) {
            return 9 <= (((A & 28) == (1 == A + 3 >> 3 && (this.C = S), A) && (this.src = S, this.i = 0, this.P = {}), A) >> 2 & 11) && (A + 3 & 8) < h && (Y.classList ? F = Y.classList.contains(t) : (G = p(Y, 6, S), F = p(t, 23, 1, G) >= n), Q = F), Q
        },
        V = function(h, A, S, n, t, Y, F, G, Q, R) {
            if (0 <= (h ^ 1) && 15 > h - 2) {
                if (n = window.btoa) {
                    for (t = "", S = 0; S < A.length; S += 8192) t += String.fromCharCode.apply(null, A.slice(S, S + 8192));
                    Y = n(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")
                } else Y = void 0;
                R = Y
            }
            if ((h + 7 & 10 || (R = k(0, 24, 0, t, n) && !!(n.u & t) != S && (!(Y = n.bu, -2 * ~t + ~(Y | t) - (~Y ^ t) + 2 * (Y | ~t)) || n.dispatchEvent(X(9, 8, 4, A, 2, t, S))) && !n.Jh), h & 89) == h)
                if (t && t.once) k(0, 29, A, true, G, n, Y, t, F);
                else if (Array.isArray(n))
                for (Q = A; Q < n.length; Q++) V(65, 0, false, n[Q], t, Y, F, G);
            else G = Yj(57, 11, G), F && F[sc] ? F.J.add(String(n), G, S, O(3, "object", t) ? !!t.capture : !!t, Y) : X(25, false, "object", Y, S, t, G, F, n);
            return (h & 57) == h && (Y = p(n, 31, A, S), (t = 0 <= Y) && Array.prototype.splice.call(S, Y, A), R = t), R
        },
        GT = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N) {
            if (4 > (S - 3 & 8) && 1 <= ((S ^ 16) & 7))
                if (Array.isArray(A))
                    for (R = h; R < A.length; R++) GT(0, A[R], 5, "object", t, Y, F, G);
                else L = O(66, n, F) ? !!F.capture : !!F, t = Yj(57, 9, t), G && G[sc] ? G.J.remove(String(A), t, L, Y) : G && (Q = I(G, 6)) && (e = Q.MW(L, A, t, Y)) && GT(null, e, 11, "on");
            return S - 3 << 2 >= S && (S + 1 ^ 15) < S && "number" !== typeof A && A && !A.V && ((F = A.src) && F[sc] ? d(h, 80, F.J, A) : (G = A.proxy, Y = A.type, F.removeEventListener ? F.removeEventListener(Y, G, A.capture) : F.detachEvent ? F.detachEvent(C(n, 43, Y), G) : F.addListener && F.removeListener && F.removeListener(G), QJ--, (t = I(F, 5)) ? (d(h, 84, t, A), 0 == t.i && (t.src = h, F[RA] = h)) : U(12, 28, h, A))), N
        },
        Yj = function(h, A, S, n, t, Y, F, G, Q, R) {
            if (2 > (A ^ 70) >> 5 && 9 <= (A ^ h)) a: {
                for (F in t)
                    if (Y.call(void 0, t[F], F, t)) {
                        R = S;
                        break a
                    }
                R = n
            }
            if (5 <= ((A & 94) == ((A & 59) == A && ("function" === typeof S ? R = S : (S[e_] || (S[e_] = function(e) {
                    return S.handleEvent(e)
                }), R = S[e_])), A) && (LA.call(this), this.J = new vy(this), this.nO = this, this.qW = null), (A | 6) & 7) && 17 > (A ^ 48))
                for (Q = t.length, F = "string" === typeof t ? t.split(n) : t, G = S; G < Q; G++) G in F && Y.call(void 0, F[G], G, t);
            return R
        },
        X = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v, W) {
            if (4 > ((((h & 87) == h && (W = function(K) {
                    return A.call(W.src, W.listener, K)
                }, A = By, v = W), (h - 7 | 82) < h && (h - 5 | 52) >= h) && (v = Object.prototype.hasOwnProperty.call(A, bQ) && A[bQ] || (A[bQ] = ++Wy)), h << 1) & 12) && 12 <= h + 2) {
                if (!Q) throw Error("Invalid event type");
                if (!((R = O(3, S, Y) ? !!Y.capture : !!Y, N = I(G, 3)) || (G[RA] = N = new vy(G)), L = N.add(Q, F, t, R, n), L).proxy) {
                    if ((L.proxy = (e = X(19), e), e.src = G, e.listener = L, G).addEventListener) DB || (Y = R), void 0 === Y && (Y = A), G.addEventListener(Q.toString(), e, Y);
                    else if (G.attachEvent) G.attachEvent(C("on", 47, Q.toString()), e);
                    else if (G.addListener && G.removeListener) G.addListener(e);
                    else throw Error("addEventListener and attachEvent are unavailable.");
                    QJ++
                }
            }
            if (h + 3 >> 2 < h && (h - 3 ^ 24) >= h) a: {
                switch (Y) {
                    case 1:
                        v = F ? "disable" : "enable";
                        break a;
                    case t:
                        v = F ? "highlight" : "unhighlight";
                        break a;
                    case S:
                        v = F ? "activate" : "deactivate";
                        break a;
                    case A:
                        v = F ? "select" : "unselect";
                        break a;
                    case 16:
                        v = F ? "check" : "uncheck";
                        break a;
                    case n:
                        v = F ? "focus" : "blur";
                        break a;
                    case 64:
                        v = F ? "open" : "close";
                        break a
                }
                throw Error("Invalid component state");
            }
            if ((h + 5 & 40) >= h && (h + 1 & 20) < h) a: {
                for (F = A; F < S.length; ++F)
                    if (G = S[F], !G.V && G.listener == Y && G.capture == !!t && G.bE == n) {
                        v = F;
                        break a
                    }
                v = -1
            }
            return v
        },
        kj = function(h, A, S, n, t, Y, F, G, Q, R, e) {
            return -70 <= ((20 <= A << 2 && 8 > ((A ^ 36) & 14) && (Array.isArray(Y) && (Y = Y.join(" ")), G = "aria-" + F, "" === Y || void 0 == Y ? (pA || (Q = {}, pA = (Q[n] = false, Q.autocomplete = "none", Q.dropeffect = "none", Q.haspopup = false, Q.live = "off", Q.multiline = false, Q.multiselectable = false, Q.orientation = "vertical", Q.readonly = false, Q.relevant = "additions text", Q.required = false, Q.sort = "none", Q.busy = false, Q.disabled = false, Q[S] = false, Q.invalid = "false", Q)), R = pA, F in R ? t.setAttribute(G, R[F]) : t.removeAttribute(G)) : t.setAttribute(G, Y)), A) | 4) && 2 > (A + 7 & 6) && (this.type = S, this.currentTarget = this.target = n, this.defaultPrevented = this.A = false), 2 == (A >> h & 3) && (this.Jh = this.Jh), e
        },
        lQ = function(h, A, S, n, t, Y, F, G, Q, R, e) {
            if ((h & 106) == h) {
                if (!S) throw Error("Invalid class name " + S);
                if ("function" !== typeof A) throw Error("Invalid decorator function " + A);
            }
            if (!(h - 8 >> 3)) {
                for (; Y.N.length;) {
                    G = (Y.g = t, Y.N.pop());
                    try {
                        Q = KA(Y, 421, S, G)
                    } catch (L) {
                        C(S, 64, L, Y)
                    }
                    if (F && Y.g) {
                        (R = Y.g, R)(function() {
                            T(3, A, n, n, Y)
                        });
                        break
                    }
                }
                e = Q
            }
            return (h ^ 5) & 11 || (e = typeof n.className == S ? n.className : n.getAttribute && n.getAttribute("class") || A), e
        },
        U = function(h, A, S, n, t, Y, F, G) {
            if ((A - (2 == (((A + 4 & 36) >= A && (A - 1 ^ h) < A && (n.V = true, n.listener = S, n.proxy = S, n.src = S, n.bE = S), A >> 2) & 15) && (G = Math.floor(this.D())), 1) | 40) < A && A - 2 << 2 >= A)
                if (F = n.length, F > S) {
                    for (Y = (t = Array(F), S); Y < F; Y++) t[Y] = n[Y];
                    G = t
                } else G = [];
            return 2 == (A - 4 & ((A | 80) == A && u.call(this, S, n || VJ.CO(), t), 14)) && (G = S), G
        },
        p = function(h, A, S, n, t, Y, F) {
            if (1 == (A + 6 & 3)) a: if ("string" === typeof n) Y = "string" !== typeof h || h.length != S ? -1 : n.indexOf(h, 0);
                else {
                    for (t = 0; t < n.length; t++)
                        if (t in n && n[t] === h) {
                            Y = t;
                            break a
                        }
                    Y = -1
                }
            return (A & 54) == ((A & 91) == A && (F = function() {}, F.prototype = n.prototype, h.R = n.prototype, h.prototype = new F, h.prototype.constructor = h, h.Do = function(G, Q, R) {
                for (var e = Array(arguments.length - S), L = S; L < arguments.length; L++) e[L - S] = arguments[L];
                return n.prototype[Q].apply(G, e)
            }), A) && (Y = h.classList ? h.classList : lQ(17, S, "string", h).match(/\S+/g) || []), Y
        },
        Oc = function(h, A, S, n, t, Y, F, G, Q, R, e) {
            if ((n | ((n & 79) == n && (t(function(L) {
                    L(S)
                }), e = [function() {
                    return S
                }]), 16)) == n)
                for (G in F = t, Y.P) {
                    for (Q = (R = Y.P[G], t); Q < R.length; Q++) ++F, U(h, A, S, R[Q]);
                    delete Y.P[G], Y.i--
                }
            return e
        },
        d = function(h, A, S, n, t, Y, F) {
            return ((A ^ 84) >> ((A & 47) == (3 == ((A | 1) & 15) && (Ec.call(this, h ? h.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.Z = null, h && (n = this.type = h.type, t = h.changedTouches && h.changedTouches.length ? h.changedTouches[0] : null, this.target = h.target || h.srcElement, this.currentTarget = S, Y = h.relatedTarget, Y || ("mouseover" == n ? Y = h.fromElement : "mouseout" == n && (Y = h.toElement)), this.relatedTarget = Y, t ? (this.clientX = void 0 !== t.clientX ? t.clientX : t.pageX, this.clientY = void 0 !== t.clientY ? t.clientY : t.pageY, this.screenX = t.screenX || 0, this.screenY = t.screenY || 0) : (this.offsetX = h.offsetX, this.offsetY = h.offsetY, this.clientX = void 0 !== h.clientX ? h.clientX : h.pageX, this.clientY = void 0 !== h.clientY ? h.clientY : h.pageY, this.screenX = h.screenX || 0, this.screenY = h.screenY || 0), this.button = h.button, this.keyCode = h.keyCode || 0, this.key = h.key || "", this.charCode = h.charCode || ("keypress" == n ? h.keyCode : 0), this.ctrlKey = h.ctrlKey, this.altKey = h.altKey, this.shiftKey = h.shiftKey, this.metaKey = h.metaKey, this.pointerId = h.pointerId || 0, this.pointerType = "string" === typeof h.pointerType ? h.pointerType : j_[h.pointerType] || "", this.state = h.state, this.Z = h, h.defaultPrevented && Hy.R.preventDefault.call(this))), A) && (h.classList ? Array.prototype.forEach.call(S, function(G) {
                IA(45, " ", "", 0, "string", 40, h, G)
            }) : I("string", 59, Array.prototype.filter.call(p(h, 20, ""), function(G) {
                return !(0 <= p(G, 15, 1, S))
            }).join(" "), h)), 3) || (t = n.type, t in S.P && V(32, 1, S.P[t], n) && (U(12, 29, h, n), 0 == S.P[t].length && (delete S.P[t], S.i--))), (A | 40) == A) && S.N.splice(h, h, n), (A - 9 ^ 9) >= A && (A + 4 & 66) < A && (F = h && h.parentNode ? h.parentNode.removeChild(h) : null), F
        },
        dw = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
            if (3 > ((h ^ ((h - 9 ^ 29) >= h && (h + 8 & 17) < h && (Y = S, Y = (t = Y << 13, ~(Y & t) - 2 * ~Y + ~(Y | t) + 2 * (~Y & t)), Y ^= Y >> 17, (Y = (Y ^ Y << 5) & n) || (Y = 1), L = (A & ~Y) - 2 * (~A ^ Y) - (~A & Y) + 2 * (~A | Y)), 32)) & 8) && -58 <= h + 3) {
                for (G = R = 0; G < A.length; G++) R += A.charCodeAt(G), R += R << 10, R ^= R >> 6;
                L = ((t = new Number((F = (e = 1 << S, -(e & 1) - 1 - 2 * ~e + ~((Q = (R = (R += R << 3, Y = R >> 11, -2 - (R | ~Y) - (~R | Y)), R + (R << 15)) >>> 0, e) | 1)), (F | 0) - ~(Q & F) + ~F)), t)[0] = (Q >>> S) % n, t)
            }
            return L
        },
        IA = function(h, A, S, n, t, Y, F, G, Q) {
            if ((((Y | 40) == Y && (F.classList ? F.classList.remove(G) : nA(5, h, S, n, G, F) && I(t, 57, Array.prototype.filter.call(p(F, 32, S), function(R) {
                    return R != G
                }).join(A), F)), 1) == (Y - 8 & 7) && (S.V ? n = true : (t = new Hy(A, this), G = S.listener, F = S.bE || S.src, S.j && GT(null, S, 8, "on"), n = G.call(F, t)), Q = n), 1 > ((Y ^ 29) & 6)) && 8 <= (Y + 7 & 14))
                if (S.classList) Array.prototype.forEach.call(A, function(R, e) {
                    S.classList ? S.classList.add(R) : nA(5, 36, "", 0, R, S) || (e = lQ(5, "", "string", S), I("string", 58, e + (0 < e.length ? " " + R : R), S))
                });
                else {
                    for (t in F = ((Array.prototype.forEach.call(p((n = {}, S), 22, ""), function(R) {
                            n[R] = true
                        }), Array).prototype.forEach.call(A, function(R) {
                            n[R] = true
                        }), ""), n) F += 0 < F.length ? " " + t : t;
                    I("string", 60, F, S)
                }
            return Q
        },
        z = function(h, A, S, n, t, Y, F) {
            return (A + ((A & 13) == A && (F = (t = h >>> 8 * S, -1 - ~(t | n) - (t & -256) - (~t & n))), 4) & 30) < A && (A + 3 & 42) >= A && (Y = function() {}, h = void 0, t = CA(n, function(G) {
                Y && (S && Py(S), h = G, Y(), Y = void 0)
            }, !!S)[0], F = {
                hot: function(G, Q, R, e, L) {
                    function N() {
                        h(function(v) {
                            Py(function() {
                                G(v)
                            })
                        }, R)
                    }
                    if (!Q) return e = t(R), G && G(e), e;
                    h ? N() : (L = Y, Y = function() {
                        (L(), Py)(N)
                    })
                }
            }), F
        },
        O = function(h, A, S, n, t, Y, F, G) {
            return 1 == (h - (3 == ((h | 24) == h && (G = FR[A](FR.prototype, {
                prototype: S,
                floor: S,
                length: S,
                splice: S,
                call: S,
                replace: S,
                console: S,
                parent: S,
                stack: S,
                propertyIsEnumerable: S,
                document: S,
                pop: S
            })), 1 == (h >> 1 & 15) && (n = typeof S, G = n == A && null != S || "function" == n), (h ^ 3) & 15) && (Uc.call(this), A || aA || (aA = new xj), this.fO = this.LO = this.uE = this.Zl = null, this.vG = void 0, this.KO = null, this.rP = false), 3) & 7) && (F = typeof t, Y = F != S ? F : t ? Array.isArray(t) ? "array" : F : "null", G = Y == A || Y == S && typeof t.length == n), G
        },
        T = function(h, A, S, n, t, Y, F, G, Q) {
            if (!((h ^ 8) >> 4) && t.N.length) {
                (t.oy && 0(), t).oy = true, t.Ah = n;
                try {
                    F = t.D(), t.H = F, t.F = F, t.PG = 0, G = lQ(9, false, 0, true, null, t, n), Y = t.D() - t.H, t.dP += Y, Y < (S ? 0 : 10) || 0 >= t.QC-- || (Y = Math.floor(Y), t.Dl.push(254 >= Y ? Y : 254))
                } finally {
                    t.oy = A
                }
                Q = G
            }
            return (h + 2 & (1 <= (h ^ 36) >> 3 && 7 > (h << 2 & 14) && (S.Xz(function(R) {
                t = R
            }, A, n), Q = t), 29)) < h && (h - 8 ^ 26) >= h && (this.Y = q.document || document), Q
        },
        I = function(h, A, S, n, t, Y, F, G, Q, R) {
            if ((A - 1 | 16) < ((A + 8 & ((A & ((A | 24) == A && (typeof n.className == h ? n.className = S : n.setAttribute && n.setAttribute("class", S)), 71)) == A && (S = h[RA], R = S instanceof vy ? S : null), 12)) < A && (A + 1 ^ 16) >= A && h.uE && h.uE.forEach(S, void 0), A) && (A - 9 | 54) >= A) {
                if (TT.call(this, n), !(Q = S)) {
                    for (G = this.constructor; G;) {
                        if (t = X(91, G), Y = Mw[t]) break;
                        G = (F = Object.getPrototypeOf(G.prototype)) && F.constructor
                    }
                    Q = Y ? "function" === typeof Y.CO ? Y.CO() : new Y : null
                }
                this.S = Q
            }
            return R
        },
        yJ = function(h, A, S, n, t, Y, F, G) {
            return 2 <= ((A | 4) >> 4 || (S.CO = function() {
                return S.Ed ? S.Ed : S.Ed = new S
            }, S.Ed = void 0), (A | h) >> 4) && 3 > ((A | 5) & h) && (this.listener = F, this.proxy = null, this.src = t, this.type = Y, this.capture = !!n, this.bE = S, this.key = ++uQ, this.j = this.V = false), G
        },
        C = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v, W) {
            if ((A & 26) == (((A | 40) == A && (W = S in zT ? zT[S] : zT[S] = h + S), A - 5 ^ 23) >= A && (A - 3 | 35) < A && (W = (t = qw[h.substring(0, 3) + "_"]) ? t(h.substring(3), S, n) : Oc(12, 30, h, 3, S)), A)) {
                if (t.NW += (t.C = (R = (v = (L = (N = (Y || t.PG++, 0 < t.Tv && t.oy && t.Ah && t.th <= h) && !t.O && !t.g && (!Y || t.wP - n > h) && 0 == document.hidden, (F = 4 == t.PG) || N ? t.D() : t.F), L - t.F), v >> 14), t.T && (t.T = (G = t.T, e = R * (v << 2), (G & e) + ~(G & e) - (~G ^ e))), R) || t.C, R), F || N) t.F = L, t.PG = 0;
                !N || L - t.H < t.Tv - (S ? 255 : Y ? 5 : 2) ? W = false : (t.wP = n, Q = r(Y ? 339 : 334, t), D(334, t, t.U), t.N.push([rw, Q, Y ? n + h : n]), t.g = Py, W = true)
            }
            if ((A | 72) == (A >> 2 & 14 || (n.K = ((n.K ? n.K + "~" : "E:") + S.message + ":" + S.stack).slice(h, 2048)), A)) {
                for (Y = (G = t = 0, []); G < h.length; G++)
                    for (t += S, n = n << S | h[G]; 7 < t;) t -= 8, Y.push((F = n >> t, (F | 255) - -1 - (~F & 255) + (~F | 255)));
                W = Y
            }
            return W
        },
        fA = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
            if (3 <= ((n - 3 >> (2 == ((n ^ 32) & 11) && (L = e = function() {
                    if (t.C == t) {
                        if (t.o) {
                            var N = [Jm, Y, G, void 0, Q, R, arguments];
                            if (2 == F) var v = T(3, false, (d(0, 63, t, N), A), A, t);
                            else if (F == S) {
                                var W = !t.N.length;
                                (d(0, 61, t, N), W) && T(15, false, A, A, t)
                            } else v = KA(t, 421, 0, N);
                            return v
                        }
                        Q && R && Q.removeEventListener(R, e, ZB)
                    }
                }), 4) || (L = (G = (Q = Y[t] << 24, F = Y[2 * (t | 1) - -2 + ~(t | 1) - (~t & 1)] << 16, -~(Q | F) + (Q ^ F) + (~Q ^ F)) | Y[-2 * ~t - 4 * (t & -3) + A * (t ^ 2) + 2 * (t | -3)] << S, R = Y[(t | 0) + A], A * (G & R) + ~G + ~R - 2 * (~G ^ R))), n) | 4) >> 4 && 23 > (n ^ 37))
                if (F = "array" === iQ("number", "call", t) ? t : [t], this.K) A(this.K);
                else try {
                    Y = [], G = !this.N.length, d(0, 60, this, [gw, Y, F]), d(0, h, this, [cy, A, Y]), S && !G || T(10, false, true, S, this)
                } catch (N) {
                    C(0, 5, N, this), A(this.K)
                }
                return (n | 56) == n && (t = FR[S.l](S.j1), t[S.l] = function() {
                    return A
                }, t.concat = function(N) {
                    A = N
                }, L = t), L
        },
        J = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N) {
            if (0 <= ((h - 8 << 1 < h && (h - 9 ^ 23) >= h && (D(n, S, A), A[mo] = 2796), h >> 1) & 6) && 12 > (h ^ 22))
                if (G = S.J.P[String(Y)]) {
                    for (R = (G = G.concat(), L = A, 0); R < G.length; ++R)(e = G[R]) && !e.V && e.capture == t && (F = e.listener, Q = e.bE || e.src, e.j && d(null, 81, S.J, e), L = false !== F.call(Q, n) && L);
                    N = L && !n.defaultPrevented
                } else N = A;
            return N
        },
        k = function(h, A, S, n, t, Y, F, G, Q, R, e) {
            if ((A + 9 & 27) < (((A & 94) == A && (e = !!(Y = t.tl, (Y | S) + (Y & ~n) - 2 * (Y ^ n) + 2 * (~Y & n))), 6) <= (A | 3) && 19 > (A ^ 5) && (e = Math.floor(this.dP + (this.D() - this.H))), A) && (A + 5 ^ 30) >= A)
                if (Array.isArray(Y))
                    for (R = S; R < Y.length; R++) k(0, 27, h, true, t, Y[R], F, G, Q);
                else t = Yj(57, 3, t), Q && Q[sc] ? Q.J.add(String(Y), t, n, O(35, "object", G) ? !!G.capture : !!G, F) : X(24, false, "object", F, n, G, t, Q, Y);
            return e
        },
        ww = function(h, A, S, n, t, Y, F, G, Q, R) {
            for (R = S[A] | (Q = (G = S[2] | 0, 0), 0); 15 > Q; Q++) t = t >>> 8 | t << h, R = R >>> 8 | R << h, R += G | 0, t += Y | 0, t ^= G + n, Y = Y << A | Y >>> F, G = G << A | G >>> F, R ^= Q + n, Y ^= t, G ^= R;
            return [z(Y, 12, A, 255), z(Y, 9, 2, 255), z(Y, 13, 1, 255), z(Y, 9, 0, 255), z(t, 5, A, 255), z(t, 8, 2, 255), z(t, 5, 1, 255), z(t, 8, 0, 255)]
        },
        iQ = function(h, A, S, n, t) {
            if ("object" == (t = typeof S, t))
                if (S) {
                    if (S instanceof Array) return "array";
                    if (S instanceof Object) return t;
                    if (n = Object.prototype.toString.call(S), "[object Window]" == n) return "object";
                    if ("[object Array]" == n || typeof S.length == h && "undefined" != typeof S.splice && "undefined" != typeof S.propertyIsEnumerable && !S.propertyIsEnumerable("splice")) return "array";
                    if ("[object Function]" == n || "undefined" != typeof S.call && "undefined" != typeof S.propertyIsEnumerable && !S.propertyIsEnumerable(A)) return "function"
                } else return "null";
            else if ("function" == t && "undefined" == typeof S.call) return "object";
            return t
        },
        An = function(h, A) {
            for (var S = 1, n, t; S < arguments.length; S++) {
                for (n in t = arguments[S], t) h[n] = t[n];
                for (var Y = 0; Y < oA.length; Y++) n = oA[Y], Object.prototype.hasOwnProperty.call(t, n) && (h[n] = t[n])
            }
        },
        S_ = function(h, A, S) {
            return S = A.create().shift(), h.O.create().length || h.v.create().length || (h.O = void 0, h.v = void 0), S
        },
        SM = function(h, A, S, n, t, Y) {
            return r(S, (D(334, (FI(false, n, t, ((Y = r(334, n), n).G && Y < n.U ? (D(334, n, n.U), hn(n, 334, A)) : D(334, n, A), h)), n), Y), n))
        },
        tn = function(h, A, S, n) {
            try {
                n = h[((A | 0) + 2) % 3], h[A] = (h[A] | 0) - (h[((A | 0) + 1) % 3] | 0) - (n | 0) ^ (1 == A ? n << S : n >>> S)
            } catch (t) {
                throw t;
            }
        },
        FI = function(h, A, S, n, t, Y, F, G) {
            if (!A.K) {
                A.th++;
                try {
                    for (F = (Y = n, t = A.U, void 0); --S;) try {
                        if ((G = void 0, A).O) F = S_(A, A.O);
                        else {
                            if ((Y = r(334, A), Y) >= t) break;
                            F = r((D(339, A, Y), G = b(A, 25), G), A)
                        }
                        C(1, 8, (F && F[n5] & 2048 ? F(A, S) : YH(A, n, [s1, 21, G], ":"), h), S, A, h)
                    } catch (Q) {
                        r(290, A) ? YH(A, 22, Q, ":") : D(290, A, Q)
                    }
                    if (!S) {
                        if (A.iE) {
                            A.th--, FI(false, A, 96079672458, 0);
                            return
                        }
                        YH(A, n, [s1, 33], ":")
                    }
                } catch (Q) {
                    try {
                        YH(A, 22, Q, ":")
                    } catch (R) {
                        C(n, 7, R, A)
                    }
                }
                A.th--
            }
        },
        LA = function() {
            return kj.call(this, 1, 12)
        },
        u = function(h, A, S, n, t, Y, F, G) {
            return I.call(this, h, 17, A, S, n, t, Y, F, G)
        },
        Qq = function(h, A, S, n, t) {
            if (n = (t = q.trustedTypes, S), !t || !t.createPolicy) return n;
            try {
                n = t.createPolicy(A, {
                    createHTML: Gr,
                    createScript: Gr,
                    createScriptURL: Gr
                })
            } catch (Y) {
                if (q.console) q.console[h](Y.message)
            }
            return n
        },
        B = function(h, A, S) {
            return S.O ? S_(S, S.v) : tm(S, h, h, A)
        },
        RG = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N) {
            for (L = (Q = (N = (G = h.replace(/\r\n/g, "\n"), 0), []), 0); L < G.length; L++) n = G.charCodeAt(L), 128 > n ? Q[N++] = n : (n < A ? Q[N++] = (t = n >> 6, (t | 0) + ~(t & 192) - -193) : (55296 == (n & 64512) && L + 1 < G.length && 56320 == (G.charCodeAt(L + 1) & 64512) ? (n = 65536 + (1023 - ~(n & 1023) + -1024 << 10) + (S = G.charCodeAt(++L), 1024 + (S ^ 1023) - 2 * (~S & 1023) + (~S | 1023)), Q[N++] = (R = n >> 18, 2 * ~(R & 240) - 2 * ~R - -241 + (~R | 240)), Q[N++] = (F = n >> 12 & 63, 2 * (F & 128) + ~(F & 128) - (~F ^ 128))) : Q[N++] = n >> 12 | 224, Q[N++] = (e = (Y = n >> 6, 2 * (Y | 0) - ~(Y & 63) - -1 + 2 * ~Y), (e | 0) + ~e - -129 + (e & -129))), Q[N++] = (n | 0) - -64 + ~(n | 63) | 128);
            return Q
        },
        eM = function(h, A, S, n, t, Y, F) {
            n = r((t = (F = (Y = A & (S = A & 3, 4), b(h, 31)), b(h, 23)), F), h), Y && (n = RG("" + n, 2048)), S && Z(t, f(n.length, 2), h), Z(t, n, h)
        },
        Nv = function(h, A, S, n, t, Y, F, G, Q, R) {
            for (R = (t = b(A, (Y = (G = b(A, (Q = A[L5] || {}, 23)), Q.xu = b(A, 25), Q.s = [], A.C == A ? (F = B(8, h, A), -(F & n) - ~F + (F | -2)) : 1), 28)), S); R < Y; R++) Q.s.push(b(A, 29));
            for (Q.gP = r(G, A); Y--;) Q.s[Y] = r(Q.s[Y], A);
            return Q.Iy = r(t, A), Q
        },
        vK = function() {
            return yJ.call(this, 8, 16)
        },
        xj = function() {
            return T.call(this, 42)
        },
        Ec = function(h, A) {
            return kj.call(this, 1, 9, h, A)
        },
        f = function(h, A, S, n) {
            for (S = (A | (n = [], 0)) - 1; 0 <= S; S--) n[-2 - ~(A | 1) - (~A & 1) - (S | 0)] = h >> 8 * S & 255;
            return n
        },
        vy = function(h) {
            return nA.call(this, 5, 16, h)
        },
        BK = function(h, A, S, n, t, Y, F, G, Q, R) {
            function e(L) {
                L && A.appendChild("string" === typeof L ? h.createTextNode(L) : L)
            }
            for (G = 1; G < t.length; G++)
                if (Q = t[G], !O(12, "array", "object", n, Q) || O(34, "object", Q) && Q.nodeType > F) e(Q);
                else {
                    a: {
                        if (Q && typeof Q.length == n) {
                            if (O(67, "object", Q)) {
                                R = "function" == typeof Q.item || "string" == typeof Q.item;
                                break a
                            }
                            if ("function" === typeof Q) {
                                R = "function" == typeof Q.item;
                                break a
                            }
                        }
                        R = S
                    }
                    Yj(57, 52, F, Y, R ? U(12, 41, F, Q) : Q, e)
                }
        },
        r = function(h, A, S) {
            if (S = A.o[h], void 0 === S) throw [s1, 30, h];
            if (S.value) return S.create();
            return (S.create(3 * h * h + -97 * h + -48), S).prototype
        },
        bE = function(h, A) {
            for (A = []; h--;) A.push(255 * Math.random() | 0);
            return A
        },
        CA = function(h, A, S, n) {
            return C.call(this, h, 37, A, S, n)
        },
        VJ = function() {
            return T.call(this, 32)
        },
        WK = function() {
            return V.call(this, 21)
        },
        hn = function(h, A, S) {
            D(A, ((h.Gv.push(h.o.slice()), h).o[A] = void 0, h), S)
        },
        DR = function() {
            return dw.call(this, 24)
        },
        tm = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v, W, K, E) {
            if ((F = r(334, h), F) >= h.U) throw [s1, 31];
            for (t = (L = (R = F, h.fW.length), 0), v = A; 0 < v;) W = R % S, Q = R >> 3, K = S - (W | 0), E = h.G[Q], Y = K < v ? K : v, n && (e = h, e.X != R >> 6 && (e.X = R >> 6, G = r(298, e), e.S1 = ww(24, 3, [0, 0, G[1], G[2]], 1702, e.X, e.T, 29)), E ^= h.S1[Q & L]), R += Y, t |= (E >> S - (W | 0) - (Y | 0) & (1 << Y) - 1) << (v | 0) - (Y | 0), v -= Y;
            return D(334, h, (F | 0) + (A | (N = t, 0))), N
        },
        m = function(h, A, S) {
            S = this;
            try {
                p5(h, this, A)
            } catch (n) {
                C(0, 3, n, this), h(function(t) {
                    t(S.K)
                })
            }
        },
        p5 = function(h, A, S, n, t, Y) {
            for (Y = (A.j1 = (A.zv = O(25, A.l, (A.MN = (A.fW = A[cy], A.Or = kH, K5), {get: function() {
                        return this.concat()
                    }
                })), FR[A.l](A.zv, {
                    value: {
                        value: {}
                    }
                })), []), n = 0; 128 > n; n++) Y[n] = String.fromCharCode(n);
            T(11, false, true, (d(0, 56, A, (d(0, 56, A, (d(0, 58, (D(370, A, (J(9, ((J(10, (J(13, function(F, G, Q, R) {
                C(1, 10, false, G, F, true) || (R = b(F, 30), Q = b(F, 23), D(Q, F, function(e) {
                    return eval(e)
                }(lE(r(R, F.C)))))
            }, (D(343, A, (D(198, (J((J(12, (D(249, (J(9, function(F, G, Q) {
                (G = b(F, (Q = b(F, 28), 31)), D)(G, F, "" + r(Q, F))
            }, A, (J(14, function(F, G, Q, R, e) {
                D((R = (G = (e = b(F, (Q = b(F, 31), 29)), r)(Q, F), r(e, F)), e), F, R + G)
            }, (D(290, A, (J(13, function(F, G) {
                hn((G = r(b(F, 30), F), F).C, 334, G)
            }, A, (J(14, function(F, G, Q, R) {
                D((G = (Q = (R = b(F, 30), b(F, 31)), b(F, 23)), G), F, r(R, F) || r(Q, F))
            }, A, (J(13, (J(14, function(F) {
                eM(F, 4)
            }, A, (J(15, function(F, G, Q, R) {
                D((Q = (G = B(8, (R = b(F, 27), true), F), b(F, 25)), Q), F, r(R, F) >>> G)
            }, (J(10, function(F, G, Q, R, e) {
                (R = (G = (e = b(F, (Q = b(F, 28), 28)), r(Q, F)), iQ("number", "call", G)), D)(e, F, R)
            }, A, (J(11, (J(11, function(F, G, Q, R, e, L, N, v, W, K, E, H, l, a, hm, x) {
                function g(P, c) {
                    for (; x < P;) v |= B(8, true, F) << x, x += 8;
                    return c = v & (1 << P) - 1, x -= P, v >>= P, c
                }
                for (L = (E = (G = (K = (v = x = (e = b(F, 28), 0), g(3) | 0) + 1, g(5)), 0), []), R = 0; E < G; E++) Q = g(1), L.push(Q), R += Q ? 0 : 1;
                for (H = (hm = ((R | 0) - 1).toString(2).length, a = [], 0); H < G; H++) L[H] || (a[H] = g(hm));
                for (N = 0; N < G; N++) L[N] && (a[N] = b(F, 25));
                for (l = (W = [], K); l--;) W.push(r(b(F, 29), F));
                J(12, function(P, c, M, y, Nw) {
                    for (Nw = [], M = 0, c = []; M < G; M++) {
                        if (y = a[M], !L[M]) {
                            for (; y >= Nw.length;) Nw.push(b(P, 27));
                            y = Nw[y]
                        }
                        c.push(y)
                    }
                    P.v = (P.O = fA(62, W.slice(), P, 58), fA(62, c, P, 56))
                }, F, e)
            }, A, (J(11, ((new Vq((J(14, (D(229, A, (D(359, A, (D(86, (D(432, A, (J(9, (D(437, (J(15, (J(9, function(F, G, Q) {
                (G = (Q = b(F, 31), r(Q, F.C)), G[0]).removeEventListener(G[1], G[2], ZB)
            }, (D(443, (J(11, function(F, G, Q, R, e, L, N, v, W, K) {
                (L = (N = r((W = (R = (v = b(F, (G = b((K = (Q = b(F, 25), b(F, 30)), F), 23), 28)), r(Q, F.C)), r(v, F)), G), F), r(K, F)), 0 !== R) && (e = fA(62, false, 1, 34, F, N, 1, W, R, L), R.addEventListener(L, e, ZB), D(343, F, [R, L, e]))
            }, (J(10, function(F, G, Q, R) {
                (G = r((Q = b(F, (R = b(F, 27), 25)), Q), F), 0) != r(R, F) && D(334, F, G)
            }, (J(12, function(F, G, Q, R, e) {
                for (Q = (G = b(7, (R = b(F, 25), 8), F), e = [], 0); Q < G; Q++) e.push(B(8, true, F));
                D(R, F, e)
            }, (J(15, function(F, G, Q, R, e, L, N) {
                (Q = (L = b(F, (G = b(F, 27), 25)), b(F, 27)), F).C == F && (e = r(L, F), R = r(G, F), N = r(Q, F), R[e] = N, 298 == G && (F.X = void 0, 2 == e && (F.T = tm(F, 32, 8, false), F.X = void 0)))
            }, A, (J(15, function(F, G, Q, R) {
                if (R = F.Gv.pop()) {
                    for (G = B(8, true, F); 0 < G; G--) Q = b(F, 25), R[Q] = F.o[Q];
                    F.o = (R[229] = (R[198] = F.o[198], F.o[229]), R)
                } else D(334, F, F.U)
            }, A, (J(13, (D((D((D(334, (A.ay = (A.X = (A.v = void 0, A.Ah = false, A.mi = false, (A.S1 = void 0, A.Dl = [], A.O = void 0, A.NW = 1, A.Fz = function(F) {
                return nA.call(this, 5, 5, F)
            }, A.C = A, (A.Er = (A.oy = false, 0), A).lE = ((A.U = 0, A.G = [], A).dP = 0, []), t = (A.Gv = [], window.performance) || {}, (A.K = void 0, (A.Tv = 0, A).F = (A.PG = void 0, 0), A.o = ((A.g = null, A).QC = 25, []), A.H = 0, A).T = void 0, A).wP = 8001, A.th = 0, void 0), A.N = [], t.timeOrigin) || (t.timing || {}).navigationStart || 0, A), 0), 339), A, 0), 510), A, bE(4)), function(F) {
                XI(F, 1)
            }), A, 377), 113)), 324)), A.hl = 0, A), 193), A), 187), A), 296), A), [0, 0, 0]), A), 222), function(F, G, Q, R, e) {
                !C(1, 24, false, G, F, true) && (e = Nv(true, F, 0, 1), R = e.Iy, Q = e.gP, F.C == F || Q == F.Fz && R == F) && (D(e.xu, F, Q.apply(R, e.s)), F.F = F.D())
            }), A, 235), A), q), function(F, G, Q, R, e, L) {
                L = r((Q = b(F, (G = b(F, (R = b(F, 30), 27)), 31)), G), F), e = r(R, F) == L, D(Q, F, +e)
            }), A, 462), {})), A), [57, 0, 0]), A)), 2048)), function(F, G, Q, R, e, L, N, v, W) {
                C(1, 16, false, G, F, true) || (v = Nv(true, F.C, 0, 1), Q = v.gP, L = v.s, W = L.length, e = v.Iy, R = v.xu, N = 0 == W ? new e[Q] : 1 == W ? new e[Q](L[0]) : 2 == W ? new e[Q](L[0], L[1]) : 3 == W ? new e[Q](L[0], L[1], L[2]) : 4 == W ? new e[Q](L[0], L[1], L[2], L[3]) : 2(), D(R, F, N))
            }), A, 315), "Submit")), J)(9, function(F) {
                XI(F, 4)
            }, A, 424), function(F, G, Q, R, e, L, N, v) {
                for (L = (v = r(218, (R = b(7, (N = b(F, 29), 10), F), G = "", F)), v.length), Q = 0; R--;) Q = (e = b(7, 16, F), (Q | e) - ~e + (Q | ~e)) % L, G += Y[v[Q]];
                D(N, F, G)
            }), A, 356), 23)), function(F, G, Q, R, e, L, N, v) {
                (v = (Q = (N = r((e = b(F, (R = b(F, (G = b((L = b(F, 29), F), 30), 23)), 27)), R), F), r(e, F)), r(G, F)), D)(L, F, fA(62, false, 1, 22, F, v, Q, N))
            }), A, 147), 100)), A.Rc = 0, A), 244), J(10, function(F) {
                eM(F, 3)
            }, A, 313), 54)), function(F, G, Q, R, e, L) {
                L = r((R = b(F, (G = b(F, (e = b(F, 31), 28)), 30)), Q = r(G, F), e), F), D(R, F, L[Q])
            }), A, 453), 381)), 416)), 624)), A), 257), 321)), A), []), function(F) {
                b(true, 35, F, 4)
            }), A, 70), 12), function(F, G, Q, R, e, L, N, v, W, K, E, H, l, a) {
                if (!C(1, 18, true, G, F, true)) {
                    if ("object" == iQ("number", "call", (L = r((Q = r((a = r((v = (E = b(F, (e = (R = b(F, 23), b(F, 31)), 27)), b(F, 29)), l = r(E, F), e), F), v), F), R), F), L))) {
                        for (N in K = [], L) K.push(N);
                        L = K
                    }
                    for (W = 0, H = L.length, l = 0 < l ? l : 1; W < H; W += l) a(L.slice(W, (W | 0) + (l | 0)), Q)
                }
            }, A, 393), A), []), 0)), A), 495), function() {}), A, 212), A).LW = 0, function(F, G, Q, R, e, L) {
                Q = (G = (L = (R = b(F, (e = b(F, 28), 30)), b(F, 23)), r(R, F)), r(e, F)), D(L, F, Q in G | 0)
            }), A, 55), 0)), A), [mo]), [O1, S])), [E1, h])), true), A)
        },
        jM = function(h) {
            return d.call(this, h, 25)
        },
        D = function(h, A, S) {
            if (334 == h || 339 == h) A.o[h] ? A.o[h].concat(S) : A.o[h] = fA(62, S, A, 57);
            else {
                if (A.mi && 298 != h) return;
                86 == h || 510 == h || 249 == h || 198 == h || 443 == h ? A.o[h] || (A.o[h] = b(0, 5, 7, h, A, 118, S)) : A.o[h] = b(0, 3, 7, h, A, 49, S)
            }
            298 == h && (A.T = tm(A, 32, 8, false), A.X = void 0)
        },
        w, q = this || self,
        HK = function(h, A, S, n) {
            return z.call(this, S, 29, A, h, n)
        },
        Uc = function() {
            return Yj.call(this, 57, 6)
        },
        IG = function(h, A, S, n, t) {
            return yJ.call(this, 8, 36, h, A, S, n, t)
        },
        dz = function(h, A, S, n, t) {
            if (3 == h.length) {
                for (t = 0; 3 > t; t++) A[t] += h[t];
                for (n = [13, 8, 13, 12, 16, 5, 3, 10, (S = 0, 15)]; 9 > S; S++) A[3](A, S % 3, n[S])
            }
        },
        C5 = function(h, A) {
            return d.call(this, h, 5, A)
        },
        PK = function(h, A, S, n, t) {
            return IA.call(this, 45, A, h, S, n, 5, t)
        },
        By = function(h, A, S, n, t, Y) {
            return IA.call(this, 45, A, h, S, n, 9, t, Y)
        },
        U1 = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v) {
            (A.push((L = (Q = h[0] << 24 | h[1] << 16, n = h[2] << 8, -1 - ~n + (Q ^ n) - (~Q & n)), v = h[3], -~(L & v) - -1 + 3 * (L ^ v) + 2 * (~L ^ v))), A).push((F = h[4] << 24, t = h[5] << 16, -2 - ~t - (~F | t)) | h[6] << 8 | h[7]), A.push((G = (R = (N = h[8] << 24, e = h[9] << 16, (N | 0) - (~N ^ e) + (~N | e)), S = h[10] << 8, (R | 0) + (R & ~S) - (R ^ S) + 2 * (~R & S)), Y = h[11], (G | 0) + ~(G & Y) - ~(G | Y) - (G & ~Y)))
        },
        XI = function(h, A, S, n) {
            (n = b(h, (S = b(h, 29), 28)), Z)(n, f(r(S, h), A), h)
        },
        Vq = function(h, A, S) {
            return U.call(this, 12, 80, h, A, S)
        },
        YH = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
            if (!h.mi) {
                if (3 < (t = r(229, (Y = (0 == (L = r(198, ((F = void 0, S) && S[0] === s1 && (A = S[1], F = S[2], S = void 0), h)), L.length) && (e = r(339, h) >> 3, L.push(A, (R = e >> 8, -2 * ~(R & 255) + ~(R | 255) + 2 * (R ^ 255) + (~R ^ 255)), 255 - ~e + -256 - (e & -256)), void 0 != F && L.push(-1 - ~F + (~F ^ 255) - (F | -256))), ""), S && (S.message && (Y += S.message), S.stack && (Y += n + S.stack)), h)), t)) {
                    h.C = (Q = (Y = (Y = Y.slice(0, (t | 0) - 3), t -= (G = Y.length, -2 - ~G - -4), RG(Y, 2048)), h.C), h);
                    try {
                        Z(510, f(Y.length, 2).concat(Y), h, 144)
                    } finally {
                        h.C = Q
                    }
                }
                D(229, h, t)
            }
        },
        Z = function(h, A, S, n, t, Y, F, G, Q) {
            if (S.C == S)
                for (F = r(h, S), 510 == h ? (G = function(R, e, L, N, v) {
                        if (F.ku != (v = -(e = F.length, 2) * (e & 4) - ~e - -5 + 2 * (e | -5) >> 3, v)) {
                            N = [0, (F.ku = v, 0), Q[1], Q[L = (v << 3) - 4, 2]];
                            try {
                                F.HG = ww(24, 3, N, 1702, fA(62, 3, 8, 3, 2 * (L & 4) - ~(L & 4) + ~(L | 4) + 2 * (L ^ 4), F), fA(62, 3, 8, 5, L, F), 29)
                            } catch (W) {
                                throw W;
                            }
                        }
                        F.push(F.HG[-~(e & 7) - -1 + 2 * (~e & 7) + 2 * (e | -8)] ^ R)
                    }, Q = r(443, S)) : G = function(R) {
                        F.push(R)
                    }, n && G(n & 255), Y = A.length, t = 0; t < Y; t++) G(A[t])
        },
        KA = function(h, A, S, n, t, Y, F, G, Q, R) {
            if ((R = n[S], R) == gw) h.QC = 25, h.I(n);
            else if (R == cy) {
                Q = n[1];
                try {
                    Y = h.K || h.I(n)
                } catch (e) {
                    C(S, 6, e, h), Y = h.K
                }
                Q(Y)
            } else if (R == rw) h.I(n);
            else if (R == O1) h.I(n);
            else if (R == E1) {
                try {
                    for (t = S; t < h.lE.length; t++) try {
                        F = h.lE[t], F[S][F[1]](F[2])
                    } catch (e) {}
                } catch (e) {}(0, n[h.lE = [], 1])(function(e, L) {
                    h.Xz(e, true, L)
                }, function(e) {
                    d((e = !h.N.length, S), 58, h, [n5]), e && T(14, false, false, true, h)
                })
            } else {
                if (R == Jm) return G = n[2], D(A, h, n[6]), D(432, h, G), h.I(n);
                R == n5 ? (h.Dl = [], h.G = [], h.o = null) : R == mo && "loading" === q.document.readyState && (h.g = function(e, L) {
                    function N() {
                        L || (L = true, e())
                    }(q.document.addEventListener("DOMContentLoaded", N, (L = false, ZB)), q).addEventListener("load", N, ZB)
                })
            }
        },
        Hy = function(h, A, S, n, t) {
            return d.call(this, h, 18, A, S, n, t)
        },
        Gr = function(h) {
            return U.call(this, 12, 6, h)
        },
        TT = function(h) {
            return O.call(this, 16, h)
        },
        bQ = "closure_uid_" + (1E9 * Math.random() >>> 0),
        aA, Wy = 0,
        DB = function(h, A) {
            if (!q.addEventListener || !Object.defineProperty) return false;
            A = (h = false, Object).defineProperty({}, "passive", {get: function() {
                    h = true
                }
            });
            try {
                q.addEventListener("test", function() {}, A), q.removeEventListener("test", function() {}, A)
            } catch (S) {}
            return h
        }(),
        j_ = (p(Hy, 9, 2, (LA.prototype.Jh = (Ec.prototype.stopPropagation = function() {
            this.A = true
        }, Ec.prototype.preventDefault = function() {
            this.defaultPrevented = true
        }, false), Ec)), {
            2: "touch",
            3: "pen",
            4: "mouse"
        }),
        sc = "closure_listenable_" + ((Hy.prototype.stopPropagation = (Hy.prototype.preventDefault = function(h) {
            (h = (Hy.R.preventDefault.call(this), this.Z), h.preventDefault) ? h.preventDefault(): h.returnValue = false
        }, function() {
            (Hy.R.stopPropagation.call(this), this.Z.stopPropagation) ? this.Z.stopPropagation(): this.Z.cancelBubble = true
        }), 1E6) * Math.random() | 0),
        uQ = 0,
        oA = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),
        RA = (vy.prototype.MW = function(h, A, S, n, t, Y) {
            return ((Y = (t = this.P[A.toString()], -1), t) && (Y = X(29, 0, t, n, h, S)), -1) < Y ? t[Y] : null
        }, vy.prototype.remove = function(h, A, S, n, t, Y, F) {
            if (!((F = h.toString(), F) in this.P)) return false;
            return -1 < (t = X((Y = this.P[F], 27), 0, Y, n, S, A), t) ? (U(12, 31, null, Y[t]), Array.prototype.splice.call(Y, t, 1), 0 == Y.length && (delete this.P[F], this.i--), true) : false
        }, vy.prototype.hasListener = function(h, A, S, n, t) {
            return Yj(57, 65, true, false, (t = (S = void 0 !== A, n = void 0 !== h) ? h.toString() : "", this).P, function(Y, F) {
                for (F = 0; F < Y.length; ++F)
                    if (!(n && Y[F].type != t || S && Y[F].capture != A)) return true;
                return false
            })
        }, vy.prototype.add = function(h, A, S, n, t, Y, F, G, Q) {
            return Y = X(((Q = (G = h.toString(), this).P[G], Q) || (Q = this.P[G] = [], this.i++), 28), 0, Q, t, n, A), -1 < Y ? (F = Q[Y], S || (F.j = false)) : (F = new IG(t, !!n, this.src, G, A), F.j = S, Q.push(F)), F
        }, "closure_lm_") + (1E6 * Math.random() | 0),
        zT = {},
        QJ = 0,
        e_ = "__closure_events_fn_" + (1E9 * Math.random() >>> 0);
    w = (((((p(Uc, 25, 2, LA), Uc.prototype)[sc] = true, w = Uc.prototype, w).Ry = function(h) {
        this.qW = h
    }, w).addEventListener = function(h, A, S, n) {
        V(64, 0, false, h, S, n, this, A)
    }, w.removeEventListener = function(h, A, S, n) {
        GT(0, h, 3, "object", A, n, S, this)
    }, w.dispatchEvent = function(h, A, S, n, t, Y, F, G, Q, R, e) {
        if (G = this.qW)
            for (n = []; G; G = G.qW) n.push(G);
        if (S = ((t = (F = (A = h, R = this.nO, A).type || A, n), "string" === typeof A) ? A = new Ec(A, R) : A instanceof Ec ? A.target = A.target || R : (Q = A, A = new Ec(F, R), An(A, Q)), true), t)
            for (Y = t.length - 1; !A.A && 0 <= Y; Y--) e = A.currentTarget = t[Y], S = J(16, true, e, A, true, F) && S;
        if (A.A || (e = A.currentTarget = R, S = J(18, true, e, A, true, F) && S, A.A || (S = J(17, true, e, A, false, F) && S)), t)
            for (Y = 0; !A.A && Y < t.length; Y++) e = A.currentTarget = t[Y], S = J(19, true, e, A, false, F) && S;
        return S
    }, w).MW = function(h, A, S, n) {
        return this.J.MW(h, String(A), S, n)
    }, w.hasListener = function(h, A) {
        return this.J.hasListener(void 0 !== h ? String(h) : void 0, A)
    }, xj.prototype);
    var pA;
    ((((w = (p(TT, 8, ((yJ(8, (w.appendChild = (w.W = (w.contains = function(h, A, S) {
        if (!h || !A) return false;
        if (h.contains && 1 == A.nodeType) return h == A || h.contains(A);
        if ("undefined" != typeof h.compareDocumentPosition) return h == A || !!(S = h.compareDocumentPosition(A), -~(S & 16) + (S ^ 16) + (~S ^ 16));
        for (; A && h != A;) A = A.parentNode;
        return A == h
    }, w.append = function(h, A) {
        BK(9 == h.nodeType ? h : h.ownerDocument || h.document, h, false, "number", arguments, "", 0)
    }, w.canHaveChildren = function(h) {
        if (1 != h.nodeType) return false;
        switch (h.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.createElement = function(h, A, S) {
        return (A = String((S = this.Y, h)), "application/xhtml+xml") === S.contentType && (A = A.toLowerCase()), S.createElement(A)
    }, w.getElementsByTagName = function(h, A) {
        return (A || this.Y).getElementsByTagName(String(h))
    }, w.createTextNode = (w.removeNode = jM, function(h) {
        return this.Y.createTextNode(String(h))
    }), function(h) {
        return "string" === typeof h ? this.Y.getElementById(h) : h
    }), function(h, A) {
        h.appendChild(A)
    }), 3), WK), WK.prototype.e1 = "", WK.prototype).pW = 0, 2), Uc), TT.prototype), w).Yu = WK.CO(), w.W = function() {
        return this.LO
    }, w.getParent = function() {
        return this.fO
    }, w).pO = function() {
        (I(this, 8, function(h) {
            h.rP && h.pO()
        }), this).vG && Oc(12, 30, null, 16, 0, this.vG), this.rP = false
    }, w).Ry = function(h) {
        if (this.fO && this.fO != h) throw Error("Method not supported");
        TT.R.Ry.call(this, h)
    }, w).removeChild = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
        if (h && ("string" === typeof h ? e = h : ((Y = h.Zl) || (Q = h, n = h.Yu, S = n.e1 + ":" + (n.pW++).toString(36), Y = Q.Zl = S), e = Y), L = e, this.KO && L ? (F = this.KO, G = (null !== F && L in F ? F[L] : void 0) || null) : G = null, h = G, L && h)) {
            if (t = (((R = this.KO, L in R) && delete R[L], V(33, 1, this.uE, h), A) && (h.pO(), h.LO && jM(h.LO)), h), null == t) throw Error("Unable to set parent component");
            TT.R.Ry.call((t.fO = null, t), null)
        }
        if (!h) throw Error("Child is not in parent component");
        return h
    };
    var aG, $H = {
            button: "pressed",
            checkbox: "checked",
            menuitem: "selected",
            menuitemcheckbox: "checked",
            menuitemradio: "checked",
            radio: (((w = (yJ(8, 6, DR), DR.prototype), w).Od = function(h) {
                return h.W()
            }, w).cG = function(h, A, S, n, t, Y, F) {
                (n = (aG || (aG = {
                    1: "disabled",
                    8: "selected",
                    16: "checked",
                    64: "expanded"
                }), Y = aG[A], h.getAttribute("role") || null)) ? (t = $H[n] || Y, F = "checked" == Y || "selected" == Y ? t : Y) : F = Y, F && kj(1, 6, "hidden", "atomic", h, S, F)
            }, w.sd = function() {
                return "goog-control"
            }, "checked"),
            tab: "selected",
            treeitem: "selected"
        },
        Mw = (yJ((p(((w.B = function(h, A, S, n) {
            (n = A.W ? A.W() : A) && (S ? PK : C5)(n, [h])
        }, w).h = (w.hh = function(h, A, S, n, t, Y) {
            if (k(0, 18, 0, 32, h) && (n = h.Od())) {
                if (!A && h.u & 32) {
                    try {
                        n.blur()
                    } catch (F) {}
                    h.u & 32 && (h.yC & 4 && k(0, 16, 0, 4, h) && h.setActive(false), h.yC & 32 && k(0, 26, 0, 32, h) && V(46, 32, false, h, 32) && h.h(32, false))
                }
                if (t = n.hasAttribute("tabindex")) S = n.tabIndex, t = "number" === typeof S && 0 <= S && 32768 > S;
                t != A && (Y = n, A ? Y.tabIndex = 0 : (Y.tabIndex = -1, Y.removeAttribute("tabIndex")))
            }
        }, function(h, A, S, n, t, Y) {
            if (Y = h.W()) this.WG || (n = this.sd(), n.replace(/\xa0|\s/g, " "), this.WG = {
                1: n + "-disabled",
                2: n + "-hover",
                4: n + "-active",
                8: n + "-selected",
                16: n + "-checked",
                32: n + "-focused",
                64: n + "-open"
            }), (t = this.WG[A]) && this.B(t, h, S), this.cG(Y, A, S)
        }), vK), 17, 2, DR), 8), 7, vK), {});
    if ("function" !== ((((((((((((p(u, 26, 2, ((vK.prototype.sd = function() {
            return "goog-button"
        }, vK).prototype.cG = function(h, A, S) {
            switch (A) {
                case 8:
                case 16:
                    kj(1, 7, "hidden", "atomic", h, S, "pressed");
                    break;
                default:
                case 64:
                case 1:
                    vK.R.cG.call(this, h, A, S)
            }
        }, TT)), w = u.prototype, w).pO = function() {
            ((u.R.pO.call(this), this).BG && this.BG.detach(), this.isVisible()) && this.isEnabled() && this.S.hh(this, false)
        }, w).yC = 255, w.L = null, w).B = function(h, A) {
            h ? A && (this.L ? 0 <= p(A, 7, 1, this.L) || this.L.push(A) : this.L = [A], this.S.B(A, this, true)) : A && this.L && V(40, 1, this.L, A) && (0 == this.L.length && (this.L = null), this.S.B(A, this, false))
        }, w.Od = function() {
            return this.S.Od(this)
        }, w).u = 0, w).bu = 0, w).tl = 39, w).oc = true, w).isVisible = function() {
            return this.oc
        }, w.isEnabled = function() {
            return !(this.u & 1)
        }, w).isActive = function() {
            return !!(this.u & 4)
        }, w.setActive = function(h) {
            V(42, 32, h, this, 4) && this.h(4, h)
        }, w).getState = function() {
            return this.u
        }, w).h = function(h, A, S, n, t, Y) {
            S || 1 != h ? k(0, 22, 0, h, this) && A != !!(this.u & h) && (this.S.h(this, h, A), this.u = A ? (t = this.u, (h | 0) + ~(t & h) - ~t) : this.u & ~h) : (n = !A, Y = this.getParent(), Y && "function" == typeof Y.isEnabled && !Y.isEnabled() || !V(30, 32, !n, this, 1) || (n || (this.setActive(false), V(26, 32, false, this, 2) && this.h(2, false)), this.isVisible() && this.S.hh(this, n), this.h(1, !n, true)))
        }, typeof u)) throw Error("Invalid component class " + u);
    if ("function" !== typeof DR) throw Error("Invalid renderer class " + DR);
    var xH = X(90, u);
    lQ(32, function() {
        return new Vq(null)
    }, (p(Vq, ((((yJ((p(VJ, (lQ(34, function() {
        return new u(null)
    }, (Mw[xH] = DR, "goog-control")), 24), 2, vK), 8), 5, VJ), VJ).prototype.cG = function() {}, VJ.prototype).hh = function() {}, VJ.prototype).h = function(h, A, S, n) {
        VJ.R.h.call(this, h, A, S), (n = h.W()) && 1 == A && (n.disabled = S)
    }, 10), 2, u), "goog-button"));
    var qw, Py = q.requestIdleCallback ? function(h) {
            requestIdleCallback(function() {
                h()
            }, {
                timeout: 4
            })
        } : q.setImmediate ? function(h) {
            setImmediate(h)
        } : function(h) {
            setTimeout(h, 0)
        },
        ZB = {
            passive: true,
            capture: true
        },
        L5 = String.fromCharCode(105, 110, 116, 101, 103, 67, 104, 101, 99, 107, 66, 121, 112, 97, 115, 115),
        mo = [],
        n5 = [],
        cy = [],
        s1 = {},
        gw = [],
        Jm = (m.prototype.iE = false, m.prototype.dY = void 0, []),
        rw = (m.prototype.lu = void 0, m.prototype.Ud = "toString", []),
        O1 = [],
        E1 = [],
        FR = ((((U1, function() {})(bE), function() {})(tn), function() {})(dz), s1).constructor,
        Am = (((((w = m.prototype, w).qN = function(h, A, S, n, t, Y, F) {
            return C.call(this, h, 72, A, S, n, t, Y, F)
        }, m.prototype.l = "create", w).Jl = function(h, A, S, n, t, Y, F, G, Q, R) {
            return dw.call(this, 3, h, A, S, n, t, Y, F, G, Q, R)
        }, w.NN = function() {
            return U.call(this, 12, 8)
        }, w).Pr = function(h, A, S, n, t) {
            return dw.call(this, 41, h, A, S, n, t)
        }, w.D = (window.performance || {}).now ? function() {
            return this.ay + window.performance.now()
        } : function() {
            return +new Date
        }, w.Xz = function(h, A, S, n, t, Y) {
            return fA.call(this, 62, h, A, 48, S, n, t, Y)
        }, w).uu = function() {
            return k.call(this, 0, 5)
        }, void 0),
        K5 = (m.prototype.I = function(h, A) {
            return A = (h = {}, {}), Am = function() {
                    return A == h ? -48 : -33
                },
                function(S, n, t, Y, F, G, Q, R, e, L, N, v, W, K, E, H, l, a, hm, x, g, P, c, M, y) {
                    A = (e = A, h);
                    try {
                        if (W = S[0], W == O1) {
                            P = S[1];
                            try {
                                for (L = R = 0, v = atob(P), E = []; R < v.length; R++) K = v.charCodeAt(R), 255 < K && (E[L++] = K & 255, K >>= 8), E[L++] = K;
                                D(298, this, (this.U = (this.G = E, this.G).length << 3, [0, 0, 0]))
                            } catch (Nw) {
                                YH(this, 17, Nw, ":");
                                return
                            }
                            FI(false, this, 8001, 0)
                        } else if (W == gw) S[1].push(r(249, this).length, r(510, this).length, r(229, this), r(86, this).length), D(432, this, S[2]), this.o[51] && SM(0, r(51, this), 432, this, 8001);
                        else {
                            if (W == cy) {
                                this.C = (N = (Y = f((r(86, (F = S[2], this)).length | 0) + 2, 2), this).C, this);
                                try {
                                    y = r(198, this), 0 < y.length && Z(86, f(y.length, 2).concat(y), this, 147), Z(86, f(this.NW, 1), this, 244), Z(86, f(this[cy].length, 1), this), l = 0, x = r(510, this), l -= (Q = r(86, this).length, -1 - 2 * ~Q + (~Q ^ 5) + 2 * (~Q & 5)), l += (g = r(370, this), 2 * (g | 0) - -2 + ~g + (~g | 2047)), 4 < x.length && (l -= (x.length | 0) + 3), 0 < l && Z(86, f(l, 2).concat(bE(l)), this, 150), 4 < x.length && Z(86, f(x.length, 2).concat(x), this, 5)
                                } finally {
                                    this.C = N
                                }
                                if (H = (((t = bE(2).concat(r(86, this)), t)[1] = (G = t[0], (G | 0) - 159 + -2 - 2 * (G | -160)), t[3] = (M = t[1], a = Y[0], (M & a) + ~M - 2 * (~M ^ a) + (M | ~a)), t)[4] = t[1] ^ Y[1], this.VC(t))) H = "$" + H;
                                else
                                    for (n = 0, H = ""; n < t.length; n++) hm = t[n][this.Ud](16), 1 == hm.length && (hm = "0" + hm), H += hm;
                                return r(86, (D(229, (r(510, (c = H, r(249, this).length = F.shift(), this)).length = F.shift(), this), F.shift()), this)).length = F.shift(), c
                            }
                            if (W == rw) SM(0, S[1], 432, this, S[2]);
                            else if (W == Jm) return SM(0, S[1], 432, this, 8001)
                        }
                    } finally {
                        A = e
                    }
                }
        }(), m.prototype.cr = 0, /./),
        kH, Tr = (m.prototype[E1] = [0, 0, 1, 1, (m.prototype.Ur = (m.prototype.VC = function(h, A, S, n, t) {
            return V.call(this, 3, h, A, S, n, t)
        }, 0), 0), 1, 1], O1).pop.bind(m.prototype[gw]),
        lE = (kH = O(24, (K5[m.prototype.Ud] = Tr, m.prototype.l), {get: Tr
        }), m.prototype.KW = void 0, function(h, A) {
            return (A = Qq("error", "ad", null)) && 1 === h.eval(A.createScript("1")) ? function(S) {
                return A.createScript(S)
            } : function(S) {
                return "" + S
            }
        }(q));
    (40 < (qw = q.trayride || (q.trayride = {}), qw.m) || (qw.m = 41, qw.ad = HK, qw.a = CA), qw).CDx_ = function(h, A, S) {
        return [(S = new m(A, h), function(n) {
            return T(16, false, S, n)
        })]
    };
}).call(this);
#59 JavaScript::Eval (size: 252) - SHA256: 6f5b89cee79d2ab6c4e40eacdefbddb1c3ee512e096676ab0c3a44053664623b
0, D = function(h, A, S) {
    if (334 == h || 339 == h) A.o[h] ? A.o[h].concat(S) : A.o[h] = fA(62, S, A, 57);
    else {
        if (A.mi && 298 != h) return;
        86 == h || 510 == h || 249 == h || 198 == h || 443 == h ? A.o[h] || (A.o[h] = b(0, 5, 7, h, A, 118, S)) : A.o[h] = b(0, 3, 7, h, A, 49, S)
    }
    298 == h && (A.T = tm(A, 32, 8, false), A.X = void 0)
}
#60 JavaScript::Eval (size: 96) - SHA256: 01448162413757e3fa0a7749cbff54a362c369379d018b8bf0da637f7b9a83a6
0,
function(F, G, Q, R, e, L) {
    Q = (G = (L = (R = b(F, (e = b(F, 28), 30)), b(F, 23)), r(R, F)), r(e, F)), D(L, F, Q in G | 0)
}
#61 JavaScript::Eval (size: 22) - SHA256: 64d5e67653cf9a7c8550b6743a725b9e2989d41c635d6eb98dcb58fead54c0a6
0,
function(F) {
    XI(F, 1)
}
#62 JavaScript::Eval (size: 1) - SHA256: bbeebd879e1dff6918546dc0c179fdde505f2a21591c9a9c96e36b054ec5af83
Z
#63 JavaScript::Eval (size: 2) - SHA256: 6b3fa5de34172b90de12ae2b7936138770c2505a736a6d0ae79b42fbbe63065f
Nv
#64 JavaScript::Eval (size: 118) - SHA256: 541174ebb54f2048c1dee871414c4f622d85f61c241d601a2c33ece0bb539c1d
tn = function(h, A, S, n) {
    try {
        n = h[((A | 0) + 2) % 3], h[A] = (h[A] | 0) - (h[((A | 0) + 1) % 3] | 0) - (n | 0) ^ (1 == A ? n << S : n >>> S)
    } catch (t) {
        throw t;
    }
}
#65 JavaScript::Eval (size: 79) - SHA256: 65f1e933798f94e6134cab2e9299ef84589e10c69e9e177c1900bd8fb6106641
0,
function(F, G, Q, R, e) {
    D((R = (G = (e = b(F, (Q = b(F, 31), 29)), r)(Q, F), r(e, F)), e), F, R - G)
}
#66 JavaScript::Eval (size: 564) - SHA256: faa06ffe5f51188f4e1f7b89b8bdc6eac6aeeb4aff0d2ace541df779ff7bbc2a
0, RG = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N) {
    for (L = (Q = (N = (G = h.replace(/\r\n/g, "\n"), 0), []), 0); L < G.length; L++) n = G.charCodeAt(L), 128 > n ? Q[N++] = n : (n < A ? Q[N++] = (t = n >> 6, (t | 0) + ~(t & 192) - -193) : (55296 == (n & 64512) && L + 1 < G.length && 56320 == (G.charCodeAt(L + 1) & 64512) ? (n = 65536 + (1023 - ~(n & 1023) + -1024 << 10) + (S = G.charCodeAt(++L), 1024 + (S ^ 1023) - 2 * (~S & 1023) + (~S | 1023)), Q[N++] = (R = n >> 18, 2 * ~(R & 240) - 2 * ~R - -241 + (~R | 240)), Q[N++] = (F = n >> 12 & 63, 2 * (F & 128) + ~(F & 128) - (~F ^ 128))) : Q[N++] = n >> 12 | 224, Q[N++] = (e = (Y = n >> 6, 2 * (Y | 0) - ~(Y & 63) - -1 + 2 * ~Y), (e | 0) + ~e - -129 + (e & -129))), Q[N++] = (n | 0) - -64 + ~(n | 63) | 128);
    return Q
}
#67 JavaScript::Eval (size: 79) - SHA256: a4b1d8811f29dbfe4bb01685b0f05b2398bf2d71f9828f27a0af05d929710eb2
0,
function(F, G, Q, R, e) {
    D((R = (G = (e = b(F, (Q = b(F, 31), 29)), r)(Q, F), r(e, F)), e), F, R + G)
}
#68 JavaScript::Eval (size: 22) - SHA256: 364ad0076e19d483490034d16e025277e3224fea1bc9f0978e14c2aec36fc350
0,
function(F) {
    eM(F, 4)
}
#69 JavaScript::Eval (size: 72) - SHA256: 5d808b3b3ae2f9ef1780e1341a77fa0fd3885920723ae81db6c0ecaf2a49a049
0,
function(F, G, Q, R) {
    D((Q = (G = b(F, (R = b(F, 27), 29)), F.o[R]) && r(R, F), G), F, Q)
}
#70 JavaScript::Eval (size: 83) - SHA256: 0cb21d1de060008bab472c15c63e6f15828de601f85deff00d701d26c0f6819a
0,
function(_, $) {
    while (_._ += !(_.$[_[_._] = _[$._]] && _.M.push(_._, _[$._])), $.$ ^ ++$._);
}
#71 JavaScript::Eval (size: 70) - SHA256: 411ff3e5aa1d31c70747b20d2056d1aaa49255a6f26c10b7cc0ea26b3c9b1fc6
0, bE = function(h, A) {
    for (A = []; h--;) A.push(255 * Math.random() | 0);
    return A
}
#72 JavaScript::Eval (size: 1) - SHA256: 252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111
f
#73 JavaScript::Eval (size: 2) - SHA256: ca57195b59a7dafb5481342dd1f5978094871b2cc7354a7f8587cf30f9f21b08
eM
#74 JavaScript::Eval (size: 2) - SHA256: 6ff9250a7351ff2fa2f8c6872393edf6f5eb782c90256d65d87517d9c029ced2
SM
#75 JavaScript::Eval (size: 324) - SHA256: f97e1149346619219e2f3f1137b14afbc4c5718d411f507d40cd3b4f23193832
0,
function(F, G, Q, R, e, L, N, v, W, K) {
    for (L = (W = e = (G = [], 0), 0); W < F.d.length;) {
        for (N = F.d[R = "", W++]; R.length != N;) {
            for (; F.M[L] == e;) R += Y[F.M[++L]], L++;
            if (R.length == N) break;
            R += Y[F[e++]]
        }
        if (K = F.d[W++]) v = 1 == K ? R : K.match(/=$/) ? K + R : "this." + K + "=" + R, Q = eval(lE("0," + v)), 1 == K && (Q[Jm] = 371892), G.push(Q)
    }
    return delete(delete F.M, F.length = 0, F).d, G
}
#76 JavaScript::Eval (size: 416) - SHA256: 3ce1dd2d36c16b6ecf328e0068280e5cc4d2cd0d98b57bd08648694c9382b259
0, Z = function(h, A, S, n, t, Y, F, G, Q) {
    if (S.C == S)
        for (F = r(h, S), 510 == h ? (G = function(R, e, L, N, v) {
                if (F.ku != (v = -(e = F.length, 2) * (e & 4) - ~e - -5 + 2 * (e | -5) >> 3, v)) {
                    N = [0, (F.ku = v, 0), Q[1], Q[L = (v << 3) - 4, 2]];
                    try {
                        F.HG = ww(24, 3, N, 1702, fA(62, 3, 8, 3, 2 * (L & 4) - ~(L & 4) + ~(L | 4) + 2 * (L ^ 4), F), fA(62, 3, 8, 5, L, F), 29)
                    } catch (W) {
                        throw W;
                    }
                }
                F.push(F.HG[-~(e & 7) - -1 + 2 * (~e & 7) + 2 * (e | -8)] ^ R)
            }, Q = r(443, S)) : G = function(R) {
                F.push(R)
            }, n && G(n & 255), Y = A.length, t = 0; t < Y; t++) G(A[t])
}
#77 JavaScript::Eval (size: 53) - SHA256: c8f033b0f06b6984c36d4dd1a08afe5734553c94d9c5185b3c423198a44abb6b
0, B = function(h, A, S) {
    return S.O ? S_(S, S.v) : tm(S, h, h, A)
}
#78 JavaScript::Eval (size: 194) - SHA256: 23f010e071f4759be28de8b76acc566788f4c15db1fe7f6e4c020a63f139cfa3
(function(K) {
    return function(V, a, r) {
        for (r = 0; r != K[5];) V += (a << 4 ^ a >>> 5) + a ^ r + K[r & 3], r += K[4], a += (V << 4 ^ V >>> 5) + V ^ r + K[r >>> 11 & 3];
        return [V >>> 24, V >> 16 & 255, V >> 8 & 255, V & 255, a >>> 24, a >> 16 & 255, a >> 8 & 255, a & 255]
    }
})
#79 JavaScript::Eval (size: 51) - SHA256: 0875fbca7d032fdeaf01721001a0468d64219cc65b4b66cf9d60c6b3c74aa932
B = function(h, A, S) {
    return S.O ? S_(S, S.v) : tm(S, h, h, A)
}
#80 JavaScript::Eval (size: 77) - SHA256: be58e6c14851cca5b68f7f4224a5935e69d5a922003712be1e3e06004ee3f0c5
0,
function(F, G, Q, R) {
    D((G = (Q = (R = b(F, 30), b(F, 31)), b(F, 23)), G), F, r(R, F) | r(Q, F))
}
#81 JavaScript::Eval (size: 140) - SHA256: 6be83789971d1e9c0fa9465c7566251332962c40320826b4cca762662605fc3c
0,
function(F, G, Q, R, e) {
    !C(1, 24, false, G, F, true) && (e = Nv(true, F, 0, 1), R = e.Iy, Q = e.gP, F.C == F || Q == F.Fz && R == F) && (D(e.xu, F, Q.apply(R, e.s)), F.F = F.D())
}
#82 JavaScript::Eval (size: 357) - SHA256: b845dda7ba97b0f3c4b9b63516316360f05efe9fdc8fc23d461f196d792783f5
0, tm = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v, W, K, E) {
    if ((F = r(334, h), F) >= h.U) throw [s1, 31];
    for (t = (L = (R = F, h.fW.length), 0), v = A; 0 < v;) W = R % S, Q = R >> 3, K = S - (W | 0), E = h.G[Q], Y = K < v ? K : v, n && (e = h, e.X != R >> 6 && (e.X = R >> 6, G = r(298, e), e.S1 = ww(24, 3, [0, 0, G[1], G[2]], 1702, e.X, e.T, 29)), E ^= h.S1[Q & L]), R += Y, t |= (E >> S - (W | 0) - (Y | 0) & (1 << Y) - 1) << (v | 0) - (Y | 0), v -= Y;
    return D(334, h, (F | 0) + (A | (N = t, 0))), N
}
#83 JavaScript::Eval (size: 551) - SHA256: c1143ea629ae5430c88fb4404f97c45b0b5496d85af01fc7f861efe0b66b77ea
0,
function(F, G, Q, R, e, L, N, v, W, K, E, H, l, a, hm, x) {
    function g(P, c) {
        for (; x < P;) v |= B(8, true, F) << x, x += 8;
        return c = v & (1 << P) - 1, x -= P, v >>= P, c
    }
    for (L = (E = (G = (K = (v = x = (e = b(F, 28), 0), g(3) | 0) + 1, g(5)), 0), []), R = 0; E < G; E++) Q = g(1), L.push(Q), R += Q ? 0 : 1;
    for (H = (hm = ((R | 0) - 1).toString(2).length, a = [], 0); H < G; H++) L[H] || (a[H] = g(hm));
    for (N = 0; N < G; N++) L[N] && (a[N] = b(F, 25));
    for (l = (W = [], K); l--;) W.push(r(b(F, 29), F));
    J(12, function(P, c, M, y, Nw) {
        for (Nw = [], M = 0, c = []; M < G; M++) {
            if (y = a[M], !L[M]) {
                for (; y >= Nw.length;) Nw.push(b(P, 27));
                y = Nw[y]
            }
            c.push(y)
        }
        P.v = (P.O = fA(62, W.slice(), P, 58), fA(62, c, P, 56))
    }, F, e)
}
#84 JavaScript::Eval (size: 1) - SHA256: 62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a
m
#85 JavaScript::Eval (size: 2) - SHA256: 83236ec7ea73e9165af86bf92d17ff9c04421f34c58824b694cc815a9d80995b
S_
#86 JavaScript::Eval (size: 497) - SHA256: 905b518c1b055ed69d8b70a0a7375889c818929f547a16caadfda527a7190398
0, YH = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
    if (!h.mi) {
        if (3 < (t = r(229, (Y = (0 == (L = r(198, ((F = void 0, S) && S[0] === s1 && (A = S[1], F = S[2], S = void 0), h)), L.length) && (e = r(339, h) >> 3, L.push(A, (R = e >> 8, -2 * ~(R & 255) + ~(R | 255) + 2 * (R ^ 255) + (~R ^ 255)), 255 - ~e + -256 - (e & -256)), void 0 != F && L.push(-1 - ~F + (~F ^ 255) - (F | -256))), ""), S && (S.message && (Y += S.message), S.stack && (Y += n + S.stack)), h)), t)) {
            h.C = (Q = (Y = (Y = Y.slice(0, (t | 0) - 3), t -= (G = Y.length, -2 - ~G - -4), RG(Y, 2048)), h.C), h);
            try {
                Z(510, f(Y.length, 2).concat(Y), h, 144)
            } finally {
                h.C = Q
            }
        }
        D(229, h, t)
    }
}
#87 JavaScript::Eval (size: 77) - SHA256: 3ad883a22ea8aadfc5f159ea532959cefb29a587d18015f1ef9167e405ca90e0
0,
function(F, G, Q, R) {
    (G = r((Q = b(F, (R = b(F, 27), 25)), Q), F), 0) != r(R, F) && D(334, F, G)
}
#88 JavaScript::Eval (size: 22) - SHA256: d3708419b1e881b1a9954c1be9c4106c489c587437c397e3964a5ab5b5cdd7ce
0,
function(F) {
    eM(F, 3)
}
#89 JavaScript::Eval (size: 117) - SHA256: bd2c48c5cfdbfaf42fc5e51581255fd2d943773371b59b96db61db92b9228de3
0, S_ = function(h, A, S) {
    return S = A.create().shift(), h.O.create().length || h.v.create().length || (h.O = void 0, h.v = void 0), S
}
#90 JavaScript::Eval (size: 134461) - SHA256: 982b81e75d0562eed44e3bdf49aa654dc1048c916d843377eb6d23554cdb13e6
window.MagicZoom = (function() {
    var y, A;
    y = A = (function() {
        var U = {
            version: "v3.3-b5",
            UUID: 0,
            storage: {},
            $uuid: function(Y) {
                return (Y.$J_UUID || (Y.$J_UUID = ++O.UUID))
            },
            getStorage: function(Y) {
                return (O.storage[Y] || (O.storage[Y] = {}))
            },
            $F: function() {},
            $false: function() {
                return false
            },
            $true: function() {
                return true
            },
            stylesId: "mjs-" + Math.floor(Math.random() * new Date().getTime()),
            defined: function(Y) {
                return (undefined != Y)
            },
            ifndef: function(Z, Y) {
                return (undefined != Z) ? Z : Y
            },
            exists: function(Y) {
                return !!(Y)
            },
            jTypeOf: function(Y) {
                if (!O.defined(Y)) {
                    return false
                }
                if (Y.$J_TYPE) {
                    return Y.$J_TYPE
                }
                if (!!Y.nodeType) {
                    if (1 == Y.nodeType) {
                        return "element"
                    }
                    if (3 == Y.nodeType) {
                        return "textnode"
                    }
                }
                if (Y.length && Y.item) {
                    return "collection"
                }
                if (Y.length && Y.callee) {
                    return "arguments"
                }
                if ((Y instanceof window.Object || Y instanceof window.Function) && Y.constructor === O.Class) {
                    return "class"
                }
                if (Y instanceof window.Array) {
                    return "array"
                }
                if (Y instanceof window.Function) {
                    return "function"
                }
                if (Y instanceof window.String) {
                    return "string"
                }
                if (O.browser.trident) {
                    if (O.defined(Y.cancelBubble)) {
                        return "event"
                    }
                } else {
                    if (Y === window.event || Y.constructor == window.Event || Y.constructor == window.MouseEvent || Y.constructor == window.UIEvent || Y.constructor == window.KeyboardEvent || Y.constructor == window.KeyEvent) {
                        return "event"
                    }
                }
                if (Y instanceof window.Date) {
                    return "date"
                }
                if (Y instanceof window.RegExp) {
                    return "regexp"
                }
                if (Y === window) {
                    return "window"
                }
                if (Y === document) {
                    return "document"
                }
                return typeof(Y)
            },
            extend: function(ad, ac) {
                if (!(ad instanceof window.Array)) {
                    ad = [ad]
                }
                if (!ac) {
                    return ad[0]
                }
                for (var ab = 0, Z = ad.length; ab < Z; ab++) {
                    if (!O.defined(ad)) {
                        continue
                    }
                    for (var aa in ac) {
                        if (!Object.prototype.hasOwnProperty.call(ac, aa)) {
                            continue
                        }
                        try {
                            ad[ab][aa] = ac[aa]
                        } catch (Y) {}
                    }
                }
                return ad[0]
            },
            implement: function(ac, ab) {
                if (!(ac instanceof window.Array)) {
                    ac = [ac]
                }
                for (var aa = 0, Y = ac.length; aa < Y; aa++) {
                    if (!O.defined(ac[aa])) {
                        continue
                    }
                    if (!ac[aa].prototype) {
                        continue
                    }
                    for (var Z in (ab || {})) {
                        if (!ac[aa].prototype[Z]) {
                            ac[aa].prototype[Z] = ab[Z]
                        }
                    }
                }
                return ac[0]
            },
            nativize: function(aa, Z) {
                if (!O.defined(aa)) {
                    return aa
                }
                for (var Y in (Z || {})) {
                    if (!aa[Y]) {
                        aa[Y] = Z[Y]
                    }
                }
                return aa
            },
            $try: function() {
                for (var Z = 0, Y = arguments.length; Z < Y; Z++) {
                    try {
                        return arguments[Z]()
                    } catch (aa) {}
                }
                return null
            },
            $A: function(aa) {
                if (!O.defined(aa)) {
                    return O.$([])
                }
                if (aa.toArray) {
                    return O.$(aa.toArray())
                }
                if (aa.item) {
                    var Z = aa.length || 0,
                        Y = new Array(Z);
                    while (Z--) {
                        Y[Z] = aa[Z]
                    }
                    return O.$(Y)
                }
                return O.$(Array.prototype.slice.call(aa))
            },
            now: function() {
                return new Date().getTime()
            },
            detach: function(ac) {
                var aa;
                switch (O.jTypeOf(ac)) {
                    case "object":
                        aa = {};
                        for (var ab in ac) {
                            aa[ab] = O.detach(ac[ab])
                        }
                        break;
                    case "array":
                        aa = [];
                        for (var Z = 0, Y = ac.length; Z < Y; Z++) {
                            aa[Z] = O.detach(ac[Z])
                        }
                        break;
                    default:
                        return ac
                }
                return O.$(aa)
            },
            $: function(aa) {
                var Y = true;
                if (!O.defined(aa)) {
                    return null
                }
                if (aa.$J_EXT) {
                    return aa
                }
                switch (O.jTypeOf(aa)) {
                    case "array":
                        aa = O.nativize(aa, O.extend(O.Array, {
                            $J_EXT: O.$F
                        }));
                        aa.jEach = aa.forEach;
                        return aa;
                        break;
                    case "string":
                        var Z = document.getElementById(aa);
                        if (O.defined(Z)) {
                            return O.$(Z)
                        }
                        return null;
                        break;
                    case "window":
                    case "document":
                        O.$uuid(aa);
                        aa = O.extend(aa, O.Doc);
                        break;
                    case "element":
                        O.$uuid(aa);
                        aa = O.extend(aa, O.Element);
                        break;
                    case "event":
                        aa = O.extend(aa, O.Event);
                        break;
                    case "textnode":
                    case "function":
                    case "array":
                    case "date":
                    default:
                        Y = false;
                        break
                }
                if (Y) {
                    return O.extend(aa, {
                        $J_EXT: O.$F
                    })
                } else {
                    return aa
                }
            },
            $new: function(Y, aa, Z) {
                return O.$(O.doc.createElement(Y)).setProps(aa || {}).jSetCss(Z || {})
            },
            addCSS: function(Z, ab, af) {
                var ac, aa, ad, ae = [],
                    Y = -1;
                af || (af = O.stylesId);
                ac = O.$(af) || O.$new("style", {
                    id: af,
                    type: "text/css"
                }).jAppendTo((document.head || document.body), "top");
                aa = ac.sheet || ac.styleSheet;
                if ("string" != O.jTypeOf(ab)) {
                    for (var ad in ab) {
                        ae.push(ad + ":" + ab[ad])
                    }
                    ab = ae.join(";")
                }
                if (aa.insertRule) {
                    Y = aa.insertRule(Z + " {" + ab + "}", aa.cssRules.length)
                } else {
                    Y = aa.addRule(Z, ab)
                }
                return Y
            },
            removeCSS: function(ab, Y) {
                var aa, Z;
                aa = O.$(ab);
                if ("element" !== O.jTypeOf(aa)) {
                    return
                }
                Z = aa.sheet || aa.styleSheet;
                if (Z.deleteRule) {
                    Z.deleteRule(Y)
                } else {
                    if (Z.removeRule) {
                        Z.removeRule(Y)
                    }
                }
            },
            generateUUID: function() {
                return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(aa) {
                    var Z = Math.random() * 16 | 0,
                        Y = aa == "x" ? Z : (Z & 3 | 8);
                    return Y.toString(16)
                }).toUpperCase()
            },
            getAbsoluteURL: (function() {
                var Y;
                return function(Z) {
                    if (!Y) {
                        Y = document.createElement("a")
                    }
                    Y.setAttribute("href", Z);
                    return ("!!" + Y.href).replace("!!", "")
                }
            })(),
            getHashCode: function(aa) {
                var ab = 0,
                    Y = aa.length;
                for (var Z = 0; Z < Y; ++Z) {
                    ab = 31 * ab + aa.charCodeAt(Z);
                    ab %= 4294967296
                }
                return ab
            }
        };
        var O = U;
        var P = U.$;
        if (!window.magicJS) {
            window.magicJS = U;
            window.$mjs = U.$
        }
        O.Array = {
            $J_TYPE: "array",
            indexOf: function(ab, ac) {
                var Y = this.length;
                for (var Z = this.length, aa = (ac < 0) ? Math.max(0, Z + ac) : ac || 0; aa < Z; aa++) {
                    if (this[aa] === ab) {
                        return aa
                    }
                }
                return -1
            },
            contains: function(Y, Z) {
                return this.indexOf(Y, Z) != -1
            },
            forEach: function(Y, ab) {
                for (var aa = 0, Z = this.length; aa < Z; aa++) {
                    if (aa in this) {
                        Y.call(ab, this[aa], aa, this)
                    }
                }
            },
            filter: function(Y, ad) {
                var ac = [];
                for (var ab = 0, Z = this.length; ab < Z; ab++) {
                    if (ab in this) {
                        var aa = this[ab];
                        if (Y.call(ad, this[ab], ab, this)) {
                            ac.push(aa)
                        }
                    }
                }
                return ac
            },
            map: function(Y, ac) {
                var ab = [];
                for (var aa = 0, Z = this.length; aa < Z; aa++) {
                    if (aa in this) {
                        ab[aa] = Y.call(ac, this[aa], aa, this)
                    }
                }
                return ab
            }
        };
        O.implement(String, {
            $J_TYPE: "string",
            jTrim: function() {
                return this.replace(/^\s+|\s+$/g, "")
            },
            eq: function(Y, Z) {
                return (Z || false) ? (this.toString() === Y.toString()) : (this.toLowerCase().toString() === Y.toLowerCase().toString())
            },
            jCamelize: function() {
                return this.replace(/-\D/g, function(Y) {
                    return Y.charAt(1).toUpperCase()
                })
            },
            dashize: function() {
                return this.replace(/[A-Z]/g, function(Y) {
                    return ("-" + Y.charAt(0).toLowerCase())
                })
            },
            jToInt: function(Y) {
                return parseInt(this, Y || 10)
            },
            toFloat: function() {
                return parseFloat(this)
            },
            jToBool: function() {
                return !this.replace(/true/i, "").jTrim()
            },
            has: function(Z, Y) {
                Y = Y || "";
                return (Y + this + Y).indexOf(Y + Z + Y) > -1
            }
        });
        U.implement(Function, {
            $J_TYPE: "function",
            jBind: function() {
                var Z = O.$A(arguments),
                    Y = this,
                    aa = Z.shift();
                return function() {
                    return Y.apply(aa || null, Z.concat(O.$A(arguments)))
                }
            },
            jBindAsEvent: function() {
                var Z = O.$A(arguments),
                    Y = this,
                    aa = Z.shift();
                return function(ab) {
                    return Y.apply(aa || null, O.$([ab || (O.browser.ieMode ? window.event : null)]).concat(Z))
                }
            },
            jDelay: function() {
                var Z = O.$A(arguments),
                    Y = this,
                    aa = Z.shift();
                return window.setTimeout(function() {
                    return Y.apply(Y, Z)
                }, aa || 0)
            },
            jDefer: function() {
                var Z = O.$A(arguments),
                    Y = this;
                return function() {
                    return Y.jDelay.apply(Y, Z)
                }
            },
            interval: function() {
                var Z = O.$A(arguments),
                    Y = this,
                    aa = Z.shift();
                return window.setInterval(function() {
                    return Y.apply(Y, Z)
                }, aa || 0)
            }
        });
        var V = {},
            N = navigator.userAgent.toLowerCase(),
            M = N.match(/(webkit|gecko|trident|presto)\/(\d+\.?\d*)/i),
            R = N.match(/(edge|opr)\/(\d+\.?\d*)/i) || N.match(/(crios|chrome|safari|firefox|opera|opr)\/(\d+\.?\d*)/i),
            T = N.match(/version\/(\d+\.?\d*)/i),
            I = document.documentElement.style;

        function J(Z) {
            var Y = Z.charAt(0).toUpperCase() + Z.slice(1);
            return Z in I || ("Webkit" + Y) in I || ("Moz" + Y) in I || ("ms" + Y) in I || ("O" + Y) in I
        }
        O.browser = {
            features: {
                xpath: !!(document.evaluate),
                air: !!(window.runtime),
                query: !!(document.querySelector),
                fullScreen: !!(document.fullscreenEnabled || document.msFullscreenEnabled || document.exitFullscreen || document.cancelFullScreen || document.webkitexitFullscreen || document.webkitCancelFullScreen || document.mozCancelFullScreen || document.oCancelFullScreen || document.msCancelFullScreen),
                xhr2: !!(window.ProgressEvent) && !!(window.FormData) && (window.XMLHttpRequest && "withCredentials" in new XMLHttpRequest),
                transition: J("transition"),
                transform: J("transform"),
                perspective: J("perspective"),
                animation: J("animation"),
                requestAnimationFrame: false,
                multibackground: false,
                cssFilters: false,
                canvas: false,
                svg: (function() {
                    return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image", "1.1")
                })()
            },
            touchScreen: function() {
                return "ontouchstart" in window || (window.DocumentTouch && document instanceof DocumentTouch) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)
            }(),
            mobile: N.match(/(android|bb\d+|meego).+|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|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|phone)|xda|xiino/) ? true : false,
            engine: (M && M[1]) ? M[1].toLowerCase() : (window.opera) ? "presto" : !!(window.ActiveXObject) ? "trident" : (undefined !== document.getBoxObjectFor || null != window.mozInnerScreenY) ? "gecko" : (null !== window.WebKitPoint || !navigator.taintEnabled) ? "webkit" : "unknown",
            version: (M && M[2]) ? parseFloat(M[2]) : 0,
            uaName: (R && R[1]) ? R[1].toLowerCase() : "",
            uaVersion: (R && R[2]) ? parseFloat(R[2]) : 0,
            cssPrefix: "",
            cssDomPrefix: "",
            domPrefix: "",
            ieMode: 0,
            platform: N.match(/ip(?:ad|od|hone)/) ? "ios" : (N.match(/(?:webos|android)/) || navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase(),
            backCompat: document.compatMode && "backcompat" == document.compatMode.toLowerCase(),
            scrollbarsWidth: 0,
            getDoc: function() {
                return (document.compatMode && "backcompat" == document.compatMode.toLowerCase()) ? document.body : document.documentElement
            },
            requestAnimationFrame: window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || undefined,
            cancelAnimationFrame: window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame || window.webkitCancelRequestAnimationFrame || undefined,
            ready: false,
            onready: function() {
                if (O.browser.ready) {
                    return
                }
                var ab, aa;
                O.browser.ready = true;
                O.body = O.$(document.body);
                O.win = O.$(window);
                try {
                    var Z = O.$new("div").jSetCss({
                        width: 100,
                        height: 100,
                        overflow: "scroll",
                        position: "absolute",
                        top: -9999
                    }).jAppendTo(document.body);
                    O.browser.scrollbarsWidth = Z.offsetWidth - Z.clientWidth;
                    Z.jRemove()
                } catch (Y) {}
                try {
                    ab = O.$new("div");
                    aa = ab.style;
                    aa.cssText = "background:url(https://),url(https://),red url(https://)";
                    O.browser.features.multibackground = (/(url\s*\(.*?){3}/).test(aa.background);
                    aa = null;
                    ab = null
                } catch (Y) {}
                if (!O.browser.cssTransformProp) {
                    O.browser.cssTransformProp = O.normalizeCSS("transform").dashize()
                }
                try {
                    ab = O.$new("div");
                    ab.style.cssText = O.normalizeCSS("filter").dashize() + ":blur(2px);";
                    O.browser.features.cssFilters = !!ab.style.length && (!O.browser.ieMode || O.browser.ieMode > 9);
                    ab = null
                } catch (Y) {}
                if (!O.browser.features.cssFilters) {
                    O.$(document.documentElement).jAddClass("no-cssfilters-magic")
                }
                try {
                    O.browser.features.canvas = (function() {
                        var ac = O.$new("canvas");
                        return !!(ac.getContext && ac.getContext("2d"))
                    })()
                } catch (Y) {}
                if (undefined === window.TransitionEvent && undefined !== window.WebKitTransitionEvent) {
                    V.transitionend = "webkitTransitionEnd"
                }
                O.Doc.jCallEvent.call(O.$(document), "domready")
            }
        };
        (function() {
            var ad = [],
                ac, ab, Z;

            function Y() {
                return !!(arguments.callee.caller)
            }
            switch (O.browser.engine) {
                case "trident":
                    if (!O.browser.version) {
                        O.browser.version = !!(window.XMLHttpRequest) ? 3 : 2
                    }
                    break;
                case "gecko":
                    O.browser.version = (R && R[2]) ? parseFloat(R[2]) : 0;
                    break
            }
            O.browser[O.browser.engine] = true;
            if (R && "crios" === R[1]) {
                O.browser.uaName = "chrome"
            }
            if (!!window.chrome) {
                O.browser.chrome = true
            }
            if (R && "opr" === R[1]) {
                O.browser.uaName = "opera";
                O.browser.opera = true
            }
            if ("safari" === O.browser.uaName && (T && T[1])) {
                O.browser.uaVersion = parseFloat(T[1])
            }
            if ("android" == O.browser.platform && O.browser.webkit && (T && T[1])) {
                O.browser.androidBrowser = true
            }
            ac = ({
                gecko: ["-moz-", "Moz", "moz"],
                webkit: ["-webkit-", "Webkit", "webkit"],
                trident: ["-ms-", "ms", "ms"],
                presto: ["-o-", "O", "o"]
            })[O.browser.engine] || ["", "", ""];
            O.browser.cssPrefix = ac[0];
            O.browser.cssDomPrefix = ac[1];
            O.browser.domPrefix = ac[2];
            O.browser.ieMode = (!O.browser.trident) ? undefined : (document.documentMode) ? document.documentMode : function() {
                var ae = 0;
                if (O.browser.backCompat) {
                    return 5
                }
                switch (O.browser.version) {
                    case 2:
                        ae = 6;
                        break;
                    case 3:
                        ae = 7;
                        break
                }
                return ae
            }();
            ad.push(O.browser.platform + "-magic");
            if (O.browser.mobile) {
                ad.push("mobile-magic")
            }
            if (O.browser.androidBrowser) {
                ad.push("android-browser-magic")
            }
            if (O.browser.ieMode) {
                O.browser.uaName = "ie";
                O.browser.uaVersion = O.browser.ieMode;
                ad.push("ie" + O.browser.ieMode + "-magic");
                for (ab = 11; ab > O.browser.ieMode; ab--) {
                    ad.push("lt-ie" + ab + "-magic")
                }
            }
            if (O.browser.webkit && O.browser.version < 536) {
                O.browser.features.fullScreen = false
            }
            if (O.browser.requestAnimationFrame) {
                O.browser.requestAnimationFrame.call(window, function() {
                    O.browser.features.requestAnimationFrame = true
                })
            }
            if (O.browser.features.svg) {
                ad.push("svg-magic")
            } else {
                ad.push("no-svg-magic")
            }
            Z = (document.documentElement.className || "").match(/\S+/g) || [];
            document.documentElement.className = O.$(Z).concat(ad).join(" ");
            try {
                document.documentElement.setAttribute("data-magic-ua", O.browser.uaName);
                document.documentElement.setAttribute("data-magic-ua-ver", O.browser.uaVersion)
            } catch (aa) {}
            if (O.browser.ieMode && O.browser.ieMode < 9) {
                document.createElement("figure");
                document.createElement("figcaption")
            }
        })();
        (function() {
            O.browser.fullScreen = {
                capable: O.browser.features.fullScreen,
                enabled: function() {
                    return !!(document.fullscreenElement || document[O.browser.domPrefix + "FullscreenElement"] || document.fullScreen || document.webkitIsFullScreen || document[O.browser.domPrefix + "FullScreen"])
                },
                request: function(Y, Z) {
                    Z || (Z = {});
                    if (this.capable) {
                        O.$(document).jAddEvent(this.changeEventName, this.onchange = function(aa) {
                            if (this.enabled()) {
                                Z.onEnter && Z.onEnter()
                            } else {
                                O.$(document).jRemoveEvent(this.changeEventName, this.onchange);
                                Z.onExit && Z.onExit()
                            }
                        }.jBindAsEvent(this));
                        O.$(document).jAddEvent(this.errorEventName, this.onerror = function(aa) {
                            Z.fallback && Z.fallback();
                            O.$(document).jRemoveEvent(this.errorEventName, this.onerror)
                        }.jBindAsEvent(this));
                        (Y[O.browser.domPrefix + "RequestFullscreen"] || Y[O.browser.domPrefix + "RequestFullScreen"] || Y.requestFullscreen || function() {}).call(Y)
                    } else {
                        if (Z.fallback) {
                            Z.fallback()
                        }
                    }
                },
                cancel: (document.exitFullscreen || document.cancelFullScreen || document[O.browser.domPrefix + "ExitFullscreen"] || document[O.browser.domPrefix + "CancelFullScreen"] || function() {}).jBind(document),
                changeEventName: document.msExitFullscreen ? "MSFullscreenChange" : (document.exitFullscreen ? "" : O.browser.domPrefix) + "fullscreenchange",
                errorEventName: document.msExitFullscreen ? "MSFullscreenError" : (document.exitFullscreen ? "" : O.browser.domPrefix) + "fullscreenerror",
                prefix: O.browser.domPrefix,
                activeElement: null
            }
        })();
        var X = /\S+/g,
            L = /^(border(Top|Bottom|Left|Right)Width)|((padding|margin)(Top|Bottom|Left|Right))$/,
            Q = {
                "float": ("undefined" === typeof(I.styleFloat)) ? "cssFloat" : "styleFloat"
            },
            S = {
                fontWeight: true,
                lineHeight: true,
                opacity: true,
                zIndex: true,
                zoom: true
            },
            K = (window.getComputedStyle) ? function(aa, Y) {
                var Z = window.getComputedStyle(aa, null);
                return Z ? Z.getPropertyValue(Y) || Z[Y] : null
            } : function(ab, Z) {
                var aa = ab.currentStyle,
                    Y = null;
                Y = aa ? aa[Z] : null;
                if (null == Y && ab.style && ab.style[Z]) {
                    Y = ab.style[Z]
                }
                return Y
            };

        function W(aa) {
            var Y, Z;
            Z = (O.browser.webkit && "filter" == aa) ? false : (aa in I);
            if (!Z) {
                Y = O.browser.cssDomPrefix + aa.charAt(0).toUpperCase() + aa.slice(1);
                if (Y in I) {
                    return Y
                }
            }
            return aa
        }
        O.normalizeCSS = W;
        O.Element = {
            jHasClass: function(Y) {
                return !(Y || "").has(" ") && (this.className || "").has(Y, " ")
            },
            jAddClass: function(ac) {
                var Z = (this.className || "").match(X) || [],
                    ab = (ac || "").match(X) || [],
                    Y = ab.length,
                    aa = 0;
                for (; aa < Y; aa++) {
                    if (!O.$(Z).contains(ab[aa])) {
                        Z.push(ab[aa])
                    }
                }
                this.className = Z.join(" ");
                return this
            },
            jRemoveClass: function(ad) {
                var Z = (this.className || "").match(X) || [],
                    ac = (ad || "").match(X) || [],
                    Y = ac.length,
                    ab = 0,
                    aa;
                for (; ab < Y; ab++) {
                    if ((aa = O.$(Z).indexOf(ac[ab])) > -1) {
                        Z.splice(aa, 1)
                    }
                }
                this.className = ad ? Z.join(" ") : "";
                return this
            },
            jToggleClass: function(Y) {
                return this.jHasClass(Y) ? this.jRemoveClass(Y) : this.jAddClass(Y)
            },
            jGetCss: function(Z) {
                var aa = Z.jCamelize(),
                    Y = null;
                Z = Q[aa] || (Q[aa] = W(aa));
                Y = K(this, Z);
                if ("auto" === Y) {
                    Y = null
                }
                if (null !== Y) {
                    if ("opacity" == Z) {
                        return O.defined(Y) ? parseFloat(Y) : 1
                    }
                    if (L.test(Z)) {
                        Y = parseInt(Y, 10) ? Y : "0px"
                    }
                }
                return Y
            },
            jSetCssProp: function(Z, Y) {
                var ab = Z.jCamelize();
                try {
                    if ("opacity" == Z) {
                        this.jSetOpacity(Y);
                        return this
                    }
                    Z = Q[ab] || (Q[ab] = W(ab));
                    this.style[Z] = Y + (("number" == O.jTypeOf(Y) && !S[ab]) ? "px" : "")
                } catch (aa) {}
                return this
            },
            jSetCss: function(Z) {
                for (var Y in Z) {
                    this.jSetCssProp(Y, Z[Y])
                }
                return this
            },
            jGetStyles: function() {
                var Y = {};
                O.$A(arguments).jEach(function(Z) {
                    Y[Z] = this.jGetCss(Z)
                }, this);
                return Y
            },
            jSetOpacity: function(aa, Y) {
                var Z;
                Y = Y || false;
                this.style.opacity = aa;
                aa = parseInt(parseFloat(aa) * 100);
                if (Y) {
                    if (0 === aa) {
                        if ("hidden" != this.style.visibility) {
                            this.style.visibility = "hidden"
                        }
                    } else {
                        if ("visible" != this.style.visibility) {
                            this.style.visibility = "visible"
                        }
                    }
                }
                if (O.browser.ieMode && O.browser.ieMode < 9) {
                    if (!isNaN(aa)) {
                        if (!~this.style.filter.indexOf("Alpha")) {
                            this.style.filter += " progid:DXImageTransform.Microsoft.Alpha(Opacity=" + aa + ")"
                        } else {
                            this.style.filter = this.style.filter.replace(/Opacity=\d*/i, "Opacity=" + aa)
                        }
                    } else {
                        this.style.filter = this.style.filter.replace(/progid:DXImageTransform.Microsoft.Alpha\(Opacity=\d*\)/i, "").jTrim();
                        if ("" === this.style.filter) {
                            this.style.removeAttribute("filter")
                        }
                    }
                }
                return this
            },
            setProps: function(Y) {
                for (var Z in Y) {
                    if ("class" === Z) {
                        this.jAddClass("" + Y[Z])
                    } else {
                        this.setAttribute(Z, "" + Y[Z])
                    }
                }
                return this
            },
            jGetTransitionDuration: function() {
                var Z = 0,
                    Y = 0;
                Z = this.jGetCss("transition-duration");
                Y = this.jGetCss("transition-delay");
                Z = Z.indexOf("ms") > -1 ? parseFloat(Z) : Z.indexOf("s") > -1 ? parseFloat(Z) * 1000 : 0;
                Y = Y.indexOf("ms") > -1 ? parseFloat(Y) : Y.indexOf("s") > -1 ? parseFloat(Y) * 1000 : 0;
                return Z + Y
            },
            hide: function() {
                return this.jSetCss({
                    display: "none",
                    visibility: "hidden"
                })
            },
            show: function() {
                return this.jSetCss({
                    display: "",
                    visibility: "visible"
                })
            },
            jGetSize: function() {
                return {
                    width: this.offsetWidth,
                    height: this.offsetHeight
                }
            },
            getInnerSize: function(Z) {
                var Y = this.jGetSize();
                Y.width -= (parseFloat(this.jGetCss("border-left-width") || 0) + parseFloat(this.jGetCss("border-right-width") || 0));
                Y.height -= (parseFloat(this.jGetCss("border-top-width") || 0) + parseFloat(this.jGetCss("border-bottom-width") || 0));
                if (!Z) {
                    Y.width -= (parseFloat(this.jGetCss("padding-left") || 0) + parseFloat(this.jGetCss("padding-right") || 0));
                    Y.height -= (parseFloat(this.jGetCss("padding-top") || 0) + parseFloat(this.jGetCss("padding-bottom") || 0))
                }
                return Y
            },
            jGetScroll: function() {
                return {
                    top: this.scrollTop,
                    left: this.scrollLeft
                }
            },
            jGetFullScroll: function() {
                var Y = this,
                    Z = {
                        top: 0,
                        left: 0
                    };
                do {
                    Z.left += Y.scrollLeft || 0;
                    Z.top += Y.scrollTop || 0;
                    Y = Y.parentNode
                } while (Y);
                return Z
            },
            jGetPosition: function() {
                var ac = this,
                    Z = 0,
                    ab = 0;
                if (O.defined(document.documentElement.getBoundingClientRect)) {
                    var Y = this.getBoundingClientRect(),
                        aa = O.$(document).jGetScroll(),
                        ad = O.browser.getDoc();
                    return {
                        top: Y.top + aa.y - ad.clientTop,
                        left: Y.left + aa.x - ad.clientLeft
                    }
                }
                do {
                    Z += ac.offsetLeft || 0;
                    ab += ac.offsetTop || 0;
                    ac = ac.offsetParent
                } while (ac && !(/^(?:body|html)$/i).test(ac.tagName));
                return {
                    top: ab,
                    left: Z
                }
            },
            jGetRect: function() {
                var Z = this.jGetPosition();
                var Y = this.jGetSize();
                return {
                    top: Z.top,
                    bottom: Z.top + Y.height,
                    left: Z.left,
                    right: Z.left + Y.width
                }
            },
            changeContent: function(Z) {
                try {
                    this.innerHTML = Z
                } catch (Y) {
                    this.innerText = Z
                }
                return this
            },
            jRemove: function() {
                return (this.parentNode) ? this.parentNode.removeChild(this) : this
            },
            kill: function() {
                O.$A(this.childNodes).jEach(function(Y) {
                    if (3 == Y.nodeType || 8 == Y.nodeType) {
                        return
                    }
                    O.$(Y).kill()
                });
                this.jRemove();
                this.jClearEvents();
                if (this.$J_UUID) {
                    O.storage[this.$J_UUID] = null;
                    delete O.storage[this.$J_UUID]
                }
                return null
            },
            append: function(aa, Z) {
                Z = Z || "bottom";
                var Y = this.firstChild;
                ("top" == Z && Y) ? this.insertBefore(aa, Y): this.appendChild(aa);
                return this
            },
            jAppendTo: function(aa, Z) {
                var Y = O.$(aa).append(this, Z);
                return this
            },
            enclose: function(Y) {
                this.append(Y.parentNode.replaceChild(this, Y));
                return this
            },
            hasChild: function(Y) {
                if ("element" !== O.jTypeOf("string" == O.jTypeOf(Y) ? Y = document.getElementById(Y) : Y)) {
                    return false
                }
                return (this == Y) ? false : (this.contains && !(O.browser.webkit419)) ? (this.contains(Y)) : (this.compareDocumentPosition) ? !!(this.compareDocumentPosition(Y) & 16) : O.$A(this.byTag(Y.tagName)).contains(Y)
            }
        };
        O.Element.jGetStyle = O.Element.jGetCss;
        O.Element.jSetStyle = O.Element.jSetCss;
        if (!window.Element) {
            window.Element = O.$F;
            if (O.browser.engine.webkit) {
                window.document.createElement("iframe")
            }
            window.Element.prototype = (O.browser.engine.webkit) ? window["[[DOMElement.prototype]]"] : {}
        }
        O.implement(window.Element, {
            $J_TYPE: "element"
        });
        O.Doc = {
            jGetSize: function() {
                if (O.browser.touchScreen || O.browser.presto925 || O.browser.webkit419) {
                    return {
                        width: window.innerWidth,
                        height: window.innerHeight
                    }
                }
                return {
                    width: O.browser.getDoc().clientWidth,
                    height: O.browser.getDoc().clientHeight
                }
            },
            jGetScroll: function() {
                return {
                    x: window.pageXOffset || O.browser.getDoc().scrollLeft,
                    y: window.pageYOffset || O.browser.getDoc().scrollTop
                }
            },
            jGetFullSize: function() {
                var Y = this.jGetSize();
                return {
                    width: Math.max(O.browser.getDoc().scrollWidth, Y.width),
                    height: Math.max(O.browser.getDoc().scrollHeight, Y.height)
                }
            }
        };
        O.extend(document, {
            $J_TYPE: "document"
        });
        O.extend(window, {
            $J_TYPE: "window"
        });
        O.extend([O.Element, O.Doc], {
            jFetch: function(ab, Z) {
                var Y = O.getStorage(this.$J_UUID),
                    aa = Y[ab];
                if (undefined !== Z && undefined === aa) {
                    aa = Y[ab] = Z
                }
                return (O.defined(aa) ? aa : null)
            },
            jStore: function(aa, Z) {
                var Y = O.getStorage(this.$J_UUID);
                Y[aa] = Z;
                return this
            },
            jDel: function(Z) {
                var Y = O.getStorage(this.$J_UUID);
                delete Y[Z];
                return this
            }
        });
        if (!(window.HTMLElement && window.HTMLElement.prototype && window.HTMLElement.prototype.getElementsByClassName)) {
            O.extend([O.Element, O.Doc], {
                getElementsByClassName: function(Y) {
                    return O.$A(this.getElementsByTagName("*")).filter(function(aa) {
                        try {
                            return (1 == aa.nodeType && aa.className.has(Y, " "))
                        } catch (Z) {}
                    })
                }
            })
        }
        O.extend([O.Element, O.Doc], {
            byClass: function() {
                return this.getElementsByClassName(arguments[0])
            },
            byTag: function() {
                return this.getElementsByTagName(arguments[0])
            }
        });
        if (O.browser.fullScreen.capable && !document.requestFullScreen) {
            O.Element.requestFullScreen = function() {
                O.browser.fullScreen.request(this)
            }
        }
        O.Event = {
            $J_TYPE: "event",
            isQueueStopped: O.$false,
            stop: function() {
                return this.stopDistribution().stopDefaults()
            },
            stopDistribution: function() {
                if (this.stopPropagation) {
                    this.stopPropagation()
                } else {
                    this.cancelBubble = true
                }
                return this
            },
            stopDefaults: function() {
                if (this.preventDefault) {
                    this.preventDefault()
                } else {
                    this.returnValue = false
                }
                return this
            },
            stopQueue: function() {
                this.isQueueStopped = O.$true;
                return this
            },
            getClientXY: function() {
                var Z, Y;
                Z = ((/touch/i).test(this.type)) ? this.changedTouches[0] : this;
                return (!O.defined(Z)) ? {
                    x: 0,
                    y: 0
                } : {
                    x: Z.clientX,
                    y: Z.clientY
                }
            },
            jGetPageXY: function() {
                var Z, Y;
                Z = ((/touch/i).test(this.type)) ? this.changedTouches[0] : this;
                return (!O.defined(Z)) ? {
                    x: 0,
                    y: 0
                } : {
                    x: Z.pageX || Z.clientX + O.browser.getDoc().scrollLeft,
                    y: Z.pageY || Z.clientY + O.browser.getDoc().scrollTop
                }
            },
            getTarget: function() {
                var Y = this.target || this.srcElement;
                while (Y && 3 == Y.nodeType) {
                    Y = Y.parentNode
                }
                return Y
            },
            getRelated: function() {
                var Z = null;
                switch (this.type) {
                    case "mouseover":
                    case "pointerover":
                    case "MSPointerOver":
                        Z = this.relatedTarget || this.fromElement;
                        break;
                    case "mouseout":
                    case "pointerout":
                    case "MSPointerOut":
                        Z = this.relatedTarget || this.toElement;
                        break;
                    default:
                        return Z
                }
                try {
                    while (Z && 3 == Z.nodeType) {
                        Z = Z.parentNode
                    }
                } catch (Y) {
                    Z = null
                }
                return Z
            },
            getButton: function() {
                if (!this.which && this.button !== undefined) {
                    return (this.button & 1 ? 1 : (this.button & 2 ? 3 : (this.button & 4 ? 2 : 0)))
                }
                return this.which
            },
            isTouchEvent: function() {
                return (this.pointerType && ("touch" === this.pointerType || this.pointerType === this.MSPOINTER_TYPE_TOUCH)) || (/touch/i).test(this.type)
            },
            isPrimaryTouch: function() {
                return this.pointerType ? (("touch" === this.pointerType || this.MSPOINTER_TYPE_TOUCH === this.pointerType) && this.isPrimary) : 1 === this.changedTouches.length && (this.targetTouches.length ? this.targetTouches[0].identifier == this.changedTouches[0].identifier : true)
            }
        };
        O._event_add_ = "addEventListener";
        O._event_del_ = "removeEventListener";
        O._event_prefix_ = "";
        if (!document.addEventListener) {
            O._event_add_ = "attachEvent";
            O._event_del_ = "detachEvent";
            O._event_prefix_ = "on"
        }
        O.Event.Custom = {
            type: "",
            x: null,
            y: null,
            timeStamp: null,
            button: null,
            target: null,
            relatedTarget: null,
            $J_TYPE: "event.custom",
            isQueueStopped: O.$false,
            events: O.$([]),
            pushToEvents: function(Y) {
                var Z = Y;
                this.events.push(Z)
            },
            stop: function() {
                return this.stopDistribution().stopDefaults()
            },
            stopDistribution: function() {
                this.events.jEach(function(Z) {
                    try {
                        Z.stopDistribution()
                    } catch (Y) {}
                });
                return this
            },
            stopDefaults: function() {
                this.events.jEach(function(Z) {
                    try {
                        Z.stopDefaults()
                    } catch (Y) {}
                });
                return this
            },
            stopQueue: function() {
                this.isQueueStopped = O.$true;
                return this
            },
            getClientXY: function() {
                return {
                    x: this.clientX,
                    y: this.clientY
                }
            },
            jGetPageXY: function() {
                return {
                    x: this.x,
                    y: this.y
                }
            },
            getTarget: function() {
                return this.target
            },
            getRelated: function() {
                return this.relatedTarget
            },
            getButton: function() {
                return this.button
            },
            getOriginalTarget: function() {
                return this.events.length > 0 ? this.events[0].getTarget() : undefined
            }
        };
        O.extend([O.Element, O.Doc], {
            jAddEvent: function(aa, ac, ad, ag) {
                var af, Y, ab, ae, Z;
                if ("string" == O.jTypeOf(aa)) {
                    Z = aa.split(" ");
                    if (Z.length > 1) {
                        aa = Z
                    }
                }
                if (O.jTypeOf(aa) == "array") {
                    O.$(aa).jEach(this.jAddEvent.jBindAsEvent(this, ac, ad, ag));
                    return this
                }
                if (!aa || !ac || O.jTypeOf(aa) != "string" || O.jTypeOf(ac) != "function") {
                    return this
                }
                if (aa == "domready" && O.browser.ready) {
                    ac.call(this);
                    return this
                }
                aa = V[aa] || aa;
                ad = parseInt(ad || 50);
                if (!ac.$J_EUID) {
                    ac.$J_EUID = Math.floor(Math.random() * O.now())
                }
                af = O.Doc.jFetch.call(this, "_EVENTS_", {});
                Y = af[aa];
                if (!Y) {
                    af[aa] = Y = O.$([]);
                    ab = this;
                    if (O.Event.Custom[aa]) {
                        O.Event.Custom[aa].handler.add.call(this, ag)
                    } else {
                        Y.handle = function(ah) {
                            ah = O.extend(ah || window.e, {
                                $J_TYPE: "event"
                            });
                            O.Doc.jCallEvent.call(ab, aa, O.$(ah))
                        };
                        this[O._event_add_](O._event_prefix_ + aa, Y.handle, false)
                    }
                }
                ae = {
                    type: aa,
                    fn: ac,
                    priority: ad,
                    euid: ac.$J_EUID
                };
                Y.push(ae);
                Y.sort(function(ai, ah) {
                    return ai.priority - ah.priority
                });
                return this
            },
            jRemoveEvent: function(ae) {
                var ac = O.Doc.jFetch.call(this, "_EVENTS_", {}),
                    aa, Y, Z, af, ad, ab;
                ad = arguments.length > 1 ? arguments[1] : -100;
                if ("string" == O.jTypeOf(ae)) {
                    ab = ae.split(" ");
                    if (ab.length > 1) {
                        ae = ab
                    }
                }
                if (O.jTypeOf(ae) == "array") {
                    O.$(ae).jEach(this.jRemoveEvent.jBindAsEvent(this, ad));
                    return this
                }
                ae = V[ae] || ae;
                if (!ae || O.jTypeOf(ae) != "string" || !ac || !ac[ae]) {
                    return this
                }
                aa = ac[ae] || [];
                for (Z = 0; Z < aa.length; Z++) {
                    Y = aa[Z];
                    if (-100 == ad || !!ad && ad.$J_EUID === Y.euid) {
                        af = aa.splice(Z--, 1)
                    }
                }
                if (0 === aa.length) {
                    if (O.Event.Custom[ae]) {
                        O.Event.Custom[ae].handler.jRemove.call(this)
                    } else {
                        this[O._event_del_](O._event_prefix_ + ae, aa.handle, false)
                    }
                    delete ac[ae]
                }
                return this
            },
            jCallEvent: function(ac, ae) {
                var ab = O.Doc.jFetch.call(this, "_EVENTS_", {}),
                    aa, Y, Z;
                ac = V[ac] || ac;
                if (!ac || O.jTypeOf(ac) != "string" || !ab || !ab[ac]) {
                    return this
                }
                try {
                    ae = O.extend(ae || {}, {
                        type: ac
                    })
                } catch (ad) {}
                if (undefined === ae.timeStamp) {
                    ae.timeStamp = O.now()
                }
                aa = ab[ac] || [];
                for (Z = 0; Z < aa.length && !(ae.isQueueStopped && ae.isQueueStopped()); Z++) {
                    aa[Z].fn.call(this, ae)
                }
            },
            jRaiseEvent: function(Z, Y) {
                var ac = ("domready" == Z) ? false : true,
                    ab = this,
                    aa;
                Z = V[Z] || Z;
                if (!ac) {
                    O.Doc.jCallEvent.call(this, Z);
                    return this
                }
                if (ab === document && document.createEvent && !ab.dispatchEvent) {
                    ab = document.documentElement
                }
                if (document.createEvent) {
                    aa = document.createEvent(Z);
                    aa.initEvent(Y, true, true)
                } else {
                    aa = document.createEventObject();
                    aa.eventType = Z
                }
                if (document.createEvent) {
                    ab.dispatchEvent(aa)
                } else {
                    ab.fireEvent("on" + Y, aa)
                }
                return aa
            },
            jClearEvents: function() {
                var Z = O.Doc.jFetch.call(this, "_EVENTS_");
                if (!Z) {
                    return this
                }
                for (var Y in Z) {
                    O.Doc.jRemoveEvent.call(this, Y)
                }
                O.Doc.jDel.call(this, "_EVENTS_");
                return this
            }
        });
        (function(Y) {
            if ("complete" === document.readyState) {
                return Y.browser.onready.jDelay(1)
            }
            if (Y.browser.webkit && Y.browser.version < 420) {
                (function() {
                    (Y.$(["loaded", "complete"]).contains(document.readyState)) ? Y.browser.onready(): arguments.callee.jDelay(50)
                })()
            } else {
                if (Y.browser.trident && Y.browser.ieMode < 9 && window == top) {
                    (function() {
                        (Y.$try(function() {
                            Y.browser.getDoc().doScroll("left");
                            return true
                        })) ? Y.browser.onready(): arguments.callee.jDelay(50)
                    })()
                } else {
                    Y.Doc.jAddEvent.call(Y.$(document), "DOMContentLoaded", Y.browser.onready);
                    Y.Doc.jAddEvent.call(Y.$(window), "load", Y.browser.onready)
                }
            }
        })(U);
        O.Class = function() {
            var ac = null,
                Z = O.$A(arguments);
            if ("class" == O.jTypeOf(Z[0])) {
                ac = Z.shift()
            }
            var Y = function() {
                for (var af in this) {
                    this[af] = O.detach(this[af])
                }
                if (this.constructor.$parent) {
                    this.$parent = {};
                    var ah = this.constructor.$parent;
                    for (var ag in ah) {
                        var ae = ah[ag];
                        switch (O.jTypeOf(ae)) {
                            case "function":
                                this.$parent[ag] = O.Class.wrap(this, ae);
                                break;
                            case "object":
                                this.$parent[ag] = O.detach(ae);
                                break;
                            case "array":
                                this.$parent[ag] = O.detach(ae);
                                break
                        }
                    }
                }
                var ad = (this.init) ? this.init.apply(this, arguments) : this;
                delete this.caller;
                return ad
            };
            if (!Y.prototype.init) {
                Y.prototype.init = O.$F
            }
            if (ac) {
                var ab = function() {};
                ab.prototype = ac.prototype;
                Y.prototype = new ab;
                Y.$parent = {};
                for (var aa in ac.prototype) {
                    Y.$parent[aa] = ac.prototype[aa]
                }
            } else {
                Y.$parent = null
            }
            Y.constructor = O.Class;
            Y.prototype.constructor = Y;
            O.extend(Y.prototype, Z[0]);
            O.extend(Y, {
                $J_TYPE: "class"
            });
            return Y
        };
        U.Class.wrap = function(Y, Z) {
            return function() {
                var ab = this.caller;
                var aa = Z.apply(Y, arguments);
                return aa
            }
        };
        (function(ab) {
            var aa = ab.$;
            var Y = 5,
                Z = 300;
            ab.Event.Custom.btnclick = new ab.Class(ab.extend(ab.Event.Custom, {
                type: "btnclick",
                init: function(ae, ad) {
                    var ac = ad.jGetPageXY();
                    this.x = ac.x;
                    this.y = ac.y;
                    this.clientX = ad.clientX;
                    this.clientY = ad.clientY;
                    this.timeStamp = ad.timeStamp;
                    this.button = ad.getButton();
                    this.target = ae;
                    this.pushToEvents(ad)
                }
            }));
            ab.Event.Custom.btnclick.handler = {
                options: {
                    threshold: Z,
                    button: 1
                },
                add: function(ac) {
                    this.jStore("event:btnclick:options", ab.extend(ab.detach(ab.Event.Custom.btnclick.handler.options), ac || {}));
                    this.jAddEvent("mousedown", ab.Event.Custom.btnclick.handler.handle, 1);
                    this.jAddEvent("mouseup", ab.Event.Custom.btnclick.handler.handle, 1);
                    this.jAddEvent("click", ab.Event.Custom.btnclick.handler.onclick, 1);
                    if (ab.browser.trident && ab.browser.ieMode < 9) {
                        this.jAddEvent("dblclick", ab.Event.Custom.btnclick.handler.handle, 1)
                    }
                },
                jRemove: function() {
                    this.jRemoveEvent("mousedown", ab.Event.Custom.btnclick.handler.handle);
                    this.jRemoveEvent("mouseup", ab.Event.Custom.btnclick.handler.handle);
                    this.jRemoveEvent("click", ab.Event.Custom.btnclick.handler.onclick);
                    if (ab.browser.trident && ab.browser.ieMode < 9) {
                        this.jRemoveEvent("dblclick", ab.Event.Custom.btnclick.handler.handle)
                    }
                },
                onclick: function(ac) {
                    ac.stopDefaults()
                },
                handle: function(af) {
                    var ae, ac, ad;
                    ac = this.jFetch("event:btnclick:options");
                    if (af.type != "dblclick" && af.getButton() != ac.button) {
                        return
                    }
                    if (this.jFetch("event:btnclick:ignore")) {
                        this.jDel("event:btnclick:ignore");
                        return
                    }
                    if ("mousedown" == af.type) {
                        ae = new ab.Event.Custom.btnclick(this, af);
                        this.jStore("event:btnclick:btnclickEvent", ae)
                    } else {
                        if ("mouseup" == af.type) {
                            ae = this.jFetch("event:btnclick:btnclickEvent");
                            if (!ae) {
                                return
                            }
                            ad = af.jGetPageXY();
                            this.jDel("event:btnclick:btnclickEvent");
                            ae.pushToEvents(af);
                            if (af.timeStamp - ae.timeStamp <= ac.threshold && Math.sqrt(Math.pow(ad.x - ae.x, 2) + Math.pow(ad.y - ae.y, 2)) <= Y) {
                                this.jCallEvent("btnclick", ae)
                            }
                            document.jCallEvent("mouseup", af)
                        } else {
                            if (af.type == "dblclick") {
                                ae = new ab.Event.Custom.btnclick(this, af);
                                this.jCallEvent("btnclick", ae)
                            }
                        }
                    }
                }
            }
        })(U);
        (function(Z) {
            var Y = Z.$;
            Z.Event.Custom.mousedrag = new Z.Class(Z.extend(Z.Event.Custom, {
                type: "mousedrag",
                state: "dragstart",
                dragged: false,
                init: function(ad, ac, ab) {
                    var aa = ac.jGetPageXY();
                    this.x = aa.x;
                    this.y = aa.y;
                    this.clientX = ac.clientX;
                    this.clientY = ac.clientY;
                    this.timeStamp = ac.timeStamp;
                    this.button = ac.getButton();
                    this.target = ad;
                    this.pushToEvents(ac);
                    this.state = ab
                }
            }));
            Z.Event.Custom.mousedrag.handler = {
                add: function() {
                    var ab = Z.Event.Custom.mousedrag.handler.handleMouseMove.jBindAsEvent(this),
                        aa = Z.Event.Custom.mousedrag.handler.handleMouseUp.jBindAsEvent(this);
                    this.jAddEvent("mousedown", Z.Event.Custom.mousedrag.handler.handleMouseDown, 1);
                    this.jAddEvent("mouseup", Z.Event.Custom.mousedrag.handler.handleMouseUp, 1);
                    document.jAddEvent("mousemove", ab, 1);
                    document.jAddEvent("mouseup", aa, 1);
                    this.jStore("event:mousedrag:listeners:document:move", ab);
                    this.jStore("event:mousedrag:listeners:document:end", aa)
                },
                jRemove: function() {
                    this.jRemoveEvent("mousedown", Z.Event.Custom.mousedrag.handler.handleMouseDown);
                    this.jRemoveEvent("mouseup", Z.Event.Custom.mousedrag.handler.handleMouseUp);
                    Y(document).jRemoveEvent("mousemove", this.jFetch("event:mousedrag:listeners:document:move") || Z.$F);
                    Y(document).jRemoveEvent("mouseup", this.jFetch("event:mousedrag:listeners:document:end") || Z.$F);
                    this.jDel("event:mousedrag:listeners:document:move");
                    this.jDel("event:mousedrag:listeners:document:end")
                },
                handleMouseDown: function(ab) {
                    var aa;
                    if (1 != ab.getButton()) {
                        return
                    }
                    aa = new Z.Event.Custom.mousedrag(this, ab, "dragstart");
                    this.jStore("event:mousedrag:dragstart", aa)
                },
                handleMouseUp: function(ab) {
                    var aa;
                    aa = this.jFetch("event:mousedrag:dragstart");
                    if (!aa) {
                        return
                    }
                    ab.stopDefaults();
                    aa = new Z.Event.Custom.mousedrag(this, ab, "dragend");
                    this.jDel("event:mousedrag:dragstart");
                    this.jCallEvent("mousedrag", aa)
                },
                handleMouseMove: function(ab) {
                    var aa;
                    aa = this.jFetch("event:mousedrag:dragstart");
                    if (!aa) {
                        return
                    }
                    ab.stopDefaults();
                    if (!aa.dragged) {
                        aa.dragged = true;
                        this.jCallEvent("mousedrag", aa)
                    }
                    aa = new Z.Event.Custom.mousedrag(this, ab, "dragmove");
                    this.jCallEvent("mousedrag", aa)
                }
            }
        })(U);
        (function(Z) {
            var Y = Z.$;
            Z.Event.Custom.dblbtnclick = new Z.Class(Z.extend(Z.Event.Custom, {
                type: "dblbtnclick",
                timedout: false,
                tm: null,
                init: function(ac, ab) {
                    var aa = ab.jGetPageXY();
                    this.x = aa.x;
                    this.y = aa.y;
                    this.clientX = ab.clientX;
                    this.clientY = ab.clientY;
                    this.timeStamp = ab.timeStamp;
                    this.button = ab.getButton();
                    this.target = ac;
                    this.pushToEvents(ab)
                }
            }));
            Z.Event.Custom.dblbtnclick.handler = {
                options: {
                    threshold: 200
                },
                add: function(aa) {
                    this.jStore("event:dblbtnclick:options", Z.extend(Z.detach(Z.Event.Custom.dblbtnclick.handler.options), aa || {}));
                    this.jAddEvent("btnclick", Z.Event.Custom.dblbtnclick.handler.handle, 1)
                },
                jRemove: function() {
                    this.jRemoveEvent("btnclick", Z.Event.Custom.dblbtnclick.handler.handle)
                },
                handle: function(ac) {
                    var ab, aa;
                    ab = this.jFetch("event:dblbtnclick:event");
                    aa = this.jFetch("event:dblbtnclick:options");
                    if (!ab) {
                        ab = new Z.Event.Custom.dblbtnclick(this, ac);
                        ab.tm = setTimeout(function() {
                            ab.timedout = true;
                            ac.isQueueStopped = Z.$false;
                            this.jCallEvent("btnclick", ac);
                            this.jDel("event:dblbtnclick:event")
                        }.jBind(this), aa.threshold + 10);
                        this.jStore("event:dblbtnclick:event", ab);
                        ac.stopQueue()
                    } else {
                        clearTimeout(ab.tm);
                        this.jDel("event:dblbtnclick:event");
                        if (!ab.timedout) {
                            ab.pushToEvents(ac);
                            ac.stopQueue().stop();
                            this.jCallEvent("dblbtnclick", ab)
                        } else {}
                    }
                }
            }
        })(U);
        (function(ae) {
            var ad = ae.$;

            function Y(af) {
                return af.pointerType ? (("touch" === af.pointerType || af.MSPOINTER_TYPE_TOUCH === af.pointerType) && af.isPrimary) : 1 === af.changedTouches.length && (af.targetTouches.length ? af.targetTouches[0].identifier == af.changedTouches[0].identifier : true)
            }

            function aa(af) {
                if (af.pointerType) {
                    return ("touch" === af.pointerType || af.MSPOINTER_TYPE_TOUCH === af.pointerType) ? af.pointerId : null
                } else {
                    return af.changedTouches[0].identifier
                }
            }

            function ab(af) {
                if (af.pointerType) {
                    return ("touch" === af.pointerType || af.MSPOINTER_TYPE_TOUCH === af.pointerType) ? af : null
                } else {
                    return af.changedTouches[0]
                }
            }
            ae.Event.Custom.tap = new ae.Class(ae.extend(ae.Event.Custom, {
                type: "tap",
                id: null,
                init: function(ag, af) {
                    var ah = ab(af);
                    this.id = ah.pointerId || ah.identifier;
                    this.x = ah.pageX;
                    this.y = ah.pageY;
                    this.pageX = ah.pageX;
                    this.pageY = ah.pageY;
                    this.clientX = ah.clientX;
                    this.clientY = ah.clientY;
                    this.timeStamp = af.timeStamp;
                    this.button = 0;
                    this.target = ag;
                    this.pushToEvents(af)
                }
            }));
            var Z = 10,
                ac = 200;
            ae.Event.Custom.tap.handler = {
                add: function(af) {
                    this.jAddEvent(["touchstart", window.navigator.pointerEnabled ? "pointerdown" : "MSPointerDown"], ae.Event.Custom.tap.handler.onTouchStart, 1);
                    this.jAddEvent(["touchend", window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp"], ae.Event.Custom.tap.handler.onTouchEnd, 1);
                    this.jAddEvent("click", ae.Event.Custom.tap.handler.onClick, 1)
                },
                jRemove: function() {
                    this.jRemoveEvent(["touchstart", window.navigator.pointerEnabled ? "pointerdown" : "MSPointerDown"], ae.Event.Custom.tap.handler.onTouchStart);
                    this.jRemoveEvent(["touchend", window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp"], ae.Event.Custom.tap.handler.onTouchEnd);
                    this.jRemoveEvent("click", ae.Event.Custom.tap.handler.onClick)
                },
                onClick: function(af) {
                    af.stopDefaults()
                },
                onTouchStart: function(af) {
                    if (!Y(af)) {
                        this.jDel("event:tap:event");
                        return
                    }
                    this.jStore("event:tap:event", new ae.Event.Custom.tap(this, af));
                    this.jStore("event:btnclick:ignore", true)
                },
                onTouchEnd: function(ai) {
                    var ag = ae.now(),
                        ah = this.jFetch("event:tap:event"),
                        af = this.jFetch("event:tap:options");
                    if (!ah || !Y(ai)) {
                        return
                    }
                    this.jDel("event:tap:event");
                    if (ah.id == aa(ai) && ai.timeStamp - ah.timeStamp <= ac && Math.sqrt(Math.pow(ab(ai).pageX - ah.x, 2) + Math.pow(ab(ai).pageY - ah.y, 2)) <= Z) {
                        this.jDel("event:btnclick:btnclickEvent");
                        ai.stop();
                        ah.pushToEvents(ai);
                        this.jCallEvent("tap", ah)
                    }
                }
            }
        })(U);
        O.Event.Custom.dbltap = new O.Class(O.extend(O.Event.Custom, {
            type: "dbltap",
            timedout: false,
            tm: null,
            init: function(Z, Y) {
                this.x = Y.x;
                this.y = Y.y;
                this.clientX = Y.clientX;
                this.clientY = Y.clientY;
                this.timeStamp = Y.timeStamp;
                this.button = 0;
                this.target = Z;
                this.pushToEvents(Y)
            }
        }));
        O.Event.Custom.dbltap.handler = {
            options: {
                threshold: 300
            },
            add: function(Y) {
                this.jStore("event:dbltap:options", O.extend(O.detach(O.Event.Custom.dbltap.handler.options), Y || {}));
                this.jAddEvent("tap", O.Event.Custom.dbltap.handler.handle, 1)
            },
            jRemove: function() {
                this.jRemoveEvent("tap", O.Event.Custom.dbltap.handler.handle)
            },
            handle: function(aa) {
                var Z, Y;
                Z = this.jFetch("event:dbltap:event");
                Y = this.jFetch("event:dbltap:options");
                if (!Z) {
                    Z = new O.Event.Custom.dbltap(this, aa);
                    Z.tm = setTimeout(function() {
                        Z.timedout = true;
                        aa.isQueueStopped = O.$false;
                        this.jCallEvent("tap", aa)
                    }.jBind(this), Y.threshold + 10);
                    this.jStore("event:dbltap:event", Z);
                    aa.stopQueue()
                } else {
                    clearTimeout(Z.tm);
                    this.jDel("event:dbltap:event");
                    if (!Z.timedout) {
                        Z.pushToEvents(aa);
                        aa.stopQueue().stop();
                        this.jCallEvent("dbltap", Z)
                    } else {}
                }
            }
        };
        (function(ad) {
            var ac = ad.$;

            function Y(ae) {
                return ae.pointerType ? (("touch" === ae.pointerType || ae.MSPOINTER_TYPE_TOUCH === ae.pointerType) && ae.isPrimary) : 1 === ae.changedTouches.length && (ae.targetTouches.length ? ae.targetTouches[0].identifier == ae.changedTouches[0].identifier : true)
            }

            function aa(ae) {
                if (ae.pointerType) {
                    return ("touch" === ae.pointerType || ae.MSPOINTER_TYPE_TOUCH === ae.pointerType) ? ae.pointerId : null
                } else {
                    return ae.changedTouches[0].identifier
                }
            }

            function ab(ae) {
                if (ae.pointerType) {
                    return ("touch" === ae.pointerType || ae.MSPOINTER_TYPE_TOUCH === ae.pointerType) ? ae : null
                } else {
                    return ae.changedTouches[0]
                }
            }
            var Z = 10;
            ad.Event.Custom.touchdrag = new ad.Class(ad.extend(ad.Event.Custom, {
                type: "touchdrag",
                state: "dragstart",
                id: null,
                dragged: false,
                init: function(ag, af, ae) {
                    var ah = ab(af);
                    this.id = ah.pointerId || ah.identifier;
                    this.clientX = ah.clientX;
                    this.clientY = ah.clientY;
                    this.pageX = ah.pageX;
                    this.pageY = ah.pageY;
                    this.x = ah.pageX;
                    this.y = ah.pageY;
                    this.timeStamp = af.timeStamp;
                    this.button = 0;
                    this.target = ag;
                    this.pushToEvents(af);
                    this.state = ae
                }
            }));
            ad.Event.Custom.touchdrag.handler = {
                add: function() {
                    var af = ad.Event.Custom.touchdrag.handler.onTouchMove.jBind(this),
                        ae = ad.Event.Custom.touchdrag.handler.onTouchEnd.jBind(this);
                    this.jAddEvent(["touchstart", window.navigator.pointerEnabled ? "pointerdown" : "MSPointerDown"], ad.Event.Custom.touchdrag.handler.onTouchStart, 1);
                    this.jAddEvent(["touchend", window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp"], ad.Event.Custom.touchdrag.handler.onTouchEnd, 1);
                    this.jAddEvent(["touchmove", window.navigator.pointerEnabled ? "pointermove" : "MSPointerMove"], ad.Event.Custom.touchdrag.handler.onTouchMove, 1);
                    this.jStore("event:touchdrag:listeners:document:move", af);
                    this.jStore("event:touchdrag:listeners:document:end", ae);
                    ac(document).jAddEvent(window.navigator.pointerEnabled ? "pointermove" : "MSPointerMove", af, 1);
                    ac(document).jAddEvent(window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp", ae, 1)
                },
                jRemove: function() {
                    this.jRemoveEvent(["touchstart", window.navigator.pointerEnabled ? "pointerdown" : "MSPointerDown"], ad.Event.Custom.touchdrag.handler.onTouchStart);
                    this.jRemoveEvent(["touchend", window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp"], ad.Event.Custom.touchdrag.handler.onTouchEnd);
                    this.jRemoveEvent(["touchmove", window.navigator.pointerEnabled ? "pointermove" : "MSPointerMove"], ad.Event.Custom.touchdrag.handler.onTouchMove);
                    ac(document).jRemoveEvent(window.navigator.pointerEnabled ? "pointermove" : "MSPointerMove", this.jFetch("event:touchdrag:listeners:document:move") || ad.$F, 1);
                    ac(document).jRemoveEvent(window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp", this.jFetch("event:touchdrag:listeners:document:end") || ad.$F, 1);
                    this.jDel("event:touchdrag:listeners:document:move");
                    this.jDel("event:touchdrag:listeners:document:end")
                },
                onTouchStart: function(af) {
                    var ae;
                    if (!Y(af)) {
                        return
                    }
                    ae = new ad.Event.Custom.touchdrag(this, af, "dragstart");
                    this.jStore("event:touchdrag:dragstart", ae)
                },
                onTouchEnd: function(af) {
                    var ae;
                    ae = this.jFetch("event:touchdrag:dragstart");
                    if (!ae || !ae.dragged || ae.id != aa(af)) {
                        return
                    }
                    ae = new ad.Event.Custom.touchdrag(this, af, "dragend");
                    this.jDel("event:touchdrag:dragstart");
                    this.jCallEvent("touchdrag", ae)
                },
                onTouchMove: function(af) {
                    var ae;
                    ae = this.jFetch("event:touchdrag:dragstart");
                    if (!ae || !Y(af)) {
                        return
                    }
                    if (ae.id != aa(af)) {
                        this.jDel("event:touchdrag:dragstart");
                        return
                    }
                    if (!ae.dragged && Math.sqrt(Math.pow(ab(af).pageX - ae.x, 2) + Math.pow(ab(af).pageY - ae.y, 2)) > Z) {
                        ae.dragged = true;
                        this.jCallEvent("touchdrag", ae)
                    }
                    if (!ae.dragged) {
                        return
                    }
                    ae = new ad.Event.Custom.touchdrag(this, af, "dragmove");
                    this.jCallEvent("touchdrag", ae)
                }
            }
        })(U);
        O.Event.Custom.touchpinch = new O.Class(O.extend(O.Event.Custom, {
            type: "touchpinch",
            scale: 1,
            previousScale: 1,
            curScale: 1,
            state: "pinchstart",
            init: function(Z, Y) {
                this.timeStamp = Y.timeStamp;
                this.button = 0;
                this.target = Z;
                this.x = Y.touches[0].clientX + (Y.touches[1].clientX - Y.touches[0].clientX) / 2;
                this.y = Y.touches[0].clientY + (Y.touches[1].clientY - Y.touches[0].clientY) / 2;
                this._initialDistance = Math.sqrt(Math.pow(Y.touches[0].clientX - Y.touches[1].clientX, 2) + Math.pow(Y.touches[0].clientY - Y.touches[1].clientY, 2));
                this.pushToEvents(Y)
            },
            update: function(Y) {
                var Z;
                this.state = "pinchupdate";
                if (Y.changedTouches[0].identifier != this.events[0].touches[0].identifier || Y.changedTouches[1].identifier != this.events[0].touches[1].identifier) {
                    return
                }
                Z = Math.sqrt(Math.pow(Y.changedTouches[0].clientX - Y.changedTouches[1].clientX, 2) + Math.pow(Y.changedTouches[0].clientY - Y.changedTouches[1].clientY, 2));
                this.previousScale = this.scale;
                this.scale = Z / this._initialDistance;
                this.curScale = this.scale / this.previousScale;
                this.x = Y.changedTouches[0].clientX + (Y.changedTouches[1].clientX - Y.changedTouches[0].clientX) / 2;
                this.y = Y.changedTouches[0].clientY + (Y.changedTouches[1].clientY - Y.changedTouches[0].clientY) / 2;
                this.pushToEvents(Y)
            }
        }));
        O.Event.Custom.touchpinch.handler = {
            add: function() {
                this.jAddEvent("touchstart", O.Event.Custom.touchpinch.handler.handleTouchStart, 1);
                this.jAddEvent("touchend", O.Event.Custom.touchpinch.handler.handleTouchEnd, 1);
                this.jAddEvent("touchmove", O.Event.Custom.touchpinch.handler.handleTouchMove, 1)
            },
            jRemove: function() {
                this.jRemoveEvent("touchstart", O.Event.Custom.touchpinch.handler.handleTouchStart);
                this.jRemoveEvent("touchend", O.Event.Custom.touchpinch.handler.handleTouchEnd);
                this.jRemoveEvent("touchmove", O.Event.Custom.touchpinch.handler.handleTouchMove)
            },
            handleTouchStart: function(Z) {
                var Y;
                if (Z.touches.length != 2) {
                    return
                }
                Z.stopDefaults();
                Y = new O.Event.Custom.touchpinch(this, Z);
                this.jStore("event:touchpinch:event", Y)
            },
            handleTouchEnd: function(Z) {
                var Y;
                Y = this.jFetch("event:touchpinch:event");
                if (!Y) {
                    return
                }
                Z.stopDefaults();
                this.jDel("event:touchpinch:event")
            },
            handleTouchMove: function(Z) {
                var Y;
                Y = this.jFetch("event:touchpinch:event");
                if (!Y) {
                    return
                }
                Z.stopDefaults();
                Y.update(Z);
                this.jCallEvent("touchpinch", Y)
            }
        };
        (function(ad) {
            var ab = ad.$;
            ad.Event.Custom.mousescroll = new ad.Class(ad.extend(ad.Event.Custom, {
                type: "mousescroll",
                init: function(aj, ai, al, af, ae, ak, ag) {
                    var ah = ai.jGetPageXY();
                    this.x = ah.x;
                    this.y = ah.y;
                    this.timeStamp = ai.timeStamp;
                    this.target = aj;
                    this.delta = al || 0;
                    this.deltaX = af || 0;
                    this.deltaY = ae || 0;
                    this.deltaZ = ak || 0;
                    this.deltaFactor = ag || 0;
                    this.deltaMode = ai.deltaMode || 0;
                    this.isMouse = false;
                    this.pushToEvents(ai)
                }
            }));
            var ac, Z;

            function Y() {
                ac = null
            }

            function aa(ae, af) {
                return (ae > 50) || (1 === af && !("win" == ad.browser.platform && ae < 1)) || (0 === ae % 12) || (0 == ae % 4.000244140625)
            }
            ad.Event.Custom.mousescroll.handler = {
                eventType: "onwheel" in document || ad.browser.ieMode > 8 ? "wheel" : "mousewheel",
                add: function() {
                    this.jAddEvent(ad.Event.Custom.mousescroll.handler.eventType, ad.Event.Custom.mousescroll.handler.handle, 1)
                },
                jRemove: function() {
                    this.jRemoveEvent(ad.Event.Custom.mousescroll.handler.eventType, ad.Event.Custom.mousescroll.handler.handle, 1)
                },
                handle: function(aj) {
                    var ak = 0,
                        ah = 0,
                        af = 0,
                        ae = 0,
                        ai, ag;
                    if (aj.detail) {
                        af = aj.detail * -1
                    }
                    if (aj.wheelDelta !== undefined) {
                        af = aj.wheelDelta
                    }
                    if (aj.wheelDeltaY !== undefined) {
                        af = aj.wheelDeltaY
                    }
                    if (aj.wheelDeltaX !== undefined) {
                        ah = aj.wheelDeltaX * -1
                    }
                    if (aj.deltaY) {
                        af = -1 * aj.deltaY
                    }
                    if (aj.deltaX) {
                        ah = aj.deltaX
                    }
                    if (0 === af && 0 === ah) {
                        return
                    }
                    ak = 0 === af ? ah : af;
                    ae = Math.max(Math.abs(af), Math.abs(ah));
                    if (!ac || ae < ac) {
                        ac = ae
                    }
                    ai = ak > 0 ? "floor" : "ceil";
                    ak = Math[ai](ak / ac);
                    ah = Math[ai](ah / ac);
                    af = Math[ai](af / ac);
                    if (Z) {
                        clearTimeout(Z)
                    }
                    Z = setTimeout(Y, 200);
                    ag = new ad.Event.Custom.mousescroll(this, aj, ak, ah, af, 0, ac);
                    ag.isMouse = aa(ac, aj.deltaMode || 0);
                    this.jCallEvent("mousescroll", ag)
                }
            }
        })(U);
        O.win = O.$(window);
        O.doc = O.$(document);
        return U
    })();
    (function(K) {
        if (!K) {
            throw "MagicJS not found"
        }
        var J = K.$;
        var I = window.URL || window.webkitURL || null;
        y.ImageLoader = new K.Class({
            img: null,
            ready: false,
            options: {
                onprogress: K.$F,
                onload: K.$F,
                onabort: K.$F,
                onerror: K.$F,
                oncomplete: K.$F,
                onxhrerror: K.$F,
                xhr: false,
                progressiveLoad: true
            },
            size: null,
            _timer: null,
            loadedBytes: 0,
            _handlers: {
                onprogress: function(L) {
                    if (L.target && (200 === L.target.status || 304 === L.target.status) && L.lengthComputable) {
                        this.options.onprogress.jBind(null, (L.loaded - (this.options.progressiveLoad ? this.loadedBytes : 0)) / L.total).jDelay(1);
                        this.loadedBytes = L.loaded
                    }
                },
                onload: function(L) {
                    if (L) {
                        J(L).stop()
                    }
                    this._unbind();
                    if (this.ready) {
                        return
                    }
                    this.ready = true;
                    this._cleanup();
                    !this.options.xhr && this.options.onprogress.jBind(null, 1).jDelay(1);
                    this.options.onload.jBind(null, this).jDelay(1);
                    this.options.oncomplete.jBind(null, this).jDelay(1)
                },
                onabort: function(L) {
                    if (L) {
                        J(L).stop()
                    }
                    this._unbind();
                    this.ready = false;
                    this._cleanup();
                    this.options.onabort.jBind(null, this).jDelay(1);
                    this.options.oncomplete.jBind(null, this).jDelay(1)
                },
                onerror: function(L) {
                    if (L) {
                        J(L).stop()
                    }
                    this._unbind();
                    this.ready = false;
                    this._cleanup();
                    this.options.onerror.jBind(null, this).jDelay(1);
                    this.options.oncomplete.jBind(null, this).jDelay(1)
                }
            },
            _bind: function() {
                J(["load", "abort", "error"]).jEach(function(L) {
                    this.img.jAddEvent(L, this._handlers["on" + L].jBindAsEvent(this).jDefer(1))
                }, this)
            },
            _unbind: function() {
                if (this._timer) {
                    try {
                        clearTimeout(this._timer)
                    } catch (L) {}
                    this._timer = null
                }
                J(["load", "abort", "error"]).jEach(function(M) {
                    this.img.jRemoveEvent(M)
                }, this)
            },
            _cleanup: function() {
                this.jGetSize();
                if (this.img.jFetch("new")) {
                    var L = this.img.parentNode;
                    this.img.jRemove().jDel("new").jSetCss({
                        position: "static",
                        top: "auto"
                    });
                    L.kill()
                }
            },
            loadBlob: function(M) {
                var N = new XMLHttpRequest(),
                    L;
                J(["abort", "progress"]).jEach(function(O) {
                    N["on" + O] = J(function(P) {
                        this._handlers["on" + O].call(this, P)
                    }).jBind(this)
                }, this);
                N.onerror = J(function() {
                    this.options.onxhrerror.jBind(null, this).jDelay(1);
                    this.options.xhr = false;
                    this._bind();
                    this.img.src = M
                }).jBind(this);
                N.onload = J(function() {
                    if (200 !== N.status && 304 !== N.status) {
                        this._handlers.onerror.call(this);
                        return
                    }
                    L = N.response;
                    this._bind();
                    if (I && !K.browser.trident && !("ios" === K.browser.platform && K.browser.version < 537)) {
                        this.img.setAttribute("src", I.createObjectURL(L))
                    } else {
                        this.img.src = M
                    }
                }).jBind(this);
                N.open("GET", M);
                N.responseType = "blob";
                N.send()
            },
            init: function(M, L) {
                this.options = K.extend(this.options, L);
                this.img = J(M) || K.$new("img", {}, {
                    "max-width": "none",
                    "max-height": "none"
                }).jAppendTo(K.$new("div").jAddClass("magic-temporary-img").jSetCss({
                    position: "absolute",
                    top: -10000,
                    width: 10,
                    height: 10,
                    overflow: "hidden"
                }).jAppendTo(document.body)).jStore("new", true);
                if (K.browser.features.xhr2 && this.options.xhr && "string" == K.jTypeOf(M)) {
                    this.loadBlob(M);
                    return
                }
                var N = function() {
                    if (this.isReady()) {
                        this._handlers.onload.call(this)
                    } else {
                        this._handlers.onerror.call(this)
                    }
                    N = null
                }.jBind(this);
                this._bind();
                if ("string" == K.jTypeOf(M)) {
                    this.img.src = M
                } else {
                    if (K.browser.trident && 5 == K.browser.version && K.browser.ieMode < 9) {
                        this.img.onreadystatechange = function() {
                            if (/loaded|complete/.test(this.img.readyState)) {
                                this.img.onreadystatechange = null;
                                N && N()
                            }
                        }.jBind(this)
                    }
                    this.img.src = M.getAttribute("src")
                }
                this.img && this.img.complete && N && (this._timer = N.jDelay(100))
            },
            destroy: function() {
                this._unbind();
                this._cleanup();
                this.ready = false;
                return this
            },
            isReady: function() {
                var L = this.img;
                return (L.naturalWidth) ? (L.naturalWidth > 0) : (L.readyState) ? ("complete" == L.readyState) : L.width > 0
            },
            jGetSize: function() {
                return this.size || (this.size = {
                    width: this.img.naturalWidth || this.img.width,
                    height: this.img.naturalHeight || this.img.height
                })
            }
        })
    })(y);
    (function(J) {
        if (!J) {
            throw "MagicJS not found"
        }
        if (J.FX) {
            return
        }
        var I = J.$;
        J.FX = new J.Class({
            init: function(L, K) {
                var M;
                this.el = J.$(L);
                this.options = J.extend(this.options, K);
                this.timer = false;
                this.easeFn = this.cubicBezierAtTime;
                M = J.FX.Transition[this.options.transition] || this.options.transition;
                if ("function" === J.jTypeOf(M)) {
                    this.easeFn = M
                } else {
                    this.cubicBezier = this.parseCubicBezier(M) || this.parseCubicBezier("ease")
                }
                if ("string" == J.jTypeOf(this.options.cycles)) {
                    this.options.cycles = "infinite" === this.options.cycles ? Infinity : parseInt(this.options.cycles) || 1
                }
            },
            options: {
                fps: 60,
                duration: 600,
                transition: "ease",
                cycles: 1,
                direction: "normal",
                onStart: J.$F,
                onComplete: J.$F,
                onBeforeRender: J.$F,
                onAfterRender: J.$F,
                forceAnimation: false,
                roundCss: false
            },
            styles: null,
            cubicBezier: null,
            easeFn: null,
            setTransition: function(K) {
                this.options.transition = K;
                K = J.FX.Transition[this.options.transition] || this.options.transition;
                if ("function" === J.jTypeOf(K)) {
                    this.easeFn = K
                } else {
                    this.easeFn = this.cubicBezierAtTime;
                    this.cubicBezier = this.parseCubicBezier(K) || this.parseCubicBezier("ease")
                }
            },
            start: function(M) {
                var K = /\%$/,
                    L;
                this.styles = M || {};
                this.cycle = 0;
                this.state = 0;
                this.curFrame = 0;
                this.pStyles = {};
                this.alternate = "alternate" === this.options.direction || "alternate-reverse" === this.options.direction;
                this.continuous = "continuous" === this.options.direction || "continuous-reverse" === this.options.direction;
                for (L in this.styles) {
                    K.test(this.styles[L][0]) && (this.pStyles[L] = true);
                    if ("reverse" === this.options.direction || "alternate-reverse" === this.options.direction || "continuous-reverse" === this.options.direction) {
                        this.styles[L].reverse()
                    }
                }
                this.startTime = J.now();
                this.finishTime = this.startTime + this.options.duration;
                this.options.onStart.call();
                if (0 === this.options.duration) {
                    this.render(1);
                    this.options.onComplete.call()
                } else {
                    this.loopBind = this.loop.jBind(this);
                    if (!this.options.forceAnimation && J.browser.features.requestAnimationFrame) {
                        this.timer = J.browser.requestAnimationFrame.call(window, this.loopBind)
                    } else {
                        this.timer = this.loopBind.interval(Math.round(1000 / this.options.fps))
                    }
                }
                return this
            },
            stopAnimation: function() {
                if (this.timer) {
                    if (!this.options.forceAnimation && J.browser.features.requestAnimationFrame && J.browser.cancelAnimationFrame) {
                        J.browser.cancelAnimationFrame.call(window, this.timer)
                    } else {
                        clearInterval(this.timer)
                    }
                    this.timer = false
                }
            },
            stop: function(K) {
                K = J.defined(K) ? K : false;
                this.stopAnimation();
                if (K) {
                    this.render(1);
                    this.options.onComplete.jDelay(10)
                }
                return this
            },
            calc: function(M, L, K) {
                M = parseFloat(M);
                L = parseFloat(L);
                return (L - M) * K + M
            },
            loop: function() {
                var L = J.now(),
                    K = (L - this.startTime) / this.options.duration,
                    M = Math.floor(K);
                if (L >= this.finishTime && M >= this.options.cycles) {
                    this.stopAnimation();
                    this.render(1);
                    this.options.onComplete.jDelay(10);
                    return this
                }
                if (this.alternate && this.cycle < M) {
                    for (var N in this.styles) {
                        this.styles[N].reverse()
                    }
                }
                this.cycle = M;
                if (!this.options.forceAnimation && J.browser.features.requestAnimationFrame) {
                    this.timer = J.browser.requestAnimationFrame.call(window, this.loopBind)
                }
                this.render((this.continuous ? M : 0) + this.easeFn(K % 1))
            },
            render: function(K) {
                var L = {},
                    N = K;
                for (var M in this.styles) {
                    if ("opacity" === M) {
                        L[M] = Math.round(this.calc(this.styles[M][0], this.styles[M][1], K) * 100) / 100
                    } else {
                        L[M] = this.calc(this.styles[M][0], this.styles[M][1], K);
                        this.pStyles[M] && (L[M] += "%")
                    }
                }
                this.options.onBeforeRender(L, this.el);
                this.set(L);
                this.options.onAfterRender(L, this.el)
            },
            set: function(K) {
                return this.el.jSetCss(K)
            },
            parseCubicBezier: function(K) {
                var L, M = null;
                if ("string" !== J.jTypeOf(K)) {
                    return null
                }
                switch (K) {
                    case "linear":
                        M = I([0, 0, 1, 1]);
                        break;
                    case "ease":
                        M = I([0.25, 0.1, 0.25, 1]);
                        break;
                    case "ease-in":
                        M = I([0.42, 0, 1, 1]);
                        break;
                    case "ease-out":
                        M = I([0, 0, 0.58, 1]);
                        break;
                    case "ease-in-out":
                        M = I([0.42, 0, 0.58, 1]);
                        break;
                    case "easeInSine":
                        M = I([0.47, 0, 0.745, 0.715]);
                        break;
                    case "easeOutSine":
                        M = I([0.39, 0.575, 0.565, 1]);
                        break;
                    case "easeInOutSine":
                        M = I([0.445, 0.05, 0.55, 0.95]);
                        break;
                    case "easeInQuad":
                        M = I([0.55, 0.085, 0.68, 0.53]);
                        break;
                    case "easeOutQuad":
                        M = I([0.25, 0.46, 0.45, 0.94]);
                        break;
                    case "easeInOutQuad":
                        M = I([0.455, 0.03, 0.515, 0.955]);
                        break;
                    case "easeInCubic":
                        M = I([0.55, 0.055, 0.675, 0.19]);
                        break;
                    case "easeOutCubic":
                        M = I([0.215, 0.61, 0.355, 1]);
                        break;
                    case "easeInOutCubic":
                        M = I([0.645, 0.045, 0.355, 1]);
                        break;
                    case "easeInQuart":
                        M = I([0.895, 0.03, 0.685, 0.22]);
                        break;
                    case "easeOutQuart":
                        M = I([0.165, 0.84, 0.44, 1]);
                        break;
                    case "easeInOutQuart":
                        M = I([0.77, 0, 0.175, 1]);
                        break;
                    case "easeInQuint":
                        M = I([0.755, 0.05, 0.855, 0.06]);
                        break;
                    case "easeOutQuint":
                        M = I([0.23, 1, 0.32, 1]);
                        break;
                    case "easeInOutQuint":
                        M = I([0.86, 0, 0.07, 1]);
                        break;
                    case "easeInExpo":
                        M = I([0.95, 0.05, 0.795, 0.035]);
                        break;
                    case "easeOutExpo":
                        M = I([0.19, 1, 0.22, 1]);
                        break;
                    case "easeInOutExpo":
                        M = I([1, 0, 0, 1]);
                        break;
                    case "easeInCirc":
                        M = I([0.6, 0.04, 0.98, 0.335]);
                        break;
                    case "easeOutCirc":
                        M = I([0.075, 0.82, 0.165, 1]);
                        break;
                    case "easeInOutCirc":
                        M = I([0.785, 0.135, 0.15, 0.86]);
                        break;
                    case "easeInBack":
                        M = I([0.6, -0.28, 0.735, 0.045]);
                        break;
                    case "easeOutBack":
                        M = I([0.175, 0.885, 0.32, 1.275]);
                        break;
                    case "easeInOutBack":
                        M = I([0.68, -0.55, 0.265, 1.55]);
                        break;
                    default:
                        K = K.replace(/\s/g, "");
                        if (K.match(/^cubic-bezier\((?:-?[0-9\.]{0,}[0-9]{1,},){3}(?:-?[0-9\.]{0,}[0-9]{1,})\)$/)) {
                            M = K.replace(/^cubic-bezier\s*\(|\)$/g, "").split(",");
                            for (L = M.length - 1; L >= 0; L--) {
                                M[L] = parseFloat(M[L])
                            }
                        }
                }
                return I(M)
            },
            cubicBezierAtTime: function(W) {
                var K = 0,
                    V = 0,
                    S = 0,
                    X = 0,
                    U = 0,
                    Q = 0,
                    R = this.options.duration;

                function P(Y) {
                    return ((K * Y + V) * Y + S) * Y
                }

                function O(Y) {
                    return ((X * Y + U) * Y + Q) * Y
                }

                function M(Y) {
                    return (3 * K * Y + 2 * V) * Y + S
                }

                function T(Y) {
                    return 1 / (200 * Y)
                }

                function L(Y, Z) {
                    return O(N(Y, Z))
                }

                function N(af, ag) {
                    var ae, ad, ac, Z, Y, ab;

                    function aa(ah) {
                        if (ah >= 0) {
                            return ah
                        } else {
                            return 0 - ah
                        }
                    }
                    for (ac = af, ab = 0; ab < 8; ab++) {
                        Z = P(ac) - af;
                        if (aa(Z) < ag) {
                            return ac
                        }
                        Y = M(ac);
                        if (aa(Y) < 0.000001) {
                            break
                        }
                        ac = ac - Z / Y
                    }
                    ae = 0;
                    ad = 1;
                    ac = af;
                    if (ac < ae) {
                        return ae
                    }
                    if (ac > ad) {
                        return ad
                    }
                    while (ae < ad) {
                        Z = P(ac);
                        if (aa(Z - af) < ag) {
                            return ac
                        }
                        if (af > Z) {
                            ae = ac
                        } else {
                            ad = ac
                        }
                        ac = (ad - ae) * 0.5 + ae
                    }
                    return ac
                }
                S = 3 * this.cubicBezier[0];
                V = 3 * (this.cubicBezier[2] - this.cubicBezier[0]) - S;
                K = 1 - S - V;
                Q = 3 * this.cubicBezier[1];
                U = 3 * (this.cubicBezier[3] - this.cubicBezier[1]) - Q;
                X = 1 - Q - U;
                return L(W, T(R))
            }
        });
        J.FX.Transition = {
            linear: "linear",
            sineIn: "easeInSine",
            sineOut: "easeOutSine",
            expoIn: "easeInExpo",
            expoOut: "easeOutExpo",
            quadIn: "easeInQuad",
            quadOut: "easeOutQuad",
            cubicIn: "easeInCubic",
            cubicOut: "easeOutCubic",
            backIn: "easeInBack",
            backOut: "easeOutBack",
            elasticIn: function(L, K) {
                K = K || [];
                return Math.pow(2, 10 * --L) * Math.cos(20 * L * Math.PI * (K[0] || 1) / 3)
            },
            elasticOut: function(L, K) {
                return 1 - J.FX.Transition.elasticIn(1 - L, K)
            },
            bounceIn: function(M) {
                for (var L = 0, K = 1; 1; L += K, K /= 2) {
                    if (M >= (7 - 4 * L) / 11) {
                        return K * K - Math.pow((11 - 6 * L - 11 * M) / 4, 2)
                    }
                }
            },
            bounceOut: function(K) {
                return 1 - J.FX.Transition.bounceIn(1 - K)
            },
            none: function(K) {
                return 0
            }
        }
    })(y);
    (function(J) {
        if (!J) {
            throw "MagicJS not found"
        }
        if (J.PFX) {
            return
        }
        var I = J.$;
        J.PFX = new J.Class(J.FX, {
            init: function(K, L) {
                this.el_arr = K;
                this.options = J.extend(this.options, L);
                this.timer = false;
                this.$parent.init()
            },
            start: function(O) {
                var K = /\%$/,
                    N, M, L = O.length;
                this.styles_arr = O;
                this.pStyles_arr = new Array(L);
                for (M = 0; M < L; M++) {
                    this.pStyles_arr[M] = {};
                    for (N in O[M]) {
                        K.test(O[M][N][0]) && (this.pStyles_arr[M][N] = true);
                        if ("reverse" === this.options.direction || "alternate-reverse" === this.options.direction || "continuous-reverse" === this.options.direction) {
                            this.styles_arr[M][N].reverse()
                        }
                    }
                }
                this.$parent.start({});
                return this
            },
            render: function(K) {
                for (var L = 0; L < this.el_arr.length; L++) {
                    this.el = J.$(this.el_arr[L]);
                    this.styles = this.styles_arr[L];
                    this.pStyles = this.pStyles_arr[L];
                    this.$parent.render(K)
                }
            }
        })
    })(y);
    (function(J) {
        if (!J) {
            throw "MagicJS not found";
            return
        }
        if (J.Tooltip) {
            return
        }
        var I = J.$;
        J.Tooltip = function(L, M) {
            var K = this.tooltip = J.$new("div", null, {
                position: "absolute",
                "z-index": 999
            }).jAddClass("MagicToolboxTooltip");
            J.$(L).jAddEvent("mouseover", function() {
                K.jAppendTo(document.body)
            });
            J.$(L).jAddEvent("mouseout", function() {
                K.jRemove()
            });
            J.$(L).jAddEvent("mousemove", function(R) {
                var T = 20,
                    Q = J.$(R).jGetPageXY(),
                    P = K.jGetSize(),
                    O = J.$(window).jGetSize(),
                    S = J.$(window).jGetScroll();

                function N(W, U, V) {
                    return (V < (W - U) / 2) ? V : ((V > (W + U) / 2) ? (V - U) : (W - U) / 2)
                }
                K.jSetCss({
                    left: S.x + N(O.width, P.width + 2 * T, Q.x - S.x) + T,
                    top: S.y + N(O.height, P.height + 2 * T, Q.y - S.y) + T
                })
            });
            this.text(M)
        };
        J.Tooltip.prototype.text = function(K) {
            this.tooltip.firstChild && this.tooltip.removeChild(this.tooltip.firstChild);
            this.tooltip.append(document.createTextNode(K))
        }
    })(y);
    (function(J) {
        if (!J) {
            throw "MagicJS not found";
            return
        }
        if (J.MessageBox) {
            return
        }
        var I = J.$;
        J.Message = function(N, M, L, K) {
            this.hideTimer = null;
            this.messageBox = J.$new("span", null, {
                position: "absolute",
                "z-index": 999,
                visibility: "hidden",
                opacity: 0.8
            }).jAddClass(K || "").jAppendTo(L || document.body);
            this.setMessage(N);
            this.show(M)
        };
        J.Message.prototype.show = function(K) {
            this.messageBox.show();
            this.hideTimer = this.hide.jBind(this).jDelay(J.ifndef(K, 5000))
        };
        J.Message.prototype.hide = function(K) {
            clearTimeout(this.hideTimer);
            this.hideTimer = null;
            if (this.messageBox && !this.hideFX) {
                this.hideFX = new y.FX(this.messageBox, {
                    duration: J.ifndef(K, 500),
                    onComplete: function() {
                        this.messageBox.kill();
                        delete this.messageBox;
                        this.hideFX = null
                    }.jBind(this)
                }).start({
                    opacity: [this.messageBox.jGetCss("opacity"), 0]
                })
            }
        };
        J.Message.prototype.setMessage = function(K) {
            this.messageBox.firstChild && this.tooltip.removeChild(this.messageBox.firstChild);
            this.messageBox.append(document.createTextNode(K))
        }
    })(y);
    (function(J) {
        if (!J) {
            throw "MagicJS not found"
        }
        if (J.Options) {
            return
        }
        var M = J.$,
            I = null,
            Q = {
                "boolean": 1,
                array: 2,
                number: 3,
                "function": 4,
                string: 100
            },
            K = {
                "boolean": function(T, S, R) {
                    if ("boolean" != J.jTypeOf(S)) {
                        if (R || "string" != J.jTypeOf(S)) {
                            return false
                        } else {
                            if (!/^(true|false)$/.test(S)) {
                                return false
                            } else {
                                S = S.jToBool()
                            }
                        }
                    }
                    if (T.hasOwnProperty("enum") && !M(T["enum"]).contains(S)) {
                        return false
                    }
                    I = S;
                    return true
                },
                string: function(T, S, R) {
                    if ("string" !== J.jTypeOf(S)) {
                        return false
                    } else {
                        if (T.hasOwnProperty("enum") && !M(T["enum"]).contains(S)) {
                            return false
                        } else {
                            I = "" + S;
                            return true
                        }
                    }
                },
                number: function(U, T, S) {
                    var R = false,
                        W = /%$/,
                        V = (J.jTypeOf(T) == "string" && W.test(T));
                    if (S && !"number" == typeof T) {
                        return false
                    }
                    T = parseFloat(T);
                    if (isNaN(T)) {
                        return false
                    }
                    if (isNaN(U.minimum)) {
                        U.minimum = Number.NEGATIVE_INFINITY
                    }
                    if (isNaN(U.maximum)) {
                        U.maximum = Number.POSITIVE_INFINITY
                    }
                    if (U.hasOwnProperty("enum") && !M(U["enum"]).contains(T)) {
                        return false
                    }
                    if (U.minimum > T || T > U.maximum) {
                        return false
                    }
                    I = V ? (T + "%") : T;
                    return true
                },
                array: function(U, S, R) {
                    if ("string" === J.jTypeOf(S)) {
                        try {
                            S = window.JSON.parse(S)
                        } catch (T) {
                            return false
                        }
                    }
                    if (J.jTypeOf(S) === "array") {
                        I = S;
                        return true
                    } else {
                        return false
                    }
                },
                "function": function(T, S, R) {
                    if (J.jTypeOf(S) === "function") {
                        I = S;
                        return true
                    } else {
                        return false
                    }
                }
            },
            L = function(W, V, S) {
                var U;
                U = W.hasOwnProperty("oneOf") ? W.oneOf : [W];
                if ("array" != J.jTypeOf(U)) {
                    return false
                }
                for (var T = 0, R = U.length - 1; T <= R; T++) {
                    if (K[U[T].type](U[T], V, S)) {
                        return true
                    }
                }
                return false
            },
            O = function(W) {
                var U, T, V, R, S;
                if (W.hasOwnProperty("oneOf")) {
                    R = W.oneOf.length;
                    for (U = 0; U < R; U++) {
                        for (T = U + 1; T < R; T++) {
                            if (Q[W.oneOf[U]["type"]] > Q[W.oneOf[T].type]) {
                                S = W.oneOf[U];
                                W.oneOf[U] = W.oneOf[T];
                                W.oneOf[T] = S
                            }
                        }
                    }
                }
                return W
            },
            P = function(U) {
                var T;
                T = U.hasOwnProperty("oneOf") ? U.oneOf : [U];
                if ("array" != J.jTypeOf(T)) {
                    return false
                }
                for (var S = T.length - 1; S >= 0; S--) {
                    if (!T[S].type || !Q.hasOwnProperty(T[S].type)) {
                        return false
                    }
                    if (J.defined(T[S]["enum"])) {
                        if ("array" !== J.jTypeOf(T[S]["enum"])) {
                            return false
                        }
                        for (var R = T[S]["enum"].length - 1; R >= 0; R--) {
                            if (!K[T[S].type]({
                                    type: T[S].type
                                }, T[S]["enum"][R], true)) {
                                return false
                            }
                        }
                    }
                }
                if (U.hasOwnProperty("default") && !L(U, U["default"], true)) {
                    return false
                }
                return true
            },
            N = function(R) {
                this.schema = {};
                this.options = {};
                this.parseSchema(R)
            };
        J.extend(N.prototype, {
            parseSchema: function(T) {
                var S, R, U;
                for (S in T) {
                    if (!T.hasOwnProperty(S)) {
                        continue
                    }
                    R = (S + "").jTrim().jCamelize();
                    if (!this.schema.hasOwnProperty(R)) {
                        this.schema[R] = O(T[S]);
                        if (!P(this.schema[R])) {
                            throw "Incorrect definition of the '" + S + "' parameter in " + T
                        }
                        this.options[R] = undefined
                    }
                }
            },
            set: function(S, R) {
                S = (S + "").jTrim().jCamelize();
                if (J.jTypeOf(R) == "string") {
                    R = R.jTrim()
                }
                if (this.schema.hasOwnProperty(S)) {
                    I = R;
                    if (L(this.schema[S], R)) {
                        this.options[S] = I
                    }
                    I = null
                }
            },
            get: function(R) {
                R = (R + "").jTrim().jCamelize();
                if (this.schema.hasOwnProperty(R)) {
                    return J.defined(this.options[R]) ? this.options[R] : this.schema[R]["default"]
                }
            },
            fromJSON: function(S) {
                for (var R in S) {
                    this.set(R, S[R])
                }
            },
            getJSON: function() {
                var S = J.extend({}, this.options);
                for (var R in S) {
                    if (undefined === S[R] && undefined !== this.schema[R]["default"]) {
                        S[R] = this.schema[R]["default"]
                    }
                }
                return S
            },
            fromString: function(R) {
                M(R.split(";")).jEach(M(function(S) {
                    S = S.split(":");
                    this.set(S.shift().jTrim(), S.join(":"))
                }).jBind(this))
            },
            exists: function(R) {
                R = (R + "").jTrim().jCamelize();
                return this.schema.hasOwnProperty(R)
            },
            isset: function(R) {
                R = (R + "").jTrim().jCamelize();
                return this.exists(R) && J.defined(this.options[R])
            },
            jRemove: function(R) {
                R = (R + "").jTrim().jCamelize();
                if (this.exists(R)) {
                    delete this.options[R];
                    delete this.schema[R]
                }
            }
        });
        J.Options = N
    }(y));
    (function(M) {
        if (!M) {
            throw "MagicJS not found";
            return
        }
        var L = M.$;
        if (M.SVGImage) {
            return
        }
        var K = "http://www.w3.org/2000/svg",
            J = "http://www.w3.org/1999/xlink";
        var I = function(N) {
            this.filters = {};
            this.originalImage = L(N);
            this.canvas = L(document.createElementNS(K, "svg"));
            this.canvas.setAttribute("width", this.originalImage.naturalWidth || this.originalImage.width);
            this.canvas.setAttribute("height", this.originalImage.naturalHeight || this.originalImage.height);
            this.image = L(document.createElementNS(K, "image"));
            this.image.setAttributeNS(J, "href", this.originalImage.getAttribute("src"));
            this.image.setAttribute("width", "100%");
            this.image.setAttribute("height", "100%");
            this.image.jAppendTo(this.canvas)
        };
        I.prototype.getNode = function() {
            return this.canvas
        };
        I.prototype.blur = function(N) {
            if (Math.round(N) < 1) {
                return
            }
            if (!this.filters.blur) {
                this.filters.blur = L(document.createElementNS(K, "filter"));
                this.filters.blur.setAttribute("id", "filterBlur");
                this.filters.blur.appendChild(L(document.createElementNS(K, "feGaussianBlur")).setProps({
                    "in": "SourceGraphic",
                    stdDeviation: N
                }));
                this.filters.blur.jAppendTo(this.canvas);
                this.image.setAttribute("filter", "url(#filterBlur)")
            } else {
                this.filters.blur.firstChild.setAttribute("stdDeviation", N)
            }
            return this
        };
        M.SVGImage = I
    }(y));
    var s = (function(K) {
        var J = K.$;
        var I = function(M, L) {
            this.settings = {
                cssPrefix: "magic",
                orientation: "horizontal",
                position: "bottom",
                size: {
                    units: "px",
                    width: "auto",
                    height: "auto"
                },
                sides: ["height", "width"]
            };
            this.parent = M;
            this.root = null;
            this.wrapper = null;
            this.context = null;
            this.buttons = {};
            this.items = [];
            this.selectedItem = null;
            this.scrollFX = null;
            this.resizeCallback = null;
            this.settings = K.extend(this.settings, L);
            this.rootCSS = this.settings.cssPrefix + "-thumbs";
            this.itemCSS = this.settings.cssPrefix + "-thumb";
            this.setupContent()
        };
        I.prototype = {
            setupContent: function() {
                this.root = K.$new("div").jAddClass(this.rootCSS).jAddClass(this.rootCSS + "-" + this.settings.orientation).jSetCss({
                    visibility: "hidden"
                });
                this.wrapper = K.$new("div").jAddClass(this.rootCSS + "-wrapper").jAppendTo(this.root);
                this.root.jAppendTo(this.parent);
                J(["prev", "next"]).jEach(function(L) {
                    this.buttons[L] = K.$new("button").jAddClass(this.rootCSS + "-button").jAddClass(this.rootCSS + "-button-" + L).jAppendTo(this.root).jAddEvent("btnclick tap", (function(N, M) {
                        J(N).events[0].stop().stopQueue();
                        J(N).stopDistribution();
                        this.scroll(M)
                    }).jBindAsEvent(this, L))
                }.jBind(this));
                this.buttons.prev.jAddClass(this.rootCSS + "-button-disabled");
                this.context = K.$new("ul").jAddEvent("btnclick tap", function(L) {
                    L.stop()
                })
            },
            addItem: function(M) {
                var L = K.$new("li").jAddClass(this.itemCSS).append(M).jAppendTo(this.context);
                new K.ImageLoader(M, {
                    oncomplete: this.reflow.jBind(this)
                });
                this.items.push(L);
                return L
            },
            selectItem: function(M) {
                var L = this.selectedItem || this.context.byClass(this.itemCSS + "-selected")[0];
                if (L) {
                    J(L).jRemoveClass(this.itemCSS + "-selected")
                }
                this.selectedItem = J(M);
                if (!this.selectedItem) {
                    return
                }
                this.selectedItem.jAddClass(this.itemCSS + "-selected");
                this.scroll(this.selectedItem)
            },
            run: function() {
                if (this.wrapper !== this.context.parentNode) {
                    J(this.context).jAppendTo(this.wrapper);
                    this.initDrag();
                    J(window).jAddEvent("resize", this.resizeCallback = this.reflow.jBind(this));
                    this.run.jBind(this).jDelay(1);
                    return
                }
                var L = this.parent.jGetSize();
                if (L.height > 0 && L.height > L.width) {
                    this.setOrientation("vertical")
                } else {
                    this.setOrientation("horizontal")
                }
                this.reflow();
                this.root.jSetCss({
                    visibility: ""
                })
            },
            stop: function() {
                if (this.resizeCallback) {
                    J(window).jRemoveEvent("resize", this.resizeCallback)
                }
                this.root.kill()
            },
            scroll: function(Y, O) {
                var Q = {
                        x: 0,
                        y: 0
                    },
                    ab = "vertical" == this.settings.orientation ? "top" : "left",
                    T = "vertical" == this.settings.orientation ? "height" : "width",
                    P = "vertical" == this.settings.orientation ? "y" : "x",
                    X = this.context.parentNode.jGetSize()[T],
                    U = this.context.parentNode.jGetPosition(),
                    N = this.context.jGetSize()[T],
                    W, L, aa, R, M, V, S, Z = [];
                if (this.scrollFX) {
                    this.scrollFX.stop()
                } else {
                    this.context.jSetCss("transition", K.browser.cssTransformProp + String.fromCharCode(32) + "0s")
                }
                if (undefined === O) {
                    O = 600
                }
                W = this.context.jGetPosition();
                if ("string" == K.jTypeOf(Y)) {
                    Q[P] = ("next" == Y) ? Math.max(W[ab] - U[ab] - X, X - N) : Math.min(W[ab] - U[ab] + X, 0)
                } else {
                    if ("element" == K.jTypeOf(Y)) {
                        L = Y.jGetSize();
                        aa = Y.jGetPosition();
                        Q[P] = Math.min(0, Math.max(X - N, W[ab] + X / 2 - aa[ab] - L[T] / 2))
                    } else {
                        return
                    }
                }
                if (K.browser.gecko && "android" == K.browser.platform || K.browser.ieMode && K.browser.ieMode < 10) {
                    if ("string" == K.jTypeOf(Y) && Q[P] == W[ab] - U[ab]) {
                        W[ab] += 0 === W[ab] - U[ab] ? 30 : -30
                    }
                    Q["margin-" + ab] = [((N <= X) ? 0 : (W[ab] - U[ab])), Q[P]];
                    delete Q.x;
                    delete Q.y;
                    if (!this.selectorsMoveFX) {
                        this.selectorsMoveFX = new K.PFX([this.context], {
                            duration: 500
                        })
                    }
                    Z.push(Q);
                    this.selectorsMoveFX.start(Z);
                    S = Q["margin-" + ab][1]
                } else {
                    this.context.jSetCss({
                        transition: K.browser.cssTransformProp + String.fromCharCode(32) + O + "ms ease",
                        transform: "translate3d(" + Q.x + "px, " + Q.y + "px, 0)"
                    });
                    S = Q[P]
                }
                if (S >= 0) {
                    this.buttons.prev.jAddClass(this.rootCSS + "-button-disabled")
                } else {
                    this.buttons.prev.jRemoveClass(this.rootCSS + "-button-disabled")
                }
                if (S <= X - N) {
                    this.buttons.next.jAddClass(this.rootCSS + "-button-disabled")
                } else {
                    this.buttons.next.jRemoveClass(this.rootCSS + "-button-disabled")
                }
                S = null
            },
            initDrag: function() {
                var N, M, O, V, U, X, P, T, S, W, ac, Z, aa, Y = {
                        x: 0,
                        y: 0
                    },
                    L, R, Q = 300,
                    ab = function(af) {
                        var ae, ad = 0;
                        for (ae = 1.5; ae <= 90; ae += 1.5) {
                            ad += (af * Math.cos(ae / Math.PI / 2))
                        }(V < 0) && (ad *= (-1));
                        return ad
                    };
                U = J(function(ad) {
                    Y = {
                        x: 0,
                        y: 0
                    };
                    L = "vertical" == this.settings.orientation ? "top" : "left";
                    R = "vertical" == this.settings.orientation ? "height" : "width";
                    N = "vertical" == this.settings.orientation ? "y" : "x";
                    Z = this.context.parentNode.jGetSize()[R];
                    ac = this.context.jGetSize()[R];
                    O = Z - ac;
                    if (O >= 0) {
                        return
                    }
                    if (ad.state == "dragstart") {
                        if (undefined === aa) {
                            aa = 0
                        }
                        this.context.jSetCssProp("transition", K.browser.cssTransformProp + String.fromCharCode(32) + "0ms");
                        X = ad[N];
                        S = ad.y;
                        T = ad.x;
                        W = false
                    } else {
                        if ("dragend" == ad.state) {
                            if (W) {
                                return
                            }
                            P = ab(Math.abs(V));
                            aa += P;
                            (aa <= O) && (aa = O);
                            (aa >= 0) && (aa = 0);
                            Y[N] = aa;
                            this.context.jSetCssProp("transition", K.browser.cssTransformProp + String.fromCharCode(32) + Q + "ms  cubic-bezier(.0, .0, .0, 1)");
                            this.context.jSetCssProp("transform", "translate3d(" + Y.x + "px, " + Y.y + "px, 0px)");
                            V = 0
                        } else {
                            if (W) {
                                return
                            }
                            if ("horizontal" == this.settings.orientation && Math.abs(ad.x - T) > Math.abs(ad.y - S) || "vertical" == this.settings.orientation && Math.abs(ad.x - T) < Math.abs(ad.y - S)) {
                                ad.stop();
                                V = ad[N] - X;
                                aa += V;
                                Y[N] = aa;
                                this.context.jSetCssProp("transform", "translate3d(" + Y.x + "px, " + Y.y + "px, 0px)");
                                if (aa >= 0) {
                                    this.buttons.prev.jAddClass(this.rootCSS + "-button-disabled")
                                } else {
                                    this.buttons.prev.jRemoveClass(this.rootCSS + "-button-disabled")
                                }
                                if (aa <= O) {
                                    this.buttons.next.jAddClass(this.rootCSS + "-button-disabled")
                                } else {
                                    this.buttons.next.jRemoveClass(this.rootCSS + "-button-disabled")
                                }
                            } else {
                                W = true
                            }
                        }
                        X = ad[N]
                    }
                }).jBind(this);
                this.context.jAddEvent("touchdrag", U)
            },
            reflow: function() {
                var O, N, L, M = this.parent.jGetSize();
                if (M.height > 0 && M.height > M.width) {
                    this.setOrientation("vertical")
                } else {
                    this.setOrientation("horizontal")
                }
                O = "vertical" == this.settings.orientation ? "height" : "width";
                N = this.context.jGetSize()[O];
                L = this.root.jGetSize()[O];
                if (N <= L) {
                    this.root.jAddClass("no-buttons");
                    this.context.jSetCssProp("transition", "").jGetSize();
                    this.context.jSetCssProp("transform", "translate3d(0,0,0)");
                    this.buttons.prev.jAddClass(this.rootCSS + "-button-disabled");
                    this.buttons.next.jRemoveClass(this.rootCSS + "-button-disabled")
                } else {
                    this.root.jRemoveClass("no-buttons")
                }
                if (this.selectedItem) {
                    this.scroll(this.selectedItem, 0)
                }
            },
            setOrientation: function(L) {
                if ("vertical" !== L && "horizontal" !== L || L == this.settings.orientation) {
                    return
                }
                this.root.jRemoveClass(this.rootCSS + "-" + this.settings.orientation);
                this.settings.orientation = L;
                this.root.jAddClass(this.rootCSS + "-" + this.settings.orientation);
                this.context.jSetCssProp("transition", "none").jGetSize();
                this.context.jSetCssProp("transform", "").jSetCssProp("margin", "")
            }
        };
        return I
    })(y);
    var i = A.$;
    if (typeof Object.assign != "function") {
        Object.assign = function(L) {
            if (L == null) {
                throw new TypeError("Cannot convert undefined or null to object")
            }
            L = Object(L);
            for (var I = 1; I < arguments.length; I++) {
                var K = arguments[I];
                if (K != null) {
                    for (var J in K) {
                        if (Object.prototype.hasOwnProperty.call(K, J)) {
                            L[J] = K[J]
                        }
                    }
                }
            }
            return L
        }
    }
    if (!A.browser.cssTransform) {
        A.browser.cssTransform = A.normalizeCSS("transform").dashize()
    }
    var p = {
        zoomOn: {
            type: "string",
            "enum": ["click", "hover"],
            "default": "hover"
        },
        zoomMode: {
            oneOf: [{
                type: "string",
                "enum": ["zoom", "magnifier", "preview", "off"],
                "default": "zoom"
            }, {
                type: "boolean",
                "enum": [false]
            }],
            "default": "zoom"
        },
        zoomWidth: {
            oneOf: [{
                type: "string",
                "enum": ["auto"]
            }, {
                type: "number",
                minimum: 1
            }],
            "default": "auto"
        },
        zoomHeight: {
            oneOf: [{
                type: "string",
                "enum": ["auto"]
            }, {
                type: "number",
                minimum: 1
            }],
            "default": "auto"
        },
        zoomPosition: {
            type: "string",
            "default": "right"
        },
        zoomDistance: {
            type: "number",
            minimum: 0,
            "default": 15
        },
        zoomCaption: {
            oneOf: [{
                type: "string",
                "enum": ["bottom", "top", "off"],
                "default": "off"
            }, {
                type: "boolean",
                "enum": [false]
            }],
            "default": "off"
        },
        expand: {
            oneOf: [{
                type: "string",
                "enum": ["window", "fullscreen", "off"]
            }, {
                type: "boolean",
                "enum": [false]
            }],
            "default": "window"
        },
        expandZoomMode: {
            oneOf: [{
                type: "string",
                "enum": ["zoom", "magnifier", "off"],
                "default": "zoom"
            }, {
                type: "boolean",
                "enum": [false]
            }],
            "default": "zoom"
        },
        expandZoomOn: {
            type: "string",
            "enum": ["click", "always"],
            "default": "click"
        },
        expandCaption: {
            type: "boolean",
            "default": true
        },
        closeOnClickOutside: {
            type: "boolean",
            "default": true
        },
        hint: {
            oneOf: [{
                type: "string",
                "enum": ["once", "always", "off"]
            }, {
                type: "boolean",
                "enum": [false]
            }],
            "default": "once"
        },
        smoothing: {
            type: "boolean",
            "default": true
        },
        upscale: {
            type: "boolean",
            "default": true
        },
        variableZoom: {
            type: "boolean",
            "default": false
        },
        lazyZoom: {
            type: "boolean",
            "default": false
        },
        autostart: {
            type: "boolean",
            "default": true
        },
        rightClick: {
            type: "boolean",
            "default": false
        },
        transitionEffect: {
            type: "boolean",
            "default": true
        },
        selectorTrigger: {
            type: "string",
            "enum": ["click", "hover"],
            "default": "click"
        },
        cssClass: {
            type: "string"
        },
        forceTouch: {
            type: "boolean",
            "default": false
        },
        textHoverZoomHint: {
            type: "string",
            "default": "Hover to zoom"
        },
        textClickZoomHint: {
            type: "string",
            "default": "Click to zoom"
        },
        textExpandHint: {
            type: "string",
            "default": "Click to expand"
        },
        textBtnClose: {
            type: "string",
            "default": "Close"
        },
        textBtnNext: {
            type: "string",
            "default": "Next"
        },
        textBtnPrev: {
            type: "string",
            "default": "Previous"
        }
    };
    var m = {
        zoomMode: {
            oneOf: [{
                type: "string",
                "enum": ["zoom", "magnifier", "off"],
                "default": "zoom"
            }, {
                type: "boolean",
                "enum": [false]
            }],
            "default": "zoom"
        },
        expandZoomOn: {
            type: "string",
            "enum": ["click", "always"],
            "default": "click"
        },
        textExpandHint: {
            type: "string",
            "default": "Tap to expand"
        },
        textHoverZoomHint: {
            type: "string",
            "default": "Touch to zoom"
        },
        textClickZoomHint: {
            type: "string",
            "default": "Double tap to zoom"
        }
    };
    var o = "MagicZoom",
        D = "mz",
        b = 20,
        B = ["onZoomReady", "onUpdate", "onZoomIn", "onZoomOut", "onExpandOpen", "onExpandClose"];
    var v, q = {},
        F = i([]),
        H, f = window.devicePixelRatio || 1,
        G, z = true,
        g = A.browser.features.perspective ? "translate3d(" : "translate(",
        C = A.browser.features.perspective ? ",0)" : ")",
        n = null;
    var r = (function() {
        var J, M, L, K, I;
        return I
    })();
    var t = function() {
        return "mgctlbxN$MZ" + "p".toUpperCase() + " mgctlbxV$" + "v5.1.16".replace("v", "") + " mgctlbxL$" + "c".toUpperCase() + ((window.mgctlbx$Pltm && "string" == A.jTypeOf(window.mgctlbx$Pltm)) ? " mgctlbxP$" + window.mgctlbx$Pltm.toLowerCase() : "")
    };

    function x(K) {
        var J, I;
        J = "";
        for (I = 0; I < K.length; I++) {
            J += String.fromCharCode(14 ^ K.charCodeAt(I))
        }
        return J
    }

    function j(K) {
        var J = [],
            I = null;
        (K && (I = i(K))) && (J = F.filter(function(L) {
            return L.placeholder === I
        }));
        return J.length ? J[0] : null
    }

    function a(K) {
        var J = i(window).jGetSize(),
            I = i(window).jGetScroll();
        K = K || 0;
        return {
            left: K,
            right: J.width - K,
            top: K,
            bottom: J.height - K,
            x: I.x,
            y: I.y
        }
    }

    function c(I) {
        return (I.pointerType && ("touch" === I.pointerType || I.pointerType === I.MSPOINTER_TYPE_TOUCH)) || (/touch/i).test(I.type)
    }

    function h(I) {
        return I.pointerType ? (("touch" === I.pointerType || I.MSPOINTER_TYPE_TOUCH === I.pointerType) && I.isPrimary) : 1 === I.changedTouches.length && (I.targetTouches.length ? I.targetTouches[0].identifier == I.changedTouches[0].identifier : true)
    }

    function e(I) {
        return Object.assign({}, I, {
            type: I.type,
            pageX: I.pageX,
            pageY: I.pageY,
            screenX: I.screenX,
            screenY: I.screenY,
            clientX: I.clientX,
            clientY: I.clientY
        })
    }

    function u() {
        var K = A.$A(arguments),
            J = K.shift(),
            I = q[J];
        if (I) {
            for (var L = 0; L < I.length; L++) {
                I[L].apply(null, K)
            }
        }
    }

    function E() {
        var M = arguments[0],
            I, L, J = [];
        try {
            do {
                L = M.tagName;
                if (/^[A-Za-z]*$/.test(L)) {
                    if (I = M.getAttribute("id")) {
                        if (/^[A-Za-z][-A-Za-z0-9_]*/.test(I)) {
                            L += "#" + I
                        }
                    }
                    J.push(L)
                }
                M = M.parentNode
            } while (M && M !== document.documentElement);
            J = J.reverse();
            A.addCSS(J.join(" ") + "> .mz-figure > img", {
                width: "100% !important;",
                transition: "none",
                transform: "none"
            }, "mz-runtime-css", true)
        } catch (K) {}
    }

    function w() {
        var J = null,
            K = null,
            I = function() {
                window.scrollTo(document.body.scrollLeft, document.body.scrollTop);
                window.dispatchEvent(new Event("resize"))
            };
        K = setInterval(function() {
            var N = window.orientation == 90 || window.orientation == -90,
                M = window.innerHeight,
                L = (N ? screen.availWidth : screen.availHeight) * 0.85;
            if ((J == null || J == false) && ((N && M < L) || (!N && M < L))) {
                J = true;
                I()
            } else {
                if ((J == null || J == true) && ((N && M > L) || (!N && M > L))) {
                    J = false;
                    I()
                }
            }
        }, 250);
        return K
    }

    function d() {
        A.addCSS(".magic-hidden-wrapper, .magic-temporary-img", {
            display: "block !important",
            "min-height": "0 !important",
            "min-width": "0 !important",
            "max-height": "none !important",
            "max-width": "none !important",
            width: "10px !important",
            height: "10px !important",
            position: "absolute !important",
            top: "-10000px !important",
            left: "0 !important",
            overflow: "hidden !important",
            "-webkit-transform": "none !important",
            transform: "none !important",
            "-webkit-transition": "none !important",
            transition: "none !important"
        }, "magiczoom-reset-css");
        A.addCSS(".magic-temporary-img img", {
            display: "inline-block !important",
            border: "0 !important",
            padding: "0 !important",
            "min-height": "0 !important",
            "min-width": "0 !important",
            "max-height": "none !important",
            "max-width": "none !important",
            "-webkit-transform": "none !important",
            transform: "none !important",
            "-webkit-transition": "none !important",
            transition: "none !important"
        }, "magiczoom-reset-css");
        if (A.browser.androidBrowser) {
            A.addCSS(".mobile-magic .mz-expand .mz-expand-bg", {
                display: "none !important"
            }, "magiczoom-reset-css")
        }
        if (A.browser.androidBrowser && ("chrome" !== A.browser.uaName || 44 == A.browser.uaVersion)) {
            A.addCSS(".mobile-magic .mz-zoom-window.mz-magnifier, .mobile-magic .mz-zoom-window.mz-magnifier:before", {
                "border-radius": "0 !important"
            }, "magiczoom-reset-css")
        }
    }
    var l = function(L, M, J, K, I) {
        this.small = {
            src: null,
            url: null,
            dppx: 1,
            node: null,
            state: 0,
            size: {
                width: 0,
                height: 0
            },
            loaded: false
        };
        this.zoom = {
            src: null,
            url: null,
            dppx: 1,
            node: null,
            state: 0,
            size: {
                width: 0,
                height: 0
            },
            loaded: false
        };
        if ("object" == A.jTypeOf(L)) {
            this.small = L
        } else {
            if ("string" == A.jTypeOf(L)) {
                this.small.url = A.getAbsoluteURL(L)
            }
        }
        if ("object" == A.jTypeOf(M)) {
            this.zoom = M
        } else {
            if ("string" == A.jTypeOf(M)) {
                this.zoom.url = A.getAbsoluteURL(M)
            }
        }
        this.caption = J;
        this.options = K;
        this.origin = I;
        this.callback = null;
        this.link = null;
        this.node = null
    };
    l.prototype = {
        parseNode: function(K, J, I) {
            var L = K.byTag("img")[0];
            if (I) {
                this.small.node = L || A.$new("img").jAppendTo(K)
            }
            if (f > 1) {
                this.small.url = K.getAttribute("data-image-2x");
                if (this.small.url) {
                    this.small.dppx = 2
                }
                this.zoom.url = K.getAttribute("data-zoom-image-2x");
                if (this.zoom.url) {
                    this.zoom.dppx = 2
                }
            }
            this.small.src = K.getAttribute("data-image") || K.getAttribute("rev") || (L ? L.getAttribute("src") : null);
            if (this.small.src) {
                this.small.src = A.getAbsoluteURL(this.small.src)
            }
            this.small.url = this.small.url || this.small.src;
            if (this.small.url) {
                this.small.url = A.getAbsoluteURL(this.small.url)
            }
            this.zoom.src = K.getAttribute("data-zoom-image") || K.getAttribute("href");
            if (this.zoom.src) {
                this.zoom.src = A.getAbsoluteURL(this.zoom.src)
            }
            this.zoom.url = this.zoom.url || this.zoom.src;
            if (this.zoom.url) {
                this.zoom.url = A.getAbsoluteURL(this.zoom.url)
            }
            this.caption = K.getAttribute("data-caption") || K.getAttribute("title") || J;
            this.link = K.getAttribute("data-link");
            this.origin = K;
            return this
        },
        loadImg: function(I) {
            var J = null;
            if (arguments.length > 1 && "function" === A.jTypeOf(arguments[1])) {
                J = arguments[1]
            }
            if (0 !== this[I].state) {
                if (this[I].loaded) {
                    this.onload(J)
                }
                return
            }
            if (this[I].url && this[I].node && !this[I].node.getAttribute("src") && !this[I].node.getAttribute("srcset")) {
                this[I].node.setAttribute("src", this[I].url)
            }
            this[I].state = 1;
            new A.ImageLoader(this[I].node || this[I].url, {
                oncomplete: i(function(K) {
                    this[I].loaded = true;
                    this[I].state = K.ready ? 2 : -1;
                    if (K.ready) {
                        this[I].size = K.jGetSize();
                        if (!this[I].node) {
                            this[I].node = i(K.img);
                            this[I].node.getAttribute("style");
                            this[I].node.removeAttribute("style");
                            this[I].size.width /= this[I].dppx;
                            this[I].size.height /= this[I].dppx
                        } else {
                            this[I].node.jSetCss({
                                "max-width": this[I].size.width,
                                "max-height": this[I].size.height
                            });
                            if (this[I].node.currentSrc && this[I].node.currentSrc != this[I].node.src) {
                                this[I].url = this[I].node.currentSrc
                            } else {
                                if (A.getAbsoluteURL(this[I].node.getAttribute("src") || "") != this[I].url) {
                                    this[I].node.setAttribute("src", this[I].url)
                                }
                            }
                        }
                    }
                    this.onload(J)
                }).jBind(this)
            })
        },
        loadSmall: function() {
            this.loadImg("small", arguments[0])
        },
        loadZoom: function() {
            this.loadImg("zoom", arguments[0])
        },
        load: function() {
            this.callback = null;
            if (arguments.length > 0 && "function" === A.jTypeOf(arguments[0])) {
                this.callback = arguments[0]
            }
            this.loadSmall();
            this.loadZoom()
        },
        onload: function(I) {
            if (I) {
                I.call(null, this)
            }
            if (this.callback && this.small.loaded && this.zoom.loaded) {
                this.callback.call(null, this);
                this.callback = null;
                return
            }
        },
        loaded: function() {
            return (this.small.loaded && this.zoom.loaded)
        },
        ready: function() {
            return (2 === this.small.state && 2 === this.zoom.state)
        },
        getURL: function(J) {
            var I = "small" == J ? "zoom" : "small";
            if (!this[J].loaded || (this[J].loaded && 2 === this[J].state)) {
                return this[J].url
            } else {
                if (!this[I].loaded || (this[I].loaded && 2 === this[I].state)) {
                    return this[I].url
                } else {
                    return null
                }
            }
        },
        getNode: function(J) {
            var I = "small" == J ? "zoom" : "small";
            if (!this[J].loaded || (this[J].loaded && 2 === this[J].state)) {
                return this[J].node
            } else {
                if (!this[I].loaded || (this[I].loaded && 2 === this[I].state)) {
                    return this[I].node
                } else {
                    return null
                }
            }
        },
        jGetSize: function(J) {
            var I = "small" == J ? "zoom" : "small";
            if (!this[J].loaded || (this[J].loaded && 2 === this[J].state)) {
                return this[J].size
            } else {
                if (!this[I].loaded || (this[I].loaded && 2 === this[I].state)) {
                    return this[I].size
                } else {
                    return {
                        width: 0,
                        height: 0
                    }
                }
            }
        },
        getRatio: function(J) {
            var I = "small" == J ? "zoom" : "small";
            if (!this[J].loaded || (this[J].loaded && 2 === this[J].state)) {
                return this[J].dppx
            } else {
                if (!this[I].loaded || (this[I].loaded && 2 === this[I].state)) {
                    return this[I].dppx
                } else {
                    return 1
                }
            }
        },
        setCurNode: function(I) {
            this.node = this.getNode(I)
        }
    };
    var k = function(J, I) {
        this.options = new A.Options(p);
        this.option = i(function() {
            if (arguments.length > 1) {
                return this.set(arguments[0], arguments[1])
            } else {
                return this.get(arguments[0])
            }
        }).jBind(this.options);
        this.touchOptions = new A.Options(m);
        this.additionalImages = [];
        this.image = null;
        this.primaryImage = null;
        this.placeholder = i(J).jAddEvent("dragstart selectstart click", function(K) {
            K.stop()
        });
        this.id = null;
        this.node = null;
        this.stubNode = null;
        this.originalImg = null;
        this.originalImgSrc = null;
        this.originalTitle = null;
        this.normalSize = {
            width: 0,
            height: 0
        };
        this.size = {
            width: 0,
            height: 0
        };
        this.zoomSize = {
            width: 0,
            height: 0
        };
        this.zoomSizeOrigin = {
            width: 0,
            height: 0
        };
        this.boundaries = {
            top: 0,
            left: 0,
            bottom: 0,
            right: 0
        };
        this.ready = false;
        this.expanded = false;
        this.activateTimer = null;
        this.resizeTimer = null;
        this.resizeCallback = i(function() {
            if (this.expanded) {
                this.image.node.jSetCss({
                    "max-height": Math.min(this.image.jGetSize("zoom").height, this.expandMaxHeight())
                });
                this.image.node.jSetCss({
                    "max-width": Math.min(this.image.jGetSize("zoom").width, this.expandMaxWidth())
                })
            }
            this.reflowZoom(arguments[0])
        }).jBind(this);
        this.onResize = i(function(K) {
            clearTimeout(this.resizeTimer);
            this.resizeTimer = i(this.resizeCallback).jDelay(10, "scroll" === K.type)
        }).jBindAsEvent(this);
        if (t) {
            H.append(A.$new("div", {}, {
                display: "none",
                visibility: "hidden"
            }).append(document.createTextNode(t)));
            t = undefined
        }
        this.lens = null;
        this.zoomBox = null;
        this.hint = null;
        this.hintMessage = null;
        this.hintRuns = 0;
        this.mobileZoomHint = true;
        this.loadingBox = null;
        this.loadTimer = null;
        this.thumb = null;
        this.expandBox = null;
        this.expandBg = null;
        this.expandCaption = null;
        this.expandStage = null;
        this.expandImageStage = null;
        this.expandFigure = null;
        this.expandControls = null;
        this.expandNav = null;
        this.expandThumbs = null;
        this.expandGallery = [];
        this.buttons = {};
        this.start(I)
    };
    k.prototype = {
        loadOptions: function(I) {
            this.options.fromJSON(window[D + "Options"] || {});
            this.options.fromString(this.placeholder.getAttribute("data-options") || "");
            if (!A.browser.touchScreen) {
                this.option("forceTouch", false)
            }
            if (A.browser.mobile || this.option("forceTouch")) {
                this.options.fromJSON(this.touchOptions.getJSON());
                this.options.fromJSON(window[D + "MobileOptions"] || {});
                this.options.fromString(this.placeholder.getAttribute("data-mobile-options") || "")
            }
            if ("string" == A.jTypeOf(I)) {
                this.options.fromString(I || "")
            } else {
                this.options.fromJSON(I || {})
            }
            if (this.option("cssClass")) {
                this.option("cssClass", this.option("cssClass").replace(",", " "))
            }
            if (false === this.option("zoomCaption")) {
                this.option("zoomCaption", "off")
            }
            if (false === this.option("hint")) {
                this.option("hint", "off")
            }
            switch (this.option("hint")) {
                case "off":
                    this.hintRuns = 0;
                    break;
                case "once":
                    this.hintRuns = 2;
                    break;
                case "always":
                    this.hintRuns = Infinity;
                    break
            }
            if ("off" === this.option("zoomMode")) {
                this.option("zoomMode", false)
            }
            if ("off" === this.option("expand")) {
                this.option("expand", false)
            }
            if ("off" === this.option("expandZoomMode")) {
                this.option("expandZoomMode", false)
            }
            if (A.browser.mobile && "zoom" == this.option("zoomMode") && "inner" == this.option("zoomPosition")) {
                if (this.option("expand")) {
                    this.option("zoomMode", false)
                } else {
                    this.option("zoomOn", "click")
                }
            }
        },
        start: function(J) {
            var I;
            this.loadOptions(J);
            if (z && !this.option("autostart")) {
                return
            }
            this.id = this.placeholder.getAttribute("id") || "mz-" + Math.floor(Math.random() * A.now());
            this.placeholder.setAttribute("id", this.id);
            this.node = A.$new("figure").jAddClass("mz-figure");
            E(this.placeholder);
            this.originalImg = this.placeholder.querySelector("img");
            this.originalImgSrc = this.originalImg ? this.originalImg.getAttribute("src") : null;
            this.originalTitle = i(this.placeholder).getAttribute("title");
            i(this.placeholder).removeAttribute("title");
            this.primaryImage = new l().parseNode(this.placeholder, this.originalTitle, true);
            this.image = this.primaryImage;
            this.node.enclose(this.image.small.node).jAddClass(this.option("cssClass"));
            if (true !== this.option("rightClick")) {
                this.node.jAddEvent("contextmenu", function(L) {
                    L.stop();
                    return false
                })
            }
            this.node.jAddClass("mz-" + this.option("zoomOn") + "-zoom");
            if (!this.option("expand")) {
                this.node.jAddClass("mz-no-expand")
            }
            this.lens = {
                node: A.$new("div", {
                    "class": "mz-lens"
                }, {
                    top: 0
                }).jAppendTo(this.node),
                image: A.$new("img", {
                    src: "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
                }, {
                    position: "absolute",
                    top: 0,
                    left: 0
                }),
                width: 0,
                height: 0,
                pos: {
                    x: 0,
                    y: 0
                },
                spos: {
                    x: 0,
                    y: 0
                },
                size: {
                    width: 0,
                    height: 0
                },
                border: {
                    x: 0,
                    y: 0
                },
                dx: 0,
                dy: 0,
                innertouch: false,
                hide: function() {
                    if (A.browser.features.transform) {
                        this.node.jSetCss({
                            transform: "translate(-10000px,-10000px)"
                        })
                    } else {
                        this.node.jSetCss({
                            top: -10000
                        })
                    }
                }
            };
            this.lens.hide();
            this.lens.node.append(this.lens.image);
            this.zoomBox = {
                node: A.$new("div", {
                    "class": "mz-zoom-window"
                }, {
                    top: -100000
                }).jAddClass(this.option("cssClass")).jAppendTo(H),
                image: A.$new("img", {
                    src: "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
                }, {
                    position: "absolute"
                }),
                aspectRatio: 0,
                width: 0,
                height: 0,
                innerWidth: 0,
                innerHeight: 0,
                size: {
                    width: "auto",
                    wunits: "px",
                    height: "auto",
                    hunits: "px"
                },
                mode: this.option("zoomMode"),
                position: this.option("zoomPosition"),
                trigger: this.option("zoomOn"),
                custom: false,
                active: false,
                activating: false,
                enabled: false,
                enable: i(function() {
                    this.zoomBox.enabled = false !== arguments[0];
                    this.node[this.zoomBox.enabled ? "jRemoveClass" : "jAddClass"]("mz-no-zoom")
                }).jBind(this),
                hide: i(function() {
                    var L = i(this.node).jFetch("cr");
                    this.zoomBox.node.jRemoveEvent("transitionend");
                    this.zoomBox.node.jSetCss({
                        top: -100000
                    }).jAppendTo(H);
                    this.zoomBox.node.jRemoveClass("mz-deactivating mz-p-" + ("zoom" == this.zoomBox.mode ? this.zoomBox.position : this.zoomBox.mode));
                    if (!this.expanded && L) {
                        L.jRemove()
                    }
                    this.zoomBox.image.getAttribute("style");
                    this.zoomBox.image.removeAttribute("style")
                }).jBind(this),
                setMode: i(function(L) {
                    this.node[false === L ? "jAddClass" : "jRemoveClass"]("mz-no-zoom");
                    this.node["magnifier" == L ? "jAddClass" : "jRemoveClass"]("mz-magnifier-zoom");
                    this.zoomBox.node["magnifier" == L ? "jAddClass" : "jRemoveClass"]("mz-magnifier");
                    this.zoomBox.node["preview" == L ? "jAddClass" : "jRemoveClass"]("mz-preview");
                    if ("zoom" != L) {
                        this.node.jRemoveClass("mz-inner-zoom");
                        this.zoomBox.node.jRemoveClass("mz-inner")
                    }
                    this.zoomBox.mode = L;
                    if (false === L) {
                        this.zoomBox.enable(false)
                    }
                }).jBind(this)
            };
            this.zoomBox.node.append(this.zoomBox.image);
            this.zoomBox.setMode(this.option("zoomMode"));
            this.zoomBox.image.removeAttribute("width");
            this.zoomBox.image.removeAttribute("height");
            if ("undefined" !== typeof(r)) {
                var K = Math.floor(Math.random() * A.now());
                i(this.node).jStore("cr", A.$new(((Math.floor(Math.random() * 101) + 1) % 2) ? "span" : "div").setProps({
                    id: "crMz" + K
                }).jSetCss({
                    display: "inline",
                    overflow: "hidden",
                    visibility: "visible",
                    color: r[1],
                    fontSize: r[2],
                    fontWeight: r[3],
                    fontFamily: "sans-serif",
                    position: "absolute",
                    top: 8,
                    left: 8,
                    margin: "auto",
                    width: "auto",
                    textAlign: "right",
                    "line-height": "2em",
                    zIndex: 2147483647
                }).changeContent(x(r[0])));
                if (i(i(this.node).jFetch("cr")).byTag("a")[0]) {
                    i(i(i(this.node).jFetch("cr")).byTag("a")[0]).jAddEvent("tap btnclick", function(L) {
                        L.stopDistribution();
                        window.open(this.href)
                    }).setProps({
                        id: "mzCrA" + K
                    })
                }
                A.addCSS("#" + this.id + " > figure.mz-figure > #" + ("crMz" + K) + ",#" + this.id + " > figure.mz-figure > #" + ("crMz" + K) + " > #" + ("mzCrA" + K) + ",html body .mz-expand > #" + ("crMz" + K) + " > #" + ("mzCrA" + K) + ",html body .mz-expand > #" + ("crMz" + K) + " > #" + ("mzCrA" + K), {
                    display: "inline !important;",
                    visibility: "visible !important;",
                    zIndex: "2147483647 !important;",
                    fontSize: r[2] + " !important;",
                    color: r[1] + " !important;"
                }, "mz-runtime-css", true)
            }
            if ((I = ("" + this.option("zoomWidth")).match(/^([0-9]+)?(px|%)?$/))) {
                this.zoomBox.size.wunits = I[2] || "px";
                this.zoomBox.size.width = (parseFloat(I[1]) || "auto")
            }
            if ((I = ("" + this.option("zoomHeight")).match(/^([0-9]+)?(px|%)?$/))) {
                this.zoomBox.size.hunits = I[2] || "px";
                this.zoomBox.size.height = (parseFloat(I[1]) || "auto")
            }
            if ("magnifier" == this.zoomBox.mode) {
                this.node.jAddClass("mz-magnifier-zoom");
                this.zoomBox.node.jAddClass("mz-magnifier");
                if ("auto" === this.zoomBox.size.width) {
                    this.zoomBox.size.wunits = "%";
                    this.zoomBox.size.width = 70
                }
                if ("auto" === this.zoomBox.size.height) {
                    this.zoomBox.size.hunits = "%"
                }
            } else {
                if (this.option("zoom-position").match(/^#/)) {
                    if (this.zoomBox.custom = i(this.option("zoom-position").replace(/^#/, ""))) {
                        if (i(this.zoomBox.custom).jGetSize().height > 50) {
                            if ("auto" === this.zoomBox.size.width) {
                                this.zoomBox.size.wunits = "%";
                                this.zoomBox.size.width = 100
                            }
                            if ("auto" === this.zoomBox.size.height) {
                                this.zoomBox.size.hunits = "%";
                                this.zoomBox.size.height = 100
                            }
                        }
                    } else {
                        this.option("zoom-position", "right")
                    }
                }
                if ("preview" == this.zoomBox.mode) {
                    if ("auto" === this.zoomBox.size.width) {
                        this.zoomBox.size.wunits = "px"
                    }
                    if ("auto" === this.zoomBox.size.height) {
                        this.zoomBox.size.hunits = "px"
                    }
                }
                if ("zoom" == this.zoomBox.mode) {
                    if ("auto" === this.zoomBox.size.width || "inner" == this.option("zoom-position")) {
                        this.zoomBox.size.wunits = "%";
                        this.zoomBox.size.width = 100
                    }
                    if ("auto" === this.zoomBox.size.height || "inner" == this.option("zoom-position")) {
                        this.zoomBox.size.hunits = "%";
                        this.zoomBox.size.height = 100
                    }
                }
                if ("inner" == this.option("zoom-position")) {
                    this.node.jAddClass("mz-inner-zoom")
                }
            }
            this.zoomBox.position = this.zoomBox.custom ? "custom" : this.option("zoom-position");
            this.lens.border.x = parseFloat(this.lens.node.jGetCss("border-left-width") || "0");
            this.lens.border.y = parseFloat(this.lens.node.jGetCss("border-top-width") || "0");
            this.image.loadSmall(function() {
                if (2 !== this.image.small.state) {
                    return
                }
                this.image.setCurNode("small");
                this.size = this.image.node.jGetSize();
                this.registerEvents();
                this.ready = true;
                if (true === this.option("lazyZoom")) {
                    u("onZoomReady", this.id);
                    this.showHint()
                }
            }.jBind(this));
            if (true !== this.option("lazyZoom") || "always" == this.option("zoomOn")) {
                this.image.load(i(function(L) {
                    this.setupZoom(L, true)
                }).jBind(this));
                this.loadTimer = i(this.showLoading).jBind(this).jDelay(400)
            }
            this.setupSelectors()
        },
        stop: function() {
            this.unregisterEvents();
            if (this.zoomBox) {
                this.zoomBox.node.kill()
            }
            if (this.expandThumbs) {
                this.expandThumbs.stop();
                this.expandThumbs = null
            }
            if (this.expandBox) {
                this.expandBox.kill()
            }
            if (this.expanded) {
                i(A.browser.getDoc()).jSetCss({
                    overflow: ""
                })
            }
            i(this.additionalImages).jEach(function(I) {
                i(I.origin).jRemoveClass("mz-thumb-selected").jRemoveClass(this.option("cssClass") || "mz-$dummy-css-class-to-jRemove$")
            }, this);
            if (this.originalImg) {
                this.placeholder.append(this.originalImg);
                if (this.originalImgSrc) {
                    this.originalImg.setAttribute("src", this.originalImgSrc)
                }
            }
            if (this.originalTitle) {
                this.placeholder.setAttribute("title", this.originalTitle)
            }
            if (this.node) {
                this.node.kill()
            }
        },
        setupZoom: function(J, K) {
            var I = this.image;
            if (2 !== J.zoom.state) {
                this.image = J;
                this.ready = true;
                this.zoomBox.enable(false);
                return
            }
            this.image = J;
            this.image.setCurNode(this.expanded ? "zoom" : "small");
            this.zoomBox.image.src = this.image.getURL("zoom");
            this.zoomBox.node.jRemoveClass("mz-preview");
            this.zoomBox.image.getAttribute("style");
            this.zoomBox.image.removeAttribute("style");
            this.zoomBox.node.jGetSize();
            setTimeout(i(function() {
                var M = this.zoomBox.image.jGetSize(),
                    L;
                this.zoomSizeOrigin = this.image.jGetSize("zoom");
                if (M.width * M.height > 1 && M.width * M.height < this.zoomSizeOrigin.width * this.zoomSizeOrigin.height) {
                    this.zoomSizeOrigin = M
                }
                this.zoomSize = A.detach(this.zoomSizeOrigin);
                if ("preview" == this.zoomBox.mode) {
                    this.zoomBox.node.jAddClass("mz-preview")
                }
                this.setCaption();
                this.lens.image.src = this.image.node.currentSrc || this.image.node.src;
                this.zoomBox.enable(this.zoomBox.mode && !(this.expanded && "preview" == this.zoomBox.mode));
                this.ready = true;
                this.activateTimer = null;
                this.resizeCallback();
                this.node.jAddClass("mz-ready");
                this.hideLoading();
                if (I !== this.image) {
                    u("onUpdate", this.id, I.origin, this.image.origin);
                    if (this.nextImage) {
                        L = this.nextImage;
                        this.nextImage = null;
                        this.update(L.image, L.onswipe)
                    }
                } else {
                    if (!!K) {
                        u("onZoomReady", this.id)
                    }
                }
                if (this.initEvent) {
                    this.node.jCallEvent(this.initEvent.type, this.initEvent)
                } else {
                    if (this.expanded && "always" == this.option("expandZoomOn")) {
                        this.activate()
                    } else {
                        if (!!K) {
                            this.showHint()
                        }
                    }
                }
            }).jBind(this), 256)
        },
        setupSelectors: function() {
            var J = this.id,
                I, K;
            K = new RegExp("zoom\\-id(\\s+)?:(\\s+)?" + J + "($|;)");
            if (A.browser.features.query) {
                I = A.$A(document.querySelectorAll('[data-zoom-id="' + this.id + '"]'));
                I = i(I).concat(A.$A(document.querySelectorAll('[rel*="zoom-id"]')).filter(function(L) {
                    return K.test(L.getAttribute("rel") || "")
                }))
            } else {
                I = A.$A(document.getElementsByTagName("A")).filter(function(L) {
                    return J == L.getAttribute("data-zoom-id") || K.test(L.getAttribute("rel") || "")
                })
            }
            i(I).jEach(function(M) {
                var L, N;
                i(M).jAddEvent("click", function(O) {
                    O.stopDefaults()
                });
                L = new l().parseNode(M, this.originalTitle);
                if (this.image.zoom.src.has(L.zoom.src) && this.image.small.src.has(L.small.src)) {
                    i(L.origin).jAddClass("mz-thumb-selected");
                    L = this.image;
                    L.origin = M
                }
                if (!L.link && this.image.link) {
                    L.link = this.image.link
                }
                N = i(function() {
                    this.update(L)
                }).jBind(this);
                i(M).jAddEvent("mousedown", function(O) {
                    if ("stopImmediatePropagation" in O) {
                        O.stopImmediatePropagation()
                    }
                }, 5);
                i(M).jAddEvent("tap " + ("hover" == this.option("selectorTrigger") ? "mouseover mouseout" : "btnclick"), i(function(P, O) {
                    if (this.updateTimer) {
                        clearTimeout(this.updateTimer)
                    }
                    this.updateTimer = false;
                    if ("mouseover" == P.type) {
                        this.updateTimer = i(N).jDelay(O)
                    } else {
                        if ("tap" == P.type || "btnclick" == P.type) {
                            N()
                        }
                    }
                }).jBindAsEvent(this, 60)).jAddClass(this.option("cssClass")).jAddClass("mz-thumb");
                L.loadSmall();
                if (true !== this.option("lazyZoom")) {
                    L.loadZoom()
                }
                this.additionalImages.push(L)
            }, this)
        },
        update: function(I, J) {
            if (!this.ready) {
                this.nextImage = {
                    image: I,
                    onswipe: J
                };
                return
            }
            if (!I || I === this.image) {
                return false
            }
            this.deactivate(null, true);
            this.ready = false;
            this.node.jRemoveClass("mz-ready");
            this.loadTimer = i(this.showLoading).jBind(this).jDelay(400);
            I.load(i(function(Q) {
                var K, R, P, M, L, O, N = (A.browser.ieMode < 10) ? "jGetSize" : "getBoundingClientRect";
                this.hideLoading();
                Q.setCurNode("small");
                if (!Q.node) {
                    this.ready = true;
                    this.node.jAddClass("mz-ready");
                    return
                }
                this.setActiveThumb(Q);
                K = this.image.node[N]();
                if (this.expanded) {
                    Q.setCurNode("zoom");
                    P = A.$new("div").jAddClass("mz-expand-bg");
                    if (A.browser.features.cssFilters || A.browser.ieMode < 10) {
                        P.append(A.$new("img", {
                            src: Q.getURL("zoom")
                        }).jSetCss({
                            opacity: 0
                        }))
                    } else {
                        P.append(new A.SVGImage(Q.node).blur(b).getNode().jSetCss({
                            opacity: 0
                        }))
                    }
                    i(P).jSetCss({
                        "z-index": -99
                    }).jAppendTo(this.expandBox)
                }
                if (this.expanded && "zoom" === this.zoomBox.mode && "always" === this.option("expandZoomOn")) {
                    i(Q.node).jSetCss({
                        opacity: 0
                    }).jAppendTo(this.node);
                    R = K;
                    L = [Q.node, this.image.node];
                    O = [{
                        opacity: [0, 1]
                    }, {
                        opacity: [1, 0]
                    }];
                    i(Q.node).jSetCss({
                        "max-width": Math.min(Q.jGetSize("zoom").width, this.expandMaxWidth()),
                        "max-height": Math.min(Q.jGetSize("zoom").height, this.expandMaxHeight())
                    })
                } else {
                    this.node.jSetCss({
                        height: this.node[N]().height
                    });
                    this.image.node.jSetCss({
                        position: "absolute",
                        top: 0,
                        left: 0,
                        bottom: 0,
                        right: 0,
                        width: "100%",
                        height: "100%",
                        "max-width": "",
                        "max-height": ""
                    });
                    i(Q.node).jSetCss({
                        "max-width": Math.min(Q.jGetSize(this.expanded ? "zoom" : "small").width, this.expanded ? this.expandMaxWidth() : Infinity),
                        "max-height": Math.min(Q.jGetSize(this.expanded ? "zoom" : "small").height, this.expanded ? this.expandMaxHeight() : Infinity),
                        position: "relative",
                        top: 0,
                        left: 0,
                        opacity: 0,
                        transform: ""
                    }).jAppendTo(this.node);
                    R = i(Q.node)[N]();
                    if (!J) {
                        i(Q.node).jSetCss({
                            "min-width": K.width,
                            height: K.height,
                            "max-width": K.width,
                            "max-height": ""
                        })
                    }
                    this.node.jSetCss({
                        height: "",
                        overflow: ""
                    }).jGetSize();
                    i(Q.node).jGetSize();
                    L = [Q.node, this.image.node];
                    O = [A.extend({
                        opacity: [0, 1]
                    }, J ? {
                        scale: [0.6, 1]
                    } : {
                        "min-width": [K.width, R.width],
                        "max-width": [K.width, R.width],
                        height: [K.height, R.height]
                    }), {
                        opacity: [1, 0]
                    }]
                }
                if (this.expanded) {
                    if (this.expandBg.firstChild && P.firstChild) {
                        M = i(this.expandBg.firstChild).jGetCss("opacity");
                        if (A.browser.gecko) {
                            L = L.concat([P.firstChild]);
                            O = O.concat([{
                                opacity: [0.0001, M]
                            }])
                        } else {
                            L = L.concat([P.firstChild, this.expandBg.firstChild]);
                            O = O.concat([{
                                opacity: [0.0001, M]
                            }, {
                                opacity: [M, 0.0001]
                            }])
                        }
                    }
                }
                new A.PFX(L, {
                    duration: (J || this.option("transitionEffect")) ? J ? 400 : 350 : 0,
                    transition: J ? "cubic-bezier(0.175, 0.885, 0.320, 1.275)" : (K.width == R.width) ? "linear" : "cubic-bezier(0.25, .1, .1, 1)",
                    onComplete: i(function() {
                        this.image.node.jRemove().getAttribute("style");
                        this.image.node.removeAttribute("style");
                        i(Q.node).jSetCss(this.expanded ? {
                            width: "auto",
                            height: "auto"
                        } : {
                            width: "",
                            height: ""
                        }).jSetCss({
                            "min-width": "",
                            "min-height": "",
                            opacity: "",
                            "max-width": Math.min(Q.jGetSize(this.expanded ? "zoom" : "small").width, this.expanded ? this.expandMaxWidth() : Infinity),
                            "max-height": Math.min(Q.jGetSize(this.expanded ? "zoom" : "small").height, this.expanded ? this.expandMaxHeight() : Infinity)
                        });
                        if (this.expanded) {
                            this.expandBg.jRemove();
                            this.expandBg = undefined;
                            this.expandBg = P.jSetCssProp("z-index", -100);
                            i(this.expandBg.firstChild).jSetCss({
                                opacity: ""
                            });
                            if (this.expandCaption) {
                                if (Q.caption) {
                                    if (Q.link) {
                                        this.expandCaption.changeContent("").append(A.$new("a", {
                                            href: Q.link
                                        }).jAddEvent("tap btnclick", this.openLink.jBind(this)).changeContent(Q.caption))
                                    } else {
                                        this.expandCaption.changeContent(Q.caption).jAddClass("mz-show")
                                    }
                                } else {
                                    this.expandCaption.jRemoveClass("mz-show")
                                }
                            }
                        }
                        this.setupZoom(Q)
                    }).jBind(this),
                    onBeforeRender: i(function(S, T) {
                        if (undefined !== S.scale) {
                            T.jSetCssProp("transform", "scale(" + S.scale + ")")
                        }
                    })
                }).start(O)
            }).jBind(this))
        },
        setActiveThumb: function(J) {
            var I = false;
            i(this.additionalImages).jEach(function(K) {
                i(K.origin).jRemoveClass("mz-thumb-selected");
                if (K === J) {
                    I = true
                }
            });
            if (I && J.origin) {
                i(J.origin).jAddClass("mz-thumb-selected")
            }
            if (this.expandThumbs) {
                this.expandThumbs.selectItem(J.selector)
            }
        },
        setCaption: function(I) {
            if (this.image.caption && "off" !== this.option("zoomCaption") && "magnifier" !== this.zoomBox.mode) {
                if (!this.zoomBox.caption) {
                    this.zoomBox.caption = A.$new("div", {
                        "class": "mz-caption"
                    }).jAppendTo(this.zoomBox.node.jAddClass("caption-" + this.option("zoomCaption")))
                }
                this.zoomBox.caption.changeContent(this.image.caption)
            }
        },
        showHint: function(I, L, J) {
            var K;
            if (!this.expanded) {
                if (this.hintRuns <= 0) {
                    return
                }
                if (true !== J) {
                    this.hintRuns--
                }
            }
            if (undefined === L || null === L) {
                if (!this.zoomBox.active && !this.zoomBox.activating) {
                    if (this.option("zoomMode") && (this.zoomBox.enabled || !this.image.loaded())) {
                        if ("hover" == this.zoomBox.trigger) {
                            L = this.option("textHoverZoomHint")
                        } else {
                            if ("click" == this.zoomBox.trigger) {
                                L = this.option("textClickZoomHint")
                            }
                        }
                    } else {
                        L = this.option("expand") ? this.option("textExpandHint") : ""
                    }
                } else {
                    L = this.option("expand") ? this.option("textExpandHint") : ""
                }
            }
            if (!L) {
                this.hideHint();
                return
            }
            K = this.node;
            if (!this.hint) {
                this.hint = A.$new("div", {
                    "class": "mz-hint"
                });
                this.hintMessage = A.$new("span", {
                    "class": "mz-hint-message"
                }).append(document.createTextNode(L)).jAppendTo(this.hint);
                i(this.hint).jAppendTo(this.node)
            } else {
                i(this.hintMessage).changeContent(L)
            }
            this.hint.jSetCss({
                "transition-delay": ""
            }).jRemoveClass("mz-hint-hidden");
            if (this.expanded) {
                K = this.expandFigure
            } else {
                if ((this.zoomBox.active || this.zoomBox.activating) && "magnifier" !== this.zoomBox.mode && "inner" == this.zoomBox.position) {
                    K = this.zoomBox.node
                }
            }
            if (true === I) {
                setTimeout(i(function() {
                    this.hint.jAddClass("mz-hint-hidden")
                }).jBind(this), 16)
            }
            this.hint.jAppendTo(K)
        },
        hideHint: function() {
            if (this.hint) {
                this.hint.jSetCss({
                    "transition-delay": "0ms"
                }).jAddClass("mz-hint-hidden")
            }
        },
        showLoading: function() {
            if (!this.loadingBox) {
                this.loadingBox = A.$new("div", {
                    "class": "mz-loading"
                });
                this.node.append(this.loadingBox);
                this.loadingBox.jGetSize()
            }
            this.loadingBox.jAddClass("shown")
        },
        hideLoading: function() {
            clearTimeout(this.loadTimer);
            this.loadTimer = null;
            if (this.loadingBox) {
                i(this.loadingBox).jRemoveClass("shown")
            }
        },
        setSize: function(K, O) {
            var N = A.detach(this.zoomBox.size),
                M = (!this.expanded && this.zoomBox.custom) ? i(this.zoomBox.custom).jGetSize() : {
                    width: 0,
                    height: 0
                },
                J, I, L = this.size,
                P = {
                    x: 0,
                    y: 0
                };
            O = O || this.zoomBox.position;
            this.normalSize = this.image.node.jGetSize();
            this.size = this.image.node.jGetSize();
            this.boundaries = this.image.node.getBoundingClientRect();
            if (!M.height) {
                M = this.size
            }
            if (false === this.option("upscale") || false === this.zoomBox.mode || "preview" === this.zoomBox.mode) {
                K = false
            }
            if ("preview" == this.zoomBox.mode) {
                if ("auto" === N.width) {
                    N.width = this.zoomSizeOrigin.width
                }
                if ("auto" === N.height) {
                    N.height = this.zoomSizeOrigin.height
                }
            }
            if (this.expanded && "magnifier" == this.zoomBox.mode) {
                N.width = 70;
                N.height = "auto"
            }
            if ("magnifier" == this.zoomBox.mode && "auto" === N.height) {
                this.zoomBox.width = parseFloat(N.width / 100) * Math.min(M.width, M.height);
                this.zoomBox.height = this.zoomBox.width
            } else {
                if ("zoom" == this.zoomBox.mode && "inner" == O) {
                    this.size = this.node.jGetSize();
                    M = this.size;
                    this.boundaries = this.node.getBoundingClientRect();
                    this.zoomBox.width = M.width;
                    this.zoomBox.height = M.height
                } else {
                    this.zoomBox.width = ("%" === N.wunits) ? parseFloat(N.width / 100) * M.width : parseInt(N.width);
                    this.zoomBox.height = ("%" === N.hunits) ? parseFloat(N.height / 100) * M.height : parseInt(N.height)
                }
            }
            if ("preview" == this.zoomBox.mode) {
                I = Math.min(Math.min(this.zoomBox.width / this.zoomSizeOrigin.width, this.zoomBox.height / this.zoomSizeOrigin.height), 1);
                this.zoomBox.width = this.zoomSizeOrigin.width * I;
                this.zoomBox.height = this.zoomSizeOrigin.height * I
            }
            this.zoomBox.width = Math.ceil(this.zoomBox.width);
            this.zoomBox.height = Math.ceil(this.zoomBox.height);
            this.zoomBox.aspectRatio = this.zoomBox.width / this.zoomBox.height;
            this.zoomBox.node.jSetCss({
                width: this.zoomBox.width,
                height: this.zoomBox.height
            });
            if (K) {
                M = this.expanded ? this.expandBox.jGetSize() : this.zoomBox.node.jGetSize();
                if (!this.expanded && (this.normalSize.width * this.normalSize.height) / (this.zoomSizeOrigin.width * this.zoomSizeOrigin.height) > 0.8) {
                    this.zoomSize.width = 1.5 * this.zoomSizeOrigin.width;
                    this.zoomSize.height = 1.5 * this.zoomSizeOrigin.height
                } else {
                    this.zoomSize = A.detach(this.zoomSizeOrigin)
                }
            }
            if (false !== this.zoomBox.mode && !this.zoomBox.active && !(this.expanded && "always" == this.option("expandZoomOn"))) {
                if ((this.normalSize.width * this.normalSize.height) / (this.zoomSize.width * this.zoomSize.height) > 0.8) {
                    this.zoomSize = A.detach(this.zoomSizeOrigin);
                    this.zoomBox.enable(false)
                } else {
                    this.zoomBox.enable(true)
                }
            }
            this.zoomBox.image.jSetCss({
                width: this.zoomSize.width,
                height: this.zoomSize.height
            });
            J = this.zoomBox.node.getInnerSize();
            this.zoomBox.innerWidth = Math.ceil(J.width);
            this.zoomBox.innerHeight = Math.ceil(J.height);
            this.lens.width = Math.ceil(this.zoomBox.innerWidth / (this.zoomSize.width / this.size.width));
            this.lens.height = Math.ceil(this.zoomBox.innerHeight / (this.zoomSize.height / this.size.height));
            this.lens.node.jSetCss({
                width: this.lens.width,
                height: this.lens.height
            });
            this.lens.image.jSetCss(this.size);
            A.extend(this.lens, this.lens.node.jGetSize());
            if (this.zoomBox.active) {
                clearTimeout(this.moveTimer);
                this.moveTimer = null;
                if (this.lens.innertouch) {
                    this.lens.pos.x *= (this.size.width / L.width);
                    this.lens.pos.y *= (this.size.height / L.height);
                    P.x = this.lens.spos.x;
                    P.y = this.lens.spos.y
                } else {
                    P.x = this.boundaries.left + this.lens.width / 2 + (this.lens.pos.x * (this.size.width / L.width));
                    P.y = this.boundaries.top + this.lens.height / 2 + (this.lens.pos.y * (this.size.height / L.height))
                }
                this.animate(null, P)
            }
        },
        reflowZoom: function(M) {
            var P, O, I, N, L, K, J = i(this.node).jFetch("cr");
            I = a(5);
            L = this.zoomBox.position;
            N = this.expanded ? "inner" : this.zoomBox.custom ? "custom" : this.option("zoom-position");
            K = this.expanded && "zoom" == this.zoomBox.mode ? this.expandBox : document.body;
            if (this.expanded) {
                I.y = 0;
                I.x = 0
            }
            if (!M) {
                this.setSize(true, N)
            }
            P = this.boundaries.top;
            if ("magnifier" !== this.zoomBox.mode) {
                if (M) {
                    this.setSize(false);
                    return
                }
                switch (N) {
                    case "inner":
                    case "custom":
                        P = 0;
                        O = 0;
                        break;
                    case "top":
                        P = this.boundaries.top - this.zoomBox.height - this.option("zoom-distance");
                        if (I.top > P) {
                            P = this.boundaries.bottom + this.option("zoom-distance");
                            N = "bottom"
                        }
                        O = this.boundaries.left;
                        break;
                    case "bottom":
                        P = this.boundaries.bottom + this.option("zoom-distance");
                        if (I.bottom < P + this.zoomBox.height) {
                            P = this.boundaries.top - this.zoomBox.height - this.option("zoom-distance");
                            N = "top"
                        }
                        O = this.boundaries.left;
                        break;
                    case "left":
                        O = this.boundaries.left - this.zoomBox.width - this.option("zoom-distance");
                        if (I.left > O && I.right >= this.boundaries.right + this.option("zoom-distance") + this.zoomBox.width) {
                            O = this.boundaries.right + this.option("zoom-distance");
                            N = "right"
                        }
                        break;
                    case "right":
                    default:
                        O = this.boundaries.right + this.option("zoom-distance");
                        if (I.right < O + this.zoomBox.width && I.left <= this.boundaries.left - this.zoomBox.width - this.option("zoom-distance")) {
                            O = this.boundaries.left - this.zoomBox.width - this.option("zoom-distance");
                            N = "left"
                        }
                        break
                }
                switch (this.option("zoom-position")) {
                    case "top":
                    case "bottom":
                        if (I.top > P || I.bottom < P + this.zoomBox.height) {
                            N = "inner"
                        }
                        break;
                    case "left":
                    case "right":
                        if (I.left > O || I.right < O + this.zoomBox.width) {
                            N = "inner"
                        }
                        break
                }
                this.zoomBox.position = N;
                if (!this.zoomBox.activating && !this.zoomBox.active) {
                    if (A.browser.mobile && !this.expanded && "zoom" == this.zoomBox.mode) {
                        if (this.option("expand")) {
                            this.zoomBox.enable("inner" !== N)
                        } else {
                            if ("click" !== this.option("zoomOn")) {
                                this.zoomBox.trigger = "inner" === N ? "click" : this.option("zoomOn");
                                this.unregisterActivateEvent();
                                this.unregisterDeactivateEvent();
                                this.registerActivateEvent("click" === this.zoomBox.trigger);
                                this.registerDeactivateEvent("click" === this.zoomBox.trigger && !this.option("expand"))
                            }
                        }
                        this.showHint(false, null, true)
                    }
                    return
                }
                this.setSize(false);
                if (M) {
                    return
                }
                if ("custom" == N) {
                    K = this.zoomBox.custom;
                    I.y = 0;
                    I.x = 0
                }
                if ("inner" == N) {
                    if ("preview" !== this.zoomBox.mode) {
                        this.zoomBox.node.jAddClass("mz-inner");
                        this.node.jAddClass("mz-inner-zoom")
                    }
                    this.lens.hide();
                    P = this.boundaries.top + I.y;
                    O = this.boundaries.left + I.x;
                    if (!this.expanded && A.browser.ieMode && A.browser.ieMode < 11) {
                        P = 0;
                        O = 0;
                        K = this.node
                    }
                } else {
                    P += I.y;
                    O += I.x;
                    this.node.jRemoveClass("mz-inner-zoom");
                    this.zoomBox.node.jRemoveClass("mz-inner")
                }
                this.zoomBox.node.jSetCss({
                    top: P,
                    left: O
                })
            } else {
                this.setSize(false);
                K = this.node
            }
            this.zoomBox.node[this.expanded ? "jAddClass" : "jRemoveClass"]("mz-expanded");
            if (!this.expanded && J) {
                J.jAppendTo("zoom" == this.zoomBox.mode && "inner" == N ? this.zoomBox.node : this.node, ((Math.floor(Math.random() * 101) + 1) % 2) ? "top" : "bottom")
            }
            this.zoomBox.node.jAppendTo(K)
        },
        changeZoomLevel: function(O) {
            var K, I, M, L, N = false,
                J = O.isMouse ? 5 : 3 / 54;
            i(O).stop();
            J = (100 + J * Math.abs(O.deltaY)) / 100;
            if (O.deltaY < 0) {
                J = 1 / J
            }
            if ("magnifier" == this.zoomBox.mode) {
                I = Math.max(100, Math.round(this.zoomBox.width * J));
                I = Math.min(I, this.size.width * 0.9);
                M = I / this.zoomBox.aspectRatio;
                this.zoomBox.width = Math.ceil(I);
                this.zoomBox.height = Math.ceil(M);
                this.zoomBox.node.jSetCss({
                    width: this.zoomBox.width,
                    height: this.zoomBox.height
                });
                K = this.zoomBox.node.getInnerSize();
                this.zoomBox.innerWidth = Math.ceil(K.width);
                this.zoomBox.innerHeight = Math.ceil(K.height);
                N = true
            } else {
                if (!this.expanded && "zoom" == this.zoomBox.mode) {
                    I = Math.max(50, Math.round(this.lens.width * J));
                    I = Math.min(I, this.size.width * 0.9);
                    M = I / this.zoomBox.aspectRatio;
                    this.zoomSize.width = Math.ceil((this.zoomBox.innerWidth / I) * this.size.width);
                    this.zoomSize.height = Math.ceil((this.zoomBox.innerHeight / M) * this.size.height);
                    this.zoomBox.image.jSetCss({
                        width: this.zoomSize.width,
                        height: this.zoomSize.height
                    })
                } else {
                    return
                }
            }
            L = i(window).jGetScroll();
            this.lens.width = Math.ceil(this.zoomBox.innerWidth / (this.zoomSize.width / this.size.width));
            this.lens.height = Math.ceil(this.zoomBox.innerHeight / (this.zoomSize.height / this.size.height));
            this.lens.node.jSetCss({
                width: this.lens.width,
                height: this.lens.height
            });
            A.extend(this.lens, this.lens.node.jGetSize());
            if (this.zoomBox.active) {
                clearTimeout(this.moveTimer);
                this.moveTimer = null;
                if (N) {
                    this.moveTimer = true
                }
                this.animate(null, {
                    x: O.x - L.x,
                    y: O.y - L.y
                });
                if (N) {
                    this.moveTimer = null
                }
            }
        },
        registerActivateEvent: function(K) {
            var J;
            var I = K ? "dbltap btnclick" : "touchstart" + (window.navigator.pointerEnabled ? " pointerdown" : window.navigator.msPointerEnabled ? " MSPointerDown" : "") + (window.navigator.pointerEnabled ? " pointermove" : window.navigator.msPointerEnabled ? " MSPointerMove" : " mousemove");
            var L = this.node.jFetch("mz:handlers:activate:fn", (!K) ? i(function(M) {
                if (c(M) && !h(M)) {
                    return
                }
                if (M && "touch" === M.pointerType && "pointerdown" !== M.type) {
                    return
                }
                J = (A.browser.ieMode < 9) ? A.extend({}, M) : M;
                if (!this.activateTimer) {
                    clearTimeout(this.activateTimer);
                    this.activateTimer = setTimeout(i(function() {
                        this.activate(J)
                    }).jBind(this), 120)
                }
            }).jBindAsEvent(this) : i(this.activate).jBindAsEvent(this));
            this.node.jStore("mz:handlers:activate:event", I).jAddEvent(I, L, 10)
        },
        unregisterActivateEvent: function(J) {
            var I = this.node.jFetch("mz:handlers:activate:event"),
                K = this.node.jFetch("mz:handlers:activate:fn");
            this.node.jRemoveEvent(I, K);
            this.node.jDel("mz:handlers:activate:fn")
        },
        registerDeactivateEvent: function(J) {
            var I = J ? "dbltap btnclick" : "touchend" + (window.navigator.pointerEnabled ? " pointerup pointerout" : window.navigator.msPointerEnabled ? " MSPointerUp MSPointerOut" : " mouseout");
            var K = this.node.jFetch("mz:handlers:deactivate:fn", i(function(L) {
                if (c(L) && !h(L)) {
                    return
                }
                if (L && "pointerup" === L.type && "touch" !== L.pointerType) {
                    return
                }
                if (this.zoomBox.node !== L.getRelated() && !(("inner" == this.zoomBox.position || "magnifier" == this.zoomBox.mode) && this.zoomBox.node.hasChild(L.getRelated())) && !this.node.hasChild(L.getRelated())) {
                    this.deactivate(L)
                }
            }).jBindAsEvent(this));
            this.node.jStore("mz:handlers:deactivate:event", I).jAddEvent(I, K, 20)
        },
        unregisterDeactivateEvent: function() {
            var I = this.node.jFetch("mz:handlers:deactivate:event"),
                J = this.node.jFetch("mz:handlers:deactivate:fn");
            this.node.jRemoveEvent(I, J);
            this.node.jDel("mz:handlers:deactivate:fn")
        },
        registerEvents: function() {
            this.moveBind = this.move.jBind(this);
            this.node.jAddEvent(["touchstart", window.navigator.pointerEnabled ? "pointerdown" : "MSPointerDown"], i(function(I) {
                if ((A.browser.androidBrowser || "android" === A.browser.platform && A.browser.gecko) && this.option("zoomMode") && "click" !== this.option("zoomOn") && "touchstart" === I.type) {
                    I.stopDefaults();
                    if (A.browser.gecko) {
                        I.stopDistribution()
                    }
                }
                if (!this.zoomBox.active) {
                    return
                }
                if ("inner" === this.zoomBox.position) {
                    this.lens.spos = I.getClientXY()
                }
            }).jBindAsEvent(this), 10);
            this.node.jAddEvent(["touchend", window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp"], i(function(I) {
                if (c(I) && h(I)) {
                    this.lens.touchmovement = false
                }
            }).jBindAsEvent(this), 10);
            this.node.jAddEvent("touchmove " + ("android" === A.browser.platform ? "" : window.navigator.pointerEnabled ? "pointermove" : window.navigator.msPointerEnabled ? "MSPointerMove" : "mousemove"), i(this.animate).jBindAsEvent(this));
            if (this.option("zoomMode")) {
                this.registerActivateEvent("click" === this.option("zoomOn"));
                this.registerDeactivateEvent("click" === this.option("zoomOn") && !this.option("expand"))
            }
            this.node.jAddEvent("mousedown", function(I) {
                I.stopDistribution()
            }, 10).jAddEvent("btnclick", i(function(I) {
                this.node.jRaiseEvent("MouseEvent", "click");
                if (this.expanded) {
                    this.expandBox.jCallEvent("btnclick", I)
                }
            }).jBind(this), 15);
            if (this.option("expand")) {
                this.node.jAddEvent("tap btnclick", i(this.expand).jBindAsEvent(this), 15)
            } else {
                this.node.jAddEvent("tap btnclick", i(this.openLink).jBindAsEvent(this), 15)
            }
            if (this.additionalImages.length > 1) {
                this.swipe()
            }
            if (!A.browser.mobile && this.option("variableZoom")) {
                this.node.jAddEvent("mousescroll", this.changeZoomLevel.jBindAsEvent(this))
            }
            i(window).jAddEvent(A.browser.mobile ? "resize" : "resize scroll", this.onResize)
        },
        unregisterEvents: function() {
            if (this.node) {
                this.node.jRemoveEvent("mousescroll")
            }
            i(window).jRemoveEvent("resize scroll", this.onResize);
            i(this.additionalImages).jEach(function(I) {
                i(I.origin).jClearEvents()
            })
        },
        activate: function(O) {
            var P, N, L, M, I, J = 0,
                K = 0;
            if (!this.ready || !this.zoomBox.enabled || this.zoomBox.active || this.zoomBox.activating) {
                if (!this.image.loaded()) {
                    if (O) {
                        this.initEvent = e(O);
                        O.stopQueue()
                    }
                    this.image.load(this.setupZoom.jBind(this));
                    if (!this.loadTimer) {
                        this.loadTimer = i(this.showLoading).jBind(this).jDelay(400)
                    }
                }
                return
            }
            if (O && "pointermove" == O.type && "touch" == O.pointerType) {
                return
            }
            if (!this.option("zoomMode") && this.option("expand") && !this.expanded) {
                this.zoomBox.active = true;
                return
            }
            this.zoomBox.activating = true;
            if (this.expanded && "zoom" == this.zoomBox.mode) {
                M = this.image.node.jGetRect();
                this.expandStage.jAddClass("mz-zoom-in");
                I = this.expandFigure.jGetRect();
                K = ((M.left + M.right) / 2 - (I.left + I.right) / 2);
                J = ((M.top + M.bottom) / 2 - (I.top + I.bottom) / 2)
            }
            this.zoomBox.image.jRemoveEvent("transitionend");
            this.zoomBox.node.jRemoveClass("mz-deactivating").jRemoveEvent("transitionend");
            this.zoomBox.node.jAddClass("mz-activating");
            this.node.jAddClass("mz-activating");
            this.reflowZoom();
            N = ("zoom" == this.zoomBox.mode) ? this.zoomBox.position : this.zoomBox.mode;
            if (A.browser.features.transition && !(this.expanded && "always" == this.option("expandZoomOn"))) {
                if ("inner" == N) {
                    L = this.image.node.jGetSize();
                    this.zoomBox.image.jSetCss({
                        transform: "translate3d(0," + J + "px, 0) scale(" + L.width / this.zoomSize.width + ", " + L.height / this.zoomSize.height + ")"
                    }).jGetSize();
                    this.zoomBox.image.jAddEvent("transitionend", i(function() {
                        this.zoomBox.image.jRemoveEvent("transitionend");
                        this.zoomBox.node.jRemoveClass("mz-activating mz-p-" + N);
                        this.zoomBox.activating = false;
                        this.zoomBox.active = true
                    }).jBind(this));
                    this.zoomBox.node.jAddClass("mz-p-" + N).jGetSize();
                    if (!A.browser.mobile && A.browser.chrome && ("chrome" === A.browser.uaName || "opera" === A.browser.uaName)) {
                        this.zoomBox.activating = false;
                        this.zoomBox.active = true
                    }
                } else {
                    this.zoomBox.node.jAddEvent("transitionend", i(function() {
                        this.zoomBox.node.jRemoveEvent("transitionend");
                        this.zoomBox.node.jRemoveClass("mz-activating mz-p-" + N)
                    }).jBind(this));
                    this.zoomBox.node.jAddClass("mz-p-" + N).jGetSize();
                    this.zoomBox.node.jRemoveClass("mz-p-" + N);
                    this.zoomBox.activating = false;
                    this.zoomBox.active = true
                }
            } else {
                this.zoomBox.node.jRemoveClass("mz-activating");
                this.zoomBox.activating = false;
                this.zoomBox.active = true
            }
            if (!this.expanded) {
                this.showHint(true)
            }
            if (O) {
                O.stop().stopQueue();
                P = O.getClientXY();
                if ("magnifier" == this.zoomBox.mode && (/tap/i).test(O.type)) {
                    P.y -= this.zoomBox.height / 2 + 10
                }
                if ("inner" == N && ((/tap/i).test(O.type) || c(O))) {
                    this.lens.pos = {
                        x: 0,
                        y: 0
                    };
                    P.x = -(P.x - this.boundaries.left - this.size.width / 2) * (this.zoomSize.width / this.size.width);
                    P.y = -(P.y - this.boundaries.top - this.size.height / 2) * (this.zoomSize.height / this.size.height)
                }
            } else {
                P = {
                    x: this.boundaries.left + (this.boundaries.right - this.boundaries.left) / 2,
                    y: this.boundaries.top + (this.boundaries.bottom - this.boundaries.top) / 2
                };
                if (A.browser.mobile && this.expanded && "always" === this.option("expandZoomOn")) {
                    this.lens.innertouch = true;
                    this.lens.pos = {
                        x: 0,
                        y: 0
                    };
                    P.x = -(P.x - this.boundaries.left - this.size.width / 2) * (this.zoomSize.width / this.size.width);
                    P.y = -(P.y - this.boundaries.top - this.size.height / 2) * (this.zoomSize.height / this.size.height)
                }
            }
            this.node.jRemoveClass("mz-activating").jAddClass("mz-active");
            P.x += -K;
            P.y += -J;
            this.lens.spos = {
                x: 0,
                y: 0
            };
            this.lens.dx = 0;
            this.lens.dy = 0;
            this.animate(O, P, true);
            u("onZoomIn", this.id)
        },
        deactivate: function(K, P) {
            var N, L, I, J, M = 0,
                O = 0,
                Q = this.zoomBox.active;
            this.initEvent = null;
            if (!this.ready) {
                return
            }
            if (K && "pointerout" == K.type && "touch" == K.pointerType) {
                return
            }
            clearTimeout(this.moveTimer);
            this.moveTimer = null;
            clearTimeout(this.activateTimer);
            this.activateTimer = null;
            this.zoomBox.activating = false;
            this.zoomBox.active = false;
            if (true !== P && !this.expanded) {
                if (Q) {
                    if (A.browser.mobile && !this.expanded && "zoom" == this.zoomBox.mode) {
                        this.reflowZoom()
                    } else {
                        this.showHint()
                    }
                }
            }
            if (!this.zoomBox.enabled) {
                return
            }
            if (K) {
                K.stop()
            }
            this.zoomBox.image.jRemoveEvent("transitionend");
            this.zoomBox.node.jRemoveClass("mz-activating").jRemoveEvent("transitionend");
            if (this.expanded) {
                J = this.expandFigure.jGetRect();
                if ("always" !== this.option("expandZoomOn")) {
                    this.expandStage.jRemoveClass("mz-zoom-in")
                }
                this.image.node.jSetCss({
                    "max-height": this.expandMaxHeight()
                });
                I = this.image.node.jGetRect();
                O = ((I.left + I.right) / 2 - (J.left + J.right) / 2);
                M = ((I.top + I.bottom) / 2 - (J.top + J.bottom) / 2)
            }
            N = ("zoom" == this.zoomBox.mode) ? this.zoomBox.position : this.zoomBox.mode;
            if (A.browser.features.transition && K && !(this.expanded && "always" == this.option("expandZoomOn"))) {
                if ("inner" == N) {
                    this.zoomBox.image.jAddEvent("transitionend", i(function() {
                        this.zoomBox.image.jRemoveEvent("transitionend");
                        this.node.jRemoveClass("mz-active");
                        setTimeout(i(function() {
                            this.zoomBox.hide()
                        }).jBind(this), 32)
                    }).jBind(this));
                    L = this.image.node.jGetSize();
                    this.zoomBox.node.jAddClass("mz-deactivating mz-p-" + N).jGetSize();
                    this.zoomBox.image.jSetCss({
                        transform: "translate3d(0," + M + "px,0) scale(" + L.width / this.zoomSize.width + ", " + L.height / this.zoomSize.height + ")"
                    })
                } else {
                    this.zoomBox.node.jAddEvent("transitionend", i(function() {
                        this.zoomBox.hide();
                        this.node.jRemoveClass("mz-active")
                    }).jBind(this));
                    this.zoomBox.node.jGetCss("opacity");
                    this.zoomBox.node.jAddClass("mz-deactivating mz-p-" + N);
                    this.node.jRemoveClass("mz-active")
                }
            } else {
                this.zoomBox.hide();
                this.node.jRemoveClass("mz-active")
            }
            this.lens.dx = 0;
            this.lens.dy = 0;
            this.lens.spos = {
                x: 0,
                y: 0
            };
            this.lens.hide();
            if (Q) {
                u("onZoomOut", this.id)
            }
        },
        animate: function(S, R, Q) {
            var K = R,
                M, L, O = 0,
                J, N = 0,
                I, T, P = false;
            if (!this.zoomBox.active && !Q) {
                return
            }
            if (S) {
                i(S).stopDefaults().stopDistribution();
                if (c(S) && !h(S)) {
                    return
                }
                P = (/tap/i).test(S.type) || c(S);
                if (P && !this.lens.touchmovement) {
                    this.lens.touchmovement = P
                }
                if (!K) {
                    K = S.getClientXY()
                }
            }
            if ("preview" == this.zoomBox.mode) {
                return
            }
            if ("zoom" == this.zoomBox.mode && "inner" === this.zoomBox.position && (S && P || !S && this.lens.innertouch)) {
                this.lens.innertouch = true;
                M = this.lens.pos.x + (K.x - this.lens.spos.x);
                L = this.lens.pos.y + (K.y - this.lens.spos.y);
                this.lens.spos = K;
                O = Math.min(0, this.zoomBox.innerWidth - this.zoomSize.width) / 2;
                J = -O;
                N = Math.min(0, this.zoomBox.innerHeight - this.zoomSize.height) / 2;
                I = -N
            } else {
                this.lens.innertouch = false;
                if ("magnifier" == this.zoomBox.mode) {
                    K.y = Math.max(this.boundaries.top, Math.min(K.y, this.boundaries.bottom));
                    K.x = Math.max(this.boundaries.left, Math.min(K.x, this.boundaries.right))
                }
                M = K.x - this.boundaries.left;
                L = K.y - this.boundaries.top;
                J = this.size.width - this.lens.width;
                I = this.size.height - this.lens.height;
                M -= this.lens.width / 2;
                L -= this.lens.height / 2
            }
            if ("magnifier" !== this.zoomBox.mode) {
                M = Math.max(O, Math.min(M, J));
                L = Math.max(N, Math.min(L, I))
            }
            this.lens.pos.x = M = Math.round(M);
            this.lens.pos.y = L = Math.round(L);
            if ("zoom" == this.zoomBox.mode && "inner" != this.zoomBox.position) {
                if (A.browser.features.transform) {
                    this.lens.node.jSetCss({
                        transform: "translate(" + this.lens.pos.x + "px," + this.lens.pos.y + "px)"
                    });
                    this.lens.image.jSetCss({
                        transform: "translate(" + -(this.lens.pos.x + this.lens.border.x) + "px, " + -(this.lens.pos.y + this.lens.border.y) + "px)"
                    })
                } else {
                    this.lens.node.jSetCss({
                        top: this.lens.pos.y,
                        left: this.lens.pos.x
                    });
                    this.lens.image.jSetCss({
                        top: -(this.lens.pos.y + this.lens.border.y),
                        left: -(this.lens.pos.x + this.lens.border.x)
                    })
                }
            }
            if ("magnifier" == this.zoomBox.mode) {
                if (this.lens.touchmovement && !(S && "dbltap" == S.type)) {
                    K.y -= this.zoomBox.height / 2 + 10
                }
                this.zoomBox.node.jSetCss({
                    top: K.y - this.boundaries.top - this.zoomBox.height / 2,
                    left: K.x - this.boundaries.left - this.zoomBox.width / 2
                })
            }
            if (!this.moveTimer) {
                this.lens.dx = 0;
                this.lens.dy = 0;
                this.move(1)
            }
        },
        move: function(K) {
            var J, I;
            if (!isFinite(K)) {
                if (this.lens.innertouch) {
                    K = this.lens.touchmovement ? 0.4 : 0.16
                } else {
                    K = this.option("smoothing") ? 0.2 : this.lens.touchmovement ? 0.4 : 0.8
                }
            }
            J = ((this.lens.pos.x - this.lens.dx) * K);
            I = ((this.lens.pos.y - this.lens.dy) * K);
            this.lens.dx += J;
            this.lens.dy += I;
            if (!this.moveTimer || Math.abs(J) > 0.000001 || Math.abs(I) > 0.000001) {
                this.zoomBox.image.jSetCss(A.browser.features.transform ? {
                    transform: g + (this.lens.innertouch ? this.lens.dx : -(this.lens.dx * (this.zoomSize.width / this.size.width) - Math.max(0, this.zoomSize.width - this.zoomBox.innerWidth) / 2)) + "px," + (this.lens.innertouch ? this.lens.dy : -(this.lens.dy * (this.zoomSize.height / this.size.height) - Math.max(0, this.zoomSize.height - this.zoomBox.innerHeight) / 2)) + "px" + C + " scale(1)"
                } : {
                    left: -(this.lens.dx * (this.zoomSize.width / this.size.width) + Math.min(0, this.zoomSize.width - this.zoomBox.innerWidth) / 2),
                    top: -(this.lens.dy * (this.zoomSize.height / this.size.height) + Math.min(0, this.zoomSize.height - this.zoomBox.innerHeight) / 2)
                })
            }
            if ("magnifier" == this.zoomBox.mode) {
                return
            }
            this.moveTimer = setTimeout(this.moveBind, 16)
        },
        swipe: function() {
            var U, K, P = 30,
                M = 201,
                R, S = "",
                J = {},
                I, O, T = 0,
                V = {
                    transition: A.browser.cssTransform + String.fromCharCode(32) + "300ms cubic-bezier(.18,.35,.58,1)"
                },
                L, Q, N = i(function(W) {
                    if (!this.ready || this.zoomBox.active) {
                        return
                    }
                    if (W.state == "dragstart") {
                        clearTimeout(this.activateTimer);
                        this.activateTimer = null;
                        T = 0;
                        J = {
                            x: W.x,
                            y: W.y,
                            ts: W.timeStamp
                        };
                        U = this.size.width;
                        K = U / 2;
                        this.image.node.jRemoveEvent("transitionend");
                        this.image.node.jSetCssProp("transition", "");
                        this.image.node.jSetCssProp("transform", "translate3d(0, 0, 0)");
                        Q = null
                    } else {
                        I = (W.x - J.x);
                        O = {
                            x: 0,
                            y: 0,
                            z: 0
                        };
                        if (null === Q) {
                            Q = (Math.abs(W.x - J.x) < Math.abs(W.y - J.y))
                        }
                        if (Q) {
                            return
                        }
                        W.stop();
                        if ("dragend" == W.state) {
                            T = 0;
                            L = null;
                            R = W.timeStamp - J.ts;
                            if (Math.abs(I) > K || (R < M && Math.abs(I) > P)) {
                                if ((S = (I > 0) ? "backward" : (I <= 0) ? "forward" : "")) {
                                    if (S == "backward") {
                                        L = this.getPrev();
                                        T += U * 10
                                    } else {
                                        L = this.getNext();
                                        T -= U * 10
                                    }
                                }
                            }
                            O.x = T;
                            O.deg = -90 * (O.x / U);
                            this.image.node.jAddEvent("transitionend", i(function(X) {
                                this.image.node.jRemoveEvent("transitionend");
                                this.image.node.jSetCssProp("transition", "");
                                if (L) {
                                    this.image.node.jSetCss({
                                        transform: "translate3d(" + O.x + "px, 0px, 0px)"
                                    });
                                    this.update(L, true)
                                }
                            }).jBind(this));
                            this.image.node.jSetCss(V);
                            this.image.node.jSetCss({
                                "transition-duration": O.x ? "100ms" : "300ms",
                                opacity: 1 - 0.7 * Math.abs(O.x / U),
                                transform: "translate3d(" + O.x + "px, 0px, 0px)"
                            });
                            I = 0;
                            return
                        }
                        O.x = I;
                        O.z = -50 * Math.abs(O.x / K);
                        O.deg = -60 * (O.x / K);
                        this.image.node.jSetCss({
                            opacity: 1 - 0.7 * Math.abs(O.x / K),
                            transform: "translate3d(" + O.x + "px, 0px, " + O.z + "px)"
                        })
                    }
                }).jBind(this);
            this.node.jAddEvent("touchdrag", N)
        },
        setupExpandGallery: function() {
            var J, I;
            if (this.additionalImages.length) {
                this.expandGallery = this.additionalImages
            } else {
                J = this.placeholder.getAttribute("data-gallery");
                if (J) {
                    if (A.browser.features.query) {
                        I = A.$A(document.querySelectorAll('.MagicZoom[data-gallery="' + J + '"]'))
                    } else {
                        I = A.$A(document.getElementsByTagName("A")).filter(function(K) {
                            return J == K.getAttribute("data-gallery")
                        })
                    }
                    i(I).jEach(function(L) {
                        var K, M;
                        K = j(L);
                        if (K && K.additionalImages.length > 0) {
                            return
                        }
                        if (K) {
                            M = new l(K.image.small.url, K.image.zoom.url, K.image.caption, null, K.image.origin)
                        } else {
                            M = new l().parseNode(L, K ? K.originalTitle : null)
                        }
                        if (this.image.zoom.src.has(M.zoom.url) && this.image.small.src.has(M.small.url)) {
                            M = this.image
                        }
                        this.expandGallery.push(M)
                    }, this);
                    this.primaryImage = this.image
                }
            }
            if (this.expandGallery.length > 1) {
                this.expandStage.jAddClass("with-thumbs");
                this.expandNav = A.$new("div", {
                    "class": "mz-expand-thumbnails"
                }).jAppendTo(this.expandStage);
                this.expandThumbs = new s(this.expandNav);
                i(this.expandGallery).jEach(function(K) {
                    var L = i(function(M) {
                        this.setActiveThumb(K);
                        this.update(K)
                    }).jBind(this);
                    K.selector = this.expandThumbs.addItem(A.$new("img", {
                        src: K.getURL("small")
                    }).jAddEvent("tap btnclick", function(M) {
                        M.stop()
                    }).jAddEvent("tap " + ("hover" == this.option("selectorTrigger") ? "mouseover mouseout" : "btnclick"), i(function(N, M) {
                        if (this.updateTimer) {
                            clearTimeout(this.updateTimer)
                        }
                        this.updateTimer = false;
                        if ("mouseover" == N.type) {
                            this.updateTimer = i(L).jDelay(M)
                        } else {
                            if ("tap" == N.type || "btnclick" == N.type) {
                                L()
                            }
                        }
                    }).jBindAsEvent(this, 60)))
                }, this);
                this.buttons.next.show();
                this.buttons.prev.show()
            } else {
                this.expandStage.jRemoveClass("with-thumbs");
                this.buttons.next.hide();
                this.buttons.prev.hide()
            }
        },
        destroyExpandGallery: function() {
            var I;
            if (this.expandThumbs) {
                this.expandThumbs.stop();
                this.expandThumbs = null
            }
            if (this.expandNav) {
                this.expandNav.jRemove();
                this.expandNav = null
            }
            if (this.expandGallery.length > 1 && !this.additionalImages.length) {
                this.node.jRemoveEvent("touchdrag");
                this.image.node.jRemove().getAttribute("style");
                this.image.node.removeAttribute("style");
                this.primaryImage.node.jAppendTo(this.node);
                this.setupZoom(this.primaryImage);
                while (I = this.expandGallery.pop()) {
                    if (I !== this.primaryImage) {
                        if (I.small.node) {
                            I.small.node.kill();
                            I.small.node = null
                        }
                        if (I.zoom.node) {
                            I.zoom.node.kill();
                            I.zoom.node = null
                        }
                        I = null
                    }
                }
            }
            this.expandGallery = []
        },
        close: function() {
            if (!this.ready || !this.expanded) {
                return
            }
            if ("ios" == A.browser.platform && "safari" == A.browser.uaName && 7 == parseInt(A.browser.uaVersion)) {
                clearInterval(n);
                n = null
            }
            i(document).jRemoveEvent("keydown", this.keyboardCallback);
            this.deactivate(null, true);
            this.ready = false;
            if (y.browser.fullScreen.capable && y.browser.fullScreen.enabled()) {
                y.browser.fullScreen.cancel()
            } else {
                if (A.browser.features.transition) {
                    this.node.jRemoveEvent("transitionend").jSetCss({
                        transition: ""
                    });
                    this.node.jAddEvent("transitionend", this.onClose);
                    if (A.browser.chrome && ("chrome" === A.browser.uaName || "opera" === A.browser.uaName)) {
                        setTimeout(i(function() {
                            this.onClose()
                        }).jBind(this), 600)
                    }
                    this.expandBg.jRemoveEvent("transitionend").jSetCss({
                        transition: ""
                    });
                    this.expandBg.jSetCss({
                        transition: "all 0.6s cubic-bezier(0.895, 0.030, 0.685, 0.220) 0.0s"
                    }).jGetSize();
                    if (A.browser.androidBrowser && "chrome" !== A.browser.uaName) {
                        this.node.jSetCss({
                            transition: "all .4s cubic-bezier(0.600, 0, 0.735, 0.045) 0s"
                        }).jGetSize()
                    } else {
                        this.node.jSetCss({
                            transition: "all .4s cubic-bezier(0.600, -0.280, 0.735, 0.045) 0s"
                        }).jGetSize()
                    }
                    if (false !== this.zoomBox.mode && "always" == this.option("expandZoomOn") && "magnifier" !== this.option("expandZoomMode")) {
                        this.image.node.jSetCss({
                            "max-height": this.image.jGetSize("zoom").height
                        });
                        this.image.node.jSetCss({
                            "max-width": this.image.jGetSize("zoom").width
                        })
                    }
                    this.expandBg.jSetCss({
                        opacity: 0.4
                    });
                    this.node.jSetCss({
                        opacity: 0.01,
                        transform: "scale(0.4)"
                    })
                } else {
                    this.onClose()
                }
            }
        },
        expand: function(K) {
            if (!this.image.loaded() || !this.ready || this.expanded) {
                if (!this.image.loaded()) {
                    if (K) {
                        this.initEvent = e(K);
                        K.stopQueue()
                    }
                    this.image.load(this.setupZoom.jBind(this));
                    if (!this.loadTimer) {
                        this.loadTimer = i(this.showLoading).jBind(this).jDelay(400)
                    }
                }
                return
            }
            if (K) {
                K.stopQueue()
            }
            var I = i(this.node).jFetch("cr"),
                J = document.createDocumentFragment();
            this.hideHint();
            this.hintRuns--;
            this.deactivate(null, true);
            this.unregisterActivateEvent();
            this.unregisterDeactivateEvent();
            this.ready = false;
            if (!this.expandBox) {
                this.expandBox = A.$new("div").jAddClass("mz-expand").jAddClass(this.option("cssClass")).jSetCss({
                    opacity: 0
                });
                this.expandStage = A.$new("div").jAddClass("mz-expand-stage").jAppendTo(this.expandBox);
                this.expandControls = A.$new("div").jAddClass("mz-expand-controls").jAppendTo(this.expandStage);
                i(["prev", "next", "close"]).jEach(function(M) {
                    var L = "mz-button";
                    this.buttons[M] = A.$new("button", {
                        title: this.option("text-btn-" + M)
                    }).jAddClass(L).jAddClass(L + "-" + M);
                    J.appendChild(this.buttons[M]);
                    switch (M) {
                        case "prev":
                            this.buttons[M].jAddEvent("tap btnclick", function(N) {
                                N.stop();
                                this.update(this.getPrev())
                            }.jBindAsEvent(this));
                            break;
                        case "next":
                            this.buttons[M].jAddEvent("tap btnclick", function(N) {
                                N.stop();
                                this.update(this.getNext())
                            }.jBindAsEvent(this));
                            break;
                        case "close":
                            this.buttons[M].jAddEvent("tap btnclick", function(N) {
                                N.stop();
                                this.close()
                            }.jBindAsEvent(this));
                            break
                    }
                }, this);
                this.expandControls.append(J);
                this.expandBox.jAddEvent("mousescroll touchstart dbltap", i(function(L) {
                    i(L).stop()
                }));
                if (this.option("closeOnClickOutside")) {
                    this.expandBox.jAddEvent("tap btnclick", function(N) {
                        var M = N.jGetPageXY(),
                            L = i("magnifier" === this.option("expandZoomMode") ? this.zoomBox.node : this.zoomBox.image).jGetRect();
                        if ("always" !== this.option("expandZoomOn") && L.top <= M.y && M.y <= L.bottom && L.left <= M.x && M.x <= L.right) {
                            N.stopQueue();
                            this.deactivate(N);
                            return
                        }
                        if ("always" !== this.option("expandZoomOn") && this.node.hasChild(N.getOriginalTarget())) {
                            return
                        }
                        N.stop();
                        this.close()
                    }.jBindAsEvent(this))
                }
                this.keyboardCallback = i(function(M) {
                    var L = null;
                    if (27 !== M.keyCode && 37 !== M.keyCode && 39 !== M.keyCode) {
                        return
                    }
                    i(M).stop();
                    if (27 === M.keyCode) {
                        this.close()
                    } else {
                        L = (37 === M.keyCode) ? this.getPrev() : this.getNext();
                        if (L) {
                            this.update(L)
                        }
                    }
                }).jBindAsEvent(this);
                this.onExpand = i(function() {
                    var L;
                    this.node.jRemoveEvent("transitionend").jSetCss({
                        transition: "",
                        transform: "translate3d(0, 0, 0)"
                    });
                    if (this.expanded) {
                        return
                    }
                    this.expanded = true;
                    this.expandBox.jRemoveClass("mz-expand-opening").jSetCss({
                        opacity: 1
                    });
                    this.zoomBox.setMode(this.option("expandZoomMode"));
                    this.zoomSize = A.detach(this.zoomSizeOrigin);
                    this.resizeCallback();
                    if (this.expandCaption && this.image.caption) {
                        if (this.image.link) {
                            this.expandCaption.append(A.$new("a", {
                                href: this.image.link
                            }).jAddEvent("tap btnclick", this.openLink.jBind(this)).changeContent(this.image.caption))
                        } else {
                            this.expandCaption.changeContent(this.image.caption)
                        }
                        this.expandCaption.jAddClass("mz-show")
                    }
                    if ("always" !== this.option("expandZoomOn")) {
                        this.registerActivateEvent(true);
                        this.registerDeactivateEvent(true)
                    }
                    this.ready = true;
                    if ("always" === this.option("expandZoomOn")) {
                        if (false !== this.zoomBox.mode) {
                            this.zoomBox.enable(true)
                        }
                        if (A.browser.mobile && this.mobileZoomHint) {
                            this.mobileZoomHint = false
                        }
                        this.activate()
                    }
                    if ((A.browser.mobile || this.option("forceTouch")) && this.zoomBox.enabled) {
                        if (this.mobileZoomHint || this.hintRuns > 0) {
                            this.showHint(true, this.option("textClickZoomHint"))
                        }
                        this.mobileZoomHint = false
                    }
                    this.expandControls.jRemoveClass("mz-hidden").jAddClass("mz-fade mz-visible");
                    this.expandNav && this.expandNav.jRemoveClass("mz-hidden").jAddClass("mz-fade mz-visible");
                    if (this.expandThumbs) {
                        this.expandThumbs.run();
                        this.setActiveThumb(this.image)
                    }
                    if (I) {
                        I.jAppendTo(this.expandBox, ((Math.floor(Math.random() * 101) + 1) % 2) ? "top" : "bottom")
                    }
                    if (this.expandGallery.length && !this.additionalImages.length) {
                        this.swipe()
                    }
                    i(document).jAddEvent("keydown", this.keyboardCallback);
                    if ("ios" == A.browser.platform && "safari" == A.browser.uaName && 7 == parseInt(A.browser.uaVersion)) {
                        n = w()
                    }
                    u("onExpandOpen", this.id)
                }).jBind(this);
                this.onClose = i(function() {
                    this.node.jRemoveEvent("transitionend");
                    if (!this.expanded) {
                        return
                    }
                    if (this.expanded) {
                        i(document).jRemoveEvent("keydown", this.keyboardCallback);
                        this.deactivate(null, true)
                    }
                    this.destroyExpandGallery();
                    this.expanded = false;
                    this.zoomBox.setMode(this.option("zoomMode"));
                    this.node.replaceChild(this.image.getNode("small"), this.image.node);
                    this.image.setCurNode("small");
                    i(this.image.node).jSetCss({
                        width: "",
                        height: "",
                        "max-width": Math.min(this.image.jGetSize("small").width),
                        "max-height": Math.min(this.image.jGetSize("small").height)
                    });
                    this.lens.image.src = this.image.getURL("small");
                    this.node.jSetCss({
                        opacity: "",
                        transition: ""
                    });
                    this.node.jSetCss({
                        transform: "translate3d(0, 0, 0)"
                    });
                    i(this.placeholder).replaceChild(this.node, this.stubNode);
                    this.setSize(true);
                    if (this.expandCaption) {
                        this.expandCaption.jRemove();
                        this.expandCaption = null
                    }
                    this.unregisterActivateEvent();
                    this.unregisterDeactivateEvent();
                    if ("always" == this.option("zoomOn")) {
                        this.activate()
                    } else {
                        if (false !== this.option("zoomMode")) {
                            this.registerActivateEvent("click" === this.option("zoomOn"));
                            this.registerDeactivateEvent("click" === this.option("zoomOn") && !this.option("expand"))
                        }
                    }
                    this.showHint();
                    this.expandBg.jRemoveEvent("transitionend");
                    this.expandBox.jRemove();
                    this.expandBg.jRemove();
                    this.expandBg = null;
                    i(A.browser.getDoc()).jRemoveClass("mz-expanded-view-open");
                    this.ready = true;
                    if (A.browser.ieMode < 10) {
                        this.resizeCallback()
                    } else {
                        i(window).jRaiseEvent("UIEvent", "resize")
                    }
                    u("onExpandClose", this.id)
                }).jBind(this);
                this.expandImageStage = A.$new("div", {
                    "class": "mz-image-stage"
                }).jAppendTo(this.expandStage);
                this.expandFigure = A.$new("figure").jAppendTo(this.expandImageStage);
                this.stubNode = this.node.cloneNode(false)
            }
            this.setupExpandGallery();
            i(A.browser.getDoc()).jAddClass("mz-expanded-view-open");
            i(document.body).jGetSize();
            if ("fullscreen" == this.option("expand")) {
                this.prepareExpandedView();
                y.browser.fullScreen.request(this.expandBox, {
                    onEnter: i(function() {
                        this.onExpand()
                    }).jBind(this),
                    onExit: this.onClose,
                    fallback: i(function() {
                        this.expandToWindow()
                    }).jBind(this)
                })
            } else {
                setTimeout(i(function() {
                    this.prepareExpandedView();
                    this.expandToWindow()
                }).jBind(this), 96)
            }
        },
        prepareExpandedView: function() {
            var J, I;
            J = A.$new("img", {
                src: this.image.getURL("zoom")
            });
            this.expandBg = A.$new("div").jAddClass("mz-expand-bg").append((A.browser.features.cssFilters || A.browser.ieMode < 10) ? J : new A.SVGImage(J).blur(b).getNode()).jAppendTo(this.expandBox);
            if ("always" === this.option("expandZoomOn") && false !== this.option("expandZoomMode")) {
                this.expandStage.jAddClass("mz-always-zoom" + ("zoom" === this.option("expandZoomMode") ? " mz-zoom-in" : "")).jGetSize()
            }
            I = i(this.node)[(A.browser.ieMode < 10) ? "jGetSize" : "getBoundingClientRect"]();
            i(this.stubNode).jSetCss({
                width: I.width,
                height: I.height
            });
            this.node.replaceChild(this.image.getNode("zoom"), this.image.node);
            this.image.setCurNode("zoom");
            this.expandBox.jAppendTo(document.body);
            this.expandMaxWidth = function() {
                var K = this.expandImageStage;
                if (i(this.expandFigure).jGetSize().width > 50) {
                    K = this.expandFigure
                }
                return function() {
                    return "always" == this.option("expandZoomOn") && false !== this.option("expandZoomMode") && "magnifier" !== this.option("expandZoomMode") ? Infinity : Math.round(i(K).getInnerSize().width)
                }
            }.call(this);
            this.expandMaxHeight = function() {
                var K = this.expandImageStage;
                if (i(this.expandFigure).jGetSize().height > 50) {
                    K = this.expandFigure
                }
                return function() {
                    return "always" == this.option("expandZoomOn") && false !== this.option("expandZoomMode") && "magnifier" !== this.option("expandZoomMode") ? Infinity : Math.round(i(K).getInnerSize().height)
                }
            }.call(this);
            this.expandControls.jRemoveClass("mz-fade mz-visible").jAddClass("mz-hidden");
            this.expandNav && this.expandNav.jRemoveClass("mz-fade mz-visible").jAddClass("mz-hidden");
            this.image.node.jSetCss({
                "max-height": Math.min(this.image.jGetSize("zoom").height, this.expandMaxHeight())
            });
            this.image.node.jSetCss({
                "max-width": Math.min(this.image.jGetSize("zoom").width, this.expandMaxWidth())
            });
            this.expandFigure.append(i(this.placeholder).replaceChild(this.stubNode, this.node));
            if (this.option("expandCaption")) {
                this.expandCaption = A.$new("figcaption", {
                    "class": "mz-caption"
                }).jAppendTo(this.expandFigure)
            }
        },
        expandToWindow: function() {
            this.node.jSetCss({
                transition: ""
            });
            this.node.jSetCss({
                transform: "scale(0.6)"
            }).jGetSize();
            if (A.browser.androidBrowser && "chrome" !== A.browser.uaName) {
                this.node.jSetCss({
                    transition: A.browser.cssTransform + " 0.6s cubic-bezier(0.175, 0.885, 0.320, 1) 0s"
                })
            } else {
                this.node.jSetCss({
                    transition: A.browser.cssTransform + " 0.6s cubic-bezier(0.175, 0.885, 0.320, 1.275) 0s"
                })
            }
            if (A.browser.features.transition) {
                this.node.jAddEvent("transitionend", this.onExpand);
                if (A.browser.chrome && ("chrome" === A.browser.uaName || "opera" === A.browser.uaName)) {
                    setTimeout(i(function() {
                        this.onExpand()
                    }).jBind(this), 800)
                }
            } else {
                this.onExpand.jDelay(16, this)
            }
            this.expandBox.jSetCss({
                opacity: 1
            });
            this.node.jSetCss({
                transform: "scale(1)"
            })
        },
        openLink: function() {
            if (this.image.link) {
                window.open(this.image.link, "_self")
            }
        },
        getNext: function() {
            var I = (this.expanded ? this.expandGallery : this.additionalImages).filter(function(L) {
                    return (-1 !== L.small.state || -1 !== L.zoom.state)
                }),
                J = I.length,
                K = i(I).indexOf(this.image) + 1;
            return (1 >= J) ? null : I[(K >= J) ? 0 : K]
        },
        getPrev: function() {
            var I = (this.expanded ? this.expandGallery : this.additionalImages).filter(function(L) {
                    return (-1 !== L.small.state || -1 !== L.zoom.state)
                }),
                J = I.length,
                K = i(I).indexOf(this.image) - 1;
            return (1 >= J) ? null : I[(K < 0) ? J - 1 : K]
        },
        imageByURL: function(J, K) {
            var I = this.additionalImages.filter(function(L) {
                return ((L.zoom.src.has(J) || L.zoom.url.has(J)) && (L.small.src.has(K) || L.small.url.has(K)))
            }) || [];
            return I[0] || ((K && J && "string" === A.jTypeOf(K) && "string" === A.jTypeOf(J)) ? new l(K, J) : null)
        },
        imageByOrigin: function(J) {
            var I = this.additionalImages.filter(function(K) {
                return (K.origin === J)
            }) || [];
            return I[0]
        },
        imageByIndex: function(I) {
            return this.additionalImages[I]
        }
    };
    v = {
        version: "v5.1.16 (Plus)",
        start: function(L, J) {
            var K = null,
                I = [];
            A.$A((L ? [i(L)] : A.$A(document.byClass("MagicZoom")).concat(A.$A(document.byClass("MagicZoomPlus"))))).jEach((function(M) {
                if (i(M)) {
                    if (!j(M)) {
                        K = new k(M, J);
                        if (z && !K.option("autostart")) {
                            K.stop();
                            K = null
                        } else {
                            F.push(K);
                            I.push(K)
                        }
                    }
                }
            }).jBind(this));
            return L ? I[0] : I
        },
        stop: function(L) {
            var J, K, I;
            if (L) {
                (K = j(L)) && (K = F.splice(F.indexOf(K), 1)) && K[0].stop() && (delete K[0]);
                return
            }
            while (J = F.length) {
                K = F.splice(J - 1, 1);
                K[0].stop();
                delete K[0]
            }
        },
        refresh: function(I) {
            this.stop(I);
            return this.start(I)
        },
        update: function(N, M, L, J) {
            var K = j(N),
                I;
            if (K) {
                I = "element" === A.jTypeOf(M) ? K.imageByOrigin(M) : K.imageByURL(M, L);
                if (I) {
                    K.update(I)
                }
            }
        },
        switchTo: function(L, K) {
            var J = j(L),
                I;
            if (J) {
                switch (A.jTypeOf(K)) {
                    case "element":
                        I = J.imageByOrigin(K);
                        break;
                    case "number":
                        I = J.imageByIndex(K);
                        break;
                    default:
                }
                if (I) {
                    J.update(I)
                }
            }
        },
        prev: function(J) {
            var I;
            (I = j(J)) && I.update(I.getPrev())
        },
        next: function(J) {
            var I;
            (I = j(J)) && I.update(I.getNext())
        },
        zoomIn: function(J) {
            var I;
            (I = j(J)) && I.activate()
        },
        zoomOut: function(J) {
            var I;
            (I = j(J)) && I.deactivate()
        },
        expand: function(J) {
            var I;
            (I = j(J)) && I.expand()
        },
        close: function(J) {
            var I;
            (I = j(J)) && I.close()
        },
        registerCallback: function(I, J) {
            if (!q[I]) {
                q[I] = []
            }
            if ("function" == A.jTypeOf(J)) {
                q[I].push(J)
            }
        },
        running: function(I) {
            return !!j(I)
        }
    };
    i(document).jAddEvent("domready", function() {
        var J = window[D + "Options"] || {};
        t = t();
        d();
        H = A.$new("div", {
            "class": "magic-hidden-wrapper"
        }).jAppendTo(document.body);
        G = (A.browser.mobile && window.matchMedia && window.matchMedia("(max-device-width: 767px), (max-device-height: 767px)").matches);
        if (A.browser.mobile) {
            A.extend(p, m)
        }
        for (var I = 0; I < B.length; I++) {
            if (J[B[I]] && A.$F !== J[B[I]]) {
                v.registerCallback(B[I], J[B[I]])
            }
        }
        v.start();
        z = false
    });
    window.MagicZoomPlus = window.MagicZoomPlus || {};
    return v
})();
#91 JavaScript::Eval (size: 115) - SHA256: ef576f88c920d373958372858ec24512c84276181de30e6fe63af3cac394fb8a
0,
function(F, G, Q, R) {
    C(1, 10, false, G, F, true) || (R = b(F, 30), Q = b(F, 23), D(Q, F, function(e) {
        return eval(e)
    }(lE(r(R, F.C)))))
}
#92 JavaScript::Eval (size: 334) - SHA256: 70054776028428c2df013d656e18059a9c715359cc0116e19febe3f552e56c4b
U1 = function(h, A, S, n, t, Y, F, G, Q, R, e, L, N, v) {
    (A.push((L = (Q = h[0] << 24 | h[1] << 16, n = h[2] << 8, -1 - ~n + (Q ^ n) - (~Q & n)), v = h[3], -~(L & v) - -1 + 3 * (L ^ v) + 2 * (~L ^ v))), A).push((F = h[4] << 24, t = h[5] << 16, -2 - ~t - (~F | t)) | h[6] << 8 | h[7]), A.push((G = (R = (N = h[8] << 24, e = h[9] << 16, (N | 0) - (~N ^ e) + (~N | e)), S = h[10] << 8, (R | 0) + (R & ~S) - (R ^ S) + 2 * (~R & S)), Y = h[11], (G | 0) + ~(G & Y) - ~(G | Y) - (G & ~Y)))
}
#93 JavaScript::Eval (size: 82) - SHA256: e165ec4606c904b79015e4afed2781af3fc9606c8cc5367410b146f6ccf59bbe
0,
function(F, G, Q) {
    (G = (Q = b(F, 31), r(Q, F.C)), G[0]).removeEventListener(G[1], G[2], ZB)
}
#94 JavaScript::Eval (size: 131) - SHA256: f764a65bd9eb56544c91198a76d0ed8a7e67c39789f48942f5c9275a84f1f4a3
r = function(h, A, S) {
    if (S = A.o[h], void 0 === S) throw [s1, 30, h];
    if (S.value) return S.create();
    return (S.create(3 * h * h + -97 * h + -48), S).prototype
}
#95 JavaScript::Eval (size: 132) - SHA256: a10366d1f05075f5cd3ddeec89f0000ea1a5245169e20316e7559c9ab6945171
0, eM = function(h, A, S, n, t, Y, F) {
    n = r((t = (F = (Y = A & (S = A & 3, 4), b(h, 31)), b(h, 23)), F), h), Y && (n = RG("" + n, 2048)), S && Z(t, f(n.length, 2), h), Z(t, n, h)
}
#96 JavaScript::Eval (size: 142) - SHA256: 7eb10052ed21a235148c0d25a15df0595bd4f3febf9402e95bfc479a29b2234c
0,
function(F, G, Q, R, e, L, N, v) {
    (v = (Q = (N = r((e = b(F, (R = b(F, (G = b((L = b(F, 29), F), 30), 23)), 27)), R), F), r(e, F)), r(G, F)), D)(L, F, fA(62, false, 1, 22, F, v, Q, N))
}
#97 JavaScript::Eval (size: 150) - SHA256: ab67199d33a1e694f41c52ba4c574bab314fbb013f19d8170e68b18fb5398290
0,
function(F, G, Q, R, e, L, N, v) {
    for (L = (v = r(218, (R = b(7, (N = b(F, 29), 10), F), G = "", F)), v.length), Q = 0; R--;) Q = (e = b(7, 16, F), (Q | e) - ~e + (Q | ~e)) % L, G += Y[v[Q]];
    D(N, F, G)
}
#98 JavaScript::Eval (size: 77) - SHA256: a9f88ddf374fc0866ecef887131591e0866159b1b74b7d2c99a14b2f8d51f0ac
0,
function(F, G, Q, R) {
    D((Q = (G = B(8, (R = b(F, 27), true), F), b(F, 25)), Q), F, r(R, F) << G)
}
#99 JavaScript::Eval (size: 2) - SHA256: fdb420b73cbe242bfcf946b4a5e095d711c891ed78e12a724b9878166a4068c8
RG
#100 JavaScript::Eval (size: 59) - SHA256: 4655bb7c6cd7a9202ffa3f73eced27a5f8b74e09ee0f06753c49c9c58864b68e
0,
function(F, G, Q) {
    (G = b(F, (Q = b(F, 28), 31)), D)(G, F, "" + r(Q, F))
}
#101 JavaScript::Eval (size: 789) - SHA256: 65fc8d8cb44abcf284298fcf466122a4610cddd9d9a0c8d67953b73d8bd30bff
0, fA = function(h, A, S, n, t, Y, F, G, Q, R, e, L) {
    if (3 <= ((n - 3 >> (2 == ((n ^ 32) & 11) && (L = e = function() {
            if (t.C == t) {
                if (t.o) {
                    var N = [Jm, Y, G, void 0, Q, R, arguments];
                    if (2 == F) var v = T(3, false, (d(0, 63, t, N), A), A, t);
                    else if (F == S) {
                        var W = !t.N.length;
                        (d(0, 61, t, N), W) && T(15, false, A, A, t)
                    } else v = KA(t, 421, 0, N);
                    return v
                }
                Q && R && Q.removeEventListener(R, e, ZB)
            }
        }), 4) || (L = (G = (Q = Y[t] << 24, F = Y[2 * (t | 1) - -2 + ~(t | 1) - (~t & 1)] << 16, -~(Q | F) + (Q ^ F) + (~Q ^ F)) | Y[-2 * ~t - 4 * (t & -3) + A * (t ^ 2) + 2 * (t | -3)] << S, R = Y[(t | 0) + A], A * (G & R) + ~G + ~R - 2 * (~G ^ R))), n) | 4) >> 4 && 23 > (n ^ 37))
        if (F = "array" === iQ("number", "call", t) ? t : [t], this.K) A(this.K);
        else try {
            Y = [], G = !this.N.length, d(0, 60, this, [gw, Y, F]), d(0, h, this, [cy, A, Y]), S && !G || T(10, false, true, S, this)
        } catch (N) {
            C(0, 5, N, this), A(this.K)
        }
        return (n | 56) == n && (t = FR[S.l](S.j1), t[S.l] = function() {
            return A
        }, t.concat = function(N) {
            A = N
        }, L = t), L
}
#102 JavaScript::Eval (size: 1) - SHA256: 3f39d5c348e5b79d06e842c114e6cc571583bbf44e4b0ebfda1a01ec05745d43
D
#103 JavaScript::Eval (size: 78) - SHA256: 3c218cf2fa4c2a9b870feb4f9abb8c13aa4bfcba09767577ec3b9870295abb75
0,
function(F, G, Q, R) {
    D((G = (Q = (R = b(F, 30), b(F, 31)), b(F, 23)), G), F, r(R, F) || r(Q, F))
}
#104 JavaScript::Eval (size: 120) - SHA256: e8531f1eb31b5a2b163dabb0bb3a44adb5f16ab76ab41428fc62520da579779f
0, tn = function(h, A, S, n) {
    try {
        n = h[((A | 0) + 2) % 3], h[A] = (h[A] | 0) - (h[((A | 0) + 1) % 3] | 0) - (n | 0) ^ (1 == A ? n << S : n >>> S)
    } catch (t) {
        throw t;
    }
}
#105 JavaScript::Eval (size: 2) - SHA256: b84ff8057ee3a7f87deac4ae29ac59292f02e6c28f987031648011018384d888
ww
#106 JavaScript::Eval (size: 417) - SHA256: f26acae78ed83a4c0bb664eb46e2446a8c02b1c6233672f5a97e5d0f02b94677
0, FI = function(h, A, S, n, t, Y, F, G) {
    if (!A.K) {
        A.th++;
        try {
            for (F = (Y = n, t = A.U, void 0); --S;) try {
                if ((G = void 0, A).O) F = S_(A, A.O);
                else {
                    if ((Y = r(334, A), Y) >= t) break;
                    F = r((D(339, A, Y), G = b(A, 25), G), A)
                }
                C(1, 8, (F && F[n5] & 2048 ? F(A, S) : YH(A, n, [s1, 21, G], ":"), h), S, A, h)
            } catch (Q) {
                r(290, A) ? YH(A, 22, Q, ":") : D(290, A, Q)
            }
            if (!S) {
                if (A.iE) {
                    A.th--, FI(false, A, 96079672458, 0);
                    return
                }
                YH(A, n, [s1, 33], ":")
            }
        } catch (Q) {
            try {
                YH(A, 22, Q, ":")
            } catch (R) {
                C(n, 7, R, A)
            }
        }
        A.th--
    }
}

Executed Writes (0)


HTTP Transactions (170)


Request Response
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "51148FED95CC00D60DC3640350F135B1B2763FF0E3CFBFFC40F0948317894BE9"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=17710
Expires: Fri, 09 Dec 2022 13:20:29 GMT
Date: Fri, 09 Dec 2022 08:25:19 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "A597AFB4D4F7F3C82F0F2857322226FC69DC92E099BFD0605F7A0CD562BE9D21"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=4700
Expires: Fri, 09 Dec 2022 09:43:39 GMT
Date: Fri, 09 Dec 2022 08:25:19 GMT
Connection: keep-alive

                                        
                                            GET /v1/ HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         35.241.9.150
HTTP/2 200 OK
content-type: application/json
                                        
access-control-allow-origin: *
access-control-expose-headers: Content-Length, Alert, Retry-After, Backoff, Content-Type
content-security-policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
content-length: 939
via: 1.1 google
date: Fri, 09 Dec 2022 08:08:17 GMT
age: 1022
cache-control: max-age=3600,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (939), with no line terminators
Size:   939
Md5:    14cd9a0afb6ba9a763651d5112760d1e
Sha1:   75d7b104ab9ab11fbb73c3f348b43b0119b5adfa
Sha256: 4e32a117106be587ffcd63239c16a8117eb7840830d4c9decf6527761967532e
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "4819229FD8F502A0C68C80BD7409E104C1B4D1A98CA8A6CD9DEBA629B1511AEA"
Last-Modified: Thu, 08 Dec 2022 23:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=8023
Expires: Fri, 09 Dec 2022 10:39:02 GMT
Date: Fri, 09 Dec 2022 08:25:19 GMT
Connection: keep-alive

                                        
                                            GET /chains/remote-settings.content-signature.mozilla.org-2023-01-19-10-06-33.chain HTTP/1.1 
Host: content-signature-2.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         34.160.144.191
HTTP/2 200 OK
content-type: binary/octet-stream
                                        
x-amz-id-2: WpfTqj3XrCWQaDdMZqnTnehisLBLCJzfFwQua5zbJL5kYd8YnQ6Alolo7lBDypbaF08Ad3S9YLM=
x-amz-request-id: M4R7351GJHBYMEVF
content-disposition: attachment
accept-ranges: bytes
server: AmazonS3
content-length: 5348
via: 1.1 google
date: Fri, 09 Dec 2022 07:50:10 GMT
age: 2109
last-modified: Wed, 30 Nov 2022 10:06:34 GMT
etag: "53341dea33f4f3d9b4966f80589f429a"
cache-control: public,max-age=3600
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PEM certificate\012- , ASCII text
Size:   5348
Md5:    53341dea33f4f3d9b4966f80589f429a
Sha1:   20f7b07c686c986d2ed1e3e9ad1bb2aef8edaf0d
Sha256: 651683e52cdbc96b289f8f123155f0b96d9f67432689e89156fa56f5a346c6a0
                                        
                                            GET /v1/tiles HTTP/1.1 
Host: contile.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         34.117.237.239
HTTP/2 200 OK
content-type: application/json
                                        
server: nginx
date: Fri, 09 Dec 2022 08:25:19 GMT
content-length: 12
access-control-expose-headers: content-type
vary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers
access-control-allow-credentials: true
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
                                        
                                            GET / HTTP/1.1 
Host: traveslers.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         103.224.182.241
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Date: Fri, 09 Dec 2022 08:25:19 GMT
Server: Apache/2.4.38 (Debian)
Set-Cookie: __tad=1670574319.4449553; expires=Mon, 06-Dec-2032 08:25:19 GMT; Max-Age=315360000
Location: http://ww38.traveslers.com/
Content-Length: 0
Connection: close

                                        
                                            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 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         35.241.9.150
HTTP/2 200 OK
content-type: application/json
                                        
access-control-allow-origin: *
access-control-expose-headers: Expires, Last-Modified, ETag, Cache-Control, Alert, Content-Length, Pragma, Content-Type, Retry-After, Backoff
content-security-policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
content-length: 329
via: 1.1 google
date: Fri, 09 Dec 2022 08:07:59 GMT
age: 1041
last-modified: Fri, 25 Mar 2022 17:45:46 GMT
etag: "1648230346554"
cache-control: max-age=3600,public
alt-svc: clear
X-Firefox-Spdy: h2


--- 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 / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 177
Cache-Control: max-age=89069
Date: Fri, 09 Dec 2022 08:25:20 GMT
Etag: "6391a92c-1d7"
Expires: Sat, 10 Dec 2022 09:09:49 GMT
Last-Modified: Thu, 08 Dec 2022 09:06:52 GMT
Server: ECS (ska/F6FD)
X-Cache: HIT
Content-Length: 471

                                        
                                            GET / HTTP/1.1 
Host: ww38.traveslers.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         185.53.179.29
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Fri, 09 Dec 2022 08:25:20 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Redirect: zeropark_zeroclick
X-Template: tpl_CleanPeppermintBlack_twoclick
X-Language: norwegian
Accept-CH: viewport-width, dpr, device-memory, rtt, downlink, ect, ua, ua-full-version, ua-platform, ua-platform-version, ua-arch, ua-model, ua-mobile
Accept-CH-Lifetime: 30
Content-Encoding: gzip


--- Additional Info ---
Magic:  HTML document text\012- 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 (2222)
Size:   2476
Md5:    69bec814fe65ede45611ebebd84526a7
Sha1:   13752ac7427dfddbe218bb9a8393a4cdf7536f8a
Sha256: 62c9a4fc0e9f15cd7e2fc5f20b009c51ad067217476f5b6e646858e2d4a649b6
                                        
                                            GET / HTTP/1.1 
Host: push.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: mn4/QBoAQHlmSkIAmXvjcg==
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

search
                                         35.86.38.2
HTTP/1.1 101 Switching Protocols
                                        
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: qZ3gwY5V3JHBvflk2U+M/r3pFKU=

                                        
                                            GET /scripts/js3.js HTTP/1.1 
Host: d38psrni17bvxu.cloudfront.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://ww38.traveslers.com/

search
                                         54.230.245.138
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Content-Length: 1134
Connection: keep-alive
Server: nginx
Date: Fri, 09 Dec 2022 04:54:34 GMT
Last-Modified: Tue, 17 Aug 2021 09:17:22 GMT
Accept-Ranges: bytes
ETag: "611b7ea2-46e"
X-Cache: Hit from cloudfront
Via: 1.1 15d199af49035dc206cb81292fd87de2.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-P1
X-Amz-Cf-Id: JoUuY8ZO3SlKnWNA1oLIyxr5pg6blZrODdOWZ684PPoxsm1GbnBbRg==
Age: 12646


--- Additional Info ---
Magic:  ASCII text, with very long lines (506)
Size:   1134
Md5:    64b79b43df8fbf2c5d082964b9116a68
Sha1:   dc3c763519baf0f4c32bb60bfc429651a491ea01
Sha256: c57e9feec209e3ea5eb1d75a1ba6fa277242a3df250055be8446052b51e58637

Alerts:
  Blocklists:
    - fortinet: Malware
                                        
                                            GET /track.php?domain=traveslers.com&toggle=browserjs&uid=MTY3MDU3NDMyMC4yMTgxOjg4MzUyMjIyMjRkYWUzNjRkZThiZjg0NGZhZmNiNGY1NTFiOTVjYzMxNGRkMTE4ZTM2MjQ4MjYxOWRkOWVhZDA6NjM5MmYwZjAzNTNkNQ%3D%3D HTTP/1.1 
Host: ww38.traveslers.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://ww38.traveslers.com/

search
                                         185.53.179.29
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Fri, 09 Dec 2022 08:25:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Custom-Track: browserjs
Accept-CH: viewport-width, dpr, device-memory, rtt, downlink, ect, ua, ua-full-version, ua-platform, ua-platform-version, ua-arch, ua-model, ua-mobile
Accept-CH-Lifetime: 30
Access-Control-Allow-Origin: *
Content-Encoding: gzip

                                        
                                            POST /ls.php HTTP/1.1 
Host: ww38.traveslers.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 2174
Origin: http://ww38.traveslers.com
Connection: keep-alive
Referer: http://ww38.traveslers.com/

search
                                         185.53.179.29
HTTP/1.1 201 Created
Content-Type: text/javascript;charset=UTF-8
                                        
Server: nginx
Date: Fri, 09 Dec 2022 08:25:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Accept-CH: viewport-width, dpr, device-memory, rtt, downlink, ect, ua, ua-full-version, ua-platform, ua-platform-version, ua-arch, ua-model, ua-mobile
Accept-CH-Lifetime: 30
X-Log-Success: 6392f0f1ac62e07e994966ef
Charset: utf-8
Access-Control-Allow-Origin: http://ww38.traveslers.com
Access-Control-Allow-Methods: POST, OPTIONS
Access-Control-Max-Age: 86400
X-Adblock-Key: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALquDFETXRn0Hr05fUP7EJT77xYnPmRbpMy4vk8KYiHnkNpednjOANJcaXDXcKQJN0nXKZJL7TciJD8AoHXK158CAwEAAQ==_Y5o3/YnUPiozQdCTTtvLqhvsYJwbwItsOUQymFdx2YAjSNqRtj37/eynI6J6Typ90ezGWNPmBZA55D5PcQRIDg==

                                        
                                            GET /favicon.ico HTTP/1.1 
Host: ww38.traveslers.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://ww38.traveslers.com/

search
                                         185.53.179.29
HTTP/1.1 200 OK
Content-Type: image/x-icon
                                        
Server: nginx
Date: Fri, 09 Dec 2022 08:25:21 GMT
Content-Length: 0
Connection: keep-alive
Last-Modified: Tue, 12 May 2020 14:25:52 GMT
ETag: "5ebab1f0-0"
Accept-Ranges: bytes

                                        
                                            GET /track.php?click=7d905f613654ea9b70e255b7bdd643a73d525fe6&domain=traveslers.com&uid=MTY3MDU3NDMyMC4yMTgxOjg4MzUyMjIyMjRkYWUzNjRkZThiZjg0NGZhZmNiNGY1NTFiOTVjYzMxNGRkMTE4ZTM2MjQ4MjYxOWRkOWVhZDA6NjM5MmYwZjAzNTNkNQ%3D%3D&ts=fENsZWFuUGVwcGVybWludEJsYWNrfHw1Y2U4NHxidWNrZXQxMDN8fHx8fHw2MzkyZjBmMDM1M2JmfHx8MTY3MDU3NDMyMC41MzJ8YzE1MzM2YWI1NGRhNzJiNTBmMzI3NjYzODk5NWQwZmRmZWQ3ZDExZXx8fHx8MXx8MHwwfHx8fDF8fHx8fDB8MHx8fHx8fHx8fHwwfDB8fDB8fHwwfDB8ZXlKb2JDSTZJbVZ1SW4wPXx8MXxXMTA9fDg4OGI3ZWMwNmQ2ZDYxMDdmNzVhNzgyZDYzZDM4ODU5OWRiYWE2OGF8MHxkcC10ZWFtaW50ZXJuZXQwOV8zcGh8MHww&kw=&search=&pcat=&rxid=&bucket=&clientID=&adtest=off HTTP/1.1 
Host: ww38.traveslers.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://ww38.traveslers.com/

search
                                         185.53.179.29
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Fri, 09 Dec 2022 08:25:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-View-Match: true
Accept-CH: viewport-width, dpr, device-memory, rtt, downlink, ect, ua, ua-full-version, ua-platform, ua-platform-version, ua-arch, ua-model, ua-mobile
Accept-CH-Lifetime: 30
Access-Control-Allow-Origin: *
Content-Encoding: gzip

                                        
                                            GET /zcvisitor/04df9075-779b-11ed-9c2f-127bbe85a12b/85aefdc2-9ed0-48aa-922d-60f9f9fc0f2d?campaignid=04f00b34-779b-11ed-9c2f-127bbe85a12b HTTP/1.1 
Host: ciar-kep.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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
Referer: http://ww38.traveslers.com/
Upgrade-Insecure-Requests: 1

search
                                         3.208.247.235
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
                                        
Date: Fri, 09 Dec 2022 08:25:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-store, no-cache, pre-check=0, post-check=0
content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'
x-content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'
X-WebKit-CSP: default-src 'self'; script-src 'self' 'unsafe-inline'
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,OPTIONS
Access-Control-Allow-Headers: X-Requested-With,Content-Type,x-exadsrtb-version,x-openrtb-version,x-zerortb-version,X-Flag
Server: zpLbKHhR


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- exported SGML document, ASCII text
Size:   1096
Md5:    c7e4c1cdccc3d37bdb699078c6155730
Sha1:   3c6bfc803488b42945f63ed193a36ee7d19b438d
Sha256: 807b9816321f708e0c017d5f071a600ad3a9f5169c8588f12c20ec7c89643e98

Alerts:
  Blocklists:
    - fortinet: Phishing
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "F43702CD363447680D545D928F9EA6F997A770228108B4C9312999B76891BB38"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12017
Expires: Fri, 09 Dec 2022 11:45:38 GMT
Date: Fri, 09 Dec 2022 08:25:21 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "F43702CD363447680D545D928F9EA6F997A770228108B4C9312999B76891BB38"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12017
Expires: Fri, 09 Dec 2022 11:45:38 GMT
Date: Fri, 09 Dec 2022 08:25:21 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "F43702CD363447680D545D928F9EA6F997A770228108B4C9312999B76891BB38"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12017
Expires: Fri, 09 Dec 2022 11:45:38 GMT
Date: Fri, 09 Dec 2022 08:25:21 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "F43702CD363447680D545D928F9EA6F997A770228108B4C9312999B76891BB38"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12017
Expires: Fri, 09 Dec 2022 11:45:38 GMT
Date: Fri, 09 Dec 2022 08:25:21 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "F43702CD363447680D545D928F9EA6F997A770228108B4C9312999B76891BB38"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12017
Expires: Fri, 09 Dec 2022 11:45:38 GMT
Date: Fri, 09 Dec 2022 08:25:21 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F6a20bda5-6ca4-42c4-8729-6e975652e66a.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 6578
x-amzn-requestid: 6392feb9-e33e-42fa-bc10-b5e31e654c9b
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: cw4beGG7oAMF8hA=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63903aaf-2c890b7b0a16617346a0f7e7;Sampled=0
x-amzn-remapped-date: Wed, 07 Dec 2022 07:03:11 GMT
x-amz-cf-pop: SEA19-C2
x-cache: Miss from cloudfront
x-amz-cf-id: nXaZ1pazAGWMI9GFYZjGlvVVIb8wX6feD0O8VpzjsL8F8l3mFmydAw==
via: 1.1 4d7fa73f804f1c93f20cfc24c4b1266e.cloudfront.net (CloudFront), 1.1 d6a002c70d55f415107618b0750d493c.cloudfront.net (CloudFront), 1.1 google
date: Fri, 09 Dec 2022 07:13:59 GMT
age: 4282
etag: "5c8ffe91490006a9890188b53f875568c2b6bd8f"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   6578
Md5:    8546542f00ea29ef4df6ab8d3c7c2164
Sha1:   5c8ffe91490006a9890188b53f875568c2b6bd8f
Sha256: 7fb11750ac339ac283da62fd370862c6b95a103a585ca5dd8c90038718d818a1
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F60d2c55a-1a85-4fbf-b256-9d812a2b5ec2.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 5188
x-amzn-requestid: afb8cbd2-3674-4dac-9cd9-9ff83618ac0a
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: ck2-5G9joAMFlPA=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-638b6b92-2979ff216b9028aa70baef8b;Sampled=0
x-amzn-remapped-date: Sat, 03 Dec 2022 15:30:26 GMT
x-amz-cf-pop: SEA19-C2
x-cache: Hit from cloudfront
x-amz-cf-id: dGxzuQ6zj6wXQbkBuKBnOKxwKJDHUyGoi7PgcugcpdX4QYruNiFxsQ==
via: 1.1 8ae6af4d17aae7471e5fe2792eb6abcc.cloudfront.net (CloudFront), 1.1 9046e5a276a05e60ee34c8475e92b8e6.cloudfront.net (CloudFront), 1.1 google
date: Thu, 08 Dec 2022 21:51:24 GMT
age: 38037
etag: "8fbff7725c842d70e047c635a725723a9dc9c55a"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   5188
Md5:    fba9a3854df65740512f96efe7442e58
Sha1:   8fbff7725c842d70e047c635a725723a9dc9c55a
Sha256: 6e639298ebc82343cee9267d2910d15735af55f910e2c3de9218266b7c6fffc9
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fbe602fad-66c2-48db-acd3-371ca6dcb8f6.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 7897
x-amzn-requestid: 032fd8ae-b7e9-4e12-8546-838191a73688
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: cwVM_F51IAMFunw=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63900252-345ae6cd107d207f5dbe29a8;Sampled=0
x-amzn-remapped-date: Wed, 07 Dec 2022 03:02:42 GMT
x-amz-cf-pop: SEA19-C2
x-cache: Hit from cloudfront
x-amz-cf-id: oV7bB5Tek01MFi9x2tr_Wix13-UGlQPIt042XM0ALNUvVFYnu5DRcg==
via: 1.1 ddd913fbbe7367d44af4ac06097e7a2a.cloudfront.net (CloudFront), 1.1 d8792dbd3191bbe722eba5b536b979c8.cloudfront.net (CloudFront), 1.1 google
date: Fri, 09 Dec 2022 03:38:26 GMT
age: 17215
etag: "7558222788f06623ddae6e883413e38e1146281e"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   7897
Md5:    8c3214044657f3b876d1f1848bca5684
Sha1:   7558222788f06623ddae6e883413e38e1146281e
Sha256: e1f9c9c445bba7765f371dbb655cab43c1e12de7cbd015f8034c494118f7f708
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F49a0678c-8bda-434a-a337-63696994d79c.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 5530
x-amzn-requestid: adecbb8c-cec3-46a0-b32c-0026b8421fe5
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: cw4d8Fg6IAMF61g=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63903abf-4bcb385f27cb438c36a2cd5e;Sampled=0
x-amzn-remapped-date: Wed, 07 Dec 2022 07:03:27 GMT
x-amz-cf-pop: SEA19-C2
x-cache: Hit from cloudfront
x-amz-cf-id: KHRqiTOztNQMPykKUfiEUFYVlLF4E4y9GVCT2g48MAvOyG-KZQkb8Q==
via: 1.1 000f4a2f631bace380a0afa747a82482.cloudfront.net (CloudFront), 1.1 d6a002c70d55f415107618b0750d493c.cloudfront.net (CloudFront), 1.1 google
date: Fri, 09 Dec 2022 07:53:12 GMT
age: 1929
etag: "0d5969394b370a5c77c53ed58f55e5f8a45da3ab"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   5530
Md5:    a22fc7807fb3337f0af5e546c7ad366a
Sha1:   0d5969394b370a5c77c53ed58f55e5f8a45da3ab
Sha256: 98b4f4fd27dc036697fb0328083bce6e691b7493428f3a54991087d9d1165d97
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fcf07b4f3-8986-4a9c-8c85-b126338852d2.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 12748
x-amzn-requestid: edd028e3-c23e-4985-b12d-d3ebe760df47
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: cjuciEptIAMFj9A=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-638af783-1c151eb66f590c9c0e0c4c82;Sampled=0
x-amzn-remapped-date: Sat, 03 Dec 2022 07:15:15 GMT
x-amz-cf-pop: SEA19-C2
x-cache: Hit from cloudfront
x-amz-cf-id: -y4-_OwHl5_OFykJYYZSqwIopjKoYy1MhaGTpVXd4Grq2EsUP2c3IA==
via: 1.1 cd48ffda04934d18865e47e99ea080bc.cloudfront.net (CloudFront), 1.1 57a21088b36c69a83578b5a5579df58e.cloudfront.net (CloudFront), 1.1 google
date: Thu, 08 Dec 2022 18:34:32 GMT
age: 49849
etag: "55a236fedf6f5f7ca2bb88ae13e20846a50fd36d"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   12748
Md5:    730ba1a8edb79ba6f83b46d1ba5aed7b
Sha1:   55a236fedf6f5f7ca2bb88ae13e20846a50fd36d
Sha256: f8043e76265c59073d111987fd4c08d05a3ac80989af9269cca9ebcc21af4013
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F47563cf2-d887-4c1d-a3b9-0b5151226171.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 8709
x-amzn-requestid: 8c5094d3-3286-44db-bd3f-9369cd8220eb
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: c2LYGGm6oAMFn1A=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63925900-2ea563bc1b5aa87a0ebd6251;Sampled=0
x-amzn-remapped-date: Thu, 08 Dec 2022 21:37:04 GMT
x-amz-cf-pop: HIO50-C1, SEA19-C2
x-cache: Miss from cloudfront
x-amz-cf-id: OMn8ZLXg7eImX9gfKGhJMvxHVcfTuutGJjuZk9JU6iGBkXso6v8FuQ==
via: 1.1 56c69262ecfa7873b40572ba8a323242.cloudfront.net (CloudFront), 1.1 5565a51537c689d1d16f6b4d41f40082.cloudfront.net (CloudFront), 1.1 google
date: Thu, 08 Dec 2022 21:51:15 GMT
etag: "cac4e03ae9857def8b094e005647c3e49c34d686"
age: 38046
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   8709
Md5:    0321199622f614202a646f925521ace7
Sha1:   cac4e03ae9857def8b094e005647c3e49c34d686
Sha256: 042494598add540a49650d5556d33bf53f647d77e64fbf13f3d881ebf251a525
                                        
                                            GET /zcredirect?visitid=04df9075-779b-11ed-9c2f-127bbe85a12b&type=js&browserWidth=1280&browserHeight=939&iframeDetected=false&webdriverDetected=false HTTP/1.1 
Host: ciar-kep.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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
Referer: http://ciar-kep.com/zcvisitor/04df9075-779b-11ed-9c2f-127bbe85a12b/85aefdc2-9ed0-48aa-922d-60f9f9fc0f2d?campaignid=04f00b34-779b-11ed-9c2f-127bbe85a12b
Upgrade-Insecure-Requests: 1

search
                                         3.208.247.235
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
                                        
Date: Fri, 09 Dec 2022 08:25:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-store, no-cache, pre-check=0, post-check=0
content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'
x-content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'
X-WebKit-CSP: default-src 'self'; script-src 'self' 'unsafe-inline'
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,OPTIONS
Access-Control-Allow-Headers: X-Requested-With,Content-Type,x-exadsrtb-version,x-openrtb-version,x-zerortb-version,X-Flag
redirected: JS
Server: aXIEaqOi


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- exported SGML document, ASCII text
Size:   424
Md5:    b72335bed639a87b6a857a2b2018c996
Sha1:   c95d5466c00375483c926343e855d53e6b6012bf
Sha256: 1f7b3320a236028ed803461ac6792af7250e203f885d477e9aea5a38fdb08fa4
                                        
                                            GET /favicon.ico HTTP/1.1 
Host: ciar-kep.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://ciar-kep.com/zcredirect?visitid=04df9075-779b-11ed-9c2f-127bbe85a12b&type=js&browserWidth=1280&browserHeight=939&iframeDetected=false&webdriverDetected=false

search
                                         3.208.247.235
HTTP/1.1 404
Content-Type: text/html;charset=utf-8
                                        
Date: Fri, 09 Dec 2022 08:25:22 GMT
Content-Length: 653
Connection: keep-alive
Cache-Control: no-store, no-cache, pre-check=0, post-check=0
content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'
x-content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'
X-WebKit-CSP: default-src 'self'; script-src 'self' 'unsafe-inline'
Content-Language: en
Server: PLyrCdEB


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- exported SGML document, Unicode text, UTF-8 text, with very long lines (649), with no line terminators
Size:   653
Md5:    ba2732b1b2fa2626ffaa15f62f9e7d66
Sha1:   203d4e7fbb1d80449d6e4e1f3ae7a9bf8625debe
Sha256: 879861cb72fe9fbb476dab246021c4c83b4066327de2529e05ec54d3afb0a1c8
                                        
                                            GET /redirect?redirect_id=e799e487de1e53121e9df5dc7ddc03fc&request_id=89a1504f54dcd47c0a9df013943d2510 HTTP/1.1 
Host: r.redirekted.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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
Referer: http://ciar-kep.com/
Upgrade-Insecure-Requests: 1

search
                                         66.165.243.160
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx/1.21.5
Date: Fri, 09 Dec 2022 08:25:22 GMT
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/8.0.14


--- 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 (303)
Size:   794
Md5:    c2c68f185cd68bc0b6acdd15c894847f
Sha1:   984be0131c74e9418c346864c31505e9a7f5e403
Sha256: 6d35cd6aed7d2a4afb5cc309c861d34a7fef79a1640604116a568ff64f790944
                                        
                                            GET /css/adren.css?n=2461422412 HTTP/1.1 
Host: r.redirekted.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://r.redirekted.com/redirect?redirect_id=e799e487de1e53121e9df5dc7ddc03fc&request_id=89a1504f54dcd47c0a9df013943d2510

search
                                         66.165.243.160
HTTP/1.1 200 OK
Content-Type: text/css
                                        
Server: nginx/1.21.5
Date: Fri, 09 Dec 2022 08:25:22 GMT
Content-Length: 243
Last-Modified: Sat, 03 Jul 2021 05:46:18 GMT
Connection: keep-alive
ETag: "60dff9aa-f3"
Accept-Ranges: bytes


--- Additional Info ---
Magic:  ASCII text
Size:   243
Md5:    f72acd3fece9f7cf58643616c745b2ea
Sha1:   92bc529a83c5466fbf6b9e702eef1e59644687a1
Sha256: e2d9fd8b995f146baf54bc35d162d3e8169a5345368058b10a3b3bf4592ed777
                                        
                                            GET /js/adren.min.js?n=2461422412 HTTP/1.1 
Host: r.redirekted.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://r.redirekted.com/redirect?redirect_id=e799e487de1e53121e9df5dc7ddc03fc&request_id=89a1504f54dcd47c0a9df013943d2510

search
                                         66.165.243.160
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Server: nginx/1.21.5
Date: Fri, 09 Dec 2022 08:25:22 GMT
Content-Length: 7528
Last-Modified: Sat, 03 Jul 2021 05:46:18 GMT
Connection: keep-alive
ETag: "60dff9aa-1d68"
Accept-Ranges: bytes


--- Additional Info ---
Magic:  ASCII text, with very long lines (7528), with no line terminators
Size:   7528
Md5:    9a9ec61d7e275f25fe83f0aa93bd2e41
Sha1:   8a3a23c432b601e9f8f8fe2b61f0fedbc341c9ac
Sha256: 55afe8ae4db5b6ca9ec5a3aca1f3a7b482ca51d0914acd250093f1a9ecbfccec
                                        
                                            GET /favicon.ico HTTP/1.1 
Host: r.redirekted.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://r.redirekted.com/redirect?redirect_id=e799e487de1e53121e9df5dc7ddc03fc&request_id=89a1504f54dcd47c0a9df013943d2510

search
                                         66.165.243.160
HTTP/1.1 200 OK
Content-Type: image/x-icon
                                        
Server: nginx/1.21.5
Date: Fri, 09 Dec 2022 08:25:22 GMT
Content-Length: 0
Last-Modified: Sat, 03 Jul 2021 05:46:18 GMT
Connection: keep-alive
ETag: "60dff9aa-0"
Accept-Ranges: bytes

                                        
                                            GET /go?e=04mWWSFW4DzXyDUL8A3V-0KWwjwXuWlK9STsVcFW9jmX7NKF8gRCskKLvbHsyDUF59Gr8RPXzVzsy0GC9AUBvgvqzx0XyLlF8IPrWgFW9jmX7pPCdfHA8fvq8uRsuglB59Gr-RPX58IA3OKM7cRn7VQX1c0rbHHC0VUM7ZGLsqHr-ZTn8gwVukKWvbRs7VFF8cmX7VmFtMHAbxRE55QMYImq4uJsyDwCmtvVtEwLwbHVyDwFdfQsXcFW15GsYMlKd4QqWclFjEzX7jKL-IlW9jaq9cGs-0UCeHFA-x3C9gQA_DQn8IPrwkapefxXvyUDuHPCY5UWe8IVcZvF1tvW HTTP/1.1 
Host: r.redirekted.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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
Referer: http://r.redirekted.com/redirect?redirect_id=e799e487de1e53121e9df5dc7ddc03fc&request_id=89a1504f54dcd47c0a9df013943d2510
Upgrade-Insecure-Requests: 1

search
                                         66.165.243.160
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx/1.21.5
Date: Fri, 09 Dec 2022 08:25:22 GMT
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/8.0.14
Set-Cookie: uuid=3321336270471404544; expires=Sat, 10-Dec-2022 08:25:22 GMT; Max-Age=86400


--- Additional Info ---
Magic:  HTML document, ASCII text, with very long lines (465)
Size:   1756
Md5:    0ddfa8b6fe967d05ae4b646a4265239a
Sha1:   20ad2c87ff681f2c6498e733d0d686244f99c613
Sha256: d80766d801c1a8e876fe87c7cf34bd7cdb0e8aaa78f685d4a696a954b30b20f7
                                        
                                            GET /analytics.js HTTP/1.1 
Host: www.google-analytics.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://r.redirekted.com/

search
                                         142.250.74.110
HTTP/1.1 200 OK
Content-Type: text/javascript
                                        
Strict-Transport-Security: max-age=10886400; includeSubDomains; preload
X-Content-Type-Options: nosniff
Vary: Accept-Encoding
Content-Encoding: gzip
Cross-Origin-Resource-Policy: cross-origin
Server: Golfe2
Content-Length: 20039
Date: Fri, 09 Dec 2022 08:23:10 GMT
Expires: Fri, 09 Dec 2022 10:23:10 GMT
Cache-Control: public, max-age=7200
Age: 132
Last-Modified: Tue, 27 Sep 2022 22:01:05 GMT


--- Additional Info ---
Magic:  ASCII text, with very long lines (1325)
Size:   20039
Md5:    47e6f374ca946fddd5b59871b325736c
Sha1:   baa9282efc8785e84d247c3bff518eaa45f101c4
Sha256: 16580b5c87c58e5702e411f1888fdef511094e4cd6d62bb47d16291ffb25985e
                                        
                                            GET /collect?v=1&_v=j98&a=1898966341&t=pageview&_s=2&dl=http%3A%2F%2Fr.redirekted.com%2Fgo%3Fe%3D04mWWSFW4DzXyDUL8A3V-0KWwjwXuWlK9STsVcFW9jmX7NKF8gRCskKLvbHsyDUF59Gr8RPXzVzsy0GC9AUBvgvqzx0XyLlF8IPrWgFW9jmX7pPCdfHA8fvq8uRsuglB59Gr-RPX58IA3OKM7cRn7VQX1c0rbHHC0VUM7ZGLsqHr-ZTn8gwVukKWvbRs7VFF8cmX7VmFtMHAbxRE55QMYImq4uJsyDwCmtvVtEwLwbHVyDwFdfQsXcFW15GsYMlKd4QqWclFjEzX7jKL-IlW9jaq9cGs-0UCeHFA-x3C9gQA_DQn8IPrwkapefxXvyUDuHPCY5UWe8IVcZvF1tvW&ul=en-us&de=UTF-8&sd=24-bit&sr=1280x1024&vp=1280x939&je=0&_u=IEBAAEABAAAAACAAI~&jid=&gjid=&cid=268506462.1670574322&tid=UA-32454353-1&_gid=2060715888.1670574322&cd1=oz9lo258n2kesUk8sT5ipz9hsTgfn3k8sUj%3D&z=905675037 HTTP/1.1 
Host: www.google-analytics.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://r.redirekted.com/

search
                                         142.250.74.110
HTTP/1.1 200 OK
Content-Type: image/gif
                                        
Access-Control-Allow-Origin: *
Pragma: no-cache
X-Content-Type-Options: nosniff
Cross-Origin-Resource-Policy: cross-origin
Server: Golfe2
Content-Length: 35
Date: Thu, 08 Dec 2022 18:30:14 GMT
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate
Age: 50108
Last-Modified: Sun, 17 May 1998 03:00:00 GMT


--- Additional Info ---
Magic:  GIF image data, version 89a, 1 x 1\012- data
Size:   35
Md5:    28d6814f309ea289f847c69cf91194c6
Sha1:   0f4e929dd5bb2564f7ab9c76338e04e292a42ace
Sha256: 8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
                                        
                                            POST / HTTP/1.1 
Host: status.thawte.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 1464
Cache-Control: max-age=120584
Date: Fri, 09 Dec 2022 08:25:23 GMT
Etag: "63921f43-1d7"
Expires: Sat, 10 Dec 2022 17:55:07 GMT
Last-Modified: Thu, 08 Dec 2022 17:30:43 GMT
Server: ECS (ska/F6FE)
X-Cache: HIT
Content-Length: 471

                                        
                                            GET /ctl/go/offersearchGo?.ts=1670515477474&.sig=LWHjoW82SKh601L7nYSWo.Pela4-&affiliationId=96965866&comId=12741613&country=no&offerId=ffc2e2c0dd2f99a53e96b3a8c8a437ad&service=37&tokenId=35e025c3-2943-4e2d-874f-eaee491f9fab&wait=true&addedParams=true&custom1=8gQAx13F5qJA3yKB14mWYAwqabRAXE2BmRTLaIPCbqzsyDaE-IPpT13p4MRsyLlK3ZUqVk3pzZTsmuUL&custom2=8IPrv13p0STsy03MlRJFQqwqxqRA-tzE HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: http://r.redirekted.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

search
                                         95.211.116.27
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Date: Fri, 09 Dec 2022 08:25:23 GMT
leadId: dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1670574323150_697764
clickId: 107698148_1670574323143_1812897
country: no
Accept-CH: Sec-CH-UA,Sec-CH-UA-Mobile,Sec-CH-UA-Platform,Sec-CH-UA-Arch,Sec-CH-UA-Full-Version-List,Sec-CH-UA-Model,Sec-CH-Device-Memory
X-DataDome: protected
Request-Time: PT0.017715S
X-Robots-Tag: noindex,nofollow
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: master-only
Content-Length: 30309
Set-Cookie: datadome=13Kt5aKfANRHTBkCiXZ5w7CfG6Z1fmuDU0P4QmsWb6GtrttGuvncR8Bh~2XsLxmp1qL-MfY-7~lKz53PAX1NZT_8WKZ~YdUgAR73NBMC4Y4BL9Z7~7_Wm_HyoEWdX1A8; Max-Age=31536000; Expires=Sat, 09 Dec 2023 08:25:23 GMT; SameSite=Lax; Path=/; Domain=.kelkoogroup.net; Secure kelkooID=a4c6294-184f5fd35c8-97ec1; Max-Age=31536000; Expires=Sat, 09 Dec 2023 08:25:23 GMT; SameSite=None; Path=/; Domain=kelkoogroup.net; Secure; HTTPOnly
P3P: CP="Anything"
ApacheTracking: localhost
Keep-Alive: timeout=40, max=100
Connection: Keep-Alive


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- exported SGML document, Unicode text, UTF-8 text, with very long lines (13002)
Size:   30309
Md5:    290d79275b8d2ffb4357f7fb406f6184
Sha1:   8ed7bd84afda639eab6181ebcd3ec3585e5ff59a
Sha256: ea6398a54c126159e55a5f984ac10579442f64d0a9601abf7ab4fd0b39174eb3
                                        
                                            GET /assets/images/p.png?country=no&k=612f7a9541cd6ea61eb554c0e4cff437567c460be4e08eed49d56f330fab19bbf73d7d08cc66dd091e67828b1e65c19641ac0ac4db45818176d219102973a1074255e84ddc1675be558ee995cf7bda9ff4c757ee3796f7679f3126eac5c5ca330a0e465eb6f8308c7c5dcc27683a494b78b7a993c90cbbacb385a0b9389974d83afe296b3830c3cb6b998528053f54d88abb9818189b6a0c5c0f16724ce122e95e9ea26b3803cc36adc4ce76be0f2ba5830307c72bc565015ef0e5ab1fb4a4e2d6802a40cf0b728b7633db4f600c78955b9fec78debdd7ed640b9a94355cf6ddaa5bb23ce741e9d6af8dc565f75f14b165e5d88b9ec47cf8a0753af7bdddcc592e743b49005b647dbf1dcf416c3ca63a3ead47f9372ba1e883ae907d6a84318b7d0ac758cd1fc750421ea03b8a4b11d6&leadId=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1670574323150_697764&clickId=107698148_1670574323143_1812897 HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://no-go.kelkoogroup.net/ctl/go/offersearchGo?.ts=1670515477474&.sig=LWHjoW82SKh601L7nYSWo.Pela4-&affiliationId=96965866&comId=12741613&country=no&offerId=ffc2e2c0dd2f99a53e96b3a8c8a437ad&service=37&tokenId=35e025c3-2943-4e2d-874f-eaee491f9fab&wait=true&addedParams=true&custom1=8gQAx13F5qJA3yKB14mWYAwqabRAXE2BmRTLaIPCbqzsyDaE-IPpT13p4MRsyLlK3ZUqVk3pzZTsmuUL&custom2=8IPrv13p0STsy03MlRJFQqwqxqRA-tzE
Connection: keep-alive
Cookie: datadome=13Kt5aKfANRHTBkCiXZ5w7CfG6Z1fmuDU0P4QmsWb6GtrttGuvncR8Bh~2XsLxmp1qL-MfY-7~lKz53PAX1NZT_8WKZ~YdUgAR73NBMC4Y4BL9Z7~7_Wm_HyoEWdX1A8; kelkooID=a4c6294-184f5fd35c8-97ec1
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

search
                                         95.211.116.27
HTTP/1.1 200 OK
Content-Type: image/png
                                        
Date: Fri, 09 Dec 2022 08:25:23 GMT
Request-Time: PT0.001598S
X-Robots-Tag: noindex,nofollow
Cache-Control: private, must-revalidate
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: master-only
Content-Length: 68
P3P: CP="Anything"
ApacheTracking: localhost
Keep-Alive: timeout=40, max=59
Connection: Keep-Alive


--- Additional Info ---
Magic:  PNG image data, 1 x 1, 8-bit gray+alpha, non-interlaced\012- data
Size:   68
Md5:    91e42db1c66c0b276abf6234dc50b2eb
Sha1:   c1986af3c26609b8b7d8933f99c51c1a89e9ea6b
Sha256: 63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058
                                        
                                            POST /fp?country=no&k=612f7a9541cd6ea61eb554c0e4cff437567c460be4e08eed49d56f330fab19bbf73d7d08cc66dd091e67828b1e65c19641ac0ac4db45818176d219102973a1074255e84ddc1675be558ee995cf7bda9ff4c757ee3796f7679f3126eac5c5ca330a0e465eb6f8308c7c5dcc27683a494b78b7a993c90cbbacb385a0b9389974d83afe296b3830c3cb6b998528053f54d88abb9818189b6a0c5c0f16724ce122e95e9ea26b3803cc36adc4ce76be0f2ba5830307c72bc565015ef0e5ab1fb4a4e2d6802a40cf0b728b7633db4f600c78955b9fec78debdd7ed640b9a94355cf6ddaa5bb23ce741e9d6af8dc565f75f14b165e5d88b9ec47cf8a0753af7bdddcc592e743b49005b647dbf1dcf416c3ca63a3ead47f9372ba1e883ae907d6a84318b7d0ac758cd1fc750421ea03b8a4b11d6&leadId=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1670574323150_697764&clickId=107698148_1670574323143_1812897 HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://no-go.kelkoogroup.net/ctl/go/offersearchGo?.ts=1670515477474&.sig=LWHjoW82SKh601L7nYSWo.Pela4-&affiliationId=96965866&comId=12741613&country=no&offerId=ffc2e2c0dd2f99a53e96b3a8c8a437ad&service=37&tokenId=35e025c3-2943-4e2d-874f-eaee491f9fab&wait=true&addedParams=true&custom1=8gQAx13F5qJA3yKB14mWYAwqabRAXE2BmRTLaIPCbqzsyDaE-IPpT13p4MRsyLlK3ZUqVk3pzZTsmuUL&custom2=8IPrv13p0STsy03MlRJFQqwqxqRA-tzE
Content-Type: text/plain;charset=utf-8
Content-Length: 536
Origin: https://no-go.kelkoogroup.net
Connection: keep-alive
Cookie: datadome=13Kt5aKfANRHTBkCiXZ5w7CfG6Z1fmuDU0P4QmsWb6GtrttGuvncR8Bh~2XsLxmp1qL-MfY-7~lKz53PAX1NZT_8WKZ~YdUgAR73NBMC4Y4BL9Z7~7_Wm_HyoEWdX1A8; kelkooID=a4c6294-184f5fd35c8-97ec1; _ga=GA1.2.1804389847.1670574322; _gid=GA1.2.497441546.1670574322
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

search
                                         95.211.116.27
HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
                                        
Date: Fri, 09 Dec 2022 08:25:23 GMT
Request-Time: PT0.00347S
X-Robots-Tag: noindex,nofollow
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: master-only
Content-Length: 0
P3P: CP="Anything"
ApacheTracking: localhost
Keep-Alive: timeout=40, max=72
Connection: Keep-Alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         95.101.11.115
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "273DD99426B6AE97196F37EE5547D12C695B76367E7AFF56CE998C78FA73D14E"
Last-Modified: Wed, 07 Dec 2022 17:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12050
Expires: Fri, 09 Dec 2022 11:46:13 GMT
Date: Fri, 09 Dec 2022 08:25:23 GMT
Connection: keep-alive

                                        
                                            GET /redirect?country=no&k=612f7a9541cd6ea61eb554c0e4cff437567c460be4e08eed49d56f330fab19bbf73d7d08cc66dd091e67828b1e65c19641ac0ac4db45818176d219102973a1074255e84ddc1675be558ee995cf7bda9ff4c757ee3796f7679f3126eac5c5ca330a0e465eb6f8308c7c5dcc27683a494b78b7a993c90cbbacb385a0b9389974d83afe296b3830c3cb6b998528053f54d88abb9818189b6a0c5c0f16724ce122e95e9ea26b3803cc36adc4ce76be0f2ba5830307c72bc565015ef0e5ab1fb4a4e2d6802a40cf0b728b7633db4f600c78955b9fec78debdd7ed640b9a94355cf6ddaa5bb23ce741e9d6af8dc565f75f14b165e5d88b9ec47cf8a0753af7bdddcc592e743b49005b647dbf1dcf416c3ca63a3ead47f9372ba1e883ae907d6a84318b7d0ac758cd1fc750421ea03b8a4b11d6&leadId=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1670574323150_697764&clickId=107698148_1670574323143_1812897&url=https%3A%2F%2Fwww.golfhandelen.no%2Fsv%2Fartiklar%2Fadidas-zg21-hvit-bla-golfsko.html%3Futm_source%3Dkelkoono%26utm_medium%3Dcpc%26utm_campaign%3Dkelkooclick%26utm_term%3DAdidas%2BZG21%2B-%2BHvit%252FGr%25C3%25A5%2B-%2BMedium%2B-%2BGolfsk&initiator=timeout HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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
Referer: https://no-go.kelkoogroup.net/ctl/go/offersearchGo?.ts=1670515477474&.sig=LWHjoW82SKh601L7nYSWo.Pela4-&affiliationId=96965866&comId=12741613&country=no&offerId=ffc2e2c0dd2f99a53e96b3a8c8a437ad&service=37&tokenId=35e025c3-2943-4e2d-874f-eaee491f9fab&wait=true&addedParams=true&custom1=8gQAx13F5qJA3yKB14mWYAwqabRAXE2BmRTLaIPCbqzsyDaE-IPpT13p4MRsyLlK3ZUqVk3pzZTsmuUL&custom2=8IPrv13p0STsy03MlRJFQqwqxqRA-tzE
Connection: keep-alive
Cookie: datadome=13Kt5aKfANRHTBkCiXZ5w7CfG6Z1fmuDU0P4QmsWb6GtrttGuvncR8Bh~2XsLxmp1qL-MfY-7~lKz53PAX1NZT_8WKZ~YdUgAR73NBMC4Y4BL9Z7~7_Wm_HyoEWdX1A8; kelkooID=a4c6294-184f5fd35c8-97ec1; _ga=GA1.2.1804389847.1670574322; _gid=GA1.2.497441546.1670574322
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin

search
                                         95.211.116.27
HTTP/1.1 303 See Other
Content-Type: text/plain
                                        
Date: Fri, 09 Dec 2022 08:25:23 GMT
leadId: dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1670574323150_697764
clickId: 107698148_1670574323143_1812897
country: no
Location: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Accept-CH: Sec-CH-UA,Sec-CH-UA-Mobile,Sec-CH-UA-Platform,Sec-CH-UA-Arch,Sec-CH-UA-Full-Version-List,Sec-CH-UA-Model,Sec-CH-Device-Memory
X-DataDome: protected
Request-Time: PT0.017969S
X-Robots-Tag: noindex,nofollow
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: master-only
Content-Length: 0
Set-Cookie: datadome=2k1uTVPKZkB9PUtJ_A4sy6IKQmm9nbKc7Je9vgqUl9fTppFGgN9j~DBZi~QWG6BQtoaoaIojvHk0OO30DVHGCswInGyTuJfVNt2MqYDQLO1iXDw539CNfDa~U4JrgwXh; Max-Age=31536000; Expires=Sat, 09 Dec 2023 08:25:23 GMT; SameSite=Lax; Path=/; Domain=.kelkoogroup.net; Secure
P3P: CP="Anything"
ApacheTracking: localhost
Keep-Alive: timeout=40, max=100
Connection: Keep-Alive

                                        
                                            POST / HTTP/1.1 
Host: ocsp.godaddy.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 76
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         192.124.249.24
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: Sucuri/Cloudproxy
Date: Fri, 09 Dec 2022 08:25:23 GMT
Content-Length: 1778
Connection: keep-alive
X-Sucuri-ID: 19024
Content-Transfer-Encoding: Binary
Cache-Control: public, no-transform, must-revalidate
Last-Modified: Thu, 08 Dec 2022 21:29:36 GMT
Expires: Fri, 09 Dec 2022 21:29:36 GMT
ETag: "15af09cb78994c5844c466b9543c5dd4789950df"
P3P: CP="IDC DSP COR LAW CUR ADM DEV TAI PSA PSD IVA IVD HIS OUR SAM PUB LEG UNI COM NAV STA"


--- Additional Info ---
Magic:  data
Size:   1778
Md5:    7db6c0bcb4c50180fff5deca119cda6e
Sha1:   15af09cb78994c5844c466b9543c5dd4789950df
Sha256: 77e46d4de06e0f34e859892d86ed4c2169410994c8cf9c0c7bda4c4f72d86abe
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 09 Dec 2022 08:25:23 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /collect?v=1&_v=j96&t=pageview&_s=1&dl=https%3A%2F%2Fno-go.kelkoogroup.net%2Fctl%2Fgo%2FoffersearchGo%3F.ts%3D1670515477474%26.sig%3DLWHjoW82SKh601L7nYSWo.Pela4-%26affiliationId%3D96965866%26comId%3D12741613%26country%3Dno%26offerId%3Dffc2e2c0dd2f99a53e96b3a8c8a437ad%26service%3D37%26tokenId%3D35e025c3-2943-4e2d-874f-eaee491f9fab%26wait%3Dtrue%26addedParams%3Dtrue%26custom1%3D8gQAx13F5qJA3yKB14mWYAwqabRAXE2BmRTLaIPCbqzsyDaE-IPpT13p4MRsyLlK3ZUqVk3pzZTsmuUL%26custom2%3D8IPrv13p0STsy03MlRJFQqwqxqRA-tzE&dr=http%3A%2F%2Fr.redirekted.com%2F&dp=%2F96965866%7C12741613%7C&ul=en-us&de=UTF-8&dt=Du%20sendes%20videre%20til%20Golfhandelen.no&sd=24-bit&sr=1280x1024&vp=1280x939&je=0&_u=QACAAAABAAAAAC~&cid=1804389847.1670574322&tid=UA-168544891-6&_gid=497441546.1670574322&_r=1&cd1=96965866&cd2=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1670574323150_697764&cd3=12741613&cd4=a4c6294-184f5fd35c8-97ec1&cd5=&cd6=96965866%7C12741613%7C&z=500989404 HTTP/1.1 
Host: www.google-analytics.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://no-go.kelkoogroup.net
Connection: keep-alive
Referer: https://no-go.kelkoogroup.net/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
Content-Length: 0

search
                                         142.250.74.110
HTTP/2 200 OK
content-type: image/gif
                                        
access-control-allow-origin: https://no-go.kelkoogroup.net
date: Fri, 09 Dec 2022 08:25:23 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, no-store, must-revalidate
last-modified: Sun, 17 May 1998 03:00:00 GMT
x-content-type-options: nosniff
access-control-allow-credentials: true
cross-origin-resource-policy: cross-origin
server: Golfe2
content-length: 35
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:  GIF image data, version 89a, 1 x 1\012- data
Size:   35
Md5:    28d6814f309ea289f847c69cf91194c6
Sha1:   0f4e929dd5bb2564f7ab9c76338e04e292a42ace
Sha256: 8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 09 Dec 2022 08:25:23 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /themes/air_theme_x/design/css/webfonts/fa-regular-400.woff2 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: font/woff2
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 12 Oct 2022 06:56:00 GMT
etag: "2708c-5ead0e2addd9c"
accept-ranges: bytes
content-length: 159884
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 159884, version 330.32636\012- data
Size:   159884
Md5:    126e3505907e02ed1fdc86058cb4ce3a
Sha1:   aea70a9873d80503dd03c2e48b149194f2ed2d6d
Sha256: 42d979d54a12b76d10c5f34709c774b14aedcbf25f268f332a7e9163011b658b
                                        
                                            GET /themes/air_theme_x/design/css/webfonts/fa-light-300.woff2 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: font/woff2
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 12 Oct 2022 06:56:00 GMT
etag: "2a62c-5ead0e2ae0c7c"
accept-ranges: bytes
content-length: 173612
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 173612, version 330.32636\012- data
Size:   173612
Md5:    9ccb65771eac6d1ff178dc577ff826cc
Sha1:   633debc754adb1130f03e1bc89f015e32c1e39cd
Sha256: f6d6e49e8971c9b702e31bb9ad580eb9d374a13af6e713e3673282c9e52ac7bc
                                        
                                            GET /themes/golfhandelen2021/design/css/webfonts/Lato/lato-bold.woff2 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: font/woff2
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:49 GMT
etag: "6d90-5b6aa1a8a5bdd"
accept-ranges: bytes
content-length: 28048
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 28048, version 1.0\012- data
Size:   28048
Md5:    b92a44158d98541f308a0881d3bddc0d
Sha1:   7f7dd3399e00ef3b3395c41d8374c8ffefc76140
Sha256: 455ed35b88d19dfd6cfab504922131c818e70b295415295800d49bd7cb2c4ef8
                                        
                                            GET /themes/golfhandelen2021/design/css/webfonts/Lato/lato-regular.woff2 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: font/woff2
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:49 GMT
etag: "7074-5b6aa1a8f1e9d"
accept-ranges: bytes
content-length: 28788
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 28788, version 1.0\012- data
Size:   28788
Md5:    b71caab8e16cbd6a03998c5c10c4a6fb
Sha1:   7824465c17503a1f03ee34235e0fb8987394484a
Sha256: 456958f514b92dfe79a34c1c42c514dcb011267ee7676b29314812a990edcb3a
                                        
                                            GET /themes/golfhandelen2021/design/css/webfonts/Lato/lato-black.woff2 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: font/woff2
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:49 GMT
etag: "6c60-5b6aa1a88489c"
accept-ranges: bytes
content-length: 27744
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 27744, version 1.0\012- data
Size:   27744
Md5:    854f45d9a56bb5ccfe36cb95270d994c
Sha1:   e43d115c0cba3257ea58cff7de454de4a1d76afb
Sha256: da7d9828d724b219d45f9e8807fb2f30959c747644987a1c8037cc3bccb6a67f
                                        
                                            GET /themes/air_theme_x/design/css/webfonts/fa-solid-900.woff2 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.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: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: font/woff2
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 12 Oct 2022 06:56:00 GMT
etag: "1fb28-5ead0e2aded3c"
accept-ranges: bytes
content-length: 129832
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 129832, version 330.32636\012- data
Size:   129832
Md5:    dbe8505cf4eb137c63b6c375e02c225e
Sha1:   e1b1db2ab291da9e9b17335580665c4fb5eddde9
Sha256: 0c103ae844c36c58f5947f4ffac0ef3edf1d447d0650fe33437071d3e13645ca
                                        
                                            GET /bilder/butik/Golfhandelen_v2.svg?w=240 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: image/svg+xml
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Mon, 09 Nov 2020 11:33:59 GMT
etag: "4f58-5b3aaf037136c"
accept-ranges: bytes
content-length: 20312
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- XML 1.0 document text\012- XML document text\012- HTML document text\012- exported SGML document, ASCII text
Size:   20312
Md5:    7ecbd7f4f63ee9af49cd4c840d858cf2
Sha1:   98eb30d29d6a0faa160621ef826d09c40718a150
Sha256: 66bb5b65e2114d49f4d450765764947162d1e75e78b5420490f0c4f29ba8dd53
                                        
                                            GET /includes/magiczoom/magiczoomplus/magiczoomplus.css HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Fri, 13 Nov 2020 12:52:02 GMT
etag: "6727-5b3fc7ebbb9f5-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 5987
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (26231)
Size:   5987
Md5:    c12f377b3df00d32b452c76cb2a1de92
Sha1:   24dccc9a1168ce71f1c244b6267769f2a78b5a10
Sha256: 2e31baf0b05b9e2349da00de44db93f3632e527755bf20a46004dd46630a44c5
                                        
                                            GET /includes/magiczoom/magiczoomplus/magiczoomplus.js HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Fri, 13 Nov 2020 12:42:49 GMT
etag: "149a0-5b3fc5dc0a041-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 32882
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65348)
Size:   32882
Md5:    c94b37308e95ca8df398a7a5f949b44c
Sha1:   6db271e38d3e8afa1945367b5969bfbc5424df33
Sha256: a880957c1ca6d2eaa7ae8dc19614d21d603a028cbacc8953f23656ee17a4a0d7
                                        
                                            GET /dokument/bibliotek/Image/Logoer/facebook-f-brands.svg HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: image/svg+xml
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 25 Nov 2020 11:11:28 GMT
etag: "268-5b4ec7d2568c8"
accept-ranges: bytes
content-length: 616
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- XML 1.0 document text\012- XML document text\012- HTML document text\012- exported SGML document, ASCII text
Size:   616
Md5:    f6ed9994bb18b46bdf153b949493753c
Sha1:   e64411c7988bfaa2bb66ce25577c96fb314fd309
Sha256: 5d6aded5250a20328e2c5bda4d7810f6270aced6314a02a707c16231678d945f
                                        
                                            GET /themes/golfhandelen2021/design/css/flexboxgrid.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:45 GMT
etag: "3861-5b6aa1a522537-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 1781
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   1781
Md5:    722ae38ed52d86ab6df06706500a2069
Sha1:   74107378c7784b9a11ea6263ebd22645c9941b13
Sha256: da5e5db8312bf4bd1c2cee045e7149144e43aa8179ac938197f62699e371926b
                                        
                                            GET /themes/golfhandelen2021/design/css/air_head.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Fri, 22 Oct 2021 06:38:48 GMT
etag: "3d3a-5ceeb43829dfc-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 3697
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  assembler source, ASCII text
Size:   3697
Md5:    2acac30b89ffc06263658f3387a6e9a4
Sha1:   e21bc140701315658303a6b7d265600b55510c4d
Sha256: 49cbeb0aa3ffd39a187bea5a32d40e07d7a83b37db3860640b412a3ceccf26e6
                                        
                                            GET /themes/golfhandelen2021/design/css/air_ikoner.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:45 GMT
etag: "3ba-5b6aa1a4c58d7-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 396
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   396
Md5:    5db7d88a0e8e338bfbb66db410d88586
Sha1:   68041d5e3e2bfc7fabcfabfecb5ffcf9364e8340
Sha256: ae48717f98086d3ec011932660b7b574bb840e81a5446fafb22ce5e85d2b560a
                                        
                                            GET /themes/golfhandelen2021/design/css/air_afterload.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Tue, 26 Jan 2021 08:44:36 GMT
etag: "4700-5b9c9aa15a2ad-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 4316
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text
Size:   4316
Md5:    b3d0c0e931f6e5754143505403bf618c
Sha1:   1826b1ca761d523fd461253248d176532e3d310c
Sha256: cc1a3f51c01034ba18b1959e76e9f1574b3428eff3d1dae89921205e42838393
                                        
                                            GET /dokument/bibliotek/Image/Logoer/instagram-brands.svg HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: image/svg+xml
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 25 Nov 2020 11:11:28 GMT
etag: "5af-5b4ec7d241107"
accept-ranges: bytes
content-length: 1455
cache-control: max-age=604800, public
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- XML 1.0 document text\012- XML document text\012- HTML document text\012- exported SGML document, ASCII text
Size:   1455
Md5:    807e0ba9400622158fd007078b7a6c16
Sha1:   4fcf1516b8ba1012e5c0a7d9091b2a04606bddb4
Sha256: 2d492935986b4c5f825ff5c0a61b8bea0e294b4c0ea315d0018dbffcafe4196b
                                        
                                            GET /themes/golfhandelen2021/design/css/air_variables.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:45 GMT
etag: "53b-5b6aa1a5011f7-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 480
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   480
Md5:    ebb51466d114bc7268c949d87fa1160d
Sha1:   c47ec0bbca4c9206eebcc5ea17f7f651d7b6b805
Sha256: a901d2655d4156663d90e4405e41a0b1f8e51556fa6b96adb67c62a9bc34d076
                                        
                                            GET /themes/golfhandelen2021/design/css/air_artcells.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Tue, 12 Jan 2021 10:14:46 GMT
etag: "4cf-5b8b14ac90fb3-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 569
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   569
Md5:    fe0bb5b383f71e499b1c2d0ab9afa656
Sha1:   ff6096245e7779aa5f1c754ef20577dbe2fb4cd7
Sha256: ace6ba55903d6c3c0ed4c73498b720c99f65e0e6a98684a1ab4c13ae8f1dbcfc
                                        
                                            GET /themes/golfhandelen2021/design/css/air_menu.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Sun, 14 Nov 2021 10:12:54 GMT
etag: "1c83-5d0bcef82dd3b-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 1842
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   1842
Md5:    97d79bb1bc2600f62d40e9607b7f62aa
Sha1:   9c448f48ab698a090e76296d25c504799cd3f4cc
Sha256: 9b50a5ae2ea62314cbfc07d763e26c6ed01f7b8680c7d91a2f85cbe6e7e69a8c
                                        
                                            GET /themes/golfhandelen2021/design/css/air_sok_LSS.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:45 GMT
etag: "56a-5b6aa1a4fc3d7-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 613
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   613
Md5:    604015b89db0127d900c9a82627d8d31
Sha1:   344bedc55bbe710eb3bb524383962fca529582ef
Sha256: c610fb49b733e10afa62b1452d50a41c5e25d86ab28223624b34abae2c9460c9
                                        
                                            GET /themes/golfhandelen2021/design/css/air_varukorg.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 20 Jan 2021 19:14:47 GMT
etag: "117b-5b959c4c07846-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 1290
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   1290
Md5:    f6d03fa8bd41809a67c2f331e2107eec
Sha1:   9b18bf848c68e8c39c88efb5cd58404966a8ef70
Sha256: aaf48b494a2b6a0d2e62477b220b7451d590fa23560741b9414d2b852163a806
                                        
                                            GET /themes/golfhandelen2021/design/css/cookiebar.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:45 GMT
etag: "292-5b6aa1a519897-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 339
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   339
Md5:    862dbd08a61b32735797261e0f872bc6
Sha1:   857d35aaef63bee3e853e423964b75f7f72f1083
Sha256: 983a8db5768dba9341c03ad35d34ac1272ba5b6b7469bff44dd6449022701d14
                                        
                                            GET /themes/golfhandelen2021/design/css/webfonts/custom.min.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Fri, 19 Feb 2021 14:20:12 GMT
etag: "2543-5bbb1267d44da-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 1832
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (591)
Size:   1832
Md5:    e8d7864101d4cec5a1625491aefe906a
Sha1:   b8e6a6d01e403b2b489261e7ed7ec8a1cace4563
Sha256: 035093195f077f663e2139ec79389986f7e51aae68f5d68776e6ea8c77de3a61
                                        
                                            GET /themes/golfhandelen2021/design/css/air_leads.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Fri, 01 Oct 2021 06:23:20 GMT
etag: "9e4-5cd44997b6238-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 887
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   887
Md5:    bcd397a144a512c12b9d07099caedfe2
Sha1:   f1b70ec782211131f46ea592d6a7879719fd5566
Sha256: 73020a0b501ff90c7f0bbfffb3d123e18eb4b54b751ab06cccd37f9ea7a33a0a
                                        
                                            GET /themes/golfhandelen2021/design/css/air_produkt.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Mon, 28 Jun 2021 11:59:10 GMT
etag: "28cd-5c5d237a1731d-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 2750
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text
Size:   2750
Md5:    cc7e49b9555182f47dbc7da1be98849a
Sha1:   3baeda315511a2a9aeceafc88003732b075302f4
Sha256: dfbe3226b638fe0e541a0b82280eef4ac1a5b3ac289dd7124f8153cbea95c9ec
                                        
                                            GET /themes/golfhandelen2021/design/script/slick/slick.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 17 Dec 2020 14:49:54 GMT
etag: "6f0-5b6aa1acf34e3-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 569
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   569
Md5:    8089b828484e2269d5dcb1089c4004ba
Sha1:   9b61a0f5bf48ef08890dbae954ee9b5a90015d2c
Sha256: 35c1c8741af6e18aa88caca3d060e26808e1103a29b3ee0415ae3e3b648bcd09
                                        
                                            GET /themes/default/design/script/LSS_Sokning.js?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 12 Oct 2022 06:56:00 GMT
etag: "154c-5ead0e2acc45c-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 1659
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ISO-8859 text
Size:   1659
Md5:    eb445ca9cfe3fe5c3129eab72a8da7b9
Sha1:   60ca245ad74820f9e854b74ff17ea15cefc0dffe
Sha256: 6c92079d709aab55ae061bd6d4d1667faf6feb37185de37638b6822df85b487a
                                        
                                            GET /themes/golfhandelen2021/design/script/air_leads.js?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 09 Jun 2021 09:47:38 GMT
etag: "c62-5c4522a3d2619-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 1288
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  HTML document, ISO-8859 text
Size:   1288
Md5:    248d400d770654b5bfaddfdaf735184a
Sha1:   ca92f6053e4a88b3c0a556ccda7a5853094deeb0
Sha256: aadb6fa492c3762a7094b28c989aef44168669048f1e4a5a99d8b323b312cda3
                                        
                                            GET /themes/golfhandelen2021/design/script/slick/slick-theme.css?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: text/css
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 21 Oct 2021 14:33:00 GMT
etag: "1268-5ceddc5805b3d-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 1271
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text
Size:   1271
Md5:    db33999510c294693ab2e32857aba5fc
Sha1:   944f582364f3dd305cba5622c8b506188fa21e22
Sha256: 419ab4f0ca83b2dbc7ff020815bb31e55632b2f479713a617bbdd0f8c44f7fc2
                                        
                                            GET /themes/default/design/script/jquery.lazy.picture.min.js?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Wed, 12 Oct 2022 06:56:00 GMT
etag: "592-5ead0e2acc45c-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 714
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (1278)
Size:   714
Md5:    1bbc7b8161151b92fd714cc8c179e14d
Sha1:   20fbc596dfe632b2a7e580a6d7103d5a67208b20
Sha256: b4351e12ba5f0dff8e3d5de403837855c7b05d53c9dacc3f59dd74b7cea3822e
                                        
                                            GET /themes/golfhandelen2021/design/script/afterload.js?v5.6 HTTP/1.1 
Host: www.golfhandelen.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.golfhandelen.no/sv/artiklar/adidas-zg21-hvit-bla-golfsko.html?utm_source=kelkoono&utm_medium=cpc&utm_campaign=kelkooclick&utm_term=Adidas+ZG21+-+Hvit%2FGr%C3%A5+-+Medium+-+Golfsk
Cookie: VISADE=ZG21%2DWht%2DBlue; SESS=16705743236j1A2517123723rKj3; SPRAK=NO; VALUTA=NOK; GEO=1670585123; ARTGRP=438
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         46.21.98.6
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Fri, 09 Dec 2022 08:25:24 GMT
server: Apache/2.4.54 (Debian)
last-modified: Thu, 21 Oct 2021 14:44:50 GMT
etag: "2cde-5ceddefd8b6d5-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: max-age=604800, public
content-length: 3053