Overview

URL gwjyhs.com/
IP172.98.192.35
ASNDACEN-2
Location United States
Report completed2022-10-04 11:04:58 UTC
StatusLoading report..
urlquery Alerts No alerts detected


Settings

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


Intrusion Detection Systems

Suricata /w Emerging Threats Pro  No alerts detected


Blocklists

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


Files

No files detected



Passive DNS (75)

Passive DNS Source Fully Qualifying Domain Name Rank First Seen Last Seen IP Comment
mnemonic passive DNS dpm.demdex.net (2) 204 2017-01-30 04:59:39 UTC 2022-10-04 04:17:45 UTC 52.30.136.248
mnemonic passive DNS ups.analytics.yahoo.com (1) 287 2019-05-09 15:57:40 UTC 2022-10-04 04:36:47 UTC 18.156.0.31
mnemonic passive DNS ekr.zdassets.com (1) 2396 2018-08-30 11:19:59 UTC 2022-10-04 04:50:12 UTC 104.18.72.113
mnemonic passive DNS api.mplayit.com (1) 914213 2021-11-14 09:26:30 UTC 2022-10-03 12:29:51 UTC 3.211.95.199
mnemonic passive DNS www.google-analytics.com (2) 40 2012-10-03 01:04:21 UTC 2022-10-04 05:10:46 UTC 216.239.32.178
mnemonic passive DNS bat.bing.com (2) 387 2014-04-08 09:23:16 UTC 2022-10-04 04:17:36 UTC 13.107.21.200
mnemonic passive DNS dnacdn.net (2) 3760 2019-09-02 15:07:45 UTC 2022-10-04 04:41:32 UTC 178.250.0.157
mnemonic passive DNS c.clarity.ms (1) 803 2021-02-03 23:22:47 UTC 2022-10-04 04:30:54 UTC 20.234.93.27
mnemonic passive DNS api-js.datadome.co (1) 8155 2017-10-11 14:14:56 UTC 2022-10-04 05:17:15 UTC 16.170.188.27
mnemonic passive DNS d.impactradius-event.com (1) 2612 2017-02-01 08:42:43 UTC 2022-10-04 05:31:37 UTC 35.186.249.72
mnemonic passive DNS contextual.media.net (1) 513 2019-04-30 08:49:36 UTC 2022-10-04 10:40:30 UTC 23.38.200.22
mnemonic passive DNS match.sharethrough.com (1) 604 2015-12-22 22:55:59 UTC 2022-10-04 04:43:47 UTC 18.157.89.139
mnemonic passive DNS visitor.omnitagjs.com (1) 1722 2017-01-30 04:58:42 UTC 2022-10-04 04:43:47 UTC 185.255.84.152
mnemonic passive DNS click-v4.expmdiadi.com (1) 0 2022-07-04 08:55:48 UTC 2022-10-03 20:56:05 UTC 198.134.116.17 Unknown ranking
mnemonic passive DNS ocsp.sca1b.amazontrust.com (7) 1015 2017-03-03 15:20:51 UTC 2019-03-27 04:05:54 UTC 143.204.42.158
mnemonic passive DNS dyrekassen.akacdn.net (5) 0 2017-02-02 09:55:39 UTC 2022-10-03 15:38:31 UTC 172.67.73.109 Unknown ranking
mnemonic passive DNS ad.doubleclick.net (1) 186 2013-05-06 20:24:43 UTC 2022-10-04 04:36:45 UTC 216.58.207.198
mnemonic passive DNS c.bing.com (1) 247 2012-05-22 10:26:32 UTC 2022-10-04 04:17:05 UTC 13.107.21.200
mnemonic passive DNS dd.kelkoogroup.net (1) 0 2022-06-24 10:22:42 UTC 2022-10-04 07:28:50 UTC 54.230.111.47 Domain (kelkoogroup.net) ranked at: 79339
mnemonic passive DNS www.clarity.ms (2) 1404 2018-08-22 07:41:57 UTC 2022-10-04 04:30:54 UTC 13.107.227.53
mnemonic passive DNS ib.adnxs.com (2) 241 2012-05-23 22:36:14 UTC 2022-10-04 04:17:45 UTC 185.89.210.212
mnemonic passive DNS pixel.rubiconproject.com (1) 314 2012-10-09 03:17:38 UTC 2022-10-04 04:27:06 UTC 213.19.162.90
mnemonic passive DNS eb2.3lift.com (1) 402 2014-09-24 15:03:42 UTC 2022-10-04 04:22:56 UTC 13.248.245.213
mnemonic passive DNS ocsp.digicert.com (12) 86 2012-05-21 07:02:23 UTC 2022-10-04 07:51:20 UTC 93.184.220.29
mnemonic passive DNS www.google.com (1) 7 2016-08-04 12:36:31 UTC 2022-10-04 04:25:35 UTC 142.250.74.164
mnemonic passive DNS stats.g.doubleclick.net (1) 96 2013-06-02 22:47:44 UTC 2022-10-04 05:06:06 UTC 74.125.131.155
mnemonic passive DNS id5-sync.com (1) 504 2017-01-25 21:02:34 UTC 2022-10-04 04:55:41 UTC 141.95.33.111
mnemonic passive DNS c.trackmytarget.com (2) 0 2014-10-08 02:52:34 UTC 2022-10-04 05:04:04 UTC 52.49.41.143 Domain (trackmytarget.com) ranked at: 149336
mnemonic passive DNS cdnjs.cloudflare.com (4) 235 2020-10-20 10:17:36 UTC 2022-10-04 04:47:48 UTC 104.17.24.14
mnemonic passive DNS ocsp.sectigo.com (2) 487 2018-12-17 11:31:55 UTC 2022-10-04 09:09:40 UTC 104.18.32.68
mnemonic passive DNS dyrekassen.zendesk.com (1) 0 2017-08-28 13:44:30 UTC 2022-10-03 15:38:31 UTC 104.16.51.111 Domain (zendesk.com) ranked at: 1020
mnemonic passive DNS cm.adform.net (1) 1667 2015-03-30 07:47:01 UTC 2022-10-04 04:43:47 UTC 37.157.6.247
mnemonic passive DNS ocsp.usertrust.com (1) 899 2012-05-21 15:43:18 UTC 2022-10-04 04:20:18 UTC 172.64.155.188
mnemonic passive DNS ocsp.pki.goog (18) 175 2017-06-14 07:23:31 UTC 2022-10-04 04:17:09 UTC 142.250.74.3
mnemonic passive DNS www.dyrekassen.no (35) 0 2015-10-26 11:52:28 UTC 2022-10-03 15:38:29 UTC 172.67.72.199 Unknown ranking
mnemonic passive DNS googleads.g.doubleclick.net (2) 42 2021-02-20 15:43:32 UTC 2022-10-04 09:27:47 UTC 216.58.211.2
mnemonic passive DNS static.zdassets.com (3) 2154 2018-06-23 22:11:55 UTC 2022-10-04 04:50:12 UTC 104.18.72.113
mnemonic passive DNS gwjyhs.com (3) 0 2015-10-10 23:59:20 UTC 2022-09-17 09:02:35 UTC 172.98.192.35 Unknown ranking
mnemonic passive DNS contile.services.mozilla.com (1) 1114 2021-05-27 18:32:35 UTC 2022-10-04 04:16:51 UTC 34.117.237.239
mnemonic passive DNS rtb-csync.smartadserver.com (1) 583 2012-12-17 16:38:47 UTC 2022-10-04 04:43:47 UTC 185.86.138.114
mnemonic passive DNS widget-mediator.zopim.com (1) 2693 2022-02-08 08:03:56 UTC 2022-10-04 04:48:17 UTC 52.59.41.164
mnemonic passive DNS img-getpocket.cdn.mozilla.net (6) 1631 2017-09-01 03:40:57 UTC 2022-10-04 04:18:32 UTC 34.120.237.76
mnemonic passive DNS no-go.kelkoogroup.net (5) 0 2017-10-30 14:27:38 UTC 2022-10-04 01:01:42 UTC 95.211.116.27 Domain (kelkoogroup.net) ranked at: 79339
mnemonic passive DNS ad.yieldlab.net (1) 3515 2014-05-07 00:17:56 UTC 2022-10-04 04:43:47 UTC 23.13.245.180
mnemonic passive DNS r3.o.lencr.org (5) 344 2020-12-02 08:52:13 UTC 2022-10-04 04:17:22 UTC 23.36.76.226
mnemonic passive DNS r.casalemedia.com (2) 1896 2012-06-24 01:17:14 UTC 2022-10-04 05:16:25 UTC 104.18.19.126
mnemonic passive DNS www.googletagmanager.com (2) 75 2012-12-25 14:52:06 UTC 2022-10-04 09:37:43 UTC 142.250.74.168
mnemonic passive DNS c.trackmytarget.com (2) 0 2014-10-08 02:52:34 UTC 2022-10-04 05:04:04 UTC 34.255.242.12 Domain (trackmytarget.com) ranked at: 149336
mnemonic passive DNS fonts.gstatic.com (1) 0 2014-08-29 13:43:22 UTC 2022-10-04 09:46:16 UTC 216.58.207.195 Domain (gstatic.com) ranked at: 540
mnemonic passive DNS fonts.googleapis.com (1) 8877 2013-06-10 20:14:26 UTC 2022-10-04 10:27:31 UTC 142.250.74.10
mnemonic passive DNS push.services.mozilla.com (1) 2140 2015-09-03 10:29:36 UTC 2022-10-04 04:45:06 UTC 35.162.35.244
mnemonic passive DNS www.google.no (2) 25607 2016-04-05 19:50:59 UTC 2022-10-04 08:54:14 UTC 142.250.74.3
mnemonic passive DNS sync-t1.taboola.com (1) 1269 2020-06-29 11:52:33 UTC 2022-10-04 05:16:25 UTC 141.226.228.48
mnemonic passive DNS sync.outbrain.com (1) 757 2016-08-02 06:37:14 UTC 2022-10-04 04:36:47 UTC 64.202.112.63
mnemonic passive DNS firefox.settings.services.mozilla.com (2) 867 2020-05-27 20:08:30 UTC 2022-10-04 09:13:54 UTC 143.204.55.35
mnemonic passive DNS api.apptap.com (1) 168726 2015-09-22 12:24:25 UTC 2022-10-04 04:01:25 UTC 44.205.145.249
mnemonic passive DNS cdn.trackmytarget.com (1) 183422 2017-12-11 15:27:56 UTC 2022-10-03 15:38:30 UTC 185.76.9.17
mnemonic passive DNS www.facebook.com (2) 99 2017-01-30 05:00:00 UTC 2022-10-04 04:17:03 UTC 31.13.72.36
mnemonic passive DNS adservice.google.no (1) 96969 2017-09-26 14:23:08 UTC 2022-10-04 04:17:30 UTC 142.250.74.66
mnemonic passive DNS status.thawte.com (2) 5123 2017-11-27 12:33:51 UTC 2022-10-04 04:53:20 UTC 93.184.220.29
mnemonic passive DNS adservice.google.com (1) 76 2021-02-20 16:10:48 UTC 2022-10-04 07:12:09 UTC 216.58.211.2
mnemonic passive DNS gum.criteo.com (3) 381 2015-01-22 10:58:57 UTC 2022-10-04 10:21:25 UTC 178.250.0.157
mnemonic passive DNS cm.g.doubleclick.net (2) 202 2013-05-30 23:19:45 UTC 2022-10-04 06:51:07 UTC 216.58.207.194
mnemonic passive DNS gem.gbc.criteo.com (1) 6039 2019-02-06 06:21:41 UTC 2022-10-04 05:34:33 UTC 178.250.6.245
mnemonic passive DNS ag.gbc.criteo.com (1) 5925 2018-12-17 13:17:41 UTC 2022-10-04 05:34:33 UTC 185.235.84.133
mnemonic passive DNS r.srvtrck.com (2) 45104 2015-03-03 12:59:37 UTC 2022-10-03 15:38:28 UTC 104.19.168.96
mnemonic passive DNS www.google-analytics.com (2) 40 2012-10-03 01:04:21 UTC 2022-10-04 05:10:46 UTC 216.239.38.178
mnemonic passive DNS criteo-sync.teads.tv (1) 1786 2017-02-17 10:06:41 UTC 2022-10-04 05:16:25 UTC 23.195.255.234
mnemonic passive DNS ad.360yield.com (2) 657 2012-11-28 11:30:25 UTC 2022-10-04 04:43:47 UTC 18.159.9.120
mnemonic passive DNS sync-criteo.ads.yieldmo.com (1) 2354 2019-12-10 21:28:48 UTC 2022-10-04 05:13:28 UTC 54.229.162.197
mnemonic passive DNS content-signature-2.cdn.mozilla.net (1) 1152 2020-11-03 12:26:46 UTC 2022-10-04 04:29:41 UTC 143.204.55.110
mnemonic passive DNS ocsp.godaddy.com (1) 698 2012-05-20 19:28:57 UTC 2022-10-04 04:40:22 UTC 192.124.249.23
mnemonic passive DNS api.exponea.com (1) 21629 2016-02-12 16:28:00 UTC 2022-10-04 07:07:53 UTC 35.244.143.131
mnemonic passive DNS b.clarity.ms (2) 3462 2021-07-27 12:49:08 UTC 2022-10-04 04:03:27 UTC 20.75.32.255
mnemonic passive DNS simage2.pubmatic.com (1) 578 2012-07-21 03:13:48 UTC 2022-10-04 07:43:34 UTC 185.64.190.80


Recent reports on same IP/ASN/Domain/Screenshot

Last 5 reports on IP: 172.98.192.35

Date UQ / IDS / BL URL IP
2022-11-29 01:21:52 +0000
0 - 0 - 5 anonymousdelivers.us/uploads/e33ed96d1a50a47a (...) 172.98.192.35
2022-11-28 21:15:37 +0000
0 - 0 - 5 jec4s.drofortho.com/pjn:gji2q5853990858fy4cpt (...) 172.98.192.35
2022-11-26 13:21:53 +0000
0 - 0 - 1 os2.thebestimageeditorfunapp.com/CM_FL_4/?v=3 (...) 172.98.192.35
2022-11-26 07:48:49 +0000
0 - 0 - 16 es.triavip.com/banadores-triatlon.html 172.98.192.35
2022-11-06 02:52:46 +0000
0 - 0 - 1 xieziet.do22.co/medical-assistant-qualificati (...) 172.98.192.35

Last 5 reports on ASN: DACEN-2

Date UQ / IDS / BL URL IP
2022-12-03 17:00:57 +0000
0 - 0 - 10 srmshyb.indianrailways.cloud/login.php 192.198.80.102
2022-12-02 08:28:41 +0000
0 - 0 - 1 dollargeneral.co/ 172.98.192.37
2022-12-02 03:48:39 +0000
0 - 0 - 16 beta.dukesoft.net/ 192.111.150.72
2022-12-02 03:31:21 +0000
0 - 0 - 1 online.dukesoft.net/ 192.111.150.72
2022-12-02 02:32:45 +0000
0 - 0 - 5 filmaijums.net/2600-kaledines-vestuves-a-chri (...) 172.98.192.37

Last 1 reports on domain: gwjyhs.com

Date UQ / IDS / BL URL IP
2022-10-04 11:04:58 +0000
0 - 0 - 1 gwjyhs.com/ 172.98.192.35

No other reports with similar screenshot



JavaScript

Executed Scripts (67)


Executed Evals (1)

#1 JavaScript::Eval (size: 136113, repeated: 1) - SHA256: e0554999e3820284189608236d0cf95e913a64df39a134b9622629117a803ec2

                                        window.MagicZoom = (function() {
    var z, A;
    z = A = (function() {
        var V = {
            version: "v3.3-b5-1-gac3ac3e",
            UUID: 0,
            storage: {},
            $uuid: function(Z) {
                return (Z.$J_UUID || (Z.$J_UUID = ++P.UUID))
            },
            getStorage: function(Z) {
                return (P.storage[Z] || (P.storage[Z] = {}))
            },
            $F: function() {},
            $false: function() {
                return false
            },
            $true: function() {
                return true
            },
            stylesId: "mjs-" + Math.floor(Math.random() * new Date().getTime()),
            defined: function(Z) {
                return (undefined != Z)
            },
            ifndef: function(aa, Z) {
                return (undefined != aa) ? aa : Z
            },
            exists: function(Z) {
                return !!(Z)
            },
            jTypeOf: function(Z) {
                if (!P.defined(Z)) {
                    return false
                }
                if (Z.$J_TYPE) {
                    return Z.$J_TYPE
                }
                if (!!Z.nodeType) {
                    if (1 == Z.nodeType) {
                        return "element"
                    }
                    if (3 == Z.nodeType) {
                        return "textnode"
                    }
                }
                if (Z.length && Z.item) {
                    return "collection"
                }
                if (Z.length && Z.callee) {
                    return "arguments"
                }
                if ((Z instanceof window.Object || Z instanceof window.Function) && Z.constructor === P.Class) {
                    return "class"
                }
                if (Z instanceof window.Array) {
                    return "array"
                }
                if (Z instanceof window.Function) {
                    return "function"
                }
                if (Z instanceof window.String) {
                    return "string"
                }
                if (P.browser.trident) {
                    if (P.defined(Z.cancelBubble)) {
                        return "event"
                    }
                } else {
                    if (Z === window.event || Z.constructor == window.Event || Z.constructor == window.MouseEvent || Z.constructor == window.UIEvent || Z.constructor == window.KeyboardEvent || Z.constructor == window.KeyEvent) {
                        return "event"
                    }
                }
                if (Z instanceof window.Date) {
                    return "date"
                }
                if (Z instanceof window.RegExp) {
                    return "regexp"
                }
                if (Z === window) {
                    return "window"
                }
                if (Z === document) {
                    return "document"
                }
                return typeof(Z)
            },
            extend: function(ae, ad) {
                if (!(ae instanceof window.Array)) {
                    ae = [ae]
                }
                if (!ad) {
                    return ae[0]
                }
                for (var ac = 0, aa = ae.length; ac < aa; ac++) {
                    if (!P.defined(ae)) {
                        continue
                    }
                    for (var ab in ad) {
                        if (!Object.prototype.hasOwnProperty.call(ad, ab)) {
                            continue
                        }
                        try {
                            ae[ac][ab] = ad[ab]
                        } catch (Z) {}
                    }
                }
                return ae[0]
            },
            implement: function(ad, ac) {
                if (!(ad instanceof window.Array)) {
                    ad = [ad]
                }
                for (var ab = 0, Z = ad.length; ab < Z; ab++) {
                    if (!P.defined(ad[ab])) {
                        continue
                    }
                    if (!ad[ab].prototype) {
                        continue
                    }
                    for (var aa in (ac || {})) {
                        if (!ad[ab].prototype[aa]) {
                            ad[ab].prototype[aa] = ac[aa]
                        }
                    }
                }
                return ad[0]
            },
            nativize: function(ab, aa) {
                if (!P.defined(ab)) {
                    return ab
                }
                for (var Z in (aa || {})) {
                    if (!ab[Z]) {
                        ab[Z] = aa[Z]
                    }
                }
                return ab
            },
            $try: function() {
                for (var aa = 0, Z = arguments.length; aa < Z; aa++) {
                    try {
                        return arguments[aa]()
                    } catch (ab) {}
                }
                return null
            },
            $A: function(ab) {
                if (!P.defined(ab)) {
                    return P.$([])
                }
                if (ab.toArray) {
                    return P.$(ab.toArray())
                }
                if (ab.item) {
                    var aa = ab.length || 0,
                        Z = new Array(aa);
                    while (aa--) {
                        Z[aa] = ab[aa]
                    }
                    return P.$(Z)
                }
                return P.$(Array.prototype.slice.call(ab))
            },
            now: function() {
                return new Date().getTime()
            },
            detach: function(ad) {
                var ab;
                switch (P.jTypeOf(ad)) {
                    case "object":
                        ab = {};
                        for (var ac in ad) {
                            ab[ac] = P.detach(ad[ac])
                        }
                        break;
                    case "array":
                        ab = [];
                        for (var aa = 0, Z = ad.length; aa < Z; aa++) {
                            ab[aa] = P.detach(ad[aa])
                        }
                        break;
                    default:
                        return ad
                }
                return P.$(ab)
            },
            $: function(ab) {
                var Z = true;
                if (!P.defined(ab)) {
                    return null
                }
                if (ab.$J_EXT) {
                    return ab
                }
                switch (P.jTypeOf(ab)) {
                    case "array":
                        ab = P.nativize(ab, P.extend(P.Array, {
                            $J_EXT: P.$F
                        }));
                        ab.jEach = ab.forEach;
                        return ab;
                        break;
                    case "string":
                        var aa = document.getElementById(ab);
                        if (P.defined(aa)) {
                            return P.$(aa)
                        }
                        return null;
                        break;
                    case "window":
                    case "document":
                        P.$uuid(ab);
                        ab = P.extend(ab, P.Doc);
                        break;
                    case "element":
                        P.$uuid(ab);
                        ab = P.extend(ab, P.Element);
                        break;
                    case "event":
                        ab = P.extend(ab, P.Event);
                        break;
                    case "textnode":
                    case "function":
                    case "array":
                    case "date":
                    default:
                        Z = false;
                        break
                }
                if (Z) {
                    return P.extend(ab, {
                        $J_EXT: P.$F
                    })
                } else {
                    return ab
                }
            },
            $new: function(Z, ab, aa) {
                return P.$(P.doc.createElement(Z)).setProps(ab || {}).jSetCss(aa || {})
            },
            addCSS: function(ac, ad, aa) {
                var Z, af, ab, ah = [],
                    ag = -1;
                aa || (aa = P.stylesId);
                Z = P.$(aa) || P.$new("style", {
                    id: aa,
                    type: "text/css"
                }).jAppendTo((document.head || document.body), "top");
                af = Z.sheet || Z.styleSheet;
                if ("string" != P.jTypeOf(ad)) {
                    for (var ab in ad) {
                        ah.push(ab + ":" + ad[ab])
                    }
                    ad = ah.join(";")
                }
                if (af.insertRule) {
                    ag = af.insertRule(ac + " {" + ad + "}", af.cssRules.length)
                } else {
                    try {
                        ag = af.addRule(ac, ad, af.rules.length)
                    } catch (ae) {}
                }
                return ag
            },
            removeCSS: function(ac, Z) {
                var ab, aa;
                ab = P.$(ac);
                if ("element" !== P.jTypeOf(ab)) {
                    return
                }
                aa = ab.sheet || ab.styleSheet;
                if (aa.deleteRule) {
                    aa.deleteRule(Z)
                } else {
                    if (aa.removeRule) {
                        aa.removeRule(Z)
                    }
                }
            },
            generateUUID: function() {
                return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(ab) {
                    var aa = Math.random() * 16 | 0,
                        Z = ab == "x" ? aa : (aa & 3 | 8);
                    return Z.toString(16)
                }).toUpperCase()
            },
            getAbsoluteURL: (function() {
                var Z;
                return function(aa) {
                    if (!Z) {
                        Z = document.createElement("a")
                    }
                    Z.setAttribute("href", aa);
                    return ("!!" + Z.href).replace("!!", "")
                }
            })(),
            getHashCode: function(ab) {
                var ac = 0,
                    Z = ab.length;
                for (var aa = 0; aa < Z; ++aa) {
                    ac = 31 * ac + ab.charCodeAt(aa);
                    ac %= 4294967296
                }
                return ac
            }
        };
        var P = V;
        var Q = V.$;
        if (!window.magicJS) {
            window.magicJS = V;
            window.$mjs = V.$
        }
        P.Array = {
            $J_TYPE: "array",
            indexOf: function(ac, ad) {
                var Z = this.length;
                for (var aa = this.length, ab = (ad < 0) ? Math.max(0, aa + ad) : ad || 0; ab < aa; ab++) {
                    if (this[ab] === ac) {
                        return ab
                    }
                }
                return -1
            },
            contains: function(Z, aa) {
                return this.indexOf(Z, aa) != -1
            },
            forEach: function(Z, ac) {
                for (var ab = 0, aa = this.length; ab < aa; ab++) {
                    if (ab in this) {
                        Z.call(ac, this[ab], ab, this)
                    }
                }
            },
            filter: function(Z, ae) {
                var ad = [];
                for (var ac = 0, aa = this.length; ac < aa; ac++) {
                    if (ac in this) {
                        var ab = this[ac];
                        if (Z.call(ae, this[ac], ac, this)) {
                            ad.push(ab)
                        }
                    }
                }
                return ad
            },
            map: function(Z, ad) {
                var ac = [];
                for (var ab = 0, aa = this.length; ab < aa; ab++) {
                    if (ab in this) {
                        ac[ab] = Z.call(ad, this[ab], ab, this)
                    }
                }
                return ac
            }
        };
        P.implement(String, {
            $J_TYPE: "string",
            jTrim: function() {
                return this.replace(/^\s+|\s+$/g, "")
            },
            eq: function(Z, aa) {
                return (aa || false) ? (this.toString() === Z.toString()) : (this.toLowerCase().toString() === Z.toLowerCase().toString())
            },
            jCamelize: function() {
                return this.replace(/-\D/g, function(Z) {
                    return Z.charAt(1).toUpperCase()
                })
            },
            dashize: function() {
                return this.replace(/[A-Z]/g, function(Z) {
                    return ("-" + Z.charAt(0).toLowerCase())
                })
            },
            jToInt: function(Z) {
                return parseInt(this, Z || 10)
            },
            toFloat: function() {
                return parseFloat(this)
            },
            jToBool: function() {
                return !this.replace(/true/i, "").jTrim()
            },
            has: function(aa, Z) {
                Z = Z || "";
                return (Z + this + Z).indexOf(Z + aa + Z) > -1
            }
        });
        V.implement(Function, {
            $J_TYPE: "function",
            jBind: function() {
                var aa = P.$A(arguments),
                    Z = this,
                    ab = aa.shift();
                return function() {
                    return Z.apply(ab || null, aa.concat(P.$A(arguments)))
                }
            },
            jBindAsEvent: function() {
                var aa = P.$A(arguments),
                    Z = this,
                    ab = aa.shift();
                return function(ac) {
                    return Z.apply(ab || null, P.$([ac || (P.browser.ieMode ? window.event : null)]).concat(aa))
                }
            },
            jDelay: function() {
                var aa = P.$A(arguments),
                    Z = this,
                    ab = aa.shift();
                return window.setTimeout(function() {
                    return Z.apply(Z, aa)
                }, ab || 0)
            },
            jDefer: function() {
                var aa = P.$A(arguments),
                    Z = this;
                return function() {
                    return Z.jDelay.apply(Z, aa)
                }
            },
            interval: function() {
                var aa = P.$A(arguments),
                    Z = this,
                    ab = aa.shift();
                return window.setInterval(function() {
                    return Z.apply(Z, aa)
                }, ab || 0)
            }
        });
        var W = {},
            O = navigator.userAgent.toLowerCase(),
            N = O.match(/(webkit|gecko|trident|presto)\/(\d+\.?\d*)/i),
            S = O.match(/(edge|opr)\/(\d+\.?\d*)/i) || O.match(/(crios|chrome|safari|firefox|opera|opr)\/(\d+\.?\d*)/i),
            U = O.match(/version\/(\d+\.?\d*)/i),
            J = document.documentElement.style;

        function K(aa) {
            var Z = aa.charAt(0).toUpperCase() + aa.slice(1);
            return aa in J || ("Webkit" + Z) in J || ("Moz" + Z) in J || ("ms" + Z) in J || ("O" + Z) in J
        }
        P.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: K("transition"),
                transform: K("transform"),
                perspective: K("perspective"),
                animation: K("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: O.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: (N && N[1]) ? N[1].toLowerCase() : (window.opera) ? "presto" : !!(window.ActiveXObject) ? "trident" : (undefined !== document.getBoxObjectFor || null != window.mozInnerScreenY) ? "gecko" : (null !== window.WebKitPoint || !navigator.taintEnabled) ? "webkit" : "unknown",
            version: (N && N[2]) ? parseFloat(N[2]) : 0,
            uaName: (S && S[1]) ? S[1].toLowerCase() : "",
            uaVersion: (S && S[2]) ? parseFloat(S[2]) : 0,
            cssPrefix: "",
            cssDomPrefix: "",
            domPrefix: "",
            ieMode: 0,
            platform: O.match(/ip(?:ad|od|hone)/) ? "ios" : (O.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 (P.browser.ready) {
                    return
                }
                var ac, ab;
                P.browser.ready = true;
                P.body = P.$(document.body);
                P.win = P.$(window);
                try {
                    var aa = P.$new("div").jSetCss({
                        width: 100,
                        height: 100,
                        overflow: "scroll",
                        position: "absolute",
                        top: -9999
                    }).jAppendTo(document.body);
                    P.browser.scrollbarsWidth = aa.offsetWidth - aa.clientWidth;
                    aa.jRemove()
                } catch (Z) {}
                try {
                    ac = P.$new("div");
                    ab = ac.style;
                    ab.cssText = "background:url(https://),url(https://),red url(https://)";
                    P.browser.features.multibackground = (/(url\s*\(.*?){3}/).test(ab.background);
                    ab = null;
                    ac = null
                } catch (Z) {}
                if (!P.browser.cssTransformProp) {
                    P.browser.cssTransformProp = P.normalizeCSS("transform").dashize()
                }
                try {
                    ac = P.$new("div");
                    ac.style.cssText = P.normalizeCSS("filter").dashize() + ":blur(2px);";
                    P.browser.features.cssFilters = !!ac.style.length && (!P.browser.ieMode || P.browser.ieMode > 9);
                    ac = null
                } catch (Z) {}
                if (!P.browser.features.cssFilters) {
                    P.$(document.documentElement).jAddClass("no-cssfilters-magic")
                }
                try {
                    P.browser.features.canvas = (function() {
                        var ad = P.$new("canvas");
                        return !!(ad.getContext && ad.getContext("2d"))
                    })()
                } catch (Z) {}
                if (undefined === window.TransitionEvent && undefined !== window.WebKitTransitionEvent) {
                    W.transitionend = "webkitTransitionEnd"
                }
                P.Doc.jCallEvent.call(P.$(document), "domready")
            }
        };
        (function() {
            var ae = [],
                ad, ac, aa;

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

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

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

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

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

            function Z(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 ab(af) {
                if (af.pointerType) {
                    return ("touch" === af.pointerType || af.MSPOINTER_TYPE_TOUCH === af.pointerType) ? af.pointerId : null
                } else {
                    return af.changedTouches[0].identifier
                }
            }

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

            function Z() {
                ad = null
            }

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

                function Q(Z) {
                    return ((L * Z + W) * Z + T) * Z
                }

                function P(Z) {
                    return ((Y * Z + V) * Z + R) * Z
                }

                function N(Z) {
                    return (3 * L * Z + 2 * W) * Z + T
                }

                function U(Z) {
                    return 1 / (200 * Z)
                }

                function M(Z, aa) {
                    return P(O(Z, aa))
                }

                function O(ag, ah) {
                    var af, ae, ad, aa, Z, ac;

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

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

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

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

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

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

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

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

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

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

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

    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 && (A.browser.uaName !== "chrome" || A.browser.uaVersion === 44)) {
            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(M, N, K, L, J) {
        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 (A.jTypeOf(M) === "object") {
            this.small = M
        } else {
            if (A.jTypeOf(M) === "string") {
                this.small.url = A.getAbsoluteURL(M)
            }
        }
        if (A.jTypeOf(N) === "object") {
            this.zoom = N
        } else {
            if (A.jTypeOf(N) === "string") {
                this.zoom.url = A.getAbsoluteURL(N)
            }
        }
        this.caption = K;
        this.options = L;
        this.origin = J;
        this.callback = null;
        this.link = null;
        this.node = null
    };
    l.prototype = {
        parseNode: function(L, K, J) {
            var M = L.byTag("img")[0];
            if (J) {
                this.small.node = M || A.$new("img").jAppendTo(L)
            }
            if (f > 1) {
                this.small.url = L.getAttribute("data-image-2x");
                if (this.small.url) {
                    this.small.dppx = 2
                }
                this.zoom.url = L.getAttribute("data-zoom-image-2x");
                if (this.zoom.url) {
                    this.zoom.dppx = 2
                }
            }
            this.small.src = L.getAttribute("data-image") || L.getAttribute("rev") || (M ? M.currentSrc || M.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 = L.getAttribute("data-zoom-image") || L.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 = L.getAttribute("data-caption") || L.getAttribute("title") || K;
            this.link = L.getAttribute("data-link");
            this.origin = L;
            return this
        },
        loadImg: function(J) {
            var K = null;
            if (arguments.length > 1 && A.jTypeOf(arguments[1]) === "function") {
                K = arguments[1]
            }
            if (this[J].state !== 0) {
                if (this[J].loaded) {
                    this.onload(K)
                }
                return
            }
            if (this[J].url && this[J].node && !this[J].node.getAttribute("src") && !this[J].node.getAttribute("srcset")) {
                this[J].node.setAttribute("src", this[J].url)
            }
            this[J].state = 1;
            new A.ImageLoader(this[J].node || this[J].url, {
                oncomplete: i(function(L) {
                    this[J].loaded = true;
                    this[J].state = L.ready ? 2 : -1;
                    if (L.ready) {
                        this[J].size = L.jGetSize();
                        if (!this[J].node) {
                            this[J].node = i(L.img);
                            this[J].node.getAttribute("style");
                            this[J].node.removeAttribute("style");
                            this[J].size.width /= this[J].dppx;
                            this[J].size.height /= this[J].dppx
                        } else {
                            this[J].node.jSetCss({
                                "max-width": this[J].size.width,
                                "max-height": this[J].size.height
                            });
                            if (this[J].node.currentSrc && this[J].node.currentSrc !== this[J].node.src) {
                                this[J].url = this[J].node.currentSrc
                            } else {
                                if (A.getAbsoluteURL(this[J].node.getAttribute("src") || "") !== this[J].url) {
                                    this[J].node.setAttribute("src", this[J].url)
                                }
                            }
                        }
                    }
                    this.onload(K)
                }).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 && A.jTypeOf(arguments[0]) === "function") {
                this.callback = arguments[0]
            }
            this.loadSmall();
            this.loadZoom()
        },
        onload: function(J) {
            if (J) {
                J.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 (this.small.state === 2 && this.zoom.state === 2)
        },
        getURL: function(K) {
            var J = K === "small" ? "zoom" : "small";
            if (!this[K].loaded || (this[K].loaded && this[K].state === 2)) {
                return this[K].url
            } else {
                if (!this[J].loaded || (this[J].loaded && this[J].state === 2)) {
                    return this[J].url
                } else {
                    return null
                }
            }
        },
        getNode: function(K) {
            var J = K === "small" ? "zoom" : "small";
            if (!this[K].loaded || (this[K].loaded && this[K].state === 2)) {
                return this[K].node
            } else {
                if (!this[J].loaded || (this[J].loaded && this[J].state === 2)) {
                    return this[J].node
                } else {
                    return null
                }
            }
        },
        jGetSize: function(K) {
            var J = K === "small" ? "zoom" : "small";
            if (!this[K].loaded || (this[K].loaded && this[K].state === 2)) {
                return this[K].size
            } else {
                if (!this[J].loaded || (this[J].loaded && this[J].state === 2)) {
                    return this[J].size
                } else {
                    return {
                        width: 0,
                        height: 0
                    }
                }
            }
        },
        getRatio: function(K) {
            var J = K === "small" ? "zoom" : "small";
            if (!this[K].loaded || (this[K].loaded && this[K].state === 2)) {
                return this[K].dppx
            } else {
                if (!this[J].loaded || (this[J].loaded && this[J].state === 2)) {
                    return this[J].dppx
                } else {
                    return 1
                }
            }
        },
        setCurNode: function(J) {
            this.node = this.getNode(J)
        }
    };
    var k = function(K, J) {
        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(K).jAddEvent("dragstart selectstart click", function(L) {
            L.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(L) {
            clearTimeout(this.resizeTimer);
            this.resizeTimer = i(this.resizeCallback).jDelay(10, L.type === "scroll")
        }).jBindAsEvent(this);
        if (t) {
            I.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.startAttempts = 0;
        this.startTimer = null;
        this.start(J)
    };
    k.prototype = {
        loadOptions: function(J) {
            this.options.fromJSON(window[E + "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[E + "MobileOptions"] || {});
                this.options.fromString(this.placeholder.getAttribute("data-mobile-options") || "")
            }
            if (A.jTypeOf(J) === "string") {
                this.options.fromString(J || "")
            } else {
                this.options.fromJSON(J || {})
            }
            if (this.option("cssClass")) {
                this.option("cssClass", this.option("cssClass").replace(",", " "))
            }
            if (this.option("zoomCaption") === false) {
                this.option("zoomCaption", "off")
            }
            if (this.option("hint") === false) {
                this.option("hint", "off")
            }
            switch (this.option("hint")) {
                case "off":
                    this.hintRuns = 0;
                    break;
                case "always":
                    this.hintRuns = Infinity;
                    break;
                case "once":
                default:
                    this.hintRuns = 2;
                    break
            }
            if (this.option("zoomMode") === "off") {
                this.option("zoomMode", false)
            }
            if (this.option("expand") === "off") {
                this.option("expand", false)
            }
            if (this.option("expandZoomMode") === "off") {
                this.option("expandZoomMode", false)
            }
            if (A.browser.mobile && this.option("zoomMode") === "zoom" && this.option("zoomPosition") === "inner") {
                if (this.option("expand")) {
                    this.option("zoomMode", false)
                } else {
                    this.option("zoomOn", "click")
                }
            }
        },
        start: function(M) {
            var K;
            var J = this;
            var L;
            if (this.startAttempts < 1) {
                this.loadOptions(M);
                if (y && !this.option("autostart")) {
                    return
                }
                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")
            }
            L = new l().parseNode(this.placeholder, this.originalTitle, true);
            if (!L.small.url) {
                if (++this.startAttempts <= D) {
                    this.startTimer = setTimeout(function() {
                        J.start()
                    }, 100)
                }
                return
            }
            this.primaryImage = L;
            this.image = this.primaryImage;
            F(this.placeholder);
            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");
            this.node.enclose(this.image.small.node).jAddClass(this.option("cssClass"));
            if (this.option("rightClick") !== true) {
                this.node.jAddEvent("contextmenu", function(O) {
                    O.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(I),
                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 = arguments[0] !== false;
                    this.node[this.zoomBox.enabled ? "jRemoveClass" : "jAddClass"]("mz-no-zoom")
                }).jBind(this),
                hide: i(function() {
                    var O = i(this.node).jFetch("cr");
                    this.zoomBox.node.jRemoveEvent("transitionend");
                    this.zoomBox.node.jSetCss({
                        top: -100000
                    }).jAppendTo(I);
                    this.zoomBox.node.jRemoveClass("mz-deactivating mz-p-" + (this.zoomBox.mode === "zoom" ? this.zoomBox.position : this.zoomBox.mode));
                    if (!this.expanded && O) {
                        O.jRemove()
                    }
                    this.zoomBox.image.getAttribute("style");
                    this.zoomBox.image.removeAttribute("style")
                }).jBind(this),
                setMode: i(function(O) {
                    this.node[O === false ? "jAddClass" : "jRemoveClass"]("mz-no-zoom");
                    this.node[O === "magnifier" ? "jAddClass" : "jRemoveClass"]("mz-magnifier-zoom");
                    this.zoomBox.node[O === "magnifier" ? "jAddClass" : "jRemoveClass"]("mz-magnifier");
                    this.zoomBox.node[O === "preview" ? "jAddClass" : "jRemoveClass"]("mz-preview");
                    if (O !== "zoom") {
                        this.node.jRemoveClass("mz-inner-zoom");
                        this.zoomBox.node.jRemoveClass("mz-inner")
                    }
                    this.zoomBox.mode = O;
                    if (O === false) {
                        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 (typeof(r) !== "undefined") {
                var N = 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" + N
                }).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",
                    lineHeight: "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(O) {
                        O.stopDistribution();
                        window.open(this.href)
                    }).setProps({
                        id: "mzCrA" + N
                    })
                }
                A.addCSS("#" + this.id + " > figure.mz-figure > #" + ("crMz" + N) + ",#" + this.id + " > figure.mz-figure > #" + ("crMz" + N) + " > #" + ("mzCrA" + N) + ",html body .mz-expand > #" + ("crMz" + N) + ",html body .mz-expand > #" + ("crMz" + N) + " > #" + ("mzCrA" + N), {
                    display: "inline !important;",
                    visibility: "visible !important;",
                    color: r[1] + " !important;",
                    "font-size": r[2] + "px !important;",
                    "z-index": "2147483647 !important;"
                }, "mz-runtime-css", true)
            }
            if ((K = ("" + this.option("zoomWidth")).match(/^([0-9]+)?(px|%)?$/))) {
                this.zoomBox.size.wunits = K[2] || "px";
                this.zoomBox.size.width = (parseFloat(K[1]) || "auto")
            }
            if ((K = ("" + this.option("zoomHeight")).match(/^([0-9]+)?(px|%)?$/))) {
                this.zoomBox.size.hunits = K[2] || "px";
                this.zoomBox.size.height = (parseFloat(K[1]) || "auto")
            }
            if (this.zoomBox.mode === "magnifier") {
                this.node.jAddClass("mz-magnifier-zoom");
                this.zoomBox.node.jAddClass("mz-magnifier");
                if (this.zoomBox.size.width === "auto") {
                    this.zoomBox.size.wunits = "%";
                    this.zoomBox.size.width = 70
                }
                if (this.zoomBox.size.height === "auto") {
                    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 (this.zoomBox.size.width === "auto") {
                                this.zoomBox.size.wunits = "%";
                                this.zoomBox.size.width = 100
                            }
                            if (this.zoomBox.size.height === "auto") {
                                this.zoomBox.size.hunits = "%";
                                this.zoomBox.size.height = 100
                            }
                        }
                    } else {
                        this.option("zoom-position", "right")
                    }
                }
                if (this.zoomBox.mode === "preview") {
                    if (this.zoomBox.size.width === "auto") {
                        this.zoomBox.size.wunits = "px"
                    }
                    if (this.zoomBox.size.height === "auto") {
                        this.zoomBox.size.hunits = "px"
                    }
                }
                if (this.zoomBox.mode === "zoom") {
                    if (this.zoomBox.size.width === "auto" || this.option("zoom-position") === "inner") {
                        this.zoomBox.size.wunits = "%";
                        this.zoomBox.size.width = 100
                    }
                    if (this.zoomBox.size.height === "auto" || this.option("zoom-position") === "inner") {
                        this.zoomBox.size.hunits = "%";
                        this.zoomBox.size.height = 100
                    }
                }
                if (this.option("zoom-position") === "inner") {
                    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 (this.image.small.state !== 2) {
                    return
                }
                this.image.setCurNode("small");
                this.size = this.image.node.jGetSize();
                this.registerEvents();
                this.ready = true;
                if (this.option("lazyZoom") === true) {
                    u("onZoomReady", this.id);
                    if (A.browser.mobile) {
                        this.reflowZoom()
                    } else {
                        this.showHint()
                    }
                }
            }.jBind(this));
            if (this.option("lazyZoom") !== true || this.option("zoomOn") === "always") {
                this.image.load(i(function(O) {
                    this.setupZoom(O, true)
                }).jBind(this));
                this.loadTimer = i(this.showLoading).jBind(this).jDelay(400)
            }
            this.setupSelectors()
        },
        stop: function() {
            clearTimeout(this.startTimer);
            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(J) {
                i(J.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(K, L) {
            var J = this.image;
            if (K.zoom.state !== 2) {
                this.image = K;
                this.ready = true;
                this.zoomBox.enable(false);
                return
            }
            this.image = K;
            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 N = this.zoomBox.image.jGetSize(),
                    M;
                this.zoomSizeOrigin = this.image.jGetSize("zoom");
                if (N.width * N.height > 1 && N.width * N.height < this.zoomSizeOrigin.width * this.zoomSizeOrigin.height) {
                    this.zoomSizeOrigin = N
                }
                this.zoomSize = A.detach(this.zoomSizeOrigin);
                if (this.zoomBox.mode === "preview") {
                    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 && this.zoomBox.mode === "preview"));
                this.ready = true;
                this.activateTimer = null;
                this.resizeCallback();
                this.node.jAddClass("mz-ready");
                this.hideLoading();
                if (J !== this.image) {
                    u("onUpdate", this.id, J.origin, this.image.origin);
                    if (this.nextImage) {
                        M = this.nextImage;
                        this.nextImage = null;
                        this.update(M.image, M.onswipe)
                    }
                } else {
                    if (!!L) {
                        u("onZoomReady", this.id)
                    }
                }
                if (this.initEvent) {
                    this.node.jCallEvent(this.initEvent.type, this.initEvent)
                } else {
                    if (this.expanded && this.option("expandZoomOn") === "always") {
                        this.activate()
                    } else {
                        if (!!L) {
                            this.showHint()
                        }
                    }
                }
            }).jBind(this), 256)
        },
        setupSelectors: function() {
            var K = this.id;
            var J;
            var L;
            L = new RegExp("zoom\\-id(\\s+)?:(\\s+)?" + K + "($|;)");
            if (A.browser.features.query) {
                J = A.$A(document.querySelectorAll('[data-zoom-id="' + this.id + '"]'));
                J = i(J).concat(A.$A(document.querySelectorAll('[rel*="zoom-id"]')).filter(function(M) {
                    return L.test(M.getAttribute("rel") || "")
                }))
            } else {
                J = A.$A(document.getElementsByTagName("A")).filter(function(M) {
                    return K === M.getAttribute("data-zoom-id") || L.test(M.getAttribute("rel") || "")
                })
            }
            i(J).jEach(function(N) {
                var M, O;
                i(N).jAddEvent("click", function(P) {
                    P.stopDefaults()
                });
                M = new l().parseNode(N, this.originalTitle);
                if (this.image.zoom.src.has(M.zoom.src) && this.image.small.src.has(M.small.src)) {
                    i(M.origin).jAddClass("mz-thumb-selected");
                    M = this.image;
                    M.origin = N
                }
                if (!M.link && this.image.link) {
                    M.link = this.image.link
                }
                O = i(function() {
                    this.update(M)
                }).jBind(this);
                i(N).jAddEvent("mousedown", function(P) {
                    if ("stopImmediatePropagation" in P) {
                        P.stopImmediatePropagation()
                    }
                }, 5);
                i(N).jAddEvent("tap " + (this.option("selectorTrigger") === "hover" ? "mouseover mouseout" : "btnclick"), i(function(Q, P) {
                    if (this.updateTimer) {
                        clearTimeout(this.updateTimer)
                    }
                    this.updateTimer = false;
                    if (Q.type === "mouseover") {
                        this.updateTimer = i(O).jDelay(P)
                    } else {
                        if (Q.type === "tap" || Q.type === "btnclick") {
                            O()
                        }
                    }
                }).jBindAsEvent(this, 60)).jAddClass(this.option("cssClass")).jAddClass("mz-thumb");
                M.loadSmall();
                if (this.option("lazyZoom") !== true) {
                    M.loadZoom()
                }
                this.additionalImages.push(M)
            }, this)
        },
        update: function(J, K) {
            if (!this.ready) {
                this.nextImage = {
                    image: J,
                    onswipe: K
                };
                return
            }
            if (!J || J === 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);
            J.load(i(function(R) {
                var L, S, Q, N, M, P, O = (A.browser.ieMode < 10) ? "jGetSize" : "getBoundingClientRect";
                this.hideLoading();
                R.setCurNode("small");
                if (!R.node) {
                    this.ready = true;
                    this.node.jAddClass("mz-ready");
                    return
                }
                this.setActiveThumb(R);
                L = this.image.node[O]();
                if (this.expanded) {
                    R.setCurNode("zoom");
                    Q = A.$new("div").jAddClass("mz-expand-bg");
                    if (A.browser.features.cssFilters || A.browser.ieMode < 10) {
                        Q.append(A.$new("img", {
                            src: R.getURL("zoom")
                        }).jSetCss({
                            opacity: 0
                        }))
                    } else {
                        Q.append(new A.SVGImage(R.node).blur(b).getNode().jSetCss({
                            opacity: 0
                        }))
                    }
                    i(Q).jSetCss({
                        "z-index": -99
                    }).jAppendTo(this.expandBox)
                }
                if (this.expanded && this.zoomBox.mode === "zoom" && this.option("expandZoomOn") === "always") {
                    i(R.node).jSetCss({
                        opacity: 0
                    }).jAppendTo(this.node);
                    S = L;
                    M = [R.node, this.image.node];
                    P = [{
                        opacity: [0, 1]
                    }, {
                        opacity: [1, 0]
                    }];
                    i(R.node).jSetCss({
                        "max-width": Math.min(R.jGetSize("zoom").width, this.expandMaxWidth()),
                        "max-height": Math.min(R.jGetSize("zoom").height, this.expandMaxHeight())
                    })
                } else {
                    this.node.jSetCss({
                        height: this.node[O]().height
                    });
                    this.image.node.jSetCss({
                        position: "absolute",
                        top: 0,
                        left: 0,
                        bottom: 0,
                        right: 0,
                        width: "100%",
                        height: "100%",
                        "max-width": "",
                        "max-height": ""
                    });
                    i(R.node).jSetCss({
                        "max-width": Math.min(R.jGetSize(this.expanded ? "zoom" : "small").width, this.expanded ? this.expandMaxWidth() : Infinity),
                        "max-height": Math.min(R.jGetSize(this.expanded ? "zoom" : "small").height, this.expanded ? this.expandMaxHeight() : Infinity),
                        position: "relative",
                        top: 0,
                        left: 0,
                        opacity: 0,
                        transform: ""
                    }).jAppendTo(this.node);
                    S = i(R.node)[O]();
                    if (!K) {
                        i(R.node).jSetCss({
                            "min-width": L.width,
                            height: L.height,
                            "max-width": L.width,
                            "max-height": ""
                        })
                    }
                    this.node.jSetCss({
                        height: "",
                        overflow: ""
                    }).jGetSize();
                    i(R.node).jGetSize();
                    M = [R.node, this.image.node];
                    P = [A.extend({
                        opacity: [0, 1]
                    }, K ? {
                        scale: [0.6, 1]
                    } : {
                        "min-width": [L.width, S.width],
                        "max-width": [L.width, S.width],
                        height: [L.height, S.height]
                    }), {
                        opacity: [1, 0]
                    }]
                }
                if (this.expanded) {
                    if (this.expandBg.firstChild && Q.firstChild) {
                        N = i(this.expandBg.firstChild).jGetCss("opacity");
                        if (A.browser.gecko) {
                            M = M.concat([Q.firstChild]);
                            P = P.concat([{
                                opacity: [0.0001, N]
                            }])
                        } else {
                            M = M.concat([Q.firstChild, this.expandBg.firstChild]);
                            P = P.concat([{
                                opacity: [0.0001, N]
                            }, {
                                opacity: [N, 0.0001]
                            }])
                        }
                    }
                }
                new A.PFX(M, {
                    duration: (K || this.option("transitionEffect")) ? K ? 400 : 350 : 0,
                    transition: K ? "cubic-bezier(0.175, 0.885, 0.320, 1)" : (L.width === S.width) ? "linear" : "cubic-bezier(0.25, .1, .1, 1)",
                    onComplete: i(function() {
                        this.image.node.jRemove().getAttribute("style");
                        this.image.node.removeAttribute("style");
                        i(R.node).jSetCss(this.expanded ? {
                            width: "auto",
                            height: "auto"
                        } : {
                            width: "",
                            height: ""
                        }).jSetCss({
                            "min-width": "",
                            "min-height": "",
                            opacity: "",
                            "max-width": Math.min(R.jGetSize(this.expanded ? "zoom" : "small").width, this.expanded ? this.expandMaxWidth() : Infinity),
                            "max-height": Math.min(R.jGetSize(this.expanded ? "zoom" : "small").height, this.expanded ? this.expandMaxHeight() : Infinity)
                        });
                        if (this.expanded) {
                            this.expandBg.jRemove();
                            this.expandBg = undefined;
                            this.expandBg = Q.jSetCssProp("z-index", -100);
                            i(this.expandBg.firstChild).jSetCss({
                                opacity: ""
                            });
                            if (this.expandCaption) {
                                if (R.caption) {
                                    if (R.link) {
                                        this.expandCaption.changeContent("").append(A.$new("a", {
                                            href: R.link
                                        }).jAddEvent("tap btnclick", this.openLink.jBind(this)).changeContent(R.caption))
                                    } else {
                                        this.expandCaption.changeContent(R.caption).jAddClass("mz-show")
                                    }
                                } else {
                                    this.expandCaption.jRemoveClass("mz-show")
                                }
                            }
                        }
                        this.setupZoom(R)
                    }).jBind(this),
                    onBeforeRender: i(function(T, U) {
                        if (undefined !== T.scale) {
                            U.jSetCssProp("transform", "scale(" + T.scale + ")")
                        }
                    })
                }).start(P)
            }).jBind(this))
        },
        setActiveThumb: function(K) {
            var J = false;
            i(this.additionalImages).jEach(function(L) {
                i(L.origin).jRemoveClass("mz-thumb-selected");
                if (L === K) {
                    J = true
                }
            });
            if (J && K.origin) {
                i(K.origin).jAddClass("mz-thumb-selected")
            }
            if (this.expandThumbs) {
                this.expandThumbs.selectItem(K.selector)
            }
        },
        setCaption: function(J) {
            if (this.image.caption && this.option("zoomCaption") !== "off" && this.zoomBox.mode !== "magnifier") {
                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(J, M, K) {
            var L;
            if (!this.expanded) {
                if (this.hintRuns <= 0) {
                    return
                }
                if (K !== true) {
                    this.hintRuns--
                }
            }
            if (M === undefined || M === null) {
                if (!this.zoomBox.active && !this.zoomBox.activating) {
                    if (this.option("zoomMode") && (this.zoomBox.enabled || !this.image.loaded()) && !(A.browser.mobile && this.option("expand") && this.zoomBox.mode === "zoom" && this.zoomBox.position === "inner")) {
                        if (this.zoomBox.trigger === "hover") {
                            M = this.option("textHoverZoomHint")
                        } else {
                            if (this.zoomBox.trigger === "click") {
                                M = this.option("textClickZoomHint")
                            }
                        }
                    } else {
                        M = this.option("expand") ? this.option("textExpandHint") : ""
                    }
                } else {
                    M = this.option("expand") ? this.option("textExpandHint") : ""
                }
            }
            if (!M) {
                this.hideHint();
                return
            }
            L = 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(M)).jAppendTo(this.hint);
                i(this.hint).jAppendTo(this.node)
            } else {
                i(this.hintMessage).changeContent(M)
            }
            this.hint.jSetCss({
                "transition-delay": ""
            }).jRemoveClass("mz-hint-hidden");
            if (this.expanded) {
                L = this.expandFigure
            } else {
                if ((this.zoomBox.active || this.zoomBox.activating) && this.zoomBox.mode !== "magnifier" && this.zoomBox.position === "inner") {
                    L = this.zoomBox.node
                }
            }
            if (J === true) {
                setTimeout(i(function() {
                    this.hint.jAddClass("mz-hint-hidden")
                }).jBind(this), 16)
            }
            this.hint.jAppendTo(L)
        },
        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(L, P) {
            var O = A.detach(this.zoomBox.size),
                N = (!this.expanded && this.zoomBox.custom) ? i(this.zoomBox.custom).jGetSize() : {
                    width: 0,
                    height: 0
                },
                K, J, M = this.size,
                Q = {
                    x: 0,
                    y: 0
                };
            P = P || this.zoomBox.position;
            this.normalSize = this.image.node.jGetSize();
            this.size = this.image.node.jGetSize();
            this.boundaries = this.image.node.getBoundingClientRect();
            if (!N.height) {
                N = this.size
            }
            if (this.option("upscale") === false || this.zoomBox.mode === false || this.zoomBox.mode === "preview") {
                L = false
            }
            if (this.zoomBox.mode === "preview") {
                if (O.width === "auto") {
                    O.width = this.zoomSizeOrigin.width
                }
                if (O.height === "auto") {
                    O.height = this.zoomSizeOrigin.height
                }
            }
            if (this.expanded && this.zoomBox.mode === "magnifier") {
                O.width = 70;
                O.height = "auto"
            }
            if (this.zoomBox.mode === "magnifier" && O.height === "auto") {
                this.zoomBox.width = parseFloat(O.width / 100) * Math.min(N.width, N.height);
                this.zoomBox.height = this.zoomBox.width
            } else {
                if (this.zoomBox.mode === "zoom" && P === "inner") {
                    this.size = this.node.jGetSize();
                    N = this.size;
                    this.boundaries = this.node.getBoundingClientRect();
                    this.zoomBox.width = N.width;
                    this.zoomBox.height = N.height
                } else {
                    this.zoomBox.width = (O.wunits === "%") ? parseFloat(O.width / 100) * N.width : parseInt(O.width);
                    this.zoomBox.height = (O.hunits === "%") ? parseFloat(O.height / 100) * N.height : parseInt(O.height)
                }
            }
            if (this.zoomBox.mode === "preview") {
                J = Math.min(Math.min(this.zoomBox.width / this.zoomSizeOrigin.width, this.zoomBox.height / this.zoomSizeOrigin.height), 1);
                this.zoomBox.width = this.zoomSizeOrigin.width * J;
                this.zoomBox.height = this.zoomSizeOrigin.height * J
            }
            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 (L) {
                N = 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 (this.zoomBox.mode !== false && !this.zoomBox.active && !(this.expanded && this.option("expandZoomOn") === "always")) {
                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
            });
            this.zoomSize.maxWidth = this.zoomSize.width;
            this.zoomSize.maxHeight = this.zoomSize.height;
            K = this.zoomBox.node.getInnerSize();
            this.zoomBox.innerWidth = Math.ceil(K.width);
            this.zoomBox.innerHeight = Math.ceil(K.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 / M.width);
                    this.lens.pos.y *= (this.size.height / M.height);
                    Q.x = this.lens.spos.x;
                    Q.y = this.lens.spos.y
                } else {
                    Q.x = this.boundaries.left + this.lens.width / 2 + (this.lens.pos.x * (this.size.width / M.width));
                    Q.y = this.boundaries.top + this.lens.height / 2 + (this.lens.pos.y * (this.size.height / M.height))
                }
                this.animate(null, Q)
            }
        },
        reflowZoom: function(N) {
            var Q;
            var P;
            var J;
            var O;
            var M;
            var L;
            var K = i(this.node).jFetch("cr");
            J = a(5);
            M = this.zoomBox.position;
            O = this.expanded ? "inner" : this.zoomBox.custom ? "custom" : this.option("zoom-position");
            L = this.expanded && this.zoomBox.mode === "zoom" ? this.expandBox : document.body;
            if (this.expanded) {
                J.y = 0;
                J.x = 0
            }
            if (!N) {
                this.setSize(true, O)
            }
            Q = this.boundaries.top;
            if (this.zoomBox.mode !== "magnifier") {
                if (N) {
                    this.setSize(false);
                    return
                }
                switch (O) {
                    case "inner":
                    case "custom":
                        Q = 0;
                        P = 0;
                        break;
                    case "top":
                        Q = this.boundaries.top - this.zoomBox.height - this.option("zoom-distance");
                        if (J.top > Q) {
                            Q = this.boundaries.bottom + this.option("zoom-distance");
                            O = "bottom"
                        }
                        P = this.boundaries.left;
                        break;
                    case "bottom":
                        Q = this.boundaries.bottom + this.option("zoom-distance");
                        if (J.bottom < Q + this.zoomBox.height) {
                            Q = this.boundaries.top - this.zoomBox.height - this.option("zoom-distance");
                            O = "top"
                        }
                        P = this.boundaries.left;
                        break;
                    case "left":
                        P = this.boundaries.left - this.zoomBox.width - this.option("zoom-distance");
                        if (J.left > P && J.right >= this.boundaries.right + this.option("zoom-distance") + this.zoomBox.width) {
                            P = this.boundaries.right + this.option("zoom-distance");
                            O = "right"
                        }
                        break;
                    case "right":
                    default:
                        P = this.boundaries.right + this.option("zoom-distance");
                        if (J.right < P + this.zoomBox.width && J.left <= this.boundaries.left - this.zoomBox.width - this.option("zoom-distance")) {
                            P = this.boundaries.left - this.zoomBox.width - this.option("zoom-distance");
                            O = "left"
                        }
                        break
                }
                switch (this.option("zoom-position")) {
                    case "top":
                    case "bottom":
                        if (J.top > Q || J.bottom < Q + this.zoomBox.height) {
                            O = "inner"
                        }
                        break;
                    case "left":
                    case "right":
                        if (J.left > P || J.right < P + this.zoomBox.width) {
                            O = "inner"
                        }
                        break;
                    default:
                }
                this.zoomBox.position = O;
                if (!this.zoomBox.activating && !this.zoomBox.active) {
                    if (A.browser.mobile && !this.expanded && this.zoomBox.mode === "zoom") {
                        if (this.option("expand")) {
                            this.zoomBox.enable(O !== "inner")
                        } else {
                            if (this.option("zoomOn") !== "click") {
                                this.zoomBox.trigger = O === "inner" ? "click" : this.option("zoomOn");
                                this.unregisterActivateEvent();
                                this.unregisterDeactivateEvent();
                                this.registerActivateEvent(this.zoomBox.trigger === "click");
                                this.registerDeactivateEvent(this.zoomBox.trigger === "click" && !this.option("expand"))
                            }
                        }
                        this.showHint(false, null, true)
                    }
                    return
                }
                this.setSize(false);
                if (N) {
                    return
                }
                if (O === "custom") {
                    L = this.zoomBox.custom;
                    J.y = 0;
                    J.x = 0
                }
                if (O === "inner") {
                    if (this.zoomBox.mode !== "preview") {
                        this.zoomBox.node.jAddClass("mz-inner");
                        this.node.jAddClass("mz-inner-zoom")
                    }
                    this.lens.hide();
                    Q = this.boundaries.top + J.y;
                    P = this.boundaries.left + J.x;
                    if (!this.expanded && A.browser.ieMode && A.browser.ieMode < 11) {
                        Q = 0;
                        P = 0;
                        L = this.node
                    }
                } else {
                    Q += J.y;
                    P += J.x;
                    this.node.jRemoveClass("mz-inner-zoom");
                    this.zoomBox.node.jRemoveClass("mz-inner")
                }
                this.zoomBox.node.jSetCss({
                    top: Q,
                    left: P
                })
            } else {
                this.setSize(false);
                L = this.node
            }
            this.zoomBox.node[this.expanded ? "jAddClass" : "jRemoveClass"]("mz-expanded");
            if (!this.expanded && K) {
                K.jAppendTo(this.zoomBox.mode === "zoom" && O === "inner" ? this.zoomBox.node : this.node, ((Math.floor(Math.random() * 101) + 1) % 2) ? "top" : "bottom")
            }
            this.zoomBox.node.jAppendTo(L)
        },
        changeZoomLevel: function(P) {
            var L;
            var J;
            var N;
            var M;
            var O = false;
            var K = P.isMouse ? 5 : 3 / 54;
            if (!this.zoomBox.active) {
                return
            }
            i(P).stop();
            K = (100 + K * Math.abs(P.deltaY)) / 100;
            if (P.deltaY < 0) {
                K = 1 / K
            }
            if (this.zoomBox.mode === "magnifier") {
                J = Math.max(100, Math.round(this.zoomBox.width * K));
                J = Math.min(J, this.size.width * 0.9);
                N = J / this.zoomBox.aspectRatio;
                this.zoomBox.width = Math.ceil(J);
                this.zoomBox.height = Math.ceil(N);
                this.zoomBox.node.jSetCss({
                    width: this.zoomBox.width,
                    height: this.zoomBox.height
                });
                L = this.zoomBox.node.getInnerSize();
                this.zoomBox.innerWidth = Math.ceil(L.width);
                this.zoomBox.innerHeight = Math.ceil(L.height);
                O = true
            } else {
                if (!this.expanded && this.zoomBox.mode === "zoom") {
                    J = Math.max(this.size.width, Math.round(this.zoomSize.width * K));
                    J = Math.min(J, this.zoomSize.maxWidth);
                    N = J / (this.zoomSize.maxWidth / this.zoomSize.maxHeight);
                    this.zoomSize.width = Math.ceil(J);
                    this.zoomSize.height = Math.ceil(N)
                } else {
                    return
                }
            }
            M = i(window).jGetScroll();
            this.lens.width = (this.zoomBox.innerWidth / (this.zoomSize.width / this.size.width));
            this.lens.height = (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 (O) {
                    this.moveTimer = true
                }
                this.animate(null, {
                    x: P.x - M.x,
                    y: P.y - M.y
                });
                if (O) {
                    this.moveTimer = null
                }
            }
        },
        registerActivateEvent: function(L) {
            var K;
            var J = L ? "dbltap btnclick" : "touchstart" + (window.navigator.pointerEnabled ? " pointerdown" : window.navigator.msPointerEnabled ? " MSPointerDown" : "") + (window.navigator.pointerEnabled ? " pointermove" : window.navigator.msPointerEnabled ? " MSPointerMove" : " mousemove");
            var M = this.node.jFetch("mz:handlers:activate:fn", (!L) ? i(function(N) {
                if (c(N) && !h(N)) {
                    return
                }
                if (N && N.pointerType === "touch" && N.type !== "pointerdown") {
                    return
                }
                K = (A.browser.ieMode < 9) ? A.extend({}, N) : N;
                if (!this.activateTimer) {
                    clearTimeout(this.activateTimer);
                    this.activateTimer = setTimeout(i(function() {
                        this.activate(K)
                    }).jBind(this), 120)
                }
            }).jBindAsEvent(this) : i(this.activate).jBindAsEvent(this));
            this.node.jStore("mz:handlers:activate:event", J).jAddEvent(J, M, 10)
        },
        unregisterActivateEvent: function() {
            var J = this.node.jFetch("mz:handlers:activate:event");
            var K = this.node.jFetch("mz:handlers:activate:fn");
            this.node.jRemoveEvent(J, K);
            this.node.jDel("mz:handlers:activate:fn")
        },
        registerDeactivateEvent: function(K) {
            var J = "touchend";
            if (window.navigator.pointerEnabled) {
                J += " pointerup pointerout pointermove"
            } else {
                if (window.navigator.msPointerEnabled) {
                    J += " MSPointerUp MSPointerOut MSPointerMove"
                } else {
                    J += " mouseout mousemove"
                }
            }
            if (K) {
                if (this.expanded || A.browser.mobile) {
                    J = "dbltap btnclick"
                } else {
                    J += " dbltap btnclick"
                }
            }
            var L = this.node.jFetch("mz:handlers:deactivate:fn", i(function(N) {
                if (c(N) && !h(N)) {
                    return
                }
                if (N && N.type === "pointerup" && N.pointerType !== "touch") {
                    return
                }
                if (N && (N.type === "pointermove" || N.type === "MSPointerMove" || N.type === "mousemove")) {
                    if (!this.ready || !this.zoomBox.enabled || !this.zoomBox.active) {
                        return
                    }
                    var M = N.getClientXY();
                    if (M.x < this.boundaries.left || M.x > this.boundaries.right || M.y < this.boundaries.top || M.y > this.boundaries.bottom) {
                        this.deactivate(N);
                        return
                    }
                } else {
                    if (this.zoomBox.node !== N.getRelated() && !((this.zoomBox.position === "inner" || this.zoomBox.mode === "magnifier") && this.zoomBox.node.hasChild(N.getRelated())) && !this.node.hasChild(N.getRelated())) {
                        this.deactivate(N);
                        return
                    }
                }
            }).jBindAsEvent(this));
            this.node.jStore("mz:handlers:deactivate:event", J).jAddEvent(J, L, 20)
        },
        unregisterDeactivateEvent: function() {
            var J = this.node.jFetch("mz:handlers:deactivate:event");
            var K = this.node.jFetch("mz:handlers:deactivate:fn");
            this.node.jRemoveEvent(J, K);
            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(J) {
                if ((A.browser.androidBrowser || A.browser.platform === "android" && A.browser.gecko) && this.option("zoomMode") && this.option("zoomOn") !== "click" && J.type === "touchstart") {
                    J.stopDefaults();
                    if (A.browser.gecko) {
                        J.stopDistribution()
                    }
                }
                if (!this.zoomBox.active) {
                    return
                }
                if (this.zoomBox.position === "inner") {
                    this.lens.spos = J.getClientXY()
                }
            }).jBindAsEvent(this), 10);
            this.node.jAddEvent(["touchend", window.navigator.pointerEnabled ? "pointerup" : "MSPointerUp"], i(function(J) {
                if (c(J) && h(J)) {
                    this.lens.touchmovement = false
                }
            }).jBindAsEvent(this), 10);
            this.node.jAddEvent("touchmove " + (A.browser.platform === "android" ? "" : window.navigator.pointerEnabled ? "pointermove" : window.navigator.msPointerEnabled ? "MSPointerMove" : "mousemove"), i(this.animate).jBindAsEvent(this));
            if (this.option("zoomMode")) {
                this.registerActivateEvent(this.option("zoomOn") === "click");
                this.registerDeactivateEvent(this.option("zoomOn") === "click")
            }
            this.node.jAddEvent("mousedown", function(J) {
                J.stopDistribution()
            }, 10).jAddEvent("btnclick", i(function(J) {
                this.node.jRaiseEvent("MouseEvent", "click");
                if (this.expanded) {
                    this.expandBox.jCallEvent("btnclick", J)
                }
            }).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(J) {
                i(J.origin).jClearEvents()
            })
        },
        activate: function(P) {
            var Q;
            var O;
            var M;
            var N;
            var J;
            var K = 0;
            var L = 0;
            if (!this.image.loaded() || !this.ready || !this.zoomBox.enabled || this.zoomBox.active || this.zoomBox.activating) {
                if (!this.image.loaded() && !this.initEvent) {
                    if (P) {
                        this.initEvent = e(P);
                        P.stopQueue()
                    }
                    this.image.load(this.setupZoom.jBind(this));
                    if (!this.loadTimer) {
                        this.loadTimer = i(this.showLoading).jBind(this).jDelay(400)
                    }
                }
                return
            }
            if (P && P.type === "pointermove" && P.pointerType === "touch") {
                return
            }
            if (!this.option("zoomMode") && this.option("expand") && !this.expanded) {
                this.zoomBox.active = true;
                return
            }
            this.zoomBox.activating = true;
            if (this.expanded && this.zoomBox.mode === "zoom") {
                N = this.image.node.jGetRect();
                this.expandStage.jAddClass("mz-zoom-in");
                J = this.expandFigure.jGetRect();
                L = ((N.left + N.right) / 2 - (J.left + J.right) / 2);
                K = ((N.top + N.bottom) / 2 - (J.top + J.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();
            O = (this.zoomBox.mode === "zoom") ? this.zoomBox.position : this.zoomBox.mode;
            if (A.browser.features.transition && !(this.expanded && this.option("expandZoomOn") === "always")) {
                if (O === "inner") {
                    M = this.image.node.jGetSize();
                    this.zoomBox.image.jSetCss({
                        transform: "translate3d(0," + K + "px, 0) scale(" + M.width / this.zoomSize.width + ", " + M.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-" + O);
                        this.zoomBox.activating = false;
                        this.zoomBox.active = true
                    }).jBind(this));
                    this.zoomBox.node.jAddClass("mz-p-" + O).jGetSize();
                    if (!A.browser.mobile && A.browser.chrome && (A.browser.uaName === "chrome" || A.browser.uaName === "opera")) {
                        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-" + O)
                    }).jBind(this));
                    this.zoomBox.node.jSetCss({
                        transition: "none"
                    });
                    this.zoomBox.node.jAddClass("mz-p-" + O).jGetSize();
                    this.zoomBox.node.jSetCss({
                        transition: ""
                    }).jGetSize();
                    this.zoomBox.node.jRemoveClass("mz-p-" + O);
                    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 (P) {
                P.stop().stopQueue();
                Q = P.getClientXY();
                if (this.zoomBox.mode === "magnifier" && (/tap/i).test(P.type)) {
                    Q.y -= this.zoomBox.height / 2 + 10
                }
                if (O === "inner" && ((/tap/i).test(P.type) || c(P))) {
                    this.lens.pos = {
                        x: 0,
                        y: 0
                    };
                    Q.x = -(Q.x - this.boundaries.left - this.size.width / 2) * (this.zoomSize.width / this.size.width);
                    Q.y = -(Q.y - this.boundaries.top - this.size.height / 2) * (this.zoomSize.height / this.size.height)
                }
            } else {
                Q = {
                    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 && this.option("expandZoomOn") === "always") {
                    this.lens.innertouch = true;
                    this.lens.pos = {
                        x: 0,
                        y: 0
                    };
                    Q.x = -(Q.x - this.boundaries.left - this.size.width / 2) * (this.zoomSize.width / this.size.width);
                    Q.y = -(Q.y - this.boundaries.top - this.size.height / 2) * (this.zoomSize.height / this.size.height)
                }
            }
            this.node.jRemoveClass("mz-activating").jAddClass("mz-active");
            Q.x += -L;
            Q.y += -K;
            this.lens.spos = {
                x: 0,
                y: 0
            };
            this.lens.dx = 0;
            this.lens.dy = 0;
            this.animate(P, Q, true);
            u("onZoomIn", this.id)
        },
        deactivate: function(L, Q) {
            var O;
            var M;
            var J;
            var K;
            var N = 0;
            var P = 0;
            var R = this.zoomBox.active;
            this.initEvent = null;
            if (!this.ready) {
                return
            }
            if (L && L.type === "pointerout" && L.pointerType === "touch") {
                return
            }
            clearTimeout(this.moveTimer);
            this.moveTimer = null;
            clearTimeout(this.activateTimer);
            this.activateTimer = null;
            this.zoomBox.activating = false;
            this.zoomBox.active = false;
            if (Q !== true && !this.expanded) {
                if (R) {
                    if (A.browser.mobile && !this.expanded && this.zoomBox.mode === "zoom") {
                        this.reflowZoom()
                    } else {
                        this.showHint()
                    }
                }
            }
            if (!this.zoomBox.enabled) {
                return
            }
            if (L) {
                L.stop()
            }
            this.zoomBox.image.jRemoveEvent("transitionend");
            this.zoomBox.node.jRemoveClass("mz-activating").jRemoveEvent("transitionend");
            if (this.expanded) {
                K = this.expandFigure.jGetRect();
                if (this.option("expandZoomOn") !== "always") {
                    this.expandStage.jRemoveClass("mz-zoom-in")
                }
                this.image.node.jSetCss({
                    "max-height": this.expandMaxHeight()
                });
                J = this.image.node.jGetRect();
                P = ((J.left + J.right) / 2 - (K.left + K.right) / 2);
                N = ((J.top + J.bottom) / 2 - (K.top + K.bottom) / 2)
            }
            O = (this.zoomBox.mode === "zoom") ? this.zoomBox.position : this.zoomBox.mode;
            if (A.browser.features.transition && L && !(this.expanded && this.option("expandZoomOn") === "always")) {
                if (O === "inner") {
                    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));
                    M = this.image.node.jGetSize();
                    this.zoomBox.node.jAddClass("mz-deactivating mz-p-" + O).jGetSize();
                    this.zoomBox.image.jSetCss({
                        transform: "translate3d(0," + N + "px,0) scale(" + M.width / this.zoomSize.maxWidth + ", " + M.height / this.zoomSize.maxHeight + ")"
                    })
                } 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-" + O);
                    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 (R) {
                u("onZoomOut", this.id)
            }
        },
        animate: function(T, S, R) {
            var L = S;
            var N;
            var M;
            var P = 0;
            var K;
            var O = 0;
            var J;
            var U;
            var Q = false;
            if (!this.zoomBox.active && !R) {
                return
            }
            if (T) {
                i(T).stopDefaults().stopDistribution();
                if (c(T) && !h(T)) {
                    return
                }
                Q = (/tap/i).test(T.type) || c(T);
                if (Q && !this.lens.touchmovement) {
                    this.lens.touchmovement = Q
                }
                if (!L) {
                    L = T.getClientXY()
                }
            }
            if (this.zoomBox.mode === "preview") {
                return
            }
            if (this.zoomBox.mode === "zoom" && this.zoomBox.position === "inner" && (T && Q || !T && this.lens.innertouch)) {
                this.lens.innertouch = true;
                N = this.lens.pos.x + (L.x - this.lens.spos.x);
                M = this.lens.pos.y + (L.y - this.lens.spos.y);
                this.lens.spos = L;
                P = Math.min(0, this.zoomBox.innerWidth - this.zoomSize.width) / 2;
                K = -P;
                O = Math.min(0, this.zoomBox.innerHeight - this.zoomSize.height) / 2;
                J = -O
            } else {
                this.lens.innertouch = false;
                if (this.zoomBox.mode === "magnifier") {
                    L.y = Math.max(this.boundaries.top, Math.min(L.y, this.boundaries.bottom));
                    L.x = Math.max(this.boundaries.left, Math.min(L.x, this.boundaries.right))
                }
                N = L.x - this.boundaries.left;
                M = L.y - this.boundaries.top;
                K = this.size.width - this.lens.width;
                J = this.size.height - this.lens.height;
                N -= this.lens.width / 2;
                M -= this.lens.height / 2
            }
            if (this.zoomBox.mode !== "magnifier") {
                N = Math.max(P, Math.min(N, K));
                M = Math.max(O, Math.min(M, J))
            }
            this.lens.pos.x = N;
            this.lens.pos.y = M;
            if (this.zoomBox.mode === "zoom" && this.zoomBox.position !== "inner") {
                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 (this.zoomBox.mode === "magnifier") {
                if (this.lens.touchmovement && !(T && T.type === "dbltap")) {
                    L.y -= this.zoomBox.height / 2 + 10
                }
                this.zoomBox.node.jSetCss({
                    top: L.y - this.boundaries.top - this.zoomBox.height / 2,
                    left: L.x - this.boundaries.left - this.zoomBox.width / 2
                })
            }
            if (!this.moveTimer) {
                this.lens.dx = 0;
                this.lens.dy = 0;
                this.move(1)
            }
        },
        move: function(O) {
            var M;
            var K;
            var J;
            var P;
            var N;
            var L;
            if (!isFinite(O)) {
                if (this.lens.innertouch) {
                    O = this.lens.touchmovement ? 0.4 : 0.16
                } else {
                    O = this.option("smoothing") ? 0.2 : this.lens.touchmovement ? 0.4 : 0.8
                }
            }
            M = ((this.lens.pos.x - this.lens.dx) * O);
            K = ((this.lens.pos.y - this.lens.dy) * O);
            this.lens.dx += M;
            this.lens.dy += K;
            if (!this.moveTimer || Math.abs(M) > 0.000001 || Math.abs(K) > 0.000001) {
                if (this.lens.innertouch) {
                    J = this.lens.dx;
                    P = this.lens.dy
                } else {
                    J = (this.lens.dx * (this.zoomSize.width / this.size.width) - Math.max(0, this.zoomSize.width - this.zoomBox.innerWidth) / 2);
                    P = (this.lens.dy * (this.zoomSize.height / this.size.height) - Math.max(0, this.zoomSize.height - this.zoomBox.innerHeight) / 2);
                    if (this.zoomBox.mode === "magnifier") {
                        J = Math.round(J);
                        P = Math.round(P)
                    }
                    J = -J;
                    P = -P
                }
                N = this.zoomSize.width / this.zoomSize.maxWidth;
                L = this.zoomSize.height / this.zoomSize.maxHeight;
                this.zoomBox.image.jSetCss(A.browser.features.transform ? {
                    transform: g + J + "px," + P + "px" + C + " scale(" + N + "," + L + ")"
                } : {
                    width: this.zoomSize.width,
                    height: this.zoomSize.height,
                    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 (this.zoomBox.mode === "magnifier") {
                return
            }
            this.moveTimer = setTimeout(this.moveBind, 16)
        },
        swipe: function() {
            var V;
            var L;
            var Q = 30;
            var N = 201;
            var S;
            var T = "";
            var K = {};
            var J;
            var P;
            var U = 0;
            var W = {
                transition: A.browser.cssTransform + String.fromCharCode(32) + "300ms cubic-bezier(.18,.35,.58,1)"
            };
            var M;
            var R;
            var O = i(function(X) {
                if (!this.ready || this.zoomBox.active) {
                    return
                }
                if (X.state === "dragstart") {
                    clearTimeout(this.activateTimer);
                    this.activateTimer = null;
                    U = 0;
                    K = {
                        x: X.x,
                        y: X.y,
                        ts: X.timeStamp
                    };
                    V = this.size.width;
                    L = V / 2;
                    this.image.node.jRemoveEvent("transitionend");
                    this.image.node.jSetCssProp("transition", "");
                    this.image.node.jSetCssProp("transform", "translate3d(0, 0, 0)");
                    R = null
                } else {
                    J = (X.x - K.x);
                    P = {
                        x: 0,
                        y: 0,
                        z: 0
                    };
                    if (R === null) {
                        R = (Math.abs(X.x - K.x) < Math.abs(X.y - K.y))
                    }
                    if (R) {
                        return
                    }
                    X.stop();
                    if (X.state === "dragend") {
                        U = 0;
                        M = null;
                        S = X.timeStamp - K.ts;
                        if (Math.abs(J) > L || (S < N && Math.abs(J) > Q)) {
                            if ((T = (J > 0) ? "backward" : (J <= 0) ? "forward" : "")) {
                                if (T === "backward") {
                                    M = this.getPrev();
                                    U += V * 10
                                } else {
                                    M = this.getNext();
                                    U -= V * 10
                                }
                            }
                        }
                        P.x = U;
                        P.deg = -90 * (P.x / V);
                        this.image.node.jAddEvent("transitionend", i(function(Y) {
                            this.image.node.jRemoveEvent("transitionend");
                            this.image.node.jSetCssProp("transition", "");
                            if (M) {
                                this.image.node.jSetCss({
                                    transform: "translate3d(" + P.x + "px, 0px, 0px)"
                                });
                                this.update(M, true)
                            }
                        }).jBind(this));
                        this.image.node.jSetCss(W);
                        this.image.node.jSetCss({
                            "transition-duration": P.x ? "100ms" : "300ms",
                            opacity: 1 - 0.7 * Math.abs(P.x / V),
                            transform: "translate3d(" + P.x + "px, 0px, 0px)"
                        });
                        J = 0;
                        return
                    }
                    P.x = J;
                    P.z = -50 * Math.abs(P.x / L);
                    P.deg = -60 * (P.x / L);
                    this.image.node.jSetCss({
                        opacity: 1 - 0.7 * Math.abs(P.x / L),
                        transform: "translate3d(" + P.x + "px, 0px, " + P.z + "px)"
                    })
                }
            }).jBind(this);
            this.node.jAddEvent("touchdrag", O)
        },
        setupExpandGallery: function() {
            var K, J;
            if (this.additionalImages.length) {
                this.expandGallery = this.additionalImages
            } else {
                K = this.placeholder.getAttribute("data-gallery");
                if (K) {
                    if (A.browser.features.query) {
                        J = A.$A(document.querySelectorAll('.MagicZoom[data-gallery="' + K + '"], .MagicZoomPlus[data-gallery="' + K + '"]'))
                    } else {
                        J = A.$A(document.getElementsByTagName("A")).filter(function(L) {
                            return K === L.getAttribute("data-gallery")
                        })
                    }
                    i(J).jEach(function(M) {
                        var L, N;
                        L = j(M);
                        if (L && L.additionalImages.length > 0) {
                            return
                        }
                        if (L) {
                            N = new l(L.image.small.url, L.image.zoom.url, L.image.caption, null, L.image.origin);
                            N.link = L.image.link
                        } else {
                            N = new l().parseNode(M, L ? L.originalTitle : null)
                        }
                        if (this.image.zoom.src.has(N.zoom.url) && this.image.small.src.has(N.small.url)) {
                            N = this.image
                        }
                        this.expandGallery.push(N)
                    }, 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(L) {
                    var M = i(function(N) {
                        this.setActiveThumb(L);
                        this.update(L)
                    }).jBind(this);
                    L.selector = this.expandThumbs.addItem(A.$new("img", {
                        src: L.getURL("small")
                    }).jAddEvent("tap btnclick", function(N) {
                        N.stop()
                    }).jAddEvent("tap " + (this.option("selectorTrigger") === "hover" ? "mouseover mouseout" : "btnclick"), i(function(O, N) {
                        if (this.updateTimer) {
                            clearTimeout(this.updateTimer)
                        }
                        this.updateTimer = false;
                        if (O.type === "mouseover") {
                            this.updateTimer = i(M).jDelay(N)
                        } else {
                            if (O.type === "tap" || O.type === "btnclick") {
                                M()
                            }
                        }
                    }).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 J;
            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 (J = this.expandGallery.pop()) {
                    if (J !== this.primaryImage) {
                        if (J.small.node) {
                            J.small.node.kill();
                            J.small.node = null
                        }
                        if (J.zoom.node) {
                            J.zoom.node.kill();
                            J.zoom.node = null
                        }
                        J = null
                    }
                }
            }
            this.expandGallery = []
        },
        close: function() {
            if (!this.ready || !this.expanded) {
                return
            }
            if (A.browser.platform === "ios" && A.browser.uaName === "safari" && parseInt(A.browser.uaVersion) === 7) {
                clearInterval(n);
                n = null
            }
            i(document).jRemoveEvent("keydown", this.keyboardCallback);
            this.deactivate(null, true);
            this.ready = false;
            if (A.browser.fullScreen.capable && A.browser.fullScreen.enabled()) {
                A.browser.fullScreen.cancel()
            } else {
                if (A.browser.features.transition) {
                    this.node.jRemoveEvent("transitionend").jSetCss({
                        transition: ""
                    });
                    this.node.jAddEvent("transitionend", this.onClose);
                    if (A.browser.webkit) {
                        setTimeout(i(function() {
                            this.onClose()
                        }).jBind(this), 260)
                    }
                    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();
                    this.node.jSetCss({
                        transition: "all .3s cubic-bezier(0.600, 0, 0.735, 0.045) 0s"
                    }).jGetSize();
                    if (this.zoomBox.mode !== false && this.option("expandZoomOn") === "always" && this.option("expandZoomMode") !== "magnifier") {
                        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(L) {
            if (!this.image.loaded() || !this.ready || this.expanded) {
                if (!this.image.loaded()) {
                    if (L) {
                        this.initEvent = e(L);
                        L.stopQueue();
                        if (L.type === "tap") {
                            L.events[1].stopQueue()
                        }
                    }
                    this.image.load(this.setupZoom.jBind(this));
                    if (!this.loadTimer) {
                        this.loadTimer = i(this.showLoading).jBind(this).jDelay(400)
                    }
                }
                return
            }
            if (L) {
                L.stopQueue()
            }
            var J = i(this.node).jFetch("cr");
            var K = 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(N) {
                    var M = "mz-button";
                    this.buttons[N] = A.$new("button", {
                        title: this.option("text-btn-" + N)
                    }).jAddClass(M).jAddClass(M + "-" + N);
                    K.appendChild(this.buttons[N]);
                    switch (N) {
                        case "prev":
                            this.buttons[N].jAddEvent("tap btnclick", function(O) {
                                O.stop();
                                this.update(this.getPrev())
                            }.jBindAsEvent(this));
                            break;
                        case "next":
                            this.buttons[N].jAddEvent("tap btnclick", function(O) {
                                O.stop();
                                this.update(this.getNext())
                            }.jBindAsEvent(this));
                            break;
                        case "close":
                            this.buttons[N].jAddEvent("tap btnclick", function(O) {
                                O.stop();
                                this.close()
                            }.jBindAsEvent(this));
                            break;
                        default:
                    }
                }, this);
                this.expandControls.append(K);
                this.expandBox.jAddEvent("mousescroll touchstart dbltap", i(function(M) {
                    i(M).stop()
                }));
                if (this.option("closeOnClickOutside")) {
                    this.expandBox.jAddEvent("tap btnclick", function(O) {
                        var N = O.jGetPageXY();
                        var M = i(this.option("expandZoomMode") === "magnifier" ? this.zoomBox.node : this.zoomBox.image).jGetRect();
                        if (this.option("expandZoomOn") !== "always" && M.top <= N.y && N.y <= M.bottom && M.left <= N.x && N.x <= M.right) {
                            O.stopQueue();
                            this.deactivate(O);
                            return
                        }
                        if (this.option("expandZoomOn") !== "always" && this.node.hasChild(O.getOriginalTarget())) {
                            return
                        }
                        O.stop();
                        this.close()
                    }.jBindAsEvent(this))
                }
                this.keyboardCallback = i(function(N) {
                    var M = null;
                    if (N.keyCode !== 27 && N.keyCode !== 37 && N.keyCode !== 39) {
                        return
                    }
                    i(N).stop();
                    if (N.keyCode === 27) {
                        this.close()
                    } else {
                        M = (N.keyCode === 37) ? this.getPrev() : this.getNext();
                        if (M) {
                            this.update(M)
                        }
                    }
                }).jBindAsEvent(this);
                this.onExpand = i(function() {
                    var M;
                    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 (this.option("expandZoomOn") !== "always") {
                        this.registerActivateEvent(true);
                        this.registerDeactivateEvent(true)
                    }
                    this.ready = true;
                    if (this.option("expandZoomOn") === "always") {
                        if (this.zoomBox.mode !== false) {
                            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");
                    if (this.expandNav) {
                        this.expandNav.jRemoveClass("mz-hidden").jAddClass("mz-fade mz-visible")
                    }
                    if (this.expandThumbs) {
                        this.expandThumbs.run();
                        this.setActiveThumb(this.image)
                    }
                    if (J) {
                        J.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 (A.browser.platform === "ios" && A.browser.uaName === "safari" && parseInt(A.browser.uaVersion) === 7) {
                        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 (this.option("zoomOn") === "always") {
                        this.activate()
                    } else {
                        if (this.option("zoomMode") !== false) {
                            this.registerActivateEvent(this.option("zoomOn") === "click");
                            this.registerDeactivateEvent(this.option("zoomOn") === "click")
                        }
                    }
                    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 (this.option("expand") === "fullscreen") {
                this.prepareExpandedView();
                A.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 K;
            var J;
            K = 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) ? K : new A.SVGImage(K).blur(b).getNode()).jAppendTo(this.expandBox);
            if (this.option("expandZoomOn") === "always" && this.option("expandZoomMode") !== false) {
                this.expandStage.jAddClass("mz-always-zoom" + (this.option("expandZoomMode") === "zoom" ? " mz-zoom-in" : "")).jGetSize()
            }
            J = i(this.node)[(A.browser.ieMode < 10) ? "jGetSize" : "getBoundingClientRect"]();
            i(this.stubNode).jSetCss({
                width: J.width,
                height: J.height
            });
            this.node.replaceChild(this.image.getNode("zoom"), this.image.node);
            this.image.setCurNode("zoom");
            this.expandBox.jAppendTo(document.body);
            this.expandMaxWidth = function() {
                var L = this.expandImageStage;
                if (i(this.expandFigure).jGetSize().width > 50) {
                    L = this.expandFigure
                }
                return function() {
                    return this.option("expandZoomOn") === "always" && this.option("expandZoomMode") !== false && this.option("expandZoomMode") !== "magnifier" ? Infinity : Math.round(i(L).getInnerSize().width)
                }
            }.call(this);
            this.expandMaxHeight = function() {
                var L = this.expandImageStage;
                if (i(this.expandFigure).jGetSize().height > 50) {
                    L = this.expandFigure
                }
                return function() {
                    return this.option("expandZoomOn") === "always" && this.option("expandZoomMode") !== false && this.option("expandZoomMode") !== "magnifier" ? Infinity : Math.round(i(L).getInnerSize().height)
                }
            }.call(this);
            this.expandControls.jRemoveClass("mz-fade mz-visible").jAddClass("mz-hidden");
            if (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();
            this.node.jSetCss({
                transition: A.browser.cssTransform + " 0.4s cubic-bezier(0.175, 0.885, 0.320, 1) 0s"
            });
            if (A.browser.features.transition) {
                this.node.jAddEvent("transitionend", this.onExpand);
                if (A.browser.chrome && (A.browser.uaName === "chrome" || A.browser.uaName === "opera")) {
                    setTimeout(i(function() {
                        this.onExpand()
                    }).jBind(this), 500)
                }
            } 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 J = (this.expanded ? this.expandGallery : this.additionalImages).filter(function(M) {
                return (M.small.state !== -1 || M.zoom.state !== -1)
            });
            var K = J.length;
            var L = i(J).indexOf(this.image) + 1;
            return (K <= 1) ? null : J[(L >= K) ? 0 : L]
        },
        getPrev: function() {
            var J = (this.expanded ? this.expandGallery : this.additionalImages).filter(function(M) {
                return (M.small.state !== -1 || M.zoom.state !== -1)
            });
            var K = J.length;
            var L = i(J).indexOf(this.image) - 1;
            return (K <= 1) ? null : J[(L < 0) ? K - 1 : L]
        },
        imageByURL: function(K, L) {
            var J = this.additionalImages.filter(function(M) {
                return ((M.zoom.src.has(K) || M.zoom.url.has(K)) && (M.small.src.has(L) || M.small.url.has(L)))
            }) || [];
            return J[0] || ((L && K && A.jTypeOf(L) === "string" && A.jTypeOf(K) === "string") ? new l(L, K) : null)
        },
        imageByOrigin: function(K) {
            var J = this.additionalImages.filter(function(L) {
                return (L.origin === K)
            }) || [];
            return J[0]
        },
        imageByIndex: function(J) {
            return this.additionalImages[J]
        }
    };
    v = {
        version: "v5.2.5 (Plus)",
        start: function(M, K) {
            var L = null;
            var J = [];
            A.$A((M ? [i(M)] : A.$A(document.byClass("MagicZoom")).concat(A.$A(document.byClass("MagicZoomPlus"))))).jEach(i(function(N) {
                if (i(N)) {
                    if (!j(N)) {
                        L = new k(N, K);
                        if (y && !L.option("autostart")) {
                            L.stop();
                            L = null
                        } else {
                            G.push(L);
                            J.push(L)
                        }
                    }
                }
            }).jBind(this));
            return M ? J[0] : J
        },
        stop: function(M) {
            var K, L, J;
            if (M) {
                (L = j(M)) && (L = G.splice(G.indexOf(L), 1)) && L[0].stop() && (delete L[0]);
                return
            }
            while (K = G.length) {
                L = G.splice(K - 1, 1);
                L[0].stop();
                delete L[0]
            }
        },
        refresh: function(J) {
            this.stop(J);
            return this.start(J)
        },
        update: function(O, N, M, K) {
            var L = j(O);
            var J;
            if (L) {
                J = A.jTypeOf(N) === "element" ? L.imageByOrigin(N) : L.imageByURL(N, M);
                if (J) {
                    L.update(J)
                }
            }
        },
        switchTo: function(M, L) {
            var K = j(M);
            var J;
            if (K) {
                switch (A.jTypeOf(L)) {
                    case "element":
                        J = K.imageByOrigin(L);
                        break;
                    case "number":
                        J = K.imageByIndex(L);
                        break;
                    default:
                }
                if (J) {
                    K.update(J)
                }
            }
        },
        prev: function(K) {
            var J;
            (J = j(K)) && J.update(J.getPrev())
        },
        next: function(K) {
            var J;
            (J = j(K)) && J.update(J.getNext())
        },
        zoomIn: function(K) {
            var J;
            (J = j(K)) && J.activate()
        },
        zoomOut: function(K) {
            var J;
            (J = j(K)) && J.deactivate()
        },
        expand: function(K) {
            var J;
            (J = j(K)) && J.expand()
        },
        close: function(K) {
            var J;
            (J = j(K)) && J.close()
        },
        registerCallback: function(J, K) {
            if (!q[J]) {
                q[J] = []
            }
            if (A.jTypeOf(K) === "function") {
                q[J].push(K)
            }
        },
        running: function(J) {
            return !!j(J)
        }
    };
    i(document).jAddEvent("domready", function() {
        var K = window[E + "Options"] || {};
        t = t();
        d();
        I = A.$new("div", {
            "class": "magic-hidden-wrapper"
        }).jAppendTo(document.body);
        H = (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 J = 0; J < B.length; J++) {
            if (K[B[J]] && A.$F !== K[B[J]]) {
                v.registerCallback(B[J], K[B[J]])
            }
        }
        v.start();
        y = false
    });
    window.MagicZoomPlus = window.MagicZoomPlus || {};
    return v
})();
                                    

Executed Writes (1)

#1 JavaScript::Write (size: 5156, repeated: 1) - SHA256: 35aa1abb480e5a024c255d2c549874f5222bcde1169864edb651a2db1fb5b847

                                        < html > < head > < title > Dising < /title><script type="text/javascript
">rD = false;function edcTimeout() {rD = true; }function cto_AI(u,n) { if (rD) {return;} var cto_ifr=document.getElementById('cto_sub_ifr_px');var cto_ifr_doc=null;if(typeof(cto_ifr)==='undefined'||cto_ifr==null)cto_ifr_doc=document;else if(cto_ifr.contentDocument)cto_ifr_doc=cto_ifr.contentDocument;else if(cto_ifr.contentWindow)cto_ifr_doc=cto_ifr.contentWindow.document;else if(cto_ifr.document)cto_ifr_doc=cto_ifr.document;else cto_ifr_doc=document;if(cto_ifr_doc.createElement){var im=cto_ifr_doc.createElement('IMG');if(im){var d=document.getElementById('cto_pc');if(d!==null && d.appendChild){d.appendChild(im)}if(n){im.onload=n;im.onerror=n;im.onabort=n}im.src=u}} }function cto_l(){if(typeof(cto_loaded)==='undefined')cto_loaded=1;else cto_loaded++;}function cto_run() {function l_i1_1(){cto_AI('https://x.bidswitch.net/sync?dsp_id=46&user_id=k-k_WtuKh6iZtj1MsZEZQcw2QuHdnSlpjURvFK_Q&expires=30', cto_l);}function l_i2_1(){cto_AI('https://cm.g.doubleclick.net/pixel?google_nid=cjp&google_sc&google_ula=913071&CriteoUserId=k-15yNIqh6iZtj1MsZEZQcw2QuHdnTMk5buNa9fw&google_cm&google_hm=ay0xNXlOSXFoNmladGoxTXNaRVpRY3cyUXVIZG5UTWs1YnVOYTlmdw', cto_l);}function l_i3_1(){cto_AI('https://ib.adnxs.com/getuid?https://dis.criteo.com/dis/rtb/appnexus/cookiematch.aspx?appnxsid=$UID', cto_l);}function l_i4_1(){cto_AI('https://r.casalemedia.com/rum?cm_dsp_id=20&external_user_id=k--Rs-Lqh6iZtj1MsZEZQcw2QuHdl_g3rPnZh0Ig', cto_l);}function l_i5_1(){cto_AI('https://ad.360yield.com/match?publisher_dsp_id=38&external_user_id=k-GC47lKh6iZtj1MsZEZQcw2QuHdkSqA1hkLX5rw', cto_l);}function l_i6_1(){cto_AI('https://contextual.media.net/cksync.php?cs=3&type=crt&ovsid=k-Vjw-o6h6iZtj1MsZEZQcw2QuHdk_HKG6d2E9sA', cto_l);}function l_i7_1(){cto_AI('https://exchange.mediavine.com/usersync/push?partner=criteo&partnerId=k-J7R_Hah6iZtj1MsZEZQcw2QuHdlcZ5XhdNQ0on-v5G8qQvlZ', cto_l);}function l_i8_1(){cto_AI('https://sync.outbrain.com/cookie-sync?p=criteo&uid=k-ACPIlah6iZtj1MsZEZQcw2QuHdmUhgw7wDexDA', cto_l);}function l_i9_1(){cto_AI('https://simage2.pubmatic.com/AdServer/Pug?vcode=bz0yJnR5cGU9MSZjb2RlPTE5MjgmdGw9NDMyMDA=&piggybackCookie=uid:k-7PRg6Kh6iZtj1MsZEZQcw2QuHdkDWjLYEq4dGw', cto_l);}function l_i10_1(){cto_AI('https://pixel.rubiconproject.com/tap.php?v=6434&nid=2149&put=k-4R48f6h6iZtj1MsZEZQcw2QuHdm-sZe6ulJB7Q&expires=30', cto_l);}function l_i11_1(){cto_AI('https://match.sharethrough.com/sync/v1?source_id=7658cb1d77a660882b48db06&source_user_id=k-nxpbu6h6iZtj1MsZEZQcw2QuHdmpOC_5Q6ku6Q', cto_l);}function l_i12_1(){cto_AI('https://rtb-csync.smartadserver.com/redir/?partnerid=79&partneruserid=k-OnBv0ah6iZtj1MsZEZQcw2QuHdkJmQ3DGtjbAg', cto_l);}function l_i13_1(){cto_AI('https://sync-t1.taboola.com/sg/criteortb-network/1/rtb-h/?taboola_hm=k-zU1TFah6iZtj1MsZEZQcw2QuHdkBSqXM7u3j7g', cto_l);}function l_i14_1(){cto_AI('https://criteo-sync.teads.tv/um?eid=80&uid=k-a5_Lz6h6iZtj1MsZEZQcw2QuHdkkKgPUina3eg', cto_l);}function l_i15_1(){cto_AI('https://eb2.3lift.com/xuid?mid=2711&xuid=k-rbEoJ6h6iZtj1MsZEZQcw2QuHdlGzQkbL4JECg&dongle=013b', cto_l);}function l_i16_1(){cto_AI('https://ups.analytics.yahoo.com/ups/58301/sync?_origin=1&uid=k-8hh0Rah6iZtj1MsZEZQcw2QuHdkbG8pdXd1BKw', cto_l);}function l_i17_1(){cto_AI('https://cm.adform.net/pixel?adform_pid=15&adform_pc=k-rmyypqh6iZtj1MsZEZQcw2QuHdkqfEk0OKjPow', cto_l);}function l_i18_1(){cto_AI('https://visitor.omnitagjs.com/visitor/sync?uid=732efe97317e6352de4c1caf24b5064b&name=CRITEO&visitor=k-Fio4OKh6iZtj1MsZEZQcw2QuHdnrqmQ-dqbarA', cto_l);}function l_i19_1(){cto_AI('https://gum.criteo.com/sync?c=8&r=1&a=1&u=https%3A%2F%2Fdpm.demdex.net%2Fibs%3Adpid%3D28645%26dpuuid%3D%40USERID%40', l_i19_2);}function l_i19_2(){cto_AI('https://gum.criteo.com/sync?c=83&r=1&a=1&u=https%3A%2F%2Fbeacon.krxd.net%2Fusermatch.gif%3Fpartner%3Dcriteo%26partner_uid%3D%40USERID%40', l_i19_3);}function l_i19_3(){cto_AI('https://gum.criteo.com/sync?c=10&r=1&u=https%3A%2F%2Fs.thebrighttag.com%2Fcs%3Fbtt%3D0%26tp%3Dcr%26uid%3D%40USERID%40', cto_l);}function l_i20_1(){cto_AI('https://id5-sync.com/s/966/9.gif?puid=k--ylqwKh6iZtj1MsZEZQcw2QuHdkoEjvcXtB4FQ', cto_l);}function l_i21_1(){cto_AI('https://ad.yieldlab.net/m?dt_id=8664&ext_id=k-hJ3j2ah6iZtj1MsZEZQcw2QuHdlPB20c3dtprw', cto_l);}function l_i22_1(){cto_AI('https://sync-criteo.ads.yieldmo.com/sync?id=k-iI0Fz6h6iZtj1MsZEZQcw2QuHdnHREH_rQhQXw&pn_id=criteo&ext=1', cto_l);}cto_tot = 22;l_i1_1();l_i2_1();l_i3_1();l_i4_1();l_i5_1();l_i6_1();l_i7_1();l_i8_1();l_i9_1();l_i10_1();l_i11_1();l_i12_1();l_i13_1();l_i14_1();l_i15_1();l_i16_1();l_i17_1();l_i18_1();l_i19_1();l_i20_1();l_i21_1();l_i22_1();}</script></head><body><iframe id="
cto_sub_ifr_px " src="
javascript: false " style="
width: 1 px;
height: 1 px;
display: none;
"><div id='cto_pc' style='display:none'></div></iframe><script type="
text / javascript ">document.body.onload = function(){ if(window.cto_run) cto_run(); };window.setTimeout(function(){ if(typeof(cto_loaded)==='undefined' || cto_loaded<cto_tot) {edcTimeout();var redirectLocation=location.protocol+'//static.criteo.net/empty.html'; location.replace(redirectLocation);}}, 5000);</script></body></html>
                                    


HTTP Transactions (186)


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

                                         
                                         143.204.55.35
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 939
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Content-Type, Alert, Backoff, Retry-After, Content-Length
Cache-Control: max-stale=0
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Date: Tue, 04 Oct 2022 10:38:17 GMT
X-Content-Type-Options: nosniff
X-Cache: Hit from cloudfront
Via: 1.1 1d8cf7c8865ed1078c19a98771ad34ca.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: xHGRAgdLCwcu8hboMn6D5_5NVJEfZgpPqeVcKlEYhOopGvnhJPHZ2w==
Age: 1589


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

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "1F611155394FAC39439B8EC8217D8CD493D6B588D372D264E0D66C03129C50C6"
Last-Modified: Sun, 02 Oct 2022 21:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=3356
Expires: Tue, 04 Oct 2022 12:00:42 GMT
Date: Tue, 04 Oct 2022 11:04:46 GMT
Connection: keep-alive

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

                                         
                                         143.204.55.110
HTTP/2 200 OK
content-type: binary/octet-stream
                                        
content-length: 5348
last-modified: Sat, 10 Sep 2022 18:47:45 GMT
content-disposition: attachment
accept-ranges: bytes
server: AmazonS3
date: Tue, 04 Oct 2022 05:28:28 GMT
etag: "6113f8408c59aebe188d6af273b90743"
x-cache: Hit from cloudfront
via: 1.1 501ad2910f631f0520a6d389d6f053e8.cloudfront.net (CloudFront)
x-amz-cf-pop: OSL50-C1
x-amz-cf-id: J14nZiL5Ucj5AtSPtOOV4wiaImwBlk8aF9DXm16gsndadigvRMkWAg==
age: 20179
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PEM certificate\012- , ASCII text
Size:   5348
Md5:    6113f8408c59aebe188d6af273b90743
Sha1:   7398873bf00f99944eaa77ad3ebc0d43c23dba6b
Sha256: b6e0cc9ad68306208a160f3835fb8da76acc5a82d8fde1da5a98e1de1c11a770
                                        
                                            GET / HTTP/1.1 
Host: gwjyhs.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

                                         
                                         172.98.192.35
HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
                                        
cache-control: max-age=0, private, must-revalidate
connection: close
content-length: 466
date: Tue, 04 Oct 2022 11:04:46 GMT
server: nginx
set-cookie: sid=5bb1f294-43d4-11ed-a7ce-9ac69d29e8c9; path=/; domain=.gwjyhs.com; expires=Sun, 22 Oct 2090 14:18:53 GMT; max-age=2147483647; HttpOnly


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document, ASCII text, with very long lines (466), with no line terminators
Size:   466
Md5:    fc79381e2d69573059e0e34661a4d163
Sha1:   0d5ce8b5d561687de26ba6078ebe61c3722d052b
Sha256: 9d09834a9bbda28418342f5e45fed0e5a0608dc0c552f8ea8355956c4a8e7210

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

                                         
                                         34.117.237.239
HTTP/2 200 OK
content-type: application/json
                                        
server: nginx
date: Tue, 04 Oct 2022 11:04:46 GMT
content-length: 12
strict-transport-security: max-age=31536000
via: 1.1 google
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with no line terminators
Size:   12
Md5:    23e88fb7b99543fb33315b29b1fad9d6
Sha1:   a48926c4ec03c7c8a4e8dffcd31e5a6cdda417ce
Sha256: 7d8f1de8b7de7bc21dfb546a1d0c51bf31f16eee5fad49dbceae1e76da38e5c3
                                        
                                            GET /favicon.ico HTTP/1.1 
Host: gwjyhs.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://gwjyhs.com/
Cookie: sid=5bb1f294-43d4-11ed-a7ce-9ac69d29e8c9

                                         
                                         172.98.192.35
HTTP/1.1 404 Not Found
                                        
cache-control: max-age=0, private, must-revalidate
connection: close
content-length: 9
date: Tue, 04 Oct 2022 11:04:47 GMT
server: nginx


--- Additional Info ---
Magic:  ASCII text, with no line terminators
Size:   9
Md5:    d8f4a1993546cc4b850cde3599e27aec
Sha1:   094b763b4cfcc0b05e5d040581cd513c3ca08067
Sha256: 907ba78b4545338d3539683e63ecb51cf51c10adc9dabd86e92bd52339f298b9
                                        
                                            GET /v1/buckets/main/collections/ms-language-packs/records/cfr-v1-en-US HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/json
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         143.204.55.35
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 329
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag, Expires, Content-Length, Cache-Control, Pragma, Content-Type, Alert, Backoff, Last-Modified, Retry-After
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Last-Modified: Fri, 25 Mar 2022 17:45:46 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
Cache-Control: max-age=3600, max-age=3600
Date: Tue, 04 Oct 2022 10:29:33 GMT
Expires: Tue, 04 Oct 2022 11:17:08 GMT
ETag: "1648230346554"
X-Cache: Hit from cloudfront
Via: 1.1 5de23153ac267c206221751e1cccb6e8.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: 61mcHTdkHe_rooWdzelqeSBT3jDONtaec77AtMYD_wsKjwl9b_KFPQ==
Age: 2114


--- 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 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 6334
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:47 GMT
Last-Modified: Tue, 04 Oct 2022 09:19:13 GMT
Server: ECS (ska/F718)
X-Cache: HIT
Content-Length: 471

                                        
                                            GET / HTTP/1.1 
Host: push.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-WebSocket-Version: 13
Origin: wss://push.services.mozilla.com/
Sec-WebSocket-Protocol: push-notification
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: ogKgEf5B2wyWSWUDqiivMg==
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

                                         
                                         35.162.35.244
HTTP/1.1 101 Switching Protocols
                                        
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: 9BwhTFpZf5L93yCtAFG5RjwCKkI=

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

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "E8E5212B8D90257F23BDB0D1D643B5E7D7528D964056C3A4A269B5E09F409F2D"
Last-Modified: Sun, 02 Oct 2022 21:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=10429
Expires: Tue, 04 Oct 2022 13:58:38 GMT
Date: Tue, 04 Oct 2022 11:04:49 GMT
Connection: keep-alive

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

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "E8E5212B8D90257F23BDB0D1D643B5E7D7528D964056C3A4A269B5E09F409F2D"
Last-Modified: Sun, 02 Oct 2022 21:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=10429
Expires: Tue, 04 Oct 2022 13:58:38 GMT
Date: Tue, 04 Oct 2022 11:04:49 GMT
Connection: keep-alive

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

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "E8E5212B8D90257F23BDB0D1D643B5E7D7528D964056C3A4A269B5E09F409F2D"
Last-Modified: Sun, 02 Oct 2022 21:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=10429
Expires: Tue, 04 Oct 2022 13:58:38 GMT
Date: Tue, 04 Oct 2022 11:04:49 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%2Ffdb412b7-1bf6-4a48-b9f1-b171f540e434.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 4151
x-amzn-requestid: f709a11e-cbea-4965-8502-94ddbd8768bb
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: ZcpvSF3YIAMFdow=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-633b5661-29bfa31d51e8f60b38136dba;Sampled=0
x-amzn-remapped-date: Mon, 03 Oct 2022 21:38:41 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: 7H1QKlOtoBoVz93G5lddxHSGiTjtMnHJCZX5FhwqhNPkspslaDoFQA==
via: 1.1 1b0911478686968732f973d6e5e31d10.cloudfront.net (CloudFront), 1.1 02d90bf99fd6253b329a53c82f19e224.cloudfront.net (CloudFront), 1.1 google
date: Mon, 03 Oct 2022 21:57:01 GMT
age: 47268
etag: "c20f1fac9020eb4bd6c84583f73872979639b991"
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:   4151
Md5:    24a4a122273ef9f772852031eb13114a
Sha1:   c20f1fac9020eb4bd6c84583f73872979639b991
Sha256: 8e1ffbed5f156637ed2f22e81d03f6d85eff0c28237c1639ea5f977e92ee7b70
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fb3178d2f-9a52-4d0e-a26b-5a90ef8578f2.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 3430
x-amzn-requestid: 22a0e400-1567-4c9c-aca9-782f3f81a8ef
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: ZKLCrEn4IAMFZWw=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-6333f210-11fa888c78719c44160accf8;Sampled=0
x-amzn-remapped-date: Wed, 28 Sep 2022 07:04:49 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: 69u2trVvquFefzPFeOg_AuyzqQ6EBpY_ok9d9RXv71NE3TB_qELdtg==
via: 1.1 d1151317ba32afe0e6370fd69fed222e.cloudfront.net (CloudFront), 1.1 35575576af8067e30cfb17c6b9fde8e2.cloudfront.net (CloudFront), 1.1 google
date: Mon, 03 Oct 2022 16:24:09 GMT
age: 67240
etag: "42dd7ec0c606dbd3ccc0074f61d3b4b12f2e3c88"
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:   3430
Md5:    488ec5b4267ccb1cdc4e6e08556f7f3b
Sha1:   42dd7ec0c606dbd3ccc0074f61d3b4b12f2e3c88
Sha256: d9b05fe92962a58b9a8e8dbd4757969aa361be12018107ae649ffcdb8a0f8d84
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F9a61745f-0c9b-404a-ba22-0a69cf2f0383.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 4858
x-amzn-requestid: fb21c414-2994-444a-a838-e643fd05b171
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: ZcpvTEfPoAMFfeQ=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-633b5661-593dd8043b0490e7301cac0d;Sampled=0
x-amzn-remapped-date: Mon, 03 Oct 2022 21:38:41 GMT
x-amz-cf-pop: SFO5-P2, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: MiSh_FjAciKCaOakY2mM_EHBN1Z6GIDYIP8mwS4ikkrToQN3Ktsv2g==
via: 1.1 773ca14e6bd4bf9244988cb69fc9dca8.cloudfront.net (CloudFront), 1.1 b36bf2c460ac693ce304817aed073112.cloudfront.net (CloudFront), 1.1 google
date: Mon, 03 Oct 2022 21:56:46 GMT
age: 47283
etag: "585e7146fd24cdc2496b05baafea04091dc541e2"
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:   4858
Md5:    6779181f9c06975f2a662da743893939
Sha1:   585e7146fd24cdc2496b05baafea04091dc541e2
Sha256: 8e9a9f92fd89b7cdce77884ccd76b83ab82d28f125ebfc1cb0d371d4046b7985
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F4f5624b4-8e2a-461e-a32a-38d6b5a3a8d2.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 11101
x-amzn-requestid: f98e84d9-1e66-4436-b793-219a777f2ba0
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: ZcqcvE8JoAMFQ2g=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-633b5784-25bd2b234c1093de70074c92;Sampled=0
x-amzn-remapped-date: Mon, 03 Oct 2022 21:43:32 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: becOxfqUowywFrxzDSeK7F1lFdDVTSHIF1TLC5k5aSlLPpsR6F8gjw==
via: 1.1 cd48ffda04934d18865e47e99ea080bc.cloudfront.net (CloudFront), 1.1 35575576af8067e30cfb17c6b9fde8e2.cloudfront.net (CloudFront), 1.1 google
date: Mon, 03 Oct 2022 22:08:47 GMT
age: 46562
etag: "db07d58d8feff4ea01866d095e5264ee5c8e1ca3"
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:   11101
Md5:    ae824db4a95391149198a4b6b8556c70
Sha1:   db07d58d8feff4ea01866d095e5264ee5c8e1ca3
Sha256: 19e96d204813247697e1858daf9e07d6c4cafd9ab1175a3bf39a7f07f6991521
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F545190f2-96f3-40f8-bd46-cebe7171aee7.webp HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 9917
x-amzn-requestid: 2dff93d9-795d-4885-9b82-610b0d235a82
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: ZcpvTGEnIAMF1zg=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-633b5661-117afa703663ada75627792c;Sampled=0
x-amzn-remapped-date: Mon, 03 Oct 2022 21:38:41 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: p5nOqBojKO6S-c_DxIu8B3p-NK0pzRHkz0DOPeyv7PQt9h0x1jdtoQ==
via: 1.1 da5952aa802df39905ceb16592e9698a.cloudfront.net (CloudFront), 1.1 1508efc4152aa1778ed4adecb328b374.cloudfront.net (CloudFront), 1.1 google
date: Mon, 03 Oct 2022 21:55:54 GMT
age: 47335
etag: "22aab05208a01ae5def4d63dc145085630f57bcb"
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:   9917
Md5:    d8c08f8066cc732de8befd6ccd629a95
Sha1:   22aab05208a01ae5def4d63dc145085630f57bcb
Sha256: f8a560a0563518d992d0bd2655d2b5c406435a18e874ca00b51374d2ff901770
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F8641c47a-9aff-4f73-bb07-6770cbbcc8d6.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 5504
x-amzn-requestid: 37405eb0-5c75-46a9-84c0-e8ed726995d8
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: ZcpHvHPvoAMF3mg=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-633b5564-77fd550b58af612525e74761;Sampled=0
x-amzn-remapped-date: Mon, 03 Oct 2022 21:34:28 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Miss from cloudfront
x-amz-cf-id: Ovm2wuk28PygH4EZNEUoPchoHQggWCyXbYHOjMV1tZmfyDrL6PjPZA==
via: 1.1 01c28b52813cd0e82f810c492808b142.cloudfront.net (CloudFront), 1.1 5fe5f2a3903f1378941d92eceaf3fa16.cloudfront.net (CloudFront), 1.1 google
date: Mon, 03 Oct 2022 22:29:19 GMT
age: 45330
etag: "20ef861be49c652a938e0145e4ca3a60159367e2"
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:   5504
Md5:    6c6882c60d7ca6f918c77104e3ad1d52
Sha1:   20ef861be49c652a938e0145e4ca3a60159367e2
Sha256: 861f5870990fbd2939d151ae18384cf311e87067ca9a50818efe0c2d51b83088
                                        
                                            GET /?js=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJKb2tlbiIsImV4cCI6MTY2NDg4ODY4NiwiaWF0IjoxNjY0ODgxNDg2LCJpc3MiOiJKb2tlbiIsImpzIjoxLCJqdGkiOiIyc2RkaHAxamNwazU1bWk1YTAyazkwNjQiLCJuYmYiOjE2NjQ4ODE0ODYsInRzIjoxNjY0ODgxNDg2ODkzMjU0fQ.csG4AiPenJENJ1aXtKy4Vc9rEI5yGKHD37ejvHppbYY&sid=5bb1f294-43d4-11ed-a7ce-9ac69d29e8c9 HTTP/1.1 
Host: gwjyhs.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://gwjyhs.com/
Cookie: sid=5bb1f294-43d4-11ed-a7ce-9ac69d29e8c9
Upgrade-Insecure-Requests: 1

                                         
                                         172.98.192.35
HTTP/1.1 302 Found
                                        
cache-control: max-age=0, private, must-revalidate
connection: close
content-length: 11
date: Tue, 04 Oct 2022 11:04:49 GMT
location: http://click-v4.expmdiadi.com/click?i=3tpRwk9-NHg_0
server: nginx
set-cookie: sid=5bb1f294-43d4-11ed-a7ce-9ac69d29e8c9; path=/; domain=.gwjyhs.com; expires=Sun, 22 Oct 2090 14:18:56 GMT; max-age=2147483647; HttpOnly


--- Additional Info ---
Magic:  ASCII text, with no line terminators
Size:   11
Md5:    32682312d17c7cbf18e73594f5570319
Sha1:   60e22121bdd0bc71cdb2bae2a3aa577006b2eae9
Sha256: e55fb1a1d731153e943b68844af12dcce8bfac917c98ffdea64c80da0607dd47
                                        
                                            GET /click?i=3tpRwk9-NHg_0 HTTP/1.1 
Host: click-v4.expmdiadi.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://gwjyhs.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1

                                         
                                         198.134.116.17
HTTP/1.1 302 Found
                                        
Cache-Control: no-store
Content-Length: 0
Age: 0
Connection: keep-alive
Location: https://api.apptap.com/link/buy/android/tile.dyrekassen.no/e1?clinkID=xKX18oK1jOlqbEGK488wX-7zU65ULjWHmI4NmKpBc-Sg99jJm3zqOSQfLw&pubID=laGp89Ptz6FCc0yNz-I6Tu0&siteID=k-23rN3-&placementID=424864_gwjyhs.com&trackingID=uRO6BDpdGqk&creativeID=5594395&pub.keyword=gwjyhs&loc.country=no&partnerCampaignID=947777&cost.cpc=0.015
Pragma: no-cache

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

                                         
                                         143.204.42.158
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Content-Length: 471
Connection: keep-alive
Accept-Ranges: bytes
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:50 GMT
Last-Modified: Tue, 04 Oct 2022 10:45:33 GMT
Server: ECS (dcb/7F83)
X-Cache: Miss from cloudfront
Via: 1.1 bcd5dadccb0831729969c938747ff79a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: -ZzCu6mi4k_hIhvAW7mJHEfs5pc4ZmiQgyUhZr7LhCnwUGdlByY6IA==
Age: 1157

                                        
                                            GET /link/buy/android/tile.dyrekassen.no/e1?clinkID=xKX18oK1jOlqbEGK488wX-7zU65ULjWHmI4NmKpBc-Sg99jJm3zqOSQfLw&pubID=laGp89Ptz6FCc0yNz-I6Tu0&siteID=k-23rN3-&placementID=424864_gwjyhs.com&trackingID=uRO6BDpdGqk&creativeID=5594395&pub.keyword=gwjyhs&loc.country=no&partnerCampaignID=947777&cost.cpc=0.015 HTTP/1.1 
Host: api.apptap.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://gwjyhs.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         44.205.145.249
HTTP/1.1 302
Content-Type: text/html;charset=UTF-8
                                        
Date: Tue, 04 Oct 2022 11:04:50 GMT
Location: https://api.mplayit.com/link/redirect?data=jy_IT8CbaqHcdViS4JYetgzZnv9ULdfTH9oYfksD5n9rzvGwxiSbmbT9eGieA1lRfRRcfCTHFikE_y_GrAq7Oh32aOqT-cBMRJusijELRlXxghXvp5o%3D&appID=tile.dyrekassen.no&stripFragment=false&link=https%3A%2F%2Fr.srvtrck.com%2Fv1%2Fredirect%3Fapi_key%3D7f492f7e98f9f621f520ab0fb797464f%26yk_tag%3DOJ2FEM2KKZYEWWTQIFCEEQ2UKFTWGZCINVATUZZWJNZGK2SR_ORUWYZJOMR4XEZLLMFZXGZLOFZXG6H3ZOIWWKVKDMVSFAV3XGBXE423RINMVOUKBM4PUCVBRMRWHA3TJNRZG2MDIORUWG2TKOR2WYYLXGFQXI427MJUWE6DFOBTDONLPGBVQ_72994674be9c4efea5dcc4fbc47224b8%26site_id%3D72994674be9c4efea5dcc4fbc47224b8%26source%3D%26type%3Durl%26url%3Dhttps%253A%252F%252Fwww.dyrekassen.no%252F&clickID=rtR3JVpKZpADBCTQgcdHmA%3Ag6KrejQ&js=true
Referrer-Policy: no-referrer
Server: nginx/1.20.0
Set-Cookie: apt=d0e59390b2614b7db85fd23556c259a5; Domain=apptap.com; Expires=Sun, 03-Oct-2032 21:12:30 GMT; Path=/ fv=1; Domain=apptap.com; Path=/
Content-Length: 0
Connection: keep-alive

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

                                         
                                         143.204.42.158
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Content-Length: 471
Connection: keep-alive
Accept-Ranges: bytes
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:50 GMT
Last-Modified: Tue, 04 Oct 2022 09:21:52 GMT
Server: ECS (dcb/7EC8)
X-Cache: Miss from cloudfront
Via: 1.1 bcd5dadccb0831729969c938747ff79a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: ean90HUMAow2dh2Z314Iw3vT0DkAsNE5uuQ3H4aKEozZuRqy8drEGA==
Age: 6178

                                        
                                            GET /link/redirect?data=jy_IT8CbaqHcdViS4JYetgzZnv9ULdfTH9oYfksD5n9rzvGwxiSbmbT9eGieA1lRfRRcfCTHFikE_y_GrAq7Oh32aOqT-cBMRJusijELRlXxghXvp5o%3D&appID=tile.dyrekassen.no&stripFragment=false&link=https%3A%2F%2Fr.srvtrck.com%2Fv1%2Fredirect%3Fapi_key%3D7f492f7e98f9f621f520ab0fb797464f%26yk_tag%3DOJ2FEM2KKZYEWWTQIFCEEQ2UKFTWGZCINVATUZZWJNZGK2SR_ORUWYZJOMR4XEZLLMFZXGZLOFZXG6H3ZOIWWKVKDMVSFAV3XGBXE423RINMVOUKBM4PUCVBRMRWHA3TJNRZG2MDIORUWG2TKOR2WYYLXGFQXI427MJUWE6DFOBTDONLPGBVQ_72994674be9c4efea5dcc4fbc47224b8%26site_id%3D72994674be9c4efea5dcc4fbc47224b8%26source%3D%26type%3Durl%26url%3Dhttps%253A%252F%252Fwww.dyrekassen.no%252F&clickID=rtR3JVpKZpADBCTQgcdHmA%3Ag6KrejQ&js=true HTTP/1.1 
Host: api.mplayit.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         3.211.95.199
HTTP/1.1 200
                                        
Date: Tue, 04 Oct 2022 11:04:50 GMT
Server: nginx/1.20.0
Content-Length: 555
Connection: keep-alive


--- 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 (483)
Size:   555
Md5:    a0159be2e569d9a9624e8cdfabcc22b9
Sha1:   7c484030a16e364e0db5b208e0700481b1315a66
Sha256: 292f2d0dec4158f6608e5a089129277eac6126f8752a8b3f911e415ecb46db60
                                        
                                            GET /v1/redirect?api_key=7f492f7e98f9f621f520ab0fb797464f&yk_tag=OJ2FEM2KKZYEWWTQIFCEEQ2UKFTWGZCINVATUZZWJNZGK2SR_ORUWYZJOMR4XEZLLMFZXGZLOFZXG6H3ZOIWWKVKDMVSFAV3XGBXE423RINMVOUKBM4PUCVBRMRWHA3TJNRZG2MDIORUWG2TKOR2WYYLXGFQXI427MJUWE6DFOBTDONLPGBVQ_72994674be9c4efea5dcc4fbc47224b8&site_id=72994674be9c4efea5dcc4fbc47224b8&source=&type=url&url=https%3A%2F%2Fwww.dyrekassen.no%2F HTTP/1.1 
Host: r.srvtrck.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         104.19.168.96
HTTP/2 302 Found
                                        
date: Tue, 04 Oct 2022 11:04:51 GMT
content-length: 0
p3p: CP="CAO PSA OUR"
set-cookie: ykuid=2ca8fd1462a94598b7294e3106c6a3a6; Domain=.srvtrck.com; Expires=Wed, 04-Oct-2023 11:04:51 GMT; Path=/
location: /v2/go?t=8t4p2%3A4%2Fbo4gc.5eekeocreu4.6e9%2F2t%3D%2Fmotsut%26sba7c1Gd%3F0tf%3D1694d84450d2a%26bs9g1T9f360q080T0a%3DQmMtOu0%26OuUt4s%26afaididtao4I5%3D96368675-c7m8db150-7d5706c9u3t1y%3DnI%26efoe%26I3%3De2ibr0s0606b2f9c_4760041844a62_d2s1a3c0I6%3D017d1h0r7e0%262f1a64881322017c480b8b59%26be1vbc1%3Dd6rtfkonod%3D3rbn3o3%26-2d864407%3D-Ido0%26a2a689a9dd1n%26idaelPfram-%3DGrHemcYs1oI1xvL3o4B0p1x0b0%3Dbi2.93e152e12866212s7.4ofhfr2efecis%2Fog2l7c9t4n7pbo9g4oflakdoc-fnc%2F7s2tbh&e=1&ai=ab28642d0efe47fa990b64ba3ae5b501&sct=1&ct=1664881491136&cu=1b92b9aed55e42d69212f704df1f72bf&ykuid=2ca8fd1462a94598b7294e3106c6a3a6&sc=1&cs=1ecc08f139c4c649ac8409630cdf4b2a
cf-cache-status: DYNAMIC
server: cloudflare
cf-ray: 754d70673d56b50c-OSL
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2

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

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 5837
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:51 GMT
Last-Modified: Tue, 04 Oct 2022 09:27:34 GMT
Server: ECS (ska/F6FE)
X-Cache: HIT
Content-Length: 471

                                        
                                            GET /ctl/go/sitesearchGo?.ts=1664881420123&.sig=Tbfx6pqB8oTLaxQIM1OY0mOHUG4-&affiliationId=96966625&comId=100478520&country=no&offerId=12bb10b090bbbf8cc4162031844aa2fd&searchId=1076100371022_1664881420077_49028656&service=36&tokenId=31b33936-7dd6-457b-8d70-a7a883a9d514&addedParams=true&custom1=v0304000130901b92b9aed55e42d69212f704df1f72bf&custom2=72994674be9c4efea5dcc4fbc47224b8 HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://r.srvtrck.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         95.211.116.27
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Date: Tue, 04 Oct 2022 11:04:51 GMT
leadId: dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1664881491356_1614955
clickId: 107698154_1664881491350_3362209
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.016942S
X-Robots-Tag: noindex,nofollow
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: ALLOWALL
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: master-only
Content-Length: 28303
Set-Cookie: datadome=DxPrJ5hl6~APTHx7VhlXjIjuuLP8Oo7JBqbIv84aNdktpKopEIT.zM6ffKfTOLOOxuPI_moGjXT3gKdcL4.mAkYhlXqYdczz85AVZZa6t5IYTxAZdkSDFksyw6TBKyw; Max-Age=31536000; Expires=Wed, 04 Oct 2023 11:04:51 GMT; SameSite=Lax; Path=/; Domain=.kelkoogroup.net; Secure kelkooID=a4c629a-183a2ab7d97-d31d5; Max-Age=31536000; Expires=Wed, 04 Oct 2023 11:04:51 GMT; SameSite=None; Path=/; Domain=kelkoogroup.net; Secure; HTTPOnly
P3P: CP="Anything"
ApacheTracking: localhost
Keep-Alive: timeout=40, max=83
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 (12978)
Size:   28303
Md5:    053614384e1e7829cef6bb2a65819423
Sha1:   44e013ebbde5e02fd072a5c19ef8b100f6779f21
Sha256: 299562805493127c1906f93ff3cba6e04c29a21c38e2e9e24a6dcdb59f6a06f5
                                        
                                            GET /assets/images/p.png?country=no&k=612f7a9541cd6ea61eb554c0e4cff4373002ebc12b4ed4644bb21c184ea9effbaba98429ef970b2c2be240b044b4118733156b1dbf95d1eec5e5470bfdbeec79a56352d546f74a48fde39228599fa1f729bb7bf185ce3a515cb94c5ab3d3ab68a84decb25949198c1572198f4b27fd283055046f35d7e4f33f9c8423cc3e95ce27c7c2944784dc841523e6c071624c67ef6e461022a0b65f99d9765648f519e74d93a266ed034975c45de051c0c1007918c4dd1d989d33025b49f224707575abf636cd638f70babea90679002637d77c30ffea6f1c1247a99ce77066221554aeb6d67f93c3d9ac4f6ab7062171a39025a5f0cb9490f6cba874fcef13ec855e820f723d42bddcc66b270ffe8d0f0b098d&leadId=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1664881491356_1614955&clickId=107698154_1664881491350_3362209 HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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/sitesearchGo?.ts=1664881420123&.sig=Tbfx6pqB8oTLaxQIM1OY0mOHUG4-&affiliationId=96966625&comId=100478520&country=no&offerId=12bb10b090bbbf8cc4162031844aa2fd&searchId=1076100371022_1664881420077_49028656&service=36&tokenId=31b33936-7dd6-457b-8d70-a7a883a9d514&addedParams=true&custom1=v0304000130901b92b9aed55e42d69212f704df1f72bf&custom2=72994674be9c4efea5dcc4fbc47224b8
Connection: keep-alive
Cookie: datadome=DxPrJ5hl6~APTHx7VhlXjIjuuLP8Oo7JBqbIv84aNdktpKopEIT.zM6ffKfTOLOOxuPI_moGjXT3gKdcL4.mAkYhlXqYdczz85AVZZa6t5IYTxAZdkSDFksyw6TBKyw; kelkooID=a4c629a-183a2ab7d97-d31d5
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

                                         
                                         95.211.116.27
HTTP/1.1 200 OK
Content-Type: image/png
                                        
Date: Tue, 04 Oct 2022 11:04:51 GMT
Request-Time: PT0.002198S
X-Robots-Tag: noindex,nofollow
Cache-Control: private, must-revalidate
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: ALLOWALL
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=27
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=612f7a9541cd6ea61eb554c0e4cff4373002ebc12b4ed4644bb21c184ea9effbaba98429ef970b2c2be240b044b4118733156b1dbf95d1eec5e5470bfdbeec79a56352d546f74a48fde39228599fa1f729bb7bf185ce3a515cb94c5ab3d3ab68a84decb25949198c1572198f4b27fd283055046f35d7e4f33f9c8423cc3e95ce27c7c2944784dc841523e6c071624c67ef6e461022a0b65f99d9765648f519e74d93a266ed034975c45de051c0c1007918c4dd1d989d33025b49f224707575abf636cd638f70babea90679002637d77c30ffea6f1c1247a99ce77066221554aeb6d67f93c3d9ac4f6ab7062171a39025a5f0cb9490f6cba874fcef13ec855e820f723d42bddcc66b270ffe8d0f0b098d&leadId=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1664881491356_1614955&clickId=107698154_1664881491350_3362209 HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://no-go.kelkoogroup.net/ctl/go/sitesearchGo?.ts=1664881420123&.sig=Tbfx6pqB8oTLaxQIM1OY0mOHUG4-&affiliationId=96966625&comId=100478520&country=no&offerId=12bb10b090bbbf8cc4162031844aa2fd&searchId=1076100371022_1664881420077_49028656&service=36&tokenId=31b33936-7dd6-457b-8d70-a7a883a9d514&addedParams=true&custom1=v0304000130901b92b9aed55e42d69212f704df1f72bf&custom2=72994674be9c4efea5dcc4fbc47224b8
Content-Type: text/plain;charset=utf-8
Content-Length: 520
Origin: https://no-go.kelkoogroup.net
Connection: keep-alive
Cookie: datadome=DxPrJ5hl6~APTHx7VhlXjIjuuLP8Oo7JBqbIv84aNdktpKopEIT.zM6ffKfTOLOOxuPI_moGjXT3gKdcL4.mAkYhlXqYdczz85AVZZa6t5IYTxAZdkSDFksyw6TBKyw; kelkooID=a4c629a-183a2ab7d97-d31d5; _ga=GA1.2.1336840149.1664881490; _gid=GA1.2.1155851718.1664881490
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

                                         
                                         95.211.116.27
HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
                                        
Date: Tue, 04 Oct 2022 11:04:51 GMT
Request-Time: PT0.004049S
X-Robots-Tag: noindex,nofollow
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: ALLOWALL
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

                                        
                                            GET /tags.js HTTP/1.1 
Host: dd.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://no-go.kelkoogroup.net/
Connection: keep-alive
Cookie: datadome=DxPrJ5hl6~APTHx7VhlXjIjuuLP8Oo7JBqbIv84aNdktpKopEIT.zM6ffKfTOLOOxuPI_moGjXT3gKdcL4.mAkYhlXqYdczz85AVZZa6t5IYTxAZdkSDFksyw6TBKyw; kelkooID=a4c629a-183a2ab7d97-d31d5
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

                                         
                                         54.230.111.47
HTTP/2 200 OK
content-type: text/javascript
                                        
content-length: 43000
server: Apache
strict-transport-security: max-age=63072000; includeSubDomains; preload
last-modified: Fri, 30 Sep 2022 11:57:45 GMT
accept-ranges: bytes
content-encoding: gzip
access-control-allow-origin: *
via: 1.1 109c7a7f1cf897851e09b16d3030a948.cloudfront.net (CloudFront), 1.1 8ac66e1d6983a0f44cf391b1ec3b1cce.cloudfront.net (CloudFront)
date: Tue, 04 Oct 2022 10:25:56 GMT
cache-control: max-age=3600, public
expires: Tue, 04 Oct 2022 11:25:55 GMT
etag: "33929-5e9e3b3bbc8ac-gzip"
vary: Accept-Encoding
x-cache: Hit from cloudfront
x-amz-cf-pop: FRA60-P2, OSL50-P1
x-amz-cf-id: Ja4vu8zLmlULgrxKD7osTD7pXO8ZfxzSh4rHZNjfCJOa7W-COdThpQ==
age: 2336
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65432)
Size:   43000
Md5:    a9f75aaa24c508083c6eda2912cb2929
Sha1:   c47edaa4aa173610bef816ec6078b8385b271bca
Sha256: 092fecd8bdaf2416d3c813569c99ca72665726b2231a01308c07db16489ca93d
                                        
                                            GET /favicon.ico HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.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/sitesearchGo?.ts=1664881420123&.sig=Tbfx6pqB8oTLaxQIM1OY0mOHUG4-&affiliationId=96966625&comId=100478520&country=no&offerId=12bb10b090bbbf8cc4162031844aa2fd&searchId=1076100371022_1664881420077_49028656&service=36&tokenId=31b33936-7dd6-457b-8d70-a7a883a9d514&addedParams=true&custom1=v0304000130901b92b9aed55e42d69212f704df1f72bf&custom2=72994674be9c4efea5dcc4fbc47224b8
Connection: keep-alive
Cookie: datadome=DxPrJ5hl6~APTHx7VhlXjIjuuLP8Oo7JBqbIv84aNdktpKopEIT.zM6ffKfTOLOOxuPI_moGjXT3gKdcL4.mAkYhlXqYdczz85AVZZa6t5IYTxAZdkSDFksyw6TBKyw; kelkooID=a4c629a-183a2ab7d97-d31d5; _ga=GA1.2.1336840149.1664881490; _gid=GA1.2.1155851718.1664881490
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

                                         
                                         95.211.116.27
HTTP/1.0 403 Forbidden
                                        
Server: BigIP
Connection: Keep-Alive
Content-Length: 0

                                        
                                            GET /redirect?country=no&k=612f7a9541cd6ea61eb554c0e4cff4373002ebc12b4ed4644bb21c184ea9effbaba98429ef970b2c2be240b044b4118733156b1dbf95d1eec5e5470bfdbeec79a56352d546f74a48fde39228599fa1f729bb7bf185ce3a515cb94c5ab3d3ab68a84decb25949198c1572198f4b27fd283055046f35d7e4f33f9c8423cc3e95ce27c7c2944784dc841523e6c071624c67ef6e461022a0b65f99d9765648f519e74d93a266ed034975c45de051c0c1007918c4dd1d989d33025b49f224707575abf636cd638f70babea90679002637d77c30ffea6f1c1247a99ce77066221554aeb6d67f93c3d9ac4f6ab7062171a39025a5f0cb9490f6cba874fcef13ec855e820f723d42bddcc66b270ffe8d0f0b098d&leadId=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1664881491356_1614955&clickId=107698154_1664881491350_3362209&url=http%3A%2F%2Fc.trackmytarget.com%2F9ljn6u%3Fr%3Dhttps%253A%252F%252Fwww.dyrekassen.no%252Ftrixie-walker-care-protective-hundesko%253Fsku%253D107272&initiator=timeout HTTP/1.1 
Host: no-go.kelkoogroup.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://no-go.kelkoogroup.net/ctl/go/sitesearchGo?.ts=1664881420123&.sig=Tbfx6pqB8oTLaxQIM1OY0mOHUG4-&affiliationId=96966625&comId=100478520&country=no&offerId=12bb10b090bbbf8cc4162031844aa2fd&searchId=1076100371022_1664881420077_49028656&service=36&tokenId=31b33936-7dd6-457b-8d70-a7a883a9d514&addedParams=true&custom1=v0304000130901b92b9aed55e42d69212f704df1f72bf&custom2=72994674be9c4efea5dcc4fbc47224b8
Connection: keep-alive
Cookie: datadome=DxPrJ5hl6~APTHx7VhlXjIjuuLP8Oo7JBqbIv84aNdktpKopEIT.zM6ffKfTOLOOxuPI_moGjXT3gKdcL4.mAkYhlXqYdczz85AVZZa6t5IYTxAZdkSDFksyw6TBKyw; kelkooID=a4c629a-183a2ab7d97-d31d5; _ga=GA1.2.1336840149.1664881490; _gid=GA1.2.1155851718.1664881490
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin

                                         
                                         95.211.116.27
HTTP/1.1 303 See Other
Content-Type: text/plain
                                        
Date: Tue, 04 Oct 2022 11:04:51 GMT
leadId: dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1664881491356_1614955
clickId: 107698154_1664881491350_3362209
country: no
Location: http://c.trackmytarget.com/9ljn6u?r=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272
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.014402S
X-Robots-Tag: noindex,nofollow
Referrer-Policy: origin-when-cross-origin
X-Frame-Options: ALLOWALL
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: master-only
Content-Length: 0
Set-Cookie: datadome=..BxPojK.wF_zguL92tndkQ-hUpCZpPEd8IReXpwULhlz274Ra3Y1Hvky~DIlLC9kRqzReR9xQ9_.KZIsNBxd63NdYj3_QVewYZxmiEpgEsqfvKiMhRoQ6aFafxTthkl; Max-Age=31536000; Expires=Wed, 04 Oct 2023 11:04:51 GMT; SameSite=Lax; Path=/; Domain=.kelkoogroup.net; Secure
P3P: CP="Anything"
ApacheTracking: localhost
Keep-Alive: timeout=40, max=41
Connection: Keep-Alive

                                        
                                            GET /9ljn6u?r=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272 HTTP/1.1 
Host: c.trackmytarget.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

                                         
                                         52.49.41.143
HTTP/1.1 302 Moved Temporarily
Content-Type: text/html
                                        
Server: awselb/2.0
Date: Tue, 04 Oct 2022 11:04:51 GMT
Content-Length: 110
Connection: keep-alive
Location: https://c.trackmytarget.com:443/9ljn6u?r=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document, ASCII text, with CRLF line terminators
Size:   110
Md5:    f366e0e18b589cb6f243bf43ce75e83c
Sha1:   0f95dda86ab28586f00bc878b42ecd09e579a890
Sha256: 075f0fd7eeb4bfec31816d61be72b064d4899853b224bd5f380041d7dd0b1d19
                                        
                                            POST / HTTP/1.1 
Host: ocsp.usertrust.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         172.64.155.188
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Tue, 04 Oct 2022 11:04:51 GMT
Content-Length: 471
Connection: keep-alive
Last-Modified: Mon, 03 Oct 2022 20:56:58 GMT
Expires: Mon, 10 Oct 2022 20:56:57 GMT
Etag: "1ff14e4314999392c93cee2ff0c792e64f6d6591"
Cache-Control: max-age=602252,s-maxage=1800,public,no-transform,must-revalidate
X-CCACDN-Proxy-ID: mcdpinlb1
X-Frame-Options: SAMEORIGIN
CF-Cache-Status: HIT
Age: 923
Accept-Ranges: bytes
Vary: Accept-Encoding
Server: cloudflare
CF-RAY: 754d706bdbedfab8-OSL

                                        
                                            POST /js/ HTTP/1.1 
Host: api-js.datadome.co
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-type: application/x-www-form-urlencoded
Content-Length: 4148
Origin: https://no-go.kelkoogroup.net
Connection: keep-alive
Referer: https://no-go.kelkoogroup.net/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         16.170.188.27
HTTP/2 200 OK
content-type: application/json;charset=utf-8
                                        
date: Tue, 04 Oct 2022 11:04:51 GMT
content-length: 236
server: DataDome
access-control-allow-origin: *
pragma: no-cache
cache-control: no-cache, no-store, must-revalidate
expires: 0
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with no line terminators
Size:   236
Md5:    f9546bfce21d1407c2d2e7fc4277fa4f
Sha1:   b4bdb61aefe32a7717dfb1252f81ff018dcd9faf
Sha256: 13dececc53d79178f77998ceac468bd4bee6ddd8ec44501713d15b6b15d52978
                                        
                                            POST / HTTP/1.1 
Host: ocsp.godaddy.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 75
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         192.124.249.23
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: Sucuri/Cloudproxy
Date: Tue, 04 Oct 2022 11:04:52 GMT
Content-Length: 1777
Connection: keep-alive
X-Sucuri-ID: 19023
Content-Transfer-Encoding: Binary
Cache-Control: public, no-transform, must-revalidate
Last-Modified: Mon, 03 Oct 2022 23:57:46 GMT
Expires: Tue, 04 Oct 2022 23:57:46 GMT
ETag: "95a21d1abcfe314469c7ba24c25e1662effd3260"
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:   1777
Md5:    3096df43f5047eebe905a69cfc9e6246
Sha1:   95a21d1abcfe314469c7ba24c25e1662effd3260
Sha256: fa99b1c44aacd1f25690bfe5ed500ecb284530e4060ab4129063f2386603f4a4
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Tue, 04 Oct 2022 11:04:52 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
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%2FsitesearchGo%3F.ts%3D1664881420123%26.sig%3DTbfx6pqB8oTLaxQIM1OY0mOHUG4-%26affiliationId%3D96966625%26comId%3D100478520%26country%3Dno%26offerId%3D12bb10b090bbbf8cc4162031844aa2fd%26searchId%3D1076100371022_1664881420077_49028656%26service%3D36%26tokenId%3D31b33936-7dd6-457b-8d70-a7a883a9d514%26addedParams%3Dtrue%26custom1%3Dv0304000130901b92b9aed55e42d69212f704df1f72bf%26custom2%3D72994674be9c4efea5dcc4fbc47224b8&dr=https%3A%2F%2Fr.srvtrck.com%2F&dp=%2F96966625%7C100478520%7C&ul=en-us&de=UTF-8&dt=Du%20sendes%20videre%20til%20Dyrekassen.no&sd=24-bit&sr=1280x1024&vp=1280x939&je=0&_u=QACAAAABAAAAAC~&cid=1336840149.1664881490&tid=UA-168544891-6&_gid=1155851718.1664881490&_r=1&cd1=96966625&cd2=dc1-kls-prod-ls-01.prod.dc1.kelkoo.net_1664881491356_1614955&cd3=100478520&cd4=a4c629a-183a2ab7d97-d31d5&cd5=&cd6=96966625%7C100478520%7C&z=344445083 HTTP/1.1 
Host: www.google-analytics.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://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

                                         
                                         216.239.32.178
HTTP/2 200 OK
content-type: image/gif
                                        
access-control-allow-origin: https://no-go.kelkoogroup.net
date: Tue, 04 Oct 2022 11:04:52 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 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

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

                                        
                                            GET /trixie-walker-care-protective-hundesko?sku=107272&c=i02c75&utm_source=performission&utm_campaign=Kelkoo.no HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/tracking/tc.html?offer_sid=qrzhoi&tmt_data=8014d883-59e5-4da9-95bd-06ace6faa96c&r=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no&tmt_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: text/html; charset=UTF-8
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
set-cookie: PHPSESSID=383mcfihrp3n902hjvrs501fb7; path=/; secure; HttpOnly dk_dc=ic4v%2B4wWDYawH1gAs4PRQWso5tDjKA%3D%3D; expires=Thu, 03-Nov-2022 11:04:52 GMT; Max-Age=2592000; path=/; secure; HttpOnly dk_ci=7HgpLvGJHpO6eXSGJeDshyqs9zZeraJj; expires=Thu, 03-Nov-2022 11:04:52 GMT; Max-Age=2592000; path=/; secure; HttpOnly dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; expires=Thu, 03-Nov-2022 11:04:52 GMT; Max-Age=2592000; path=/; secure; HttpOnly dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE; expires=Thu, 03-Nov-2022 11:04:52 GMT; Max-Age=2592000; path=/; secure; HttpOnly
expires: Thu, 19 Nov 1981 08:52:00 GMT
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cf-cache-status: DYNAMIC
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=dFcciMK%2BzlzSf2HjYw6KOo5TKiajctkXop1W5nfOQmfAzPHDTz%2FCkiNY4o3yJTEsCuevUK3mubM4MrKOBPChmpfkLL0%2BdnVvELqg5Q095juwBkeHoFloiwYfffzL1rS04yJr"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d707019e7b4ff-OSL
content-encoding: br
X-Firefox-Spdy: h2


--- 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 (28812)
Size:   24952
Md5:    7a98f7639fa379b9b229bf9c93f13ce7
Sha1:   5c5600e9e2bd5bf69ef5ae80c2b959856cc1739d
Sha256: 6f1cd3ac9779cbd6b16dbcfa3640b208c3bb4e0a7f90fe9becbb2c59d0edc8b7
                                        
                                            GET /ajax/libs/jquery/3.5.1/jquery.min.js HTTP/1.1 
Host: cdnjs.cloudflare.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         104.17.24.14
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 27958
access-control-allow-origin: *
cache-control: public, max-age=30672000
content-encoding: br
etag: "5eb09ed3-15d84"
last-modified: Mon, 04 May 2020 23:01:39 GMT
cf-cdnjs-via: cfworker/kv
cross-origin-resource-policy: cross-origin
timing-allow-origin: *
x-content-type-options: nosniff
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary: Accept-Encoding
cf-cache-status: HIT
age: 10325197
expires: Sun, 24 Sep 2023 11:04:53 GMT
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=qeoC2sr43iNq07kOb9lcGusj2AelL1Tya6KyhyQTMQKBGmp9g%2FD51bv9ZEkbO%2BAOuExl0twJ43eGnc6QYI5QgP%2FE2SMgbyr1%2FiL9Ce3DcmkoCKz0Uao0jafgVF0NgPWp1KOjSaJc"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=15780000
server: cloudflare
cf-ray: 754d70745b62fabc-OSL
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


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

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

                                        
                                            GET /ajax/libs/algoliasearch/3.33.0/algoliasearch.min.js HTTP/1.1 
Host: cdnjs.cloudflare.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         104.17.24.14
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 16607
access-control-allow-origin: *
cache-control: public, max-age=30672000
content-encoding: br
etag: "5eb03cfd-110a8"
last-modified: Mon, 04 May 2020 16:04:13 GMT
cf-cdnjs-via: cfworker/kv
cross-origin-resource-policy: cross-origin
timing-allow-origin: *
x-content-type-options: nosniff
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary: Accept-Encoding
cf-cache-status: HIT
age: 5761488
expires: Sun, 24 Sep 2023 11:04:53 GMT
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=112GA0nPLCH97%2FzPbs8zn66Bak7m0LAzzsmJUdX%2FILujlPk3C3Nyl%2BcKs2UpbuAx6rBJeB9QDpzhLmeEnMY11R0SbDi7xEFqJDeLk5ZU0fxgaTLQpR3ksUZgf8mWEKKZF0GkV0vP"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=15780000
server: cloudflare
cf-ray: 754d70745b65fabc-OSL
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  HTML document text\012- HTML document, Unicode text, UTF-8 text, with very long lines (32010)
Size:   16607
Md5:    c527c92294fd30b7c79115815ee0e203
Sha1:   dafcd3745594e903ea67963a05991e22ec7aa412
Sha256: cde908ba13aae089a95ea5c298eaf35d06b4c01a3d1817e56c61b6796aebce6f
                                        
                                            GET /ajax/libs/Swiper/5.4.5/js/swiper.min.js HTTP/1.1 
Host: cdnjs.cloudflare.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         104.17.24.14
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 31065
access-control-allow-origin: *
cache-control: public, max-age=30672000
content-encoding: br
etag: "5ee8d6b2-22681"
last-modified: Tue, 16 Jun 2020 14:26:58 GMT
cf-cdnjs-via: cfworker/kv
cross-origin-resource-policy: cross-origin
timing-allow-origin: *
x-content-type-options: nosniff
vary: Accept-Encoding
cf-cache-status: HIT
age: 502531
expires: Sun, 24 Sep 2023 11:04:53 GMT
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=CAD%2B57WjETAwLTXrT4mlGJf1YIDqr5YL6OqFUtrKfPT3PUUcW1%2FHzrSJMrSkXX%2FGaUApN8xDmDzQ1d6r%2Be2cN%2FtlqvByfFUnSsIAO9sASTi4m%2B86aOTGon490yi%2FBhdY5Nnt2eD0"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=15780000
server: cloudflare
cf-ray: 754d70745b6cfabc-OSL
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65284)
Size:   31065
Md5:    8d255819531e4eb28f976ecb6d44fe7f
Sha1:   e51e978dcd68d86f3c1b6f66cdef9e9d9cfebd43
Sha256: 085e2837521f81d399f348392214b014fcc7f66354fbcb0e5a16ff29a96a074d
                                        
                                            GET /gtag/js?id=UA-51336942-1 HTTP/1.1 
Host: www.googletagmanager.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.168
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-headers: Cache-Control
content-encoding: br
vary: Accept-Encoding
date: Tue, 04 Oct 2022 11:04:53 GMT
expires: Tue, 04 Oct 2022 11:04:53 GMT
cache-control: private, max-age=900
strict-transport-security: max-age=31536000; includeSubDomains
cross-origin-resource-policy: cross-origin
server: Google Tag Manager
content-length: 43420
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


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

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

                                        
                                            GET /gtm.js?id=GTM-WRFJF3 HTTP/1.1 
Host: www.googletagmanager.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         142.250.74.168
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-headers: Cache-Control
content-encoding: br
vary: Accept-Encoding
date: Tue, 04 Oct 2022 11:04:53 GMT
expires: Tue, 04 Oct 2022 11:04:53 GMT
cache-control: private, max-age=900
last-modified: Tue, 04 Oct 2022 09:00:00 GMT
strict-transport-security: max-age=31536000; includeSubDomains
cross-origin-resource-policy: cross-origin
server: Google Tag Manager
content-length: 50611
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (4882)
Size:   50611
Md5:    a07bb8ef0368b87d1fc76583780eef1b
Sha1:   2359aeea7f340e30257742afec022166507d4978
Sha256: f7a97fabefdbb245d68767f3171498fcc835cd271a9294c82e4e815a64914d79
                                        
                                            GET /assets/products/400h/1569417591.jpeg HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/trixie-walker-care-protective-hundesko?sku=107272&c=i02c75&utm_source=performission&utm_campaign=Kelkoo.no
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/jpeg
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
cache-control: public, max-age=31536000
cf-bgj: imgq:85,h2pri
cf-polished: degrade=85, origSize=22576, status=webp_bigger
etag: 3e1ce0479032b01a6a86af9a0efef9d8
expires: Sun, 01 Oct 2023 16:54:59 GMT
last-modified: Sat, 01 Oct 2022 16:54:59 GMT
pragma:
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cf-cache-status: HIT
age: 238194
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=xMcLjtRuEGEMEThrKZAUStq6ic5RbtgsR7mAkZ9hvCS3N%2Bi9LRctdrLdYfI5O3r7fMLa7%2FAIRFS3WCUOg8vBm5MvC4sfzi%2FQK1kg9DkHgi2nHiNzNDwyicSKyPYgN%2Bf1I6JD"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d70743ebab4ff-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 400x400, components 3\012- data
Size:   19614
Md5:    ede72aba5f046bc3b76f928dc9fbf986
Sha1:   9a8c12b2f315ad1601a3eb4e57a389fb3b32c1b8
Sha256: 9ba379d8b28bf9c56c2fa0d72f86b42a6fe3d41339a1236d67cdec2e4cb762ed
                                        
                                            GET /9ljn6u?r=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272 HTTP/1.1 
Host: c.trackmytarget.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         34.255.242.12
HTTP/2 301 Moved Permanently
content-type: text/html; charset=UTF-8
                                        
date: Tue, 04 Oct 2022 11:04:52 GMT
location: https://www.dyrekassen.no/tracking/tc.html?offer_sid=qrzhoi&tmt_data=8014d883-59e5-4da9-95bd-06ace6faa96c&r=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no&tmt_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f
server: nginx
set-cookie: qrzhoi=m63d50-i02c75_8014d883-59e5-4da9-95bd-06ace6faa96c_1664881492; expires=Thu, 03-Nov-2022 11:04:52 GMT; Max-Age=2592000; path=/; domain=.trackmytarget.com; secure; HttpOnly; SameSite=None ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; expires=Fri, 01-Oct-2032 11:04:52 GMT; Max-Age=315360000; path=/; domain=.trackmytarget.com; secure; HttpOnly; SameSite=None
cache-control: private, max-age=0, must-revalidate
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   6838
Md5:    e95e66489bb60284f292dfa633000c3a
Sha1:   b5322a54c1833546d1d39bc15540d3240f6a9b7c
Sha256: 669480d0168bf1ed3d5a47876ff0938d8ca451b9cc29144d615f322558fd62aa
                                        
                                            GET /A2097707-e3d4-4689-9e07-7adbac5810811.js HTTP/1.1 
Host: d.impactradius-event.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         35.186.249.72
HTTP/2 200 OK
content-type: text/javascript; charset=utf-8
                                        
x-guploader-uploadid: ADPycdu2U1ohDy20qTE03MBhR_Pp5I8EL7ih-h6f9YxLk9ZaQfvNSV_cv7Tc2q1npAsletJU98jpsIsFzsodcdZRRyJi0A
x-goog-generation: 1605235892105377
x-goog-metageneration: 1
x-goog-stored-content-encoding: gzip
x-goog-stored-content-length: 12933
content-encoding: gzip
x-goog-hash: crc32c=AzhvHg==, md5=98RShA6X5I8zIusj2ZQ49A==
x-goog-storage-class: MULTI_REGIONAL
accept-ranges: bytes
vary: Accept-Encoding
content-length: 12933
server: UploadServer
date: Tue, 04 Oct 2022 10:59:57 GMT
expires: Tue, 04 Oct 2022 11:04:57 GMT
cache-control: public,max-age=900,s-maxage=300
age: 296
last-modified: Fri, 13 Nov 2020 02:51:32 GMT
etag: "f7c452840e97e48f3322eb23d99438f4"
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  C source, ASCII text, with very long lines (41632), with no line terminators
Size:   12933
Md5:    f7c452840e97e48f3322eb23d99438f4
Sha1:   f7efa4f4f24d2ad8af38dd3f11b2fb68b007f006
Sha256: 38935887caa71544b86b66f5b617f9108227f1aeff5375e989ab51c734ee12f7
                                        
                                            GET /assets/img/v2/header/cart.png HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/assets/sass/style.css?v=v2
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 324
cf-bgj: imgq:85,h2pri
cf-polished: origFmt=png, origSize=429
content-disposition: inline; filename="cart.webp"
etag: "633a16a4-1ad"
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
referrer-policy: same-origin
vary: Accept
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 185
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=bYlye3Q4k3ATUEviFhq0hyH86Hgd3d8TofcqBgd6VliI8U80ICAlEvMQIl5pENzJspqePtKDqpIl7ipS0avptSQko64f%2B2JOHRtAjWmJjvHKfDRPCmbBmrwc8huMnUdEBtQP"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d7075a87db4ff-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image\012- data
Size:   324
Md5:    847f9dd8b46e8dfbb361666e1ba3fb1b
Sha1:   1ea2d9d182771c3cedd0b9c03c95c6073d977928
Sha256: dcc9530190ab9de146491caccb093fa8e87f30753c23338d27d7f5167a10653c
                                        
                                            GET /assets/js/magiczoomplus/magiczoomplus.js?v=v2 HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/trixie-walker-care-protective-hundesko?sku=107272&c=i02c75&utm_source=performission&utm_campaign=Kelkoo.no
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
cf-bgj: minify
cf-polished: origSize=85583
etag: W/"633a16a4-14e4f"
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 2463
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=B3S0xxZCcgxwkp0LuALNlHbZHHL5edLyegpQKJcpL905iaNl8xzGJlxM0Zb0MaAMBRD0pk6N%2FzU9VfvghtTSLTYaFj0Dd6QAfvgJ0m0tVvibT%2FzTgHkg0hF3RhwLK%2FRoOy1w"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d7073ee6eb4ff-OSL
content-encoding: br
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65536), with no line terminators
Size:   128884
Md5:    56fc3f2abb9bcb43b28c94473e3e5352
Sha1:   4642cf89b9be9137ca8c480d1c03a376e1b3c664
Sha256: 4c85fa911848883011c416fdcc0c5322ca2aeae46876d09c28dc334ebefdc14b
                                        
                                            GET /assets/products/400h/1574862676.jpeg HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/trixie-walker-care-protective-hundesko?sku=107272&c=i02c75&utm_source=performission&utm_campaign=Kelkoo.no
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
cache-control: public, max-age=31536000
cf-bgj: imgq:85,h2pri
cf-polished: qual=85, origFmt=jpeg, origSize=9587
content-disposition: inline; filename="1574862676.webp"
etag: 37ed299c25d31e9ddbbefc64c68d43bc
expires: Sun, 01 Oct 2023 16:54:59 GMT
last-modified: Sat, 01 Oct 2022 16:54:59 GMT
pragma:
referrer-policy: same-origin
vary: Accept
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cf-cache-status: HIT
age: 238194
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=tsg8kRiJVF4VlZbAx216aZu%2BY4VgQbuS290QWXvyDiLY9tT01BDP5G6zuRU%2FGHjbc%2F7m0Dcd%2BLe3%2F%2FkHy%2BTlhf%2BbHmzbJGD4PB7TFqTdlL1SmOvt9Suc3jVq5E64A6rUgT7P"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d70745ee9b4ff-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image, VP8 encoding, 400x400, Scaling: [none]x[none], YUV color, decoders should clamp\012- data
Size:   8755
Md5:    8b2f1497c25e97fa47aa8a72f7d3560b
Sha1:   0b6a7329afca48160a0079dbab76689ba8e416de
Sha256: 6e272e95b4a3c5bbeea7e5eab7701c4ba7cb225030f57184341e25465e67e3a2
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

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

                                        
                                            GET /assets/img/v2/footer/partner-klarna.png HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/assets/sass/style.css?v=v2
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 1052
cf-bgj: imgq:85,h2pri
cf-polished: origFmt=png, origSize=3069
content-disposition: inline; filename="partner-klarna.webp"
etag: "633a16a4-bfd"
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
referrer-policy: same-origin
vary: Accept
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 4316
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=3cxsRz4%2FIMyNptnqb48nPUQxawFfRpe2OkMlp2chpobxZ5Gmpkz4mnplR5BkrX%2FnafMrTGCzjxdKi%2BbCkJaLeFL0Mk1%2FhnGsxU8G4Jzw5mjbk9LpOqtIVdX%2BAx2xqE%2FWFv6u"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d7076291db4ff-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image\012- data
Size:   1052
Md5:    c52478b74063997ec4bea5306ca08d15
Sha1:   b688fdce8669cbb4393d5fff336c926862d27e82
Sha256: e54a59c926d44b738c49340dfe47808320dc3e7f4e6f40865b17c889337069db
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

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

                                        
                                            GET /ajax/libs/autocomplete.js/0.38.0/autocomplete.min.js HTTP/1.1 
Host: cdnjs.cloudflare.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         104.17.24.14
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 16118
access-control-allow-origin: *
cache-control: public, max-age=30672000
content-encoding: br
etag: "5f635f32-e0c6"
last-modified: Thu, 17 Sep 2020 13:05:54 GMT
cf-cdnjs-via: cfworker/kv
cross-origin-resource-policy: cross-origin
timing-allow-origin: *
x-content-type-options: nosniff
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary: Accept-Encoding
cf-cache-status: HIT
age: 5926074
expires: Sun, 24 Sep 2023 11:04:53 GMT
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=pE0P1unnZxW5RUXV0QeBrc%2BFQSbtkL4sv2P5D3uzzoNL8pWX%2FRj%2BlD9GL%2Bg6YQ9qT64oab1a9j3fDq%2FUcZDwOJIOSx%2BUUzFVCRpjOD5nxYOB%2FoCOAbVacHl7ibB0%2FMaDGcfgQhxG"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=15780000
server: cloudflare
cf-ray: 754d70745b6bfabc-OSL
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- , ASCII text, with very long lines (608)
Size:   1625
Md5:    3613a83df150ad1701c08a8b76dac536
Sha1:   98c4ab4bfb7e16629da315748a6c72034ac027b1
Sha256: 12c80e135ec1963fcd686587c368f5f76d00f5ba9acd823b4b63ea47a3e3ad22
                                        
                                            GET /s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://www.dyrekassen.no
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         216.58.207.195
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 44856
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Sat, 01 Oct 2022 03:08:55 GMT
expires: Sun, 01 Oct 2023 03:08:55 GMT
cache-control: public, max-age=31536000
last-modified: Mon, 15 Aug 2022 18:20:18 GMT
age: 287758
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 44856, version 1.0\012- data
Size:   44856
Md5:    565ce506190ad3af920b40baf1794cec
Sha1:   ad3cba5d06100e09449a864d3b5e58403b478b3d
Sha256: 8778e9af2422858d7052ff9a0f3c12c08ae976bdd6e0316db144cd5579cd97db
                                        
                                            GET /tracking/s/entrypoint.min.js HTTP/1.1 
Host: cdn.trackmytarget.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         185.76.9.17
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
date: Tue, 04 Oct 2022 11:04:52 GMT
last-modified: Wed, 03 Aug 2022 06:19:49 GMT
etag: W/"62ea1385-15c9"
access-control-allow-origin: *
x-accel-expires: @1664882226
server: CDN77-Turbo
x-77-nzt: AblMCQ0lhK3/MgsAAA
x-77-nzt-ray: sWNNO673ExI
x-cache: HIT
x-age: 2866
x-77-pop: stockholmSE
x-77-cache: HIT
content-encoding: br
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  C source, ASCII text
Size:   2329
Md5:    478bac7c44593c80b1f9b9d18a2e01fc
Sha1:   f03cca3b0c74f178960f236c431e0b80b39f9eb6
Sha256: 963fe3f885e2e90e801931adfdf6f63d2e084d7ae6a8e2db475bedaeaf261321
                                        
                                            GET /assets/touch/icon-180x180.png?v=v2 HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/trixie-walker-care-protective-hundesko?sku=107272&c=i02c75&utm_source=performission&utm_campaign=Kelkoo.no
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 4082
cf-bgj: imgq:85,h2pri
cf-polished: origFmt=png, origSize=5704
content-disposition: inline; filename="icon-180x180.webp"
etag: "633a16a4-1648"
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
referrer-policy: same-origin
vary: Accept
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 984
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=x3GECjljrlirWmPbEGE8ikYqL0lqUMB0A7JECrMucQAXj4wGUN%2BY2rHMSfKkBIsIbh74UEDJGENoewM%2BD3s49UuIgXvCYPOayIbSwobXoXpU5H2BIJNvmKuKnk%2BNNayaVnv%2F"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d70770a20b4ff-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image\012- data
Size:   4082
Md5:    81f73132be066dd061ff6fb3a08a509b
Sha1:   f56de03a625d09ed6367ee21778047dc16b6b799
Sha256: fc15833d71d4370e1f79cb226c3572e15ca4bff7ce3cf4d76d28ed8adf69cca8
                                        
                                            GET /assets/img/v2/loop.svg HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/assets/sass/style.css?v=v2
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/svg+xml
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
etag: W/"633a16a4-26ea"
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 2480
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=wClnMq8D%2BavMTDsKfpkCHMM8tVwQezbvDZzM%2FqcHgeXK141kuGPFGx6Kz%2BQSpoRpPuteQ41YUcpkGUa%2BnqOKLdR2bppMmFSa4Ag4scTzhmINw2dqkKITO5XvBEdkGQvitlAx"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d70759860b4ff-OSL
content-encoding: br
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- , ASCII text, with very long lines (9811)
Size:   7933
Md5:    453f3f9c63a6195652958971ac73472e
Sha1:   106be143701d75b0b1a23be6f89e8421a7b48ea2
Sha256: 5debba16f998185ca1bf7e2635b05955a6778f2cc94384737b4b859615c06855
                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 6391
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:53 GMT
Last-Modified: Tue, 04 Oct 2022 09:18:22 GMT
Server: ECS (ska/F718)
X-Cache: HIT
Content-Length: 471

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

                                         
                                         13.107.21.200
HTTP/2 200 OK
content-type: application/javascript
                                        
cache-control: private,max-age=1800
content-length: 11367
content-encoding: gzip
last-modified: Thu, 28 Jul 2022 17:32:37 GMT
accept-ranges: bytes
etag: "80a8697a8a2d81:0"
vary: Accept-Encoding
set-cookie: MUID=03AFAF89247467BF3759BDBA252366CF; domain=.bing.com; expires=Sun, 29-Oct-2023 11:04:53 GMT; path=/; SameSite=None; Secure; Priority=High;
strict-transport-security: max-age=31536000; includeSubDomains; preload
access-control-allow-origin: *
x-cache: CONFIG_NOCACHE
accept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version
x-msedge-ref: Ref A: 03A8182DCD2047A199A1FDDC382F4E11 Ref B: OSL30EDGE0409 Ref C: 2022-10-04T11:04:53Z
date: Tue, 04 Oct 2022 11:04:52 GMT
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (38826), with no line terminators
Size:   11367
Md5:    293ae3e0fc8b0d5c143fdf9d8490228d
Sha1:   3976c659b908e70818a3a1ac71860b497fe2d1a9
Sha256: 04a840d967ae836e14179bde574cabf14a1fc871182ca0f8193e7a0b06c727ab
                                        
                                            GET /images/products/1569417591.jpeg HTTP/1.1 
Host: dyrekassen.akacdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         172.67.73.109
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 54750
cache-control: max-age=31536000
cf-bgj: imgq:85,h2pri
cf-polished: qual=85, origFmt=jpeg, origSize=175886
content-disposition: inline; filename="1569417591.webp"
etag: "e67fcc65f22bdaa86bd4de40ad08b727"
last-modified: Wed, 25 Sep 2019 13:19:52 GMT
vary: Accept
x-amz-id-2: /+ebsm4U/hPetAcEXQCSDjNrOPJQhfKxE3+ybDtekjxzRU93KD1YcnpEukh7/T7rhmrVFWy+QyM=
x-amz-request-id: P7EFMPQGS367D42R
cf-cache-status: HIT
age: 238193
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=SO2zQSMLFboqnA2BVMREZmfy9j1z%2FCAkZh7fBmm7NLRexvawJr6XCnrJSfCorGs6dimqbHL2TdVibtrPVeTVd0k2S5VRZrxlGjdplzuF5v9Y2AufE3GgveINkidHj%2BqgLsIjP8xT5g%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 754d70776be90b4d-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image, VP8 encoding, 800x800, Scaling: [none]x[none], YUV color, decoders should clamp\012- data
Size:   54750
Md5:    b0e4697f63fdceb66ff40c783d5c9629
Sha1:   3255c29273a0bc55748aa65408a37a82ebd156d9
Sha256: 95b5c2c6f77ff9d6e8baea97bcf0922fef5c20981d862fad73d0561a9703d643
                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 2355
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:53 GMT
Last-Modified: Tue, 04 Oct 2022 10:25:38 GMT
Server: ECS (ska/F718)
X-Cache: HIT
Content-Length: 312

                                        
                                            GET /images/products/1569417605.jpeg HTTP/1.1 
Host: dyrekassen.akacdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         172.67.73.109
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 43330
cache-control: max-age=31536000
cf-bgj: imgq:85,h2pri
cf-polished: qual=85, origFmt=jpeg, origSize=201971
content-disposition: inline; filename="1569417605.webp"
etag: "502b258bc0fdce8442501316c9478d24"
last-modified: Wed, 25 Sep 2019 13:20:06 GMT
vary: Accept
x-amz-id-2: 3b5KlbGS41PfyTnacSbyXJjCojonVId4VPjp4nH0zwMoLpUa1GkLCZficyHuAFm0a2LGzQYNVOE=
x-amz-request-id: P7E8B89FSVY6RW7H
cf-cache-status: HIT
age: 238193
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Y0NKt8SUM8Bn%2BgRtzbLxeGlybS3TXOJBSCMRYTomqITGdvVO9%2BA9Uz%2FF3SWQLULnSNbFbr3tj1gt9l8DYleSebB21tnmjFnB7Fcj7ucUcbz8LivNyrZSmkL1Tnte8G7Zq4T%2B2qXoQg%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 754d70776bee0b4d-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image, VP8 encoding, 800x800, Scaling: [none]x[none], YUV color, decoders should clamp\012- data
Size:   43330
Md5:    e0bf5cfa7c314ecc468f06c594fb4aa4
Sha1:   3a64b3c375a2b75f2ae26e9fd534cae189e4191a
Sha256: 3e54716aa321eb2c1621c8f46eefe76a4f392de884a620f0f9318701d5fc3035
                                        
                                            GET /assets/img/v2/footer/social-facebook.svg HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/trixie-walker-care-protective-hundesko?sku=107272&c=i02c75&utm_source=performission&utm_campaign=Kelkoo.no
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/svg+xml
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
etag: W/"633a16a4-3a0"
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 2480
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=lO8KHNSQax%2FDHBPBrtUnyhXa8ODn3RJDFM6IY29iIY%2BkNF284lvnh%2FHVKa8vt5v1L3EP1e2GHNalR7N9nOXYNMNFLDErBSSyyyzFD63UwAbk5W8GB0IBQfBE998BgEYDgOxY"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d70745eeab4ff-OSL
content-encoding: br
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- , ASCII text, with very long lines (928), with no line terminators
Size:   44464
Md5:    07ab01058436c6774bdde2be107b8f6f
Sha1:   9b30b4a70ec03cf902b8e505dd22b990c222b0ff
Sha256: 73c645f0c8bcbb3290569f291dc3f27d1c6351c15ec6e8c6179106bd4a4b06fe
                                        
                                            GET /images/products/1569417620.jpeg HTTP/1.1 
Host: dyrekassen.akacdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         172.67.73.109
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 18350
cache-control: max-age=31536000
cf-bgj: imgq:85,h2pri
cf-polished: qual=85, origFmt=jpeg, origSize=118655
content-disposition: inline; filename="1569417620.webp"
etag: "aaa4166c75a1d28fd1a1d18c0e781f0a"
last-modified: Wed, 25 Sep 2019 13:20:21 GMT
vary: Accept
x-amz-id-2: UE0Qfl33lj0lQjOKkb5gxF4dNrDsKKbiriHW176C0LLOxTPNiFKMcJzfpCyr1J5FIyNRVY8pN2U=
x-amz-request-id: P7E69WF65252QV6Y
cf-cache-status: HIT
age: 238193
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=K6aD4x3I04gSFMNlrnNtp11P3NUxLYGOEa7no2Z68g%2FIO6j6IlKJFnyH2nK6w3zs2kbViFtmNRSVIwvrogq35MgdS8cVxbwRmPjbR9RbX8K8%2F768W0A5vbiflwGhO%2FUzmxscS2hQqQ%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 754d70776bef0b4d-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image, VP8 encoding, 800x800, Scaling: [none]x[none], YUV color, decoders should clamp\012- data
Size:   18350
Md5:    1ff15061ec84bf1d9ecf878691a6d039
Sha1:   7fc8f9c78cf5a2ceda6637396a078d7893beb96b
Sha256: f9decd9bb9c70904c05bc0f6562ec23bfac11677c347b5b94d3a874931fbbb57
                                        
                                            GET /images/products/1569417613.jpeg HTTP/1.1 
Host: dyrekassen.akacdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         172.67.73.109
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 30690
cache-control: max-age=31536000
cf-bgj: imgq:85,h2pri
cf-polished: qual=85, origFmt=jpeg, origSize=168572
content-disposition: inline; filename="1569417613.webp"
etag: "b693d0cd3c0fd50a0ca6cb9222288164"
last-modified: Wed, 25 Sep 2019 13:20:14 GMT
vary: Accept
x-amz-id-2: DNDtpxalNB/mN4CT0ffinlDUk2d8VgTtdher7XyXZRL6tnMKxcP26xX/Qw2o2a8rFedywAmnCJE=
x-amz-request-id: P7E36SMA5BDF7KD5
cf-cache-status: HIT
age: 238193
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=DkaiKI3ZUa8s%2F8PNcfThjz6CfmJk7Thbr1aHFU4qgFJqzxXUhrYZjvOZos52acQFhXN3lF8rUs9yx72TCBbe0jrpPOlroQYNYOIRG%2FuoA7Newne3eO9yNhSKG%2F86mFg8%2BtR62ulJ8Q%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 754d70776bed0b4d-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image, VP8 encoding, 800x800, Scaling: [none]x[none], YUV color, decoders should clamp\012- data
Size:   30690
Md5:    f529ab86ed07e467ca4e5835f597372b
Sha1:   cca17c4722f93b82ad2e066a52ad500c73b80467
Sha256: 996b659f56c03e531050f216fe2048caf9dd3e83e77c1bd0b72d7741804c835a
                                        
                                            GET /images/products/1574862676.jpeg HTTP/1.1 
Host: dyrekassen.akacdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         172.67.73.109
HTTP/2 200 OK
content-type: image/webp
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 11576
cache-control: max-age=31536000
cf-bgj: imgq:85,h2pri
cf-polished: qual=85, origFmt=jpeg, origSize=119406
content-disposition: inline; filename="1574862676.webp"
etag: "90b1495f84275bcd64213c6f3866b009"
last-modified: Wed, 27 Nov 2019 13:51:17 GMT
vary: Accept
x-amz-id-2: gHGQm6tbDszBWgXRU31p3ITegDJqLBARhjoe4bJ9wQTWGqhJCuhkBNUm4Uo6vdf7g0yu1C+KQ0E=
x-amz-request-id: P7E6GXSHF1ZKPZHR
cf-cache-status: HIT
age: 238193
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=tm4G3nWb5%2BkTsaOS3CfLxauL%2FuWdNMRBul5UXMTFGGLbN07IJ653YnZC1sWUBk%2B%2FClKN%2BUdksZm219r6gFZexrL053PQtHFRAVYZ%2BDMjMDgxHVJYazmLNUG98gkbcDDAAEiZn%2Fkgfw%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 754d70776bf10b4d-OSL
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  RIFF (little-endian) data, Web/P image, VP8 encoding, 800x800, Scaling: [none]x[none], YUV color, decoders should clamp\012- data
Size:   11576
Md5:    307b5929260af2fddd4b01e1a221458b
Sha1:   4b13c53c0d046bca3ce5f30bf8eb0164f7df232c
Sha256: 5dc99d2ff3b1f8ffec9fd45445a3161e636fe798c249ba9bf373958ae78ce117
                                        
                                            GET /assets/sass/style.css?v=v2 HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/trixie-walker-care-protective-hundesko?sku=107272&c=i02c75&utm_source=performission&utm_campaign=Kelkoo.no
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: text/css
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
etag: W/"633a16a4-2c22b"
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 2480
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=2WP8oLFEeXv0s4NAQB379p7wLflwQHtz34YhQHK6QQXWFHWHbw%2BAQbJh4oVdrDGmmt8jsfiJuF5OyR0bl4dSofejbv%2F45KzvSh%2Bq0DDq79OdAmkr4Sic5E0X%2BEV1EqPV%2FQW5"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d7073ce4fb4ff-OSL
content-encoding: br
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65536), with no line terminators
Size:   30698
Md5:    9933a62715ec73733789e9d7fddf2b4a
Sha1:   5c0c0e0094595fbb3b5b58ff7f32bddd9467b77c
Sha256: 2eac50b13bdaf6ad58a56940106dc1b9f532ac560b6cdaffa53824bd14cd5313
                                        
                                            GET /webxp/projects/78e175c0-f32d-11e8-af2d-0a580a205c3f/bundle HTTP/1.1 
Host: api.exponea.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://www.dyrekassen.no
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         35.244.143.131
HTTP/2 200 OK
content-type: application/json
                                        
accept-ranges: bytes
access-control-allow-origin: *
cache-control: no-cache, max-age=0
content-encoding: br
etag: "1d612582772a93217a6be658c06419e043d03104a4495c299add6e8ea0647902"
vary: Accept-Encoding
date: Tue, 04 Oct 2022 11:04:53 GMT
content-length: 324
via: 1.1 google
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (919), with no line terminators
Size:   324
Md5:    697ceaa9397e71908b8899e1b6c19775
Sha1:   de117c86319d3ea64cbd9fc715436a9babda1f5f
Sha256: 871003f181518b044b49dc5960ced288b2abfb284cbabd1b50277a687fd082b4
                                        
                                            GET /assets/img/v2/input-minus-white.svg HTTP/1.1 
Host: www.dyrekassen.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.dyrekassen.no/assets/sass/style.css?v=v2
Connection: keep-alive
Cookie: tc_qrzhoi=8014d883-59e5-4da9-95bd-06ace6faa96c; tc_ufp=d0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f; PHPSESSID=383mcfihrp3n902hjvrs501fb7; dk_dc=KAWsznQSIh%2FnCiH3DAgRdgFGPYjt8A%3D%3D; dk_ci=%2B8iU2BHjWySTp4nNmIsnE3lo%2BaqKVRUE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         172.67.72.199
HTTP/2 200 OK
content-type: image/svg+xml
                                        
date: Tue, 04 Oct 2022 11:04:53 GMT
last-modified: Sun, 02 Oct 2022 22:54:28 GMT
etag: W/"633a16a4-f9"
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
cache-control: max-age=31536000
cf-cache-status: HIT
age: 2463
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=V2C16e5nYxiSn67YVzZwEqHkm2bNhyoL%2BDgZZSJZIU5%2FtG7JaoQWYywUewUFJLwnZvyIOwpHyMHu3T81r715pGksSMUA0oiZzXK%2Fr3RAVHvi7MB3kt5D9viAH0rzvMMqNADm"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
strict-transport-security: max-age=31536000; includeSubDomains
server: cloudflare
cf-ray: 754d7075c897b4ff-OSL
content-encoding: br
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- , ASCII text
Size:   14308
Md5:    fd36545bc66ceee541c4b335b82e70fb
Sha1:   63c00a8ed3b4a0930d394f09a93d6c5ed4167598
Sha256: 44b7439a2f598e99b53774d689965536613e552bcea08e6054b3b569addf7399
                                        
                                            GET /p/action/5856679.js HTTP/1.1 
Host: bat.bing.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         13.107.21.200
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
cache-control: private,max-age=60
content-length: 667
content-encoding: gzip
vary: Accept-Encoding
set-cookie: MUID=2E62B0AAF0886665260DA299F1DF6727; domain=.bing.com; expires=Sun, 29-Oct-2023 11:04:53 GMT; path=/; SameSite=None; Secure; Priority=High;
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-powered-by: ARR/3.0
access-control-allow-origin: *
x-cache: CONFIG_NOCACHE
accept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version
x-msedge-ref: Ref A: 4EA4D7B0B6E5487B8DB52830C669630D Ref B: OSL30EDGE0409 Ref C: 2022-10-04T11:04:53Z
date: Tue, 04 Oct 2022 11:04:53 GMT
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with CRLF line terminators
Size:   667
Md5:    4e09cd77170cc866c99967be3219f4d5
Sha1:   acab602a03cb64acea88b41c5b6c5d648bd3bacc
Sha256: 6c704ad463f2c3ef3c811ad2b441eacdaff2e40dcafc78c465635b57bf9e64f6
                                        
                                            GET /tag/uet/5856679 HTTP/1.1 
Host: www.clarity.ms
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         13.107.227.53
HTTP/2 200 OK
content-type: application/x-javascript
                                        
cache-control: no-cache, no-store
content-length: 1494
expires: -1
set-cookie: CLID=d1e155e86ffc454fa9744074bf02e2bc.20221004.20231004; expires=Wed, 04 Oct 2023 11:04:54 GMT; path=/; secure; samesite=none; httponly
request-context: appId=cid-v1:67bc0b23-8423-4b52-b1ca-6a87709ceaa2
x-cache: CONFIG_NOCACHE
x-azure-ref: 0VRM8YwAAAADy2ruGfIwZTqk284x0gLJVT1NMMjMxMDUwMjA0MDI3ADZjZmJlZWUwLTUwMjctNDg0Yi04OTY3LTRhMjlhZjc3ZjFlMQ==
date: Tue, 04 Oct 2022 11:04:53 GMT
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (1494), with no line terminators
Size:   1494
Md5:    2a339624740274973e6bb848e9614818
Sha1:   4efec2b030b64f9cd71a0b7458da49c0048d9c64
Sha256: f2caae00cd896046cc51feaad6559fe5c129d30f6571b96d405a874f51be4cc3
                                        
                                            GET /tr/?id=294528767388159&ev=PageView&dl=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no&rl=https%3A%2F%2Fwww.dyrekassen.no%2Ftracking%2Ftc.html%3Foffer_sid%3Dqrzhoi%26tmt_data%3D8014d883-59e5-4da9-95bd-06ace6faa96c%26r%3Dhttps%253A%252F%252Fwww.dyrekassen.no%252Ftrixie-walker-care-protective-hundesko%253Fsku%253D107272%2526c%253Di02c75%2526utm_source%253Dperformission%2526utm_campaign%253DKelkoo.no%26tmt_ufp%3Dd0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f&if=false&ts=1664881493540&sw=1280&sh=1024&v=2.9.84&r=stable&ec=0&o=30&fbp=fb.1.1664881493539.310396385&it=1664881493378&coo=false&rqm=GET HTTP/1.1 
Host: www.facebook.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         31.13.72.36
HTTP/2 200 OK
content-type: text/plain
                                        
access-control-allow-origin:
access-control-allow-credentials: true
strict-transport-security: max-age=31536000; includeSubDomains
cross-origin-resource-policy: cross-origin
content-length: 0
server: proxygen-bolt
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
date: Tue, 04 Oct 2022 11:04:54 GMT
X-Firefox-Spdy: h2

                                        
                                            GET /tr/?id=294528767388159&ev=ViewContent&dl=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no&rl=https%3A%2F%2Fwww.dyrekassen.no%2Ftracking%2Ftc.html%3Foffer_sid%3Dqrzhoi%26tmt_data%3D8014d883-59e5-4da9-95bd-06ace6faa96c%26r%3Dhttps%253A%252F%252Fwww.dyrekassen.no%252Ftrixie-walker-care-protective-hundesko%253Fsku%253D107272%2526c%253Di02c75%2526utm_source%253Dperformission%2526utm_campaign%253DKelkoo.no%26tmt_ufp%3Dd0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f&if=false&ts=1664881493546&cd[content_ids]=%5B107272%5D&cd[content_type]=product&sw=1280&sh=1024&v=2.9.84&r=stable&ec=1&o=30&fbp=fb.1.1664881493539.310396385&it=1664881493378&coo=false&rqm=GET HTTP/1.1 
Host: www.facebook.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         31.13.72.36
HTTP/2 200 OK
content-type: text/plain
                                        
access-control-allow-origin:
access-control-allow-credentials: true
strict-transport-security: max-age=31536000; includeSubDomains
cross-origin-resource-policy: cross-origin
content-length: 0
server: proxygen-bolt
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
date: Tue, 04 Oct 2022 11:04:54 GMT
X-Firefox-Spdy: h2

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

                                         
                                         216.239.38.178
HTTP/2 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: Tue, 04 Oct 2022 10:41:09 GMT
expires: Tue, 04 Oct 2022 12:41:09 GMT
cache-control: public, max-age=7200
last-modified: Tue, 27 Sep 2022 22:01:05 GMT
age: 1425
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


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

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

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

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

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

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


--- Additional Info ---
Magic:  ASCII text, with very long lines (1654)
Size:   15187
Md5:    8766c5a801f08afceca9b66ff9097e6a
Sha1:   ce7640d1d166eddeb9d40be642ec34652f790713
Sha256: f448f99b4ad9a9b50daa9c38054cf16ab2b9fcb5d83ddad60571fb6a8a432a99
                                        
                                            GET /activity;src=10835654;type=;cat=;gtm=2od9s0;auiddc=871979288.1664881494;~oref=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no? HTTP/1.1 
Host: ad.doubleclick.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         216.58.207.198
HTTP/2 302 Found
content-type: text/html; charset=UTF-8
                                        
p3p: policyref="https://googleads.g.doubleclick.net/pagead/gcn_p3p_.xml", CP="CURa ADMa DEVa TAIo PSAo PSDo OUR IND UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
date: Tue, 04 Oct 2022 11:04:54 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, must-revalidate
location: https://adservice.google.com/ddm/fls/p/src=10835654;type=;cat=;gtm=2od9s0;auiddc=871979288.1664881494;~oref=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no
x-content-type-options: nosniff
server: cafe
content-length: 0
x-xss-protection: 0
set-cookie: test_cookie=CheckForPermission; expires=Tue, 04-Oct-2022 11:19:54 GMT; path=/; domain=.doubleclick.net; Secure; HttpOnly; SameSite=none
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

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

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 5550
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:54 GMT
Last-Modified: Tue, 04 Oct 2022 09:32:24 GMT
Server: ECS (ska/F718)
X-Cache: HIT
Content-Length: 314

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

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

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

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

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

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

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

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

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

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

                                        
                                            GET /ddm/fls/p/src=10835654;type=;cat=;gtm=2od9s0;auiddc=871979288.1664881494;~oref=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no HTTP/1.1 
Host: adservice.google.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         216.58.211.2
HTTP/2 302 Found
content-type: text/html; charset=UTF-8
                                        
p3p: policyref="https://www.googleadservices.com/pagead/p3p.xml", CP="NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
date: Tue, 04 Oct 2022 11:04:54 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, must-revalidate
location: https://adservice.google.no/ddm/fls/p/src=10835654;type=;cat=;gtm=2od9s0;auiddc=871979288.1664881494;~oref=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no
x-content-type-options: nosniff
server: cafe
content-length: 0
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2

                                        
                                            GET /pagead/viewthroughconversion/962506092/?random=1664881493934&cv=9&fst=1664881493934&num=1&bg=ffffff&guid=ON&resp=GooglemKTybQhCsO&u_h=1024&u_w=1280&u_ah=1002&u_aw=1280&u_cd=24&u_his=1&u_tz=0&u_java=false&u_nplug=0&u_nmime=0&gtm=2oa9s0&sendb=1&ig=0&data=event%3Dview_item%3Bid%3D107272%3Bname%3DTrixie%20Walker%20Care%20Protective%20Hundesko%20XXX-Large%3Bbrand%3DTrixie%3Bprice%3D119&frm=0&url=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no&ref=https%3A%2F%2Fwww.dyrekassen.no%2Ftracking%2Ftc.html%3Foffer_sid%3Dqrzhoi%26tmt_data%3D8014d883-59e5-4da9-95bd-06ace6faa96c%26r%3Dhttps%253A%252F%252Fwww.dyrekassen.no%252Ftrixie-walker-care-protective-hundesko%253Fsku%253D107272%2526c%253Di02c75%2526utm_source%253Dperformission%2526utm_campaign%253DKelkoo.no%26tmt_ufp%3Dd0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f&tiba=Trixie%20Walker%20Care%20Protective%20Hundesko%20XXX-Large%20-%20Dyrekassen.no&auid=871979288.1664881494&hn=www.google.com&async=1&rfmt=3&fmt=4 HTTP/1.1 
Host: googleads.g.doubleclick.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         216.58.211.2
HTTP/2 200 OK
content-type: text/javascript; charset=UTF-8
                                        
p3p: policyref="https://googleads.g.doubleclick.net/pagead/gcn_p3p_.xml", CP="CURa ADMa DEVa TAIo PSAo PSDo OUR IND UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
date: Tue, 04 Oct 2022 11:04:54 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, must-revalidate
x-content-type-options: nosniff
content-disposition: attachment; filename="f.txt"
content-encoding: gzip
server: cafe
content-length: 1345
x-xss-protection: 0
set-cookie: test_cookie=CheckForPermission; expires=Tue, 04-Oct-2022 11:19:54 GMT; path=/; domain=.doubleclick.net; Secure; SameSite=none
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (3618), with no line terminators
Size:   1345
Md5:    cdb18d731bc70d7d5819a2010e5833cd
Sha1:   886d482585281824aecde8a2ab09a41bcd5e8473
Sha256: e3c5d74afe18f23639511b4ae1bf440ac35f6b345056481e33eb417813ec26a3
                                        
                                            GET /pagead/viewthroughconversion/962506092/?random=1664881493932&cv=9&fst=1664881493932&num=1&bg=ffffff&guid=ON&resp=GooglemKTybQhCsO&u_h=1024&u_w=1280&u_ah=1002&u_aw=1280&u_cd=24&u_his=1&u_tz=0&u_java=false&u_nplug=0&u_nmime=0&gtm=2oa9s0&sendb=1&ig=0&data=event%3Dgtag.config&frm=0&url=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no&ref=https%3A%2F%2Fwww.dyrekassen.no%2Ftracking%2Ftc.html%3Foffer_sid%3Dqrzhoi%26tmt_data%3D8014d883-59e5-4da9-95bd-06ace6faa96c%26r%3Dhttps%253A%252F%252Fwww.dyrekassen.no%252Ftrixie-walker-care-protective-hundesko%253Fsku%253D107272%2526c%253Di02c75%2526utm_source%253Dperformission%2526utm_campaign%253DKelkoo.no%26tmt_ufp%3Dd0fbed0f19509ba6003754f9d18a321ecc96e932a8f17454afaefaf121bb183f&tiba=Trixie%20Walker%20Care%20Protective%20Hundesko%20XXX-Large%20-%20Dyrekassen.no&auid=871979288.1664881494&hn=www.google.com&async=1&rfmt=3&fmt=4 HTTP/1.1 
Host: googleads.g.doubleclick.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         216.58.211.2
HTTP/2 200 OK
content-type: text/javascript; charset=UTF-8
                                        
p3p: policyref="https://googleads.g.doubleclick.net/pagead/gcn_p3p_.xml", CP="CURa ADMa DEVa TAIo PSAo PSDo OUR IND UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
date: Tue, 04 Oct 2022 11:04:54 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, must-revalidate
x-content-type-options: nosniff
content-disposition: attachment; filename="f.txt"
content-encoding: gzip
server: cafe
content-length: 1317
x-xss-protection: 0
set-cookie: test_cookie=CheckForPermission; expires=Tue, 04-Oct-2022 11:19:54 GMT; path=/; domain=.doubleclick.net; Secure; SameSite=none
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (3394), with no line terminators
Size:   1317
Md5:    cbd212039ced51724ad08ad3715a8fa8
Sha1:   12bd25e05fbe66ba98567fee2d53915a0cd67324
Sha256: b75f28946c5faed9019a9cb62971f3301fed6778c8ae34c55fd83824c59e7649
                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 3089
Cache-Control: 'max-age=158059'
Date: Tue, 04 Oct 2022 11:04:54 GMT
Last-Modified: Tue, 04 Oct 2022 10:13:25 GMT
Server: ECS (ska/F718)
X-Cache: HIT
Content-Length: 314

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

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

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

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

                                        
                                            GET /dna HTTP/1.1 
Host: dnacdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://gum.criteo.com/
Origin: https://gum.criteo.com
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         178.250.0.157
HTTP/2 200 OK
                                        
date: Tue, 04 Oct 2022 11:04:54 GMT
server: Kestrel
content-length: 0
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
set-cookie: browser_data=5iNl4180M0RITmhlJTJCZkMwOUJGQlhaMUN2cyUyRjdtc0tacW9pUGVkcGdsdDhlYWdlVW9jalNxY3lDQlZVTjR4Y203NCUyQkFE; expires=Sun, 29 Oct 2023 11:04:54 GMT; domain=dnacdn.net; path=/; secure; samesite=none
access-control-allow-credentials: true
access-control-allow-methods: GET
access-control-allow-origin: https://gum.criteo.com
server-processing-duration-in-ticks: 141234
strict-transport-security: max-age=31536000; preload;
X-Firefox-Spdy: h2

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

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

                                        
                                            GET /ddm/fls/p/src=10835654;type=;cat=;gtm=2od9s0;auiddc=871979288.1664881494;~oref=https%3A%2F%2Fwww.dyrekassen.no%2Ftrixie-walker-care-protective-hundesko%3Fsku%3D107272%26c%3Di02c75%26utm_source%3Dperformission%26utm_campaign%3DKelkoo.no HTTP/1.1 
Host: adservice.google.no
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.66
HTTP/2 200 OK
content-type: image/gif
                                        
p3p: policyref="https://www.googleadservices.com/pagead/p3p.xml", CP="NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
date: Tue, 04 Oct 2022 11:04:54 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, must-revalidate
x-content-type-options: nosniff
server: cafe
content-length: 42
x-xss-protection: 0
alt-svc: h3="googleads.g.doubleclick.net:443"; ma=2592000,h3=":443"; ma=2592000,h3-29="googleads.g.doubleclick.net:443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050="googleads.g.doubleclick.net:443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046="googleads.g.doubleclick.net:443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043="googleads.g.doubleclick.net:443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic="googleads.g.doubleclick.net:443"; ma=2592000; v="46,43",quic=":443"; ma=2592000; v="46,43"