Domain 0d.su
Russia
LLC masterhost
Software information

Apache Apache

tcp/443

nginx nginx

tcp/80

  • Open service 2a00:15f8:a000:5:1:11:2:3937:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:49 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:12:2:3937:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:49 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.45:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.32:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:49 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:13:2:3937:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:11:2:3937:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:14:2:3937:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:12:2:3937:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:11:2:3937:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:13:2:3937:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:14:2:3937:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:13:2:3937:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.56:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:12:2:3937:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:14:2:3937:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.45:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.45:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.74:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.56:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:13:2:3937:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:12:2:3937:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.56:80 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://www.0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:14:2:3937:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:47 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.74:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 2a00:15f8:a000:5:1:11:2:3937:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.32:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.45:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:47 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.32:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.74:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.56:443 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.32:443 · www.0d.su

    2026-01-05 02:11

    HTTP/1.1 200 OK
    Date: Mon, 05 Jan 2026 02:11:48 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 12383
    Connection: close
    Vary: Accept-Encoding
    Server: Apache
    Last-Modified: Wed, 22 Oct 2025 21:37:32 GMT
    ETag: "305f-641c61fbe8adc"
    Accept-Ranges: bytes
    Cache-Control: max-age=0
    Expires: Mon, 05 Jan 2026 02:11:48 GMT
    
    Page title: 0d.su
    
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
        <title>0d.su</title>
        <meta http-equiv="Content-Security-Policy"
              content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; script-src 'self' 'nonce-csp123'; upgrade-insecure-requests">
        <style>
            :root {
                --bg: #000;
                --fg: #00e676;
                --fg-dim: #0acb6b;
                --grid-size: 18px;
            }
    
            * {
                box-sizing: border-box;
            }
    
            html, body {
                height: 100%;
            }
    
            body {
                margin: 0;
                background: var(--bg);
                color: var(--fg);
                font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
                letter-spacing: .02em;
                min-height: 100dvh; /* correct mobile viewport height */
                -webkit-tap-highlight-color: transparent;
                touch-action: manipulation;
            }
    
            #grid {
                position: fixed;
                inset: 0;
                width: 100dvw;
                height: 100dvh;
            }
    
                #grid span {
                    display: inline-block;
                    width: var(--grid-size);
                    height: var(--grid-size);
                    line-height: var(--grid-size);
                    text-align: center;
                    font-size: calc(var(--grid-size)*.8);
                    user-select: none;
                    color: var(--fg);
                    opacity: .22;
                    pointer-events: none;
                }
    
                #grid br {
                    line-height: 0;
                }
    
                #grid span.link {
                    pointer-events: auto;
                    cursor: pointer;
                    text-decoration: underline;
                    border-bottom: 1px solid currentColor;
                    opacity: 1;
                }
    
            /* Phone tweaks */
            @media (max-width: 480px) {
                :root {
                    --grid-size: 16px;
                }
            }
    
            @media (max-width: 420px) {
                :root {
                    --grid-size: 14px;
                }
            }
    
            @media (max-width: 360px) {
                :root {
                    --grid-size: 12px;
                }
            }
        </style>
    </head>
    <body>
        <div id="grid"></div>
        <script nonce="csp123">
            (function () {
                'use strict';
    
                const CHARS = '0123456789ABCDEF·+/*#@$%=&?';
                const cell = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--grid-size')) || 18;
                const gridEl = document.getElementById('grid');
    
                // RNG
                const rng = (() => {
                    const c = (window.crypto || window.msCrypto);
                    if (c && c.getRandomValues) {
                        const b = new Uint32Array(1024); let i = b.length;
                        return m => { if (i >= b.length) { c.getRandomValues(b); i = 0 } return b[i++] % m; };
                    }
                    return m => Math.floor(Math.random() * m);
                })();
    
                // Layout state
                let cols = 0, rows = 0, total = 0, spans = [], original = [], positions = [], reserved = new Set(), caretIdx = -1, linkIdxs = [];
                const CARET_PERIOD = 900; let caretOn = true, caretLast = 0;
    
                // Pointer state
                let mouseX = -9999, mouseY = -9999;
                let offX = 0, offY = 0; // grid offset for accurate hit-tests
    
                // Perf / mobile tuning
                const coarse = matchMedia('(pointer:coarse)').matches;
                const BASE_RADIUS = coarse ? 80 : 120;
                const INTENSITY = coarse ? 0.5 : 0.7;
                const FPS = coarse ? 24 : 30;
                const frame = 1000 / FPS;
                let last = 0;
    
                // Respect reduced motion + page visibility
                let reduceMotion = matchMedia('(prefers-red
    Found 2026-01-05 by HttpPlugin
    Create report
  • Open service 90.156.201.74:80 · 0d.su

    2026-01-05 02:11

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 05 Jan 2026 02:11:47 GMT
    Content-Type: text/html
    Content-Length: 178
    Connection: close
    Server: nginx
    Location: https://0d.su/
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    
    Found 2026-01-05 by HttpPlugin
    Create report
0d.suwww.0d.su
CN:
www.0d.su
Key:
RSA-2048
Issuer:
R12
Not before:
2025-11-01 11:58
Not after:
2026-01-30 11:58