cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:3033::6815:24b:8443 · haissam.com
2026-01-12 18:51
HTTP/1.1 522 <none>
Date: Mon, 12 Jan 2026 18:52:04 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 12 Jan 2026 18:52:34 GMT
set-cookie: cf_ob_info=522:9bced8d78d757288:EWR; Expires=Mon, 12 Jan 2026 18:52:34 GMT
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=19602,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=MzP1nGGOvWpqVtLf9J%2F7KlRQm7azhX3roBiPXJzdxIfsvIbbC1ZcLiqKMiCiarliHiI%2FiMpspPkDpsR54zhglq2zefDkfSgk%2FRDWG9FpfxI1UraNrYBs"}]}
CF-RAY: 9bced8d78d757288-EWR
alt-svc: h3=":8443"; ma=86400
Open service 172.67.128.227:8443 · haissam.com
2026-01-12 18:51
HTTP/1.1 522 <none>
Date: Mon, 12 Jan 2026 18:52:04 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 12 Jan 2026 18:52:34 GMT
set-cookie: cf_ob_info=522:9bced8d778eacdf0:EWR; Expires=Mon, 12 Jan 2026 18:52:34 GMT
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=19510,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ypSeFvIMZwEOjdnnWc5qVZq7NKfT%2Bu08K2KH6kbanWOijuSGEkGCcWkAj%2F9ERdUAxITsEVY0apDVClwQU22NPM3aP0xsksbNX%2F29"}]}
CF-RAY: 9bced8d778eacdf0-EWR
alt-svc: h3=":8443"; ma=86400
Open service 172.67.128.227:443 · haissam.com
2026-01-12 18:51
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 18:51:44 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=rMlTUTrSqgbPZNn4UpiUX0WWNwDgAzl146lBb3NxzAD1sdY2E1LnIzRGZcvhLAEIi7is1MLWovBBl2eZifjJHDN8xba%2BGq2mAwBq"}]}
vary: Accept-Encoding
Server: cloudflare
Cache-Control: no-cache,no-store
x-frame-options: SAMEORIGIN
alt-svc: h3=":443"; ma=86400
x-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=7,cfOrigin;dur=95
CF-RAY: 9bced8d3399e4a29-YYZ
Page title: Bot Verification
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Bot Verification</title>
<script>
function onSubmit() {
document.getElementById('lsrecaptcha-form').submit();
}
var onloadCallback = function() {
var cont = grecaptcha.render('recaptchadiv', {
'sitekey': '6LewU34UAAAAAHvXqFOcQlm8z1MP1xpGAZCYEeZY',
'callback': onSubmit,
});
grecaptcha.execute(cont);
};
</script>
<style>
body {
height: 100%;
}
.panel {
padding: 30px;
max-width: 425px;
margin: 10% auto;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);
}
.title {
font-size: 1.5em;
font-weight: 100;
margin-top: 10px;
text-align: center;
}
.recaptcha-center {
margin-top: 35px;
margin-bottom: 20px;
margin-left: 13%;
margin-right: 13%;
display: block;
}
</style>
</head>
<body>
<div class="panel">
<h3 class="title">Verifying that you are not a robot...</h3>
<form id="lsrecaptcha-form" method="POST" action="/.lsrecap/recaptcha?">
<div id="recaptchadiv" class="recaptcha-center"></div>
</form>
</div>
<script src="https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"3e2e81b4417f43f9b2a07ec17728620e","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3033::6815:24b:443 · haissam.com
2026-01-12 18:51
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 18:51:44 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
last-modified: Thu, 30 Oct 2025 20:16:01 GMT
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=12,cfOrigin;dur=97
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=1j6%2FPO%2FfF0avJBIv6fwHad1uihzcpmDI7PsGWaSNJ6ahukywMYaL6Od7rsbbzbJEEzGu0Upo8JSF5SpOSq2dSY47KiraBbvS1MEhNMimSukrVBburpKt"}]}
vary: Accept-Encoding
Server: cloudflare
platform: hostinger
panel: hpanel
content-security-policy: upgrade-insecure-requests
x-powered-by: Hostinger Horizons
Cache-Control: public, s-maxage=604800, max-age=0
x-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
CF-RAY: 9bced8d39f71abb8-YYZ
alt-svc: h3=":443"; ma=86400
Page title: Haissam.com
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="https://storage.googleapis.com/hostinger-horizons-assets-prod/ad8c39fb-d128-48b8-89e1-1e99ee0721e6/097c699bc3ce47a396b65db8fde4e5f3.png" />
<meta name="generator" content="Hostinger Horizons" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Haissam.com</title>
<script type="module" crossorigin src="/assets/index-5655289d.js"></script>
<link rel="stylesheet" href="/assets/index-0ffc7099.css">
<script type="module">
window.onerror = (message, source, lineno, colno, errorObj) => {
const errorDetails = errorObj ? JSON.stringify({
name: errorObj.name,
message: errorObj.message,
stack: errorObj.stack,
source,
lineno,
colno,
}) : null;
window.parent.postMessage({
type: 'horizons-runtime-error',
message,
error: errorDetails
}, '*');
};
</script>
<script type="module">
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
for (const addedNode of mutation.addedNodes) {
if (
addedNode.nodeType === Node.ELEMENT_NODE &&
(
addedNode.tagName?.toLowerCase() === 'vite-error-overlay' ||
addedNode.classList?.contains('backdrop')
)
) {
handleViteOverlay(addedNode);
}
}
}
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
function handleViteOverlay(node) {
if (!node.shadowRoot) {
return;
}
const backdrop = node.shadowRoot.querySelector('.backdrop');
if (backdrop) {
const overlayHtml = backdrop.outerHTML;
const parser = new DOMParser();
const doc = parser.parseFromString(overlayHtml, 'text/html');
const messageBodyElement = doc.querySelector('.message-body');
const fileElement = doc.querySelector('.file');
const messageText = messageBodyElement ? messageBodyElement.textContent.trim() : '';
const fileText = fileElement ? fileElement.textContent.trim() : '';
const error = messageText + (fileText ? ' File:' + fileText : '');
window.parent.postMessage({
type: 'horizons-vite-error',
error,
}, '*');
}
}
</script>
<script type="module">
const originalConsoleError = console.error;
console.error = function(...args) {
originalConsoleError.apply(console, args);
let errorString = '';
for (let i = 0; i < args.length; i++) {
const arg = args[i];
if (arg instanceof Error) {
errorString = arg.stack || `${arg.name}: ${arg.message}`;
break;
}
}
if (!errorString) {
errorString = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' ');
}
window.parent.postMessage({
type: 'horizons-console-error',
error: errorString
}, '*');
};
</script>
<script type="module">
const originalFetch = window.fetch;
window.fetch = function(...args) {
const url = args[0] instanceof Request ? args[0].url : args[0];
// Skip WebSocket URLs
if (url.startsWith('ws:') || url.startsWith('wss:')) {
return originalFetch.apply(this, args);
}
return originalFetch.apply(this, args)
.then(async response => {
const contentType = response.headers.get('Content-Type') || '';
// Exclude HTML document responses
const isDocumentResponse =
contentType.includes('text/html') ||
contentType.includes('application/xhtml+xml');
if (!response.ok && !isDocumentResponse) {
const responseClone = response.clone();
const errorFromRes = await responseClone.text();
const requestUrl = response.url;
console.error(`Fetch error from ${requestUrl}: ${errorFromRes}`);
}
return response;
})
.catch(error => {
if (!url.match(/.html?$/i)) {
console.error(error);
}
throw error;
});
};
</script>
<script type="module">
if (window.navigation && window.self !== window.top) {
window.navigation.addEventListener('navigate', (event) => {
const url = event.destination.url;
try {
const destinationUrl = new URL(url);
const destinationOrigin = destinationUrl.origin;
const currentOrigin = window.location.origin;
if (destinationOrigin === currentOrigin)
Open service 172.67.128.227:80 · haissam.com
2026-01-12 18:51
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 18:51:44 GMT
Content-Length: 0
Connection: close
Location: https://haissam.com/
Speculation-Rules: "/cdn-cgi/speculation"
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9k1Y3KAKck8WF%2BxEAqOIDtaUVQJ4l5jTS8mPzW6Xfws%2BlHN8mPI%2BAJWLfqC0Zp%2ByJSzej8TtbpQ%2FHeACei7tQ3A%2BTQCw%2FMcfaP8o"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=13,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bced8d11aefec72-YYZ
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3037::ac43:80e3:8443 · haissam.com
2026-01-12 18:51
HTTP/1.1 522 <none>
Date: Mon, 12 Jan 2026 18:52:04 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 12 Jan 2026 18:52:34 GMT
set-cookie: cf_ob_info=522:9bced8d73f13218d:LHR; Expires=Mon, 12 Jan 2026 18:52:34 GMT
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=19388,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=HgkVwHSdWTQkI1NjoGx%2F2d%2Fvje8QfsM9vpNxPujwexRi%2B5QeRBw2CPwrnH0tuixUtD3ePXo%2B80LcI37Ho6fMa26Iyc4ciGoD6QAaq0c8%2FpsgVuDijl6r"}]}
CF-RAY: 9bced8d73f13218d-LHR
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3037::ac43:80e3:80 · haissam.com
2026-01-12 18:51
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 18:51:44 GMT
Content-Length: 0
Connection: close
Location: https://haissam.com/
Speculation-Rules: "/cdn-cgi/speculation"
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=H6tHltgYgEUTdjvo%2B8RR3qRSJGU2LS8NxSTbwdIz9DsjB8xO7K4eBJwi0yg%2F0u5PZT%2B%2BeVODHljDdRJoh3828UxlJbT%2FmIuIPGrMKMljPJaF7cdxcAcf"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=11,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bced8d0fa4cdc55-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3037::ac43:80e3:443 · haissam.com
2026-01-12 18:51
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 18:51:44 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
last-modified: Thu, 30 Oct 2025 20:16:01 GMT
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=16,cfOrigin;dur=11
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=HOU3BuSWWt%2BzHy26%2FMcKe22FMmFZmgD6vWa8debxAJJNs3gVBxIwmXSjREF3byDji5nRB8XOEvw6BMYCP9VGk%2Bb3awq5Ct37d%2FSdsiE5noiezsCkeW0y"}]}
vary: Accept-Encoding
Server: cloudflare
platform: hostinger
panel: hpanel
content-security-policy: upgrade-insecure-requests
x-powered-by: Hostinger Horizons
Cache-Control: public, s-maxage=604800, max-age=0
alt-svc: h3=":443"; ma=86400
x-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
CF-RAY: 9bced8d149456684-AMS
Page title: Haissam.com
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="https://storage.googleapis.com/hostinger-horizons-assets-prod/ad8c39fb-d128-48b8-89e1-1e99ee0721e6/097c699bc3ce47a396b65db8fde4e5f3.png" />
<meta name="generator" content="Hostinger Horizons" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Haissam.com</title>
<script type="module" crossorigin src="/assets/index-5655289d.js"></script>
<link rel="stylesheet" href="/assets/index-0ffc7099.css">
<script type="module">
window.onerror = (message, source, lineno, colno, errorObj) => {
const errorDetails = errorObj ? JSON.stringify({
name: errorObj.name,
message: errorObj.message,
stack: errorObj.stack,
source,
lineno,
colno,
}) : null;
window.parent.postMessage({
type: 'horizons-runtime-error',
message,
error: errorDetails
}, '*');
};
</script>
<script type="module">
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
for (const addedNode of mutation.addedNodes) {
if (
addedNode.nodeType === Node.ELEMENT_NODE &&
(
addedNode.tagName?.toLowerCase() === 'vite-error-overlay' ||
addedNode.classList?.contains('backdrop')
)
) {
handleViteOverlay(addedNode);
}
}
}
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
function handleViteOverlay(node) {
if (!node.shadowRoot) {
return;
}
const backdrop = node.shadowRoot.querySelector('.backdrop');
if (backdrop) {
const overlayHtml = backdrop.outerHTML;
const parser = new DOMParser();
const doc = parser.parseFromString(overlayHtml, 'text/html');
const messageBodyElement = doc.querySelector('.message-body');
const fileElement = doc.querySelector('.file');
const messageText = messageBodyElement ? messageBodyElement.textContent.trim() : '';
const fileText = fileElement ? fileElement.textContent.trim() : '';
const error = messageText + (fileText ? ' File:' + fileText : '');
window.parent.postMessage({
type: 'horizons-vite-error',
error,
}, '*');
}
}
</script>
<script type="module">
const originalConsoleError = console.error;
console.error = function(...args) {
originalConsoleError.apply(console, args);
let errorString = '';
for (let i = 0; i < args.length; i++) {
const arg = args[i];
if (arg instanceof Error) {
errorString = arg.stack || `${arg.name}: ${arg.message}`;
break;
}
}
if (!errorString) {
errorString = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' ');
}
window.parent.postMessage({
type: 'horizons-console-error',
error: errorString
}, '*');
};
</script>
<script type="module">
const originalFetch = window.fetch;
window.fetch = function(...args) {
const url = args[0] instanceof Request ? args[0].url : args[0];
// Skip WebSocket URLs
if (url.startsWith('ws:') || url.startsWith('wss:')) {
return originalFetch.apply(this, args);
}
return originalFetch.apply(this, args)
.then(async response => {
const contentType = response.headers.get('Content-Type') || '';
// Exclude HTML document responses
const isDocumentResponse =
contentType.includes('text/html') ||
contentType.includes('application/xhtml+xml');
if (!response.ok && !isDocumentResponse) {
const responseClone = response.clone();
const errorFromRes = await responseClone.text();
const requestUrl = response.url;
console.error(`Fetch error from ${requestUrl}: ${errorFromRes}`);
}
return response;
})
.catch(error => {
if (!url.match(/.html?$/i)) {
console.error(error);
}
throw error;
});
};
</script>
<script type="module">
if (window.navigation && window.self !== window.top) {
window.navigation.addEventListener('navigate', (event) => {
const url = event.destination.url;
try {
const destinationUrl = new URL(url);
const destinationOrigin = destinationUrl.origin;
const currentOrigin = window.location.origin;
if (destinationOrigin === currentOrigin)
Open service 104.21.2.75:443 · haissam.com
2026-01-12 18:51
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 18:51:45 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4rdf6MBezogy0oKjgpzLP7efF3q6MfWn5RBtuyLdRZGR3s7nVziDDVld%2F4br%2BXB6HB1%2Fw3NPIup1l4giW3u7AEU6hXqmp172pSZD"}]}
vary: Accept-Encoding
Server: cloudflare
Cache-Control: no-cache,no-store
x-frame-options: SAMEORIGIN
alt-svc: h3=":443"; ma=86400
x-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=25,cfOrigin;dur=1014
CF-RAY: 9bced8d15b611cb7-FRA
Page title: Bot Verification
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Bot Verification</title>
<script>
function onSubmit() {
document.getElementById('lsrecaptcha-form').submit();
}
var onloadCallback = function() {
var cont = grecaptcha.render('recaptchadiv', {
'sitekey': '6LewU34UAAAAAHvXqFOcQlm8z1MP1xpGAZCYEeZY',
'callback': onSubmit,
});
grecaptcha.execute(cont);
};
</script>
<style>
body {
height: 100%;
}
.panel {
padding: 30px;
max-width: 425px;
margin: 10% auto;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);
}
.title {
font-size: 1.5em;
font-weight: 100;
margin-top: 10px;
text-align: center;
}
.recaptcha-center {
margin-top: 35px;
margin-bottom: 20px;
margin-left: 13%;
margin-right: 13%;
display: block;
}
</style>
</head>
<body>
<div class="panel">
<h3 class="title">Verifying that you are not a robot...</h3>
<form id="lsrecaptcha-form" method="POST" action="/.lsrecap/recaptcha?">
<div id="recaptchadiv" class="recaptcha-center"></div>
</form>
</div>
<script src="https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"3e2e81b4417f43f9b2a07ec17728620e","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 104.21.2.75:8443 · haissam.com
2026-01-12 18:51
HTTP/1.1 522 <none>
Date: Mon, 12 Jan 2026 18:52:04 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 12 Jan 2026 18:52:34 GMT
set-cookie: cf_ob_info=522:9bced8d709701817:AMS; Expires=Mon, 12 Jan 2026 18:52:34 GMT
Speculation-Rules: "/cdn-cgi/speculation"
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=19635,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=BjP0Ukp5j6Z2U0WHz1zAVsjddiRe5WoB8%2Bhwdphlh%2Fh%2FWlnJjfXkLu5l%2B8TPOMGCb7MGkN7LGhe2FsVyY%2BEi1OhdLJjcOVMm11%2FO"}]}
CF-RAY: 9bced8d709701817-AMS
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3033::6815:24b:80 · haissam.com
2026-01-12 18:51
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 18:51:44 GMT
Content-Length: 0
Connection: close
Location: https://haissam.com/
Speculation-Rules: "/cdn-cgi/speculation"
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=oY3RQfk53YlEDjUdJM8wHmL0awzkhdjbuYdVJtpOQNSO7rRtRSrTnYtl6rH7EOjZrouEMjqYn7doShpWRplpmKe976l9gIhMBRsbptB5eh2ZX0hngrad"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=11,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bced8d0be10aabd-YYZ
alt-svc: h3=":443"; ma=86400
Open service 104.21.2.75:80 · haissam.com
2026-01-12 18:51
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 18:51:44 GMT
Content-Length: 0
Connection: close
Location: https://haissam.com/
Speculation-Rules: "/cdn-cgi/speculation"
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=DKyDxrh625fnsAIEoG72dkz5dSHJH7luZOiEw%2Fvy9K%2Fq8679L39vsKzN0i8I9SB0yX1bMgDv0348u3fUvtV%2FMtCrA01%2Fle4F7Q%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bced8d0af2c5407-YYZ
alt-svc: h3=":443"; ma=86400