Restore files that `yarn build` removed

This commit is contained in:
Mattallmighty 2022-02-18 10:19:54 +11:00
parent 69bf2e19f3
commit 156e5db380
49 changed files with 331 additions and 0 deletions

View File

@ -0,0 +1,6 @@
"""ledfx_frontend"""
import os
def where():
return os.path.dirname(__file__)

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/favicon/ms-icon-70x70.png"/><square150x150logo src="/favicon/ms-icon-150x150.png"/><square310x310logo src="/favicon/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

188
ledfx_frontend/electron.js Normal file
View File

@ -0,0 +1,188 @@
const path = require('path');
const { app, Menu, Tray, nativeImage, Notification, nativeTheme, BrowserWindow, ipcMain, shell } = require('electron');
const isDev = require('electron-is-dev');
const { download } = require("electron-dl");
const fs = require('fs')
// Conditionally include the dev tools installer to load React Dev Tools
let installExtension, REACT_DEVELOPER_TOOLS, REDUX_DEVTOOLS; // NEW!
if (isDev) {
const devTools = require("electron-devtools-installer");
installExtension = devTools.default;
REACT_DEVELOPER_TOOLS = devTools.REACT_DEVELOPER_TOOLS;
REDUX_DEVTOOLS = devTools.REDUX_DEVTOOLS;
}
// Handle creating/removing shortcuts on Windows when installing/uninstalling
if (require("electron-squirrel-startup")) {
app.quit();
}
let win
function createWindow(args) {
require('@electron/remote/main').initialize()
// require('@treverix/remote/main').initialize()
// Create the browser window.
win = new BrowserWindow({
width: 480,
height: 768,
autoHideMenuBar: true,
titleBarStyle: "hidden",
// frame: false,
webPreferences: {
webSecurity: false,
plugins: true,
enableRemoteModule: true,
backgroundThrottling: false,
nodeIntegration: true,
contextIsolation: true,
preload: path.join(__dirname, 'preload.js'),
...args
}
});
win.loadURL(
isDev
? 'http://localhost:3000'
: `file://${path.join(__dirname, '../build/index.html')}`
);
// win.removeMenu()
// Open the DevTools.
// if (isDev) {
// win.webContents.openDevTools({ mode: 'detach' });
// }
return win
}
const NOTIFICATION_TITLE = 'LedFx Client - by Blade'
const NOTIFICATION_BODY = 'Testing Notification from the Main process'
function showNotification() {
new Notification({ title: NOTIFICATION_TITLE, body: NOTIFICATION_BODY }).show()
}
let tray = null
var subpy = null
var contextMenu = null
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
var wind
app.whenReady().then(async () => {
nativeTheme.themeSource = 'dark';
const thePath = process.env.PORTABLE_EXECUTABLE_DIR || path.resolve('.')
const ledfxCores = fs.readdirSync(thePath).filter(o => (o.length - o.indexOf('--win-portable.exe') === 18) && o.indexOf('LedFx_core') === 0)
const ledfxCore = ledfxCores && ledfxCores.length && ledfxCores.length > 0 && ledfxCores[ledfxCores.length - 1]
const integratedCore = ledfxCore && fs.existsSync(`${thePath}/${ledfxCore}`)
if (integratedCore) {
subpy = require("child_process").spawn(`./${ledfxCore}`, ["-p", "8888"]);
}
wind = (integratedCore) ? createWindow({additionalArguments: ["integratedCore"]}) : createWindow();
// require('@treverix/remote/main').initialize()
require("@electron/remote/main").enable(wind.webContents)
if (isDev) {
await installExtension([REACT_DEVELOPER_TOOLS, REDUX_DEVTOOLS], { loadExtensionOptions: { allowFileAccess: true }, forceDownload: false })
.then(name => console.log(`Added Extension: ${name}`))
.catch(error => console.log(`An error occurred: , ${error}`));
}
const icon = path.join(__dirname, 'icon_16x16a.png')
tray = new Tray(icon)
if (integratedCore) {
contextMenu = Menu.buildFromTemplate([
{ label: 'Show', click: () => wind.show() },
{ label: 'Minimize', click: () => wind.minimize() },
{ label: 'Minimize to tray', click: () => wind.hide() },
{ label: 'Test Notifiation', click: () => showNotification() },
{ label: 'seperator', type: 'separator' },
{ label: 'Dev', click: () => wind.webContents.openDevTools() },
{ label: 'seperator', type: 'separator' },
{ label: 'Start core', click: () => subpy = require("child_process").spawn(`./${ledfxCore}`, []) },
{ label: 'Stop core', click: () => wind.webContents.send('fromMain', 'shutdown') },
// { label: 'Download core', click: () => download(wind, `https://github.com/YeonV/LedFx-Frontend-v2/releases/latest/download/LedFx_core-${app.getVersion().split('-')[1]}--win-portable.exe`, { directory: thePath, overwrite: true }).then((f) => { app.relaunch(); app.exit() }) },
{ label: 'Restart Client', click: () => { app.relaunch(); app.exit() }},
{ label: 'Open folder', click: () => shell.openPath(thePath) },
{ label: 'seperator', type: 'separator' },
{ label: 'Exit', click: () => app.quit() }
])
} else {
contextMenu = Menu.buildFromTemplate([
{ label: 'Show', click: () => wind.show() },
{ label: 'Minimize', click: () => wind.minimize() },
{ label: 'Minimize to tray', click: () => wind.hide() },
{ label: 'Test Notifiation', click: () => showNotification() },
{ label: 'seperator', type: 'separator' },
{ label: 'Dev', click: () => wind.webContents.openDevTools() },
{ label: 'seperator', type: 'separator' },
{ label: 'Stop core', click: () => wind.webContents.send('fromMain', 'shutdown') },
// { label: 'Download core', click: () => download(wind, `https://github.com/YeonV/LedFx-Frontend-v2/releases/latest/download/LedFx_core-${app.getVersion().split('-')[1]}--win-portable.exe`, { directory: thePath, overwrite: true, onProgress: (obj)=>{wind.webContents.send('fromMain', ['download-progress', obj])} }).then((f) => { wind.webContents.send('fromMain', 'clear-frontend'); app.relaunch(); app.exit() })},
{ label: 'Restart Client', click: () => {app.relaunch(); app.exit() }},
{ label: 'Open folder', click: () => shell.openPath(thePath) },
{ label: 'seperator', type: 'separator' },
{ label: 'Exit', click: () => app.quit() }
])
}
tray.setToolTip(`LedFx Client${isDev ? ' DEV' : ''}`)
tray.setContextMenu(contextMenu)
tray.setIgnoreDoubleClickEvents(true)
tray.on('click', (e) => wind.show())
ipcMain.on("toMain", (event, parameters) => {
console.log(parameters)
if (parameters === 'start-core') {
console.log("Starting Core", ledfxCore)
if (integratedCore) {
subpy = require("child_process").spawn(`./${ledfxCore}`, [])
}
return
}
if (parameters === 'open-config') {
console.log("Open Config")
shell.showItemInFolder(path.join(app.getPath('appData'), '/.ledfx/config.json'))
return
}
if (parameters === 'restart-client') {
app.relaunch();
app.exit();
return
}
if (parameters === 'download-core') {
download(wind, `https://github.com/YeonV/LedFx-Frontend-v2/releases/latest/download/LedFx_core-${app.getVersion().split('-')[1]}--win-portable.exe`, { directory: thePath, overwrite: true, onProgress: (obj)=>{wind.webContents.send('fromMain', ['download-progress', obj])} }).then((f) => { wind.webContents.send('fromMain', 'clear-frontend'); app.relaunch(); app.exit() })
return
}
});
if (integratedCore) {
wind.on('close', ()=>{
wind.webContents.send('fromMain', 'shutdown')
})
}
});
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
if (subpy !== null) {
subpy.kill("SIGINT");
}
app.quit();
}
});
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
ledfx_frontend/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
ledfx_frontend/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

BIN
ledfx_frontend/logo192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
ledfx_frontend/logo512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,58 @@
{
"short_name": "LedFx",
"name": "LedFx Client by Blade",
"description": "Connect to any LedFx-Instance",
"author": "Yeon (Blade)",
"developer": {
"name": "Yeon",
"url": "https://github.com/YeonV"
},
"icons": [
{
"src": "favicon/android-icon-36x36.png",
"sizes": "36x36",
"type": "image/png",
"density": "0.75"
},
{
"src": "favicon/android-icon-48x48.png",
"sizes": "48x48",
"type": "image/png",
"density": "1.0"
},
{
"src": "favicon/android-icon-72x72.png",
"sizes": "72x72",
"type": "image/png",
"density": "1.5"
},
{
"src": "favicon/android-icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"density": "2.0"
},
{
"src": "favicon/android-icon-144x144.png",
"sizes": "144x144",
"type": "image/png",
"density": "3.0"
},
{
"src": "favicon/android-icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"density": "4.0"
}
],
"start_url": ".",
"scope": ".",
"display": "standalone",
"orientation": "any",
"serviceworker": {
"src": "serviceWorker.js",
"scope": "."
},
"theme_color": "#800000",
"background_color": "#030303"
}

29
ledfx_frontend/preload.js Normal file
View File

@ -0,0 +1,29 @@
const { contextBridge, ipcRenderer } = require('electron');
const customTitlebar = require('@treverix/custom-electron-titlebar');
contextBridge.exposeInMainWorld('api', {
send: (channel, data) => {
// Whitelist channels
let validChannels = ['toMain'];
if (validChannels.includes(channel)) {
ipcRenderer.send(channel, data);
}
},
receive: (channel, func) => {
let validChannels = ['fromMain'];
if (validChannels.includes(channel)) {
// Deliberately strip event as it includes `sender`
ipcRenderer.on(channel, (event, ...args) => func(...args));
}
},
});
window.addEventListener('DOMContentLoaded', () => {
new customTitlebar.Titlebar({
backgroundColor: customTitlebar.Color.fromHex('#202020'),
icon: './icon.png',
menu: false,
titleHorizontalAlignment: 'left',
});
})

View File

@ -0,0 +1,13 @@
// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// No Node.js APIs are available in this process because
// `nodeIntegration` is turned off. Use `preload.js` to
// selectively enable features needed in the rendering
// process.
// import { Titlebar } from 'custom-electron-titlebar'
// window.addEventListener('DOMContentLoaded', () => {
// new Titlebar({
// backgroundColor: '#800000'
// })
// })

View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

View File

@ -0,0 +1,11 @@
self.addEventListener('install', event => {
event.waitUntil(Promise.resolve());
});
self.addEventListener('activate', event => {
event.waitUntil(self.clients.claim());
});
self.addEventListener('fetch', event => {
event.waitUntil(Promise.resolve());
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
"use strict";(self.webpackChunkledfx=self.webpackChunkledfx||[]).push([[787],{787:function(e,n,t){t.r(n),t.d(n,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,n){return{name:e,value:void 0===n?-1:n,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var t=new PerformanceObserver((function(e){return e.getEntries().map(n)}));return t.observe({type:e,buffered:!0}),t}}catch(e){}},f=function(e,n){var t=function t(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),n&&(removeEventListener("visibilitychange",t,!0),removeEventListener("pagehide",t,!0)))};addEventListener("visibilitychange",t,!0),addEventListener("pagehide",t,!0)},s=function(e){addEventListener("pageshow",(function(n){n.persisted&&e(n)}),!0)},m=function(e,n,t){var i;return function(r){n.value>=0&&(r||t)&&(n.delta=n.value-(i||0),(n.delta||void 0===i)&&(i=n.value,e(n)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var n=e.timeStamp;v=n}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,n){var t,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime<i.firstHiddenTime&&(r.value=e.startTime,r.entries.push(e),t(!0)))},o=window.performance&&performance.getEntriesByName&&performance.getEntriesByName("first-contentful-paint")[0],f=o?null:c("paint",a);(o||f)&&(t=m(e,r,n),o&&a(o),s((function(i){r=u("FCP"),t=m(e,r,n),requestAnimationFrame((function(){requestAnimationFrame((function(){r.value=performance.now()-i.timeStamp,t(!0)}))}))})))},h=!1,T=-1,y=function(e,n){h||(g((function(e){T=e.value})),h=!0);var t,i=function(n){T>-1&&e(n)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var n=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-n.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,t())}},p=c("layout-shift",v);p&&(t=m(i,r,n),f((function(){p.takeRecords().map(v),t(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),t=m(i,r,n)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,n){i||(i=n,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r<a-w){var e={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+r};o.forEach((function(n){n(e)})),o=[]}},b=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,n){var t=function(){L(e,n),r()},i=function(){r()},r=function(){removeEventListener("pointerup",t,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",t,E),addEventListener("pointercancel",i,E)}(n,e):L(n,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(n){return e(n,b,E)}))},C=function(e,n){var t,a=l(),v=u("FID"),p=function(e){e.startTime<a.firstHiddenTime&&(v.value=e.processingStart-e.startTime,v.entries.push(e),t(!0))},d=c("first-input",p);t=m(e,v,n),d&&f((function(){d.takeRecords().map(p),d.disconnect()}),!0),d&&s((function(){var a;v=u("FID"),t=m(e,v,n),o=[],r=-1,i=null,F(addEventListener),a=p,o.push(a),S()}))},k={},P=function(e,n){var t,i=l(),r=u("LCP"),a=function(e){var n=e.startTime;n<i.firstHiddenTime&&(r.value=n,r.entries.push(e)),t()},o=c("largest-contentful-paint",a);if(o){t=m(e,r,n);var v=function(){k[r.id]||(o.takeRecords().map(a),o.disconnect(),k[r.id]=!0,t(!0))};["keydown","click"].forEach((function(e){addEventListener(e,v,{once:!0,capture:!0})})),f(v,!0),s((function(i){r=u("LCP"),t=m(e,r,n),requestAnimationFrame((function(){requestAnimationFrame((function(){r.value=performance.now()-i.timeStamp,k[r.id]=!0,t(!0)}))}))}))}},D=function(e){var n,t=u("TTFB");n=function(){try{var n=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,n={entryType:"navigation",startTime:0};for(var t in e)"navigationStart"!==t&&"toJSON"!==t&&(n[t]=Math.max(e[t]-e.navigationStart,0));return n}();if(t.value=t.delta=n.responseStart,t.value<0||t.value>performance.now())return;t.entries=[n],e(t)}catch(e){}},"complete"===document.readyState?setTimeout(n,0):addEventListener("pageshow",n)}}}]);
//# sourceMappingURL=787.2c81ab53.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,15 @@
<svg xmlnsSvg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" viewBox="0 0 1024 768" height="768px" width="1024px" version="1.1">
<g id="logo-group">
<g id="title" style="font-style:normal;font-weight:300;font-size:72px;line-height:1;font-family:'Montserrat Light Alt1';font-variant-ligatures:none;text-align:center;text-anchor:middle">
<path id="path132894" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="m 327.89713,-21.744 c -1.87201,-2.16 -4.608,-3.528 -8.20801,-4.248 2.52001,-0.792 4.608,-2.232 6.12,-4.248 1.512,-1.944 2.30401,-4.32 2.30401,-7.272 0,-4.104 -1.584,-7.272 -4.608,-9.504 -3.024,-2.232 -7.27201,-3.384 -12.74401,-3.384 h -21.024 v 3.168 h 20.88 c 4.392,0 7.776,0.864 10.15201,2.592 2.37599,1.728 3.59999,4.176 3.59999,7.416 0,3.312 -1.224,5.832 -3.59999,7.56 -2.37601,1.728 -5.76001,2.52 -10.15201,2.52 h -20.88 v 3.168 h 22.464 c 4.824,0 8.56801,0.864 11.08801,2.52 2.51999,1.728 3.81599,4.32 3.81599,7.848 0,3.6 -1.296,6.192 -3.81599,7.92 -2.52,1.728 -6.19201,2.52 -11.08801,2.52 h -22.464 V 0 h 22.464 c 6.12,0 10.728,-1.152 13.896,-3.456 3.096,-2.304 4.68,-5.544 4.68,-9.864 0,-3.384 -1.00799,-6.192 -2.87999,-8.424 z" transform="translate(0 311.24) translate(250.70145555555553 44.76) scale(1.1111111111111112) translate(-289.73712 50.4)"></path>
<path id="path132896" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="M 343.87775,-50.4 V 0 h 32.688 v -3.312 h -29.016 V -50.4 Z" transform="translate(0 311.24) translate(314.1910444444444 44.76) scale(1.1111111111111112) translate(-343.87775 50.4)"></path>
<path id="path132898" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="m 404.63787,-50.4 h -3.672 L 377.78188,0 h 3.95999 l 21.024,-46.368 21.096,46.368 h 3.96 z" transform="translate(0 311.24) translate(355.1956333333333 44.76) scale(1.1111111111111112) translate(-377.78188 50.4)"></path>
<path id="path132900" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="m 480.3155,-38.16 c -2.304,-3.816 -5.472,-6.768 -9.504,-9 -4.032,-2.16 -8.712,-3.24 -13.896,-3.24 h -19.944 v 3.312 h 19.656 c 4.608,0 8.712,0.936 12.312,2.808 3.528,1.872 6.264,4.464 8.208,7.704 1.872,3.312 2.88,7.128 2.88,11.376 0,4.32 -1.008,8.064 -2.88,11.376 -1.944,3.312 -4.68,5.904 -8.208,7.776 -3.6,1.872 -7.704,2.736 -12.312,2.736 h -15.984 V -25.2 h -3.672 V 0 h 19.944 c 5.184,0 9.864,-1.08 13.896,-3.24 4.032,-2.16 7.2,-5.112 9.504,-8.928 2.232,-3.816 3.384,-8.136 3.384,-13.032 0,-4.824 -1.152,-9.144 -3.384,-12.96 z" transform="translate(0 311.24) translate(424.2952111111111 44.76) scale(1.1111111111111112) translate(-436.9715 50.4)"></path>
<path id="path132902" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="m 529.07187,-27.216 h -32.616 v 3.24 h 32.616 z m 0,-23.184 h -32.616 v 3.312 h 32.616 z m -32.616,47.088 V 0 h 32.616 v -3.312 z" transform="translate(0 311.24) translate(493.7222888888889 44.76) scale(1.1111111111111112) translate(-496.45587 50.4)"></path>
<path id="path132904" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="m 610.91675,0 h 3.6 l -0.072,-50.4 h -3.024 l -22.536,38.952 -22.536,-38.952 h -3.096 V 0 h 3.6 v -42.984 l 21.096,36.288 h 1.8 l 21.096,-36.432 z" transform="translate(0 311.24) translate(571.2743777777778 44.76) scale(1.1111111111111112) translate(-563.25275 50.4)"></path>
<path id="path132906" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="m 640.01037,-2.952 c 3.96,2.232 8.42401,3.312 13.392,3.312 4.896,0 9.36001,-1.08 13.392,-3.312 3.96,-2.16 7.056,-5.256 9.36,-9.144 2.30401,-3.888 3.456,-8.208 3.456,-13.104 0,-4.824 -1.15199,-9.216 -3.456,-13.104 -2.304,-3.888 -5.4,-6.912 -9.36,-9.144 -4.03199,-2.16 -8.496,-3.312 -13.392,-3.312 -4.96799,0 -9.432,1.152 -13.392,3.384 -4.03199,2.232 -7.12799,5.256 -9.43199,9.144 -2.30401,3.888 -3.384,8.28 -3.384,13.032 0,4.824 1.07999,9.144 3.384,13.032 2.304,3.888 5.4,6.984 9.43199,9.216 z m 24.84,-2.952 c -3.456,1.944 -7.27199,2.88 -11.448,2.88 -4.248,0 -8.06399,-0.936 -11.51999,-2.88 -3.45601,-1.872 -6.12,-4.536 -8.06401,-7.92 -2.016,-3.384 -2.952,-7.2 -2.952,-11.376 0,-4.176 0.936,-7.92 2.952,-11.304 1.94401,-3.384 4.608,-6.048 8.06401,-7.992 3.456,-1.872 7.27199,-2.88 11.51999,-2.88 4.17601,0 7.992,1.008 11.448,2.88 3.384,1.944 6.048,4.608 8.06401,7.992 1.944,3.384 2.95199,7.128 2.95199,11.304 0,4.176 -1.00799,7.992 -2.95199,11.376 -2.01601,3.384 -4.68001,6.048 -8.06401,7.92 z" transform="translate(0 311.24) translate(645.6539666666667 44.36) scale(1.1111111111111112) translate(-627.19438 50.76)"></path>
<path id="path132908" style="font-style: normal; font-weight: 300; font-size: 72px; line-height: 1; font-family: &quot;Montserrat Light Alt1&quot;; font-variant-ligatures: none; text-align: center; text-anchor: middle; fill: rgb(255, 255, 255);" d="m 735.6905,-38.16 c -2.304,-3.816 -5.472,-6.768 -9.504,-9 -4.032,-2.16 -8.712,-3.24 -13.896,-3.24 h -19.944 v 3.312 h 19.656 c 4.608,0 8.712,0.936 12.312,2.808 3.528,1.872 6.264,4.464 8.208,7.704 1.872,3.312 2.88,7.128 2.88,11.376 0,4.32 -1.008,8.064 -2.88,11.376 -1.944,3.312 -4.68,5.904 -8.208,7.776 -3.6,1.872 -7.704,2.736 -12.312,2.736 h -15.984 V -25.2 h -3.672 V 0 h 19.944 c 5.184,0 9.864,-1.08 13.896,-3.24 4.032,-2.16 7.2,-5.112 9.504,-8.928 2.232,-3.816 3.384,-8.136 3.384,-13.032 0,-4.824 -1.152,-9.144 -3.384,-12.96 z" transform="translate(0 311.24) translate(721.3785444444445 44.76) scale(1.1111111111111112) translate(-692.3465 50.4)"></path>
</g>
<g id="tagline" style="font-style:normal;font-weight:400;font-size:32px;line-height:1;font-family:Montserrat;font-variant-ligatures:none;text-align:center;text-anchor:middle"></g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB