🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@mochi.js/profiles

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mochi.js/profiles - npm Package Compare versions

Comparing version
0.0.4
to
0.1.0
+518
data/linux-chrome-stable/baseline.manifest.json
{
"timing": {
"timezone": "UTC",
"timezoneOffset": 0,
"locale": "en-US",
"dateString": "Mon Jan 01 2024 12:00:00 GMT+0000 (Coordinated Universal Time)",
"localeString": "1/1/2024, 12:00:00 PM",
"localeDateString": "1/1/2024",
"numberFormat": {
"locale": "en-US",
"numberingSystem": "latn",
"style": "decimal",
"minimumIntegerDigits": 1,
"minimumFractionDigits": 0,
"maximumFractionDigits": 3,
"useGrouping": "auto",
"notation": "standard",
"signDisplay": "auto",
"roundingIncrement": 1,
"roundingMode": "halfExpand",
"roundingPriority": "auto",
"trailingZeroDisplay": "auto"
},
"dateTimeFormat": {
"locale": "en-US",
"calendar": "gregory",
"numberingSystem": "latn",
"timeZone": "UTC",
"year": "numeric",
"month": "numeric",
"day": "numeric"
},
"supportedCalendars": [
"buddhist",
"chinese",
"coptic",
"dangi",
"ethioaa",
"ethiopic",
"gregory",
"hebrew",
"indian",
"islamic",
"islamic-civil",
"islamic-rgsa",
"islamic-tbla",
"islamic-umalqura",
"iso8601",
"japanese",
"persian",
"roc"
],
"supportedCurrencies": 159,
"supportedNumberingSystems": [
"adlm",
"ahom",
"arab",
"arabext",
"bali",
"beng",
"bhks",
"brah",
"cakm",
"cham",
"deva",
"diak",
"fullwide",
"gara",
"gong",
"gonm",
"gujr",
"gukh",
"guru",
"hanidec",
"hmng",
"hmnp",
"java",
"kali",
"kawi",
"khmr",
"knda",
"krai",
"lana",
"lanatham",
"laoo",
"latn",
"lepc",
"limb",
"mathbold",
"mathdbl",
"mathmono",
"mathsanb",
"mathsans",
"mlym",
"modi",
"mong",
"mroo",
"mtei",
"mymr",
"mymrepka",
"mymrpao",
"mymrshan",
"mymrtlng",
"nagm",
"newa",
"nkoo",
"olck",
"onao",
"orya",
"osma",
"outlined",
"rohg",
"saur",
"segment",
"shrd",
"sind",
"sinh",
"sora",
"sund",
"sunu",
"takr",
"talu",
"tamldec",
"telu",
"thai",
"tibt",
"tirh",
"tnsa",
"vaii",
"wara",
"wcho"
],
"supportedTimeZones": 418,
"supportedUnits": 45,
"performanceTiming": {
"dns": 0,
"tcp": 28,
"ttfb": 11,
"download": 17,
"domParsing": 21,
"domComplete": 41,
"loadEvent": 0,
"total": 186,
"protocol": "h2",
"transferSize": 3476,
"encodedBodySize": 3176,
"decodedBodySize": 10829
},
"timerPrecision": null,
"mathFingerprint": {
"E": 2.718281828459045,
"LN2": 0.6931471805599453,
"LN10": 2.302585092994046,
"LOG2E": 1.4426950408889634,
"LOG10E": 0.4342944819032518,
"PI": 3.141592653589793,
"SQRT2": 1.4142135623730951,
"SQRT1_2": 0.7071067811865476,
"acos": 1.0471975511965979,
"acosh": 1.3169578969248166,
"asin": 0.5235987755982989,
"atan": 0.7853981633974483,
"atanh": 0.5493061443340548,
"cbrt": 1.2599210498948732,
"cosh": 1.5430806348152437,
"expm1": 1.718281828459045,
"log1p": 0.4054651081081644,
"sinh": 1.1752011936438014,
"tanh": 0.7615941559557649
}
},
"bot": {
"webdriver": false,
"webdriverType": "normal",
"headlessChrome": false,
"automationKeys": [],
"automationDetected": false,
"chromeRuntime": false,
"pluginCount": 5,
"pluginInconsistency": false,
"languageInconsistency": false,
"permissionsApi": true,
"screenDimensions": "1280x800",
"suspiciousDimensions": false,
"maxTouchPoints": 0,
"touchEvent": false,
"touchInconsistency": false,
"notificationPermission": "default",
"userActivation": {
"hasBeenActive": false,
"isActive": false
},
"navigationTiming": {
"type": "navigate",
"redirectCount": 0,
"domComplete": 186,
"loadEventEnd": 186,
"domInteractive": 146
},
"stackDepthTest": 101
},
"storage": {
"localStorage": true,
"localStorageKeys": 1,
"sessionStorage": true,
"sessionStorageKeys": 0,
"cookiesEnabled": true,
"cookiesWritable": true,
"cookieCount": 0,
"indexedDB": true,
"cacheStorage": true,
"serviceWorker": true,
"storageManager": true,
"fileSystemAccess": true,
"sharedArrayBuffer": false,
"sharedWorker": true,
"openDatabase": false,
"broadcastChannel": true,
"secureContext": true
},
"fonts": {
"detected": [
"Arial",
"Courier New",
"Times New Roman",
"Courier",
"Helvetica",
"DejaVu Sans",
"DejaVu Sans Mono",
"DejaVu Serif",
"Liberation Mono",
"Liberation Sans",
"Liberation Serif"
],
"count": 11,
"tested": 117,
"hash": "388DCD16",
"fontsApiReady": true
},
"speech": {
"voices": [],
"voiceCount": 0,
"localVoices": 0,
"remoteVoices": 0,
"languages": []
},
"mediaDevices": {
"devices": [],
"deviceCount": 0,
"audioinput": 0,
"audiooutput": 0,
"videoinput": 0,
"supportedConstraints": {
"aspectRatio": true,
"autoGainControl": true,
"brightness": true,
"channelCount": true,
"colorTemperature": true,
"contrast": true,
"deviceId": true,
"displaySurface": true,
"echoCancellation": true,
"exposureCompensation": true,
"exposureMode": true,
"exposureTime": true,
"facingMode": true,
"focusDistance": true,
"focusMode": true,
"frameRate": true,
"groupId": true,
"height": true,
"iso": true,
"latency": true,
"noiseSuppression": true,
"pan": true,
"pointsOfInterest": true,
"resizeMode": true,
"restrictOwnAudio": true,
"sampleRate": true,
"sampleSize": true,
"saturation": true,
"sharpness": true,
"suppressLocalAudioPlayback": true,
"tilt": true,
"torch": true,
"voiceIsolation": true,
"whiteBalanceMode": true,
"width": true,
"zoom": true
}
},
"audio": {
"sampleRate": 44100,
"state": "suspended",
"baseLatency": 0.01,
"outputLatency": 0,
"maxChannelCount": 2,
"numberOfInputs": 1,
"numberOfOutputs": 0,
"channelCount": 2,
"channelCountMode": "explicit",
"channelInterpretation": "speakers",
"audioHash": "124.04347527516074",
"sampleValues": [
-0.10808052122592926,
-0.3909117579460144,
-0.005692707374691963,
0.3892313539981842,
0.1189708411693573,
-0.3545847237110138,
-0.22215835750102997,
0.28990939259529114,
0.30651888251304626,
-0.20068736374378204
]
},
"webgpu": {
"supported": true
},
"webgl": {
"error": "no webgl context"
},
"canvas": {
"consistent": true,
"hash": "0AA48148",
"dataUrlLength": 24878,
"dataUrlPrefix": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwA",
"webpSupport": true,
"jpegHighLength": 26367,
"jpegLowLength": 2291
},
"screen": {
"width": 1280,
"height": 800,
"availWidth": 1280,
"availHeight": 800,
"colorDepth": 24,
"pixelDepth": 24,
"innerWidth": 1050,
"innerHeight": 641,
"outerWidth": 1050,
"outerHeight": 780,
"screenX": 10,
"screenY": 10,
"pageXOffset": 0,
"pageYOffset": 0,
"devicePixelRatio": 1,
"orientation": {
"type": "landscape-primary",
"angle": 0
},
"mediaQueries": {
"prefers-color-scheme": "light",
"prefers-reduced-motion": "no-preference",
"prefers-contrast": "no-preference",
"forced-colors": "none",
"prefers-reduced-transparency": "no-preference",
"color-gamut": "srgb",
"pointer": "fine",
"hover": "hover",
"any-pointer": "fine",
"any-hover": "hover",
"display-mode": "browser",
"dynamic-range": "standard",
"update": "fast",
"overflow-block": "scroll",
"overflow-inline": "scroll",
"min-resolution": "96dpi",
"min-color": "8",
"monochrome": false
},
"visualViewport": {
"width": 1040,
"height": 641,
"offsetLeft": 0,
"offsetTop": 0,
"pageLeft": 0,
"pageTop": 0,
"scale": 1
}
},
"navigator": {
"secureContext": true,
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"platform": "Linux x86_64",
"vendor": "Google Inc.",
"vendorSub": "",
"product": "Gecko",
"productSub": "20030107",
"appVersion": "5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"appName": "Netscape",
"appCodeName": "Mozilla",
"language": "en-US",
"languages": [
"en-US",
"en"
],
"cookieEnabled": true,
"doNotTrack": null,
"maxTouchPoints": 0,
"hardwareConcurrency": 32,
"deviceMemory": 32,
"pdfViewerEnabled": true,
"webdriver": false,
"connection": {
"effectiveType": "4g",
"downlink": 10,
"rtt": 50,
"saveData": false
},
"plugins": [
{
"name": "PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chrome PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chromium PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Microsoft Edge PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "WebKit built-in PDF",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
}
],
"pluginCount": 5,
"mimeTypes": [
"application/pdf",
"text/pdf"
],
"userAgentData": {
"brands": [
{
"brand": "Chromium",
"version": "147"
},
{
"brand": "Not.A/Brand",
"version": "8"
}
],
"mobile": false,
"platform": "Linux"
},
"userAgentDataHighEntropy": {
"architecture": "x86",
"bitness": "64",
"brands": [
{
"brand": "Chromium",
"version": "147"
},
{
"brand": "Not.A/Brand",
"version": "8"
}
],
"fullVersionList": [
{
"brand": "Chromium",
"version": "147.0.7727.116"
},
{
"brand": "Not.A/Brand",
"version": "8.0.0.0"
}
],
"mobile": false,
"model": "",
"platform": "Linux",
"platformVersion": "",
"wow64": false
},
"permissions": {
"geolocation": "prompt",
"notifications": "prompt",
"camera": "prompt",
"microphone": "prompt",
"accelerometer": "granted",
"gyroscope": "granted",
"magnetometer": "granted",
"clipboard-read": "prompt",
"clipboard-write": "granted"
},
"storageEstimate": {
"quota": 39763673088,
"usage": 0
},
"bluetooth": false,
"usb": true,
"serial": true,
"hid": true,
"xr": true,
"gpu": true,
"ink": true,
"scheduling": true,
"windowControlsOverlay": true,
"virtualKeyboard": true
},
"__meta": {
"capturedAt": "2026-04-29T22:22:54.246Z",
"elapsedMs": 0,
"href": "http://wrkx.app/api/visitors/bcbb7cfaa7f381b92daacb6b7052c6b9",
"readyState": "complete"
}
}
{
"version": "1",
"profile": "linux-chrome-stable",
"paths": [
{
"path": "audio.**",
"comment": "Audio fingerprint bytes (sampleValues, audioHash) require precomputed per-(profile, sample-rate) byte tables — task 0071. docs/limits.md \"Audio fingerprinting (OfflineAudioContext) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "canvas.**",
"comment": "Canvas hash + dataUrl spoofing requires precomputed hash maps for the standard probe payloads + per-pixel noise injection — task 0071. docs/limits.md \"Canvas fingerprinting (HTMLCanvasElement.toDataURL) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "speech.**",
"comment": "speechSynthesis.getVoices() returns the host's installed system voices on real Chrome (typically 200+ entries on macOS, 20+ on Linux/Win). Chromium-for-Testing ships with no voice tables, so mochi spoofs voices=[]. Restoring real-device voice lists is a phase 0.7 deliverable (precomputed voice tables per-OS) tracked alongside audio/canvas. PLAN.md §13.6."
},
{
"path": "navigator.userAgentData.brands",
"comment": "Brand-list length varies (Linux Chrome emits 2 brands, macOS/Win emit 3). Same root cause as the per-entry comment below."
},
{
"path": "navigator.userAgentData.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentData.brands[*].**",
"comment": "Sec-CH-UA brand-list ordering and GREASE label vary between Chrome/Edge majors and even between Chrome point releases (e.g. 146 emits `Not-A.Brand;v=24` while 147 emits `Not.A/Brand;v=8`). mochi pins a single GREASE label per major (consistency/rules/lookups/browser.ts) for determinism — see tasks/0051-consistency-stack-fixes.md (Group B). Per-major GREASE shuffle is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.brands",
"comment": "Same as userAgentData.brands."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*].**",
"comment": "Same as navigator.userAgentData.brands — pinned for determinism."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList",
"comment": "Same as userAgentData.brands — length varies by OS."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*].**",
"comment": "Patch-level Chrome version (e.g. 146.0.7680.165) varies with the local Chrome install vs the BROWSER_TIP_FULL_VERSION table. mochi uses the table tip when the major matches; harvested values may differ by a few patch numbers. Refresh the table per Chrome major."
},
{
"path": "navigator.userAgent",
"comment": "Full UA string includes the patch version (see fullVersionList comment). Spoofed value matches BROWSER_TIP_FULL_VERSION; harvested value reflects the user's exact Chrome point release."
},
{
"path": "navigator.appVersion",
"comment": "Same patch-version drift as navigator.userAgent."
},
{
"path": "screen.mediaQueries.**",
"comment": "matchMedia() result strings depend on the host's actual OS/display state (min-resolution from real DPR, prefers-color-scheme from Dark Mode, etc.). mochi spoofs a deterministic baseline; the harvested values reflect the user's session at capture time. Per-profile media-query lock is phase 0.7."
},
{
"path": "screen.pageXOffset",
"comment": "Window-frame chrome. Sentinelized by normalize.ts in most paths but the raw harvested value may differ from the harness window's idle offset."
},
{
"path": "screen.pageYOffset",
"comment": "Window-frame chrome — same as pageXOffset."
},
{
"path": "timing.dateString",
"comment": "Date.toString() includes the host's wall-clock time, which differs every run. The probe normalises to a fixed 2024-01-01 anchor; harvested values reflect the user's actual capture time."
},
{
"path": "timing.performanceTiming",
"comment": "performance.timing.* fields vary per session (load durations, redirect counts). normalize.ts sentinelizes the bot.navigationTiming sub-block; the timing.performanceTiming block is harvester-specific and not currently sentinelized."
},
{
"path": "timing.supportedNumberingSystems[*]",
"comment": "Intl.supportedValuesOf('numberingSystem') grows between V8 majors (e.g. Chrome 149 added 'tols'). The harvested list reflects the user's V8; the harness uses Chromium-for-Testing's V8. List drift is expected as BROWSER_TIP_FULL_VERSION advances."
},
{
"path": "webgl.aliasedLineWidthRange[*]",
"comment": "WebGL aliasedLineWidthRange/PointSizeRange/maxViewportDims values vary with the GPU driver version on the host. mochi locks GPU vendor/renderer via the matrix; per-driver-version locking is phase 0.7."
},
{
"path": "webgl.aliasedPointSizeRange[*]",
"comment": "See webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxColorAttachments",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxViewportDims[*]",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgpu.features",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.features[*]",
"comment": "WebGPU feature list grows between Chromium majors. The harvested list reflects the user's Chrome version; the harness uses Chromium-for-Testing."
},
{
"path": "webgpu.info",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.limits.**",
"comment": "WebGPU adapter limits depend on the GPU driver. Per-driver locking is phase 0.7 alongside WebGL."
},
{
"path": "bot.chromeRuntime",
"comment": "Real Chrome exposes window.chrome.runtime; Chromium-for-Testing does not. Restoring chrome.runtime polyfill is task 0140 (stealth conformance) — tracked separately."
},
{
"path": "storage.cookieCount",
"comment": "Cookie state varies per session — the harvester's user had cookies, the harness session is fresh."
},
{
"path": "storage.cookiesWritable",
"comment": "Depends on the document context (file:// fixture vs http:// origin). Harvester captured at http(s) origin; harness uses file:// fixture."
},
{
"path": "storage.localStorageKeys",
"comment": "localStorage state varies per session — fresh harness session has no keys."
},
{
"path": "mouseEvent",
"comment": "The probe-page emits a mouseEvent block when the relational-lock scaffolding fires. Harvested snapshots predate this probe and so omit it; spoofed sessions emit it. Cosmetic — the lock-result block is the spoof's own diagnostic, not a fingerprint surface."
},
{
"path": "fonts.**",
"comment": "The font enumeration probe enumerates whatever the host has installed. Spoofing the per-profile font intersection is a phase 0.7 task (FontFace API stub + per-profile font allowlist). Running e.g. windows-chrome-stable on a Mac host will surface every macOS system font as material — that's a known gap, not a profile defect."
},
{
"path": "webgl.extensions",
"comment": "Whole array absent on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.extensions[*]",
"comment": "WebGL extension list depends on the host GPU + driver. mochi locks GPU vendor/renderer strings but does NOT enumerate-list-spoof extensions per-profile yet. Phase 0.7 deliverable. Cross-host validation surfaces the host's actual extension set."
},
{
"path": "webgl.precisionFormats",
"comment": "Block absent on no-WebGL hosts."
},
{
"path": "webgl.extensionCount",
"comment": "See webgl.extensions[*] — count varies with host extensions."
},
{
"path": "webgl.unmaskedVendor",
"comment": "Unmasked WebGL vendor/renderer requires GPU spoofing at the ANGLE layer (or a polyfilled WEBGL_debug_renderer_info getter). mochi's getter spoof is host-OS-aware; cross-host tests surface the underlying device."
},
{
"path": "webgl.unmaskedRenderer",
"comment": "See webgl.unmaskedVendor."
},
{
"path": "webgpu.info.**",
"comment": "WebGPU adapter info comes from the host driver. Cross-host validation shows the host's adapter; same root cause as webgl.unmaskedRenderer."
},
{
"path": "mediaDevices.devices[*]",
"comment": "Per-entry full-object mismatch when device-array length differs."
},
{
"path": "mediaDevices.devices[*].**",
"comment": "navigator.mediaDevices.enumerateDevices() returns whatever audio/video devices the host has. The harness fixture runs in a fresh permission state so labels are empty (matches baseline) but the device count + kind ratio depends on the host. Per-profile media-devices spoofing is phase 0.7."
},
{
"path": "mediaDevices.deviceCount",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audioinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audiooutput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.videoinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "navigator.connection.effectiveType",
"comment": "NetworkInformation.effectiveType reads from the host network stack. downlink/rtt are sentinelized by normalize.ts but effectiveType isn't."
},
{
"path": "timing.timezoneOffset",
"comment": "timezoneOffset depends on whether the captured profile's tz observes DST at the harness's wall-clock time vs at capture time. The IANA timezone is spoofed correctly; the offset is a derived value with seasonal drift."
},
{
"path": "bot.userActivation.**",
"comment": "navigator.userActivation.hasBeenActive flips to true when the harness drives mouse/keyboard events. The harvested snapshot was captured before any user gesture, so hasBeenActive=false. The spoof doesn't lie about this — it's a true reflection of the harness's interaction sequence."
},
{
"path": "navigator.deviceMemory",
"comment": "navigator.deviceMemory is spec-capped at 8 on real Chrome, but some configurations (older Chrome, non-Chromium derivatives) leak the real GiB count. mochi enforces the spec cap deterministically; the harvested value may be higher (16/32/64) and the spoof correctly clamps to 8."
},
{
"path": "navigator.bluetooth",
"comment": "navigator.bluetooth presence depends on the host's Web Bluetooth flag. Linux Chrome typically has it disabled by default; mochi exposes it. Per-profile API allowlist is phase 0.7."
},
{
"path": "storage.fileSystemAccess",
"comment": "FileSystemAccess API can be hardened off (Brave) or off-by-default (Linux Chrome). mochi exposes the API by default. Per-profile feature gating is phase 0.7."
},
{
"path": "storage.sessionStorageKeys",
"comment": "The probe page writes one sessionStorage key during its self-test; harvested baselines that ran before that probe instrumentation report 0. New captures will normalize to 1 once re-imported."
},
{
"path": "timing.timerPrecision",
"comment": "Brave coarsens performance.now() precision; harvested Brave snapshots report null. mochi does NOT coarsen — restoring Brave's precision-coarsen behavior is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.platformVersion",
"comment": "platformVersion is empty on Linux Chrome (X11 has no notion of OS marketing version). The spoof emits a synthesised value; on Linux imports we accept the empty-string baseline as the source of truth."
},
{
"path": "navigator.connection",
"comment": "Brave hardens NetworkInformation and returns an undefined connection block. mochi exposes the API. Per-profile NetworkInformation hardening is a phase 0.7 deliverable."
},
{
"path": "webgl.error",
"comment": "Some captured devices (headless Linux, lock-screened Windows) report no WebGL context. mochi always presents a WebGL surface. Per-profile no-WebGL mode is phase 0.7."
},
{
"path": "webgl.version",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.shadingLanguageVersion",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.vendor",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.renderer",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.aliasedLineWidthRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.aliasedPointSizeRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxAnisotropy",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxColorAttachments",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCombinedTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCubeMapTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxFragmentUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxRenderbufferSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVaryingVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexAttribs",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxViewportDims",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.precisionFormats.**",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "mediaDevices.devices",
"comment": "Device array length varies with the host's installed devices. Per-profile media-devices spoofing is phase 0.7."
}
]
}
{
"id": "linux-chrome-stable",
"version": "1.0.0",
"engine": "chromium",
"browser": {
"name": "chrome",
"channel": "stable",
"minVersion": "147",
"maxVersion": "147"
},
"os": {
"name": "linux",
"version": "22",
"arch": "x64"
},
"device": {
"vendor": "generic",
"model": "generic-x64",
"cpuFamily": "intel-core",
"cores": 32,
"memoryGB": 64
},
"display": {
"width": 1280,
"height": 800,
"dpr": 1,
"colorDepth": 24,
"pixelDepth": 24
},
"gpu": {
"vendor": "Google Inc.",
"renderer": "Generic Renderer",
"webglUnmaskedVendor": "Google Inc.",
"webglUnmaskedRenderer": "ANGLE (Generic)",
"webglMaxTextureSize": 16384,
"webglMaxColorAttachments": 8,
"webglExtensions": []
},
"audio": {
"contextSampleRate": 44100,
"audioWorkletLatency": 0.01,
"destinationMaxChannelCount": 2
},
"fonts": {
"family": "linux-system-pack",
"list": [
"Arial",
"Courier",
"Courier New",
"DejaVu Sans",
"DejaVu Sans Mono",
"DejaVu Serif",
"Helvetica",
"Liberation Mono",
"Liberation Sans",
"Liberation Serif",
"Times New Roman"
]
},
"timezone": "UTC",
"locale": "en-US",
"languages": [
"en-US",
"en"
],
"behavior": {
"hand": "right",
"tremor": 0.18,
"wpm": 60,
"scrollStyle": "smooth"
},
"wreqPreset": "chrome_147_linux",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"uaCh": {
"sec-ch-ua": "\"Chromium\";v=\"147\", \"Not.A/Brand\";v=\"8\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Linux\"",
"sec-ch-ua-platform-version": "\"22\"",
"sec-ch-ua-arch": "\"x86\"",
"sec-ch-ua-bitness": "\"64\"",
"sec-ch-ua-model": "\"\"",
"sec-ch-ua-full-version": "\"147\"",
"sec-ch-ua-os": "\"linux\""
},
"entropyBudget": {
"fixed": [],
"perSeed": []
}
}
# PROVENANCE — linux-chrome-stable
Imported from the wrkx harvester corpus (`http://wrkx.app/api`) by `mochi profiles import`. PLAN.md §12.2 — every profile in `main` must carry verifiable provenance.
| field | value |
|---|---|
| profile id | `linux-chrome-stable` |
| upstream visitor id | `bcbb7cfaa7f381b92daacb6b7052c6b9` |
| upstream URL | `http://wrkx.app/api/visitors/bcbb7cfaa7f381b92daacb6b7052c6b9` |
| visitor egress ip (snapshot) | 64.140.162.130 |
| browser version | 147 |
| FingerprintJS suspectScore | 16 |
| captured at (UTC) | 2026-04-29T22:22:54.246Z |
| imported at (UTC) | 2026-05-08T20:50:37.035Z |
| importer | `mochi profiles import` (task 0260) |
## Multi-snapshot policy
When the visitor record contains multiple snapshots for a single category (re-visits over time), the importer keeps the most recent by `created_at`. This matches the spirit of capturing the device's *current* fingerprint rather than a stale earlier one.
## TLS preset
The harvester capture did not include a JA3/JA4 hash, so the wreqPreset is synthesised as `<browser>_<major>_<os>`. The wreq Rust crate's `resolve_preset()` matches by family (`chrome*` → Chrome) — exact-version fingerprint matching is a phase 0.7 deliverable. See `packages/net-rs/src/ffi/preset.rs`.
## Hand-corrections
None at import time. The harvester's `navigator` snapshot is captured by real Chrome (not headless), so the `--headless=new` artifacts that needed manual correction in `mac-m4-chrome-stable` (task 0070) are absent here.
{
"timing": {
"timezone": "Asia/Bangkok",
"timezoneOffset": -420,
"locale": "en-US",
"dateString": "Mon Jan 01 2024 12:00:00 GMT+0700 (Indochina Time)",
"localeString": "1/1/2024, 12:00:00 PM",
"localeDateString": "1/1/2024",
"numberFormat": {
"locale": "en-US",
"numberingSystem": "latn",
"style": "decimal",
"minimumIntegerDigits": 1,
"minimumFractionDigits": 0,
"maximumFractionDigits": 3,
"useGrouping": "auto",
"notation": "standard",
"signDisplay": "auto",
"roundingIncrement": 1,
"roundingMode": "halfExpand",
"roundingPriority": "auto",
"trailingZeroDisplay": "auto"
},
"dateTimeFormat": {
"locale": "en-US",
"calendar": "gregory",
"numberingSystem": "latn",
"timeZone": "Asia/Bangkok",
"year": "numeric",
"month": "numeric",
"day": "numeric"
},
"supportedCalendars": [
"buddhist",
"chinese",
"coptic",
"dangi",
"ethioaa",
"ethiopic",
"gregory",
"hebrew",
"indian",
"islamic",
"islamic-civil",
"islamic-rgsa",
"islamic-tbla",
"islamic-umalqura",
"iso8601",
"japanese",
"persian",
"roc"
],
"supportedCurrencies": 159,
"supportedNumberingSystems": [
"adlm",
"ahom",
"arab",
"arabext",
"bali",
"beng",
"bhks",
"brah",
"cakm",
"cham",
"deva",
"diak",
"fullwide",
"gara",
"gong",
"gonm",
"gujr",
"gukh",
"guru",
"hanidec",
"hmng",
"hmnp",
"java",
"kali",
"kawi",
"khmr",
"knda",
"krai",
"lana",
"lanatham",
"laoo",
"latn",
"lepc",
"limb",
"mathbold",
"mathdbl",
"mathmono",
"mathsanb",
"mathsans",
"mlym",
"modi",
"mong",
"mroo",
"mtei",
"mymr",
"mymrepka",
"mymrpao",
"mymrshan",
"mymrtlng",
"nagm",
"newa",
"nkoo",
"olck",
"onao",
"orya",
"osma",
"outlined",
"rohg",
"saur",
"segment",
"shrd",
"sind",
"sinh",
"sora",
"sund",
"sunu",
"takr",
"talu",
"tamldec",
"telu",
"thai",
"tibt",
"tirh",
"tnsa",
"vaii",
"wara",
"wcho"
],
"supportedTimeZones": 418,
"supportedUnits": 45,
"performanceTiming": {
"dns": 0,
"tcp": 0,
"ttfb": 42,
"download": 12,
"domParsing": 225,
"domComplete": -288,
"loadEvent": 0,
"total": 0,
"protocol": "h2",
"transferSize": 3475,
"encodedBodySize": 3175,
"decodedBodySize": 10829
},
"timerPrecision": null,
"mathFingerprint": {
"E": 2.718281828459045,
"LN2": 0.6931471805599453,
"LN10": 2.302585092994046,
"LOG2E": 1.4426950408889634,
"LOG10E": 0.4342944819032518,
"PI": 3.141592653589793,
"SQRT2": 1.4142135623730951,
"SQRT1_2": 0.7071067811865476,
"acos": 1.0471975511965979,
"acosh": 1.3169578969248166,
"asin": 0.5235987755982989,
"atan": 0.7853981633974483,
"atanh": 0.5493061443340548,
"cbrt": 1.2599210498948732,
"cosh": 1.5430806348152437,
"expm1": 1.718281828459045,
"log1p": 0.4054651081081644,
"sinh": 1.1752011936438014,
"tanh": 0.7615941559557649
}
},
"bot": {
"webdriver": false,
"webdriverType": "normal",
"headlessChrome": false,
"automationKeys": [],
"automationDetected": false,
"chromeRuntime": true,
"pluginCount": 5,
"pluginInconsistency": false,
"languageInconsistency": false,
"permissionsApi": true,
"screenDimensions": "1728x1117",
"suspiciousDimensions": false,
"maxTouchPoints": 0,
"touchEvent": false,
"touchInconsistency": false,
"notificationPermission": "default",
"userActivation": {
"hasBeenActive": false,
"isActive": false
},
"navigationTiming": {
"type": "navigate",
"redirectCount": 0,
"domComplete": 0,
"loadEventEnd": 0,
"domInteractive": 288
},
"stackDepthTest": 101
},
"storage": {
"localStorage": true,
"localStorageKeys": 5,
"sessionStorage": true,
"sessionStorageKeys": 1,
"cookiesEnabled": true,
"cookiesWritable": true,
"cookieCount": 1,
"indexedDB": true,
"cacheStorage": true,
"serviceWorker": true,
"storageManager": true,
"fileSystemAccess": false,
"sharedArrayBuffer": false,
"sharedWorker": true,
"openDatabase": false,
"broadcastChannel": true,
"secureContext": true
},
"fonts": {
"detected": [
"Arial",
"Arial Black",
"Arial Narrow",
"Comic Sans MS",
"Courier New",
"Georgia",
"Impact",
"Microsoft Sans Serif",
"Tahoma",
"Times New Roman",
"Trebuchet MS",
"Verdana",
"Webdings",
"Wingdings",
"American Typewriter",
"Andale Mono",
"Apple Chancery",
"Apple Color Emoji",
"Apple SD Gothic Neo",
"Avenir",
"Avenir Next",
"Baskerville",
"Big Caslon",
"Brush Script MT",
"Chalkboard",
"Chalkboard SE",
"Chalkduster",
"Cochin",
"Copperplate",
"Courier",
"Didot",
"Futura",
"Geneva",
"Gill Sans",
"Helvetica",
"Helvetica Neue",
"Herculanum",
"Hoefler Text",
"Iowan Old Style",
"Lucida Grande",
"Luminari",
"Marker Felt",
"Menlo",
"Monaco",
"Noteworthy",
"Optima",
"Palatino",
"Papyrus",
"Phosphate",
"Rockwell",
"Savoye LET",
"SignPainter",
"Skia",
"Snell Roundhand",
"STIXGeneral",
"Superclarendon",
"Symbol",
"System Font",
"Zapfino",
"Hiragino Sans",
"Hiragino Kaku Gothic Pro",
"Hiragino Mincho Pro",
"PT Sans"
],
"count": 63,
"tested": 117,
"hash": "B8498456",
"fontsApiReady": true
},
"speech": {
"voices": [
{
"name": "Samantha",
"lang": "en-US",
"localService": true,
"default": true,
"voiceURI": "Samantha"
},
{
"name": "Albert",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Albert"
},
{
"name": "Alice",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Alice"
},
{
"name": "Alva",
"lang": "sv-SE",
"localService": true,
"default": false,
"voiceURI": "Alva"
},
{
"name": "Amélie",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Amélie"
},
{
"name": "Amira",
"lang": "ms-MY",
"localService": true,
"default": false,
"voiceURI": "Amira"
},
{
"name": "Anna",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Anna"
},
{
"name": "Bad News",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bad News"
},
{
"name": "Bahh",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bahh"
},
{
"name": "Bells",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bells"
},
{
"name": "Boing",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Boing"
},
{
"name": "Bubbles",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bubbles"
},
{
"name": "Carmit",
"lang": "he-IL",
"localService": true,
"default": false,
"voiceURI": "Carmit"
},
{
"name": "Cellos",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Cellos"
},
{
"name": "Damayanti",
"lang": "id-ID",
"localService": true,
"default": false,
"voiceURI": "Damayanti"
},
{
"name": "Daniel",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Daniel"
},
{
"name": "Daria",
"lang": "bg-BG",
"localService": true,
"default": false,
"voiceURI": "Daria"
},
{
"name": "Eddy (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Eddy (English (United States))"
},
{
"name": "Eddy (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Eddy (English (United Kingdom))"
},
{
"name": "Eddy (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Eddy (Chinese (China mainland))"
},
{
"name": "Eddy (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Eddy (Chinese (Taiwan))"
},
{
"name": "Eddy (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Eddy (German (Germany))"
},
{
"name": "Eddy (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Eddy (Spanish (Spain))"
},
{
"name": "Eddy (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Eddy (Spanish (Mexico))"
},
{
"name": "Eddy (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Eddy (Finnish (Finland))"
},
{
"name": "Eddy (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Eddy (French (Canada))"
},
{
"name": "Eddy (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Eddy (French (France))"
},
{
"name": "Eddy (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Eddy (Italian (Italy))"
},
{
"name": "Eddy (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Eddy (Japanese (Japan))"
},
{
"name": "Eddy (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Eddy (Korean (South Korea))"
},
{
"name": "Eddy (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Eddy (Portuguese (Brazil))"
},
{
"name": "Ellen",
"lang": "nl-BE",
"localService": true,
"default": false,
"voiceURI": "Ellen"
},
{
"name": "Flo (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Flo (English (United States))"
},
{
"name": "Flo (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Flo (English (United Kingdom))"
},
{
"name": "Flo (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Flo (Chinese (China mainland))"
},
{
"name": "Flo (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Flo (Chinese (Taiwan))"
},
{
"name": "Flo (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Flo (German (Germany))"
},
{
"name": "Flo (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Flo (Spanish (Spain))"
},
{
"name": "Flo (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Flo (Spanish (Mexico))"
},
{
"name": "Flo (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Flo (Finnish (Finland))"
},
{
"name": "Flo (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Flo (French (Canada))"
},
{
"name": "Flo (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Flo (French (France))"
},
{
"name": "Flo (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Flo (Italian (Italy))"
},
{
"name": "Flo (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Flo (Japanese (Japan))"
},
{
"name": "Flo (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Flo (Korean (South Korea))"
},
{
"name": "Flo (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Flo (Portuguese (Brazil))"
},
{
"name": "Fred",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Fred"
},
{
"name": "Geeta",
"lang": "te-IN",
"localService": true,
"default": false,
"voiceURI": "Geeta"
},
{
"name": "Good News",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Good News"
},
{
"name": "Grandma (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Grandma (English (United States))"
},
{
"name": "Grandma (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Grandma (English (United Kingdom))"
},
{
"name": "Grandma (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Grandma (Chinese (China mainland))"
},
{
"name": "Grandma (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Grandma (Chinese (Taiwan))"
},
{
"name": "Grandma (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Grandma (German (Germany))"
},
{
"name": "Grandma (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Grandma (Spanish (Spain))"
},
{
"name": "Grandma (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Grandma (Spanish (Mexico))"
},
{
"name": "Grandma (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Grandma (Finnish (Finland))"
},
{
"name": "Grandma (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Grandma (French (Canada))"
},
{
"name": "Grandma (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Grandma (French (France))"
},
{
"name": "Grandma (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Grandma (Italian (Italy))"
},
{
"name": "Grandma (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Grandma (Japanese (Japan))"
},
{
"name": "Grandma (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Grandma (Korean (South Korea))"
},
{
"name": "Grandma (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Grandma (Portuguese (Brazil))"
},
{
"name": "Grandpa (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Grandpa (English (United States))"
},
{
"name": "Grandpa (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Grandpa (English (United Kingdom))"
},
{
"name": "Grandpa (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Chinese (China mainland))"
},
{
"name": "Grandpa (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Chinese (Taiwan))"
},
{
"name": "Grandpa (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Grandpa (German (Germany))"
},
{
"name": "Grandpa (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Spanish (Spain))"
},
{
"name": "Grandpa (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Spanish (Mexico))"
},
{
"name": "Grandpa (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Finnish (Finland))"
},
{
"name": "Grandpa (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Grandpa (French (Canada))"
},
{
"name": "Grandpa (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (French (France))"
},
{
"name": "Grandpa (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Italian (Italy))"
},
{
"name": "Grandpa (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Japanese (Japan))"
},
{
"name": "Grandpa (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Korean (South Korea))"
},
{
"name": "Grandpa (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Portuguese (Brazil))"
},
{
"name": "Ioana",
"lang": "ro-RO",
"localService": true,
"default": false,
"voiceURI": "Ioana"
},
{
"name": "Jacques",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Jacques"
},
{
"name": "Jester",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Jester"
},
{
"name": "Joana",
"lang": "pt-PT",
"localService": true,
"default": false,
"voiceURI": "Joana"
},
{
"name": "Junior",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Junior"
},
{
"name": "Kanya",
"lang": "th-TH",
"localService": true,
"default": false,
"voiceURI": "Kanya"
},
{
"name": "Karen",
"lang": "en-AU",
"localService": true,
"default": false,
"voiceURI": "Karen"
},
{
"name": "Kathy",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Kathy"
},
{
"name": "Kyoko",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Kyoko"
},
{
"name": "Lana",
"lang": "hr-HR",
"localService": true,
"default": false,
"voiceURI": "Lana"
},
{
"name": "Laura",
"lang": "sk-SK",
"localService": true,
"default": false,
"voiceURI": "Laura"
},
{
"name": "Lekha",
"lang": "hi-IN",
"localService": true,
"default": false,
"voiceURI": "Lekha"
},
{
"name": "Lesya",
"lang": "uk-UA",
"localService": true,
"default": false,
"voiceURI": "Lesya"
},
{
"name": "Linh",
"lang": "vi-VN",
"localService": true,
"default": false,
"voiceURI": "Linh"
},
{
"name": "Luciana",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Luciana"
},
{
"name": "Majed",
"lang": "ar-001",
"localService": true,
"default": false,
"voiceURI": "Majed"
},
{
"name": "Meijia",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Meijia"
},
{
"name": "Melina",
"lang": "el-GR",
"localService": true,
"default": false,
"voiceURI": "Melina"
},
{
"name": "Milena",
"lang": "ru-RU",
"localService": true,
"default": false,
"voiceURI": "Milena"
},
{
"name": "Moira",
"lang": "en-IE",
"localService": true,
"default": false,
"voiceURI": "Moira"
},
{
"name": "Montse",
"lang": "ca-ES",
"localService": true,
"default": false,
"voiceURI": "Montse"
},
{
"name": "Mónica",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Mónica"
},
{
"name": "Nora",
"lang": "nb-NO",
"localService": true,
"default": false,
"voiceURI": "Nora"
},
{
"name": "Organ",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Organ"
},
{
"name": "Paulina",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Paulina"
},
{
"name": "Piya",
"lang": "bn-IN",
"localService": true,
"default": false,
"voiceURI": "Piya"
},
{
"name": "Ralph",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Ralph"
},
{
"name": "Reed (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Reed (English (United States))"
},
{
"name": "Reed (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Reed (English (United Kingdom))"
},
{
"name": "Reed (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Reed (Chinese (China mainland))"
},
{
"name": "Reed (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Reed (Chinese (Taiwan))"
},
{
"name": "Reed (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Reed (German (Germany))"
},
{
"name": "Reed (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Reed (Spanish (Spain))"
},
{
"name": "Reed (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Reed (Spanish (Mexico))"
},
{
"name": "Reed (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Reed (Finnish (Finland))"
},
{
"name": "Reed (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Reed (French (Canada))"
},
{
"name": "Reed (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Reed (Italian (Italy))"
},
{
"name": "Reed (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Reed (Japanese (Japan))"
},
{
"name": "Reed (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Reed (Korean (South Korea))"
},
{
"name": "Reed (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Reed (Portuguese (Brazil))"
},
{
"name": "Rishi",
"lang": "en-IN",
"localService": true,
"default": false,
"voiceURI": "Rishi"
},
{
"name": "Rocko (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Rocko (English (United States))"
},
{
"name": "Rocko (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Rocko (English (United Kingdom))"
},
{
"name": "Rocko (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Rocko (Chinese (China mainland))"
},
{
"name": "Rocko (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Rocko (Chinese (Taiwan))"
},
{
"name": "Rocko (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Rocko (German (Germany))"
},
{
"name": "Rocko (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Rocko (Spanish (Spain))"
},
{
"name": "Rocko (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Rocko (Spanish (Mexico))"
},
{
"name": "Rocko (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Rocko (Finnish (Finland))"
},
{
"name": "Rocko (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Rocko (French (Canada))"
},
{
"name": "Rocko (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Rocko (French (France))"
},
{
"name": "Rocko (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Rocko (Italian (Italy))"
},
{
"name": "Rocko (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Rocko (Japanese (Japan))"
},
{
"name": "Rocko (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Rocko (Korean (South Korea))"
},
{
"name": "Rocko (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Rocko (Portuguese (Brazil))"
},
{
"name": "Sandy (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Sandy (English (United States))"
},
{
"name": "Sandy (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Sandy (English (United Kingdom))"
},
{
"name": "Sandy (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Sandy (Chinese (China mainland))"
},
{
"name": "Sandy (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Sandy (Chinese (Taiwan))"
},
{
"name": "Sandy (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Sandy (German (Germany))"
},
{
"name": "Sandy (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Sandy (Spanish (Spain))"
},
{
"name": "Sandy (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Sandy (Spanish (Mexico))"
},
{
"name": "Sandy (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Sandy (Finnish (Finland))"
},
{
"name": "Sandy (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Sandy (French (Canada))"
},
{
"name": "Sandy (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Sandy (French (France))"
},
{
"name": "Sandy (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Sandy (Italian (Italy))"
},
{
"name": "Sandy (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Sandy (Japanese (Japan))"
},
{
"name": "Sandy (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Sandy (Korean (South Korea))"
},
{
"name": "Sandy (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Sandy (Portuguese (Brazil))"
},
{
"name": "Sara",
"lang": "da-DK",
"localService": true,
"default": false,
"voiceURI": "Sara"
},
{
"name": "Satu",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Satu"
},
{
"name": "Shelley (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Shelley (English (United States))"
},
{
"name": "Shelley (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Shelley (English (United Kingdom))"
},
{
"name": "Shelley (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Shelley (Chinese (China mainland))"
},
{
"name": "Shelley (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Shelley (Chinese (Taiwan))"
},
{
"name": "Shelley (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Shelley (German (Germany))"
},
{
"name": "Shelley (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Shelley (Spanish (Spain))"
},
{
"name": "Shelley (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Shelley (Spanish (Mexico))"
},
{
"name": "Shelley (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Shelley (Finnish (Finland))"
},
{
"name": "Shelley (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Shelley (French (Canada))"
},
{
"name": "Shelley (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Shelley (French (France))"
},
{
"name": "Shelley (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Shelley (Italian (Italy))"
},
{
"name": "Shelley (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Shelley (Japanese (Japan))"
},
{
"name": "Shelley (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Shelley (Korean (South Korea))"
},
{
"name": "Shelley (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Shelley (Portuguese (Brazil))"
},
{
"name": "Sinji",
"lang": "yue-HK",
"localService": true,
"default": false,
"voiceURI": "Sinji"
},
{
"name": "Soumya",
"lang": "kn-IN",
"localService": true,
"default": false,
"voiceURI": "Soumya"
},
{
"name": "Superstar",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Superstar"
},
{
"name": "Tessa",
"lang": "en-ZA",
"localService": true,
"default": false,
"voiceURI": "Tessa"
},
{
"name": "Thomas",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Thomas"
},
{
"name": "Tina",
"lang": "sl-SI",
"localService": true,
"default": false,
"voiceURI": "Tina"
},
{
"name": "Tingting",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Tingting"
},
{
"name": "Trinoids",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Trinoids"
},
{
"name": "Tünde",
"lang": "hu-HU",
"localService": true,
"default": false,
"voiceURI": "Tünde"
},
{
"name": "Vani",
"lang": "ta-IN",
"localService": true,
"default": false,
"voiceURI": "Vani"
},
{
"name": "Whisper",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Whisper"
},
{
"name": "Wobble",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Wobble"
},
{
"name": "Xander",
"lang": "nl-NL",
"localService": true,
"default": false,
"voiceURI": "Xander"
},
{
"name": "Yelda",
"lang": "tr-TR",
"localService": true,
"default": false,
"voiceURI": "Yelda"
},
{
"name": "Yuna",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Yuna"
},
{
"name": "Zarvox",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Zarvox"
},
{
"name": "Zosia",
"lang": "pl-PL",
"localService": true,
"default": false,
"voiceURI": "Zosia"
},
{
"name": "Zuzana",
"lang": "cs-CZ",
"localService": true,
"default": false,
"voiceURI": "Zuzana"
}
],
"voiceCount": 180,
"localVoices": 180,
"remoteVoices": 0,
"languages": [
"en-US",
"it-IT",
"sv-SE",
"fr-CA",
"ms-MY",
"de-DE",
"he-IL",
"id-ID",
"en-GB",
"bg-BG",
"zh-CN",
"zh-TW",
"es-ES",
"es-MX",
"fi-FI",
"fr-FR",
"ja-JP",
"ko-KR",
"pt-BR",
"nl-BE",
"te-IN",
"ro-RO",
"pt-PT",
"th-TH",
"en-AU",
"hr-HR",
"sk-SK",
"hi-IN",
"uk-UA",
"vi-VN",
"ar-001",
"el-GR",
"ru-RU",
"en-IE",
"ca-ES",
"nb-NO",
"bn-IN",
"en-IN",
"da-DK",
"yue-HK",
"kn-IN",
"en-ZA",
"sl-SI",
"hu-HU",
"ta-IN",
"nl-NL",
"tr-TR",
"pl-PL",
"cs-CZ"
]
},
"mediaDevices": {
"devices": [
{
"deviceId": "",
"kind": "audioinput",
"label": "",
"groupId": ""
},
{
"deviceId": "",
"kind": "videoinput",
"label": "",
"groupId": ""
},
{
"deviceId": "",
"kind": "audiooutput",
"label": "",
"groupId": ""
}
],
"deviceCount": 3,
"audioinput": 1,
"audiooutput": 1,
"videoinput": 1,
"supportedConstraints": {
"aspectRatio": true,
"autoGainControl": true,
"brightness": true,
"channelCount": true,
"colorTemperature": true,
"contrast": true,
"deviceId": true,
"displaySurface": true,
"echoCancellation": true,
"exposureCompensation": true,
"exposureMode": true,
"exposureTime": true,
"facingMode": true,
"focusDistance": true,
"focusMode": true,
"frameRate": true,
"groupId": true,
"height": true,
"iso": true,
"latency": true,
"noiseSuppression": true,
"pan": true,
"pointsOfInterest": true,
"resizeMode": true,
"restrictOwnAudio": true,
"sampleRate": true,
"sampleSize": true,
"saturation": true,
"sharpness": true,
"suppressLocalAudioPlayback": true,
"tilt": true,
"torch": true,
"voiceIsolation": true,
"whiteBalanceMode": true,
"width": true,
"zoom": true
}
},
"audio": {
"sampleRate": 48000,
"state": "suspended",
"baseLatency": 0.005333333333333333,
"outputLatency": 0,
"maxChannelCount": 2,
"numberOfInputs": 1,
"numberOfOutputs": 0,
"channelCount": 2,
"channelCountMode": "explicit",
"channelInterpretation": "speakers",
"audioHash": "124.04347624466754",
"sampleValues": [
-0.10808053612709045,
-0.3909117877483368,
-0.005692681297659874,
0.3892313539981842,
0.1189708411693573,
-0.3545846939086914,
-0.22215834259986877,
0.28990939259529114,
0.30651888251304626,
-0.20068734884262085
]
},
"webgpu": {
"supported": true,
"features": [
"depth32float-stencil8",
"rg11b10ufloat-renderable",
"bgra8unorm-storage",
"texture-formats-tier1",
"texture-compression-bc",
"dual-source-blending",
"core-features-and-limits",
"float32-filterable",
"indirect-first-instance",
"texture-compression-astc-sliced-3d",
"float32-blendable",
"texture-compression-astc",
"texture-compression-etc2",
"depth-clip-control",
"texture-compression-bc-sliced-3d",
"texture-formats-tier2",
"clip-distances",
"timestamp-query",
"shader-f16",
"primitive-index",
"texture-component-swizzle",
"subgroups"
],
"info": {
"vendor": "apple",
"architecture": "metal-3",
"device": "",
"description": ""
}
},
"webgl": {
"version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
"shadingLanguageVersion": "WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)",
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"unmaskedVendor": "Google Inc. (Apple)",
"unmaskedRenderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4 Max, Unspecified Version)",
"extensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_pvrtc",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_render_shared_exponent",
"WEBGL_stencil_texturing"
],
"extensionCount": 36,
"maxTextureSize": 16384,
"maxViewportDims": [
16384,
16384
],
"maxRenderbufferSize": 16384,
"maxCombinedTextureImageUnits": 32,
"maxCubeMapTextureSize": 16384,
"maxFragmentUniformVectors": 1024,
"maxTextureImageUnits": 16,
"maxVertexAttribs": 16,
"maxVertexTextureImageUnits": 16,
"maxVertexUniformVectors": 1024,
"maxVaryingVectors": 30,
"aliasedLineWidthRange": [
1,
1
],
"aliasedPointSizeRange": [
1,
511
],
"maxAnisotropy": 16,
"precisionFormats": {
"vertex_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
}
}
},
"canvas": {
"consistent": true,
"hash": "CC4CD2B7",
"dataUrlLength": 25854,
"dataUrlPrefix": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwA",
"webpSupport": true,
"jpegHighLength": 26851,
"jpegLowLength": 2347
},
"screen": {
"width": 1728,
"height": 1117,
"availWidth": 1728,
"availHeight": 1083,
"colorDepth": 30,
"pixelDepth": 30,
"innerWidth": 1694,
"innerHeight": 950,
"outerWidth": 1694,
"outerHeight": 1083,
"screenX": 4,
"screenY": 34,
"pageXOffset": 0,
"pageYOffset": 0,
"devicePixelRatio": 2,
"orientation": {
"type": "landscape-primary",
"angle": 0
},
"mediaQueries": {
"prefers-color-scheme": "dark",
"prefers-reduced-motion": "reduce",
"prefers-contrast": "no-preference",
"forced-colors": "none",
"prefers-reduced-transparency": "reduce",
"color-gamut": "srgb",
"pointer": "fine",
"hover": "hover",
"any-pointer": "fine",
"any-hover": "hover",
"display-mode": "browser",
"dynamic-range": "standard",
"update": "fast",
"overflow-block": "scroll",
"overflow-inline": "scroll",
"min-resolution": "192dpi",
"min-color": "8",
"monochrome": false
},
"visualViewport": {
"width": 1694,
"height": 950,
"offsetLeft": 0,
"offsetTop": 0,
"pageLeft": 0,
"pageTop": 0,
"scale": 1
}
},
"navigator": {
"secureContext": true,
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
"platform": "MacIntel",
"vendor": "Google Inc.",
"vendorSub": "",
"product": "Gecko",
"productSub": "20030107",
"appVersion": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
"appName": "Netscape",
"appCodeName": "Mozilla",
"language": "en-US",
"languages": [
"en-US",
"en"
],
"cookieEnabled": true,
"doNotTrack": null,
"maxTouchPoints": 0,
"hardwareConcurrency": 14,
"deviceMemory": 8,
"pdfViewerEnabled": true,
"webdriver": false,
"plugins": [
{
"name": "PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chrome PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chromium PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Microsoft Edge PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "WebKit built-in PDF",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
}
],
"pluginCount": 5,
"mimeTypes": [
"application/pdf",
"text/pdf"
],
"userAgentData": {
"brands": [
{
"brand": "Chromium",
"version": "146"
},
{
"brand": "Not-A.Brand",
"version": "24"
},
{
"brand": "Brave",
"version": "146"
}
],
"mobile": false,
"platform": "macOS"
},
"userAgentDataHighEntropy": {
"architecture": "arm",
"bitness": "64",
"brands": [
{
"brand": "Chromium",
"version": "146"
},
{
"brand": "Not-A.Brand",
"version": "24"
},
{
"brand": "Brave",
"version": "146"
}
],
"fullVersionList": [
{
"brand": "Chromium",
"version": "146.0.0.0"
},
{
"brand": "Not-A.Brand",
"version": "24.0.0.0"
},
{
"brand": "Brave",
"version": "146.0.0.0"
}
],
"mobile": false,
"model": "",
"platform": "macOS",
"platformVersion": "26.4.0",
"wow64": false
},
"permissions": {
"geolocation": "prompt",
"notifications": "prompt",
"camera": "prompt",
"microphone": "prompt",
"accelerometer": "granted",
"gyroscope": "granted",
"magnetometer": "granted",
"clipboard-read": "prompt",
"clipboard-write": "granted"
},
"storageEstimate": {
"quota": 2147483648,
"usage": 0
},
"bluetooth": true,
"usb": true,
"serial": true,
"hid": true,
"xr": true,
"gpu": true,
"ink": true,
"scheduling": true,
"windowControlsOverlay": true,
"virtualKeyboard": true
},
"__meta": {
"capturedAt": "2026-05-08T20:06:53.637Z",
"elapsedMs": 0,
"href": "http://wrkx.app/api/visitors/d7cfcbec56ed7cbb166c33440ed9cc78",
"readyState": "complete"
}
}
{
"version": "1",
"profile": "mac-brave-stable",
"paths": [
{
"path": "audio.**",
"comment": "Audio fingerprint bytes (sampleValues, audioHash) require precomputed per-(profile, sample-rate) byte tables — task 0071. docs/limits.md \"Audio fingerprinting (OfflineAudioContext) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "canvas.**",
"comment": "Canvas hash + dataUrl spoofing requires precomputed hash maps for the standard probe payloads + per-pixel noise injection — task 0071. docs/limits.md \"Canvas fingerprinting (HTMLCanvasElement.toDataURL) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "speech.**",
"comment": "speechSynthesis.getVoices() returns the host's installed system voices on real Chrome (typically 200+ entries on macOS, 20+ on Linux/Win). Chromium-for-Testing ships with no voice tables, so mochi spoofs voices=[]. Restoring real-device voice lists is a phase 0.7 deliverable (precomputed voice tables per-OS) tracked alongside audio/canvas. PLAN.md §13.6."
},
{
"path": "navigator.userAgentData.brands",
"comment": "Brand-list length varies (Linux Chrome emits 2 brands, macOS/Win emit 3). Same root cause as the per-entry comment below."
},
{
"path": "navigator.userAgentData.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentData.brands[*].**",
"comment": "Sec-CH-UA brand-list ordering and GREASE label vary between Chrome/Edge majors and even between Chrome point releases (e.g. 146 emits `Not-A.Brand;v=24` while 147 emits `Not.A/Brand;v=8`). mochi pins a single GREASE label per major (consistency/rules/lookups/browser.ts) for determinism — see tasks/0051-consistency-stack-fixes.md (Group B). Per-major GREASE shuffle is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.brands",
"comment": "Same as userAgentData.brands."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*].**",
"comment": "Same as navigator.userAgentData.brands — pinned for determinism."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList",
"comment": "Same as userAgentData.brands — length varies by OS."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*].**",
"comment": "Patch-level Chrome version (e.g. 146.0.7680.165) varies with the local Chrome install vs the BROWSER_TIP_FULL_VERSION table. mochi uses the table tip when the major matches; harvested values may differ by a few patch numbers. Refresh the table per Chrome major."
},
{
"path": "navigator.userAgent",
"comment": "Full UA string includes the patch version (see fullVersionList comment). Spoofed value matches BROWSER_TIP_FULL_VERSION; harvested value reflects the user's exact Chrome point release."
},
{
"path": "navigator.appVersion",
"comment": "Same patch-version drift as navigator.userAgent."
},
{
"path": "screen.mediaQueries.**",
"comment": "matchMedia() result strings depend on the host's actual OS/display state (min-resolution from real DPR, prefers-color-scheme from Dark Mode, etc.). mochi spoofs a deterministic baseline; the harvested values reflect the user's session at capture time. Per-profile media-query lock is phase 0.7."
},
{
"path": "screen.pageXOffset",
"comment": "Window-frame chrome. Sentinelized by normalize.ts in most paths but the raw harvested value may differ from the harness window's idle offset."
},
{
"path": "screen.pageYOffset",
"comment": "Window-frame chrome — same as pageXOffset."
},
{
"path": "timing.dateString",
"comment": "Date.toString() includes the host's wall-clock time, which differs every run. The probe normalises to a fixed 2024-01-01 anchor; harvested values reflect the user's actual capture time."
},
{
"path": "timing.performanceTiming",
"comment": "performance.timing.* fields vary per session (load durations, redirect counts). normalize.ts sentinelizes the bot.navigationTiming sub-block; the timing.performanceTiming block is harvester-specific and not currently sentinelized."
},
{
"path": "timing.supportedNumberingSystems[*]",
"comment": "Intl.supportedValuesOf('numberingSystem') grows between V8 majors (e.g. Chrome 149 added 'tols'). The harvested list reflects the user's V8; the harness uses Chromium-for-Testing's V8. List drift is expected as BROWSER_TIP_FULL_VERSION advances."
},
{
"path": "webgl.aliasedLineWidthRange[*]",
"comment": "WebGL aliasedLineWidthRange/PointSizeRange/maxViewportDims values vary with the GPU driver version on the host. mochi locks GPU vendor/renderer via the matrix; per-driver-version locking is phase 0.7."
},
{
"path": "webgl.aliasedPointSizeRange[*]",
"comment": "See webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxColorAttachments",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxViewportDims[*]",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgpu.features",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.features[*]",
"comment": "WebGPU feature list grows between Chromium majors. The harvested list reflects the user's Chrome version; the harness uses Chromium-for-Testing."
},
{
"path": "webgpu.info",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.limits.**",
"comment": "WebGPU adapter limits depend on the GPU driver. Per-driver locking is phase 0.7 alongside WebGL."
},
{
"path": "bot.chromeRuntime",
"comment": "Real Chrome exposes window.chrome.runtime; Chromium-for-Testing does not. Restoring chrome.runtime polyfill is task 0140 (stealth conformance) — tracked separately."
},
{
"path": "storage.cookieCount",
"comment": "Cookie state varies per session — the harvester's user had cookies, the harness session is fresh."
},
{
"path": "storage.cookiesWritable",
"comment": "Depends on the document context (file:// fixture vs http:// origin). Harvester captured at http(s) origin; harness uses file:// fixture."
},
{
"path": "storage.localStorageKeys",
"comment": "localStorage state varies per session — fresh harness session has no keys."
},
{
"path": "mouseEvent",
"comment": "The probe-page emits a mouseEvent block when the relational-lock scaffolding fires. Harvested snapshots predate this probe and so omit it; spoofed sessions emit it. Cosmetic — the lock-result block is the spoof's own diagnostic, not a fingerprint surface."
},
{
"path": "fonts.**",
"comment": "The font enumeration probe enumerates whatever the host has installed. Spoofing the per-profile font intersection is a phase 0.7 task (FontFace API stub + per-profile font allowlist). Running e.g. windows-chrome-stable on a Mac host will surface every macOS system font as material — that's a known gap, not a profile defect."
},
{
"path": "webgl.extensions",
"comment": "Whole array absent on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.extensions[*]",
"comment": "WebGL extension list depends on the host GPU + driver. mochi locks GPU vendor/renderer strings but does NOT enumerate-list-spoof extensions per-profile yet. Phase 0.7 deliverable. Cross-host validation surfaces the host's actual extension set."
},
{
"path": "webgl.precisionFormats",
"comment": "Block absent on no-WebGL hosts."
},
{
"path": "webgl.extensionCount",
"comment": "See webgl.extensions[*] — count varies with host extensions."
},
{
"path": "webgl.unmaskedVendor",
"comment": "Unmasked WebGL vendor/renderer requires GPU spoofing at the ANGLE layer (or a polyfilled WEBGL_debug_renderer_info getter). mochi's getter spoof is host-OS-aware; cross-host tests surface the underlying device."
},
{
"path": "webgl.unmaskedRenderer",
"comment": "See webgl.unmaskedVendor."
},
{
"path": "webgpu.info.**",
"comment": "WebGPU adapter info comes from the host driver. Cross-host validation shows the host's adapter; same root cause as webgl.unmaskedRenderer."
},
{
"path": "mediaDevices.devices[*]",
"comment": "Per-entry full-object mismatch when device-array length differs."
},
{
"path": "mediaDevices.devices[*].**",
"comment": "navigator.mediaDevices.enumerateDevices() returns whatever audio/video devices the host has. The harness fixture runs in a fresh permission state so labels are empty (matches baseline) but the device count + kind ratio depends on the host. Per-profile media-devices spoofing is phase 0.7."
},
{
"path": "mediaDevices.deviceCount",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audioinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audiooutput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.videoinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "navigator.connection.effectiveType",
"comment": "NetworkInformation.effectiveType reads from the host network stack. downlink/rtt are sentinelized by normalize.ts but effectiveType isn't."
},
{
"path": "timing.timezoneOffset",
"comment": "timezoneOffset depends on whether the captured profile's tz observes DST at the harness's wall-clock time vs at capture time. The IANA timezone is spoofed correctly; the offset is a derived value with seasonal drift."
},
{
"path": "bot.userActivation.**",
"comment": "navigator.userActivation.hasBeenActive flips to true when the harness drives mouse/keyboard events. The harvested snapshot was captured before any user gesture, so hasBeenActive=false. The spoof doesn't lie about this — it's a true reflection of the harness's interaction sequence."
},
{
"path": "navigator.deviceMemory",
"comment": "navigator.deviceMemory is spec-capped at 8 on real Chrome, but some configurations (older Chrome, non-Chromium derivatives) leak the real GiB count. mochi enforces the spec cap deterministically; the harvested value may be higher (16/32/64) and the spoof correctly clamps to 8."
},
{
"path": "navigator.bluetooth",
"comment": "navigator.bluetooth presence depends on the host's Web Bluetooth flag. Linux Chrome typically has it disabled by default; mochi exposes it. Per-profile API allowlist is phase 0.7."
},
{
"path": "storage.fileSystemAccess",
"comment": "FileSystemAccess API can be hardened off (Brave) or off-by-default (Linux Chrome). mochi exposes the API by default. Per-profile feature gating is phase 0.7."
},
{
"path": "storage.sessionStorageKeys",
"comment": "The probe page writes one sessionStorage key during its self-test; harvested baselines that ran before that probe instrumentation report 0. New captures will normalize to 1 once re-imported."
},
{
"path": "timing.timerPrecision",
"comment": "Brave coarsens performance.now() precision; harvested Brave snapshots report null. mochi does NOT coarsen — restoring Brave's precision-coarsen behavior is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.platformVersion",
"comment": "platformVersion is empty on Linux Chrome (X11 has no notion of OS marketing version). The spoof emits a synthesised value; on Linux imports we accept the empty-string baseline as the source of truth."
},
{
"path": "navigator.connection",
"comment": "Brave hardens NetworkInformation and returns an undefined connection block. mochi exposes the API. Per-profile NetworkInformation hardening is a phase 0.7 deliverable."
},
{
"path": "webgl.error",
"comment": "Some captured devices (headless Linux, lock-screened Windows) report no WebGL context. mochi always presents a WebGL surface. Per-profile no-WebGL mode is phase 0.7."
},
{
"path": "webgl.version",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.shadingLanguageVersion",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.vendor",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.renderer",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.aliasedLineWidthRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.aliasedPointSizeRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxAnisotropy",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxColorAttachments",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCombinedTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCubeMapTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxFragmentUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxRenderbufferSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVaryingVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexAttribs",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxViewportDims",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.precisionFormats.**",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "mediaDevices.devices",
"comment": "Device array length varies with the host's installed devices. Per-profile media-devices spoofing is phase 0.7."
}
]
}
{
"id": "mac-brave-stable",
"version": "1.0.0",
"engine": "chromium",
"browser": {
"name": "brave",
"channel": "stable",
"minVersion": "146",
"maxVersion": "146"
},
"os": {
"name": "macos",
"version": "26.4.0",
"arch": "arm64"
},
"device": {
"vendor": "apple",
"model": "Mac",
"cpuFamily": "apple-silicon-m4",
"cores": 14,
"memoryGB": 16
},
"display": {
"width": 1728,
"height": 1117,
"dpr": 2,
"colorDepth": 30,
"pixelDepth": 30
},
"gpu": {
"vendor": "Apple",
"renderer": "ANGLE Metal Renderer: Apple M4 Max",
"webglUnmaskedVendor": "Google Inc. (Apple)",
"webglUnmaskedRenderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4 Max, Unspecified Version)",
"webglMaxTextureSize": 16384,
"webglMaxColorAttachments": 8,
"webglExtensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_pvrtc",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_render_shared_exponent",
"WEBGL_stencil_texturing"
]
},
"audio": {
"contextSampleRate": 48000,
"audioWorkletLatency": 0.005333333333333333,
"destinationMaxChannelCount": 2
},
"fonts": {
"family": "macos-system-pack",
"list": [
"American Typewriter",
"Andale Mono",
"Apple Chancery",
"Apple Color Emoji",
"Apple SD Gothic Neo",
"Arial",
"Arial Black",
"Arial Narrow",
"Avenir",
"Avenir Next",
"Baskerville",
"Big Caslon",
"Brush Script MT",
"Chalkboard",
"Chalkboard SE",
"Chalkduster",
"Cochin",
"Comic Sans MS",
"Copperplate",
"Courier",
"Courier New",
"Didot",
"Futura",
"Geneva",
"Georgia",
"Gill Sans",
"Helvetica",
"Helvetica Neue",
"Herculanum",
"Hiragino Kaku Gothic Pro",
"Hiragino Mincho Pro",
"Hiragino Sans",
"Hoefler Text",
"Impact",
"Iowan Old Style",
"Lucida Grande",
"Luminari",
"Marker Felt",
"Menlo",
"Microsoft Sans Serif",
"Monaco",
"Noteworthy",
"Optima",
"PT Sans",
"Palatino",
"Papyrus",
"Phosphate",
"Rockwell",
"STIXGeneral",
"Savoye LET",
"SignPainter",
"Skia",
"Snell Roundhand",
"Superclarendon",
"Symbol",
"System Font",
"Tahoma",
"Times New Roman",
"Trebuchet MS",
"Verdana",
"Webdings",
"Wingdings",
"Zapfino"
]
},
"timezone": "Asia/Bangkok",
"locale": "en-US",
"languages": [
"en-US",
"en"
],
"behavior": {
"hand": "right",
"tremor": 0.18,
"wpm": 60,
"scrollStyle": "smooth"
},
"wreqPreset": "brave_146_macos",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
"uaCh": {
"sec-ch-ua": "\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"Brave\";v=\"146\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-ch-ua-platform-version": "\"26.4.0\"",
"sec-ch-ua-arch": "\"arm\"",
"sec-ch-ua-bitness": "\"64\"",
"sec-ch-ua-model": "\"\"",
"sec-ch-ua-full-version": "\"146\"",
"sec-ch-ua-os": "\"macos\""
},
"entropyBudget": {
"fixed": [],
"perSeed": []
}
}
# PROVENANCE — mac-brave-stable
Imported from the wrkx harvester corpus (`http://wrkx.app/api`) by `mochi profiles import`. PLAN.md §12.2 — every profile in `main` must carry verifiable provenance.
| field | value |
|---|---|
| profile id | `mac-brave-stable` |
| upstream visitor id | `d7cfcbec56ed7cbb166c33440ed9cc78` |
| upstream URL | `http://wrkx.app/api/visitors/d7cfcbec56ed7cbb166c33440ed9cc78` |
| visitor egress ip (snapshot) | 49.228.67.131 |
| browser version | 146 |
| FingerprintJS suspectScore | 12 |
| captured at (UTC) | 2026-05-08T20:06:53.637Z |
| imported at (UTC) | 2026-05-08T20:50:38.368Z |
| importer | `mochi profiles import` (task 0260) |
## Multi-snapshot policy
When the visitor record contains multiple snapshots for a single category (re-visits over time), the importer keeps the most recent by `created_at`. This matches the spirit of capturing the device's *current* fingerprint rather than a stale earlier one.
## TLS preset
Brave's TLS fingerprint diverges from Chrome's at the cipher-suite level. wreq's preset registry resolves `brave_*` → `UnknownFallbackChrome` (see `packages/net-rs/src/ffi/preset.rs:97`); the resulting client uses Chrome-family TLS. Closest exact match would require a per-Brave-build cipher list — phase 0.7 deliverable.
## Hand-corrections
None at import time. The harvester's `navigator` snapshot is captured by real Chrome (not headless), so the `--headless=new` artifacts that needed manual correction in `mac-m4-chrome-stable` (task 0070) are absent here.
{
"timing": {
"timezone": "Asia/Bangkok",
"timezoneOffset": -420,
"locale": "en-US",
"dateString": "Mon Jan 01 2024 12:00:00 GMT+0700 (Indochina Time)",
"localeString": "1/1/2024, 12:00:00 PM",
"localeDateString": "1/1/2024",
"numberFormat": {
"locale": "en-US",
"numberingSystem": "latn",
"style": "decimal",
"minimumIntegerDigits": 1,
"minimumFractionDigits": 0,
"maximumFractionDigits": 3,
"useGrouping": "auto",
"notation": "standard",
"signDisplay": "auto",
"roundingIncrement": 1,
"roundingMode": "halfExpand",
"roundingPriority": "auto",
"trailingZeroDisplay": "auto"
},
"dateTimeFormat": {
"locale": "en-US",
"calendar": "gregory",
"numberingSystem": "latn",
"timeZone": "Asia/Bangkok",
"year": "numeric",
"month": "numeric",
"day": "numeric"
},
"supportedCalendars": [
"buddhist",
"chinese",
"coptic",
"dangi",
"ethioaa",
"ethiopic",
"gregory",
"hebrew",
"indian",
"islamic",
"islamic-civil",
"islamic-rgsa",
"islamic-tbla",
"islamic-umalqura",
"iso8601",
"japanese",
"persian",
"roc"
],
"supportedCurrencies": 159,
"supportedNumberingSystems": [
"adlm",
"ahom",
"arab",
"arabext",
"bali",
"beng",
"bhks",
"brah",
"cakm",
"cham",
"deva",
"diak",
"fullwide",
"gara",
"gong",
"gonm",
"gujr",
"gukh",
"guru",
"hanidec",
"hmng",
"hmnp",
"java",
"kali",
"kawi",
"khmr",
"knda",
"krai",
"lana",
"lanatham",
"laoo",
"latn",
"lepc",
"limb",
"mathbold",
"mathdbl",
"mathmono",
"mathsanb",
"mathsans",
"mlym",
"modi",
"mong",
"mroo",
"mtei",
"mymr",
"mymrepka",
"mymrpao",
"mymrshan",
"mymrtlng",
"nagm",
"newa",
"nkoo",
"olck",
"onao",
"orya",
"osma",
"outlined",
"rohg",
"saur",
"segment",
"shrd",
"sind",
"sinh",
"sora",
"sund",
"sunu",
"takr",
"talu",
"tamldec",
"telu",
"thai",
"tibt",
"tirh",
"tnsa",
"vaii",
"wara",
"wcho"
],
"supportedTimeZones": 418,
"supportedUnits": 45,
"performanceTiming": {
"dns": 0,
"tcp": 0,
"ttfb": 31,
"download": 390,
"domParsing": 258,
"domComplete": -684,
"loadEvent": 0,
"total": 0,
"protocol": "h2",
"transferSize": 300,
"encodedBodySize": 3175,
"decodedBodySize": 10829
},
"timerPrecision": null,
"mathFingerprint": {
"E": 2.718281828459045,
"LN2": 0.6931471805599453,
"LN10": 2.302585092994046,
"LOG2E": 1.4426950408889634,
"LOG10E": 0.4342944819032518,
"PI": 3.141592653589793,
"SQRT2": 1.4142135623730951,
"SQRT1_2": 0.7071067811865476,
"acos": 1.0471975511965979,
"acosh": 1.3169578969248166,
"asin": 0.5235987755982989,
"atan": 0.7853981633974483,
"atanh": 0.5493061443340548,
"cbrt": 1.2599210498948732,
"cosh": 1.5430806348152437,
"expm1": 1.718281828459045,
"log1p": 0.4054651081081644,
"sinh": 1.1752011936438014,
"tanh": 0.7615941559557649
}
},
"bot": {
"webdriver": false,
"webdriverType": "normal",
"headlessChrome": false,
"automationKeys": [],
"automationDetected": false,
"chromeRuntime": true,
"pluginCount": 5,
"pluginInconsistency": false,
"languageInconsistency": false,
"permissionsApi": true,
"screenDimensions": "1728x1117",
"suspiciousDimensions": false,
"maxTouchPoints": 0,
"touchEvent": false,
"touchInconsistency": false,
"notificationPermission": "default",
"userActivation": {
"hasBeenActive": false,
"isActive": false
},
"navigationTiming": {
"type": "navigate",
"redirectCount": 0,
"domComplete": 0,
"loadEventEnd": 0,
"domInteractive": 684
},
"stackDepthTest": 101
},
"storage": {
"localStorage": true,
"localStorageKeys": 5,
"sessionStorage": true,
"sessionStorageKeys": 1,
"cookiesEnabled": true,
"cookiesWritable": true,
"cookieCount": 2,
"indexedDB": true,
"cacheStorage": true,
"serviceWorker": true,
"storageManager": true,
"fileSystemAccess": true,
"sharedArrayBuffer": false,
"sharedWorker": true,
"openDatabase": false,
"broadcastChannel": true,
"secureContext": true
},
"fonts": {
"detected": [
"Arial",
"Arial Black",
"Arial Narrow",
"Comic Sans MS",
"Courier New",
"Georgia",
"Impact",
"Microsoft Sans Serif",
"Tahoma",
"Times New Roman",
"Trebuchet MS",
"Verdana",
"Webdings",
"Wingdings",
"American Typewriter",
"Andale Mono",
"Apple Chancery",
"Apple Color Emoji",
"Apple SD Gothic Neo",
"Avenir",
"Avenir Next",
"Baskerville",
"Big Caslon",
"Brush Script MT",
"Chalkboard",
"Chalkboard SE",
"Chalkduster",
"Cochin",
"Copperplate",
"Courier",
"Didot",
"Futura",
"Geneva",
"Gill Sans",
"Helvetica",
"Helvetica Neue",
"Herculanum",
"Hoefler Text",
"Iowan Old Style",
"Lucida Grande",
"Luminari",
"Marker Felt",
"Menlo",
"Monaco",
"Noteworthy",
"Optima",
"Palatino",
"Papyrus",
"Phosphate",
"Rockwell",
"Savoye LET",
"SignPainter",
"Skia",
"Snell Roundhand",
"STIXGeneral",
"Superclarendon",
"Symbol",
"System Font",
"Zapfino",
"Hiragino Sans",
"Hiragino Kaku Gothic Pro",
"Hiragino Mincho Pro",
"PT Sans"
],
"count": 63,
"tested": 117,
"hash": "B8498456",
"fontsApiReady": true
},
"speech": {
"voices": [
{
"name": "Samantha",
"lang": "en-US",
"localService": true,
"default": true,
"voiceURI": "Samantha"
},
{
"name": "Albert",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Albert"
},
{
"name": "Alice",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Alice"
},
{
"name": "Alva",
"lang": "sv-SE",
"localService": true,
"default": false,
"voiceURI": "Alva"
},
{
"name": "Amélie",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Amélie"
},
{
"name": "Amira",
"lang": "ms-MY",
"localService": true,
"default": false,
"voiceURI": "Amira"
},
{
"name": "Anna",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Anna"
},
{
"name": "Bad News",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bad News"
},
{
"name": "Bahh",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bahh"
},
{
"name": "Bells",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bells"
},
{
"name": "Boing",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Boing"
},
{
"name": "Bubbles",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bubbles"
},
{
"name": "Carmit",
"lang": "he-IL",
"localService": true,
"default": false,
"voiceURI": "Carmit"
},
{
"name": "Cellos",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Cellos"
},
{
"name": "Damayanti",
"lang": "id-ID",
"localService": true,
"default": false,
"voiceURI": "Damayanti"
},
{
"name": "Daniel",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Daniel"
},
{
"name": "Daria",
"lang": "bg-BG",
"localService": true,
"default": false,
"voiceURI": "Daria"
},
{
"name": "Eddy (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Eddy (English (United States))"
},
{
"name": "Eddy (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Eddy (English (United Kingdom))"
},
{
"name": "Eddy (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Eddy (Chinese (China mainland))"
},
{
"name": "Eddy (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Eddy (Chinese (Taiwan))"
},
{
"name": "Eddy (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Eddy (German (Germany))"
},
{
"name": "Eddy (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Eddy (Spanish (Spain))"
},
{
"name": "Eddy (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Eddy (Spanish (Mexico))"
},
{
"name": "Eddy (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Eddy (Finnish (Finland))"
},
{
"name": "Eddy (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Eddy (French (Canada))"
},
{
"name": "Eddy (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Eddy (French (France))"
},
{
"name": "Eddy (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Eddy (Italian (Italy))"
},
{
"name": "Eddy (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Eddy (Japanese (Japan))"
},
{
"name": "Eddy (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Eddy (Korean (South Korea))"
},
{
"name": "Eddy (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Eddy (Portuguese (Brazil))"
},
{
"name": "Ellen",
"lang": "nl-BE",
"localService": true,
"default": false,
"voiceURI": "Ellen"
},
{
"name": "Flo (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Flo (English (United States))"
},
{
"name": "Flo (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Flo (English (United Kingdom))"
},
{
"name": "Flo (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Flo (Chinese (China mainland))"
},
{
"name": "Flo (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Flo (Chinese (Taiwan))"
},
{
"name": "Flo (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Flo (German (Germany))"
},
{
"name": "Flo (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Flo (Spanish (Spain))"
},
{
"name": "Flo (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Flo (Spanish (Mexico))"
},
{
"name": "Flo (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Flo (Finnish (Finland))"
},
{
"name": "Flo (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Flo (French (Canada))"
},
{
"name": "Flo (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Flo (French (France))"
},
{
"name": "Flo (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Flo (Italian (Italy))"
},
{
"name": "Flo (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Flo (Japanese (Japan))"
},
{
"name": "Flo (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Flo (Korean (South Korea))"
},
{
"name": "Flo (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Flo (Portuguese (Brazil))"
},
{
"name": "Fred",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Fred"
},
{
"name": "Geeta",
"lang": "te-IN",
"localService": true,
"default": false,
"voiceURI": "Geeta"
},
{
"name": "Good News",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Good News"
},
{
"name": "Grandma (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Grandma (English (United States))"
},
{
"name": "Grandma (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Grandma (English (United Kingdom))"
},
{
"name": "Grandma (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Grandma (Chinese (China mainland))"
},
{
"name": "Grandma (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Grandma (Chinese (Taiwan))"
},
{
"name": "Grandma (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Grandma (German (Germany))"
},
{
"name": "Grandma (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Grandma (Spanish (Spain))"
},
{
"name": "Grandma (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Grandma (Spanish (Mexico))"
},
{
"name": "Grandma (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Grandma (Finnish (Finland))"
},
{
"name": "Grandma (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Grandma (French (Canada))"
},
{
"name": "Grandma (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Grandma (French (France))"
},
{
"name": "Grandma (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Grandma (Italian (Italy))"
},
{
"name": "Grandma (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Grandma (Japanese (Japan))"
},
{
"name": "Grandma (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Grandma (Korean (South Korea))"
},
{
"name": "Grandma (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Grandma (Portuguese (Brazil))"
},
{
"name": "Grandpa (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Grandpa (English (United States))"
},
{
"name": "Grandpa (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Grandpa (English (United Kingdom))"
},
{
"name": "Grandpa (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Chinese (China mainland))"
},
{
"name": "Grandpa (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Chinese (Taiwan))"
},
{
"name": "Grandpa (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Grandpa (German (Germany))"
},
{
"name": "Grandpa (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Spanish (Spain))"
},
{
"name": "Grandpa (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Spanish (Mexico))"
},
{
"name": "Grandpa (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Finnish (Finland))"
},
{
"name": "Grandpa (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Grandpa (French (Canada))"
},
{
"name": "Grandpa (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (French (France))"
},
{
"name": "Grandpa (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Italian (Italy))"
},
{
"name": "Grandpa (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Japanese (Japan))"
},
{
"name": "Grandpa (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Korean (South Korea))"
},
{
"name": "Grandpa (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Portuguese (Brazil))"
},
{
"name": "Ioana",
"lang": "ro-RO",
"localService": true,
"default": false,
"voiceURI": "Ioana"
},
{
"name": "Jacques",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Jacques"
},
{
"name": "Jester",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Jester"
},
{
"name": "Joana",
"lang": "pt-PT",
"localService": true,
"default": false,
"voiceURI": "Joana"
},
{
"name": "Junior",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Junior"
},
{
"name": "Kanya",
"lang": "th-TH",
"localService": true,
"default": false,
"voiceURI": "Kanya"
},
{
"name": "Karen",
"lang": "en-AU",
"localService": true,
"default": false,
"voiceURI": "Karen"
},
{
"name": "Kathy",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Kathy"
},
{
"name": "Kyoko",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Kyoko"
},
{
"name": "Lana",
"lang": "hr-HR",
"localService": true,
"default": false,
"voiceURI": "Lana"
},
{
"name": "Laura",
"lang": "sk-SK",
"localService": true,
"default": false,
"voiceURI": "Laura"
},
{
"name": "Lekha",
"lang": "hi-IN",
"localService": true,
"default": false,
"voiceURI": "Lekha"
},
{
"name": "Lesya",
"lang": "uk-UA",
"localService": true,
"default": false,
"voiceURI": "Lesya"
},
{
"name": "Linh",
"lang": "vi-VN",
"localService": true,
"default": false,
"voiceURI": "Linh"
},
{
"name": "Luciana",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Luciana"
},
{
"name": "Majed",
"lang": "ar-001",
"localService": true,
"default": false,
"voiceURI": "Majed"
},
{
"name": "Meijia",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Meijia"
},
{
"name": "Melina",
"lang": "el-GR",
"localService": true,
"default": false,
"voiceURI": "Melina"
},
{
"name": "Milena",
"lang": "ru-RU",
"localService": true,
"default": false,
"voiceURI": "Milena"
},
{
"name": "Moira",
"lang": "en-IE",
"localService": true,
"default": false,
"voiceURI": "Moira"
},
{
"name": "Montse",
"lang": "ca-ES",
"localService": true,
"default": false,
"voiceURI": "Montse"
},
{
"name": "Mónica",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Mónica"
},
{
"name": "Nora",
"lang": "nb-NO",
"localService": true,
"default": false,
"voiceURI": "Nora"
},
{
"name": "Organ",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Organ"
},
{
"name": "Paulina",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Paulina"
},
{
"name": "Piya",
"lang": "bn-IN",
"localService": true,
"default": false,
"voiceURI": "Piya"
},
{
"name": "Ralph",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Ralph"
},
{
"name": "Reed (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Reed (English (United States))"
},
{
"name": "Reed (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Reed (English (United Kingdom))"
},
{
"name": "Reed (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Reed (Chinese (China mainland))"
},
{
"name": "Reed (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Reed (Chinese (Taiwan))"
},
{
"name": "Reed (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Reed (German (Germany))"
},
{
"name": "Reed (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Reed (Spanish (Spain))"
},
{
"name": "Reed (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Reed (Spanish (Mexico))"
},
{
"name": "Reed (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Reed (Finnish (Finland))"
},
{
"name": "Reed (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Reed (French (Canada))"
},
{
"name": "Reed (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Reed (Italian (Italy))"
},
{
"name": "Reed (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Reed (Japanese (Japan))"
},
{
"name": "Reed (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Reed (Korean (South Korea))"
},
{
"name": "Reed (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Reed (Portuguese (Brazil))"
},
{
"name": "Rishi",
"lang": "en-IN",
"localService": true,
"default": false,
"voiceURI": "Rishi"
},
{
"name": "Rocko (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Rocko (English (United States))"
},
{
"name": "Rocko (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Rocko (English (United Kingdom))"
},
{
"name": "Rocko (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Rocko (Chinese (China mainland))"
},
{
"name": "Rocko (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Rocko (Chinese (Taiwan))"
},
{
"name": "Rocko (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Rocko (German (Germany))"
},
{
"name": "Rocko (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Rocko (Spanish (Spain))"
},
{
"name": "Rocko (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Rocko (Spanish (Mexico))"
},
{
"name": "Rocko (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Rocko (Finnish (Finland))"
},
{
"name": "Rocko (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Rocko (French (Canada))"
},
{
"name": "Rocko (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Rocko (French (France))"
},
{
"name": "Rocko (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Rocko (Italian (Italy))"
},
{
"name": "Rocko (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Rocko (Japanese (Japan))"
},
{
"name": "Rocko (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Rocko (Korean (South Korea))"
},
{
"name": "Rocko (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Rocko (Portuguese (Brazil))"
},
{
"name": "Sandy (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Sandy (English (United States))"
},
{
"name": "Sandy (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Sandy (English (United Kingdom))"
},
{
"name": "Sandy (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Sandy (Chinese (China mainland))"
},
{
"name": "Sandy (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Sandy (Chinese (Taiwan))"
},
{
"name": "Sandy (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Sandy (German (Germany))"
},
{
"name": "Sandy (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Sandy (Spanish (Spain))"
},
{
"name": "Sandy (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Sandy (Spanish (Mexico))"
},
{
"name": "Sandy (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Sandy (Finnish (Finland))"
},
{
"name": "Sandy (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Sandy (French (Canada))"
},
{
"name": "Sandy (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Sandy (French (France))"
},
{
"name": "Sandy (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Sandy (Italian (Italy))"
},
{
"name": "Sandy (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Sandy (Japanese (Japan))"
},
{
"name": "Sandy (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Sandy (Korean (South Korea))"
},
{
"name": "Sandy (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Sandy (Portuguese (Brazil))"
},
{
"name": "Sara",
"lang": "da-DK",
"localService": true,
"default": false,
"voiceURI": "Sara"
},
{
"name": "Satu",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Satu"
},
{
"name": "Shelley (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Shelley (English (United States))"
},
{
"name": "Shelley (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Shelley (English (United Kingdom))"
},
{
"name": "Shelley (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Shelley (Chinese (China mainland))"
},
{
"name": "Shelley (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Shelley (Chinese (Taiwan))"
},
{
"name": "Shelley (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Shelley (German (Germany))"
},
{
"name": "Shelley (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Shelley (Spanish (Spain))"
},
{
"name": "Shelley (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Shelley (Spanish (Mexico))"
},
{
"name": "Shelley (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Shelley (Finnish (Finland))"
},
{
"name": "Shelley (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Shelley (French (Canada))"
},
{
"name": "Shelley (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Shelley (French (France))"
},
{
"name": "Shelley (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Shelley (Italian (Italy))"
},
{
"name": "Shelley (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Shelley (Japanese (Japan))"
},
{
"name": "Shelley (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Shelley (Korean (South Korea))"
},
{
"name": "Shelley (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Shelley (Portuguese (Brazil))"
},
{
"name": "Sinji",
"lang": "yue-HK",
"localService": true,
"default": false,
"voiceURI": "Sinji"
},
{
"name": "Soumya",
"lang": "kn-IN",
"localService": true,
"default": false,
"voiceURI": "Soumya"
},
{
"name": "Superstar",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Superstar"
},
{
"name": "Tessa",
"lang": "en-ZA",
"localService": true,
"default": false,
"voiceURI": "Tessa"
},
{
"name": "Thomas",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Thomas"
},
{
"name": "Tina",
"lang": "sl-SI",
"localService": true,
"default": false,
"voiceURI": "Tina"
},
{
"name": "Tingting",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Tingting"
},
{
"name": "Trinoids",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Trinoids"
},
{
"name": "Tünde",
"lang": "hu-HU",
"localService": true,
"default": false,
"voiceURI": "Tünde"
},
{
"name": "Vani",
"lang": "ta-IN",
"localService": true,
"default": false,
"voiceURI": "Vani"
},
{
"name": "Whisper",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Whisper"
},
{
"name": "Wobble",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Wobble"
},
{
"name": "Xander",
"lang": "nl-NL",
"localService": true,
"default": false,
"voiceURI": "Xander"
},
{
"name": "Yelda",
"lang": "tr-TR",
"localService": true,
"default": false,
"voiceURI": "Yelda"
},
{
"name": "Yuna",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Yuna"
},
{
"name": "Zarvox",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Zarvox"
},
{
"name": "Zosia",
"lang": "pl-PL",
"localService": true,
"default": false,
"voiceURI": "Zosia"
},
{
"name": "Zuzana",
"lang": "cs-CZ",
"localService": true,
"default": false,
"voiceURI": "Zuzana"
},
{
"name": "Google Deutsch",
"lang": "de-DE",
"localService": false,
"default": false,
"voiceURI": "Google Deutsch"
},
{
"name": "Google US English",
"lang": "en-US",
"localService": false,
"default": false,
"voiceURI": "Google US English"
},
{
"name": "Google UK English Female",
"lang": "en-GB",
"localService": false,
"default": false,
"voiceURI": "Google UK English Female"
},
{
"name": "Google UK English Male",
"lang": "en-GB",
"localService": false,
"default": false,
"voiceURI": "Google UK English Male"
},
{
"name": "Google español",
"lang": "es-ES",
"localService": false,
"default": false,
"voiceURI": "Google español"
},
{
"name": "Google español de Estados Unidos",
"lang": "es-US",
"localService": false,
"default": false,
"voiceURI": "Google español de Estados Unidos"
},
{
"name": "Google français",
"lang": "fr-FR",
"localService": false,
"default": false,
"voiceURI": "Google français"
},
{
"name": "Google हिन्दी",
"lang": "hi-IN",
"localService": false,
"default": false,
"voiceURI": "Google हिन्दी"
},
{
"name": "Google Bahasa Indonesia",
"lang": "id-ID",
"localService": false,
"default": false,
"voiceURI": "Google Bahasa Indonesia"
},
{
"name": "Google italiano",
"lang": "it-IT",
"localService": false,
"default": false,
"voiceURI": "Google italiano"
},
{
"name": "Google 日本語",
"lang": "ja-JP",
"localService": false,
"default": false,
"voiceURI": "Google 日本語"
},
{
"name": "Google 한국의",
"lang": "ko-KR",
"localService": false,
"default": false,
"voiceURI": "Google 한국의"
},
{
"name": "Google Nederlands",
"lang": "nl-NL",
"localService": false,
"default": false,
"voiceURI": "Google Nederlands"
},
{
"name": "Google polski",
"lang": "pl-PL",
"localService": false,
"default": false,
"voiceURI": "Google polski"
},
{
"name": "Google português do Brasil",
"lang": "pt-BR",
"localService": false,
"default": false,
"voiceURI": "Google português do Brasil"
},
{
"name": "Google русский",
"lang": "ru-RU",
"localService": false,
"default": false,
"voiceURI": "Google русский"
},
{
"name": "Google 普通话(中国大陆)",
"lang": "zh-CN",
"localService": false,
"default": false,
"voiceURI": "Google 普通话(中国大陆)"
},
{
"name": "Google 粤語(香港)",
"lang": "zh-HK",
"localService": false,
"default": false,
"voiceURI": "Google 粤語(香港)"
},
{
"name": "Google 國語(臺灣)",
"lang": "zh-TW",
"localService": false,
"default": false,
"voiceURI": "Google 國語(臺灣)"
}
],
"voiceCount": 199,
"localVoices": 180,
"remoteVoices": 19,
"languages": [
"en-US",
"it-IT",
"sv-SE",
"fr-CA",
"ms-MY",
"de-DE",
"he-IL",
"id-ID",
"en-GB",
"bg-BG",
"zh-CN",
"zh-TW",
"es-ES",
"es-MX",
"fi-FI",
"fr-FR",
"ja-JP",
"ko-KR",
"pt-BR",
"nl-BE",
"te-IN",
"ro-RO",
"pt-PT",
"th-TH",
"en-AU",
"hr-HR",
"sk-SK",
"hi-IN",
"uk-UA",
"vi-VN",
"ar-001",
"el-GR",
"ru-RU",
"en-IE",
"ca-ES",
"nb-NO",
"bn-IN",
"en-IN",
"da-DK",
"yue-HK",
"kn-IN",
"en-ZA",
"sl-SI",
"hu-HU",
"ta-IN",
"nl-NL",
"tr-TR",
"pl-PL",
"cs-CZ",
"es-US",
"zh-HK"
]
},
"mediaDevices": {
"devices": [
{
"deviceId": "",
"kind": "audioinput",
"label": "",
"groupId": ""
},
{
"deviceId": "",
"kind": "videoinput",
"label": "",
"groupId": ""
},
{
"deviceId": "",
"kind": "audiooutput",
"label": "",
"groupId": ""
}
],
"deviceCount": 3,
"audioinput": 1,
"audiooutput": 1,
"videoinput": 1,
"supportedConstraints": {
"aspectRatio": true,
"autoGainControl": true,
"brightness": true,
"channelCount": true,
"colorTemperature": true,
"contrast": true,
"deviceId": true,
"displaySurface": true,
"echoCancellation": true,
"exposureCompensation": true,
"exposureMode": true,
"exposureTime": true,
"facingMode": true,
"focusDistance": true,
"focusMode": true,
"frameRate": true,
"groupId": true,
"height": true,
"iso": true,
"latency": true,
"noiseSuppression": true,
"pan": true,
"pointsOfInterest": true,
"resizeMode": true,
"restrictOwnAudio": true,
"sampleRate": true,
"sampleSize": true,
"saturation": true,
"sharpness": true,
"suppressLocalAudioPlayback": true,
"tilt": true,
"torch": true,
"voiceIsolation": true,
"whiteBalanceMode": true,
"width": true,
"zoom": true
}
},
"audio": {
"sampleRate": 48000,
"state": "running",
"baseLatency": 0.005333333333333333,
"outputLatency": 0,
"maxChannelCount": 2,
"numberOfInputs": 1,
"numberOfOutputs": 0,
"channelCount": 2,
"channelCountMode": "explicit",
"channelInterpretation": "speakers",
"audioHash": "124.04347624466754",
"sampleValues": [
-0.10808053612709045,
-0.3909117877483368,
-0.005692681297659874,
0.3892313539981842,
0.1189708411693573,
-0.3545846939086914,
-0.22215834259986877,
0.28990939259529114,
0.30651888251304626,
-0.20068734884262085
]
},
"webgpu": {
"supported": true,
"features": [
"depth32float-stencil8",
"rg11b10ufloat-renderable",
"bgra8unorm-storage",
"texture-formats-tier1",
"texture-compression-bc",
"dual-source-blending",
"core-features-and-limits",
"float32-filterable",
"indirect-first-instance",
"texture-compression-astc-sliced-3d",
"float32-blendable",
"texture-compression-astc",
"texture-compression-etc2",
"depth-clip-control",
"texture-compression-bc-sliced-3d",
"texture-formats-tier2",
"shader-f16",
"clip-distances",
"timestamp-query",
"primitive-index",
"texture-component-swizzle",
"subgroups"
],
"info": {
"vendor": "apple",
"architecture": "metal-3",
"device": "",
"description": ""
}
},
"webgl": {
"version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
"shadingLanguageVersion": "WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)",
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"unmaskedVendor": "Google Inc. (Apple)",
"unmaskedRenderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4 Max, Unspecified Version)",
"extensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_pvrtc",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_render_shared_exponent",
"WEBGL_stencil_texturing"
],
"extensionCount": 36,
"maxTextureSize": 16384,
"maxViewportDims": [
16384,
16384
],
"maxRenderbufferSize": 16384,
"maxCombinedTextureImageUnits": 32,
"maxCubeMapTextureSize": 16384,
"maxFragmentUniformVectors": 1024,
"maxTextureImageUnits": 16,
"maxVertexAttribs": 16,
"maxVertexTextureImageUnits": 16,
"maxVertexUniformVectors": 1024,
"maxVaryingVectors": 30,
"aliasedLineWidthRange": [
1,
1
],
"aliasedPointSizeRange": [
1,
511
],
"maxAnisotropy": 16,
"precisionFormats": {
"vertex_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
}
}
},
"canvas": {
"consistent": true,
"hash": "CC4CD2B7",
"dataUrlLength": 25854,
"dataUrlPrefix": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwA",
"webpSupport": true,
"jpegHighLength": 26851,
"jpegLowLength": 2347
},
"screen": {
"width": 1728,
"height": 1117,
"availWidth": 1728,
"availHeight": 1083,
"colorDepth": 30,
"pixelDepth": 30,
"innerWidth": 2304,
"innerHeight": 1328,
"outerWidth": 1728,
"outerHeight": 997,
"screenX": 0,
"screenY": 120,
"pageXOffset": 0,
"pageYOffset": 0,
"devicePixelRatio": 1.5,
"orientation": {
"type": "landscape-primary",
"angle": 0
},
"mediaQueries": {
"prefers-color-scheme": "dark",
"prefers-reduced-motion": "reduce",
"prefers-contrast": "no-preference",
"forced-colors": "none",
"prefers-reduced-transparency": "reduce",
"color-gamut": "srgb",
"pointer": "fine",
"hover": "hover",
"any-pointer": "fine",
"any-hover": "hover",
"display-mode": "fullscreen",
"dynamic-range": "standard",
"update": "fast",
"overflow-block": "scroll",
"overflow-inline": "scroll",
"min-resolution": "144dpi",
"min-color": "8",
"monochrome": false
},
"visualViewport": {
"width": 2304,
"height": 1328,
"offsetLeft": 0,
"offsetTop": 0,
"pageLeft": 0,
"pageTop": 0,
"scale": 1
}
},
"navigator": {
"secureContext": true,
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"platform": "MacIntel",
"vendor": "Google Inc.",
"vendorSub": "",
"product": "Gecko",
"productSub": "20030107",
"appVersion": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"appName": "Netscape",
"appCodeName": "Mozilla",
"language": "en-US",
"languages": [
"en-US",
"en"
],
"cookieEnabled": true,
"doNotTrack": null,
"maxTouchPoints": 0,
"hardwareConcurrency": 14,
"deviceMemory": 32,
"pdfViewerEnabled": true,
"webdriver": false,
"connection": {
"effectiveType": "4g",
"downlink": 10,
"rtt": 50,
"saveData": false
},
"plugins": [
{
"name": "PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chrome PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chromium PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Microsoft Edge PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "WebKit built-in PDF",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
}
],
"pluginCount": 5,
"mimeTypes": [
"application/pdf",
"text/pdf"
],
"userAgentData": {
"brands": [
{
"brand": "Google Chrome",
"version": "147"
},
{
"brand": "Not.A/Brand",
"version": "8"
},
{
"brand": "Chromium",
"version": "147"
}
],
"mobile": false,
"platform": "macOS"
},
"userAgentDataHighEntropy": {
"architecture": "arm",
"bitness": "64",
"brands": [
{
"brand": "Google Chrome",
"version": "147"
},
{
"brand": "Not.A/Brand",
"version": "8"
},
{
"brand": "Chromium",
"version": "147"
}
],
"fullVersionList": [
{
"brand": "Google Chrome",
"version": "147.0.7727.138"
},
{
"brand": "Not.A/Brand",
"version": "8.0.0.0"
},
{
"brand": "Chromium",
"version": "147.0.7727.138"
}
],
"mobile": false,
"model": "",
"platform": "macOS",
"platformVersion": "26.4.0",
"wow64": false
},
"permissions": {
"geolocation": "prompt",
"notifications": "prompt",
"camera": "prompt",
"microphone": "prompt",
"accelerometer": "granted",
"gyroscope": "granted",
"magnetometer": "granted",
"clipboard-read": "prompt",
"clipboard-write": "granted"
},
"storageEstimate": {
"quota": 10737418240,
"usage": 0
},
"bluetooth": true,
"usb": true,
"serial": true,
"hid": true,
"xr": true,
"gpu": true,
"ink": true,
"scheduling": true,
"windowControlsOverlay": true,
"virtualKeyboard": true
},
"__meta": {
"capturedAt": "2026-05-07T15:30:54.805Z",
"elapsedMs": 0,
"href": "http://wrkx.app/api/visitors/a5DvTh20kSDEse8RKYg2",
"readyState": "complete"
}
}
{
"version": "1",
"profile": "mac-chrome-beta",
"paths": [
{
"path": "audio.**",
"comment": "Audio fingerprint bytes (sampleValues, audioHash) require precomputed per-(profile, sample-rate) byte tables — task 0071. docs/limits.md \"Audio fingerprinting (OfflineAudioContext) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "canvas.**",
"comment": "Canvas hash + dataUrl spoofing requires precomputed hash maps for the standard probe payloads + per-pixel noise injection — task 0071. docs/limits.md \"Canvas fingerprinting (HTMLCanvasElement.toDataURL) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "speech.**",
"comment": "speechSynthesis.getVoices() returns the host's installed system voices on real Chrome (typically 200+ entries on macOS, 20+ on Linux/Win). Chromium-for-Testing ships with no voice tables, so mochi spoofs voices=[]. Restoring real-device voice lists is a phase 0.7 deliverable (precomputed voice tables per-OS) tracked alongside audio/canvas. PLAN.md §13.6."
},
{
"path": "navigator.userAgentData.brands",
"comment": "Brand-list length varies (Linux Chrome emits 2 brands, macOS/Win emit 3). Same root cause as the per-entry comment below."
},
{
"path": "navigator.userAgentData.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentData.brands[*].**",
"comment": "Sec-CH-UA brand-list ordering and GREASE label vary between Chrome/Edge majors and even between Chrome point releases (e.g. 146 emits `Not-A.Brand;v=24` while 147 emits `Not.A/Brand;v=8`). mochi pins a single GREASE label per major (consistency/rules/lookups/browser.ts) for determinism — see tasks/0051-consistency-stack-fixes.md (Group B). Per-major GREASE shuffle is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.brands",
"comment": "Same as userAgentData.brands."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*].**",
"comment": "Same as navigator.userAgentData.brands — pinned for determinism."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList",
"comment": "Same as userAgentData.brands — length varies by OS."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*].**",
"comment": "Patch-level Chrome version (e.g. 146.0.7680.165) varies with the local Chrome install vs the BROWSER_TIP_FULL_VERSION table. mochi uses the table tip when the major matches; harvested values may differ by a few patch numbers. Refresh the table per Chrome major."
},
{
"path": "navigator.userAgent",
"comment": "Full UA string includes the patch version (see fullVersionList comment). Spoofed value matches BROWSER_TIP_FULL_VERSION; harvested value reflects the user's exact Chrome point release."
},
{
"path": "navigator.appVersion",
"comment": "Same patch-version drift as navigator.userAgent."
},
{
"path": "screen.mediaQueries.**",
"comment": "matchMedia() result strings depend on the host's actual OS/display state (min-resolution from real DPR, prefers-color-scheme from Dark Mode, etc.). mochi spoofs a deterministic baseline; the harvested values reflect the user's session at capture time. Per-profile media-query lock is phase 0.7."
},
{
"path": "screen.pageXOffset",
"comment": "Window-frame chrome. Sentinelized by normalize.ts in most paths but the raw harvested value may differ from the harness window's idle offset."
},
{
"path": "screen.pageYOffset",
"comment": "Window-frame chrome — same as pageXOffset."
},
{
"path": "timing.dateString",
"comment": "Date.toString() includes the host's wall-clock time, which differs every run. The probe normalises to a fixed 2024-01-01 anchor; harvested values reflect the user's actual capture time."
},
{
"path": "timing.performanceTiming",
"comment": "performance.timing.* fields vary per session (load durations, redirect counts). normalize.ts sentinelizes the bot.navigationTiming sub-block; the timing.performanceTiming block is harvester-specific and not currently sentinelized."
},
{
"path": "timing.supportedNumberingSystems[*]",
"comment": "Intl.supportedValuesOf('numberingSystem') grows between V8 majors (e.g. Chrome 149 added 'tols'). The harvested list reflects the user's V8; the harness uses Chromium-for-Testing's V8. List drift is expected as BROWSER_TIP_FULL_VERSION advances."
},
{
"path": "webgl.aliasedLineWidthRange[*]",
"comment": "WebGL aliasedLineWidthRange/PointSizeRange/maxViewportDims values vary with the GPU driver version on the host. mochi locks GPU vendor/renderer via the matrix; per-driver-version locking is phase 0.7."
},
{
"path": "webgl.aliasedPointSizeRange[*]",
"comment": "See webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxColorAttachments",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxViewportDims[*]",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgpu.features",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.features[*]",
"comment": "WebGPU feature list grows between Chromium majors. The harvested list reflects the user's Chrome version; the harness uses Chromium-for-Testing."
},
{
"path": "webgpu.info",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.limits.**",
"comment": "WebGPU adapter limits depend on the GPU driver. Per-driver locking is phase 0.7 alongside WebGL."
},
{
"path": "bot.chromeRuntime",
"comment": "Real Chrome exposes window.chrome.runtime; Chromium-for-Testing does not. Restoring chrome.runtime polyfill is task 0140 (stealth conformance) — tracked separately."
},
{
"path": "storage.cookieCount",
"comment": "Cookie state varies per session — the harvester's user had cookies, the harness session is fresh."
},
{
"path": "storage.cookiesWritable",
"comment": "Depends on the document context (file:// fixture vs http:// origin). Harvester captured at http(s) origin; harness uses file:// fixture."
},
{
"path": "storage.localStorageKeys",
"comment": "localStorage state varies per session — fresh harness session has no keys."
},
{
"path": "mouseEvent",
"comment": "The probe-page emits a mouseEvent block when the relational-lock scaffolding fires. Harvested snapshots predate this probe and so omit it; spoofed sessions emit it. Cosmetic — the lock-result block is the spoof's own diagnostic, not a fingerprint surface."
},
{
"path": "fonts.**",
"comment": "The font enumeration probe enumerates whatever the host has installed. Spoofing the per-profile font intersection is a phase 0.7 task (FontFace API stub + per-profile font allowlist). Running e.g. windows-chrome-stable on a Mac host will surface every macOS system font as material — that's a known gap, not a profile defect."
},
{
"path": "webgl.extensions",
"comment": "Whole array absent on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.extensions[*]",
"comment": "WebGL extension list depends on the host GPU + driver. mochi locks GPU vendor/renderer strings but does NOT enumerate-list-spoof extensions per-profile yet. Phase 0.7 deliverable. Cross-host validation surfaces the host's actual extension set."
},
{
"path": "webgl.precisionFormats",
"comment": "Block absent on no-WebGL hosts."
},
{
"path": "webgl.extensionCount",
"comment": "See webgl.extensions[*] — count varies with host extensions."
},
{
"path": "webgl.unmaskedVendor",
"comment": "Unmasked WebGL vendor/renderer requires GPU spoofing at the ANGLE layer (or a polyfilled WEBGL_debug_renderer_info getter). mochi's getter spoof is host-OS-aware; cross-host tests surface the underlying device."
},
{
"path": "webgl.unmaskedRenderer",
"comment": "See webgl.unmaskedVendor."
},
{
"path": "webgpu.info.**",
"comment": "WebGPU adapter info comes from the host driver. Cross-host validation shows the host's adapter; same root cause as webgl.unmaskedRenderer."
},
{
"path": "mediaDevices.devices[*]",
"comment": "Per-entry full-object mismatch when device-array length differs."
},
{
"path": "mediaDevices.devices[*].**",
"comment": "navigator.mediaDevices.enumerateDevices() returns whatever audio/video devices the host has. The harness fixture runs in a fresh permission state so labels are empty (matches baseline) but the device count + kind ratio depends on the host. Per-profile media-devices spoofing is phase 0.7."
},
{
"path": "mediaDevices.deviceCount",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audioinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audiooutput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.videoinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "navigator.connection.effectiveType",
"comment": "NetworkInformation.effectiveType reads from the host network stack. downlink/rtt are sentinelized by normalize.ts but effectiveType isn't."
},
{
"path": "timing.timezoneOffset",
"comment": "timezoneOffset depends on whether the captured profile's tz observes DST at the harness's wall-clock time vs at capture time. The IANA timezone is spoofed correctly; the offset is a derived value with seasonal drift."
},
{
"path": "bot.userActivation.**",
"comment": "navigator.userActivation.hasBeenActive flips to true when the harness drives mouse/keyboard events. The harvested snapshot was captured before any user gesture, so hasBeenActive=false. The spoof doesn't lie about this — it's a true reflection of the harness's interaction sequence."
},
{
"path": "navigator.deviceMemory",
"comment": "navigator.deviceMemory is spec-capped at 8 on real Chrome, but some configurations (older Chrome, non-Chromium derivatives) leak the real GiB count. mochi enforces the spec cap deterministically; the harvested value may be higher (16/32/64) and the spoof correctly clamps to 8."
},
{
"path": "navigator.bluetooth",
"comment": "navigator.bluetooth presence depends on the host's Web Bluetooth flag. Linux Chrome typically has it disabled by default; mochi exposes it. Per-profile API allowlist is phase 0.7."
},
{
"path": "storage.fileSystemAccess",
"comment": "FileSystemAccess API can be hardened off (Brave) or off-by-default (Linux Chrome). mochi exposes the API by default. Per-profile feature gating is phase 0.7."
},
{
"path": "storage.sessionStorageKeys",
"comment": "The probe page writes one sessionStorage key during its self-test; harvested baselines that ran before that probe instrumentation report 0. New captures will normalize to 1 once re-imported."
},
{
"path": "timing.timerPrecision",
"comment": "Brave coarsens performance.now() precision; harvested Brave snapshots report null. mochi does NOT coarsen — restoring Brave's precision-coarsen behavior is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.platformVersion",
"comment": "platformVersion is empty on Linux Chrome (X11 has no notion of OS marketing version). The spoof emits a synthesised value; on Linux imports we accept the empty-string baseline as the source of truth."
},
{
"path": "navigator.connection",
"comment": "Brave hardens NetworkInformation and returns an undefined connection block. mochi exposes the API. Per-profile NetworkInformation hardening is a phase 0.7 deliverable."
},
{
"path": "webgl.error",
"comment": "Some captured devices (headless Linux, lock-screened Windows) report no WebGL context. mochi always presents a WebGL surface. Per-profile no-WebGL mode is phase 0.7."
},
{
"path": "webgl.version",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.shadingLanguageVersion",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.vendor",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.renderer",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.aliasedLineWidthRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.aliasedPointSizeRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxAnisotropy",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxColorAttachments",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCombinedTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCubeMapTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxFragmentUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxRenderbufferSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVaryingVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexAttribs",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxViewportDims",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.precisionFormats.**",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "mediaDevices.devices",
"comment": "Device array length varies with the host's installed devices. Per-profile media-devices spoofing is phase 0.7."
}
]
}
{
"id": "mac-chrome-beta",
"version": "1.0.0",
"engine": "chromium",
"browser": {
"name": "chrome",
"channel": "beta",
"minVersion": "147",
"maxVersion": "147"
},
"os": {
"name": "macos",
"version": "26.4.0",
"arch": "arm64"
},
"device": {
"vendor": "apple",
"model": "Mac",
"cpuFamily": "apple-silicon-m4",
"cores": 14,
"memoryGB": 64
},
"display": {
"width": 1728,
"height": 1117,
"dpr": 1.5,
"colorDepth": 30,
"pixelDepth": 30
},
"gpu": {
"vendor": "Apple",
"renderer": "ANGLE Metal Renderer: Apple M4 Max",
"webglUnmaskedVendor": "Google Inc. (Apple)",
"webglUnmaskedRenderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4 Max, Unspecified Version)",
"webglMaxTextureSize": 16384,
"webglMaxColorAttachments": 8,
"webglExtensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_pvrtc",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_render_shared_exponent",
"WEBGL_stencil_texturing"
]
},
"audio": {
"contextSampleRate": 48000,
"audioWorkletLatency": 0.005333333333333333,
"destinationMaxChannelCount": 2
},
"fonts": {
"family": "macos-system-pack",
"list": [
"American Typewriter",
"Andale Mono",
"Apple Chancery",
"Apple Color Emoji",
"Apple SD Gothic Neo",
"Arial",
"Arial Black",
"Arial Narrow",
"Avenir",
"Avenir Next",
"Baskerville",
"Big Caslon",
"Brush Script MT",
"Chalkboard",
"Chalkboard SE",
"Chalkduster",
"Cochin",
"Comic Sans MS",
"Copperplate",
"Courier",
"Courier New",
"Didot",
"Futura",
"Geneva",
"Georgia",
"Gill Sans",
"Helvetica",
"Helvetica Neue",
"Herculanum",
"Hiragino Kaku Gothic Pro",
"Hiragino Mincho Pro",
"Hiragino Sans",
"Hoefler Text",
"Impact",
"Iowan Old Style",
"Lucida Grande",
"Luminari",
"Marker Felt",
"Menlo",
"Microsoft Sans Serif",
"Monaco",
"Noteworthy",
"Optima",
"PT Sans",
"Palatino",
"Papyrus",
"Phosphate",
"Rockwell",
"STIXGeneral",
"Savoye LET",
"SignPainter",
"Skia",
"Snell Roundhand",
"Superclarendon",
"Symbol",
"System Font",
"Tahoma",
"Times New Roman",
"Trebuchet MS",
"Verdana",
"Webdings",
"Wingdings",
"Zapfino"
]
},
"timezone": "Asia/Bangkok",
"locale": "en-US",
"languages": [
"en-US",
"en"
],
"behavior": {
"hand": "right",
"tremor": 0.18,
"wpm": 60,
"scrollStyle": "smooth"
},
"wreqPreset": "chrome_147_macos",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"uaCh": {
"sec-ch-ua": "\"Google Chrome\";v=\"147\", \"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"147\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-ch-ua-platform-version": "\"26.4.0\"",
"sec-ch-ua-arch": "\"arm\"",
"sec-ch-ua-bitness": "\"64\"",
"sec-ch-ua-model": "\"\"",
"sec-ch-ua-full-version": "\"147\"",
"sec-ch-ua-os": "\"macos\""
},
"entropyBudget": {
"fixed": [],
"perSeed": []
}
}
# PROVENANCE — mac-chrome-beta
Imported from the wrkx harvester corpus (`http://wrkx.app/api`) by `mochi profiles import`. PLAN.md §12.2 — every profile in `main` must carry verifiable provenance.
| field | value |
|---|---|
| profile id | `mac-chrome-beta` |
| upstream visitor id | `a5DvTh20kSDEse8RKYg2` |
| upstream URL | `http://wrkx.app/api/visitors/a5DvTh20kSDEse8RKYg2` |
| visitor egress ip (snapshot) | 49.228.67.131 |
| browser version | 147 |
| FingerprintJS suspectScore | 6 |
| captured at (UTC) | 2026-05-07T15:30:54.805Z |
| imported at (UTC) | 2026-05-08T20:50:35.794Z |
| importer | `mochi profiles import` (task 0260) |
## Multi-snapshot policy
When the visitor record contains multiple snapshots for a single category (re-visits over time), the importer keeps the most recent by `created_at`. This matches the spirit of capturing the device's *current* fingerprint rather than a stale earlier one.
## TLS preset
The harvester capture did not include a JA3/JA4 hash, so the wreqPreset is synthesised as `<browser>_<major>_<os>`. The wreq Rust crate's `resolve_preset()` matches by family (`chrome*` → Chrome) — exact-version fingerprint matching is a phase 0.7 deliverable. See `packages/net-rs/src/ffi/preset.rs`.
## Hand-corrections
None at import time. The harvester's `navigator` snapshot is captured by real Chrome (not headless), so the `--headless=new` artifacts that needed manual correction in `mac-m4-chrome-stable` (task 0070) are absent here.
{
"timing": {
"timezone": "Asia/Jakarta",
"timezoneOffset": -420,
"locale": "en-US",
"dateString": "Mon Jan 01 2024 12:00:00 GMT+0700 (Western Indonesia Time)",
"localeString": "1/1/2024, 12:00:00 PM",
"localeDateString": "1/1/2024",
"numberFormat": {
"locale": "en-US",
"numberingSystem": "latn",
"style": "decimal",
"minimumIntegerDigits": 1,
"minimumFractionDigits": 0,
"maximumFractionDigits": 3,
"useGrouping": "auto",
"notation": "standard",
"signDisplay": "auto",
"roundingIncrement": 1,
"roundingMode": "halfExpand",
"roundingPriority": "auto",
"trailingZeroDisplay": "auto"
},
"dateTimeFormat": {
"locale": "en-US",
"calendar": "gregory",
"numberingSystem": "latn",
"timeZone": "Asia/Jakarta",
"year": "numeric",
"month": "numeric",
"day": "numeric"
},
"supportedCalendars": [
"buddhist",
"chinese",
"coptic",
"dangi",
"ethioaa",
"ethiopic",
"gregory",
"hebrew",
"indian",
"islamic",
"islamic-civil",
"islamic-rgsa",
"islamic-tbla",
"islamic-umalqura",
"iso8601",
"japanese",
"persian",
"roc"
],
"supportedCurrencies": 159,
"supportedNumberingSystems": [
"adlm",
"ahom",
"arab",
"arabext",
"bali",
"beng",
"bhks",
"brah",
"cakm",
"cham",
"deva",
"diak",
"fullwide",
"gara",
"gong",
"gonm",
"gujr",
"gukh",
"guru",
"hanidec",
"hmng",
"hmnp",
"java",
"kali",
"kawi",
"khmr",
"knda",
"krai",
"lana",
"lanatham",
"laoo",
"latn",
"lepc",
"limb",
"mathbold",
"mathdbl",
"mathmono",
"mathsanb",
"mathsans",
"mlym",
"modi",
"mong",
"mroo",
"mtei",
"mymr",
"mymrepka",
"mymrpao",
"mymrshan",
"mymrtlng",
"nagm",
"newa",
"nkoo",
"olck",
"onao",
"orya",
"osma",
"outlined",
"rohg",
"saur",
"segment",
"shrd",
"sind",
"sinh",
"sora",
"sund",
"sunu",
"takr",
"talu",
"tamldec",
"telu",
"thai",
"tibt",
"tirh",
"tnsa",
"vaii",
"wara",
"wcho"
],
"supportedTimeZones": 418,
"supportedUnits": 45,
"performanceTiming": {
"dns": 0,
"tcp": 0,
"ttfb": 21,
"download": 9,
"domParsing": 65,
"domComplete": -107,
"loadEvent": 0,
"total": 0,
"protocol": "h2",
"transferSize": 3475,
"encodedBodySize": 3175,
"decodedBodySize": 10829
},
"timerPrecision": null,
"mathFingerprint": {
"E": 2.718281828459045,
"LN2": 0.6931471805599453,
"LN10": 2.302585092994046,
"LOG2E": 1.4426950408889634,
"LOG10E": 0.4342944819032518,
"PI": 3.141592653589793,
"SQRT2": 1.4142135623730951,
"SQRT1_2": 0.7071067811865476,
"acos": 1.0471975511965979,
"acosh": 1.3169578969248166,
"asin": 0.5235987755982989,
"atan": 0.7853981633974483,
"atanh": 0.5493061443340548,
"cbrt": 1.2599210498948732,
"cosh": 1.5430806348152437,
"expm1": 1.718281828459045,
"log1p": 0.4054651081081644,
"sinh": 1.1752011936438014,
"tanh": 0.7615941559557649
}
},
"bot": {
"webdriver": false,
"webdriverType": "normal",
"headlessChrome": false,
"automationKeys": [],
"automationDetected": false,
"chromeRuntime": true,
"pluginCount": 5,
"pluginInconsistency": false,
"languageInconsistency": false,
"permissionsApi": true,
"screenDimensions": "1470x956",
"suspiciousDimensions": false,
"maxTouchPoints": 0,
"touchEvent": false,
"touchInconsistency": false,
"notificationPermission": "default",
"userActivation": {
"hasBeenActive": false,
"isActive": false
},
"navigationTiming": {
"type": "navigate",
"redirectCount": 0,
"domComplete": 0,
"loadEventEnd": 0,
"domInteractive": 107
},
"stackDepthTest": 101
},
"storage": {
"localStorage": true,
"localStorageKeys": 3,
"sessionStorage": true,
"sessionStorageKeys": 0,
"cookiesEnabled": true,
"cookiesWritable": true,
"cookieCount": 1,
"indexedDB": true,
"cacheStorage": true,
"serviceWorker": true,
"storageManager": true,
"fileSystemAccess": true,
"sharedArrayBuffer": false,
"sharedWorker": true,
"openDatabase": false,
"broadcastChannel": true,
"secureContext": true
},
"fonts": {
"detected": [
"Arial",
"Arial Black",
"Arial Narrow",
"Comic Sans MS",
"Courier New",
"Georgia",
"Impact",
"Microsoft Sans Serif",
"Tahoma",
"Times New Roman",
"Trebuchet MS",
"Verdana",
"Webdings",
"Wingdings",
"American Typewriter",
"Andale Mono",
"Apple Chancery",
"Apple Color Emoji",
"Apple SD Gothic Neo",
"Avenir",
"Avenir Next",
"Baskerville",
"Big Caslon",
"Brush Script MT",
"Chalkboard",
"Chalkboard SE",
"Chalkduster",
"Cochin",
"Copperplate",
"Courier",
"Didot",
"Futura",
"Geneva",
"Gill Sans",
"Helvetica",
"Helvetica Neue",
"Herculanum",
"Hoefler Text",
"Iowan Old Style",
"Lucida Grande",
"Luminari",
"Marker Felt",
"Menlo",
"Monaco",
"Noteworthy",
"Optima",
"Palatino",
"Papyrus",
"Phosphate",
"Rockwell",
"Savoye LET",
"SignPainter",
"Skia",
"Snell Roundhand",
"STIXGeneral",
"Superclarendon",
"Symbol",
"System Font",
"Zapfino",
"Hiragino Sans",
"Hiragino Kaku Gothic Pro",
"Hiragino Mincho Pro",
"PT Sans"
],
"count": 63,
"tested": 117,
"hash": "B8498456",
"fontsApiReady": true
},
"speech": {
"voices": [
{
"name": "Samantha",
"lang": "en-US",
"localService": true,
"default": true,
"voiceURI": "Samantha"
},
{
"name": "Albert",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Albert"
},
{
"name": "Alice",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Alice"
},
{
"name": "Alva",
"lang": "sv-SE",
"localService": true,
"default": false,
"voiceURI": "Alva"
},
{
"name": "Amélie",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Amélie"
},
{
"name": "Amira",
"lang": "ms-MY",
"localService": true,
"default": false,
"voiceURI": "Amira"
},
{
"name": "Anna",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Anna"
},
{
"name": "Bad News",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bad News"
},
{
"name": "Bahh",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bahh"
},
{
"name": "Bells",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bells"
},
{
"name": "Boing",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Boing"
},
{
"name": "Bubbles",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Bubbles"
},
{
"name": "Carmit",
"lang": "he-IL",
"localService": true,
"default": false,
"voiceURI": "Carmit"
},
{
"name": "Cellos",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Cellos"
},
{
"name": "Damayanti",
"lang": "id-ID",
"localService": true,
"default": false,
"voiceURI": "Damayanti"
},
{
"name": "Daniel",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Daniel"
},
{
"name": "Daria",
"lang": "bg-BG",
"localService": true,
"default": false,
"voiceURI": "Daria"
},
{
"name": "Eddy (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Eddy (English (United States))"
},
{
"name": "Eddy (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Eddy (English (United Kingdom))"
},
{
"name": "Eddy (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Eddy (Chinese (China mainland))"
},
{
"name": "Eddy (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Eddy (Chinese (Taiwan))"
},
{
"name": "Eddy (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Eddy (German (Germany))"
},
{
"name": "Eddy (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Eddy (Spanish (Spain))"
},
{
"name": "Eddy (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Eddy (Spanish (Mexico))"
},
{
"name": "Eddy (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Eddy (Finnish (Finland))"
},
{
"name": "Eddy (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Eddy (French (Canada))"
},
{
"name": "Eddy (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Eddy (French (France))"
},
{
"name": "Eddy (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Eddy (Italian (Italy))"
},
{
"name": "Eddy (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Eddy (Japanese (Japan))"
},
{
"name": "Eddy (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Eddy (Korean (South Korea))"
},
{
"name": "Eddy (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Eddy (Portuguese (Brazil))"
},
{
"name": "Ellen",
"lang": "nl-BE",
"localService": true,
"default": false,
"voiceURI": "Ellen"
},
{
"name": "Flo (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Flo (English (United States))"
},
{
"name": "Flo (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Flo (English (United Kingdom))"
},
{
"name": "Flo (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Flo (Chinese (China mainland))"
},
{
"name": "Flo (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Flo (Chinese (Taiwan))"
},
{
"name": "Flo (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Flo (German (Germany))"
},
{
"name": "Flo (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Flo (Spanish (Spain))"
},
{
"name": "Flo (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Flo (Spanish (Mexico))"
},
{
"name": "Flo (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Flo (Finnish (Finland))"
},
{
"name": "Flo (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Flo (French (Canada))"
},
{
"name": "Flo (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Flo (French (France))"
},
{
"name": "Flo (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Flo (Italian (Italy))"
},
{
"name": "Flo (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Flo (Japanese (Japan))"
},
{
"name": "Flo (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Flo (Korean (South Korea))"
},
{
"name": "Flo (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Flo (Portuguese (Brazil))"
},
{
"name": "Fred",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Fred"
},
{
"name": "Geeta",
"lang": "te-IN",
"localService": true,
"default": false,
"voiceURI": "Geeta"
},
{
"name": "Good News",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Good News"
},
{
"name": "Grandma (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Grandma (English (United States))"
},
{
"name": "Grandma (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Grandma (English (United Kingdom))"
},
{
"name": "Grandma (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Grandma (Chinese (China mainland))"
},
{
"name": "Grandma (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Grandma (Chinese (Taiwan))"
},
{
"name": "Grandma (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Grandma (German (Germany))"
},
{
"name": "Grandma (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Grandma (Spanish (Spain))"
},
{
"name": "Grandma (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Grandma (Spanish (Mexico))"
},
{
"name": "Grandma (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Grandma (Finnish (Finland))"
},
{
"name": "Grandma (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Grandma (French (Canada))"
},
{
"name": "Grandma (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Grandma (French (France))"
},
{
"name": "Grandma (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Grandma (Italian (Italy))"
},
{
"name": "Grandma (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Grandma (Japanese (Japan))"
},
{
"name": "Grandma (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Grandma (Korean (South Korea))"
},
{
"name": "Grandma (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Grandma (Portuguese (Brazil))"
},
{
"name": "Grandpa (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Grandpa (English (United States))"
},
{
"name": "Grandpa (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Grandpa (English (United Kingdom))"
},
{
"name": "Grandpa (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Chinese (China mainland))"
},
{
"name": "Grandpa (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Chinese (Taiwan))"
},
{
"name": "Grandpa (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Grandpa (German (Germany))"
},
{
"name": "Grandpa (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Spanish (Spain))"
},
{
"name": "Grandpa (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Spanish (Mexico))"
},
{
"name": "Grandpa (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Finnish (Finland))"
},
{
"name": "Grandpa (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Grandpa (French (Canada))"
},
{
"name": "Grandpa (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (French (France))"
},
{
"name": "Grandpa (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Italian (Italy))"
},
{
"name": "Grandpa (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Japanese (Japan))"
},
{
"name": "Grandpa (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Korean (South Korea))"
},
{
"name": "Grandpa (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Grandpa (Portuguese (Brazil))"
},
{
"name": "Ioana",
"lang": "ro-RO",
"localService": true,
"default": false,
"voiceURI": "Ioana"
},
{
"name": "Jacques",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Jacques"
},
{
"name": "Jester",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Jester"
},
{
"name": "Joana",
"lang": "pt-PT",
"localService": true,
"default": false,
"voiceURI": "Joana"
},
{
"name": "Junior",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Junior"
},
{
"name": "Kanya",
"lang": "th-TH",
"localService": true,
"default": false,
"voiceURI": "Kanya"
},
{
"name": "Karen",
"lang": "en-AU",
"localService": true,
"default": false,
"voiceURI": "Karen"
},
{
"name": "Kathy",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Kathy"
},
{
"name": "Kyoko",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Kyoko"
},
{
"name": "Lana",
"lang": "hr-HR",
"localService": true,
"default": false,
"voiceURI": "Lana"
},
{
"name": "Laura",
"lang": "sk-SK",
"localService": true,
"default": false,
"voiceURI": "Laura"
},
{
"name": "Lekha",
"lang": "hi-IN",
"localService": true,
"default": false,
"voiceURI": "Lekha"
},
{
"name": "Lesya",
"lang": "uk-UA",
"localService": true,
"default": false,
"voiceURI": "Lesya"
},
{
"name": "Linh",
"lang": "vi-VN",
"localService": true,
"default": false,
"voiceURI": "Linh"
},
{
"name": "Luciana",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Luciana"
},
{
"name": "Majed",
"lang": "ar-001",
"localService": true,
"default": false,
"voiceURI": "Majed"
},
{
"name": "Meijia",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Meijia"
},
{
"name": "Melina",
"lang": "el-GR",
"localService": true,
"default": false,
"voiceURI": "Melina"
},
{
"name": "Milena",
"lang": "ru-RU",
"localService": true,
"default": false,
"voiceURI": "Milena"
},
{
"name": "Moira",
"lang": "en-IE",
"localService": true,
"default": false,
"voiceURI": "Moira"
},
{
"name": "Montse",
"lang": "ca-ES",
"localService": true,
"default": false,
"voiceURI": "Montse"
},
{
"name": "Mónica",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Mónica"
},
{
"name": "Nora",
"lang": "nb-NO",
"localService": true,
"default": false,
"voiceURI": "Nora"
},
{
"name": "Organ",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Organ"
},
{
"name": "Paulina",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Paulina"
},
{
"name": "Piya",
"lang": "bn-IN",
"localService": true,
"default": false,
"voiceURI": "Piya"
},
{
"name": "Ralph",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Ralph"
},
{
"name": "Reed (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Reed (English (United States))"
},
{
"name": "Reed (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Reed (English (United Kingdom))"
},
{
"name": "Reed (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Reed (Chinese (China mainland))"
},
{
"name": "Reed (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Reed (Chinese (Taiwan))"
},
{
"name": "Reed (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Reed (German (Germany))"
},
{
"name": "Reed (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Reed (Spanish (Spain))"
},
{
"name": "Reed (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Reed (Spanish (Mexico))"
},
{
"name": "Reed (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Reed (Finnish (Finland))"
},
{
"name": "Reed (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Reed (French (Canada))"
},
{
"name": "Reed (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Reed (Italian (Italy))"
},
{
"name": "Reed (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Reed (Japanese (Japan))"
},
{
"name": "Reed (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Reed (Korean (South Korea))"
},
{
"name": "Reed (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Reed (Portuguese (Brazil))"
},
{
"name": "Rishi",
"lang": "en-IN",
"localService": true,
"default": false,
"voiceURI": "Rishi"
},
{
"name": "Rocko (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Rocko (English (United States))"
},
{
"name": "Rocko (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Rocko (English (United Kingdom))"
},
{
"name": "Rocko (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Rocko (Chinese (China mainland))"
},
{
"name": "Rocko (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Rocko (Chinese (Taiwan))"
},
{
"name": "Rocko (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Rocko (German (Germany))"
},
{
"name": "Rocko (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Rocko (Spanish (Spain))"
},
{
"name": "Rocko (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Rocko (Spanish (Mexico))"
},
{
"name": "Rocko (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Rocko (Finnish (Finland))"
},
{
"name": "Rocko (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Rocko (French (Canada))"
},
{
"name": "Rocko (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Rocko (French (France))"
},
{
"name": "Rocko (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Rocko (Italian (Italy))"
},
{
"name": "Rocko (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Rocko (Japanese (Japan))"
},
{
"name": "Rocko (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Rocko (Korean (South Korea))"
},
{
"name": "Rocko (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Rocko (Portuguese (Brazil))"
},
{
"name": "Sandy (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Sandy (English (United States))"
},
{
"name": "Sandy (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Sandy (English (United Kingdom))"
},
{
"name": "Sandy (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Sandy (Chinese (China mainland))"
},
{
"name": "Sandy (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Sandy (Chinese (Taiwan))"
},
{
"name": "Sandy (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Sandy (German (Germany))"
},
{
"name": "Sandy (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Sandy (Spanish (Spain))"
},
{
"name": "Sandy (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Sandy (Spanish (Mexico))"
},
{
"name": "Sandy (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Sandy (Finnish (Finland))"
},
{
"name": "Sandy (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Sandy (French (Canada))"
},
{
"name": "Sandy (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Sandy (French (France))"
},
{
"name": "Sandy (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Sandy (Italian (Italy))"
},
{
"name": "Sandy (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Sandy (Japanese (Japan))"
},
{
"name": "Sandy (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Sandy (Korean (South Korea))"
},
{
"name": "Sandy (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Sandy (Portuguese (Brazil))"
},
{
"name": "Sara",
"lang": "da-DK",
"localService": true,
"default": false,
"voiceURI": "Sara"
},
{
"name": "Satu",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Satu"
},
{
"name": "Shelley (English (United States))",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Shelley (English (United States))"
},
{
"name": "Shelley (English (United Kingdom))",
"lang": "en-GB",
"localService": true,
"default": false,
"voiceURI": "Shelley (English (United Kingdom))"
},
{
"name": "Shelley (Chinese (China mainland))",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Shelley (Chinese (China mainland))"
},
{
"name": "Shelley (Chinese (Taiwan))",
"lang": "zh-TW",
"localService": true,
"default": false,
"voiceURI": "Shelley (Chinese (Taiwan))"
},
{
"name": "Shelley (German (Germany))",
"lang": "de-DE",
"localService": true,
"default": false,
"voiceURI": "Shelley (German (Germany))"
},
{
"name": "Shelley (Spanish (Spain))",
"lang": "es-ES",
"localService": true,
"default": false,
"voiceURI": "Shelley (Spanish (Spain))"
},
{
"name": "Shelley (Spanish (Mexico))",
"lang": "es-MX",
"localService": true,
"default": false,
"voiceURI": "Shelley (Spanish (Mexico))"
},
{
"name": "Shelley (Finnish (Finland))",
"lang": "fi-FI",
"localService": true,
"default": false,
"voiceURI": "Shelley (Finnish (Finland))"
},
{
"name": "Shelley (French (Canada))",
"lang": "fr-CA",
"localService": true,
"default": false,
"voiceURI": "Shelley (French (Canada))"
},
{
"name": "Shelley (French (France))",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Shelley (French (France))"
},
{
"name": "Shelley (Italian (Italy))",
"lang": "it-IT",
"localService": true,
"default": false,
"voiceURI": "Shelley (Italian (Italy))"
},
{
"name": "Shelley (Japanese (Japan))",
"lang": "ja-JP",
"localService": true,
"default": false,
"voiceURI": "Shelley (Japanese (Japan))"
},
{
"name": "Shelley (Korean (South Korea))",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Shelley (Korean (South Korea))"
},
{
"name": "Shelley (Portuguese (Brazil))",
"lang": "pt-BR",
"localService": true,
"default": false,
"voiceURI": "Shelley (Portuguese (Brazil))"
},
{
"name": "Sinji",
"lang": "yue-HK",
"localService": true,
"default": false,
"voiceURI": "Sinji"
},
{
"name": "Soumya",
"lang": "kn-IN",
"localService": true,
"default": false,
"voiceURI": "Soumya"
},
{
"name": "Superstar",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Superstar"
},
{
"name": "Tessa",
"lang": "en-ZA",
"localService": true,
"default": false,
"voiceURI": "Tessa"
},
{
"name": "Thomas",
"lang": "fr-FR",
"localService": true,
"default": false,
"voiceURI": "Thomas"
},
{
"name": "Tina",
"lang": "sl-SI",
"localService": true,
"default": false,
"voiceURI": "Tina"
},
{
"name": "Tingting",
"lang": "zh-CN",
"localService": true,
"default": false,
"voiceURI": "Tingting"
},
{
"name": "Trinoids",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Trinoids"
},
{
"name": "Tünde",
"lang": "hu-HU",
"localService": true,
"default": false,
"voiceURI": "Tünde"
},
{
"name": "Vani",
"lang": "ta-IN",
"localService": true,
"default": false,
"voiceURI": "Vani"
},
{
"name": "Whisper",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Whisper"
},
{
"name": "Wobble",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Wobble"
},
{
"name": "Xander",
"lang": "nl-NL",
"localService": true,
"default": false,
"voiceURI": "Xander"
},
{
"name": "Yelda",
"lang": "tr-TR",
"localService": true,
"default": false,
"voiceURI": "Yelda"
},
{
"name": "Yuna",
"lang": "ko-KR",
"localService": true,
"default": false,
"voiceURI": "Yuna"
},
{
"name": "Zarvox",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Zarvox"
},
{
"name": "Zosia",
"lang": "pl-PL",
"localService": true,
"default": false,
"voiceURI": "Zosia"
},
{
"name": "Zuzana",
"lang": "cs-CZ",
"localService": true,
"default": false,
"voiceURI": "Zuzana"
},
{
"name": "Google Deutsch",
"lang": "de-DE",
"localService": false,
"default": false,
"voiceURI": "Google Deutsch"
},
{
"name": "Google US English",
"lang": "en-US",
"localService": false,
"default": false,
"voiceURI": "Google US English"
},
{
"name": "Google UK English Female",
"lang": "en-GB",
"localService": false,
"default": false,
"voiceURI": "Google UK English Female"
},
{
"name": "Google UK English Male",
"lang": "en-GB",
"localService": false,
"default": false,
"voiceURI": "Google UK English Male"
},
{
"name": "Google español",
"lang": "es-ES",
"localService": false,
"default": false,
"voiceURI": "Google español"
},
{
"name": "Google español de Estados Unidos",
"lang": "es-US",
"localService": false,
"default": false,
"voiceURI": "Google español de Estados Unidos"
},
{
"name": "Google français",
"lang": "fr-FR",
"localService": false,
"default": false,
"voiceURI": "Google français"
},
{
"name": "Google हिन्दी",
"lang": "hi-IN",
"localService": false,
"default": false,
"voiceURI": "Google हिन्दी"
},
{
"name": "Google Bahasa Indonesia",
"lang": "id-ID",
"localService": false,
"default": false,
"voiceURI": "Google Bahasa Indonesia"
},
{
"name": "Google italiano",
"lang": "it-IT",
"localService": false,
"default": false,
"voiceURI": "Google italiano"
},
{
"name": "Google 日本語",
"lang": "ja-JP",
"localService": false,
"default": false,
"voiceURI": "Google 日本語"
},
{
"name": "Google 한국의",
"lang": "ko-KR",
"localService": false,
"default": false,
"voiceURI": "Google 한국의"
},
{
"name": "Google Nederlands",
"lang": "nl-NL",
"localService": false,
"default": false,
"voiceURI": "Google Nederlands"
},
{
"name": "Google polski",
"lang": "pl-PL",
"localService": false,
"default": false,
"voiceURI": "Google polski"
},
{
"name": "Google português do Brasil",
"lang": "pt-BR",
"localService": false,
"default": false,
"voiceURI": "Google português do Brasil"
},
{
"name": "Google русский",
"lang": "ru-RU",
"localService": false,
"default": false,
"voiceURI": "Google русский"
},
{
"name": "Google 普通话(中国大陆)",
"lang": "zh-CN",
"localService": false,
"default": false,
"voiceURI": "Google 普通话(中国大陆)"
},
{
"name": "Google 粤語(香港)",
"lang": "zh-HK",
"localService": false,
"default": false,
"voiceURI": "Google 粤語(香港)"
},
{
"name": "Google 國語(臺灣)",
"lang": "zh-TW",
"localService": false,
"default": false,
"voiceURI": "Google 國語(臺灣)"
}
],
"voiceCount": 199,
"localVoices": 180,
"remoteVoices": 19,
"languages": [
"en-US",
"it-IT",
"sv-SE",
"fr-CA",
"ms-MY",
"de-DE",
"he-IL",
"id-ID",
"en-GB",
"bg-BG",
"zh-CN",
"zh-TW",
"es-ES",
"es-MX",
"fi-FI",
"fr-FR",
"ja-JP",
"ko-KR",
"pt-BR",
"nl-BE",
"te-IN",
"ro-RO",
"pt-PT",
"th-TH",
"en-AU",
"hr-HR",
"sk-SK",
"hi-IN",
"uk-UA",
"vi-VN",
"ar-001",
"el-GR",
"ru-RU",
"en-IE",
"ca-ES",
"nb-NO",
"bn-IN",
"en-IN",
"da-DK",
"yue-HK",
"kn-IN",
"en-ZA",
"sl-SI",
"hu-HU",
"ta-IN",
"nl-NL",
"tr-TR",
"pl-PL",
"cs-CZ",
"es-US",
"zh-HK"
]
},
"mediaDevices": {
"devices": [
{
"deviceId": "",
"kind": "audioinput",
"label": "",
"groupId": ""
},
{
"deviceId": "",
"kind": "videoinput",
"label": "",
"groupId": ""
},
{
"deviceId": "",
"kind": "audiooutput",
"label": "",
"groupId": ""
}
],
"deviceCount": 3,
"audioinput": 1,
"audiooutput": 1,
"videoinput": 1,
"supportedConstraints": {
"aspectRatio": true,
"autoGainControl": true,
"brightness": true,
"channelCount": true,
"colorTemperature": true,
"contrast": true,
"deviceId": true,
"displaySurface": true,
"echoCancellation": true,
"exposureCompensation": true,
"exposureMode": true,
"exposureTime": true,
"facingMode": true,
"focusDistance": true,
"focusMode": true,
"frameRate": true,
"groupId": true,
"height": true,
"iso": true,
"latency": true,
"noiseSuppression": true,
"pan": true,
"pointsOfInterest": true,
"resizeMode": true,
"restrictOwnAudio": true,
"sampleRate": true,
"sampleSize": true,
"saturation": true,
"sharpness": true,
"suppressLocalAudioPlayback": true,
"tilt": true,
"torch": true,
"voiceIsolation": true,
"whiteBalanceMode": true,
"width": true,
"zoom": true
}
},
"audio": {
"sampleRate": 48000,
"state": "suspended",
"baseLatency": 0.005333333333333333,
"outputLatency": 0,
"maxChannelCount": 2,
"numberOfInputs": 1,
"numberOfOutputs": 0,
"channelCount": 2,
"channelCountMode": "explicit",
"channelInterpretation": "speakers",
"audioHash": "124.04347624466754",
"sampleValues": [
-0.10808053612709045,
-0.3909117877483368,
-0.005692681297659874,
0.3892313539981842,
0.1189708411693573,
-0.3545846939086914,
-0.22215834259986877,
0.28990939259529114,
0.30651888251304626,
-0.20068734884262085
]
},
"webgpu": {
"supported": true,
"features": [
"depth32float-stencil8",
"rg11b10ufloat-renderable",
"texture-formats-tier1",
"bgra8unorm-storage",
"texture-compression-bc",
"dual-source-blending",
"core-features-and-limits",
"float32-filterable",
"indirect-first-instance",
"texture-compression-astc-sliced-3d",
"float32-blendable",
"texture-compression-astc",
"texture-compression-etc2",
"depth-clip-control",
"texture-compression-bc-sliced-3d",
"clip-distances",
"shader-f16",
"timestamp-query",
"texture-formats-tier2",
"primitive-index",
"texture-component-swizzle",
"subgroups"
],
"info": {
"vendor": "apple",
"architecture": "metal-3",
"device": "",
"description": ""
}
},
"webgl": {
"version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
"shadingLanguageVersion": "WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)",
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"unmaskedVendor": "Google Inc. (Apple)",
"unmaskedRenderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4, Unspecified Version)",
"extensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_pvrtc",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_render_shared_exponent",
"WEBGL_stencil_texturing"
],
"extensionCount": 36,
"maxTextureSize": 16384,
"maxViewportDims": [
16384,
16384
],
"maxRenderbufferSize": 16384,
"maxCombinedTextureImageUnits": 32,
"maxCubeMapTextureSize": 16384,
"maxFragmentUniformVectors": 1024,
"maxTextureImageUnits": 16,
"maxVertexAttribs": 16,
"maxVertexTextureImageUnits": 16,
"maxVertexUniformVectors": 1024,
"maxVaryingVectors": 30,
"aliasedLineWidthRange": [
1,
1
],
"aliasedPointSizeRange": [
1,
511
],
"maxAnisotropy": 16,
"precisionFormats": {
"vertex_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
}
}
},
"canvas": {
"consistent": true,
"hash": "743CC003",
"dataUrlLength": 25858,
"dataUrlPrefix": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwA",
"webpSupport": true,
"jpegHighLength": 26851,
"jpegLowLength": 2347
},
"screen": {
"width": 1470,
"height": 956,
"availWidth": 1470,
"availHeight": 861,
"colorDepth": 30,
"pixelDepth": 30,
"innerWidth": 1470,
"innerHeight": 738,
"outerWidth": 1470,
"outerHeight": 859,
"screenX": 0,
"screenY": 33,
"pageXOffset": 0,
"pageYOffset": 0,
"devicePixelRatio": 2,
"orientation": {
"type": "landscape-primary",
"angle": 0
},
"mediaQueries": {
"prefers-color-scheme": "dark",
"prefers-reduced-motion": "no-preference",
"prefers-contrast": "no-preference",
"forced-colors": "none",
"prefers-reduced-transparency": "no-preference",
"color-gamut": "srgb",
"pointer": "fine",
"hover": "hover",
"any-pointer": "fine",
"any-hover": "hover",
"display-mode": "browser",
"dynamic-range": "standard",
"update": "fast",
"overflow-block": "scroll",
"overflow-inline": "scroll",
"min-resolution": "192dpi",
"min-color": "8",
"monochrome": false
},
"visualViewport": {
"width": 1459,
"height": 738,
"offsetLeft": 0,
"offsetTop": 0,
"pageLeft": 0,
"pageTop": 0,
"scale": 1
}
},
"navigator": {
"secureContext": true,
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
"platform": "MacIntel",
"vendor": "Google Inc.",
"vendorSub": "",
"product": "Gecko",
"productSub": "20030107",
"appVersion": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
"appName": "Netscape",
"appCodeName": "Mozilla",
"language": "en-US",
"languages": [
"en-US",
"en",
"id"
],
"cookieEnabled": true,
"doNotTrack": null,
"maxTouchPoints": 0,
"hardwareConcurrency": 10,
"deviceMemory": 8,
"pdfViewerEnabled": true,
"webdriver": false,
"connection": {
"effectiveType": "4g",
"downlink": 10,
"rtt": 50,
"saveData": false
},
"plugins": [
{
"name": "PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chrome PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chromium PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Microsoft Edge PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "WebKit built-in PDF",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
}
],
"pluginCount": 5,
"mimeTypes": [
"application/pdf",
"text/pdf"
],
"userAgentData": {
"brands": [
{
"brand": "Chromium",
"version": "146"
},
{
"brand": "Not-A.Brand",
"version": "24"
},
{
"brand": "Google Chrome",
"version": "146"
}
],
"mobile": false,
"platform": "macOS"
},
"userAgentDataHighEntropy": {
"architecture": "arm",
"bitness": "64",
"brands": [
{
"brand": "Chromium",
"version": "146"
},
{
"brand": "Not-A.Brand",
"version": "24"
},
{
"brand": "Google Chrome",
"version": "146"
}
],
"fullVersionList": [
{
"brand": "Chromium",
"version": "146.0.7680.165"
},
{
"brand": "Not-A.Brand",
"version": "24.0.0.0"
},
{
"brand": "Google Chrome",
"version": "146.0.7680.165"
}
],
"mobile": false,
"model": "",
"platform": "macOS",
"platformVersion": "26.3.1",
"wow64": false
},
"permissions": {
"geolocation": "prompt",
"notifications": "prompt",
"camera": "prompt",
"microphone": "prompt",
"accelerometer": "granted",
"gyroscope": "granted",
"magnetometer": "granted",
"clipboard-read": "prompt",
"clipboard-write": "granted"
},
"storageEstimate": {
"quota": 10737418240,
"usage": 0
},
"bluetooth": true,
"usb": true,
"serial": true,
"hid": true,
"xr": true,
"gpu": true,
"ink": true,
"scheduling": true,
"windowControlsOverlay": true,
"virtualKeyboard": true
},
"__meta": {
"capturedAt": "2026-05-04T13:52:23.353Z",
"elapsedMs": 0,
"href": "http://wrkx.app/api/visitors/OtCiCTddayiF0se5kzF0",
"readyState": "complete"
}
}
{
"version": "1",
"profile": "mac-chrome-stable",
"paths": [
{
"path": "audio.**",
"comment": "Audio fingerprint bytes (sampleValues, audioHash) require precomputed per-(profile, sample-rate) byte tables — task 0071. docs/limits.md \"Audio fingerprinting (OfflineAudioContext) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "canvas.**",
"comment": "Canvas hash + dataUrl spoofing requires precomputed hash maps for the standard probe payloads + per-pixel noise injection — task 0071. docs/limits.md \"Canvas fingerprinting (HTMLCanvasElement.toDataURL) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "speech.**",
"comment": "speechSynthesis.getVoices() returns the host's installed system voices on real Chrome (typically 200+ entries on macOS, 20+ on Linux/Win). Chromium-for-Testing ships with no voice tables, so mochi spoofs voices=[]. Restoring real-device voice lists is a phase 0.7 deliverable (precomputed voice tables per-OS) tracked alongside audio/canvas. PLAN.md §13.6."
},
{
"path": "navigator.userAgentData.brands",
"comment": "Brand-list length varies (Linux Chrome emits 2 brands, macOS/Win emit 3). Same root cause as the per-entry comment below."
},
{
"path": "navigator.userAgentData.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentData.brands[*].**",
"comment": "Sec-CH-UA brand-list ordering and GREASE label vary between Chrome/Edge majors and even between Chrome point releases (e.g. 146 emits `Not-A.Brand;v=24` while 147 emits `Not.A/Brand;v=8`). mochi pins a single GREASE label per major (consistency/rules/lookups/browser.ts) for determinism — see tasks/0051-consistency-stack-fixes.md (Group B). Per-major GREASE shuffle is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.brands",
"comment": "Same as userAgentData.brands."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*].**",
"comment": "Same as navigator.userAgentData.brands — pinned for determinism."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList",
"comment": "Same as userAgentData.brands — length varies by OS."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*].**",
"comment": "Patch-level Chrome version (e.g. 146.0.7680.165) varies with the local Chrome install vs the BROWSER_TIP_FULL_VERSION table. mochi uses the table tip when the major matches; harvested values may differ by a few patch numbers. Refresh the table per Chrome major."
},
{
"path": "navigator.userAgent",
"comment": "Full UA string includes the patch version (see fullVersionList comment). Spoofed value matches BROWSER_TIP_FULL_VERSION; harvested value reflects the user's exact Chrome point release."
},
{
"path": "navigator.appVersion",
"comment": "Same patch-version drift as navigator.userAgent."
},
{
"path": "screen.mediaQueries.**",
"comment": "matchMedia() result strings depend on the host's actual OS/display state (min-resolution from real DPR, prefers-color-scheme from Dark Mode, etc.). mochi spoofs a deterministic baseline; the harvested values reflect the user's session at capture time. Per-profile media-query lock is phase 0.7."
},
{
"path": "screen.pageXOffset",
"comment": "Window-frame chrome. Sentinelized by normalize.ts in most paths but the raw harvested value may differ from the harness window's idle offset."
},
{
"path": "screen.pageYOffset",
"comment": "Window-frame chrome — same as pageXOffset."
},
{
"path": "timing.dateString",
"comment": "Date.toString() includes the host's wall-clock time, which differs every run. The probe normalises to a fixed 2024-01-01 anchor; harvested values reflect the user's actual capture time."
},
{
"path": "timing.performanceTiming",
"comment": "performance.timing.* fields vary per session (load durations, redirect counts). normalize.ts sentinelizes the bot.navigationTiming sub-block; the timing.performanceTiming block is harvester-specific and not currently sentinelized."
},
{
"path": "timing.supportedNumberingSystems[*]",
"comment": "Intl.supportedValuesOf('numberingSystem') grows between V8 majors (e.g. Chrome 149 added 'tols'). The harvested list reflects the user's V8; the harness uses Chromium-for-Testing's V8. List drift is expected as BROWSER_TIP_FULL_VERSION advances."
},
{
"path": "webgl.aliasedLineWidthRange[*]",
"comment": "WebGL aliasedLineWidthRange/PointSizeRange/maxViewportDims values vary with the GPU driver version on the host. mochi locks GPU vendor/renderer via the matrix; per-driver-version locking is phase 0.7."
},
{
"path": "webgl.aliasedPointSizeRange[*]",
"comment": "See webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxColorAttachments",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxViewportDims[*]",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgpu.features",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.features[*]",
"comment": "WebGPU feature list grows between Chromium majors. The harvested list reflects the user's Chrome version; the harness uses Chromium-for-Testing."
},
{
"path": "webgpu.info",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.limits.**",
"comment": "WebGPU adapter limits depend on the GPU driver. Per-driver locking is phase 0.7 alongside WebGL."
},
{
"path": "bot.chromeRuntime",
"comment": "Real Chrome exposes window.chrome.runtime; Chromium-for-Testing does not. Restoring chrome.runtime polyfill is task 0140 (stealth conformance) — tracked separately."
},
{
"path": "storage.cookieCount",
"comment": "Cookie state varies per session — the harvester's user had cookies, the harness session is fresh."
},
{
"path": "storage.cookiesWritable",
"comment": "Depends on the document context (file:// fixture vs http:// origin). Harvester captured at http(s) origin; harness uses file:// fixture."
},
{
"path": "storage.localStorageKeys",
"comment": "localStorage state varies per session — fresh harness session has no keys."
},
{
"path": "mouseEvent",
"comment": "The probe-page emits a mouseEvent block when the relational-lock scaffolding fires. Harvested snapshots predate this probe and so omit it; spoofed sessions emit it. Cosmetic — the lock-result block is the spoof's own diagnostic, not a fingerprint surface."
},
{
"path": "fonts.**",
"comment": "The font enumeration probe enumerates whatever the host has installed. Spoofing the per-profile font intersection is a phase 0.7 task (FontFace API stub + per-profile font allowlist). Running e.g. windows-chrome-stable on a Mac host will surface every macOS system font as material — that's a known gap, not a profile defect."
},
{
"path": "webgl.extensions",
"comment": "Whole array absent on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.extensions[*]",
"comment": "WebGL extension list depends on the host GPU + driver. mochi locks GPU vendor/renderer strings but does NOT enumerate-list-spoof extensions per-profile yet. Phase 0.7 deliverable. Cross-host validation surfaces the host's actual extension set."
},
{
"path": "webgl.precisionFormats",
"comment": "Block absent on no-WebGL hosts."
},
{
"path": "webgl.extensionCount",
"comment": "See webgl.extensions[*] — count varies with host extensions."
},
{
"path": "webgl.unmaskedVendor",
"comment": "Unmasked WebGL vendor/renderer requires GPU spoofing at the ANGLE layer (or a polyfilled WEBGL_debug_renderer_info getter). mochi's getter spoof is host-OS-aware; cross-host tests surface the underlying device."
},
{
"path": "webgl.unmaskedRenderer",
"comment": "See webgl.unmaskedVendor."
},
{
"path": "webgpu.info.**",
"comment": "WebGPU adapter info comes from the host driver. Cross-host validation shows the host's adapter; same root cause as webgl.unmaskedRenderer."
},
{
"path": "mediaDevices.devices[*]",
"comment": "Per-entry full-object mismatch when device-array length differs."
},
{
"path": "mediaDevices.devices[*].**",
"comment": "navigator.mediaDevices.enumerateDevices() returns whatever audio/video devices the host has. The harness fixture runs in a fresh permission state so labels are empty (matches baseline) but the device count + kind ratio depends on the host. Per-profile media-devices spoofing is phase 0.7."
},
{
"path": "mediaDevices.deviceCount",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audioinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audiooutput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.videoinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "navigator.connection.effectiveType",
"comment": "NetworkInformation.effectiveType reads from the host network stack. downlink/rtt are sentinelized by normalize.ts but effectiveType isn't."
},
{
"path": "timing.timezoneOffset",
"comment": "timezoneOffset depends on whether the captured profile's tz observes DST at the harness's wall-clock time vs at capture time. The IANA timezone is spoofed correctly; the offset is a derived value with seasonal drift."
},
{
"path": "bot.userActivation.**",
"comment": "navigator.userActivation.hasBeenActive flips to true when the harness drives mouse/keyboard events. The harvested snapshot was captured before any user gesture, so hasBeenActive=false. The spoof doesn't lie about this — it's a true reflection of the harness's interaction sequence."
},
{
"path": "navigator.deviceMemory",
"comment": "navigator.deviceMemory is spec-capped at 8 on real Chrome, but some configurations (older Chrome, non-Chromium derivatives) leak the real GiB count. mochi enforces the spec cap deterministically; the harvested value may be higher (16/32/64) and the spoof correctly clamps to 8."
},
{
"path": "navigator.bluetooth",
"comment": "navigator.bluetooth presence depends on the host's Web Bluetooth flag. Linux Chrome typically has it disabled by default; mochi exposes it. Per-profile API allowlist is phase 0.7."
},
{
"path": "storage.fileSystemAccess",
"comment": "FileSystemAccess API can be hardened off (Brave) or off-by-default (Linux Chrome). mochi exposes the API by default. Per-profile feature gating is phase 0.7."
},
{
"path": "storage.sessionStorageKeys",
"comment": "The probe page writes one sessionStorage key during its self-test; harvested baselines that ran before that probe instrumentation report 0. New captures will normalize to 1 once re-imported."
},
{
"path": "timing.timerPrecision",
"comment": "Brave coarsens performance.now() precision; harvested Brave snapshots report null. mochi does NOT coarsen — restoring Brave's precision-coarsen behavior is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.platformVersion",
"comment": "platformVersion is empty on Linux Chrome (X11 has no notion of OS marketing version). The spoof emits a synthesised value; on Linux imports we accept the empty-string baseline as the source of truth."
},
{
"path": "navigator.connection",
"comment": "Brave hardens NetworkInformation and returns an undefined connection block. mochi exposes the API. Per-profile NetworkInformation hardening is a phase 0.7 deliverable."
},
{
"path": "webgl.error",
"comment": "Some captured devices (headless Linux, lock-screened Windows) report no WebGL context. mochi always presents a WebGL surface. Per-profile no-WebGL mode is phase 0.7."
},
{
"path": "webgl.version",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.shadingLanguageVersion",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.vendor",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.renderer",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.aliasedLineWidthRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.aliasedPointSizeRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxAnisotropy",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxColorAttachments",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCombinedTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCubeMapTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxFragmentUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxRenderbufferSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVaryingVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexAttribs",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxViewportDims",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.precisionFormats.**",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "mediaDevices.devices",
"comment": "Device array length varies with the host's installed devices. Per-profile media-devices spoofing is phase 0.7."
}
]
}
{
"id": "mac-chrome-stable",
"version": "1.0.0",
"engine": "chromium",
"browser": {
"name": "chrome",
"channel": "stable",
"minVersion": "146",
"maxVersion": "146"
},
"os": {
"name": "macos",
"version": "26.3.1",
"arch": "arm64"
},
"device": {
"vendor": "apple",
"model": "Mac",
"cpuFamily": "apple-silicon-m4",
"cores": 10,
"memoryGB": 16
},
"display": {
"width": 1470,
"height": 956,
"dpr": 2,
"colorDepth": 30,
"pixelDepth": 30
},
"gpu": {
"vendor": "Apple",
"renderer": "ANGLE Metal Renderer: Apple M4",
"webglUnmaskedVendor": "Google Inc. (Apple)",
"webglUnmaskedRenderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4, Unspecified Version)",
"webglMaxTextureSize": 16384,
"webglMaxColorAttachments": 8,
"webglExtensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_pvrtc",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_render_shared_exponent",
"WEBGL_stencil_texturing"
]
},
"audio": {
"contextSampleRate": 48000,
"audioWorkletLatency": 0.005333333333333333,
"destinationMaxChannelCount": 2
},
"fonts": {
"family": "macos-system-pack",
"list": [
"American Typewriter",
"Andale Mono",
"Apple Chancery",
"Apple Color Emoji",
"Apple SD Gothic Neo",
"Arial",
"Arial Black",
"Arial Narrow",
"Avenir",
"Avenir Next",
"Baskerville",
"Big Caslon",
"Brush Script MT",
"Chalkboard",
"Chalkboard SE",
"Chalkduster",
"Cochin",
"Comic Sans MS",
"Copperplate",
"Courier",
"Courier New",
"Didot",
"Futura",
"Geneva",
"Georgia",
"Gill Sans",
"Helvetica",
"Helvetica Neue",
"Herculanum",
"Hiragino Kaku Gothic Pro",
"Hiragino Mincho Pro",
"Hiragino Sans",
"Hoefler Text",
"Impact",
"Iowan Old Style",
"Lucida Grande",
"Luminari",
"Marker Felt",
"Menlo",
"Microsoft Sans Serif",
"Monaco",
"Noteworthy",
"Optima",
"PT Sans",
"Palatino",
"Papyrus",
"Phosphate",
"Rockwell",
"STIXGeneral",
"Savoye LET",
"SignPainter",
"Skia",
"Snell Roundhand",
"Superclarendon",
"Symbol",
"System Font",
"Tahoma",
"Times New Roman",
"Trebuchet MS",
"Verdana",
"Webdings",
"Wingdings",
"Zapfino"
]
},
"timezone": "Asia/Jakarta",
"locale": "en-US",
"languages": [
"en-US",
"en",
"id"
],
"behavior": {
"hand": "right",
"tremor": 0.18,
"wpm": 60,
"scrollStyle": "smooth"
},
"wreqPreset": "chrome_146_macos",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
"uaCh": {
"sec-ch-ua": "\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"Google Chrome\";v=\"146\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-ch-ua-platform-version": "\"26.3.1\"",
"sec-ch-ua-arch": "\"arm\"",
"sec-ch-ua-bitness": "\"64\"",
"sec-ch-ua-model": "\"\"",
"sec-ch-ua-full-version": "\"146\"",
"sec-ch-ua-os": "\"macos\""
},
"entropyBudget": {
"fixed": [],
"perSeed": []
}
}
# PROVENANCE — mac-chrome-stable
Imported from the wrkx harvester corpus (`http://wrkx.app/api`) by `mochi profiles import`. PLAN.md §12.2 — every profile in `main` must carry verifiable provenance.
| field | value |
|---|---|
| profile id | `mac-chrome-stable` |
| upstream visitor id | `OtCiCTddayiF0se5kzF0` |
| upstream URL | `http://wrkx.app/api/visitors/OtCiCTddayiF0se5kzF0` |
| visitor egress ip (snapshot) | 182.253.251.96 |
| browser version | 146 |
| FingerprintJS suspectScore | 6 |
| captured at (UTC) | 2026-05-04T13:52:23.353Z |
| imported at (UTC) | 2026-05-08T20:50:33.447Z |
| importer | `mochi profiles import` (task 0260) |
## Multi-snapshot policy
When the visitor record contains multiple snapshots for a single category (re-visits over time), the importer keeps the most recent by `created_at`. This matches the spirit of capturing the device's *current* fingerprint rather than a stale earlier one.
## TLS preset
The harvester capture did not include a JA3/JA4 hash, so the wreqPreset is synthesised as `<browser>_<major>_<os>`. The wreq Rust crate's `resolve_preset()` matches by family (`chrome*` → Chrome) — exact-version fingerprint matching is a phase 0.7 deliverable. See `packages/net-rs/src/ffi/preset.rs`.
## Hand-corrections
None at import time. The harvester's `navigator` snapshot is captured by real Chrome (not headless), so the `--headless=new` artifacts that needed manual correction in `mac-m4-chrome-stable` (task 0070) are absent here.
{
"timing": {
"timezone": "America/Chicago",
"timezoneOffset": 300,
"locale": "en-US",
"dateString": "Mon Jan 01 2024 12:00:00 GMT-0600 (Central Standard Time)",
"localeString": "1/1/2024, 12:00:00 PM",
"localeDateString": "1/1/2024",
"numberFormat": {
"locale": "en-US",
"numberingSystem": "latn",
"style": "decimal",
"minimumIntegerDigits": 1,
"minimumFractionDigits": 0,
"maximumFractionDigits": 3,
"useGrouping": "auto",
"notation": "standard",
"signDisplay": "auto",
"roundingIncrement": 1,
"roundingMode": "halfExpand",
"roundingPriority": "auto",
"trailingZeroDisplay": "auto"
},
"dateTimeFormat": {
"locale": "en-US",
"calendar": "gregory",
"numberingSystem": "latn",
"timeZone": "America/Chicago",
"year": "numeric",
"month": "numeric",
"day": "numeric"
},
"supportedCalendars": [
"buddhist",
"chinese",
"coptic",
"dangi",
"ethioaa",
"ethiopic",
"gregory",
"hebrew",
"indian",
"islamic",
"islamic-civil",
"islamic-rgsa",
"islamic-tbla",
"islamic-umalqura",
"iso8601",
"japanese",
"persian",
"roc"
],
"supportedCurrencies": 159,
"supportedNumberingSystems": [
"adlm",
"ahom",
"arab",
"arabext",
"bali",
"beng",
"bhks",
"brah",
"cakm",
"cham",
"deva",
"diak",
"fullwide",
"gara",
"gong",
"gonm",
"gujr",
"gukh",
"guru",
"hanidec",
"hmng",
"hmnp",
"java",
"kali",
"kawi",
"khmr",
"knda",
"krai",
"lana",
"lanatham",
"laoo",
"latn",
"lepc",
"limb",
"mathbold",
"mathdbl",
"mathmono",
"mathsanb",
"mathsans",
"mlym",
"modi",
"mong",
"mroo",
"mtei",
"mymr",
"mymrepka",
"mymrpao",
"mymrshan",
"mymrtlng",
"nagm",
"newa",
"nkoo",
"olck",
"onao",
"orya",
"osma",
"outlined",
"rohg",
"saur",
"segment",
"shrd",
"sind",
"sinh",
"sora",
"sund",
"sunu",
"takr",
"talu",
"tamldec",
"telu",
"thai",
"tibt",
"tirh",
"tnsa",
"vaii",
"wara",
"wcho"
],
"supportedTimeZones": 418,
"supportedUnits": 45,
"performanceTiming": {
"dns": 1,
"tcp": 876,
"ttfb": 177,
"download": 3,
"domParsing": 455,
"domComplete": 76,
"loadEvent": 0,
"total": 1591,
"protocol": "h2",
"transferSize": 3475,
"encodedBodySize": 3175,
"decodedBodySize": 10829
},
"timerPrecision": null,
"mathFingerprint": {
"E": 2.718281828459045,
"LN2": 0.6931471805599453,
"LN10": 2.302585092994046,
"LOG2E": 1.4426950408889634,
"LOG10E": 0.4342944819032518,
"PI": 3.141592653589793,
"SQRT2": 1.4142135623730951,
"SQRT1_2": 0.7071067811865476,
"acos": 1.0471975511965979,
"acosh": 1.3169578969248166,
"asin": 0.5235987755982989,
"atan": 0.7853981633974483,
"atanh": 0.5493061443340548,
"cbrt": 1.2599210498948732,
"cosh": 1.5430806348152437,
"expm1": 1.718281828459045,
"log1p": 0.4054651081081644,
"sinh": 1.1752011936438014,
"tanh": 0.7615941559557649
}
},
"bot": {
"webdriver": false,
"webdriverType": "normal",
"headlessChrome": false,
"automationKeys": [],
"automationDetected": false,
"chromeRuntime": false,
"pluginCount": 5,
"pluginInconsistency": false,
"languageInconsistency": false,
"permissionsApi": true,
"screenDimensions": "1920x1080",
"suspiciousDimensions": false,
"maxTouchPoints": 0,
"touchEvent": false,
"touchInconsistency": false,
"notificationPermission": "default",
"userActivation": {
"hasBeenActive": true,
"isActive": true
},
"navigationTiming": {
"type": "navigate",
"redirectCount": 0,
"domComplete": 1591,
"loadEventEnd": 1591,
"domInteractive": 1515
},
"stackDepthTest": 101
},
"storage": {
"localStorage": true,
"localStorageKeys": 1,
"sessionStorage": true,
"sessionStorageKeys": 0,
"cookiesEnabled": true,
"cookiesWritable": true,
"cookieCount": 0,
"indexedDB": true,
"cacheStorage": true,
"serviceWorker": true,
"storageManager": true,
"fileSystemAccess": true,
"sharedArrayBuffer": false,
"sharedWorker": true,
"openDatabase": false,
"broadcastChannel": true,
"secureContext": true
},
"fonts": {
"detected": [
"Arial",
"Courier New",
"Times New Roman"
],
"count": 3,
"tested": 117,
"hash": "5ABFFA3B",
"fontsApiReady": true
},
"speech": {
"voices": [
{
"name": "Microsoft David - English (United States)",
"lang": "en-US",
"localService": true,
"default": true,
"voiceURI": "Microsoft David - English (United States)"
},
{
"name": "Microsoft Zira - English (United States)",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Microsoft Zira - English (United States)"
},
{
"name": "Microsoft Mark - English (United States)",
"lang": "en-US",
"localService": true,
"default": false,
"voiceURI": "Microsoft Mark - English (United States)"
},
{
"name": "Google US English",
"lang": "en-US",
"localService": false,
"default": false,
"voiceURI": "Google US English"
},
{
"name": "Google UK English Female",
"lang": "en-GB",
"localService": false,
"default": false,
"voiceURI": "Google UK English Female"
},
{
"name": "Google UK English Male",
"lang": "en-GB",
"localService": false,
"default": false,
"voiceURI": "Google UK English Male"
}
],
"voiceCount": 6,
"localVoices": 3,
"remoteVoices": 3,
"languages": [
"en-US",
"en-GB"
]
},
"mediaDevices": {
"devices": [
{
"deviceId": "",
"kind": "audiooutput",
"label": "",
"groupId": ""
}
],
"deviceCount": 1,
"audioinput": 0,
"audiooutput": 1,
"videoinput": 0,
"supportedConstraints": {
"aspectRatio": true,
"autoGainControl": true,
"brightness": true,
"channelCount": true,
"colorTemperature": true,
"contrast": true,
"deviceId": true,
"displaySurface": true,
"echoCancellation": true,
"exposureCompensation": true,
"exposureMode": true,
"exposureTime": true,
"facingMode": true,
"focusDistance": true,
"focusMode": true,
"frameRate": true,
"groupId": true,
"height": true,
"iso": true,
"latency": true,
"noiseSuppression": true,
"pan": true,
"pointsOfInterest": true,
"resizeMode": true,
"restrictOwnAudio": true,
"sampleRate": true,
"sampleSize": true,
"saturation": true,
"sharpness": true,
"suppressLocalAudioPlayback": true,
"tilt": true,
"torch": true,
"voiceIsolation": true,
"whiteBalanceMode": true,
"width": true,
"zoom": true
}
},
"audio": {
"sampleRate": 48000,
"state": "running",
"baseLatency": 0.042666666666666665,
"outputLatency": 0,
"maxChannelCount": 2,
"numberOfInputs": 1,
"numberOfOutputs": 0,
"channelCount": 2,
"channelCountMode": "explicit",
"channelInterpretation": "speakers",
"audioHash": "124.04345139075303",
"sampleValues": [
-0.1080818846821785,
-0.3909122049808502,
-0.005695888306945562,
0.38922908902168274,
0.1189703568816185,
-0.35458430647850037,
-0.22216065227985382,
0.2899079918861389,
0.30651476979255676,
-0.20069056749343872
]
},
"webgpu": {
"supported": true,
"features": [
"depth32float-stencil8",
"rg11b10ufloat-renderable",
"bgra8unorm-storage",
"texture-compression-bc",
"dual-source-blending",
"core-features-and-limits",
"float32-filterable",
"indirect-first-instance",
"float32-blendable",
"depth-clip-control",
"texture-compression-bc-sliced-3d",
"timestamp-query",
"clip-distances",
"shader-f16",
"texture-component-swizzle",
"subgroups"
],
"info": {
"vendor": "nvidia",
"architecture": "ampere",
"device": "",
"description": ""
}
},
"webgl": {
"version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
"shadingLanguageVersion": "WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)",
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"unmaskedVendor": "Google Inc. (NVIDIA)",
"unmaskedRenderer": "ANGLE (NVIDIA, NVIDIA GeForce RTX 3070 (0x00002484) Direct3D11 vs_5_0 ps_5_0, D3D11)",
"extensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_stencil_texturing"
],
"extensionCount": 31,
"maxTextureSize": 16384,
"maxViewportDims": [
32767,
32767
],
"maxRenderbufferSize": 16384,
"maxCombinedTextureImageUnits": 32,
"maxCubeMapTextureSize": 16384,
"maxFragmentUniformVectors": 1024,
"maxTextureImageUnits": 16,
"maxVertexAttribs": 16,
"maxVertexTextureImageUnits": 16,
"maxVertexUniformVectors": 1024,
"maxVaryingVectors": 30,
"aliasedLineWidthRange": [
1,
1
],
"aliasedPointSizeRange": [
1,
1024
],
"maxAnisotropy": 16,
"precisionFormats": {
"vertex_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"vertex_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"vertex_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_lowFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_medFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_highFloat": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"fragment_lowInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_medInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"fragment_highInt": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
}
}
},
"canvas": {
"consistent": true,
"hash": "3C2ABBE3",
"dataUrlLength": 25246,
"dataUrlPrefix": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwA",
"webpSupport": true,
"jpegHighLength": 26563,
"jpegLowLength": 2327
},
"screen": {
"width": 1920,
"height": 1080,
"availWidth": 1920,
"availHeight": 1032,
"colorDepth": 32,
"pixelDepth": 32,
"innerWidth": 1920,
"innerHeight": 947,
"outerWidth": 1919,
"outerHeight": 1032,
"screenX": 10,
"screenY": 39,
"pageXOffset": 0,
"pageYOffset": 0,
"devicePixelRatio": 1,
"orientation": {
"type": "landscape-primary",
"angle": 0
},
"mediaQueries": {
"prefers-color-scheme": "light",
"prefers-reduced-motion": "no-preference",
"prefers-contrast": "no-preference",
"forced-colors": "none",
"prefers-reduced-transparency": "no-preference",
"color-gamut": "srgb",
"pointer": "fine",
"hover": "hover",
"any-pointer": "fine",
"any-hover": "hover",
"display-mode": "browser",
"dynamic-range": "standard",
"update": "fast",
"overflow-block": "scroll",
"overflow-inline": "scroll",
"min-resolution": "96dpi",
"min-color": "8",
"monochrome": false
},
"visualViewport": {
"width": 1920,
"height": 947,
"offsetLeft": 0,
"offsetTop": 0,
"pageLeft": 0,
"pageTop": 0,
"scale": 1
}
},
"navigator": {
"secureContext": true,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 chrome/chrome",
"platform": "Win32",
"vendor": "Google Inc.",
"vendorSub": "",
"product": "Gecko",
"productSub": "20030107",
"appVersion": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 chrome/chrome",
"appName": "Netscape",
"appCodeName": "Mozilla",
"language": "en-US",
"languages": [
"en-US"
],
"cookieEnabled": true,
"doNotTrack": null,
"maxTouchPoints": 0,
"hardwareConcurrency": 8,
"deviceMemory": 8,
"pdfViewerEnabled": true,
"webdriver": false,
"connection": {
"effectiveType": "3g",
"downlink": 10,
"rtt": 0,
"saveData": false
},
"plugins": [
{
"name": "PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chrome PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chromium PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Microsoft Edge PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "WebKit built-in PDF",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
}
],
"pluginCount": 5,
"mimeTypes": [
"application/pdf",
"text/pdf"
],
"userAgentData": {
"brands": [
{
"brand": "Chromium",
"version": "146"
},
{
"brand": "Not-A.Brand",
"version": "24"
},
{
"brand": "chrome",
"version": "146"
}
],
"mobile": false,
"platform": "Windows"
},
"userAgentDataHighEntropy": {
"architecture": "x86",
"bitness": "64",
"brands": [
{
"brand": "Chromium",
"version": "146"
},
{
"brand": "Not-A.Brand",
"version": "24"
},
{
"brand": "chrome",
"version": "146"
}
],
"fullVersionList": [
{
"brand": "Chromium",
"version": "146.0.7680.177"
},
{
"brand": "Not-A.Brand",
"version": "24.0.0.0"
},
{
"brand": "chrome",
"version": "146.0.7680.177"
}
],
"mobile": false,
"model": "",
"platform": "Windows",
"platformVersion": "19.0.0",
"wow64": false
},
"permissions": {
"geolocation": "prompt",
"notifications": "prompt",
"camera": "prompt",
"microphone": "prompt",
"accelerometer": "granted",
"gyroscope": "granted",
"magnetometer": "granted",
"clipboard-read": "prompt",
"clipboard-write": "granted"
},
"storageEstimate": {
"quota": 439901334,
"usage": 0
},
"bluetooth": true,
"usb": true,
"serial": true,
"hid": true,
"xr": true,
"gpu": true,
"ink": true,
"scheduling": true,
"windowControlsOverlay": true,
"virtualKeyboard": true
},
"__meta": {
"capturedAt": "2026-05-01T07:17:43.467Z",
"elapsedMs": 0,
"href": "http://wrkx.app/api/visitors/460a5cc5f4a4a6d8af32f28945530f03",
"readyState": "complete"
}
}
{
"version": "1",
"profile": "windows-chrome-stable",
"paths": [
{
"path": "audio.**",
"comment": "Audio fingerprint bytes (sampleValues, audioHash) require precomputed per-(profile, sample-rate) byte tables — task 0071. docs/limits.md \"Audio fingerprinting (OfflineAudioContext) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "canvas.**",
"comment": "Canvas hash + dataUrl spoofing requires precomputed hash maps for the standard probe payloads + per-pixel noise injection — task 0071. docs/limits.md \"Canvas fingerprinting (HTMLCanvasElement.toDataURL) is NOT spoofed at v0.3\" carried over to v0.7 phase split."
},
{
"path": "speech.**",
"comment": "speechSynthesis.getVoices() returns the host's installed system voices on real Chrome (typically 200+ entries on macOS, 20+ on Linux/Win). Chromium-for-Testing ships with no voice tables, so mochi spoofs voices=[]. Restoring real-device voice lists is a phase 0.7 deliverable (precomputed voice tables per-OS) tracked alongside audio/canvas. PLAN.md §13.6."
},
{
"path": "navigator.userAgentData.brands",
"comment": "Brand-list length varies (Linux Chrome emits 2 brands, macOS/Win emit 3). Same root cause as the per-entry comment below."
},
{
"path": "navigator.userAgentData.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentData.brands[*].**",
"comment": "Sec-CH-UA brand-list ordering and GREASE label vary between Chrome/Edge majors and even between Chrome point releases (e.g. 146 emits `Not-A.Brand;v=24` while 147 emits `Not.A/Brand;v=8`). mochi pins a single GREASE label per major (consistency/rules/lookups/browser.ts) for determinism — see tasks/0051-consistency-stack-fixes.md (Group B). Per-major GREASE shuffle is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.brands",
"comment": "Same as userAgentData.brands."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.brands[*].**",
"comment": "Same as navigator.userAgentData.brands — pinned for determinism."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList",
"comment": "Same as userAgentData.brands — length varies by OS."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*]",
"comment": "Per-entry full-object mismatch when length differs."
},
{
"path": "navigator.userAgentDataHighEntropy.fullVersionList[*].**",
"comment": "Patch-level Chrome version (e.g. 146.0.7680.165) varies with the local Chrome install vs the BROWSER_TIP_FULL_VERSION table. mochi uses the table tip when the major matches; harvested values may differ by a few patch numbers. Refresh the table per Chrome major."
},
{
"path": "navigator.userAgent",
"comment": "Full UA string includes the patch version (see fullVersionList comment). Spoofed value matches BROWSER_TIP_FULL_VERSION; harvested value reflects the user's exact Chrome point release."
},
{
"path": "navigator.appVersion",
"comment": "Same patch-version drift as navigator.userAgent."
},
{
"path": "screen.mediaQueries.**",
"comment": "matchMedia() result strings depend on the host's actual OS/display state (min-resolution from real DPR, prefers-color-scheme from Dark Mode, etc.). mochi spoofs a deterministic baseline; the harvested values reflect the user's session at capture time. Per-profile media-query lock is phase 0.7."
},
{
"path": "screen.pageXOffset",
"comment": "Window-frame chrome. Sentinelized by normalize.ts in most paths but the raw harvested value may differ from the harness window's idle offset."
},
{
"path": "screen.pageYOffset",
"comment": "Window-frame chrome — same as pageXOffset."
},
{
"path": "timing.dateString",
"comment": "Date.toString() includes the host's wall-clock time, which differs every run. The probe normalises to a fixed 2024-01-01 anchor; harvested values reflect the user's actual capture time."
},
{
"path": "timing.performanceTiming",
"comment": "performance.timing.* fields vary per session (load durations, redirect counts). normalize.ts sentinelizes the bot.navigationTiming sub-block; the timing.performanceTiming block is harvester-specific and not currently sentinelized."
},
{
"path": "timing.supportedNumberingSystems[*]",
"comment": "Intl.supportedValuesOf('numberingSystem') grows between V8 majors (e.g. Chrome 149 added 'tols'). The harvested list reflects the user's V8; the harness uses Chromium-for-Testing's V8. List drift is expected as BROWSER_TIP_FULL_VERSION advances."
},
{
"path": "webgl.aliasedLineWidthRange[*]",
"comment": "WebGL aliasedLineWidthRange/PointSizeRange/maxViewportDims values vary with the GPU driver version on the host. mochi locks GPU vendor/renderer via the matrix; per-driver-version locking is phase 0.7."
},
{
"path": "webgl.aliasedPointSizeRange[*]",
"comment": "See webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxColorAttachments",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgl.maxViewportDims[*]",
"comment": "GPU-driver dependent; see webgl.aliasedLineWidthRange."
},
{
"path": "webgpu.features",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.features[*]",
"comment": "WebGPU feature list grows between Chromium majors. The harvested list reflects the user's Chrome version; the harness uses Chromium-for-Testing."
},
{
"path": "webgpu.info",
"comment": "Block absent on hosts without a WebGPU adapter."
},
{
"path": "webgpu.limits.**",
"comment": "WebGPU adapter limits depend on the GPU driver. Per-driver locking is phase 0.7 alongside WebGL."
},
{
"path": "bot.chromeRuntime",
"comment": "Real Chrome exposes window.chrome.runtime; Chromium-for-Testing does not. Restoring chrome.runtime polyfill is task 0140 (stealth conformance) — tracked separately."
},
{
"path": "storage.cookieCount",
"comment": "Cookie state varies per session — the harvester's user had cookies, the harness session is fresh."
},
{
"path": "storage.cookiesWritable",
"comment": "Depends on the document context (file:// fixture vs http:// origin). Harvester captured at http(s) origin; harness uses file:// fixture."
},
{
"path": "storage.localStorageKeys",
"comment": "localStorage state varies per session — fresh harness session has no keys."
},
{
"path": "mouseEvent",
"comment": "The probe-page emits a mouseEvent block when the relational-lock scaffolding fires. Harvested snapshots predate this probe and so omit it; spoofed sessions emit it. Cosmetic — the lock-result block is the spoof's own diagnostic, not a fingerprint surface."
},
{
"path": "fonts.**",
"comment": "The font enumeration probe enumerates whatever the host has installed. Spoofing the per-profile font intersection is a phase 0.7 task (FontFace API stub + per-profile font allowlist). Running e.g. windows-chrome-stable on a Mac host will surface every macOS system font as material — that's a known gap, not a profile defect."
},
{
"path": "webgl.extensions",
"comment": "Whole array absent on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.extensions[*]",
"comment": "WebGL extension list depends on the host GPU + driver. mochi locks GPU vendor/renderer strings but does NOT enumerate-list-spoof extensions per-profile yet. Phase 0.7 deliverable. Cross-host validation surfaces the host's actual extension set."
},
{
"path": "webgl.precisionFormats",
"comment": "Block absent on no-WebGL hosts."
},
{
"path": "webgl.extensionCount",
"comment": "See webgl.extensions[*] — count varies with host extensions."
},
{
"path": "webgl.unmaskedVendor",
"comment": "Unmasked WebGL vendor/renderer requires GPU spoofing at the ANGLE layer (or a polyfilled WEBGL_debug_renderer_info getter). mochi's getter spoof is host-OS-aware; cross-host tests surface the underlying device."
},
{
"path": "webgl.unmaskedRenderer",
"comment": "See webgl.unmaskedVendor."
},
{
"path": "webgpu.info.**",
"comment": "WebGPU adapter info comes from the host driver. Cross-host validation shows the host's adapter; same root cause as webgl.unmaskedRenderer."
},
{
"path": "mediaDevices.devices[*]",
"comment": "Per-entry full-object mismatch when device-array length differs."
},
{
"path": "mediaDevices.devices[*].**",
"comment": "navigator.mediaDevices.enumerateDevices() returns whatever audio/video devices the host has. The harness fixture runs in a fresh permission state so labels are empty (matches baseline) but the device count + kind ratio depends on the host. Per-profile media-devices spoofing is phase 0.7."
},
{
"path": "mediaDevices.deviceCount",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audioinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.audiooutput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "mediaDevices.videoinput",
"comment": "See mediaDevices.devices[*]."
},
{
"path": "navigator.connection.effectiveType",
"comment": "NetworkInformation.effectiveType reads from the host network stack. downlink/rtt are sentinelized by normalize.ts but effectiveType isn't."
},
{
"path": "timing.timezoneOffset",
"comment": "timezoneOffset depends on whether the captured profile's tz observes DST at the harness's wall-clock time vs at capture time. The IANA timezone is spoofed correctly; the offset is a derived value with seasonal drift."
},
{
"path": "bot.userActivation.**",
"comment": "navigator.userActivation.hasBeenActive flips to true when the harness drives mouse/keyboard events. The harvested snapshot was captured before any user gesture, so hasBeenActive=false. The spoof doesn't lie about this — it's a true reflection of the harness's interaction sequence."
},
{
"path": "navigator.deviceMemory",
"comment": "navigator.deviceMemory is spec-capped at 8 on real Chrome, but some configurations (older Chrome, non-Chromium derivatives) leak the real GiB count. mochi enforces the spec cap deterministically; the harvested value may be higher (16/32/64) and the spoof correctly clamps to 8."
},
{
"path": "navigator.bluetooth",
"comment": "navigator.bluetooth presence depends on the host's Web Bluetooth flag. Linux Chrome typically has it disabled by default; mochi exposes it. Per-profile API allowlist is phase 0.7."
},
{
"path": "storage.fileSystemAccess",
"comment": "FileSystemAccess API can be hardened off (Brave) or off-by-default (Linux Chrome). mochi exposes the API by default. Per-profile feature gating is phase 0.7."
},
{
"path": "storage.sessionStorageKeys",
"comment": "The probe page writes one sessionStorage key during its self-test; harvested baselines that ran before that probe instrumentation report 0. New captures will normalize to 1 once re-imported."
},
{
"path": "timing.timerPrecision",
"comment": "Brave coarsens performance.now() precision; harvested Brave snapshots report null. mochi does NOT coarsen — restoring Brave's precision-coarsen behavior is a phase 0.7 deliverable."
},
{
"path": "navigator.userAgentDataHighEntropy.platformVersion",
"comment": "platformVersion is empty on Linux Chrome (X11 has no notion of OS marketing version). The spoof emits a synthesised value; on Linux imports we accept the empty-string baseline as the source of truth."
},
{
"path": "navigator.connection",
"comment": "Brave hardens NetworkInformation and returns an undefined connection block. mochi exposes the API. Per-profile NetworkInformation hardening is a phase 0.7 deliverable."
},
{
"path": "webgl.error",
"comment": "Some captured devices (headless Linux, lock-screened Windows) report no WebGL context. mochi always presents a WebGL surface. Per-profile no-WebGL mode is phase 0.7."
},
{
"path": "webgl.version",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.shadingLanguageVersion",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.vendor",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.renderer",
"comment": "Empty on no-WebGL hosts (see webgl.error)."
},
{
"path": "webgl.aliasedLineWidthRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.aliasedPointSizeRange",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxAnisotropy",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxColorAttachments",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCombinedTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxCubeMapTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxFragmentUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxRenderbufferSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxTextureSize",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVaryingVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexAttribs",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexTextureImageUnits",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxVertexUniformVectors",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.maxViewportDims",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "webgl.precisionFormats.**",
"comment": "Absent on no-WebGL hosts."
},
{
"path": "mediaDevices.devices",
"comment": "Device array length varies with the host's installed devices. Per-profile media-devices spoofing is phase 0.7."
}
]
}
{
"id": "windows-chrome-stable",
"version": "1.0.0",
"engine": "chromium",
"browser": {
"name": "chrome",
"channel": "stable",
"minVersion": "146",
"maxVersion": "146"
},
"os": {
"name": "windows",
"version": "19.0.0",
"arch": "x64"
},
"device": {
"vendor": "generic",
"model": "PC",
"cpuFamily": "intel-core",
"cores": 8,
"memoryGB": 16
},
"display": {
"width": 1920,
"height": 1080,
"dpr": 1,
"colorDepth": 32,
"pixelDepth": 32
},
"gpu": {
"vendor": "NVIDIA Corporation",
"renderer": "NVIDIA GeForce RTX 3070 (0x00002484) Direct3D11 vs_5_0 ps_5_0",
"webglUnmaskedVendor": "Google Inc. (NVIDIA)",
"webglUnmaskedRenderer": "ANGLE (NVIDIA, NVIDIA GeForce RTX 3070 (0x00002484) Direct3D11 vs_5_0 ps_5_0, D3D11)",
"webglMaxTextureSize": 16384,
"webglMaxColorAttachments": 8,
"webglExtensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_disjoint_timer_query_webgl2",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_render_snorm",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"EXT_texture_norm16",
"KHR_parallel_shader_compile",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"WEBGL_blend_func_extended",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_provoking_vertex",
"WEBGL_stencil_texturing"
]
},
"audio": {
"contextSampleRate": 48000,
"audioWorkletLatency": 0.042666666666666665,
"destinationMaxChannelCount": 2
},
"fonts": {
"family": "windows-system-pack",
"list": [
"Arial",
"Courier New",
"Times New Roman"
]
},
"timezone": "America/Chicago",
"locale": "en-US",
"languages": [
"en-US"
],
"behavior": {
"hand": "right",
"tremor": 0.18,
"wpm": 60,
"scrollStyle": "smooth"
},
"wreqPreset": "chrome_146_windows",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 chrome/chrome",
"uaCh": {
"sec-ch-ua": "\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"chrome\";v=\"146\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-ch-ua-platform-version": "\"19.0.0\"",
"sec-ch-ua-arch": "\"x86\"",
"sec-ch-ua-bitness": "\"64\"",
"sec-ch-ua-model": "\"\"",
"sec-ch-ua-full-version": "\"146\"",
"sec-ch-ua-os": "\"windows\""
},
"entropyBudget": {
"fixed": [],
"perSeed": []
}
}
# PROVENANCE — windows-chrome-stable
Imported from the wrkx harvester corpus (`http://wrkx.app/api`) by `mochi profiles import`. PLAN.md §12.2 — every profile in `main` must carry verifiable provenance.
| field | value |
|---|---|
| profile id | `windows-chrome-stable` |
| upstream visitor id | `460a5cc5f4a4a6d8af32f28945530f03` |
| upstream URL | `http://wrkx.app/api/visitors/460a5cc5f4a4a6d8af32f28945530f03` |
| visitor egress ip (snapshot) | 76.184.227.237 |
| browser version | 146 |
| FingerprintJS suspectScore | 8 |
| captured at (UTC) | 2026-05-01T07:17:43.467Z |
| imported at (UTC) | 2026-05-08T20:50:36.301Z |
| importer | `mochi profiles import` (task 0260) |
## Multi-snapshot policy
When the visitor record contains multiple snapshots for a single category (re-visits over time), the importer keeps the most recent by `created_at`. This matches the spirit of capturing the device's *current* fingerprint rather than a stale earlier one.
## TLS preset
The harvester capture did not include a JA3/JA4 hash, so the wreqPreset is synthesised as `<browser>_<major>_<os>`. The wreq Rust crate's `resolve_preset()` matches by family (`chrome*` → Chrome) — exact-version fingerprint matching is a phase 0.7 deliverable. See `packages/net-rs/src/ffi/preset.rs`.
## Hand-corrections
None at import time. The harvester's `navigator` snapshot is captured by real Chrome (not headless), so the `--headless=new` artifacts that needed manual correction in `mac-m4-chrome-stable` (task 0070) are absent here.
+2
-2
{
"name": "@mochi.js/profiles",
"version": "0.0.4",
"version": "0.1.0",
"description": "Profile data fixtures for mochi — captured baselines (profile.json + Probe Manifest + audio bytes + canvas hashes) per device class.",

@@ -42,3 +42,3 @@ "license": "MIT",

"dependencies": {
"@mochi.js/consistency": "^0.1.1"
"@mochi.js/consistency": "^0.1.2"
},

@@ -45,0 +45,0 @@ "publishConfig": {

@@ -31,2 +31,7 @@ /**

"linux-chrome-stable",
// Imported from harvester corpus per task 0260.
"mac-chrome-stable",
"mac-chrome-beta",
"windows-chrome-stable",
"mac-brave-stable",
] as const satisfies readonly string[];

@@ -33,0 +38,0 @@