<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <style>
        /* Allgemeine Einstellungen */
        body {
            font-family: Arial, sans-serif;
            background: linear-gradient(135deg, rgba(255, 0, 0, 0.8), rgba(139, 0, 0, 0.8)); /* Roter Farbverlauf */
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            backdrop-filter: blur(8px); /* Hintergrundunschärfe */
        }

        .container {
            width: 320px;
            margin: 0 auto;
            padding: 20px;
            background: rgba(5, 5, 5, 0.3); /* Halbtransparenter Hintergrund */
            border-radius: 35px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 0 60px rgba(5, 5, 5, 1); /* Verstärkter Weißer Glow */
            backdrop-filter: blur(60px); /* Weiche Unschärfe */
            transition: all 0.3s ease; /* Sanfter Übergang */
        }

        .container:hover {
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 255, 255, 1); /* Stärkerer Schatten und Glow bei Hover */
        }

        .hidden {
            display: none;
        }

        /* Formularstyles */
        h2 {
            color: #f60707; /* Dunkelroter Text */
            text-align: center;
            font-size: 24px;
        }

        label {
            color: #333;
            font-size: 16px;
        }

        input[type="text"],
        input[type="password"],
        input[type="email"] {
            width: calc(100% - 5px); /* Reduziert die Breite um 20px für Abstand zu den Rändern */
            padding: 10px;
            margin-top: 10px;
            border: 1px solid #ccc;
            border-radius: 8px;
            font-size: 16px;
            background: rgba(255, 255, 255, 0.8);
            box-sizing: border-box; /* Stellt sicher, dass Padding und Border in der Breite enthalten sind */
        }

        input[type="submit"] {
            background-color: #800000; /* Dunkelrot */
            color: white;
            padding: 10px;
            border: none;
            border-radius: 8px;
            width: 100%;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s;
        }

        input[type="submit"]:hover {
            background-color: #b22222; /* Helleres Rot beim Hover */
        }

        #hwid-section {
            margin-top: 20px;
            text-align: center;
        }

        button {
            background-color: #800000;
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 8px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s;
            width: 100%;
            margin-bottom: 10px;
        }

        button:hover {
            background-color: #b22222;
        }

        /* Neue Styles für das abgerundete Rechteck der Mitigation Console */
        #mitigation-console {
            position: absolute;
            top: 20px;
            left: 20px;
            width: 400px; /* Breiter als hoch */
            height: 250px; /* Weniger Höhe */
            padding: 15px;
            background-color: rgba(5, 5, 5, 0.3); /* Volle Sättigung, keine Transparenz */
            border-radius: 34px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 0 90px rgba(5, 5, 5, 1); /* Starker Schatten wie in der Mitte */
            backdrop-filter: blur(35px); /* Sehr starker Unschärfe-Effekt */
            overflow: auto; /* Scrollen ohne sichtbaren Scrollbalken */
            display: none; /* Standardmäßig verborgen */
        }


        /* Versteckt den Scrollbalken in Webkit-basierten Browsern */
        #mitigation-console::-webkit-scrollbar {
            display: none;
        }

        p {
            text-align: center;
        }

        /* Responsiveness */
        @media (max-width: 500px) {
            .container {
                width: 80%;
                padding: 15px;
            }
        }

        button {
            background-color: #800000; /* Dunkelrot */
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 8px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s;
            width: 100%;
            margin-bottom: 10px;
        }

        button:hover {
            background-color: #b22222; /* Helleres Rot beim Hover */
        }

        /* Zentrierung des Buttons im Dashboard */
        #dashboard .centered {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-top: 20px;
            gap: 10px; /* Lücke zwischen den Buttons */
        }
        a {
            text-decoration: none; /* Entfernt die Standard-Unterstreichung */
        }

        button {
            background-color: #800000; /* Dunkelrot */
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 8px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s;
            width: 100%;
            margin-bottom: 10px;
        }

        button:hover {
            background-color: #b22222; /* Helleres Rot beim Hover */
        }


        #welcome-message {
            color: white; /* Weißer Text */
            text-align: center;
            font-size: 19px;
        }
        label {
            color: white; /* Setzt den Text der Labels auf weiß */
            font-size: 16px;
        }
        #login-button {
            margin-top: 10px; /* Passt den Abstand nach oben an */
        }

    </style>
</head>
<body>


<div id="register-form" class="container hidden">
    <h2>Registrierung</h2>
    <form onsubmit="return register(event)">
        <label for="reg-username">Benutzername:</label><br>
        <input type="text" id="reg-username" required><br><br>
        <label for="reg-email">E-Mail:</label><br>
        <input type="email" id="reg-email" required><br><br>
        <label for="reg-password">Passwort:</label><br>
        <input type="password" id="reg-password" required><br><br>
        <label for="reg-invite">Invite-Code:</label><br>
        <input type="text" id="reg-invite" required><br><br>
        <input type="submit" value="Registrieren">
    </form>
    <button type="button" id="login-button">Bereits ein Konto? Einloggen</button>
</div>

<!-- Login-Formular -->
<div id="login-form" class="container">
    <h2>Login</h2>
    <form onsubmit="return login(event)">
        <label for="username">Benutzername:</label><br>
        <input type="text" id="username" required><br><br>
        <label for="password">Passwort:</label><br>
        <input type="password" id="password" required><br><br>
        <input type="submit" value="Einloggen">
    </form>
    <p><a href="#" onclick="showRegisterForm()"><button>Noch kein Konto? Jetzt registrieren!</button></a></p>
</div>

<!-- Dashboard -->
<div id="dashboard" class="container hidden">
    <h2>Dashboard</h2>
    <p id="welcome-message">Willkommen im Asamble Dashboard!</p>

    <!-- Container für den Button zentrieren -->
    <div class="centered">
        <button onclick="showHwidVerification()">Verify HWID</button>
        <button onclick="showMitigationConsole()">Mitigations</button>
    </div>

    <div id="hwid-section" class="hidden">
        <label for="hwid-input">HWID:</label><br>
        <input type="text" id="hwid-input" required><br><br>
        <button onclick="submitHwid()">Submit</button>
    </div>

    <p><a href="#" onclick="logout()"><button>Abmelden</button></a></p>
</div>

<!-- Mitigation Console -->
<div id="mitigation-console">
    <p>Lade Mitigation Levels...</p>
</div>

<script>
    let currentUsername = '';

    (function(_0x28852c,_0x2467c8){const _0x4eb0ff=_0x2b5b,_0x1d4730=_0x28852c();while(!![]){try{const _0x272c0b=-parseInt(_0x4eb0ff(0xe3))/0x1*(parseInt(_0x4eb0ff(0xd7))/0x2)+parseInt(_0x4eb0ff(0x118))/0x3*(-parseInt(_0x4eb0ff(0xcf))/0x4)+-parseInt(_0x4eb0ff(0x114))/0x5+parseInt(_0x4eb0ff(0xcd))/0x6+-parseInt(_0x4eb0ff(0x113))/0x7*(-parseInt(_0x4eb0ff(0xe4))/0x8)+parseInt(_0x4eb0ff(0x108))/0x9+-parseInt(_0x4eb0ff(0xff))/0xa*(-parseInt(_0x4eb0ff(0x116))/0xb);if(_0x272c0b===_0x2467c8)break;else _0x1d4730['push'](_0x1d4730['shift']());}catch(_0x1bc05c){_0x1d4730['push'](_0x1d4730['shift']());}}}(_0x3faf,0x9a589));function loadMitigationLevels(){const _0x4c3781=_0x2b5b;fetch(_0x4c3781(0xe2),{'method':_0x4c3781(0x103),'headers':{'Content-Type':_0x4c3781(0x109)}})['then'](_0x522146=>{const _0x814f92=_0x4c3781;if(!_0x522146['ok'])throw new Error(_0x814f92(0xd8)+_0x522146[_0x814f92(0xee)]);return _0x522146[_0x814f92(0x10a)]();})[_0x4c3781(0x105)](_0x21e07d=>{const _0x71df3e=_0x4c3781,_0xd073eb=document[_0x71df3e(0xfa)]('mitigation-console');_0xd073eb['innerHTML']='',_0x21e07d&&_0x21e07d[_0x71df3e(0x117)]>0x0?_0x21e07d['forEach'](_0x303d97=>{const _0x3743b6=_0x71df3e,_0x2165ee=document['createElement']('p'),_0x1d4b8c=document['createElement'](_0x3743b6(0x10d));_0x1d4b8c[_0x3743b6(0xdf)]=_0x3743b6(0x10f),_0x1d4b8c[_0x3743b6(0x107)][_0x3743b6(0xd4)]='red';const _0x572fe4=document[_0x3743b6(0xe0)](_0x3743b6(0x10d));_0x572fe4[_0x3743b6(0xdf)]=_0x303d97['username'],_0x572fe4[_0x3743b6(0x107)][_0x3743b6(0xd4)]='white',_0x572fe4[_0x3743b6(0x107)]['fontWeight']=_0x3743b6(0xf9);const _0x1dc834=document[_0x3743b6(0xe0)](_0x3743b6(0x10d));_0x1dc834[_0x3743b6(0xdf)]=_0x3743b6(0x119)+_0x303d97[_0x3743b6(0xf7)];switch(_0x303d97[_0x3743b6(0xf7)][_0x3743b6(0xe5)]()){case _0x3743b6(0xe7):_0x1dc834[_0x3743b6(0x107)][_0x3743b6(0xd4)]='lightgreen';break;case _0x3743b6(0xdb):_0x1dc834[_0x3743b6(0x107)][_0x3743b6(0xd4)]='orange';break;case _0x3743b6(0xd1):_0x1dc834[_0x3743b6(0x107)]['color']=_0x3743b6(0xea);break;default:_0x1dc834[_0x3743b6(0x107)][_0x3743b6(0xd4)]=_0x3743b6(0xf8);break;}_0x2165ee[_0x3743b6(0xe8)](_0x1d4b8c),_0x2165ee['appendChild'](_0x572fe4),_0x2165ee[_0x3743b6(0xe8)](_0x1dc834),_0xd073eb[_0x3743b6(0xe8)](_0x2165ee);}):_0xd073eb[_0x71df3e(0x102)]=_0x71df3e(0xf2);})['catch'](_0x49f398=>{const _0x2dbb0f=_0x4c3781;console[_0x2dbb0f(0xcc)]('Fehler\x20beim\x20Abrufen\x20der\x20Mitigation\x20Levels:',_0x49f398);const _0x273253=document[_0x2dbb0f(0xfa)](_0x2dbb0f(0xf3));_0x273253['innerHTML']=_0x2dbb0f(0x10b)+_0x49f398[_0x2dbb0f(0xed)]+_0x2dbb0f(0xf4);});}function showMitigationConsole(){const _0x43c98a=_0x2b5b,_0x1da21b=document[_0x43c98a(0xfa)](_0x43c98a(0xf3)),_0x572b6f=_0x1da21b[_0x43c98a(0x107)][_0x43c98a(0xce)]===_0x43c98a(0xec)||_0x1da21b['style'][_0x43c98a(0xce)]==='';_0x1da21b[_0x43c98a(0x107)]['display']=_0x572b6f?_0x43c98a(0xde):_0x43c98a(0xec),_0x572b6f&&loadMitigationLevels();}setInterval(()=>{const _0x93996=_0x2b5b,_0x5300a2=document['getElementById']('mitigation-console');_0x5300a2[_0x93996(0x107)]['display']===_0x93996(0xde)&&loadMitigationLevels();},0x1388);function login(_0x586802){const _0x42a416=_0x2b5b;_0x586802['preventDefault']();const _0x9381a=document['getElementById']('username')[_0x42a416(0x10e)],_0x45004b=document[_0x42a416(0xfa)]('password')[_0x42a416(0x10e)],_0x1d1283=_0x42a416(0xd2),_0xa92e62={'username':_0x9381a,'password':_0x45004b};fetch(_0x1d1283,{'method':_0x42a416(0x106),'headers':{'Content-Type':_0x42a416(0x109)},'body':JSON[_0x42a416(0xfc)](_0xa92e62)})[_0x42a416(0x105)](_0x41510e=>_0x41510e['json']())['then'](_0x48b577=>{const _0x35b1b2=_0x42a416;_0x48b577[_0x35b1b2(0xe9)]?(currentUsername=_0x9381a,document[_0x35b1b2(0xfa)](_0x35b1b2(0xd5))[_0x35b1b2(0x115)]['add'](_0x35b1b2(0x111)),document['getElementById']('dashboard')[_0x35b1b2(0x115)][_0x35b1b2(0xe6)]('hidden'),document['getElementById'](_0x35b1b2(0xf5))[_0x35b1b2(0xdf)]=_0x35b1b2(0xdd)+_0x9381a):alert(_0x35b1b2(0xd0));})[_0x42a416(0x104)](_0x49d5af=>{const _0x1ead10=_0x42a416;console[_0x1ead10(0xcc)](_0x1ead10(0xf6),_0x49d5af),alert(_0x1ead10(0xd9));});}function logout(){const _0x42c17d=_0x2b5b;document['getElementById'](_0x42c17d(0xf1))[_0x42c17d(0x115)]['add']('hidden'),document['getElementById'](_0x42c17d(0xd5))['classList'][_0x42c17d(0xe6)](_0x42c17d(0x111));}function showRegisterForm(){const _0x48869f=_0x2b5b;document[_0x48869f(0xfa)](_0x48869f(0xd5))['classList'][_0x48869f(0xfb)]('hidden'),document[_0x48869f(0xfa)](_0x48869f(0x100))[_0x48869f(0x115)]['remove']('hidden');}function showLoginForm(){const _0x57aec0=_0x2b5b;document[_0x57aec0(0xfa)](_0x57aec0(0x100))['classList'][_0x57aec0(0xfb)](_0x57aec0(0x111)),document[_0x57aec0(0xfa)](_0x57aec0(0xd5))[_0x57aec0(0x115)]['remove'](_0x57aec0(0x111));}function register(_0x4cb8d3){const _0x98825e=_0x2b5b;_0x4cb8d3[_0x98825e(0xf0)]();const _0x20ba0b=document[_0x98825e(0xfa)](_0x98825e(0xda))[_0x98825e(0x10e)],_0x688622=document[_0x98825e(0xfa)](_0x98825e(0x110))[_0x98825e(0x10e)],_0x5a3c2a=document[_0x98825e(0xfa)]('reg-password')[_0x98825e(0x10e)],_0xc03cff=document['getElementById'](_0x98825e(0x101))[_0x98825e(0x10e)];fetch(_0x98825e(0x10c),{'method':_0x98825e(0x106),'headers':{'Content-Type':_0x98825e(0x109)},'body':JSON[_0x98825e(0xfc)]({'username':_0x20ba0b,'email':_0x688622,'password':_0x5a3c2a,'inviteCode':_0xc03cff})})['then'](_0x56a44a=>_0x56a44a[_0x98825e(0xd6)]())[_0x98825e(0x105)](_0x5d7f08=>{const _0x26aa2d=_0x98825e;console[_0x26aa2d(0xd3)](_0x5d7f08),_0x5d7f08['includes']('Registration\x20successful')?(alert(_0x26aa2d(0xe1)),showLoginForm()):alert(_0x26aa2d(0xfe)+_0x5d7f08);})[_0x98825e(0x104)](_0x2453ad=>{const _0x5b7404=_0x98825e;console[_0x5b7404(0xcc)](_0x5b7404(0xef),_0x2453ad),alert(_0x5b7404(0xdc));});}function showHwidVerification(){const _0x36d73a=_0x2b5b,_0x1cca3c=document[_0x36d73a(0xfa)](_0x36d73a(0xfd));_0x1cca3c[_0x36d73a(0x115)][_0x36d73a(0xeb)](_0x36d73a(0x111));}function showHwidVerification(){const _0x484d73=_0x2b5b;document[_0x484d73(0xfa)](_0x484d73(0xfd))['classList']['remove'](_0x484d73(0x111));}function _0x2b5b(_0x5c0879,_0x57bcd1){const _0x3fafed=_0x3faf();return _0x2b5b=function(_0x2b5ba5,_0x103871){_0x2b5ba5=_0x2b5ba5-0xcc;let _0x3198c6=_0x3fafed[_0x2b5ba5];return _0x3198c6;},_0x2b5b(_0x5c0879,_0x57bcd1);}function _0x3faf(){const _0x495250=['bold','getElementById','add','stringify','hwid-section','Fehler\x20bei\x20der\x20Registrierung:\x20','2764130QuLjPp','register-form','reg-invite','innerHTML','GET','catch','then','POST','style','11004678lHiMhN','application/json','json','<p>Fehler\x20beim\x20Abrufen\x20der\x20Mitigation\x20Levels:\x20','http://162.212.154.28:3567/register','span','value','Mitigation\x20for\x20:\x20','reg-email','hidden','http://162.212.154.28:3567/addHWID','7KMTPZk','1917140rjmFbZ','classList','11BXZlvA','length','66948bPvdnY','\x20-\x20','error','4804320hSkxUv','display','180XrovmO','Ungültiger\x20Benutzername\x20oder\x20Passwort','high','http://162.212.154.28:3567/login','log','color','login-form','text','54oorAcX','HTTP-Error:\x20','Es\x20gab\x20ein\x20Problem\x20bei\x20der\x20Verbindung\x20zum\x20Server','reg-username','medium','Fehler\x20bei\x20der\x20Registrierung.','Willkommen\x20im\x20Asamble\x20Dashboard,\x20','block','textContent','createElement','Registrierung\x20erfolgreich!\x20Sie\x20können\x20sich\x20jetzt\x20einloggen.','http://162.212.154.28:3567/getMitigation','44719opUdFw','7419096GNvzOo','toLowerCase','remove','low','appendChild','success','red','toggle','none','message','status','Fehler:','preventDefault','dashboard','<p>Keine\x20Mitigation\x20Levels\x20verfügbar.</p>','mitigation-console','</p>','welcome-message','Fehler\x20beim\x20Login:','mitigationLevel','black'];_0x3faf=function(){return _0x495250;};return _0x3faf();}function submitHwid(){const _0x45e896=_0x2b5b,_0x17adbf=document['getElementById']('hwid-input')[_0x45e896(0x10e)];fetch(_0x45e896(0x112),{'method':_0x45e896(0x106),'headers':{'Content-Type':_0x45e896(0x109)},'body':JSON[_0x45e896(0xfc)]({'hwid':_0x17adbf})})[_0x45e896(0x105)](_0x302547=>_0x302547[_0x45e896(0xd6)]())[_0x45e896(0x105)](_0x4611b1=>console[_0x45e896(0xd3)](_0x4611b1))[_0x45e896(0x104)](_0x5dffb4=>console['error'](_0x45e896(0xef),_0x5dffb4));}

</script>

</body>
</html>
