1 2 3 4<!DOCTYPE html> 5 <html lang="en"> <head> 6 7 8 <!-- Google Tag Manager --> 9
9<script>
vendor: 423 bytes, lines 9-13
9(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 10 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 11 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 12 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 13 })(window,document,'script','dataLayer','
13GTM-PTNGH3J5
vendor: 3 bytes, line 13
13');
13</script>
13 14 <!-- End Google Tag Manager -->
vendor: 89 bytes, lines 14-16
14 15 16 <script async src="https://www.googletagmanager.com/gtag/js?id=
16G-4ZJGL6C6NE
vendor: 37 bytes, lines 16-18
16"></script> 17 18
18<script> 19
vendor: 209 bytes, lines 19-22
19window.dataLayer = window.dataLayer || []; 20 function gtag(){dataLayer.push(arguments);} 21 gtag('js', new Date()); 22 gtag('config', '
22G-4ZJGL6C6NE
vendor: 29 bytes, lines 22-24
22'); 23 24
24</script>
24 25 26 27 <title>Sign in to your Steplab account | Steplab</title> 28 29 <meta charset="utf-8"> 30 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 31 <meta name="theme-color" content="#FFCC00" /> 32 33 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> 34 35 36 <meta name="description" content="Sign in to your Steplab account. Log in to your Steplab to access your coaching, learning, leadership tools, the Step library and more."> 37 38 <link rel="apple-touch-icon" sizes="180x180" 39 href="https://stuff.steplab.co/static/icons/apple-touch-icon.png"> 40 <link rel="icon" type="image/png" sizes="192x192" 41 href="https://stuff.steplab.co/static/icons/android-icon-192x192.png"> 42 <link rel="icon" type="image/png" sizes="32x32" 43 href="https://stuff.steplab.co/static/icons/favicon-32x32.png"> 44 <link rel="icon" type="image/png" sizes="16x16" 45 href="https://stuff.steplab.co/static/icons/favicon-16x16.png"> 46 <link rel="mask-icon" href="https://stuff.steplab.co/static/icons/safari-pinned-tab.svg" color="#ffcc00"> 47 <link rel="manifest" href="https://stuff.steplab.co/static/icons/site.webmanifest"> 48 49 50 51 <style type="text/css">@font-face {font-family:'Coming Soon';font-style:normal;font-weight:400;src:url(/cf-fonts/s/coming-soon/5.2.8/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Rock Salt';font-style:normal;font-weight:400;src:url(/cf-fonts/s/rock-salt/5.2.8/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}</style> 52 53 <meta name="msapplication-TileColor" content="#FFCC00"> 54 <meta name="theme-color" content="#ffffff"> 55 56 <link href="https://app.steplab.co/auth/login" rel="canonical"> 57 58 <!--[if IE 9]> 59 <link href="https://stuff.steplab.co/static/css/bootstrap-ie9.min.css" rel="stylesheet"> 60 <![endif]--> 61 62 <!--[if lte IE 8]> 63 <link href="https://stuff.steplab.co/static/css/bootstrap-ie8.min.css" rel="stylesheet"> 64
64<script src="https://stuff.steplab.co/static/js/[email protected]"></script>
64 65 <![endif]--> 66 67 <!--[if IE 9]> 68
68<script src="https://stuff.steplab.co/static/js/bootstrap-ie9.min.js"></script>
68 69 <![endif]--> 70 71 <!--[if lte IE 8]> 72
72<script src="https://stuff.steplab.co/static/js/bootstrap-ie8.min.js"></script>
72 73
73<script src="https://stuff.steplab.co/static/js/html5shiv.min.js"</script>
73 74
74<script src="https://stuff.steplab.co/static/js/respond.min.js"></script>
74 75 <![endif]--> 76 77 <link href="https://stuff.steplab.co/static/fa7/css/all.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://stuff.steplab.co/static/bootstrap-4.6.2-dist/css/bootstrap.min.css" /> 78 <link rel="stylesheet" href="https://stuff.steplab.co/static/css/selectize.bootstrap4.min.css" /> 79 <link rel="stylesheet" href="https://stuff.steplab.co/static/css/flatpickr-4.6.13.min.css" /> 80 <link rel="stylesheet" href="https://stuff.steplab.co/static/css/light.min.css"> 81 82 83 84 <style type="text/css">@font-face {font-family:'Lato';font-style:normal;font-weight:300;src:url(/cf-fonts/s/lato/5.2.7/latin/300/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:300;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/300/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:400;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/400/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:400;src:url(/cf-fonts/s/lato/5.2.7/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:700;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:700;src:url(/cf-fonts/s/lato/5.2.7/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:900;src:url(/cf-fonts/s/lato/5.2.7/latin/900/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:900;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/900/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}</style> 85 86 87 88 <link href="https://stuff.steplab.co/static/css/twemoji-amazing.css" rel="stylesheet"> 89 <link href="https://stuff.steplab.co/static/css/compiled-steplab-combined-1d75c3215b0eed7f2c561810ab2607fca55a5032-en_GB.css" rel="stylesheet"> 90 <link href="https://stuff.steplab.co/static/css/compiled-steplab-primer-6b1c5953eb83daeec09809e6dbc610ded6c3eafd-en_GB.css" rel="stylesheet"> 91 92 <style> 93 94 #intercom-backup-icon { 95 background-color: #C85021 !important; 96 width: 48px; 97 height: 48px; 98 position: fixed; 99 right: 20px; 100 bottom: 20px; 101 border-radius: 50%; 102 cursor: pointer; 103 z-index: 2; 104 } 105 106 @media (max-width: 559px) { 107 #intercom-backup-icon { 108 width: 54px; 109 height: 54px; 110 position: fixed; 111 right: 14px; 112 bottom: 24px; 113 } 114 } 115 116 #intercom-backup-icon:before { 117 content: '\f4a5'; 118 font-family: "Font Awesome 5 Pro"; 119 font-weight: 600; 120 color: white; 121 font-size: 1.7em; 122 left: 11px; 123 position: relative; 124 top: 7px; 125 } 126 127 .grecaptcha-badge { 128 display: none !important; 129 visibility: hidden !important; 130 } 131 132 #free-trial-expiry-banner { 133 display: flex; 134 gap: 0.5rem; 135 } 136 137 .free-trial-expiry-banner-message { 138 flex: 1 1 auto; 139 } 140 141 </style> 142 <style> 143 144 input::placeholder { 145 color: #717171 !important; 146 } 147 148 .form-control::-webkit-input-placeholder { 149 /* Chrome/Opera/Safari */ 150 color: #717171; 151 } 152 153 .form-control::-moz-placeholder { 154 /* Firefox 19+ */ 155 color: #717171; 156 } 157 158 .form-control:-ms-input-placeholder { 159 /* IE 10+ */ 160 color: #717171; 161 } 162 163 .form-control:-moz-placeholder { 164 /* Firefox 18- */ 165 color: #717171; 166 } 167 168 169 #main-content { 170 /* normally this is where the main content of the page goes, but on this page we want to override the default layout, hence: */ 171 display: none; 172 } 173 174 #toast-container { 175 top: 30px; 176 } 177 178 .mainContainer { 179 display: flex; 180 flex-direction: row; 181 background: #fbf0ef; 182 width: 100%; 183 height: 100vh; 184 overflow: hidden; 185 } 186 187 #authBox { 188 width: 100%; 189 background: white; 190 overflow-y: auto; 191 } 192 193 .authContainer { 194 margin: 10% auto; 195 width: 92%; 196 max-width: 405px; 197 } 198 199 200 #decorativeBox { 201 display: block; 202 } 203 204 #decorativeBox { 205 display: none; 206 margin: auto; 207 width: 50%; 208 max-height: 100vh; 209 } 210 211 #decorativeImage { 212 width: 100%; 213 max-height: 100%; 214 height: 100%; 215 } 216 217 #differentProviderButton { 218 cursor: pointer; 219 text-align: center; 220 } 221 222 .emailInputInitial { 223 display: block; 224 width: 100%; 225 height: calc(2em + 1rem); 226 padding: 0.375rem 0.75rem; 227 font-size: 1.2rem; 228 font-weight: 400; 229 color: #495057; 230 line-height: 1.5; 231 -webkit-appearance: none; 232 border: 1px #a20000; 233 background: var(--bg-page); 234 border-radius: 15px; 235 } 236 237 .emailCodeHelperCopy { 238 color: #6D7085; 239 font-size: 1.15rem; 240 line-height: 1.35; 241 } 242 243 .loginBackLink { 244 color: #6D7085; 245 } 246 247 .loginBackLink:hover, 248 .loginBackLink:focus { 249 color: var(--navy); 250 } 251 252 .loginPlainDivider { 253 border: 0; 254 border-top: 1px solid #e5e7eb; 255 } 256 257 .authContainer .btn.btn-action { 258 background-color: #C85021; 259 color: white; 260 } 261 262 .authContainer .btn.btn-action:hover { 263 background-color: #A94016; 264 color: white; 265 } 266 267 #magic-login { 268 font-size: 1.05rem; 269 } 270 271 @media only screen and (max-width: 1000px) { 272 .hideOnMobile { 273 display: none; 274 } 275 276 .countryContainer { 277 padding: 2%; 278 } 279 } 280 281 #flash_messages { 282 margin-top: 0 283 } 284 285 @media only screen and (min-width: 1000px) { 286 #decorativeBox { 287 display: flex; 288 flex-direction: column; 289 } 290 291 .authContainer { 292 margin-top: 12%; 293 margin-right: auto; 294 margin-left: auto; 295 296 width: 92%; 297 max-width: 405px; 298 } 299 300 #authBox { 301 width: 50%; 302 } 303 304 .hideOnDesktop { 305 display: none; 306 } 307 } 308 309 #regionInputGroup.input-group .selectize-input.input-active { 310 border-radius: 0; 311 } 312 313 fieldset { 314 display: contents; 315 } 316 </style> 317 <!--[if lt IE 9]> 318
318<script src="https://stuff.steplab.co/static/js/html5shiv.min.js"></script>
318 319
319<script src="https://stuff.steplab.co/static/js/respond.min.js"></script>
319 320 <![endif]--> 321 <!-- FAVICO --> 322 <meta name="apple-mobile-web-app-title" content="Steplab"> 323 <meta name="application-name" content="Steplab"> 324 325
325<script type="text/javascript"> 326 327 const playerOverlays = {}; 328 const playerMarkers = {}; 329 330 </script>
330 331 332<!-- Begin Intercom--> 333 334
334<script> 335 (function() { 336 337 function handleSupportLink(el) { 338 // change URL to /support/go 339 el.setAttribute('href', '/support/go'); 340 // change icon 341 const icon = el.querySelector('.icon'); 342 icon.classList.remove('far') 343 icon.classList.add('text-danger') 344 icon.classList.add('fas'); 345 } 346 347 function onIntercomFailed() { 348 // this might happen before the sidebar is loaded. 349 window._intercomFailed = true; 350 } 351 352 document.addEventListener('intercom:boot-failed', onIntercomFailed); 353 document.addEventListener('intercom:api-failed', onIntercomFailed); 354 })(); 355 </script>
355 356 357
357<script src="https://stuff.steplab.co/static/js/intercom.min.js"></script>
357 358 359
359<script> 360 361 try { 362 if (typeof window.Intercom !== 'function') { 363 throw new Error('Intercom not loaded'); 364 } 365 window.Intercom("boot", { 366 api_base: "https://api-iam.eu.intercom.io", 367 app_id: "advtosug", session_duration: 86400000, // 1 day 368 hide_default_launcher: false, 369 }); 370 371 // Probe API reachability from the parent frame. mode:'no-cors' resolves for any 372 // HTTP response (incl. 4xx) but rejects only on a true network failure (blocked domain). 373 // AbortController ensures a stalled request (packet drop etc.) still fires the event. 374 // Result is cached in localStorage for 5 minutes to avoid a probe on every page load. 375 (function() { 376 const CACHE_KEY = '_intercomProbe'; 377 const TTL_MS = 5 * 60 * 1000; 378 379 function fireApiFailed() { 380 document.dispatchEvent(new CustomEvent('intercom:api-failed', { 381 detail: { reason: 'api-unreachable' } 382 })); 383 } 384 385 var cached = null; 386 try { 387 const raw = localStorage.getItem(CACHE_KEY); 388 if (raw) { 389 const parsed = JSON.parse(raw); 390 if (Date.now() - parsed.ts < TTL_MS) cached = parsed.reachable; 391 } 392 } catch(e) {} 393 394 if (cached === false) { 395 fireApiFailed(); 396 } else if (cached === true) { 397 // reachable â skip probe 398 } else { 399 const controller = new AbortController(); 400 setTimeout(function() { controller.abort(); }, 5000); 401 fetch('https://api-iam.eu.intercom.io/messenger/web/ping', { 402 method: 'HEAD', 403 mode: 'no-cors', 404 signal: controller.signal 405 }).then(function() { 406 try { localStorage.setItem(CACHE_KEY, JSON.stringify({ reachable: true, ts: Date.now() })); } catch(e) {} 407 }).catch(function() { 408 try { localStorage.setItem(CACHE_KEY, JSON.stringify({ reachable: false, ts: Date.now() })); } catch(e) {} 409 fireApiFailed(); 410 }); 411 } 412 })(); 413 } catch(err) { 414 document.dispatchEvent(new CustomEvent('intercom:boot-failed', { detail: { error: err } })); 415 } 416 </script>
416 417<!-- End Intercom--> </head> 418 419 <body> 420 421 <!-- Google Tag Manager (noscript) -->
vendor: 84 bytes, lines 421-422
421 422 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
422GTM-PTNGH3J5
vendor: 115 bytes, lines 422-424
422" 423 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 424
424<!-- End Google Tag Manager (noscript) --> 425 426 <a class="skip-to-main-content-link" href="#authBox" onclick="remove_anchor_link()">Skip to content</a> 427 428 <div id="base-div" style=""> 429 430 <div id="mainContainer" class="mainContainer"> 431 <main id="authBox"> 432 <div class="text-center mb-3 mt-3 hideOnDesktop"> 433 <a title="Steplab home" href="/" class="d-block text-navy no-underline mb-3"> 434 <img src="https://stuff.steplab.co/static/images/sl-logo.png" width="50px" 435 alt=""/> 436 <div class="h4 mt-2"><strong>Steplab</strong></div> 437 </a> 438 </div> 439 440 <div style="margin-bottom: 70px; padding: 0 20px" class="mt-5"> 441 <div class="h1 text-center">Sign in to your <span class="hideOnMobile">Steplab </span> account</div> 442 <h1 class="sr-only">Sign in to your Steplab account</h1> 443 </div> 444 445 <div id="authContainerInitial" class="authContainer"> 446 447 <div id="regionIndicator" class="mb-5 flex-row align-items-center justify-content-between p-2" style="border-radius: 14px; border: 1px solid #e1e1e1; display: flex;"> 448 <div class="d-flex flex-row"> 449 <div class="h-100 align-self-baseline mr-2"> 450 <i class="fas fa-info-circle"></i> 451 </div> 452 <div class="text-left font-weight-light"> 453 You're signing into Steplab <span class="country-code-display">US</span> 454 </div> 455 </div> 456 457 <a href="" onclick="showRegionForm(event)" class="link loginBackLink">Change country</a> 458 </div> 459 460 <div id="regionInputGroup" class="input-group mb-5 bg-white" style="border-radius: 15px; display: none"> 461 <div class="input-group-prepend"> 462 <span class="input-group-text d-flex align-items-baseline"> 463 Select region 464 </span> 465 </div> 466 467 <label for="country_code_select" class="sr-only"> 468 Select region 469 </label> 470 471 <select name="country_code_select" id="country_code_select" class="do-selectize form-control update-dashboard-input"> 472 <option value=""></option> 473 <option value="AD"> 474 Andorra 475 </option> 476 <option value="AE"> 477 United Arab Emirates 478 </option> 479 <option value="AF"> 480 Afghanistan 481 </option> 482 <option value="AG"> 483 Antigua & Barbuda 484 </option> 485 <option value="AI"> 486 Anguilla 487 </option> 488 <option value="AL"> 489 Albania 490 </option> 491 <option value="AM"> 492 Armenia 493 </option> 494 <option value="AO"> 495 Angola 496 </option> 497 <option value="AQ"> 498 Antarctica 499 </option> 500 <option value="AR"> 501 Argentina 502 </option> 503 <option value="AS"> 504 Samoa (American) 505 </option> 506 <option value="AT"> 507 Austria 508 </option> 509 <option value="AU"> 510 Australia 511 </option> 512 <option value="AW"> 513 Aruba 514 </option> 515 <option value="AX"> 516 à land Islands 517 </option> 518 <option value="AZ"> 519 Azerbaijan 520 </option> 521 <option value="BA"> 522 Bosnia & Herzegovina 523 </option> 524 <option value="BB"> 525 Barbados 526 </option> 527 <option value="BD"> 528 Bangladesh 529 </option> 530 <option value="BE"> 531 Belgium 532 </option> 533 <option value="BF"> 534 Burkina Faso 535 </option> 536 <option value="BG"> 537 Bulgaria 538 </option> 539 <option value="BH"> 540 Bahrain 541 </option> 542 <option value="BI"> 543 Burundi 544 </option> 545 <option value="BJ"> 546 Benin 547 </option> 548 <option value="BL"> 549 St Barthelemy 550 </option> 551 <option value="BM"> 552 Bermuda 553 </option> 554 <option value="BN"> 555 Brunei 556 </option> 557 <option value="BO"> 558 Bolivia 559 </option> 560 <option value="BQ"> 561 Caribbean NL 562 </option> 563 <option value="BR"> 564 Brazil 565 </option> 566 <option value="BS"> 567 Bahamas 568 </option> 569 <option value="BT"> 570 Bhutan 571 </option> 572 <option value="BV"> 573 Bouvet Island 574 </option> 575 <option value="BW"> 576 Botswana 577 </option> 578 <option value="BY"> 579 Belarus 580 </option> 581 <option value="BZ"> 582 Belize 583 </option> 584 <option value="CA"> 585 Canada 586 </option> 587 <option value="CC"> 588 Cocos (Keeling) Islands 589 </option> 590 <option value="CD"> 591 Congo (Dem. Rep.) 592 </option> 593 <option value="CF"> 594 Central African Rep. 595 </option> 596 <option value="CG"> 597 Congo (Rep.) 598 </option> 599 <option value="CH"> 600 Switzerland 601 </option> 602 <option value="CI"> 603 Côte dâIvoire 604 </option> 605 <option value="CK"> 606 Cook Islands 607 </option> 608 <option value="CL"> 609 Chile 610 </option> 611 <option value="CM"> 612 Cameroon 613 </option> 614 <option value="CN"> 615 China 616 </option> 617 <option value="CO"> 618 Colombia 619 </option> 620 <option value="CR"> 621 Costa Rica 622 </option> 623 <option value="CU"> 624 Cuba 625 </option> 626 <option value="CV"> 627 Cape Verde 628 </option> 629 <option value="CW"> 630 Curaçao 631 </option> 632 <option value="CX"> 633 Christmas Island 634 </option> 635 <option value="CY"> 636 Cyprus 637 </option> 638 <option value="CZ"> 639 Czech Republic 640 </option> 641 <option value="DE"> 642 Germany 643 </option> 644 <option value="DJ"> 645 Djibouti 646 </option> 647 <option value="DK"> 648 Denmark 649 </option> 650 <option value="DM"> 651 Dominica 652 </option> 653 <option value="DO"> 654 Dominican Republic 655 </option> 656 <option value="DZ"> 657 Algeria 658 </option> 659 <option value="EC"> 660 Ecuador 661 </option> 662 <option value="EE"> 663 Estonia 664 </option> 665 <option value="EG"> 666 Egypt 667 </option> 668 <option value="EH"> 669 Western Sahara 670 </option> 671 <option value="ER"> 672 Eritrea 673 </option> 674 <option value="ES"> 675 Spain 676 </option> 677 <option value="ET"> 678 Ethiopia 679 </option> 680 <option value="FI"> 681 Finland 682 </option> 683 <option value="FJ"> 684 Fiji 685 </option> 686 <option value="FK"> 687 Falkland Islands 688 </option> 689 <option value="FM"> 690 Micronesia 691 </option> 692 <option value="FO"> 693 Faroe Islands 694 </option> 695 <option value="FR"> 696 France 697 </option> 698 <option value="GA"> 699 Gabon 700 </option> 701 <option value="GB"> 702 United Kingdom 703 </option> 704 <option value="GD"> 705 Grenada 706 </option> 707 <option value="GE"> 708 Georgia 709 </option> 710 <option value="GF"> 711 French Guiana 712 </option> 713 <option value="GG"> 714 Guernsey 715 </option> 716 <option value="GH"> 717 Ghana 718 </option> 719 <option value="GI"> 720 Gibraltar 721 </option> 722 <option value="GL"> 723 Greenland 724 </option> 725 <option value="GM"> 726 Gambia 727 </option> 728 <option value="GN"> 729 Guinea 730 </option> 731 <option value="GP"> 732 Guadeloupe 733 </option> 734 <option value="GQ"> 735 Equatorial Guinea 736 </option> 737 <option value="GR"> 738 Greece 739 </option> 740 <option value="GS"> 741 South Georgia & the South Sandwich Islands 742 </option> 743 <option value="GT"> 744 Guatemala 745 </option> 746 <option value="GU"> 747 Guam 748 </option> 749 <option value="GW"> 750 Guinea-Bissau 751 </option> 752 <option value="GY"> 753 Guyana 754 </option> 755 <option value="HK"> 756 Hong Kong 757 </option> 758 <option value="HM"> 759 Heard Island & McDonald Islands 760 </option> 761 <option value="HN"> 762 Honduras 763 </option> 764 <option value="HR"> 765 Croatia 766
766 </option> 767 <option value="HT"> 768 Haiti 769 </option> 770 <option value="HU"> 771 Hungary 772 </option> 773 <option value="ID"> 774 Indonesia 775 </option> 776 <option value="IE"> 777 Ireland 778 </option> 779 <option value="IL"> 780 Israel 781 </option> 782 <option value="IM"> 783 Isle of Man 784 </option> 785 <option value="IN"> 786 India 787 </option> 788 <option value="IO"> 789 British Indian Ocean Territory 790 </option> 791 <option value="IQ"> 792 Iraq 793 </option> 794 <option value="IR"> 795 Iran 796 </option> 797 <option value="IS"> 798 Iceland 799 </option> 800 <option value="IT"> 801 Italy 802 </option> 803 <option value="JE"> 804 Jersey 805 </option> 806 <option value="JM"> 807 Jamaica 808 </option> 809 <option value="JO"> 810 Jordan 811 </option> 812 <option value="JP"> 813 Japan 814 </option> 815 <option value="KE"> 816 Kenya 817 </option> 818 <option value="KG"> 819 Kyrgyzstan 820 </option> 821 <option value="KH"> 822 Cambodia 823 </option> 824 <option value="KI"> 825 Kiribati 826 </option> 827 <option value="KM"> 828 Comoros 829 </option> 830 <option value="KN"> 831 St Kitts & Nevis 832 </option> 833 <option value="KP"> 834 Korea (North) 835 </option> 836 <option value="KR"> 837 Korea (South) 838 </option> 839 <option value="KW"> 840 Kuwait 841 </option> 842 <option value="KY"> 843 Cayman Islands 844 </option> 845 <option value="KZ"> 846 Kazakhstan 847 </option> 848 <option value="LA"> 849 Laos 850 </option> 851 <option value="LB"> 852 Lebanon 853 </option> 854 <option value="LC"> 855 St Lucia 856 </option> 857 <option value="LI"> 858 Liechtenstein 859 </option> 860 <option value="LK"> 861 Sri Lanka 862 </option> 863 <option value="LR"> 864 Liberia 865 </option> 866 <option value="LS"> 867 Lesotho 868 </option> 869 <option value="LT"> 870 Lithuania 871 </option> 872 <option value="LU"> 873 Luxembourg 874 </option> 875 <option value="LV"> 876 Latvia 877 </option> 878 <option value="LY"> 879 Libya 880 </option> 881 <option value="MA"> 882 Morocco 883 </option> 884 <option value="MC"> 885 Monaco 886 </option> 887 <option value="MD"> 888 Moldova 889 </option> 890 <option value="ME"> 891 Montenegro 892 </option> 893 <option value="MF"> 894 St Martin (French) 895 </option> 896 <option value="MG"> 897 Madagascar 898 </option> 899 <option value="MH"> 900 Marshall Islands 901 </option> 902 <option value="MK"> 903 North Macedonia 904 </option> 905 <option value="ML"> 906 Mali 907 </option> 908 <option value="MM"> 909 Myanmar (Burma) 910 </option> 911 <option value="MN"> 912 Mongolia 913 </option> 914 <option value="MO"> 915 Macau 916 </option> 917 <option value="MP"> 918 Northern Mariana Islands 919 </option> 920 <option value="MQ"> 921 Martinique 922 </option> 923 <option value="MR"> 924 Mauritania 925 </option> 926 <option value="MS"> 927 Montserrat 928 </option> 929 <option value="MT"> 930 Malta 931 </option> 932 <option value="MU"> 933 Mauritius 934 </option> 935 <option value="MV"> 936 Maldives 937 </option> 938 <option value="MW"> 939 Malawi 940 </option> 941 <option value="MX"> 942 Mexico 943 </option> 944 <option value="MY"> 945 Malaysia 946 </option> 947 <option value="MZ"> 948 Mozambique 949 </option> 950 <option value="NA"> 951 Namibia 952 </option> 953 <option value="NC"> 954 New Caledonia 955 </option> 956 <option value="NE"> 957 Niger 958 </option> 959 <option value="NF"> 960 Norfolk Island 961 </option> 962 <option value="NG"> 963 Nigeria 964 </option> 965 <option value="NI"> 966 Nicaragua 967 </option> 968 <option value="NL"> 969 Netherlands 970 </option> 971 <option value="NO"> 972 Norway 973 </option> 974 <option value="NP"> 975 Nepal 976 </option> 977 <option value="NR"> 978 Nauru 979 </option> 980 <option value="NU"> 981 Niue 982 </option> 983 <option value="NZ"> 984 New Zealand 985 </option> 986 <option value="OM"> 987 Oman 988 </option> 989 <option value="PA"> 990 Panama 991 </option> 992 <option value="PE"> 993 Peru 994 </option> 995 <option value="PF"> 996 French Polynesia 997 </option> 998 <option value="PG"> 999 Papua New Guinea 1000 </option> 1001 <option value="PH"> 1002 Philippines 1003 </option> 1004 <option value="PK"> 1005 Pakistan 1006 </option> 1007 <option value="PL"> 1008 Poland 1009 </option> 1010 <option value="PM"> 1011 St Pierre & Miquelon 1012 </option> 1013 <option value="PN"> 1014 Pitcairn 1015 </option> 1016 <option value="PR"> 1017 Puerto Rico 1018 </option> 1019 <option value="PS"> 1020 Palestine 1021 </option> 1022 <option value="PT"> 1023 Portugal 1024 </option> 1025 <option value="PW"> 1026 Palau 1027 </option> 1028 <option value="PY"> 1029 Paraguay 1030 </option> 1031 <option value="QA"> 1032 Qatar 1033 </option> 1034 <option value="RE"> 1035 Réunion 1036 </option> 1037 <option value="RO"> 1038 Romania 1039 </option> 1040 <option value="RS">
1041 Serbia 1042 </option> 1043 <option value="RU"> 1044 Russia 1045 </option> 1046 <option value="RW"> 1047 Rwanda 1048 </option> 1049 <option value="SA"> 1050 Saudi Arabia 1051 </option> 1052 <option value="SB"> 1053 Solomon Islands 1054 </option> 1055 <option value="SC"> 1056 Seychelles 1057 </option> 1058 <option value="SD"> 1059 Sudan 1060 </option> 1061 <option value="SE"> 1062 Sweden 1063 </option> 1064 <option value="SG"> 1065 Singapore 1066 </option> 1067 <option value="SH"> 1068 St Helena 1069 </option> 1070 <option value="SI"> 1071 Slovenia 1072 </option> 1073 <option value="SJ"> 1074 Svalbard & Jan Mayen 1075 </option> 1076 <option value="SK"> 1077 Slovakia 1078 </option> 1079 <option value="SL"> 1080 Sierra Leone 1081 </option> 1082 <option value="SM"> 1083 San Marino 1084 </option> 1085 <option value="SN"> 1086 Senegal 1087 </option> 1088 <option value="SO"> 1089 Somalia 1090 </option> 1091 <option value="SR"> 1092 Suriname 1093 </option> 1094 <option value="SS"> 1095 South Sudan 1096 </option> 1097 <option value="ST"> 1098 Sao Tome & Principe 1099 </option> 1100 <option value="SV"> 1101 El Salvador 1102 </option> 1103 <option value="SX"> 1104 St Maarten (Dutch) 1105 </option> 1106 <option value="SY"> 1107 Syria 1108 </option> 1109 <option value="SZ"> 1110 Eswatini (Swaziland) 1111 </option> 1112 <option value="TC"> 1113 Turks & Caicos Is 1114 </option> 1115 <option value="TD"> 1116 Chad 1117 </option> 1118 <option value="TF"> 1119 French S. Terr. 1120 </option> 1121 <option value="TG"> 1122 Togo 1123 </option> 1124 <option value="TH"> 1125 Thailand 1126 </option> 1127 <option value="TJ"> 1128 Tajikistan 1129 </option> 1130 <option value="TK"> 1131 Tokelau 1132 </option> 1133 <option value="TL"> 1134 East Timor 1135 </option> 1136 <option value="TM"> 1137 Turkmenistan 1138 </option> 1139 <option value="TN"> 1140 Tunisia 1141 </option> 1142 <option value="TO"> 1143 Tonga 1144 </option> 1145 <option value="TR"> 1146 Turkey 1147 </option> 1148 <option value="TT"> 1149 Trinidad & Tobago 1150 </option> 1151 <option value="TV"> 1152 Tuvalu 1153 </option> 1154 <option value="TW"> 1155 Taiwan 1156 </option> 1157 <option value="TZ"> 1158 Tanzania 1159 </option> 1160 <option value="UA"> 1161 Ukraine 1162 </option> 1163 <option value="UG"> 1164 Uganda 1165 </option> 1166 <option value="UM"> 1167 US minor outlying islands 1168 </option> 1169 <option value="US"> 1170 United States 1171 </option> 1172 <option value="UY"> 1173 Uruguay 1174 </option> 1175 <option value="UZ"> 1176 Uzbekistan 1177 </option> 1178 <option value="VA"> 1179 Vatican City 1180 </option> 1181 <option value="VC"> 1182 St Vincent 1183 </option> 1184 <option value="VE"> 1185 Venezuela 1186 </option> 1187 <option value="VG"> 1188 Virgin Islands (UK) 1189 </option> 1190 <option value="VI"> 1191 Virgin Islands (US) 1192 </option> 1193 <option value="VN"> 1194 Vietnam 1195 </option> 1196 <option value="VU"> 1197 Vanuatu 1198 </option> 1199 <option value="WF"> 1200 Wallis & Futuna 1201 </option> 1202 <option value="WS"> 1203 Samoa (western) 1204 </option> 1205 <option value="YE"> 1206 Yemen 1207 </option> 1208 <option value="YT"> 1209 Mayotte 1210 </option> 1211 <option value="ZA"> 1212 South Africa 1213 </option> 1214 <option value="ZM"> 1215 Zambia 1216 </option> 1217 <option value="ZW"> 1218 Zimbabwe 1219 </option> 1220 </select> 1221 </div> 1222 1223 <div id="initLoginFormBody"> 1224 1225 <form id="emailFormInitial" onsubmit="continueWithEmail(event)" class="mt-5"> 1226 <fieldset> 1227 <legend class="sr-only">Continue signing in with your email address</legend> 1228 <div class="form-group input-container "> 1229 <label for="emailFormInitial_email" class="sr-only">Email address</label> 1230 1231 1232 1233 1234 <input type="email" class="form-control form-control-lg clearOnFocus" required name="email" id="emailFormInitial_email" placeholder="Email address" autocomplete="username webauthn"/ > 1235 <div role="status" class="invalid-feedback"></div> 1236 </div> 1237 1238 <div class="form-group input-container "> 1239 <button class="btn btn-primary btn-lg btn-block btn-lg btn-action mt-4" name="submit_button" id="emailFormInitial_submit_button">Continue</button> <div role="status" class="invalid-feedback"></div> 1240 </div> 1241 1242 1243 </fieldset> 1244 </form> 1245 1246 <div class="d-flex align-items-center mb-4 mt-4"> 1247 <hr class="loginPlainDivider flex-grow-1 m-0" aria-hidden="true">
1248 <span class="sr-only">or</span> 1249 </div> 1250 1251 <fieldset> 1252 <button 1253id="passkey-login-button" class="d-block text-navy no-underline mb-3 passkey-link-button sso-button btn btn-primary btn-block mt-2 d-flex flex-row justify-content-between px-3" 1254 title="Sign in with passkey" 1255 > 1256 <i class="slab-icon icon-slab-passkey align-self-center ssoBrandIcon"></i> 1257 <div>Sign in with passkey</div> 1258 <span class="align-self-center ssoBrandIcon"></span> 1259 </button> 1260 1261 1262 <legend class="sr-only">Sign-in with a Single Sign-On (SSO) Provider</legend> 1263 1264 1265 1266 <a href="/auth/sso/login/google?force=true" class="d-block text-navy no-underline mb-3 sso-button btn btn-primary btn-block mt-2 d-flex flex-row justify-content-between px-3" title="Continue with Google"> 1267 <img class="align-self-center ssoBrandIcon" 1268 src="https://stuff.steplab.co/static/images/google-icon.svg" 1269 alt="" 1270 > 1271 1272 <div> 1273 Sign in with Google 1274 </div> 1275 1276 <span class="align-self-center ssoBrandIcon"></span> 1277 </a> 1278 1279 1280 1281 1282 <a href="/auth/sso/login/microsoft?force=true" class="d-block text-navy no-underline mb-3 sso-button btn btn-primary btn-block mt-2 d-flex flex-row justify-content-between px-3" title="Continue with Microsoft"> 1283 <img class="align-self-center ssoBrandIcon" 1284 src="https://stuff.steplab.co/static/images/microsoft-icon.svg" 1285 alt="" 1286 > 1287 1288 <div> 1289 Sign in with Microsoft 1290 </div> 1291 1292 <span class="align-self-center ssoBrandIcon"></span> 1293 </a> 1294 1295 1296 1297 1298 1299 1300 <div class="d-block text-navy no-underline mb-3 sso-button ambition-expander-container mt-2"> 1301 <button 1302 class="ambition-expander-button d-flex flex-row justify-content-between px-3 btn btn-primary btn-block enter-click collapsed" 1303 data-toggle="collapse" 1304 data-target="#ambition-expander-button-17902425152283559_v4_msq-collapser" 1305 aria-expanded="false" 1306 aria-controls="#ambition-expander-button-17902425152283559_v4_msq-collapser" 1307 id="ambition-expander-button-17902425152283559_v4_msq" 1308 > 1309 1310 <img class="align-self-center ssoBrandIcon ambition-sso-top-brand-icon" 1311 src="https://stuff.steplab.co/static/images/ambition_icon_square_vector.svg" 1312 alt="" 1313 > 1314 1315 <div> 1316 Sign in with Ambition Institute 1317 </div> 1318 <span class="align-self-center ssoBrandIcon"> 1319 <i class="fas fa-plus plusMinusIcon text-muted-darker"></i> 1320 </span> 1321 </button> 1322 1323 <div 1324 class="collapse px-3" 1325 id="ambition-expander-button-17902425152283559_v4_msq-collapser" 1326 role="region" 1327 aria-label="Ambition Institute sign-in options" 1328 aria-hidden="true" 1329 > 1330 1331 1332 1333 <a href="/auth/sso/login/ambition?force=true" class="d-block text-navy no-underline mb-3 sso-button btn btn-primary btn-block mt-2 d-flex flex-row justify-content-between px-3" title="Continue with My Ambition"> 1334 <img class="align-self-center ssoBrandIcon" 1335 src="https://stuff.steplab.co/static/images/ambition_icon_square_vector.svg" 1336 alt="" 1337 > 1338 1339 <div> 1340 My Ambition 1341 <div class="small ssoInfoText">Ambition NPQ, IC</div> 1342 </div> 1343 1344 <span class="align-self-center ssoBrandIcon"></span> 1345 </a> 1346 1347 1348 1349 <a href="/auth/sso/login/myect?force=true" class="d-block text-navy no-underline mb-3 sso-button btn btn-primary btn-block mt-2 d-flex flex-row justify-content-between px-3" title="Continue with My ECT"> 1350 <img class="align-self-center ssoBrandIcon" 1351 src="https://stuff.steplab.co/static/images/myect_icon_square_vector.svg" 1352 alt="" 1353 > 1354 1355 <div> 1356 My ECT 1357 <div class="small ssoInfoText">Ambition ECF</div> 1358 </div> 1359
1360 <span class="align-self-center ssoBrandIcon"></span> 1361 </a> 1362 1363 1364 1365 <a href="/auth/sso/login/mtt?force=true" class="d-block text-navy no-underline mb-3 sso-button btn btn-primary btn-block mt-2 d-flex flex-row justify-content-between px-3" title="Continue with My Teacher Training"> 1366 <img class="align-self-center ssoBrandIcon" 1367 src="https://stuff.steplab.co/static/images/myteachertraining_icon_square_vector.svg" 1368 alt="" 1369 > 1370 1371 <div> 1372 My Teacher Training 1373 <div class="small ssoInfoText">Ambition ITT</div> 1374 </div> 1375 1376 <span class="align-self-center ssoBrandIcon"></span> 1377 </a> 1378 1379 </div> 1380 </div> 1381 1382
1382<script> 1383 // run when jquery loads 1384 document.addEventListener('DOMContentLoaded', function () { 1385 1386 const ambitionSsoContainer = $('#ambition-expander-button-17902425152283559_v4_msq').closest('.ambition-expander-container'); 1387 const ambitionSsoPlusIcon = ambitionSsoContainer.find('.plusMinusIcon') 1388 const ambitionSsoTopBrandIcon = ambitionSsoContainer.find('.ambition-sso-top-brand-icon'); 1389 1390 $('#ambition-expander-button-17902425152283559_v4_msq-collapser').on('show.bs.collapse', function (e) { 1391 ambitionSsoPlusIcon.removeClass('fa-plus').addClass('fa-minus'); 1392 ambitionSsoTopBrandIcon.css('opacity', '0'); 1393 }); 1394 $('#ambition-expander-button-17902425152283559_v4_msq-collapser').on('hide.bs.collapse', function (e) { 1395 ambitionSsoPlusIcon.removeClass('fa-minus').addClass('fa-plus'); 1396 ambitionSsoTopBrandIcon.css('opacity', '1'); 1397 }); 1398 }); 1399 1400 1401 </script>
1401 1402 1403 1404 1405 1406 <a href="/auth/sso/login/tf?force=true" class="d-block text-navy no-underline mb-3 sso-button btn btn-primary btn-block mt-2 d-flex flex-row justify-content-between px-3" title="Continue with My Teach First"> 1407 <img class="align-self-center ssoBrandIcon" 1408 src="https://stuff.steplab.co/static/images/tf-icon.png" 1409 alt="" 1410 > 1411 1412 <div> 1413 Sign in with My Teach First 1414 </div> 1415 1416 <span class="align-self-center ssoBrandIcon"></span> 1417 </a> 1418 1419 </fieldset> 1420 </div> 1421 </div> 1422 1423 <div id="authContainerEmail" class="authContainer" style="display: none;"> 1424 <form id="formSignIn" method="POST"> 1425 <fieldset> 1426 <legend class="sr-only">Sign-in with your email and password</legend> 1427 <div class="form-group input-container "> 1428 <label for="formSignIn_email">Email address</label> 1429 1430 1431 1432 1433 <input type="email" class="form-control form-control-lg" required name="email" id="formSignIn_email" autocomplete="username webauthn"/ > 1434 <div role="status" class="invalid-feedback"></div> 1435 </div> 1436 1437 <div class="form-group input-container "> 1438 <label for="formSignIn_password">Password <span class="text-muted link" onclick="password_reminder()"><i class="far fa-info-circle fa-sm"></i></span></label> 1439 1440 1441 1442 1443 <input type="password" class="form-control form-control-lg" required name="password" id="formSignIn_password" autocomplete="off" / > 1444 <div role="status" class="invalid-feedback"></div> 1445 </div>
vendor: 108 bytes, lines 1445-1449
1445 1446 1447 1448 1449<script src='https://www.google.com/recaptcha/api.js' async defer></script>
1450<div class="g-recaptcha" data-callback="onRecaptchaCompleted" data-sitekey="6LfNi7gqAAAAAAyxVI57dAPGYXok0UN6QNFhL29y" data-size="invisible" id="recaptcha"></div> 1451 1452 1453 <div class="form-group input-container "> 1454 <button class="btn btn-primary btn-lg login_button btn-block btn-lg btn-action" name="submit_button" id="formSignIn_submit_button">Sign in</button> <div role="status" class="invalid-feedback"></div> 1455 </div> 1456 1457 1458 </fieldset> 1459 </form> 1460 1461 <div class="text-center"> 1462 1463 <span class="d-block mt-1 mb-2"> 1464 <a href="https://app.steplab.co/auth/users/forgottenpassword" 1465 onClick="append_email_param()" 1466 id="forgotten-password" 1467 class="text-dark"> 1468 <b>Forgotten your password?</b> 1469 </a> 1470 </span> 1471 1472 <div class="d-flex align-items-center mb-5 mt-5"> 1473 <hr class="loginPlainDivider flex-grow-1 m-0" aria-hidden="true"> 1474 <span class="sr-only">or</span> 1475 </div> 1476 1477 <div class="d-block mt-1 mb-2"> 1478 <a href="https://app.steplab.co/auth/users/request-sign-in-link" 1479 onClick="append_email_param()" 1480 id="magic-login" 1481 class="btn btn-lg btn-block btn-orange-inverse"> 1482 <i class="far fa-envelope fa-fw mr-2" aria-hidden="true"></i> 1483 <b>Email me a code to sign in</b> 1484 </a> 1485 <p class="emailCodeHelperCopy mt-3 mb-0 px-2"> 1486 No password needed â we'll send a one-time code to your inbox. 1487 </p> 1488 </div> 1489 1490 <span class="d-block mt-5"> 1491 <a href="/auth/login" 1492 class="loginBackLink"> 1493 Back 1494 </a> 1495 </span> 1496 </div> 1497 1498 <div style="position: absolute; bottom: 0; max-width: 400px"> 1499 <p class="text-muted small mt-2 text-left"> 1500 We use reCAPTCHA to make sure you're a real human, and the Google <a href="https://policies.google.com/privacy" class="text-decoration-underline">Privacy Policy</a> and <a href="https://policies.google.com/terms" class="text-decoration-underline">Terms of Service</a> apply. 1501 </p> 1502 1503 </div> 1504 </div> 1505 </main> 1506 1507 <aside id="decorativeBox"> 1508 <div class="text-center mb-3 mt-3 hideOnMobile"> 1509 <a title="Steplab home" href="/about" class="d-block text-navy no-underline mb-3"> 1510 <img src="https://stuff.steplab.co/static/images/sl-logo.png" width="70px" 1511 alt=""/> 1512 <div class="h3 no-underline mt-2"><strong>Steplab</strong></div> 1513 </a> 1514 </div> 1515 1516 <img id="decorativeImage" alt="" 1517 src="https://stuff.steplab.co/static/images/family_steps_borderless.svg"> 1518 </aside> 1519 </div> 1520 1521 <template id="two-factor-code-template"> 1522 <div class="form-group input-container "> 1523 <label for="two-factor-code-input">Two-factor code from your authenticator app</label> 1524 1525 1526 1527 1528 <input type="text" class="form-control form-control-lg" required name="two_factor_code" id="two-factor-code-input" autocomplete="off" / > 1529<div class="text-muted small field-description" for="two-factor-code-input">This will be from an app such as Google Authenticator, Apple Passwords or a password manager. It is not sent via email.</div> <div role="status" class="invalid-feedback"></div> 1530 </div> 1531 1532 </template> 1533 1534 1535 <div id="top-header"> 1536 </div> 1537 1538 <div id="main-content"> 1539 1540 <div id="main-wrapper"> 1541 1542 1543 <div id="main-wrapper-primary"> 1544 <div role="region" aria-label="Notifications" id="main-header"> 1545 1546 <div id="toast-container"></div> 1547
1547<script> 1548 const queuedFlashes = [] 1549 1550 if (typeof loaded_ste !== 'undefined') { 1551 runQueuedFlashMessages(queuedFlashes); 1552 } else { 1553 // document on ready 1554 document.addEventListener('DOMContentLoaded', function() { 1555 runQueuedFlashMessages(queuedFlashes); 1556 }); 1557 } 1558 </script>
1558 1559 </div> 1560 1561 </div> 1562 </div> 1563 1564 1565 </div> 1566 </div> 1567 1568 1569 1570 <!-- DEFAULT SCRIPTS --> 1571 1572
1572<script src="https://stuff.steplab.co/static/js/jquery-3.7.1.min.js"></script>
1572 1573 1574
1574<script src="https://stuff.steplab.co/static/bootstrap-4.6.2-dist/js/bootstrap.bundle.min.js"></script>
1574 1575 1576
1576<script src="https://stuff.steplab.co/static/js/autosize-6.0.1.min.js"></script>
1576 1577
1577<script src="https://stuff.steplab.co/static/js/selectize.min.js"></script>
1577 1578
1578<script src="https://stuff.steplab.co/static/js/compiled-selectize-no-results-plugin-c89ee82c43224919d222a639cb5f230762926005-en_GB.js"></script>
1578 1579
1579<script src="https://stuff.steplab.co/static/js/selectize-preserve-search-plugin.js"></script>
1579 1580 1581
1581<script src="https://stuff.steplab.co/static/js/flatpickr-4.6.13.min.js"></script>
1581 1582
1582<script src="https://stuff.steplab.co/static/js/shortcut-buttons-flatpickr.min.js"></script>
1582 1583
1583<script src="https://stuff.steplab.co/static/js/linkify.steplab-v0001.js"></script>
1583 1584
1584<script src="https://stuff.steplab.co/static/js/linkify-jquery.min.js"></script>
1584 1585 1586
1586<script>const csrf_token = "IjYzN2IxOWVkYzE1MTllMzI0ZWU5NGJlZGNhM2IwZGM3NjU0Y2UwZjEi.arTu0w._XuNbKvzSg3tGLYBlpJo0wLdKwA";</script>
1586 1587 1588
1588<script> 1589 function setCookie(name, value, expiryDays) { 1590 const date = new Date(); 1591 const expires = date.setTime(date.getTime() + (expiryDays * 24 * 60 * 60 * 1000)); 1592 const domain = window.location.hostname; 1593 document.cookie = `${name}=${value};domain=${domain};expires=${expires};path=/`; 1594 } 1595 1596 function deleteCookie(cookieName) { 1597 document.cookie = cookieName + "=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT"; 1598 } 1599 1600 </script>
1600 1601 1602
1602<script> 1603 const highContrastCookieName = "highcontrastmode"; 1604 const highContrastStyleSheetId = "high-contrast-stylesheet"; 1605 1606 function injectHighContrastModeStyle() { 1607 const link = document.createElement("link"); 1608 link.href = "https://stuff.steplab.co/static/css/high-contrast-1788298715653892_414ztj.css"; 1609 link.type = "text/css"; 1610 link.rel = "stylesheet"; 1611 link.id = highContrastStyleSheetId; 1612 document.getElementsByTagName("head")[0].appendChild(link); 1613 } 1614 1615 </script>
1615 1616 1617
1617<script> 1618 const selectors = [ 1619 '.sl-wrap .sl-body .sl-title a', 1620 '.sl-wrap .sl-body .sl-title [tabindex]:not([data-help])', 1621 'div.recent_stats_content_role > div.sl-wrap[tabindex="0"]', 1622 '.helptt-icon' 1623 ]; 1624 $(document).on('mousedown', selectors.join(', '), function(event) { 1625 event.preventDefault(); 1626 event.stopPropagation(); 1627 }); 1628 </script>
1628 1629 1630
1630<script> 1631 var currentDialog = ''; 1632 1633 $(document).on('show.bs.modal', '.modal', function(){ 1634 targetDialog = $(this); 1635 if (!currentDialog.length) { 1636 } else { 1637 targetDialog.data('previous-dialog', currentDialog); 1638 currentDialog.find('.modal-dialog').addClass('aside'); 1639 currentDialog.addClass('aside'); 1640 var stackedDialogCount = $('.modal.show .modal-dialog.aside').length; 1641 currentDialog.find('.modal-dialog').addClass('aside-' + ((stackedDialogCount - 1) % 5)); 1642 } 1643 currentDialog = targetDialog; 1644 }); 1645 1646 $(document).on('hide.bs.modal', '.modal', function(){ 1647 var $dialog = $(this); 1648 var previousDialog = $dialog.data('previous-dialog'); 1649 if (previousDialog){ 1650 // console.log('removing aside from previousdialog', previousDialog); 1651 previousDialog.find('.modal-dialog').removeClass('aside'); 1652 previousDialog.removeClass('aside'); 1653 $dialog.data('previous-dialog', undefined); 1654 // console.log('setting currentDialog to', previousDialog); 1655 currentDialog = previousDialog; 1656 if (!$(currentDialog).parents('.modal-nofocus').length) { 1657 $(currentDialog).focus(); 1658 } 1659 } else { 1660 // console.log('setting currentDialog to blank'); 1661 currentDialog = '' 1662 } 1663 }); 1664 1665 $(document).on('hidden.bs.modal', '.modal', function(){ 1666 if ($('.modal:visible').length) { 1667 $('body').addClass('modal-open'); 1668 } else { 1669 currentDialog = ''; 1670 } 1671 }); 1672 </script>
1672 1673 1674
1674<script> 1675 const _SLAB_SCRIPT_PATHS = {"vjs_css": "css/vjs-1.0.0.css"}; 1676 const _DYNAMIC_SLAB_SCRIPT_PATHS = {"vjs_lens_css": "https://stuff.steplab.co/static/css/compiled-videojs-lens-e6d00036c1be1ad87aec5f13862a9a229a5be446-en_GB.css", "vjs_lens_js": "https://stuff.steplab.co/static/js/compiled-videojs-lens-04fd990429eacc4cbd00fe84195bbb684f83c19e-en_GB.js", "vjs_transcribe_css": "https://stuff.steplab.co/static/css/compiled-videojs-vjstranscribe-43e28d57e79b28b9b87312e69ee15327f139ca56-en_GB.css", "vjs_transcribe_js": "https://stuff.steplab.co/static/js/compiled-videojs-vjstranscribe-489d913153b325593767905d29720f17b093c3c3-en_GB.js"}; 1677 const _USER_KEY = ""; 1678 </script>
1678 1679 1680 1681
1681<script>var loaded_ste; var loaded_stf=true;</script>
1681 1682
1682<script src="https://stuff.steplab.co/static/js/compiled-steplab-essential-eb8d2c7ac39409d0f3b282e0a758d92885707e9e-en_GB.js" onload="loaded_ste=true;"></script>
1682 1683
1683<script> 1684 if (!(loaded_stf && loaded_ste)) { 1685 alert(`Failed to load scripts. Please check your internet connection.`) 1686 } 1687 </script>
1687 1688
1688<script> 1689 var current_locale = "en_GB"; 1690 </script>
1690 1691 1692 1693 1694 1695 1696 <!-- Begin PostHog --> 1697
1697<script> 1698 !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug getPageViewId captureTraceFeedback captureTraceMetric".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); 1699window.steplabPosthog = (function () { 1700 var PAGEVIEW_SAMPLE_STORAGE_KEY = "steplab-ph-pageview-sample"; 1701 var IDENTIFY_REFRESH_STORAGE_KEY = "steplab-ph-identify-refresh"; 1702 var IDENTIFY_REFRESH_INTERVAL_MS = 24 * 60 * 60 * 1000; 1703 // PostHog sessions end after 30 idle minutes, so a session still active at a 1704 // day / week rollover spans it. One kept pageview per 30-minute window keeps 1705 // the later bucket populated; 30 minutes so half-hour timezones are covered. 1706 var KEEP_WINDOW_MS = 30 * 60 * 1000; 1707 1708 // localStorage is shared across tabs, like the PostHog session id, so every 1709 // tab agrees on the sampling decision. Memory fallback once storage has 1710 // refused a write (blocked or full), otherwise a failed write followed by a 1711 // null read would make every pageview look like a session's first. 1712 var memoryStore = {}; 1713 var storageWriteFailed = false; 1714 1715 function parseJson(raw) { 1716 if (!raw) { 1717 return null; 1718 } 1719 try { 1720 return JSON.parse(raw); 1721 } catch (e) { 1722 return null; 1723 } 1724 } 1725 1726 function readJson(key) { 1727 try { 1728 var persisted = window.localStorage.getItem(key); 1729 if (persisted === null && storageWriteFailed) { 1730 return parseJson(memoryStore[key]); 1731 } 1732 return parseJson(persisted); 1733 } catch (e) { 1734 return parseJson(memoryStore[key]); 1735 } 1736 } 1737 1738 function writeJson(key, value) { 1739 var raw = JSON.stringify(value); 1740 memoryStore[key] = raw; 1741 try { 1742 window.localStorage.setItem(key, raw); 1743 } catch (e) { 1744 storageWriteFailed = true; 1745 } 1746 } 1747 1748 function createPageviewSampler(sampleRate) { 1749 return function (event) { 1750 if (!event || event.event !== "$pageview") { 1751 return event; 1752 } 1753 var props = event.properties || {}; 1754 var sessionId = String(props.$session_id || ""); 1755 var window = Math.floor(Date.now() / KEEP_WINDOW_MS); 1756 var stored = readJson(PAGEVIEW_SAMPLE_STORAGE_KEY); 1757 var isSessionFirst = stored === null || stored.sessionId !== sessionId; 1758 var state = isSessionFirst 1759 ? { 1760 sessionId: sessionId, 1761 keep: Math.random() < sampleRate, 1762 rate: sampleRate, 1763 window: window, 1764 } 1765 : stored; 1766 var isWindowFirst = !isSessionFirst && state.window !== window; 1767 var alwaysKept = isSessionFirst || isWindowFirst; 1768 1769 if (!alwaysKept && !state.keep) { 1770 return null; 1771 } 1772 1773 state.window = window; 1774 writeJson(PAGEVIEW_SAMPLE_STORAGE_KEY, state); 1775 1776 // Decisions persisted before `rate` existed fall back to the live config. 1777 props.pageview_sample_rate = 1778 typeof state.rate === "number" ? state.rate : sampleRate; 1779 props.pageview_is_session_first = isSessionFirst; 1780 props.pageview_always_kept = alwaysKept; 1781 event.properties = props; 1782 return event; 1783 }; 1784 } 1785 1786 // options: { distinctId, personProperties, personPropertiesOnce, 1787 // group: { type, key, properties } | undefined } 1788 function identifyIfChanged(posthog, options) { 1789 var group = options.group; 1790 var groupKey = group ? group.key : null; 1791 var stamp = readJson(IDENTIFY_REFRESH_STORAGE_KEY); 1792 1793 var isNewPerson = posthog.get_distinct_id() !== options.distinctId; 1794 var isNewGroup = !!group && posthog.getGroups()[group.type] !== group.key; 1795 var isStale = 1796 stamp === null || 1797 stamp.distinctId !== options.distinctId || 1798 stamp.groupKey !== groupKey || 1799 Date.now() - stamp.at > IDENTIFY_REFRESH_INTERVAL_MS; 1800 var sendProperties = isNewPerson || isNewGroup || isStale; 1801 1802 if (sendProperties) { 1803 posthog.identify( 1804 options.distinctId, 1805 options.personProperties, 1806 options.personPropertiesOnce 1807 ); 1808 } 1809 1810 if (group) { 1811 if (sendProperties) { 1812 posthog.group(group.type, group.key, group.properties); 1813 } else { 1814 posthog.group(group.type, group.key); 1815 } 1816 } 1817 1818 if (sendProperties) { 1819 writeJson(IDENTIFY_REFRESH_STORAGE_KEY, { 1820 distinctId: options.distinctId, 1821 groupKey: groupKey, 1822 at: Date.now(), 1823 }); 1824 } 1825 1826 return sendProperties; 1827 } 1828 1829 return { 1830 createPageviewSampler: createPageviewSampler, 1831 identifyIfChanged: identifyIfChanged, 1832 }; 1833})(); posthog.init("phc_m9DuBHabUWE6q9shGhdViT9HvscRim6YFArefXUHKeA8", { 1834 api_host: "https://ludwig.steplab.co", 1835 ui_host: "https://eu.posthog.com", 1836 defaults: '2026-01-30', 1837 person_profiles: 'identified_only', 1838 autocapture: false, 1839 capture_pageview: 'history_change', 1840 capture_pageleave: false, 1841 capture_performance: false, 1842 capture_dead_clicks: false, 1843 disable_session_recording: true, 1844 before_send: steplabPosthog.createPageviewSampler(0.5), 1845 loaded: function (ph) { 1846 }, 1847 }); 1848 </script>
1848 1849 <!-- End PostHog --> 1850 1851 1852
1852<script> 1853 1854 1855 document.addEventListener("DOMContentLoaded", function() { 1856 let list = document.querySelectorAll('input'); 1857 let i; 1858 for (i = 0; i < list.length; i++) { 1859 if (list[i].type !== 'email') { 1860 list[i].setAttribute("autocomplete", "off"); 1861 } 1862 } 1863 }); 1864 1865 </script>
1865 1866 1867
1867<script> 1868 function intercomTroubleshoot() { 1869 fetch_in_modal({ 1870 "title": `Chat to us`, 1871 phony: { 1872 "html": `We weren't able to load our in-window support on your device. 1873 <br /> 1874 <a href="https://support.steplab.co" target="_blank" class="btn btn-orange btn-block mt-3">Go to Intercom</a> 1875 `, 1876 } 1877 }); 1878 } 1879 1880 function tryLaunchIntercom() { 1881 try { 1882 Intercom('showNewMessage'); 1883 if (!$('.intercom-launcher').length) { 1884 throw new Error('Intercom launcher not found after launch attempt'); 1885 } 1886 } catch(err) { 1887 intercomTroubleshoot(); 1888 } 1889 } 1890 1891 $(document).ready(function() { 1892 let intercomInterval = 5000; 1893 let intercomIntervalMultiplier = 0; 1894 1895 function runIntercomChecker() { 1896 do_on_delay(function() { 1897 if (!$('.intercom-launcher').length) { 1898 intercomIntervalMultiplier ++; 1899 intercomInterval = intercomInterval * intercomIntervalMultiplier; 1900 if (!$('#intercom-backup-icon').length) { 1901 $('<a href="#" role="button" id="intercom-backup-icon" onclick="intercomTroubleshoot(); return false" style="display:none"></a>').appendTo("body").fadeIn(); 1902 } 1903 runIntercomChecker() 1904 } else { 1905 $('#intercom-backup-icon').remove(); 1906 } 1907 }, intercomInterval || 5000); 1908 } 1909 1910 runIntercomChecker() 1911 1912 }) 1913 1914 1915 </script>
1915 1916 1917 1918 1919 1920 1921
1921<script src="https://stuff.steplab.co/static/js/compiled-passkeys-shared-99e4cc545028d1725a830b965c0ad5fc80f2932d-en_GB.js"></script>
1921 1922
1922<script src="https://stuff.steplab.co/static/js/compiled-passkeys-login-15c6e96d1785586f6dd9147b9ec7b89f447b7c46-en_GB.js"></script>
1922 1923
1923<script src="https://stuff.steplab.co/static/js/compiled-two_factor_auth-a8ba8a2eade9a002f751fbea2c3d4fd31ee267a1-en_GB.js"></script>
1923 1924
1924<script src="https://stuff.steplab.co/static/js/compiled-recaptcha-68b9550b8de37073a81099121a36db6668534db5-en_GB.js"></script>
1924 1925 1926
1926<script> 1927 $('#toast-container').appendTo($('#mainContainer')); 1928 1929 $(window).bind("pageshow", function(event) { 1930 if (event.originalEvent.persisted) { 1931 if ($('#regionRedirectLoader').length) { 1932 $('#regionRedirectLoader').remove(); 1933 $('#initLoginFormBody').show(); 1934 } 1935 } 1936 }); 1937 1938 function reset() { 1939 $('#authContainerInitial').show(); 1940 $('#authContainerEmail').hide(); 1941 } 1942 1943 function continueWithEmail(submitEvent) { 1944 if (submitEvent) { 1945 submitEvent.preventDefault(); 1946 } 1947 $('#authContainerInitial').hide(); 1948 $('#authContainerEmail').show(); 1949 $('#formSignIn_email').val($('#emailFormInitial_email').val()); 1950 $('#formSignIn_password').focus(); 1951 } 1952 1953 const current_region = 'US'; 1954 const server_region_lookup_dict = {"AD": {"name": "Andorra", "server": "eu-west-2"}, "AE": {"name": "United Arab Emirates", "server": "eu-west-2"}, "AF": {"name": "Afghanistan", "server": "eu-west-2"}, "AG": {"name": "Antigua \u0026 Barbuda", "server": "eu-west-2"}, "AI": {"name": "Anguilla", "server": "eu-west-2"}, "AL": {"name": "Albania", "server": "eu-west-2"}, "AM": {"name": "Armenia", "server": "eu-west-2"}, "AO": {"name": "Angola", "server": "eu-west-2"}, "AQ": {"name": "Antarctica", "server": "ap-southeast-2"}, "AR": {"name": "Argentina", "server": "eu-west-2"}, "AS": {"name": "Samoa (American)", "server": "ap-southeast-2"}, "AT": {"name": "Austria", "server": "eu-west-2"}, "AU": {"name": "Australia", "server": "ap-southeast-2"}, "AW": {"name": "Aruba", "server": "eu-west-2"}, "AX": {"name": "\u00c5land Islands", "server": "eu-west-2"}, "AZ": {"name": "Azerbaijan", "server": "eu-west-2"}, "BA": {"name": "Bosnia \u0026 Herzegovina", "server": "eu-west-2"}, "BB": {"name": "Barbados", "server": "eu-west-2"}, "BD": {"name": "Bangladesh", "server": "eu-west-2"}, "BE": {"name": "Belgium", "server": "eu-west-2"}, "BF": {"name": "Burkina Faso", "server": "eu-west-2"}, "BG": {"name": "Bulgaria", "server": "eu-west-2"}, "BH": {"name": "Bahrain", "server": "eu-west-2"}, "BI": {"name": "Burundi", "server": "eu-west-2"}, "BJ": {"name": "Benin", "server": "eu-west-2"}, "BL": {"name": "St Barthelemy", "server": "eu-west-2"}, "BM": {"name": "Bermuda", "server": "eu-west-2"}, "BN": {"name": "Brunei", "server": "ap-southeast-2"}, "BO": {"name": "Bolivia", "server": "eu-west-2"}, "BQ": {"name": "Caribbean NL", "server": "eu-west-2"}, "BR": {"name": "Brazil", "server": "eu-west-2"}, "BS": {"name": "Bahamas", "server": "eu-west-2"}, "BT": {"name": "Bhutan", "server": "eu-west-2"}, "BV": {"name": "Bouvet Island", "server": "eu-west-2"}, "BW": {"name": "Botswana", "server": "eu-west-2"}, "BY": {"name": "Belarus", "server": "eu-west-2"}, "BZ": {"name": "Belize", "server": "eu-west-2"}, "CA": {"name": "Canada", "server": "eu-west-2"}, "CC": {"name": "Cocos (Keeling) Islands", "server": "ap-southeast-2"}, "CD": {"name": "Congo (Dem. Rep.)", "server": "eu-west-2"}, "CF": {"name": "Central African Rep.", "server": "eu-west-2"}, "CG": {"name": "Congo (Rep.)", "server": "eu-west-2"}, "CH": {"name": "Switzerland", "server": "eu-west-2"}, "CI": {"name": "C\u00f4te d\u2019Ivoire", "server": "eu-west-2"}, "CK": {"name": "Cook Islands", "server": "ap-southeast-2"}, "CL": {"name": "Chile", "server": "eu-west-2"}, "CM": {"name": "Cameroon", "server": "eu-west-2"}, "CN": {"name": "China", "server": "ap-southeast-2"}, "CO": {"name": "Colombia", "server": "eu-west-2"}, "CR": {"name": "Costa Rica", "server": "eu-west-2"}, "CU": {"name": "Cuba", "server": "eu-west-2"}, "CV": {"name": "Cape Verde", "server": "eu-west-2"}, "CW": {"name": "Cura\u00e7ao", "server": "eu-west-2"}, "CX": {"name": "Christmas Island", "server": "ap-southeast-2"}, "CY": {"name": "Cyprus", "server": "eu-west-2"}, "CZ": {"name": "Czech Republic", "server": "eu-west-2"}, "DE": {"name": "Germany", "server": "eu-west-2"}, "DJ": {"name": "Djibouti", "server": "eu-west-2"}
1954, "DK": {"name": "Denmark", "server": "eu-west-2"}, "DM": {"name": "Dominica", "server": "eu-west-2"}, "DO": {"name": "Dominican Republic", "server": "eu-west-2"}, "DZ": {"name": "Algeria", "server": "eu-west-2"}, "EC": {"name": "Ecuador", "server": "eu-west-2"}, "EE": {"name": "Estonia", "server": "eu-west-2"}, "EG": {"name": "Egypt", "server": "eu-west-2"}, "EH": {"name": "Western Sahara", "server": "eu-west-2"}, "ER": {"name": "Eritrea", "server": "eu-west-2"}, "ES": {"name": "Spain", "server": "eu-west-2"}, "ET": {"name": "Ethiopia", "server": "eu-west-2"}, "FI": {"name": "Finland", "server": "eu-west-2"}, "FJ": {"name": "Fiji", "server": "ap-southeast-2"}, "FK": {"name": "Falkland Islands", "server": "eu-west-2"}, "FM": {"name": "Micronesia", "server": "ap-southeast-2"}, "FO": {"name": "Faroe Islands", "server": "eu-west-2"}, "FR": {"name": "France", "server": "eu-west-2"}, "GA": {"name": "Gabon", "server": "eu-west-2"}, "GB": {"name": "UK", "server": "eu-west-2"}, "GD": {"name": "Grenada", "server": "eu-west-2"}, "GE": {"name": "Georgia", "server": "eu-west-2"}, "GF": {"name": "French Guiana", "server": "eu-west-2"}, "GG": {"name": "Guernsey", "server": "eu-west-2"}, "GH": {"name": "Ghana", "server": "eu-west-2"}, "GI": {"name": "Gibraltar", "server": "eu-west-2"}, "GL": {"name": "Greenland", "server": "eu-west-2"}, "GM": {"name": "Gambia", "server": "eu-west-2"}, "GN": {"name": "Guinea", "server": "eu-west-2"}, "GP": {"name": "Guadeloupe", "server": "eu-west-2"}, "GQ": {"name": "Equatorial Guinea", "server": "eu-west-2"}, "GR": {"name": "Greece", "server": "eu-west-2"}, "GS": {"name": "South Georgia \u0026 the South Sandwich Islands", "server": "eu-west-2"}, "GT": {"name": "Guatemala", "server": "eu-west-2"}, "GU": {"name": "Guam", "server": "ap-southeast-2"}, "GW": {"name": "Guinea-Bissau", "server": "eu-west-2"}, "GY": {"name": "Guyana", "server": "eu-west-2"}, "HK": {"name": "Hong Kong", "server": "ap-southeast-2"}, "HM": {"name": "Heard Island \u0026 McDonald Islands", "server": "ap-southeast-2"}, "HN": {"name": "Honduras", "server": "eu-west-2"}, "HR": {"name": "Croatia", "server": "eu-west-2"}, "HT": {"name": "Haiti", "server": "eu-west-2"}, "HU": {"name": "Hungary", "server": "eu-west-2"}, "ID": {"name": "Indonesia", "server": "ap-southeast-2"}, "IE": {"name": "Ireland", "server": "eu-west-2"}, "IL": {"name": "Israel", "server": "eu-west-2"}, "IM": {"name": "Isle of Man", "server": "eu-west-2"}, "IN": {"name": "India", "server": "eu-west-2"}, "IO": {"name": "British Indian Ocean Territory", "server": "eu-west-2"}, "IQ": {"name": "Iraq", "server": "eu-west-2"}, "IR": {"name": "Iran", "server": "eu-west-2"}, "IS": {"name": "Iceland", "server": "eu-west-2"}, "IT": {"name": "Italy", "server": "eu-west-2"}, "JE": {"name": "Jersey", "server": "eu-west-2"}, "JM": {"name": "Jamaica", "server": "eu-west-2"}, "JO": {"name": "Jordan", "server": "eu-west-2"}, "JP": {"name": "Japan", "server": "ap-southeast-2"}, "KE": {"name": "Kenya", "server": "eu-west-2"}, "KG": {"name": "Kyrgyzstan", "server": "eu-west-2"}, "KH": {"name": "Cambodia", "server": "ap-southeast-2"}, "KI": {"name": "Kiribati", "server": "ap-southeast-2"}, "KM": {"name": "Comoros", "server": "eu-west-2"}, "KN": {"name": "St Kitts \u0026 Nevis", "server": "eu-west-2"}, "KP": {"name": "Korea (North)", "server": "ap-southeast-2"}, "KR": {"name": "Korea (South)", "server": "ap-southeast-2"}, "KW": {"name": "Kuwait", "server": "eu-west-2"}, "KY": {"name": "Cayman Islands", "server": "eu-west-2"}, "KZ": {"name": "Kazakhstan", "server": "eu-west-2"}, "LA": {"name": "Laos", "server": "ap-southeast-2"}, "LB": {"name": "Lebanon", "server": "eu-west-2"}, "LC": {"name": "St Lucia", "server": "eu-west-2"}, "LI": {"name": "Liechtenstein", "server": "eu-west-2"}, "LK": {"name": "Sri Lanka", "server": "eu-west-2"}, "LR": {"name": "Liberia", "server": "eu-west-2"}, "LS": {"name": "Lesotho", "server": "eu-west-2"}, "LT": {"name": "Lithuania", "server": "eu-west-2"}, "LU": {"name": "Luxembourg", "server": "eu-west-2"}, "LV": {"name": "Latvia", "server": "eu-west-2"}
1954, "LY": {"name": "Libya", "server": "eu-west-2"}, "MA": {"name": "Morocco", "server": "eu-west-2"}, "MC": {"name": "Monaco", "server": "eu-west-2"}, "MD": {"name": "Moldova", "server": "eu-west-2"}, "ME": {"name": "Montenegro", "server": "eu-west-2"}, "MF": {"name": "St Martin (French)", "server": "eu-west-2"}, "MG": {"name": "Madagascar", "server": "eu-west-2"}, "MH": {"name": "Marshall Islands", "server": "ap-southeast-2"}, "MK": {"name": "North Macedonia", "server": "eu-west-2"}, "ML": {"name": "Mali", "server": "eu-west-2"}, "MM": {"name": "Myanmar (Burma)", "server": "ap-southeast-2"}, "MN": {"name": "Mongolia", "server": "ap-southeast-2"}, "MO": {"name": "Macau", "server": "ap-southeast-2"}, "MP": {"name": "Northern Mariana Islands", "server": "ap-southeast-2"}, "MQ": {"name": "Martinique", "server": "eu-west-2"}, "MR": {"name": "Mauritania", "server": "eu-west-2"}, "MS": {"name": "Montserrat", "server": "eu-west-2"}, "MT": {"name": "Malta", "server": "eu-west-2"}, "MU": {"name": "Mauritius", "server": "eu-west-2"}, "MV": {"name": "Maldives", "server": "eu-west-2"}, "MW": {"name": "Malawi", "server": "eu-west-2"}, "MX": {"name": "Mexico", "server": "eu-west-2"}, "MY": {"name": "Malaysia", "server": "ap-southeast-2"}, "MZ": {"name": "Mozambique", "server": "eu-west-2"}, "NA": {"name": "Namibia", "server": "eu-west-2"}, "NC": {"name": "New Caledonia", "server": "ap-southeast-2"}, "NE": {"name": "Niger", "server": "eu-west-2"}, "NF": {"name": "Norfolk Island", "server": "ap-southeast-2"}, "NG": {"name": "Nigeria", "server": "eu-west-2"}, "NI": {"name": "Nicaragua", "server": "eu-west-2"}, "NL": {"name": "Netherlands", "server": "eu-west-2"}, "NO": {"name": "Norway", "server": "eu-west-2"}, "NP": {"name": "Nepal", "server": "eu-west-2"}, "NR": {"name": "Nauru", "server": "ap-southeast-2"}, "NU": {"name": "Niue", "server": "ap-southeast-2"}, "NZ": {"name": "New Zealand", "server": "ap-southeast-2"}, "OM": {"name": "Oman", "server": "eu-west-2"}, "PA": {"name": "Panama", "server": "eu-west-2"}, "PE": {"name": "Peru", "server": "eu-west-2"}, "PF": {"name": "French Polynesia", "server": "ap-southeast-2"}, "PG": {"name": "Papua New Guinea", "server": "ap-southeast-2"}, "PH": {"name": "Philippines", "server": "ap-southeast-2"}, "PK": {"name": "Pakistan", "server": "eu-west-2"}, "PL": {"name": "Poland", "server": "eu-west-2"}, "PM": {"name": "St Pierre \u0026 Miquelon", "server": "eu-west-2"}, "PN": {"name": "Pitcairn", "server": "ap-southeast-2"}, "PR": {"name": "Puerto Rico", "server": "eu-west-2"}, "PS": {"name": "Palestine", "server": "eu-west-2"}, "PT": {"name": "Portugal", "server": "eu-west-2"}, "PW": {"name": "Palau", "server": "ap-southeast-2"}, "PY": {"name": "Paraguay", "server": "eu-west-2"}, "QA": {"name": "Qatar", "server": "eu-west-2"}, "RE": {"name": "R\u00e9union", "server": "eu-west-2"}, "RO": {"name": "Romania", "server": "eu-west-2"}, "RS": {"name": "Serbia", "server": "eu-west-2"}, "RU": {"name": "Russia", "server": "eu-west-2"}, "RW": {"name": "Rwanda", "server": "eu-west-2"}, "SA": {"name": "Saudi Arabia", "server": "eu-west-2"}, "SB": {"name": "Solomon Islands", "server": "ap-southeast-2"}, "SC": {"name": "Seychelles", "server": "eu-west-2"}, "SD": {"name": "Sudan", "server": "eu-west-2"}, "SE": {"name": "Sweden", "server": "eu-west-2"}, "SG": {"name": "Singapore", "server": "ap-southeast-2"}, "SH": {"name": "St Helena", "server": "eu-west-2"}, "SI": {"name": "Slovenia", "server": "eu-west-2"}, "SJ": {"name": "Svalbard \u0026 Jan Mayen", "server": "eu-west-2"}, "SK": {"name": "Slovakia", "server": "eu-west-2"}, "SL": {"name": "Sierra Leone", "server": "eu-west-2"}, "SM": {"name": "San Marino", "server": "eu-west-2"}, "SN": {"name": "Senegal", "server": "eu-west-2"}, "SO": {"name": "Somalia", "server": "eu-west-2"}, "SR": {"name": "Suriname", "server": "eu-west-2"}, "SS": {"name": "South Sudan", "server": "eu-west-2"}, "ST": {"name": "Sao Tome \u0026 Principe", "server": "eu-west-2"}, "SV": {"name": "El Salvador", "server": "eu-west-2"}, "SX": {"name": "St Maarten (Dutch)", "server": "eu-west-2"}
1954, "SY": {"name": "Syria", "server": "eu-west-2"}, "SZ": {"name": "Eswatini (Swaziland)", "server": "eu-west-2"}, "TC": {"name": "Turks \u0026 Caicos Is", "server": "eu-west-2"}, "TD": {"name": "Chad", "server": "eu-west-2"}, "TF": {"name": "French S. Terr.", "server": "ap-southeast-2"}, "TG": {"name": "Togo", "server": "eu-west-2"}, "TH": {"name": "Thailand", "server": "ap-southeast-2"}, "TJ": {"name": "Tajikistan", "server": "eu-west-2"}, "TK": {"name": "Tokelau", "server": "ap-southeast-2"}, "TL": {"name": "East Timor", "server": "ap-southeast-2"}, "TM": {"name": "Turkmenistan", "server": "eu-west-2"}, "TN": {"name": "Tunisia", "server": "eu-west-2"}, "TO": {"name": "Tonga", "server": "ap-southeast-2"}, "TR": {"name": "Turkey", "server": "eu-west-2"}, "TT": {"name": "Trinidad \u0026 Tobago", "server": "eu-west-2"}, "TV": {"name": "Tuvalu", "server": "ap-southeast-2"}, "TW": {"name": "Taiwan", "server": "ap-southeast-2"}, "TZ": {"name": "Tanzania", "server": "eu-west-2"}, "UA": {"name": "Ukraine", "server": "eu-west-2"}, "UG": {"name": "Uganda", "server": "eu-west-2"}, "UM": {"name": "US minor outlying islands", "server": "eu-west-2"}, "US": {"name": "US", "server": "eu-west-2"}, "UY": {"name": "Uruguay", "server": "eu-west-2"}, "UZ": {"name": "Uzbekistan", "server": "eu-west-2"}, "VA": {"name": "Vatican City", "server": "eu-west-2"}, "VC": {"name": "St Vincent", "server": "eu-west-2"}, "VE": {"name": "Venezuela", "server": "eu-west-2"}, "VG": {"name": "Virgin Islands (UK)", "server": "eu-west-2"}, "VI": {"name": "Virgin Islands (US)", "server": "eu-west-2"}, "VN": {"name": "Vietnam", "server": "ap-southeast-2"}, "VU": {"name": "Vanuatu", "server": "ap-southeast-2"}, "WF": {"name": "Wallis \u0026 Futuna", "server": "ap-southeast-2"}, "WS": {"name": "Samoa (western)", "server": "ap-southeast-2"}, "YE": {"name": "Yemen", "server": "eu-west-2"}, "YT": {"name": "Mayotte", "server": "eu-west-2"}, "ZA": {"name": "South Africa", "server": "eu-west-2"}, "ZM": {"name": "Zambia", "server": "eu-west-2"}, "ZW": {"name": "Zimbabwe", "server": "eu-west-2"}}; 1955 1956 function showRegionForm(event) { 1957 event.preventDefault(); 1958 $('#regionIndicator').hide(); 1959 $('#regionInputGroup').show(); 1960 $('#regionInputGroup select')[0].selectize.focus(); 1961 } 1962 1963 function setRegionCookie(region_code) { 1964 setCookie('slab_region', region_code, 99999); 1965 } 1966 1967 $('.sso-button[href]').on('click', function(event) { 1968 const hrefElement = $(event.target).closest('[href]'); 1969 var href; 1970 if (hrefElement.length) { 1971 event.preventDefault(); 1972 href = hrefElement.attr('href'); 1973 } 1974 try { 1975 setRegionCookie(current_region); 1976 } catch(err) {} 1977 if (href) { 1978 window.location.href = href; 1979 } 1980 }) 1981 1982 $('#country_code_select').on('change', function (event) { 1983 if (event.target.value) { 1984 const newly_selected_region = server_region_lookup_dict[event.target.value]; 1985 setRegionCookie(event.target.value); 1986 1987 if (newly_selected_region.server !== "eu-west-2") { 1988 const new_path = add_url_var('country', event.target.value, 'return'); 1989 $('#initLoginFormBody').hide(); 1990 $(`<div class="text-muted" id="regionRedirectLoader"><i class="fas fa-spin fa-spinner"></i> Redirecting...</div>`).insertBefore($('#initLoginFormBody')); 1991 1992 window.location.href = "https://aus.steplab.co" + new_path; 1993 } else { 1994 $('.country-code-display').text(newly_selected_region.name); 1995 } 1996 } 1997 }); 1998 1999 const submitButton = $('#formSignIn_submit_button'); 2000 2001 let recaptchaRefreshInterval; 2002 2003 // Count consecutive password submission failures in this page load so that we 2004 // can surface a proactive "Trouble logging in?" message via Intercom once the 2005 // user appears to be struggling. 2006 let passwordFailureCount = 0; 2007 let passwordFailureIntercomEventSent = false;
2008 const PASSWORD_FAILURE_INTERCOM_THRESHOLD = 2; 2009 2010 function handleLoginFormError(obj) { 2011 const formErrors = obj && (obj.form_errors || obj.errors); 2012 const passwordErrors = formErrors && formErrors.password; 2013 if (!passwordErrors || !passwordErrors.length) { 2014 return; 2015 } 2016 2017 passwordFailureCount++; 2018 2019 if ( 2020 passwordFailureCount >= PASSWORD_FAILURE_INTERCOM_THRESHOLD 2021 && !passwordFailureIntercomEventSent 2022 && typeof window.Intercom === 'function' 2023 ) { 2024 try { 2025 window.Intercom('trackEvent', 'login-password-repeatedly-failed'); 2026 passwordFailureIntercomEventSent = true; 2027 } catch(err) { 2028 console.error('Failed to send login-password-repeatedly-failed Intercom event', err); 2029 } 2030 } 2031 } 2032 2033 function doForm() { 2034 const form = $('form#formSignIn'); 2035 const opts = { 2036 setRegionCookie: function() { 2037 setRegionCookie(current_region); 2038 }, 2039 onFormError: handleLoginFormError, 2040 } 2041 doAuthFormWithRecaptcha(form, recaptchaRefreshInterval, opts); 2042 } 2043 2044 function password_reminder() { 2045 palert(`Remember: your password will be 14+ characters, including at least one alphabetic character and at least one non-alphabetic character.`); 2046 } 2047 2048 function append_email_param() { 2049 let email = $("#formSignIn_email").val(); 2050 if (!email) return; 2051 2052 // Helper to append email param only if not present 2053 function appendIfMissing($el) { 2054 let href = $el.attr('href'); 2055 if (!href) return; 2056 let url = new URL(href, window.location.origin); 2057 if (!url.searchParams.has('email')) { 2058 url.searchParams.append('email', email); 2059 $el.attr('href', url.toString()); 2060 } 2061 } 2062 2063 appendIfMissing($("#forgotten-password")); 2064 appendIfMissing($("#magic-login")); 2065 } 2066 2067 $(document).ready(function() { 2068 // If email address is present in query params, enter the continueWithEmail state: 2069 const params = new Proxy(new URLSearchParams(window.location.search), { 2070 get: (searchParams, prop) => searchParams.get(prop), 2071 }); 2072 2073 const email = params.email; 2074 if (email) { 2075 continueWithEmail(); 2076 } 2077 2078 bindRecaptcha(submitButton, doForm); 2079 recaptchaRefreshInterval = recaptchaTokenRefresher(); 2080 }); 2081 2082 </script>
2082 2083 2084
2084<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a400cc471c486212',t:'MTc5MDI0MjUxNQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2084<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"eb2fab7c30164d09823b531a54916caf","spa":2}' crossorigin="anonymous"></script>
2084 2085</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.