<html lang="en"><head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>HACK BY TradeGenius07</title>

    <script src="js/chart.js"></script>

    <style>

        /* Body Styling */
        body {
            font-family: 'Arial', sans-serif;
            background-color: #000;
            color: white;
            margin: 0;
            padding: 0;
            text-align: center;
            overflow-x: hidden;
        }

        /* Glowing Heading */
        h1, h2 {
            color: #ff0000;
            text-shadow: 0px 0px 20px #ff0000;
            font-size: 2em;
            transition: all 0.3s ease-in-out;
        }

        /* Login Container */
        .login-container {
            background: rgba(255, 0, 0, 0.1);
            border: 2px solid #ff0000;
            width: 90%;
            max-width: 350px;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0px 0px 15px rgba(255, 0, 0, 0.7);
            margin: auto;
            margin-top: 50px;
            transition: 0.5s ease-in-out;
        }

        .login-container:hover {
            box-shadow: 0px 0px 30px rgba(255, 0, 0, 1);
        }

        /* Input Fields */
      .login-container .input-group {
            position: relative;
            margin-bottom: 20px;
        }

       .login-container .input-group input {
            width: 100%;
            padding: 12px;
            border: 2px solid #ff0000;
            border-radius: 5px;
            font-size: 16px;
            outline: none;
            background: rgba(0, 0, 0, 0.8);
            color: white;
        }

       .login-container .input-group i {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #ff0000;
        }

        /* Buttons */
       .login-container .button {
            width: 100%;
            padding: 12px;
            border: none;
            border-radius: 5px;
            background: linear-gradient(90deg, #ff0000, #00ff00);
            color: white;
            font-size: 16px;
            cursor: pointer;
            transition: 0.3s ease-in-out;
            box-shadow: 0px 0px 15px #ff0000;
        }

       .login-container .button:hover {
            transform: scale(1.05);
            box-shadow: 0px 0px 25px #ff0000;
        }

        /* Main Content */
        .main-content {
            display: none;
            text-align: center;
            padding: 0px;
        }

        /* Card Design */
        .card {
            max-width: 100%;
            margin: 20px auto;
            padding: 20px;
            border-radius: 8px;
            background: rgba(255, 0, 0, 0.2);
            border: 2px solid #ff0000;
            box-shadow: 0px 0px 20px #ff0000;
        }

        /* Glowing Buttons */
        .glow-button {
            display: inline-block;
            padding: 10px 20px;
            border-radius: 5px;
            text-decoration: none;
            color: white;
            font-weight: bold;
            transition: 0.3s;
            background: linear-gradient(90deg, #ff0000, #00ff00);
            box-shadow: 0px 0px 20px #ff0000;
        }

        .glow-button:hover {
            transform: scale(1.1);
            box-shadow: 0px 0px 30px #ff0000;
        }

        /* Table Styling */
        table {
            width: 100%;
            border-collapse: collapse;
            background: rgba(0, 0, 0, 0.7);
            color: white;
        }

        th, td {
            padding: 12px;
            text-align: center;
            border-bottom: 1px solid #ff0000;
        }

        th {
            background: #ff0000;
            color: black;
            font-weight: bold;
        }

        tr:hover {
            background: rgba(255, 0, 0, 0.3);
        }

        /* Responsive Design */
        @media (max-width: 768px) {
            h1 { font-size: 1.5em; }
            .card { padding: 15px; }
            th, td { font-size: 14px; padding: 8px; }
        }

            .card {

                padding: 15px;

            }
            
            
        #predictionChart {

            width: 100%;

            height: 250px; /* Fixed height */

            border: 2px solid #FFFF00;

            border-radius: 8px;

            background-color: #FFFFFF;

        }

        .pagination {

            display: flex;

            justify-content: center;

            margin-top: 20px;

        }

        .pagination button {

            padding: 10px 20px;

            margin: 0 5px;

            border: none;

            border-radius: 5px;

            background-color: #FFFF00;

            color: black;

            cursor: pointer;

            transition: background-color 0.3s ease, transform 0.2s ease;

        }

        .pagination button:hover {

            background-color: #FF0000;

            transform: scale(1.05);

        }

        .pagination button:disabled {

            background-color: #DDDDDD;

            cursor: not-allowed;

        }

        #timeRemaining {

            font-size: 24px;

            font-weight: bold;

            text-align: center;

        }

        #predictedNumber, #predictedPremium {

            font-size: 18px;

            text-align: center;

            margin: 10px 0;

        }

            th, td {

                padding: 8px;

                font-size: 14px;

            }

            #timeRemaining {

                font-size: 20px;

            }

            #predictedNumber, #predictedPremium {

                font-size: 16px;

            }

            #predictionChart {

                height: 200px; /* Adjusted height for mobile */

            }

        }

        @media (max-width: 480px) {

            th, td {

                font-size: 12px;

            }

            #timeRemaining {

                font-size: 18px;

            }

            #predictedNumber, #predictedPremium {

                font-size: 14px;

            }

            #predictionChart {

                height: 180px; /* Further adjustment for very small screens */

            }
            
                    #dataTable, #predictionHistoryTable {

            width: 100%;

            border-radius: 8px;

            overflow: hidden;

            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

            background-color: #FFFFFF;

        }
        
                .button-group {

            display: flex;

            justify-content: center;

            margin: 20px 0;

        }

        .button-group a {

            padding: 10px 20px;

            margin: 0 10px;

            border-radius: 5px;

            cursor: pointer;

            text-decoration: none; /* Remove underline */

            color: white; /* Text color */

            display: inline-block; /* Make anchor behave like a button */

            transition: background-color 0.3s ease, transform 0.2s ease;

        }
        
                .button-group a:hover {

            transform: scale(1.05);

        }
        

    </style>

</head>

<body>

    <!-- Login Form -->
    <div class="login-container" id="loginContainer">
        <h2>LOGIN TO CONTINUE</h2>
        <form onsubmit="event.preventDefault(); login();">
            <div class="input-group">
                <i class="fas fa-user"></i>
                <input type="email" id="email" placeholder="Email" required>
            </div>
            <div class="input-group">
                <i class="fas fa-lock"></i>
                <input type="password" id="password" placeholder="Password" required>
            </div>
            <button class="button" type="submit">Login</button>
        </form>
    </div>

            <a href="https://t.me/TradeGenius07" id="telegramButton" target="_blank">Telegram</a>

    <!-- Main Content -->
    <div class="main-content" id="mainContent">

    <h1>𝐖𝐈𝐍𝐆𝐎 𝟏 𝐌𝐈𝐍 𝐏𝐑𝐄𝐃𝐈𝐂𝐓𝐈𝐎𝐍</h1>

    <div class="card">

        <h2>©TradeGenius07™</h2>

        <p id="predictedNumber">Prediction :--</p>

        <p id="predictedPremium">Enjoy: --</p>

    </div>

    <div class="card">

        <h2>Timer</h2>

        <p id="timeRemaining">--:--</p>

        

    <div class="button-group">

        <a href= "t.me/TradeGenius07" id="registerButton" target="_blank">Join</a>

        <a href="https://t.me/TradeGenius07" id="telegramButton" target="_blank">Telegram</a>

    </div>

    </div>

    <div class="card">

        <h2>Collected Data</h2>

        <table id="dataTable">

            <thead>

                <tr>

                    <th>Issue Number</th>

                    <th>Number</th>

                    <th>Colour</th>

                    <th>Premium</th>

                </tr>

            </thead>

            <tbody>

                <!-- Data rows will be inserted here -->

            </tbody>

        </table>

    </div>

    <div class="card">

            <tbody></tbody>

        </table>

        <div class="pagination">

            <button id="prevPage" disabled="">Previous</button>

            <button id="nextPage" disabled="">Next</button>

        </div>

    </div>

    <div class="card">

        <h2>Devloper  @TradeGenius07™</h2>

        <div class="button-group">

        <a href="https://www.in978.com/#/register?invitationCode=885723619234" id="registerButton" target="_blank">Telegram Join Now!!</a>

    </div>

<script>

document.addEventListener('DOMContentLoaded', function() {

    const tableBody = document.querySelector('#dataTable tbody');

    const predictedNumberElement = document.getElementById('predictedNumber');

    const predictedPremiumElement = document.getElementById('predictedPremium');

    const timerElement = document.getElementById('timeRemaining');

    const historyTableBody = document.querySelector('#predictionHistoryTable tbody');

    const prevPageButton = document.getElementById('prevPage');

    const nextPageButton = document.getElementById('nextPage');

    let predictionHistory = JSON.parse(localStorage.getItem('predictionHistory')) || [];

    let lastPrediction = JSON.parse(localStorage.getItem('lastPrediction'));

    let currentPrediction = JSON.parse(localStorage.getItem('currentPrediction'));

    let currentPage = 0;

    const itemsPerPage = 10;

    let timerInterval;

    const fetchNoAverageEmerdList = () => {

        const requestData = {

            pageSize: 10,

            pageNo: 1,

            typeId: 1,

            language: 0,

            random: "ded40537a2ce416e96c00e5218f6859a",

            signature: "69306982EEEB19FA940D72EC93C62552",

            timestamp: Math.floor(Date.now() / 1000)

        };

        return fetch('https://api.bdg88zf.com/api/webapi/GetNoaverageEmerdList', {

            method: 'POST',

            headers: {

                'Content-Type': 'application/json;charset=UTF-8',

                'Accept': 'application/json, text/plain, */*'

            },

            body: JSON.stringify(requestData)

        })

        .then(response => response.json())

        .catch(error => console.error('Error fetching no average EMERD list data:', error));

    };

    const fetchGameIssue = () => {

        const requestData = {

            typeId: 1,

            language: 0,

            random: "f8dcb5c527814db68800e3946a2b60e8",

            signature: "08CF7FF3339ED58D4743F4B650FCBEA9",

            timestamp: Math.floor(Date.now() / 1000)

        };

        return fetch('https://api.bdg88zf.com/api/webapi/GetGameIssue', {

            method: 'POST',

            headers: {

                'Content-Type': 'application/json;charset=UTF-8',

                'Accept': 'application/json, text/plain, */*'

            },

            body: JSON.stringify(requestData)

        })

        .then(response => response.json())

        .catch(error => console.error('Error fetching game issue:', error));

    };
  
          const predictedNumber = (number) => {

        if (number >= 0 && number <= 0) return 'SMALL';

        

        if (number >= 1 && number <= 1) return 'SMALL';

      

        if (number >= 2 && number <= 2) return 'SMALL';

      

        if (number >= 3 && number <= 3) return 'SMALL';

      

        if (number >= 4 && number <= 4) return 'SMALL';

      

        if (number >= 5 && number <= 5) return 'BIG';

      

        if (number >= 6 && number <= 6) return 'BIG';

        

        if (number >= 7 && number <= 7) return 'BIG';

      

        if (number >= 8 && number <= 8) return 'BIG';

      

        if (number >= 9 && number <= 9) return 'BIG';

        return 'Unknown';

    };

const generateRandomPrediction = () => {
    const randomNumber = Math.floor(Math.random() * 10); // 0 se 9 tak random number

    const categories = ["BIG", "SMALL"];
    
    const randomCategory = categories[Math.floor(Math.random() * categories.length)];
    
    return { number: randomNumber, category: randomCategory };
};


    const updateDataAndPrediction = () => {

        fetchNoAverageEmerdList()

            .then(data => {

                const list = data.data.list;

                tableBody.innerHTML = '';

                list.forEach(item => {

                    const numberCategory = predictedNumber(Number(item.number));

                    const row = document.createElement('tr');

                    row.innerHTML = `

                        <td>${item.issueNumber}</td>

                        <td>${item.number} (${numberCategory})</td>

                        <td>${item.colour}</td>

                        <td>${item.premium}</td>

                    `;

                    tableBody.appendChild(row);

                });

                const latestIssue = list[0].issueNumber;

                const latestActual = Number(list[0].number);

                const actualCategory = predictedNumber(latestActual);

                if (!lastPrediction || lastPrediction.issueNumber !== latestIssue) {

                    if (lastPrediction) {

                        const result = (lastPrediction.category === actualCategory) ? 'Win' : 'Loss';

                        predictionHistory.unshift({

                            issueNumber: latestIssue,

                            predictedNumber: lastPrediction.number,

                            actualNumber: latestActual,

                            result: result

                        });

                        localStorage.setItem('predictionHistory', JSON.stringify(predictionHistory));

                    }

                    currentPrediction = generateRandomPrediction();

                    currentPrediction.issueNumber = latestIssue;

                    localStorage.setItem('currentPrediction', JSON.stringify(currentPrediction));

                }

                predictedNumberElement.textContent = `Prediction: ${currentPrediction.number} (${currentPrediction.category})`;

                predictedPremiumElement.textContent = `:`;

                lastPrediction = {

                    issueNumber: latestIssue,

                    number: currentPrediction.number,

                    category: currentPrediction.category

                };

                localStorage.setItem('lastPrediction', JSON.stringify(lastPrediction));

                updatePredictionHistoryTable();

            })

            .catch(error => console.error('Error updating data and prediction:', error));

    };

    const updatePredictionHistoryTable = () => {

        historyTableBody.innerHTML = '';

        const start = currentPage * itemsPerPage;

        const end = start + itemsPerPage;

        const paginatedHistory = predictionHistory.slice(start, end);

        paginatedHistory.forEach(entry => {

            const row = document.createElement('tr');

            row.innerHTML = `

                <td>${entry.issueNumber}</td>

                <td>${entry.predictedNumber}</td>

                <td>${entry.actualNumber}</td>

                <td>${entry.result}</td>

            `;

            historyTableBody.appendChild(row);

        });

        prevPageButton.disabled = currentPage === 0;

        nextPageButton.disabled = end >= predictionHistory.length;

    };

    const updateTimer = () => {

        fetchGameIssue()

            .then(data => {

                const { endTime } = data.data;

                const endDate = new Date(endTime);

                const now = new Date();

                const remainingTimeMs = endDate - now;

                if (remainingTimeMs <= 0) {

                    timerElement.textContent = "Time Remaining: 00:00:00";

                    clearInterval(timerInterval);

                    updateDataAndPrediction();

                    updateTimer();

                } else {

                    const hours = String(Math.floor(remainingTimeMs / (1000 * 60 * 60))).padStart(2, '0');

                    const minutes = String(Math.floor((remainingTimeMs % (1000 * 60 * 60)) / (1000 * 60))).padStart(2, '0');

                    const seconds = String(Math.floor((remainingTimeMs % (1000 * 60)) / 1000)).padStart(2, '0');

                    timerElement.textContent = `Time Remaining: ${hours}:${minutes}:${seconds}`;

                }

            })

            .catch(error => console.error('Error fetching game issue for timer:', error));

    };

    // Pagination controls

    prevPageButton.addEventListener('click', () => {

        if (currentPage > 0) {

            currentPage--;

            updatePredictionHistoryTable();

        }

    });

    nextPageButton.addEventListener('click', () => {

        if ((currentPage + 1) * itemsPerPage < predictionHistory.length) {

            currentPage++;

            updatePredictionHistoryTable();

        }

    });

    // Initialize data and start the timer

    updateDataAndPrediction();

    updateTimer();

    timerInterval = setInterval(() => {

        updateTimer();

        updateDataAndPrediction();

    }, 1000); // Update every 10 seconds

    // Load initial prediction history table

    updatePredictionHistoryTable();

});

</script>

    <!-- Firebase Integration and Login Handling -->

    <script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js"></script>

    <script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-auth.js"></script>

<script>
    // Firebase configuration
    var firebaseConfig = {
        apiKey: "AIzaSyDusYdtpA1Ku0XA4d6lb4dgqXyG3yCU1XE",
        authDomain: "tradegenius07-panel.firebaseapp.com",
        databaseURL: "https://tradegenius07-panel-default-rtdb.firebaseio.com",
        projectId: "tradegenius07-panel",
        storageBucket: "tradegenius07-panel.firebasestorage.app",
        messagingSenderId: "746554117507",
        appId: "1:746554117507:android:d831c348c013b5a84a7ab6"
    };

    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);

    // Login function
    function login() {
        var email = document.getElementById("email").value;
        var password = document.getElementById("password").value;

        firebase.auth().signInWithEmailAndPassword(email, password)
            .then((userCredential) => {
                // Successful login
                console.log("Login successful");
                document.getElementById("loginContainer").style.display = "none";
                document.getElementById("mainContent").style.display = "block";
            })
            .catch((error) => {
                var errorCode = error.code;
                var errorMessage = error.message;
                alert("Login failed: " + errorMessage);
            });
    }
</script>

    </script>
    
        <script>
    
    const axios = require("axios");

const checkVPN = async (ip) => {
  try {
    const response = await axios.get(`https://ipqualityscore.com/api/json/ip/YOUR_API_KEY/${ip}`);
    const data = response.data;

    if (data.proxy || data.vpn || data.tor) {
      return true; // VPN/Proxy detected
    }
    return false;
  } catch (error) {
    console.error("Error checking VPN/Proxy:", error);
    return false;
  }
};


import { fetch } from "react-native-ssl-pinning";

fetch("https://your-api.com/endpoint", {
  method: "GET",
  sslPinning: {
    certs: ["your_cert"], // Certificate file in PEM format
  },
})
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.error("SSL Pinning Failed", error);
  });
  
  
  exports.secureEndpoint = (req, res) => {
  const apiKey = req.headers["x-api-key"];
  
  if (apiKey !== "YOUR_SECRET_KEY") {
    return res.status(403).send({ error: "Unauthorized request" });
  }

  // Proceed with secure logic
};


{

const blockedUserAgents = ["HTTPCanary", "Charles", "ProxyTool"];

app.use((req, res, next) => {
  const userAgent = req.headers["user-agent"];
  if (blockedUserAgents.some((agent) => userAgent.includes(agent))) {
    return res.status(403).send({ error: "Forbidden" });
  }
  next();
});


const rateLimit = require("express-rate-limit");

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 100, // Limit each IP to 100 requests per windowMs
});

app.use(limiter);


const functions = require("firebase-functions");
const admin = require("firebase-admin");
const axios = require("axios");

admin.initializeApp();

exports.securePrediction = functions.https.onRequest(async (req, res) => {
  const ip = req.headers["x-forwarded-for"] || req.connection.remoteAddress;

  // Check VPN/Proxy
  const isVPN = await checkVPN(ip);
  if (isVPN) {
    return res.status(403).send({ error: "VPN/Proxy detected. Access denied." });
  }

  // Check Authentication
  const user = req.headers["authorization"];
  if (!user) {
    return res.status(401).send({ error: "Unauthorized. Please log in." });
  }

  // Verify Token
  try {
    const decodedToken = await admin.auth().verifyIdToken(user);
    const uid = decodedToken.uid;

    // Fetch Predictions (Only for registered users)
    const userDoc = await admin.firestore().collection("users").doc(uid).get();
    if (!userDoc.exists) {
      return res.status(404).send({ error: "User not registered." });
    }

    return res.status(200).send({ prediction: "Your prediction data here." });
  } catch (error) {
    return res.status(401).send({ error: "Invalid token." });
  }
});

// VPN/Proxy Detection Function
const checkVPN = async (ip) => {
  try {
    const response = await axios.get(`https://ipqualityscore.com/api/json/ip/YOUR_API_KEY/${ip}`);
    const data = response.data;
    return data.proxy || data.vpn || data.tor;
  } catch (error) {
    console.error("Error checking VPN:", error);
    return false;
  }
};

    
    </script>
    

  

</div></body></html>