{"error":"0","serverId":"A97C59E6-C9AB-4DF5-9E69-A2708CD8811C","message":"","htmlcontent":"\u003c!DOCTYPE html\u003e\u003chtml lang=\u0027en\u0027\u003e\u003chead\u003e\u003cmeta charset=\u0027UTF-8\u0027\u003e\u003cmeta name=\u0027viewport\u0027 content=\u0027width=device-width, initial-scale=1.0\u0027\u003e\u003clink rel=\u0027shortcut icon\u0027 href=\u0027https://d2dgys6tg64hrs.cloudfront.net/w0/img/logo.webp\u0027’\u0027 type=\u0027image/x-icon\u0027\u003e\u003ctitle\u003eAFB Launcher - Domain Health Check\u003c/title\u003e\u003cstyle\u003e.err404,.holdtight,.loading,h1,p{text-align:center}#status,.oops,h1{color:#489c36}*{box-sizing:border-box}body{background-color:#050B08;color:#fff;font-family:sans-serif,Inter;height:100%;margin:0}.container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;margin:auto;overflow-y:scroll;position:relative;scrollbar-width:none}body::-webkit-scrollbar{display:none}h1{font-size:2em;margin:0 auto;padding-left:30px;padding-right:30px}.oops{font-size:2.5em}p{font-size:1.3em;margin:10px auto 0;padding-left:50px;padding-right:50px;line-height:1.3em}.holdtight{margin:0 auto;max-height:80px}.err404{margin:0 auto}.loading{margin-bottom:50px}@media only screen and (max-width:1199px){.holdtight{width:750px}}@media only screen and (max-width:768px){.holdtight{width:650px}}@media only screen and (max-width:576px){.holdtight{width:450px}.err404{width:300px}h1{font-size:1.5em}.oops{font-size:2em}p{font-size:1em}}@media only screen and (max-width:450px){.err404,.holdtight{width:300px}.oops,h1{font-size:1.5em}p{font-size:1em}}.status-box{padding:0;font-weight:700}#status{animation:1.5s linear infinite blinker;font-weight:700}@keyframes blinker{50%{opacity:0}}\u003c/style\u003e\u003c/head\u003e\u003cbody\u003e\u003cdiv class=\u0027container\u0027\u003e\u003cimg src=\u0027https://d2dgys6tg64hrs.cloudfront.net/offline/holdtight.webp\u0027 alt=\u0027Hold Tight\u0027 class=\u0027holdtight\u0027\u003e\u003cimg src=\u0027https://d2dgys6tg64hrs.cloudfront.net/offline/launcher.gif\u0027 alt=\u0027Checking\u0027 class=\u0027err404\u0027\u003e\u003cp class=\u0027status-box\u0027\u003eStatus: \u003cspan id=\u0027status\u0027\u003eFetching domain list...\u003c/span\u003e\u003c/p\u003e\u003ch1\u003eWe\u0027re Checking Available Access\u003c/h1\u003e\u003c/div\u003e\u003cscript\u003econst CHECK_INTERVAL = 50;const TIMEOUT_DURATION = 3000;let domainsToCheck = [];let currentIndex = 0;let isChecking = false;var fetchTimeout = null; const sk = \u0027\u0027;const us = \u0027\u0027;const ag = \u0027\u0027;const Webid = \u0027\u0027;const toFCUrl = \u0027\u0027;const DisTin = \u0027\u0027;const k = \u0027\u0027;const device = \u0027\u0027;const oddsstyle = \u0027\u0027;const oddsmode = \u0027\u0027;const currencyName = \u0027\u0027;const tp = \u0027\u0027;const AspxAutoDetectCookieSupport = \u0027\u0027;const isiosiframe = \u0027\u0027;const IsAuto = \u0027\u0027;const markettype = \u0027\u0027;const IsHideChipSet = \u0027\u0027;const lg = \u0027\u0027;const lang = \u0027\u0027;const print_txt = \u0027\u0027;const ismmy = \u0027\u0027;function buildParamString(){return \u0027sk=\u0027+encodeURIComponent(sk)+\u0027\u0026us=\u0027+encodeURIComponent(us)+\u0027\u0026ag=\u0027+encodeURIComponent(ag)+\u0027\u0026webid=\u0027+encodeURIComponent(Webid)+\u0027\u0026toFCUrl=\u0027+encodeURIComponent(toFCUrl)+\u0027\u0026DisTin=\u0027+encodeURIComponent(DisTin)+\u0027\u0026k=\u0027+encodeURIComponent(k)+\u0027\u0026device=\u0027+encodeURIComponent(device)+\u0027\u0026oddsstyle=\u0027+encodeURIComponent(oddsstyle)+\u0027\u0026oddsmode=\u0027+encodeURIComponent(oddsmode)+\u0027\u0026currencyName=\u0027+encodeURIComponent(currencyName)+\u0027\u0026tp=\u0027+encodeURIComponent(tp)+\u0027\u0026AspxAutoDetectCookieSupport=\u0027+encodeURIComponent(AspxAutoDetectCookieSupport)+\u0027\u0026isiosiframe=\u0027+encodeURIComponent(isiosiframe)+\u0027\u0026IsAuto=\u0027+encodeURIComponent(IsAuto)+\u0027\u0026markettype=\u0027+encodeURIComponent(markettype)+\u0027\u0026IsHideChipSet=\u0027+encodeURIComponent(IsHideChipSet)+\u0027\u0026lg=\u0027+encodeURIComponent(lg)+\u0027\u0026ismmy=\u0027+encodeURIComponent(ismmy)+\u0027\u0026print_txt=\u0027+encodeURIComponent(print_txt)+\u0027\u0026lang=\u0027+encodeURIComponent(lang);}function fetchCSV(){fetch(\u0027https://afbdomaincheck.s3.ap-northeast-1.amazonaws.com/redirectdomain-kgapi.csv\u0027).then(r=\u003er.text()).then(text=\u003e{domainsToCheck=parseCSV(text);if(domainsToCheck.length\u003e0){document.getElementById(\u0027status\u0027).textContent=\u0027Starting health check…\u0027;checkDomains();}else{document.getElementById(\u0027status\u0027).textContent=\u0027No domains found in CSV.\u0027}}).catch(err=\u003e{console.error(\u0027Error fetching CSV file:\u0027,err);document.getElementById(\u0027status\u0027).textContent=\u0027Failed to fetch CSV.\u0027});}function parseCSV(text){return text.split(/\\r?\\n/).map(line=\u003eline.trim()).filter(line=\u003eline).map(domain=\u003e(domain.startsWith(\u0027http://\u0027)||domain.startsWith(\u0027https://\u0027))?domain:\u0027https://\u0027+domain);}function checkDomains(){if(isChecking)return;if(currentIndex\u003e=domainsToCheck.length)currentIndex=0;let t=domainsToCheck[currentIndex++]||\u0027\u0027;if(!t){document.getElementById(\u0027status\u0027).textContent=\u0027Invalid domain. Skipping…\u0027;return setTimeout(checkDomains,CHECK_INTERVAL);}document.getElementById(\u0027status\u0027).textContent=`Checking: ${t}`;isChecking=true;fetchTimeout=setTimeout(()=\u003e{isChecking=false;setTimeout(checkDomains,CHECK_INTERVAL);},TIMEOUT_DURATION);fetch(t+\u0027/offline.json?healthcheck=true\u0027,{mode:\u0027no-cors\u0027,method:\u0027HEAD\u0027,cache:\u0027no-store\u0027}).then(()=\u003e{clearTimeout(fetchTimeout);window.location.href=t+\u0027/Public/Validate.aspx?\u0027+buildParamString();}).catch(()=\u003e{isChecking=false;setTimeout(checkDomains,CHECK_INTERVAL);});}window.addEventListener(\u0027load\u0027,fetchCSV);\u003c/script\u003e\u003c/body\u003e\u003c/html\u003e"}