1<!DOCTYPE html> 2<html lang="pt-pt"> 3 <head> 4 <meta charset="utf-8"/> 5
5<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
5 6
6<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
6 7 <link rel="stylesheet" media="screen" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600" /> 8 <link rel="stylesheet" media="screen" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" /> 9 10
10<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.2/moment.min.js"></script>
10 11
11<script src="https://cdn.statuspage.io/vendor/moment-timezone-with-data.js"></script>
11 12
12<script src="https://cdn.statuspage.io/vendor/jstz.js"></script>
12 13
13<script src="https://cdn.statuspage.io/vendor/localtimes.js"></script>
13 14
14<script type="text/javascript" src="/js/clientside-track_1791292627.js?int"></script>
14 15 16 <style> 17 html { 18 overflow: hidden !important; 19 } 20 21 * { 22 -moz-box-sizing:border-box; 23 -webkit-box-sizing:border-box; 24 box-sizing:border-box; 25 overflow: hidden; 26 } 27 28 html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, 29 abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, 30 small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, 31 fieldset, form, label, legend, caption, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, 32 menu, nav, section, summary, time, mark, audio, video { 33 margin:0; 34 padding:0; 35 border:0; 36 outline:0; 37 vertical-align:baseline; 38 background:transparent; 39 } 40 41 article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { 42 display: block; 43 } 44 45 html { 46 font-size: 16px; 47 line-height: 24px; 48 width:100%; 49 height:100%; 50 -webkit-text-size-adjust: 100%; 51 -ms-text-size-adjust: 100%; 52 overflow-y:scroll; 53 overflow-x:hidden; 54 } 55 56 img { 57 vertical-align:middle; 58 max-width: 100%; 59 height: auto; 60 border: 0; 61 -ms-interpolation-mode: bicubic; 62 } 63 64 body { 65 min-height:100%; 66 -webkit-font-smoothing: subpixel-antialiased; 67 } 68 69 .clearfix { 70 clear:both; 71 zoom: 1; 72 } 73 .clearfix:before, .clearfix:after { 74 content: "\0020"; 75 display: block; 76 height: 0; 77 visibility: hidden; 78 } 79 .clearfix:after { 80 clear: both; 81 } 82 </style> 83 <style> 84 .plain.error-page-wrapper { 85 font-family: 'Source Sans Pro', sans-serif; 86 background-color:#6355bc; 87 padding:0 5%; 88 position:relative; 89 } 90 91 .plain.error-page-wrapper .content-container { 92 -webkit-transition: left .5s ease-out, opacity .5s ease-out; 93 -moz-transition: left .5s ease-out, opacity .5s ease-out; 94 -ms-transition: left .5s ease-out, opacity .5s ease-out; 95 -o-transition: left .5s ease-out, opacity .5s ease-out; 96 transition: left .5s ease-out, opacity .5s ease-out; 97 max-width:400px; 98 position:relative; 99 left:-30px; 100 opacity:0; 101 } 102 103 .plain.error-page-wrapper .content-container.in { 104 left: 0px; 105 opacity:1; 106 } 107 108 .plain.error-page-wrapper .head-line { 109 transition: color .2s linear; 110 font-size:48px; 111 line-height:60px; 112 color:rgba(255,255,255,.2); 113 letter-spacing: -1px; 114 margin-bottom: 5px; 115 } 116 .plain.error-page-wrapper .subheader { 117 transition: color .2s linear; 118 font-size: 26px; 119 line-height: 30px; 120 color:#fff; 121 } 122 .plain.error-page-wrapper hr {
123 height:1px; 124 background-color: rgba(255,255,255,.2); 125 border:none; 126 width:250px; 127 margin:35px 0; 128 } 129 .plain.error-page-wrapper .context { 130 transition: color .2s linear; 131 font-size:18px; 132 line-height:27px; 133 color:#fff; 134 } 135 .plain.error-page-wrapper .context p { 136 margin:0; 137 } 138 .plain.error-page-wrapper .context p:nth-child(n+2) { 139 margin-top:12px; 140 } 141 .plain.error-page-wrapper .buttons-container { 142 margin-top: 45px; 143 overflow: hidden; 144 } 145 .plain.error-page-wrapper .buttons-container a { 146 transition: color .2s linear, border-color .2s linear; 147 font-size:14px; 148 text-transform: uppercase; 149 text-decoration: none; 150 color:#fff; 151 border:2px solid white; 152 border-radius: 99px; 153 padding:8px 30px 9px; 154 display: inline-block; 155 float:left; 156 } 157 .plain.error-page-wrapper .buttons-container a:hover { 158 background-color:rgba(255,255,255,.05); 159 } 160 .plain.error-page-wrapper .buttons-container a:first-child { 161 margin-right:25px; 162 } 163 164 @media screen and (max-width: 485px) { 165 .plain.error-page-wrapper .header { 166 font-size:36px; 167 } 168 .plain.error-page-wrapper .subheader { 169 font-size:27px; 170 line-height:38px; 171 } 172 .plain.error-page-wrapper hr {
173 width:185px; 174 margin:25px 0; 175 } 176 177 .plain.error-page-wrapper .context { 178 font-size:16px; 179 line-height: 24px; 180 } 181 .plain.error-page-wrapper .buttons-container { 182 margin-top:35px; 183 } 184 185 .plain.error-page-wrapper .buttons-container a { 186 font-size:13px; 187 padding:8px 0 7px; 188 width:45%; 189 text-align: center; 190 } 191 .plain.error-page-wrapper .buttons-container a:first-child { 192 margin-right:10%; 193 } 194 } 195</style> 196 197 <style> 198 199 .background-color { 200 background-color: rgba(71, 207, 105, 1) !important; 201 } 202 203 204 .primary-text-color { 205 color: #FFFFFF !important; 206 } 207 208 .secondary-text-color { 209 color: rgba(192, 240, 204, 1) !important; 210 } 211 212 .sign-text-color { 213 color: #FFBA00 !important; 214 } 215 216 .sign-frame-color { 217 color: #343C3F; 218 } 219 220 .pane { 221 background-color: #FFFFFF !important; 222 } 223 224 .border-button { 225 color: #FFFFFF !important; 226 border-color: #FFFFFF !important; 227 } 228 .button { 229 background-color: #FFFFFF !important; 230 color: !important; 231 } 232 233 234</style> 235 236 </head> 237 <body class="plain error-page-wrapper background-color background-image" data-errorpage="true" data-errorcode="404"> 238
238<script> 239 const EPage = true; 240 const ECode = "404"; 241 </script>
241 242 <div class="content-container"> 243 <div class="head-line secondary-text-color"> 244 404 </div> 245 <div class="subheader primary-text-color"> 246 A página solicitada<br /> 247não foi encontrada<br /> 248ou já não existe. </div> 249 <hr> 250 <div class="clearfix"></div> 251 <div class="context primary-text-color"> 252 253 <p>Pedimos desculpas pelo ocorrido.<br /> 254Se for erro nosso, reporte:<br /> 255<i>[email protected]</i></p> 256 257 </div> 258</div> 259 260 261
261<script> 262 function ErrorPage(container, pageType, templateName) { 263 this.$container = $(container); 264 this.$contentContainer = this.$container.find(templateName == 'sign' ? '.sign-container' : '.content-container'); 265 this.pageType = pageType; 266 this.templateName = templateName; 267 } 268 269 ErrorPage.prototype.centerContent = function () { 270 var containerHeight = this.$container.outerHeight() 271 , contentContainerHeight = this.$contentContainer.outerHeight() 272 , top = (containerHeight - contentContainerHeight) / 2 273 , offset = this.templateName == 'sign' ? -100 : 0; 274 275 this.$contentContainer.css('top', top + offset); 276 }; 277 278 ErrorPage.prototype.initialize = function () { 279 var self = this; 280 281 this.centerContent(); 282 this.$container.on('resize', function (e) { 283 e.preventDefault(); 284 e.stopPropagation(); 285 self.centerContent(); 286 }); 287 288 // fades in content on the plain template 289 if (this.templateName == 'plain') { 290 window.setTimeout(function () { 291 self.$contentContainer.addClass('in'); 292 }, 500); 293 } 294 295 // swings sign in on the sign template 296 if (this.templateName == 'sign') { 297 $('.sign-container').animate({textIndent : 0}, { 298 step : function (now) { 299 $(this).css({ 300 transform : 'rotate(' + now + 'deg)', 301 'transform-origin' : 'top center' 302 }); 303 }, 304 duration : 1000, 305 easing : 'easeOutBounce' 306 }); 307 } 308 }; 309 310 311 ErrorPage.prototype.createTimeRangeTag = function(start, end) { 312 return ( 313 '<time utime=' + start + ' simple_format="MMM DD, YYYY HH:mm">' + start + '</time> - <time utime=' + end + ' simple_format="MMM DD, YYYY HH:mm">' + end + '</time>.' 314 ) 315 }; 316 317 318 ErrorPage.prototype.handleStatusFetchSuccess = function (pageType, data) { 319 if (pageType == '503') { 320 $('#replace-with-fetched-data').html(data.status.description); 321 } else { 322 if (!!data.scheduled_maintenances.length) { 323 var maint = data.scheduled_maintenances[0]; 324 $('#replace-with-fetched-data').html(this.createTimeRangeTag(maint.scheduled_for, maint.scheduled_until)); 325 $.fn.localizeTime(); 326 } 327 else { 328 $('#replace-with-fetched-data').html('<em>(there are no active scheduled maintenances)</em>'); 329 } 330 } 331 }; 332 333 334 ErrorPage.prototype.handleStatusFetchFail = function (pageType) { 335 $('#replace-with-fetched-data').html('<em>(enter a valid Statuspage url)</em>'); 336 }; 337 338 339 ErrorPage.prototype.fetchStatus = function (pageUrl, pageType) { 340 //console.log('in app.js fetch'); 341 if (!pageUrl || !pageType || pageType == '404') return; 342 343 var url = '' 344 , self = this; 345 346 if (pageType == '503') { 347 url = pageUrl + '/api/v2/status.json'; 348 } 349 else { 350 url = pageUrl + '/api/v2/scheduled-maintenances/active.json'; 351 } 352 353 $.ajax({ 354 type : "GET", 355 url : url, 356 }).success(function (data, status) { 357 //console.log('success'); 358 self.handleStatusFetchSuccess(pageType, data); 359 }).fail(function (xhr, msg) { 360 //console.log('fail'); 361 self.handleStatusFetchFail(pageType); 362 }); 363 364 }; 365 var ep = new ErrorPage('body', "maintenance", "plain"); 366 ep.initialize(); 367 368 // hack to make sure content stays centered >_< 369 $(window).on('resize', function() { 370 $('body').trigger('resize') 371 }); 372 373 </script>
373 374 375 </body> 376</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.