(()=>{"use strict";var e={156:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function c(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}l((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(l){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,l])}}},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.dfp=void 0;var i=a(n(513));t.dfp=function(){return r(void 0,void 0,void 0,(function(){var e;return o(this,(function(t){switch(t.label){case 0:return[4,(0,i.default)({hardwareOnly:!0})];case 1:return e=t.sent(),fetch("/useractivity/dfp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dfp:e})}).catch((function(e){console.error(e)})),[2]}}))}))},window.addEventListener("load",(function(){(0,t.dfp)()}))},513:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});const r=async({hardwareOnly:e=!0,debug:t=!1}={})=>{const{cookieEnabled:n,deviceMemory:r,doNotTrack:u,hardwareConcurrency:s,language:f,languages:h,maxTouchPoints:p,platform:g,userAgent:y,vendor:m}=window.navigator,w=/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent),{width:b,height:v,colorDepth:x,pixelDepth:S}=w?window.screen:{},A=(new Date).getTimezoneOffset(),O=Intl.DateTimeFormat().resolvedOptions().timeZone,R="ontouchstart"in window,C=window.devicePixelRatio,E=o(t),T=await l(t),P=c(),_=a(t),I=i(),U=e?{audioInfo:P,audio:T,canvas:E,colorDepth:x,deviceMemory:r,devicePixelRatio:C,hardwareConcurrency:s,height:v,maxTouchPoints:p,pixelDepth:S,platform:g,touchSupport:R,webgl:_,webglInfo:I,width:b}:{audioInfo:P,audio:T,canvas:E,colorDepth:x,cookieEnabled:n,deviceMemory:r,devicePixelRatio:C,doNotTrack:u,hardwareConcurrency:s,height:v,language:f,languages:h,maxTouchPoints:p,pixelDepth:S,platform:g,timezone:O,timezoneOffset:A,touchSupport:R,userAgent:y,vendor:m,webgl:_,webglInfo:I,width:b};t&&console.log("Fingerprint data:",JSON.stringify(U,null,2));const D=JSON.stringify(U,null,2);return d(D)},o=e=>{try{const t=document.createElement("canvas"),n=t.getContext("2d"),r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~1!2@3#4$5%6^7&8*9(0)-_=+[{]}|;:',<.>/?";n.textBaseline="top",n.font="14px 'Arial'",n.textBaseline="alphabetic",n.fillStyle="#f60",n.fillRect(125,1,62,20),n.fillStyle="#069",n.fillText(r,2,15),n.fillStyle="rgba(102, 204, 0, 0.7)",n.fillText(r,4,17);const o=t.toDataURL();return e?document.body.appendChild(t):n.clearRect(0,0,t.width,t.height),d(o)}catch{return null}},a=e=>{try{const t=document.createElement("canvas"),n=t.getContext("webgl");t.width=256,t.height=128;const r="attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}",o="precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}",a=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,a);const i=new Float32Array([-.2,-.9,0,.4,-.26,0,0,.7321,0]);n.bufferData(n.ARRAY_BUFFER,i,n.STATIC_DRAW),a.itemSize=3,a.numItems=3;const c=n.createProgram(),l=n.createShader(n.VERTEX_SHADER);n.shaderSource(l,r),n.compileShader(l);const u=n.createShader(n.FRAGMENT_SHADER);n.shaderSource(u,o),n.compileShader(u),n.attachShader(c,l),n.attachShader(c,u),n.linkProgram(c),n.useProgram(c),c.vertexPosAttrib=n.getAttribLocation(c,"attrVertex"),c.offsetUniform=n.getUniformLocation(c,"uniformOffset"),n.enableVertexAttribArray(c.vertexPosArray),n.vertexAttribPointer(c.vertexPosAttrib,a.itemSize,n.FLOAT,!1,0,0),n.uniform2f(c.offsetUniform,1,1),n.drawArrays(n.TRIANGLE_STRIP,0,a.numItems);const s=new Uint8Array(t.width*t.height*4);n.readPixels(0,0,t.width,t.height,n.RGBA,n.UNSIGNED_BYTE,s);const f=JSON.stringify(s).replace(/,?"[0-9]+":/g,"");return e?document.body.appendChild(t):n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT|n.STENCIL_BUFFER_BIT),d(f)}catch{return null}},i=()=>{try{const e=document.createElement("canvas").getContext("webgl");return{VERSION:String(e.getParameter(e.VERSION)),SHADING_LANGUAGE_VERSION:String(e.getParameter(e.SHADING_LANGUAGE_VERSION)),VENDOR:String(e.getParameter(e.VENDOR)),SUPPORTED_EXTENSIONS:String(e.getSupportedExtensions())}}catch{return null}},c=()=>{try{const e=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,44100,44100);return{sampleRate:e.sampleRate,channelCount:e.destination.maxChannelCount,outputLatency:e.outputLatency,state:e.state,baseLatency:e.baseLatency}}catch{return null}},l=async e=>{try{const t=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,44100,44100),n=t.createOscillator();n.type="sine",n.frequency.value=440,n.connect(t.destination),n.start();const r=await t.startRendering(),o=r.getChannelData(0).reduce(((e,t)=>e+Math.abs(t)),0).toString();if(e){const e=u(r),t=URL.createObjectURL(e),n=document.createElement("audio");n.controls=!0,n.src=t,document.body.appendChild(n)}return d(o)}catch{return null}},u=e=>{const t=e.numberOfChannels,n=e.length*t*2+44,r=new ArrayBuffer(n),o=new DataView(r);s(o,0,"RIFF"),o.setUint32(4,n-8,!0),s(o,8,"WAVE"),s(o,12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,t,!0),o.setUint32(24,e.sampleRate,!0),o.setUint32(28,e.sampleRate*t*2,!0),o.setUint16(32,2*t,!0),o.setUint16(34,16,!0),s(o,36,"data"),o.setUint32(40,n-44,!0);let a=44;for(let n=0;n<e.length;n++)for(let r=0;r<t;r++){const t=e.getChannelData(r)[n],i=32767*Math.max(-1,Math.min(1,t));o.setInt16(a,i,!0),a+=2}return new Blob([o],{type:"audio/wav"})},s=(e,t,n)=>{for(let r=0;r<n.length;r++)e.setUint8(t+r,n.charCodeAt(r))},d=e=>{const t=3&e.length,n=e.length-t,r=3432918353,o=461845907;let a,i,c;for(let t=0;t<n;t++)c=255&e.charCodeAt(t)|(255&e.charCodeAt(++t))<<8|(255&e.charCodeAt(++t))<<16|(255&e.charCodeAt(++t))<<24,++t,c=(65535&c)*r+(((c>>>16)*r&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(65535&c)*o+(((c>>>16)*o&65535)<<16)&4294967295,a^=c,a=a<<13|a>>>19,i=5*(65535&a)+((5*(a>>>16)&65535)<<16)&4294967295,a=27492+(65535&i)+((58964+(i>>>16)&65535)<<16);const l=n-1;switch(c=0,t){case 3:c^=(255&e.charCodeAt(l+2))<<16;break;case 2:c^=(255&e.charCodeAt(l+1))<<8;break;case 1:c^=255&e.charCodeAt(l)}return c=(65535&c)*r+(((c>>>16)*r&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(65535&c)*o+(((c>>>16)*o&65535)<<16)&4294967295,a^=c,a^=e.length,a^=a>>>16,a=2246822507*(65535&a)+((2246822507*(a>>>16)&65535)<<16)&4294967295,a^=a>>>13,a=3266489909*(65535&a)+((3266489909*(a>>>16)&65535)<<16)&4294967295,a^=a>>>16,a>>>0};"undefined"!=typeof window&&(window.getBrowserFingerprint=r);const f=r}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,n),a.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(156)})();
