1 2<!DOCTYPE html> 3<html lang="en"> 4 <head> 5 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 6 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 7 <title>Sign In | Compose with AI</title> 8 9<link rel="apple-touch-icon" sizes="180x180" href="https://res.cloudinary.com/caboose/image/upload/c_scale,f_png,h_180,q_auto:good,w_180/v1724352577/caboose/favicons/1645_thumb.png?_a=BACAGSBn"> 10 <link rel="icon" type="image/png" sizes="32x32" href="https://res.cloudinary.com/caboose/image/upload/c_scale,f_png,h_32,q_auto:good,w_32/v1724352577/caboose/favicons/1645_thumb.png?_a=BACAGSBn"> 11 <link rel="icon" type="image/png" sizes="16x16" href="https://res.cloudinary.com/caboose/image/upload/c_scale,f_png,h_16,q_auto:good,w_16/v1724352577/caboose/favicons/1645_thumb.png?_a=BACAGSBn"> 12 <meta name="msapplication-TileColor" content="#031f54"> 13 <meta name="theme-color" content="#031f54"> 14 15 16 <meta property="og:site_name" content="Compose with AI"> 17 <meta property="og:type" content="website" /> 18 <meta name="twitter:card" content="summary" /> 19 20 <meta name="robots" content="index, follow" /> 21 <meta property="og:url" content="https://www.composewithai.com/login" /> 22 <meta property="og:description" content="Practice your AI skills with Compose with AI."> 23 <meta name="description" content="Practice your AI skills with Compose with AI."> 24 <meta property="og:image" content="https://placehold.co/1200x630"> 25 <meta property="og:title" content="Sign In | Compose with AI" />
vendor: 68 bytes, lines 25-26
25 26 <script async src="https://www.googletagmanager.com/gtag/js?id=
26G-TJ99G6H0FD
vendor: 12 bytes, line 26
26"></script>
27<script> 28
vendor: 133 bytes, lines 28-31
28window.dataLayer = window.dataLayer || []; 29 function gtag(){dataLayer.push(arguments);} 30 gtag('js', new Date()); 31 gtag('config', '
31G-TJ99G6H0FD
vendor: 4 bytes, line 31
31');
32</script>
32 33 <link rel='stylesheet' type='text/css' media='all' href="https://assets.caboosecms.com/assets/themes/theme_1090_site_1645-F1fMyW9QM9fO3m3fpRRV-g.css" /> 34 <link rel='stylesheet' type='text/css' media='all' href="https://assets.caboosecms.com/assets/pages/page_15731_izcZbsQCyGcslcePF4Oa4w.css" /> 35 36 37 38 39 40 <link rel="stylesheet" media="screen" href="https://assets.caboosecms.com/assets/caboose/login-524a03af218f4b6006f671307fde243eea8bafe4d1b938d360889209f146dba1.css" /> 41 <style> 42 body { 43 background-image: url("https://res.cloudinary.com/caboose/image/upload/c_scale,f_auto,q_auto:best,w_1400/caboose/media/15171621_login-bg_huge.png"); 44 min-height: 100vh; 45 background-position: center bottom; 46 background-repeat: no-repeat; 47 background-size: 78%; 48 } 49 </style> 50 51 <style> 52 .subpage-content { padding: 0 0;} 53 </style> 54 55 <meta name="csrf-param" content="authenticity_token" /> 56<meta name="csrf-token" content="+ZDTV0SGK4fmdHoCAjUofaYXLzVoM0ps4J3AwJ8LpQgNZkbqJ0iYrFYHCwT/1TSqLglVED9AGkc8Ee7jO6fIlw==" /> 57 58 59 </head> 60 <body > 61 62 <div class="delay-show"> 63 <div id="mmenu"> 64 <ul class="top-ul"> 65 <li><a href="/" title="Home">Home</a></li> 66 </ul> 67 </div> 68 </div> 69 70 <div class="container" id='block_3267186'> 71 72<div class="content_wrapper subpage" id='block_3267187' > 73 <div class="content_body subpage-content"> 74 75 <header class="login-header"> 76 <div class="constrain"> 77 <a href="/" class="logo-link"> 78 <img src="https://assets.caboosecms.com/media/15171619_logo.svg" alt="Compose with AI" width="250" height="33" /> 79 </a> 80 </div> 81</header> 82 83<div class="caboose-login-wrapper"> 84 <div class="caboose-login-form-wrapper"> 85 <h5>Ready to learn?</h5> 86 <form action="/login" method="POST" id="caboose-login-form"> 87 <input type="hidden" name="authenticity_token" id="authenticity_token" value="UuD3La3LbVLpJcotxj9lrZhNINJS6VCR181nlizDNwumFmKQzgXeeVlWuys733l6EFNa9wWaALoLQUm1iG9alA==" /> 88 <div class="field"> 89 <label for="caboose-login-username">Username</label> 90 <input type="text" name="username" id="caboose-login-username" /> 91 </div> 92 <div class="field"> 93 <label for="caboose-login-password">Password</label> 94 <input type="password" name="password" id="caboose-login-password" /> 95 </div> 96 <input type="hidden" name="return_url" value="/project-ai/app" /> 97 <div class="caboose-links"> 98 <div class="field cb"> 99 <input type="checkbox" checked="true" id="remember" name="remember" /> 100 <label for="remember">Remember me</label> 101 </div> 102 </div> 103 <input type="submit" class="alternate btn arrow" id="caboose-login-btn" value="Sign In" /> 104 </form> 105 <div id="caboose-login-message"></div> 106 107 </div> 108</div> 109 110 111 112 113 </div> 114</div> 115 116 </div> 117
117<script src="https://assets.caboosecms.com/assets/caboose/application-1f8fbd9374426fb3c0f4aa05c04d2d51e52d50e906fae5d792c0edffeb8629b6.js.gz"></script>
117 118
118<script src="https://assets.caboosecms.com/assets/themes/theme_1090_site_1645_guKTxPCdcgCYur5CeFJ9RA.js"></script>
vendor: 101 bytes, lines 118-125
118 119 120 121 122 123 124 125 <script src="https://www.google.com/recaptcha/api.js?render=
1256Ldua3sUAAAAAETzeol5JGixia3i80lTukAiQeT2
vendor: 14 bytes, lines 125-126
125"></script> 126
126<script> 127 grecaptcha.ready(function() { 128 $("#caboose-login-btn").click(function(event) { 129 event.preventDefault(); 130 if ( !$(this).hasClass("disabled") ) { 131 $(this).addClass("disabled"); 132 grecaptcha.execute('6Ldua3sUAAAAAETzeol5JGixia3i80lTukAiQeT2', {action: 'cabooselogin'}).then(function(token) { 133 caboose_user_login(token); 134 }); 135 return false; 136 } 137 }); 138 }); 139 function caboose_user_login(token) { 140 $('#caboose-login-message').html("<p class='note loading'>Logging in...</p>"); 141 $.ajax({ 142 url: '/login', 143 type: 'post', 144 data: ($('#caboose-login-form').serialize() + "&captchatoken=" + token), 145 success: function(resp) { 146 if (resp.error) { 147 $('#caboose-login-message').html("<p class='note error'>" + resp.error + "</p>"); 148 if ( !resp.disable ) { $("#caboose-login-btn").removeClass("disabled"); } 149 } 150 else if (resp.redirect != false) { 151 window.location = resp.redirect; 152 } 153 else { 154 window.location.reload(true); 155 } 156 } 157 }); 158 }; 159 160 // Fix 3rd Login Screen 161 window.onload = function() { 162 if (window.location.href === 'http://dev.projectai.com:3000/login?return_url=/project-ai/app' || window.location.href === 'https://composewithai.com/login?return_url=/project-ai/app' || window.location.href === 'https://www.composewithai.com/login?return_url=/project-ai/app') { 163 console.log("Redirecting"); 164 window.location.href = '/'; // Redirects to the homepage 165 } 166 }; 167 168 </script>
168 169 170 171 172
172<script type="application/ld+json">{"@context":"http://schema.org","@type":"Organization","name":"UA Project AI","url":"https://www.composewithai.com","sameAs":[]}</script>
172 173
173<script>window.page_navigation = [{"id":15731,"parent_id":-1,"title":"Home","menu_title":null,"uri":null,"redirect_url":null,"sort_order":0,"unclickable":false}]</script>
173 174
174<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":"9b2e8e81a3bf49779ffc6aa12ac3252d","r":1,"spa":2}' crossorigin="anonymous"></script>
174 175</body> 176</html> 177 178
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.