diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cae401b3e48e85b933157a52c5b7bc42a0820683..a7f707bdd736240ba0950c56cd17110bf71884c9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,6 @@
 stages:
   - build
+  - test_deploy
 
 image: docker:20.10.8
 
@@ -28,3 +29,11 @@ build_nginx:
     - docker pull $CI_REGISTRY_IMAGE:test-nginx || true
     - docker build --cache-from $CI_REGISTRY_IMAGE:test-nginx -t $IMAGE_TAG_NGINX . -f Dockerfile.nginx
     - docker push $IMAGE_TAG_NGINX
+
+deploy:
+  stage: test_deploy
+  when: manual
+  before_script:
+    - apk add --update curl && rm -rf /var/cache/apk/*
+  script:
+    - curl -k -X POST $DEPLOY_HOOK
diff --git a/README.md b/README.md
index 37321669d49897a17b337055a9ff5d11c8a054d6..903ff96be977c7cd522daf1349dd75a6faade4f3 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,7 @@ Aplikace pro všemožné jednoduché nástroje, které pomohou automatizovat slo
 ├── rybicka                 = Nastavení projektu, URLs.
 ├── shared                  = Sdílené templaty a statické soubory pro všechny ostatní aplikace, index.
 ├── member_group_size_calc  = Kalkulačka velikosti skupiny členů.
+├── mail_signature          = Generátor podpisů do emailů.
 ├── rv_voting_calc          = Kalkulačka hlasování RV.
 ├── static_src              = Zdrojové CSS a JS, které příkazem 'make build' buildujeme.
 ├── requirements            = Pythonové závislosti z PyPI.
diff --git a/mail_signature/__init__.py b/mail_signature/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/mail_signature/admin.py b/mail_signature/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e
--- /dev/null
+++ b/mail_signature/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/mail_signature/apps.py b/mail_signature/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..7216dddc126b51d80cf8852cb1ef3fcb90bb990d
--- /dev/null
+++ b/mail_signature/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class MailSignatureConfig(AppConfig):
+    default_auto_field = 'django.db.models.BigAutoField'
+    name = 'mail_signature'
diff --git a/mail_signature/migrations/__init__.py b/mail_signature/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/mail_signature/models.py b/mail_signature/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..71a836239075aa6e6e4ecb700e9c42c95c022d91
--- /dev/null
+++ b/mail_signature/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/mail_signature/templates/mail_signature/index.html b/mail_signature/templates/mail_signature/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..0e7784d90585894e28c2084b5418537cb21cfe4a
--- /dev/null
+++ b/mail_signature/templates/mail_signature/index.html
@@ -0,0 +1,189 @@
+{% extends "shared/base.html" %}
+
+{% load render_bundle from webpack_loader %}
+
+{% block title %}Generátor emailových podpisů{% endblock %}
+{% block header_name %}Emailové podpisy{% endblock %}
+{% block description %}Vyplněním získáš HTML kód, který můžeš vložit jako podpis do svých emailů.{% endblock %}
+
+{% block head %}
+    <link
+        rel="stylesheet"
+        href="https://styleguide.pirati.cz/2.11.x/css/styles.css"
+    >
+
+    {% render_bundle "mail_signature" %}
+{% endblock %}
+
+{% block content %}
+    <main>
+        <h1 class="text-6xl font-bebas mb-5">Generátor emailových podpisů</h1>
+
+        <div class="prose max-w-none mb-5">
+            <p>
+                Vyplněním následujícího formuláře získáš HTML kód,
+                který můžeš vložit jako podpis do svých emailů.
+            </p>
+        </div>
+
+        <div class="grid gap-4 grid-cols-1 lg:grid-cols-2">
+            <form class="flex flex-col gap-3" id="source">
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="name">
+                        Jméno:
+                    </label>
+                    <input
+                        id="name"
+                        name="name"
+                        type="text"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="function">
+                        Názvy funkcí:
+                    </label>
+                    <textarea
+                        id="function"
+                        name="function"
+                        rows="3"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    ></textarea>
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="email">
+                        E-mail:
+                    </label>
+                    <input
+                        id="email"
+                        name="email"
+                        type="email"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="phone">
+                        Telefonní číslo:
+                    </label>
+                    <div class="grow w-full flex gap-4 items-center">
+                        <input
+                            id="phone-prefix"
+                            name="phone-prefix"
+                            type="text"
+                            class="basis-16 w-16 border border-gray-200 p-2 rounded-md"
+                            value="+420"
+                        >
+                        <input
+                            id="phone"
+                            name="phone"
+                            type="number"
+                            class="border border-gray-200 p-2 rounded-md grow w-full"
+                        >
+                    </div>
+                </div>
+                
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="web">
+                        Webové stránky:
+                    </label>
+                    <input
+                        id="web"
+                        name="web"
+                        type="url"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="mastodon">
+                        Mastodon odkaz:
+                    </label>
+                    <input
+                        id="mastodon"
+                        name="mastodon"
+                        type="url"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="twitter">
+                        Twitter odkaz:
+                    </label>
+                    <input
+                        id="twitter"
+                        name="twitter"
+                        type="url"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="instagram">
+                        Instagram odkaz:
+                    </label>
+                    <input
+                        id="instagram"
+                        name="instagram"
+                        type="url"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="linkedin">
+                        LinkedIn odkaz:
+                    </label>
+                    <input
+                        id="linkedin"
+                        name="linkedin"
+                        type="url"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                <div class="flex gap-4 items-center">
+                    <label class="basis-56 flex items-center font-bold" for="fejsbuk">
+                        Facebook odkaz:
+                    </label>
+                    <input
+                        id="fejsbuk"
+                        name="fejsbuk"
+                        type="url"
+                        class="border border-gray-200 p-2 rounded-md grow w-full"
+                    >
+                </div>
+                
+                <div class="text-right">
+                    <button id="generate" class="btn btn--icon" type="button">
+                        <div class="btn__body-wrap">
+                            <div class="btn__body">Vygenerovat</div>
+                            <div class="btn__icon">
+                                <i class="ico--chevron-right"></i>
+                            </div>
+                        </div>
+                    </button>
+                </div>
+            </form>
+            
+            <div class="flex flex-col gap-3">
+                <section class="flex flex-col gap-4">
+                    <div class="flex justify-between gap-3 items-center">
+                        <div class="flex flex-col gap-1">
+                            <h2 class="font-bold">Náhled</h2>
+                            <small class="text-right">Zkopíruj zde v případě, že tvůj poskytovatel nepodporuje přímé vkládání HTML.</small>
+                        </div>
+                        <button class="btn text-sm btn--condensed" id="copy">
+                            <div class="btn__body">Zkopírovat</div>
+                        </button>
+                    </div>
+                    <div class="border border-gray-400 border-dotted p-2 rounded-md" id="preview"></div>
+                </section>
+                <section>
+                    <h2 class="font-bold mb-3">HTML Kód</h2>
+                    <textarea
+                        class="border border-gray-200 p-2 font-mono rounded-md w-full"
+                        rows="5"
+                        id="content"
+                        readonly
+                    ></textarea>
+                </section>
+            </div>
+        </div>
+    </main>
+{% endblock %}
diff --git a/mail_signature/tests.py b/mail_signature/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6
--- /dev/null
+++ b/mail_signature/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/mail_signature/urls.py b/mail_signature/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..b2d6be6fb4886746ae8d55c2e35b8539547162a8
--- /dev/null
+++ b/mail_signature/urls.py
@@ -0,0 +1,8 @@
+from django.urls import path
+
+from . import views
+
+app_name = "mail_signature"
+urlpatterns = [
+    path("", views.index, name="index"),
+]
diff --git a/mail_signature/views.py b/mail_signature/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..0d5779af8e0d1e7a2d10d8b77f249d64c18094e1
--- /dev/null
+++ b/mail_signature/views.py
@@ -0,0 +1,9 @@
+from django.shortcuts import render
+
+# Create your views here.
+
+def index(request):
+    return render(
+        request,
+        "mail_signature/index.html"
+    )
diff --git a/member_group_size_calc/templates/member_group_size_calc/index.html b/member_group_size_calc/templates/member_group_size_calc/index.html
index 6ee5581a79a89f92fe6ce80b76cd41e474a7afca..965dae67beaa5d4a80baa849ca5dc8288d56f6ea 100644
--- a/member_group_size_calc/templates/member_group_size_calc/index.html
+++ b/member_group_size_calc/templates/member_group_size_calc/index.html
@@ -4,7 +4,7 @@
 
 {% block title %}Kalkulačka velikosti skupiny členů{% endblock %}
 {% block header_name %}Skupiny členů{% endblock %}
-{% block description %}Výpočet velikosti skupiny členů podle jednoacího řádu.{% endblock %}
+{% block description %}Výpočet velikosti skupiny členů podle jednacího řádu.{% endblock %}
 
 {% block head %}
     <link
diff --git a/package.json b/package.json
index 4a07c0ecbe08e9ffec6d3ceb929877ce237b3726..fe7a2cf7bbe0af97070cf13f149a3c39a9610b00 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,8 @@
   "description": "",
   "private": true,
   "dependencies": {
+    "@tailwindcss/typography": "^0.5.9",
+    "alertifyjs": "^1.13.1",
     "css-loader": "^6.7.3",
     "jquery": "^3.6.3",
     "js-cookie": "^3.0.1",
diff --git a/rv_voting_calc/templates/rv_voting_calc/index.html b/rv_voting_calc/templates/rv_voting_calc/index.html
index a70f0cd9a2221026899d2e481292fb5c9befccb6..a6abb1284c12848f25c0a254150255b7a4d48b21 100644
--- a/rv_voting_calc/templates/rv_voting_calc/index.html
+++ b/rv_voting_calc/templates/rv_voting_calc/index.html
@@ -4,7 +4,7 @@
 
 {% block title %}Kalkulačka hlasování RV{% endblock %}
 {% block header_name %}Hlasování RV{% endblock %}
-{% block description %}TODO - Popis{% endblock %}
+{% block description %}Výpočet výsledku referenda RV, systémem alternativního hlasování.{% endblock %}
 
 {% block head %}
     {% render_bundle "rv_voting_calc" %}
@@ -25,12 +25,14 @@
     <main>
         <h1 class="text-6xl font-bebas mb-5">Kalkulačka hlasování RV</h1>
 
-        <p class="mb-5 text-gray-800">
-            Jednací řád k nahlédnutí <a
-                class="underline"
-                href="https://wiki.pirati.cz/rules/jrrv#rozhodujici_hlasovani_pri_referendu"
-            >na wiki</a>, § 9 (3).
-        </p>
+        <div class="prose max-w-none mb-5">
+            <p>
+                Jednací řád k nahlédnutí <a
+                    class="underline"
+                    href="https://wiki.pirati.cz/rules/jrrv#rozhodujici_hlasovani_pri_referendu"
+                >na wiki</a>, § 9 (3).
+            </p>
+        </div>
 
         <div class="grid grid-cols-1 md:grid-cols-2 gap-7">
             <div>
diff --git a/rybicka/settings/base.py b/rybicka/settings/base.py
index 9d59ae05d40982c7e2da515a79e225197e7ba1de..882e6cdb172c968dc011c88623654de11d64bb94 100644
--- a/rybicka/settings/base.py
+++ b/rybicka/settings/base.py
@@ -48,6 +48,7 @@ INSTALLED_APPS = [
     "shared",
     "member_group_size_calc",
     "rv_voting_calc",
+    "mail_signature",
 ]
 
 MIDDLEWARE = [
diff --git a/rybicka/urls.py b/rybicka/urls.py
index c5add90411d59cf57d2885ad5030aaccffb7ba41..4ebfaabffa1eedac7536f972d8a4317aa939411f 100644
--- a/rybicka/urls.py
+++ b/rybicka/urls.py
@@ -18,5 +18,6 @@ from django.urls import include, path
 urlpatterns = [
     path("vypocet-skupiny-clenu/", include("member_group_size_calc.urls")),
     path("hlasovani-rv/", include("rv_voting_calc.urls")),
+    path("emailove-podpisy/", include("mail_signature.urls")),
     path("", include("shared.urls")),
 ]
diff --git a/rybicka/wsgi.py b/rybicka/wsgi.py
index 93e488cef367cc8af528c0a4737fcbcc1eb3c8d5..a58dbf14bd4bcbbde2091833898f02f79d7231d3 100644
--- a/rybicka/wsgi.py
+++ b/rybicka/wsgi.py
@@ -11,6 +11,6 @@ import os
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rybicka.settings.prod")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rybicka.settings.production")
 
 application = get_wsgi_application()
diff --git a/shared/static/shared/marketing.webp b/shared/static/shared/marketing.webp
new file mode 100644
index 0000000000000000000000000000000000000000..7c33356477193f890a4b1c593016df9698165aaf
Binary files /dev/null and b/shared/static/shared/marketing.webp differ
diff --git a/shared/static/shared/signature.webp b/shared/static/shared/signature.webp
new file mode 100644
index 0000000000000000000000000000000000000000..0521d86abbdfc3609a69b4b9e22fbc5a509f37cf
Binary files /dev/null and b/shared/static/shared/signature.webp differ
diff --git a/shared/templates/shared/base.html b/shared/templates/shared/base.html
index 0c612109a4a97d224b81f3b88743661302fcb733..5026bbae29fc5f302da929d0c01ed06fe8bbd539 100644
--- a/shared/templates/shared/base.html
+++ b/shared/templates/shared/base.html
@@ -51,11 +51,11 @@
                     <div>
                         <div class="container container--default navbar__content navbar__content--initialized">
                             <div class="navbar__brand flex items-center pr-8 my-4 lg:my-0">
-                                <a href="/#TODO">
+                                <a href="{% url "shared:index" %}">
                                     <img src="https://styleguide.pirati.cz/2.3.x/images/logo-round-white.svg" class="w-8">
                                 </a>
                                 <div class="pl-4 font-bold text-xl border-r border-grey-300 pr-8">
-                                    <a href="/#TODO">Rybička</a>
+                                    <a href="{% url "shared:index" %}">Rybička</a>
                                 </div>
                             </div>
                             {% block header_name %}{% endblock %}
diff --git a/shared/templates/shared/index.html b/shared/templates/shared/index.html
index e50024bd52438e2b0c1f83f4494b45db715f9413..794c01e943baae4d6e1eaa43bb49adb6861a5509 100644
--- a/shared/templates/shared/index.html
+++ b/shared/templates/shared/index.html
@@ -4,7 +4,7 @@
 {% load static %}
 
 {% block title %}Rybička{% endblock %}
-{% block header_name %}Seznam nástrojů{% endblock %}
+{% block header_name %}Pirátský nožík{% endblock %}
 {% block description %}{% endblock %}
 
 {% block head %}
@@ -12,66 +12,117 @@
 {% endblock %}
 
 {% block content %}
-    <main>
-        <h1 class="text-6xl font-bebas mb-5">Rychlé nástroje</h1>
-        <ul class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
-           <li class="card">
-                <a href="{% url "member_group_size_calc:index" %}">
-                    <img
-                        src="{% static "shared/calculator.webp" %}"
-                        alt="Kalkulačka velikosti skupiny členů"
-                        class="w-full h-48 object-cover"
-                    >
-                </a>
-                <div class="p-4">
-                    <h2 class="mb-2 text-xl font-bold">
-                        <a href="{% url "member_group_size_calc:index" %}">
-                            Kalkulačka velikosti skupiny členů
-                        </a>
-                    </h2>
-                    <div class="font-light text-sm break-words">
-                        Výpočet velikosti skupiny členů podle jednacího řádu.
+    <main class="flex flex-col gap-8">
+        <section>
+            <h2 class="head-alt-md mb-5">Zabudované nástroje</h2>
+            
+            <ul class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
+                <li class="card">
+                    <a href="{% url "member_group_size_calc:index" %}">
+                        <img
+                            src="{% static "shared/calculator.webp" %}"
+                            alt="Kalkulačka velikosti skupiny členů"
+                            class="w-full h-48 object-cover"
+                        >
+                    </a>
+                    <div class="p-4">
+                        <h2 class="mb-2 text-xl font-bold">
+                            <a href="{% url "member_group_size_calc:index" %}">
+                                Kalkulačka velikosti skupiny členů
+                            </a>
+                        </h2>
+                        <div class="font-light text-sm break-words">
+                            Výpočet velikosti skupiny členů podle jednacího řádu.
+                        </div>
                     </div>
-                </div>
-            </li>
-            <li class="card">
-                <a href="{% url "rv_voting_calc:index" %}">
-                    <img
-                        src="{% static "shared/voting.webp" %}"
-                        alt="Kalkulačka velikosti skupiny členů"
-                        class="w-full h-48 object-cover"
-                    >
-                </a>
-                <div class="p-4">
-                    <h2 class="mb-2 text-xl font-bold">
-                        <a href="{% url "rv_voting_calc:index" %}">
-                            Kalkulačka hlasování RV
-                        </a>
-                    </h2>
-                    <div class="font-light text-sm break-words">
-                        Výpočet výsledku referenda RV, systémem alternativního hlasování.
+                </li>
+                
+                <li class="card">
+                    <a href="{% url "rv_voting_calc:index" %}">
+                        <img
+                            src="{% static "shared/voting.webp" %}"
+                            alt="Kalkulačka velikosti skupiny členů"
+                            class="w-full h-48 object-cover"
+                        >
+                    </a>
+                    <div class="p-4">
+                        <h2 class="mb-2 text-xl font-bold">
+                            <a href="{% url "rv_voting_calc:index" %}">
+                                Kalkulačka hlasování RV
+                            </a>
+                        </h2>
+                        <div class="font-light text-sm break-words">
+                            Výpočet výsledku referenda RV, systémem alternativního hlasování.
+                        </div>
                     </div>
-                </div>
-            </li>
-            <li class="card">
-                <a href="https://z.pirati.cz" target="_blank">
-                    <img
-                        src="{% static "shared/scissors.webp" %}"
-                        alt="Zkracovač odkazů"
-                        class="w-full h-48 object-cover"
-                    >
-                </a>
-                <div class="p-4">
-                    <h2 class="mb-2 text-xl font-bold">
-                        <a href="https://z.pirati.cz" target="_blank">
-                            Zkracovač odkazů
-                        </a>
-                    </h2>
-                    <div class="font-light text-sm break-words">
-                        Webová aplikace sloužící k vytvoření alternativních krátkých URL adres.
+                </li>
+                
+                <li class="card">
+                    <a href="{% url "mail_signature:index" %}" target="_blank">
+                        <img
+                            src="{% static "shared/signature.webp" %}"
+                            alt="Generátor emailových podpisů"
+                            class="w-full h-48 object-cover"
+                        >
+                    </a>
+                    <div class="p-4">
+                        <h2 class="mb-2 text-xl font-bold">
+                            <a href="{% url "mail_signature:index" %}" target="_blank">
+                                Generátor emailových podpisů
+                            </a>
+                        </h2>
+                        <div class="font-light text-sm break-words">
+                            Vyplněním získáš HTML kód, který můžeš vložit jako podpis do svých emailů.
+                        </div>
                     </div>
-                </div>
-            </li>
-        </ul>
+                </li>
+            </ul>
+        </section>
+        
+        <section>
+            <h2 class="head-alt-md mb-5">Externí nástroje</h2>
+            
+            <ul class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
+                <li class="card">
+                    <a href="https://z.pirati.cz" target="_blank">
+                        <img
+                            src="{% static "shared/scissors.webp" %}"
+                            alt="Zkracovač odkazů"
+                            class="w-full h-48 object-cover"
+                        >
+                    </a>
+                    <div class="p-4">
+                        <h2 class="mb-2 text-xl font-bold">
+                            <a href="https://z.pirati.cz" target="_blank">
+                                Zkracovač odkazů
+                            </a>
+                        </h2>
+                        <div class="font-light text-sm break-words">
+                            Vytvoření alternativních krátkých URL adres.
+                        </div>
+                    </div>
+                </li>
+                
+                <li class="card">
+                    <a href="https://z.pirati.cz" target="_blank">
+                        <img
+                            src="{% static "shared/marketing.webp" %}"
+                            alt="Zkracovač odkazů"
+                            class="w-full h-48 object-cover"
+                        >
+                    </a>
+                    <div class="p-4">
+                        <h2 class="mb-2 text-xl font-bold">
+                            <a href="https://generator.pirati.cz" target="_blank">
+                                Generátor grafiky
+                            </a>
+                        </h2>
+                        <div class="font-light text-sm break-words">
+                            Jednoduché tvoření grafických výstupů.
+                        </div>
+                    </div>
+                </li>
+            </ul>
+        </section>
     </main>
 {% endblock %}
diff --git a/shared/urls.py b/shared/urls.py
index 918861bf3556165df49b9f0b2a6da1ecc0497ea1..29b945f8fd2e2159d91e69559030f9a8d8b50424 100644
--- a/shared/urls.py
+++ b/shared/urls.py
@@ -2,6 +2,7 @@ from django.urls import path
 
 from . import views
 
+app_name = "shared"
 urlpatterns = [
-    path("", views.index, name="shared_index"),
+    path("", views.index, name="index"),
 ]
diff --git a/static_src/mail_signature.js b/static_src/mail_signature.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c05aabc2b1dfb07310f161847af8637318389b2
--- /dev/null
+++ b/static_src/mail_signature.js
@@ -0,0 +1,277 @@
+import $ from "jquery";
+
+import alertify from "alertifyjs";
+
+const emailDataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUqDlYQcchQnSyIijjaKhShQqgVWnUwufQPmjQkKS6OgmvBwZ/FqoOLs64OroIg+APi6uKk6CIlfpcUWsR4cNzDe/e+fPfdAUKjwjSrawLQdNtMJxNiNrcqhl4RRAiDAMZkZhlxSUrBd3zdI8DXuxjP8j/35+hT8xYDAiLxHDNMm3iDeGbTNjjvE0dYSVaJz4nHTSqQ+JHrisdvnIsuCzwzYmbS88QRYrHYwUoHs5KpEU8TR1VNp3wh67HKeYuzVqmxVp38huG8vrLMdZojSGIRS5AgQkENZVRgI0arToqFNO0nfPzDrl8il0KuMhg5FlCFBtn1g7/B795ahalJLymcALpfHOdjFAjtAs2643wfO07zBAg+A1d6219tALOfpNfbWvQI6N8GLq7bmrIHXO4AQ0+GbMquFKQpFArA+xk9Uw4YuAV617y+tfZx+gBkqFepG+DgkL5LkbLXfe7d09m3f8+0+vcDHftyhVAZGzUAAAAGYktHRAD/AAAAADMnfPMAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfnAwcVADQmu1bdAAAJh0lEQVR42u2da3BdVRXHf7nUBIGkhCaVtGlLzRMooKUCihZ1RItSGGTUUcf6KNTHSOzgKKOjMzIWrajUlgEf+AZxEERoqgiWopaOoeIgDs6QpBRoKX2ALTRp2rQl9cPed3rnksda+3HuOTdZM/vLnbNf63/Ovmut/V97V5B+qQfagTag1ZZpwPG21NgCsNeWfUA/sB3oAboLygtpnmxFCsfUALwVeBfwbuCUwO3vANYDa4EHgGeYkFfJ6cB3gE3AkYRLL7AcOG28gzAV+ALwrxKAMFJ5FOiwy+S4kVnASmAgRUAUl0Hg10BzOQPxegvEgRQDUVwOWmDaywmIyRaIwxkCori8AvzYziXTshDYmmEgist2YFFKrdMxl6e/lhEQxWVdBHM8mlwK7C5jMPLlZeCDaXYMq4DvAZ+PAPI2ax53F3jez1uPfB/QZ5+rtt77Cdabz3v2bcA8+1tIOQLcCHzJGgCp8q7/GfjtuwP4jFVoKGmzbd5hQyyhxrsRODktYMy23m4IS+ZhYIl9w2PLscAHgE7gUIDxbwZaSg3G2cBOz4n0AzcAjSWcRyOwwi5/PnPZAbyxVJN4u+dnvxdYBtSlLLJ8nf1P8llu5yc98DOBPR6D7gRmpthSnGY9dB9Q5iY12BaPZaoXuDBD/tQC4CkPJ7IpiQhtj+MA78po6KEauN1xzk/FtL6qHE3bAeCKMojJfRrY7zD/LqAyxoBWOQxmp7XEykXeBOxy0MMNMYKEQ8pBPB3YqUtTnE7rdw0Bl4V0/LQW1RMRwhRps8KeUOpkN2ZzzjvWtc7hyyhnMPIyHUOQ0OjmL76dflTZ4Qs2XjRepNl65xodfci1s8nWltZYU/NKpJhKG5tylVphGU7OUVpf2zjKI1PJSiXySyIrvQKYg2GF/NKakzsxYe/Cceyy0ddb7bOS2JJ0jiPJZ5W6WuHijWv2wH8bEYg5wHftm+UaythqTc85kQABE9KXtnNI68X/TOmNVkcAYj7wZ8Lv9D0wTPAvBCA1mBC8tK2fSBUxc5hlYLSyIDAQs4B7iL8F+wdr0ocCBOB96Lhfoi2HG5XxqZCyBP89CU3ps32GAgQLtLS9lWM1Vo+cUdgHzAgExHEeAbwki/QLl75U+4ApozXWoRjc8kBgnIhhox8pE0DAkD2kbX5utIak0dwB4HUBwKgFHic71B+pNCh8k66RGjlVMbBVAcB4LfB3ssXF0shNinaH5Q5/Gzk7ZFYAQG4NqKhBW9IEyGyrK0m7y4ZrQLoTuDYAGIs9lLIfWANciUn0qSpot8o6f0uAP+K2oRQKEBSB2f8WV2xUDGqRJxiNuLE6Xga+qnRCq4Gv2bqlAOSTiv2ShsKKi5BzqHxJbHc6KOLn+NGF6m38K2lAahQm8EcKK/5CWOluTzDOVSrgEGG5wh34sRRdZLWw7Z8WVnpWWOkqT4WsVoJxcYQY2ULck4dcZKmw7c35CnWKAc3xUEQLun35jogR5KUJAnKmov1agPOFD+/AL33hm4qB/SqBTa3bEgKkAjlT5TyNJXCfpwKkDMA+kqH2N1gjJTYgAPcL2/94DnmGabfHgJow9BmJfN9+jbFlu8vOnaP0CJ9rzSHnTvV4DOgdwucOBwrLSCWfHRxbpC9ze04RJPT5QqQ5E+sx/KWk5EVgQ4oAmZpTeL47PQYkpQbdS/JyTwJ9SHVXk1N43n0eA5L+f/yjBIB0JdCHVHfVmi+k32NA0jSEzSUAJIk+9ypCLeKwtQ+lPok+XKUyAbNX2seBnNLBcZWKBPqIPTYfkeawH8wp1jefKK+0jxNLAMhJpEg0gPiQ4aRraFMJdNCUNkD6E/hCnhY+97YS6GB+Vr+QBo9+nhQ+d2kJdHBJ2gCROi0+eR+PCZ871xN4rUzH5A2mChBx4Mujn4cU4/lygvO/xvaZKpGG3+8P4ICJbHGOkqBj/5lrqUOTHPuaJGz/pRzywNdcz7fpduFzVZiIby7yyrDKwRGd6tifdH9nHxiyr/QNOctDCa3otnCXRQTkW7ht4bqmNl8ubP/xfIVnhBWWeiqiUzH5IeBTEcBYjD7n3jf94m5h+3fmK0hpQKs9lXGeUgFD9m3OBVqmluPHyxqyc9DI+YoX4Jp8pY8hZ737HiBzl4Mi/oTfaW1thEuP22rNZYk0As8p2p5XWFFaabEnIDNwo5IeBG5GdzzrbOCHhDnCr7A8J4gqXIAuUXUTRYHObmHFvwVYPq7wVMhjwDcw11m0cjSPvNX+di3wb+Kz4TsxFNB223875rCFNQ5tfcXV8hgKFJC7jWzlhsQsu4f7K2hVNPCjAIBkMWEnVhmRortR4U1PDwBKLfCfFClmnWLpDlU2AMeMpKCrFA2FIpmdhDmvt9RgdGLOSzkDPaPRtexijEzmOuRp0QPI2SRjyXHAb0oExBAma7YwTnUR8e856ZNGmjVH+a0J7EVfmeDbmX9DLx9hLO8l7HHkxcdYnaPxEzRR0MsCgzID+H1kIF7BZGVNGWMsp2M210L23YXDVRe3KDrYQhyiwFswiZuhgfgdujyXYzGpFL5L2F7gi8BrXJTRrPRu7yUeneZUTMr2sx7K6Aa+jl869zTgegwfWOvVXyv4GmEMJa5QRnevJj69vw14p92babPxrRM4SsDI3/TZa0F4FHiQsJdHTsKce38hhkTeYleIGvtH/SJmF3aj7Xu9NRy8pUYZixmkNKyRcSUfVn6eLwFvmFBbXFmrBGUbGbowK4syC/0lXz0ToMSVi9Fvez4/sXzFlRUO5uaeiT/6eFIJPILbTt/VZPB2zCxIPe7h6dWkjPpfLtKE/rzzQoLA+ydUGF7OwO9SsAcpsyux0yAX4Hcw2H5M4v6MFM2pPuugzPVYvgpDLrdQ2lsy52KuyRskW7fIjfifsokwO3cPYy7fqk3oa/gEryZabCiH5etkR5N4NBLFfZhbmM8mHJX0NNvmekY/xOw9pVJkSN+gErNf0BHB59iNIb7lr+5+ErMNugez5dtv+5xcVFowB4idhdn9O17YXxfw5nL5s78E+B/Z50otoIzkFGvaZhmQLspQFmL23LMKykXlCEoN8APCM9CTKI+UsyPZjDmbdjBDgBymhBfWJyUzMbf4DKQYiAOYO6Kax1PopQ7DJd6YIiC6MdypOsa5tAPXEZ4lKD1R+npScqJDGjeNpmO4V/kyM3D7WzA3CT2EuUKvN02Tz8Iu3hQMKa4dk1TUZkM1eYLcZGvJHYNJvD+IiUJvt978Fvvl9WJyUXakebL/B0rdfUO0N5ZpAAAAAElFTkSuQmCC";
+const phoneDataURL = "data:image/png;base64,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";
+
+const webDataURL = "data:image/png;base64,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";
+const mastodonDataURL = "data:image/png;base64,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";
+const twitterDataURL = "data:image/png;base64,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";
+const instagramDataURL = "data:image/png;base64,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";
+const linkedInDataURL = "data:image/png;base64,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";
+const fejsbukDataURL = "data:image/png;base64,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L1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NGQ0ZmRlNGItN2JhNC00YjkxLWI3NDAtZmMyYzQxOWUxOTc5IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmQzNDg5MDI4LTE4OTAtNGE3Yy1hZmY5LTlhNWYyZTdjZTc5NCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjE3NmY1MGE2LTI3M2EtNGM0Yi04YTc5LTA3N2ZmMDA1MDRlMSIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjc4MjI2OTYxMTc2MzQ0IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjIiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDxpcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmUzMjQxNzRlLWU4ZDctNDMzZS1hMzlhLWU2MDQ4NzIzNjg5ZiIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiCiAgICAgIHN0RXZ0OndoZW49IiswMTowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2ZjEwMDkzNC00MGFjLTQ5ZWMtOTVjOS04NmQ5NWRhMjAyZTciCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VTdXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+7SpcEAAAAAZiS0dEAP8AAAAAMyd88wAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+cDBxYJFblWQ5MAAAO4SURBVHja7Z3NS1RRGIefM85oapYfFCnSl7SxLNxUi1Z9QxBtCmoRrvo3+jeC/oGiRbRt2TqIIDcRqEREKaWjjpozc1qcA0apM/eM3a/5PTAwi7nMnPvc8/G+5517QQghhBC5wOStQdZaAxT9qwMo+HZGbasFasCqMcbG9fuLObzI9gHDwFHgCDAAdHk5UaRUgW/AK6AiIdF6RREYBW4AF4DjwBDQB3T7dkbtIevAe+C1hDQ/NPUCJ4HrwGXghBfRA5T+GrKisgYc8McjIbvL6PBD0iXgKnDeyyjFfQLbXoi1tgSc8cPTTWDSX8m5oJhBGePAfeC2H65KeVqRFDMkowAcA6aAO/597pbtxYzIMH6ingLuASN5DQyz0kP6gbvAA+BQniP1QgZ6Rw9wGnjoA76ShCQ7bwwDV4AJH3EjIcnRBYz5oK8vj5N41oT0+2XuRDvISLUQv7IaBc7hEoRISLIYXDpkkjYizcveTt9Dxvaq0wV83krIFgPAYdz+RihVYAmYw+1tbEY49hfwCdiQEMegl1JoQcYM8Ax4A6wA9QjH14FVYtwLSbuQXv8KpQy8A14A08aYOhkgzZN6qcWovOyHnNkk5oI8Cgnd6ftzyFoDanEWKeQ9MGw7JERChIRIiMhEHOITht00riK0bNVWtXKxdQF9vpAu8s/FlZKu5bmUtBNXWTjopewWJY/jSkFDl749wCngGi4NEpVNXLrlbeDxQZiYe8gQ8BQ4S+McVSew3/eo0DikgkuZhFzhZVwZ6WNjzFJee0gBV6Qw0sKJjtK2A4QV0Vl//GLcUb4m9Z1Zx6VeqhKSDjaAjxKSDup+/pmTkPT0ju/AT80h6WDV947YM8USsj0rJLSPIiESkgmWgdkkNrYkZPsIfxmYT+LLJeRfKsACMVebSMju88c8MddjSUhKhSRRl2VpvkzT7MF3hQhZwOWyci+kjsugLtA4/V7C7WmE/kmn5k9qJaKYL8BXY8xmEkLi3g8pAAdpfKuLOnAReATcChxaZ4DnwBNcfVazbAIVY0z+hyxjTN1au9jkx8stjuO10BVTkoV1sc8hzTbWWrsXfwewgFXlopAQCRESIiFCQiRESIiQEAkREiIhQkIkREiIhAgJERIiIUJCJERIiIQICZEQISFCQiRESIiECAmRECEhEiIkREiIhAgJkZD/h2k3IWl+BlUVd9+RH4FiFnF3cLASsjd8Bl4CHwKEGNwdRaeJ9qg8DQk74Z9o0EX4ExLquJvob2TpTg5CCCGEyAm/AezE3v4TGL5ZAAAAAElFTkSuQmCC";
+
+const logoDataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbUAAABQCAYAAACeVOtYAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSIVh2YQcchQnSwUFXHUKhShQqgVWnUwufQLmrQkKS6OgmvBwY/FqoOLs64OroIg+AHi6uKk6CIl/i8ptIjx4Lgf7+497t4BQrPCdKsnDuiGbaaTCSmbW5VCrwgiBBERxBVm1eZkOQXf8XWPAF/vYjzL/9yfY0DLWwwISMSzrGbaxBvE05t2jfM+schKikZ8Tjxu0gWJH7muevzGueiywDNFM5OeJxaJpWIXq13MSqZOPEUc1XSD8oWsxxrnLc56pc7a9+QvDOeNlWWu0xxBEotYggwJKuooowIbMVoNUiykaT/h4x92/TK5VHKVwcixgCp0KK4f/A9+d2sVJie8pHAC6H1xnI9RILQLtBqO833sOK0TIPgMXBkdf7UJzHyS3uho0SNgcBu4uO5o6h5wuQMMPdUUU3GlIE2hUADez+ibckDkFuhf83pr7+P0AchQV6kb4OAQGCtS9rrPu/u6e/v3TLu/H2PJcqEQ2tmFAAAABmJLR0QA/wAAAAAzJ3zzAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5wMHFBUdUn5CkgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAB25SURBVHja7Z153FZF2ce/DzuyPqxKgohL5lKYhisJboVgagIlomWaWvrim9qbmhWaleaLZmoKxJsWmhtuuWCoIEq4ZGSGCoIgKrLKIvvyPO8f19w9c5/nzJw5273A/D6f8+HhPnPmzJkzZ35zXXMtNXh4lAc9gZMs51cBD/huKgkGAb0s52cA//bd5OHh4WHGQ0C94dgIfNl3UUmwh+pv07t4CWjtu8nDw8PDjKOBOsMkuh0Y6ruoZJhoIbS3gM6+izw8PDzMqAFmWibSS3wXlQyHqkVE2HtYDPT2XeThkc2kV+O7YYfFNyyE9mvfPSX9zqYa3sMaoK/vIo9qHdilRjPgc8DBwP5AH2A3oBvQDmiuym0A1gIfq1XjHOBt4DXgI//qqhItEZVWn5BzfwbOVJOqR/74GvBYyO9bgcHAFN9FHh5m9AQuBp5Qq8D6FEcdMB/4PXAa0MZ3b9XgUsM7fU4Rnkdp0Bx4x/BtneW7x8NLauHYBRgOnIMYBjTJ6T6fAo8A4xFLLY/KxSFA25DfZymp3KM0aI9oSoJYB7zuu8fDk1oxOgOjgIuItpxaD7wLLAJWqIltE9AUMSOuBboj6qqeNKgmTXgduBF4UK06q6HP633bqvrb8X3k4bGDklpr4DLgcqCDocyHwDPANOBVRI24PYbk9wXgCOA4YID6LQxvAj8Cni5j354O9FNk3FURfAfV5qZAC2CzkjSXAAuVxDJdkXMUKQ9V9Zswg8Z7Jl2BkcDuarFQaFOhXa1V21DvZbV6Z3NUfZOBT1L0yeHIvpmtzfdZzu+KqDDzwC/V84ahEzAE6A/sB3xGSTtN1CJsFbLvOx/4h3qHcwyE1wX4H0s7/ojZ0flyZO/ZhHeA/3N83v9SY9OEW6ievev6nBfqHjshBgMLCN8vWaE+kH5kq4Jsg6g3H0c2t8Pu/Tj2SAl54mWS7xsuUBOYzel1fEQdvw255jDS7WduAiYAPRL2ycSI+udGTEoHpmy/7Qib4LsBY7E7J5uOOcCVStugY++I6041PPspEddtVe/XBZ3UgspW36VVNP/o7fbwSIX2wF2WCeo8ShONYA/gJiX1hJknn1NlpKb3Yd8KIrXCsRI4JmZ/tFSSUFTdfSuE1I4ClmZQ7wkZkNoulkVj4bgxxrs4x6Hdf/Ok5rGzoa+adIMfwwfqo2lWhjZ1U5P5lpB2TSTcSKGSSa1eqbY+X2GkVq8WEPvH6I8hjvVeVwGkdhCyv5u2zq1AxwxI7RcOUmGcxeMTDm3fjqipPal57BQYihh5BD/gMSUmDhMOQCwhgx/qLOz7CJVIavXIHmHzCiO1euCvMfrjLsc637aoIEtBajXAKxnV+a+QZ4hLap9Val8b+fSP8R5qI+qrxuguntQ8UuESGofWmYcYcOhoB1yojgtoMEAoFZogG/LBvYMP1eRYTlL7EDHiuB8xKljlMMF8I2dSq0PCVz2IBBuehTmEkn7s5ah6XBmDDA4sI6kdhZuv5GJgNmIcssFQ7s6UpFaDOEHHfc82nBWjT170pOZRbYirIvxxiHroMeBbyN6Vjs7AHervOuAPuFs6ZoE6JOzSC8AkxGIN9e804ETEUq0cGAv8XPt/C+DbwM2YLTqHKxLMs7+OUxO0LvFOUtKCCQPVxG7DsYhxQhCbCXe6Hkq4BeDKiEl8BGJdGIbFiqxNWKc9jw3TgfOVyk9fQO2pFnaDgJPVom5GyncyHDjecn4BYowSB8MMv28CWgV+OwIxClrsp0qPHRFh0SB+jdmisXdARdKijG3vAfw90PZlxNsTylJS+4nhmvMs17yfs6S2zUCoUSrLax364vcWSSbs96S5u97AnkLFBRMiVH0ulp/tkAg6vVNIau2VRG+TFo+L2T/tCbfkXIoEMAi7z8VeUvOoJria2I8A/jcwiC5X6r26KnjOxWoFPlX7rSvid9Wjgto5Ua2Yw7ArpVfhgvgT2nzTosKUNcNspj4GMeoJ4oCcFxw21ERMntsc6vgUuA3xPUyK0Zp2IQzjkfBicXByiDQGomacbrjmdD9NelQTXNSPh6nVq/6xX4aoytKQaQ/EAbibOtqqD66GBp+odYhj8lI1QaxOcc9PEQu8p2gwR++pVqjHWMiklNiEqNg+Y5hsy+FYWo+oCU1YFnH9QMIjy8xFosnMIty/6utI8ONSY5HlXFPgbsS6d0mObfh8hIT0AXYHbmIS1EuY98/6qwXVEjw8dgB0Vh+5q8m1jt4BVcloZE9oNo0tJ12PxUq6ugaJKJJEpdlBTaR6vWNz6Lsk6sfmlr5ZGyC1Uqkf98JuMBLlrzbWcN14df5Gw/k3EvR5FurHE3FzQn8aMZraM2Ybo9SPpymCsakdByXom3aWsXWIWuCa/AgvqPB5yqsfPZzxcGDA3O8oLewN3EB+lmqF4xPEAOXomFJML7Xy1OvKWs2ShNROtlwzK0T9lDeptVEqLtM172BXiTYL6efCcbbDM+9TBlJrpiTIOFkjZqqJv43jt2Gr79GI83clHI+mPHarNY3N04Yyz3pS89gRcGZgsMwm2getC2ISvprw6B55Hq8BJ8V4vgEUh9dahuyzlYvU9lVqJdM143Imte2KaL6BWLP+IkRKD07mgyP64FjL9YWcap0skuBVZSA1gK/g5s4QPJYrtWDLFKQWpamoTTgeHzTU+ZRW5ipDmS0Zfxue1DxKjlqKQwRtwi0TbjtttbpnYAK8E9kXy5vcnsA9EsLPA9f+oUSk9ifEH+oIxGx7rINKdlDOpBb3uMahD243XLsoIFmbyChuGpSsSA3gewmJreB0vV8OpHZDwrHYBtmfDqvzCq1cf8u9z/Ok5lHN+E1goFydoI7eNDbpr0H2YB5JMWG4HCtoHHMvDC0CE2Ed9sj3WZFa3OMNGluqlovUNiAR3qPQFMlaHlbHPYGyt1mkwb3LRGoFiW1RijG4fwJSs30Xa0gWuup0S51Ha+VaYXYkn+xJzaNasSfFYXTeIVlW4jBS03F4xCSU9thC4ygcYThKTZ56FuZKIrXNqq+oAFJ7iXDfqzB82VLPhYGy37SUjWPllzWpgajcr1aqxbj99e+QcR9FauMizj+c4BnusyxQgib+0yzfUydPah6VjjA/tR8FSOyH2E2600z6BXeBPNBcqfmiJLYZFEfqOFZNyJWATcAZqq8qAUci+20uGBYx7o7XDptrydAyP/M6xOK3F7LnOAXZi3XBAYiPZxw8TfE+VxCnqcMVrTHvNS9Ukpr+LpZbvqdT/JTpUW3oTnHEgZkk942KktQKqKGxujPLYznRDtb7Umw08pcKkNRmAgdb6i/nntrZDoulRRndazuSWqhckloYuiDJVp92aP+TMSW1U5GwZLZ8Zx8g0UFccFqG39KTXlLzqDb8ODBAhqSoy5XUCpPgUzkS24MO7f1zoL19Skxqm5W66nZk3zFqMZGHSf/uiG/iF5DoK6ayS7Cbrx+V8fu7rMJITccQwlMdmcKbuYbJujGi3G2O7ZuY4XvYRONUOp7UPCoWNRT758wlXabqOKSGmlDzcgOoIzor8OHEj2mYlNSuV6S5rzp6EH/fMm8/tS6IYYLrvpiOmzJ+f66BgbMitf1wMzQq4EnLfdclJLX2mA1tCu/riIh2tcItMWuc4yxPah6VjCaBCU+3NJtAaeM6fkh4qo6sCDsqPf3LFEexGEF+YanWA++phcNcxP9oc4WNjRXYo9p/2zKmsnZkPxzZ0yoVhgLPAI8TbqQTRHfLuTUJ27AWewT+pogrSHNLmROQCDpZYpifNj2qhdT0zec64N4ytGd8jqutrzl84BO1v/ciPOP0zoRJlnP9CI/4cWgOBNQEc1DkPDBYLWhORvY2ZymC+VJAou6spO5DLHW9l6Idf0QCSptwEBJY3EbOWeME3PfzPDxKDt3qTLeQegXZjC415iIJR/fJoe5WSKoOm0n0w0g6nYKENohkMQh3FDyHJDCtNUi/I4GfxVjJ/x1RTZpwEbIfZ5IQfluCZ+6qyEtHX3X8EjEoWqWRWlTmhL+maEsdEl9yBuatgJ8oifrdwO8tFSmb8EvMKX7aKimwxvAdDSnTotfDwxndKfbV+kkGdfYmWT413WAj62OMw/3f1sqnmZCSxH5MItXmHdD4T5Zr3g1MfDVKMkn63Jdjt4LcLeL6LPbURmY43tbR2PI2TubrAu6OuGZKCAGdFNGX3SL6YT7Z+srlCb+n5lGk1ilMdvpHMbWMbVqUY90uob6mBkig6U4+Rmz7antTvOd0CPao9VHE8kLEWC1Fbq/BGdZ1Kdlkjb4C2WMz4XgaG3AMi9CIRKUMmm459xUkJJ6HR8WS2he137YQP+ZeltiYY92fcSgzU/u7PelN+6sdf0WsUk04U/vbRjpbsO8PAfwzYvIuBandAyxIWcdWRWjjMmrTx0iAaRvGIBarIMYjJ6dYXESR2i4kS3/j4VEyUjtQ++3dnInFtU15YFeHMsE9tIN28jGyEXuEi+E0xPW0GSbMQqw+o8hgpuV8f8d3mAZPICb9I4Hncct0XcA2xGKyH+mS6IbhFhrvm+noQoN6/VjCE7MW8GJKUouSBD08yoaCoYiuMnqrzG3qnGPdLWnIrG3CPDU5Ffpmj4T3moCYhSedVFwmX5tq65WQ3z7C7H9Xjzn80xhgjuVe3ZSEZTMecJX+bza0XR8fpizMYzGb18dRa29REts9iiwGIj5h+yGWnW3UGFmn3sF8JYU+S3SG6E+w+0Ca+nkzEqLsqxH1t0f2zGz3mOLQB+8hwRhM/pPr8fCoYOjBWsdkVGdvkhmKTCE/Q5G1jm3QE1ve4oeHh0dFwxuKePwHTZCAp3rom6VlbE8NEgQ2L7zvWO4j7e8ufph4eHh4VA+ptaHYX21lGdtzENFm22ngGu1ejwLRxg8TDw8Pj+ohtaBhxqYytueCnOv/s2M5fW+ptR8mHh4eHtVDapWC/ck3Zfx0yut/5+Hh4eFRAlIrpI8vp2TSVklRLXKqfxVwLu4byXqQ2I1+mHh4eHhUD6mtp9gXp9Qp21sjYXfyCh68GolVNy/GNbrhzDo/TDw8PDyqh9Q2qYm/gF1LeP+uSMSKE3Kq/03gSOBvMa/TI48s98PEw8PDozpQsHpcpAgGoGeJ7n0U4qybR56s1Ui0/ZuIn6esDcUO4O9n3La2wGcVcXZSC4utSP6yZYjT66qIhUgeed4KyVR11CCq2N2QSP1tkPQ9bZWEXYiLuVG1/WMkruC2DNpTg33PN6y9pOi37RHXN01xbZy6ktTn4eERwAM0OC9mFVGkN+HO162QHFRbyd65+j0k+Gttinb3JTpqelx0BH6AuBREPXcdsBDJpTWcxpHzH1B1ZH3cGrjPuYqotsd8B+uV9P1d0u3PfjOivXGl759a6loVoaHoFdGW3jHa0QeJWGKqay0+WHCSBZl3vvZo9MEXBsVmsvHNCiO1gUgYoCyJbAGSZuXLZBNR/1uB+vdKWd9IJYUlfb5PkASnBUwin2grtwfa/cMM6vwAe2BdG6Kes454IcxGR9T3O8u1e0RcG4fUXPp1uJ+SPKl5JENBvfMP7bcW2DP5JsV4JOnkvinqqEMMPv4EXKjUeH2AUYjJfhZqmyO1v1eTLmL7taqtaeJZ1mKOyVjp2B14TEl9cdAWSW9iQw3ZRu0/D4ntmDdcslF7UvPwSIluATXT6IwltSTHVsTQ4x61uj2O0oSsmqu1YXKKeoZlJEFtD5BiNUlquvQfx7p1uGO9cVSQox3qm5SzpLYHburcdfhINl5S80glqS2jOLX7SSVuxzYkNclY4HzgUCTa+EFIvq4blZS3Iud27KOOAp5PWE8z1eYsMIfyhi7LAi2Il+17qGO5w8jWsOm0gKSeNU7HLeBBmzJ8gx4eOxSpQXHOrENJnnLFFcuAO5H9oi5IotILETXl65TH6TmoznoqYT1HOvTfNOAqReIXAdcB99PY2vJvFThu5iFJIo9A9kkvDiyKwjAYN8ORXWJM6E0UEWWFGuAG8rEuDRtfNnzdT087JG5Xkvg1vr3540sBMf6qlPWdSrhqZZ6SvppX2PPXqIm50M45KSa3/8auXooaIPsh6rIPge8EznVD1F1hx0UR9x1huTa472dTP4Yl8mwFzIi4f1/HyTzs2rcNv093fCejcVeXBokyC/VjT8JVj/MMv6+lseWrRziqSf24QbXzowppz2h1XFEl7Y09qeuWifNJZ034l5APdUIFf6hHB9r6sxR1XRsxCe7jWE8LxGjCFVH7eMfGqCsuqYFYOtru7+Jkf6/h2vMJd4fYBvTImNTeCiy6siC1UYZrxwCzDedOxWNHI7U7EbeXX1VY362ukvbGxo8iVqyuaKZEVr2u6yv82R8MTJRp1K9RRhbn5/QM5Sa1z0Xcf2DEPVshaX/CzPd7IFa6YfVelDGp1VOcMSILUptuIa47DOfu8Xy1w5Fapfbd6h31AbsqVi486GsJVXDByW0S+e1TZIHPKSIrtPfRlPVFSSwFZ+dDyDZTQrlJ7ciUk/8phuvmqvO/MZx3MeiJS2qLNSk5LantFhhfumVrN+AMQ72rFdF7eFLzpOaI4IS6HLhL+/+hJPMF6qr9vQb4XoUPuOtoULXWI8YCaTAV2ROxSbIXA39HdNW/B06kOFlrNcLmj/YmEinFBpPV44vq3xcM5/sD3TN+lt2ASzOq6+uEq/LfQQymXjR8Hx3ILy6qh8dOg16I5aG+kR033NHx2vWVrosdgKi3Cu19JqN6o/bVwo73ERVwhyqT1GoRFwbbvUdG3K8lEq4q7NqzVZnumP28olS6oxO8j7XqnmkltecN192hztcgId7Cytztp6SKkdQK93hC/X8E8JKSctYje7HXYw/TFyUZ6ec7Ko3OYiTw/CUh5dsBlyFW0quQEGwfA49jtqCNGvd5SnIDgYlIUIsN6hv7B+Ly0zFhe+tdxkBwgrouZsP7a9fuW8EfQys1EHV10BczqrulGvBJnJWXK6knrsq2VKS2DlFNv6b6b3PEfR9zeJbBluv7aOXeMpSZkoLU5qmPy+SUnobUumOO93mGVu5uzGHSWnreqihSm4mEVbOFh9szJamtB94I1Ds6UPZLSDB629i8K+TbKwepNQXGRdx3EXBgXqTWQa0OCoW2KFWkKw6gIcBwJeOGQGeMy7j+DkhUkqSROP5IPNeHUpFanON53Cw4/2CZIPSP0vRhbMEecWZ0hOT5U0u9J6QgtQswx67UHcfPtdTvHbEri9QK2oIFSCaQa4BHKN43nZGS1ArHR8AtSpLRQ8f1VAueQrl/I3vOv0D8a8M0HQVcoR2FMhu13/IgtV9THGHoIdVvv1MaqsK5hSHzxRURh261PzXOBDk3hlqslVqdPlTBH8KJAVXWx+STILUJ8H0lfWURvqpaSG2N+hBdSLkFEjUlrJ57A2XPtNzz3BSk1jawkNOPV1KQ2hTMGSV0st7HUv8Ez1sVRWr1isRaBM4fQ/HWzbEpSe1Vy4JwXEBFHdyzvVg7Py0jdWhS7KUR/qdKwtTRXn2DhXtdHqPufto8vhEHd6n7Ap38aAyV2Bwken4lok+AZOpIHk3eFe3Uy5oXkxzqlDq32kjtjhhS5lct9VwYKNuL4j1Q/Xg6BanZpKqow0RqXS2qx+BeWY2FVFdS/UZEOxKpbVQTcRhu0srdloJE6gyquAIWaGXDQsW1pViFXU5S+7lWz9WGMscQP6Zrs4CK9kqXi2ppvIE9xvGGd1GZRiKdaezsWkrybaJI6jeYjQOCxwNVqn6chJvLwnhLHTOQPTn92GZRFdamILXmmPfskpCaTaU4O+S5bCmKvBVk5ZCabYI/PGJyzopE2iOGFR0tZdYQnUy3FKQ2TavHRNS7aGVWOdZ7pXbNG3EWfgdT7LtWD/zY4bqzlR61ktAuIObWI8YcLcrUnhokfuLUiElzmSM5lIrUlir1xwQab2bHtUpslkI1G3Z8OwWpgTm8WxJSm5zhc43DoxpIrU3gOykHiRSw2qFfStGeJVo9bSM0NkNw20PeW1P1bg9RaUbi9JDV8dUR13SnwWS5ElCrVk5Bq7fuOd2vBvcwY81CyDaognTZzyyHSX8TxKDFZglmU0Men+HEX4+EZ0tDajU0+I2lIbVOSnLM6rmWehVkVZAa2mS7oQQk0gzJEv8QYnCxgRgWgSUitU00GIhkhee0tt2ctJLv03gv49aIifvKChn0vYB/0ThixN453rOfmiwPcyx/a8SkVluhpAbiqGybwG0R5+/MmNQ2GlQyo2M8z5GY9+1cSe07GT9XPZJT0KPySc0mIWVJIn2QlF2JzdxLRGpZ+7qdQ7G1ZKrcgz8I+dgnYzalHkT5w2MdExB/C5aOB+Z839GalDUZMURpYVGLzrUMyA2Oq/Ryhsl6xlL+Ecsqc0kOk//IlKQG8HBKUnsih+f6necvT2oK7Wm8J/8ykpPyasTUfeMOSGpdKbaUHpTFi/0ujS26FhEerHYXGqc0KRWaIb5HwbYuwD1Kfhq8GjIprVKT5ZVqtXG2GoBzIyazmY73LCepnW8pv4lwd4kBlmu2qHdlOtZarn00A1L7bAz1YZDUajWVi8nJ1PRcNmORJV4FWRWktknTGuRFIvp4fk9phuKQaznUj5syeAd6Fo9MA34PpnE09e1qJVlbAYP8UCSuYn3ISmbXEtzfFs4pyTGqCkitG2bz9WDU+wJut5SPihByZYRk2y4lqYE9aoSN1M6ylF0dQUzHRdzrGM9hFU1q7SiNoYie+/GoBBJjKUlN18akST2mu/6soDjG8H+QNEL8k4jp6uxAXd9D/NMuojwWhT2R4MAvIxHwdYxTksGSErTjq2QXfX8B1eF8uwyxJDXhzJCxZ0tt9GLE/V6wnGutFl5pcS3iLBoXQy3nXkaMrmznNyes26P8+Lz2d54RlfZS/27GHL2kUvBOYI62abf+aVhktqHY8PBSxGo6M1IDyUTcT91I94PoijgdzlUSRrsSdNp+qh1zEd8g3XhlJWIddEFG4q8LstqvW6UmsfVV8kHbIsgcHZBojkYMTEx4KeJer0f0SxaT/xLEmTYO2iPRapKS9XokwKsJp5Iuea9HerTAbJwwPDBG88J2rS1hsUHbOgoWhXrytH3Qv+VTDGUOQMzyv0C42f+12vzxLGJxnSsGKpIzhUsar6SkLPcDaoFvIaadYZZqdYj+ddcyDPomiL/UHJKrHF9B9nXioNz51HpgdowO+jfeYim3Gbd4kc9hD7qs1zGaZHuWbRHDIlf14wjSqw+vj6jjaM8rRShHmKz7Q+azARTvpQ6w1JFW3advr5wRsrB60rFfVmjzZecE7TlDaWmWBAhdxz40bMesCkizBc3KC5j9oA/R5pX1FAc4z331col6QJsT8b1KajqYeCrKToo8r0aC5Noiw79MZew9NFED+1ZFcFFm4iuRDNxDEkrRw9Q9TEdcUjPVMzNCEjFdN1utCJsgxhKmcq84tvFnEc871LFsVFieCyPuo5PaJEu5DbjtKZwUcb+b8Cg3qdUD7yIRlkYjBmD6gm5aQtJyJbVRFBtVTVTtGE9DoGN9vjGF9XqW4n3sX8Vsj77gW2xp7xiK3W7uU+39LcWZBt4N+Ub0jPevEhHgOA+Rsy2ytzYK2D2i7Bb1QAuRTdVPFaPXKMLrgOhg91ASV03EgHsRiWLyVAkGeBJ0U2J2LxoiD2xUZD8X2T/bnqL+5hGT5nrs+zk6WmLOurxdSUJhaB2xWFmrrSZN2Eq442rYQsqW628TDftTrTCncLE9T2FxYlOjf0qDCr6dZUFSh9seXdT9tlE9KulSkRolUKMV7rMGsbz7vqHcfLWo/iiijo4JzhfQDHEb+Yrh/I1IYIOD1f/7E67SH0bjMHw1MdqzjAaDjeVqjgtDU8TdwBZ0fA6yFz7f8n7LihZqpfwU2UZWCMs9dpv28jw8PDzylNQKUssItZBeoxZhs5G9n3Yx6kgqqRWIbZSSXtapBdN0GgywLkV8ZCcjdgU2rcwCtcB+M2Z7RipiW0pjNWgYBiipcqG63zrV/sssC/JM8qlljS6IT9a9avWShsS2IdFBbkbMn5v7b83Dw6MMpOZRgagp0z17A30Rq8U+iHqxI6IiqtFUQuuVJLYQMY99QxHaKv/qPDw8ykBqEK0a9PDw8PDw8JKaR3o08V3g4eHh4eFJzcPDw8PDo8Lw/+tabvukGw94AAAAAElFTkSuQmCC";
+
+const escapeHTML = (str) => {
+    return new Option(str).innerHTML;
+}
+
+const selectHTML = (nodeId) => {
+    const node = document.getElementById(nodeId);
+
+    if (document.body.createTextRange) {
+        const range = document.body.createTextRange();
+        range.moveToElementText(node);
+        range.select();
+    } else if (window.getSelection) {
+        const selection = window.getSelection();
+        const range = document.createRange();
+        range.selectNodeContents(node);
+        selection.removeAllRanges();
+        selection.addRange(range);
+    } else {
+        throw new Error("Browser does not support selecting");
+    }
+}
+
+const generateSignature = () => {
+    let result = `<style>
+                      @import url(https://gfonts.pirati.cz/css?family=Roboto);
+                      body{font-family:Roboto, Arial;background:white;color:black}
+                  </style>
+                  <div style="background:white!important;color:black!important">
+                  <div style="font-family:Roboto Condensed, Arial, sans-serif;font-size:10pt;font-weight:normal;margin:1em">`;
+
+    let name = $("#name").val();
+    let func = $("#function").val();
+
+    if (name !== "") {
+        name = escapeHTML(name);
+        result += `<div style="margin-bottom:0.75em;line-height:1.1em">
+                   <strong style="font-size:13pt;font-weight:bold">${name}</strong>`;
+
+        func = escapeHTML(func);
+        
+        let funcMultiline = "";
+        
+        for (const line of func.split("\n")) {
+            funcMultiline += `${line}<br>`;
+        }
+        
+        if (func !== "") {
+            result += `<br>${funcMultiline}`;
+        }
+        
+        result += "</div>";
+    }
+
+    let email = escapeHTML($("#email").val());
+    let phone = escapeHTML($("#phone").val());
+    
+    let web = escapeHTML($("#web").val());
+    let mastodon = escapeHTML($("#mastodon").val());
+    let twitter = escapeHTML($("#twitter").val());
+    let instagram = escapeHTML($("#instagram").val());
+    let linkedin = escapeHTML($("#linkedin").val());
+    let fejsbuk = escapeHTML($("#fejsbuk").val());
+    
+    const containsExternalLinks = (web !== "" || mastodon !== "" || twitter !== "" || instagram !== "" || linkedin !== "" || fejsbuk !== "");
+    
+    if (email !== "" || phone !== "" || containsExternalLinks) {
+        result += "<div style=\"margin-bottom:0.75em;line-height:1.1em\">";
+        
+        if (email !== "") {
+            result += `<div style="display:flex;column-gap:0.3em;margin-bottom:0.25em">
+                       <img src="${emailDataURL}" aria-label="E-mail" title="E-mail" width="14">
+                       <a href="mailto:${email}" style="color:black!important">${email}</a>
+                       </div>`;
+        }
+        
+        if (phone !== "") {
+            phone = phone.replace(" ", "");
+            let phoneGroups = phone.match(/.?.?.?/g);
+            
+            const formattedBasePhone = phoneGroups.join(" ");
+            const prefix = $("#phone-prefix").val();
+            
+            result += `<div style="display:flex;column-gap:0.3em;margin-bottom:0.25em">
+                       <img src="${phoneDataURL}" aria-label="Telefonní číslo" title="Telefonní číslo" width="14">
+                       <a href="tel:${prefix} ${formattedBasePhone}" style="color:black!important">${prefix}&nbsp;&nbsp;${formattedBasePhone}</a>
+                       </div>`;
+        }
+        
+        
+        if (containsExternalLinks) {
+            result += "<div style=\"margin-top:0.75em;display:flex;column-gap:0.2em\">";
+        }
+        
+        if (web !== "") {
+            result += `<a
+                           style="width:30px;height:30px;background:#000;text-decoration:none;display:flex;justify-content:center;align-items:center"
+                           href="${web}"
+                       >
+                           <img
+                               src="${webDataURL}"
+                               width="18"
+                               alt="Webové stránky"
+                               aria-label="Webové stránky"
+                           >
+                       </a>`;
+        }
+        
+        if (mastodon !== "") {
+            result += `<a
+                           style="width:30px;height:30px;background:#2b90d9;text-decoration:none;display:flex;justify-content:center;align-items:center"
+                           href="${mastodon}"
+                       >
+                           <img
+                               src="${mastodonDataURL}"
+                               width="18"
+                               alt="Mastodon"
+                               aria-label="Mastodon"
+                           >
+                       </a>`;
+        }
+        
+        if (twitter !== "") {
+            result += `<a
+                           style="width:30px;height:30px;background:#00a8e8;text-decoration:none;display:flex;justify-content:center;align-items:center"
+                           href="${twitter}"
+                       >
+                           <img
+                               src="${twitterDataURL}"
+                               width="18"
+                               alt="Twitter"
+                               aria-label="Twitter"
+                           >
+                       </a>`;
+        }
+        
+        if (instagram !== "") {
+            result += `<a
+                           style="width:30px;height:30px;background:#c83b7f;text-decoration:none;display:flex;justify-content:center;align-items:center"
+                           href="${instagram}"
+                       >
+                           <img
+                               src="${instagramDataURL}"
+                               width="18"
+                               alt="Instagram"
+                               aria-label="Instagram"
+                           >
+                       </a>`;
+        }
+        
+        if (linkedin !== "") {
+            result += `<a
+                           style="width:30px;height:30px;background:#1c84bb;text-decoration:none;display:flex;justify-content:center;align-items:center"
+                           href="${linkedin}"
+                       >
+                           <img
+                               src="${linkedInDataURL}"
+                               width="18"
+                               alt="LinkedIn"
+                               aria-label="LinkedIn"
+                           >
+                       </a>`;
+        }
+        
+        if (fejsbuk !== "") {
+            result += `<a
+                           style="width:30px;height:30px;background:#3a5795;text-decoration:none;display:flex;justify-content:center;align-items:center"
+                           href="${fejsbuk}"
+                       >
+                           <img
+                               src="${fejsbukDataURL}"
+                               width="18"
+                               alt="Facebook"
+                               aria-label="Facebook"
+                           >
+                       </a>`;
+        }
+        
+        if (containsExternalLinks) {
+            result += "</div>";
+        }
+        
+        
+        result += "</div>";
+    }
+
+    result += `<div style="margin-top:1.5em;">
+               <img
+                   style="height:3.5em;margin-left:-0.1em"
+                   src="${logoDataURL}"
+                   alt="Logo Pirátské Strany"
+               >
+               </div>
+               </div>
+               </div>`;
+    
+    result = result.replace(/\s\s+/g, " ");
+    
+    $("#preview").html(result);
+    $("#content").val(result);
+}
+
+$(window).ready(
+    () => {
+        generateSignature();
+
+        $("#generate").on(
+            "click",
+            event => {
+                const form = $("#source")[0];
+                
+                if (!form.checkValidity()) {
+                    form.reportValidity();
+                    return;
+                }
+                
+                generateSignature();
+            }
+        );
+        
+        $("#copy").on(
+            "click",
+            event => {
+//                 https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard
+//                 Can't do this on Firefox *yet*, NOTE - use when possible
+// 
+//                 const type = "text/html";
+//                 const blob = new Blob([$("#content").html()], { type });
+//                 const data = [new window.ClipboardItem({ [type]: blob })];
+// 
+//                 navigator.clipboard.write(data).then(
+//                     () => {
+//                         alertify.success(
+//                             "Zkopírováno do schránky."
+//                         );
+//                     },
+//                     () => {
+//                         alertify.error(
+//                             "Chyba při kopírování do schránky."
+//                         );
+//                     }
+//                 );
+                
+                try {
+                    selectHTML("preview");
+                    
+                    document.execCommand("copy");
+                    
+                    alertify.success(
+                        "Zkopírováno do schránky."
+                    );
+                } catch (exception) {
+                    console.log("Error copying: ", exception);
+                    
+                    alertify.error(
+                        "Chyba při kopírování do schránky. Prosím, zkopíruj text manuálně."
+                    );
+                }
+            }
+        );
+    }
+);
diff --git a/tailwind.config.js b/tailwind.config.js
index 882ff8fc6f21218aac61604077d8e0cdd47ff91e..c4aec83d8bf1f089ffffbc008b7825eeb011463c 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -14,5 +14,7 @@ module.exports = {
       },
     },
   },
-  plugins: [],
+  plugins: [
+    require("@tailwindcss/typography"),  
+  ],
 }
diff --git a/webpack.config.js b/webpack.config.js
index d187e3f50a23b30b2bf9fc4e0ed3ff609aea096f..c67bb032134af850baf990aed347e54bde2492de 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -17,6 +17,10 @@ module.exports = {
       import: path.resolve("static_src", "rv_voting_calc.js"),
       dependOn: "shared",
     },
+    mail_signature: {
+      import: path.resolve("static_src", "mail_signature.js"),
+      dependOn: "shared",
+    },
     shared: ["jquery"],
   },
   output: {