Overview

URL www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
IP146.19.173.172
ASN
Location Czechia
Report completed2022-07-03 20:55:35 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
Added / Verified Severity Host Comment
2022-07-03 2 perik-lyk.com/imp/7521df68-fb12-11ec-80c7-123956ebd18f/2/e050ad50-e20c-11ea (...) Phishing
mnemonic secure dns  No alerts detected
Quad9 DNS
Added / Verified Severity Host Comment
2022-07-03 2 news-muheji.com Sinkholed
2022-07-03 2 news-muheji.com Sinkholed


Files

No files detected



Passive DNS (62)

Passive DNS Source Fully Qualifying Domain Name Rank First Seen Last Seen IP Comment
[Mnemonic Passive DNS] ts.red12flyw2.site (1) 413075 No data No data 62.122.173.18
[Mnemonic Passive DNS] tsyndicate.com (2) 13042 No data No data 136.243.51.205
[Mnemonic Passive DNS] lcdn.tsyndicate.com (4) 12634 2020-03-31 14:26:34 UTC 2022-07-03 18:46:01 UTC 8.254.252.214
[Mnemonic Passive DNS] img.strpst.com (9) 12993 2022-01-31 08:43:10 UTC 2022-07-03 18:24:48 UTC 104.16.61.52
[Mnemonic Passive DNS] tb.baimgfroggd.site (7) 37115 No data No data 109.206.175.252
[Mnemonic Passive DNS] www.pornhits.com (17) 440709 2020-03-06 15:04:34 UTC 2022-07-03 08:00:04 UTC 146.19.173.172
[Mnemonic Passive DNS] content-signature-2.cdn.mozilla.net (1) 1152 2020-11-03 12:26:46 UTC 2022-07-03 05:07:31 UTC 54.230.111.99
[Mnemonic Passive DNS] js.wpadmngr.com (1) 25762 2021-06-02 14:43:46 UTC 2022-07-03 18:45:59 UTC 45.133.44.24
[Mnemonic Passive DNS] chatw-51.stream.highwebmedia.com (1) 285904 No data No data 104.19.241.83
[Mnemonic Passive DNS] lh3.googleusercontent.com (1) 66 2017-01-30 05:00:10 UTC 2022-07-03 04:38:03 UTC 142.250.74.1
[Mnemonic Passive DNS] chatw-55.stream.highwebmedia.com (1) 271147 No data No data 104.19.242.83
[Mnemonic Passive DNS] pornhits.com (3) 199969 2020-03-06 15:04:34 UTC 2022-07-03 08:00:04 UTC 146.19.173.172
[Mnemonic Passive DNS] ocsp.globalsign.com (1) 2075 2012-05-25 06:20:55 UTC 2022-07-03 07:50:44 UTC 104.18.20.226
[Mnemonic Passive DNS] mc.yandex.ru (2) 2672 2017-01-29 05:34:36 UTC 2022-07-03 15:56:18 UTC 77.88.21.119
[Mnemonic Passive DNS] go.zybrdr.com (1) 29768 2022-01-31 09:51:03 UTC 2022-07-03 15:31:13 UTC 172.64.145.216
[Mnemonic Passive DNS] nereserv.com (1) 40015 No data No data 168.119.25.22
[Mnemonic Passive DNS] go.xxxijmp.com (1) 35696 2022-01-31 09:38:02 UTC 2022-07-03 06:23:53 UTC 104.18.42.40
[Mnemonic Passive DNS] bam.nr-data.net (6) 630 2022-05-18 16:30:58 UTC 2022-07-03 05:05:48 UTC 162.247.241.14
[Mnemonic Passive DNS] vs.bantgoau.com (1) 42067 No data No data 109.206.161.16
[Mnemonic Passive DNS] realtime.pa.highwebmedia.com (44) 24791 2021-01-21 22:18:59 UTC 2022-07-03 14:58:22 UTC 54.230.111.8
[Mnemonic Passive DNS] www.googletagmanager.com (1) 75 2017-01-30 05:00:47 UTC 2022-07-03 04:33:25 UTC 142.250.74.72
[Mnemonic Passive DNS] www.google-analytics.com (1) 40 2017-01-30 05:00:06 UTC 2022-07-03 16:45:35 UTC 142.250.74.174
[Mnemonic Passive DNS] fp.metricswpsh.com (2) 0 No data No data 23.88.85.6 Unknown ranking
[Mnemonic Passive DNS] ocsp.digicert.com (2) 86 2012-11-29 12:49:49 UTC 2022-07-03 11:51:19 UTC 93.184.220.29
[Mnemonic Passive DNS] img-getpocket.cdn.mozilla.net (5) 1631 2017-09-01 03:40:57 UTC 2022-07-03 04:06:00 UTC 34.120.237.76
[Mnemonic Passive DNS] firefox.settings.services.mozilla.com (2) 867 2016-03-17 08:25:01 UTC 2020-05-25 20:01:47 UTC 54.230.111.118
[Mnemonic Passive DNS] push.services.mozilla.com (1) 2140 2014-10-24 08:27:06 UTC 2022-07-03 05:03:35 UTC 35.160.97.225
[Mnemonic Passive DNS] realtime.pa.highwebmedia.com (44) 24791 2021-01-21 22:18:59 UTC 2022-07-03 14:58:22 UTC 54.230.111.129
[Mnemonic Passive DNS] bts.red12flyw2.site (1) 100706 No data No data 109.206.163.112
[Mnemonic Passive DNS] contile.services.mozilla.com (1) 1114 No data No data 34.117.237.239
[Mnemonic Passive DNS] news-muheji.com (2) 0 No data No data 149.7.16.207 Unknown ranking
[Mnemonic Passive DNS] rtbrennab.com (18) 0 No data No data 159.69.163.6 Unknown ranking
[Mnemonic Passive DNS] static.bookmsg.com (1) 47495 No data No data 88.198.136.226
[Mnemonic Passive DNS] creative.zybrdr.com (1) 47387 2022-01-31 09:33:25 UTC 2022-07-03 06:23:53 UTC 104.18.42.40
[Mnemonic Passive DNS] r3.o.lencr.org (25) 344 2020-12-02 08:52:13 UTC 2022-07-03 04:49:06 UTC 23.36.77.32
[Mnemonic Passive DNS] region1.google-analytics.com (1) 0 No data No data 216.239.32.36 Domain (google-analytics.com) ranked at: 8401
[Mnemonic Passive DNS] 12112336.pix-cdn.org (2) 18294 2020-03-19 16:50:50 UTC 2022-07-03 18:46:01 UTC 45.133.44.25
[Mnemonic Passive DNS] btds.zog.link (6) 38469 No data No data 109.206.182.60
[Mnemonic Passive DNS] a.adtng.com (2) 15165 2019-01-09 16:12:47 UTC 2021-11-08 18:48:48 UTC 66.254.114.171
[Mnemonic Passive DNS] s.optnx.com (6) 20469 2020-03-25 00:41:59 UTC 2022-07-03 10:52:40 UTC 95.211.229.248
[Mnemonic Passive DNS] s3t3d2y8.ackcdn.net (2) 0 2022-03-10 14:16:11 UTC 2022-07-03 17:51:24 UTC 185.76.9.15 Domain (ackcdn.net) ranked at: 272535
[Mnemonic Passive DNS] static-assets.highwebmedia.com (5) 16059 No data No data 104.16.93.42
[Mnemonic Passive DNS] tn.pornhits.com (5) 513401 2020-03-06 15:04:34 UTC 2020-11-12 13:58:13 UTC 146.19.173.172
[Mnemonic Passive DNS] ocsp.pki.goog (5) 175 2017-06-14 07:23:31 UTC 2022-07-03 04:43:22 UTC 142.250.74.3
[Mnemonic Passive DNS] ca95593716.d2c273238b.com (1) 0 2022-06-30 03:31:44 UTC 2022-07-03 14:17:07 UTC 45.133.44.24 Unknown ranking
[Mnemonic Passive DNS] vast.yomeno.xyz (1) 44241 No data No data 109.206.191.198
[Mnemonic Passive DNS] 0c727bd074.d2c273238b.com (1) 0 2022-07-03 05:56:19 UTC 2022-07-03 14:15:07 UTC 94.130.197.134 Unknown ranking
[Mnemonic Passive DNS] js.wpshsdk.com (2) 12130 2021-06-04 13:50:00 UTC 2022-07-03 18:46:01 UTC 45.133.44.24
[Mnemonic Passive DNS] cbjpeg.stream.highwebmedia.com (31) 23619 2017-04-28 19:22:25 UTC 2019-04-04 16:04:10 UTC 131.153.88.91
[Mnemonic Passive DNS] chatw-47.stream.highwebmedia.com (2) 215670 No data No data 104.19.242.83
[Mnemonic Passive DNS] ads.exoclick.com (1) 32908 2015-08-08 18:44:23 UTC 2022-07-03 18:45:59 UTC 205.185.216.10
[Mnemonic Passive DNS] in16.zog.link (5) 76485 No data No data 62.122.173.146
[Mnemonic Passive DNS] hw-cdn2.ang-content.com (1) 165651 2019-03-25 22:41:04 UTC 2022-07-03 17:51:23 UTC 205.185.208.20
[Mnemonic Passive DNS] i37-rtb.informcheck.net (1) 0 2022-04-23 22:36:13 UTC 2022-06-05 19:20:19 UTC 188.72.227.92 Unknown ranking
[Mnemonic Passive DNS] perik-lyk.com (1) 0 No data No data 107.22.3.209 Unknown ranking
[Mnemonic Passive DNS] js-agent.newrelic.com (1) 378 2017-01-30 05:00:15 UTC 2022-07-03 07:02:35 UTC 151.101.86.137
[Mnemonic Passive DNS] tn.onlyporn.tube (5) 0 No data No data 146.19.173.172 Unknown ranking
[Mnemonic Passive DNS] ocsp.sectigo.com (1) 487 2018-12-17 11:31:55 UTC 2022-07-03 13:42:24 UTC 104.18.32.68
[Mnemonic Passive DNS] 2093b71876.d2c273238b.com (3) 0 2022-07-03 01:23:10 UTC 2022-07-03 14:15:54 UTC 168.119.25.22 Unknown ranking
[Mnemonic Passive DNS] pxl.tsyndicate.com (4) 14763 No data No data 136.243.46.131
[Mnemonic Passive DNS] chaturbate.com (1) 6807 2012-10-03 13:53:21 UTC 2022-06-21 21:06:18 UTC 104.18.101.40
[Mnemonic Passive DNS] ocsp.sca1b.amazontrust.com (1) 1015 No data No data 54.230.245.39


Recent reports on same IP/ASN/Domain

Last 7 reports on IP: 146.19.173.172

Date UQ / IDS / BL URL IP
2022-07-23 16:57:43 +0000
0 - 0 - 1 www.pornhits.com/video/98867/lesbian-stuffing/?r=1 146.19.173.172
2022-07-18 23:37:17 +0000
0 - 0 - 1 www.pornhits.com/video/40633/skater-chicks-lo (...) 146.19.173.172
2022-07-16 05:31:44 +0000
0 - 0 - 1 www.pornhits.com/videos.php?p=1&s=l&spon=bang (...) 146.19.173.172
2022-07-08 23:17:58 +0000
0 - 0 - 1 www.pornhits.com/video/84921/mature-model/ 146.19.173.172
2022-07-04 09:43:39 +0000
0 - 0 - 2 www.pornhits.com/video/230689/alexis-oh-i-ve- (...) 146.19.173.172
2022-06-30 09:07:30 +0000
0 - 0 - 2 www.pornhits.com/video/28629/lily-fucked-in-t (...) 146.19.173.172
2022-06-10 05:30:15 +0000
0 - 0 - 2 https://www.pornhits.com/video/143857/mandy-m (...) 146.19.173.172

Last 10 reports on ASN:

Date UQ / IDS / BL URL IP
2022-08-09 11:30:10 +0000
0 - 0 - 2 forgione.com.ar/images/1UkF5eI7/?i=1 23.227.176.11
2022-08-09 11:29:59 +0000
0 - 0 - 5 forgione.com.ar/images/1UkF5eI7/ 23.227.176.11
2022-08-09 10:54:25 +0000
3 - 0 - 5 cleaning.homesecuritypc.com/packages/Zltare_C (...) 185.225.73.46
2022-08-09 10:37:42 +0000
0 - 0 - 1 5.42.199.72/stilak32.rar 5.42.199.72
2022-08-09 10:37:38 +0000
0 - 0 - 1 5.42.199.72/stilak64.rar 5.42.199.72
2022-08-09 10:37:31 +0000
0 - 0 - 1 5.42.199.72/cook32.rar 5.42.199.72
2022-08-09 10:37:29 +0000
0 - 0 - 1 5.42.199.72/cook64.rar 5.42.199.72
2022-08-09 10:37:21 +0000
0 - 0 - 1 5.42.199.72/vnc64.rar 5.42.199.72
2022-08-09 10:37:16 +0000
0 - 0 - 1 5.42.199.72/vnc32.rar 5.42.199.72
2022-08-09 10:35:16 +0000
0 - 0 - 4 x.rune-spectrals.com/loader/uploads/ucsvc_Ize (...) 208.67.104.226

No other reports on domain: pornhits.com



JavaScript

Executed Scripts (112)


Executed Evals (1)

#1 JavaScript::Eval (size: 101584, repeated: 1) - SHA256: 95d32ea6fcdb68f70d72cd6e84bf1d39b4ca4313ca0de391ee7523b5fa9cf7cc

                                        (() => {
    "use strict";
    var e = "2.2.0",
        t = Number("0"),
        n = "3600000";

    function r(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function i(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(i, o) {
                var s = e.apply(t, n);

                function a(e) {
                    r(s, i, o, a, c, "next", e)
                }

                function c(e) {
                    r(s, i, o, a, c, "throw", e)
                }
                a(void 0)
            }))
        }
    }
    var o = (e, t) => new Promise((n => setTimeout(n.bind(null, t), e)));

    function s() {
        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
        return Object.keys(e).map((t => {
            var n = "object" == typeof e[t] ? JSON.stringify(e[t]) : e[t];
            return "".concat(encodeURIComponent(t), "=").concat(encodeURIComponent(n))
        })).join("&")
    }

    function a() {
        t && console.log(...arguments)
    }

    function c(e) {
        return l.apply(this, arguments)
    }

    function l() {
        return (l = i((function*(e) {
            try {
                var t =
                    yield fetch(e);
                return yield t.json()
            } catch (e) {
                throw new Error("No message data")
            }
        }))).apply(this, arguments)
    }

    function u(e) {
        return Promise.allSettled && Promise.allSettled(e) || Promise.all(e.map((e => e.then((e => ({
            status: "fulfilled",
            value: e
        }))).catch((e => ({
            status: "rejected",
            reason: e
        }))))))
    }
    const d = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : global,
        h = Object.keys,
        f = Array.isArray;

    function p(e, t) {
        return "object" != typeof t || h(t).forEach((function(n) {
            e[n] = t[n]
        })), e
    }
    "undefined" == typeof Promise || d.Promise || (d.Promise = Promise);
    const m = Object.getPrototypeOf,
        y = {}.hasOwnProperty;

    function v(e, t) {
        return y.call(e, t)
    }

    function g(e, t) {
        "function" == typeof t && (t = t(m(e))), ("undefined" == typeof Reflect ? h : Reflect.ownKeys)(t).forEach((n => {
            w(e, n, t[n])
        }))
    }
    const b = Object.defineProperty;

    function w(e, t, n, r) {
        b(e, t, p(n && v(n, "get") && "function" == typeof n.get ? {get: n.get,
            set: n.set,
            configurable: !0
        } : {
            value: n,
            configurable: !0,
            writable: !0
        }, r))
    }

    function _(e) {
        return {
            from: function(t) {
                return e.prototype = Object.create(t.prototype), w(e.prototype, "constructor", e), {
                    extend: g.bind(null, e.prototype)
                }
            }
        }
    }
    const k = Object.getOwnPropertyDescriptor;

    function x(e, t) {
        let n;
        return k(e, t) || (n = m(e)) && x(n, t)
    }
    const C = [].slice;

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

    function O(e, t) {
        return t(e)
    }

    function S(e) {
        if (!e) throw new Error("Assertion Failed")
    }

    function E(e) {
        d.setImmediate ? setImmediate(e) : setTimeout(e, 0)
    }

    function A(e, t) {
        return e.reduce(((e, n, r) => {
            var i = t(n, r);
            return i && (e[i[0]] = i[1]), e
        }), {})
    }

    function D(e, t) {
        if (v(e, t)) return e[t];
        if (!t) return e;
        if ("string" != typeof t) {
            for (var n = [], r = 0, i = t.length; r < i; ++r) {
                var o = D(e, t[r]);
                n.push(o)
            }
            return n
        }
        var s = t.indexOf(".");
        if (-1 !== s) {
            var a = e[t.substr(0, s)];
            return void 0 === a ? void 0 : D(a, t.substr(s + 1))
        }
    }

    function j(e, t, n) {
        if (e && void 0 !== t && (!("isFrozen" in Object) || !Object.isFrozen(e)))
            if ("string" != typeof t && "length" in t) {
                S("string" != typeof n && "length" in n);
                for (var r = 0, i = t.length; r < i; ++r) j(e, t[r], n[r])
            } else {
                var o = t.indexOf(".");
                if (-1 !== o) {
                    var s = t.substr(0, o),
                        a = t.substr(o + 1);
                    if ("" === a) void 0 === n ? f(e) && !isNaN(parseInt(s)) ? e.splice(s, 1) : delete e[s] : e[s] = n;
                    else {
                        var c = e[s];
                        c || (c = e[s] = {}), j(c, a, n)
                    }
                } else void 0 === n ? f(e) && !isNaN(parseInt(t)) ? e.splice(t, 1) : delete e[t] : e[t] = n
            }
    }

    function K(e) {
        var t = {};
        for (var n in e) v(e, n) && (t[n] = e[n]);
        return t
    }
    const R = [].concat;

    function T(e) {
        return R.apply([], e)
    }
    const M = "Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(T([8, 16, 32, 64].map((e => ["Int", "Uint", "Float"].map((t => t + e + "Array")))))).filter((e => d[e])),
        I = M.map((e => d[e]));
    A(M, (e => [e, !0]));
    let B = null;

    function q(e) {
        B = "undefined" != typeof WeakMap && new WeakMap;
        const t = N(e);
        return B = null, t
    }

    function N(e) {
        if (!e || "object" != typeof e) return e;
        let t = B && B.get(e);
        if (t) return t;
        if (f(e)) {
            t = [], B && B.set(e, t);
            for (var n = 0, r = e.length; n < r; ++n) t.push(N(e[n]))
        } else if (I.indexOf(e.constructor) >= 0) t = e;
        else {
            const n = m(e);
            for (var i in t = n === Object.prototype ? {} : Object.create(n), B && B.set(e, t), e) v(e, i) && (t[i] = N(e[i]))
        }
        return t
    }
    const {
        toString: F
    } = {};

    function U(e) {
        return F.call(e).slice(8, -1)
    }
    const L = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator",
        W = "symbol" == typeof L ? function(e) {
            var t;
            return null != e && (t = e[L]) && t.apply(e)
        } : function() {
            return null
        },
        $ = {};

    function z(e) {
        var t, n, r, i;
        if (1 === arguments.length) {
            if (f(e)) return e.slice();
            if (this === $ && "string" == typeof e) return [e];
            if (i = W(e)) {
                for (n = []; !(r = i.next()).done;) n.push(r.value);
                return n
            }
            if (null == e) return [e];
            if ("number" == typeof(t = e.length)) {
                for (n = new Array(t); t--;) n[t] = e[t];
                return n
            }
            return [e]
        }
        for (t = arguments.length, n = new Array(t); t--;) n[t] = arguments[t];
        return n
    }
    const V = "undefined" != typeof Symbol ? e => "AsyncFunction" === e[Symbol.toStringTag] : () => !1;
    var Y = "undefined" != typeof location && /^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);

    function J(e, t) {
        Y = e, G = t
    }
    var G = () => !0;
    const Q = !new Error("").stack;

    function H() {
        if (Q) try {
            throw H.arguments, new Error
        } catch (e) {
            return e
        }
        return new Error
    }

    function X(e, t) {
        var n = e.stack;
        return n ? (t = t || 0, 0 === n.indexOf(e.name) && (t += (e.name + e.message).split("\n").length), n.split("\n").slice(t).filter(G).map((e => "\n" + e)).join("")) : ""
    }
    var Z = ["Unknown", "Constraint", "Data", "TransactionInactive", "ReadOnly", "Version", "NotFound", "InvalidState", "InvalidAccess", "Abort", "Timeout", "QuotaExceeded", "Syntax", "DataClone"],
        ee = ["Modify", "Bulk", "OpenFailed", "VersionChange", "Schema", "Upgrade", "InvalidTable", "MissingAPI", "NoSuchDatabase", "InvalidArgument", "SubTransaction", "Unsupported", "Internal", "DatabaseClosed", "PrematureCommit", "ForeignAwait"].concat(Z),
        te = {
            VersionChanged: "Database version changed by other database connection",
            DatabaseClosed: "Database has been closed",
            Abort: "Transaction aborted",
            TransactionInactive: "Transaction has already completed or failed",
            MissingAPI: "IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"
        };

    function ne(e, t) {
        this._e = H(), this.name = e, this.message = t
    }

    function re(e, t) {
        return e + ". Errors: " + Object.keys(t).map((e => t[e].toString())).filter(((e, t, n) => n.indexOf(e) === t)).join("\n")
    }

    function ie(e, t, n, r) {
        this._e = H(), this.failures = t, this.failedKeys = r, this.successCount = n, this.message = re(e, t)
    }

    function oe(e, t) {
        this._e = H(), this.name = "BulkError", this.failures = Object.keys(t).map((e => t[e])), this.failuresByPos = t, this.message = re(e, t)
    }
    _(ne).from(Error).extend({
        stack: {get: function() {
                return this._stack || (this._stack = this.name + ": " + this.message + X(this._e, 2))
            }
        },
        toString: function() {
            return this.name + ": " + this.message
        }
    }), _(ie).from(ne), _(oe).from(ne);
    var se = ee.reduce(((e, t) => (e[t] = t + "Error", e)), {});
    const ae = ne;
    var ce = ee.reduce(((e, t) => {
        var n = t + "Error";

        function r(e, r) {
            this._e = H(), this.name = n, e ? "string" == typeof e ? (this.message = `${e}${r?"\n "+r:""}`, this.inner = r || null) : "object" == typeof e && (this.message = `${e.name} ${e.message}`, this.inner = e) : (this.message = te[t] || n, this.inner = null)
        }
        return _(r).from(ae), e[t] = r, e
    }), {});
    ce.Syntax = SyntaxError, ce.Type = TypeError, ce.Range = RangeError;
    var le = Z.reduce(((e, t) => (e[t + "Error"] = ce[t], e)), {}),
        ue = ee.reduce(((e, t) => (-1 === ["Syntax", "Type", "Range"].indexOf(t) && (e[t + "Error"] = ce[t]), e)), {});

    function de() {}

    function he(e) {
        return e
    }

    function fe(e, t) {
        return null == e || e === he ? t : function(n) {
            return t(e(n))
        }
    }

    function pe(e, t) {
        return function() {
            e.apply(this, arguments), t.apply(this, arguments)
        }
    }

    function me(e, t) {
        return e === de ? t : function() {
            var n = e.apply(this, arguments);
            void 0 !== n && (arguments[0] = n);
            var r = this.onsuccess,
                i = this.onerror;
            this.onsuccess = null, this.onerror = null;
            var o = t.apply(this, arguments);
            return r && (this.onsuccess = this.onsuccess ? pe(r, this.onsuccess) : r), i && (this.onerror = this.onerror ? pe(i, this.onerror) : i), void 0 !== o ? o : n
        }
    }

    function ye(e, t) {
        return e === de ? t : function() {
            e.apply(this, arguments);
            var n = this.onsuccess,
                r = this.onerror;
            this.onsuccess = this.onerror = null, t.apply(this, arguments), n && (this.onsuccess = this.onsuccess ? pe(n, this.onsuccess) : n), r && (this.onerror = this.onerror ? pe(r, this.onerror) : r)
        }
    }

    function ve(e, t) {
        return e === de ? t : function(n) {
            var r = e.apply(this, arguments);
            p(n, r);
            var i = this.onsuccess,
                o = this.onerror;
            this.onsuccess = null, this.onerror = null;
            var s = t.apply(this, arguments);
            return i && (this.onsuccess = this.onsuccess ? pe(i, this.onsuccess) : i), o && (this.onerror = this.onerror ? pe(o, this.onerror) : o), void 0 === r ? void 0 === s ? void 0 : s : p(r, s)
        }
    }

    function ge(e, t) {
        return e === de ? t : function() {
            return !1 !== t.apply(this, arguments) && e.apply(this, arguments)
        }
    }

    function be(e, t) {
        return e === de ? t : function() {
            var n = e.apply(this, arguments);
            if (n && "function" == typeof n.then) {
                for (var r = this, i = arguments.length, o = new Array(i); i--;) o[i] = arguments[i];
                return n.then((function() {
                    return t.apply(r, o)
                }))
            }
            return t.apply(this, arguments)
        }
    }
    ue.ModifyError = ie, ue.DexieError = ne, ue.BulkError = oe;
    var we = {};
    const [_e, ke, xe] = "undefined" == typeof Promise ? [] : (() => {
        let e = Promise.resolve();
        if ("undefined" == typeof crypto || !crypto.subtle) return [e, m(e), e];
        const t = crypto.subtle.digest("SHA-512", new Uint8Array([0]));
        return [t, m(t), e]
    })(), Ce = ke && ke.then, Pe = _e && _e.constructor, Oe = !!xe;
    var Se = !1,
        Ee = xe ? () => {
            xe.then(He)
        } : d.setImmediate ? setImmediate.bind(null, He) : d.MutationObserver ? () => {
            var e = document.createElement("div");
            new MutationObserver((() => {
                He(), e = null
            })).observe(e, {
                attributes: !0
            }), e.setAttribute("i", "1")
        } : () => {
            setTimeout(He, 0)
        },
        Ae = function(e, t) {
            qe.push([e, t]), je && (Ee(), je = !1)
        },
        De = !0,
        je = !0,
        Ke = [],
        Re = [],
        Te = null,
        Me = he,
        Ie = {
            id: "global",
            global: !0,
            ref: 0,
            unhandleds: [],
            onunhandled: _t,
            pgp: !1,
            env: {},
            finalize: function() {
                this.unhandleds.forEach((e => {
                    try {
                        _t(e[0], e[1])
                    } catch (e) {}
                }))
            }
        },
        Be = Ie,
        qe = [],
        Ne = 0,
        Fe = [];

    function Ue(e) {
        if ("object" != typeof this) throw new TypeError("Promises must be constructed via new");
        this._listeners = [], this.onuncatched = de, this._lib = !1;
        var t = this._PSD = Be;
        if (Y && (this._stackHolder = H(), this._prev = null, this._numPrev = 0), "function" != typeof e) {
            if (e !== we) throw new TypeError("Not a function");
            return this._state = arguments[1], this._value = arguments[2], void(!1 === this._state && ze(this, this._value))
        }
        this._state = null, this._value = null, ++t.ref, $e(this, e)
    }
    const Le = {get: function() {
            var e = Be,
                t = at;

            function n(n, r) {
                var i = !e.global && (e !== Be || t !== at);
                const o = i && !dt();
                var s = new Ue(((t, s) => {
                    Ye(this, new We(bt(n, e, i, o), bt(r, e, i, o), t, s, e))
                }));
                return Y && Qe(s, this), s
            }
            return n.prototype = we, n
        },
        set: function(e) {
            w(this, "then", e && e.prototype === we ? Le : {get: function() {
                    return e
                },
                set: Le.set
            })
        }
    };

    function We(e, t, n, r, i) {
        this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.resolve = n, this.reject = r, this.psd = i
    }

    function $e(e, t) {
        try {
            t((t => {
                if (null === e._state) {
                    if (t === e) throw new TypeError("A promise cannot be resolved with itself.");
                    var n = e._lib && Xe();
                    t && "function" == typeof t.then ? $e(e, ((e, n) => {
                        t instanceof Ue ? t._then(e, n) : t.then(e, n)
                    })) : (e._state = !0, e._value = t, Ve(e)), n && Ze()
                }
            }), ze.bind(null, e))
        } catch (t) {
            ze(e, t)
        }
    }

    function ze(e, t) {
        if (Re.push(t), null === e._state) {
            var n = e._lib && Xe();
            t = Me(t), e._state = !1, e._value = t, Y && null !== t && "object" == typeof t && !t._promise && function(e, t, n) {
                    try {
                        e.apply(null, void 0)
                    } catch (e) {}
                }((() => {
                    var n = x(t, "stack");
                    t._promise = e, w(t, "stack", {get: () => Se ? n && (n.get ? n.get.apply(t) : n.value) : e.stack
                    })
                })),
                function(e) {
                    Ke.some((t => t._value === e._value)) || Ke.push(e)
                }(e), Ve(e), n && Ze()
        }
    }

    function Ve(e) {
        var t = e._listeners;
        e._listeners = [];
        for (var n = 0, r = t.length; n < r; ++n) Ye(e, t[n]);
        var i = e._PSD;
        --i.ref || i.finalize(), 0 === Ne && (++Ne, Ae((() => {
            0 == --Ne && et()
        }), []))
    }

    function Ye(e, t) {
        if (null !== e._state) {
            var n = e._state ? t.onFulfilled : t.onRejected;
            if (null === n) return (e._state ? t.resolve : t.reject)(e._value);
            ++t.psd.ref, ++Ne, Ae(Je, [n, e, t])
        } else e._listeners.push(t)
    }

    function Je(e, t, n) {
        try {
            Te = t;
            var r, i = t._value;
            t._state ? r = e(i) : (Re.length && (Re = []), r = e(i), -1 === Re.indexOf(i) && function(e) {
                for (var t = Ke.length; t;)
                    if (Ke[--t]._value === e._value) return void Ke.splice(t, 1)
            }(t)), n.resolve(r)
        } catch (e) {
            n.reject(e)
        } finally {
            Te = null, 0 == --Ne && et(), --n.psd.ref || n.psd.finalize()
        }
    }

    function Ge(e, t, n) {
        if (t.length === n) return t;
        var r = "";
        if (!1 === e._state) {
            var i, o, s = e._value;
            null != s ? (i = s.name || "Error", o = s.message || s, r = X(s, 0)) : (i = s, o = ""), t.push(i + (o ? ": " + o : "") + r)
        }
        return Y && ((r = X(e._stackHolder, 2)) && -1 === t.indexOf(r) && t.push(r), e._prev && Ge(e._prev, t, n)), t
    }

    function Qe(e, t) {
        var n = t ? t._numPrev + 1 : 0;
        n < 100 && (e._prev = t, e._numPrev = n)
    }

    function He() {
        Xe() && Ze()
    }

    function Xe() {
        var e = De;
        return De = !1, je = !1, e
    }

    function Ze() {
        var e, t, n;
        do {
            for (; qe.length > 0;)
                for (e = qe, qe = [], n = e.length, t = 0; t < n; ++t) {
                    var r = e[t];
                    r[0].apply(null, r[1])
                }
        } while (qe.length > 0);
        De = !0, je = !0
    }

    function et() {
        var e = Ke;
        Ke = [], e.forEach((e => {
            e._PSD.onunhandled.call(null, e._value, e)
        }));
        for (var t = Fe.slice(0), n = t.length; n;) t[--n]()
    }

    function tt(e) {
        return new Ue(we, !1, e)
    }

    function nt(e, t) {
        var n = Be;
        return function() {
            var r = Xe(),
                i = Be;
            try {
                return mt(n, !0), e.apply(this, arguments)
            } catch (e) {
                t && t(e)
            } finally {
                mt(i, !1), r && Ze()
            }
        }
    }
    g(Ue.prototype, {
        then: Le,
        _then: function(e, t) {
            Ye(this, new We(null, null, e, t, Be))
        },
        catch: function(e) {
            if (1 === arguments.length) return this.then(null, e);
            var t = arguments[0],
                n = arguments[1];
            return "function" == typeof t ? this.then(null, (e => e instanceof t ? n(e) : tt(e))) : this.then(null, (e => e && e.name === t ? n(e) : tt(e)))
        },
        finally: function(e) {
            return this.then((t => (e(), t)), (t => (e(), tt(t))))
        },
        stack: {get: function() {
                if (this._stack) return this._stack;
                try {
                    Se = !0;
                    var e = Ge(this, [], 20).join("\nFrom previous: ");
                    return null !== this._state && (this._stack = e), e
                } finally {
                    Se = !1
                }
            }
        },
        timeout: function(e, t) {
            return e < 1 / 0 ? new Ue(((n, r) => {
                var i = setTimeout((() => r(new ce.Timeout(t))), e);
                this.then(n, r).finally(clearTimeout.bind(null, i))
            })) : this
        }
    }), "undefined" != typeof Symbol && Symbol.toStringTag && w(Ue.prototype, Symbol.toStringTag, "Dexie.Promise"), Ie.env = yt(), g(Ue, {
        all: function() {
            var e = z.apply(null, arguments).map(ht);
            return new Ue((function(t, n) {
                0 === e.length && t([]);
                var r = e.length;
                e.forEach(((i, o) => Ue.resolve(i).then((n => {
                    e[o] = n, --r || t(e)
                }), n)))
            }))
        },
        resolve: e => {
            if (e instanceof Ue) return e;
            if (e && "function" == typeof e.then) return new Ue(((t, n) => {
                e.then(t, n)
            }));
            var t = new Ue(we, !0, e);
            return Qe(t, Te), t
        },
        reject: tt,
        race: function() {
            var e = z.apply(null, arguments).map(ht);
            return new Ue(((t, n) => {
                e.map((e => Ue.resolve(e).then(t, n)))
            }))
        },
        PSD: {get: () => Be,
            set: e => Be = e
        },
        totalEchoes: {get: () => at
        },
        newPSD: lt,
        usePSD: vt,
        scheduler: {get: () => Ae,
            set: e => {
                Ae = e
            }
        },
        rejectionMapper: {get: () => Me,
            set: e => {
                Me = e
            }
        },
        follow: (e, t) => new Ue(((n, r) => lt(((t, n) => {
            var r = Be;
            r.unhandleds = [], r.onunhandled = n, r.finalize = pe((function() {
                ! function(e) {
                    Fe.push((function t() {
                        e(), Fe.splice(Fe.indexOf(t), 1)
                    })), ++Ne, Ae((() => {
                        0 == --Ne && et()
                    }), [])
                }((() => {
                    0 === this.unhandleds.length ? t() : n(this.unhandleds[0])
                }))
            }), r.finalize), e()
        }), t, n, r)))
    }), Pe && (Pe.allSettled && w(Ue, "allSettled", (function() {
        const e = z.apply(null, arguments).map(ht);
        return new Ue((t => {
            0 === e.length && t([]);
            let n = e.length;
            const r = new Array(n);
            e.forEach(((e, i) => Ue.resolve(e).then((e => r[i] = {
                status: "fulfilled",
                value: e
            }), (e => r[i] = {
                status: "rejected",
                reason: e
            })).then((() => --n || t(r)))))
        }))
    })), Pe.any && "undefined" != typeof AggregateError && w(Ue, "any", (function() {
        const e = z.apply(null, arguments).map(ht);
        return new Ue(((t, n) => {
            0 === e.length && n(new AggregateError([]));
            let r = e.length;
            const i = new Array(r);
            e.forEach(((e, o) => Ue.resolve(e).then((e => t(e)), (e => {
                i[o] = e, --r || n(new AggregateError(i))
            }))))
        }))
    })));
    const rt = {
        awaits: 0,
        echoes: 0,
        id: 0
    };
    var it = 0,
        ot = [],
        st = 0,
        at = 0,
        ct = 0;

    function lt(e, t, n, r) {
        var i = Be,
            o = Object.create(i);
        o.parent = i, o.ref = 0, o.global = !1, o.id = ++ct;
        var s = Ie.env;
        o.env = Oe ? {
            Promise: Ue,
            PromiseProp: {
                value: Ue,
                configurable: !0,
                writable: !0
            },
            all: Ue.all,
            race: Ue.race,
            allSettled: Ue.allSettled,
            any: Ue.any,
            resolve: Ue.resolve,
            reject: Ue.reject,
            nthen: wt(s.nthen, o),
            gthen: wt(s.gthen, o)
        } : {}, t && p(o, t), ++i.ref, o.finalize = function() {
            --this.parent.ref || this.parent.finalize()
        };
        var a = vt(o, e, n, r);
        return 0 === o.ref && o.finalize(), a
    }

    function ut() {
        return rt.id || (rt.id = ++it), ++rt.awaits, rt.echoes += 100, rt.id
    }

    function dt() {
        return !!rt.awaits && (0 == --rt.awaits && (rt.id = 0), rt.echoes = 100 * rt.awaits, !0)
    }

    function ht(e) {
        return rt.echoes && e && e.constructor === Pe ? (ut(), e.then((e => (dt(), e)), (e => (dt(), kt(e))))) : e
    }

    function ft(e) {
        ++at, rt.echoes && 0 != --rt.echoes || (rt.echoes = rt.id = 0), ot.push(Be), mt(e, !0)
    }

    function pt() {
        var e = ot[ot.length - 1];
        ot.pop(), mt(e, !1)
    }

    function mt(e, t) {
        var n = Be;
        if ((t ? !rt.echoes || st++ && e === Be : !st || --st && e === Be) || gt(t ? ft.bind(null, e) : pt), e !== Be && (Be = e, n === Ie && (Ie.env = yt()), Oe)) {
            var r = Ie.env.Promise,
                i = e.env;
            ke.then = i.nthen, r.prototype.then = i.gthen, (n.global || e.global) && (Object.defineProperty(d, "Promise", i.PromiseProp), r.all = i.all, r.race = i.race, r.resolve = i.resolve, r.reject = i.reject, i.allSettled && (r.allSettled = i.allSettled), i.any && (r.any = i.any))
        }
    }

    function yt() {
        var e = d.Promise;
        return Oe ? {
            Promise: e,
            PromiseProp: Object.getOwnPropertyDescriptor(d, "Promise"),
            all: e.all,
            race: e.race,
            allSettled: e.allSettled,
            any: e.any,
            resolve: e.resolve,
            reject: e.reject,
            nthen: ke.then,
            gthen: e.prototype.then
        } : {}
    }

    function vt(e, t, n, r, i) {
        var o = Be;
        try {
            return mt(e, !0), t(n, r, i)
        } finally {
            mt(o, !1)
        }
    }

    function gt(e) {
        Ce.call(_e, e)
    }

    function bt(e, t, n, r) {
        return "function" != typeof e ? e : function() {
            var i = Be;
            n && ut(), mt(t, !0);
            try {
                return e.apply(this, arguments)
            } finally {
                mt(i, !1), r && gt(dt)
            }
        }
    }

    function wt(e, t) {
        return function(n, r) {
            return e.call(this, bt(n, t), bt(r, t))
        }
    }

    function _t(e, t) {
        var n;
        try {
            n = t.onuncatched(e)
        } catch (e) {}
        if (!1 !== n) try {
            var r, i = {
                promise: t,
                reason: e
            };
            if (d.document && document.createEvent ? ((r = document.createEvent("Event")).initEvent("unhandledrejection", !0, !0), p(r, i)) : d.CustomEvent && p(r = new CustomEvent("unhandledrejection", {
                    detail: i
                }), i), r && d.dispatchEvent && (dispatchEvent(r), !d.PromiseRejectionEvent && d.onunhandledrejection)) try {
                d.onunhandledrejection(r)
            } catch (e) {}
            Y && r && !r.defaultPrevented && console.warn(`Unhandled rejection: ${e.stack||e}`)
        } catch (e) {}
    } - 1 === ("" + Ce).indexOf("[native code]") && (ut = dt = de);
    var kt = Ue.reject;

    function xt(e, t, n, r) {
        if (e.idbdb && (e._state.openComplete || Be.letThrough || e._vip)) {
            var i = e._createTransaction(t, n, e._dbSchema);
            try {
                i.create(), e._state.PR1398_maxLoop = 3
            } catch (i) {
                return i.name === se.InvalidState && e.isOpen() && --e._state.PR1398_maxLoop > 0 ? (console.warn("Dexie: Need to reopen db"), e._close(), e.open().then((() => xt(e, t, n, r)))) : kt(i)
            }
            return i._promise(t, ((e, t) => lt((() => (Be.trans = i, r(e, t, i)))))).then((e => i._completion.then((() => e))))
        }
        if (e._state.openComplete) return kt(new ce.DatabaseClosed(e._state.dbOpenError));
        if (!e._state.isBeingOpened) {
            if (!e._options.autoOpen) return kt(new ce.DatabaseClosed);
            e.open().catch(de)
        }
        return e._state.dbReadyPromise.then((() => xt(e, t, n, r)))
    }
    const Ct = String.fromCharCode(65535),
        Pt = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",
        Ot = [],
        St = "undefined" != typeof navigator && /(MSIE|Trident|Edge)/.test(navigator.userAgent),
        Et = St,
        At = St,
        Dt = e => !/(dexie\.js|dexie\.min\.js)/.test(e);

    function jt(e, t) {
        return e ? t ? function() {
            return e.apply(this, arguments) && t.apply(this, arguments)
        } : e : t
    }
    const Kt = {
        type: 3,
        lower: -1 / 0,
        lowerOpen: !1,
        upper: [
            []
        ],
        upperOpen: !1
    };

    function Rt(e) {
        return "string" != typeof e || /\./.test(e) ? e => e : t => (void 0 === t[e] && e in t && delete(t = q(t))[e], t)
    }
    class Tt {
        _trans(e, t, n) {
            const r = this._tx || Be.trans,
                i = this.name;

            function o(e, n, r) {
                if (!r.schema[i]) throw new ce.NotFound("Table " + i + " not part of transaction");
                return t(r.idbtrans, r)
            }
            const s = Xe();
            try {
                return r && r.db === this.db ? r === Be.trans ? r._promise(e, o, n) : lt((() => r._promise(e, o, n)), {
                    trans: r,
                    transless: Be.transless || Be
                }) : xt(this.db, e, [this.name], o)
            } finally {
                s && Ze()
            }
        }
        get(e, t) {
            return e && e.constructor === Object ? this.where(e).first(t) : this._trans("readonly", (t => this.core.get({
                trans: t,
                key: e
            }).then((e => this.hook.reading.fire(e))))).then(t)
        }
        where(e) {
            if ("string" == typeof e) return new this.db.WhereClause(this, e);
            if (f(e)) return new this.db.WhereClause(this, `[${e.join("+")}]`);
            const t = h(e);
            if (1 === t.length) return this.where(t[0]).equals(e[t[0]]);
            const n = this.schema.indexes.concat(this.schema.primKey).filter((e => e.compound && t.every((t => e.keyPath.indexOf(t) >= 0)) && e.keyPath.every((e => t.indexOf(e) >= 0))))[0];
            if (n && this.db._maxKey !== Ct) return this.where(n.name).equals(n.keyPath.map((t => e[t])));
            !n && Y && console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${t.join("+")}]`);
            const {
                idxByName: r
            } = this.schema, i = this.db._deps.indexedDB;

            function o(e, t) {
                try {
                    return 0 === i.cmp(e, t)
                } catch (e) {
                    return !1
                }
            }
            const [s, a] = t.reduce((([t, n], i) => {
                const s = r[i],
                    a = e[i];
                return [t || s, t || !s ? jt(n, s && s.multi ? e => {
                    const t = D(e, i);
                    return f(t) && t.some((e => o(a, e)))
                } : e => o(a, D(e, i))) : n]
            }), [null, null]);
            return s ? this.where(s.name).equals(e[s.keyPath]).filter(a) : n ? this.filter(a) : this.where(t).equals("")
        }
        filter(e) {
            return this.toCollection().and(e)
        }
        count(e) {
            return this.toCollection().count(e)
        }
        offset(e) {
            return this.toCollection().offset(e)
        }
        limit(e) {
            return this.toCollection().limit(e)
        }
        each(e) {
            return this.toCollection().each(e)
        }
        toArray(e) {
            return this.toCollection().toArray(e)
        }
        toCollection() {
            return new this.db.Collection(new this.db.WhereClause(this))
        }
        orderBy(e) {
            return new this.db.Collection(new this.db.WhereClause(this, f(e) ? `[${e.join("+")}]` : e))
        }
        reverse() {
            return this.toCollection().reverse()
        }
        mapToClass(e) {
            this.schema.mappedClass = e;
            const t = t => {
                if (!t) return t;
                const n = Object.create(e.prototype);
                for (var r in t)
                    if (v(t, r)) try {
                        n[r] = t[r]
                    } catch (e) {}
                    return n
            };
            return this.schema.readHook && this.hook.reading.unsubscribe(this.schema.readHook), this.schema.readHook = t, this.hook("reading", t), e
        }
        defineClass() {
            return this.mapToClass((function(e) {
                p(this, e)
            }))
        }
        add(e, t) {
            const {
                auto: n,
                keyPath: r
            } = this.schema.primKey;
            let i = e;
            return r && n && (i = Rt(r)(e)), this._trans("readwrite", (e => this.core.mutate({
                trans: e,
                type: "add",
                keys: null != t ? [t] : null,
                values: [i]
            }))).then((e => e.numFailures ? Ue.reject(e.failures[0]) : e.lastResult)).then((t => {
                if (r) try {
                    j(e, r, t)
                } catch (e) {}
                return t
            }))
        }
        update(e, t) {
            if ("object" != typeof e || f(e)) return this.where(":id").equals(e).modify(t); {
                const n = D(e, this.schema.primKey.keyPath);
                if (void 0 === n) return kt(new ce.InvalidArgument("Given object does not contain its primary key"));
                try {
                    "function" != typeof t ? h(t).forEach((n => {
                        j(e, n, t[n])
                    })) : t(e, {
                        value: e,
                        primKey: n
                    })
                } catch (e) {}
                return this.where(":id").equals(n).modify(t)
            }
        }
        put(e, t) {
            const {
                auto: n,
                keyPath: r
            } = this.schema.primKey;
            let i = e;
            return r && n && (i = Rt(r)(e)), this._trans("readwrite", (e => this.core.mutate({
                trans: e,
                type: "put",
                values: [i],
                keys: null != t ? [t] : null
            }))).then((e => e.numFailures ? Ue.reject(e.failures[0]) : e.lastResult)).then((t => {
                if (r) try {
                    j(e, r, t)
                } catch (e) {}
                return t
            }))
        }
        delete(e) {
            return this._trans("readwrite", (t => this.core.mutate({
                trans: t,
                type: "delete",
                keys: [e]
            }))).then((e => e.numFailures ? Ue.reject(e.failures[0]) : void 0))
        }
        clear() {
            return this._trans("readwrite", (e => this.core.mutate({
                trans: e,
                type: "deleteRange",
                range: Kt
            }))).then((e => e.numFailures ? Ue.reject(e.failures[0]) : void 0))
        }
        bulkGet(e) {
            return this._trans("readonly", (t => this.core.getMany({
                keys: e,
                trans: t
            }).then((e => e.map((e => this.hook.reading.fire(e)))))))
        }
        bulkAdd(e, t, n) {
            const r = Array.isArray(t) ? t : void 0,
                i = (n = n || (r ? void 0 : t)) ? n.allKeys : void 0;
            return this._trans("readwrite", (t => {
                const {
                    auto: n,
                    keyPath: o
                } = this.schema.primKey;
                if (o && r) throw new ce.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");
                if (r && r.length !== e.length) throw new ce.InvalidArgument("Arguments objects and keys must have the same length");
                const s = e.length;
                let a = o && n ? e.map(Rt(o)) : e;
                return this.core.mutate({
                    trans: t,
                    type: "add",
                    keys: r,
                    values: a,
                    wantResults: i
                }).then((({
                    numFailures: e,
                    results: t,
                    lastResult: n,
                    failures: r
                }) => {
                    if (0 === e) return i ? t : n;
                    throw new oe(`${this.name}.bulkAdd(): ${e} of ${s} operations failed`, r)
                }))
            }))
        }
        bulkPut(e, t, n) {
            const r = Array.isArray(t) ? t : void 0,
                i = (n = n || (r ? void 0 : t)) ? n.allKeys : void 0;
            return this._trans("readwrite", (t => {
                const {
                    auto: n,
                    keyPath: o
                } = this.schema.primKey;
                if (o && r) throw new ce.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");
                if (r && r.length !== e.length) throw new ce.InvalidArgument("Arguments objects and keys must have the same length");
                const s = e.length;
                let a = o && n ? e.map(Rt(o)) : e;
                return this.core.mutate({
                    trans: t,
                    type: "put",
                    keys: r,
                    values: a,
                    wantResults: i
                }).then((({
                    numFailures: e,
                    results: t,
                    lastResult: n,
                    failures: r
                }) => {
                    if (0 === e) return i ? t : n;
                    throw new oe(`${this.name}.bulkPut(): ${e} of ${s} operations failed`, r)
                }))
            }))
        }
        bulkDelete(e) {
            const t = e.length;
            return this._trans("readwrite", (t => this.core.mutate({
                trans: t,
                type: "delete",
                keys: e
            }))).then((({
                numFailures: e,
                lastResult: n,
                failures: r
            }) => {
                if (0 === e) return n;
                throw new oe(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`, r)
            }))
        }
    }

    function Mt(e) {
        var t = {},
            n = function(n, r) {
                if (r) {
                    for (var i = arguments.length, o = new Array(i - 1); --i;) o[i - 1] = arguments[i];
                    return t[n].subscribe.apply(null, o), e
                }
                if ("string" == typeof n) return t[n]
            };
        n.addEventType = o;
        for (var r = 1, i = arguments.length; r < i; ++r) o(arguments[r]);
        return n;

        function o(e, r, i) {
            if ("object" == typeof e) return s(e);
            r || (r = ge), i || (i = de);
            var o = {
                subscribers: [],
                fire: i,
                subscribe: function(e) {
                    -1 === o.subscribers.indexOf(e) && (o.subscribers.push(e), o.fire = r(o.fire, e))
                },
                unsubscribe: function(e) {
                    o.subscribers = o.subscribers.filter((function(t) {
                        return t !== e
                    })), o.fire = o.subscribers.reduce(r, i)
                }
            };
            return t[e] = n[e] = o, o
        }

        function s(e) {
            h(e).forEach((function(t) {
                var n = e[t];
                if (f(n)) o(t, e[t][0], e[t][1]);
                else {
                    if ("asap" !== n) throw new ce.InvalidArgument("Invalid event config");
                    var r = o(t, he, (function() {
                        for (var e = arguments.length, t = new Array(e); e--;) t[e] = arguments[e];
                        r.subscribers.forEach((function(e) {
                            E((function() {
                                e.apply(null, t)
                            }))
                        }))
                    }))
                }
            }))
        }
    }

    function It(e, t) {
        return _(t).from({
            prototype: e
        }), t
    }

    function Bt(e, t) {
        return !(e.filter || e.algorithm || e.or) && (t ? e.justLimit : !e.replayFilter)
    }

    function qt(e, t) {
        e.filter = jt(e.filter, t)
    }

    function Nt(e, t, n) {
        var r = e.replayFilter;
        e.replayFilter = r ? () => jt(r(), t()) : t, e.justLimit = n && !r
    }

    function Ft(e, t) {
        if (e.isPrimKey) return t.primaryKey;
        const n = t.getIndexByKeyPath(e.index);
        if (!n) throw new ce.Schema("KeyPath " + e.index + " on object store " + t.name + " is not indexed");
        return n
    }

    function Ut(e, t, n) {
        const r = Ft(e, t.schema);
        return t.openCursor({
            trans: n,
            values: !e.keysOnly,
            reverse: "prev" === e.dir,
            unique: !!e.unique,
            query: {
                index: r,
                range: e.range
            }
        })
    }

    function Lt(e, t, n, r) {
        const i = e.replayFilter ? jt(e.filter, e.replayFilter()) : e.filter;
        if (e.or) {
            const o = {},
                s = (e, n, r) => {
                    if (!i || i(n, r, (e => n.stop(e)), (e => n.fail(e)))) {
                        var s = n.primaryKey,
                            a = "" + s;
                        "[object ArrayBuffer]" === a && (a = "" + new Uint8Array(s)), v(o, a) || (o[a] = !0, t(e, n, r))
                    }
                };
            return Promise.all([e.or._iterate(s, n), Wt(Ut(e, r, n), e.algorithm, s, !e.keysOnly && e.valueMapper)])
        }
        return Wt(Ut(e, r, n), jt(e.algorithm, i), t, !e.keysOnly && e.valueMapper)
    }

    function Wt(e, t, n, r) {
        var i = nt(r ? (e, t, i) => n(r(e), t, i) : n);
        return e.then((e => {
            if (e) return e.start((() => {
                var n = () => e.continue();
                t && !t(e, (e => n = e), (t => {
                    e.stop(t), n = de
                }), (t => {
                    e.fail(t), n = de
                })) || i(e.value, e, (e => n = e)), n()
            }))
        }))
    }

    function $t(e, t) {
        try {
            const n = zt(e),
                r = zt(t);
            if (n !== r) return "Array" === n ? 1 : "Array" === r ? -1 : "binary" === n ? 1 : "binary" === r ? -1 : "string" === n ? 1 : "string" === r ? -1 : "Date" === n ? 1 : "Date" !== r ? NaN : -1;
            switch (n) {
                case "number":
                case "Date":
                case "string":
                    return e > t ? 1 : e < t ? -1 : 0;
                case "binary":
                    return function(e, t) {
                        const n = e.length,
                            r = t.length,
                            i = n < r ? n : r;
                        for (let n = 0; n < i; ++n)
                            if (e[n] !== t[n]) return e[n] < t[n] ? -1 : 1;
                        return n === r ? 0 : n < r ? -1 : 1
                    }(Vt(e), Vt(t));
                case "Array":
                    return function(e, t) {
                        const n = e.length,
                            r = t.length,
                            i = n < r ? n : r;
                        for (let n = 0; n < i; ++n) {
                            const r = $t(e[n], t[n]);
                            if (0 !== r) return r
                        }
                        return n === r ? 0 : n < r ? -1 : 1
                    }(e, t)
            }
        } catch (e) {}
        return NaN
    }

    function zt(e) {
        const t = typeof e;
        if ("object" !== t) return t;
        if (ArrayBuffer.isView(e)) return "binary";
        const n = U(e);
        return "ArrayBuffer" === n ? "binary" : n
    }

    function Vt(e) {
        return e instanceof Uint8Array ? e : ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength) : new Uint8Array(e)
    }
    class Yt {
        _read(e, t) {
            var n = this._ctx;
            return n.error ? n.table._trans(null, kt.bind(null, n.error)) : n.table._trans("readonly", e).then(t)
        }
        _write(e) {
            var t = this._ctx;
            return t.error ? t.table._trans(null, kt.bind(null, t.error)) : t.table._trans("readwrite", e, "locked")
        }
        _addAlgorithm(e) {
            var t = this._ctx;
            t.algorithm = jt(t.algorithm, e)
        }
        _iterate(e, t) {
            return Lt(this._ctx, e, t, this._ctx.table.core)
        }
        clone(e) {
            var t = Object.create(this.constructor.prototype),
                n = Object.create(this._ctx);
            return e && p(n, e), t._ctx = n, t
        }
        raw() {
            return this._ctx.valueMapper = null, this
        }
        each(e) {
            var t = this._ctx;
            return this._read((n => Lt(t, e, n, t.table.core)))
        }
        count(e) {
            return this._read((e => {
                const t = this._ctx,
                    n = t.table.core;
                if (Bt(t, !0)) return n.count({
                    trans: e,
                    query: {
                        index: Ft(t, n.schema),
                        range: t.range
                    }
                }).then((e => Math.min(e, t.limit)));
                var r = 0;
                return Lt(t, (() => (++r, !1)), e, n).then((() => r))
            })).then(e)
        }
        sortBy(e, t) {
            const n = e.split(".").reverse(),
                r = n[0],
                i = n.length - 1;

            function o(e, t) {
                return t ? o(e[n[t]], t - 1) : e[r]
            }
            var s = "next" === this._ctx.dir ? 1 : -1;

            function a(e, t) {
                var n = o(e, i),
                    r = o(t, i);
                return n < r ? -s : n > r ? s : 0
            }
            return this.toArray((function(e) {
                return e.sort(a)
            })).then(t)
        }
        toArray(e) {
            return this._read((e => {
                var t = this._ctx;
                if ("next" === t.dir && Bt(t, !0) && t.limit > 0) {
                    const {
                        valueMapper: n
                    } = t, r = Ft(t, t.table.core.schema);
                    return t.table.core.query({
                        trans: e,
                        limit: t.limit,
                        values: !0,
                        query: {
                            index: r,
                            range: t.range
                        }
                    }).then((({
                        result: e
                    }) => n ? e.map(n) : e))
                } {
                    const n = [];
                    return Lt(t, (e => n.push(e)), e, t.table.core).then((() => n))
                }
            }), e)
        }
        offset(e) {
            var t = this._ctx;
            return e <= 0 || (t.offset += e, Bt(t) ? Nt(t, (() => {
                var t = e;
                return (e, n) => 0 === t || (1 === t ? (--t, !1) : (n((() => {
                    e.advance(t), t = 0
                })), !1))
            })) : Nt(t, (() => {
                var t = e;
                return () => --t < 0
            }))), this
        }
        limit(e) {
            return this._ctx.limit = Math.min(this._ctx.limit, e), Nt(this._ctx, (() => {
                var t = e;
                return function(e, n, r) {
                    return --t <= 0 && n(r), t >= 0
                }
            }), !0), this
        }
        until(e, t) {
            return qt(this._ctx, (function(n, r, i) {
                return !e(n.value) || (r(i), t)
            })), this
        }
        first(e) {
            return this.limit(1).toArray((function(e) {
                return e[0]
            })).then(e)
        }
        last(e) {
            return this.reverse().first(e)
        }
        filter(e) {
            var t, n;
            return qt(this._ctx, (function(t) {
                return e(t.value)
            })), t = this._ctx, n = e, t.isMatch = jt(t.isMatch, n), this
        }
        and(e) {
            return this.filter(e)
        }
        or(e) {
            return new this.db.WhereClause(this._ctx.table, e, this)
        }
        reverse() {
            return this._ctx.dir = "prev" === this._ctx.dir ? "next" : "prev", this._ondirectionchange && this._ondirectionchange(this._ctx.dir), this
        }
        desc() {
            return this.reverse()
        }
        eachKey(e) {
            var t = this._ctx;
            return t.keysOnly = !t.isMatch, this.each((function(t, n) {
                e(n.key, n)
            }))
        }
        eachUniqueKey(e) {
            return this._ctx.unique = "unique", this.eachKey(e)
        }
        eachPrimaryKey(e) {
            var t = this._ctx;
            return t.keysOnly = !t.isMatch, this.each((function(t, n) {
                e(n.primaryKey, n)
            }))
        }
        keys(e) {
            var t = this._ctx;
            t.keysOnly = !t.isMatch;
            var n = [];
            return this.each((function(e, t) {
                n.push(t.key)
            })).then((function() {
                return n
            })).then(e)
        }
        primaryKeys(e) {
            var t = this._ctx;
            if ("next" === t.dir && Bt(t, !0) && t.limit > 0) return this._read((e => {
                var n = Ft(t, t.table.core.schema);
                return t.table.core.query({
                    trans: e,
                    values: !1,
                    limit: t.limit,
                    query: {
                        index: n,
                        range: t.range
                    }
                })
            })).then((({
                result: e
            }) => e)).then(e);
            t.keysOnly = !t.isMatch;
            var n = [];
            return this.each((function(e, t) {
                n.push(t.primaryKey)
            })).then((function() {
                return n
            })).then(e)
        }
        uniqueKeys(e) {
            return this._ctx.unique = "unique", this.keys(e)
        }
        firstKey(e) {
            return this.limit(1).keys((function(e) {
                return e[0]
            })).then(e)
        }
        lastKey(e) {
            return this.reverse().firstKey(e)
        }
        distinct() {
            var e = this._ctx,
                t = e.index && e.table.schema.idxByName[e.index];
            if (!t || !t.multi) return this;
            var n = {};
            return qt(this._ctx, (function(e) {
                var t = e.primaryKey.toString(),
                    r = v(n, t);
                return n[t] = !0, !r
            })), this
        }
        modify(e) {
            var t = this._ctx;
            return this._write((n => {
                var r;
                if ("function" == typeof e) r = e;
                else {
                    var i = h(e),
                        o = i.length;
                    r = function(t) {
                        for (var n = !1, r = 0; r < o; ++r) {
                            var s = i[r],
                                a = e[s];
                            D(t, s) !== a && (j(t, s, a), n = !0)
                        }
                        return n
                    }
                }
                const s = t.table.core,
                    {
                        outbound: a,
                        extractKey: c
                    } = s.schema.primaryKey,
                    l = this.db._options.modifyChunkSize || 200,
                    u = [];
                let d = 0;
                const f = [],
                    p = (e, t) => {
                        const {
                            failures: n,
                            numFailures: r
                        } = t;
                        d += e - r;
                        for (let e of h(n)) u.push(n[e])
                    };
                return this.clone().primaryKeys().then((i => {
                    const o = u => {
                        const d = Math.min(l, i.length - u);
                        return s.getMany({
                            trans: n,
                            keys: i.slice(u, u + d),
                            cache: "immutable"
                        }).then((h => {
                            const f = [],
                                m = [],
                                y = a ? [] : null,
                                v = [];
                            for (let e = 0; e < d; ++e) {
                                const t = h[e],
                                    n = {
                                        value: q(t),
                                        primKey: i[u + e]
                                    };
                                !1 !== r.call(n, n.value, n) && (null == n.value ? v.push(i[u + e]) : a || 0 === $t(c(t), c(n.value)) ? (m.push(n.value), a && y.push(i[u + e])) : (v.push(i[u + e]), f.push(n.value)))
                            }
                            const g = Bt(t) && t.limit === 1 / 0 && ("function" != typeof e || e === Jt) && {
                                index: t.index,
                                range: t.range
                            };
                            return Promise.resolve(f.length > 0 && s.mutate({
                                trans: n,
                                type: "add",
                                values: f
                            }).then((e => {
                                for (let t in e.failures) v.splice(parseInt(t), 1);
                                p(f.length, e)
                            }))).then((() => (m.length > 0 || g && "object" == typeof e) && s.mutate({
                                trans: n,
                                type: "put",
                                keys: y,
                                values: m,
                                criteria: g,
                                changeSpec: "function" != typeof e && e
                            }).then((e => p(m.length, e))))).then((() => (v.length > 0 || g && e === Jt) && s.mutate({
                                trans: n,
                                type: "delete",
                                keys: v,
                                criteria: g
                            }).then((e => p(v.length, e))))).then((() => i.length > u + d && o(u + l)))
                        }))
                    };
                    return o(0).then((() => {
                        if (u.length > 0) throw new ie("Error modifying one or more objects", u, d, f);
                        return i.length
                    }))
                }))
            }))
        }
        delete() {
            var e = this._ctx,
                t = e.range;
            return Bt(e) && (e.isPrimKey && !At || 3 === t.type) ? this._write((n => {
                const {
                    primaryKey: r
                } = e.table.core.schema, i = t;
                return e.table.core.count({
                    trans: n,
                    query: {
                        index: r,
                        range: i
                    }
                }).then((t => e.table.core.mutate({
                    trans: n,
                    type: "deleteRange",
                    range: i
                }).then((({
                    failures: e,
                    lastResult: n,
                    results: r,
                    numFailures: i
                }) => {
                    if (i) throw new ie("Could not delete some values", Object.keys(e).map((t => e[t])), t - i);
                    return t - i
                }))))
            })) : this.modify(Jt)
        }
    }
    const Jt = (e, t) => t.value = null;

    function Gt(e, t) {
        return e < t ? -1 : e === t ? 0 : 1
    }

    function Qt(e, t) {
        return e > t ? -1 : e === t ? 0 : 1
    }

    function Ht(e, t, n) {
        var r = e instanceof rn ? new e.Collection(e) : e;
        return r._ctx.error = n ? new n(t) : new TypeError(t), r
    }

    function Xt(e) {
        return new e.Collection(e, (() => nn(""))).limit(0)
    }

    function Zt(e, t, n, r, i, o) {
        for (var s = Math.min(e.length, r.length), a = -1, c = 0; c < s; ++c) {
            var l = t[c];
            if (l !== r[c]) return i(e[c], n[c]) < 0 ? e.substr(0, c) + n[c] + n.substr(c + 1) : i(e[c], r[c]) < 0 ? e.substr(0, c) + r[c] + n.substr(c + 1) : a >= 0 ? e.substr(0, a) + t[a] + n.substr(a + 1) : null;
            i(e[c], l) < 0 && (a = c)
        }
        return s < r.length && "next" === o ? e + n.substr(e.length) : s < e.length && "prev" === o ? e.substr(0, n.length) : a < 0 ? null : e.substr(0, a) + r[a] + n.substr(a + 1)
    }

    function en(e, t, n, r) {
        var i, o, s, a, c, l, u, d = n.length;
        if (!n.every((e => "string" == typeof e))) return Ht(e, "String expected.");

        function h(e) {
            i = function(e) {
                return "next" === e ? e => e.toUpperCase() : e => e.toLowerCase()
            }(e), o = function(e) {
                return "next" === e ? e => e.toLowerCase() : e => e.toUpperCase()
            }(e), s = "next" === e ? Gt : Qt;
            var t = n.map((function(e) {
                return {
                    lower: o(e),
                    upper: i(e)
                }
            })).sort((function(e, t) {
                return s(e.lower, t.lower)
            }));
            a = t.map((function(e) {
                return e.upper
            })), c = t.map((function(e) {
                return e.lower
            })), l = e, u = "next" === e ? "" : r
        }
        h("next");
        var f = new e.Collection(e, (() => tn(a[0], c[d - 1] + r)));
        f._ondirectionchange = function(e) {
            h(e)
        };
        var p = 0;
        return f._addAlgorithm((function(e, n, r) {
            var i = e.key;
            if ("string" != typeof i) return !1;
            var h = o(i);
            if (t(h, c, p)) return !0;
            for (var f = null, m = p; m < d; ++m) {
                var y = Zt(i, h, a[m], c[m], s, l);
                null === y && null === f ? p = m + 1 : (null === f || s(f, y) > 0) && (f = y)
            }
            return n(null !== f ? function() {
                e.continue(f + u)
            } : r), !1
        })), f
    }

    function tn(e, t, n, r) {
        return {
            type: 2,
            lower: e,
            upper: t,
            lowerOpen: n,
            upperOpen: r
        }
    }

    function nn(e) {
        return {
            type: 1,
            lower: e,
            upper: e
        }
    }
    class rn {
        get Collection() {
            return this._ctx.table.db.Collection
        }
        between(e, t, n, r) {
            n = !1 !== n, r = !0 === r;
            try {
                return this._cmp(e, t) > 0 || 0 === this._cmp(e, t) && (n || r) && (!n || !r) ? Xt(this) : new this.Collection(this, (() => tn(e, t, !n, !r)))
            } catch (e) {
                return Ht(this, Pt)
            }
        }
        equals(e) {
            return null == e ? Ht(this, Pt) : new this.Collection(this, (() => nn(e)))
        }
        above(e) {
            return null == e ? Ht(this, Pt) : new this.Collection(this, (() => tn(e, void 0, !0)))
        }
        aboveOrEqual(e) {
            return null == e ? Ht(this, Pt) : new this.Collection(this, (() => tn(e, void 0, !1)))
        }
        below(e) {
            return null == e ? Ht(this, Pt) : new this.Collection(this, (() => tn(void 0, e, !1, !0)))
        }
        belowOrEqual(e) {
            return null == e ? Ht(this, Pt) : new this.Collection(this, (() => tn(void 0, e)))
        }
        startsWith(e) {
            return "string" != typeof e ? Ht(this, "String expected.") : this.between(e, e + Ct, !0, !0)
        }
        startsWithIgnoreCase(e) {
            return "" === e ? this.startsWith(e) : en(this, ((e, t) => 0 === e.indexOf(t[0])), [e], Ct)
        }
        equalsIgnoreCase(e) {
            return en(this, ((e, t) => e === t[0]), [e], "")
        }
        anyOfIgnoreCase() {
            var e = z.apply($, arguments);
            return 0 === e.length ? Xt(this) : en(this, ((e, t) => -1 !== t.indexOf(e)), e, "")
        }
        startsWithAnyOfIgnoreCase() {
            var e = z.apply($, arguments);
            return 0 === e.length ? Xt(this) : en(this, ((e, t) => t.some((t => 0 === e.indexOf(t)))), e, Ct)
        }
        anyOf() {
            const e = z.apply($, arguments);
            let t = this._cmp;
            try {
                e.sort(t)
            } catch (e) {
                return Ht(this, Pt)
            }
            if (0 === e.length) return Xt(this);
            const n = new this.Collection(this, (() => tn(e[0], e[e.length - 1])));
            n._ondirectionchange = n => {
                t = "next" === n ? this._ascending : this._descending, e.sort(t)
            };
            let r = 0;
            return n._addAlgorithm(((n, i, o) => {
                const s = n.key;
                for (; t(s, e[r]) > 0;)
                    if (++r, r === e.length) return i(o), !1;
                return 0 === t(s, e[r]) || (i((() => {
                    n.continue(e[r])
                })), !1)
            })), n
        }
        notEqual(e) {
            return this.inAnyRange([
                [-1 / 0, e],
                [e, this.db._maxKey]
            ], {
                includeLowers: !1,
                includeUppers: !1
            })
        }
        noneOf() {
            const e = z.apply($, arguments);
            if (0 === e.length) return new this.Collection(this);
            try {
                e.sort(this._ascending)
            } catch (e) {
                return Ht(this, Pt)
            }
            const t = e.reduce(((e, t) => e ? e.concat([
                [e[e.length - 1][1], t]
            ]) : [
                [-1 / 0, t]
            ]), null);
            return t.push([e[e.length - 1], this.db._maxKey]), this.inAnyRange(t, {
                includeLowers: !1,
                includeUppers: !1
            })
        }
        inAnyRange(e, t) {
            const n = this._cmp,
                r = this._ascending,
                i = this._descending,
                o = this._min,
                s = this._max;
            if (0 === e.length) return Xt(this);
            if (!e.every((e => void 0 !== e[0] && void 0 !== e[1] && r(e[0], e[1]) <= 0))) return Ht(this, "First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower", ce.InvalidArgument);
            const a = !t || !1 !== t.includeLowers,
                c = t && !0 === t.includeUppers;
            let l, u = r;

            function d(e, t) {
                return u(e[0], t[0])
            }
            try {
                l = e.reduce((function(e, t) {
                    let r = 0,
                        i = e.length;
                    for (; r < i; ++r) {
                        const i = e[r];
                        if (n(t[0], i[1]) < 0 && n(t[1], i[0]) > 0) {
                            i[0] = o(i[0], t[0]), i[1] = s(i[1], t[1]);
                            break
                        }
                    }
                    return r === i && e.push(t), e
                }), []), l.sort(d)
            } catch (e) {
                return Ht(this, Pt)
            }
            let h = 0;
            const f = c ? e => r(e, l[h][1]) > 0 : e => r(e, l[h][1]) >= 0,
                p = a ? e => i(e, l[h][0]) > 0 : e => i(e, l[h][0]) >= 0;
            let m = f;
            const y = new this.Collection(this, (() => tn(l[0][0], l[l.length - 1][1], !a, !c)));
            return y._ondirectionchange = e => {
                "next" === e ? (m = f, u = r) : (m = p, u = i), l.sort(d)
            }, y._addAlgorithm(((e, t, n) => {
                for (var i = e.key; m(i);)
                    if (++h, h === l.length) return t(n), !1;
                return !! function(e) {
                    return !f(e) && !p(e)
                }(i) || (0 === this._cmp(i, l[h][1]) || 0 === this._cmp(i, l[h][0]) || t((() => {
                    u === r ? e.continue(l[h][0]) : e.continue(l[h][1])
                })), !1)
            })), y
        }
        startsWithAnyOf() {
            const e = z.apply($, arguments);
            return e.every((e => "string" == typeof e)) ? 0 === e.length ? Xt(this) : this.inAnyRange(e.map((e => [e, e + Ct]))) : Ht(this, "startsWithAnyOf() only works with strings")
        }
    }

    function on(e) {
        return nt((function(t) {
            return sn(t), e(t.target.error), !1
        }))
    }

    function sn(e) {
        e.stopPropagation && e.stopPropagation(), e.preventDefault && e.preventDefault()
    }
    const an = Mt(null, "storagemutated");
    class cn {
        _lock() {
            return S(!Be.global), ++this._reculock, 1 !== this._reculock || Be.global || (Be.lockOwnerFor = this), this
        }
        _unlock() {
            if (S(!Be.global), 0 == --this._reculock)
                for (Be.global || (Be.lockOwnerFor = null); this._blockedFuncs.length > 0 && !this._locked();) {
                    var e = this._blockedFuncs.shift();
                    try {
                        vt(e[1], e[0])
                    } catch (e) {}
                }
            return this
        }
        _locked() {
            return this._reculock && Be.lockOwnerFor !== this
        }
        create(e) {
            if (!this.mode) return this;
            const t = this.db.idbdb,
                n = this.db._state.dbOpenError;
            if (S(!this.idbtrans), !e && !t) switch (n && n.name) {
                case "DatabaseClosedError":
                    throw new ce.DatabaseClosed(n);
                case "MissingAPIError":
                    throw new ce.MissingAPI(n.message, n);
                default:
                    throw new ce.OpenFailed(n)
            }
            if (!this.active) throw new ce.TransactionInactive;
            return S(null === this._completion._state), (e = this.idbtrans = e || (this.db.core ? this.db.core.transaction(this.storeNames, this.mode, {
                durability: this.chromeTransactionDurability
            }) : t.transaction(this.storeNames, this.mode, {
                durability: this.chromeTransactionDurability
            }))).onerror = nt((t => {
                sn(t), this._reject(e.error)
            })), e.onabort = nt((t => {
                sn(t), this.active && this._reject(new ce.Abort(e.error)), this.active = !1, this.on("abort").fire(t)
            })), e.oncomplete = nt((() => {
                this.active = !1, this._resolve(), "mutatedParts" in e && an.storagemutated.fire(e.mutatedParts)
            })), this
        }
        _promise(e, t, n) {
            if ("readwrite" === e && "readwrite" !== this.mode) return kt(new ce.ReadOnly("Transaction is readonly"));
            if (!this.active) return kt(new ce.TransactionInactive);
            if (this._locked()) return new Ue(((r, i) => {
                this._blockedFuncs.push([() => {
                    this._promise(e, t, n).then(r, i)
                }, Be])
            }));
            if (n) return lt((() => {
                var e = new Ue(((e, n) => {
                    this._lock();
                    const r = t(e, n, this);
                    r && r.then && r.then(e, n)
                }));
                return e.finally((() => this._unlock())), e._lib = !0, e
            }));
            var r = new Ue(((e, n) => {
                var r = t(e, n, this);
                r && r.then && r.then(e, n)
            }));
            return r._lib = !0, r
        }
        _root() {
            return this.parent ? this.parent._root() : this
        }
        waitFor(e) {
            var t = this._root();
            const n = Ue.resolve(e);
            if (t._waitingFor) t._waitingFor = t._waitingFor.then((() => n));
            else {
                t._waitingFor = n, t._waitingQueue = [];
                var r = t.idbtrans.objectStore(t.storeNames[0]);
                ! function e() {
                    for (++t._spinCount; t._waitingQueue.length;) t._waitingQueue.shift()();
                    t._waitingFor && (r.get(-1 / 0).onsuccess = e)
                }()
            }
            var i = t._waitingFor;
            return new Ue(((e, r) => {
                n.then((n => t._waitingQueue.push(nt(e.bind(null, n)))), (e => t._waitingQueue.push(nt(r.bind(null, e))))).finally((() => {
                    t._waitingFor === i && (t._waitingFor = null)
                }))
            }))
        }
        abort() {
            this.active && (this.active = !1, this.idbtrans && this.idbtrans.abort(), this._reject(new ce.Abort))
        }
        table(e) {
            const t = this._memoizedTables || (this._memoizedTables = {});
            if (v(t, e)) return t[e];
            const n = this.schema[e];
            if (!n) throw new ce.NotFound("Table " + e + " not part of transaction");
            const r = new this.db.Table(e, n, this);
            return r.core = this.db.core.table(e), t[e] = r, r
        }
    }

    function ln(e, t, n, r, i, o, s) {
        return {
            name: e,
            keyPath: t,
            unique: n,
            multi: r,
            auto: i,
            compound: o,
            src: (n && !s ? "&" : "") + (r ? "*" : "") + (i ? "++" : "") + un(t)
        }
    }

    function un(e) {
        return "string" == typeof e ? e : e ? "[" + [].join.call(e, "+") + "]" : ""
    }

    function dn(e, t, n) {
        return {
            name: e,
            primKey: t,
            indexes: n,
            mappedClass: null,
            idxByName: A(n, (e => [e.name, e]))
        }
    }
    let hn = e => {
        try {
            return e.only([
                []
            ]), hn = () => [
                []
            ], [
                []
            ]
        } catch (e) {
            return hn = () => Ct, Ct
        }
    };

    function fn(e) {
        return null == e ? () => {} : "string" == typeof e ? function(e) {
            return 1 === e.split(".").length ? t => t[e] : t => D(t, e)
        }(e) : t => D(t, e)
    }

    function pn(e) {
        return [].slice.call(e)
    }
    let mn = 0;

    function yn(e) {
        return null == e ? ":id" : "string" == typeof e ? e : `[${e.join("+")}]`
    }

    function vn(e, t, n) {
        function r(e) {
            if (3 === e.type) return null;
            if (4 === e.type) throw new Error("Cannot convert never type to IDBKeyRange");
            const {
                lower: n,
                upper: r,
                lowerOpen: i,
                upperOpen: o
            } = e;
            return void 0 === n ? void 0 === r ? null : t.upperBound(r, !!o) : void 0 === r ? t.lowerBound(n, !!i) : t.bound(n, r, !!i, !!o)
        }
        const {
            schema: i,
            hasGetAll: o
        } = function(e, t) {
            const n = pn(e.objectStoreNames);
            return {
                schema: {
                    name: e.name,
                    tables: n.map((e => t.objectStore(e))).map((e => {
                        const {
                            keyPath: t,
                            autoIncrement: n
                        } = e, r = f(t), i = null == t, o = {}, s = {
                            name: e.name,
                            primaryKey: {
                                name: null,
                                isPrimaryKey: !0,
                                outbound: i,
                                compound: r,
                                keyPath: t,
                                autoIncrement: n,
                                unique: !0,
                                extractKey: fn(t)
                            },
                            indexes: pn(e.indexNames).map((t => e.index(t))).map((e => {
                                const {
                                    name: t,
                                    unique: n,
                                    multiEntry: r,
                                    keyPath: i
                                } = e, s = {
                                    name: t,
                                    compound: f(i),
                                    keyPath: i,
                                    unique: n,
                                    multiEntry: r,
                                    extractKey: fn(i)
                                };
                                return o[yn(i)] = s, s
                            })),
                            getIndexByKeyPath: e => o[yn(e)]
                        };
                        return o[":id"] = s.primaryKey, null != t && (o[yn(t)] = s.primaryKey), s
                    }))
                },
                hasGetAll: n.length > 0 && "getAll" in t.objectStore(n[0]) && !("undefined" != typeof navigator && /Safari/.test(navigator.userAgent) && !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604)
            }
        }(e, n), s = i.tables.map((e => function(e) {
            const t = e.name;
            return {
                name: t,
                schema: e,
                mutate: function({
                    trans: e,
                    type: n,
                    keys: i,
                    values: o,
                    range: s
                }) {
                    return new Promise(((a, c) => {
                        a = nt(a);
                        const l = e.objectStore(t),
                            u = null == l.keyPath,
                            d = "put" === n || "add" === n;
                        if (!d && "delete" !== n && "deleteRange" !== n) throw new Error("Invalid operation type: " + n);
                        const {
                            length: h
                        } = i || o || {
                            length: 1
                        };
                        if (i && o && i.length !== o.length) throw new Error("Given keys array must have same length as given values array.");
                        if (0 === h) return a({
                            numFailures: 0,
                            failures: {},
                            results: [],
                            lastResult: void 0
                        });
                        let f;
                        const p = [],
                            m = [];
                        let y = 0;
                        const v = e => {
                            ++y, sn(e)
                        };
                        if ("deleteRange" === n) {
                            if (4 === s.type) return a({
                                numFailures: y,
                                failures: m,
                                results: [],
                                lastResult: void 0
                            });
                            3 === s.type ? p.push(f = l.clear()) : p.push(f = l.delete(r(s)))
                        } else {
                            const [e, t] = d ? u ? [o, i] : [o, null] : [i, null];
                            if (d)
                                for (let r = 0; r < h; ++r) p.push(f = t && void 0 !== t[r] ? l[n](e[r], t[r]) : l[n](e[r])), f.onerror = v;
                            else
                                for (let t = 0; t < h; ++t) p.push(f = l[n](e[t])), f.onerror = v
                        }
                        const g = e => {
                            const t = e.target.result;
                            p.forEach(((e, t) => null != e.error && (m[t] = e.error))), a({
                                numFailures: y,
                                failures: m,
                                results: "delete" === n ? i : p.map((e => e.result)),
                                lastResult: t
                            })
                        };
                        f.onerror = e => {
                            v(e), g(e)
                        }, f.onsuccess = g
                    }))
                },
                getMany: ({
                    trans: e,
                    keys: n
                }) => new Promise(((r, i) => {
                    r = nt(r);
                    const o = e.objectStore(t),
                        s = n.length,
                        a = new Array(s);
                    let c, l = 0,
                        u = 0;
                    const d = e => {
                            const t = e.target;
                            a[t._pos] = t.result, ++u === l && r(a)
                        },
                        h = on(i);
                    for (let e = 0; e < s; ++e) null != n[e] && (c = o.get(n[e]), c._pos = e, c.onsuccess = d, c.onerror = h, ++l);
                    0 === l && r(a)
                })),
                get: ({
                    trans: e,
                    key: n
                }) => new Promise(((r, i) => {
                    r = nt(r);
                    const o = e.objectStore(t).get(n);
                    o.onsuccess = e => r(e.target.result), o.onerror = on(i)
                })),
                query: function(e) {
                    return n => new Promise(((i, o) => {
                        i = nt(i);
                        const {
                            trans: s,
                            values: a,
                            limit: c,
                            query: l
                        } = n, u = c === 1 / 0 ? void 0 : c, {
                            index: d,
                            range: h
                        } = l, f = s.objectStore(t), p = d.isPrimaryKey ? f : f.index(d.name), m = r(h);
                        if (0 === c) return i({
                            result: []
                        });
                        if (e) {
                            const e = a ? p.getAll(m, u) : p.getAllKeys(m, u);
                            e.onsuccess = e => i({
                                result: e.target.result
                            }), e.onerror = on(o)
                        } else {
                            let e = 0;
                            const t = a || !("openKeyCursor" in p) ? p.openCursor(m) : p.openKeyCursor(m),
                                n = [];
                            t.onsuccess = r => {
                                const o = t.result;
                                return o ? (n.push(a ? o.value : o.primaryKey), ++e === c ? i({
                                    result: n
                                }) : void o.continue()) : i({
                                    result: n
                                })
                            }, t.onerror = on(o)
                        }
                    }))
                }(o),
                openCursor: function({
                    trans: e,
                    values: n,
                    query: i,
                    reverse: o,
                    unique: s
                }) {
                    return new Promise(((a, c) => {
                        a = nt(a);
                        const {
                            index: l,
                            range: u
                        } = i, d = e.objectStore(t), h = l.isPrimaryKey ? d : d.index(l.name), f = o ? s ? "prevunique" : "prev" : s ? "nextunique" : "next", p = n || !("openKeyCursor" in h) ? h.openCursor(r(u), f) : h.openKeyCursor(r(u), f);
                        p.onerror = on(c), p.onsuccess = nt((t => {
                            const n = p.result;
                            if (!n) return void a(null);
                            n.___id = ++mn, n.done = !1;
                            const r = n.continue.bind(n);
                            let i = n.continuePrimaryKey;
                            i && (i = i.bind(n));
                            const o = n.advance.bind(n),
                                s = () => {
                                    throw new Error("Cursor not stopped")
                                };
                            n.trans = e, n.stop = n.continue = n.continuePrimaryKey = n.advance = () => {
                                throw new Error("Cursor not started")
                            }, n.fail = nt(c), n.next = function() {
                                let e = 1;
                                return this.start((() => e-- ? this.continue() : this.stop())).then((() => this))
                            }, n.start = e => {
                                const t = new Promise(((e, t) => {
                                        e = nt(e), p.onerror = on(t), n.fail = t, n.stop = t => {
                                            n.stop = n.continue = n.continuePrimaryKey = n.advance = s, e(t)
                                        }
                                    })),
                                    a = () => {
                                        if (p.result) try {
                                            e()
                                        } catch (e) {
                                            n.fail(e)
                                        } else n.done = !0, n.start = () => {
                                            throw new Error("Cursor behind last entry")
                                        }, n.stop()
                                    };
                                return p.onsuccess = nt((e => {
                                    p.onsuccess = a, a()
                                })), n.continue = r, n.continuePrimaryKey = i, n.advance = o, a(), t
                            }, a(n)
                        }), c)
                    }))
                },
                count({
                    query: e,
                    trans: n
                }) {
                    const {
                        index: i,
                        range: o
                    } = e;
                    return new Promise(((e, s) => {
                        const a = n.objectStore(t),
                            c = i.isPrimaryKey ? a : a.index(i.name),
                            l = r(o),
                            u = l ? c.count(l) : c.count();
                        u.onsuccess = nt((t => e(t.target.result))), u.onerror = on(s)
                    }))
                }
            }
        }(e))), a = {};
        return s.forEach((e => a[e.name] = e)), {
            stack: "dbcore",
            transaction: e.transaction.bind(e),
            table(e) {
                if (!a[e]) throw new Error(`Table '${e}' not found`);
                return a[e]
            },
            MIN_KEY: -1 / 0,
            MAX_KEY: hn(t),
            schema: i
        }
    }

    function gn({
        _novip: e
    }, t) {
        const n = t.db,
            r = function(e, t, {
                IDBKeyRange: n,
                indexedDB: r
            }, i) {
                const o = function(e, t) {
                    return t.reduce(((e, {
                        create: t
                    }) => ({...e, ...t(e)
                    })), e)
                }(vn(t, n, i), e.dbcore);
                return {
                    dbcore: o
                }
            }(e._middlewares, n, e._deps, t);
        e.core = r.dbcore, e.tables.forEach((t => {
            const n = t.name;
            e.core.schema.tables.some((e => e.name === n)) && (t.core = e.core.table(n), e[n] instanceof e.Table && (e[n].core = t.core))
        }))
    }

    function bn({
        _novip: e
    }, t, n, r) {
        n.forEach((n => {
            const i = r[n];
            t.forEach((t => {
                const r = x(t, n);
                (!r || "value" in r && void 0 === r.value) && (t === e.Transaction.prototype || t instanceof e.Transaction ? w(t, n, {
                    get() {
                        return this.table(n)
                    }, set(e) {
                        b(this, n, {
                            value: e,
                            writable: !0,
                            configurable: !0,
                            enumerable: !0
                        })
                    }
                }) : t[n] = new e.Table(n, i))
            }))
        }))
    }

    function wn({
        _novip: e
    }, t) {
        t.forEach((t => {
            for (let n in t) t[n] instanceof e.Table && delete t[n]
        }))
    }

    function _n(e, t) {
        return e._cfg.version - t._cfg.version
    }

    function kn(e, t, n, r) {
        const i = e._dbSchema,
            o = e._createTransaction("readwrite", e._storeNames, i);
        o.create(n), o._completion.catch(r);
        const s = o._reject.bind(o),
            a = Be.transless || Be;
        lt((() => {
            Be.trans = o, Be.transless = a, 0 === t ? (h(i).forEach((e => {
                Cn(n, e, i[e].primKey, i[e].indexes)
            })), gn(e, n), Ue.follow((() => e.on.populate.fire(o))).catch(s)) : function({
                _novip: e
            }, t, n, r) {
                const i = [],
                    o = e._versions;
                let s = e._dbSchema = On(e, e.idbdb, r),
                    a = !1;
                return o.filter((e => e._cfg.version >= t)).forEach((o => {
                        i.push((() => {
                            const i = s,
                                c = o._cfg.dbschema;
                            Sn(e, i, r), Sn(e, c, r), s = e._dbSchema = c;
                            const l = xn(i, c);
                            l.add.forEach((e => {
                                Cn(r, e[0], e[1].primKey, e[1].indexes)
                            })), l.change.forEach((e => {
                                if (e.recreate) throw new ce.Upgrade("Not yet support for changing primary key"); {
                                    const t = r.objectStore(e.name);
                                    e.add.forEach((e => Pn(t, e))), e.change.forEach((e => {
                                        t.deleteIndex(e.name), Pn(t, e)
                                    })), e.del.forEach((e => t.deleteIndex(e)))
                                }
                            }));
                            const u = o._cfg.contentUpgrade;
                            if (u && o._cfg.version > t) {
                                gn(e, r), n._memoizedTables = {}, a = !0;
                                let t = K(c);
                                l.del.forEach((e => {
                                    t[e] = i[e]
                                })), wn(e, [e.Transaction.prototype]), bn(e, [e.Transaction.prototype], h(t), t), n.schema = t;
                                const o = V(u);
                                let s;
                                o && ut();
                                const d = Ue.follow((() => {
                                    if (s = u(n), s && o) {
                                        var e = dt.bind(null, null);
                                        s.then(e, e)
                                    }
                                }));
                                return s && "function" == typeof s.then ? Ue.resolve(s) : d.then((() => s))
                            }
                        })), i.push((t => {
                            a && Et || function(e, t) {
                                [].slice.call(t.db.objectStoreNames).forEach((n => null == e[n] && t.db.deleteObjectStore(n)))
                            }(o._cfg.dbschema, t), wn(e, [e.Transaction.prototype]), bn(e, [e.Transaction.prototype], e._storeNames, e._dbSchema), n.schema = e._dbSchema
                        }))
                    })),
                    function e() {
                        return i.length ? Ue.resolve(i.shift()(n.idbtrans)).then(e) : Ue.resolve()
                    }().then((() => {
                        var e, t;
                        t = r, h(e = s).forEach((n => {
                            t.db.objectStoreNames.contains(n) || Cn(t, n, e[n].primKey, e[n].indexes)
                        }))
                    }))
            }(e, t, o, n).catch(s)
        }))
    }

    function xn(e, t) {
        const n = {
            del: [],
            add: [],
            change: []
        };
        let r;
        for (r in e) t[r] || n.del.push(r);
        for (r in t) {
            const i = e[r],
                o = t[r];
            if (i) {
                const e = {
                    name: r,
                    def: o,
                    recreate: !1,
                    del: [],
                    add: [],
                    change: []
                };
                if ("" + (i.primKey.keyPath || "") != "" + (o.primKey.keyPath || "") || i.primKey.auto !== o.primKey.auto && !St) e.recreate = !0, n.change.push(e);
                else {
                    const t = i.idxByName,
                        r = o.idxByName;
                    let s;
                    for (s in t) r[s] || e.del.push(s);
                    for (s in r) {
                        const n = t[s],
                            i = r[s];
                        n ? n.src !== i.src && e.change.push(i) : e.add.push(i)
                    }(e.del.length > 0 || e.add.length > 0 || e.change.length > 0) && n.change.push(e)
                }
            } else n.add.push([r, o])
        }
        return n
    }

    function Cn(e, t, n, r) {
        const i = e.db.createObjectStore(t, n.keyPath ? {
            keyPath: n.keyPath,
            autoIncrement: n.auto
        } : {
            autoIncrement: n.auto
        });
        return r.forEach((e => Pn(i, e))), i
    }

    function Pn(e, t) {
        e.createIndex(t.name, t.keyPath, {
            unique: t.unique,
            multiEntry: t.multi
        })
    }

    function On(e, t, n) {
        const r = {};
        return P(t.objectStoreNames, 0).forEach((e => {
            const t = n.objectStore(e);
            let i = t.keyPath;
            const o = ln(un(i), i || "", !1, !1, !!t.autoIncrement, i && "string" != typeof i, !0),
                s = [];
            for (let e = 0; e < t.indexNames.length; ++e) {
                const n = t.index(t.indexNames[e]);
                i = n.keyPath;
                var a = ln(n.name, i, !!n.unique, !!n.multiEntry, !1, i && "string" != typeof i, !1);
                s.push(a)
            }
            r[e] = dn(e, o, s)
        })), r
    }

    function Sn({
        _novip: e
    }, t, n) {
        const r = n.db.objectStoreNames;
        for (let i = 0; i < r.length; ++i) {
            const o = r[i],
                s = n.objectStore(o);
            e._hasGetAll = "getAll" in s;
            for (let e = 0; e < s.indexNames.length; ++e) {
                const n = s.indexNames[e],
                    r = s.index(n).keyPath,
                    i = "string" == typeof r ? r : "[" + P(r).join("+") + "]";
                if (t[o]) {
                    const e = t[o].idxByName[i];
                    e && (e.name = n, delete t[o].idxByName[i], t[o].idxByName[n] = e)
                }
            }
        }
        "undefined" != typeof navigator && /Safari/.test(navigator.userAgent) && !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && d.WorkerGlobalScope && d instanceof d.WorkerGlobalScope && [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604 && (e._hasGetAll = !1)
    }
    class En {
        _parseStoresSpec(e, t) {
            h(e).forEach((n => {
                if (null !== e[n]) {
                    var r = e[n].split(",").map(((e, t) => {
                            const n = (e = e.trim()).replace(/([&*]|\+\+)/g, ""),
                                r = /^\[/.test(n) ? n.match(/^\[(.*)\]$/)[1].split("+") : n;
                            return ln(n, r || null, /\&/.test(e), /\*/.test(e), /\+\+/.test(e), f(r), 0 === t)
                        })),
                        i = r.shift();
                    if (i.multi) throw new ce.Schema("Primary key cannot be multi-valued");
                    r.forEach((e => {
                        if (e.auto) throw new ce.Schema("Only primary key can be marked as autoIncrement (++)");
                        if (!e.keyPath) throw new ce.Schema("Index must have a name and cannot be an empty string")
                    })), t[n] = dn(n, i, r)
                }
            }))
        }
        stores(e) {
            const t = this.db;
            this._cfg.storesSource = this._cfg.storesSource ? p(this._cfg.storesSource, e) : e;
            const n = t._versions,
                r = {};
            let i = {};
            return n.forEach((e => {
                p(r, e._cfg.storesSource), i = e._cfg.dbschema = {}, e._parseStoresSpec(r, i)
            })), t._dbSchema = i, wn(t, [t._allTables, t, t.Transaction.prototype]), bn(t, [t._allTables, t, t.Transaction.prototype, this._cfg.tables], h(i), i), t._storeNames = h(i), this
        }
        upgrade(e) {
            return this._cfg.contentUpgrade = be(this._cfg.contentUpgrade || de, e), this
        }
    }

    function An(e, t) {
        let n = e._dbNamesDB;
        return n || (n = e._dbNamesDB = new Qn("__dbnames", {
            addons: [],
            indexedDB: e,
            IDBKeyRange: t
        }), n.version(1).stores({
            dbnames: "name"
        })), n.table("dbnames")
    }

    function Dn(e) {
        return e && "function" == typeof e.databases
    }

    function jn(e) {
        return lt((function() {
            return Be.letThrough = !0, e()
        }))
    }

    function Kn() {
        var e;
        return !navigator.userAgentData && /Safari\//.test(navigator.userAgent) && !/Chrom(e|ium)\//.test(navigator.userAgent) && indexedDB.databases ? new Promise((function(t) {
            var n = function() {
                return indexedDB.databases().finally(t)
            };
            e = setInterval(n, 100), n()
        })).finally((function() {
            return clearInterval(e)
        })) : Promise.resolve()
    }

    function Rn(e) {
        var t = t => e.next(t),
            n = i(t),
            r = i((t => e.throw(t)));

        function i(e) {
            return t => {
                var i = e(t),
                    o = i.value;
                return i.done ? o : o && "function" == typeof o.then ? o.then(n, r) : f(o) ? Promise.all(o).then(n, r) : n(o)
            }
        }
        return i(t)()
    }

    function Tn(e, t, n) {
        var r = arguments.length;
        if (r < 2) throw new ce.InvalidArgument("Too few arguments");
        for (var i = new Array(r - 1); --r;) i[r - 1] = arguments[r];
        n = i.pop();
        var o = T(i);
        return [e, o, n]
    }

    function Mn(e, t, n, r, i) {
        return Ue.resolve().then((() => {
            const o = Be.transless || Be,
                s = e._createTransaction(t, n, e._dbSchema, r),
                a = {
                    trans: s,
                    transless: o
                };
            if (r) s.idbtrans = r.idbtrans;
            else try {
                s.create(), e._state.PR1398_maxLoop = 3
            } catch (r) {
                return r.name === se.InvalidState && e.isOpen() && --e._state.PR1398_maxLoop > 0 ? (console.warn("Dexie: Need to reopen db"), e._close(), e.open().then((() => Mn(e, t, n, null, i)))) : kt(r)
            }
            const c = V(i);
            let l;
            c && ut();
            const u = Ue.follow((() => {
                if (l = i.call(s, s), l)
                    if (c) {
                        var e = dt.bind(null, null);
                        l.then(e, e)
                    } else "function" == typeof l.next && "function" == typeof l.throw && (l = Rn(l))
            }), a);
            return (l && "function" == typeof l.then ? Ue.resolve(l).then((e => s.active ? e : kt(new ce.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn")))) : u.then((() => l))).then((e => (r && s._resolve(), s._completion.then((() => e))))).catch((e => (s._reject(e), kt(e))))
        }))
    }

    function In(e, t, n) {
        const r = f(e) ? e.slice() : [e];
        for (let e = 0; e < n; ++e) r.push(t);
        return r
    }
    const Bn = {
        stack: "dbcore",
        name: "VirtualIndexMiddleware",
        level: 1,
        create: function(e) {
            return {...e, table(t) {
                    const n = e.table(t),
                        {
                            schema: r
                        } = n,
                        i = {},
                        o = [];

                    function s(e, t, n) {
                        const r = yn(e),
                            a = i[r] = i[r] || [],
                            c = null == e ? 0 : "string" == typeof e ? 1 : e.length,
                            l = t > 0,
                            u = {...n, isVirtual: l, keyTail: t, keyLength: c, extractKey: fn(e), unique: !l && n.unique
                            };
                        return a.push(u), u.isPrimaryKey || o.push(u), c > 1 && s(2 === c ? e[0] : e.slice(0, c - 1), t + 1, n), a.sort(((e, t) => e.keyTail - t.keyTail)), u
                    }
                    const a = s(r.primaryKey.keyPath, 0, r.primaryKey);
                    i[":id"] = [a];
                    for (const e of r.indexes) s(e.keyPath, 0, e);

                    function c(t) {
                        const n = t.query.index;
                        return n.isVirtual ? {...t, query: {
                                index: n,
                                range: (r = t.query.range, i = n.keyTail, {
                                    type: 1 === r.type ? 2 : r.type,
                                    lower: In(r.lower, r.lowerOpen ? e.MAX_KEY : e.MIN_KEY, i),
                                    lowerOpen: !0,
                                    upper: In(r.upper, r.upperOpen ? e.MIN_KEY : e.MAX_KEY, i),
                                    upperOpen: !0
                                })
                            }
                        } : t;
                        var r, i
                    }
                    const l = {...n, schema: {...r, primaryKey: a, indexes: o, getIndexByKeyPath: function(e) {
                                const t = i[yn(e)];
                                return t && t[0]
                            }
                        }, count: e => n.count(c(e)), query: e => n.query(c(e)), openCursor(t) {
                            const {
                                keyTail: r,
                                isVirtual: i,
                                keyLength: o
                            } = t.query.index;
                            return i ? n.openCursor(c(t)).then((n => n && function(n) {
                                const i = Object.create(n, {
                                    continue: {
                                        value: function(i) {
                                            null != i ? n.continue(In(i, t.reverse ? e.MAX_KEY : e.MIN_KEY, r)) : t.unique ? n.continue(n.key.slice(0, o).concat(t.reverse ? e.MIN_KEY : e.MAX_KEY, r)) : n.continue()
                                        }
                                    },
                                    continuePrimaryKey: {
                                        value(t, i) {
                                            n.continuePrimaryKey(In(t, e.MAX_KEY, r), i)
                                        }
                                    },
                                    primaryKey: {get: () => n.primaryKey
                                    },
                                    key: {
                                        get() {
                                            const e = n.key;
                                            return 1 === o ? e[0] : e.slice(0, o)
                                        }
                                    },
                                    value: {get: () => n.value
                                    }
                                });
                                return i
                            }(n))) : n.openCursor(t)
                        }
                    };
                    return l
                }
            }
        }
    };

    function qn(e, t, n, r) {
        return n = n || {}, r = r || "", h(e).forEach((i => {
            if (v(t, i)) {
                var o = e[i],
                    s = t[i];
                if ("object" == typeof o && "object" == typeof s && o && s) {
                    const e = U(o);
                    e !== U(s) ? n[r + i] = t[i] : "Object" === e ? qn(o, s, n, r + i + ".") : o !== s && (n[r + i] = t[i])
                } else o !== s && (n[r + i] = t[i])
            } else n[r + i] = void 0
        })), h(t).forEach((i => {
            v(e, i) || (n[r + i] = t[i])
        })), n
    }
    const Nn = {
        stack: "dbcore",
        name: "HooksMiddleware",
        level: 2,
        create: e => ({...e, table(t) {
                const n = e.table(t),
                    {
                        primaryKey: r
                    } = n.schema,
                    i = {...n, mutate(e) {
                            const i = Be.trans,
                                {
                                    deleting: o,
                                    creating: s,
                                    updating: a
                                } = i.table(t).hook;
                            switch (e.type) {
                                case "add":
                                    if (s.fire === de) break;
                                    return i._promise("readwrite", (() => c(e)), !0);
                                case "put":
                                    if (s.fire === de && a.fire === de) break;
                                    return i._promise("readwrite", (() => c(e)), !0);
                                case "delete":
                                    if (o.fire === de) break;
                                    return i._promise("readwrite", (() => c(e)), !0);
                                case "deleteRange":
                                    if (o.fire === de) break;
                                    return i._promise("readwrite", (() => function(e) {
                                        return l(e.trans, e.range, 1e4)
                                    }(e)), !0)
                            }
                            return n.mutate(e);

                            function c(e) {
                                const t = Be.trans,
                                    i = e.keys || function(e, t) {
                                        return "delete" === t.type ? t.keys : t.keys || t.values.map(e.extractKey)
                                    }(r, e);
                                if (!i) throw new Error("Keys missing");
                                return "delete" !== (e = "add" === e.type || "put" === e.type ? {...e, keys: i
                                    } : {...e
                                    }).type && (e.values = [...e.values]), e.keys && (e.keys = [...e.keys]),
                                    function(e, t, n) {
                                        return "add" === t.type ? Promise.resolve([]) : e.getMany({
                                            trans: t.trans,
                                            keys: n,
                                            cache: "immutable"
                                        })
                                    }(n, e, i).then((c => {
                                        const l = i.map(((n, i) => {
                                            const l = c[i],
                                                u = {
                                                    onerror: null,
                                                    onsuccess: null
                                                };
                                            if ("delete" === e.type) o.fire.call(u, n, l, t);
                                            else if ("add" === e.type || void 0 === l) {
                                                const o = s.fire.call(u, n, e.values[i], t);
                                                null == n && null != o && (n = o, e.keys[i] = n, r.outbound || j(e.values[i], r.keyPath, n))
                                            } else {
                                                const r = qn(l, e.values[i]),
                                                    o = a.fire.call(u, r, n, l, t);
                                                if (o) {
                                                    const t = e.values[i];
                                                    Object.keys(o).forEach((e => {
                                                        v(t, e) ? t[e] = o[e] : j(t, e, o[e])
                                                    }))
                                                }
                                            }
                                            return u
                                        }));
                                        return n.mutate(e).then((({
                                            failures: t,
                                            results: n,
                                            numFailures: r,
                                            lastResult: o
                                        }) => {
                                            for (let r = 0; r < i.length; ++r) {
                                                const o = n ? n[r] : i[r],
                                                    s = l[r];
                                                null == o ? s.onerror && s.onerror(t[r]) : s.onsuccess && s.onsuccess("put" === e.type && c[r] ? e.values[r] : o)
                                            }
                                            return {
                                                failures: t,
                                                results: n,
                                                numFailures: r,
                                                lastResult: o
                                            }
                                        })).catch((e => (l.forEach((t => t.onerror && t.onerror(e))), Promise.reject(e))))
                                    }))
                            }

                            function l(e, t, i) {
                                return n.query({
                                    trans: e,
                                    values: !1,
                                    query: {
                                        index: r,
                                        range: t
                                    },
                                    limit: i
                                }).then((({
                                    result: n
                                }) => c({
                                    type: "delete",
                                    keys: n,
                                    trans: e
                                }).then((r => r.numFailures > 0 ? Promise.reject(r.failures[0]) : n.length < i ? {
                                    failures: [],
                                    numFailures: 0,
                                    lastResult: void 0
                                } : l(e, {...t, lower: n[n.length - 1], lowerOpen: !0
                                }, i)))))
                            }
                        }
                    };
                return i
            }
        })
    };

    function Fn(e, t, n) {
        try {
            if (!t) return null;
            if (t.keys.length < e.length) return null;
            const r = [];
            for (let i = 0, o = 0; i < t.keys.length && o < e.length; ++i) 0 === $t(t.keys[i], e[o]) && (r.push(n ? q(t.values[i]) : t.values[i]), ++o);
            return r.length === e.length ? r : null
        } catch (e) {
            return null
        }
    }
    const Un = {
        stack: "dbcore",
        level: -1,
        create: e => ({
            table: t => {
                const n = e.table(t);
                return {...n, getMany: e => {
                        if (!e.cache) return n.getMany(e);
                        const t = Fn(e.keys, e.trans._cache, "clone" === e.cache);
                        return t ? Ue.resolve(t) : n.getMany(e).then((t => (e.trans._cache = {
                            keys: e.keys,
                            values: "clone" === e.cache ? q(t) : t
                        }, t)))
                    }, mutate: e => ("add" !== e.type && (e.trans._cache = null), n.mutate(e))
                }
            }
        })
    };

    function Ln(e) {
        return !("from" in e)
    }
    const Wn = function(e, t) {
        if (!this) {
            const t = new Wn;
            return e && "d" in e && p(t, e), t
        }
        p(this, arguments.length ? {
            d: 1,
            from: e,
            to: arguments.length > 1 ? t : e
        } : {
            d: 0
        })
    };

    function $n(e, t, n) {
        const r = $t(t, n);
        if (isNaN(r)) return;
        if (r > 0) throw RangeError();
        if (Ln(e)) return p(e, {
            from: t,
            to: n,
            d: 1
        });
        const i = e.l,
            o = e.r;
        if ($t(n, e.from) < 0) return i ? $n(i, t, n) : e.l = {
            from: t,
            to: n,
            d: 1,
            l: null,
            r: null
        }, Yn(e);
        if ($t(t, e.to) > 0) return o ? $n(o, t, n) : e.r = {
            from: t,
            to: n,
            d: 1,
            l: null,
            r: null
        }, Yn(e);
        $t(t, e.from) < 0 && (e.from = t, e.l = null, e.d = o ? o.d + 1 : 1), $t(n, e.to) > 0 && (e.to = n, e.r = null, e.d = e.l ? e.l.d + 1 : 1);
        const s = !e.r;
        i && !e.l && zn(e, i), o && s && zn(e, o)
    }

    function zn(e, t) {
        Ln(t) || function e(t, {
            from: n,
            to: r,
            l: i,
            r: o
        }) {
            $n(t, n, r), i && e(t, i), o && e(t, o)
        }(e, t)
    }

    function Vn(e) {
        let t = Ln(e) ? null : {
            s: 0,
            n: e
        };
        return {
            next(e) {
                const n = arguments.length > 0;
                for (; t;) switch (t.s) {
                    case 0:
                        if (t.s = 1, n)
                            for (; t.n.l && $t(e, t.n.from) < 0;) t = {
                                up: t,
                                n: t.n.l,
                                s: 1
                            };
                        else
                            for (; t.n.l;) t = {
                                up: t,
                                n: t.n.l,
                                s: 1
                            };
                    case 1:
                        if (t.s = 2, !n || $t(e, t.n.to) <= 0) return {
                            value: t.n,
                            done: !1
                        };
                    case 2:
                        if (t.n.r) {
                            t.s = 3, t = {
                                up: t,
                                n: t.n.r,
                                s: 0
                            };
                            continue
                        }
                    case 3:
                        t = t.up
                }
                return {
                    done: !0
                }
            }
        }
    }

    function Yn(e) {
        var t, n;
        const r = ((null === (t = e.r) || void 0 === t ? void 0 : t.d) || 0) - ((null === (n = e.l) || void 0 === n ? void 0 : n.d) || 0),
            i = r > 1 ? "r" : r < -1 ? "l" : "";
        if (i) {
            const t = "r" === i ? "l" : "r",
                n = {...e
                },
                r = e[i];
            e.from = r.from, e.to = r.to, e[i] = r[i], n[i] = r[t], e[t] = n, n.d = Jn(n)
        }
        e.d = Jn(e)
    }

    function Jn({
        r: e,
        l: t
    }) {
        return (e ? t ? Math.max(e.d, t.d) : e.d : t ? t.d : 0) + 1
    }
    g(Wn.prototype, {
        add(e) {
            return zn(this, e), this
        }, addKey(e) {
            return $n(this, e, e), this
        }, addKeys(e) {
            return e.forEach((e => $n(this, e, e))), this
        }, [L]() {
            return Vn(this)
        }
    });
    const Gn = {
        stack: "dbcore",
        level: 0,
        create: e => {
            const t = e.schema.name,
                n = new Wn(e.MIN_KEY, e.MAX_KEY);
            return {...e, table: r => {
                    const i = e.table(r),
                        {
                            schema: o
                        } = i,
                        {
                            primaryKey: s
                        } = o,
                        {
                            extractKey: a,
                            outbound: c
                        } = s,
                        l = {...i, mutate: e => {
                                const s = e.trans,
                                    a = s.mutatedParts || (s.mutatedParts = {}),
                                    c = e => {
                                        const n = `idb://${t}/${r}/${e}`;
                                        return a[n] || (a[n] = new Wn)
                                    },
                                    l = c(""),
                                    u = c(":dels"),
                                    {
                                        type: d
                                    } = e;
                                let [h, p] = "deleteRange" === e.type ? [e.range] : "delete" === e.type ? [e.keys] : e.values.length < 50 ? [
                                    [], e.values
                                ] : [];
                                const m = e.trans._cache;
                                return i.mutate(e).then((e => {
                                    if (f(h)) {
                                        "delete" !== d && (h = e.results), l.addKeys(h);
                                        const t = Fn(h, m);
                                        t || "add" === d || u.addKeys(h), (t || p) && function(e, t, n, r) {
                                            t.indexes.forEach((function(t) {
                                                const i = e(t.name || "");

                                                function o(e) {
                                                    return null != e ? t.extractKey(e) : null
                                                }
                                                const s = e => t.multiEntry && f(e) ? e.forEach((e => i.addKey(e))) : i.addKey(e);
                                                (n || r).forEach(((e, t) => {
                                                    const i = n && o(n[t]),
                                                        a = r && o(r[t]);
                                                    0 !== $t(i, a) && (null != i && s(i), null != a && s(a))
                                                }))
                                            }))
                                        }(c, o, t, p)
                                    } else if (h) {
                                        const e = {
                                            from: h.lower,
                                            to: h.upper
                                        };
                                        u.add(e), l.add(e)
                                    } else l.add(n), u.add(n), o.indexes.forEach((e => c(e.name).add(n)));
                                    return e
                                }))
                            }
                        },
                        u = ({
                            query: {
                                index: t,
                                range: n
                            }
                        }) => {
                            var r, i;
                            return [t, new Wn(null !== (r = n.lower) && void 0 !== r ? r : e.MIN_KEY, null !== (i = n.upper) && void 0 !== i ? i : e.MAX_KEY)]
                        },
                        d = {get: e => [s, new Wn(e.key)],
                            getMany: e => [s, (new Wn).addKeys(e.keys)],
                            count: u,
                            query: u,
                            openCursor: u
                        };
                    return h(d).forEach((e => {
                        l[e] = function(o) {
                            const {
                                subscr: s
                            } = Be;
                            if (s) {
                                const l = e => {
                                        const n = `idb://${t}/${r}/${e}`;
                                        return s[n] || (s[n] = new Wn)
                                    },
                                    u = l(""),
                                    h = l(":dels"),
                                    [f, p] = d[e](o);
                                if (l(f.name || "").add(p), !f.isPrimaryKey) {
                                    if ("count" !== e) {
                                        const t = "query" === e && c && o.values && i.query({...o, values: !1
                                        });
                                        return i[e].apply(this, arguments).then((n => {
                                            if ("query" === e) {
                                                if (c && o.values) return t.then((({
                                                    result: e
                                                }) => (u.addKeys(e), n)));
                                                const e = o.values ? n.result.map(a) : n.result;
                                                o.values ? u.addKeys(e) : h.addKeys(e)
                                            } else if ("openCursor" === e) {
                                                const e = n,
                                                    t = o.values;
                                                return e && Object.create(e, {
                                                    key: {get: () => (h.addKey(e.primaryKey), e.key)
                                                    },
                                                    primaryKey: {
                                                        get() {
                                                            const t = e.primaryKey;
                                                            return h.addKey(t), t
                                                        }
                                                    },
                                                    value: {get: () => (t && u.addKey(e.primaryKey), e.value)
                                                    }
                                                })
                                            }
                                            return n
                                        }))
                                    }
                                    h.add(n)
                                }
                            }
                            return i[e].apply(this, arguments)
                        }
                    })), l
                }
            }
        }
    };
    class Qn {
        constructor(e, t) {
            this._middlewares = {}, this.verno = 0;
            const n = Qn.dependencies;
            this._options = t = {
                addons: Qn.addons,
                autoOpen: !0,
                indexedDB: n.indexedDB,
                IDBKeyRange: n.IDBKeyRange,
                ...t
            }, this._deps = {
                indexedDB: t.indexedDB,
                IDBKeyRange: t.IDBKeyRange
            };
            const {
                addons: r
            } = t;
            this._dbSchema = {}, this._versions = [], this._storeNames = [], this._allTables = {}, this.idbdb = null, this._novip = this;
            const i = {
                dbOpenError: null,
                isBeingOpened: !1,
                onReadyBeingFired: null,
                openComplete: !1,
                dbReadyResolve: de,
                dbReadyPromise: null,
                cancelOpen: de,
                openCanceller: null,
                autoSchema: !0,
                PR1398_maxLoop: 3
            };
            var o;
            i.dbReadyPromise = new Ue((e => {
                i.dbReadyResolve = e
            })), i.openCanceller = new Ue(((e, t) => {
                i.cancelOpen = t
            })), this._state = i, this.name = e, this.on = Mt(this, "populate", "blocked", "versionchange", "close", {
                ready: [be, de]
            }), this.on.ready.subscribe = O(this.on.ready.subscribe, (e => (t, n) => {
                Qn.vip((() => {
                    const r = this._state;
                    if (r.openComplete) r.dbOpenError || Ue.resolve().then(t), n && e(t);
                    else if (r.onReadyBeingFired) r.onReadyBeingFired.push(t), n && e(t);
                    else {
                        e(t);
                        const r = this;
                        n || e((function e() {
                            r.on.ready.unsubscribe(t), r.on.ready.unsubscribe(e)
                        }))
                    }
                }))
            })), this.Collection = (o = this, It(Yt.prototype, (function(e, t) {
                this.db = o;
                let n = Kt,
                    r = null;
                if (t) try {
                    n = t()
                } catch (e) {
                    r = e
                }
                const i = e._ctx,
                    s = i.table,
                    a = s.hook.reading.fire;
                this._ctx = {
                    table: s,
                    index: i.index,
                    isPrimKey: !i.index || s.schema.primKey.keyPath && i.index === s.schema.primKey.name,
                    range: n,
                    keysOnly: !1,
                    dir: "next",
                    unique: "",
                    algorithm: null,
                    filter: null,
                    replayFilter: null,
                    justLimit: !0,
                    isMatch: null,
                    offset: 0,
                    limit: 1 / 0,
                    error: r,
                    or: i.or,
                    valueMapper: a !== he ? a : null
                }
            }))), this.Table = function(e) {
                return It(Tt.prototype, (function(t, n, r) {
                    this.db = e, this._tx = r, this.name = t, this.schema = n, this.hook = e._allTables[t] ? e._allTables[t].hook : Mt(null, {
                        creating: [me, de],
                        reading: [fe, he],
                        updating: [ve, de],
                        deleting: [ye, de]
                    })
                }))
            }(this), this.Transaction = function(e) {
                return It(cn.prototype, (function(t, n, r, i, o) {
                    this.db = e, this.mode = t, this.storeNames = n, this.schema = r, this.chromeTransactionDurability = i, this.idbtrans = null, this.on = Mt(this, "complete", "error", "abort"), this.parent = o || null, this.active = !0, this._reculock = 0, this._blockedFuncs = [], this._resolve = null, this._reject = null, this._waitingFor = null, this._waitingQueue = null, this._spinCount = 0, this._completion = new Ue(((e, t) => {
                        this._resolve = e, this._reject = t
                    })), this._completion.then((() => {
                        this.active = !1, this.on.complete.fire()
                    }), (e => {
                        var t = this.active;
                        return this.active = !1, this.on.error.fire(e), this.parent ? this.parent._reject(e) : t && this.idbtrans && this.idbtrans.abort(), kt(e)
                    }))
                }))
            }(this), this.Version = function(e) {
                return It(En.prototype, (function(t) {
                    this.db = e, this._cfg = {
                        version: t,
                        storesSource: null,
                        dbschema: {},
                        tables: {},
                        contentUpgrade: null
                    }
                }))
            }(this), this.WhereClause = function(e) {
                return It(rn.prototype, (function(t, n, r) {
                    this.db = e, this._ctx = {
                        table: t,
                        index: ":id" === n ? null : n,
                        or: r
                    };
                    const i = e._deps.indexedDB;
                    if (!i) throw new ce.MissingAPI;
                    this._cmp = this._ascending = i.cmp.bind(i), this._descending = (e, t) => i.cmp(t, e), this._max = (e, t) => i.cmp(e, t) > 0 ? e : t, this._min = (e, t) => i.cmp(e, t) < 0 ? e : t, this._IDBKeyRange = e._deps.IDBKeyRange
                }))
            }(this), this.on("versionchange", (e => {
                e.newVersion > 0 ? console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`) : console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`), this.close()
            })), this.on("blocked", (e => {
                !e.newVersion || e.newVersion < e.oldVersion ? console.warn(`Dexie.delete('${this.name}') was blocked`) : console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${e.oldVersion/10}`)
            })), this._maxKey = hn(t.IDBKeyRange), this._createTransaction = (e, t, n, r) => new this.Transaction(e, t, n, this._options.chromeTransactionDurability, r), this._fireOnBlocked = e => {
                this.on("blocked").fire(e), Ot.filter((e => e.name === this.name && e !== this && !e._state.vcFired)).map((t => t.on("versionchange").fire(e)))
            }, this.use(Bn), this.use(Nn), this.use(Gn), this.use(Un), this.vip = Object.create(this, {
                _vip: {
                    value: !0
                }
            }), r.forEach((e => e(this)))
        }
        version(e) {
            if (isNaN(e) || e < .1) throw new ce.Type("Given version is not a positive number");
            if (e = Math.round(10 * e) / 10, this.idbdb || this._state.isBeingOpened) throw new ce.Schema("Cannot add version when database is open");
            this.verno = Math.max(this.verno, e);
            const t = this._versions;
            var n = t.filter((t => t._cfg.version === e))[0];
            return n || (n = new this.Version(e), t.push(n), t.sort(_n), n.stores({}), this._state.autoSchema = !1, n)
        }
        _whenReady(e) {
            return this.idbdb && (this._state.openComplete || Be.letThrough || this._vip) ? e() : new Ue(((e, t) => {
                if (this._state.openComplete) return t(new ce.DatabaseClosed(this._state.dbOpenError));
                if (!this._state.isBeingOpened) {
                    if (!this._options.autoOpen) return void t(new ce.DatabaseClosed);
                    this.open().catch(de)
                }
                this._state.dbReadyPromise.then(e, t)
            })).then(e)
        }
        use({
            stack: e,
            create: t,
            level: n,
            name: r
        }) {
            r && this.unuse({
                stack: e,
                name: r
            });
            const i = this._middlewares[e] || (this._middlewares[e] = []);
            return i.push({
                stack: e,
                create: t,
                level: null == n ? 10 : n,
                name: r
            }), i.sort(((e, t) => e.level - t.level)), this
        }
        unuse({
            stack: e,
            name: t,
            create: n
        }) {
            return e && this._middlewares[e] && (this._middlewares[e] = this._middlewares[e].filter((e => n ? e.create !== n : !!t && e.name !== t))), this
        }
        open() {
            return function(e) {
                const t = e._state,
                    {
                        indexedDB: n
                    } = e._deps;
                if (t.isBeingOpened || e.idbdb) return t.dbReadyPromise.then((() => t.dbOpenError ? kt(t.dbOpenError) : e));
                Y && (t.openCanceller._stackHolder = H()), t.isBeingOpened = !0, t.dbOpenError = null, t.openComplete = !1;
                const r = t.openCanceller;

                function i() {
                    if (t.openCanceller !== r) throw new ce.DatabaseClosed("db.open() was cancelled")
                }
                let o = t.dbReadyResolve,
                    s = null,
                    a = !1;
                return Ue.race([r, ("undefined" == typeof navigator ? Ue.resolve() : Kn()).then((() => new Ue(((r, o) => {
                    if (i(), !n) throw new ce.MissingAPI;
                    const c = e.name,
                        l = t.autoSchema ? n.open(c) : n.open(c, Math.round(10 * e.verno));
                    if (!l) throw new ce.MissingAPI;
                    l.onerror = on(o), l.onblocked = nt(e._fireOnBlocked), l.onupgradeneeded = nt((r => {
                        if (s = l.transaction, t.autoSchema && !e._options.allowEmptyDB) {
                            l.onerror = sn, s.abort(), l.result.close();
                            const e = n.deleteDatabase(c);
                            e.onsuccess = e.onerror = nt((() => {
                                o(new ce.NoSuchDatabase(`Database ${c} doesnt exist`))
                            }))
                        } else {
                            s.onerror = on(o);
                            var i = r.oldVersion > Math.pow(2, 62) ? 0 : r.oldVersion;
                            a = i < 1, e._novip.idbdb = l.result, kn(e, i / 10, s, o)
                        }
                    }), o), l.onsuccess = nt((() => {
                        s = null;
                        const n = e._novip.idbdb = l.result,
                            i = P(n.objectStoreNames);
                        if (i.length > 0) try {
                            const r = n.transaction(1 === (o = i).length ? o[0] : o, "readonly");
                            t.autoSchema ? function({
                                _novip: e
                            }, t, n) {
                                e.verno = t.version / 10;
                                const r = e._dbSchema = On(0, t, n);
                                e._storeNames = P(t.objectStoreNames, 0), bn(e, [e._allTables], h(r), r)
                            }(e, n, r) : (Sn(e, e._dbSchema, r), function(e, t) {
                                const n = xn(On(0, e.idbdb, t), e._dbSchema);
                                return !(n.add.length || n.change.some((e => e.add.length || e.change.length)))
                            }(e, r) || console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")), gn(e, r)
                        } catch (e) {}
                        var o;
                        Ot.push(e), n.onversionchange = nt((n => {
                            t.vcFired = !0, e.on("versionchange").fire(n)
                        })), n.onclose = nt((t => {
                            e.on("close").fire(t)
                        })), a && function({
                            indexedDB: e,
                            IDBKeyRange: t
                        }, n) {
                            !Dn(e) && "__dbnames" !== n && An(e, t).put({
                                name: n
                            }).catch(de)
                        }(e._deps, c), r()
                    }), o)
                }))))]).then((() => (i(), t.onReadyBeingFired = [], Ue.resolve(jn((() => e.on.ready.fire(e.vip)))).then((function n() {
                    if (t.onReadyBeingFired.length > 0) {
                        let r = t.onReadyBeingFired.reduce(be, de);
                        return t.onReadyBeingFired = [], Ue.resolve(jn((() => r(e.vip)))).then(n)
                    }
                }))))).finally((() => {
                    t.onReadyBeingFired = null, t.isBeingOpened = !1
                })).then((() => e)).catch((n => {
                    t.dbOpenError = n;
                    try {
                        s && s.abort()
                    } catch (e) {}
                    return r === t.openCanceller && e._close(), kt(n)
                })).finally((() => {
                    t.openComplete = !0, o()
                }))
            }(this)
        }
        _close() {
            const e = this._state,
                t = Ot.indexOf(this);
            if (t >= 0 && Ot.splice(t, 1), this.idbdb) {
                try {
                    this.idbdb.close()
                } catch (e) {}
                this._novip.idbdb = null
            }
            e.dbReadyPromise = new Ue((t => {
                e.dbReadyResolve = t
            })), e.openCanceller = new Ue(((t, n) => {
                e.cancelOpen = n
            }))
        }
        close() {
            this._close();
            const e = this._state;
            this._options.autoOpen = !1, e.dbOpenError = new ce.DatabaseClosed, e.isBeingOpened && e.cancelOpen(e.dbOpenError)
        }
        delete() {
            const e = arguments.length > 0,
                t = this._state;
            return new Ue(((n, r) => {
                const i = () => {
                    this.close();
                    var e = this._deps.indexedDB.deleteDatabase(this.name);
                    e.onsuccess = nt((() => {
                        ! function({
                            indexedDB: e,
                            IDBKeyRange: t
                        }, n) {
                            !Dn(e) && "__dbnames" !== n && An(e, t).delete(n).catch(de)
                        }(this._deps, this.name), n()
                    })), e.onerror = on(r), e.onblocked = this._fireOnBlocked
                };
                if (e) throw new ce.InvalidArgument("Arguments not allowed in db.delete()");
                t.isBeingOpened ? t.dbReadyPromise.then(i) : i()
            }))
        }
        backendDB() {
            return this.idbdb
        }
        isOpen() {
            return null !== this.idbdb
        }
        hasBeenClosed() {
            const e = this._state.dbOpenError;
            return e && "DatabaseClosed" === e.name
        }
        hasFailed() {
            return null !== this._state.dbOpenError
        }
        dynamicallyOpened() {
            return this._state.autoSchema
        }
        get tables() {
            return h(this._allTables).map((e => this._allTables[e]))
        }
        transaction() {
            const e = Tn.apply(this, arguments);
            return this._transaction.apply(this, e)
        }
        _transaction(e, t, n) {
            let r = Be.trans;
            r && r.db === this && -1 === e.indexOf("!") || (r = null);
            const i = -1 !== e.indexOf("?");
            let o, s;
            e = e.replace("!", "").replace("?", "");
            try {
                if (s = t.map((e => {
                        var t = e instanceof this.Table ? e.name : e;
                        if ("string" != typeof t) throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");
                        return t
                    })), "r" == e || "readonly" === e) o = "readonly";
                else {
                    if ("rw" != e && "readwrite" != e) throw new ce.InvalidArgument("Invalid transaction mode: " + e);
                    o = "readwrite"
                }
                if (r) {
                    if ("readonly" === r.mode && "readwrite" === o) {
                        if (!i) throw new ce.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");
                        r = null
                    }
                    r && s.forEach((e => {
                        if (r && -1 === r.storeNames.indexOf(e)) {
                            if (!i) throw new ce.SubTransaction("Table " + e + " not included in parent transaction.");
                            r = null
                        }
                    })), i && r && !r.active && (r = null)
                }
            } catch (e) {
                return r ? r._promise(null, ((t, n) => {
                    n(e)
                })) : kt(e)
            }
            const a = Mn.bind(null, this, o, s, r, n);
            return r ? r._promise(o, a, "lock") : Be.trans ? vt(Be.transless, (() => this._whenReady(a))) : this._whenReady(a)
        }
        table(e) {
            if (!v(this._allTables, e)) throw new ce.InvalidTable(`Table ${e} does not exist`);
            return this._allTables[e]
        }
    }
    const Hn = "undefined" != typeof Symbol && "observable" in Symbol ? Symbol.observable : "@@observable";
    class Xn {
        constructor(e) {
            this._subscribe = e
        }
        subscribe(e, t, n) {
            return this._subscribe(e && "function" != typeof e ? e : {
                next: e,
                error: t,
                complete: n
            })
        }[Hn]() {
            return this
        }
    }

    function Zn(e, t) {
        return h(t).forEach((n => {
            zn(e[n] || (e[n] = new Wn), t[n])
        })), e
    }
    let er;
    try {
        er = {
            indexedDB: d.indexedDB || d.mozIndexedDB || d.webkitIndexedDB || d.msIndexedDB,
            IDBKeyRange: d.IDBKeyRange || d.webkitIDBKeyRange
        }
    } catch (d) {
        er = {
            indexedDB: null,
            IDBKeyRange: null
        }
    }
    const tr = Qn;

    function nr(e) {
        let t = rr;
        try {
            rr = !0, an.storagemutated.fire(e)
        } finally {
            rr = t
        }
    }
    g(tr, {...ue, delete: e => new tr(e, {
            addons: []
        }).delete(), exists: e => new tr(e, {
            addons: []
        }).open().then((e => (e.close(), !0))).catch("NoSuchDatabaseError", (() => !1)), getDatabaseNames(e) {
            try {
                return function({
                    indexedDB: e,
                    IDBKeyRange: t
                }) {
                    return Dn(e) ? Promise.resolve(e.databases()).then((e => e.map((e => e.name)).filter((e => "__dbnames" !== e)))) : An(e, t).toCollection().primaryKeys()
                }(tr.dependencies).then(e)
            } catch (e) {
                return kt(new ce.MissingAPI)
            }
        }, defineClass: () => function(e) {
            p(this, e)
        }, ignoreTransaction: e => Be.trans ? vt(Be.transless, e) : e(), vip: jn, async: function(e) {
            return function() {
                try {
                    var t = Rn(e.apply(this, arguments));
                    return t && "function" == typeof t.then ? t : Ue.resolve(t)
                } catch (e) {
                    return kt(e)
                }
            }
        }, spawn: function(e, t, n) {
            try {
                var r = Rn(e.apply(n, t || []));
                return r && "function" == typeof r.then ? r : Ue.resolve(r)
            } catch (e) {
                return kt(e)
            }
        }, currentTransaction: {get: () => Be.trans || null
        }, waitFor: function(e, t) {
            const n = Ue.resolve("function" == typeof e ? tr.ignoreTransaction(e) : e).timeout(t || 6e4);
            return Be.trans ? Be.trans.waitFor(n) : n
        }, Promise: Ue, debug: {get: () => Y,
            set: e => {
                J(e, "dexie" === e ? () => !0 : Dt)
            }
        }, derive: _, extend: p, props: g, override: O, Events: Mt, on: an, liveQuery: function(e) {
            return new Xn((t => {
                const n = V(e);
                let r = !1,
                    i = {},
                    o = {};
                const s = {get closed() {
                        return r
                    },
                    unsubscribe: () => {
                        r = !0, an.storagemutated.unsubscribe(u)
                    }
                };
                t.start && t.start(s);
                let a = !1,
                    c = !1;

                function l() {
                    return h(o).some((e => i[e] && function(e, t) {
                        const n = Vn(t);
                        let r = n.next();
                        if (r.done) return !1;
                        let i = r.value;
                        const o = Vn(e);
                        let s = o.next(i.from),
                            a = s.value;
                        for (; !r.done && !s.done;) {
                            if ($t(a.from, i.to) <= 0 && $t(a.to, i.from) >= 0) return !0;
                            $t(i.from, a.from) < 0 ? i = (r = n.next(a.from)).value : a = (s = o.next(i.from)).value
                        }
                        return !1
                    }(i[e], o[e])))
                }
                const u = e => {
                        Zn(i, e), l() && d()
                    },
                    d = () => {
                        if (a || r) return;
                        i = {};
                        const h = {},
                            f = function(t) {
                                n && ut();
                                const r = () => lt(e, {
                                        subscr: t,
                                        trans: null
                                    }),
                                    i = Be.trans ? vt(Be.transless, r) : r();
                                return n && i.then(dt, dt), i
                            }(h);
                        c || (an("storagemutated", u), c = !0), a = !0, Promise.resolve(f).then((e => {
                            a = !1, r || (l() ? d() : (i = {}, o = h, t.next && t.next(e)))
                        }), (e => {
                            a = !1, t.error && t.error(e), s.unsubscribe()
                        }))
                    };
                return d(), s
            }))
        }, extendObservabilitySet: Zn, getByKeyPath: D, setByKeyPath: j, delByKeyPath: function(e, t) {
            "string" == typeof t ? j(e, t, void 0) : "length" in t && [].map.call(t, (function(t) {
                j(e, t, void 0)
            }))
        }, shallowClone: K, deepClone: q, getObjectDiff: qn, cmp: $t, asap: E, minKey: -1 / 0, addons: [], connections: Ot, errnames: se, dependencies: er, semVer: "3.2.1", version: "3.2.1".split(".").map((e => parseInt(e))).reduce(((e, t, n) => e + t / Math.pow(10, 2 * n)))
    }), tr.maxKey = hn(tr.dependencies.IDBKeyRange), "undefined" != typeof dispatchEvent && "undefined" != typeof addEventListener && (an("storagemutated", (e => {
        if (!rr) {
            let t;
            St ? (t = document.createEvent("CustomEvent"), t.initCustomEvent("x-storagemutated-1", !0, !0, e)) : t = new CustomEvent("x-storagemutated-1", {
                detail: e
            }), rr = !0, dispatchEvent(t), rr = !1
        }
    })), addEventListener("x-storagemutated-1", (({
        detail: e
    }) => {
        rr || nr(e)
    })));
    let rr = !1;
    if ("undefined" != typeof BroadcastChannel) {
        const e = new BroadcastChannel("x-storagemutated-1");
        an("storagemutated", (t => {
            rr || e.postMessage(t)
        })), e.onmessage = e => {
            e.data && nr(e.data)
        }
    } else if ("undefined" != typeof self && "undefined" != typeof navigator) {
        an("storagemutated", (e => {
            try {
                rr || ("undefined" != typeof localStorage && localStorage.setItem("x-storagemutated-1", JSON.stringify({
                    trig: Math.random(),
                    changedParts: e
                })), "object" == typeof self.clients && [...self.clients.matchAll({
                    includeUncontrolled: !0
                })].forEach((t => t.postMessage({
                    type: "x-storagemutated-1",
                    changedParts: e
                }))))
            } catch (e) {}
        })), addEventListener("storage", (e => {
            if ("x-storagemutated-1" === e.key) {
                const t = JSON.parse(e.newValue);
                t && nr(t.changedParts)
            }
        }));
        const e = self.document && navigator.serviceWorker;
        e && e.addEventListener("message", (function({
            data: e
        }) {
            e && "x-storagemutated-1" === e.type && nr(e.changedParts)
        }))
    }
    Ue.rejectionMapper = function(e, t) {
        if (!e || e instanceof ne || e instanceof TypeError || e instanceof SyntaxError || !e.name || !le[e.name]) return e;
        var n = new le[e.name](t || e.message, e);
        return "stack" in e && w(n, "stack", {get: function() {
                return this.inner.stack
            }
        }), n
    }, J(Y, Dt);
    var ir = new class extends Qn {
        constructor() {
            super("tcp_ccl");
            var e = this;
            e.version(1).stores({
                fclicks: "++id,url,rid,ttl,date",
                clicks: "++id,url,crtid,price,ttl,date"
            }), e.version(2).stores({
                impWCl: "++id,rid,cl"
            }), e.version(3).stores({
                fclicks: "++id,url,rid,cid,ttl,date",
                clicks: "++id,url,cid,crtid,capping,capping_period,price,ttl,date"
            }), e.version(4).stores({
                fclicks: "++id,url,rid,cid,capping_uid,capping_endat,ttl,date",
                clicks: "++id,url,cid,crtid,capping_uid,capping_endat,capping,capping_period,price,ttl,date"
            }), e.version(5).stores({
                fclicks: "++id,url,rid,cid,capping_uid,ttl,date",
                clicks: "++id,url,cid,crtid,capping_uid,price,ttl,date",
                plimit: "++id,uid,limit,count,event_trigger,end_at"
            }), e.version(6).stores({
                ownNotifications: "++id,url,title",
                clicks: "++id,url,cid,crtid,capping_uid,price,ttl,date",
                plimit: "++id,uid,limit,count,event_trigger,end_at"
            }), e.version(7).stores({
                auction: "request_options,last_notifications_request,notifications"
            }), e.version(8).stores({
                auction: "request_options,last_notifications_request,notifications",
                settings: "++id,settings"
            }), e.version(9).stores({
                stat: "++id,creative_id,impressions,clicks,create_time,update_time"
            }), e.version(10).stores({
                stat: "++id,creative_id,impressions,clicks,create_time,update_time,category,creative_country"
            }), e.version(11).stores({
                stat: "++id,creative_id,impressions,clicks,create_time,update_time,category,creative_country,tag"
            })
        }
    };

    function or(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function sr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    or(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    or(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class ar {
        saveParameters(e) {
            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
            return ir.transaction("rw", ir.auction, function() {
                var n = sr((function*(n) {
                    yield ir.auction.clear(),
                        yield ir.auction.put({
                            request_options: JSON.stringify(e),
                            notifications: JSON.stringify(t)
                        })
                }));
                return function(e) {
                    return n.apply(this, arguments)
                }
            }())
        }
        getParameters() {
            return sr((function*() {
                var e =
                    yield ir.auction.toArray();
                if (e.length) {
                    var t = e[0];
                    return {
                        auctionRequestOptions: JSON.parse(t.request_options),
                        notifications: JSON.parse(t.notifications)
                    }
                }
                return null
            }))()
        }
        saveSettings(e) {
            return ir.transaction("rw", ir.settings, function() {
                var t = sr((function*(t) {
                    yield ir.settings.clear(),
                        yield ir.settings.put({
                            next_notification: e.nextNotification,
                            mode: e.mode,
                            demand_mode_probability: e.demandModeProbability,
                            creatives_update_time: e.creativesUpdateTime,
                            postponed_update_time: e.postponedUpdateTime,
                            stat_send_time: e.statSendTime,
                            is_adblock: Boolean(e.is_adblock),
                            is_meta_mask_active: e.isMetaMaskActive,
                            user_keywords: e.userKeywords
                        })
                }));
                return function(e) {
                    return t.apply(this, arguments)
                }
            }())
        }
        getSettings() {
            return sr((function*() {
                var e =
                    yield ir.settings.toArray();
                if (e.length) {
                    var t = e[0];
                    return {
                        nextNotification: t.next_notification || 0,
                        mode: t.mode || null,
                        demandModeProbability: t.demand_mode_probability || 0,
                        creativesUpdateTime: t.creatives_update_time || null,
                        postponedUpdateTime: t.postponed_update_time || null,
                        statSendTime: t.stat_send_time || null,
                        is_adblock: t.is_adblock || !1,
                        isMetaMaskActive: t.is_meta_mask_active || !1,
                        userKeywords: t.user_keywords
                    }
                }
                return null
            }))()
        }
    }

    function cr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function lr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    cr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    cr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class ur {
        addImpression(e) {
            return ir.transaction("rw", ir.stat, lr((function*() {
                var t = Date.now(),
                    n =
                    yield ir.stat.get({
                        creative_id: e.creative_id,
                        tag: ""
                    });
                return n ? ir.stat.update(n.id, {
                    impressions: n.impressions + 1,
                    update_time: t
                }) : ir.stat.put({
                    creative_id: e.creative_id,
                    impressions: 1,
                    clicks: 0,
                    create_time: t,
                    update_time: t,
                    category: e.category,
                    creative_country: e.creative_country,
                    tag: ""
                })
            })))
        }
        addClick(e) {
            return ir.transaction("rw", ir.stat, lr((function*() {
                var t = Date.now(),
                    n =
                    yield ir.stat.get({
                        creative_id: e.creative_id,
                        tag: ""
                    });
                return n ? ir.stat.update(n.id, {
                    clicks: n.clicks + 1,
                    update_time: t
                }) : ir.stat.put({
                    creative_id: e.creative_id,
                    impressions: 0,
                    clicks: 1,
                    create_time: t,
                    update_time: t,
                    category: e.category,
                    creative_country: e.creative_country,
                    tag: ""
                })
            })))
        }
        getData(e) {
            return ir.transaction("rw", ir.stat, lr((function*() {
                return yield ir.stat.where({
                    tag: ""
                }).modify({
                    tag: e
                }), ir.stat.where({
                    tag: e
                }).toArray()
            })))
        }
        clearTag(e) {
            return ir.transaction("rw", ir.stat, (() => ir.stat.where({
                tag: e
            }).modify({
                tag: ""
            })))
        }
        clearData(e) {
            return ir.transaction("rw", ir.stat, (() => ir.stat.where({
                tag: e
            }).delete()))
        }
    }

    function dr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function hr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    dr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    dr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class fr {
        setRules(e) {
            return ir.transaction("rw", ir.plimit, hr((function*() {
                var t =
                    yield ir.plimit.where("uid").anyOf(e.map((e => e.uid))).filter((t => e.some((e => e.uid === t.uid && e.end_at === t.end_at)))).toArray();
                return void 0 === t ? ir.plimit.bulkPut(e.map((e => (e.count = 0, e)))) : ir.plimit.bulkPut(e.filter((e => !t.some((t => e.uid === t.uid && e.end_at === t.end_at)))))
            })))
        }
        updateLimits(e) {
            return ir.transaction("rw", ir.plimit, hr((function*() {
                var t =
                    yield ir.plimit.where("uid").equals(e).and((e => e.count !== e.limit)).toArray();
                if (t.length > 0) return ir.plimit.bulkPut(t.map((e => (e.count = e.count + 1, e))))
            })))
        }
        isLimited(e) {
            return ir.transaction("rw", ir.plimit, hr((function*() {
                var t = Date.now(),
                    n =
                    yield ir.plimit.where("uid").equals(e).toArray();
                return ir.plimit.bulkDelete(n.filter((e => t > e.end_at)).map((e => e.id))), 0 === n.filter((e => t < e.end_at && e.limit === e.count)).length
            })))
        }
    }

    function pr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function mr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    pr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    pr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class yr {
        addImpression(e) {
            return ir.transaction("rw", ir.impWCl, mr((function*() {
                if ((
                        yield ir.impWCl.count()) >= 1e3) {
                    var t =
                        yield ir.impWCl.limit(1).first();
                    ir.impWCl.delete(t.id)
                }
                return ir.impWCl.put({
                    rid: e,
                    cl: 0
                })
            })))
        }
        getImpression(e) {
            return ir.impWCl.get({
                rid: e
            })
        }
        getAllImpressions() {
            return ir.impWCl.toArray()
        }
        incrementImpressionClicks(e) {
            var t = this;
            return ir.transaction("rw", ir.impWCl, mr((function*() {
                var n =
                    yield ir.impWCl.get({
                        rid: e
                    });
                return n ? ir.impWCl.update(n.id, {
                    cl: n.cl + 1
                }) : t.addImpression(e)
            })))
        }
    }

    function vr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }
    var gr = new class {
        clearOld() {
            return ir.transaction("rw", [ir.fclicks, ir.clicks], (() => {
                var e = Date.now(),
                    t = e - 1728e5;
                return Promise.all([ir.fclicks.filter((e => void 0 === e.date)).delete(), ir.fclicks.where("ttl").belowOrEqual(e).delete(), ir.clicks.where("ttl").belowOrEqual(e).delete(), ir.fclicks.where("date").below(t).delete(), ir.clicks.where("date").below(t).delete()])
            }))
        }
        countAllClicks() {
            var e = this;
            return function(e) {
                return function() {
                    var t = this,
                        n = arguments;
                    return new Promise((function(r, i) {
                        var o = e.apply(t, n);

                        function s(e) {
                            vr(o, r, i, s, a, "next", e)
                        }

                        function a(e) {
                            vr(o, r, i, s, a, "throw", e)
                        }
                        s(void 0)
                    }))
                }
            }((function*() {
                return yield e.clearOld(), ir.clicks.count()
            }))()
        }
        getFiredClick() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
            return ir.fclicks.where({
                url: e
            }).first()
        }
        getFiredClicks() {
            return ir.fclicks.toArray()
        }
        addFiredClicks(e) {
            return ir.fclicks.bulkPut(e)
        }
        getFiredClickByCid(e) {
            return ir.fclicks.where("cid").equals(e).toArray()
        }
        getStoredClicks() {
            return ir.clicks.toArray()
        }
        getStoredMaxPriceClick() {
            return ir.clicks.orderBy("price").last()
        }
        addStoredClicks(e) {
            return ir.clicks.bulkPut(e)
        }
        removeStoredClick(e) {
            return ir.clicks.where("id").equals(e).delete()
        }
        removeStoredClicks(e) {
            return ir.clicks.bulkDelete(e)
        }
    };
    class br {
        constructor() {
            var e, t, n;
            gr.clearOld(), this.firedClicks = null, this.storedClicks = null, this.newFiredClicks = [], this.newStoredClicks = [], this.newRemovedStoredClicks = [], this.syncLocalDataWithIDB = (e = () => {
                this.addLocalFiredClicksToIDB(), this.addLocalStoredClicksToIDB(), this.removeLocalStoredClicksFromIDB()
            }, t = 2e3, function() {
                var r = this,
                    i = arguments;
                clearTimeout(n), n = setTimeout((() => e.apply(r, i)), t)
            })
        }
        loadClickStore() {
            return Promise.all([this.loadStoredClicks(), this.loadFiredClicks()])
        }
        loadFiredClicks() {
            return gr.getFiredClicks().then((e => {
                null === this.firedClicks && (this.firedClicks = e)
            }))
        }
        addLocalFiredClicksToIDB() {
            0 !== this.newFiredClicks.length && (gr.addFiredClicks(this.newFiredClicks), this.newFiredClicks = [])
        }
        isClickUrlFired(e) {
            return this.getFiredClicks().some((t => t.url === e))
        }
        getFiredClicks() {
            return this.syncLocalDataWithIDB(), this.firedClicks
        }
        getFiredClicksByCid(e) {
            return this.getFiredClicks().filter((t => t.cid === e))
        }
        getFiredClicksByUid(e) {
            return this.getFiredClicks().filter((t => t.capping_uid === e))
        }
        addFiredClick(e) {
            return this.getFiredClicks().push(e), this.newFiredClicks.push(e), e
        }
        loadStoredClicks() {
            return gr.getStoredClicks().then((e => {
                null === this.storedClicks && (this.storedClicks = e)
            }))
        }
        addLocalStoredClicksToIDB() {
            0 !== this.newStoredClicks.length && (gr.addStoredClicks(this.newStoredClicks.filter((e => !this.firedClicks.some((t => e.url === t.url))))), this.newStoredClicks = [])
        }
        removeLocalStoredClicksFromIDB() {
            0 !== this.newRemovedStoredClicks.length && (gr.removeStoredClicks(this.newRemovedStoredClicks), this.newRemovedStoredClicks = [])
        }
        getStoredMaxPriceClick() {
            var e = this.getStoredClicks().sort(((e, t) => t.price - e.price)).shift();
            return void 0 !== e && e.id && this.newRemovedStoredClicks.push(e.id), e
        }
        getStoredClicks() {
            return this.syncLocalDataWithIDB(), this.storedClicks
        }
        addStoredClick(e) {
            return this.getStoredClicks().push(e), this.newStoredClicks.push(e), e
        }
    }

    function wr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function _r(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    wr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    wr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }

    function kr(e, t) {
        var n = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
            var r = Object.getOwnPropertySymbols(e);
            t && (r = r.filter((function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            }))), n.push.apply(n, r)
        }
        return n
    }

    function xr(e) {
        for (var t = 1; t < arguments.length; t++) {
            var n = null != arguments[t] ? arguments[t] : {};
            t % 2 ? kr(Object(n), !0).forEach((function(t) {
                Cr(e, t, n[t])
            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : kr(Object(n)).forEach((function(t) {
                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
            }))
        }
        return e
    }

    function Cr(e, t, n) {
        return t in e ? Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = n, e
    }
    const Pr = class {
        constructor() {
            this.timezone_offset = (new Date).getTimezoneOffset() / -60, this.version = e, this.ClickLocalDB = new br, this.LimitRuleModel = new fr, this.ImpressionModel = new yr
        }
        static getVersion() {
            return e
        }
        notificationRecord(e) {
            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
                n = Date.now() - 1e3 * e.currentTime;

            function r(e, t) {
                return void 0 === e || "number" != typeof e || 0 === e ? null : e + t
            }
            var i = e.capping_ext ? e.capping_ext.map((e => (e.end_at = r(e.end_at, n), e))) : null;
            return i && this.LimitRuleModel.setRules(i), {
                data: xr(xr({}, t), {}, {
                    notificationUrl: e.notificationUrl,
                    delay: e.delay,
                    capping_uid: e.capping_uid || null,
                    cid: e.cid,
                    url: e.url,
                    price: e.correctedPrice || 0,
                    ttl: r(e.expirationTimestamp, n),
                    botProtection: e.botProtection || !1,
                    isCpm: -1 === e.url.indexOf("is_cpm=0"),
                    ignoreClickLogic: e.ignoreClickLogic || !1,
                    crtid: e.crtid,
                    rid: Math.random().toString(36).substring(5) + Math.random().toString(36).substring(5)
                }),
                title: e.title,
                body: e.body,
                image: e.image,
                icon: e.icon,
                actions: e.options.actions,
                requireInteraction: e.options.requireInteraction
            }
        }
        displayNotification(e) {
            return o(e.data.delay, self.registration.showNotification(e.title, e)).then((() => {
                e.data.notificationUrl && fetch(e.data.notificationUrl), this.ImpressionModel.addImpression(e.data.rid)
            })).catch((e => {
                console.log("TC SW Imp Error: ".concat(e.toString()))
            }))
        }
        openNotificationUrl(e) {
            var t = this;
            return _r((function*() {
                var n = Date.now();
                if (t.ClickLocalDB.addFiredClick({
                        rid: e.rid,
                        cid: e.cid,
                        url: e.url,
                        capping_uid: e.capping_uid,
                        ttl: e.ttl,
                        date: n
                    }), t.ImpressionModel.incrementImpressionClicks(e.rid), e.capping_uid && t.LimitRuleModel.updateLimits(e.capping_uid), e.botProtection) {
                    var r = t.ClickLocalDB.getStoredMaxPriceClick();
                    if (r) return self.clients.openWindow("http://vasgenerete.site/ps/botprotection.js?l1=".concat(encodeURIComponent("".concat(e.url, "&event_timestamp=").concat(n)), "&l2=").concat(encodeURIComponent(r.url)))
                }
                var i = void 0 !== e.count ? "&scheme_id=".concat(e.count) : "";
                return self.clients.openWindow("".concat(e.url).concat(i, "&event_timestamp=").concat(n))
            }))()
        }
        isClickPossible(e) {
            var t = this;
            return _r((function*() {
                return t.ClickLocalDB.isClickUrlFired(e.url) ? (a("ClickUrlFired"), !1) : e.ttl && e.ttl <= Date.now() ? (a("Click ttl expired"), !1) : !e.capping_uid || t.LimitRuleModel.isLimited(e.capping_uid)
            }))()
        }
        reAuction(e, t) {
            var n = this;
            return _r((function*() {
                var r =
                    yield c(e + "&send_id=1");
                if (Array.isArray(r) && r.length > 0) {
                    var i = r.map((r => n.notificationRecord(r, {
                        pushPayload: t,
                        auctionUrl: e
                    }))).sort(((e, t) => t.data.price - e.data.price));
                    return i.forEach((e => n.displayNotification(e))), i
                }
                return []
            }))()
        }
        processClick(e) {
            var t = this;
            return _r((function*() {
                var {
                    rid: n,
                    auctionUrl: r,
                    botProtection: i,
                    pushPayload: o,
                    ignoreClickLogic: s
                } = e.data;
                a("ignoreClickLogic", s), t.ClickLocalDB.getStoredClicks() || (
                    yield t.ClickLocalDB.loadClickStore());
                var c =
                    yield t.isClickPossible(e.data);
                a("originalClickPossible: ", c, e.data);
                var l = t.ClickLocalDB.getStoredClicks().length;
                if ((0 === l || 1 === l && !c || s) && e.close(), c) return t.openNotificationUrl(e.data);
                var u = t.ClickLocalDB.getStoredMaxPriceClick();
                if (u) return (
                    yield t.isClickPossible(u)) ? (a("storedClick used: ", u), t.openNotificationUrl(Object.assign(u, {
                    rid: n,
                    count: l,
                    botProtection: i
                }))) : t.processClick(e);
                if (0 === ((
                        yield t.ImpressionModel.getImpression(n)) || {
                        cl: 0
                    }).cl) {
                    var d =
                        yield t.reAuction(r, o);
                    for (var h of(a("reAuction done: ", d), d))
                        if (
                            yield t.isClickPossible(h.data)) return a("get click url from reaction: ", h), t.openNotificationUrl(Object.assign(h.data, {
                            rid: n,
                            botProtection: i
                        }))
                }
                return Promise.resolve()
            }))()
        }
        push(e, t, n) {
            var r = this;
            return _r((function*() {
                var i, o, {
                        isMetaMaskActive: s,
                        userKeywords: a
                    } = n,
                    l = t;
                try {
                    var u = e.data.json();
                    l = u.sid ? u : u.data
                } catch (e) {
                    l = t
                }
                if (l) try {
                    l.ver = r.version, l.ver_c = r.version;
                    var d =
                        yield r.ImpressionModel.getAllImpressions();
                    d.length >= 100 && (l.ctr = d.reduce(((e, t) => e += t.cl), 0) / d.length);
                    var h = 0 === r.timezone_offset ? 0 : r.timezone_offset,
                        f = (i = xr(xr({}, l), {}, {
                            timezone_offset: h,
                            mm: s,
                            user_keywords: a
                        }), o = new URL("/in/multy", "https://notification.tubecup.net"), Object.entries(i).forEach((e => {
                            var [t, n] = e;
                            "object" == typeof n ? o.searchParams.append(t, encodeURI(JSON.stringify(n))) : o.searchParams.append(t, n)
                        })), o.toString()),
                        p =
                        yield c(f);
                    return Promise.all(p.map((e => r.displayNotification(r.notificationRecord(e, {
                        auctionUrl: f,
                        pushPayload: l
                    })))))
                } catch (e) {
                    throw new Error("TC SW Error: ".concat(e))
                }
            }))()
        }
        notificationclick(e) {
            return e.notification.data ? o(0, this.processClick(e.notification)) : Promise.resolve()
        }
        notificationclose(e) {
            var t = this;
            return _r((function*() {
                if (!e.notification.data) return Promise.resolve();
                var {
                    url: n,
                    price: r,
                    ttl: i,
                    cid: o,
                    capping_uid: s,
                    ignoreClickLogic: a,
                    crtid: c,
                    isCpm: l
                } = e.notification.data, u = new URL(n);
                return u.searchParams.append("ml", 1), !a && (t.ClickLocalDB.getStoredClicks() || (
                    yield t.ClickLocalDB.loadClickStore()), t.ClickLocalDB.isClickUrlFired(n) || l || i && !(i > Date.now()) ? void 0 : (t.ClickLocalDB.addStoredClick({
                    url: u.toString(),
                    price: r,
                    ttl: i,
                    cid: o,
                    capping_uid: s,
                    crtid: c,
                    date: Date.now()
                }), Promise.resolve()))
            }))()
        }
    };
    var Or = {
            beforeAuctionFetch: {
                et: 60
            },
            beforeIconLoad: {
                et: 61
            },
            iconLoaded: {
                et: 62
            },
            windowOpened: {
                et: 63
            },
            windowNotOpened: {
                et: 64
            },
            iconNotLoaded: {
                et: 65
            }
        },
        Sr = ["hdzog"];

    function Er(e, t) {
        var n = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
            var r = Object.getOwnPropertySymbols(e);
            t && (r = r.filter((function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            }))), n.push.apply(n, r)
        }
        return n
    }

    function Ar(e) {
        for (var t = 1; t < arguments.length; t++) {
            var n = null != arguments[t] ? arguments[t] : {};
            t % 2 ? Er(Object(n), !0).forEach((function(t) {
                Dr(e, t, n[t])
            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Er(Object(n)).forEach((function(t) {
                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
            }))
        }
        return e
    }

    function Dr(e, t, n) {
        return t in e ? Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = n, e
    }

    function jr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function Kr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    jr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    jr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    var Rr = [{
            action: "more",
            title: "More"
        }, {
            action: "settings",
            title: "Settings"
        }],
        Tr = ["auction-request", "on-demand", "mixed"],
        Mr = {
            more: ["<9", "=�", "=�", "=�", "=�", "<�", "<�", "=�"],
            settings: ["='", "=�", "�"]
        },
        Ir = ["bookmark", "face", "starburst", "warranty"],
        Br = {
            nextNotification: 0,
            mode: null,
            demandModeProbability: .5,
            creativesUpdateTime: null,
            statSendTime: null,
            postponedUpdateTime: null,
            isMetaMaskActive: !1,
            userKeywords: ""
        };
    class qr {
        constructor() {
            this.Tracking = new class {
                constructor() {
                    var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "https://logger.wpu.sh/";
                    this.trackingURL = e, this.params = {}
                }
                track(e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                    return Sr.includes(this.params.site) && Or[e] ? fetch(this.trackingURL + "?" + this.getQueryString(e, t)).catch((() => Promise.resolve())) : Promise.resolve()
                }
                setParam(e, t) {
                    this.params[e] = t
                }
                getQueryString(e, t) {
                    return Object.keys(Or[e]).map((t => "".concat(encodeURIComponent(t), "=").concat(encodeURIComponent(Or[e][t])))).concat(Object.keys(t).map((e => "".concat(encodeURIComponent(e), "=").concat(encodeURIComponent(t[e]))))).join("&")
                }
            }, this.Auction = new ar, this.Stat = new ur, this.modes = {
                auctionRequest: new Pr
            }, this.version = e, this.auctionRequestOptions = null, this.notificationsMap = {}, this.settingsRestored = !1, Object.keys(Br).forEach((e => {
                this[e] = Br[e]
            }))
        }
        get notifications() {
            return this._notifications || []
        }
        set notifications(e) {
            this._notifications = e, this.notificationsMap = {}, this._notifications.forEach((e => {
                this.notificationsMap[e.creative_id] = e
            }))
        }
        static getVersion() {
            return e
        }
        restoreEnvironment() {
            var e = this;
            return Kr((function*() {
                if (!e.settingsRestored) {
                    e.settingsRestored = !0;
                    var t =
                        yield e.Auction.getParameters();
                    t && (e.auctionRequestOptions = t.auctionRequestOptions, e.notifications = t.notifications);
                    var n =
                        yield e.Auction.getSettings();
                    Object.keys(Br).forEach((t => {
                        e[t] = n && n[t] || Br[t]
                    }))
                }
            }))()
        }
        saveEnvironment() {
            var e = this;
            return Kr((function*() {
                return u([e.Auction.saveParameters(e.auctionRequestOptions, e.notifications), e.Auction.saveSettings(Object.keys(Br).reduce(((t, n) => (t[n] = e[n], t)), {}))])
            }))()
        }
        showNotification() {
            var e = this;
            return Kr((function*() {
                if (
                    yield e.restoreEnvironment(), null === self.registration.active || !e.notifications || !e.notifications.length) return Promise.resolve();
                var t;
                e.nextNotification >= e.notifications.length && (e.nextNotification = e.notifications.length - 1);
                var n = e.notifications[e.nextNotification++];
                (e.nextNotification === e.notifications.length || e.nextNotification > 13) && (e.nextNotification = 0);
                var r = Rr.map((e => ({
                    action: e.action,
                    title: "".concat(Mr[e.action][Math.round(Math.random() * (Mr[e.action].length - 1))], " ").concat(e.title)
                })));
                return t = self.registration.showNotification(n.title, {
                    body: n.body,
                    requireInteraction: !0,
                    image: n.imgurl,
                    icon: n.icon || n.imgurl,
                    badge: "https://static.bookmsg.com/creatives/icons/icon-" + Ir[Math.round(Math.random() * (Ir.length - 1))] + ".webp",
                    actions: r,
                    tag: Math.random(),
                    data: Ar(Ar({}, n), {}, {
                        mode: "on-demand"
                    })
                }), u([e.Stat.addImpression(n).then((() => {
                    e.sendStat()
                })), e.saveEnvironment(), t])
            }))()
        }
        getMode() {
            Tr.includes(this.mode) || (this.mode = null);
            var e = this.mode;
            return "mixed" === e ? e = Math.random() < this.demandModeProbability ? "on-demand" : "auction-request" : this.mode || (e = "auction-request"), e
        }
        setDemandModeProbability(e) {
            this.demandModeProbability = parseFloat(e), isNaN(this.demandModeProbability) || !isFinite(this.demandModeProbability) || this.demandModeProbability < 0 ? this.demandModeProbability = 0 : this.demandModeProbability > 1 && (this.demandModeProbability = 1)
        }
        message(e) {
            var t, n, r, i;
            this.isMetaMaskActive = null === (t = e.data) || void 0 === t || null === (n = t.adManagerEnv) || void 0 === n ? void 0 : n.isMetaMaskActive, this.userKeywords = null === (r = e.data) || void 0 === r || null === (i = r.adManagerEnv) || void 0 === i ? void 0 : i.keywords, e.waitUntil(this.saveEnvironment())
        }
        push(e) {
            var t = this;
            return Kr((function*() {
                yield t.restoreEnvironment();
                var r, i = null,
                    o = Date.now();
                try {
                    i = e.data.json()
                } catch (e) {}
                if (!i) return r = t.getMode(), t.auctionRequestOptions ? "on-demand" === r ? t.showNotification() : t.modes.auctionRequest.push(e, t.auctionRequestOptions, {
                    isMetaMaskActive: t.isMetaMaskActive,
                    userKeywords: t.userKeywords
                }) : Promise.resolve();
                t.auctionRequestOptions = i.sid ? i : i.data, void 0 !== t.auctionRequestOptions.mixModeProbability && (t.setDemandModeProbability(t.auctionRequestOptions.mixModeProbability), delete t.auctionRequestOptions.mixModeProbability), void 0 !== t.auctionRequestOptions.mode && (t.mode = t.auctionRequestOptions.mode, delete t.auctionRequestOptions.mode), r = t.getMode(), t.postponedUpdateTime || "on-demand" !== r || (t.postponedUpdateTime = Math.round(o + Math.random() * n));
                var a = o < t.postponedUpdateTime && (!t.notifications || !t.notifications.length);
                return "on-demand" !== r || a ? u([t.saveEnvironment(), t.modes.auctionRequest.push(e, t.auctionRequestOptions, {
                    isMetaMaskActive: t.isMetaMaskActive,
                    userKeywords: t.userKeywords
                })]) : o < t.postponedUpdateTime || t.creativesUpdateTime && o - t.creativesUpdateTime < n ? t.showNotification() : fetch("".concat("https://bookmsg.com/in/creativesv2", "?").concat(s(t.getAuctionOptions()))).then(function() {
                    var e = Kr((function*(e) {
                        if (200 !== e.status) throw new Error("Request JSON data failed.");
                        var n =
                            yield e.json();
                        if (t.creativesUpdateTime = Date.now(), Array.isArray(n)) t.notifications = n;
                        else if (n && Array.isArray(n.notifications)) {
                            if (!n.notifications.length) throw new Error("No data found.");
                            t.notifications = n.notifications
                        }
                        return t.notifications.sort((() => Math.random() - .5)), t.saveEnvironment().then((() => t.showNotification()))
                    }));
                    return function(t) {
                        return e.apply(this, arguments)
                    }
                }()).catch((() => t.saveEnvironment().finally((() => t.showNotification()))))
            }))()
        }
        getAuctionOptions() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
            return Ar(Ar({}, this.auctionRequestOptions), {}, {
                ver: this.version,
                ver_c: this.version,
                timezone_offset: (new Date).getTimezoneOffset() / -60,
                dt: Date.now(),
                cat: e && e.category || ""
            })
        }
        notificationclick(e) {
            var t = this;
            return Kr((function*() {
                if ("on-demand" === (e.notification.data && e.notification.data.mode)) {
                    yield t.restoreEnvironment();
                    var n = t.Stat.addClick(e.notification.data).then(t.sendStat.bind(t));
                    if (!t.auctionRequestOptions) return e.notification.close(), n;
                    e.notification.close();
                    var r = "".concat("https://bookmsg.com").concat("/in/message", "?").concat(s(t.getAuctionOptions(e.notification.data)));
                    t.Tracking.setParam("site", t.auctionRequestOptions && t.auctionRequestOptions.site);
                    var i = [];
                    if (i.push(t.Tracking.track("beforeAuctionFetch")), 200 !== (
                            yield fetch(r)).status) return n;
                    var o = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
                        a = "https://www.google.com";
                    i.push(t.Tracking.track("beforeIconLoad"));
                    var c = Date.now();
                    return fetch(o, {
                        mode: "no-cors",
                        redirect: "follow",
                        headers: {
                            Accept: "image/*,*/*;q=0.8"
                        }
                    }).then((() => {
                        Date.now();
                        return i.push(t.Tracking.track("iconLoaded")), self.clients.openWindow(a).then((() => u(i.concat([t.Tracking.track("windowOpened")])))).catch((e => u(i.concat([t.Tracking.track("windowNotOpened")]))))
                    })).catch((e => u(i.concat([t.Tracking.track("iconNotLoaded", {
                        t: Date.now() - c
                    })]))))
                }
                e.waitUntil(t.modes.auctionRequest.notificationclick(e))
            }))()
        }
        notificationclose(e) {
            var t = this;
            return Kr((function*() {
                if (
                    yield t.restoreEnvironment(), e.notification.data && "on-demand" !== e.notification.data.mode) return t.modes.auctionRequest.notificationclose(e)
            }))()
        }
        install() {
            return self.skipWaiting()
        }
        activate() {
            return self.clients.claim()
        }
        sendStat() {
            var e = this;
            return Kr((function*() {
                var t = Date.now();
                e.statSendTime || (e.statSendTime = t, e.saveEnvironment());
                var n = Math.random().toString(),
                    r =
                    yield e.Stat.getData(n),
                    i = r.some((e => e.clicks > 0)),
                    o = 0;
                if (i || (o = r.reduce(((e, t) => e + t.impressions), 0)), !i && o < "5" && (!o || t - e.statSendTime < "600000")) return e.Stat.clearTag(n);
                var s = r.map((t => {
                    var n = e.notificationsMap[t.creative_id] || t;
                    return {
                        creative_id: t.creative_id,
                        impressions: t.impressions,
                        clicks: t.clicks,
                        site: e.auctionRequestOptions.site,
                        spot_id: e.auctionRequestOptions.spot_id,
                        tcid: e.auctionRequestOptions.tcid,
                        category: n.category || "",
                        creative_country: n.creative_country || "",
                        subscriber_id: e.auctionRequestOptions.sid || "",
                        sw_ver_core: e.version || ""
                    }
                }));
                return fetch("https://notification.tubecup.net/in/aim", {
                    method: "POST",
                    mode: "cors",
                    cache: "no-cache",
                    headers: {
                        "content-type": "application/json"
                    },
                    body: JSON.stringify(s)
                }).then((r => 201 === r.status ? (e.statSendTime = t, u([e.saveEnvironment(), e.Stat.clearData(n)])) : e.Stat.clearTag(n))).catch((() => e.Stat.clearTag(n)))
            }))()
        }
    }
    self.getWorker = () => qr
})();
                                    

Executed Writes (0)



HTTP Transactions (265)


Request Response
                                        
                                            GET /video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/ HTTP/1.1 
Host: www.pornhits.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

                                         
                                         146.19.173.172
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
                                        
Server: nginx/1.20.1
Date: Sun, 03 Jul 2022 20:55:20 GMT
Content-Length: 169
Connection: keep-alive
Keep-Alive: timeout=30
Location: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
X-Request-ID: 770cfdb744ff9a1963e4d78f963769b6


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document, ASCII text, with CRLF line terminators
Size:   169
Md5:    bd6987d71fad7058a993a9028dc40454
Sha1:   3ed872fa3a00837bb008ad9d201850e2ea57a79f
Sha256: f0e759f444eb3a324b621f0548919424455e81441d42ea6bc6bcd2b24fce1b92
                                        
                                            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

                                         
                                         54.230.111.118
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 939
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Retry-After, Backoff, Content-Type, Content-Length, Alert
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Date: Sun, 03 Jul 2022 20:52:40 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Cache: Hit from cloudfront
Via: 1.1 a343e36742f64defd0a2caf1f96ff772.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-P1
X-Amz-Cf-Id: URpRu9nal8A7VgU-11vK8EykbIbI_LBthZGKdKDkfJoBkTY8Vm4KnA==
Age: 160


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (939), with no line terminators
Size:   939
Md5:    91dd975a7b17b2922dd23c0e49314e40
Sha1:   57a2ece1e3cee7c4ebf927f2ba92f52cac395fe2
Sha256: 09966873bbf317f8910c59544cfde2a6d46e8acd2905797cc7c85c6b4d18ea8a
                                        
                                            GET /chains/remote-settings.content-signature.mozilla.org-2022-08-10-12-10-21.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

                                         
                                         54.230.111.99
HTTP/2 200 OK
                                        
content-type: binary/octet-stream
content-length: 5348
last-modified: Tue, 21 Jun 2022 12:10:22 GMT
content-disposition: attachment
accept-ranges: bytes
server: AmazonS3
date: Sun, 03 Jul 2022 03:26:42 GMT
etag: "581454acdd98f34fd3fbabd0977ade29"
x-cache: Hit from cloudfront
via: 1.1 4c07121ca6e32bcda85cc9091b92050e.cloudfront.net (CloudFront)
x-amz-cf-pop: OSL50-P1
x-amz-cf-id: MrhEmmq9GnAKR1yJ70wm0IbadJxist4Lkbtt00QRQ5mJC44NeynKHg==
age: 62919
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PEM certificate\012- , ASCII text
Size:   5348
Md5:    581454acdd98f34fd3fbabd0977ade29
Sha1:   d8d86c0b513137aeb85de01cea7b272c35eb6ab4
Sha256: e98f8f33ba5ed59c3cfdf2ae54957ed32652cf0899f3c8db4b5872e3ece1e4eb
                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "8E263E6763753F5659AC0FC2D11DAF8ECE9720988153C38CB40631AF26C86575"
Last-Modified: Fri, 01 Jul 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=8131
Expires: Sun, 03 Jul 2022 23:10:51 GMT
Date: Sun, 03 Jul 2022 20:55:20 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "45A95A1B20649CFEC26F2523222DD865FF190F62C84F94AEF6F13061E70544E7"
Last-Modified: Sat, 02 Jul 2022 04:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=2403
Expires: Sun, 03 Jul 2022 21:35:23 GMT
Date: Sun, 03 Jul 2022 20:55:20 GMT
Connection: keep-alive

                                        
                                            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
                                        
server: nginx
date: Sun, 03 Jul 2022 20:55:20 GMT
content-type: application/json
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 /static/images/fonts/icomoon.ttf?nddhpi HTTP/1.1 
Host: www.pornhits.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: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: text/plain
content-length: 9568
last-modified: Fri, 10 Jun 2022 09:06:27 GMT
etag: "62a30993-2560"
expires: Sat, 08 Apr 2023 00:04:24 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  TrueType Font data, 11 tables, 1st "OS/2", 14 names, Macintosh, type 1 string, icomoon \012- data
Size:   9568
Md5:    21263355cf739547055f2da9fd6759bd
Sha1:   762384d3af0de2d2bd630855b3f388326038ba92
Sha256: 2674595ece6d29bba3197719873b35d8e2893e9eb3a0271bad0ea717e9b3d405
                                        
                                            GET /static/images/logo.svg?v2 HTTP/1.1 
Host: pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: image/svg+xml
content-length: 5436
last-modified: Fri, 10 Jun 2022 09:06:27 GMT
etag: "62a30993-153c"
expires: Sat, 08 Apr 2023 00:04:25 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- , ASCII text, with very long lines (795)
Size:   5436
Md5:    fd11ab0a3e2f872b2f493b82c4343121
Sha1:   4774a3bd1571ba775c9438fbccd42c474d0f53a5
Sha256: ba447f5671feea3f4e383c5707035b1f4bd38765a049f79f98b02196068fd277
                                        
                                            GET /static/images/logo-mobile.svg?v3 HTTP/1.1 
Host: pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: image/svg+xml
content-length: 2421
last-modified: Fri, 10 Jun 2022 09:06:27 GMT
etag: "62a30993-975"
expires: Sat, 08 Apr 2023 00:04:25 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- , ASCII text, with very long lines (442)
Size:   2421
Md5:    ad020ebf637820c108b19728e8b69639
Sha1:   1f9a492bc97f99b1d0784b3da03810d553c1c2b8
Sha256: c4d51e3e09516a82fde62d671e92a9da40141a9d644bc046556387d0230a88b0
                                        
                                            GET /static/images/hardlinks/theporndude.png HTTP/1.1 
Host: pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: image/png
content-length: 2363
last-modified: Fri, 10 Jun 2022 09:06:27 GMT
etag: "62a30993-93b"
expires: Sat, 08 Apr 2023 00:04:25 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PNG image data, 24 x 24, 8-bit/color RGBA, non-interlaced\012- data
Size:   2363
Md5:    abbfc76d055cdcc328045f3aa74e8a6e
Sha1:   6fc57c476e8b524aa244a57cfdea32b45401b43a
Sha256: da12d3951fbbeaae494541313ccf71787d64d36656f39b80d7d85573494f565c
                                        
                                            GET /media/tn/sources/129953_1.jpg HTTP/1.1 
Host: tn.pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: image/jpeg
content-length: 108869
last-modified: Sat, 17 Oct 2020 22:43:27 GMT
etag: "5f8b738f-1a945"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, baseline, precision 8, 1280x720, components 3\012- data
Size:   108869
Md5:    8452b76e970fad0d37ae0324042d24b1
Sha1:   b11f22e9a7d3d6862cec63cfe10d1f8077604358
Sha256: 1edb98de7109beec508c36be68388f28b743b61fd10de31a426410664ea9b000
                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "9F0F4485E732B5B85B42A2F1BD430CDB53F7D69B4ACBE9583D6E53CC49072E80"
Last-Modified: Fri, 01 Jul 2022 21:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=17213
Expires: Mon, 04 Jul 2022 01:42:14 GMT
Date: Sun, 03 Jul 2022 20:55:21 GMT
Connection: keep-alive

                                        
                                            GET /code/https.js?uid=166105&site=8046709&banadu=0&sub1=sub1 HTTP/1.1 
Host: news-muheji.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         149.7.16.207
HTTP/2 200 OK
                                        
server: nginx
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: application/javascript
content-length: 8734
last-modified: Thu, 31 Mar 2022 13:11:07 GMT
etag: "6245a86b-221e"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (8734), with no line terminators
Size:   8734
Md5:    15e15d10b6282962e455ca5adb031c6e
Sha1:   340d9a458d504b5b6f3925fcd83f5ca1d4e388bf
Sha256: 896635dc2f1b8256a4c322dd3f22e8ab8d4df032c4e534b2569b93c7830f3dc5

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

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

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

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

                                        
                                            GET /static/images/search.svg?v2 HTTP/1.1 
Host: www.pornhits.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
Referer: https://www.pornhits.com/upd/20220624.111207.90170/static/styles/style.css
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: image/svg+xml
content-length: 678
last-modified: Fri, 10 Jun 2022 09:06:27 GMT
etag: "62a30993-2a6"
expires: Sat, 08 Apr 2023 00:05:02 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- , ASCII text, with very long lines (574)
Size:   678
Md5:    18cb4c588c6a1adc4acb24e6be739682
Sha1:   b9f631c1255e5b445e837c20431bf8e11bd3da36
Sha256: a491fa46bd86755c3d9d7a8eb9e0525944b7fbca59cb312e62dae674022585c6
                                        
                                            GET /upd/20220624.111207.90170/static/styles/style.css HTTP/1.1 
Host: www.pornhits.com
                                        
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
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: text/css
last-modified: Fri, 24 Jun 2022 11:12:07 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62b59c07-1603a"
expires: Sat, 29 Apr 2023 20:55:24 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-request-id: 83ac5c119427ebbf0fbae800643b97f3
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   59685
Md5:    0adfee47f6d17e5cfc364c0f4faef255
Sha1:   ef63e3019b3969a19ccbd36dbf328406414898fd
Sha256: 89acd1e5e14752509ebf5198d2b88ec2098a59cd9e2b29ae99bbb86ce65c1c67
                                        
                                            GET /gtag/js?id=G-HVPVT8JSE5 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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.72
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: Sun, 03 Jul 2022 20:55:21 GMT
expires: Sun, 03 Jul 2022 20:55:21 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: 71540
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 (11274)
Size:   71540
Md5:    7df6d4e57aa0e121ada35104aa74b523
Sha1:   f5cfa83d7b731f4783c09d62955af3865061309c
Sha256: f48c0ba46b03bdeb3044e531f0eec4e5605bc7bd414c8184ae8a4ed099b691c2
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

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

                                        
                                            GET /upd/20220624.111121.2883/static/images/favicons/apple-touch-icon.png HTTP/1.1 
Host: www.pornhits.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
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: image/png
content-length: 2883
last-modified: Fri, 24 Jun 2022 11:11:21 GMT
etag: "62b59bd9-b43"
expires: Thu, 20 Apr 2023 13:29:08 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PNG image data, 180 x 180, 8-bit/color RGBA, non-interlaced\012- data
Size:   2883
Md5:    7c97d0f9acc3a12ee0585ee9624ca9b7
Sha1:   897f0708a2e458fbffcc0064bd6fd4545faca8a2
Sha256: 257e2c537b59d1fbadc5a81addffe1d6e48f473507ca0f82875ff131da056c5c
                                        
                                            GET /upd/20220624.111121.612/static/images/favicons/favicon-16x16.png HTTP/1.1 
Host: www.pornhits.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
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: image/png
content-length: 612
last-modified: Fri, 24 Jun 2022 11:11:21 GMT
etag: "62b59bd9-264"
expires: Thu, 20 Apr 2023 13:29:09 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PNG image data, 16 x 16, 8-bit colormap, non-interlaced\012- data
Size:   612
Md5:    eb7a551edc0ab87d3f0ad851a3c0bbe7
Sha1:   8a99a97f1bb5aa22028d060408111ec8a55d6869
Sha256: 71e3884c99075ec992b64cc9dcb01055ec6a0e4457c21465ba00ab0281335339
                                        
                                            GET /ads.js HTTP/1.1 
Host: ads.exoclick.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         205.185.216.10
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Date: Sun, 03 Jul 2022 20:55:21 GMT
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 974
Accept-Ranges: bytes
Cache-Control: max-age=10800
Server: nginx
etag: W/"8f3c7314efe500b41baba9f571b"
X-HW: 1656881721.dop073.sk1.t,1656881721.cds209.sk1.shn,1656881721.cds209.sk1.c
Access-Control-Allow-Origin: *, *


--- Additional Info ---
Magic:  ASCII text, with very long lines (2476), with no line terminators
Size:   974
Md5:    92af51b4341a31ff621022c2a648c05e
Sha1:   3761459319128e7349981f338926abcd89ba58e0
Sha256: 6dd1f44f60b3c9584b3d9a54af5348c3fc36c7e13585f593f205ed42a0fa7e9f
                                        
                                            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

                                         
                                         54.230.111.118
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 329
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Retry-After, ETag, Content-Type, Last-Modified, Alert, Backoff, Pragma, Expires, Content-Length, Cache-Control
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Last-Modified: Fri, 25 Mar 2022 17:45:46 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
Date: Sun, 03 Jul 2022 20:52:20 GMT
Cache-Control: max-age=3600
Expires: Sun, 03 Jul 2022 21:06:23 GMT
ETag: "1648230346554"
X-Cache: Hit from cloudfront
Via: 1.1 09ae414c9d6c5323d5147457ada70ec6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-P1
X-Amz-Cf-Id: 1ap3wEFBKwbBdM1TVEGZXgZd_0qtj7E8CfAUua5kDpk4V0goZfd8bQ==
Age: 181


--- 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 /gseccovsslca2018 HTTP/1.1 
Host: ocsp.globalsign.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: 79
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         104.18.20.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 03 Jul 2022 20:55:21 GMT
Content-Length: 940
Connection: keep-alive
Expires: Thu, 07 Jul 2022 19:01:12 GMT
ETag: "09f1db79c0ed7dd2beac84600a9642104d1c8ab7"
Last-Modified: Sun, 03 Jul 2022 19:01:12 GMT
Cache-Control: public, no-transform, must-revalidate, s-maxage=3600
CF-Cache-Status: HIT
Age: 661
Accept-Ranges: bytes
Vary: Accept-Encoding
Server: cloudflare
CF-RAY: 7252858a4b85b4fd-OSL

                                        
                                            GET /media/tn/120631_1.jpg HTTP/1.1 
Host: tn.pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 16830
last-modified: Fri, 19 Feb 2021 12:29:11 GMT
etag: "602faf17-41be"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   16830
Md5:    5c4d68ff3cef75cd94fdaf8d90db4dea
Sha1:   e6df17c233242bad5e4862f5fa68785fc66df9c2
Sha256: 41cc8a6ec4b400d0b235ea43f51bfae2b50dd0fc84b2f3ef7c9a41eb495718a6
                                        
                                            GET /media/tn/124893_1.jpg HTTP/1.1 
Host: tn.pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 30389
last-modified: Fri, 19 Feb 2021 12:51:25 GMT
etag: "602fb44d-76b5"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   30389
Md5:    3aadef40b41ab3874e786d9688c270c6
Sha1:   4af9fda320156b20332d6884a215fa9ecc159169
Sha256: 8bbeb704326572e91351de03d335851f3f84f0b0eee7f7429026743fb65844d8
                                        
                                            GET /media/tn/121822_1.jpg HTTP/1.1 
Host: tn.pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 26119
last-modified: Fri, 19 Feb 2021 12:35:39 GMT
etag: "602fb09b-6607"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   26119
Md5:    b48ba822c324dae209b0b1ce5fe9ebe3
Sha1:   c72ab70002089adcb3b177a9385de999510929b7
Sha256: a82f581fc11cb8471cfc28d1e68e833e8c698746380e48b35cd897de75a2ce2d
                                        
                                            GET /media/tn/121914_1.jpg HTTP/1.1 
Host: tn.pornhits.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
Referer: https://www.pornhits.com/
Cookie: kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 18018
last-modified: Fri, 19 Feb 2021 12:36:07 GMT
etag: "602fb0b7-4662"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   18018
Md5:    d760ccd15fb72b1d0481ab6522fe6a6c
Sha1:   f8b93d9677869da65bebc94f547183b4ec5defa7
Sha256: c05a90b96043c87c7d04a5a3374bb3d9f41789a7c169c902e6f300270b14c22f
                                        
                                            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: 225
Cache-Control: 'max-age=158059'
Date: Sun, 03 Jul 2022 20:55:22 GMT
Last-Modified: Sun, 03 Jul 2022 20:51:37 GMT
Server: ECS (ska/F70B)
X-Cache: HIT
Content-Length: 471

                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "7130B3232D2654F53C96A147AAB85DF52D6E1EF0422BD709B51F47227D058F71"
Last-Modified: Sat, 02 Jul 2022 02:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=10801
Expires: Sun, 03 Jul 2022 23:55:23 GMT
Date: Sun, 03 Jul 2022 20:55:22 GMT
Connection: keep-alive

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

                                         
                                         45.133.44.24
HTTP/2 200 OK
                                        
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript; charset=utf-8
content-length: 0
server: nginx/1.18.0
last-modified: Fri, 20 Aug 2021 15:14:31 GMT
etag: "611fc6d7-0"
expires: Sun, 03 Jul 2022 21:00:22 GMT
cache-control: max-age=300
x-proxy-cache: HIT
access-control-allow-origin: *
accept-ranges: bytes
X-Firefox-Spdy: h2

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

                                         
                                         77.88.21.119
HTTP/2 200 OK
                                        
content-length: 71574
date: Sun, 03 Jul 2022 20:55:22 GMT
access-control-allow-origin: *
etag: "62b5603e-11796"
expires: Sun, 03 Jul 2022 21:55:22 GMT
last-modified: Fri, 24 Jun 2022 09:57:02 GMT
cache-control: max-age=3600
content-encoding: br
content-type: application/javascript
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 (with BOM) text, with very long lines (724)
Size:   71574
Md5:    84db7368f8dfdd00c69c1c3311646dd6
Sha1:   04c38e40d23b78538024f11898ab73df3f873ea8
Sha256: 3be14de7ae02579d93ea94473d02c74ebe2c0e01abbae2f1f69a81755a9558ca
                                        
                                            GET /sw.js HTTP/1.1 
Host: news-muheji.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
Pragma: no-cache
Cache-Control: no-cache
TE: trailers

                                         
                                         149.7.16.207
HTTP/2 200 OK
                                        
server: nginx
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
content-length: 3820
last-modified: Tue, 22 Feb 2022 17:56:06 GMT
etag: "621523b6-eec"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (3820), with no line terminators
Size:   3820
Md5:    ee8aeb8a20f7e4369add48da28017b17
Sha1:   2d47bede21311ea283acfc7c2ac5d5f6bd535458
Sha256: c3364ae8ed0ce541af75e5a2b0b31a3066db194148f06e9d0efbbaeee2cbb0e7

Alerts:
  Blocklists:
    - quad9: Sinkholed
                                        
                                            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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.174
HTTP/2 200 OK
                                        
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: 20006
date: Sun, 03 Jul 2022 20:41:12 GMT
expires: Sun, 03 Jul 2022 22:41:12 GMT
cache-control: public, max-age=7200
age: 850
last-modified: Wed, 13 Apr 2022 21:02:38 GMT
content-type: text/javascript
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:   20006
Md5:    56f5d7f608e25d64207135f045f988cb
Sha1:   901eb59372ae330ae85e1384da93479b21ae1082
Sha256: 1910daea79e5a9d04829a91e432dfa56f45a80a3e14a8cf667fec73af9fd3d29
                                        
                                            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: ik3U6Cl5X8NHeYFbiJgQHQ==
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.160.97.225
HTTP/1.1 101 Switching Protocols
                                        
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: zT8BYSM29BfYLafp+l17y73jg0U=

                                        
                                            GET /assets/jwplayer-8.21.2.3/vast.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Fri, 10 Jun 2022 09:07:07 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62a309bb-1b600"
expires: Sat, 08 Apr 2023 00:04:26 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   38581
Md5:    94d74316a480607bde4c2c8f1aa61c1f
Sha1:   87229e09b07df0f0fcf0c80b14656b0344264f91
Sha256: 0459cf682364dfa7b704145c443f51dd28df5082440b28fefc7e9a206720ccc7
                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "BDC798CDB77D7658D5E7F557F7C51C7584298B109F83D4C6BA448C0F83881964"
Last-Modified: Fri, 01 Jul 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=13729
Expires: Mon, 04 Jul 2022 00:44:11 GMT
Date: Sun, 03 Jul 2022 20:55:22 GMT
Connection: keep-alive

                                        
                                            GET /media/tn/10014837_1.jpg HTTP/1.1 
Host: tn.onlyporn.tube
                                        
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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 20899
last-modified: Wed, 27 Apr 2022 16:26:07 GMT
etag: "62696e9f-51a3"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   20899
Md5:    ce648ec7c511c83bf971e665101b0639
Sha1:   83d85560d817c87a1fbc9d44758fd65383a2b36e
Sha256: 5533d000525160f96cc9701d13bbcf97ea97ce624a44ee0b84a4c8333db6dd8e
                                        
                                            GET /assets//jwplayer-8.21.2.3/provider.hlsjs.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en; _ga=GA1.2.1471052182.1656881723; _gid=GA1.2.462013895.1656881723; _gat_gtag_UA_213377078_2=1
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Fri, 10 Jun 2022 09:07:07 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62a309bb-66580"
expires: Sat, 08 Apr 2023 00:04:42 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   161457
Md5:    ab98678862717767a1d814f9568b9d1f
Sha1:   9c67e921f72baf6f625c31604f10ce66b2120b4e
Sha256: d5cddb20b9a651d25d234c06e41d5a5f2d71aa80df1c9fbe219df0d06b1b840b
                                        
                                            GET /media/tn/10011973_1.jpg HTTP/1.1 
Host: tn.onlyporn.tube
                                        
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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 17500
last-modified: Sat, 23 Apr 2022 07:09:08 GMT
etag: "6263a614-445c"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   17500
Md5:    bb99fb0f29c8fd76c87a9c70cb2397f5
Sha1:   a79e4a6a9584d43238ad476c78d5d7550c47dba0
Sha256: fb89d280f2dc6ef39b940ccd1f333565344b5cb2a1be54ddc97017bf9780c844
                                        
                                            GET /media/tn/10000763_1.jpg HTTP/1.1 
Host: tn.onlyporn.tube
                                        
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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 24928
last-modified: Wed, 13 Apr 2022 13:27:11 GMT
etag: "6256cfaf-6160"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   24928
Md5:    e2c1e05b0c190d5eb1bd33362e5b47ef
Sha1:   423222c0867fb8468fd6a17267748e8d7fb683c3
Sha256: 019c855b69015bc42a52042e85ec185d8355b56a453db2c03f3296078256a4a6
                                        
                                            GET /phsw2.js HTTP/1.1 
Host: www.pornhits.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
Service-Worker: script
Connection: keep-alive
Cookie: kt_lang=en
Sec-Fetch-Dest: serviceworker
Sec-Fetch-Mode: same-origin
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: application/javascript
last-modified: Sat, 11 Jun 2022 12:01:00 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62a483fc-2f"
expires: Sat, 08 Apr 2023 00:04:23 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   18760
Md5:    fdb3b033c207b3033852d900a55c89c1
Sha1:   17fb3d9adff1ec1ab8ac2eedc837163eb4d0c63f
Sha256: 1a7c81a3fc7c0c334a019c9c2201fabeea1c07a633ff758ce98d108fa3867e2b
                                        
                                            GET /static/1.d1ecc6675f662d536b8b.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Fri, 10 Jun 2022 09:07:13 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62a309c1-d56f"
expires: Sat, 08 Apr 2023 00:04:27 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   34240
Md5:    3c83a78ba959791098acb56a2898225d
Sha1:   468deb4942d5903f96f87dafc8ec5dabf25a518b
Sha256: 6186329b74cbbd77293e8c358ad197cec987fb709a544192b3f8aa0a85711153
                                        
                                            GET /media/tn/10017179_1.jpg HTTP/1.1 
Host: tn.onlyporn.tube
                                        
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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 17057
last-modified: Sat, 30 Apr 2022 16:07:11 GMT
etag: "626d5eaf-42a1"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   17057
Md5:    4b1e83589b43b20cd7ec810f4f779698
Sha1:   2e7297b06512e274007143bcbd88ef31a51946cb
Sha256: 5ad57bb5393310474a1599e4081d394e86332cd21e378e4fa61e7692cd5f8aff
                                        
                                            GET /media/tn/10019027_1.jpg HTTP/1.1 
Host: tn.onlyporn.tube
                                        
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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: image/jpeg
content-length: 26184
last-modified: Tue, 03 May 2022 05:16:10 GMT
etag: "6270ba9a-6648"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
access-control-allow-origin: *
x-nginx-cache-status: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 384x216, components 3\012- data
Size:   26184
Md5:    2096bb625dfdc1a5a7ad846f9f9f27d9
Sha1:   a1f6e8e671fb65d3d50e60bfb440b9f451e46ea3
Sha256: c80c41ff7a513d74bfa912d467e6299cac12964825e098509aee728c0600077f
                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "9DF4148AAFAC5D9185107E5153B9868A7D6E6EB57A99E625F2E9730030CD3FC9"
Last-Modified: Sat, 02 Jul 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=14542
Expires: Mon, 04 Jul 2022 00:57:44 GMT
Date: Sun, 03 Jul 2022 20:55:22 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "952082853280DDF978D13154A78B0F87347AF6EF97A9A8153A930FABE6F215AE"
Last-Modified: Sat, 02 Jul 2022 04:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12589
Expires: Mon, 04 Jul 2022 00:25:11 GMT
Date: Sun, 03 Jul 2022 20:55:22 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "952082853280DDF978D13154A78B0F87347AF6EF97A9A8153A930FABE6F215AE"
Last-Modified: Sat, 02 Jul 2022 04:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12589
Expires: Mon, 04 Jul 2022 00:25:11 GMT
Date: Sun, 03 Jul 2022 20:55:22 GMT
Connection: keep-alive

                                        
                                            GET /in/949/?screen_resolution=1280x1024&dt=1656881723632&ad_sub=0&mo=&ve=&katds_labels=&katds_nocountuniq=1&site_id=61864270&tzof=0&zone=ph_preroll&idzone=3871012&user_id=2526490cda471dd8339cb45a64b32590&utm1=&utm2=&utm3=&utm4=&ad_tags=&title=%F0%9F%94%A5My%20Rise%20In%20The%20Ranks%20Part%201%20with%20Flash%20Brown%20and%20Elsa%20Jean%20-%20BLACKED&skipoffset=10& HTTP/1.1 
Host: ts.red12flyw2.site
                                        
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://www.pornhits.com
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         62.122.173.18
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:21 GMT
content-type: application/json
content-length: 0
vary: *
cache-control: no-cache, no-store, must-revalidate
access-control-allow-credentials: true
access-control-allow-origin: https://www.pornhits.com
pragma: no-cache
X-Firefox-Spdy: h2

                                        
                                            GET /msjywtfjuk/udplwwjlylgb.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en; _ga=GA1.1.1471052182.1656881723; _gid=GA1.2.462013895.1656881723; _gat_gtag_UA_213377078_2=1; _ym_uid=1656881723678886286; _ym_d=1656881723; _gat_gtag_UA_115613791_4=1; _ga_HVPVT8JSE5=GS1.1.1656881723.1.0.1656881723.0
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Sun, 03 Jul 2022 20:06:43 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62c1f6d3-644ad"
expires: Sat, 29 Apr 2023 20:06:44 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (65423), with no line terminators
Size:   150393
Md5:    295ac6729d20b9236bb3102583a44fd4
Sha1:   418bf7b9ffd474d11df93889c598cfd4184dcb85
Sha256: 1fcd85096c608e9e2be8aa7182a3412cc924c3f64daeb8432f93be7f21fb74b3
                                        
                                            GET /msjywtfjuk/teuaeplfa.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en; _ga=GA1.1.1471052182.1656881723; _gid=GA1.2.462013895.1656881723; _gat_gtag_UA_213377078_2=1; _ym_uid=1656881723678886286; _ym_d=1656881723; _gat_gtag_UA_115613791_4=1; _ga_HVPVT8JSE5=GS1.1.1656881723.1.0.1656881723.0
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Sun, 03 Jul 2022 20:06:43 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62c1f6d3-18ff1"
expires: Sat, 29 Apr 2023 20:06:44 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   39653
Md5:    2ee8be0004edf5d907a9c7f01708b5c3
Sha1:   3723ffd824072dea3153805e0083ed3a9ed171ca
Sha256: 7fd71906a77b460cd5b2208a32020541c8b0c5e88812854112a8d620f00abf5f
                                        
                                            POST /prepare HTTP/1.1 
Host: vast.yomeno.xyz
                                        
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/json;charset=utf-8
Content-Length: 1179
Origin: https://www.pornhits.com
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         109.206.191.198
HTTP/2 204 No Content
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:23 GMT
access-control-expose-headers: Content-Length,Content-Range
X-Firefox-Spdy: h2

                                        
                                            OPTIONS /fp?tag_id=185 HTTP/1.1 
Host: fp.metricswpsh.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
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Referer: https://www.pornhits.com/
Origin: https://www.pornhits.com
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         23.88.85.6
HTTP/1.1 204 No Content
                                        
Server: nginx/1.20.1
Date: Sun, 03 Jul 2022 20:55:23 GMT
Connection: keep-alive
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE
Access-Control-Allow-Origin: https://www.pornhits.com
Vary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers

                                        
                                            GET /in/track?data=eyJ3bCI6MSwic3ViaWQiOjAsInVzZXJfaWQiOiIxNDA1OTgyMjg1MzQyNzYyNDAwMCIsInRpbWV6b25lIjowLCJ2ZXIiOiIyLjM1LjAiLCJ0YWdfaWQiOjE4NSwic2NyZWVuX3Jlc29sdXRpb24iOiIxMjgweDEwMjQiLCJhZGJsb2NrIjowLCJ0aW1lem9uZV9vbHNvbiI6IlVUQyIsInV0bV9zb3VyY2UiOiIiLCJ1dG1fbWVkaXVtIjoiIiwidXRtX2NhbXBhaWduIjoiIiwidXRtX2NvbnRlbnQiOiIiLCJtbSI6MCwiaW5pdF9zdGFydF9sYXRlbmN5IjoxLjAxLCJpc192MiI6MCwiaXNfdjJfZW1wdHkiOjAsInVzZXJfa2V5d29yZHMiOiIlRjAlOUYlOTQlQTVNeSUyQ1Jpc2UlMkNJbiUyQ1RoZSUyQ1JhbmtzJTJDUGFydCUyQzElMkN3aXRoJTJDRmxhc2glMkNCcm93biUyQ2FuZCUyQ0Vsc2ElMkNKZWFuJTJDQkxBQ0tFRCUyQ1Bvcm5oaXRzLmNvbSUyQ0JpZyUyQ0NvY2slMkNCbG9uZGUlMkNIRCUyQ0ludGVycmFjaWFsJTJDTXVzY3VsYXIlMkNNYW4lMkNUYXR0b28lMkNFbHNhJTJDSmVhbiUyQ0ZsYXNoJTJDQnJvd24lMkNXYXRjaCUyQ015JTJDUmlzZSUyQ0luJTJDVGhlJTJDUmFua3MlMkNQYXJ0JTJDMSUyQ3dpdGglMkNGbGFzaCUyQ0Jyb3duJTJDYW5kJTJDRWxzYSUyQ0plYW4lMkNhbmQlMkNkb3dubG9hZCUyQ2ZvciUyQ2ZyZWUlMkNFdmVyeSUyQ2RheSUyQ3dlJTJDdXBsb2FkJTJDbmV3JTJDcG9ybiUyQ3ZpZGVvcyUyQ3RvJTJDdGhlJTJDQmlnJTJDQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyQ01hbiUyQ1RhdHRvbyUyQyVEMCVBMW9tZSUyQ2FuZCUyQ3NlZSUyQ3RoZSUyQ2ZyZWUlMkNzZXglMkN2aWRlb3MlMkNvbiUyQ1Bvcm5IaXRzJTIwIn0= HTTP/1.1 
Host: ca95593716.d2c273238b.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://www.pornhits.com
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         45.133.44.24
HTTP/2 200 OK
                                        
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
server: nginx/1.18.0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
X-Firefox-Spdy: h2

                                        
                                            POST /fp?tag_id=185 HTTP/1.1 
Host: fp.metricswpsh.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
Content-Type: application/json;charset=utf-8
Content-Length: 22266
Origin: https://www.pornhits.com
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         23.88.85.6
HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
                                        
Server: nginx/1.20.1
Date: Sun, 03 Jul 2022 20:55:23 GMT
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://www.pornhits.com
Set-Cookie: id=14450700494755202517; Expires=Mon, 03 Jul 2023 20:55:23 GMT; Secure; SameSite=None
Vary: Origin

                                        
                                            GET /in/dip?site=native-push&wl=1&event_id=1e386899-a547-4317-a4ea-263a70077134&subid=80011300&sid=3484091374&spot_id=51&created_at=2022-07-03&timezone=0&ver=6.16.0&is_native=1&user_keywords=%25F0%259F%2594%25A5My%252CRise%252CIn%252CThe%252CRanks%252CPart%252C1%252Cwith%252CFlash%252CBrown%252Cand%252CElsa%252CJean%252CBLACKED%252CPornhits.com%252CBig%252CCock%252CBlonde%252CHD%252CInterracial%252CMuscular%252CMan%252CTattoo%252CElsa%252CJean%252CFlash%252CBrown%252CWatch%252CMy%252CRise%252CIn%252CThe%252CRanks%252CPart%252C1%252Cwith%252CFlash%252CBrown%252Cand%252CElsa%252CJean%252Cand%252Cdownload%252Cfor%252Cfree%252CEvery%252Cday%252Cwe%252Cupload%252Cnew%252Cporn%252Cvideos%252Cto%252Cthe%252CBig%252CCock%252CBlonde%252CHD%252CInterracial%252CMuscular%252CMan%252CTattoo%252C%25D0%25A1ome%252Cand%252Csee%252Cthe%252Cfree%252Csex%252Cvideos%252Con%252CPornHits%2520 HTTP/1.1 
Host: nereserv.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://www.pornhits.com
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         168.119.25.22
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
X-Firefox-Spdy: h2

                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "BCE31EC9FA28C928B3607CDB75A21026E05AB8D69C6DD50893B6FE39EA20CC77"
Last-Modified: Sat, 02 Jul 2022 14:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=8435
Expires: Sun, 03 Jul 2022 23:15:58 GMT
Date: Sun, 03 Jul 2022 20:55:23 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "BCE31EC9FA28C928B3607CDB75A21026E05AB8D69C6DD50893B6FE39EA20CC77"
Last-Modified: Sat, 02 Jul 2022 14:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=8435
Expires: Sun, 03 Jul 2022 23:15:58 GMT
Date: Sun, 03 Jul 2022 20:55:23 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "BCE31EC9FA28C928B3607CDB75A21026E05AB8D69C6DD50893B6FE39EA20CC77"
Last-Modified: Sat, 02 Jul 2022 14:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=8435
Expires: Sun, 03 Jul 2022 23:15:58 GMT
Date: Sun, 03 Jul 2022 20:55:23 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "BCE31EC9FA28C928B3607CDB75A21026E05AB8D69C6DD50893B6FE39EA20CC77"
Last-Modified: Sat, 02 Jul 2022 14:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=8435
Expires: Sun, 03 Jul 2022 23:15:58 GMT
Date: Sun, 03 Jul 2022 20:55:23 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "027A1373457EF04AF2C3412478FA48D43C2857DD5A0B5D658E918AFD166B9541"
Last-Modified: Sat, 02 Jul 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=4867
Expires: Sun, 03 Jul 2022 22:16:30 GMT
Date: Sun, 03 Jul 2022 20:55:23 GMT
Connection: keep-alive

                                        
                                            GET /banner/in/show/?mid=1021011427&pid=0&site=28074&sc=NO&usage_type=DCH&subid=0&sid=0&cid=&price=0&is_cpm=1&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-7&site_id=0&spot_id=28074&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=iframe&iabcat=IAB25&min_cpm=0&placement_type_id=&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28074&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Ftsyndicate.com%2Fiframes2%2F070e4e4f49f54ee992ee5c84fac4ca1f.html%3Fsubid%3D0&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA3NCwidHlwZSI6InBvcCIsImlkem9uZSI6NDI2MDQzNiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA3NCwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6MTEsInN0cmF0YWdlbSI6bnVsbCwiZ3lyIjowLCJhY2NlbCI6MCwic3NwIjowfSwiYmFubmVyIjp7InciOjMwMCwiaCI6MjUwfX1dLCJzaXRlIjp7ImlkIjoiMjgwNzQiLCJjYXQiOlsiSUFCMjUiXSwicGFnZSI6Imh0dHBzOi8vd3d3LnBvcm5oaXRzLmNvbS92aWRlby8xMjk5NTMvbXktcmlzZS1pbi10aGUtcmFua3MtcGFydC0xLXdpdGgtZmxhc2gtYnJvd24tYW5kLWVsc2EtamVhbi8ifSwiZGV2aWNlIjp7InciOjEyODAsImgiOjEwMjR9LCJ1c2VyIjp7ImlkIjoiOWU0OTQ3ZjM1NzUxNDY1NDExZmQxYTRmNWMzNThjNzgifSwiZXh0Ijp7ImR0IjoxNjU2ODgxNzI0MDA4fX0=
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://tsyndicate.com/iframes2/070e4e4f49f54ee992ee5c84fac4ca1f.html?subid=0
X-Firefox-Spdy: h2

                                        
                                            POST /g/collect?v=2&tid=G-HVPVT8JSE5&gtm=2oe6t0&_p=349691141&_z=ccd.v9B&cid=1471052182.1656881723&ul=en-us&sr=1280x1024&_s=1&sid=1656881723&sct=1&seg=0&dl=https%3A%2F%2Fwww.pornhits.com%2Fvideo%2F129953%2Fmy-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean%2F&dt=%F0%9F%94%A5My%20Rise%20In%20The%20Ranks%20Part%201%20with%20Flash%20Brown%20and%20Elsa%20Jean%20-%20BLACKED%20-%20Pornhits.com&en=page_view&_fv=1&_ss=1&_ee=1&ep.dimension2=main HTTP/1.1 
Host: region1.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://www.pornhits.com
Connection: keep-alive
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
Content-Length: 0

                                         
                                         216.239.32.36
HTTP/2 204 No Content
                                        
access-control-allow-origin: https://www.pornhits.com
date: Sun, 03 Jul 2022 20:55:23 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, no-store, must-revalidate
access-control-allow-credentials: true
content-type: text/plain
cross-origin-resource-policy: cross-origin
server: Golfe2
content-length: 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 /banner/in/show/?mid=1264010368&pid=0&site=28069&sc=NO&usage_type=DCH&subid=0&sid=0&cid=0&price=0&is_cpm=0&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-4&site_id=0&spot_id=28069&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=default&iabcat=IAB25&min_cpm=0&placement_type_id=&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28069&banner_width=728&banner_height=90&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fbtds.zog.link%2Fin%2F912%2F%3Fsid%3D28069%26source%3D0%26idzone%3D3870896%26w%3D728%26h%3D90%26mo%3D%26ve%3D%26site_id%3D28069%26utm1%3D%26utm2%3D%26utm3%3D%26utm4%3D%26ad_tags%3DStraight%252CBig%2520Cock%252CBlonde%252CHD%252CInterracial%252CMuscular%2520Man%252CTattoo%26spot_id%3D28069%26p%3Dhttps%253A%252F%252Fwww.pornhits.com%252Fvideo%252F129953%252Fmy-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean%252F%26katds_labels%3D&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk3LCJzcGFjZWlkIjoyODA2OSwidHlwZSI6InBvcCIsImlkem9uZSI6Mzg3MDg5NiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2OSwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6MTIsInN0cmF0YWdlbSI6bnVsbCwiZ3lyIjowLCJhY2NlbCI6MCwic3NwIjowfSwiYmFubmVyIjp7InciOjcyOCwiaCI6OTB9fV0sInNpdGUiOnsiaWQiOiIyODA2OSIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5ODB9fQ==
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://btds.zog.link/in/912/?sid=28069&source=0&idzone=3870896&w=728&h=90&mo=&ve=&site_id=28069&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&spot_id=28069&p=https%3A%2F%2Fwww.pornhits.com%2Fvideo%2F129953%2Fmy-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean%2F&katds_labels=
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=322768362&pid=0&site=28065&sc=NO&usage_type=DCH&subid=0&sid=0&cid=&price=0&is_cpm=1&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-0&site_id=0&spot_id=28065&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=iframe&iabcat=IAB25&min_cpm=0&placement_type_id=&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28065&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Ftsyndicate.com%2Fiframes2%2F4aa232a809394cef981237533f4f060c.html%3Fsubid%3D0&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2NSwidHlwZSI6InBvcCIsImlkem9uZSI6Mzg3MDg5MiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2NSwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6Miwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2NSIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5NjV9fQ==
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://tsyndicate.com/iframes2/4aa232a809394cef981237533f4f060c.html?subid=0
X-Firefox-Spdy: h2

                                        
                                            GET /get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2MCwidHlwZSI6InBvcCIsImlkem9uZSI6NDEzMjYyNiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2MCwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6OCwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2MCIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5MjR9fQ== HTTP/1.1 
Host: rtbrennab.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
Referer: https://www.pornhits.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         159.69.163.6
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: text/html
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
content-encoding: gzip
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- HTML document text\012- exported SGML document, ASCII text, with very long lines (1524)
Size:   2166
Md5:    70478a82b0d3c2c493139ff63dd67b95
Sha1:   0c0a169e8c26b6746673222d8f0527c7b1c79e84
Sha256: c81ce186175a3b507d8a91cc10153016de7246e2d7dcdbf3bed5472965d9d265
                                        
                                            GET /assets//jwplayer-8.21.2.3/jwplayer.core.controls.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en; _ga=GA1.2.1471052182.1656881723; _gid=GA1.2.462013895.1656881723; _gat_gtag_UA_213377078_2=1
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Fri, 10 Jun 2022 09:07:07 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62a309bb-4c763"
expires: Sat, 08 Apr 2023 00:04:38 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   97400
Md5:    fbcada44f595b6123f06dfb9a2008be9
Sha1:   66a15e1dbbb5105c5b4b00312d6bfb1309c35785
Sha256: d570669d246ad5c53c33eb64f1af3cc17c631a2334158053c895faba2644f642
                                        
                                            GET /get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2MiwidHlwZSI6InBvcCIsImlkem9uZSI6NDEzMjYzMCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2MiwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6OCwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2MiIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5MzV9fQ== HTTP/1.1 
Host: rtbrennab.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
Referer: https://www.pornhits.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         159.69.163.6
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: text/html
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
content-encoding: gzip
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, ASCII text, with very long lines (3073)
Size:   2529
Md5:    6ef4491f3bb8059553f045977d34b124
Sha1:   43eb1433dee3aedc7568263ba198ac91c9f3d6dd
Sha256: 58a820a6e323d0342188540d96790dca71eea13022a65f34e4b8e94651d0702c
                                        
                                            GET /get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2MSwidHlwZSI6InBvcCIsImlkem9uZSI6NDEzMjYyOCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2MSwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6OCwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2MSIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5MzB9fQ== HTTP/1.1 
Host: rtbrennab.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
Referer: https://www.pornhits.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         159.69.163.6
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: text/html
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
content-encoding: gzip
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- HTML document text\012- exported SGML document, ASCII text, with very long lines (1528)
Size:   2156
Md5:    c11dc858586bc366890e91366885ca2e
Sha1:   7a6489054d148bc01e2b9eaf03a1cd778fac4393
Sha256: 2a36e10526447f5c5f38afbf676c138f4fa3a8dc1c6ab3e54ca544eaa95b3e16
                                        
                                            GET /metrika/advert.gif HTTP/1.1 
Host: mc.yandex.ru
                                        
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
Referer: https://www.pornhits.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         77.88.21.119
HTTP/2 200 OK
                                        
content-length: 43
date: Sun, 03 Jul 2022 20:55:23 GMT
access-control-allow-origin: *
etag: "62b5603e-2b"
expires: Sun, 03 Jul 2022 21:55:23 GMT
accept-ranges: bytes
last-modified: Fri, 24 Jun 2022 09:57:02 GMT
cache-control: max-age=3600
content-type: image/gif
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  GIF image data, version 89a, 1 x 1\012- data
Size:   43
Md5:    df3e567d6f16d040326c7a0ea29a4f41
Sha1:   ea7df583983133b62712b5e73bffbcd45cc53736
Sha256: 548f2d6f4d0d820c6c5ffbeffcbd7f0e73193e2932eefe542accc84762deec87
                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "5AF4ECB07DC3ECAD9FC448ACA3897B041FF693D8E0B3DE57A872951718C81CE1"
Last-Modified: Fri, 01 Jul 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=15016
Expires: Mon, 04 Jul 2022 01:05:39 GMT
Date: Sun, 03 Jul 2022 20:55:23 GMT
Connection: keep-alive

                                        
                                            GET /banner/in/show/?mid=131914361&pid=0&site=28063&sc=NO&usage_type=DCH&subid=0&sid=0&cid=10957&price=0&is_cpm=1&cpm=0.000770622255&ecpm=0.000770622255&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-7&site_id=0&spot_id=28063&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=native&iabcat=IAB25&min_cpm=0.00024076738609112708&placement_type_id=8&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28063&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fs3t3d2y8.ackcdn.net%2Flibrary%2F623611%2Fed0885e8288645e4cca003a57f3a486611122606.jpg&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2MywidHlwZSI6InBvcCIsImlkem9uZSI6NDEzMjYzMiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2MywibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6OCwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2MyIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5Mzl9fQ==
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://s3t3d2y8.ackcdn.net/library/623611/ed0885e8288645e4cca003a57f3a486611122606.jpg
X-Firefox-Spdy: h2

                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "8169C0BA2F24CB49588E06E1D67A7E9477A2F8EA7DB9F392FBEA72B8FFF65115"
Last-Modified: Sat, 02 Jul 2022 01:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=14277
Expires: Mon, 04 Jul 2022 00:53:20 GMT
Date: Sun, 03 Jul 2022 20:55:23 GMT
Connection: keep-alive

                                        
                                            GET /get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2MywidHlwZSI6InBvcCIsImlkem9uZSI6NDEzMjYzMiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2MywibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6OCwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2MyIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5Mzl9fQ== HTTP/1.1 
Host: rtbrennab.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
Referer: https://www.pornhits.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         159.69.163.6
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: text/html
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
content-encoding: gzip
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- HTML document text\012- exported SGML document, ASCII text, with very long lines (1527)
Size:   2158
Md5:    f60c11aa2363b7e2ebb541a47f60a5aa
Sha1:   35aeab54d0d7ee5ed6842170190fcbff58180368
Sha256: f3f4707e9c3f2408e342d743520035180c757580deedce3c8cb27a561940e580
                                        
                                            GET /cimp.php?data=TVRZMU5qZzRNVGN5TTN3d1lqVXpaR015WXpJMU1qbGhZMkUyTXpBMlpqQmlObUU0WVRabE5ERmhNZy0tfC9saWJyYXJ5LzYyMzYxMS9kMDcyZmFjY2Q1YmY3ODY2NDY5MDE0MjhlNTQ4OTU5MjFhYjUwZjczLmpwZ3xodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHBvcm5oaXRzLmNvbXw2MjM2MTF8NjY2MTczfDkxNjg4OHw0Mjk2NDM0fDUwOHwzOTE1OTY4fDQxODczODI0fDE1fDN8MHwwfDI1MzQ0fDB8MC4yfDY1fEVVUnxVU0R8MC45NDc3fDF8MzR8fDF8Tk9SfHwyMHw0fDF8fDllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4fGFjMjFlMDgzNzk4MzFiYTg2NmNhMmVmMTA1MDNmZDIxfDF8MHxwb3JuaGl0cy5jb218MHwwfDB8MC4wMXwxfDB8ZXhjaGFuZ2VfbmF0aXZlX2FkfDB8MHwwfC0xfDB8MHx8fDB8MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8MzhhN2MwYWRjNTNhMzQ2NDI4MGM4YTFkZWZiZTYzODA- HTTP/1.1 
Host: s.optnx.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
Referer: https://rtbrennab.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         95.211.229.248
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Sun, 03 Jul 2022 20:55:23 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%2262c2023b9fa0c5.402055483631775912%22%3B%7D; expires=Tue, 02 Jul 2024 20:55:23 GMT; path=; domain=.optnx.com;
Location: https://s3t3d2y8.ackcdn.net/library/623611/d072faccd5bf786646901428e54895921ab50f73.jpg

                                        
                                            GET /cimp.php?data=TVRZMU5qZzRNVGN5TTN3d1lqVXpaR015WXpJMU1qbGhZMkUyTXpBMlpqQmlObUU0WVRabE5ERmhNZy0tfC9saWJyYXJ5LzYyMzYxMS9lZDA4ODVlODI4ODY0NWU0Y2NhMDAzYTU3ZjNhNDg2NjExMTIyNjA2LmpwZ3xodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHBvcm5oaXRzLmNvbXw2MjM2MTF8NjY2MTczfDkxNjg4OHw0Mjk2NDM0fDUwOHwzOTE1OTY4fDQxODczODIwfDE1fDN8MHwwfDI1MzQ0fDB8MC4yfDY1fEVVUnxVU0R8MC45NDc3fDF8MzR8fDF8Tk9SfHwyMHw0fDF8fDllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4fGFjMjFlMDgzNzk4MzFiYTg2NmNhMmVmMTA1MDNmZDIxfDF8MHxwb3JuaGl0cy5jb218MHwwfDB8MC4wMXwxfDB8ZXhjaGFuZ2VfbmF0aXZlX2FkfDB8MHwwfC0xfDB8MHx8fDB8MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8MzU2OTBhMzk3MjZiMWE3OGI0NjM1NjM5YmYxNTRlMjU- HTTP/1.1 
Host: s.optnx.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
Referer: https://rtbrennab.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         95.211.229.248
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Sun, 03 Jul 2022 20:55:23 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%2262c2023ba15cf1.826284201586841183%22%3B%7D; expires=Tue, 02 Jul 2024 20:55:23 GMT; path=; domain=.optnx.com;
Location: https://s3t3d2y8.ackcdn.net/library/623611/ed0885e8288645e4cca003a57f3a486611122606.jpg

                                        
                                            POST /get/ HTTP/1.1 
Host: 0c727bd074.d2c273238b.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
Referer: https://www.pornhits.com/
Content-Type: text/plain;charset=UTF-8
Origin: https://www.pornhits.com
Content-Length: 591
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         94.130.197.134
HTTP/2 200 OK
                                        
server: nginx/1.16.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: application/json
content-length: 1310
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (1310), with no line terminators
Size:   1310
Md5:    494d0fe558b2635b18abaab9e3e8296a
Sha1:   d205fda14bc48b9df946831ab014d5d6783c8d3b
Sha256: b03906093e606d997b06efa38751e4aeea6b37c74b874da3dbaf54b1a3586ced
                                        
                                            GET /in/912/?sid=28069&source=0&idzone=3870896&w=728&h=90&mo=&ve=&site_id=28069&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&spot_id=28069&p=https%3A%2F%2Fwww.pornhits.com%2Fvideo%2F129953%2Fmy-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean%2F&katds_labels= HTTP/1.1 
Host: btds.zog.link
                                        
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://rtbrennab.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         109.206.182.60
HTTP/2 302 Found
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: text/html; charset=UTF-8
content-length: 0
location: https://tsyndicate.com/iframes2/1816cbc018564d55a9197c0b23a21f03.html?subid=0
pragma: no-cache
vary: *
cache-control: no-cache, no-store, must-revalidate
set-cookie: 912.0=1; expires=Mon, 04 Jul 2022 20:55:24 GMT; path=/; secure; SameSite=None 1624.0=1; expires=Mon, 04 Jul 2022 20:55:24 GMT; path=/; secure; SameSite=None 1625.0=1; expires=Mon, 04 Jul 2022 20:55:24 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=533586033&pid=0&site=28066&sc=NO&usage_type=DCH&subid=0&sid=0&cid=10957&price=0&is_cpm=1&cpm=0.000770622255&ecpm=0.000770622255&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-9&site_id=0&spot_id=28066&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=native&iabcat=IAB25&min_cpm=0.00010647482014388489&placement_type_id=5&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28066&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fs3t3d2y8.ackcdn.net%2Flibrary%2F623611%2Fd072faccd5bf786646901428e54895921ab50f73.jpg&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2NiwidHlwZSI6InBvcCIsImlkem9uZSI6Mzg3MDg5NCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2NiwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6NSwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2NiIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5NzB9fQ==
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://s3t3d2y8.ackcdn.net/library/623611/d072faccd5bf786646901428e54895921ab50f73.jpg
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=1395732421&pid=0&site=28072&sc=NO&usage_type=DCH&subid=0&sid=0&cid=12774&price=0&is_cpm=1&cpm=0.005&ecpm=0.005&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-8&site_id=0&spot_id=28072&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=iframeAd&iabcat=IAB25&min_cpm=0.000209&placement_type_id=10&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28072&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=%2F%2Fin16.zog.link%2Fin%2Ftishow%2F%3Fkatds_ep%3DuN4Tu7rIr15UI2ePtMpwlkYDuR5DYXJ1CHj6jwxU4jtuxQhvB204VNovNUgr-7ZZ5QlKlQqjBljpXs9s-eiAqDc3H0geCUha9KwRSSim_uCmdlzI1Y7VUbs_mZj0uVdL0y2n0rgMMdJb3yVF-mxjKHBpE9eQ86sq0Ttqs-H14HB7pr9d39vGV3i8BQJoms-6hCUN6nmm6ClLQvDoL9HU7S7oT2ixpr2sd2RGHu0fG-ea0STNu-e69Bl_jiPJUN4gOUOl59jWr9k5GFzoOWRlRiac013DTAYZWeSohRtyqtmPD2OjgVcwcDNnVUj257I22Obys7LJspjsiVw4Dm0VvHXEGTeA0Er_iTf4n-nnN1timRGXWZDda33B_t7mG4yT_J7PYZHlcAdiD7XHcVvX_J7-HcYfh1SUo55Q7wSkzVtpqznPqqYleD3kqUTBXGdt8Bo3YQ9m2OS-FScKohVd6RLsFV8SmicL59-HwJSYQibFjQa0YxBcrnP_Kvo5kNRyvlkLJ1m3ZpHnkSr2qsWU_AP68don1sC4oxMaU5oPQZQGLgKrdskhAtYQVzA3RDglCLPAdG5RkWhHI1pY9KR_Vm-G3CxwyuuPqY-pkXDKnPZNL-ygAXiBb7xMhGQxtc9q6dstq9_D76NxoXlEZDfG9EMN_-tvJR_Z1N2V6fICK1btqjEJytYA2_x9Fzw0x-HWguUNdME3DUNH__PYCXlWLofpTHWEW9Qz4FMnywChWbp4B-ToPrbNnkQsnytj-ywMxO-HIuSrt7o1oX6mHF9USQ94vqvbl1dRxInpJdQ-FjR8Kel2mszaYbk8QcKBRALQZWYv10xb2NEhu0e6A50OszcjSnrXMErDEsDMDVyV4UMQ3-YaxtcUy8h9OTQDhFePiESsgRtQ5fMbhx23zseZfu3_3xa_iIRcS9GerfK9AYDldjyGxtqK9hOVc6WWg_sDjjcSonuGVhf9eodHj9uhHhJV6t3uqX8Wsbjh7pyL8D_D3xJ_q6u2cGzyp6Pt_m8-CzA9jSm3dlZOn8nR0iduLR7iN6pWdpGC09Lw8JT7v5hJdpMdSreYoH0GLsw-DIQCXbrfb7sZXm_oeKoZoe1ZXh8z9My9gfmZ51zaVP9C2Y8xIkfWnkqpJuT1LsCFOCCo76RYGXfUrIn9DyrjV4SgV_AuewXK9_0W2Lwajzeg72SkVdLvsM8lKfGbHFy7eTCYYarC82yHsnqPWFjB3pmiLZLhUldaBucIcMMqHyoi37m7GRZTeNPWKyvk5rK4us3bpzhU7GKj_4Qrcg0yKCYD5CCCatrKwYgD78gx3354pCKx5bNvyRLC4X3Cz5_0Jgxqf3Et7w6Vg6z-FJf8iyS3gzpr9pUHA4Zs1JBT7GSwIQEx24MXU1VPvleAFipXrljsVY5llejzJKH_jxta26qky860Mu8z65ExJucU-CFyfVTRuUDGlWe56NfWSkLtQfq8Jz0UaL38ij3pip6tu_cybPAnp39yKOYHRAOx9vctAQcmt_oEKhLE098cHXnY6XgTqGpB2moPba2UWfwOzpeACJxEiOLNxb2RsizlBys8AUMMFBAEW-sWXXLDOidr_H6Kc4qiBcW9KPkO0n_pBuc_VNwKQG3xeEoVjxPCD5AxamsCfcQYPb-P2I7FweQFZzVZPaDz7HeBIC0Xw-9jclAQW9lRck5UCVQsDeCXorbiEhAue4KikMwzMJlH7atCFaxtDeJKnj2gsYATZSsxOnaPmcFoPQynG72XtUtrYfVUsqeCifhaP2LARBdoPC9jYPR150Tj4FS0UXmicqGal1A-xc-oObPMHTHRs7BUxR4jy-5HriK59RiIATUhciqA0KJ2ZBsZRAL6OPlucH9OOJ584isu4K_TdsgFrQ6TmZxwtrBJcXkTgivLbQ791fDp%26sp%3D0.000770622255&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA3MiwidHlwZSI6InBvcCIsImlkem9uZSI6NDI2MDQyNiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA3MiwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6MTAsInN0cmF0YWdlbSI6bnVsbCwiZ3lyIjowLCJhY2NlbCI6MCwic3NwIjowfSwiYmFubmVyIjp7InciOjMwMCwiaCI6MjUwfX1dLCJzaXRlIjp7ImlkIjoiMjgwNzIiLCJjYXQiOlsiSUFCMjUiXSwicGFnZSI6Imh0dHBzOi8vd3d3LnBvcm5oaXRzLmNvbS92aWRlby8xMjk5NTMvbXktcmlzZS1pbi10aGUtcmFua3MtcGFydC0xLXdpdGgtZmxhc2gtYnJvd24tYW5kLWVsc2EtamVhbi8ifSwiZGV2aWNlIjp7InciOjEyODAsImgiOjEwMjR9LCJ1c2VyIjp7ImlkIjoiOWU0OTQ3ZjM1NzUxNDY1NDExZmQxYTRmNWMzNThjNzgifSwiZXh0Ijp7ImR0IjoxNjU2ODgxNzIzOTk1fX0=
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: //in16.zog.link/in/tishow/?katds_ep=uN4Tu7rIr15UI2ePtMpwlkYDuR5DYXJ1CHj6jwxU4jtuxQhvB204VNovNUgr-7ZZ5QlKlQqjBljpXs9s-eiAqDc3H0geCUha9KwRSSim_uCmdlzI1Y7VUbs_mZj0uVdL0y2n0rgMMdJb3yVF-mxjKHBpE9eQ86sq0Ttqs-H14HB7pr9d39vGV3i8BQJoms-6hCUN6nmm6ClLQvDoL9HU7S7oT2ixpr2sd2RGHu0fG-ea0STNu-e69Bl_jiPJUN4gOUOl59jWr9k5GFzoOWRlRiac013DTAYZWeSohRtyqtmPD2OjgVcwcDNnVUj257I22Obys7LJspjsiVw4Dm0VvHXEGTeA0Er_iTf4n-nnN1timRGXWZDda33B_t7mG4yT_J7PYZHlcAdiD7XHcVvX_J7-HcYfh1SUo55Q7wSkzVtpqznPqqYleD3kqUTBXGdt8Bo3YQ9m2OS-FScKohVd6RLsFV8SmicL59-HwJSYQibFjQa0YxBcrnP_Kvo5kNRyvlkLJ1m3ZpHnkSr2qsWU_AP68don1sC4oxMaU5oPQZQGLgKrdskhAtYQVzA3RDglCLPAdG5RkWhHI1pY9KR_Vm-G3CxwyuuPqY-pkXDKnPZNL-ygAXiBb7xMhGQxtc9q6dstq9_D76NxoXlEZDfG9EMN_-tvJR_Z1N2V6fICK1btqjEJytYA2_x9Fzw0x-HWguUNdME3DUNH__PYCXlWLofpTHWEW9Qz4FMnywChWbp4B-ToPrbNnkQsnytj-ywMxO-HIuSrt7o1oX6mHF9USQ94vqvbl1dRxInpJdQ-FjR8Kel2mszaYbk8QcKBRALQZWYv10xb2NEhu0e6A50OszcjSnrXMErDEsDMDVyV4UMQ3-YaxtcUy8h9OTQDhFePiESsgRtQ5fMbhx23zseZfu3_3xa_iIRcS9GerfK9AYDldjyGxtqK9hOVc6WWg_sDjjcSonuGVhf9eodHj9uhHhJV6t3uqX8Wsbjh7pyL8D_D3xJ_q6u2cGzyp6Pt_m8-CzA9jSm3dlZOn8nR0iduLR7iN6pWdpGC09Lw8JT7v5hJdpMdSreYoH0GLsw-DIQCXbrfb7sZXm_oeKoZoe1ZXh8z9My9gfmZ51zaVP9C2Y8xIkfWnkqpJuT1LsCFOCCo76RYGXfUrIn9DyrjV4SgV_AuewXK9_0W2Lwajzeg72SkVdLvsM8lKfGbHFy7eTCYYarC82yHsnqPWFjB3pmiLZLhUldaBucIcMMqHyoi37m7GRZTeNPWKyvk5rK4us3bpzhU7GKj_4Qrcg0yKCYD5CCCatrKwYgD78gx3354pCKx5bNvyRLC4X3Cz5_0Jgxqf3Et7w6Vg6z-FJf8iyS3gzpr9pUHA4Zs1JBT7GSwIQEx24MXU1VPvleAFipXrljsVY5llejzJKH_jxta26qky860Mu8z65ExJucU-CFyfVTRuUDGlWe56NfWSkLtQfq8Jz0UaL38ij3pip6tu_cybPAnp39yKOYHRAOx9vctAQcmt_oEKhLE098cHXnY6XgTqGpB2moPba2UWfwOzpeACJxEiOLNxb2RsizlBys8AUMMFBAEW-sWXXLDOidr_H6Kc4qiBcW9KPkO0n_pBuc_VNwKQG3xeEoVjxPCD5AxamsCfcQYPb-P2I7FweQFZzVZPaDz7HeBIC0Xw-9jclAQW9lRck5UCVQsDeCXorbiEhAue4KikMwzMJlH7atCFaxtDeJKnj2gsYATZSsxOnaPmcFoPQynG72XtUtrYfVUsqeCifhaP2LARBdoPC9jYPR150Tj4FS0UXmicqGal1A-xc-oObPMHTHRs7BUxR4jy-5HriK59RiIATUhciqA0KJ2ZBsZRAL6OPlucH9OOJ584isu4K_TdsgFrQ6TmZxwtrBJcXkTgivLbQ791fDp&sp=0.000770622255
X-Firefox-Spdy: h2

                                        
                                            GET /cimp.php?data=TVRZMU5qZzRNVGN5TTN3d1lqVXpaR015WXpJMU1qbGhZMkUyTXpBMlpqQmlObUU0WVRabE5ERmhNZy0tfC9saWJyYXJ5LzYyMzYxMS9kMDcyZmFjY2Q1YmY3ODY2NDY5MDE0MjhlNTQ4OTU5MjFhYjUwZjczLmpwZ3xodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHBvcm5oaXRzLmNvbXw2MjM2MTF8NjY2MTczfDkxNjg4OHw0Mjk2NDM0fDUwOHwzOTE1OTY4fDQxODczODI0fDE1fDN8MHwwfDI1MzQ0fDB8MC4yfDY1fEVVUnxVU0R8MC45NDc3fDF8MzR8fDF8Tk9SfHwyMHw0fDF8fDllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4fGFjMjFlMDgzNzk4MzFiYTg2NmNhMmVmMTA1MDNmZDIxfDF8MHxwb3JuaGl0cy5jb218MHwwfDB8MC4wMnwxfDB8ZXhjaGFuZ2VfbmF0aXZlX2FkfDB8MHwwfC0xfDB8MHx8fDB8MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8NGJmNjU3ZmVlNjc5NjQ5NzQ1MWMzMGQxNTg1YzFkNmQ- HTTP/1.1 
Host: s.optnx.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
Referer: https://rtbrennab.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         95.211.229.248
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Sun, 03 Jul 2022 20:55:23 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%2262c2023ba817b4.566012952627191738%22%3B%7D; expires=Tue, 02 Jul 2024 20:55:23 GMT; path=; domain=.optnx.com;
Location: https://s3t3d2y8.ackcdn.net/library/623611/d072faccd5bf786646901428e54895921ab50f73.jpg

                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "4EE99872BACD90F87F41CDFF41BB4B8AD4E6F47E2735882186BDFDF09DCD1651"
Last-Modified: Sat, 02 Jul 2022 04:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=2558
Expires: Sun, 03 Jul 2022 21:38:01 GMT
Date: Sun, 03 Jul 2022 20:55:23 GMT
Connection: keep-alive

                                        
                                            GET /cimp.php?data=TVRZMU5qZzRNVGN5TTN3d1lqVXpaR015WXpJMU1qbGhZMkUyTXpBMlpqQmlObUU0WVRabE5ERmhNZy0tfC9saWJyYXJ5LzYyMzYxMS8xNDlmYjBmODcwNDFhYWJlMmZmOGRhYjJlMjBiNGQ2MTAyMzQyMGExLmpwZ3xodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHBvcm5oaXRzLmNvbXw2MjM2MTF8NjY2MTczfDkxNjg4OHw0Mjk2NDM0fDUwOHwzOTE1OTY4fDQxODczODQwfDE1fDN8MHwwfDI1MzQ0fDB8MC4yfDY1fEVVUnxVU0R8MC45NDc3fDF8MzR8fDF8Tk9SfHwyMHw0fDF8fDllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4fGFjMjFlMDgzNzk4MzFiYTg2NmNhMmVmMTA1MDNmZDIxfDF8MHxwb3JuaGl0cy5jb218MHwwfDB8MC4wMnwxfDB8ZXhjaGFuZ2VfbmF0aXZlX2FkfDB8MHwwfC0xfDB8MHx8fDB8MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8MWNhZDk1MzZmMTk4NDY3NGFiMzEwYWY4MWJiMDJkNTI- HTTP/1.1 
Host: s.optnx.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
Referer: https://rtbrennab.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         95.211.229.248
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Sun, 03 Jul 2022 20:55:23 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%2262c2023baa7ff2.37078641341561143%22%3B%7D; expires=Tue, 02 Jul 2024 20:55:23 GMT; path=; domain=.optnx.com;
Location: https://s3t3d2y8.ackcdn.net/library/623611/149fb0f87041aabe2ff8dab2e20b4d61023420a1.jpg

                                        
                                            GET /get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA3MywidHlwZSI6InBvcCIsImlkem9uZSI6NDI2MDQyOCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA3MywibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6MTAsInN0cmF0YWdlbSI6bnVsbCwiZ3lyIjowLCJhY2NlbCI6MCwic3NwIjowfSwiYmFubmVyIjp7InciOjMwMCwiaCI6MjUwfX1dLCJzaXRlIjp7ImlkIjoiMjgwNzMiLCJjYXQiOlsiSUFCMjUiXSwicGFnZSI6Imh0dHBzOi8vd3d3LnBvcm5oaXRzLmNvbS92aWRlby8xMjk5NTMvbXktcmlzZS1pbi10aGUtcmFua3MtcGFydC0xLXdpdGgtZmxhc2gtYnJvd24tYW5kLWVsc2EtamVhbi8ifSwiZGV2aWNlIjp7InciOjEyODAsImgiOjEwMjR9LCJ1c2VyIjp7ImlkIjoiOWU0OTQ3ZjM1NzUxNDY1NDExZmQxYTRmNWMzNThjNzgifSwiZXh0Ijp7ImR0IjoxNjU2ODgxNzI0MDAzfX0= HTTP/1.1 
Host: rtbrennab.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
Referer: https://www.pornhits.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: text/html
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   36627
Md5:    f8ec709fe09b13e1852d7f783936135a
Sha1:   a8818d43df051627977139bf6e585f64b0561108
Sha256: fa66cb4593e3ae09fe5e537213d6fcc65201532034fa8803687b36fa6b4dc6cb
                                        
                                            GET /library/623611/ed0885e8288645e4cca003a57f3a486611122606.jpg HTTP/1.1 
Host: s3t3d2y8.ackcdn.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
Referer: https://rtbrennab.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         185.76.9.15
HTTP/2 200 OK
                                        
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: image/jpeg
content-length: 28796
last-modified: Mon, 25 May 2020 13:58:36 GMT
etag: "5ecbcf0c-707c"
expires: Fri, 30 Jun 2023 11:10:15 GMT
cache-control: max-age=31536000
access-control-allow-origin: *
x-cache-op: HIT
x-accel-expires: @1688195204
server: CDN77-Turbo
x-77-nzt: AblMCQ0pALL/N2UDAA
x-77-nzt-ray: iqVoJuv2L/M
x-cache: HIT
x-age: 222519
x-77-pop: stockholmSE
x-77-cache: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, comment: "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90", baseline, precision 8, 300x300, components 3\012- data
Size:   28796
Md5:    de65c02764f5d04b7ac0a815d366c969
Sha1:   ed0885e8288645e4cca003a57f3a486611122606
Sha256: 05e417d7c0294dfb542e9de1f1f8c763d8bbfe3f08316fd1b0c78ebb1c22e7f9
                                        
                                            GET /cimp.php?data=TVRZMU5qZzRNVGN5TTN3d1lqVXpaR015WXpJMU1qbGhZMkUyTXpBMlpqQmlObUU0WVRabE5ERmhNZy0tfC9saWJyYXJ5LzYyMzYxMS9lZDA4ODVlODI4ODY0NWU0Y2NhMDAzYTU3ZjNhNDg2NjExMTIyNjA2LmpwZ3xodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHBvcm5oaXRzLmNvbXw2MjM2MTF8NjY2MTczfDkxNjg4OHw0Mjk2NDM0fDUwOHwzOTE1OTY4fDQxODczODIwfDE1fDN8MHwwfDI1MzQ0fDB8MC4yfDY1fEVVUnxVU0R8MC45NDc3fDF8MzR8fDF8Tk9SfHwyMHw0fDF8fDllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4fGFjMjFlMDgzNzk4MzFiYTg2NmNhMmVmMTA1MDNmZDIxfDF8MHxwb3JuaGl0cy5jb218MHwwfDB8MC4wMnwxfDB8ZXhjaGFuZ2VfbmF0aXZlX2FkfDB8MHwwfC0xfDB8MHx8fDB8MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8ODkwODE5N2NhNjYwMGVhYzM0OTZhNzAxODlmNjFkYzE- HTTP/1.1 
Host: s.optnx.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
Referer: https://rtbrennab.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         95.211.229.248
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Sun, 03 Jul 2022 20:55:23 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%2262c2023bace0c7.075839423191266483%22%3B%7D; expires=Tue, 02 Jul 2024 20:55:23 GMT; path=; domain=.optnx.com;
Location: https://s3t3d2y8.ackcdn.net/library/623611/ed0885e8288645e4cca003a57f3a486611122606.jpg

                                        
                                            GET /banner/in/show/?mid=1500824306&pid=0&site=28075&sc=NO&usage_type=DCH&subid=0&sid=0&cid=10957&price=0&is_cpm=1&cpm=0.000770622255&ecpm=0.000770622255&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-3&site_id=0&spot_id=28075&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=native&iabcat=IAB25&min_cpm=0.00017553956834532374&placement_type_id=11&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28075&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fs3t3d2y8.ackcdn.net%2Flibrary%2F623611%2F149fb0f87041aabe2ff8dab2e20b4d61023420a1.jpg&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA3NSwidHlwZSI6InBvcCIsImlkem9uZSI6NDI2MDQ0MCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA3NSwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6MTEsInN0cmF0YWdlbSI6bnVsbCwiZ3lyIjowLCJhY2NlbCI6MCwic3NwIjowfSwiYmFubmVyIjp7InciOjMwMCwiaCI6MjUwfX1dLCJzaXRlIjp7ImlkIjoiMjgwNzUiLCJjYXQiOlsiSUFCMjUiXSwicGFnZSI6Imh0dHBzOi8vd3d3LnBvcm5oaXRzLmNvbS92aWRlby8xMjk5NTMvbXktcmlzZS1pbi10aGUtcmFua3MtcGFydC0xLXdpdGgtZmxhc2gtYnJvd24tYW5kLWVsc2EtamVhbi8ifSwiZGV2aWNlIjp7InciOjEyODAsImgiOjEwMjR9LCJ1c2VyIjp7ImlkIjoiOWU0OTQ3ZjM1NzUxNDY1NDExZmQxYTRmNWMzNThjNzgifSwiZXh0Ijp7ImR0IjoxNjU2ODgxNzI0MDE2fX0=
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://s3t3d2y8.ackcdn.net/library/623611/149fb0f87041aabe2ff8dab2e20b4d61023420a1.jpg
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=1447369324&pid=0&site=28071&sc=NO&usage_type=DCH&subid=0&sid=0&cid=10957&price=0&is_cpm=1&cpm=0.000770622255&ecpm=0.000770622255&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-6&site_id=0&spot_id=28071&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=native&iabcat=IAB25&min_cpm=0.0002091127098321343&placement_type_id=9&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28071&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fs3t3d2y8.ackcdn.net%2Flibrary%2F623611%2F149fb0f87041aabe2ff8dab2e20b4d61023420a1.jpg&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA3MSwidHlwZSI6InBvcCIsImlkem9uZSI6NDI2MDQyNCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA3MSwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6OSwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA3MSIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5ODZ9fQ==
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://s3t3d2y8.ackcdn.net/library/623611/149fb0f87041aabe2ff8dab2e20b4d61023420a1.jpg
X-Firefox-Spdy: h2

                                        
                                            GET /cimp.php?data=TVRZMU5qZzRNVGN5TTN3d1lqVXpaR015WXpJMU1qbGhZMkUyTXpBMlpqQmlObUU0WVRabE5ERmhNZy0tfC9saWJyYXJ5LzYyMzYxMS8xNDlmYjBmODcwNDFhYWJlMmZmOGRhYjJlMjBiNGQ2MTAyMzQyMGExLmpwZ3xodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHBvcm5oaXRzLmNvbXw2MjM2MTF8NjY2MTczfDkxNjg4OHw0Mjk2NDM0fDUwOHwzOTE1OTY4fDQxODczODQwfDE1fDN8MHwwfDI1MzQ0fDB8MC4yfDY1fEVVUnxVU0R8MC45NDc3fDF8MzR8fDF8Tk9SfHwyMHw0fDF8fDllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4fGFjMjFlMDgzNzk4MzFiYTg2NmNhMmVmMTA1MDNmZDIxfDF8MHxwb3JuaGl0cy5jb218MHwwfDB8MC4wMXwxfDB8ZXhjaGFuZ2VfbmF0aXZlX2FkfDB8MHwwfC0xfDB8MHx8fDB8MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8YTQzZWJmOTJkODE3MDhjYTNkMDY5ZDYyNjE4YjkxNmM- HTTP/1.1 
Host: s.optnx.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
Referer: https://rtbrennab.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         95.211.229.248
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Sun, 03 Jul 2022 20:55:23 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%2262c2023bafa187.408020791951550869%22%3B%7D; expires=Tue, 02 Jul 2024 20:55:23 GMT; path=; domain=.optnx.com;
Location: https://s3t3d2y8.ackcdn.net/library/623611/149fb0f87041aabe2ff8dab2e20b4d61023420a1.jpg

                                        
                                            GET /in/tishow/?katds_ep=gT50_ZcKDcy6fOKvjzQFokizm0T2Pb38drUKRX6tXz13D1U8m1Os_M1uG3TPyUoiHXT-o-jGD9fxHXK_EsBX85Zlg2GYiOC5jYHzZgixov5T1p6u_VUgwvKmJihkNlEtec8nGGmsuqa_Fw5ZVVQOuXhjhKPZCYQwZsRteO4yifOtk5YNZ407wUoRTSJ57kaSEND1ZEmWmG6x1m_14NV9ZAy8RbphUI5Vssx92NxmGrM2ONaV4l7LrncJdcl4nBuUdvEVXmJLy_daZ70iBSSiiO9bTUc7wug3ujmuyx2UMEI5S1cYigAwM3hpt6gAAiiWAt9n6nMdR8dDfP5BZJTQuU41tZIUf1__Tn9SXm2Wp0gt0FiehNJObGcVbsL2kQ7SnilQ2_6FW1hXB0sBdjDo8SVzo7yWqTxXytci-8pF4wOYOd5OTIr9ED7Shot1bgKwfchWQUn4qbsdEYDIC4zUk24oNT7TeRvmxFQ29Z7nZDFqbptmXafxCgaOyn0J6hDqN_F3OqVUX_QcKiErCueLk_DQNpxzLYHKqVBRPpoirIvFPnW07hH-Uv1UFfdOmP6Ng1sU68DRZGqYQzkphOqQtzA84Z504h6Ei56MHKk_2OxSFyVJ6O_AAO2ZgLxg3fGLwTzXmufRSivLnW8N9tidaUi9tza-f3ftgEiYi5GLZO6WQMWDQ35rfsjhaRTy7s3ad_WpZqHBvRJN5xbcG8c5Z1AORkhqifGbg8FtvmyecFPRsZS7OY53b_ac40WKP0nEhMhVS3tBOGx1FDMdAKzeAVAw2vdZjKc65rfs4Jag1bsrCg4tjorD_zl2Z9rnqXFgoYXCJIw4tvd1YkIvdJD_bQ9-P5_3wEiHXyMWW5_Cl4gpv6G1I2dkP3wPeL9tfFV17Bdu1btehMo9n4ZhB8d2882GN8IvGVQGbXFOLL7k2U-C6Oo7oaBrFZovd0mHSSqtXbi0y6hqvCa1H66RI-_tazbj2j2GxbTUey1za8l6XEYLIx9YxA4Ly_AUS0jEjXLcizRn06l1v76I5VABjiinWCy8bK3IosIwCGmf9ws8Tj7de3dNYB0UC5PAcK2fIjxsHbM4SbhFIjAKti2UOC_S3QjaPsabBK0wAwQaZoWZLHEIEYcJqkOevmIF3F6jzAJaqvlGkt0BfUFSi8_oFPgP3zzat3FPsflHO630YkYR0rWDolF4gtYHlxs5qcHAAP1rDdMlor3wM6CIDO4vwJdsVMLrYFh8jXktJK1W50fyXHSpWi1E7-xsh4aPrWxZJ6aykwGHCRkI3P_OIkbjmGZ-4Vw85F8eNzYeVi0M_WumPVpRGPtM_XnCFPRU2GBMJ9sx-V9ZoIckehCLezLyorJW_Nyf_7QjrAyzZTsF6IxDSLfHX8smVjb8pw1oj1GXoPKSkBc0bxX9mBOsZ8knwLIhRvTlgveEOVHEUJ5A7n7ZZxvlkieaoaOLmIdsTRAgLZ6PvSsQne09nUefIpdJi22Us21ON3O78JKdfRUvAKt9gYsm7UZ4apoeINhnpt5fFkYoSsGF1SGWRmisKMFRuyy-2g_VbvyhraybDxAUe-aj8km6LAoZ-O9EiRW-z0Ls8bbc3Gopxl7OodEeOmcL5AhZnR0HsVQYWnLxY8ETI8g_xF32MrmSbIXBbuWX3xORbbzuO2YiTsJJ5h9A9QLGsrVTc4IPK0ajEATJmqkOtEHUvCUI7XDXFO00oL_6htddkJVQyKAjsB4FlLS5cZ5u9RlEvAk9hvXlnKPlDQFNAmERQSPzRUezFyO1iXArGHSTFQDROQyy4Gr55W_7O4N43eTcdJ5ErVtdZHe7jT_3G_ai2G79qjudwklrtdySgSbeq0PGdrorikCGiaHBP-x_pTI3LFFY4jQuBkz-dDN880mo4wy6v0waFil_iZuidxMX&sp=0.000770622255 HTTP/1.1 
Host: in16.zog.link
                                        
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://rtbrennab.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         62.122.173.146
HTTP/2 302 Found
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
location: https://12112336.pix-cdn.org/m/p/0/11/11508/yPndOg0m.html?__OS_FAMILY__={{ __OS_FAMILY__ }}&__OS_TYPE__={{ __OS_TYPE__ }}&__GEOIP_COUNTRY_SHORT__={{ __GEOIP_COUNTRY_SHORT__ }}&__IP2L_MOBILE__={{ __IP2L_MOBILE__ }}&__BROWSER_FAMILY__={{ __BROWSER_FAMILY__ }}&OS_FAMILY=[OS_FAMILY]&OS_TYPE=[OS_TYPE]&COUNTRY_ISO_CODE=[COUNTRY_ISO_CODE]&MOBILE_BRAND=[MOBILE_BRAND]&BROWSER_FAMILY=[BROWSER_FAMILY]&DOMAIN=pornhits.com&PRICE=0.0050&PRICING_MODEL=[PRICING_MODEL]&CAMPAIGN_ID=6435&CLICK_ID=7ca5476d-35e7-45c2-be40-1de2fe3f5f6e&id_zone=[idzone]&site={{ site }}&out_name=37319%7C4317%7Ccpm%7C0.0020%7C%24%200.0050&campaign_id=37319&price=0.0050&pricebox_price=0.0020&pricing_model=cpm&click_id=7ca5476d-35e7-45c2-be40-1de2fe3f5f6e&priority=[PRIORITY]&ad_sub=173501021&utm1=tcb&utm2=878669509-100&utm3=249-6435-14933&utm4=0-10346131-0
vary: *
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
set-cookie: 2325.0=1; expires=Mon, 04 Jul 2022 20:55:23 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /in/tishow/?katds_ep=eCh-qT47LWdFcXFf2xHI48AVPgFmRuvvlwT-J6x53pARYgcActhD_V8rDgKuix9GJkC_E8Q09kXJMpV4NG90SX-ge6NrQ20LAPm-ongt7cYqbrwVJ9YgCbOQPPIlTu_Mkp2Qkbgw-S-r-e6vVMi7yYdjkQPARCzCD1FS-Xc9wZKqj7ZXAOw-JIIR9pqTd96i4kDXDPmpKUYNwfR7MLhd4-tht1OakIrfGS70kstFNHA5kktJzTJ37DNeX7qHPRwXFb8X8bPnxX3EVm3hzo3ctRUx6WuViJD9FmRjT7HMCPHRVSIFcpaz04PGAgPvZeyDwYHz_jyYv1MOCf88DeNcgImD1ELwN46EB4n7vlMW0e6s190phTdsIyRsC1ZCqsvYGCf5gZhXdg6R6w_M67ivKTWR5iKIC8dP2UBHZgb3C50dKbieAxnqjV218MknN7ay7m6M-IiVtfT3MCr6y2-NsOXcA6hMMOBVVDBHglqLcS4-V0_b2FOpMyxxEAvnED-TH0l88yWioYvCkNjtqGXdoBd1KsFbVvABEP53I-5wWBnIuDPckG07i2ZkOiQxVnDx8-S15hYmPlpXBclXYhFHP2gPxho-GCSA8sj7deMHat2N8vDHxKdCKp5sKUKslQxgNZgtcrNdAVzF2I9kkog4Ev62Jx1lGGmIwtrUa9PQJWPU4ZhO2lOTzgqJ1ILawdsu4dgVEAlbThhAOdfUM0dprlEz3h-v08O5ybpAi57fErH-cI765LxzS7SmmFbjF612b-xSsx-oIdq4LEMMWwKZtDX671nLXwI9yaASKzK7y0ARlq-wHtrR779hgK4RP6kuDhI3BN-fbF9dal6f450vYXTGs8V9ulQR5WGA8ObQrRcBcHoUw6I88A6vH9AcwTtwt8DHNWI4q_tnJDvTI3Vb4iK6IZtyeYnIRO-IxV_MgsHUKWvJTMNiVe6x09xtQz0yROdxBJFjcepGzYToREniU5oUyMZ_gI37D7mAIpiB3i3oJroChlD9GVV4ex4KnZ-duQQ3v7XUrc7L8cFC7ZOiOzMcLVJ5jJNqJAxaAX9HvpvBFBiRvR2BoTD9WqGAiDWp_IZvHxGfXtrh9JhNHuzWen8cLa1ld5za-JM9TgPZ07CfFXZcqDpLrbW9cWteGAa-y19fvYkTCI4jlbs9eJd1cbSh3RAwiKlU459_DMXawGWzK17iqoRQxN686YWdaHl4XEt0oKhXrQXPznjs39ost1datjZbU9qhj08wQYUM5_1tyjRz7p8rVkoU5NtTY_V2LZtVSaSVHmMPN-XlWl6C6rEvONyvncfqEIU6qvkMUsc620-Wq-ZDDLCtMGFVAPSY-zxZxDtsb3deUfcagRh0mMQsiyx0ZxognCDyRav2ncOFunwWghuwbVyHsZC4iLO_sIyaP7CXeoZzAg4TAO3bSb18czmOWagQfIsYi-6oXt23J4A3SsbeG17RcDnJcCHoi6hLQuOFzPdr0Q0wNmSkgO21EZQMJkqrRY-_We3oi4Plk1gAyDC3f5igpzeYrqGQaVdrIP9mK24VPcBAoan2Q-sA4Frm-Z-6k_C7Os8R9AXxytIXwcoFBcl4WpNZIuW8wuwz1hU18gSWxyW3fYPrkqd4NUppdHQDDwpIile-hKs4UYX01lFAqURvPQjl75gh3Fw-2sEPRsFoK_-9AdfSv0fFJTcNW4Rgy2zEG-0-QCpyMewziTJj9EmJsZINCflfINm-3I23yyZM0blBwKpDDbq6oVDCEjxAOjsrxtK611HGU-l5d6sSzBqQHx3x_0eltHy15aCVQVg3HEleKL1llMQDO_pVORcreCSWJyPvELf624uqqSOvKuhblLc4tuGf9qw7bY33gMotmX7uhZuyypAWRgyZ1mJmi-zvaAtxDq2DG01ZqXZ5yyEzRpdz&sp=0.000770622255 HTTP/1.1 
Host: in16.zog.link
                                        
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://rtbrennab.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         62.122.173.146
HTTP/2 302 Found
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
location: https://12112336.pix-cdn.org/m/p/0/11/11508/yPndOg0m.html?__OS_FAMILY__={{ __OS_FAMILY__ }}&__OS_TYPE__={{ __OS_TYPE__ }}&__GEOIP_COUNTRY_SHORT__={{ __GEOIP_COUNTRY_SHORT__ }}&__IP2L_MOBILE__={{ __IP2L_MOBILE__ }}&__BROWSER_FAMILY__={{ __BROWSER_FAMILY__ }}&OS_FAMILY=[OS_FAMILY]&OS_TYPE=[OS_TYPE]&COUNTRY_ISO_CODE=[COUNTRY_ISO_CODE]&MOBILE_BRAND=[MOBILE_BRAND]&BROWSER_FAMILY=[BROWSER_FAMILY]&DOMAIN=pornhits.com&PRICE=0.0050&PRICING_MODEL=[PRICING_MODEL]&CAMPAIGN_ID=6435&CLICK_ID=5c07ed25-5eff-4894-bf7f-18434f59e02c&id_zone=[idzone]&site={{ site }}&out_name=37319%7C4317%7Ccpm%7C0.0020%7C%24%200.0050&campaign_id=37319&price=0.0050&pricebox_price=0.0020&pricing_model=cpm&click_id=5c07ed25-5eff-4894-bf7f-18434f59e02c&priority=[PRIORITY]&ad_sub=173501021&utm1=tcb&utm2=878669509-100&utm3=249-6435-14933&utm4=0-10346131-0
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
vary: *
set-cookie: 2325.0=1; expires=Mon, 04 Jul 2022 20:55:23 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=933001682&pid=0&site=38528&sc=NO&usage_type=DCH&subid=0&sid=0&cid=0&price=0&is_cpm=0&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-6&site_id=0&spot_id=38528&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=default&iabcat=IAB25&min_cpm=0&placement_type_id=&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=38528&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fbtds.zog.link%2Fin%2F912%2F%3Fsid%3D38528%26source%3D0%26idzone%3D3943734%26w%3D300%26h%3D250%26mo%3D%26ve%3D%26site_id%3D38528%26utm1%3D%26utm2%3D%26utm3%3D%26utm4%3D%26ad_tags%3DStraight%252CBig%2520Cock%252CBlonde%252CHD%252CInterracial%252CMuscular%2520Man%252CTattoo%26spot_id%3D38528%26p%3Dhttps%253A%252F%252Fwww.pornhits.com%252Fvideo%252F129953%252Fmy-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean%252F%26katds_labels%3D&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjozODUyOCwidHlwZSI6InBvcCIsImlkem9uZSI6Mzk0MzczNCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjozODUyOCwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6Mywic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIzODUyOCIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjQwMjB9fQ==
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://btds.zog.link/in/912/?sid=38528&source=0&idzone=3943734&w=300&h=250&mo=&ve=&site_id=38528&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&spot_id=38528&p=https%3A%2F%2Fwww.pornhits.com%2Fvideo%2F129953%2Fmy-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean%2F&katds_labels=
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=1252992771&pid=0&site=28064&sc=NO&usage_type=DCH&subid=0&sid=0&cid=10957&price=0&is_cpm=1&cpm=0.000770622255&ecpm=0.000770622255&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=www.pornhits.com&hostname=auc-banner-hz-3&site_id=0&spot_id=28064&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=native&iabcat=IAB25&min_cpm=0.00010455635491606715&placement_type_id=1&skin_test=&verify_hash=&score=0&ml=&ttl=&space_id=28064&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fs3t3d2y8.ackcdn.net%2Flibrary%2F623611%2Fd072faccd5bf786646901428e54895921ab50f73.jpg&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&stratagem= HTTP/1.1 
Host: rtbrennab.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
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA2NCwidHlwZSI6InBvcCIsImlkem9uZSI6Mzg3MDg5MCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA2NCwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6MSwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjB9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIyODA2NCIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly93d3cucG9ybmhpdHMuY29tL3ZpZGVvLzEyOTk1My9teS1yaXNlLWluLXRoZS1yYW5rcy1wYXJ0LTEtd2l0aC1mbGFzaC1icm93bi1hbmQtZWxzYS1qZWFuLyJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NTY4ODE3MjM5NTJ9fQ==
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://s3t3d2y8.ackcdn.net/library/623611/d072faccd5bf786646901428e54895921ab50f73.jpg
X-Firefox-Spdy: h2

                                        
                                            GET /get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjoyODA3NCwidHlwZSI6InBvcCIsImlkem9uZSI6NDI2MDQzNiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDQmlnJTIwQ29jayUyQ0Jsb25kZSUyQ0hEJTJDSW50ZXJyYWNpYWwlMkNNdXNjdWxhciUyME1hbiUyQ1RhdHRvbyIsImxhYmVscyI6IiIsImFsbG93ZWRfbGFiZWxzIjoiIiwidGl0bGUiOiIiLCJzdWJpZCI6IjAiLCJ1dG0xIjoiIiwidXRtMiI6IiIsInV0bTQiOiIiLCJzcG90X2lkIjoyODA3NCwibXVsdGlwbGUiOmZhbHNlLCJpc19pZnJhbWUiOmZhbHNlLCJyZWZkb21haW4iOiIiLCJwbCI6MTEsInN0cmF0YWdlbSI6bnVsbCwiZ3lyIjowLCJhY2NlbCI6MCwic3NwIjowfSwiYmFubmVyIjp7InciOjMwMCwiaCI6MjUwfX1dLCJzaXRlIjp7ImlkIjoiMjgwNzQiLCJjYXQiOlsiSUFCMjUiXSwicGFnZSI6Imh0dHBzOi8vd3d3LnBvcm5oaXRzLmNvbS92aWRlby8xMjk5NTMvbXktcmlzZS1pbi10aGUtcmFua3MtcGFydC0xLXdpdGgtZmxhc2gtYnJvd24tYW5kLWVsc2EtamVhbi8ifSwiZGV2aWNlIjp7InciOjEyODAsImgiOjEwMjR9LCJ1c2VyIjp7ImlkIjoiOWU0OTQ3ZjM1NzUxNDY1NDExZmQxYTRmNWMzNThjNzgifSwiZXh0Ijp7ImR0IjoxNjU2ODgxNzI0MDA4fX0= HTTP/1.1 
Host: rtbrennab.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
Referer: https://www.pornhits.com/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         159.69.163.6
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: text/html
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
content-encoding: gzip
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, ASCII text, with very long lines (5518)
Size:   2705
Md5:    fd7ed33d4887b4960fdecaf2d43dbefb
Sha1:   78cbd608f7ed426a4f5e8aa2c47224e8f24438f5
Sha256: 9978fde137f532e5d12b93ccd923470739c610bb28229db7f571b88d81e71fba
                                        
                                            GET /library/623611/149fb0f87041aabe2ff8dab2e20b4d61023420a1.jpg HTTP/1.1 
Host: s3t3d2y8.ackcdn.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://rtbrennab.com/
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         185.76.9.15
HTTP/2 200 OK
                                        
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: image/jpeg
content-length: 11427
last-modified: Mon, 25 May 2020 13:34:44 GMT
etag: "5ecbc974-2ca3"
expires: Fri, 30 Jun 2023 11:47:09 GMT
cache-control: max-age=31536000
access-control-allow-origin: *
x-cache-op: HIT
x-accel-expires: @1688195205
server: CDN77-Turbo
x-77-nzt: AblMCQ1MAjr/NmUDAA
x-77-nzt-ray: +6dz0/Xp2M4
x-cache: HIT
x-age: 222518
x-77-pop: stockholmSE
x-77-cache: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, comment: "Resized on https://ezgif.com/resize", baseline, precision 8, 300x300, components 3\012- data
Size:   11427
Md5:    30fc1bea5bc68388706ef924d7513aee
Sha1:   149fb0f87041aabe2ff8dab2e20b4d61023420a1
Sha256: de9c0ed48ef00244aa5cd5384c12f61a24f0dd2d1027b7e19e1e4cfd0c414320
                                        
                                            GET /in/912/?sid=38528&source=0&idzone=3943734&w=300&h=250&mo=&ve=&site_id=38528&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CBig%20Cock%2CBlonde%2CHD%2CInterracial%2CMuscular%20Man%2CTattoo&spot_id=38528&p=https%3A%2F%2Fwww.pornhits.com%2Fvideo%2F129953%2Fmy-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean%2F&katds_labels= HTTP/1.1 
Host: btds.zog.link
                                        
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://rtbrennab.com/
Connection: keep-alive
Cookie: 912.0=1; 1624.0=1; 1625.0=1
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         109.206.182.60
HTTP/2 302 Found
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: text/html; charset=UTF-8
content-length: 0
location: https://tsyndicate.com/iframes2/edf29ad1f6974ad19f88272f6679258e.html?subid=0
pragma: no-cache
vary: *
cache-control: no-cache, no-store, must-revalidate
set-cookie: 912.0=1; expires=Mon, 04 Jul 2022 20:55:23 GMT; path=/; secure; SameSite=None 1624.0=1; expires=Mon, 04 Jul 2022 20:55:23 GMT; path=/; secure; SameSite=None 1625.0=1; expires=Mon, 04 Jul 2022 20:55:23 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /iframes2/4aa232a809394cef981237533f4f060c.html?subid=0 HTTP/1.1 
Host: tsyndicate.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: https://rtbrennab.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         136.243.51.205
HTTP/2 200 OK
                                        
server: nginx
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: text/html; charset=utf-8
pragma: no-cache
expires: 0
vary: Accept-Encoding, *
x-api-version: 2
link: <https://lcdn.tsyndicate.com/sdk/v1/b.b.js>; rel=preload; as=script
x-request-id: c5c133348b0d76c2
set-cookie: ts_uid=a1e2b265-8bf1-42d1-8067-c24a32953e75; expires=Tue, 03 Jan 2023 20:55:23 GMT; domain=.tsyndicate.com; path=/; HttpOnly; secure; SameSite=None bfq=e0SIEaFji4wbOWTIoCGjCwsRYwpuifFQRJmJMWzUsJHDBo4YMmZ06aMg; expires=Mon, 04 Jul 2022 20:55:23 GMT; domain=.tsyndicate.com; path=/; secure; SameSite=None
cache-control: no-cache, no-store, no-transform, must-revalidate, no-transform
x-robots-tag: none, noindex, nofollow
report-to: { "url": "https://pxl.tsyndicate.com/api/v1/heavy-ad/report", "max_age": 86401 }
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   2915
Md5:    d3093d5621d8a296e3a1bbf624202fb5
Sha1:   af241bc6eb27685869ca1ddc3ab85743674d92f3
Sha256: 54f299927858673c02bac3bf2013abafa7e1ae8aea6c2439eef4e4ffca572a47
                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "FB3CFB23A81255D96BF8F143D668C72E5A176E714145AF4414611828B271559D"
Last-Modified: Sun, 03 Jul 2022 12:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=4724
Expires: Sun, 03 Jul 2022 22:14:07 GMT
Date: Sun, 03 Jul 2022 20:55:23 GMT
Connection: keep-alive

                                        
                                            GET /npc/sdk/common/config.js HTTP/1.1 
Host: js.wpshsdk.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
Referer: https://www.pornhits.com/
Origin: https://www.pornhits.com
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         45.133.44.24
HTTP/2 200 OK
                                        
date: Sun, 03 Jul 2022 20:55:23 GMT
content-type: application/javascript; charset=utf-8
content-length: 19
server: nginx/1.18.0
last-modified: Thu, 30 Jun 2022 14:15:54 GMT
etag: "62bdb01a-13"
expires: Sun, 03 Jul 2022 21:00:23 GMT
cache-control: max-age=300
x-proxy-cache: HIT
access-control-allow-origin: *
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text
Size:   19
Md5:    ed6b9d9330367fdf63a130afedfbfb7e
Sha1:   0edcbc3812ce1a0f7115d199b35bda2cb4dcebe4
Sha256: b02e41146b5bb05363a6bf7d45c77e8435e10b528d359072b270dd3d94b3f98e
                                        
                                            GET /msjywtfjuk/qbnbmwyuv.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en; _ga=GA1.1.1471052182.1656881723; _gid=GA1.2.462013895.1656881723; _gat_gtag_UA_213377078_2=1; _ym_uid=1656881723678886286; _ym_d=1656881723; _gat_gtag_UA_115613791_4=1; _ga_HVPVT8JSE5=GS1.1.1656881723.1.0.1656881723.0
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Sun, 03 Jul 2022 20:06:43 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62c1f6d3-1a101"
expires: Sat, 29 Apr 2023 20:06:44 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   43450
Md5:    f0becff7a791d26f18fc23aeaf56c706
Sha1:   5d9c27d7646dc0ea67f0ea231a39de9dacb8576d
Sha256: 9dd7bb95efab04c800a1faea36774e271595f02617f4b2d52c06b832f8ff598c
                                        
                                            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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "C69E6674D38F619C4D7C4F893ECE739F05882761EC1A74738EAFA2AB4E6E1644"
Last-Modified: Fri, 01 Jul 2022 14:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=6647
Expires: Sun, 03 Jul 2022 22:46:11 GMT
Date: Sun, 03 Jul 2022 20:55:24 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "ED6C6F73611FB56DFA41FD028E23F0BC0470D319E51B212B8078C2C0DF8F4638"
Last-Modified: Fri, 01 Jul 2022 19:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=7559
Expires: Sun, 03 Jul 2022 23:01:23 GMT
Date: Sun, 03 Jul 2022 20:55:24 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.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "ED6C6F73611FB56DFA41FD028E23F0BC0470D319E51B212B8078C2C0DF8F4638"
Last-Modified: Fri, 01 Jul 2022 19:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=7559
Expires: Sun, 03 Jul 2022 23:01:23 GMT
Date: Sun, 03 Jul 2022 20:55:24 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%2Fd8609313-2166-40d9-90ec-6341379c3fee.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
                                        
server: nginx
content-length: 7338
x-amzn-requestid: 69972365-37bc-40c3-83f3-0a42f11b02e1
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: UUXKlHg4IAMFqjQ=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-62b80576-186533221f7a071979ab0e84;Sampled=0
x-amzn-remapped-date: Sun, 26 Jun 2022 07:06:30 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: lh8VUqIIAG2j2q1Ob_yjVpGNluTSQ4_jNfRrY_s6OjMD3m4srngH1g==
via: 1.1 bd6f70221217681265382902c6157c76.cloudfront.net (CloudFront), 1.1 1481cc55c02c3a782ad420b6bac2cb32.cloudfront.net (CloudFront), 1.1 google
date: Sun, 03 Jul 2022 08:13:04 GMT
age: 45740
etag: "c0a0f3da9a66c00197d4135196b6685ff977ba3c"
content-type: image/jpeg
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:   7338
Md5:    432a79bdc37c3a8426f75c44b7ee239b
Sha1:   c0a0f3da9a66c00197d4135196b6685ff977ba3c
Sha256: 4c7ebcf38e0bf5c4c4bbd97a5f02ea76e21e1812595980100b39158e5af96bdf
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fd82a5d63-f405-4f54-ad9a-a423aeae09c9.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
                                        
server: nginx
content-length: 7184
x-amzn-requestid: 5bea16e3-4d08-4511-afc7-be12e1bdf693
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: Uk06uGnEIAMFlhA=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-62be9b77-5aedba11418da4ae48e2b501;Sampled=0
x-amzn-remapped-date: Fri, 01 Jul 2022 07:00:07 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: hA0TBCiyjTV0oJ95__nF6-t_K0j37WbuzW1-2z_gZ5qqn62WiajC0g==
via: 1.1 23206a1c229d8877bdd053c4b05f9d12.cloudfront.net (CloudFront), 1.1 28390a4d24ed4fdccd685d99cd06cf4e.cloudfront.net (CloudFront), 1.1 google
date: Sun, 03 Jul 2022 17:55:20 GMT
age: 10804
etag: "984498975a9424217a161f11ea66660a441ef6d4"
content-type: image/jpeg
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:   7184
Md5:    dbf74d25f8acb3f6b249386ce5e55871
Sha1:   984498975a9424217a161f11ea66660a441ef6d4
Sha256: bf666960a2f1d4d8c96a0b3c21bdee73a345a24916d96197d4566f925ecefedd
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F27c91804-20e6-462f-aedb-bdf209d6a7ff.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
                                        
server: nginx
content-length: 7435
x-amzn-requestid: b40cee49-550f-4039-97ef-1b46de576522
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: UqJBtE5voAMFWCg=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-62c0bba4-63212eaf06fb7d291ff9e6da;Sampled=0
x-amzn-remapped-date: Sat, 02 Jul 2022 21:41:56 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Miss from cloudfront
x-amz-cf-id: 2471PJrEUC3dKtVzv8vDMiY53Zt7tLMbYHGk6cNyWmN9eL42S7VYQA==
via: 1.1 8f22423015641505b8c857a37450d6c0.cloudfront.net (CloudFront), 1.1 2ab6211e66998c8b58132661a7e3cade.cloudfront.net (CloudFront), 1.1 google
date: Sat, 02 Jul 2022 22:03:00 GMT
age: 82344
etag: "9b4f9ba34e26b13aef71dd9125dd3878dc2f9105"
content-type: image/jpeg
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:   7435
Md5:    bff84dbfeb7d2cb2edcb367e84ed0f7e
Sha1:   9b4f9ba34e26b13aef71dd9125dd3878dc2f9105
Sha256: 0a760e8b512c0b81c732721e1e0fae54b14b8387aa0d214ce7f325ba128d7a05
                                        
                                            GET /msjywtfjuk/rxufxisduoy.js HTTP/1.1 
Host: www.pornhits.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.pornhits.com/video/129953/my-rise-in-the-ranks-part-1-with-flash-brown-and-elsa-jean/
Cookie: kt_lang=en; _ga=GA1.1.1471052182.1656881723; _gid=GA1.2.462013895.1656881723; _gat_gtag_UA_213377078_2=1; _ym_uid=1656881723678886286; _ym_d=1656881723; _gat_gtag_UA_115613791_4=1; _ga_HVPVT8JSE5=GS1.1.1656881723.1.0.1656881723.0
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         146.19.173.172
HTTP/2 200 OK
                                        
server: nginx/1.20.1
date: Sun, 03 Jul 2022 20:55:22 GMT
content-type: application/javascript
last-modified: Sun, 03 Jul 2022 20:06:43 GMT
vary: Accept-Encoding, Accept-Encoding
etag: W/"62c1f6d3-5157"
expires: Sat, 29 Apr 2023 20:06:44 GMT
access-control-allow-origin: *
cache-control: max-age=25920000, public
pragma: public
x-nginx-cache-status: HIT
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   18735
Md5:    5ec21f831c1614ae94f343c0e9d1cf40
Sha1:   1869d00f3c5bc05902768f5d88031ff93cb7ccaf
Sha256: 20120d57f6ff50c38eeaf0dce408a5ebf7ff8b4850bda58d45d8800e51b3999b
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F431f287f-9907-47aa-be38-0ff4e6db75fc.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
                                        
server: nginx
content-length: 8553
x-amzn-requestid: af8b913f-5eac-4e16-9afa-42b22b9fd6ef
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: UaDuIEpAIAMFv8g=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-62ba4cc0-29637a607cd815ef0080c235;Sampled=0
x-amzn-remapped-date: Tue, 28 Jun 2022 00:35:12 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Miss from cloudfront
x-amz-cf-id: cJeOg5uZyKlrsa7XqpngVUr13fqslxDpFmXr-4pTfqqB46xREdv68Q==
via: 1.1 0aebf3fe433ff96e68d785fad4ea4c0e.cloudfront.net (CloudFront), 1.1 001e7070d795018d01b93988b9723742.cloudfront.net (CloudFront), 1.1 google
date: Sun, 03 Jul 2022 01:39:25 GMT
age: 69359
etag: "303f4efaa9b98e39a935fc6514d3731d40d2977c"
content-type: image/jpeg
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:   8553
Md5:    e6f97e6b64100081e8bed56216564854
Sha1:   303f4efaa9b98e39a935fc6514d3731d40d2977c
Sha256: 92dd803f1633bd65a2b4ac3223d8aa93dd55ed64c74b338aff62323585a3623c
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fdeb89745-bbbb-4235-9425-852f10044585.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
                                        
server: nginx
content-length: 11746
x-amzn-requestid: 9c689086-f3c0-4043-9905-c9580c6c3f51
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: Uhif8EcIIAMF2_A=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-62bd4acc-3417fb3956f99fcd714f562b;Sampled=0
x-amzn-remapped-date: Thu, 30 Jun 2022 07:03:40 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: kNQ35rWo7OfhH5ym33zDygeQdaZER75U-tw3n6Qzl-XeJlpgNQQhmg==
via: 1.1 000f4a2f631bace380a0afa747a82482.cloudfront.net (CloudFront), 1.1 5397b304713f6301c7c94ac084b6ed08.cloudfront.net (CloudFront), 1.1 google
date: Sun, 03 Jul 2022 17:03:19 GMT
age: 13925
etag: "20333be7fca4c09773321bec15ac65c18391fae0"
content-type: image/jpeg
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:   11746
Md5:    1b628b3028c285be25c17f5665f4b727
Sha1:   20333be7fca4c09773321bec15ac65c18391fae0
Sha256: 56d7c15b78a6fd9e5b16c6e59981ba3d68839a6ad840f06ce2910b18495a38cd
                                        
                                            POST / HTTP/1.1 
Host: ocsp.sectigo.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: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         104.18.32.68
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Sun, 03 Jul 2022 20:55:24 GMT
Content-Length: 472
Connection: keep-alive
Last-Modified: Sat, 02 Jul 2022 15:56:19 GMT
Expires: Sat, 09 Jul 2022 15:56:19 GMT
ETag: 445ACAEE748C1D3FBB7BCA4DCA5D57E30F96E98B
Cache-Control: max-age=499854,s-maxage=1800,public,no-transform,must-revalidate
X-OCSP-Responder-ID: mcdpcaocsp7
CF-Cache-Status: DYNAMIC
Server: cloudflare
CF-RAY: 725285976fa50afe-OSL

                                        
                                            GET /npc/sdk/common/core.js HTTP/1.1 
Host: js.wpshsdk.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0