web-tracing-core 2.1.1 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/__test__/css/performance.css +3 -0
  2. package/__test__/err-batch.spec.ts +47 -0
  3. package/__test__/err.spec.ts +82 -0
  4. package/__test__/event.spec.ts +62 -0
  5. package/__test__/html/performance.html +57 -0
  6. package/__test__/html/recordscreen.html +39 -0
  7. package/__test__/http.spec.ts +143 -0
  8. package/__test__/img/performance.png +0 -0
  9. package/__test__/js/performance.js +3 -0
  10. package/__test__/performance.spec.ts +115 -0
  11. package/__test__/recordscreen.spec.ts +50 -0
  12. package/__test__/utils/index.ts +132 -0
  13. package/__test__/utils/pollify.ts +14 -0
  14. package/__test__/utils.spec.ts +18 -0
  15. package/{index.cjs → dist/index.cjs} +1 -1
  16. package/{index.iife.js → dist/index.iife.js} +1 -1
  17. package/{index.iife.min.js → dist/index.iife.min.js} +1 -1
  18. package/{index.mjs → dist/index.mjs} +1 -1
  19. package/dist/package.json +49 -0
  20. package/index.ts +76 -0
  21. package/package.json +9 -9
  22. package/src/common/config.ts +13 -0
  23. package/src/common/constant.ts +57 -0
  24. package/src/common/index.ts +2 -0
  25. package/src/lib/base.ts +129 -0
  26. package/src/lib/err-batch.ts +134 -0
  27. package/src/lib/err.ts +323 -0
  28. package/src/lib/event-dwell.ts +63 -0
  29. package/src/lib/event.ts +252 -0
  30. package/src/lib/eventBus.ts +97 -0
  31. package/src/lib/exportMethods.ts +208 -0
  32. package/src/lib/http.ts +197 -0
  33. package/src/lib/intersectionObserver.ts +169 -0
  34. package/src/lib/line-status.ts +45 -0
  35. package/src/lib/options.ts +325 -0
  36. package/src/lib/performance.ts +302 -0
  37. package/src/lib/pv.ts +199 -0
  38. package/src/lib/recordscreen.ts +169 -0
  39. package/src/lib/replace.ts +371 -0
  40. package/src/lib/sendData.ts +264 -0
  41. package/src/observer/computed.ts +52 -0
  42. package/src/observer/config.ts +1 -0
  43. package/src/observer/dep.ts +21 -0
  44. package/src/observer/index.ts +91 -0
  45. package/src/observer/ref.ts +80 -0
  46. package/src/observer/types.ts +22 -0
  47. package/src/observer/watch.ts +19 -0
  48. package/src/observer/watcher.ts +88 -0
  49. package/src/types/index.ts +126 -0
  50. package/src/utils/debug.ts +17 -0
  51. package/src/utils/element.ts +47 -0
  52. package/src/utils/fingerprintjs.ts +2132 -0
  53. package/src/utils/getIps.ts +127 -0
  54. package/src/utils/global.ts +50 -0
  55. package/src/utils/index.ts +552 -0
  56. package/src/utils/is.ts +78 -0
  57. package/src/utils/localStorage.ts +70 -0
  58. package/src/utils/polyfill.ts +11 -0
  59. package/src/utils/session.ts +29 -0
  60. /package/{LICENSE → dist/LICENSE} +0 -0
  61. /package/{README.md → dist/README.md} +0 -0
  62. /package/{index.d.ts → dist/index.d.ts} +0 -0
@@ -0,0 +1,132 @@
1
+ import path from 'path'
2
+ import http from 'http'
3
+ import url from 'url'
4
+ import fs from 'fs'
5
+ import puppeteer from 'puppeteer'
6
+
7
+ interface IMimeType {
8
+ [key: string]: string
9
+ }
10
+
11
+ export function startServer(defaultPort = 3030) {
12
+ return new Promise<http.Server>((resolve, reject) => {
13
+ const mimeType: IMimeType = {
14
+ '.html': 'text/html',
15
+ '.js': 'text/javascript',
16
+ '.css': 'text/css',
17
+ '.png': 'image/png'
18
+ }
19
+
20
+ const s = http.createServer((req, res) => {
21
+ const parsedUrl = url.parse(req.url!)
22
+ const sanitizePath = path
23
+ .normalize(parsedUrl.pathname!)
24
+ .replace(/^(\.\.[/\\])+/, '')
25
+ const pathname = path.join(__dirname, '../', sanitizePath)
26
+
27
+ try {
28
+ const data = fs.readFileSync(pathname)
29
+ const ext = path.parse(pathname).ext
30
+ res.setHeader('Content-type', mimeType[ext] || 'text/plain')
31
+ res.setHeader('Access-Control-Allow-Origin', '*')
32
+ res.setHeader('Access-Control-Allow-Methods', 'GET')
33
+ res.setHeader('Access-Control-Allow-Headers', 'Content-type')
34
+ setTimeout(() => {
35
+ res.end(data)
36
+ }, 100)
37
+ } catch (error) {
38
+ res.end()
39
+ }
40
+ })
41
+ s.listen(defaultPort)
42
+ .on('listening', () => {
43
+ resolve(s)
44
+ })
45
+ .on('error', e => {
46
+ reject(e)
47
+ })
48
+ })
49
+ }
50
+
51
+ export function getServerURL(server: http.Server): string {
52
+ const address = server.address()
53
+ if (address && typeof address !== 'string') {
54
+ return `http://localhost:${address.port}`
55
+ } else {
56
+ return `${address}`
57
+ }
58
+ }
59
+
60
+ export function replaceLast(str: string, find: string, replace: string) {
61
+ const index = str.lastIndexOf(find)
62
+ if (index === -1) {
63
+ return str
64
+ }
65
+ return str.substring(0, index) + replace + str.substring(index + find.length)
66
+ }
67
+
68
+ export async function launchPuppeteer(
69
+ options?: Parameters<(typeof puppeteer)['launch']>[0]
70
+ ) {
71
+ const resolveExecutablePath = () => {
72
+ const envPath =
73
+ process.env.PUPPETEER_EXECUTABLE_PATH || process.env.PUPPETEER_EXEC_PATH
74
+ const candidates = [
75
+ envPath,
76
+ '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
77
+ '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
78
+ '/Applications/Chromium.app/Contents/MacOS/Chromium',
79
+ '/opt/homebrew/bin/chromium',
80
+ '/opt/homebrew/bin/google-chrome',
81
+ '/usr/bin/google-chrome',
82
+ '/usr/bin/chromium-browser',
83
+ '/usr/bin/chromium'
84
+ ].filter(Boolean) as string[]
85
+
86
+ for (const p of candidates) {
87
+ try {
88
+ if (fs.existsSync(p) && fs.statSync(p).isFile()) return p
89
+ } catch {
90
+ continue
91
+ }
92
+ }
93
+ return undefined
94
+ }
95
+
96
+ const resolvedExecutablePath =
97
+ options?.executablePath || resolveExecutablePath()
98
+
99
+ return await puppeteer.launch({
100
+ headless: true,
101
+ defaultViewport: {
102
+ width: 1920,
103
+ height: 1080
104
+ },
105
+ args: ['--no-sandbox'],
106
+ ...(resolvedExecutablePath
107
+ ? { executablePath: resolvedExecutablePath }
108
+ : options?.channel
109
+ ? {}
110
+ : { channel: 'chrome' }),
111
+ ...options
112
+ })
113
+ }
114
+
115
+ export function getHtml(fileName: string, code: string) {
116
+ const filePath = path.resolve(__dirname, `../html/${fileName}`)
117
+ const html = fs.readFileSync(filePath, 'utf8')
118
+ return replaceLast(
119
+ html,
120
+ '</body>',
121
+ `
122
+ <script>
123
+ ${code}
124
+ </script>
125
+ </body>
126
+ `
127
+ )
128
+ }
129
+
130
+ export function delay(timeout: number) {
131
+ return new Promise(resolve => setTimeout(resolve, timeout))
132
+ }
@@ -0,0 +1,14 @@
1
+ export type PromiseRejectionEventInit = {
2
+ promise: Promise<any>
3
+ reason: any
4
+ }
5
+
6
+ export class PromiseRejectionEvent extends Event {
7
+ public readonly reason: any
8
+ public readonly promise: Promise<any>
9
+ constructor(type: string, eventInitDict: PromiseRejectionEventInit) {
10
+ super(type)
11
+ this.promise = eventInitDict.promise
12
+ this.reason = eventInitDict.reason
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ import { getNodeXPath } from '../src/utils/element'
2
+
3
+ describe('utils', () => {
4
+ it('getNodeXPath should work', () => {
5
+ const element = document.createElement('div')
6
+ element.innerHTML = `
7
+ <div id="wrapper">
8
+ <div></div>
9
+ <div></div>
10
+ <div>
11
+ <div class="target"></div>
12
+ </div>
13
+ </div>
14
+ `
15
+ const target = element.querySelector('.target')!
16
+ expect(getNodeXPath(target)).toBe('#wrapper>div>div')
17
+ })
18
+ })
@@ -826,7 +826,7 @@ function off(target, eventName, handler, opitons = false) {
826
826
  target.removeEventListener(eventName, handler, opitons);
827
827
  }
828
828
 
829
- var version$1 = "2.1.1";
829
+ var version$1 = "2.1.0";
830
830
 
831
831
  const DEVICE_KEY = "_webtracing_device_id";
832
832
  const SESSION_KEY = "_webtracing_session_id";
@@ -825,7 +825,7 @@
825
825
  target.removeEventListener(eventName, handler, opitons);
826
826
  }
827
827
 
828
- var version$1 = "2.1.1";
828
+ var version$1 = "2.1.0";
829
829
 
830
830
  const DEVICE_KEY = "_webtracing_device_id";
831
831
  const SESSION_KEY = "_webtracing_session_id";
@@ -1,4 +1,4 @@
1
- (function(I){"use strict";typeof window>"u"&&typeof global<"u"&&(global.window=global,global.self=global,global.requestAnimationFrame||(global.requestAnimationFrame=e=>setTimeout(e,0)),global.cancelAnimationFrame||(global.cancelAnimationFrame=e=>clearTimeout(e)));function rt(e){return function(n){return Object.prototype.toString.call(n)===`[object ${e}]`}}const ar=rt("RegExp"),sc=rt("Number"),cc=rt("String"),lc=rt("Boolean"),uc=rt("Function"),An=rt("Array"),dc=rt("Window"),or=e=>lc(e)&&String(e)==="false";function fc(e){return cc(e)&&e.trim()===""||e===void 0||e===null}const hc=dc(typeof window<"u"?window:0),pc=typeof window<"u"&&!!window.process?.versions?.electron,sr=typeof navigator<"u"&&navigator.userAgent.includes("jsdom")||typeof window<"u"&&window.jsdom;function ki(){return hc||pc||sr?window:{}}function gc(){return E.__webTracing__=E.__webTracing__||{},E.__webTracing__}function mc(){return!!E.__webTracingInit__}const E=ki(),pe=gc();class Ue{subs=new Set;static target;addSub(){Ue.target&&this.subs.add(Ue.target)}notify(...n){this.subs.forEach(function(t){t.proxy.dirty=!0,t.update(...n)})}}const cr="__webtracingobserver__";function bc(e){return Object.prototype.toString.call(e)==="[object RegExp]"}class vc{target;constructor(n){this.target=n}defineReactive(){const n=new Ue,t=yc(()=>{n.addSub()},r=>{n.notify(r)});return new Proxy(this.target,t)}}function yc(e,n){const t=new WeakMap,r={get(i,a,c){const o=Reflect.get(i,a,c);if(e&&e(),typeof o=="object"&&o!==null&&!bc(o)){let s=t.get(o);return s||(s=new Proxy(o,r),t.set(o,s)),s}return o},set(i,a,c,o){const s=Reflect.get(i,a,o);if(s===c)return s;const l=JSON.parse(JSON.stringify(i)),u=Reflect.set(i,a,c,o);return n&&n(l),u}};return r}const _c=new WeakMap;function Ic(e){const n={value:e};n[cr]=!0;const t=new vc(n),r=t.defineReactive();return _c.set(t,r),r}function wc(e){return!!e[cr]}const Ei=[];function xi(e){Ue.target&&Ei.push(Ue.target),Ue.target=e}function Ri(){Ue.target=Ei.pop()}class Ti{vm;computed;watch;proxy;dep;getter;callback;constructor(n,t,r){const{computed:i,watch:a,callback:c}=t;this.getter=r,this.computed=i||!1,this.watch=a||!1,this.callback=c,this.proxy={value:"",dirty:!0},this.vm=n,i?this.dep=new Ue:a?this.watchGet():this.get()}update(n){this.computed?this.dep.notify():this.watch?n!==this.proxy.value&&this.callback&&this.callback(this.proxy.value,n):this.get()}get(){xi(this);const n=this.computed?Li.get(this.vm).call(this.vm):"";return n!==this.proxy.value&&(this.proxy.dirty=!1,this.proxy.value=n),Ri(),n}watchGet(){xi(this),this.proxy.dirty=!1,this.getter&&(this.proxy.value=this.getter()),Ri()}depend(){this.dep.addSub()}}class Cc{target;constructor(n){this.target=n}defineReactive(){const n=new Ti(this,{computed:!0}),t={get(){return n.proxy.dirty?(n.depend(),n.get()):(n.depend(),n.proxy.value)}};return new Proxy(this.target,t)}}const Li=new WeakMap;function Sc(e){const n={value:0};n[cr]=!0;const t=new Cc(n),r=t.defineReactive();return Li.set(t,e),r}function Ac(e,n){new Ti("",{watch:!0,callback:e},n)}function kc(e,n){wc(e)&&Ac((t,r)=>{n(t,r)},function(){return e.value})}function lr(){return!!window.Proxy}function Ec(e){return lr()?Ic(e):{value:e}}function Oi(e){return lr()?Sc(e):{value:e()}}function xc(e,n){return lr()?kc(e,n):()=>({})}class Rc{dsn="";appName="";appCode="";appVersion="";userUuid="";sdkUserUuid="";debug=!1;pv={core:!1};performance={core:!1,firstResource:!1,server:!1};error={core:!1,server:!1};event={core:!1};recordScreen=!0;timeout=5e3;maxQueueLength=200;checkRecoverInterval=1;ext={};tracesSampleRate=1;cacheMaxLength=5;cacheWatingTime=5e3;ignoreErrors=[];ignoreRequest=[];scopeError=!1;localization=!1;sendTypeByXmlBody=!1;beforePushEventList=[];beforeSendData=[];afterSendData=[];localizationOverFlow=()=>{};constructor(n){const t=this.transitionOptions(n);t.ignoreRequest.push(new RegExp(t.dsn)),kn(this,t)}transitionOptions(n){const t=kn({},this,n),{beforePushEventList:r,beforeSendData:i,afterSendData:a}=n,{pv:c,performance:o,error:s,event:l}=t;return typeof c=="boolean"&&(t.pv={core:c}),typeof o=="boolean"&&(t.performance={core:o,firstResource:o,server:o}),typeof s=="boolean"&&(t.error={core:s,server:s}),typeof l=="boolean"&&(t.event={core:l}),r&&(t.beforePushEventList=[r]),i&&(t.beforeSendData=[i]),a&&(t.afterSendData=[a]),n.timeout!==void 0&&(t.timeout=n.timeout),n.maxQueueLength!==void 0&&(t.maxQueueLength=n.maxQueueLength),n.checkRecoverInterval!==void 0&&(t.checkRecoverInterval=n.checkRecoverInterval),t}}function Tc(e){const{dsn:n,appName:t,appCode:r,appVersion:i,userUuid:a,debug:c,recordScreen:o,pv:s,performance:l,error:u,event:d,ext:h,tracesSampleRate:f,cacheMaxLength:p,cacheWatingTime:_,ignoreErrors:g,ignoreRequest:v,scopeError:b,localization:y,sendTypeByXmlBody:m,beforePushEventList:k,beforeSendData:T,timeout:w,maxQueueLength:A,checkRecoverInterval:R}=e,C=[];return s&&typeof s=="object"?C.push(N(s.core,"pv.core","boolean")):C.push(N(s,"pv","boolean")),l&&typeof l=="object"?C.push(N(l.core,"performance.core","boolean"),N(l.firstResource,"performance.firstResource","boolean"),N(l.server,"performance.server","boolean")):C.push(N(l,"performance","boolean")),u&&typeof u=="object"?C.push(N(u.core,"error.core","boolean"),N(u.server,"error.server","boolean")):C.push(N(u,"error","boolean")),d&&typeof d=="object"?C.push(N(d.core,"event.core","boolean")):C.push(N(d,"event","boolean")),[N(n,"dsn","string"),N(t,"appName","string"),N(r,"appCode","string"),N(i,"appVersion","string"),N(a,"userUuid","string"),N(c,"debug","boolean"),N(o,"recordScreen","boolean"),N(h,"ext","object"),N(f,"tracesSampleRate","number"),N(p,"cacheMaxLength","number"),N(_,"cacheWatingTime","number"),N(g,"ignoreErrors","array"),Fi(g,"ignoreErrors",["string","regexp"]),N(v,"ignoreRequest","array"),Fi(v,"ignoreRequest",["string","regexp"]),N(b,"scopeError","boolean"),N(y,"localization","boolean"),N(m,"sendTypeByXmlBody","boolean"),N(k,"beforePushEventList","function"),N(T,"beforeSendData","function"),N(w,"timeout","number"),N(A,"maxQueueLength","number"),N(R,"checkRecoverInterval","number")].every(q=>!!q)}function Lc(e){return[Mi(e.appName,"appName"),Mi(e.dsn,"dsn")].every(t=>!!t)}function Mi(e,n){return fc(e)?(it(`\u3010${n}\u3011\u53C2\u6570\u5FC5\u586B`),!1):!0}function N(e,n,t){return!e||yt(e)===t?!0:(it(`TypeError:\u3010${n}\u3011\u671F\u671B\u4F20\u5165${t}\u7C7B\u578B\uFF0C\u76EE\u524D\u662F${yt(e)}\u7C7B\u578B`),!1)}function Fi(e,n,t){if(!e)return!0;let r=!0;return e.forEach(i=>{t.includes(yt(i))||(it(`TypeError:\u3010${n}\u3011\u6570\u7EC4\u5185\u7684\u503C\u671F\u671B\u4F20\u5165${t.join("|")}\u7C7B\u578B\uFF0C\u76EE\u524D\u503C${i}\u662F${yt(i)}\u7C7B\u578B`),r=!1)}),r}I.options=void 0;function Oc(e){return!Lc(e)||!Tc(e)?!1:(I.options=Ec(new Rc(e)),pe.options=I.options,!0)}function bt(...e){I.options.value.debug&&console.log("@web-tracing: ",...e)}function it(...e){console.error("@web-tracing: ",...e)}function Ie(e,n,t,r=!1){e.addEventListener(n,t,r)}function vt(e,n,t,r=!1){if(e!==void 0&&(n in e||r)){const i=e[n],a=t(i);uc(a)&&(e[n]=a)}}function Vt(e){return Object.keys(e).forEach(n=>{const t=e[n];sc(t)&&(e[n]=t===0?void 0:parseFloat(t.toFixed(2)))}),e}function me(){return typeof document>"u"||document.location==null?"":document.location.href}function W(){return Date.now()}function Ni(e,n,t=!1){let r=null,i;return function(...a){i=a,r===null&&(t&&e.apply(this,i),r=setTimeout(()=>{r=null,e.apply(this,i)},n))}}function Mc(e,n,t=!1){let r=null;return function(...i){t&&(e.call(this,...i),t=!1),r&&clearTimeout(r),r=setTimeout(()=>{e.call(this,...i)},n)}}function ur(e,...n){const t=new Map;for(const r of e){const i=n.filter(a=>r[a]).map(a=>r[a]).join(":");t.has(i)||t.set(i,[]),t.get(i).push(r)}return Array.from(t.values())}function kn(e,...n){return n.forEach(t=>{for(const r in t)t[r]!==null&&ar(t[r])?e[r]=t[r]:t[r]!==null&&typeof t[r]=="object"?e[r]=kn(e[r]||(An(t[r])?[]:{}),t[r]):e[r]=t[r]}),e}function ie(e){return mc()?!0:(it(`${e} \u9700\u8981\u5728SDK\u521D\u59CB\u5316\u4E4B\u540E\u4F7F\u7528`),!1)}function yt(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function _t(e,n){return e in n}function Fc(e){return Math.random()<=e}function It(e,n,t="0"){const r=String(e);if(r.length<n){let i=r;for(let a=0;a<n-r.length;a+=1)i=t+i;return i}return r}function Nc(e){return e.split("?")[0]}function dr(){const e=new Date,n=parseInt(`${e.getFullYear()}${It(e.getMonth()+1,2)}${It(e.getDate(),2)}`,10).toString(16),t=parseInt(`${It(e.getHours(),2)}${It(e.getMinutes(),2)}${It(e.getSeconds(),2)}${It(e.getMilliseconds(),3)}`,10).toString(16);let r=n+t.length+t;for(;r.length<32;)r+=Math.floor(Math.random()*16).toString(16);return`${r.slice(0,8)}-${r.slice(8,16)}-${r.slice(16)}`}function fr(e){if(typeof document>"u")return;const n=document.cookie.match(new RegExp(`${e}=([^;]+)(;|$)`));return n?n[1]:void 0}function Dc(e,n){return navigator.sendBeacon(e,JSON.stringify(n))}const En=[];function Zc(e,n){return new Promise(t=>{const r=new Image;r.src=`${e}?v=${encodeURIComponent(JSON.stringify(n))}`,En.push(r),r.onload=()=>{t()},r.onerror=function(){t()}})}function Di(e,n,t=5e3){return new Promise((r,i)=>{const a=new XMLHttpRequest;a.open("post",e),a.setRequestHeader("content-type","application/json"),a.timeout=t,a.send(JSON.stringify(n)),a.onreadystatechange=function(){a.readyState===4&&(a.status>=200&&a.status<300?r():i(new Error("@web-tracing XMLHttpRequest error: "+a.status)))},a.ontimeout=function(){i(new Error("@web-tracing XMLHttpRequest timeout"))},a.onerror=function(){i(new Error("@web-tracing XMLHttpRequest network error"))}})}function xn(e,n,t){if(e.length===0)return t;let r;for(let i=0;i<e.length;i++){const a=e[i];i===0||n?r=a(t):r=a(r)}return r}function hr(e){return An(e)?e:[e]}const Bc=Array.prototype.map||function(n){const t=[];for(let r=0;r<this.length;r+=1)t.push(n(this[r],r,this));return t};function Zi(e,n){return Bc.call(e,n)}const Uc=Array.prototype.filter||function(n){const t=[];for(let r=0;r<this.length;r+=1)n(this[r],r,this)&&t.push(this[r]);return t};function zc(e,n){return Uc.call(e,n)}const Wc=typeof window<"u"&&window.requestIdleCallback||typeof window<"u"&&window.requestAnimationFrame||(e=>setTimeout(e,17));function Bi(e,n){const t=JSON.stringify(e);return new TextEncoder().encode(t).length/1024>n}function pr(e){if(!e)return{};const n={},t=e.split("?")[1];if(t){const r=t.split("&");for(const i of r){const[a,c]=i.split("=");n[decodeURIComponent(a)]=decodeURIComponent(c)}}return n}function gr(e,n=new Map){if(e!==null&&typeof e=="object"){let t=n.get(e);return t||(e instanceof Array?(t=[],n.set(e,t),e.forEach((r,i)=>{t[i]=gr(r,n)})):(t={},n.set(e,t),Object.keys(e).forEach(r=>{_t(r,e)&&(t[r]=gr(e[r],n))})),t)}return e}function ze(e,n,t,r=!1){e.removeEventListener(n,t,r)}var Hc="2.1.1";const Ui="_webtracing_device_id",mr="_webtracing_session_id",Pc=18e5,br="_webtracing_localization_key",Vc=Hc;var S=(e=>(e.ERROR="error",e.CONSOLEERROR="consoleError",e.UNHANDLEDREJECTION="unhandledrejection",e.CLICK="click",e.LOAD="load",e.BEFOREUNLOAD="beforeunload",e.FETCH="fetch",e.XHROPEN="xhr-open",e.XHRSEND="xhr-send",e.HASHCHANGE="hashchange",e.HISTORYPUSHSTATE="history-pushState",e.HISTORYREPLACESTATE="history-replaceState",e.POPSTATE="popstate",e.READYSTATECHANGE="readystatechange",e.ONLINE="online",e.OFFLINE="offline",e))(S||{}),be=(e=>(e.PV="pv",e.PVDURATION="pv-duration",e.ERROR="error",e.PERFORMANCE="performance",e.CLICK="click",e.DWELL="dwell",e.CUSTOM="custom",e.INTERSECTION="intersection",e))(be||{}),Q=(e=>(e.PAGE="page",e.RESOURCE="resource",e.SERVER="server",e.CODE="code",e.REJECT="reject",e.CONSOLEERROR="console.error",e))(Q||{});const Gc={0:"navigate",1:"reload",2:"back_forward",255:"reserved"};class Xc{handlers;constructor(){this.handlers={}}addEvent(n){!this.handlers[n.type]&&(this.handlers[n.type]=[]),this._getCallbackIndex(n)===-1&&this.handlers[n.type]?.push(n.callback)}delEvent(n){const t=this._getCallbackIndex(n);t!==-1&&this.handlers[n.type]?.splice(t,1)}changeEvent(n,t){const r=this._getCallbackIndex(n);r!==-1&&this.handlers[n.type]?.splice(r,1,t)}getEvent(n){return this.handlers[n]||[]}runEvent(n,...t){this.getEvent(n).forEach(i=>{i(...t)})}_getCallbackIndex(n){if(this.handlers[n.type]){const t=this.handlers[n.type];return t?t.findIndex(r=>r===n.callback):-1}else return-1}removeEvents(n){n.forEach(t=>{delete this.handlers[t]})}}const O=pe.eventBus||(pe.eventBus=new Xc),P={consoleError:null,xhrOpen:null,xhrSend:null,fetch:null,historyPushState:null,historyReplaceState:null},H={error:null,unhandledrejection:null,click:null,load:null,beforeunload:null,hashchange:null,popstate:null,offline:null,online:null};function jc(){for(const e in S)_t(e,S)&&Yc(e)}function Yc(e){if(!_t(e,S))return;switch(S[e]){case S.ERROR:Jc(S.ERROR);break;case S.UNHANDLEDREJECTION:Kc(S.UNHANDLEDREJECTION);break;case S.CONSOLEERROR:qc(S.CONSOLEERROR);break;case S.CLICK:Qc(S.CLICK);break;case S.LOAD:$c(S.LOAD);break;case S.BEFOREUNLOAD:el(S.BEFOREUNLOAD);break;case S.XHROPEN:tl(S.XHROPEN);break;case S.XHRSEND:nl(S.XHRSEND);break;case S.FETCH:rl(S.FETCH);break;case S.HASHCHANGE:il(S.HASHCHANGE);break;case S.HISTORYPUSHSTATE:ol(S.HISTORYPUSHSTATE);break;case S.HISTORYREPLACESTATE:al(S.HISTORYREPLACESTATE);break;case S.POPSTATE:sl(S.POPSTATE);break;case S.OFFLINE:cl(S.OFFLINE);break;case S.ONLINE:ll(S.ONLINE);break}}function Jc(e){const n=function(t){O.runEvent(e,t)};H.error=n,Ie(E,"error",n,!0)}function Kc(e){const n=function(t){O.runEvent(e,t)};H.unhandledrejection=n,Ie(E,"unhandledrejection",n)}function qc(e){P.consoleError=console.error,vt(console,"error",n=>function(...t){t[0]&&t[0].slice&&t[0].slice(0,12)==="@web-tracing"||O.runEvent(e,t),n.apply(this,t)})}function Qc(e){if(!("document"in E))return;const n=Ni(O.runEvent,100,!0),t=function(r){n.call(O,e,r)};H.click=t,Ie(E.document,"click",t,!0)}function $c(e){const n=function(t){O.runEvent(e,t)};H.load=n,Ie(E,"load",n,!0)}function el(e){const n=function(t){O.runEvent(e,t)};H.beforeunload=n,Ie(E,"beforeunload",n,!1)}function tl(e){"XMLHttpRequest"in E&&(P.xhrOpen=XMLHttpRequest.prototype.open,vt(XMLHttpRequest.prototype,"open",n=>function(...t){O.runEvent(e,...t),n.apply(this,t)}))}function nl(e){"XMLHttpRequest"in E&&(P.xhrSend=XMLHttpRequest.prototype.send,vt(XMLHttpRequest.prototype,"send",n=>function(...t){O.runEvent(e,this,...t),n.apply(this,t)}))}function rl(e){"fetch"in E&&(P.fetch=E.fetch,vt(E,"fetch",n=>function(...t){const r=W(),i={};return n.apply(E,t).then(a=>(O.runEvent(e,t[0],t[1],a,r,i),a))}))}function il(e){const n=function(t){O.runEvent(e,t)};H.hashchange=n,Ie(E,"hashchange",n)}function al(e){P.historyReplaceState=history.replaceState,vt(history,"replaceState",n=>function(...t){O.runEvent(e,...t),n.apply(this,t)})}function ol(e){P.historyPushState=history.pushState,vt(history,"pushState",n=>function(...t){O.runEvent(e,...t),n.apply(this,t)})}function sl(e){const n=function(t){O.runEvent(e,t)};H.popstate=n,Ie(E,"popstate",n)}function cl(e){const n=function(t){O.runEvent(e,t)};H.offline=n,Ie(E,"offline",n)}function ll(e){const n=function(t){O.runEvent(e,t)};H.offline=n,Ie(E,"offline",n)}function ul(){P.consoleError&&console.error!==P.consoleError&&(console.error=P.consoleError),P.xhrOpen&&XMLHttpRequest.prototype.open!==P.xhrOpen&&(XMLHttpRequest.prototype.open=P.xhrOpen),P.xhrSend&&XMLHttpRequest.prototype.send!==P.xhrSend&&(XMLHttpRequest.prototype.send=P.xhrSend),P.fetch&&E.fetch!==P.fetch&&(E.fetch=P.fetch),P.historyPushState&&history.pushState!==P.historyPushState&&(history.pushState=P.historyPushState),P.historyReplaceState&&history.replaceState!==P.historyReplaceState&&(history.replaceState=P.historyReplaceState),H.error&&ze(E,"error",H.error,!0),H.unhandledrejection&&ze(E,"unhandledrejection",H.unhandledrejection),H.click&&ze(E.document,"click",H.click,!0),H.load&&ze(E,"load",H.load,!0),H.beforeunload&&ze(E,"beforeunload",H.beforeunload,!1),H.hashchange&&ze(E,"hashchange",H.hashchange),H.popstate&&ze(E,"popstate",H.popstate),H.offline&&ze(E,"offline",H.offline),H.online&&ze(E,"online",H.online),Object.keys(P).forEach(e=>{P[e]=null}),Object.keys(H).forEach(e=>{H[e]=null})}let vr=function(){return vr=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(const i in n=arguments[t])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e},vr.apply(this,arguments)};function We(e,n,t,r){return new(t||(t=Promise))(function(i,a){function c(l){try{s(r.next(l))}catch(u){a(u)}}function o(l){try{s(r.throw(l))}catch(u){a(u)}}function s(l){let u;l.done?i(l.value):(u=l.value,u instanceof t?u:new t(function(d){d(u)})).then(c,o)}s((r=r.apply(e,n||[])).next())})}function Te(e,n){let t,r,i,a,c={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(s){return function(l){return function(u){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(c=0)),c;)try{if(t=1,r&&(i=2&u[0]?r.return:u[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,u[1])).done)return i;switch(r=0,i&&(u=[2&u[0],i.value]),u[0]){case 0:case 1:i=u;break;case 4:return c.label++,{value:u[1],done:!1};case 5:c.label++,r=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(i=c.trys,!((i=i.length>0&&i[i.length-1])||u[0]!==6&&u[0]!==2)){c=0;continue}if(u[0]===3&&(!i||u[1]>i[0]&&u[1]<i[3])){c.label=u[1];break}if(u[0]===6&&c.label<i[1]){c.label=i[1],i=u;break}if(i&&c.label<i[2]){c.label=i[2],c.ops.push(u);break}i[2]&&c.ops.pop(),c.trys.pop();continue}u=n.call(e,c)}catch(d){u=[6,d],r=0}finally{t=i=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([s,l])}}}function wt(e,n,t){if(t||arguments.length===2)for(var r,i=0,a=n.length;i<a;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return e.concat(r||Array.prototype.slice.call(n))}function He(e,n){return new Promise(function(t){return setTimeout(t,e,n)})}function zi(e){return!!e&&typeof e.then=="function"}function Wi(e,n){try{const t=e();zi(t)?t.then(function(r){return n(!0,r)},function(r){return n(!1,r)}):n(!0,t)}catch(t){n(!1,t)}}function Hi(e,n,t){return t===void 0&&(t=16),We(this,void 0,void 0,function(){let r,i,a;return Te(this,function(c){switch(c.label){case 0:r=Date.now(),i=0,c.label=1;case 1:return i<e.length?(n(e[i],i),(a=Date.now())>=r+t?(r=a,[4,He(0)]):[3,3]):[3,4];case 2:c.sent(),c.label=3;case 3:return++i,[3,1];case 4:return[2]}})})}function Rn(e){e.then(void 0,function(){})}function Ye(e,n){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],n=[n[0]>>>16,65535&n[0],n[1]>>>16,65535&n[1]];const t=[0,0,0,0];return t[3]+=e[3]+n[3],t[2]+=t[3]>>>16,t[3]&=65535,t[2]+=e[2]+n[2],t[1]+=t[2]>>>16,t[2]&=65535,t[1]+=e[1]+n[1],t[0]+=t[1]>>>16,t[1]&=65535,t[0]+=e[0]+n[0],t[0]&=65535,[t[0]<<16|t[1],t[2]<<16|t[3]]}function we(e,n){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],n=[n[0]>>>16,65535&n[0],n[1]>>>16,65535&n[1]];const t=[0,0,0,0];return t[3]+=e[3]*n[3],t[2]+=t[3]>>>16,t[3]&=65535,t[2]+=e[2]*n[3],t[1]+=t[2]>>>16,t[2]&=65535,t[2]+=e[3]*n[2],t[1]+=t[2]>>>16,t[2]&=65535,t[1]+=e[1]*n[3],t[0]+=t[1]>>>16,t[1]&=65535,t[1]+=e[2]*n[2],t[0]+=t[1]>>>16,t[1]&=65535,t[1]+=e[3]*n[1],t[0]+=t[1]>>>16,t[1]&=65535,t[0]+=e[0]*n[3]+e[1]*n[2]+e[2]*n[1]+e[3]*n[0],t[0]&=65535,[t[0]<<16|t[1],t[2]<<16|t[3]]}function Ct(e,n){return(n%=64)===32?[e[1],e[0]]:n<32?[e[0]<<n|e[1]>>>32-n,e[1]<<n|e[0]>>>32-n]:(n-=32,[e[1]<<n|e[0]>>>32-n,e[0]<<n|e[1]>>>32-n])}function ve(e,n){return(n%=64)===0?e:n<32?[e[0]<<n|e[1]>>>32-n,e[1]<<n]:[e[1]<<n-32,0]}function X(e,n){return[e[0]^n[0],e[1]^n[1]]}function Pi(e){return e=X(e,[0,e[0]>>>1]),e=X(e=we(e,[4283543511,3981806797]),[0,e[0]>>>1]),e=X(e=we(e,[3301882366,444984403]),[0,e[0]>>>1])}function dl(e,n){n=n||0;let t,r=(e=e||"").length%16,i=e.length-r,a=[0,n],c=[0,n],o=[0,0],s=[0,0],l=[2277735313,289559509],u=[1291169091,658871167];for(t=0;t<i;t+=16)o=[255&e.charCodeAt(t+4)|(255&e.charCodeAt(t+5))<<8|(255&e.charCodeAt(t+6))<<16|(255&e.charCodeAt(t+7))<<24,255&e.charCodeAt(t)|(255&e.charCodeAt(t+1))<<8|(255&e.charCodeAt(t+2))<<16|(255&e.charCodeAt(t+3))<<24],s=[255&e.charCodeAt(t+12)|(255&e.charCodeAt(t+13))<<8|(255&e.charCodeAt(t+14))<<16|(255&e.charCodeAt(t+15))<<24,255&e.charCodeAt(t+8)|(255&e.charCodeAt(t+9))<<8|(255&e.charCodeAt(t+10))<<16|(255&e.charCodeAt(t+11))<<24],o=Ct(o=we(o,l),31),a=Ye(a=Ct(a=X(a,o=we(o,u)),27),c),a=Ye(we(a,[0,5]),[0,1390208809]),s=Ct(s=we(s,u),33),c=Ye(c=Ct(c=X(c,s=we(s,l)),31),a),c=Ye(we(c,[0,5]),[0,944331445]);switch(o=[0,0],s=[0,0],r){case 15:s=X(s,ve([0,e.charCodeAt(t+14)],48));case 14:s=X(s,ve([0,e.charCodeAt(t+13)],40));case 13:s=X(s,ve([0,e.charCodeAt(t+12)],32));case 12:s=X(s,ve([0,e.charCodeAt(t+11)],24));case 11:s=X(s,ve([0,e.charCodeAt(t+10)],16));case 10:s=X(s,ve([0,e.charCodeAt(t+9)],8));case 9:s=we(s=X(s,[0,e.charCodeAt(t+8)]),u),c=X(c,s=we(s=Ct(s,33),l));case 8:o=X(o,ve([0,e.charCodeAt(t+7)],56));case 7:o=X(o,ve([0,e.charCodeAt(t+6)],48));case 6:o=X(o,ve([0,e.charCodeAt(t+5)],40));case 5:o=X(o,ve([0,e.charCodeAt(t+4)],32));case 4:o=X(o,ve([0,e.charCodeAt(t+3)],24));case 3:o=X(o,ve([0,e.charCodeAt(t+2)],16));case 2:o=X(o,ve([0,e.charCodeAt(t+1)],8));case 1:o=we(o=X(o,[0,e.charCodeAt(t)]),l),a=X(a,o=we(o=Ct(o,31),u))}return a=Ye(a=X(a,[0,e.length]),c=X(c,[0,e.length])),c=Ye(c,a),a=Ye(a=Pi(a),c=Pi(c)),c=Ye(c,a),("00000000"+(a[0]>>>0).toString(16)).slice(-8)+("00000000"+(a[1]>>>0).toString(16)).slice(-8)+("00000000"+(c[0]>>>0).toString(16)).slice(-8)+("00000000"+(c[1]>>>0).toString(16)).slice(-8)}function yr(e){return parseInt(e)}function Ee(e){return parseFloat(e)}function Pe(e,n){return typeof e=="number"&&isNaN(e)?n:e}function xe(e){return e.reduce(function(n,t){return n+(t?1:0)},0)}function Vi(e,n){if(n===void 0&&(n=1),Math.abs(n)>=1)return Math.round(e/n)*n;const t=1/n;return Math.round(e*t)/t}function Gi(e){return e&&typeof e=="object"&&"message"in e?e:{message:e}}function fl(e){return typeof e!="function"}function hl(e,n,t){const r=Object.keys(e).filter(function(a){return!function(c,o){for(let s=0,l=c.length;s<l;++s)if(c[s]===o)return!0;return!1}(t,a)}),i=Array(r.length);return Hi(r,function(a,c){i[c]=function(o,s){const l=new Promise(function(u){const d=Date.now();Wi(o.bind(null,s),function(){for(var h=[],f=0;f<arguments.length;f++)h[f]=arguments[f];const p=Date.now()-d;if(!h[0])return u(function(){return{error:Gi(h[1]),duration:p}});const _=h[1];if(fl(_))return u(function(){return{value:_,duration:p}});u(function(){return new Promise(function(g){const v=Date.now();Wi(_,function(){for(var b=[],y=0;y<arguments.length;y++)b[y]=arguments[y];const m=p+Date.now()-v;if(!b[0])return g({error:Gi(b[1]),duration:m});g({value:b[1],duration:m})})})})})});return Rn(l),function(){return l.then(function(u){return u()})}}(e[a],n)}),function(){return We(this,void 0,void 0,function(){let a,c,o,s,l,u;return Te(this,function(d){switch(d.label){case 0:for(a={},c=0,o=r;c<o.length;c++)s=o[c],a[s]=void 0;l=Array(r.length),u=function(){let h;return Te(this,function(f){switch(f.label){case 0:return h=!0,[4,Hi(r,function(p,_){if(!l[_])if(i[_]){const g=i[_]().then(function(v){return a[p]=v});Rn(g),l[_]=g}else h=!1})];case 1:return f.sent(),h?[2,"break"]:[4,He(1)];case 2:return f.sent(),[2]}})},d.label=1;case 1:return[5,u()];case 2:if(d.sent()==="break")return[3,4];d.label=3;case 3:return[3,1];case 4:return[4,Promise.all(l)];case 5:return d.sent(),[2,a]}})})}}function Xi(){const e=window,n=navigator;return xe(["MSCSSMatrix"in e,"msSetImmediate"in e,"msIndexedDB"in e,"msMaxTouchPoints"in n,"msPointerEnabled"in n])>=4}function pl(){const e=window,n=navigator;return xe(["msWriteProfilerMark"in e,"MSStream"in e,"msLaunchUri"in n,"msSaveBlob"in n])>=3&&!Xi()}function _r(){const e=window,n=navigator;return xe(["webkitPersistentStorage"in n,"webkitTemporaryStorage"in n,n.vendor.indexOf("Google")===0,"webkitResolveLocalFileSystemURL"in e,"BatteryManager"in e,"webkitMediaStream"in e,"webkitSpeechGrammar"in e])>=5}function Gt(){const e=window,n=navigator;return xe(["ApplePayError"in e,"CSSPrimitiveValue"in e,"Counter"in e,n.vendor.indexOf("Apple")===0,"getStorageUpdates"in n,"WebKitMediaKeys"in e])>=4}function Ir(){const e=window;return xe(["safari"in e,!("DeviceMotionEvent"in e),!("ongestureend"in e),!("standalone"in navigator)])>=3}function gl(){let e,n,t=window;return xe(["buildID"in navigator,"MozAppearance"in((n=(e=document.documentElement)===null||e===void 0?void 0:e.style)!==null&&n!==void 0?n:{}),"onmozfullscreenchange"in t,"mozInnerScreenX"in t,"CSSMozDocumentRule"in t,"CanvasCaptureMediaStream"in t])>=4}function ml(){const e=document;return e.fullscreenElement||e.msFullscreenElement||e.mozFullScreenElement||e.webkitFullscreenElement||null}function ji(){const e=_r(),n=gl();if(!e&&!n)return!1;const t=window;return xe(["onorientationchange"in t,"orientation"in t,e&&!("SharedWorker"in t),n&&/android/i.test(navigator.appVersion)])>=2}function Yi(e){const n=new Error(e);return n.name=e,n}function Ji(e,n,t){let r,i,a;return t===void 0&&(t=50),We(this,void 0,void 0,function(){let c,o;return Te(this,function(s){switch(s.label){case 0:c=document,s.label=1;case 1:return c.body?[3,3]:[4,He(t)];case 2:return s.sent(),[3,1];case 3:o=c.createElement("iframe"),s.label=4;case 4:return s.trys.push([4,,10,11]),[4,new Promise(function(l,u){let d=!1,h=function(){d=!0,l()};o.onload=h,o.onerror=function(_){d=!0,u(_)};const f=o.style;f.setProperty("display","block","important"),f.position="absolute",f.top="0",f.left="0",f.visibility="hidden",n&&"srcdoc"in o?o.srcdoc=n:o.src="about:blank",c.body.appendChild(o);const p=function(){let _,g;d||(((g=(_=o.contentWindow)===null||_===void 0?void 0:_.document)===null||g===void 0?void 0:g.readyState)==="complete"?h():setTimeout(p,10))};p()})];case 5:s.sent(),s.label=6;case 6:return!((i=(r=o.contentWindow)===null||r===void 0?void 0:r.document)===null||i===void 0)&&i.body?[3,8]:[4,He(t)];case 7:return s.sent(),[3,6];case 8:return[4,e(o,o.contentWindow)];case 9:return[2,s.sent()];case 10:return(a=o.parentNode)===null||a===void 0||a.removeChild(o),[7];case 11:return[2]}})})}function bl(e){for(var n=function(o){for(var s,l,u="Unexpected syntax '".concat(o,"'"),d=/^\s*([a-z-]*)(.*)$/i.exec(o),h=d[1]||void 0,f={},p=/([.:#][\w-]+|\[.+?\])/gi,_=function(v,b){f[v]=f[v]||[],f[v].push(b)};;){const v=p.exec(d[2]);if(!v)break;const b=v[0];switch(b[0]){case".":_("class",b.slice(1));break;case"#":_("id",b.slice(1));break;case"[":var g=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(b);if(!g)throw new Error(u);_(g[1],(l=(s=g[4])!==null&&s!==void 0?s:g[5])!==null&&l!==void 0?l:"");break;default:throw new Error(u)}}return[h,f]}(e),t=n[0],r=n[1],i=document.createElement(t??"div"),a=0,c=Object.keys(r);a<c.length;a++){const o=c[a],s=r[o].join(" ");o==="style"?vl(i.style,s):i.setAttribute(o,s)}return i}function vl(e,n){for(let t=0,r=n.split(";");t<r.length;t++){const i=r[t],a=/^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(i);if(a){const c=a[1],o=a[2],s=a[4];e.setProperty(c,o,s||"")}}}const St=["monospace","sans-serif","serif"],Ki=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"];function wr(e){return e.toDataURL()}let Tn,Cr;function yl(){const e=this;return function(){if(Cr===void 0){const n=function(){const t=Sr();Ar(t)?Cr=setTimeout(n,2500):(Tn=t,Cr=void 0)};n()}}(),function(){return We(e,void 0,void 0,function(){let n;return Te(this,function(t){switch(t.label){case 0:return Ar(n=Sr())?Tn?[2,wt([],Tn,!0)]:ml()?[4,(r=document,(r.exitFullscreen||r.msExitFullscreen||r.mozCancelFullScreen||r.webkitExitFullscreen).call(r))]:[3,2]:[3,2];case 1:t.sent(),n=Sr(),t.label=2;case 2:return Ar(n)||(Tn=n),[2,n]}let r})})}}function Sr(){const e=screen;return[Pe(Ee(e.availTop),null),Pe(Ee(e.width)-Ee(e.availWidth)-Pe(Ee(e.availLeft),0),null),Pe(Ee(e.height)-Ee(e.availHeight)-Pe(Ee(e.availTop),0),null),Pe(Ee(e.availLeft),null)]}function Ar(e){for(let n=0;n<4;++n)if(e[n])return!1;return!0}function _l(e){let n;return We(this,void 0,void 0,function(){let t,r,i,a,c,o,s;return Te(this,function(l){switch(l.label){case 0:for(t=document,r=t.createElement("div"),i=new Array(e.length),a={},qi(r),s=0;s<e.length;++s)c=bl(e[s]),qi(o=t.createElement("div")),o.appendChild(c),r.appendChild(o),i[s]=c;l.label=1;case 1:return t.body?[3,3]:[4,He(50)];case 2:return l.sent(),[3,1];case 3:t.body.appendChild(r);try{for(s=0;s<e.length;++s)i[s].offsetParent||(a[e[s]]=!0)}finally{(n=r.parentNode)===null||n===void 0||n.removeChild(r)}return[2,a]}})})}function qi(e){e.style.setProperty("display","block","important")}function Qi(e){return matchMedia("(inverted-colors: ".concat(e,")")).matches}function $i(e){return matchMedia("(forced-colors: ".concat(e,")")).matches}function At(e){return matchMedia("(prefers-contrast: ".concat(e,")")).matches}function ea(e){return matchMedia("(prefers-reduced-motion: ".concat(e,")")).matches}function ta(e){return matchMedia("(dynamic-range: ".concat(e,")")).matches}const B=Math,se=function(){return 0},kr={default:[],apple:[{font:"-apple-system-body"}],serif:[{fontFamily:"serif"}],sans:[{fontFamily:"sans-serif"}],mono:[{fontFamily:"monospace"}],min:[{fontSize:"1px"}],system:[{fontFamily:"system-ui"}]},Il={fonts:function(){return Ji(function(e,n){const t=n.document,r=t.body;r.style.fontSize="48px";const i=t.createElement("div"),a={},c={},o=function(u){const d=t.createElement("span"),h=d.style;return h.position="absolute",h.top="0",h.left="0",h.fontFamily=u,d.textContent="mmMwWLliI0O&1",i.appendChild(d),d},s=St.map(o),l=function(){for(var u={},d=function(p){u[p]=St.map(function(_){return function(g,v){return o("'".concat(g,"',").concat(v))}(p,_)})},h=0,f=Ki;h<f.length;h++)d(f[h]);return u}();r.appendChild(i);for(let u=0;u<St.length;u++)a[St[u]]=s[u].offsetWidth,c[St[u]]=s[u].offsetHeight;return Ki.filter(function(u){return n=l[u],St.some(function(d,h){return n[h].offsetWidth!==a[d]||n[h].offsetHeight!==c[d]})})})},domBlockers:function(e){const n=(e===void 0?{}:e).debug;return We(this,void 0,void 0,function(){let t,r,i,a,c;return Te(this,function(o){switch(o.label){case 0:return Gt()||ji()?(s=atob,t={abpIndo:["#Iklan-Melayang","#Kolom-Iklan-728","#SidebarIklan-wrapper",s("YVt0aXRsZT0iN25hZ2EgcG9rZXIiIGld"),'[title="ALIENBOLA" i]'],abpvn:["#quangcaomb",s("Lmlvc0Fkc2lvc0Fkcy1sYXlvdXQ="),".quangcao",s("W2hyZWZePSJodHRwczovL3I4OC52bi8iXQ=="),s("W2hyZWZePSJodHRwczovL3piZXQudm4vIl0=")],adBlockFinland:[".mainostila",s("LnNwb25zb3JpdA=="),".ylamainos",s("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],adBlockPersian:["#navbar_notice_50",".kadr",'TABLE[width="140px"]',"#divAgahi",s("I2FkMl9pbmxpbmU=")],adBlockWarningRemoval:["#adblock-honeypot",".adblocker-root",".wp_adblock_detect",s("LmhlYWRlci1ibG9ja2VkLWFk"),s("I2FkX2Jsb2NrZXI=")],adGuardAnnoyances:['amp-embed[type="zen"]',".hs-sosyal","#cookieconsentdiv",'div[class^="app_gdpr"]',".as-oil"],adGuardBase:[".BetterJsPopOverlay",s("I2FkXzMwMFgyNTA="),s("I2Jhbm5lcmZsb2F0MjI="),s("I2FkLWJhbm5lcg=="),s("I2NhbXBhaWduLWJhbm5lcg==")],adGuardChinese:[s("LlppX2FkX2FfSA=="),s("YVtocmVmKj0iL29kMDA1LmNvbSJd"),s("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),".qq_nr_lad","#widget-quan"],adGuardFrench:[s("I2Jsb2NrLXZpZXdzLWFkcy1zaWRlYmFyLWJsb2NrLWJsb2Nr"),"#pavePub",s("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),".mobile_adhesion",".widgetadv"],adGuardGerman:[s("LmJhbm5lcml0ZW13ZXJidW5nX2hlYWRfMQ=="),s("LmJveHN0YXJ0d2VyYnVuZw=="),s("LndlcmJ1bmcz"),s("YVtocmVmXj0iaHR0cDovL3d3dy5laXMuZGUvaW5kZXgucGh0bWw/cmVmaWQ9Il0="),s("YVtocmVmXj0iaHR0cHM6Ly93d3cudGlwaWNvLmNvbS8/YWZmaWxpYXRlSWQ9Il0=")],adGuardJapanese:["#kauli_yad_1",s("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),s("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),s("LmFkZ29vZ2xl"),s("LmFkX3JlZ3VsYXIz")],adGuardMobile:[s("YW1wLWF1dG8tYWRz"),s("LmFtcF9hZA=="),'amp-embed[type="24smi"]',"#mgid_iframe1",s("I2FkX2ludmlld19hcmVh")],adGuardRussian:[s("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),s("LnJlY2xhbWE="),'div[id^="smi2adblock"]',s("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),s("I2FkX3NxdWFyZQ==")],adGuardSocial:[s("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),s("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),".etsy-tweet","#inlineShare",".popup-social"],adGuardSpanishPortuguese:["#barraPublicidade","#Publicidade","#publiEspecial","#queTooltip",s("W2hyZWZePSJodHRwOi8vYWRzLmdsaXNwYS5jb20vIl0=")],adGuardTrackingProtection:["#qoo-counter",s("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),s("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),s("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),"#top100counter"],adGuardTurkish:["#backkapat",s("I3Jla2xhbWk="),s("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),s("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),s("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],bulgarian:[s("dGQjZnJlZW5ldF90YWJsZV9hZHM="),"#ea_intext_div",".lapni-pop-over","#xenium_hot_offers",s("I25ld0Fk")],easyList:[s("I0FEX0NPTlRST0xfMjg="),s("LnNlY29uZC1wb3N0LWFkcy13cmFwcGVy"),".universalboxADVBOX03",s("LmFkdmVydGlzZW1lbnQtNzI4eDkw"),s("LnNxdWFyZV9hZHM=")],easyListChina:[s("YVtocmVmKj0iLndlbnNpeHVldGFuZy5jb20vIl0="),s("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),s("LmZyb250cGFnZUFkdk0="),"#taotaole","#aafoot.top_box"],easyListCookie:["#AdaCompliance.app-notice",".text-center.rgpd",".panel--cookie",".js-cookies-andromeda",".elxtr-consent"],easyListCzechSlovak:["#onlajny-stickers",s("I3Jla2xhbW5pLWJveA=="),s("LnJla2xhbWEtbWVnYWJvYXJk"),".sklik",s("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],easyListDutch:[s("I2FkdmVydGVudGll"),s("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),".adstekst",s("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),"#semilo-lrectangle"],easyListGermany:[s("I0FkX1dpbjJkYXk="),s("I3dlcmJ1bmdzYm94MzAw"),s("YVtocmVmXj0iaHR0cDovL3d3dy5yb3RsaWNodGthcnRlaS5jb20vP3NjPSJd"),s("I3dlcmJ1bmdfd2lkZXNreXNjcmFwZXJfc2NyZWVu"),s("YVtocmVmXj0iaHR0cDovL2xhbmRpbmcucGFya3BsYXR6a2FydGVpLmNvbS8/YWc9Il0=")],easyListItaly:[s("LmJveF9hZHZfYW5udW5jaQ=="),".sb-box-pubbliredazionale",s("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],easyListLithuania:[s("LnJla2xhbW9zX3RhcnBhcw=="),s("LnJla2xhbW9zX251b3JvZG9z"),s("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),s("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),s("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],estonian:[s("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],fanboyAnnoyances:["#feedback-tab","#taboola-below-article",".feedburnerFeedBlock",".widget-feedburner-counter",'[title="Subscribe to our blog"]'],fanboyAntiFacebook:[".util-bar-module-firefly-visible"],fanboyEnhancedTrackers:[".open.pushModal","#issuem-leaky-paywall-articles-zero-remaining-nag","#sovrn_container",'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',".BlockNag__Card"],fanboySocial:[".td-tags-and-social-wrapper-box",".twitterContainer",".youtube-social",'a[title^="Like us on Facebook"]','img[alt^="Share on Digg"]'],frellwitSwedish:[s("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),s("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),"article.category-samarbete",s("ZGl2LmhvbGlkQWRz"),"ul.adsmodern"],greekAdBlock:[s("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),s("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),s("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),"DIV.agores300","TABLE.advright"],hungarian:["#cemp_doboz",".optimonk-iframe-container",s("LmFkX19tYWlu"),s("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),"#hirdetesek_box"],iDontCareAboutCookies:['.alert-info[data-block-track*="CookieNotice"]',".ModuleTemplateCookieIndicator",".o--cookies--container",".cookie-msg-info-container","#cookies-policy-sticky"],icelandicAbp:[s("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],latvian:[s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],listKr:[s("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),s("I2xpdmVyZUFkV3JhcHBlcg=="),s("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),s("aW5zLmZhc3R2aWV3LWFk"),".revenue_unit_item.dable"],listeAr:[s("LmdlbWluaUxCMUFk"),".right-and-left-sponsers",s("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),s("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),s("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],listeFr:[s("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),s("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),s("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),".site-pub-interstitiel",'div[id^="crt-"][data-criteo-id]'],officialPolish:["#ceneo-placeholder-ceneo-12",s("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),s("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),s("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),s("ZGl2I3NrYXBpZWNfYWQ=")],ro:[s("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),'a[href^="/magazin/"]',s("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),s("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd")],ruAd:[s("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),s("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),s("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),"#pgeldiz",".yandex-rtb-block"],thaiAds:["a[href*=macau-uta-popup]",s("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),s("LmFkczMwMHM="),".bumq",".img-kosana"],webAnnoyancesUltralist:["#mod-social-share-2","#social-tools",s("LmN0cGwtZnVsbGJhbm5lcg=="),".zergnet-recommend",".yt.btn-link.btn-md.btn"]},r=Object.keys(t),[4,_l((c=[]).concat.apply(c,r.map(function(l){return t[l]})))]):[2,void 0];case 1:return i=o.sent(),n&&function(l,u){for(var d="DOM blockers debug:\n```",h=0,f=Object.keys(l);h<f.length;h++){const p=f[h];d+=`
1
+ (function(I){"use strict";typeof window>"u"&&typeof global<"u"&&(global.window=global,global.self=global,global.requestAnimationFrame||(global.requestAnimationFrame=e=>setTimeout(e,0)),global.cancelAnimationFrame||(global.cancelAnimationFrame=e=>clearTimeout(e)));function rt(e){return function(n){return Object.prototype.toString.call(n)===`[object ${e}]`}}const ar=rt("RegExp"),sc=rt("Number"),cc=rt("String"),lc=rt("Boolean"),uc=rt("Function"),An=rt("Array"),dc=rt("Window"),or=e=>lc(e)&&String(e)==="false";function fc(e){return cc(e)&&e.trim()===""||e===void 0||e===null}const hc=dc(typeof window<"u"?window:0),pc=typeof window<"u"&&!!window.process?.versions?.electron,sr=typeof navigator<"u"&&navigator.userAgent.includes("jsdom")||typeof window<"u"&&window.jsdom;function ki(){return hc||pc||sr?window:{}}function gc(){return E.__webTracing__=E.__webTracing__||{},E.__webTracing__}function mc(){return!!E.__webTracingInit__}const E=ki(),pe=gc();class Ue{subs=new Set;static target;addSub(){Ue.target&&this.subs.add(Ue.target)}notify(...n){this.subs.forEach(function(t){t.proxy.dirty=!0,t.update(...n)})}}const cr="__webtracingobserver__";function bc(e){return Object.prototype.toString.call(e)==="[object RegExp]"}class vc{target;constructor(n){this.target=n}defineReactive(){const n=new Ue,t=yc(()=>{n.addSub()},r=>{n.notify(r)});return new Proxy(this.target,t)}}function yc(e,n){const t=new WeakMap,r={get(i,a,c){const o=Reflect.get(i,a,c);if(e&&e(),typeof o=="object"&&o!==null&&!bc(o)){let s=t.get(o);return s||(s=new Proxy(o,r),t.set(o,s)),s}return o},set(i,a,c,o){const s=Reflect.get(i,a,o);if(s===c)return s;const l=JSON.parse(JSON.stringify(i)),u=Reflect.set(i,a,c,o);return n&&n(l),u}};return r}const _c=new WeakMap;function Ic(e){const n={value:e};n[cr]=!0;const t=new vc(n),r=t.defineReactive();return _c.set(t,r),r}function wc(e){return!!e[cr]}const Ei=[];function xi(e){Ue.target&&Ei.push(Ue.target),Ue.target=e}function Ri(){Ue.target=Ei.pop()}class Ti{vm;computed;watch;proxy;dep;getter;callback;constructor(n,t,r){const{computed:i,watch:a,callback:c}=t;this.getter=r,this.computed=i||!1,this.watch=a||!1,this.callback=c,this.proxy={value:"",dirty:!0},this.vm=n,i?this.dep=new Ue:a?this.watchGet():this.get()}update(n){this.computed?this.dep.notify():this.watch?n!==this.proxy.value&&this.callback&&this.callback(this.proxy.value,n):this.get()}get(){xi(this);const n=this.computed?Li.get(this.vm).call(this.vm):"";return n!==this.proxy.value&&(this.proxy.dirty=!1,this.proxy.value=n),Ri(),n}watchGet(){xi(this),this.proxy.dirty=!1,this.getter&&(this.proxy.value=this.getter()),Ri()}depend(){this.dep.addSub()}}class Cc{target;constructor(n){this.target=n}defineReactive(){const n=new Ti(this,{computed:!0}),t={get(){return n.proxy.dirty?(n.depend(),n.get()):(n.depend(),n.proxy.value)}};return new Proxy(this.target,t)}}const Li=new WeakMap;function Sc(e){const n={value:0};n[cr]=!0;const t=new Cc(n),r=t.defineReactive();return Li.set(t,e),r}function Ac(e,n){new Ti("",{watch:!0,callback:e},n)}function kc(e,n){wc(e)&&Ac((t,r)=>{n(t,r)},function(){return e.value})}function lr(){return!!window.Proxy}function Ec(e){return lr()?Ic(e):{value:e}}function Oi(e){return lr()?Sc(e):{value:e()}}function xc(e,n){return lr()?kc(e,n):()=>({})}class Rc{dsn="";appName="";appCode="";appVersion="";userUuid="";sdkUserUuid="";debug=!1;pv={core:!1};performance={core:!1,firstResource:!1,server:!1};error={core:!1,server:!1};event={core:!1};recordScreen=!0;timeout=5e3;maxQueueLength=200;checkRecoverInterval=1;ext={};tracesSampleRate=1;cacheMaxLength=5;cacheWatingTime=5e3;ignoreErrors=[];ignoreRequest=[];scopeError=!1;localization=!1;sendTypeByXmlBody=!1;beforePushEventList=[];beforeSendData=[];afterSendData=[];localizationOverFlow=()=>{};constructor(n){const t=this.transitionOptions(n);t.ignoreRequest.push(new RegExp(t.dsn)),kn(this,t)}transitionOptions(n){const t=kn({},this,n),{beforePushEventList:r,beforeSendData:i,afterSendData:a}=n,{pv:c,performance:o,error:s,event:l}=t;return typeof c=="boolean"&&(t.pv={core:c}),typeof o=="boolean"&&(t.performance={core:o,firstResource:o,server:o}),typeof s=="boolean"&&(t.error={core:s,server:s}),typeof l=="boolean"&&(t.event={core:l}),r&&(t.beforePushEventList=[r]),i&&(t.beforeSendData=[i]),a&&(t.afterSendData=[a]),n.timeout!==void 0&&(t.timeout=n.timeout),n.maxQueueLength!==void 0&&(t.maxQueueLength=n.maxQueueLength),n.checkRecoverInterval!==void 0&&(t.checkRecoverInterval=n.checkRecoverInterval),t}}function Tc(e){const{dsn:n,appName:t,appCode:r,appVersion:i,userUuid:a,debug:c,recordScreen:o,pv:s,performance:l,error:u,event:d,ext:h,tracesSampleRate:f,cacheMaxLength:p,cacheWatingTime:_,ignoreErrors:g,ignoreRequest:v,scopeError:b,localization:y,sendTypeByXmlBody:m,beforePushEventList:k,beforeSendData:T,timeout:w,maxQueueLength:A,checkRecoverInterval:R}=e,C=[];return s&&typeof s=="object"?C.push(N(s.core,"pv.core","boolean")):C.push(N(s,"pv","boolean")),l&&typeof l=="object"?C.push(N(l.core,"performance.core","boolean"),N(l.firstResource,"performance.firstResource","boolean"),N(l.server,"performance.server","boolean")):C.push(N(l,"performance","boolean")),u&&typeof u=="object"?C.push(N(u.core,"error.core","boolean"),N(u.server,"error.server","boolean")):C.push(N(u,"error","boolean")),d&&typeof d=="object"?C.push(N(d.core,"event.core","boolean")):C.push(N(d,"event","boolean")),[N(n,"dsn","string"),N(t,"appName","string"),N(r,"appCode","string"),N(i,"appVersion","string"),N(a,"userUuid","string"),N(c,"debug","boolean"),N(o,"recordScreen","boolean"),N(h,"ext","object"),N(f,"tracesSampleRate","number"),N(p,"cacheMaxLength","number"),N(_,"cacheWatingTime","number"),N(g,"ignoreErrors","array"),Fi(g,"ignoreErrors",["string","regexp"]),N(v,"ignoreRequest","array"),Fi(v,"ignoreRequest",["string","regexp"]),N(b,"scopeError","boolean"),N(y,"localization","boolean"),N(m,"sendTypeByXmlBody","boolean"),N(k,"beforePushEventList","function"),N(T,"beforeSendData","function"),N(w,"timeout","number"),N(A,"maxQueueLength","number"),N(R,"checkRecoverInterval","number")].every(q=>!!q)}function Lc(e){return[Mi(e.appName,"appName"),Mi(e.dsn,"dsn")].every(t=>!!t)}function Mi(e,n){return fc(e)?(it(`\u3010${n}\u3011\u53C2\u6570\u5FC5\u586B`),!1):!0}function N(e,n,t){return!e||yt(e)===t?!0:(it(`TypeError:\u3010${n}\u3011\u671F\u671B\u4F20\u5165${t}\u7C7B\u578B\uFF0C\u76EE\u524D\u662F${yt(e)}\u7C7B\u578B`),!1)}function Fi(e,n,t){if(!e)return!0;let r=!0;return e.forEach(i=>{t.includes(yt(i))||(it(`TypeError:\u3010${n}\u3011\u6570\u7EC4\u5185\u7684\u503C\u671F\u671B\u4F20\u5165${t.join("|")}\u7C7B\u578B\uFF0C\u76EE\u524D\u503C${i}\u662F${yt(i)}\u7C7B\u578B`),r=!1)}),r}I.options=void 0;function Oc(e){return!Lc(e)||!Tc(e)?!1:(I.options=Ec(new Rc(e)),pe.options=I.options,!0)}function bt(...e){I.options.value.debug&&console.log("@web-tracing: ",...e)}function it(...e){console.error("@web-tracing: ",...e)}function Ie(e,n,t,r=!1){e.addEventListener(n,t,r)}function vt(e,n,t,r=!1){if(e!==void 0&&(n in e||r)){const i=e[n],a=t(i);uc(a)&&(e[n]=a)}}function Vt(e){return Object.keys(e).forEach(n=>{const t=e[n];sc(t)&&(e[n]=t===0?void 0:parseFloat(t.toFixed(2)))}),e}function me(){return typeof document>"u"||document.location==null?"":document.location.href}function W(){return Date.now()}function Ni(e,n,t=!1){let r=null,i;return function(...a){i=a,r===null&&(t&&e.apply(this,i),r=setTimeout(()=>{r=null,e.apply(this,i)},n))}}function Mc(e,n,t=!1){let r=null;return function(...i){t&&(e.call(this,...i),t=!1),r&&clearTimeout(r),r=setTimeout(()=>{e.call(this,...i)},n)}}function ur(e,...n){const t=new Map;for(const r of e){const i=n.filter(a=>r[a]).map(a=>r[a]).join(":");t.has(i)||t.set(i,[]),t.get(i).push(r)}return Array.from(t.values())}function kn(e,...n){return n.forEach(t=>{for(const r in t)t[r]!==null&&ar(t[r])?e[r]=t[r]:t[r]!==null&&typeof t[r]=="object"?e[r]=kn(e[r]||(An(t[r])?[]:{}),t[r]):e[r]=t[r]}),e}function ie(e){return mc()?!0:(it(`${e} \u9700\u8981\u5728SDK\u521D\u59CB\u5316\u4E4B\u540E\u4F7F\u7528`),!1)}function yt(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function _t(e,n){return e in n}function Fc(e){return Math.random()<=e}function It(e,n,t="0"){const r=String(e);if(r.length<n){let i=r;for(let a=0;a<n-r.length;a+=1)i=t+i;return i}return r}function Nc(e){return e.split("?")[0]}function dr(){const e=new Date,n=parseInt(`${e.getFullYear()}${It(e.getMonth()+1,2)}${It(e.getDate(),2)}`,10).toString(16),t=parseInt(`${It(e.getHours(),2)}${It(e.getMinutes(),2)}${It(e.getSeconds(),2)}${It(e.getMilliseconds(),3)}`,10).toString(16);let r=n+t.length+t;for(;r.length<32;)r+=Math.floor(Math.random()*16).toString(16);return`${r.slice(0,8)}-${r.slice(8,16)}-${r.slice(16)}`}function fr(e){if(typeof document>"u")return;const n=document.cookie.match(new RegExp(`${e}=([^;]+)(;|$)`));return n?n[1]:void 0}function Dc(e,n){return navigator.sendBeacon(e,JSON.stringify(n))}const En=[];function Zc(e,n){return new Promise(t=>{const r=new Image;r.src=`${e}?v=${encodeURIComponent(JSON.stringify(n))}`,En.push(r),r.onload=()=>{t()},r.onerror=function(){t()}})}function Di(e,n,t=5e3){return new Promise((r,i)=>{const a=new XMLHttpRequest;a.open("post",e),a.setRequestHeader("content-type","application/json"),a.timeout=t,a.send(JSON.stringify(n)),a.onreadystatechange=function(){a.readyState===4&&(a.status>=200&&a.status<300?r():i(new Error("@web-tracing XMLHttpRequest error: "+a.status)))},a.ontimeout=function(){i(new Error("@web-tracing XMLHttpRequest timeout"))},a.onerror=function(){i(new Error("@web-tracing XMLHttpRequest network error"))}})}function xn(e,n,t){if(e.length===0)return t;let r;for(let i=0;i<e.length;i++){const a=e[i];i===0||n?r=a(t):r=a(r)}return r}function hr(e){return An(e)?e:[e]}const Bc=Array.prototype.map||function(n){const t=[];for(let r=0;r<this.length;r+=1)t.push(n(this[r],r,this));return t};function Zi(e,n){return Bc.call(e,n)}const Uc=Array.prototype.filter||function(n){const t=[];for(let r=0;r<this.length;r+=1)n(this[r],r,this)&&t.push(this[r]);return t};function zc(e,n){return Uc.call(e,n)}const Wc=typeof window<"u"&&window.requestIdleCallback||typeof window<"u"&&window.requestAnimationFrame||(e=>setTimeout(e,17));function Bi(e,n){const t=JSON.stringify(e);return new TextEncoder().encode(t).length/1024>n}function pr(e){if(!e)return{};const n={},t=e.split("?")[1];if(t){const r=t.split("&");for(const i of r){const[a,c]=i.split("=");n[decodeURIComponent(a)]=decodeURIComponent(c)}}return n}function gr(e,n=new Map){if(e!==null&&typeof e=="object"){let t=n.get(e);return t||(e instanceof Array?(t=[],n.set(e,t),e.forEach((r,i)=>{t[i]=gr(r,n)})):(t={},n.set(e,t),Object.keys(e).forEach(r=>{_t(r,e)&&(t[r]=gr(e[r],n))})),t)}return e}function ze(e,n,t,r=!1){e.removeEventListener(n,t,r)}var Hc="2.1.0";const Ui="_webtracing_device_id",mr="_webtracing_session_id",Pc=18e5,br="_webtracing_localization_key",Vc=Hc;var S=(e=>(e.ERROR="error",e.CONSOLEERROR="consoleError",e.UNHANDLEDREJECTION="unhandledrejection",e.CLICK="click",e.LOAD="load",e.BEFOREUNLOAD="beforeunload",e.FETCH="fetch",e.XHROPEN="xhr-open",e.XHRSEND="xhr-send",e.HASHCHANGE="hashchange",e.HISTORYPUSHSTATE="history-pushState",e.HISTORYREPLACESTATE="history-replaceState",e.POPSTATE="popstate",e.READYSTATECHANGE="readystatechange",e.ONLINE="online",e.OFFLINE="offline",e))(S||{}),be=(e=>(e.PV="pv",e.PVDURATION="pv-duration",e.ERROR="error",e.PERFORMANCE="performance",e.CLICK="click",e.DWELL="dwell",e.CUSTOM="custom",e.INTERSECTION="intersection",e))(be||{}),Q=(e=>(e.PAGE="page",e.RESOURCE="resource",e.SERVER="server",e.CODE="code",e.REJECT="reject",e.CONSOLEERROR="console.error",e))(Q||{});const Gc={0:"navigate",1:"reload",2:"back_forward",255:"reserved"};class Xc{handlers;constructor(){this.handlers={}}addEvent(n){!this.handlers[n.type]&&(this.handlers[n.type]=[]),this._getCallbackIndex(n)===-1&&this.handlers[n.type]?.push(n.callback)}delEvent(n){const t=this._getCallbackIndex(n);t!==-1&&this.handlers[n.type]?.splice(t,1)}changeEvent(n,t){const r=this._getCallbackIndex(n);r!==-1&&this.handlers[n.type]?.splice(r,1,t)}getEvent(n){return this.handlers[n]||[]}runEvent(n,...t){this.getEvent(n).forEach(i=>{i(...t)})}_getCallbackIndex(n){if(this.handlers[n.type]){const t=this.handlers[n.type];return t?t.findIndex(r=>r===n.callback):-1}else return-1}removeEvents(n){n.forEach(t=>{delete this.handlers[t]})}}const O=pe.eventBus||(pe.eventBus=new Xc),P={consoleError:null,xhrOpen:null,xhrSend:null,fetch:null,historyPushState:null,historyReplaceState:null},H={error:null,unhandledrejection:null,click:null,load:null,beforeunload:null,hashchange:null,popstate:null,offline:null,online:null};function jc(){for(const e in S)_t(e,S)&&Yc(e)}function Yc(e){if(!_t(e,S))return;switch(S[e]){case S.ERROR:Jc(S.ERROR);break;case S.UNHANDLEDREJECTION:Kc(S.UNHANDLEDREJECTION);break;case S.CONSOLEERROR:qc(S.CONSOLEERROR);break;case S.CLICK:Qc(S.CLICK);break;case S.LOAD:$c(S.LOAD);break;case S.BEFOREUNLOAD:el(S.BEFOREUNLOAD);break;case S.XHROPEN:tl(S.XHROPEN);break;case S.XHRSEND:nl(S.XHRSEND);break;case S.FETCH:rl(S.FETCH);break;case S.HASHCHANGE:il(S.HASHCHANGE);break;case S.HISTORYPUSHSTATE:ol(S.HISTORYPUSHSTATE);break;case S.HISTORYREPLACESTATE:al(S.HISTORYREPLACESTATE);break;case S.POPSTATE:sl(S.POPSTATE);break;case S.OFFLINE:cl(S.OFFLINE);break;case S.ONLINE:ll(S.ONLINE);break}}function Jc(e){const n=function(t){O.runEvent(e,t)};H.error=n,Ie(E,"error",n,!0)}function Kc(e){const n=function(t){O.runEvent(e,t)};H.unhandledrejection=n,Ie(E,"unhandledrejection",n)}function qc(e){P.consoleError=console.error,vt(console,"error",n=>function(...t){t[0]&&t[0].slice&&t[0].slice(0,12)==="@web-tracing"||O.runEvent(e,t),n.apply(this,t)})}function Qc(e){if(!("document"in E))return;const n=Ni(O.runEvent,100,!0),t=function(r){n.call(O,e,r)};H.click=t,Ie(E.document,"click",t,!0)}function $c(e){const n=function(t){O.runEvent(e,t)};H.load=n,Ie(E,"load",n,!0)}function el(e){const n=function(t){O.runEvent(e,t)};H.beforeunload=n,Ie(E,"beforeunload",n,!1)}function tl(e){"XMLHttpRequest"in E&&(P.xhrOpen=XMLHttpRequest.prototype.open,vt(XMLHttpRequest.prototype,"open",n=>function(...t){O.runEvent(e,...t),n.apply(this,t)}))}function nl(e){"XMLHttpRequest"in E&&(P.xhrSend=XMLHttpRequest.prototype.send,vt(XMLHttpRequest.prototype,"send",n=>function(...t){O.runEvent(e,this,...t),n.apply(this,t)}))}function rl(e){"fetch"in E&&(P.fetch=E.fetch,vt(E,"fetch",n=>function(...t){const r=W(),i={};return n.apply(E,t).then(a=>(O.runEvent(e,t[0],t[1],a,r,i),a))}))}function il(e){const n=function(t){O.runEvent(e,t)};H.hashchange=n,Ie(E,"hashchange",n)}function al(e){P.historyReplaceState=history.replaceState,vt(history,"replaceState",n=>function(...t){O.runEvent(e,...t),n.apply(this,t)})}function ol(e){P.historyPushState=history.pushState,vt(history,"pushState",n=>function(...t){O.runEvent(e,...t),n.apply(this,t)})}function sl(e){const n=function(t){O.runEvent(e,t)};H.popstate=n,Ie(E,"popstate",n)}function cl(e){const n=function(t){O.runEvent(e,t)};H.offline=n,Ie(E,"offline",n)}function ll(e){const n=function(t){O.runEvent(e,t)};H.offline=n,Ie(E,"offline",n)}function ul(){P.consoleError&&console.error!==P.consoleError&&(console.error=P.consoleError),P.xhrOpen&&XMLHttpRequest.prototype.open!==P.xhrOpen&&(XMLHttpRequest.prototype.open=P.xhrOpen),P.xhrSend&&XMLHttpRequest.prototype.send!==P.xhrSend&&(XMLHttpRequest.prototype.send=P.xhrSend),P.fetch&&E.fetch!==P.fetch&&(E.fetch=P.fetch),P.historyPushState&&history.pushState!==P.historyPushState&&(history.pushState=P.historyPushState),P.historyReplaceState&&history.replaceState!==P.historyReplaceState&&(history.replaceState=P.historyReplaceState),H.error&&ze(E,"error",H.error,!0),H.unhandledrejection&&ze(E,"unhandledrejection",H.unhandledrejection),H.click&&ze(E.document,"click",H.click,!0),H.load&&ze(E,"load",H.load,!0),H.beforeunload&&ze(E,"beforeunload",H.beforeunload,!1),H.hashchange&&ze(E,"hashchange",H.hashchange),H.popstate&&ze(E,"popstate",H.popstate),H.offline&&ze(E,"offline",H.offline),H.online&&ze(E,"online",H.online),Object.keys(P).forEach(e=>{P[e]=null}),Object.keys(H).forEach(e=>{H[e]=null})}let vr=function(){return vr=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(const i in n=arguments[t])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e},vr.apply(this,arguments)};function We(e,n,t,r){return new(t||(t=Promise))(function(i,a){function c(l){try{s(r.next(l))}catch(u){a(u)}}function o(l){try{s(r.throw(l))}catch(u){a(u)}}function s(l){let u;l.done?i(l.value):(u=l.value,u instanceof t?u:new t(function(d){d(u)})).then(c,o)}s((r=r.apply(e,n||[])).next())})}function Te(e,n){let t,r,i,a,c={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(s){return function(l){return function(u){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(c=0)),c;)try{if(t=1,r&&(i=2&u[0]?r.return:u[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,u[1])).done)return i;switch(r=0,i&&(u=[2&u[0],i.value]),u[0]){case 0:case 1:i=u;break;case 4:return c.label++,{value:u[1],done:!1};case 5:c.label++,r=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(i=c.trys,!((i=i.length>0&&i[i.length-1])||u[0]!==6&&u[0]!==2)){c=0;continue}if(u[0]===3&&(!i||u[1]>i[0]&&u[1]<i[3])){c.label=u[1];break}if(u[0]===6&&c.label<i[1]){c.label=i[1],i=u;break}if(i&&c.label<i[2]){c.label=i[2],c.ops.push(u);break}i[2]&&c.ops.pop(),c.trys.pop();continue}u=n.call(e,c)}catch(d){u=[6,d],r=0}finally{t=i=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([s,l])}}}function wt(e,n,t){if(t||arguments.length===2)for(var r,i=0,a=n.length;i<a;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return e.concat(r||Array.prototype.slice.call(n))}function He(e,n){return new Promise(function(t){return setTimeout(t,e,n)})}function zi(e){return!!e&&typeof e.then=="function"}function Wi(e,n){try{const t=e();zi(t)?t.then(function(r){return n(!0,r)},function(r){return n(!1,r)}):n(!0,t)}catch(t){n(!1,t)}}function Hi(e,n,t){return t===void 0&&(t=16),We(this,void 0,void 0,function(){let r,i,a;return Te(this,function(c){switch(c.label){case 0:r=Date.now(),i=0,c.label=1;case 1:return i<e.length?(n(e[i],i),(a=Date.now())>=r+t?(r=a,[4,He(0)]):[3,3]):[3,4];case 2:c.sent(),c.label=3;case 3:return++i,[3,1];case 4:return[2]}})})}function Rn(e){e.then(void 0,function(){})}function Ye(e,n){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],n=[n[0]>>>16,65535&n[0],n[1]>>>16,65535&n[1]];const t=[0,0,0,0];return t[3]+=e[3]+n[3],t[2]+=t[3]>>>16,t[3]&=65535,t[2]+=e[2]+n[2],t[1]+=t[2]>>>16,t[2]&=65535,t[1]+=e[1]+n[1],t[0]+=t[1]>>>16,t[1]&=65535,t[0]+=e[0]+n[0],t[0]&=65535,[t[0]<<16|t[1],t[2]<<16|t[3]]}function we(e,n){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],n=[n[0]>>>16,65535&n[0],n[1]>>>16,65535&n[1]];const t=[0,0,0,0];return t[3]+=e[3]*n[3],t[2]+=t[3]>>>16,t[3]&=65535,t[2]+=e[2]*n[3],t[1]+=t[2]>>>16,t[2]&=65535,t[2]+=e[3]*n[2],t[1]+=t[2]>>>16,t[2]&=65535,t[1]+=e[1]*n[3],t[0]+=t[1]>>>16,t[1]&=65535,t[1]+=e[2]*n[2],t[0]+=t[1]>>>16,t[1]&=65535,t[1]+=e[3]*n[1],t[0]+=t[1]>>>16,t[1]&=65535,t[0]+=e[0]*n[3]+e[1]*n[2]+e[2]*n[1]+e[3]*n[0],t[0]&=65535,[t[0]<<16|t[1],t[2]<<16|t[3]]}function Ct(e,n){return(n%=64)===32?[e[1],e[0]]:n<32?[e[0]<<n|e[1]>>>32-n,e[1]<<n|e[0]>>>32-n]:(n-=32,[e[1]<<n|e[0]>>>32-n,e[0]<<n|e[1]>>>32-n])}function ve(e,n){return(n%=64)===0?e:n<32?[e[0]<<n|e[1]>>>32-n,e[1]<<n]:[e[1]<<n-32,0]}function X(e,n){return[e[0]^n[0],e[1]^n[1]]}function Pi(e){return e=X(e,[0,e[0]>>>1]),e=X(e=we(e,[4283543511,3981806797]),[0,e[0]>>>1]),e=X(e=we(e,[3301882366,444984403]),[0,e[0]>>>1])}function dl(e,n){n=n||0;let t,r=(e=e||"").length%16,i=e.length-r,a=[0,n],c=[0,n],o=[0,0],s=[0,0],l=[2277735313,289559509],u=[1291169091,658871167];for(t=0;t<i;t+=16)o=[255&e.charCodeAt(t+4)|(255&e.charCodeAt(t+5))<<8|(255&e.charCodeAt(t+6))<<16|(255&e.charCodeAt(t+7))<<24,255&e.charCodeAt(t)|(255&e.charCodeAt(t+1))<<8|(255&e.charCodeAt(t+2))<<16|(255&e.charCodeAt(t+3))<<24],s=[255&e.charCodeAt(t+12)|(255&e.charCodeAt(t+13))<<8|(255&e.charCodeAt(t+14))<<16|(255&e.charCodeAt(t+15))<<24,255&e.charCodeAt(t+8)|(255&e.charCodeAt(t+9))<<8|(255&e.charCodeAt(t+10))<<16|(255&e.charCodeAt(t+11))<<24],o=Ct(o=we(o,l),31),a=Ye(a=Ct(a=X(a,o=we(o,u)),27),c),a=Ye(we(a,[0,5]),[0,1390208809]),s=Ct(s=we(s,u),33),c=Ye(c=Ct(c=X(c,s=we(s,l)),31),a),c=Ye(we(c,[0,5]),[0,944331445]);switch(o=[0,0],s=[0,0],r){case 15:s=X(s,ve([0,e.charCodeAt(t+14)],48));case 14:s=X(s,ve([0,e.charCodeAt(t+13)],40));case 13:s=X(s,ve([0,e.charCodeAt(t+12)],32));case 12:s=X(s,ve([0,e.charCodeAt(t+11)],24));case 11:s=X(s,ve([0,e.charCodeAt(t+10)],16));case 10:s=X(s,ve([0,e.charCodeAt(t+9)],8));case 9:s=we(s=X(s,[0,e.charCodeAt(t+8)]),u),c=X(c,s=we(s=Ct(s,33),l));case 8:o=X(o,ve([0,e.charCodeAt(t+7)],56));case 7:o=X(o,ve([0,e.charCodeAt(t+6)],48));case 6:o=X(o,ve([0,e.charCodeAt(t+5)],40));case 5:o=X(o,ve([0,e.charCodeAt(t+4)],32));case 4:o=X(o,ve([0,e.charCodeAt(t+3)],24));case 3:o=X(o,ve([0,e.charCodeAt(t+2)],16));case 2:o=X(o,ve([0,e.charCodeAt(t+1)],8));case 1:o=we(o=X(o,[0,e.charCodeAt(t)]),l),a=X(a,o=we(o=Ct(o,31),u))}return a=Ye(a=X(a,[0,e.length]),c=X(c,[0,e.length])),c=Ye(c,a),a=Ye(a=Pi(a),c=Pi(c)),c=Ye(c,a),("00000000"+(a[0]>>>0).toString(16)).slice(-8)+("00000000"+(a[1]>>>0).toString(16)).slice(-8)+("00000000"+(c[0]>>>0).toString(16)).slice(-8)+("00000000"+(c[1]>>>0).toString(16)).slice(-8)}function yr(e){return parseInt(e)}function Ee(e){return parseFloat(e)}function Pe(e,n){return typeof e=="number"&&isNaN(e)?n:e}function xe(e){return e.reduce(function(n,t){return n+(t?1:0)},0)}function Vi(e,n){if(n===void 0&&(n=1),Math.abs(n)>=1)return Math.round(e/n)*n;const t=1/n;return Math.round(e*t)/t}function Gi(e){return e&&typeof e=="object"&&"message"in e?e:{message:e}}function fl(e){return typeof e!="function"}function hl(e,n,t){const r=Object.keys(e).filter(function(a){return!function(c,o){for(let s=0,l=c.length;s<l;++s)if(c[s]===o)return!0;return!1}(t,a)}),i=Array(r.length);return Hi(r,function(a,c){i[c]=function(o,s){const l=new Promise(function(u){const d=Date.now();Wi(o.bind(null,s),function(){for(var h=[],f=0;f<arguments.length;f++)h[f]=arguments[f];const p=Date.now()-d;if(!h[0])return u(function(){return{error:Gi(h[1]),duration:p}});const _=h[1];if(fl(_))return u(function(){return{value:_,duration:p}});u(function(){return new Promise(function(g){const v=Date.now();Wi(_,function(){for(var b=[],y=0;y<arguments.length;y++)b[y]=arguments[y];const m=p+Date.now()-v;if(!b[0])return g({error:Gi(b[1]),duration:m});g({value:b[1],duration:m})})})})})});return Rn(l),function(){return l.then(function(u){return u()})}}(e[a],n)}),function(){return We(this,void 0,void 0,function(){let a,c,o,s,l,u;return Te(this,function(d){switch(d.label){case 0:for(a={},c=0,o=r;c<o.length;c++)s=o[c],a[s]=void 0;l=Array(r.length),u=function(){let h;return Te(this,function(f){switch(f.label){case 0:return h=!0,[4,Hi(r,function(p,_){if(!l[_])if(i[_]){const g=i[_]().then(function(v){return a[p]=v});Rn(g),l[_]=g}else h=!1})];case 1:return f.sent(),h?[2,"break"]:[4,He(1)];case 2:return f.sent(),[2]}})},d.label=1;case 1:return[5,u()];case 2:if(d.sent()==="break")return[3,4];d.label=3;case 3:return[3,1];case 4:return[4,Promise.all(l)];case 5:return d.sent(),[2,a]}})})}}function Xi(){const e=window,n=navigator;return xe(["MSCSSMatrix"in e,"msSetImmediate"in e,"msIndexedDB"in e,"msMaxTouchPoints"in n,"msPointerEnabled"in n])>=4}function pl(){const e=window,n=navigator;return xe(["msWriteProfilerMark"in e,"MSStream"in e,"msLaunchUri"in n,"msSaveBlob"in n])>=3&&!Xi()}function _r(){const e=window,n=navigator;return xe(["webkitPersistentStorage"in n,"webkitTemporaryStorage"in n,n.vendor.indexOf("Google")===0,"webkitResolveLocalFileSystemURL"in e,"BatteryManager"in e,"webkitMediaStream"in e,"webkitSpeechGrammar"in e])>=5}function Gt(){const e=window,n=navigator;return xe(["ApplePayError"in e,"CSSPrimitiveValue"in e,"Counter"in e,n.vendor.indexOf("Apple")===0,"getStorageUpdates"in n,"WebKitMediaKeys"in e])>=4}function Ir(){const e=window;return xe(["safari"in e,!("DeviceMotionEvent"in e),!("ongestureend"in e),!("standalone"in navigator)])>=3}function gl(){let e,n,t=window;return xe(["buildID"in navigator,"MozAppearance"in((n=(e=document.documentElement)===null||e===void 0?void 0:e.style)!==null&&n!==void 0?n:{}),"onmozfullscreenchange"in t,"mozInnerScreenX"in t,"CSSMozDocumentRule"in t,"CanvasCaptureMediaStream"in t])>=4}function ml(){const e=document;return e.fullscreenElement||e.msFullscreenElement||e.mozFullScreenElement||e.webkitFullscreenElement||null}function ji(){const e=_r(),n=gl();if(!e&&!n)return!1;const t=window;return xe(["onorientationchange"in t,"orientation"in t,e&&!("SharedWorker"in t),n&&/android/i.test(navigator.appVersion)])>=2}function Yi(e){const n=new Error(e);return n.name=e,n}function Ji(e,n,t){let r,i,a;return t===void 0&&(t=50),We(this,void 0,void 0,function(){let c,o;return Te(this,function(s){switch(s.label){case 0:c=document,s.label=1;case 1:return c.body?[3,3]:[4,He(t)];case 2:return s.sent(),[3,1];case 3:o=c.createElement("iframe"),s.label=4;case 4:return s.trys.push([4,,10,11]),[4,new Promise(function(l,u){let d=!1,h=function(){d=!0,l()};o.onload=h,o.onerror=function(_){d=!0,u(_)};const f=o.style;f.setProperty("display","block","important"),f.position="absolute",f.top="0",f.left="0",f.visibility="hidden",n&&"srcdoc"in o?o.srcdoc=n:o.src="about:blank",c.body.appendChild(o);const p=function(){let _,g;d||(((g=(_=o.contentWindow)===null||_===void 0?void 0:_.document)===null||g===void 0?void 0:g.readyState)==="complete"?h():setTimeout(p,10))};p()})];case 5:s.sent(),s.label=6;case 6:return!((i=(r=o.contentWindow)===null||r===void 0?void 0:r.document)===null||i===void 0)&&i.body?[3,8]:[4,He(t)];case 7:return s.sent(),[3,6];case 8:return[4,e(o,o.contentWindow)];case 9:return[2,s.sent()];case 10:return(a=o.parentNode)===null||a===void 0||a.removeChild(o),[7];case 11:return[2]}})})}function bl(e){for(var n=function(o){for(var s,l,u="Unexpected syntax '".concat(o,"'"),d=/^\s*([a-z-]*)(.*)$/i.exec(o),h=d[1]||void 0,f={},p=/([.:#][\w-]+|\[.+?\])/gi,_=function(v,b){f[v]=f[v]||[],f[v].push(b)};;){const v=p.exec(d[2]);if(!v)break;const b=v[0];switch(b[0]){case".":_("class",b.slice(1));break;case"#":_("id",b.slice(1));break;case"[":var g=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(b);if(!g)throw new Error(u);_(g[1],(l=(s=g[4])!==null&&s!==void 0?s:g[5])!==null&&l!==void 0?l:"");break;default:throw new Error(u)}}return[h,f]}(e),t=n[0],r=n[1],i=document.createElement(t??"div"),a=0,c=Object.keys(r);a<c.length;a++){const o=c[a],s=r[o].join(" ");o==="style"?vl(i.style,s):i.setAttribute(o,s)}return i}function vl(e,n){for(let t=0,r=n.split(";");t<r.length;t++){const i=r[t],a=/^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(i);if(a){const c=a[1],o=a[2],s=a[4];e.setProperty(c,o,s||"")}}}const St=["monospace","sans-serif","serif"],Ki=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"];function wr(e){return e.toDataURL()}let Tn,Cr;function yl(){const e=this;return function(){if(Cr===void 0){const n=function(){const t=Sr();Ar(t)?Cr=setTimeout(n,2500):(Tn=t,Cr=void 0)};n()}}(),function(){return We(e,void 0,void 0,function(){let n;return Te(this,function(t){switch(t.label){case 0:return Ar(n=Sr())?Tn?[2,wt([],Tn,!0)]:ml()?[4,(r=document,(r.exitFullscreen||r.msExitFullscreen||r.mozCancelFullScreen||r.webkitExitFullscreen).call(r))]:[3,2]:[3,2];case 1:t.sent(),n=Sr(),t.label=2;case 2:return Ar(n)||(Tn=n),[2,n]}let r})})}}function Sr(){const e=screen;return[Pe(Ee(e.availTop),null),Pe(Ee(e.width)-Ee(e.availWidth)-Pe(Ee(e.availLeft),0),null),Pe(Ee(e.height)-Ee(e.availHeight)-Pe(Ee(e.availTop),0),null),Pe(Ee(e.availLeft),null)]}function Ar(e){for(let n=0;n<4;++n)if(e[n])return!1;return!0}function _l(e){let n;return We(this,void 0,void 0,function(){let t,r,i,a,c,o,s;return Te(this,function(l){switch(l.label){case 0:for(t=document,r=t.createElement("div"),i=new Array(e.length),a={},qi(r),s=0;s<e.length;++s)c=bl(e[s]),qi(o=t.createElement("div")),o.appendChild(c),r.appendChild(o),i[s]=c;l.label=1;case 1:return t.body?[3,3]:[4,He(50)];case 2:return l.sent(),[3,1];case 3:t.body.appendChild(r);try{for(s=0;s<e.length;++s)i[s].offsetParent||(a[e[s]]=!0)}finally{(n=r.parentNode)===null||n===void 0||n.removeChild(r)}return[2,a]}})})}function qi(e){e.style.setProperty("display","block","important")}function Qi(e){return matchMedia("(inverted-colors: ".concat(e,")")).matches}function $i(e){return matchMedia("(forced-colors: ".concat(e,")")).matches}function At(e){return matchMedia("(prefers-contrast: ".concat(e,")")).matches}function ea(e){return matchMedia("(prefers-reduced-motion: ".concat(e,")")).matches}function ta(e){return matchMedia("(dynamic-range: ".concat(e,")")).matches}const B=Math,se=function(){return 0},kr={default:[],apple:[{font:"-apple-system-body"}],serif:[{fontFamily:"serif"}],sans:[{fontFamily:"sans-serif"}],mono:[{fontFamily:"monospace"}],min:[{fontSize:"1px"}],system:[{fontFamily:"system-ui"}]},Il={fonts:function(){return Ji(function(e,n){const t=n.document,r=t.body;r.style.fontSize="48px";const i=t.createElement("div"),a={},c={},o=function(u){const d=t.createElement("span"),h=d.style;return h.position="absolute",h.top="0",h.left="0",h.fontFamily=u,d.textContent="mmMwWLliI0O&1",i.appendChild(d),d},s=St.map(o),l=function(){for(var u={},d=function(p){u[p]=St.map(function(_){return function(g,v){return o("'".concat(g,"',").concat(v))}(p,_)})},h=0,f=Ki;h<f.length;h++)d(f[h]);return u}();r.appendChild(i);for(let u=0;u<St.length;u++)a[St[u]]=s[u].offsetWidth,c[St[u]]=s[u].offsetHeight;return Ki.filter(function(u){return n=l[u],St.some(function(d,h){return n[h].offsetWidth!==a[d]||n[h].offsetHeight!==c[d]})})})},domBlockers:function(e){const n=(e===void 0?{}:e).debug;return We(this,void 0,void 0,function(){let t,r,i,a,c;return Te(this,function(o){switch(o.label){case 0:return Gt()||ji()?(s=atob,t={abpIndo:["#Iklan-Melayang","#Kolom-Iklan-728","#SidebarIklan-wrapper",s("YVt0aXRsZT0iN25hZ2EgcG9rZXIiIGld"),'[title="ALIENBOLA" i]'],abpvn:["#quangcaomb",s("Lmlvc0Fkc2lvc0Fkcy1sYXlvdXQ="),".quangcao",s("W2hyZWZePSJodHRwczovL3I4OC52bi8iXQ=="),s("W2hyZWZePSJodHRwczovL3piZXQudm4vIl0=")],adBlockFinland:[".mainostila",s("LnNwb25zb3JpdA=="),".ylamainos",s("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],adBlockPersian:["#navbar_notice_50",".kadr",'TABLE[width="140px"]',"#divAgahi",s("I2FkMl9pbmxpbmU=")],adBlockWarningRemoval:["#adblock-honeypot",".adblocker-root",".wp_adblock_detect",s("LmhlYWRlci1ibG9ja2VkLWFk"),s("I2FkX2Jsb2NrZXI=")],adGuardAnnoyances:['amp-embed[type="zen"]',".hs-sosyal","#cookieconsentdiv",'div[class^="app_gdpr"]',".as-oil"],adGuardBase:[".BetterJsPopOverlay",s("I2FkXzMwMFgyNTA="),s("I2Jhbm5lcmZsb2F0MjI="),s("I2FkLWJhbm5lcg=="),s("I2NhbXBhaWduLWJhbm5lcg==")],adGuardChinese:[s("LlppX2FkX2FfSA=="),s("YVtocmVmKj0iL29kMDA1LmNvbSJd"),s("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),".qq_nr_lad","#widget-quan"],adGuardFrench:[s("I2Jsb2NrLXZpZXdzLWFkcy1zaWRlYmFyLWJsb2NrLWJsb2Nr"),"#pavePub",s("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),".mobile_adhesion",".widgetadv"],adGuardGerman:[s("LmJhbm5lcml0ZW13ZXJidW5nX2hlYWRfMQ=="),s("LmJveHN0YXJ0d2VyYnVuZw=="),s("LndlcmJ1bmcz"),s("YVtocmVmXj0iaHR0cDovL3d3dy5laXMuZGUvaW5kZXgucGh0bWw/cmVmaWQ9Il0="),s("YVtocmVmXj0iaHR0cHM6Ly93d3cudGlwaWNvLmNvbS8/YWZmaWxpYXRlSWQ9Il0=")],adGuardJapanese:["#kauli_yad_1",s("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),s("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),s("LmFkZ29vZ2xl"),s("LmFkX3JlZ3VsYXIz")],adGuardMobile:[s("YW1wLWF1dG8tYWRz"),s("LmFtcF9hZA=="),'amp-embed[type="24smi"]',"#mgid_iframe1",s("I2FkX2ludmlld19hcmVh")],adGuardRussian:[s("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),s("LnJlY2xhbWE="),'div[id^="smi2adblock"]',s("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),s("I2FkX3NxdWFyZQ==")],adGuardSocial:[s("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),s("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),".etsy-tweet","#inlineShare",".popup-social"],adGuardSpanishPortuguese:["#barraPublicidade","#Publicidade","#publiEspecial","#queTooltip",s("W2hyZWZePSJodHRwOi8vYWRzLmdsaXNwYS5jb20vIl0=")],adGuardTrackingProtection:["#qoo-counter",s("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),s("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),s("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),"#top100counter"],adGuardTurkish:["#backkapat",s("I3Jla2xhbWk="),s("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),s("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),s("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],bulgarian:[s("dGQjZnJlZW5ldF90YWJsZV9hZHM="),"#ea_intext_div",".lapni-pop-over","#xenium_hot_offers",s("I25ld0Fk")],easyList:[s("I0FEX0NPTlRST0xfMjg="),s("LnNlY29uZC1wb3N0LWFkcy13cmFwcGVy"),".universalboxADVBOX03",s("LmFkdmVydGlzZW1lbnQtNzI4eDkw"),s("LnNxdWFyZV9hZHM=")],easyListChina:[s("YVtocmVmKj0iLndlbnNpeHVldGFuZy5jb20vIl0="),s("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),s("LmZyb250cGFnZUFkdk0="),"#taotaole","#aafoot.top_box"],easyListCookie:["#AdaCompliance.app-notice",".text-center.rgpd",".panel--cookie",".js-cookies-andromeda",".elxtr-consent"],easyListCzechSlovak:["#onlajny-stickers",s("I3Jla2xhbW5pLWJveA=="),s("LnJla2xhbWEtbWVnYWJvYXJk"),".sklik",s("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],easyListDutch:[s("I2FkdmVydGVudGll"),s("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),".adstekst",s("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),"#semilo-lrectangle"],easyListGermany:[s("I0FkX1dpbjJkYXk="),s("I3dlcmJ1bmdzYm94MzAw"),s("YVtocmVmXj0iaHR0cDovL3d3dy5yb3RsaWNodGthcnRlaS5jb20vP3NjPSJd"),s("I3dlcmJ1bmdfd2lkZXNreXNjcmFwZXJfc2NyZWVu"),s("YVtocmVmXj0iaHR0cDovL2xhbmRpbmcucGFya3BsYXR6a2FydGVpLmNvbS8/YWc9Il0=")],easyListItaly:[s("LmJveF9hZHZfYW5udW5jaQ=="),".sb-box-pubbliredazionale",s("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],easyListLithuania:[s("LnJla2xhbW9zX3RhcnBhcw=="),s("LnJla2xhbW9zX251b3JvZG9z"),s("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),s("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),s("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],estonian:[s("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],fanboyAnnoyances:["#feedback-tab","#taboola-below-article",".feedburnerFeedBlock",".widget-feedburner-counter",'[title="Subscribe to our blog"]'],fanboyAntiFacebook:[".util-bar-module-firefly-visible"],fanboyEnhancedTrackers:[".open.pushModal","#issuem-leaky-paywall-articles-zero-remaining-nag","#sovrn_container",'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',".BlockNag__Card"],fanboySocial:[".td-tags-and-social-wrapper-box",".twitterContainer",".youtube-social",'a[title^="Like us on Facebook"]','img[alt^="Share on Digg"]'],frellwitSwedish:[s("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),s("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),"article.category-samarbete",s("ZGl2LmhvbGlkQWRz"),"ul.adsmodern"],greekAdBlock:[s("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),s("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),s("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),"DIV.agores300","TABLE.advright"],hungarian:["#cemp_doboz",".optimonk-iframe-container",s("LmFkX19tYWlu"),s("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),"#hirdetesek_box"],iDontCareAboutCookies:['.alert-info[data-block-track*="CookieNotice"]',".ModuleTemplateCookieIndicator",".o--cookies--container",".cookie-msg-info-container","#cookies-policy-sticky"],icelandicAbp:[s("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],latvian:[s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],listKr:[s("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),s("I2xpdmVyZUFkV3JhcHBlcg=="),s("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),s("aW5zLmZhc3R2aWV3LWFk"),".revenue_unit_item.dable"],listeAr:[s("LmdlbWluaUxCMUFk"),".right-and-left-sponsers",s("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),s("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),s("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],listeFr:[s("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),s("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),s("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),".site-pub-interstitiel",'div[id^="crt-"][data-criteo-id]'],officialPolish:["#ceneo-placeholder-ceneo-12",s("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),s("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),s("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),s("ZGl2I3NrYXBpZWNfYWQ=")],ro:[s("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),'a[href^="/magazin/"]',s("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),s("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd")],ruAd:[s("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),s("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),s("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),"#pgeldiz",".yandex-rtb-block"],thaiAds:["a[href*=macau-uta-popup]",s("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),s("LmFkczMwMHM="),".bumq",".img-kosana"],webAnnoyancesUltralist:["#mod-social-share-2","#social-tools",s("LmN0cGwtZnVsbGJhbm5lcg=="),".zergnet-recommend",".yt.btn-link.btn-md.btn"]},r=Object.keys(t),[4,_l((c=[]).concat.apply(c,r.map(function(l){return t[l]})))]):[2,void 0];case 1:return i=o.sent(),n&&function(l,u){for(var d="DOM blockers debug:\n```",h=0,f=Object.keys(l);h<f.length;h++){const p=f[h];d+=`
2
2
  `.concat(p,":");for(let _=0,g=l[p];_<g.length;_++){const v=g[_];d+=`
3
3
  `.concat(u[v]?"\u{1F6AB}":"\u27A1\uFE0F"," ").concat(v)}}console.log("".concat(d,"\n```"))}(t,i),(a=r.filter(function(l){const u=t[l];return xe(u.map(function(d){return i[d]}))>.6*u.length})).sort(),[2,a]}let s})})},fontPreferences:function(){return function(e,n){return n===void 0&&(n=4e3),Ji(function(t,r){const i=r.document,a=i.body,c=a.style;c.width="".concat(n,"px"),c.webkitTextSizeAdjust=c.textSizeAdjust="none",_r()?a.style.zoom="".concat(1/r.devicePixelRatio):Gt()&&(a.style.zoom="reset");const o=i.createElement("div");return o.textContent=wt([],Array(n/20<<0),!0).map(function(){return"word"}).join(" "),a.appendChild(o),e(i,a)})}(function(e,n){for(var t={},r={},i=0,a=Object.keys(kr);i<a.length;i++){var c=a[i],o=kr[c],s=o[0],l=s===void 0?{}:s,u=o[1],d=u===void 0?"mmMwWLliI0fiflO&1":u,h=e.createElement("span");h.textContent=d,h.style.whiteSpace="nowrap";for(let f=0,p=Object.keys(l);f<p.length;f++){const _=p[f],g=l[_];g!==void 0&&(h.style[_]=g)}t[c]=h,n.appendChild(e.createElement("br")),n.appendChild(h)}for(let f=0,p=Object.keys(kr);f<p.length;f++)r[c=p[f]]=t[c].getBoundingClientRect().width;return r})},audio:function(){const e=window,n=e.OfflineAudioContext||e.webkitOfflineAudioContext;if(!n)return-2;if(Gt()&&!Ir()&&!function(){const l=window;return xe(["DOMRectList"in l,"RTCPeerConnectionIceEvent"in l,"SVGGeometryElement"in l,"ontransitioncancel"in l])>=3}())return-1;const t=new n(1,5e3,44100),r=t.createOscillator();r.type="triangle",r.frequency.value=1e4;const i=t.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.25,r.connect(i),i.connect(t.destination),r.start(0);const a=function(l){let u=3,d=500,h=500,f=5e3,p=function(){};return[new Promise(function(_,g){let v=!1,b=0,y=0;l.oncomplete=function(T){return _(T.renderedBuffer)};const m=function(){setTimeout(function(){return g(Yi("timeout"))},Math.min(h,y+f-Date.now()))},k=function(){try{const T=l.startRendering();switch(zi(T)&&Rn(T),l.state){case"running":y=Date.now(),v&&m();break;case"suspended":document.hidden||b++,v&&b>=u?g(Yi("suspended")):setTimeout(k,d)}}catch(T){g(T)}};k(),p=function(){v||(v=!0,y>0&&m())}}),p]}(t),c=a[0],o=a[1],s=c.then(function(l){return function(u){for(var d=0,h=0;h<u.length;++h)d+=Math.abs(u[h]);return d}(l.getChannelData(0).subarray(4500))},function(l){if(l.name==="timeout"||l.name==="suspended")return-3;throw l});return Rn(s),function(){return o(),s}},screenFrame:function(){const e=this,n=yl();return function(){return We(e,void 0,void 0,function(){let t,r;return Te(this,function(i){switch(i.label){case 0:return[4,n()];case 1:return t=i.sent(),[2,[(r=function(a){return a===null?null:Vi(a,10)})(t[0]),r(t[1]),r(t[2]),r(t[3])]]}})})}},osCpu:function(){return navigator.oscpu},languages:function(){let e,n=navigator,t=[],r=n.language||n.userLanguage||n.browserLanguage||n.systemLanguage;if(r!==void 0&&t.push([r]),Array.isArray(n.languages))_r()&&xe([!("MediaSettingsRange"in(e=window)),"RTCEncodedAudioFrame"in e,""+e.Intl=="[object Intl]",""+e.Reflect=="[object Reflect]"])>=3||t.push(n.languages);else if(typeof n.languages=="string"){const i=n.languages;i&&t.push(i.split(","))}return t},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return Pe(Ee(navigator.deviceMemory),void 0)},screenResolution:function(){const e=screen,n=function(r){return Pe(yr(r),null)},t=[n(e.width),n(e.height)];return t.sort().reverse(),t},hardwareConcurrency:function(){return Pe(yr(navigator.hardwareConcurrency),void 0)},timezone:function(){let e,n=(e=window.Intl)===null||e===void 0?void 0:e.DateTimeFormat;if(n){const i=new n().resolvedOptions().timeZone;if(i)return i}let t,r=(t=new Date().getFullYear(),-Math.max(Ee(new Date(t,0,1).getTimezoneOffset()),Ee(new Date(t,6,1).getTimezoneOffset())));return"UTC".concat(r>=0?"+":"").concat(Math.abs(r))},sessionStorage:function(){try{return!!window.sessionStorage}catch{return!0}},localStorage:function(){try{return!!window.localStorage}catch{return!0}},indexedDB:function(){if(!Xi()&&!pl())try{return!!window.indexedDB}catch{return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){const e=navigator.platform;return e==="MacIntel"&&Gt()&&!Ir()?function(){if(navigator.platform==="iPad")return!0;const n=screen,t=n.width/n.height;return xe(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,t>.65&&t<1.53])>=2}()?"iPad":"iPhone":e},plugins:function(){const e=navigator.plugins;if(e){for(var n=[],t=0;t<e.length;++t){const a=e[t];if(a){for(var r=[],i=0;i<a.length;++i){const c=a[i];r.push({type:c.type,suffixes:c.suffixes})}n.push({name:a.name,description:a.description,mimeTypes:r})}}return n}},canvas:function(){let e,n,t=!1,r=function(){const c=document.createElement("canvas");return c.width=1,c.height=1,[c,c.getContext("2d")]}(),i=r[0],a=r[1];if(function(c,o){return!(!o||!c.toDataURL)}(i,a)){t=function(o){return o.rect(0,0,10,10),o.rect(2,2,6,6),!o.isPointInPath(5,5,"evenodd")}(a),function(o,s){o.width=240,o.height=60,s.textBaseline="alphabetic",s.fillStyle="#f60",s.fillRect(100,1,62,20),s.fillStyle="#069",s.font='11pt "Times New Roman"';const l="Cwm fjordbank gly ".concat(String.fromCharCode(55357,56835));s.fillText(l,2,15),s.fillStyle="rgba(102, 204, 0, 0.2)",s.font="18pt Arial",s.fillText(l,4,45)}(i,a);const c=wr(i);c!==wr(i)?e=n="unstable":(n=c,function(o,s){o.width=122,o.height=110,s.globalCompositeOperation="multiply";for(let l=0,u=[["#f2f",40,40],["#2ff",80,40],["#ff2",60,80]];l<u.length;l++){const d=u[l],h=d[0],f=d[1],p=d[2];s.fillStyle=h,s.beginPath(),s.arc(f,p,40,0,2*Math.PI,!0),s.closePath(),s.fill()}s.fillStyle="#f9c",s.arc(60,60,60,0,2*Math.PI,!0),s.arc(60,60,20,0,2*Math.PI,!0),s.fill("evenodd")}(i,a),e=wr(i))}else e=n="";return{winding:t,geometry:e,text:n}},touchSupport:function(){let e,n=navigator,t=0;n.maxTouchPoints!==void 0?t=yr(n.maxTouchPoints):n.msMaxTouchPoints!==void 0&&(t=n.msMaxTouchPoints);try{document.createEvent("TouchEvent"),e=!0}catch{e=!1}return{maxTouchPoints:t,touchEvent:e,touchStart:"ontouchstart"in window}},vendor:function(){return navigator.vendor||""},vendorFlavors:function(){for(var e=[],n=0,t=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];n<t.length;n++){const r=t[n],i=window[r];i&&typeof i=="object"&&e.push(r)}return e.sort()},cookiesEnabled:function(){const e=document;try{e.cookie="cookietest=1; SameSite=Strict;";const n=e.cookie.indexOf("cookietest=")!==-1;return e.cookie="cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT",n}catch{return!1}},colorGamut:function(){for(let e=0,n=["rec2020","p3","srgb"];e<n.length;e++){const t=n[e];if(matchMedia("(color-gamut: ".concat(t,")")).matches)return t}},invertedColors:function(){return!!Qi("inverted")||!Qi("none")&&void 0},forcedColors:function(){return!!$i("active")||!$i("none")&&void 0},monochrome:function(){if(matchMedia("(min-monochrome: 0)").matches){for(let e=0;e<=100;++e)if(matchMedia("(max-monochrome: ".concat(e,")")).matches)return e;throw new Error("Too high value")}},contrast:function(){return At("no-preference")?0:At("high")||At("more")?1:At("low")||At("less")?-1:At("forced")?10:void 0},reducedMotion:function(){return!!ea("reduce")||!ea("no-preference")&&void 0},hdr:function(){return!!ta("high")||!ta("standard")&&void 0},math:function(){let e,n=B.acos||se,t=B.acosh||se,r=B.asin||se,i=B.asinh||se,a=B.atanh||se,c=B.atan||se,o=B.sin||se,s=B.sinh||se,l=B.cos||se,u=B.cosh||se,d=B.tan||se,h=B.tanh||se,f=B.exp||se,p=B.expm1||se,_=B.log1p||se;return{acos:n(.12312423423423424),acosh:t(1e308),acoshPf:(e=1e154,B.log(e+B.sqrt(e*e-1))),asin:r(.12312423423423424),asinh:i(1),asinhPf:function(g){return B.log(g+B.sqrt(g*g+1))}(1),atanh:a(.5),atanhPf:function(g){return B.log((1+g)/(1-g))/2}(.5),atan:c(.5),sin:o(-1e300),sinh:s(1),sinhPf:function(g){return B.exp(g)-1/B.exp(g)/2}(1),cos:l(10.000000000123),cosh:u(1),coshPf:function(g){return(B.exp(g)+1/B.exp(g))/2}(1),tan:d(-1e300),tanh:h(1),tanhPf:function(g){return(B.exp(2*g)-1)/(B.exp(2*g)+1)}(1),exp:f(1),expm1:p(1),expm1Pf:function(g){return B.exp(g)-1}(1),log1p:_(10),log1pPf:function(g){return B.log(1+g)}(10),powPI:function(g){return B.pow(B.PI,g)}(-100)}},videoCard:function(){let e,n=document.createElement("canvas"),t=(e=n.getContext("webgl"))!==null&&e!==void 0?e:n.getContext("experimental-webgl");if(t&&"getExtension"in t){const r=t.getExtension("WEBGL_debug_renderer_info");if(r)return{vendor:(t.getParameter(r.UNMASKED_VENDOR_WEBGL)||"").toString(),renderer:(t.getParameter(r.UNMASKED_RENDERER_WEBGL)||"").toString()}}},pdfViewerEnabled:function(){return navigator.pdfViewerEnabled},architecture:function(){const e=new Float32Array(1),n=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],n[3]}};function wl(e){const n=function(r){if(ji())return .4;if(Gt())return Ir()?.5:.3;const i=r.platform.value||"";return/^Win/.test(i)?.6:/^Mac/.test(i)?.5:.7}(e),t=function(r){return Vi(.99+.01*r,1e-4)}(n);return{score:n,comment:"$ if upgrade to Pro: https://fpjs.dev/pro".replace(/\$/g,"".concat(t))}}function Cl(e){return JSON.stringify(e,function(n,t){return t instanceof Error?vr({name:(wt=t).name,message:wt.message,stack:(He=wt.stack)===null||He===void 0?void 0:He.split(`
4
4
  `)},wt):t},2)}function Sl(e){return dl(function(n){for(var t="",r=0,i=Object.keys(n).sort();r<i.length;r++){const a=i[r],c=n[a],o=c.error?"error":JSON.stringify(c.value);t+="".concat(t?"|":"").concat(a.replace(/([:|\\])/g,"\\$1"),":").concat(o)}return t}(e))}function Al(e){return e===void 0&&(e=50),function(n,t){t===void 0&&(t=1/0);const r=window.requestIdleCallback;return r?new Promise(function(i){return r.call(window,function(){return i()},{timeout:t})}):He(Math.min(n,t))}(e,2*e)}function kl(e,n){const t=Date.now();return{get:function(r){return We(this,void 0,void 0,function(){let i,a,c;return Te(this,function(o){switch(o.label){case 0:return i=Date.now(),[4,e()];case 1:return a=o.sent(),c=function(s){let l;return{get visitorId(){return l===void 0&&(l=Sl(this.components)),l},set visitorId(u){l=u},confidence:wl(s),components:s,version:"3.4.1"}}(a),(n||r?.debug)&&console.log("Copy the text below to get the debug data:\n\n```\nversion: ".concat(c.version,`
@@ -822,7 +822,7 @@ function off(target, eventName, handler, opitons = false) {
822
822
  target.removeEventListener(eventName, handler, opitons);
823
823
  }
824
824
 
825
- var version$1 = "2.1.1";
825
+ var version$1 = "2.1.0";
826
826
 
827
827
  const DEVICE_KEY = "_webtracing_device_id";
828
828
  const SESSION_KEY = "_webtracing_session_id";
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "web-tracing-core",
3
+ "version": "2.1.0",
4
+ "description": "基于 JS 跨平台插件,为前端项目提供【 埋点、行为、性能、异常、请求、资源、路由、曝光、录屏 】监控手段",
5
+ "main": "./index.mjs",
6
+ "module": "./index.mjs",
7
+ "jsdelivr": "./index.iife.min.js",
8
+ "types": "./index.d.ts",
9
+ "sideEffects": false,
10
+ "exports": {
11
+ ".": {
12
+ "import": "./index.mjs",
13
+ "require": "./index.cjs",
14
+ "types": "./index.d.ts"
15
+ },
16
+ "./*": "./*"
17
+ },
18
+ "license": "MIT",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/M-cheng-web/web-tracing.git",
22
+ "directory": "packages/core"
23
+ },
24
+ "author": "M-cheng-web <https://github.com/M-cheng-web>",
25
+ "keywords": [
26
+ "埋点",
27
+ "性能",
28
+ "异常",
29
+ "性能采集",
30
+ "异常采集",
31
+ "前端埋点",
32
+ "前端性能采集"
33
+ ],
34
+ "dependencies": {
35
+ "ua-parser-js": "2.0.0-alpha.1",
36
+ "@types/pako": "^2.0.0",
37
+ "pako": "^2.1.0",
38
+ "js-base64": "^3.7.5",
39
+ "rrweb": "2.0.0-alpha.5"
40
+ },
41
+ "devDependencies": {
42
+ "@types/ua-parser-js": "^0.7.36"
43
+ },
44
+ "bugs": {
45
+ "url": "https://github.com/M-cheng-web/web-tracing/issues"
46
+ },
47
+ "homepage": "https://github.com/M-cheng-web/web-tracing#readme",
48
+ "unpkg": "./index.iife.min.js"
49
+ }
package/index.ts ADDED
@@ -0,0 +1,76 @@
1
+ import './src/utils/polyfill'
2
+ import type { InitOptions } from './src/types'
3
+ import { initReplace, destroyReplace } from './src/lib/replace'
4
+ import { initOptions, options as _options } from './src/lib/options'
5
+ import { initBase } from './src/lib/base'
6
+ import { initSendData, sendData } from './src/lib/sendData'
7
+ import { initLineStatus } from './src/lib/line-status'
8
+ import { initError, parseError, destroyError } from './src/lib/err'
9
+ import { initEvent, destroyEvent } from './src/lib/event'
10
+ import { initHttp, destroyHttp } from './src/lib/http'
11
+ import { initPerformance, destroyPerformance } from './src/lib/performance'
12
+ import { initPv, destroyPv } from './src/lib/pv'
13
+ import {
14
+ initIntersection,
15
+ destroyIntersection
16
+ } from './src/lib/intersectionObserver'
17
+ import { _global } from './src/utils/global'
18
+ import { SENDID } from './src/common'
19
+ import { logError } from './src/utils/debug'
20
+ import { initRecordScreen, destroyRecordScreen } from './src/lib/recordscreen'
21
+ import * as exportMethods from './src/lib/exportMethods'
22
+ import './src/observer/index'
23
+
24
+ function init(options: InitOptions): void {
25
+ if (_global.__webTracingInit__) return
26
+ if (!initOptions(options)) return
27
+
28
+ // 注册全局
29
+ initReplace()
30
+ initBase()
31
+ initSendData()
32
+ initLineStatus()
33
+
34
+ // 注册各个业务
35
+ initError()
36
+ initEvent()
37
+ initHttp()
38
+ initPerformance()
39
+ initPv()
40
+ initIntersection()
41
+
42
+ if (_options.value.recordScreen) initRecordScreen()
43
+
44
+ _global.__webTracingInit__ = true
45
+ }
46
+
47
+ /**
48
+ * 销毁SDK添加的事件监听器,不会影响用户手动添加的监听器
49
+ */
50
+ function destroyTracing(): void {
51
+ destroyEvent()
52
+ destroyError()
53
+ destroyHttp()
54
+ destroyPerformance()
55
+ destroyIntersection()
56
+ destroyRecordScreen()
57
+ destroyPv()
58
+ destroyReplace()
59
+ if (sendData) sendData.destroy()
60
+
61
+ // 重置全局状态,确保重新初始化时能正常工作
62
+ _global.__webTracingInit__ = false
63
+ }
64
+
65
+ export {
66
+ init,
67
+ destroyTracing,
68
+ InitOptions,
69
+ logError,
70
+ parseError,
71
+ SENDID,
72
+ exportMethods,
73
+ _options as options
74
+ }
75
+ export * from './src/lib/exportMethods'
76
+ export default { init, destroyTracing, ...exportMethods, options: _options }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "web-tracing-core",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "基于 JS 跨平台插件,为前端项目提供【 埋点、行为、性能、异常、请求、资源、路由、曝光、录屏 】监控手段",
5
- "main": "./index.mjs",
6
- "module": "./index.mjs",
7
- "jsdelivr": "./index.iife.min.js",
8
- "types": "./index.d.ts",
5
+ "main": "./dist/index.mjs",
6
+ "module": "./dist/index.mjs",
7
+ "jsdelivr": "./dist/index.iife.min.js",
8
+ "types": "./dist/index.d.ts",
9
9
  "sideEffects": false,
10
10
  "exports": {
11
11
  ".": {
12
- "import": "./index.mjs",
13
- "require": "./index.cjs",
14
- "types": "./index.d.ts"
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.cjs",
14
+ "types": "./dist/index.d.ts"
15
15
  },
16
16
  "./*": "./*"
17
17
  },
@@ -45,5 +45,5 @@
45
45
  "url": "https://github.com/M-cheng-web/web-tracing/issues"
46
46
  },
47
47
  "homepage": "https://github.com/M-cheng-web/web-tracing#readme",
48
- "unpkg": "./index.iife.min.js"
48
+ "unpkg": "./dist/index.iife.min.js"
49
49
  }
@@ -0,0 +1,13 @@
1
+ import { name, version } from '../../package.json'
2
+
3
+ export const DEVICE_KEY = '_webtracing_device_id' // 设备ID Key - 私有属性
4
+
5
+ export const SESSION_KEY = '_webtracing_session_id' // 会话ID Key(一个站点只允许运行一个埋点程序) - 私有属性
6
+
7
+ export const SURVIVIE_MILLI_SECONDS = 1800000 // 会话 session存活时长(30minutes) - 私有属性
8
+
9
+ export const SDK_LOCAL_KEY = '_webtracing_localization_key' // 事件本地化的key
10
+
11
+ export const SDK_VERSION = version
12
+
13
+ export const SDK_NAME = name