// https://github.com/fingerprintjs/fingerprintjs/blob/master/src/utils/hashing.ts package funcaptcha import ( "fmt" "sort" "strings" ) //goland:noinspection SpellCheckingInspection func getWindowHash() string { // return aA(b1[df(f_a_hT.e)]()[df(f_a_hT.f)]('|'), 0x1a4); // Object.getOwnPropertyNames(window); b1 := []string{ "ALFCCJS", "AbortController", "AbortSignal", "AbsoluteOrientationSensor", "AbstractRange", "Accelerometer", "AggregateError", "AnalyserNode", "Animation", "AnimationEffect", "AnimationEvent", "AnimationPlaybackEvent", "AnimationTimeline", "ArkoseEnforcement", "Array", "ArrayBuffer", "Atomics", "Attr", "Audio", "AudioBuffer", "AudioBufferSourceNode", "AudioContext", "AudioData", "AudioDecoder", "AudioDestinationNode", "AudioEncoder", "AudioListener", "AudioNode", "AudioParam", "AudioParamMap", "AudioProcessingEvent", "AudioScheduledSourceNode", "AudioSinkInfo", "AudioWorklet", "AudioWorkletNode", "AuthenticatorAssertionResponse", "AuthenticatorAttestationResponse", "AuthenticatorResponse", "BackgroundFetchManager", "BackgroundFetchRecord", "BackgroundFetchRegistration", "BarProp", "BaseAudioContext", "BatteryManager", "BeforeInstallPromptEvent", "BeforeUnloadEvent", "BigInt", "BigInt64Array", "BigUint64Array", "BiquadFilterNode", "Blob", "BlobEvent", "Boolean", "BroadcastChannel", "BrowserCaptureMediaStreamTrack", "ByteLengthQueuingStrategy", "CDATASection", "CSS", "CSSAnimation", "CSSConditionRule", "CSSContainerRule", "CSSCounterStyleRule", "CSSFontFaceRule", "CSSFontPaletteValuesRule", "CSSGroupingRule", "CSSImageValue", "CSSImportRule", "CSSKeyframeRule", "CSSKeyframesRule", "CSSKeywordValue", "CSSLayerBlockRule", "CSSLayerStatementRule", "CSSMathClamp", "CSSMathInvert", "CSSMathMax", "CSSMathMin", "CSSMathNegate", "CSSMathProduct", "CSSMathSum", "CSSMathValue", "CSSMatrixComponent", "CSSMediaRule", "CSSNamespaceRule", "CSSNumericArray", "CSSNumericValue", "CSSPageRule", "CSSPerspective", "CSSPositionValue", "CSSPropertyRule", "CSSRotate", "CSSRule", "CSSRuleList", "CSSScale", "CSSSkew", "CSSSkewX", "CSSSkewY", "CSSStyleDeclaration", "CSSStyleRule", "CSSStyleSheet", "CSSStyleValue", "CSSSupportsRule", "CSSTransformComponent", "CSSTransformValue", "CSSTransition", "CSSTranslate", "CSSUnitValue", "CSSUnparsedValue", "CSSVariableReferenceValue", "Cache", "CacheStorage", "CanvasCaptureMediaStreamTrack", "CanvasGradient", "CanvasPattern", "CanvasRenderingContext2D", "CaptureController", "ChannelMergerNode", "ChannelSplitterNode", "CharacterData", "Clipboard", "ClipboardEvent", "ClipboardItem", "CloseEvent", "Comment", "CompositionEvent", "CompressionStream", "ConstantSourceNode", "ContentVisibilityAutoStateChangeEvent", "ConvolverNode", "CookieChangeEvent", "CookieStore", "CookieStoreManager", "CountQueuingStrategy", "Credential", "CredentialsContainer", "CropTarget", "Crypto", "CryptoKey", "CustomElementRegistry", "CustomEvent", "CustomStateSet", "DOMError", "DOMException", "DOMImplementation", "DOMMatrix", "DOMMatrixReadOnly", "DOMParser", "DOMPoint", "DOMPointReadOnly", "DOMQuad", "DOMRect", "DOMRectList", "DOMRectReadOnly", "DOMStringList", "DOMStringMap", "DOMTokenList", "DataTransfer", "DataTransferItem", "DataTransferItemList", "DataView", "Date", "DecompressionStream", "DelayNode", "DelegatedInkTrailPresenter", "DeviceMotionEvent", "DeviceMotionEventAcceleration", "DeviceMotionEventRotationRate", "DeviceOrientationEvent", "Document", "DocumentFragment", "DocumentTimeline", "DocumentType", "DragEvent", "DynamicsCompressorNode", "Element", "ElementInternals", "EncodedAudioChunk", "EncodedVideoChunk", "Error", "ErrorEvent", "EvalError", "Event", "EventCounts", "EventSource", "EventTarget", "External", "EyeDropper", "FeaturePolicy", "FederatedCredential", "File", "FileList", "FileReader", "FileSystemDirectoryHandle", "FileSystemFileHandle", "FileSystemHandle", "FileSystemWritableFileStream", "FinalizationRegistry", "Float32Array", "Float64Array", "FocusEvent", "FontData", "FontFace", "FontFaceSetLoadEvent", "FormData", "FormDataEvent", "FragmentDirective", "FunCaptcha", "Function", "GPU", "GPUAdapter", "GPUAdapterInfo", "GPUBindGroup", "GPUBindGroupLayout", "GPUBuffer", "GPUBufferUsage", "GPUCanvasContext", "GPUColorWrite", "GPUCommandBuffer", "GPUCommandEncoder", "GPUCompilationInfo", "GPUCompilationMessage", "GPUComputePassEncoder", "GPUComputePipeline", "GPUDevice", "GPUDeviceLostInfo", "GPUError", "GPUExternalTexture", "GPUInternalError", "GPUMapMode", "GPUOutOfMemoryError", "GPUPipelineError", "GPUPipelineLayout", "GPUQuerySet", "GPUQueue", "GPURenderBundle", "GPURenderBundleEncoder", "GPURenderPassEncoder", "GPURenderPipeline", "GPUSampler", "GPUShaderModule", "GPUShaderStage", "GPUSupportedFeatures", "GPUSupportedLimits", "GPUTexture", "GPUTextureUsage", "GPUTextureView", "GPUUncapturedErrorEvent", "GPUValidationError", "GainNode", "Gamepad", "GamepadButton", "GamepadEvent", "GamepadHapticActuator", "Geolocation", "GeolocationCoordinates", "GeolocationPosition", "GeolocationPositionError", "GravitySensor", "Gyroscope", "HID", "HIDConnectionEvent", "HIDDevice", "HIDInputReportEvent", "HTMLAllCollection", "HTMLAnchorElement", "HTMLAreaElement", "HTMLAudioElement", "HTMLBRElement", "HTMLBaseElement", "HTMLBodyElement", "HTMLButtonElement", "HTMLCanvasElement", "HTMLCollection", "HTMLDListElement", "HTMLDataElement", "HTMLDataListElement", "HTMLDetailsElement", "HTMLDialogElement", "HTMLDirectoryElement", "HTMLDivElement", "HTMLDocument", "HTMLElement", "HTMLEmbedElement", "HTMLFieldSetElement", "HTMLFontElement", "HTMLFormControlsCollection", "HTMLFormElement", "HTMLFrameElement", "HTMLFrameSetElement", "HTMLHRElement", "HTMLHeadElement", "HTMLHeadingElement", "HTMLHtmlElement", "HTMLIFrameElement", "HTMLImageElement", "HTMLInputElement", "HTMLLIElement", "HTMLLabelElement", "HTMLLegendElement", "HTMLLinkElement", "HTMLMapElement", "HTMLMarqueeElement", "HTMLMediaElement", "HTMLMenuElement", "HTMLMetaElement", "HTMLMeterElement", "HTMLModElement", "HTMLOListElement", "HTMLObjectElement", "HTMLOptGroupElement", "HTMLOptionElement", "HTMLOptionsCollection", "HTMLOutputElement", "HTMLParagraphElement", "HTMLParamElement", "HTMLPictureElement", "HTMLPreElement", "HTMLProgressElement", "HTMLQuoteElement", "HTMLScriptElement", "HTMLSelectElement", "HTMLSlotElement", "HTMLSourceElement", "HTMLSpanElement", "HTMLStyleElement", "HTMLTableCaptionElement", "HTMLTableCellElement", "HTMLTableColElement", "HTMLTableElement", "HTMLTableRowElement", "HTMLTableSectionElement", "HTMLTemplateElement", "HTMLTextAreaElement", "HTMLTimeElement", "HTMLTitleElement", "HTMLTrackElement", "HTMLUListElement", "HTMLUnknownElement", "HTMLVideoElement", "HashChangeEvent", "Headers", "Highlight", "HighlightRegistry", "History", "IDBCursor", "IDBCursorWithValue", "IDBDatabase", "IDBFactory", "IDBIndex", "IDBKeyRange", "IDBObjectStore", "IDBOpenDBRequest", "IDBRequest", "IDBTransaction", "IDBVersionChangeEvent", "IIRFilterNode", "IdentityCredential", "IdleDeadline", "IdleDetector", "Image", "ImageBitmap", "ImageBitmapRenderingContext", "ImageCapture", "ImageData", "ImageDecoder", "ImageTrack", "ImageTrackList", "Infinity", "Ink", "InputDeviceCapabilities", "InputDeviceInfo", "InputEvent", "Int16Array", "Int32Array", "Int8Array", "IntersectionObserver", "IntersectionObserverEntry", "Intl", "JSON", "Keyboard", "KeyboardEvent", "KeyboardLayoutMap", "KeyframeEffect", "LargestContentfulPaint", "LaunchParams", "LaunchQueue", "LayoutShift", "LayoutShiftAttribution", "LinearAccelerationSensor", "Location", "Lock", "LockManager", "MIDIAccess", "MIDIConnectionEvent", "MIDIInput", "MIDIInputMap", "MIDIMessageEvent", "MIDIOutput", "MIDIOutputMap", "MIDIPort", "Map", "Math", "MathMLElement", "MediaCapabilities", "MediaDeviceInfo", "MediaDevices", "MediaElementAudioSourceNode", "MediaEncryptedEvent", "MediaError", "MediaKeyMessageEvent", "MediaKeySession", "MediaKeyStatusMap", "MediaKeySystemAccess", "MediaKeys", "MediaList", "MediaMetadata", "MediaQueryList", "MediaQueryListEvent", "MediaRecorder", "MediaSession", "MediaSource", "MediaSourceHandle", "MediaStream", "MediaStreamAudioDestinationNode", "MediaStreamAudioSourceNode", "MediaStreamEvent", "MediaStreamTrack", "MediaStreamTrackEvent", "MediaStreamTrackGenerator", "MediaStreamTrackProcessor", "MessageChannel", "MessageEvent", "MessagePort", "MimeType", "MimeTypeArray", "MouseEvent", "MutationEvent", "MutationObserver", "MutationRecord", "NaN", "NamedNodeMap", "NavigateEvent", "Navigation", "NavigationCurrentEntryChangeEvent", "NavigationDestination", "NavigationHistoryEntry", "NavigationPreloadManager", "NavigationTransition", "Navigator", "NavigatorManagedData", "NavigatorUAData", "NetworkInformation", "Node", "NodeFilter", "NodeIterator", "NodeList", "Notification", "Number", "OTPCredential", "Object", "OfflineAudioCompletionEvent", "OfflineAudioContext", "OffscreenCanvas", "OffscreenCanvasRenderingContext2D", "Option", "OrientationSensor", "OscillatorNode", "OverconstrainedError", "PageTransitionEvent", "PannerNode", "PasswordCredential", "Path2D", "PaymentAddress", "PaymentManager", "PaymentMethodChangeEvent", "PaymentRequest", "PaymentRequestUpdateEvent", "PaymentResponse", "Performance", "PerformanceElementTiming", "PerformanceEntry", "PerformanceEventTiming", "PerformanceLongTaskTiming", "PerformanceMark", "PerformanceMeasure", "PerformanceNavigation", "PerformanceNavigationTiming", "PerformanceObserver", "PerformanceObserverEntryList", "PerformancePaintTiming", "PerformanceResourceTiming", "PerformanceServerTiming", "PerformanceTiming", "PeriodicSyncManager", "PeriodicWave", "PermissionStatus", "Permissions", "PictureInPictureEvent", "PictureInPictureWindow", "Plugin", "PluginArray", "PointerEvent", "PopStateEvent", "Presentation", "PresentationAvailability", "PresentationConnection", "PresentationConnectionAvailableEvent", "PresentationConnectionCloseEvent", "PresentationConnectionList", "PresentationReceiver", "PresentationRequest", "ProcessingInstruction", "Profiler", "ProgressEvent", "Promise", "PromiseRejectionEvent", "Proxy", "PublicKeyCredential", "PushManager", "PushSubscription", "PushSubscriptionOptions", "RTCCertificate", "RTCDTMFSender", "RTCDTMFToneChangeEvent", "RTCDataChannel", "RTCDataChannelEvent", "RTCDtlsTransport", "RTCEncodedAudioFrame", "RTCEncodedVideoFrame", "RTCError", "RTCErrorEvent", "RTCIceCandidate", "RTCIceTransport", "RTCPeerConnection", "RTCPeerConnectionIceErrorEvent", "RTCPeerConnectionIceEvent", "RTCRtpReceiver", "RTCRtpSender", "RTCRtpTransceiver", "RTCSctpTransport", "RTCSessionDescription", "RTCStatsReport", "RTCTrackEvent", "RadioNodeList", "Range", "RangeError", "ReadableByteStreamController", "ReadableStream", "ReadableStreamBYOBReader", "ReadableStreamBYOBRequest", "ReadableStreamDefaultController", "ReadableStreamDefaultReader", "ReferenceError", "Reflect", "RegExp", "RelativeOrientationSensor", "RemotePlayback", "ReportingObserver", "Request", "ResizeObserver", "ResizeObserverEntry", "ResizeObserverSize", "Response", "SVGAElement", "SVGAngle", "SVGAnimateElement", "SVGAnimateMotionElement", "SVGAnimateTransformElement", "SVGAnimatedAngle", "SVGAnimatedBoolean", "SVGAnimatedEnumeration", "SVGAnimatedInteger", "SVGAnimatedLength", "SVGAnimatedLengthList", "SVGAnimatedNumber", "SVGAnimatedNumberList", "SVGAnimatedPreserveAspectRatio", "SVGAnimatedRect", "SVGAnimatedString", "SVGAnimatedTransformList", "SVGAnimationElement", "SVGCircleElement", "SVGClipPathElement", "SVGComponentTransferFunctionElement", "SVGDefsElement", "SVGDescElement", "SVGElement", "SVGEllipseElement", "SVGFEBlendElement", "SVGFEColorMatrixElement", "SVGFEComponentTransferElement", "SVGFECompositeElement", "SVGFEConvolveMatrixElement", "SVGFEDiffuseLightingElement", "SVGFEDisplacementMapElement", "SVGFEDistantLightElement", "SVGFEDropShadowElement", "SVGFEFloodElement", "SVGFEFuncAElement", "SVGFEFuncBElement", "SVGFEFuncGElement", "SVGFEFuncRElement", "SVGFEGaussianBlurElement", "SVGFEImageElement", "SVGFEMergeElement", "SVGFEMergeNodeElement", "SVGFEMorphologyElement", "SVGFEOffsetElement", "SVGFEPointLightElement", "SVGFESpecularLightingElement", "SVGFESpotLightElement", "SVGFETileElement", "SVGFETurbulenceElement", "SVGFilterElement", "SVGForeignObjectElement", "SVGGElement", "SVGGeometryElement", "SVGGradientElement", "SVGGraphicsElement", "SVGImageElement", "SVGLength", "SVGLengthList", "SVGLineElement", "SVGLinearGradientElement", "SVGMPathElement", "SVGMarkerElement", "SVGMaskElement", "SVGMatrix", "SVGMetadataElement", "SVGNumber", "SVGNumberList", "SVGPathElement", "SVGPatternElement", "SVGPoint", "SVGPointList", "SVGPolygonElement", "SVGPolylineElement", "SVGPreserveAspectRatio", "SVGRadialGradientElement", "SVGRect", "SVGRectElement", "SVGSVGElement", "SVGScriptElement", "SVGSetElement", "SVGStopElement", "SVGStringList", "SVGStyleElement", "SVGSwitchElement", "SVGSymbolElement", "SVGTSpanElement", "SVGTextContentElement", "SVGTextElement", "SVGTextPathElement", "SVGTextPositioningElement", "SVGTitleElement", "SVGTransform", "SVGTransformList", "SVGUnitTypes", "SVGUseElement", "SVGViewElement", "Sanitizer", "Scheduler", "Scheduling", "Screen", "ScreenDetailed", "ScreenDetails", "ScreenOrientation", "ScriptProcessorNode", "SecurityPolicyViolationEvent", "Selection", "Sensor", "SensorErrorEvent", "Serial", "SerialPort", "ServiceWorker", "ServiceWorkerContainer", "ServiceWorkerRegistration", "Set", "ShadowRoot", "SharedWorker", "SourceBuffer", "SourceBufferList", "SpeechSynthesisErrorEvent", "SpeechSynthesisEvent", "SpeechSynthesisUtterance", "StaticRange", "StereoPannerNode", "Storage", "StorageEvent", "StorageManager", "String", "StylePropertyMap", "StylePropertyMapReadOnly", "StyleSheet", "StyleSheetList", "SubmitEvent", "SubtleCrypto", "Symbol", "SyncManager", "SyntaxError", "TaskAttributionTiming", "TaskController", "TaskPriorityChangeEvent", "TaskSignal", "Text", "TextDecoder", "TextDecoderStream", "TextEncoder", "TextEncoderStream", "TextEvent", "TextMetrics", "TextTrack", "TextTrackCue", "TextTrackCueList", "TextTrackList", "TimeRanges", "ToggleEvent", "Touch", "TouchEvent", "TouchList", "TrackEvent", "TransformStream", "TransformStreamDefaultController", "TransitionEvent", "TreeWalker", "TrustedHTML", "TrustedScript", "TrustedScriptURL", "TrustedTypePolicy", "TrustedTypePolicyFactory", "TypeError", "UIEvent", "URIError", "URL", "URLPattern", "URLSearchParams", "USB", "USBAlternateInterface", "USBConfiguration", "USBConnectionEvent", "USBDevice", "USBEndpoint", "USBInTransferResult", "USBInterface", "USBIsochronousInTransferPacket", "USBIsochronousInTransferResult", "USBIsochronousOutTransferPacket", "USBIsochronousOutTransferResult", "USBOutTransferResult", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "UserActivation", "VTTCue", "ValidityState", "VideoColorSpace", "VideoDecoder", "VideoEncoder", "VideoFrame", "VideoPlaybackQuality", "ViewTransition", "VirtualKeyboard", "VirtualKeyboardGeometryChangeEvent", "VisualViewport", "WakeLock", "WakeLockSentinel", "WaveShaperNode", "WeakMap", "WeakRef", "WeakSet", "WebAssembly", "WebGL2RenderingContext", "WebGLActiveInfo", "WebGLBuffer", "WebGLContextEvent", "WebGLFramebuffer", "WebGLProgram", "WebGLQuery", "WebGLRenderbuffer", "WebGLRenderingContext", "WebGLSampler", "WebGLShader", "WebGLShaderPrecisionFormat", "WebGLSync", "WebGLTexture", "WebGLTransformFeedback", "WebGLUniformLocation", "WebGLVertexArrayObject", "WebKitCSSMatrix", "WebKitMutationObserver", "WebSocket", "WebTransport", "WebTransportBidirectionalStream", "WebTransportDatagramDuplexStream", "WebTransportError", "WheelEvent", "Window", "WindowControlsOverlay", "WindowControlsOverlayGeometryChangeEvent", "Worker", "Worklet", "WritableStream", "WritableStreamDefaultController", "WritableStreamDefaultWriter", "XMLDocument", "XMLHttpRequest", "XMLHttpRequestEventTarget", "XMLHttpRequestUpload", "XMLSerializer", "XPathEvaluator", "XPathExpression", "XPathResult", "XRAnchor", "XRAnchorSet", "XRBoundedReferenceSpace", "XRCPUDepthInformation", "XRCamera", "XRDOMOverlayState", "XRDepthInformation", "XRFrame", "XRHitTestResult", "XRHitTestSource", "XRInputSource", "XRInputSourceArray", "XRInputSourceEvent", "XRInputSourcesChangeEvent", "XRLayer", "XRLightEstimate", "XRLightProbe", "XRPose", "XRRay", "XRReferenceSpace", "XRReferenceSpaceEvent", "XRRenderState", "XRRigidTransform", "XRSession", "XRSessionEvent", "XRSpace", "XRSystem", "XRTransientInputHitTestResult", "XRTransientInputHitTestSource", "XRView", "XRViewerPose", "XRViewport", "XRWebGLBinding", "XRWebGLDepthInformation", "XRWebGLLayer", "XSLTProcessor", "__core-js_shared__", "_countAA", "ae", "alert", "api_target", "api_target_sri", "ark", "async_fingerprints", "atob", "blur", "btoa", "caches", "cancelAnimationFrame", "cancelIdleCallback", "capiMode", "capiSettings", "capiVersion", "captureEvents", "cdn", "chrome", "clearInterval", "clearTimeout", "clientInformation", "close", "closed", "confirm", "console", "cookieStore", "createImageBitmap", "credentialless", "crossOriginIsolated", "crypto", "customElements", "decodeURI", "decodeURIComponent", "devicePixelRatio", "doBBBd", "document", "encodeURI", "encodeURIComponent", "escape", "eval", "event", "extended_fingerprinting_enabled", "external", "fc_api_server", "fc_fp", "fc_obj", "fetch", "find", "find_onload", "fingerprinting_enabled", "focus", "fp_result", "frameElement", "frames", "getComputedStyle", "getScreenDetails", "getSelection", "get_outer_html", "get_query_data", "globalThis", "history", "indexedDB", "innerHeight", "innerWidth", "isFinite", "isNaN", "isSecureContext", "launchQueue", "length", "loadedWithData", "localStorage", "location", "locationbar", "log", "matchMedia", "menubar", "moveBy", "moveTo", "msie", "name", "navigation", "navigator", "offscreenBuffering", "onabort", "onafterprint", "onanimationend", "onanimationiteration", "onanimationstart", "onappinstalled", "onauxclick", "onbeforeinput", "onbeforeinstallprompt", "onbeforematch", "onbeforeprint", "onbeforetoggle", "onbeforeunload", "onbeforexrselect", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontentvisibilityautostatechange", "oncontextlost", "oncontextmenu", "oncontextrestored", "oncuechange", "ondblclick", "ondevicemotion", "ondeviceorientation", "ondeviceorientationabsolute", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onformdata", "ongotpointercapture", "onhashchange", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onlanguagechange", "onload", "onload_retry", "onloadeddata", "onloadedmetadata", "onloadstart", "onlostpointercapture", "onmessage", "onmessageerror", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onoffline", "ononline", "onpagehide", "onpageshow", "onpause", "onplay", "onplaying", "onpointercancel", "onpointerdown", "onpointerenter", "onpointerleave", "onpointermove", "onpointerout", "onpointerover", "onpointerrawupdate", "onpointerup", "onpopstate", "onprogress", "onratechange", "onrejectionhandled", "onreset", "onresize", "onscroll", "onscrollend", "onsearch", "onsecuritypolicyviolation", "onseeked", "onseeking", "onselect", "onselectionchange", "onselectstart", "onslotchange", "onstalled", "onstorage", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "ontransitioncancel", "ontransitionend", "ontransitionrun", "ontransitionstart", "onunhandledrejection", "onunload", "onvolumechange", "onwaiting", "onwebkitanimationend", "onwebkitanimationiteration", "onwebkitanimationstart", "onwebkittransitionend", "onwheel", "open", "openDatabase", "opener", "origin", "originAgentCluster", "outerHeight", "outerWidth", "pageXOffset", "pageYOffset", "parent", "parseFloat", "parseInt", "performance", "personalbar", "postMessage", "print", "prompt", "public_key", "queryLocalFonts", "query_data", "queueMicrotask", "releaseEvents", "reportError", "requestAnimationFrame", "requestIdleCallback", "resizeBy", "resizeTo", "scheduler", "screen", "screenLeft", "screenTop", "screenX", "screenY", "scroll", "scrollBy", "scrollTo", "scrollX", "scrollY", "scrollbars", "self", "sessionStorage", "setAPIInput", "setInterval", "setQueryDataInput", "setTimeout", "showDirectoryPicker", "showOpenFilePicker", "showSaveFilePicker", "siteData", "speechSynthesis", "startArkoseEnforcement", "status", "statusbar", "stop", "stringifyWithFloat", "structuredClone", "styleMedia", "target", "toolbar", "top", "trustedTypes", "undefined", "unescape", "visualViewport", "webkitCancelAnimationFrame", "webkitMediaStream", "webkitRTCPeerConnection", "webkitRequestAnimationFrame", "webkitRequestFileSystem", "webkitResolveLocalFileSystemURL", "webkitSpeechGrammar", "webkitSpeechGrammarList", "webkitSpeechRecognition", "webkitSpeechRecognitionError", "webkitSpeechRecognitionEvent", "webkitURL", "window", } sort.Strings(b1) result := strings.Join(b1, "|") return getMurmur128String(result, 420) } func getWindowProtoChainHash() string { // return this[dh(f_a_hU.f)](b0[dh(f_a_hU.g)]('|'), 0x1a4); // Object.getPrototypeOf(window); b0 := []string{ "TEMPORARY", "PERSISTENT", "constructor", "addEventListener", "dispatchEvent", "removeEventListener", "constructor", "constructor", "__defineGetter__", "__defineSetter__", "hasOwnProperty", "__lookupGetter__", "__lookupSetter__", "isPrototypeOf", "propertyIsEnumerable", "toString", "valueOf", "__proto__", "toLocaleString", } result2 := strings.Join(b0, "|") return x64hash128(result2, 420) } func x64Add(m []uint32, n []uint32) []uint32 { m = []uint32{m[0] >> 16, m[0] & 0xffff, m[1] >> 16, m[1] & 0xffff} n = []uint32{n[0] >> 16, n[0] & 0xffff, n[1] >> 16, n[1] & 0xffff} o := []uint32{0, 0, 0, 0} o[3] += m[3] + n[3] o[2] += o[3] >> 16 o[3] &= 0xffff o[2] += m[2] + n[2] o[1] += o[2] >> 16 o[2] &= 0xffff o[1] += m[1] + n[1] o[0] += o[1] >> 16 o[1] &= 0xffff o[0] += m[0] + n[0] o[0] &= 0xffff return []uint32{(o[0] << 16) | o[1], (o[2] << 16) | o[3]} } func x64Multiply(m []uint32, n []uint32) []uint32 { m = []uint32{m[0] >> 16, m[0] & 0xffff, m[1] >> 16, m[1] & 0xffff} n = []uint32{n[0] >> 16, n[0] & 0xffff, n[1] >> 16, n[1] & 0xffff} o := []uint32{0, 0, 0, 0} o[3] += m[3] * n[3] o[2] += o[3] >> 16 o[3] &= 0xffff o[2] += m[2] * n[3] o[1] += o[2] >> 16 o[2] &= 0xffff o[2] += m[3] * n[2] o[1] += o[2] >> 16 o[2] &= 0xffff o[1] += m[1] * n[3] o[0] += o[1] >> 16 o[1] &= 0xffff o[1] += m[2] * n[2] o[0] += o[1] >> 16 o[1] &= 0xffff o[1] += m[3] * n[1] o[0] += o[1] >> 16 o[1] &= 0xffff o[0] += m[0]*n[3] + m[1]*n[2] + m[2]*n[1] + m[3]*n[0] o[0] &= 0xffff return []uint32{(o[0] << 16) | o[1], (o[2] << 16) | o[3]} } //goland:noinspection SpellCheckingInspection func x64Rotl(m []uint32, n uint32) []uint32 { n %= 64 if n == 32 { return []uint32{m[1], m[0]} } else if n < 32 { return []uint32{(m[0] << n) | (m[1] >> (32 - n)), (m[1] << n) | (m[0] >> (32 - n))} } else { n -= 32 return []uint32{(m[1] << n) | (m[0] >> (32 - n)), (m[0] << n) | (m[1] >> (32 - n))} } } func x64LeftShift(m []uint32, n uint32) []uint32 { n %= 64 if n == 0 { return m } else if n < 32 { return []uint32{(m[0] << n) | (m[1] >> (32 - n)), m[1] << n} } else { return []uint32{m[1] << (n - 32), 0} } } func x64Xor(m []uint32, n []uint32) []uint32 { return []uint32{m[0] ^ n[0], m[1] ^ n[1]} } //goland:noinspection SpellCheckingInspection func x64Fmix(h []uint32) []uint32 { h = x64Xor(h, []uint32{0, h[0] >> 1}) h = x64Multiply(h, []uint32{0xff51afd7, 0xed558ccd}) h = x64Xor(h, []uint32{0, h[0] >> 1}) h = x64Multiply(h, []uint32{0xc4ceb9fe, 0x1a85ec53}) h = x64Xor(h, []uint32{0, h[0] >> 1}) return h } func x64hash128(key string, seed uint32) string { keyLength := len(key) remainder := keyLength % 16 bytes := keyLength - remainder var h1 = []uint32{0, seed} var h2 = []uint32{0, seed} var k1 = []uint32{0, 0} var k2 = []uint32{0, 0} var c1 = []uint32{0x87c37b91, 0x114253d5} var c2 = []uint32{0x4cf5ad43, 0x2745937f} for i := 0; i < bytes; i += 16 { k1[0] = uint32(key[i+4])&0xff | (uint32(key[i+5])&0xff)<<8 | (uint32(key[i+6])&0xff)<<16 | (uint32(key[i+7])&0xff)<<24 k1[1] = uint32(key[i])&0xff | (uint32(key[i+1])&0xff)<<8 | (uint32(key[i+2])&0xff)<<16 | (uint32(key[i+3])&0xff)<<24 k2[0] = uint32(key[i+12])&0xff | (uint32(key[i+13])&0xff)<<8 | (uint32(key[i+14])&0xff)<<16 | (uint32(key[i+15])&0xff)<<24 k2[1] = uint32(key[i+8])&0xff | (uint32(key[i+9])&0xff)<<8 | (uint32(key[i+10])&0xff)<<16 | (uint32(key[i+11])&0xff)<<24 k1 = x64Multiply(k1, c1) k1 = x64Rotl(k1, 31) k1 = x64Multiply(k1, c2) h1 = x64Xor(h1, k1) h1 = x64Rotl(h1, 27) h1 = x64Add(h1, h2) h1 = x64Add(x64Multiply(h1, []uint32{0, 5}), []uint32{0, 0x52dce729}) k2 = x64Multiply(k2, c2) k2 = x64Rotl(k2, 33) k2 = x64Multiply(k2, c1) h2 = x64Xor(h2, k2) h2 = x64Rotl(h2, 31) h2 = x64Add(h2, h1) h2 = x64Add(x64Multiply(h2, []uint32{0, 5}), []uint32{0, 0x38495ab5}) } k1 = []uint32{0, 0} k2 = []uint32{0, 0} switch remainder { case 15: k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+14])}, 48)) fallthrough case 14: k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+13])}, 40)) fallthrough case 13: k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+12])}, 32)) fallthrough case 12: k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+11])}, 24)) fallthrough case 11: k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+10])}, 16)) fallthrough case 10: k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+9])}, 8)) fallthrough case 9: k2 = x64Xor(k2, []uint32{0, uint32(key[bytes+8])}) k2 = x64Multiply(k2, c2) k2 = x64Rotl(k2, 33) k2 = x64Multiply(k2, c1) h2 = x64Xor(h2, k2) fallthrough case 8: k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+7])}, 56)) fallthrough case 7: k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+6])}, 48)) fallthrough case 6: k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+5])}, 40)) fallthrough case 5: k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+4])}, 32)) fallthrough case 4: k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+3])}, 24)) fallthrough case 3: k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+2])}, 16)) fallthrough case 2: k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+1])}, 8)) fallthrough case 1: k1 = x64Xor(k1, []uint32{0, uint32(key[bytes])}) k1 = x64Multiply(k1, c1) k1 = x64Rotl(k1, 31) k1 = x64Multiply(k1, c2) h1 = x64Xor(h1, k1) } h1 = x64Xor(h1, []uint32{0, uint32(keyLength)}) h2 = x64Xor(h2, []uint32{0, uint32(keyLength)}) h1 = x64Add(h1, h2) h2 = x64Add(h2, h1) h1 = x64Fmix(h1) h2 = x64Fmix(h2) h1 = x64Add(h1, h2) h2 = x64Add(h2, h1) return fmt.Sprintf("%08x%08x%08x%08x", h1[0], h1[1], h2[0], h2[1]) } func getCFPHash(cfp string) uint32 { //'this is the cfp: canvas xxx base64 image'.split('').reduce((b5, b6) => { // return b5 = (b5 << 5) - b5 + b6.charCodeAt(0), b5 & b5; //}, 0); var b5 uint32 for _, b6 := range cfp { b5 = (b5 << 5) - b5 + uint32(b6) b5 &= b5 } return b5 } func getIfeHash() string { return x64hash128(strings.Join(getFeList(), ", "), 38) }