1<!DOCTYPE html><html lang="en" dir="ltr" data-cookie-consent-key="ones_cookie_consent" data-cookie-consent-version="2025-11-12" data-css-ready="0"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" data-next-head=""/><link rel="shortcut icon" href="https://cdn.ones.com/favicon2020.ico" data-next-head=""/>
1<script id="home-announcement-dismissal-check" data-next-head="">try{if(window.sessionStorage.getItem("ones_home_announcement_dismissed:ai-real-project-work-ones-assistant-mcp-webinar")==="1"){document.documentElement.classList.add("ones-home-announcement-dismissed")}}catch(_){}</script>
1<style data-next-head="">.ones-home-announcement-dismissed [data-home-announcement-root]{display:none}</style><meta property="og:url" content="https://ones.com/login" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta property="og:image" content="https://cdn.ones.com/images/feature/common.jpg?last_modified=1790747933984" data-next-head=""/><meta property="og:image:alt" content="feature" data-next-head=""/><meta property="og:image:width" content="1920" data-next-head=""/><meta property="og:image:height" content="1080" data-next-head=""/><meta property="og:locale" content="undefined" data-next-head=""/><meta property="og:site_name" content="ONES.com" data-next-head=""/><title data-next-head="">Login</title><meta name="robots" content="noindex,follow" data-next-head=""/><meta property="og:title" content="Login" data-next-head=""/><style id="fouc-guard-style"> 2 html[data-css-ready="0"] body { 3 opacity: 0; 4 visibility: hidden; 5 background: #fff; 6 } 7 html[data-css-ready="1"] body { 8 opacity: 1; 9 visibility: visible; 10 } 11 </style>
11<script> 12 (function () { 13 if (typeof window === "undefined" || typeof document === "undefined") return; 14 var root = document.documentElement; 15 if (!root) return; 16 var startedAt = Date.now(); 17 var buildId = (window.__NEXT_DATA__ && window.__NEXT_DATA__.buildId) || ""; 18 var assetEvents = window.__ONES_ASSET_EVENTS__ = window.__ONES_ASSET_EVENTS__ || []; 19 20 var getAssetMeta = function (rawUrl) { 21 var url = ""; 22 var host = ""; 23 var path = ""; 24 try { 25 var parsed = new URL(rawUrl, window.location.href); 26 url = parsed.origin + parsed.pathname; 27 host = parsed.host; 28 path = parsed.pathname; 29 } catch (error) { 30 url = rawUrl || ""; 31 } 32 return { url: url, host: host, path: path }; 33 }; 34 35 var emitAssetEvent = function (eventType, details) { 36 try { 37 var payload = Object.assign({ 38 event_type: eventType, 39 build_id: buildId, 40 path: window.location.pathname, 41 css_ready: root.getAttribute("data-css-ready") || "0", 42 css_ready_reason: root.getAttribute("data-css-ready-reason") || "", 43 elapsed_ms: Date.now() - startedAt 44 }, details || {}); 45 assetEvents.push(payload); 46 if (window.dataLayer && typeof window.dataLayer.push === "function") { 47 window.dataLayer.push(Object.assign({ event: "ones_static_asset_event" }, payload)); 48 } 49 if (window.posthog && typeof window.posthog.capture === "function") { 50 window.posthog.capture("static_asset_event", payload); 51 } 52 } catch (error) {} 53 }; 54 55 var revealed = false; 56 var reveal = function (reason) { 57 if (revealed) return; 58 revealed = true; 59 root.setAttribute("data-css-ready", "1"); 60 root.setAttribute("data-css-ready-reason", reason || "unknown"); 61 emitAssetEvent("css_ready_reveal", { 62 reason: reason || "unknown" 63 }); 64 }; 65 66 var checkReady = function () { 67 if (revealed) return; 68 var links = Array.prototype.slice.call( 69 document.querySelectorAll('link[rel="stylesheet"][href]') 70 ); 71 72 var targetLinks = links.filter(function (link) { 73 var href = link.getAttribute("href") || ""; 74 return href.indexOf("/_next/static/css/") >= 0 || href.indexOf("__next_css__") >= 0; 75 }); 76 77 if (targetLinks.length === 0) { 78 return; 79 } 80 81 var pending = 0; 82 targetLinks.forEach(function (link) { 83 var loaded = !!link.sheet; 84 if (loaded) return; 85 86 pending += 1; 87 if (link.getAttribute("data-css-watch") === "1") return; 88 link.setAttribute("data-css-watch", "1"); 89 var watchStartedAt = Date.now(); 90 var onDone = function (event) { 91 link.removeEventListener("load", onDone); 92 link.removeEventListener("error", onDone); 93 var asset = getAssetMeta(link.href || link.getAttribute("href") || ""); 94 emitAssetEvent("stylesheet_" + event.type, { 95 asset_url: asset.url, 96 asset_host: asset.host, 97 asset_path: asset.path, 98 duration_ms: Date.now() - watchStartedAt 99 }); 100 checkReady(); 101 }; 102 link.addEventListener("load", onDone); 103 link.addEventListener("error", onDone); 104 }); 105 106 if (pending === 0) { 107 reveal("stylesheets_loaded"); 108 } 109 }; 110 111 var checkTimer = window.setInterval(checkReady, 50); 112 var stopChecking = function () { 113 window.clearInterval(checkTimer); 114 }; 115 116 var hardTimeout = window.setTimeout(function () { 117 reveal("timeout"); 118 stopChecking(); 119 }, 5000); 120 121 window.addEventListener("load", function () { 122 reveal("window_load"); 123 window.clearTimeout(hardTimeout); 124 stopChecking(); 125 }, { once: true }); 126 127 document.addEventListener("error", function (event) { 128 var target = event.target; 129 if (!target || !target.tagName) return; 130 var tagName = String(target.tagName).toLowerCase(); 131 var rawUrl = tagName === "script" 132 ? target.src 133 : tagName === "link" 134 ? target.href 135 : ""; 136 if (!rawUrl || rawUrl.indexOf("/_next/static/") < 0) return; 137 var asset = getAssetMeta(rawUrl); 138 emitAssetEvent(tagName + "_error", { 139 asset_url: asset.url, 140 asset_host: asset.host, 141 asset_path: asset.path 142 }); 143 }, true); 144 145 var reportChunkError = function (reason, value) { 146 var message = ""; 147 try { 148 message = value && (value.message || value.reason && value.reason.message || String(value)); 149 } catch (error) { 150 message = ""; 151 } 152 if (!message || (message.indexOf("ChunkLoadError") < 0 && message.indexOf("Loading chunk") < 0)) { 153 return; 154 } 155 emitAssetEvent("chunk_load_error", { 156 reason: reason, 157 message: message.slice(0, 240) 158 }); 159 }; 160 161 window.addEventListener("error", function (event) { 162 reportChunkError("window_error", event && (event.error || event.message)); 163 }); 164 window.addEventListener("unhandledrejection", function (event) { 165 reportChunkError("unhandledrejection", event && event.reason); 166 }); 167 168 checkReady(); 169 })(); 170 </script>
170<noscript><style> 171 html[data-css-ready="0"] body { 172 opacity: 1 !important; 173 visibility: visible !important; 174 } 175 </style></noscript>
175<script> 176 (function () { 177 if (typeof document === "undefined") return; 178 var root = document.documentElement; 179 if (!root) return; 180 var storageKey = root.getAttribute("data-cookie-consent-key") || "ones_cookie_consent"; 181 var version = root.getAttribute("data-cookie-consent-version") || "2025-11-12"; 182 var maxAgeSeconds = 60 * 60 * 24 * 365; 183 184 var readCookie = function (key) { 185 try { 186 var raw = document.cookie 187 .split(";") 188 .map(function (entry) { return entry.trim(); }) 189 .find(function (entry) { return entry.indexOf(key + "=") === 0; }); 190 if (!raw) return null; 191 return decodeURIComponent(raw.split("=").slice(1).join("=")); 192 } catch (error) { 193 return null; 194 } 195 }; 196 197 var readStoredConsent = function () { 198 var value = null; 199 try { 200 value = window.localStorage && window.localStorage.getItem(storageKey); 201 } catch (error) { 202 value = null; 203 } 204 if (!value) { 205 value = readCookie(storageKey); 206 } 207 if (!value) return null; 208 try { 209 var parsed = JSON.parse(value); 210 if (!parsed || parsed.version !== version) return null; 211 return parsed; 212 } catch (error) { 213 return null; 214 } 215 }; 216 217 var setConsentStatus = function () { 218 root.setAttribute("data-cookie-consent-status", "set"); 219 }; 220 221 if (readStoredConsent()) { 222 setConsentStatus(); 223 } 224 225 var persistConsent = function (selection) { 226 var consent = { 227 strictlyNecessary: true, 228 functionality: !!selection.functionality, 229 analytics: !!selection.analytics, 230 updatedAt: new Date().toISOString(), 231 version: version 232 }; 233 var json = JSON.stringify(consent); 234 try { 235 if (window.localStorage) { 236 window.localStorage.setItem(storageKey, json); 237 } 238 } catch (error) { 239 // Ignore storage errors 240 } 241 try { 242 document.cookie = storageKey + "=" + encodeURIComponent(json) 243 + "; path=/; max-age=" + maxAgeSeconds + "; SameSite=Lax"; 244 } catch (error) { 245 // Ignore cookie errors 246 } 247 setConsentStatus(); 248 }; 249 250 var handleClick = function (event) { 251 var target = event.target; 252 if (!target) return; 253 var node = target.nodeType === 1 ? target : target.parentNode; 254 while (node && node !== document) { 255 if (node.getAttribute) { 256 var action = node.getAttribute("data-cookie-consent-action"); 257 if (action === "accept") { 258 persistConsent({ functionality: true, analytics: true }); 259 return; 260 } 261 if (action === "settings") { 262 if (!window.__ONES_COOKIE_CONSENT_READY__) { 263 window.__ONES_COOKIE_CONSENT_PENDING_SETTINGS__ = true; 264 } 265 return; 266 } 267 } 268 node = node.parentNode; 269 } 270 }; 271 272 document.addEventListener("click", handleClick, true); 273 })(); 274 </script>
274<link rel="preload" href="/assets/fonts/PlusJakartaSans-Regular.ttf" as="font" crossorigin="" type="font/ttf"/><link rel="preload" href="/assets/fonts/PlusJakartaSans-Bold.ttf" as="font" crossorigin="" type="font/ttf"/><link rel="icon" type="image/x-icon" href="/favicon2020.ico"/><link rel="shortcut icon" type="image/x-icon" href="/favicon2020.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon2020.ico"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon2020.ico"/><link rel="icon" type="image/png" sizes="48x48" href="/favicon2020.ico"/><link rel="apple-touch-icon" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="57x57" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="60x60" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="72x72" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="76x76" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="114x114" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="120x120" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="144x144" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="152x152" href="/favicon2020.ico"/><link rel="apple-touch-icon" sizes="180x180" href="/favicon2020.ico"/><meta name="msapplication-TileImage" content="/favicon2020.ico"/><meta name="msapplication-TileColor" content="#0064ff"/><meta name="msapplication-config" content="/browserconfig.xml"/><link rel="manifest" href="/site.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><meta name="apple-mobile-web-app-title" content="ONES.com"/><meta name="theme-color" content="#0064ff"/><meta http-equiv="X-Content-Type-Options" content="nosniff"/><meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin"/>
274<script id="ones-login-handoff" data-nscript="beforeInteractive">(function () { 275 var SESSION_KEY = "SESSION_KEY_ONES_COM_QUERY"; 276 var PRE_SIGNUP_INTENT_KEY = "ones_pre_signup_user_intent"; 277 var PRE_SIGNUP_INTENT_TTL_MS = 1800000; 278 var DEFAULT_LOCALE = "en"; 279 var SUPPORTED_LOCALES = ["en","ja","de","es","fr","it","nl","ko","pl","pt","ru","ar","tr"]; 280 var DEFAULT_SIGN_UP_EDITION = "trial"; 281 var DEV_HOST = "dev-ones.site"; 282 var BRANCH = ""; 283 var REGIONAL_FAST_PATH_ENABLED = true; 284 var PROJECT_TOKEN_STORAGE_KEY = "_ones_json_ones_org_jwt"; 285 var PROJECT_TOKEN_EXPIRY_BUFFER_MS = 300000; 286 var REGIONAL_FAST_PATH_DEADLINE_MS = 2000; 287 var VERSION_TYPE_TO_SIGN_UP_EDITION = { 288 Free: "free", 289 Standard: "trial", 290 Business: "trial", 291 Enterprise: "trial" 292 }; 293 294 function getLocale() { 295 var segments = window.location.pathname.split("/").filter(Boolean); 296 var maybeLocale = segments[0]; 297 if (SUPPORTED_LOCALES.indexOf(maybeLocale) !== -1) { 298 return maybeLocale; 299 } 300 return DEFAULT_LOCALE; 301 } 302 303 function normalizeVersionType(version) { 304 if (!version) return ""; 305 return version.slice(0, 1).toUpperCase() + version.slice(1).toLowerCase(); 306 } 307 308 function appendQuery(target, query) { 309 Object.keys(query).forEach(function (key) { 310 if (query[key] && key !== "official_site_intent") { 311 target.searchParams.set(key, query[key]); 312 } 313 }); 314 } 315 316 function readJSONStorage(storage, key) { 317 try { 318 var raw = storage.getItem(key); 319 return raw ? JSON.parse(raw) : null; 320 } catch (_error) { 321 return null; 322 } 323 } 324 325 function readExistingQuery() { 326 var parsed = readJSONStorage(window.sessionStorage, SESSION_KEY); 327 if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) { 328 return parsed; 329 } 330 return {}; 331 } 332 333 var resolveLastContentPage = (a,b,c,d)=>{let e,f;if(null!=a){if("object"!=typeof a||"string"!=typeof a.path||"number"!=typeof a.visited_at)return;e=a.path,f=a.visited_at}else try{let a=new URL(b);if("https:"!==a.protocol||a.username||a.password||a.port||!["ones.com","www.ones.com","blog.ones.com","docs.ones.com"].includes(a.hostname)||"/"===a.pathname)return;e=a.pathname,f=c}catch{return}if(!Number.isFinite(f)||f>c||c-f>=18e5||!e.startsWith("/")||e.startsWith("//")||e.includes("\\"))return;let g=(e=e.split("?")[0].split("#")[0]).split("/").filter(Boolean);if(d.includes(g[0])&&g.shift(),!["sign_up","login","identity","project","contact_us","request_demo","thank-you","api","auth","authentication","oauth","callback","register","signup"].includes((g[0]||"").toLowerCase()))return{path:"/"+g.join("/"),visited_at:f}}; 334 335 function buildOfficialSiteIntent() { 336 var state = readJSONStorage(window.sessionStorage, PRE_SIGNUP_INTENT_KEY) || {}; 337 if (typeof state !== "object") return null; 338 try { 339 var consentKey = "ones_cookie_consent"; 340 var consentValue = null; 341 try { consentValue = window.localStorage.getItem(consentKey); } catch (_error) {} 342 if (consentValue === null) { 343 var consentCookie = document.cookie.split(";").map(function (entry) { return entry.trim(); }).find(function (entry) { return entry.indexOf(consentKey + "=") === 0; }); 344 if (consentCookie) consentValue = decodeURIComponent(consentCookie.slice(consentKey.length + 1)); 345 } 346 var consent = consentValue ? JSON.parse(consentValue) : null; 347 if (consent && consent.version === "2025-11-12") { 348 var analytics = consent.analytics; 349 var allowed = analytics === true || analytics === 1 || (typeof analytics === "string" && analytics.trim().toLowerCase() === "true"); 350 if (!allowed) return null; 351 } 352 } catch (_error) {} 353 var now = new Date(); 354 // This script runs once on a new document; its content referrer is newer than stored visits. 355 var lastContentPage = resolveLastContentPage(undefined, document.referrer, now.getTime(), SUPPORTED_LO
355CALES) 356 || resolveLastContentPage(state.last_content_page, "", now.getTime(), SUPPORTED_LOCALES); 357 var snapshot = state.last_snapshot || {}; 358 var pages = Array.isArray(snapshot.pre_signup_semantic_pages) 359 ? snapshot.pre_signup_semantic_pages 360 : Array.isArray(state.pre_signup_semantic_pages) 361 ? state.pre_signup_semantic_pages 362 : []; 363 var bestEffortSources = Array.isArray(snapshot.best_effort_sources) 364 ? snapshot.best_effort_sources 365 : Array.isArray(state.best_effort_sources) 366 ? state.best_effort_sources 367 : []; 368 var sourceChannels = Array.isArray(snapshot.source_channels) 369 ? snapshot.source_channels 370 : []; 371 if (!sourceChannels.length && bestEffortSources.length) { 372 bestEffortSources.forEach(function (source) { 373 var sourceChannel = typeof source === "string" ? source : source && source.source_channel; 374 if ( 375 sourceChannel && 376 sourceChannels.indexOf(sourceChannel) === -1 377 ) { 378 sourceChannels.push(sourceChannel); 379 } 380 }); 381 } 382 if (!pages.length && !sourceChannels.length && !bestEffortSources.length && !lastContentPage) return null; 383 var payload = { 384 schema_version: snapshot.schema_version || "2026-07", 385 primary_intent: snapshot.primary_intent || null, 386 secondary_intents: Array.isArray(snapshot.secondary_intents) 387 ? snapshot.secondary_intents 388 : [], 389 confidence: snapshot.confidence || "none", 390 intent_scores: snapshot.intent_scores || {}, 391 semantic_page_count: snapshot.semantic_page_count || pages.length, 392 top_page_path: snapshot.top_page_path, 393 top_page_title: snapshot.top_page_title, 394 top_page_description: snapshot.top_page_description, 395 top_page_type: snapshot.top_page_type, 396 top_page_score: snapshot.top_page_score, 397 top_page_position: snapshot.top_page_position, 398 source_channels: sourceChannels, 399 best_effort_sources: bestEffortSources, 400 intent_sources: Array.isArray(snapshot.intent_sources) 401 ? snapshot.intent_sources 402 : [], 403 cta_source_intent: snapshot.cta_source_intent, 404 anonymous_detected_primary_intents: Array.isArray(snapshot.anonymous_detected_primary_intents) 405 ? snapshot.anonymous_detected_primary_intents 406 : [], 407 pre_signup_semantic_pages: pages.slice(-5), 408 last_content_page: lastContentPage, 409 captured_at: now.toISOString(), 410 expires_at: new Date(now.getTime() + PRE_SIGNUP_INTENT_TTL_MS).toISOString() 411 }; 412 413 Object.keys(payload).forEach(function (key) { 414 var value = payload[key]; 415 if ( 416 value === undefined || 417 value === "" || 418 (Array.isArray(value) && value.length === 0) 419 ) { 420 delete payload[key]; 421 } 422 }); 423 return payload; 424 } 425 426 function getProjectPath() { 427 if (window.location.hostname === DEV_HOST && BRANCH) { 428 return "/project/" + BRANCH; 429 } 430 return "/project"; 431 } 432 433 function getProjectURL(query) { 434 var target = new URL(getProjectPath(), window.location.origin); 435 appendQuery(target, query); 436 target.hash = "/workspace"; 437 if (!target.pathname.endsWith("/")) { 438 target.pathname += "/"; 439 } 440 return target; 441 } 442 443 function getIdentityLoginURL(projectURL, query) { 444 var target = new URL("/identity/login", window.location.origin); 445 target.searchParams.set("lang", query.lang || DEFAULT_LOCALE); 446 target.searchParams.set("logoutType", "1"); 447 target.searchParams.set("ones_from", projectURL.toString()); 448 return target; 449 } 450 451 function redirectToProject(projectURL) { 452 window.location.replace(projectURL.pathname + projectURL.search + projectURL.hash); 453 } 454 455 function redirectToIdentity(projectURL, query) { 456 var target = getIdentityLoginURL(projectURL, query); 457 window.location.replace(target.pathname + target.search); 458 } 459 460 function markHandoffResult(resultCategory) { 461 try { 462 if (window.performance && typeof window.performance.mark === "function") { 463 window.performance.mark("ones-login-handoff:" + resultCategory); 464 } 465 } catch (_error) {} 466 } 467 468 function decodeJWTPayload(token) { 469 if (typeof token !== "string" || token.length > 16384) return null; 470 var segments = token.split("."); 471 if (segments.length !== 3 || !segments[1]) return null; 472 try { 473 var normalized = segments[1].replace(/-/g, "+").replace(/_/g, "/"); 474 var paddingLength = (4 - normalized.length % 4) % 4;
475 var binary = window.atob(normalized + "=".repeat(paddingLength)); 476 var encoded = ""; 477 for (var index = 0; index < binary.length; index += 1) { 478 encoded += "%" + binary.charCodeAt(index).toString(16).padStart(2, "0"); 479 } 480 var payload = JSON.parse(decodeURIComponent(encoded)); 481 return payload && typeof payload === "object" && !Array.isArray(payload) 482 ? payload 483 : null; 484 } catch (_error) { 485 return null; 486 } 487 } 488 489 function readProjectTokenHint() { 490 var tokenInfo; 491 try { 492 tokenInfo = readJSONStorage(window.localStorage, PROJECT_TOKEN_STORAGE_KEY); 493 } catch (_error) { 494 return null; 495 } 496 if (!tokenInfo || typeof tokenInfo !== "object" || Array.isArray(tokenInfo)) { 497 return null; 498 } 499 var accessToken = tokenInfo.access_token; 500 var payload = decodeJWTPayload(accessToken); 501 if (!payload) return null; 502 var regionUUID = payload.region_uuid; 503 var expiresAt = payload.exp * 1000; 504 if ( 505 typeof accessToken !== "string" || 506 typeof regionUUID !== "string" || 507 !/^[A-Za-z0-9_-]{1,128}$/.test(regionUUID) || 508 typeof payload.exp !== "number" || 509 !Number.isFinite(expiresAt) || 510 expiresAt - Date.now() <= PROJECT_TOKEN_EXPIRY_BUFFER_MS 511 ) { 512 return null; 513 } 514 return { 515 accessToken: accessToken, 516 regionUUID: regionUUID 517 }; 518 } 519 520 function getTrustedRegionalOrigin(endpoint) { 521 if ( 522 typeof endpoint !== "string" || 523 !/^https:\/\/[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.ones\.com\/?$/i.test(endpoint) 524 ) { 525 return null; 526 } 527 try { 528 var target = new URL(endpoint); 529 if ( 530 target.protocol !== "https:" || 531 target.username || 532 target.password || 533 target.port || 534 target.pathname !== "/" || 535 target.search || 536 target.hash 537 ) { 538 return null; 539 } 540 return target.origin; 541 } catch (_error) { 542 return null; 543 } 544 } 545 546 function findRegionalOrigin(payload, regionUUID) { 547 if (!payload || typeof payload !== "object" || !Array.isArray(payload.regions)) { 548 return null; 549 } 550 for (var index = 0; index < payload.regions.length; index += 1) { 551 var region = payload.regions[index]; 552 if ( 553 region && 554 typeof region === "object" && 555 region.region_uuid === regionUUID 556 ) { 557 return getTrustedRegionalOrigin(region.endpoint); 558 } 559 } 560 return null; 561 } 562 563 function redirectLegacy(projectURL, query) { 564 if (typeof window.fetch !== "function") { 565 redirectToProject(projectURL); 566 return; 567 } 568 window.fetch("/project/api/project/auth/token_info", { 569 cache: "no-store", 570 credentials: "include", 571 headers: { 572 accept: "application/json" 573 } 574 }) 575 .then(function (response) { 576 if (response.ok) { 577 redirectToProject(projectURL); 578 return; 579 } 580 redirectToIdentity(projectURL, query); 581 }) 582 .catch(function () { 583 redirectToIdentity(projectURL, query); 584 }); 585 } 586 587 function redirectWithRegionalFastPath(projectURL, query) { 588 var tokenHint = readProjectTokenHint(); 589 if (!tokenHint) { 590 markHandoffResult("invalid_token_hint"); 591 redirectToIdentity(projectURL, query); 592 return; 593 } 594 if ( 595 typeof window.fetch !== "function" || 596 typeof window.AbortController !== "function" 597 ) { 598 markHandoffResult("unsupported_browser"); 599 redirectToIdentity(projectURL, query); 600 return; 601 } 602 603 var controller = new window.AbortController(); 604 var terminal = false;
605 var timeoutID = window.setTimeout(function () { 606 finish(false, "timeout"); 607 }, REGIONAL_FAST_PATH_DEADLINE_MS); 608 609 function finish(goToProject, resultCategory) { 610 if (terminal) return; 611 terminal = true; 612 window.clearTimeout(timeoutID); 613 controller.abort(); 614 markHandoffResult(resultCategory); 615 if (goToProject) { 616 redirectToProject(projectURL); 617 return; 618 } 619 redirectToIdentity(projectURL, query); 620 } 621 622 window.fetch("/identity/api/regions", { 623 cache: "no-store", 624 credentials: "same-origin", 625 headers: { 626 accept: "application/json" 627 }, 628 signal: controller.signal 629 }) 630 .then(function (response) { 631 if (response.status !== 200) throw new Error("region_mapping_http_error"); 632 return response.json(); 633 }) 634 .then(function (payload) { 635 if (terminal) return null; 636 var regionalOrigin = findRegionalOrigin(payload, tokenHint.regionUUID); 637 if (!regionalOrigin) throw new Error("region_mapping_error"); 638 return window.fetch(regionalOrigin + "/project/api/project/auth/token_info", { 639 cache: "no-store", 640 credentials: "include", 641 headers: { 642 accept: "application/json", 643 authorization: "Bearer " + tokenHint.accessToken 644 }, 645 signal: controller.signal 646 }); 647 }) 648 .then(function (response) { 649 if (!response) return; 650 finish( 651 response.status === 200, 652 response.status === 200 ? "project_200" : "regional_http_error" 653 ); 654 }) 655 .catch(function (error) { 656 var resultCategory = 657 error && 658 (error.message === "region_mapping_http_error" || 659 error.message === "region_mapping_error") 660 ? error.message 661 : "network_error"; 662 finish(false, resultCategory); 663 }); 664 } 665 666 function redirect(query) { 667 var projectURL = getProjectURL(query); 668 if (!REGIONAL_FAST_PATH_ENABLED) { 669 redirectLegacy(projectURL, query); 670 return; 671 } 672 redirectWithRegionalFastPath(projectURL, query); 673 } 674 675 try { 676 var params = new URLSearchParams(window.location.search); 677 var query = readExistingQuery(); 678 var explicitEdition = params.get("sign_up_edition") || params.get("edition"); 679 var version = params.get("version") || ""; 680 var signUpEdition = 681 explicitEdition || 682 VERSION_TYPE_TO_SIGN_UP_EDITION[normalizeVersionType(version)] || 683 ""; 684 685 query.lang = getLocale(); 686 if (signUpEdition && signUpEdition !== DEFAULT_SIGN_UP_EDITION) { 687 query.edition = signUpEdition; 688 query.sign_up_edition = signUpEdition; 689 } 690 ["version", "channel", "channel_identifier"].forEach(function (key) { 691 var value = params.get(key); 692 if (value) { 693 query[key] = value; 694 } 695 }); 696 697 var officialSiteIntent = buildOfficialSiteIntent(); 698 if (officialSiteIntent) { 699 query.official_site_intent = officialSiteIntent; 700 } else { 701 delete query.official_site_intent; 702 } 703 704 try { 705 window.sessionStorage.setItem(SESSION_KEY, JSON.stringify(query)); 706 } catch (_error) {} 707 708 redirect(query); 709 } catch (_error) { 710 redirect({ lang: DEFAULT_LOCALE }); 711 } 712})();</script>
712<link rel="preload" href="https://cdn.ones.com/_next/static/css/7b06f3dd5ec099f0.css" as="style"/><link rel="stylesheet" href="https://cdn.ones.com/_next/static/css/7b06f3dd5ec099f0.css" data-n-g=""/><noscript data-n-css=""></noscript>
712<script defer="" nomodule="" src="https://cdn.ones.com/_next/static/chunks/polyfills-42372ed130431b0a.js"></script>
712<script src="https://cdn.ones.com/_next/static/chunks/webpack-28a95d4bdc78c2bc.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/chunks/framework-2c2a4711e8ed6f3e.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/chunks/main-0aacbfb6412cbfd7.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/chunks/pages/_app-fbe7952f7281988e.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/chunks/1352-2b0e83f21776ae57.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/chunks/1090-491992e8efd89f46.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/chunks/1601-c807c41f14ea5956.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/chunks/pages/login-a3c1468b64e7d5a1.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/IOmNRRtmlR3DylctK7pOa/_buildManifest.js" defer=""></script>
712<script src="https://cdn.ones.com/_next/static/IOmNRRtmlR3DylctK7pOa/_ssgManifest.js" defer=""></script>
712<style id="__jsx-6bf89b92aa5b9cba">.home-announcement-arrow.jsx-6bf89b92aa5b9cba{transition:transform 200ms ease-in-out}.home-announcement-mobile-track.jsx-6bf89b92aa5b9cba{animation:home-announcement-marquee 12s linear infinite;will-change:transform}@keyframes home-announcement-marquee{from{transform:translatex(0)}to{transform:translatex(-50%)}}@media(hover:hover)and (pointer:fine){.home-announcement-link.jsx-6bf89b92aa5b9cba:hover .home-announcement-arrow.jsx-6bf89b92aa5b9cba{transform:translatex(3px)}}@media(prefers-reduced-motion:reduce){.home-announcement-arrow.jsx-6bf89b92aa5b9cba,.home-announcement-link.jsx-6bf89b92aa5b9cba:hover .home-announcement-arrow.jsx-6bf89b92aa5b9cba{transform:none;transition:none}.home-announcement-mobile-link{overflow-x:auto}.home-announcement-mobile-track.jsx-6bf89b92aa5b9cba{animation:none;will-change:auto}.home-announcement-mobile-track.jsx-6bf89b92aa5b9cba>.jsx-6bf89b92aa5b9cba:last-child{display:none}}</style></head><body><div id="__next"><aside data-home-announcement-root="true" data-campaign-id="ai-real-project-work-ones-assistant-mcp-webinar" class="jsx-6bf89b92aa5b9cba relative z-[51] flex w-full items-stretch border-b border-[#0845B7] bg-[#0B57D0] text-white"><div class="jsx-6bf89b92aa5b9cba flex min-w-0 flex-1 justify-center s:px-14"><a aria-label="AI for Real Project Work: ONES Assistant and MCP" data-analytics-handled="true" class="home-announcement-link hidden min-h-[60px] max-w-full items-center gap-3 px-5 py-3 text-sm font-medium leading-5 text-inherit no-underline transition-opacity hover:opacity-85 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-offset-[-2px] s:inline-flex m:text-base m:leading-6" href="/webinars"><span aria-hidden="true" class="flex h-7 w-9 shrink-0 items-center justify-center rounded-md border border-white/80 bg-white/5 text-white"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-3.5 w-3.5 fill-current"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></span><span class="jsx-6bf89b92aa5b9cba">AI for Real Project Work: ONES Assistant and MCP</span><span class="jsx-6bf89b92aa5b9cba inline-flex shrink-0 items-center gap-2 whitespace-nowrap rounded-xl bg-white px-5 py-2 font-semibold text-[#1463E6] shadow-[0_1px_2px_rgba(8,36,81,0.12)]">Join Webinar Nowï¼<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right home-announcement-arrow h-4 w-4 shrink-0" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></a><a aria-label="AI for Real Project Work: ONES Assistant and MCP" data-analytics-handled="true" class="home-announcement-link home-announcement-mobile-link flex min-h-[56px] min-w-0 flex-1 items-center overflow-hidden px-4 py-2 text-sm font-medium leading-5 text-inherit no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-inset s:hidden" href="/webinars"><span class="jsx-6bf89b92aa5b9cba home-announcement-mobile-track flex w-max shrink-0 items-center whitespace-nowrap"><span class="jsx-6bf89b92aa5b9cba flex items-center gap-1.5 pr-12"><span aria-hidden="true" class="flex h-4 w-6 shrink-0 items-center justify-center rounded border border-white/70 bg-white/5 text-white"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-2.5 w-2.5 fill-current"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></span><span class="jsx-6bf89b92aa5b9cba">AI for Real Project Work</span><span class="jsx-6bf89b92aa5b9cba inline-flex items-center gap-1 rounded-md bg-white px-2 py-1 font-semibold text-[#1463E6]">Join Webinar<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5 shrink-0" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></span><span aria-hidden="true" class="jsx-6bf89b92aa5b9cba flex items-center gap-1.5 pr-12"><span aria-hidden="true" class="flex h-4 w-6 shrink-0 items-center justify-center rounded border border-white/70 bg-white/5 text-white"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-2.5 w-2.5 fill-current"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></span><span class="jsx-6bf89b92aa5b9cba">AI for Real Project Work</span><span class="jsx-6bf89b92aa5b9cba inline-flex items-center gap-1 rounded-md bg-white px-2 py-1 font-semibold text-[#1463E6]">Join Webinar<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5 shrink-0"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></span></span></a></div><button type="button" aria-label="Dismiss webinar announcement" class="jsx-6bf89b92aa5b9cba flex w-12 shrink-0 items-center justify-center text-white/75 transition-colors hover:bg-white/15 hover:text-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-white s:absolute s:inset-y-0 s:right-3 s:w-10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x h-4 w-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></aside><div class="cookie-consent_panelOverlay__nPKx5" aria-hidden="true"></div><aside class="cookie-consent_panel__THVtN" role="dialog" aria-modal="true" aria-hidden="true" aria-label="Cookie preferences"><div class="cookie-consent_panelHeader__5HxbV"><div class="cookie-consent_panelTitleRow__w4AkM"><p class="cookie-consent_panelTitle__IVfPN">Cookie preferences</p><button type="button" class="cookie-consent_closeButton__qhF03" aria-label="Close panel">Ã</button></div></div><div class="cookie-consent_panelBody__DA_8_"><p class="cookie-consent_panelIntro__9XR0E">We use cookies so that we can offer you the best possible website experience. This includes cookies which are necessary for the operation of the website and to manage our corporate commercial objectives, as well as other cookies which are used solely for anonymous statistical purposes and for more comfortable website settings. Depending on the settings you choose, the full functionality of the website may no longer be available. Further information can be found in our <a class="cookie-consent_policyEntry__9y6JL" href="/legal/cookies-policy">Cookie policy</a>. With the exception of cookies which are strictly necessary for the operation of this site, cookies are turned off by default. Accordingly, pressing the button marked âI ACCEPTâ will enable the full functionality of this website, while pressing the button marked âACCEPT REQUIREDâ will deploy only those cookies which are strictly necessary for its operation. You are free to decide which categories you would like to permit by clicking âCustomizeâ.</p><section class="cookie-consent_section__USgoX"><div class="cookie-consent_sectionHeader__kDSUI"><div><p class="cookie-consent_sectionTitle__hJx_X">Strictly Necessary Cookies</p><p class="cookie-consent_sectionStatus__WjGcl">Always on</p></div><button type="button" role="switch" class="cookie-consent_toggleButton__mcuN9 cookie-consent_toggleDisabled__hRDgW" aria-checked="true" disabled=""></button></div><div class="cookie-consent_sectionBody__jidtV">These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.</div><div class="cookie-consent_metaList__ouUvn"><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Cookie provider</span><span class="cookie-consent_metaValue__Qta9U">ONES.com</span></div><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Cookie / storage name</span><span class="cookie-consent_metaValue__Qta9U">
712ones_cookie_consent</span></div><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Privacy Policy</span><a target="_blank" rel="noopener noreferrer" class="cookie-consent_metaValue__Qta9U" href="/legal/privacy-policy">Privacy Policy</a></div></div></section><section class="cookie-consent_section__USgoX"><div class="cookie-consent_sectionHeader__kDSUI"><div><p class="cookie-consent_sectionTitle__hJx_X">Functionality Cookies</p><p class="cookie-consent_sectionStatus__WjGcl">Enabled</p></div><button type="button" role="switch" aria-checked="true" class="cookie-consent_toggleButton__mcuN9 cookie-consent_toggleChecked__dK36b"></button></div><div class="cookie-consent_sectionBody__jidtV">These cookies enable helpful but non-essential website functions that improve your website experience. By recognizing you when you return to our website, they may, for example, allow us to personalize our content for you, greet you by name, or remember your preferences (for example, your choice of language or timezone). Functionality cookies are only used if you consent to it in the cookie settings.</div><div class="cookie-consent_metaList__ouUvn"><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Cookie provider</span><span class="cookie-consent_metaValue__Qta9U">ONES.com</span></div><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Cookie / storage name</span><span class="cookie-consent_metaValue__Qta9U">Preferred locale cache, UI layout preferences</span></div><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Privacy Policy</span><a target="_blank" rel="noopener noreferrer" class="cookie-consent_metaValue__Qta9U" href="/legal/privacy-policy">Privacy Policy</a></div></div></section><section class="cookie-consent_section__USgoX"><div class="cookie-consent_sectionHeader__kDSUI"><div><p class="cookie-consent_sectionTitle__hJx_X">Analytics Cookies</p><p class="cookie-consent_sectionStatus__WjGcl">Enabled</p></div><button type="button" role="switch" aria-checked="true" class="cookie-consent_toggleButton__mcuN9 cookie-consent_toggleChecked__dK36b"></button></div><div class="cookie-consent_sectionBody__jidtV">Some of these cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.</div><div class="cookie-consent_metaList__ouUvn"><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Cookie provider</span><span class="cookie-consent_metaValue__Qta9U">Google / PostHog</span></div><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Cookie / storage name</span><span class="cookie-consent_metaValue__Qta9U">Google Analytics (_ga*), Google Tag Manager, PostHog</span></div><div class="cookie-consent_metaItem__uLAsc"><span class="cookie-consent_metaLabel__QsZ8u">Privacy Policy</span><a target="_blank" rel="noopener noreferrer" class="cookie-consent_metaValue__Qta9U" href="/legal/privacy-policy">Privacy Policy</a></div></div></section><small class="cookie-consent_bodyNote__RHM0N">Last updated: 2025-11-12</small><small class="cookie-consent_panelIntro__9XR0E">You can change or withdraw your consent at any time by selecting âCustomizeâ at the bottom of the page.</small></div><div class="cookie-consent_panelFooter__yr_ba"><div class="cookie-consent_panelActions__xJ5Ll"><button type="button" class="cookie-consent_secondaryButton__pd0sN">Cancel</button><button type="button" class="cookie-consent_primaryButton__A_o_M">Save selection</button></div></div></aside></div>
712<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"title":"Login","pathname":"login"},"__N_SSG":true},"page":"/login","query":{},"buildId":"IOmNRRtmlR3DylctK7pOa","assetPrefix":"https://cdn.ones.com","isFallback":false,"gsp":true,"locale":"en","locales":["en","ja","de","es","fr","it","nl","ko","pl","pt","ru","ar","tr"],"defaultLocale":"en","scriptLoader":[]}</script>
712</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.