diff --git a/aprsc.dockerfile b/aprsc.dockerfile
deleted file mode 100644
index da2e51c9cda8d9b4fe0540c63ee05de25b690db0..0000000000000000000000000000000000000000
--- a/aprsc.dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM ubuntu:20.04
-
-RUN apt-get update && apt-get install -y \
-  gnupg \
-  && rm -rf /var/lib/apt/lists/*
-
-RUN printf "deb http://aprsc-dist.he.fi/aprsc/apt focal main" >> /etc/apt/sources.list
-RUN gpg --keyserver keyserver.ubuntu.com --recv C51AA22389B5B74C3896EF3CA72A581E657A2B8D
-RUN gpg --export C51AA22389B5B74C3896EF3CA72A581E657A2B8D | apt-key add -
-
-RUN apt-get update && apt-get install -y \
-  aprsc \
-  && rm -rf /var/lib/apt/lists/*
-
-EXPOSE 10152
-EXPOSE 14580
-EXPOSE 10155
-EXPOSE 14501
-
-WORKDIR /opt/aprsc
-USER aprsc
-
-CMD /opt/aprsc/sbin/aprsc -c /opt/aprsc/etc/aprsc.conf
diff --git a/config/000-default.conf b/config/000-default.conf
deleted file mode 100644
index 575aefed1a86d340d51e0d617b5ca7515e8d008b..0000000000000000000000000000000000000000
--- a/config/000-default.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-<VirtualHost *:80>
-  ServerAdmin webmaster@localhost
-  DocumentRoot /root/trackdirect/htdocs/public
-
-  ErrorLog ${APACHE_LOG_DIR}/error.log
-  CustomLog ${APACHE_LOG_DIR}/access.log combined
-</VirtualHost>
-
-<Directory "/root/trackdirect/htdocs/public">
-  Options Indexes MultiViews
-  AllowOverride All
-  Require all granted
-</Directory>
diff --git a/config/aprsc.conf b/config/aprsc.conf
deleted file mode 100755
index 48d5927d5a10a43f1a8a4b2a21fb86698268a9dd..0000000000000000000000000000000000000000
--- a/config/aprsc.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-# Note that server id and passcode needs to be changed
-ServerId   MY-SERVER-ID
-PassCode   11111
-
-MyAdmin    "My Name, MySignal"
-MyEmail    me@domain.com
-
-disallow_unverified	false
-RunDir 				data
-LogRotate 			10 5
-UpstreamTimeout		15s
-ClientTimeout		48h
-
-Listen "Full feed"					fullfeed tcp 	::  10152
-Listen "Client-Defined Filters"		igate tcp 		::  14580
-Listen "Duplicate packets"			dupefeed tcp 	::  10155
-
-### Select aprs source (only one)
-Uplink "Core rotate" ro tcp rotate.aprs.net 10152
-#Uplink "Core rotate" ro tcp cwop.aprs.net 10152
-#Uplink "Core rotate" ro tcp aprs.glidernet.org 10152
-
-HTTPStatus 0.0.0.0 14501
-HTTPStatusOptions ShowEmail=1
-
-### Operator attention span qualification run ###########
-# After configuring the rest of the settings, remove this bad command
-# from the configuration file. It's here only to avoid starting the
-# server up accidentally with an invalid configuration.
-MagicBadness	42.7
diff --git a/config/trackdirect.ini b/config/trackdirect.ini
index 0a38d5e28f0ea18eaecbecf1736b81f87a6db73b..073c45edeb8c1114389a1f34a5fe6863161d684d 100644
--- a/config/trackdirect.ini
+++ b/config/trackdirect.ini
@@ -4,9 +4,9 @@
 
 [website]
 
-title="APRS Track Direct"
-owner_name="Unknown"
-owner_email="no@name.com"
+title="Digipex Hub"
+owner_name="Jeffrey Phillips Freeman (WI2ARD)"
+owner_email="the@JeffreyFreeman.me"
 
 ;maptiler_key="<insert map key here if you want to activate maptiler for vector tiles>"
 ;google_key="<insert google key here if you want to activate google maps>"
@@ -32,18 +32,18 @@ coverage_percentile="95"
 
 ;; Basic database settings
 ;; If using docker, set host to "db"
-host="127.0.0.1"
-database="trackdirect"
+host="swarm-db-default-postgres.cjvkhc5ajvev.us-east-1.rds.amazonaws.com"
+database="digipex_hub"
 ;; If using docker, activate username and set to "root"
-;username="username"
-password="foobar"
+username="digipex_hub_user"
+password=""
 port="5432"
 
 ;; Settings for the remover script
-days_to_save_position_data="10"
-days_to_save_station_data="30"
-days_to_save_weather_data="10"
-days_to_save_telemetry_data="10"
+days_to_save_position_data="10000"
+days_to_save_station_data="30000"
+days_to_save_weather_data="10000"
+days_to_save_telemetry_data="10000"
 
 ;; If this setting is enabled, OGN stations that we are not allowed to reveal the identity of will be given a random name similar to "UNKNOWN123"
 ;; If disabled we will drop all packets regarding stations that we should not reveal the identity of.
@@ -73,7 +73,7 @@ frequency_limit="0"
 ;; First APRS IS server for the websocket server to connect to.
 ;; Important: Please set up your own APRS IS server, do not use a public server.
 ;; If using docker, set aprs_host1 to "aprsc"
-aprs_host1="127.0.0.1"
+aprs_host1="igate.digipex.io"
 aprs_port1="14580"
 
 ;; Important that you set the correct source, otherwise it might be handled incorrect
@@ -92,7 +92,7 @@ aprs_source_id1="1"
 
 ;; Allow time travel
 ;; Use this settings to disable/enable data requests with a time interval (this must be disabled for the OGN network)
-allow_time_travel="0"
+allow_time_travel="1"
 
 ;; Max default time in minutes (how old packets that will be included in the response)
 ;; This setting should be no more than 1440 for for the OGN network.
@@ -103,7 +103,7 @@ max_default_time="1440"
 max_filter_time="1440"
 
 ;; Time in minutes until idle client is disconnected
-max_client_idle_time="60"
+max_client_idle_time="20160"
 
 ;; Max age in seconds for real time packets waiting to be sent to client (dropping packets if limit is excceded)
 max_queued_realtime_packets="30"
@@ -112,7 +112,7 @@ max_queued_realtime_packets="30"
 [collector0]
 
 ;; If using docker, set host to "aprsc"
-host="127.0.0.1"
+host="igate.digipex.io"
 port_full="10152"
 port_filtered="14580"
 
@@ -125,21 +125,21 @@ port_filtered="14580"
 source_id="1"
 
 ;; Your callsign and passcode
-callsign="NOCALL"
-passcode="-1"
+callsign="DIGIHUB"
+passcode="31415"
 
 ;; Database inserts is done in batches
 numbers_in_batch="50"
 
 ;; Packets received more frequently than the configured frequency limit will not be shown on map (limit is specified in seconds)
 ;; Set to "0" to disable the frequency limit (note that the limit must be 20s or more when receiving data from OGN network)).
-frequency_limit="5"
+frequency_limit="0"
 
 ;; If save_fast_packets is set to "0", packets that is received to frequently will not be saved (useful for OGN, but not recommended for APRS-IS).
 save_fast_packets="1"
 
 ;; If detect_duplicates is set to "1" we will try to detect duplicates and ignore them.
-detect_duplicates="1"
+detect_duplicates="0"
 
 ;; Collector error log
 error_log="~/trackdirect/server/log/collector.log"
diff --git a/db.dockerfile b/db.dockerfile
deleted file mode 100644
index 4d037867d41ea4f65c982eac29d00658f642c1d3..0000000000000000000000000000000000000000
--- a/db.dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM postgres
-COPY misc/database/tables/* /docker-entrypoint-initdb.d/
-VOLUME /var/lib/postgresql/data
diff --git a/docker-compose-rel.yml b/docker-compose-rel.yml
deleted file mode 100644
index b0396e65acb18be830c1ec78a85c2b6420b95ac6..0000000000000000000000000000000000000000
--- a/docker-compose-rel.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-version: "3.9"
-services:
-  aprsc:
-    image: peterus/aprsc:latest
-    restart: always
-    ports:
-      - "10152:10152"
-      - "14580:14580"
-      - "10155:10155"
-      - "14501:14501"
-    volumes:
-      - $PWD/config/aprsc.conf:/opt/aprsc/etc/aprsc.conf
-
-  collector:
-    image: peterus/trackdirect-python:latest
-    restart: always
-    volumes:
-      - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini
-    command: /root/trackdirect/server/scripts/collector.sh trackdirect.ini 0
-    depends_on:
-      - "db"
-      - "aprsc"
-
-  websocket:
-    image: peterus/trackdirect-python:latest
-    restart: always
-    volumes:
-      - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini
-    command: /root/trackdirect/server/scripts/wsserver.sh trackdirect.ini
-    ports:
-      - "9000:9000"
-    depends_on:
-      - "db"
-      - "aprsc"
-
-  web:
-    image: peterus/trackdirect-apache:latest
-    restart: always
-    volumes:
-      - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini
-      - $PWD/heatmaps:/root/trackdirect/htdocs/public/heatmaps
-    ports:
-      - "80:80"
-    depends_on:
-      - "db"
-
-  db:
-    image: peterus/trackdirect-db:latest
-    restart: always
-    environment:
-      POSTGRES_USER: root
-      POSTGRES_PASSWORD: foobar
-      POSTGRES_DB: trackdirect
-    volumes:
-      - $PWD/db:/var/lib/postgresql/data
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index ac2d8fd60fcb3497cbfb5d1ad921af1449008625..0000000000000000000000000000000000000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-version: "3.9"
-services:
-  aprsc:
-    build:
-      context: .
-      dockerfile: aprsc.dockerfile
-    ports:
-      - "10152:10152"
-      - "14580:14580"
-      - "10155:10155"
-      - "14501:14501"
-    volumes:
-      - $PWD/config/aprsc.conf:/opt/aprsc/etc/aprsc.conf
-
-  collector:
-    build:
-      context: .
-      dockerfile: trackdirect-python.dockerfile
-    volumes:
-      - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini
-    command: /root/trackdirect/server/scripts/collector.sh trackdirect.ini 0
-    depends_on:
-      - "db"
-      - "aprsc"
-
-  websocket:
-    build:
-      context: .
-      dockerfile: trackdirect-python.dockerfile
-    volumes:
-      - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini
-    command: /root/trackdirect/server/scripts/wsserver.sh trackdirect.ini
-    ports:
-      - "9000:9000"
-    depends_on:
-      - "db"
-      - "aprsc"
-
-  web:
-    build:
-      context: .
-      dockerfile: trackdirect-apache.dockerfile
-    volumes:
-      - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini
-      - $PWD/heatmaps:/root/trackdirect/htdocs/public/heatmaps
-    ports:
-      - "80:80"
-    depends_on:
-      - "db"
-
-  db:
-    build:
-      context: .
-      dockerfile: db.dockerfile
-    environment:
-      POSTGRES_USER: root
-      POSTGRES_PASSWORD: foobar
-      POSTGRES_DB: trackdirect
-    volumes:
-      - $PWD/db:/var/lib/postgresql/data
diff --git a/htdocs/.htaccess b/htdocs/.htaccess
deleted file mode 100755
index 53eb9a2f78769a47c94e32be558d524dbceb4380..0000000000000000000000000000000000000000
--- a/htdocs/.htaccess
+++ /dev/null
@@ -1,16 +0,0 @@
-<IfModule mod_expires.c>
-    ExpiresActive On
-    ExpiresByType image/jpg "access 1 month"
-    ExpiresByType image/jpeg "access 1 month"
-    ExpiresByType image/gif "access 1 month"
-    ExpiresByType image/png "access 1 month"
-    ExpiresDefault "access 1 week"
-
-    Header set Access-Control-Allow-Origin "*"
-</IfModule>
-
-RewriteEngine on
-
-# Redirect everything to the public directory
-RewriteRule ^(.*)$ /public/$1 [L]
-
diff --git a/htdocs/includes/autoload.php b/htdocs/includes/autoload.php
deleted file mode 100644
index 80ca220f5198f250651636654539c246fd5a0107..0000000000000000000000000000000000000000
--- a/htdocs/includes/autoload.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * Autoload classes when needed
- *
- * @param  string $className
- * @return null
- */
-function __autoload($className)
-{
-
-    if (file_exists(ROOT . '/includes/' . strtolower($className) . '.class.php')) {
-        include_once ROOT . '/includes/' . strtolower($className) . '.class.php';
-
-    } else if (file_exists(ROOT . '/includes/models/' . strtolower($className) . '.class.php')) {
-        include_once ROOT . '/includes/models/' . strtolower($className) . '.class.php';
-
-    } else if (file_exists(ROOT . '/includes/repositories/' . strtolower($className) . '.class.php')) {
-        include_once ROOT . '/includes/repositories/' . strtolower($className) . '.class.php';
-
-    } else {
-        error_log(sprintf('Could not find class %s', $className));
-    }
-}
diff --git a/htdocs/includes/bootstrap.php b/htdocs/includes/bootstrap.php
deleted file mode 100644
index 35e805c3eb2b170aa9ee745193b1439eafb65f6e..0000000000000000000000000000000000000000
--- a/htdocs/includes/bootstrap.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-if (!defined('ROOT')) {
-    define('ROOT', dirname(dirname(__FILE__)));
-
-    require_once ROOT . '/includes/autoload.php';
-    require_once ROOT . '/includes/common.php';
-
-    date_default_timezone_set("UTC");
-
-    ini_set("error_reporting", "true");
-    error_reporting(E_ALL|E_STRCT);
-
-    ini_set("display_errors", "false");
-}
\ No newline at end of file
diff --git a/htdocs/includes/common.php b/htdocs/includes/common.php
deleted file mode 100644
index 3ef98f30a6f8b835d2b87ac696e511868989dd9b..0000000000000000000000000000000000000000
--- a/htdocs/includes/common.php
+++ /dev/null
@@ -1,1893 +0,0 @@
-<?php
-
-/**
- * Returnes true if user probably prefer Imperial Units
- *
- * @return boolean
- */
-function isImperialUnitUser()
-{
-    if (isset($_GET['imperialUnits']) && $_GET['imperialUnits']) {
-        return true;
-    } else if (isset($_GET['imperialUnits']) && !$_GET['imperialUnits']) {
-        return false;
-    }
-
-    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
-
-        if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5) == 'en-US') {
-            // USA
-            return true;
-        }
-
-        if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == 'my') {
-            // Myanmar / Burma
-            return true;
-        }
-
-        if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5) == 'en-LR') {
-            // Liberia
-            return true;
-        }
-    }
-
-    return false;
-}
-
-/**
- * Convert km to miles (or kmh to mph)
- *
- * @param  {float} value
- * @return float
- */
-function convertKilometerToMile($value)
-{
-    return $value * 0.621371192;
-}
-
-/**
- * Convert meter to feet
- *
- * @param  {float} value
- * @return float
- */
-function convertMeterToFeet($value)
-{
-    return $value * 3.2808399;
-}
-
-/**
- * Convert meter per second to miles per second
- *
- * @param  {float} value
- * @return float
- */
-function convertMpsToMph($value)
-{
-    return $value * 2.23693629;
-}
-
-/**
- * Convert meter to yard
- *
- * @param  {float} value
- * @return float
- */
-function convertMeterToYard($value)
-{
-    return $value * 1.0936133;
-}
-
-/**
- * Convert mm to inches
- *
- * @param  {float} value
- * @return float
- */
-function convertMmToInch($value)
-{
-    return $value * 0.0393700787;
-}
-
-/**
- * Convert celcius to fahrenheit
- *
- * @param  {float} value
- * @return float
- */
-function convertCelciusToFahrenheit($value)
-{
-    return $value * (9/5) + 32;
-}
-
-/**
- * Convert hPa/mbar to mmhg
- *
- * @param  {float} value
- * @return float
- */
-function convertMbarToMmhg($value)
-{
-    return $value * 0.75006375541921;
-}
-
-/**
- * Returnes true if value is float
- *
- * @param  mixed $value
- * @return boolean
- */
-function isFloat($value)
-{
-    if (is_numeric($value)) {
-        // PHP automagically tries to coerce $value to a number
-        return is_float($value + 0);
-    }
-    return false;
-}
-
-/**
- * Returnes true if value is int
- *
- * @param  mixed $value
- * @return boolean
- */
-function isInt($value)
-{
-    return (ctype_digit(strval($value)));
-}
-
-/**
- * Replace first occurence
- *
- * @param  string $search
- * @param  string $replace
- * @param  string $string
- * @return string
- */
-function str_replace_first($search, $replace, $string)
-{
-    $pos = strpos($string, $search);
-    if ($pos !== false) {
-        return substr_replace($string, $replace, $pos, strlen($search));
-    } else {
-        return $string;
-    }
-}
-
-/*
- * Returnes symbol description
- *
- * @param string $symbolTable
- * @param string $symbol
- * @param boolean $includeUndefinedOverlay
- * @return string
- */
-function getSymbolDescription($symbolTable, $symbol, $includeUndefinedOverlay)
-{
-    if ($symbolTable == '/') {
-        switch ($symbol) {
-        case '!':
-            return 'Police, Sheriff';
-        case '"':
-            return 'No Symbol';
-        case '#':
-            return 'Digipeater';
-        case '$':
-            return 'Phone';
-        case '%':
-            return 'DX Cluster';
-        case '&':
-            return 'HF Gateway';
-        case '\'':
-            return 'Small Aircraft';
-        case '(':
-            return 'Mobile Satellite Station';
-        case ')':
-            return 'Wheelchair (handicapped)';
-        case '*':
-            return 'Snowmobile';
-        case '+':
-            return 'Red Cross';
-        case ',':
-            return 'Scout (Boy Scout)';
-        case '-':
-            return 'House (VHF)';
-        case '.':
-            return 'X';
-        case '/':
-            return 'Red Dot';
-        case '0':
-            return 'Circle (0)';
-        case '1':
-            return 'Circle (1)';
-        case '2':
-            return 'Circle (2)';
-        case '3':
-            return 'Circle (3)';
-        case '4':
-            return 'Circle (4)';
-        case '5':
-            return 'Circle (5)';
-        case '6':
-            return 'Circle (6)';
-        case '7':
-            return 'Circle (7)';
-        case '8':
-            return 'Circle (8)';
-        case '9':
-            return 'Circle (9)';
-        case ':':
-            return 'Fire';
-        case ';':
-            return 'Campground or Portable operation';
-        case '<':
-            return 'Motorcycle';
-        case '=':
-            return 'Railroad Engine';
-        case '>':
-            return 'Car';
-        case '?':
-            return 'File server';
-        case '@':
-            return 'Hurricane prediction';
-        case 'A':
-            return 'Aid Station';
-        case 'B':
-            return 'BBS or PBBS';
-        case 'C':
-            return 'Canoe';
-        case 'D':
-            return 'No Symbol'; // was originally undefined
-        case 'E':
-            return 'Event (Special live event)'; // Eyeball
-        case 'F':
-            return 'Farm Vehicle (tractor)';
-        case 'G':
-            return 'Grid Square (6 digit)';
-        case 'H':
-            return 'Hotel (blue bed symbol)';
-        case 'I':
-            return 'TCP/IP network station';
-        case 'J':
-            return 'No Symbol';
-        case 'K':
-            return 'School';
-        case 'L':
-            return 'Logged-ON user (or PC User)';
-        case 'M':
-            return 'MacAPRS';
-        case 'N':
-            return 'NTS Station';
-        case 'O':
-            return 'Balloon';
-        case 'P':
-            return 'Police';
-        case 'Q':
-            return 'TBD';
-        case 'R':
-            return 'Recreational Vehicle';
-        case 'S':
-            return 'Shuttle';
-        case 'T':
-            return 'SSTV';
-        case 'U':
-            return 'Bus';
-        case 'V':
-            return 'ATV';
-        case 'W':
-            return 'National Weather Service';
-        case 'X':
-            return 'Helicopter';
-        case 'Y':
-            return 'Yacht (sail)';
-        case 'Z':
-            return 'WinAPRS';
-        case '[':
-            return 'Human/Person';
-        case '\\':
-            return 'Triangle (DF station)';
-        case ']':
-            return 'Mail/PostOffice';
-        case '^':
-            return 'Large Aircraft';
-        case '_':
-            return 'Weather Station';
-        case '`':
-            return 'Dish Antenna';
-        case 'a':
-            return 'Ambulance';
-        case 'b':
-            return 'Bike';
-        case 'c':
-            return 'Incident Command Post';
-        case 'd':
-            return 'Fire Station';
-        case 'e':
-            return 'Horse (equestrian)';
-        case 'f':
-            return 'Fire Truck';
-        case 'g':
-            return 'Glider';
-        case 'h':
-            return 'Hospital';
-        case 'i':
-            return 'IOTA (islands on the air)';
-        case 'j':
-            return 'Jeep';
-        case 'k':
-            return 'Truck';
-        case 'l':
-            return 'Laptop';
-        case 'm':
-            return 'Mic-E Repeater';
-        case 'n':
-            return 'Node (black bulls-eye)';
-        case 'o':
-            return 'EOC';
-        case 'p':
-            return 'Rover (puppy, or dog)';
-        case 'q':
-            return 'Grid square';
-        case 'r':
-            return 'Antenna';
-        case 's':
-            return 'Power Boat';
-        case 't':
-            return 'Truck Stop';
-        case 'u':
-            return 'Truck (18 wheeler)';
-        case 'v':
-            return 'Van';
-        case 'w':
-            return 'Water Station';
-        case 'x':
-            return 'xAPRS (Unix)';
-        case 'y':
-            return 'Yagi @ QTH';
-        case 'z':
-            return 'Shelter';
-        case '{':
-            return 'No Symbol';
-        case '|':
-            return 'TNC Stream Switch';
-        case '}':
-            return 'No Symbol';
-        case '~':
-            return 'TNC Stream Switch';
-        }
-
-    } else {
-        switch ($symbol) {
-        case '!':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Emergency!';
-            case 'E':
-                return 'ELT or EPIRB';
-            case 'V':
-                return 'Volcanic Eruption or Lava';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Emergency (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '"':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case '#':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Digipeater';
-            case 'A':
-                return 'Digipeater (An Alt-Freq input digi)';
-            case 'R':
-                return 'Digipeater (RELAY only)';
-            case 'W':
-                return 'Digipeater (RELAY and WIDE)';
-            case 'T':
-                return 'Digipeater (PacComm RELAY,WIDE and TRACE)';
-            case 'N':
-                return 'Digipeater (WIDEn-N and relay,wide,trace)';
-            case 'I':
-                return 'Digipeater (digipeater is also an IGate)';
-            case 'L':
-                return 'Digipeater (LIMITED New n-N Paradigm digi)';
-            case 'S':
-                return 'Digipeater (New n-N Paradigm digi)';
-            case 'P':
-                return 'Digipeater (PacComm, New n-N Paradigm)';
-            case 'U':
-                return 'Digipeater (UI-DIGI firmware)';
-            case 'D':
-                return 'Digipeater (DIGI_NED)';
-            case '1':
-                return 'Digipeater (Fill-in digi, 1-hop limit)';
-            case 'X':
-                return 'Digipeater (Experimental)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Digipeater (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '$':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Bank or ATM';
-            case 'U':
-                return 'ATM (US dollars)';
-            case 'L':
-                return 'ATM (Brittish Pound)';
-            case 'Y':
-                return 'ATM (Japanese Yen)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Bank or ATM (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case '%':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Power/Energy';
-            case 'C':
-                return 'Power/Energy (Coal)';
-            case 'E':
-                return 'Power/Energy (Emergency)';
-            case 'G':
-                return 'Power/Energy (Geothermal)';
-            case 'H':
-                return 'Power/Energy (Hydroelectric)';
-            case 'N':
-                return 'Power/Energy (Nuclear)';
-            case 'P':
-                return 'Power/Energy (Portable)';
-            case 'S':
-                return 'Power/Energy (Solar)';
-            case 'T':
-                return 'Power/Energy (Turbine)';
-            case 'W':
-                return 'Power/Energy (Wind)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Power/Energy';
-                } else {
-                    return null;
-                }
-            }
-        case '&':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Gateway';
-            case 'I':
-                return 'Igate (Generic)';
-            case 'R':
-                return 'Receive only IGate';
-            case 'P':
-                return 'PSKmail node';
-            case 'T':
-                return 'TX Igate (with path set to 1 hop)';
-            case 'W':
-                return 'WIRES-X';
-            case '2':
-                return 'TX igate (with path set to 2 hops)';
-            case 'D':
-                return 'D-STAR (D-PRS IGate)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Gateway (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '\'':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Incident site (Airplane Crash Site)';
-            case 'A':
-                return 'Incident site (Automobile crash site)';
-            case 'H':
-                return 'Incident site (Hazardous incident)';
-            case 'M':
-                return 'Incident site (Multi-Vehicle crash site)';
-            case 'P':
-                return 'Incident site (Pileup)';
-            case 'T':
-                return 'Incident site (Truck wreck)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Incident site';
-                } else {
-                    return null;
-                }
-            }
-        case '(':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Cloudy';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Cloudy';
-                } else {
-                    return null;
-                }
-            }
-
-        case ')':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Firenet MEO (Modis Earth Observatory)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Firenet MEO (Modis Earth Observatory)';
-                } else {
-                    return null;
-                }
-            }
-
-        case '*':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Snow';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Snow';
-                } else {
-                    return null;
-                }
-            }
-
-        case '+':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Church';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Church';
-                } else {
-                    return null;
-                }
-            }
-
-        case ',':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Scout (Girl Scout)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Scout (Girl Scout)';
-                } else {
-                    return null;
-                }
-            }
-
-        case '-':
-            switch ($symbolTable) {
-            case '\\':
-                return 'House (HF)';
-            case '5':
-                return 'House (50 Hz mains power)';
-            case '6':
-                return 'House (60 Hz mains power)';
-            case 'B':
-                return 'House (Backup Battery Power)';
-            case 'C':
-                return 'House (Ham club)';
-            case 'E':
-                return 'House (Emergency power)';
-            case 'G':
-                return 'House (Geothermal)';
-            case 'H':
-                return 'House (Hydro powered)';
-            case 'O':
-                return 'House (Operator Present)';
-            case 'S':
-                return 'House (Solar Powered)';
-            case 'W':
-                return 'House (Wind powered)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'House (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case '.':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Unknown Position';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Unknown Position';
-                } else {
-                    return null;
-                }
-            }
-
-        case '/':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Waypoint Destination';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Waypoint Destination';
-                } else {
-                    return null;
-                }
-            }
-
-        case '0':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Circle';
-            case 'A':
-                return 'Allstar Node';
-            case 'E':
-                return 'Echolink Node';
-            case 'I':
-                return 'IRLP repeater';
-            case 'S':
-                return 'Staging Area';
-            case 'V':
-                return 'Echolink and IRLP (VOIP)';
-            case 'W':
-                return 'WIRES (Yaesu VOIP)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Circle (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-        case '6':
-        case '7':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case '8':
-            switch ($symbolTable) {
-            case '\\':
-                return 'No Symbol';
-            case '8':
-                return '802.11 network node';
-            case 'G':
-                return '802.11G';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case '9':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Gas Station';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Gas Station';
-                } else {
-                    return null;
-                }
-            }
-
-        case ':':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Hail (weather condition)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Hail (weather condition)';
-                } else {
-                    return null;
-                }
-            }
-
-        case ';':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Portable, Park or Picnic';
-            case 'F':
-                return 'Field Day';
-            case 'I':
-                return 'Islands on the air';
-            case 'S':
-                return 'Summits on the air';
-            case 'W':
-                return 'WOTA';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Portable';
-                } else {
-                    return null;
-                }
-            }
-
-        case '<':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Advisory (single gale flag)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Advisory (single gale flag)';
-                } else {
-                    return null;
-                }
-            }
-
-        case '=':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case '>':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Car';
-            case '1':
-            case '2':
-            case '3':
-            case '4':
-            case '5':
-            case '6':
-            case '7':
-            case '8':
-            case '9':
-            case '0':
-                return 'Numbered Car (' . $symbolTable . ')';
-            case 'E':
-                return 'Car (Electric)';
-            case 'H':
-                return 'Car (Hybrid)';
-            case 'S':
-                return 'Car (Solar powered)';
-            case 'V':
-                return 'Car (GM Volt)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Car (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case '?':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Info Kiosk';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Info Kiosk';
-                } else {
-                    return null;
-                }
-            }
-
-        case '@':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Hurricane/Tropical storm';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Hurricane/Tropical storm (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'A':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Box';
-            case '9':
-                return 'Mobile DTMF user';
-            case '7':
-                return 'HT DTMF user';
-            case 'H':
-                return 'House DTMF user';
-            case 'E':
-                return 'Echolink DTMF report';
-            case 'I':
-                return 'IRLP DTMF report';
-            case 'R':
-                return 'RFID report';
-            case 'A':
-                return 'AllStar DTMF report';
-            case 'D':
-                return 'D-Star report';
-            case 'X':
-                return 'OLPC Laptop XO';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Box (' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 'B':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Blowing snow';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Blowing snow';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'C':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Coast Guard';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Coast Guard';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'D':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Depot'; // drizzle rain moved to ' ovlyD
-            case 'A':
-                return 'Airport';
-            case 'F':
-                return 'Ferry Landing';
-            case 'H':
-                return 'Heloport';
-            case 'R':
-                return 'Rail Depot';
-            case 'B':
-                return 'Bus Depot';
-            case 'L':
-                return 'LIght Rail or Subway';
-            case 'S':
-                return 'Seaport Depot';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Depot (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 'E':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Smoke';
-            case 'H':
-                return 'Haze';
-            case 'S':
-                return 'Smoke';
-            case 'B':
-                return 'Blowing Snow'; // was \B
-            case 'D':
-                return 'Blowing Dust or Sand'; // was \b
-            case 'F':
-                return 'Fog'; // was \{
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Smoke (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 'F':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Freezing rain';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Freezing rain';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'G':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Snow Shower';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Snow Shower';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'H':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Haze';
-            case 'R':
-                return 'Radiation detector';
-            case 'W':
-                return 'Hazardous Waste';
-            case 'X':
-                return 'Skull&Crossbones';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Hazard (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 'I':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Rain Shower';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Rain Shower';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'J':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Lightning';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Lightning';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'K':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Kenwood HT';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Kenwood HT';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'L':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Lighthouse';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Lighthouse (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'M':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'N':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Navigation Buoy';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Navigation Buoy (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'O':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Rocket (amateur)';
-            case 'B':
-                return 'Blimp (non-rigid airship)';
-            case 'M':
-                return 'Manned Balloon';
-            case 'T':
-                return 'Teathered Balloon';
-            case 'C':
-                return 'Constant Pressure Balloon - Long duration';
-            case 'R':
-                return 'Rocket bearing Balloon (Rockoon)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Balloon (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 'P':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Parking';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Parking (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'Q':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Quake';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Quake';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'R':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Restaurant (generic)';
-            case '7':
-                return 'Restaurant (7/11)';
-            case 'K':
-                return 'Restaurant (KFC)';
-            case 'M':
-                return 'Restaurant (McDonalds)';
-            case 'T':
-                return 'Restaurant (Taco Bell)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Restaurant (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 'S':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Satellite/Pacsat';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Satellite/Pacsat (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'T':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Thunderstorm';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Thunderstorm (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'U':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Sunny';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Sunny (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'V':
-            switch ($symbolTable) {
-            case "\\":
-                return 'VORTAC Navigation Aid';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'VORTAC Navigation Aid';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'W':
-            switch ($symbolTable) {
-            case "\\":
-                return 'National Weather Service';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'National Weather Service (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'X':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Pharmacy';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Pharmacy';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'Y':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Radio/APRS Device';
-            case 'A':
-                return 'Alinco';
-            case 'B':
-                return 'Byonics';
-            case 'I':
-                return 'Icom';
-            case 'K':
-                return 'Kenwood';
-            case 'Y':
-                return 'Yaesu/Standard';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Radio/APRS Device'; // or "No Symbol"?
-                } else {
-                    return null;
-                }
-            }
-        case 'Z':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case '[':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Wall Cloud (or pedestal cloud)';
-            case 'B':
-                return 'Baby on board (stroller, pram etc)';
-            case 'S':
-                return 'Skier';
-            case 'R':
-                return 'Runner';
-            case 'H':
-                return 'Hiker';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Human/Person (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '\\':
-            switch ($symbolTable) {
-            case '\\':
-                return 'No Symbol';
-            case 'A':
-                return 'Avmap G5';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-        case ']':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case '^':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Aircraft'; // top-view originally intended to point in direction of flight
-            case 'A':
-                return 'Aircraft (A = Autonomous)';
-            case 'D':
-                return 'Aircraft (D = Drone)';
-            case 'E':
-                return 'Aircraft (E = Electric aircraft)';
-            case 'G':
-                return 'Aircraft (G = Glider aircraft)';
-            case 'H':
-                return 'Aircraft (H = Hovercraft)';
-            case 'J':
-                return 'Aircraft (J = JET)';
-	    case 'L':
-                return 'Paraglider'; // Not official definition
-            case 'M':
-                return 'Aircraft (M = Missle)';
-            case 'P':
-                return 'Aircraft (P = Propeller)';
-            case 'R':
-                return 'Aircraft (R = Remotely Piloted)';
-            case 'S':
-                return 'Aircraft (S = Solar Powered)';
-            case 'V':
-                return 'Aircraft (V = Vertical takeoff)';
-            case 'X':
-                return 'Aircraft (X = Experimental)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Aircraft (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '_':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Weather Station';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Weather Station (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '`':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Rain';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Rain';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'a':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Red Diamond';
-            case 'A':
-                return 'ARES';
-            case 'D':
-                return 'D-STAR (previously Dutch ARES)';
-            case 'G':
-                return 'RSGB Radio Society of Great Brittan';
-            case 'R':
-                return 'RACES';
-            case 'S':
-                return 'SATERN Salvation Army';
-            case 'W':
-                return 'WinLink';
-            case 'Y':
-                return 'C4FM Yaesu repeaters';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Red Diamond (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'b':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Dust blowing';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Dust blowing';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'c':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Civil Defense';
-            case 'D':
-                return 'Decontamination';
-            case 'R':
-                return 'RACES';
-            case 'S':
-                return 'SATERN mobile canteen';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Civil Defense (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'd':
-            switch ($symbolTable) {
-            case "\\":
-                return 'DX Spot';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'DX Spot';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'e':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Sleet';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Sleet';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'f':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Funnel Cloud';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Funnel Cloud';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'g':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Gale warning flags';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Gale warning flags (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'h':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Store/Ham Store';
-            case 'F':
-                return 'Hamfest';
-            case 'H':
-                return 'Home Dept etc..';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Other store (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 'i':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Point of interest';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Point of interest (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'j':
-            switch ($symbolTable) {
-            case "\\":
-                return 'WorkZone';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'WorkZone';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'k':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Special Vehicle (SUV)';
-            case '4':
-                return 'Special Vehicle (4x4)';
-            case 'A':
-                return 'Special Vehicle (ATV)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Special Vehicle (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'l':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'm':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Milepost';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Milepost';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'n':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Red Triangle';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Red Triangle (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'o':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Small Circle';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Small Circle (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'p':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Partly Cloudy';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Partly Cloudy';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'q':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'r':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Restrooms';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Restrooms';
-                } else {
-                    return null;
-                }
-            }
-
-        case 's':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Ship/Boat';
-            case '6':
-                return 'Ship/Boat (Shipwreck "deep6")';
-            case 'B':
-                return 'Ship/Boat (Pleasure Boat)';
-            case 'C':
-                return 'Ship/Boat (Cargo)';
-            case 'D':
-                return 'Ship/Boat (Diving)';
-            case 'E':
-                return 'Ship/Boat (Emergency or Medical transport)';
-            case 'F':
-                return 'Ship/Boat (Fishing)';
-            case 'H':
-                return 'Ship/Boat (High-speed Craft)';
-            case 'J':
-                return 'Ship/Boat (Jet Ski)';
-            case 'L':
-                return 'Ship/Boat (Law enforcement)';
-            case 'M':
-                return 'Ship/Boat (Miltary)';
-            case 'O':
-                return 'Ship/Boat (Oil Rig)';
-            case 'P':
-                return 'Ship/Boat (Pilot Boat)';
-            case 'Q':
-                return 'Ship/Boat (Torpedo)';
-            case 'S':
-                return 'Ship/Boat (Search and Rescue)';
-            case 'T':
-                return 'Ship/Boat (Tug)';
-            case 'U':
-                return 'Ship/Boat (Underwater ops or submarine)';
-            case 'W':
-                return 'Ship/Boat (Wing-in-Ground effect or Hovercraft)';
-            case 'X':
-                return 'Ship/Boat (Passenger, Ferry)';
-            case 'Y':
-                return 'Ship/Boat (Sailing, large ship)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Ship/Boat (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-        case 't':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Tornado';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Tornado';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'u':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Truck';
-            case 'B':
-                return 'Truck (Buldozer/construction/Backhoe)';
-            case 'G':
-                return 'Truck (Gas)';
-            case 'P':
-                return 'Truck (Plow or SnowPlow)';
-            case 'T':
-                return 'Truck (Tanker)';
-            case 'C':
-                return 'Truck (Chlorine Tanker)';
-            case 'H':
-                return 'Truck (Hazardous)';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Truck (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'v':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Van';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Van (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'w':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Flooding';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Flooding';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'x':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'y':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Skywarn';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Skywarn';
-                } else {
-                    return null;
-                }
-            }
-
-        case 'z':
-            switch ($symbolTable) {
-            case '\\':
-                return 'Shelter';
-            case 'C':
-                return 'Clinic';
-            case 'G':
-                return 'Government building';
-            case 'M':
-                return 'Morgue';
-            case 'T':
-                return 'Triage';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Building (with overlay ' . $symbolTable . ')';
-                } else {
-                    return null;
-                }
-            }
-
-        case '{':
-            switch ($symbolTable) {
-            case "\\":
-                return 'Fog';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'Fog';
-                } else {
-                    return null;
-                }
-            }
-
-        case '|':
-            switch ($symbolTable) {
-            case "\\":
-                return 'TNC Stream Switch';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'TNC Stream Switch';
-                } else {
-                    return null;
-                }
-            }
-
-        case '}':
-            switch ($symbolTable) {
-            case "\\":
-                return 'No Symbol';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'No Symbol';
-                } else {
-                    return null;
-                }
-            }
-
-        case '~':
-            switch ($symbolTable) {
-            case "\\":
-                return 'TNC Stream Switch';
-            default:
-                if ($includeUndefinedOverlay) {
-                    return 'TNC Stream Switch';
-                } else {
-                    return null;
-                }
-            }
-        }
-    }
-}
-
-
-/**
- * Returnes true if we may show data older than 24h
- *
- * @return boolean
- */
-function isAllowedToShowOlderData() {
-    $isAllowedToShowOlderData = false;
-    $config = parse_ini_file(ROOT . '/../config/trackdirect.ini', true);
-
-    if (isset($config['websocket_server'])) {
-        if (isset($config['websocket_server']['allow_time_travel'])) {
-            if ($config['websocket_server']['allow_time_travel'] == '1') {
-                $isAllowedToShowOlderData = true;
-            }
-        }
-
-        if (isset($config['websocket_server']['aprs_source_id1']) && $config['websocket_server']['aprs_source_id1'] == 5) {
-            // Data source is OGN, disable time travel (server will block it anyway)
-            $isAllowedToShowOlderData = false;
-        }
-
-        if (isset($config['websocket_server']['aprs_source_id2']) && $config['websocket_server']['aprs_source_id2'] == 5) {
-            // Data source is OGN, disable time travel (server will block it anyway)
-            $isAllowedToShowOlderData = false;
-        }
-    }
-
-    return $isAllowedToShowOlderData;
-}
-
-/**
- * Returnes valid view path
- *
- * @param {string} $request
- * @return string
- */
-function getView($request) {
-    $parts = explode("/", trim($request, '/'));
-    if (count($parts) >= 2) {
-        $view = array_pop($parts);
-        $dir = array_pop($parts);
-        if ($view && $dir == 'views') {
-            $path = ROOT . '/public/views';
-            foreach (scandir($path) as $file) {
-                if ($file == $view) {
-                    return "$path/$view";
-                }
-            }
-        }
-    }
-    return null;
-}
-
-/**
- * Returnes an assoc array containing website related values from config
- *
- * @param {string} $key
- * @return string
- * */
-function getWebsiteConfig($key) {
-    $config = parse_ini_file(ROOT . '/../config/trackdirect.ini', true);
-    if (isset($config['website']) && isset($config['website'][$key])) {
-        return $config['website'][$key];
-    }
-
-    return null;
-}
-
-/**
- * Convert coordinate to pixel position in heatmap image
- *
- * @param {float} $lat
- * @param {int} $zoom
- * @param {int} $imageTileSize
- * @return int
- */
-function getLatPixelCoordinate($lat, $zoom, $imageTileSize) {
-    $pixelGlobeSize = $imageTileSize * pow(2, $zoom);
-    $yPixelsToRadiansRatio = $pixelGlobeSize / (2 * M_PI);
-    $halfPixelGlobeSize = $pixelGlobeSize / 2;
-    $pixelGlobeCenterY = $halfPixelGlobeSize;
-    $degreesToRadiansRatio = 180 / M_PI;
-    $siny = sin($lat * M_PI / 180);
-
-    # Truncating to 0.9999 effectively limits latitude to 89.189. This is
-    # about a third of a tile past the edge of the world tile.
-    if ($siny < -0.9999) {
-        $siny = -0.9999;
-    }
-    if ($siny > 0.9999) {
-        $siny = 0.9999;
-    }
-    $latY = round($pixelGlobeCenterY + 0.5 * log((1 + $siny) / (1 - $siny)) * -$yPixelsToRadiansRatio);
-    return $latY;
-}
-
-/**
- * Convert coordinate to pixel position in heatmap image
- *
- * @param {float} $lng
- * @param {int} $zoom
- * @param {int} $imageTileSize
- * @return int
- */
-function getLngPixelCoordinate($lng, $zoom, $imageTileSize) {
-    $scale = 1 << $zoom;
-    $lngX = floor($imageTileSize * (0.5 + $lng / 360) * $scale);
-    return $lngX;
-}
-
-/**
- * Convert pixel position in heatmap image to coordinate
- *
- * @param {float} $latPixelCoord
- * @param {int} $zoom
- * @param {int} $imageTileSize
- * @return float
- */
-function getLatFromLatPixelCoordinate($latPixelCoord, $zoom, $imageTileSize) {
-    $pixelGlobeSize = $imageTileSize * pow(2, $zoom);
-    $yPixelsToRadiansRatio = $pixelGlobeSize / (2 * M_PI);
-    $halfPixelGlobeSize = $pixelGlobeSize / 2;
-    $pixelGlobeCenterY = $halfPixelGlobeSize;
-    $degreesToRadiansRatio = 180 / M_PI;
-    $lat = (2 * atan(exp(($latPixelCoord - $pixelGlobeCenterY) / -$yPixelsToRadiansRatio)) - M_PI / 2) * $degreesToRadiansRatio;
-    return $lat;
-}
-
-/**
- * Convert pixel position in heatmap image to coordinate
- *
- * @param {float} $lngPixelCoord
- * @param {int} $zoom
- * @param {int} $imageTileSize
- * @return float
- */
-function getLngFromLngPixelCoordinate($lngPixelCoord, $zoom, $imageTileSize) {
-    $scale = 1 << $zoom;
-    $lng = ((($lngPixelCoord / $scale) / $imageTileSize) - 0.5) * 360;
-    return $lng;
-}
-
diff --git a/htdocs/includes/database.class.php b/htdocs/includes/database.class.php
deleted file mode 100644
index 4030cb8d8f684f67e93c0aca480fb4f620647eba..0000000000000000000000000000000000000000
--- a/htdocs/includes/database.class.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-class Database
-{
-
-    private $_existingTables;
-    private static $_singletonInstance = null;
-
-    /**
-     * The constructor
-     */
-    public function __construct()
-    {
-        $this->_existingTables = Array();
-    }
-
-    /**
-     * Returnes an initiated Database
-     *
-     * @return Database
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new Database();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Returnes true if specified table exists in database
-     *
-     * @param  string $tablename
-     * @return boolean
-     */
-    public function checkTableExists($tablename)
-    {
-
-        if (!isset($this->_existingTables[$tablename])) {
-
-            $sql = "SELECT COUNT(*) c
-                FROM information_schema.tables
-                WHERE table_name = ?";
-
-            $pdo = PDOConnection::getInstance();
-            $stmt = $pdo->prepareAndExec($sql, [str_replace('\'', '\'\'', $tablename)]);
-
-            $record = $stmt->fetch(PDO::FETCH_ASSOC);
-            if ($record && $record['c'] > 0) {
-                $this->_existingTables[$tablename] = true;
-            } else {
-                $this->_existingTables[$tablename] = false;
-            }
-        }
-
-        return $this->_existingTables[$tablename];
-    }
-}
diff --git a/htdocs/includes/kml.class.php b/htdocs/includes/kml.class.php
deleted file mode 100644
index cc448be162f732f464c0069ae1da45f2bbb3977a..0000000000000000000000000000000000000000
--- a/htdocs/includes/kml.class.php
+++ /dev/null
@@ -1,302 +0,0 @@
-<?php
-
-class Kml {
-
-    private $_class;
-    private static $_singletonInstance = null;
-
-    public function __construct($class = 'Kml')
-    {
-        $this->_class = $class;
-    }
-
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new Kml();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    public function getKmlDomDocument($station, $packets, $startTimestamp, $endTimestamp, $color)
-    {
-        $dom = new DOMDocument('1.0', 'UTF-8');
-        $node = $dom->createElementNS('http://earth.google.com/kml/2.2', 'kml');
-        $parNode = $dom->appendChild($node);
-
-        $dnode = $dom->createElement('Document');
-        $docNode = $parNode->appendChild($dnode);
-
-        if (!empty($packets)) {
-            $lastPacket = $packets[count($packets) - 1];
-            $makrerStyleNode = $this->getMarkerStyleNode($dom, $lastPacket, $color);
-            $docNode->appendChild($makrerStyleNode);
-
-            $folderNode = $dom->createElement('Folder');
-            $docNode->appendChild($folderNode);
-
-            $nameNode = $dom->createElement('name', $station->name
-                . ' (' . $startTimestamp . ' - ' . $endTimestamp . ')');
-            $folderNode->appendChild($nameNode);
-
-            $stationNode = $this->getStationNode($dom, $station, $packets);
-            $folderNode->appendChild($stationNode);
-        }
-        return $dom;
-    }
-
-    public function formatKmlContent($kmlContent, $tab="\t", $tabCount = 1)
-    {
-        $kmlContent = preg_replace('/(>)(<)(\/*)/', "$1\n$2$3", $kmlContent);
-
-        $token = strtok($kmlContent, "\n");
-        $result = '';
-        $pad = 0;
-        $matches = array();
-
-        while ($token !== false)
-        {
-            $token = trim($token);
-            if (preg_match('/.+<\/\w[^>]*>$/', $token, $matches)) $indent=0;
-            elseif (preg_match('/^<\/\w/', $token, $matches))
-            {
-                $pad--;
-                if($indent>0) $indent=0;
-            }
-            elseif (preg_match('/^<\w[^>]*[^\/]>.*$/', $token, $matches))
-            {
-                $indent=1;
-            }
-            else $indent = 0;
-
-            $line = str_pad($token, strlen($token)+($pad*$tabCount), $tab, STR_PAD_LEFT);
-            $result .= $line."\n";
-            $token = strtok("\n");
-            $pad += $indent;
-        }
-
-        return $result;
-    }
-
-    private function getMarkerStyleNode($dom, $packet, $color)
-    {
-        $styleNode = $dom->createElement('Style');
-        $styleNode->setAttribute('id', 'markerStyle' . $packet->stationId);
-
-        $iconstyleNode = $dom->createElement('IconStyle');
-        $iconNode = $dom->createElement('Icon');
-        $href = $dom->createElement('href', $this->getWebsiteURL() . $packet->getIconFilePath(null, null, true));
-        $iconNode->appendChild($href);
-        $iconstyleNode->appendChild($iconNode);
-        $styleNode->appendChild($iconstyleNode);
-
-        $linestyleNode = $dom->createElement('LineStyle');
-
-        if (preg_match('/^[A-F0-9]{8}$/', $color)) {
-            $colorNode = $dom->createElement('color', $color);
-            $linestyleNode->appendChild($colorNode);
-        } else {
-            $colorNode = $dom->createElement('color', 'ff55ff55');
-            $linestyleNode->appendChild($colorNode);
-        }
-
-        $widthNode = $dom->createElement('width', '5');
-        $linestyleNode->appendChild($widthNode);
-        $styleNode->appendChild($linestyleNode);
-
-        return $styleNode;
-    }
-
-    private function getStationNode($dom, $station, $packets) {
-        $lastPacket = $packets[count($packets) - 1];
-
-        $placeNode = $dom->createElement('Placemark');
-        $placeNode->setAttribute('id', 'station-' . $station->getId());
-        $styleUrl = $dom->createElement('styleUrl', '#markerStyle' . $station->getId());
-        $placeNode->appendChild($styleUrl);
-
-        $nameNode = $dom->createElement('name', htmlspecialchars($station->name));
-        $placeNode->appendChild($nameNode);
-
-        $description = $this->getPacketNodeDescription($station, $packets);
-        if ($description !== null) {
-            $node = $dom->createElement('description', ($description));
-            $placeNode->appendChild($node);
-        }
-
-        $multiGeometryNode = $this->getMultiGeometryNode($dom, $station, $packets);
-        $placeNode->appendChild($multiGeometryNode);
-
-        return $placeNode;
-    }
-
-    private function getMultiGeometryNode($dom, $station, $packets) {
-        $lastPacket = $packets[count($packets) - 1];
-
-        $multiGeometryNode = $dom->createElement('MultiGeometry');
-
-        $altitudeMode = 'clampToGround';
-        if ($this->isFlyingObject($station, $packets)) {
-            $altitudeMode = 'absolute';
-        }
-
-        $pointNode = $this->getPacketPointNode($dom, $lastPacket, $altitudeMode);
-        $multiGeometryNode->appendChild($pointNode);
-
-        if (count($packets) > 1) {
-            $tailLineNode = $this->getTailLineNode($dom, $packets, $altitudeMode);
-            $multiGeometryNode->appendChild($tailLineNode);
-        }
-
-        return $multiGeometryNode;
-    }
-
-    private function getPacketPointNode($dom, $packet, $altitudeMode)
-    {
-        $pointNode = $dom->createElement('Point');
-
-        // Creates a coordinates element and gives it the value of the lng and lat columns from the results.
-        if ($packet->altitude !== null) {
-            $coorStr = round($packet->longitude, 5) . ','  . round($packet->latitude, 5) . ',' . round($packet->altitude, 2);
-        } else {
-            $coorStr = round($packet->longitude, 5) . ','  . round($packet->latitude, 5);
-        }
-
-        $altitudeModeNode = $dom->createElement('altitudeMode', $altitudeMode);
-        $pointNode->appendChild($altitudeModeNode);
-
-        $coorNode = $dom->createElement('coordinates', $coorStr);
-        $pointNode->appendChild($coorNode);
-        return $pointNode;
-    }
-
-    private function getTailLineNode($dom, $packets, $altitudeMode)
-    {
-        $lineStringNode = $dom->createElement('LineString');
-
-        $lineCoorStr = '';
-        foreach ($packets as $packet) {
-            if ($packet->altitude !== null) {
-                $lineCoorStr .= ' ' . round($packet->longitude, 5) . ','  . round($packet->latitude, 5) . ',' . round($packet->altitude, 2);
-            } else {
-                $lineCoorStr .= ' ' . round($packet->longitude, 5) . ','  . round($packet->latitude, 5);
-            }
-        }
-
-        $altitudeModeNode = $dom->createElement('altitudeMode', $altitudeMode);
-        $lineStringNode->appendChild($altitudeModeNode);
-
-        $tessellateNode = $dom->createElement('tessellate', '1');
-        $lineStringNode->appendChild($tessellateNode);
-
-        $extrudeNode = $dom->createElement('extrude', '1');
-        $lineStringNode->appendChild($extrudeNode);
-
-        $lineCoorNode = $dom->createElement('coordinates', $lineCoorStr);
-        $lineStringNode->appendChild($lineCoorNode);
-
-        return $lineStringNode;
-    }
-
-    private function getPacketNodeDescription($station, $packets)
-    {
-        $description = array();
-        $description[] = '<a href="' . $this->getWebsiteURL() . '?sid=' . $station->getId() . '" target="_blank">Track ' . $station->name . '</a>';
-
-        if (!empty($packets)) {
-            $firstPacket = $packets[0];
-            $lastPacket = $packets[count($packets) - 1];
-
-            $description[] = '';
-            if (count($packets) == 1) {
-                $description[] = '<span style="color: grey;">' . strftime('%F %T %Z',$lastPacket->timestamp) . '</span>';
-            } else {
-                $description[] = '<span style="color: grey;">' . strftime('%F %T %Z',$firstPacket->timestamp) . ' -<br>' . strftime('%F %T %Z',$lastPacket->timestamp) . '</span>';
-            }
-
-            if ($lastPacket->comment != null) {
-                $description[] = '';
-                $description[] = '<span style="font-style: italic; color: #754D08;">' . htmlspecialchars($lastPacket->comment) . '</span>';
-            }
-
-            if ($lastPacket->speed !== null) {
-                $description[] = '';
-                $description[] = 'Latest speed: <span style="color: blue;">' . $lastPacket->speed . 'kmh' . '</span>';
-
-                if ($lastPacket->altitude !== null) {
-                    $description[] = 'Latest altitude: <span style="color: blue;">' . $lastPacket->altitude . 'm ' . '</span>';
-                }
-
-                if ($lastPacket->course !== null) {
-                    $description[] = 'Latest course: <span style="color: blue;">' . $lastPacket->course . '°' . '</span>';
-                }
-            }
-        }
-
-        return '<div style="margin-right: 45px;">' . implode('<br/>', $description) . '</div>';
-    }
-
-    private function isClientRequestingToOften()
-    {
-        $currentMinuteTs = (time() - (time() % 60));
-        $limitedNumberOfRequestsPerMinute = 60;
-        $logFile = 'tmp/export_kml_ip_' . $_SERVER['REMOTE_ADDR'] . '_' . $currentMinuteTs;
-
-        // Create dir if missing
-        if (!file_exists('tmp')) {
-            mkdir('tmp');
-        }
-
-        // Delete old log-files
-        $files = glob('tmp/*');
-        foreach ($files as $file) {
-            if (is_file($file) && !stristr($file, '_' . $currentMinuteTs)) {
-                unlink($file);
-            }
-        }
-
-        // Log request
-        $log = fopen($logFile, "a");
-        fwrite($log,'0');
-        fclose($log);
-
-        // Check limit
-        if (filesize($logFile) > $limitedNumberOfRequestsPerMinute) {
-            return true;
-        }
-
-        return false;
-    }
-
-    private function isFlyingObject($station, $packets)
-    {
-        if (count($packets) <= 1) {
-            // A station with only one packet is probably stationary
-            return false;
-        }
-
-        if ($station->sourceId == 4) {
-            // All gliderradar stations with a tail is probably flying
-            return true;
-        }
-
-        foreach ($packets as $packet) {
-            if ($packet->altitude !== null && $packet->altitude > 1000) {
-                // If altitude is above 1000m it is probably flying
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    private function getWebsiteURL()
-    {
-        return sprintf(
-            "%s://%s",
-            isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
-            $_SERVER['SERVER_NAME']
-        );
-    }
-}
diff --git a/htdocs/includes/models/model.class.php b/htdocs/includes/models/model.class.php
deleted file mode 100644
index 4c3b9de6ba2f7a756c5ae2952a020242abd817af..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/model.class.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-class Model
-{
-
-    protected $_id;
-    protected $_values;
-
-    public function __construct($id)
-    {
-        $this->_id = $id;
-    }
-
-    /**
-     * Returns id of the object
-     *
-     * @return int
-     */
-    public function getId()
-    {
-        return $this->_id;
-    }
-
-    /**
-     * Returns true if object exists in database
-     *
-     * @return boolean
-     */
-    public function isExistingObject()
-    {
-        if ($this->_id != null) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Makes it possible to get $object->field
-     *
-     * @param string $key
-     */
-    public function __get($key)
-    {
-        $key = $this->_camelize($key);
-
-        if (isset($this->_values[$key])) {
-            return $this->_values[$key];
-        } else {
-            return null;
-        }
-    }
-
-
-    /**
-     * Makes it possible to set $object->field
-     *
-     * @param string $key
-     * @param mixed
-     */
-    public function __set($key, $value)
-    {
-        $this->_values[$this->_camelize($key)] = $value;
-    }
-
-
-    /**
-     * Makes it possible to check if $object->field is set
-     *
-     * @param string $key
-     */
-    public function __isset($key)
-    {
-        if (isset($this->_values[$key])) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Makes it possible to unset $object->field
-     *
-     * @param string $key
-     */
-    public function __unset($key)
-    {
-        if (isset($this->_values[$key])) {
-            unset($this->_values[$key]);
-        }
-    }
-
-    /**
-     * Update object from array, usually a db record
-     * column-names with underscores will be converted to camelcase
-     *
-     * @param array $array
-     */
-    public function updateObjectFromArray($array)
-    {
-        foreach ($array as $column => $value) {
-            $this->_values[$this->_camelize($column)] = $value;
-        }
-    }
-
-    /**
-     * Convert underscore separated variables to camelcaps
-     * (for some reason I prefer underscore in db-columns but I prefer camelCaps in code...)
-     *
-     * @param  string $input
-     * @return string
-     */
-    private function _camelize($input)
-    {
-        return lcfirst(str_replace('_', '', ucwords($input, '_')));
-    }
-}
diff --git a/htdocs/includes/models/packet.class.php b/htdocs/includes/models/packet.class.php
deleted file mode 100644
index 3d14372851a01fec4dbc7976ca3103e591bc498a..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/packet.class.php
+++ /dev/null
@@ -1,375 +0,0 @@
-<?php
-
-class Packet extends Model
-{
-
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-
-    /**
-     * Returnes icon http path
-     *
-     * @param  int $scaleWidth
-     * @param  int $scaleHeight
-     * @return string
-     */
-    public function getIconFilePath($scaleWidth = null, $scaleHeight = null)
-    {
-        if (strlen($this->symbol) >= 1 && strlen($this->symbolTable) >= 1) {
-            $symbolAsciiValue = ord(substr($this->symbol, 0, 1));
-            $symbolTableAsciiValue = ord(substr($this->symbolTable, 0, 1));
-        } else {
-            // Default values
-            $symbolAsciiValue = 125;
-            $symbolTableAsciiValue = 47;
-        }
-
-        $scaleStrValue = '';
-        if ($scaleWidth !== null && $scaleHeight !== null) {
-            $scaleStrValue = '-scale' . $scaleWidth . 'x' . $scaleHeight;
-        }
-
-        return '/symbols/symbol-' . $symbolAsciiValue . '-' . $symbolTableAsciiValue . $scaleStrValue . '.png';
-    }
-
-    /**
-     * Get PGH range in meters
-     *
-     * @return float
-     */
-    public function getPHGRange()
-    {
-        if ($this->getPhg() != null) {
-            $p = $this->getPhgPower();
-            $h = $this->getPhgHaat(false);
-            $g = $this->getPhgGain();
-
-            $gain = pow(10, ($g/10)); //converts from DB to decimal
-            $range = sqrt(2 * $h * sqrt(($p / 10) * ($gain / 2)));
-            return $range / 0.000621371192; // convert to m and return
-        }
-        return null;
-    }
-
-    /**
-     * Get PGH description
-     *
-     * @return String
-     */
-    public function getPHGDescription()
-    {
-        if ($this->getPhg() != null) {
-            $power = $this->getPhgPower();
-            $haat = $this->getPhgHaat();
-            $gain = $this->getPhgGain();
-            $direction = $this->getPhgDirection();
-            $range = $this->getPHGRange();
-
-            $description = '';
-            if ($power !== null) {
-                $description .= 'Power ' . $power . ' W';
-            }
-
-            if ($haat !== null) {
-
-                if (strlen($description) > 0) {
-                    $description .= ', ';
-                }
-
-                if (isImperialUnitUser()) {
-                    $description .= 'Height ' . round(convertMeterToFeet($haat), 0) . ' ft';
-                } else {
-                    $description .= 'Height ' . $haat . ' m';
-                }
-            }
-
-            if ($gain !== null && $direction !== null) {
-                if (strlen($description) > 0) {
-                    $description .= ', ';
-                }
-                $description .= 'Gain ' . $gain . ' dB ' . $direction;
-            }
-
-            return $description;
-        }
-        return null;
-    }
-
-    /**
-     * Get PGH string
-     *
-     * @return string
-     */
-    public function getPhg()
-    {
-        if ($this->phg != null) {
-            if ($this->phg == 0) {
-                return null; // 0000 is considered not to be used (power == 0!)
-            } else if ($this->phg < 10) {
-                return '000' + strval($this->phg);
-            }  else if ($this->phg < 100) {
-                return '00' + strval($this->phg);
-            } else if ($this->phg < 1000) {
-                return '0' + strval($this->phg);
-            } else {
-                return strval($this->phg);
-            }
-        }
-        return null;
-    }
-
-    /**
-     *  Get PGH power
-     *
-     * @return int
-     */
-    public function getPhgPower()
-    {
-        if ($this->getPhg() != null) {
-            return pow(intval(substr($this->getPhg(), 0, 1)), 2);
-        }
-        return null;
-    }
-
-    /**
-     * Get PGH hight (above averange terrain)
-     *
-     * @param  boolean $inMeters
-     * @return int
-     */
-    public function getPhgHaat($inMeters = true)
-    {
-        if ($this->getPhg() != null) {
-            $value = intval(substr($this->getPhg(), 1, 1));
-
-            $haat = 0;
-            if ($value != 0) {
-                $haat = 10 * pow(2, $value);
-            }
-
-            if ($inMeters) {
-                return intval(round($haat * 0.3048));
-            } else {
-                return $haat;
-            }
-
-        }
-        return null;
-    }
-
-    /**
-     *  Get PGH Gain
-     *
-     * @return int
-     */
-    public function getPhgGain()
-    {
-        if ($this->getPhg() != null) {
-            return intval(substr($this->getPhg(), 2, 1));
-        }
-        return null;
-    }
-
-    /**
-     * Get PGH Direction
-     *
-     * @return String
-     */
-    public function getPhgDirection()
-    {
-        if ($this->getPhg() != null) {
-
-            switch (substr($this->getPhg(), 3, 1)) {
-            case 0:
-                return 'omni';
-                    break;
-            case 1:
-                return 'North East';
-                    break;
-            case 2:
-                return 'East';
-                    break;
-            case 3:
-                return 'South East';
-                    break;
-            case 4:
-                return 'South';
-                    break;
-            case 5:
-                return 'South West';
-                    break;
-            case 6:
-                return 'West';
-                    break;
-            case 7:
-                return 'North West';
-                    break;
-            case 8:
-                return 'North';
-                    break;
-            case 9:
-                return null;
-                    break;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get PGH Direction Degree
-     *
-     * @return int
-     */
-    public function getPhgDirectionDegree()
-    {
-        if ($this->getPhg() != null) {
-
-            switch (substr($this->getPhg(), 3, 1)) {
-            case 0:
-                return null;
-                    break;
-            case 1:
-                return 45;
-                    break;
-            case 2:
-                return 90;
-                    break;
-            case 3:
-                return 135;
-                    break;
-            case 4:
-                return 180;
-                    break;
-            case 5:
-                return 225;
-                    break;
-            case 6:
-                return 270;
-                    break;
-            case 7:
-                return 315;
-                    break;
-            case 8:
-                return 360;
-                    break;
-            case 9:
-                return null;
-                    break;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get RNG
-     *
-     * @return float
-     */
-    public function getRng()
-    {
-        if ($this->rng != null) {
-            return $this->rng;
-        }
-        return null;
-    }
-
-    /**
-     * Get packet type description
-     *
-     * @return Station
-     */
-    public function getPacketTypeName()
-    {
-        switch ($this->packetTypeId) {
-        case 1:
-            return 'Position';
-                break;
-        case 2:
-            return 'Direction';
-                break;
-        case 3:
-            return 'Weather';
-                break;
-        case 4:
-            return 'Object';
-                break;
-        case 5:
-            return 'Item';
-                break;
-        case 6:
-            return 'Telemetry';
-                break;
-        case 7:
-            return 'Message';
-                break;
-        case 8:
-            return 'Query';
-                break;
-        case 9:
-            return 'Response';
-                break;
-        case 10:
-            return 'Status';
-                break;
-        case 11:
-            return 'Other';
-                break;
-        default:
-            return 'Unknown';
-                break;
-        }
-    }
-
-    /**
-     * Get releted packet weather
-     * @return PacketWeather
-     */
-    public function getPacketWeather() {
-        return PacketWeatherRepository::getInstance()->getObjectByPacketId($this->id, $this->timestamp);
-    }
-
-    /**
-     * Get releted packet telemetry
-     * @return PacketTelemetry
-     */
-    public function getPacketTelemetry() {
-        return PacketTelemetryRepository::getInstance()->getObjectByPacketId($this->id, $this->timestamp);
-    }
-
-    /**
-     * Returns OGN part of packet
-     *
-     * @return PacketOgn
-     */
-    public function getPacketOgn()
-    {
-        static $cache = array();
-        $key = $this->id;
-        if (!isset($cache[$key])) {
-            if ($this->sourceId == 5) {
-                $cache[$key] = PacketOgnRepository::getInstance()->getObjectByPacketId($this->id);
-            } else {
-                $cache[$key] = new PacketOgn(null);
-            }
-        }
-        return $cache[$key];
-    }
-
-    /**
-     * Get Station
-     * @return Station
-     */
-    public function getStationObject() {
-        return StationRepository::getInstance()->getObjectById($this->stationId);
-    }
-
-    /**
-     * Get Sender
-     * @return Sender
-     */
-    public function getSenderObject() {
-        return SenderRepository::getInstance()->getObjectById($this->senderId);
-    }
-}
diff --git a/htdocs/includes/models/packetogn.class.php b/htdocs/includes/models/packetogn.class.php
deleted file mode 100644
index 5150d13c0c25f760060884996e495c7d39fd5d57..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/packetogn.class.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-class PacketOgn extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-
-    }
-}
diff --git a/htdocs/includes/models/packetpath.class.php b/htdocs/includes/models/packetpath.class.php
deleted file mode 100644
index d82275b6d6295311d2df836e3a789e5617cd163b..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/packetpath.class.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-class PacketPath extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-
-}
diff --git a/htdocs/includes/models/packettelemetry.class.php b/htdocs/includes/models/packettelemetry.class.php
deleted file mode 100644
index 152e7f0fc3b4ae3c72a4d898533df0dcbd4a3ceb..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/packettelemetry.class.php
+++ /dev/null
@@ -1,236 +0,0 @@
-<?php
-
-class PacketTelemetry extends Model
-{
-
-    private $_stationTelemetryParam;
-    private $_stationTelemetryEqns;
-    private $_stationTelemetryBits;
-    private $_stationTelemetryUnit;
-
-    public function __construct($id)
-    {
-        parent::__construct($id);
-        $this->_stationTelemetryParam = null;
-        $this->_stationTelemetryEqns = null;
-        $this->_stationTelemetryBits = null;
-        $this->_stationTelemetryUnit = null;
-    }
-
-    /**
-     * Get value parameter name
-     *
-     * @param  int $valNumber
-     * @return string
-     */
-    public function getValueParameterName($valNumber)
-    {
-        if ($this->_stationTelemetryParam === null && $this->stationTelemetryParamId !== null) {
-            $this->_stationTelemetryParam = StationTelemetryParamRepository::getInstance()->getObjectById($this->stationTelemetryParamId);
-        }
-
-        if ($this->_stationTelemetryParam !== null
-            && $this->_stationTelemetryParam->isExistingObject()
-            && isset($this->_stationTelemetryParam->{'p'.$valNumber})
-            && $this->_stationTelemetryParam->{'p'.$valNumber} != ''
-        ) {
-
-            return $this->_stationTelemetryParam->{'p'.$valNumber};
-        } else {
-            return "Value$valNumber";
-        }
-    }
-
-    /**
-     * Get bit parameter name
-     *
-     * @param  int $valNumber
-     * @return string
-     */
-    public function getBitParameterName($valNumber)
-    {
-        if ($this->_stationTelemetryParam === null && $this->stationTelemetryParamId !== null) {
-            $this->_stationTelemetryParam = StationTelemetryParamRepository::getInstance()->getObjectById($this->stationTelemetryParamId);
-        }
-
-        if ($this->_stationTelemetryParam !== null && $this->_stationTelemetryParam->isExistingObject() && $this->_stationTelemetryParam->{'b'.$valNumber} != '') {
-            return $this->_stationTelemetryParam->{'b'.$valNumber};
-        } else {
-            return "Bit$valNumber";
-        }
-    }
-
-    /**
-     * Get value eqns
-     *
-     * @param  int $valNumber
-     * @return numeric
-     */
-    public function getEqnsValue($valNumber)
-    {
-        if ($this->_stationTelemetryEqns === null && $this->stationTelemetryEqnsId !== null) {
-            $this->_stationTelemetryEqns = StationTelemetryEqnsRepository::getInstance()->getObjectById($this->stationTelemetryEqnsId);
-        }
-
-        if ($this->_stationTelemetryEqns !== null && $this->_stationTelemetryEqns->isExistingObject()) {
-            $a = $this->_stationTelemetryEqns->{'a'.$valNumber};
-            $b = $this->_stationTelemetryEqns->{'b'.$valNumber};
-            $c = $this->_stationTelemetryEqns->{'c'.$valNumber};
-
-            if ($a === null && $b === null) {
-                // User has sent us a faulty eqns, just return raw value
-                return Array(0, 1, 0);
-            } else {
-                if ($a === null) {
-                    $a = 0;
-                }
-                if ($b === null) {
-                    $b = 0;
-                }
-                if ($c === null) {
-                    $c = 0;
-                }
-                return Array($a, $b, $c);
-            }
-
-        } else {
-            // We have no eqns, just return raw value
-            return Array(0, 1, 0);
-        }
-    }
-
-    /**
-     * Check if value is set value
-     *
-     * @param  int $valNumber
-     * @return bool
-     */
-    public function isValueSet($valNumber)
-    {
-        $val = $this->{'val'.$valNumber};
-        if ($val !== null) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Get value
-     *
-     * @param  int $valNumber
-     * @return numeric
-     */
-    public function getValue($valNumber)
-    {
-        $val = $this->{'val'.$valNumber};
-
-        $eqns = $this->getEqnsValue($valNumber);
-        $a = $eqns[0];
-        $b = $eqns[1];
-        $c = $eqns[2];
-
-        if ($a == null && $b == null) {
-            // User has sent us a faulty eqns, just return raw value
-            return $val;
-
-        } else {
-            $result = 0;
-
-            if ($a != null) {
-                $result += $a * $val * $val;
-            }
-
-            if ($b != null) {
-                $result += $b * $val;
-            }
-
-            if ($c != null) {
-                $result += $c;
-            }
-
-            return $result;
-        }
-    }
-
-    /**
-     * Get value unit
-     *
-     * @param  int $valNumber
-     * @return string
-     */
-    public function getValueUnit($valNumber)
-    {
-        $unit = ''; // default
-        if ($this->_stationTelemetryUnit === null && $this->stationTelemetryUnitId !== null) {
-            $this->_stationTelemetryUnit = StationTelemetryUnitRepository::getInstance()->getObjectById($this->stationTelemetryUnitId);
-        }
-
-        if ($this->_stationTelemetryUnit !== null && $this->_stationTelemetryUnit->isExistingObject()) {
-            $unit = ' ' . $this->_stationTelemetryUnit->{'u'.$valNumber};
-        }
-
-        return $unit;
-    }
-
-    /**
-     * Get bit sense
-     *
-     * @param  int $valNumber
-     * @return int
-     */
-    public function getBitSense($valNumber)
-    {
-        if ($this->_stationTelemetryBits === null && $this->stationTelemetryBitsId !== null) {
-            $this->_stationTelemetryBits = StationTelemetryBitsRepository::getInstance()->getObjectById($this->stationTelemetryBitsId);
-        }
-
-        $sense = 1; // default to 1
-        if ($this->_stationTelemetryBits !== null && $this->_stationTelemetryBits->isExistingObject()) {
-            $sense = substr($this->_stationTelemetryBits->bits, $valNumber-1, 1);
-        }
-
-        return $sense;
-    }
-
-    /**
-     * Get bit
-     *
-     * @param  int $valNumber
-     * @return int
-     */
-    public function getBit($valNumber)
-    {
-        if ($this->_stationTelemetryBits === null && $this->stationTelemetryBitsId !== null) {
-            $this->_stationTelemetryBits = StationTelemetryBitsRepository::getInstance()->getObjectById($this->stationTelemetryBitsId);
-        }
-
-        $sense = $this->getBitSense($valNumber);
-
-        $bit = substr($this->bits, $valNumber-1, 1);
-        if (($sense == 1 && $bit == 1) || ($sense == 0 && $bit == 0)) {
-            return 1;
-        } else {
-            return 0;
-        }
-    }
-
-    /**
-     * Get bit label
-     *
-     * @param  int $valNumber
-     * @return int
-     */
-    public function getBitLabel($valNumber)
-    {
-        if ($this->_stationTelemetryUnit === null && $this->stationTelemetryUnitId !== null) {
-            $this->_stationTelemetryUnit = StationTelemetryUnitRepository::getInstance()->getObjectById($this->stationTelemetryUnitId);
-        }
-
-        $label = 'On'; // default
-        if ($this->_stationTelemetryUnit !== null && $this->_stationTelemetryUnit->isExistingObject()) {
-            $label = $this->_stationTelemetryUnit->{'l'.$valNumber};
-        }
-
-        return $label;
-    }
-}
diff --git a/htdocs/includes/models/packetweather.class.php b/htdocs/includes/models/packetweather.class.php
deleted file mode 100644
index 134b1beeef9521ba07c4778ecaa422a686a0e150..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/packetweather.class.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-class PacketWeather extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-
-    }
-
-    /**
-     * Returnes a rain summary string
-     *
-     * @param  boolean $showRain1h
-     * @param  boolean $showRain24h
-     * @param  boolean $showRainSinceMidnight
-     * @return string
-     */
-    public function getRainSummary($showRain1h = true, $showRain24h = true, $showRainSinceMidnight = true)
-    {
-        $result = $this->getRainSummaryList($showRain1h, $showRain24h, $showRainSinceMidnight);
-
-        if (empty($result)) {
-            if ($this->rain_1h === null && $this->rain_24h === null && $this->rain_since_midnight === null) {
-                return 'No rain measurements received';
-            } else {
-                return 'No other rain measurements received';
-            }
-        } else {
-            return implode('&#010;', $result);
-        }
-    }
-
-    /**
-     * Returnes a rain summary array
-     *
-     * @param  boolean $showRain1h
-     * @param  boolean $showRain24h
-     * @param  boolean $showRainSinceMidnight
-     * @return string
-     */
-    public function getRainSummaryList($showRain1h = true, $showRain24h = true, $showRainSinceMidnight = true)
-    {
-        $result = [];
-
-        if ($showRain1h && $this->rain_1h !== null) {
-            if (isImperialUnitUser()) {
-                $result[] = "Rain latest hour: " . round(convertMmToInch($this->rain_1h), 2) . " in";
-            } else {
-                $result[] = "Rain latest hour: " . round($this->rain_1h, 2) . " mm";
-            }
-        }
-
-        if ($showRain24h && $this->rain_24h !== null) {
-            if (isImperialUnitUser()) {
-                $result[] = "Rain latest 24h hours: " . round(convertMmToInch($this->rain_24h), 2) . " in";
-            } else {
-                $result[] = "Rain latest 24h hours: " . round($this->rain_24h, 2) . " mm";
-            }
-        }
-
-        if ($showRainSinceMidnight && $this->rain_since_midnight !== null) {
-            if (isImperialUnitUser()) {
-                $result[] = "Rain since midnight: " . round(convertMmToInch($this->rain_since_midnight), 2) . " in";
-            } else {
-                $result[] = "Rain since midnight: " . round($this->rain_since_midnight, 2) . " mm";
-            }
-        }
-
-        return $result;
-    }
-}
diff --git a/htdocs/includes/models/sender.class.php b/htdocs/includes/models/sender.class.php
deleted file mode 100644
index 4f61f6a8cae7af8f787d4c7da332e3f19f93af7b..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/sender.class.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-class Sender extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-
-    /**
-     * Get sender station
-     *
-     * @return Station
-     */
-    public function getSenderStationObject()
-    {
-        return StationRepository::getInstance()->getObjectByNameAndSenderId($this->name, $this->id);
-    }
-}
diff --git a/htdocs/includes/models/station.class.php b/htdocs/includes/models/station.class.php
deleted file mode 100644
index b3a91cb6a4311834ce2f5e464918cf6e675860e4..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/station.class.php
+++ /dev/null
@@ -1,322 +0,0 @@
-<?php
-
-class Station extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-
-    /**
-     * Returnes likly ham radio callsign
-     *
-     * @return string
-     */
-    public function getLiklyHamRadioCallsign()
-    {
-        if ($this->sourceId == 1 && $this->stationTypeId == 1) {
-            $pos = strpos($this->name, '-');
-            if ($pos !== false) {
-                $callsign = substr($this->name, 0, $pos);
-            } else {
-                $callsign = $this->name;
-            }
-
-            if (strlen($callsign) >= 3 && preg_match('~[0-9]~', substr($callsign, 1, strlen($callsign)-1))) {
-                // At least 3 letters and a digit somewhere in the middle
-                return $callsign;
-            }
-        }
-
-        return null;
-    }
-
-
-    /**
-     * Returns OGN sender address
-     *
-     * @return string
-     */
-    public function getOgnSenderAddress()
-    {
-        if (isset($this->latestOgnSenderAddress) && $this->latestOgnSenderAddress != '') {
-            return $this->latestOgnSenderAddress;
-        }
-        return null;
-    }
-
-    /**
-     * Returns OGN device
-     *
-     * @return Model
-     */
-    public function getOgnDevice()
-    {
-        static $cache = array();
-        $key = $this->id;
-        if (!isset($cache[$key])) {
-            if (isset($this->latestOgnSenderAddress) && $this->latestOgnSenderAddress != '') {
-                $cache[$key] = ModelRepository::getInstance()->getObjectFromSql('select * from ogn_device where device_id = ?', [$this->latestOgnSenderAddress]);
-            } else {
-                $cache[$key] = null;
-            }
-        }
-        return $cache[$key];
-    }
-
-    /**
-     * Returns OGN device DB aircraft type name
-     *
-     * @return string
-     */
-    public function getOgnDdbAircraftTypeName()
-    {
-        $ognDevice = $this->getOgnDevice();
-        if ($ognDevice) {
-             switch ($ognDevice->ddbAircraftType) {
-            case 1:
-                return 'Glider/Motoglider';
-            case 2:
-                return 'Plane';
-            case 3:
-                return 'Ultralight';
-            case 4:
-                return 'Helicopter';
-            case 5:
-                return 'Drone/UAV';
-            case 6:
-                return 'Other';
-             }
-        }
-        return null;
-    }
-
-    /**
-     * Returns OGN aircraft type name
-     *
-     * @return string
-     */
-    public function getOgnAircraftTypeName()
-    {
-        if (isset($this->latestOgnAircraftTypeId) && $this->latestOgnAircraftTypeId != '') {
-            switch ($this->latestOgnAircraftTypeId) {
-            case 1:
-                return 'Glider';
-            case 2:
-                return 'Tow Plane';
-            case 3:
-                return 'Helicopter';
-            case 4:
-                return 'Parachute';
-            case 5:
-                return 'Drop Plane';
-            case 6:
-                return 'Hang Glider';
-            case 7:
-                return 'Para Glider';
-            case 8:
-                return 'Powered Aircraft';
-            case 9:
-                return 'Jet Aircraft';
-            case 10:
-                return 'UFO';
-            case 11:
-                return 'Balloon';
-            case 12:
-                return 'Airship';
-            case 13:
-                return 'UAV';
-            case 14:
-                return '';
-            case 15:
-                return 'Static Object';
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns source description
-     *
-     * @return string
-     */
-    public function getSourceDescription()
-    {
-        if (isset($this->sourceId) && $this->sourceId != '') {
-            if ($this->sourceId == 1) {
-                return '<a target="_blank" rel="nofollow" href="http://www.aprs-is.net/">APRS-IS</a>';
-            } elseif ($this->sourceId == 2) {
-                return '<a target="_blank" rel="nofollow" href="http://wxqa.com/">CWOP (Citizen Weather Observer Program)</a>';
-            } elseif ($this->sourceId == 5) {
-                return '<a target="_blank" rel="nofollow" href="http://wiki.glidernet.org/">OGN (Open Glider Network)</a>';
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get distance between specified lat/lng and the station latest position (confirmed position if exists)
-     *
-     * @param  float $lat
-     * @param  float $lng
-     * @return int;
-     */
-    public function getDistance($lat, $lng)
-    {
-        static $cache = array();
-        $key = $this->id . ':' . $lat . ':' . $lng;
-        if (!isset($cache[$key])) {
-
-            $latestLatitude = null;
-            $latestLongitude = null;
-            if ($this->latestConfirmedLongitude !== null && $this->latestConfirmedLatitude !== null) {
-                $latestLatitude = $this->latestConfirmedLatitude;
-                $latestLongitude = $this->latestConfirmedLongitude;
-            } else if ($this->latestLongitude !== null && $this->latestLatitude !== null) {
-                $latestLatitude = $this->latestLatitude;
-                $latestLongitude = $this->latestLongitude;
-            }
-
-            if ($lat !== null && $lng !== null && $latestLatitude !== null && $latestLongitude !== null) {
-                $theta = $lng - $latestLongitude;
-                $dist = sin(deg2rad($lat)) * sin(deg2rad($latestLatitude)) +  cos(deg2rad($lat)) * cos(deg2rad($latestLatitude)) * cos(deg2rad($theta));
-                $dist = acos($dist);
-                $dist = rad2deg($dist);
-                $miles = $dist * 60 * 1.1515;
-                $cache[$key] = round($miles * 1609.344, 0);
-            } else {
-                $cache[$key] = null;
-            }
-        }
-        return $cache[$key];
-    }
-
-    /**
-     * Returnes icon http path
-     *
-     * @param  int $scaleWidth
-     * @param  int $scaleHeight
-     * @return string
-     */
-    public function getIconFilePath($scaleWidth = null, $scaleHeight = null)
-    {
-        if (strlen($this->latestConfirmedSymbol) >= 1 && strlen($this->latestConfirmedSymbolTable) >= 1) {
-            $symbolAsciiValue = ord(substr($this->latestConfirmedSymbol, 0, 1));
-            $symbolTableAsciiValue = ord(substr($this->latestConfirmedSymbolTable, 0, 1));
-        } else {
-            // Default values
-            $symbolAsciiValue = 125;
-            $symbolTableAsciiValue = 47;
-        }
-
-        $scaleStrValue = '';
-        if ($scaleWidth !== null && $scaleHeight !== null) {
-            $scaleStrValue = '-scale' . $scaleWidth . 'x' . $scaleHeight;
-        }
-
-        return '/symbols/symbol-' . $symbolAsciiValue . '-' . $symbolTableAsciiValue . $scaleStrValue . '.png';
-    }
-
-    /**
-     * Get array of the latest used symbols for this station
-     *
-     * @param  int $scaleWidth
-     * @param  int $scaleHeight
-     * @return array
-     */
-    public function getLatestIconFilePaths($scaleWidth = 24, $scaleHeight = 24)
-    {
-        $result = Array();
-        if ($this->latestConfirmedPacketTimestamp > (time() - (60*60*24))) {
-            // Latest packet is not that old, go on
-
-            $scaleStrValue = '';
-            if ($scaleWidth !== null && $scaleHeight !== null) {
-                $scaleStrValue = '-scale' . $scaleWidth . 'x' . $scaleHeight;
-            }
-
-            $sql = 'select symbol, symbol_table from packet where station_id = ? and timestamp > ? group by symbol, symbol_table';
-            $stmt = PDOConnection::getInstance()->prepareAndExec($sql, [$this->id, $this->latestConfirmedPacketTimestamp - (60*60*24)]);
-
-            $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
-            foreach ($records as $record) {
-
-                if (strlen($record['symbol']) >= 1 && strlen($record['symbol_table']) >= 1) {
-                    $key = $record['symbol'] . ':' . $record['symbol_table'];
-
-                    $symbolAsciiValue = ord(substr($record['symbol'], 0, 1));
-                    $symbolTableAsciiValue = ord(substr($record['symbol_table'], 0, 1));
-                    $result[$key] = '/symbols/symbol-' . $symbolAsciiValue . '-' . $symbolTableAsciiValue . $scaleStrValue . '.png';
-                }
-            }
-        }
-
-        return array_values($result);
-    }
-
-    /**
-     * Get packet frequency in number of seconds for the latest 10 packets
-     *
-     * @param  string $date
-     * @param  int    &$numberOfPackets
-     * @return int
-     */
-    public function getPacketFrequency($date = null, &$numberOfPackets)
-    {
-        $pdo = PDOConnection::getInstance();
-        if ($this->latestPacketTimestamp !== null) {
-            $timestamp = $this->latestPacketTimestamp;
-        } else {
-            return null;
-        }
-
-        // Find start timestamp
-        $sql = 'select timestamp ts from packet where station_id = ? and map_id in (1,2,5,7,9) and timestamp < ? order by timestamp desc limit 1';
-        $stmt = $pdo->prepareAndExec($sql, [$this->id, $timestamp - 1]);
-
-        $record = $stmt->fetch(PDO::FETCH_ASSOC);
-        if (!empty($record) && $record['ts'] != null && $record['ts'] < $timestamp) {
-            $startTimestamp = $timestamp - (($timestamp - $record['ts'])*10);
-            if ($timestamp - $startTimestamp < 600) {
-                $startTimestamp = $timestamp - 600;
-            }
-        } else {
-            if ($date === null) {
-                // Try to find frequency for the date before
-                $date = strftime('%Y-%m-%d', $timestamp - 86400);
-                return $this->getPacketFrequency($date, $numberOfPackets);
-            } else {
-                // Give up
-                return null;
-            }
-        }
-
-        $sql = 'select (max(timestamp) - min(timestamp)) / count(*) freq, count(*) c from packet  where station_id = ? and map_id in (1,2,5,7,9) and timestamp >= ?';
-        $stmt = $pdo->prepareAndExec($sql, [$this->id, $startTimestamp]);
-        $record = $stmt->fetch(PDO::FETCH_ASSOC);
-        if (!empty($record) && $record['freq'] > 0) {
-            $numberOfPackets = $record['c'];
-            return $record['freq'];
-        } else {
-            return null;
-        }
-    }
-
-    /*
-     * Returnes symbol description
-     * @param boolean $includeUndefinedOverlay
-     * @return string
-     */
-    public function getLatestSymbolDescription($includeUndefinedOverlay = true)
-    {
-        $symbol = null;
-        $symbolTable = null;
-
-        if (strlen($this->latestConfirmedSymbol) >= 1 && strlen($this->latestConfirmedSymbolTable) >= 1) {
-            $symbol = $this->latestConfirmedSymbol;
-            $symbolTable = $this->latestConfirmedSymbolTable;
-        }
-
-        return getSymbolDescription($symbolTable, $symbol, $includeUndefinedOverlay);
-    }
-}
diff --git a/htdocs/includes/models/stationtelemetrybits.class.php b/htdocs/includes/models/stationtelemetrybits.class.php
deleted file mode 100644
index 68078b7c62c2bd01090f585dde1e108b6cccb55d..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/stationtelemetrybits.class.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-class StationTelemetryBits extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-}
diff --git a/htdocs/includes/models/stationtelemetryeqns.class.php b/htdocs/includes/models/stationtelemetryeqns.class.php
deleted file mode 100644
index 1b3813fd16d1a5a0d52de970031184333ab67f13..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/stationtelemetryeqns.class.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-class StationTelemetryEqns extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-}
diff --git a/htdocs/includes/models/stationtelemetryparam.class.php b/htdocs/includes/models/stationtelemetryparam.class.php
deleted file mode 100644
index 5b3bf472ee85e552ca29c1e7ee0a8de02cf6ba54..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/stationtelemetryparam.class.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-class StationTelemetryParam extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-}
diff --git a/htdocs/includes/models/stationtelemetryunit.class.php b/htdocs/includes/models/stationtelemetryunit.class.php
deleted file mode 100644
index c14b4b01d2e5162cb73927331b252fff804ac298..0000000000000000000000000000000000000000
--- a/htdocs/includes/models/stationtelemetryunit.class.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-class StationTelemetryUnit extends Model
-{
-    public function __construct($id)
-    {
-        parent::__construct($id);
-    }
-}
diff --git a/htdocs/includes/pdoconnection.class.php b/htdocs/includes/pdoconnection.class.php
deleted file mode 100644
index dfc2bd8caa41d50c5b424e891917eedb2dcedbe8..0000000000000000000000000000000000000000
--- a/htdocs/includes/pdoconnection.class.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-class PDOConnection
-{
-
-    private static $_singletonInstance = null;
-    private $_db;
-    private $_config;
-
-    public function __construct()
-    {
-        $this->_config = parse_ini_file(ROOT . '/../config/trackdirect.ini', true);
-    }
-
-    /**
-     * Connect to the database.
-     */
-    private function createConnection()
-    {
-        if (is_array($this->_config) && isset($this->_config['database'])) {
-            $databaseconfig = $this->_config['database'];
-
-            if (!isset($databaseconfig['username'])) {
-                $databaseconfig['username'] = get_current_user();
-            }
-
-            try {
-                $this->_db = new PDO(
-                    sprintf(
-                        'pgsql:dbname=%s;host=%s;port=%s;user=%s;password=%s',
-                        $databaseconfig['database'],
-                        $databaseconfig['host'],
-                        $databaseconfig['port'],
-                        $databaseconfig['username'],
-                        $databaseconfig['password']
-                    ), null, null,
-                    array(
-                        PDO::ATTR_PERSISTENT => false,
-                        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
-                    )
-                );
-            } catch (PDOException $e) {
-                echo $e;
-                throw new Exception("Failed to connect to database.");
-            }
-        } else {
-            throw new Exception("Failed to parse database ini file.");
-        }
-    }
-
-    /**
-     * Returnes a PDO db connection
-     *
-     * @return PDO
-     */
-    private function getConnection()
-    {
-        if($this->_db === null) {
-            $this->createConnection();
-        }
-
-        return $this->_db;
-    }
-
-    /**
-     * Executes an SQL statement, returning a result set as a PDOStatement object
-     *
-     * @param  string $sql
-     * @return PDOStatement
-     */
-    public function query($sql)
-    {
-        return $this->getConnection()->query($sql);
-    }
-
-    /**
-     * Prepares a statement for execution and returns a statement object
-     *
-     * @param  string $sql
-     * @return PDOStatement
-     */
-    public function prepare($sql)
-    {
-        return $this->getConnection()->prepare($sql);
-    }
-
-    /**
-     * Prepares a statement for execution and execute the prepared statement. Returnes the statment object
-     *
-     * @param  string $sql
-     * @param  array  $arguments
-     * @return PDOStatement
-     */
-    public function prepareAndExec($sql, array $arguments = array())
-    {
-        $statement = $this->prepare($sql);
-        $statement->execute($arguments);
-        return $statement;
-    }
-
-    /**
-     * Initiates a transaction. Turns off autocommit mode. Returns TRUE on success or FALSE on failure.
-     *
-     * @return boolean
-     */
-    public function beginTransaction()
-    {
-        $this->getConnection()->beginTransaction();
-    }
-
-    /**
-     * Commits a transaction. Returns TRUE on success or FALSE on failure.
-     *
-     * @return boolean
-     */
-    public function commit()
-    {
-        $this->getConnection()->commit();
-    }
-
-    /**
-     * Rolls back the current transaction (that was started by beginTransaction). Returns TRUE on success or FALSE on failure.
-     *
-     * @return boolean
-     */
-    public function rollBack()
-    {
-        $this->getConnection()->rollBack();
-    }
-
-    /**
-     * Get the ID of the last inserted record.
-     *
-     * @param  string $table
-     * @param  string $column
-     * @return int
-     */
-    public function lastInsertId($table, $column)
-    {
-        $suffix = '_' . $column . '_seq';
-
-        /* The max length of an identifier is 63 characters,
-         * if table_column_seq exceeds this postgres cuts the
-         * table name by default. */
-        $table = substr($table, 0, 63 - (strlen($suffix)));
-        $sequenceName = $table . $suffix;
-
-        return $this->getConnection()->lastInsertId($sequenceName);
-    }
-
-    /**
-     * Returnes an initiated PDOConnection
-     *
-     * @return PDOConnection
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new PDOConnection();
-        }
-
-        return self::$_singletonInstance;
-    }
-}
diff --git a/htdocs/includes/repositories/modelrepository.class.php b/htdocs/includes/repositories/modelrepository.class.php
deleted file mode 100644
index 92d8d0dd991358e026adae9619a30c842a28a4b4..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/modelrepository.class.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-class ModelRepository
-{
-
-    private $_class;
-    private static $_singletonInstance = null;
-
-    public function __construct($class = 'Model')
-    {
-        $this->_class = $class;
-    }
-
-    /**
-     * Returnes an initiated ModelRepository
-     *
-     * @return ModelRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new ModelRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Returns an object based on the provided sql
-     *
-     * @param  string $sql
-     * @param  array  $arg
-     * @return StandardItem
-     */
-    public function getObjectFromSql($sql, $arg)
-    {
-        $pdo = PDOConnection::getInstance();
-
-        $stmt = $pdo->prepareAndExec($sql, $arg);
-        if ($record = $stmt->fetch(PDO::FETCH_ASSOC)) {
-            return $this->_getObjectFromRecord($record);
-        }
-
-        // No object found, return empty object
-        return new $this->_class(null);
-    }
-
-    /**
-     * Returns an array of object based on the provided sql
-     *
-     * @param  string $sql
-     * @param  array  $arg
-     * @return array
-     */
-    public function getObjectListFromSql($sql, $arg)
-    {
-        $pdo = PDOConnection::getInstance();
-
-        $stmt = $pdo->prepareAndExec($sql, $arg);
-        $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
-        if (is_array($records) && !empty($records)) {
-            return $this->_getObjectListFromRecords($records);
-        }
-
-        // No object found, return empty array
-        return [];
-    }
-
-    /**
-     * Returns an object based on the provided record
-     *
-     * @param  array $record
-     * @return StandardItem
-     */
-    protected function _getObjectFromRecord($record)
-    {
-        if (isset($record['id'])) {
-            $object = new $this->_class($record['id']);
-        } else {
-            $object = new $this->_class(0);
-        }
-        $object->updateObjectFromArray($record);
-        return $object;
-    }
-
-    /**
-     * Returns a list of objects filled with values from the provided records
-     *
-     * @param  array $records
-     * @return Array of StandardItem
-     */
-    protected function _getObjectListFromRecords($records)
-    {
-        $list = Array();
-
-        foreach ($records as $record) {
-            $list[] = $this->_getObjectFromRecord($record);
-        }
-
-        return $list;
-    }
-}
\ No newline at end of file
diff --git a/htdocs/includes/repositories/packetognrepository.class.php b/htdocs/includes/repositories/packetognrepository.class.php
deleted file mode 100644
index b692dcad97f580abf79a2f4730ce20a2588d8438..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/packetognrepository.class.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-class PacketOgnRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('PacketOgn');
-    }
-
-    /**
-     * Returnes an initiated PacketOgnRepository
-     *
-     * @return PacketOgnRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new PacketOgnRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return PacketOgn
-     */
-    public function getObjectById($id)
-    {
-        if (!isInt($id)) {
-            return new PacketOgn(0);
-        }
-        return $this->getObjectFromSql('select * from packet_ogn where id = ?', [$id]);
-    }
-
-    /**
-     * Get object by packet id
-     *
-     * @param  int $id
-     * @return PacketOgn
-     */
-    public function getObjectByPacketId($packetId)
-    {
-        if (!isInt($packetId)) {
-            return new PacketOgn(0);
-        }
-        return $this->getObjectFromSql('select * from packet_ogn where packet_id = ?', [$packetId]);
-    }
-}
diff --git a/htdocs/includes/repositories/packetpathrepository.class.php b/htdocs/includes/repositories/packetpathrepository.class.php
deleted file mode 100644
index 6fa24947162f3185bc9e9d36c16246f01a47ab44..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/packetpathrepository.class.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-
-class PacketPathRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('PacketPath');
-    }
-
-    /**
-     * Returnes an initiated PacketPathRepository
-     *
-     * @return PacketPathRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new PacketPathRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return PacketPath
-     */
-    public function getObjectById($id)
-    {
-        if (!isInt($packetId)) {
-            return new PacketPath(0);
-        }
-        return $this->getObjectFromSql('select * from packet_path where id = ?', [$id]);
-    }
-
-    /**
-     * Get object by packet id
-     *
-     * @param  int $id
-     * @return PacketPath
-     */
-    public function getObjectListByPacketId($id)
-    {
-        if (!isInt($id)) {
-            return [];
-        }
-        return $this->getObjectListFromSql('select * from packet_path where packet_id = ?', [$id]);
-    }
-
-    /**
-     * Get packet path statistics for sending station
-     *
-     * @param  int $stationId
-     * @param  int $minTimestamp
-     * @return array
-     */
-    public function getSenderPacketPathSatistics($stationId, $minTimestamp = null)
-    {
-        if (!isInt($stationId)) {
-            return [];
-        }
-        if ($minTimestamp == null || !isInt($minTimestamp)) {
-            $minTimestamp = time() - (60*60*24*10); // Default to 10 days
-        }
-        $sql = 'select station_id, count(*) number_of_packets, max(timestamp) latest_timestamp, max(distance) longest_distance from packet_path where sending_station_id = ? and timestamp > ? and number = 0 and station_id != sending_station_id group by station_id order by max(timestamp) desc';
-        $args = [$stationId, $minTimestamp];
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $args);
-        return $stmt->fetchAll(PDO::FETCH_ASSOC);
-    }
-
-    /**
-     * Get packet path statistics for receiving station
-     *
-     * @param  int $stationId
-     * @param  int $minTimestamp
-     * @return array
-     */
-    public function getReceiverPacketPathSatistics($stationId, $minTimestamp = null)
-    {
-        if (!isInt($stationId)) {
-            return [];
-        }
-        if ($minTimestamp == null || !isInt($minTimestamp)) {
-            $minTimestamp = time() - (60*60*24*10); // Default to 10 days
-        }
-        $sql = 'select sending_station_id station_id, count(*) number_of_packets, max(timestamp) latest_timestamp, max(distance) longest_distance from packet_path where station_id = ? and timestamp > ? and number = 0 and station_id != sending_station_id group by sending_station_id order by max(timestamp) desc';
-        $args = [$stationId, $minTimestamp];
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $args);
-        return $stmt->fetchAll(PDO::FETCH_ASSOC);
-    }
-
-    /**
-     * Get latest data list by receiving station id
-     *
-     * @param  int     $stationId
-     * @param  int     $hours
-     * @param  int     $limit
-     * @return array
-     */
-    public function getLatestDataListByReceivingStationId($stationId, $hours, $limit)
-    {
-        if (!isInt($stationId) || !isInt($hours)) {
-            return [];
-        }
-        $minTimestamp = time() - (60*60*$hours);
-
-        $sql = 'select pp.*
-            from packet_path pp
-            where pp.station_id = ?
-                and pp.timestamp >= ?
-                and pp.number = 0
-                and pp.sending_latitude is not null
-                and pp.sending_longitude is not null
-            order by pp.timestamp
-            limit ?';
-
-        $arg = [$stationId, $minTimestamp, $limit];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $arg);
-        return $stmt->fetchAll(PDO::FETCH_ASSOC);
-    }
-
-    /**
-     * Get latest data list by receiving station id (will try to exclude stationary sending stations)
-     *
-     * @param  int     $stationId
-     * @param  int     $hours
-     * @param  int     $limit
-     * @return array
-     */
-    public function getLatestMovingDataListByReceivingStationId($stationId, $hours, $limit)
-    {
-        if (!isInt($stationId) || !isInt($hours)) {
-            return [];
-        }
-        $minTimestamp = time() - (60*60*$hours);
-
-        $sql = 'select pp.*
-            from packet_path pp
-                join station s on s.id = pp.sending_station_id
-            where pp.station_id = ?
-                and pp.timestamp >= ?
-                and pp.number = 0
-                and pp.sending_latitude is not null
-                and pp.sending_longitude is not null
-                and pp.sending_latitude != s.latest_confirmed_latitude
-                and pp.sending_longitude != s.latest_confirmed_longitude
-            order by pp.timestamp
-            limit ?';
-
-        $arg = [$stationId, $minTimestamp, $limit];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $arg);
-        return $stmt->fetchAll(PDO::FETCH_ASSOC);
-    }
-}
diff --git a/htdocs/includes/repositories/packetrepository.class.php b/htdocs/includes/repositories/packetrepository.class.php
deleted file mode 100644
index 9cbf810190130f5a48d90dbfd991363ade08392d..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/packetrepository.class.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-
-class PacketRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('Packet');
-    }
-
-    /**
-     * Returnes an initiated PacketRepository
-     *
-     * @return PacketRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new PacketRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @param  int $timestamp
-     * @return Packet
-     */
-    public function getObjectById($id, $timestamp)
-    {
-        if (!isInt($id) || !isInt($timestamp)) {
-            return new Packet(0);
-        }
-        return $this->getObjectFromSql('select * from packet where id = ? and timestamp = ?', [$id, $timestamp]);
-    }
-
-    /**
-     * Get object list with raw by station id for the latest 24 hours
-     *
-     * @param  int $stationId
-     * @param  int $limit
-     * @param  int $offset
-     * @return array
-     */
-    public function getObjectListWithRawByStationId($stationId, $limit, $offset)
-    {
-        if (!isInt($stationId) || !isInt($limit) || !isInt($offset)) {
-            return [];
-        }
-        $sql = 'select packet.* from packet packet where station_id = ? and timestamp > ? and raw is not null order by timestamp desc, id desc limit ? offset ?';
-        $parameters = [$stationId, time() - (24*60*60), $limit, $offset];
-        return $this->getObjectListFromSql($sql, $parameters);
-    }
-
-    /**
-     * Get number of packets with raw by station id for the latest 24 hours
-     *
-     * @param  int $stationId
-     * @return int
-     */
-    public function getNumberOfPacketsWithRawByStationId($stationId)
-    {
-        if (!isInt($stationId)) {
-            return 0;
-        }
-        $sql = 'select count(*) c from packet where station_id = ? and timestamp > ? and raw is not null';
-        $parameters = [$stationId, time() - (24*60*60)];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $parameters);
-        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
-        $sum = 0;
-        foreach($rows as $row) {
-            $sum += $row['c'];
-        }
-
-        return $sum;
-    }
-
-    /**
-     * Get object list with raw by sender station id for the latest 24 hours
-     *
-     * @param  int $stationId
-     * @param  int $limit
-     * @param  int $offset
-     * @return array
-     */
-    public function getObjectListWithRawBySenderStationId($stationId, $limit, $offset)
-    {
-        if (!isInt($stationId) || !isInt($limit) || !isInt($offset)) {
-            return [];
-        }
-        $sql = 'select packet.* from packet where sender_id in (select latest_sender_id from station where id = ?) and timestamp > ? and raw is not null order by timestamp desc, id desc limit ? offset ?';
-        $parameters = [$stationId, time() - (24*60*60), $limit, $offset];
-        return $this->getObjectListFromSql($sql, $parameters);
-    }
-
-    /**
-     * Get number of packets with raw by sender station id for the latest 24 hours
-     *
-     * @param  int $stationId
-     * @return int
-     */
-    public function getNumberOfPacketsWithRawBySenderStationId($stationId)
-    {
-        if (!isInt($stationId)) {
-            return 0;
-        }
-        $sql = 'select count(*) c from packet where sender_id in (select latest_sender_id from station where id = ?) and timestamp > ? and raw is not null';
-        $parameters = [$stationId, time() - (24*60*60)];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $parameters);
-        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
-        $sum = 0;
-        foreach($rows as $row) {
-            $sum += $row['c'];
-        }
-        return $sum;
-    }
-
-    /**
-     * Get latest confirmed position packet object by station id
-     *
-     * @param  int $stationId
-     * @return Packet
-     */
-    public function getLatestConfirmedObjectByStationId($stationId)
-    {
-        if (!isInt($stationId)) {
-            return new Packet(0);
-        }
-        $station = StationRepository::getInstance()->getObjectById($stationId);
-        if ($station->isExistingObject()) {
-            return $this->getObjectById($station->latestConfirmedPacketId, $station->latestConfirmedPacketTimestamp);
-        }
-        return new Packet(null);
-    }
-
-    /**
-     * Get latest packet data list by station id  (useful for creating a chart)
-     *
-     * @param  int   $stationId
-     * @param  int   $numberOfHours
-     * @param  array $columns
-     * @return Array
-     */
-    public function getLatestDataListByStationId($stationId, $numberOfHours, $columns)
-    {
-        $result = Array();
-        if (!isInt($stationId) || !isInt($numberOfHours)) {
-            return $result;
-        }
-
-        if (!in_array('timestamp', $columns)) {
-            // Just to be sure
-            $columns[] = 'timestamp';
-        }
-
-        $startTimestamp = time() - $numberOfHours*60*60;
-        $sql = 'select ' . implode(',', $columns) . ', position_timestamp from packet
-            where station_id = ?
-                and timestamp >= ?
-                and (speed is not null or altitude is not null)
-                and map_id in (1,12,5,7,9)
-            order by timestamp';
-        $arg = [$stationId, $startTimestamp];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $arg);
-        $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
-        foreach ($records as $record) {
-
-            // Add value for position start if position start is within interval
-            if ($record['position_timestamp'] != null && $record['position_timestamp'] < $record['timestamp'] && $record['position_timestamp'] >= $startTimestamp) {
-                $posRecord = $record;
-                $posRecord['timestamp'] = $posRecord['position_timestamp'];
-                unset($posRecord['position_timestamp']);
-                $result[] = $posRecord;
-            }
-
-            // Add value from found packet
-            unset($record['position_timestamp']);
-            $result[] = $record;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Get object list (only confirmed)
-     * @param array $stationIdList
-     * @param int $startTimestamp
-     * @param int $endTimestamp
-     * @return array
-     */
-    public function getConfirmedObjectListByStationIdList($stationIdList, $startTimestamp, $endTimestamp) {
-        if (!isInt($startTimestamp) || !isInt($endTimestamp)) {
-            return $result;
-        }
-
-        $sql = 'select * from packet where station_id in (' . implode(',', $stationIdList) . ') and timestamp > ? and timestamp < ? and map_id = 1 order by timestamp';
-        $parameters = [$startTimestamp, $endTimestamp];
-        return $this->getObjectListFromSql($sql, $parameters);
-    }
-}
diff --git a/htdocs/includes/repositories/packettelemetryrepository.class.php b/htdocs/includes/repositories/packettelemetryrepository.class.php
deleted file mode 100644
index 1254ee81ea2d24fa3868d681c2719de05ea5645f..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/packettelemetryrepository.class.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-
-class PacketTelemetryRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('PacketTelemetry');
-    }
-
-    /**
-     * Returnes an initiated PacketTelemetryRepository
-     *
-     * @return PacketTelemetryRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new PacketTelemetryRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @param  int $timestamp
-     * @return PacketTelemetry
-     */
-    public function getObjectById($id, $timestamp)
-    {
-        if (!isInt($id) || !isInt($timestamp)) {
-            return new PacketTelemetry(0);
-        }
-        return $this->getObjectFromSql('select * from packet_telemetry where id = ? and timestamp = ?', [$id, $timestamp]);
-    }
-
-    /**
-     * Get object by packet id
-     *
-     * @param  int $id
-     * @param  int $timestamp
-     * @return PacketTelemetry
-     */
-    public function getObjectByPacketId($id, $timestamp)
-    {
-        if (!isInt($id) || !isInt($timestamp)) {
-            return new PacketTelemetry(0);
-        }
-        return $this->getObjectFromSql('select * from packet_telemetry where packet_id = ? and timestamp = ?', [$id, $timestamp]);
-    }
-
-    /**
-     * Get latest object by station id (for the latest 3 days)
-     *
-     * @param  int $stationId
-     * @return array
-     */
-    public function getLatestObjectByStationId($stationId)
-    {
-        if (!isInt($stationId)) {
-            return new PacketTelemetry(0);
-        }
-        return $this->getObjectFromSql(
-            'select * from packet_telemetry
-            where station_id = ?
-                and timestamp > ?
-            order by timestamp desc limit 1', [$stationId, (time() - 24*60*60*3)]
-        );
-    }
-
-    /**
-     * Get latest object list by station id (useful for creating a chart)
-     *
-     * @param  int   $stationId
-     * @param  int   $endTimestamp
-     * @param  int   $hours
-     * @param  array $columns
-     * @return array
-     */
-    public function getLatestDataListByStationId($stationId, $endTimestamp , $hours, $columns)
-    {
-        if (!isInt($stationId) || !isInt($endTimestamp) || !isInt($hours)) {
-            return [];
-        }
-        $minTimestamp = $endTimestamp - (60*60*$hours);
-
-        $sql = 'select ' . implode(',', $columns) . ' from ' . $table . '
-            where station_id = ?
-                and timestamp >= ?
-                and timestamp <= ?
-            order by timestamp';
-        $arg = [$stationId, $minTimestamp, $endTimestamp];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $arg);
-        return $stmt->fetchAll(PDO::FETCH_ASSOC);
-    }
-
-    /**
-     * Get latest object list by station id
-     * We only include telemetry that has the same params, units and eqns as the latest telemetry packet
-     *
-     * @param  int             $stationId
-     * @param  int             $limit
-     * @param  int             $offset
-     * @param  int             $maxDays
-     * @return array
-     */
-    public function getLatestObjectListByStationId($stationId, $limit, $offset, $maxDays = 7)
-    {
-        if (!isInt($stationId) || !isInt($limit) || !isInt($offset) || !isInt($maxDays)) {
-            return [];
-        }
-        $latestObject = $this->getLatestObjectByStationId($stationId);
-
-        $sqlParameters = Array();
-        $sql = 'select * from packet_telemetry where station_id = ? and timestamp > ?';
-        $sqlParameters[] = $stationId;
-        $sqlParameters[] = (time() - 24*60*60*$maxDays);
-
-        if ($latestObject->stationTelemetryParamId !== null) {
-            $sql .= ' and station_telemetry_param_id = ?';
-            $sqlParameters[] = $latestObject->stationTelemetryParamId;
-        } else {
-            $sql .= ' and station_telemetry_param_id is null';
-        }
-
-        if ($latestObject->stationTelemetryUnitId !== null) {
-            $sql .= ' and station_telemetry_unit_id = ?';
-            $sqlParameters[] = $latestObject->stationTelemetryUnitId;
-        } else {
-            $sql .= ' and station_telemetry_unit_id is null';
-        }
-
-        // if ($latestObject->stationTelemetryEqnsId !== null) {
-        // $sql .= ' and station_telemetry_eqns_id = ?';
-        // $sqlParameters[] = $latestObject->stationTelemetryEqnsId;
-        // } else {
-        // $sql .= ' and station_telemetry_eqns_id is null';
-        // }
-
-        if ($latestObject->stationTelemetryBitsId !== null) {
-            $sql .= ' and station_telemetry_bits_id = ?';
-            $sqlParameters[] = $latestObject->stationTelemetryBitsId;
-        } else {
-            $sql .= ' and station_telemetry_bits_id is null';
-        }
-
-        $sql .= ' order by timestamp desc limit ? offset ?';
-        $sqlParameters[] = $limit;
-        $sqlParameters[] = $offset;
-
-        return $this->getObjectListFromSql($sql, $sqlParameters);
-    }
-
-
-    /**
-     * Get latest number of packets by station id
-     * We only include telemetry that has the same params, units and eqns as the latest telemetry packet
-     *
-     * @param  int             $stationId
-     * @param  int             $maxDays
-     * @return int
-     */
-    public function getLatestNumberOfPacketsByStationId($stationId, $maxDays = 7)
-    {
-        if (!isInt($stationId) || !isInt($maxDays)) {
-            return 0;
-        }
-        $latestObject = $this->getLatestObjectByStationId($stationId);
-
-        $sqlParameters = Array();
-        $sql = 'select count(*) c from packet_telemetry where station_id = ? and timestamp > ?';
-        $sqlParameters[] = $stationId;
-        $sqlParameters[] = (time() - 24*60*60*$maxDays);
-
-        if ($latestObject->stationTelemetryParamId !== null) {
-            $sql .= ' and station_telemetry_param_id = ?';
-            $sqlParameters[] = $latestObject->stationTelemetryParamId;
-        } else {
-            $sql .= ' and station_telemetry_param_id is null';
-        }
-
-        if ($latestObject->stationTelemetryUnitId !== null) {
-            $sql .= ' and station_telemetry_unit_id = ?';
-            $sqlParameters[] = $latestObject->stationTelemetryUnitId;
-        } else {
-            $sql .= ' and station_telemetry_unit_id is null';
-        }
-
-        // if ($latestObject->stationTelemetryEqnsId !== null) {
-        // $sql .= ' and station_telemetry_eqns_id = ?';
-        // $sqlParameters[] = $latestObject->stationTelemetryEqnsId;
-        // } else {
-        // $sql .= ' and station_telemetry_eqns_id is null';
-        // }
-
-        if ($latestObject->stationTelemetryBitsId !== null) {
-            $sql .= ' and station_telemetry_bits_id = ?';
-            $sqlParameters[] = $latestObject->stationTelemetryBitsId;
-        } else {
-            $sql .= ' and station_telemetry_bits_id is null';
-        }
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $sqlParameters);
-        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
-        $sum = 0;
-        foreach($rows as $row) {
-            $sum += $row['c'];
-        }
-
-        return $sum;
-    }
-}
diff --git a/htdocs/includes/repositories/packetweatherrepository.class.php b/htdocs/includes/repositories/packetweatherrepository.class.php
deleted file mode 100644
index 8f0d78e4faffbebde1c7d1364a4f735a0939cbdd..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/packetweatherrepository.class.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-class PacketWeatherRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('PacketWeather');
-    }
-
-    /**
-     * Returnes an initiated PacketWeatherRepository
-     *
-     * @return PacketWeatherRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new PacketWeatherRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @param  int $timestamp
-     * @return PacketWeather
-     */
-    public function getObjectById($id, $timestamp)
-    {
-        if (!isInt($id) || !isInt($timestamp)) {
-            return new PacketWeather(0);
-        }
-        return $this->getObjectFromSql('select * from packet_weather where id = ? and timestamp = ?', [$id, $timestamp]);
-    }
-
-    /**
-     * Get object by packet id
-     *
-     * @param  int $id
-     * @param  int $timestamp
-     * @return PacketWeather
-     */
-    public function getObjectByPacketId($id, $timestamp)
-    {
-        if (!isInt($id) || !isInt($timestamp)) {
-            return new PacketWeather(0);
-        }
-        return $this->getObjectFromSql('select * from packet_weather where packet_id = ? and timestamp = ?', [$id, $timestamp]);
-    }
-
-    /**
-     * Get latest object list by station id (useful for creating a chart)
-     *
-     * @param  int   $stationId
-     * @param  int   $endTimestamp
-     * @param  int   $hours
-     * @param  array $columns
-     * @return array
-     */
-    public function getLatestDataListByStationId($stationId, $endTimestamp, $hours, $columns)
-    {
-        if (!isInt($stationId) || !isInt($endTimestamp) || !isInt($hours)) {
-            return [];
-        }
-        $minTimestamp = $endTimestamp - (60*60*$hours);
-
-        $sql = 'select ' . implode(',', $columns) . ' from packet_weather
-            where station_id = ?
-                and timestamp >= ?
-                and timestamp <= ?
-            order by timestamp';
-        $arg = [$stationId, $minTimestamp, $endTimestamp];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $arg);
-        return $stmt->fetchAll(PDO::FETCH_ASSOC);
-    }
-
-    /**
-     * Get latest object list by station id
-     *
-     * @param  int $stationId
-     * @param  int $limit
-     * @param  int $offset
-     * @param  int $maxDays
-     * @return array
-     */
-    public function getLatestObjectListByStationIdAndLimit($stationId, $limit, $offset, $maxDays = 7)
-    {
-        if (!isInt($stationId) || !isInt($limit) || !isInt($offset) || !isInt($maxDays)) {
-            return [];
-        }
-        return $this->getObjectListFromSql(
-            'select * from packet_weather
-            where station_id = ?
-                and timestamp > ?
-                and (humidity is not null
-                    or pressure is not null
-                    or rain_1h is not null
-                    or rain_24h is not null
-                    or rain_since_midnight is not null
-                    or temperature is not null
-                    or wind_direction is not null
-                    or wind_gust is not null
-                    or wind_speed is not null
-                    or luminosity is not null
-                    or snow is not null)
-            order by timestamp desc limit ? offset ?', [$stationId, (time() - 24*60*60*$maxDays), $limit, $offset]
-        );
-    }
-
-    /**
-     * Get latest number of packets by station id
-     *
-     * @param  int $stationId
-     * @param  int $maxDays
-     * @return int
-     */
-    public function getLatestNumberOfPacketsByStationIdAndLimit($stationId, $maxDays = 7)
-    {
-        if (!isInt($stationId) || !isInt($maxDays)) {
-            return 0;
-        }
-        $sql = 'select count(*) c from packet_weather
-            where station_id = ?
-                and timestamp > ?
-                and (humidity is not null
-                    or pressure is not null
-                    or rain_1h is not null
-                    or rain_24h is not null
-                    or rain_since_midnight is not null
-                    or temperature is not null
-                    or wind_direction is not null
-                    or wind_gust is not null
-                    or wind_speed is not null
-                    or luminosity is not null
-                    or snow is not null)';
-        $parameters = [$stationId, (time() - 24*60*60*$maxDays)];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $parameters);
-        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
-        $sum = 0;
-        foreach($rows as $row) {
-            $sum += $row['c'];
-        }
-
-        return $sum;
-    }
-}
diff --git a/htdocs/includes/repositories/senderrepository.class.php b/htdocs/includes/repositories/senderrepository.class.php
deleted file mode 100644
index b9e2293fb2427b0ba6e4d55691843e5984c2b9e6..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/senderrepository.class.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-class SenderRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('Sender');
-    }
-
-    /**
-     * Returnes an initiated SenderRepository
-     *
-     * @return SenderRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new SenderRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return Sender
-     */
-    public function getObjectById($id)
-    {
-        if (!isInt($id)) {
-            return new Sender(0);
-        }
-
-        static $cache = array();
-        $key = $id;
-        if (!isset($cache[$key])) {
-            $cache[$key] = $this->getObjectFromSql('select * from sender where id = ?', [$id]);
-        }
-        return $cache[$key];
-    }
-}
diff --git a/htdocs/includes/repositories/stationrepository.class.php b/htdocs/includes/repositories/stationrepository.class.php
deleted file mode 100644
index 315aac27e0c6f4b48d0809cec1f1d3bf517745fd..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/stationrepository.class.php
+++ /dev/null
@@ -1,473 +0,0 @@
-<?php
-
-class StationRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-    private $_config;
-
-    public function __construct()
-    {
-        parent::__construct('Station');
-        $this->_config = parse_ini_file(ROOT . '/../config/trackdirect.ini', true);
-    }
-
-    /**
-     * Returnes an initiated StationRepository
-     *
-     * @return StationRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new StationRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return Station
-     */
-    public function getObjectById($id)
-    {
-        if (!isInt($id)) {
-            return new Station(0);
-        }
-
-        static $cache = array();
-        $key = $id;
-        if (!isset($cache[$key])) {
-            $cache[$key] = $this->getObjectFromSql('select * from station where id = ?', [$id]);
-        }
-        return $cache[$key];
-    }
-
-    /**
-     * Get object by name
-     *
-     * @param  string $name
-     * @return Station
-     */
-    public function getObjectByName($name)
-    {
-        if (!is_string($name)) {
-            return new Station(0);
-        }
-
-        static $cache = array();
-        $key = $name;
-        if (!isset($cache[$key])) {
-            $cache[$key] = $this->getObjectFromSql('select * from station where name = ? order by latest_location_packet_timestamp desc limit 1', [$name]);
-        }
-        return $cache[$key];
-    }
-
-    /**
-     * Get sender station object by sender id
-     *
-     * @param  string $name
-     * @param  int    $senderId
-     * @return Station
-     */
-    public function getSenderStationObjectBySenderId($senderId)
-    {
-        if (!isInt($senderId)) {
-            return new Station(0);
-        }
-
-        static $cache = array();
-        $key = $senderId;
-        if (!isset($cache[$key])) {
-            $cache[$key] = $this->getObjectFromSql('select station.* from station, sender where station.latest_sender_id = sender.id and sender.name = station.name and sender.id = ? and station.station_type_id = 1', [$senderId]);
-        }
-        return $cache[$key];
-    }
-
-    /**
-     * Get object by name and sender id
-     *
-     * @param  string $name
-     * @param  int    $senderId
-     * @return Station
-     */
-    public function getObjectByNameAndSenderId($name, $senderId)
-    {
-        if (!is_string($name) || !isInt($senderId)) {
-            return new Station(0);
-        }
-
-        static $cache = array();
-        $key = $name . ';' . $senderId;
-        if (!isset($cache[$key])) {
-            $cache[$key] = $this->getObjectFromSql('select * from station where name = ? and latest_sender_id = ?', [$name, $senderId]);
-        }
-        return $cache[$key];
-    }
-
-
-    /**
-     * Get object list
-     *
-     * @param  int   $activeDuringLatestNumberOfSeconds
-     * @param  int   $limit
-     * @param  int   $offset
-     * @return array
-     */
-    public function getObjectList($activeDuringLatestNumberOfSeconds = (24*60*60), $limit, $offset)
-    {
-        if ($activeDuringLatestNumberOfSeconds == 0) {
-            $activeDuringLatestNumberOfSeconds = time();
-        }
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepare(
-            'select * from station
-            where latest_confirmed_packet_timestamp is not null
-                and latest_confirmed_packet_timestamp > ?
-                and (source_id != 5 or latest_confirmed_packet_timestamp > ?)
-            order by latest_confirmed_packet_timestamp desc
-            limit ? offset ?'
-        );
-        $stmt->bindValue(1, (time() - $activeDuringLatestNumberOfSeconds));
-        $stmt->bindValue(2, (time() - (60*60*24))); // OGN data should be deleted after 24h, but just to be safe we avoid including older data when searching
-        $stmt->bindValue(3, $limit);
-        $stmt->bindValue(4, $offset);
-
-        $stmt->execute();
-        $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
-        if (is_array($records) && !empty($records)) {
-            return $this->_getObjectListFromRecords($records);
-        }
-
-        // No object found, return empty array
-        return [];
-    }
-
-    /**
-     * Get number of stations
-     *
-     * @param  int   $activeDuringLatestNumberOfSeconds
-     * @return int
-     */
-    public function getNumberOfStations($activeDuringLatestNumberOfSeconds = (24*60*60))
-    {
-        if ($activeDuringLatestNumberOfSeconds == 0) {
-            $activeDuringLatestNumberOfSeconds = time();
-        }
-
-        $sql = 'select count(*) c from station
-            where latest_confirmed_packet_timestamp is not null
-                and latest_confirmed_packet_timestamp > ?
-                and (source_id != 5 or latest_confirmed_packet_timestamp > ?)';
-        $parameters = [(time() - $activeDuringLatestNumberOfSeconds), (time() - (60*60*24))];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $parameters);
-        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
-        $sum = 0;
-        foreach($rows as $row) {
-            $sum += $row['c'];
-        }
-
-        return $sum;
-    }
-
-    /**
-     * Get object list by query string
-     *
-     * @param  int   $q
-     * @param  int   $activeDuringLatestNumberOfSeconds
-     * @param  int   $limit
-     * @param  int   $offset
-     * @return array
-     */
-    public function getObjectListByQueryString($q, $activeDuringLatestNumberOfSeconds = (24*60*60), $limit, $offset)
-    {
-        if (!is_string($q) || !isInt($limit)) {
-            return [];
-        }
-
-        if ($activeDuringLatestNumberOfSeconds == 0) {
-            $activeDuringLatestNumberOfSeconds = time();
-        }
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepare('
-	    select s.*
-            from station s
-	        left outer join ogn_device d on d.device_id = s.latest_ogn_sender_address
-            where s.latest_confirmed_packet_timestamp is not null
-                and s.latest_confirmed_packet_timestamp > ?
-                and (s.source_id != 5 or s.latest_confirmed_packet_timestamp > ?)
-                and (s.name ilike ? or d.registration ilike ? or d.cn ilike ?)
-            order by name
-            limit ? offset ?'
-        );
-        $stmt->bindValue(1, (time() - $activeDuringLatestNumberOfSeconds));
-        $stmt->bindValue(2, (time() - (60*60*24))); // OGN data should be deleted after 24h, but just to be safe we avoid including older data when searching
-	$stmt->bindValue(3, "$q%");
-	$stmt->bindValue(4, "$q%");
-	$stmt->bindValue(5, "$q%");
-        $stmt->bindValue(6, $limit);
-        $stmt->bindValue(7, $offset);
-
-        $stmt->execute();
-        $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
-        if (is_array($records) && !empty($records)) {
-            return $this->_getObjectListFromRecords($records);
-        }
-
-        // No object found, return empty array
-        return [];
-    }
-
-    /**
-     * Get number of stations by query string
-     *
-     * @param  int   $q
-     * @param  int   $activeDuringLatestNumberOfSeconds
-     * @return int
-     */
-    public function getNumberOfStationsByQueryString($q, $activeDuringLatestNumberOfSeconds = (24*60*60))
-    {
-        if (!is_string($q)) {
-            return 0;
-        }
-
-        if ($activeDuringLatestNumberOfSeconds == 0) {
-            $activeDuringLatestNumberOfSeconds = time();
-        }
-
-        $sql = 'select count(*) c from station
-            where latest_confirmed_packet_timestamp is not null
-                and latest_confirmed_packet_timestamp > ?
-                and (source_id != 5 or latest_confirmed_packet_timestamp > ?)
-                and name ilike ?';
-        $parameters = [(time() - $activeDuringLatestNumberOfSeconds), (time() - (60*60*24)), "$q%"];
-
-        $pdo = PDOConnection::getInstance();
-        $stmt = $pdo->prepareAndExec($sql, $parameters);
-        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
-        $sum = 0;
-        foreach($rows as $row) {
-            $sum += $row['c'];
-        }
-
-        return $sum;
-    }
-
-    /**
-     * Get object list by sender id (close to specified lat/lng)
-     *
-     * @param  int   $senderId
-     * @param  int   $limit
-     * @param  float $latitude
-     * @param  float $longitude
-     * @return array
-     */
-    public function getObjectListBySenderId($senderId, $limit, $latitude = null, $longitude = null)
-    {
-        if (!isInt($senderId) || !isFloat($latitude) || !isFloat($longitude) || !isInt($limit)) {
-            return [];
-        }
-
-        $pdo = PDOConnection::getInstance();
-
-        if ($latitude === null || $longitude === null) {
-            $stmt = $pdo->prepare(
-                'select * from station
-                where latest_confirmed_packet_timestamp is not null
-                    and latest_confirmed_packet_timestamp > ?
-                    and latest_sender_id = ?
-                limit ?'
-            );
-            $stmt->bindValue(1, (time() - 60*60*24));
-            $stmt->bindValue(2, $senderId);
-            $stmt->bindValue(3, $limit);
-        } else {
-            $stmt = $pdo->prepare(
-                'select * from station
-                where latest_confirmed_packet_timestamp is not null
-                    and latest_confirmed_packet_timestamp > ?
-                    and latest_sender_id = ?
-                order by (abs(latest_confirmed_latitude - ?) + abs(latest_confirmed_longitude - ?))
-                limit ?'
-            );
-            $stmt->bindValue(1, (time() - 60*60*24));
-            $stmt->bindValue(2, $senderId);
-            $stmt->bindValue(3, $latitude);
-            $stmt->bindValue(4, $longitude);
-            $stmt->bindValue(5, $limit);
-        }
-        $stmt->execute();
-        $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
-        if (is_array($records) && !empty($records)) {
-            return $this->_getObjectListFromRecords($records);
-        }
-
-        // No object found, return empty array
-        return [];
-    }
-
-    /**
-     * Get related object list by station id (stations with same name but different SSID)
-     *
-     * @param  int $stationId
-     * @param  int $limit
-     * @return array
-     */
-    public function getRelatedObjectListByStationId($stationId, $limit)
-    {
-        if (!isInt($stationId) || !isInt($limit)) {
-            return [];
-        }
-
-        $station = $this->getObjectById($stationId);
-        $name = $station->name;
-        $pos = strrpos($name, '-');
-        if ($pos) {
-            $call = substr($name, 0, $pos);
-        } else {
-            // No object found, return empty array
-            return [];
-        }
-
-        if ($station->latestPacketTimestamp !== null) {
-            $time = $station->latestPacketTimestamp;
-        } else {
-            $time = time();
-        }
-
-        $pdo = PDOConnection::getInstance();
-
-        if ($station->latestConfirmedLatitude === null || $station->latestConfirmedLongitude === null) {
-            $stmt = $pdo->prepare(
-                'select * from station
-                where latest_confirmed_packet_timestamp is not null
-                    and latest_confirmed_packet_timestamp > ?
-                    and name like ?
-                limit ?'
-            );
-            $stmt->bindValue(1, $time - 60*60*24, PDO::PARAM_STR);
-            $stmt->bindValue(2, "$call%", PDO::PARAM_STR);
-            $stmt->bindValue(3, $limit);
-        } else {
-            $stmt = $pdo->prepare(
-                'select * from station
-                where latest_confirmed_packet_timestamp is not null
-                    and latest_confirmed_packet_timestamp > ?
-                    and name like ?
-                order by (abs(latest_confirmed_latitude - ?) + abs(latest_confirmed_longitude - ?))
-                limit ?'
-            );
-            $stmt->bindValue(1, $station->latestPacketTimestamp - 60*60*24, PDO::PARAM_STR);
-            $stmt->bindValue(2, "$call%", PDO::PARAM_STR);
-            $stmt->bindValue(3, $station->latestConfirmedLatitude);
-            $stmt->bindValue(4, $station->latestConfirmedLongitude);
-            $stmt->bindValue(5, $limit);
-        }
-        $stmt->execute();
-        $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
-        if (is_array($records) && !empty($records)) {
-            return $this->_getObjectListFromRecords($records);
-        }
-
-        // No object found, return empty array
-        return [];
-    }
-
-    /**
-     * Get object list of stations near specified position
-     *
-     * @param  int $latitude
-     * @param  int $longitude
-     * @param  int $maxDistanceInKm
-     * @param  int $limit
-     * @return array
-     */
-    public function getCloseByObjectListByPosition($latitude, $longitude, $maxDistanceInKm = 100, $limit = 10000)
-    {
-        if (!isFloat($latitude) || !isFloat($longitude) || !isInt($maxDistanceInKm) || !isInt($limit)) {
-            return [];
-        }
-
-        if ($maxDistanceInKm <= 10) {
-            // Plus 0.1 should be about 11km
-            $minLatitude = $latitude - 0.1;
-            $maxLatitude = $latitude + 0.1;
-            $minLongitude = $longitude - 0.1;
-            $maxLongitude = $longitude + 0.1;
-        } else {
-            // Plus 1 should be about 111km
-            $minLatitude = $latitude - 1;
-            $maxLatitude = $latitude + 1;
-            $minLongitude = $longitude - 1;
-            $maxLongitude = $longitude + 1;
-        }
-
-        $minTimestamp = time() - 60*60; // Latest 1h is pretty fast
-
-        // The order by used here is not 100% accurate, but it's fast :-)
-        $list = $this->getObjectListFromSql(
-            'select * from station
-            where latest_confirmed_latitude > ?
-                and latest_confirmed_latitude < ?
-                and latest_confirmed_longitude > ?
-                and latest_confirmed_longitude < ?
-                and latest_confirmed_packet_timestamp > ?
-            order by (abs(latest_confirmed_latitude - ?) + abs(latest_confirmed_longitude - ?))
-            limit ?', [$minLatitude, $maxLatitude, $minLongitude, $maxLongitude, $minTimestamp, $latitude, $longitude, $limit]
-        );
-
-        $orderedList = [];
-        foreach ($list as $closeByStation) {
-            $distance = $closeByStation->getDistance($latitude, $longitude);
-            if ($distance !== null && $distance <= ($maxDistanceInKm*1000)) {
-                $key = intval($distance);
-                while (isset($orderedList[$key])) {
-                    $key++;
-                }
-                $orderedList[$key] = $closeByStation;
-            }
-        }
-        ksort($orderedList);
-        return array_values($orderedList);
-    }
-
-    /**
-     * Get object list of stations near specified station
-     *
-     * @param  int $stationId
-     * @param  int $limit
-     * @return array
-     */
-    public function getCloseByObjectListByStationId($stationId, $limit)
-    {
-        if (!isInt($stationId) || !isInt($limit)) {
-            return [];
-        }
-
-        $station = $this->getObjectById($stationId);
-        if ($station->latestConfirmedLatitude === null || $station->latestConfirmedLongitude === null) {
-            return [];
-        }
-
-        $closeByStationList = self::getCloseByObjectListByPosition($station->latestConfirmedLatitude, $station->latestConfirmedLongitude, 100, $limit + 1);
-        $result = Array();
-        foreach ($closeByStationList as $key => $closeByStation) {
-            if ($station->getId() == $closeByStation->getId()) {
-                break;
-            }
-        }
-        if (isset($key)) {
-            unset($closeByStationList[$key]);
-        }
-        return $closeByStationList;
-    }
-}
diff --git a/htdocs/includes/repositories/stationtelemetrybitsrepository.class.php b/htdocs/includes/repositories/stationtelemetrybitsrepository.class.php
deleted file mode 100644
index 290efe31678410bededd1dae18000f6bebdb0359..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/stationtelemetrybitsrepository.class.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-class StationTelemetryBitsRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('StationTelemetryBits');
-    }
-
-    /**
-     * Returnes an initiated StationTelemetryBitsRepository
-     *
-     * @return StationTelemetryBitsRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new StationTelemetryBitsRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return StationTelemetryBits
-     */
-    public function getObjectById($id)
-    {
-        return $this->getObjectFromSql('select * from station_telemetry_bits where id = ?', [$id]);
-    }
-}
diff --git a/htdocs/includes/repositories/stationtelemetryeqnsrepository.class.php b/htdocs/includes/repositories/stationtelemetryeqnsrepository.class.php
deleted file mode 100644
index 6fb72bf3c9354cdfaa21e023c58bfbdada72a106..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/stationtelemetryeqnsrepository.class.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-class StationTelemetryEqnsRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('StationTelemetryEqns');
-    }
-
-    /**
-     * Returnes an initiated StationTelemetryEqnsRepository
-     *
-     * @return StationTelemetryEqnsRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new StationTelemetryEqnsRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return StationTelemetryEqns
-     */
-    public function getObjectById($id)
-    {
-        return $this->getObjectFromSql('select * from station_telemetry_eqns where id = ?', [$id]);
-    }
-}
diff --git a/htdocs/includes/repositories/stationtelemetryparamrepository.class.php b/htdocs/includes/repositories/stationtelemetryparamrepository.class.php
deleted file mode 100644
index 34eba7fe56185733f4f11665d0deb32a6180fc74..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/stationtelemetryparamrepository.class.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-class StationTelemetryParamRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('StationTelemetryParam');
-    }
-
-    /**
-     * Returnes an initiated StationTelemetryParamRepository
-     *
-     * @return StationTelemetryParamRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new StationTelemetryParamRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return StationTelemetryParam
-     */
-    public function getObjectById($id)
-    {
-        return $this->getObjectFromSql('select * from station_telemetry_param where id = ?', [$id]);
-    }
-}
diff --git a/htdocs/includes/repositories/stationtelemetryunitrepository.class.php b/htdocs/includes/repositories/stationtelemetryunitrepository.class.php
deleted file mode 100644
index 0a616584ee537f76f354ef1674cf560744c34ba2..0000000000000000000000000000000000000000
--- a/htdocs/includes/repositories/stationtelemetryunitrepository.class.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-class StationTelemetryUnitRepository extends ModelRepository
-{
-
-    private static $_singletonInstance = null;
-
-    public function __construct()
-    {
-        parent::__construct('StationTelemetryUnit');
-    }
-
-    /**
-     * Returnes an initiated StationTelemetryUnitRepository
-     *
-     * @return StationTelemetryUnitRepository
-     */
-    public static function getInstance()
-    {
-        if (self::$_singletonInstance === null) {
-            self::$_singletonInstance = new StationTelemetryUnitRepository();
-        }
-
-        return self::$_singletonInstance;
-    }
-
-    /**
-     * Get object by id
-     *
-     * @param  int $id
-     * @return StationTelemetryUnit
-     */
-    public function getObjectById($id)
-    {
-        return $this->getObjectFromSql('select * from station_telemetry_unit where id = ?', [$id]);
-    }
-}
diff --git a/htdocs/public/.htaccess b/htdocs/public/.htaccess
deleted file mode 100755
index 44ac88e82422923f3cf5fadd22dc298b9114b34d..0000000000000000000000000000000000000000
--- a/htdocs/public/.htaccess
+++ /dev/null
@@ -1,18 +0,0 @@
-<IfModule mod_expires.c>
-    ExpiresActive On
-    ExpiresByType image/jpg "access 1 month"
-    ExpiresByType image/jpeg "access 1 month"
-    ExpiresByType image/gif "access 1 month"
-    ExpiresByType image/png "access 1 month"
-    ExpiresDefault "access 1 week"
-</IfModule>
-
-Options +FollowSymLinks
-RewriteEngine on
-
-# Avoid rewriting existing dirs
-RewriteRule ^/?(js|css|images|symbols|data|heatmaps|crossdomain.*|favicon.*|\.well-known|browserconfig\.xml|robots\.txt|ads\.txt)($|/) - [L]
-
-# Rewrite url
-RewriteCond %{REQUEST_METHOD} !=POST
-RewriteRule ^(.*)$ index.php?view=$1 [NC,L,QSA]
diff --git a/htdocs/public/css/main.css b/htdocs/public/css/main.css
deleted file mode 100755
index ad3bb35d4143d1f6ff611e394caf5bed713be1de..0000000000000000000000000000000000000000
--- a/htdocs/public/css/main.css
+++ /dev/null
@@ -1,866 +0,0 @@
-
-html {
-  background-color: #fff;
-  height: 100%;
-  overflow: hidden;
-}
-
-body {
-  margin: 0px;
-  padding: 0px !important;
-  width: 100%;
-  height: 100%;
-
-  font-family: "Sans-serif", "Helvetica" !important;
-  font-size: 12px;
-  background: #fff;
-}
-
-label {
-  display: inline-block;
-  width: 5em;
-}
-
-h1 {
-  font-family: "Sans-serif", "Helvetica" !important;
-  color: #1a1a1a;
-}
-
-h2 {
-  font-family: "Sans-serif", "Helvetica" !important;
-  color: #1a1a1a;
-}
-
-h3 {
-  font-family: "Sans-serif", "Helvetica" !important;
-  color: #1a1a1a;
-}
-
-sup {
-  font-weight: normal;
-}
-
-a {
-  color: #337ab7;
-  text-decoration: none;
-  background-color: transparent;
-}
-
-/* Set the position of the map */
-#map-container {
-  position:absolute;
-  top: 39px;
-  left: 0px;
-  width: 100%;
-  height: calc( 100% - 39px ); 
-  z-index:10;
-}
-
-/* Add a black background color to the top navigation */
-.topnav {
-  background-color: #333;
-  overflow: hidden;
-
-  background: #464b4c;
-  background-image: -webkit-linear-gradient(top, #464b4c, #3f4344);
-  background-image: -moz-linear-gradient(top, #464b4c, #3f4344);
-  background-image: -o-linear-gradient(top, #464b4c, #3f4344);
-  background-image: linear-gradient(to bottom, #464b4c, #3f4344);
-  -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.06);
-  box-shadow: inset 0 1px rgba(255, 255, 255, 0.06);
-
-  z-index:200;
-}
-
-/* Style the links inside the navigation bar */
-.topnav a {
-  float: left;
-  display: block;
-  color: #f2f2f2;
-  text-align: center;
-  padding: 12px 14px;
-  text-decoration: none;
-  font-size: 13px;
-}
-
-.dropdown-content-checkbox {
-  padding-left: 45px !important;
-  background-image: url(/images/unchecked.png);
-  background-repeat: no-repeat;
-  background-position: 5% 50%;
-}
-
-.dropdown-content-checkbox-active {
-  background-image: url(/images/checked.png);
-}
-
-.dropdown-content-checkbox-hidden {
-  display: none !important;
-}
-
-/* Hide the link that should open and close the topnav on small screens */
-.topnav .icon {
-  display: none;
-}
-
-/* Dropdown container - needed to position the dropdown content */
-.dropdown {
-  float: left;
-  overflow: hidden;
-}
-
-/* Style the dropdown button to fit inside the topnav */
-.dropdown .dropbtn {
-  font-size: 13px;
-  border: none;
-  outline: none;
-  color: white;
-  padding: 11px 14px;
-  background-color: inherit;
-  font-family: inherit;
-  margin: 0;
-}
-
-/* Style the dropdown content (hidden by default) */
-.dropdown-content {
-  display: none;
-  position: absolute;
-  background-color: #f9f9f9;
-  min-width: 160px;
-  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
-  z-index: 200;
-}
-
-/* Style the links inside the dropdown */
-.dropdown-content a {
-  float: none;
-  color: black;
-  padding: 12px 14px;
-  text-decoration: none;
-  display: block;
-  text-align: left;
-}
-
-/* Add a dark background on topnav links and the dropdown button on hover */
-.topnav a:hover, .dropdown:hover .dropbtn {
-  background-color: #555;
-  color: white;
-}
-
-/* Add a grey background to dropdown links on hover */
-.dropdown-content a:hover {
-  background-color: #ddd;
-  color: black;
-}
-
-/* Show the dropdown menu when the user moves the mouse over the dropdown button */
-.dropdown:hover .dropdown-content {
-  display: block;
-}
-
-/* When the screen is less than 880 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
-@media screen and (max-width: 880px) {
-  .topnav a:not(:first-child), .dropdown .dropbtn {
-  display: none;
-  }
-  .topnav a.icon {
-  float: right;
-  display: block;
-  }
-}
-
-/* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens (display the links vertically instead of horizontally) */
-@media screen and (max-width: 880px) {
-  .topnav.responsive {position: relative;}
-  .topnav.responsive a.icon {
-  position: absolute;
-  right: 0;
-  top: 0;
-  }
-  .topnav.responsive a {
-  float: none;
-  display: block;
-  text-align: left;
-  }
-  .topnav.responsive .dropdown {float: none;}
-  .topnav.responsive .dropdown-content {position: relative;}
-  .topnav.responsive .dropdown .dropbtn {
-  display: block;
-  width: 100%;
-  text-align: left;
-  }
-}
-
-/* The Modal (background) */
-.modal {
-  display: none;
-  position: fixed;
-  z-index: 300;
-  padding-top: 100px; /* Location of the box */
-  left: 0;
-  top: 0;
-  width: 100%;
-  height: 100%;
-  overflow: auto;
-  background-color: rgb(0,0,0);
-  background-color: rgba(0,0,0,0.4);
-}
-
-#td-modal {
-  display: block;
-}
-
-/* Modal Content */
-.modal-content, .modal-long-content {
-  background-color: #fff;
-  margin: auto;
-  padding: 0px;
-  border: 1px solid #888;
-  width: 80%;
-  max-width: 1200px;
-}
-
-.modal-long-content {
-  height: 80%;
-  max-height: 1200px;
-}
-
-@media screen and (max-width: 1000px) {
-  .modal-long-content {
-    width: 95%;
-    height: 95%;
-  }
-  .modal {
-    padding-top: 10px;
-  }
-}
-
-/* Modal Close Button */
-.modal-close {
-  color: #aaaaaa;
-  float: right;
-  font-size: 28px;
-  font-weight: bold;
-  margin: 10px;
-}
-.modal-close:hover,
-.modal-close:focus {
-  color: #000;
-  text-decoration: none;
-  cursor: pointer;
-}
-
-.modal-title {
-  font-weight: bold;
-  font-size: 16pt;
-  margin: 15px 15px 15px 20px;
-  float: left;
-  font-family: "Sans-serif", "Helvetica" !important;
-}
-
-.modal-content-header {
-  width: 100%;
-  height: 55px;
-  border-bottom: 1px solid #e9ecef;
-  border-top-left-radius: 0.3rem;
-  border-top-right-radius: 0.3rem;
-}
-
-.modal-content-body {
-  height: calc(100% - 56px);
-  margin: 0px;
-  padding: 0px;
-  overflow: auto;
-}
-
-input[type=text], select, textarea {
-  padding: 10px;
-  border: 1px solid #ccc;
-  border-radius: 4px;
-  box-sizing: border-box;
-  resize: vertical
-}
-
-input[type=text] {
-  padding: 11px;
-}
-
-input[type=submit] {
-  background-color: #4CAF50;
-  color: white;
-  padding: 12px 20px;
-  border: none;
-  border-radius: 4px;
-  cursor: pointer;
-}
-
-input[type=submit]:hover {
-  background-color: #45a049;
-}
-
-.form-container {
-  margin-top: 6px;
-  margin-bottom: 16px;
-  display: inline-block;
-  width:  100%;
-}
-
-#cordinates-container {
-  clear: both;
-  padding:5px;
-  color: #4d4d4d;
-  background-color: rgba(255, 255, 255, 0.7);
-  font-size: 11px;
-  display: none;
-  min-width: 130px;
-}
-
-#status-container {
-  padding:5px;
-  white-space:nowrap;
-  line-height: 20px;
-  font-size: 11px;
-  background-color: rgba(255, 255, 255, 0.7);
-}
-
-@media screen and (min-width: 800px) {
-  #cordinates-container {
-    display: block;
-  }
-}
-
-#right-container {
-  position: absolute;
-  right: 0px;
-  text-align: right;
-}
-
-#right-container-info, #right-container-filtered, #right-container-timetravel {
-  position:relative;
-  right:10px;
-  z-index:50;
-
-  color: #4d4d4d;
-  font-size:11px;
-  font-family: "Sans-serif", "Helvetica";
-
-  margin-bottom: 15px;
-}
-
-#right-container-filtered, #right-container-timetravel {
-  display: none;
-}
-
-.modal-inner-content {
-  max-width: 1100px;
-
-  padding-top: 10px;
-  padding-left: 30px;
-  padding-right: 30px;
-  padding-bottom: 10px;
-
-  margin-left: auto;
-  margin-right: auto;
-
-  font-size: 9pt;
-  font-family: "Sans-serif", "Helvetica";
-}
-
-
-.modal-inner-content-menu {
-  font-size: 9pt;
-  padding-top: 15px;
-  padding-bottom: 3px;
-
-}
-
-.modal-inner-content-menu a, .modal-inner-content-menu span {
-  margin-right: 20px;
-}
-
-.modal-inner-content-about h2:not(:first-child) {
-    padding-top: 20px;
-}
-
-.modal-inner-content-about h2 {
-    font-weight: normal;
-}
-
-.modal-inner-content-about h3 {
-    padding-top: 15px;
-}
-
-.overview-content-summary {
-  float:left;
-  padding-right: 30px;
-}
-
-.overview-content-summary div div {
-  font-size: 9pt;
-  line-height: 14pt;
-  font-family: "Sans-serif", "Helvetica";
-  word-break: break-all;
-}
-
-.overview-content-symbol {
-  float:left;
-  width:200px;
-  text-align:left;
-  color: grey;
-  font-family: "Helvetica";
-  font-size: 13px;
-  display: none;
-  text-align: center;
-}
-
-.overview-content-symbol h3 {
-  font-size: 12px;
-  font-weight: bold;
-  color: grey;
-}
-
-.overview-content-symbol p {
-  font-size: 10px;
-  margin: 0px;
-}
-
-.overview-content-symbol div {
-  padding-bottom: 10px;
-}
-
-.overview-content-explanations, .list-explanations {
-  clear: both;
-  width: 100%;
-  font-size: 12px;
-}
-
-.overview-content-summary-cell-time {
-  color: grey;
-}
-
-.overview-content-summary-cell-weather-time {
-  color: #227152;
-}
-
-.overview-content-summary-cell-telemetry-time {
-  color: #823030;
-}
-
-.overview-content-summary-cell-position {
-  color: #754D08;
-}
-
-.overview-content-summary-cell-posambiguity {
-  color: darkred;
-}
-
-.overview-content-summary-cell-status {
-  color: #375654;
-}
-
-.overview-content-summary-cell-phg {
-  color: #440B2A;
-}
-
-.overview-content-packet-frequency span:nth-of-type(2){
-  color: grey;
-}
-
-.overview-content-number-of-packets span {
-  color: grey;
-}
-
-.overview-content-station span {
-  vertical-align: bottom;
-}
-
-.overview-content-station img {
-  vertical-align: middle;
-}
-
-.overview-content-station-list {
-  padding-top: 5px;
-}
-
-.overview-content-station-list img {
-  vertical-align: middle;
-}
-
-.overview-content-station-list span {
-  line-height: 24px;
-  vertical-align: bottom;
-}
-
-.overview-content-station-list a {
-  line-height: 24px;
-  font-weight: bold;
-}
-
-.overview-content-station-list span span {
-  color: grey;
-  float: right;
-  padding-right: 50px;
-  font-weight: normal;
-}
-
-.overview-content-summary-hr, .overview-content-summary-hr-indent{
-  font-weight: bold;
-  font-family: "Helvetica";
-  font-size: 13px;
-  padding-right:25px;
-  white-space: nowrap;
-  width: 180px;
-}
-
-.overview-content-summary-hr-indent {
-  padding-left: 20px;
-}
-
-.overview-content-divider {
-  height: 20px;
-}
-
-#raw-content-output p {
-    white-space: nowrap;
-    margin-top: 0px;
-    margin-bottom: 5px;
-    font-size: 8pt;
-    font-family: "Sans-serif", "Helvetica";
-    line-height: normal;
-    clear: both;
-}
-
-#raw-content-output a {
-    font-weight: bold;
-}
-
-.raw-packet-warning {
-    color: darkorange;
-}
-
-.raw-packet-error {
-    color: darkred;
-}
-
-.raw-packet-timestamp {
-    color:grey;
-}
-
-.telemetry-subtable {
-    display: table;
-}
-
-.telemetry-subtable div {
-    display: table-row;
-}
-
-.telemetry-subtable div div {
-    display: table-cell;
-    font-size: 8pt;
-    color: grey;
-    font-family: "Sans-serif", "Helvetica";
-    padding-right: 10px;
-    padding-top: 3px;
-}
-
-.telemetry-biton {
-    color: black;
-}
-
-.telemetry-bitoff {
-    color: lightgrey;
-    text-decoration: line-through;
-}
-
-.horizontal-line {
-  height: 1px;
-  margin: 5px 0px 25px 0px;
-  padding: 0;
-  background-color: #e9ecef;
-  clear: both;
-  margin-top: 3px;
-}
-
-
-@media screen and (min-width: 600px) {
-  .overview-content-summary {
-    display:table;
-    min-width: 500px;
-  }
-
-  .overview-content-summary div {
-    display:table-row;
-  }
-
-  .overview-content-summary div div {
-    display:table-cell;
-  }
-}
-
-@media screen and (max-width: 600px) {
-  .overview-content-summary-hr, .overview-content-summary-hr-indent {
-  padding-top: 8px;
-  }
-
-  .overview-content-summary-indent {
-  padding-left: 20px;
-  }
-}
-
-@media screen and (min-width: 850px) {
-  .overview-content-summary {
-    display:table;
-    min-width: 500px;
-    width: calc(100% - 300px);
-  }
-
-  .overview-content-symbol {
-    display: block;
-  }
-}
-
-.tooltiptext {
-  display:none;
-  width: 150px;
-  font-family: "Helvetica";
-  font-size: 14px;
-  line-height: 16px;
-  padding: 5px;
-}
-
-.leaflet-marker-tooltiptext {
-  padding-left: 3px !important;
-  padding-right: 0px !important;
-  padding-top: 0px !important;
-  padding-bottom: 0px !important;
-}
-
-.leaflet-marker-labeltext {
-  background-color: transparent !important;
-  box-shadow: none !important;
-  box-shadow: none !important;
-  font-weight: bold !important;
-  font-size: 10px !important;
-  border: none !important;
-  color: #000 !important;
-}
-
-.leaflet-marker-tooltiptext::before, .leaflet-marker-labeltext::before {
-  border: none !important;
-}
-
-.leaflet-infowindow-content .leaflet-popup-content-wrapper {
-  border-radius: 2px !important;
-}
-
-.leaflet-popup-close-button {
-  height: auto !important;
-  padding: 4px !important;
-}
-
-.leaflet-bottom {
-  bottom: 5px !important;
-}
-
-.datagrid table {
-  border-collapse: collapse;
-  text-align: left;
-  width: 100%;
-}
-
-.datagrid {
-  font: normal 12px/150% Arial, Helvetica, sans-serif;
-  background: #fff;
-  overflow: hidden;
-  border: 1px solid #c3c3c3;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-
-.datagrid table td, .datagrid table th {
-  padding: 1px 10px;
-}
-
-.datagrid table thead th {
-  background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #E8E8E8), color-stop(1, #D1D1D1) );
-  background:-moz-linear-gradient( center top, #E8E8E8 5%, #D1D1D1 100% );
-  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#E8E8E8', endColorstr='#D1D1D1');
-  background-color:#E8E8E8;
-  color:#636363;
-  font-size: 13px;
-  font-weight: bold;
-  border-left: 1px solid #A3A3A3;
-  line-height: 23px;
-}
-
-.datagrid table thead th:first-child {
-  border: none;
-}
-
-.datagrid table tbody td {
-  color: #404040;
-  border-left: 1px solid #DBDBDB;
-  font-size: 12px;
-  font-weight: normal;
-  line-height: 22px;
-  vertical-align: top;
-}
-
-.datagrid table tbody tr:nth-child(odd) {
-  background: #F4F4F4;
-  color: #404040;
-}
-
-.datagrid table tbody td:first-child {
-  border-left: none;
-}
-
-.datagrid table tbody tr:last-child td {
-  border-bottom: none;
-}
-
-.datagrid table tbody td table td {
-  border-left: none;
-  padding: 0;
-}
-
-.datagrid table tbody td table tr {
-  background-color: rgba(255, 255, 255, 0) !important;
-  color: #404040;
-}
-
-.pagination {
-  display: inline-block;
-}
-
-.pagination a {
-  color: black;
-  float: left;
-  padding: 8px 16px;
-  text-decoration: none;
-  height: 14px;
-}
-
-.pagination a:first-child, .pagination a:last-child {
-  font-size: 9px;
-}
-
-.pagination a.active {
-  background-color: #4CAF50;
-  color: white;
-  border-radius: 5px;
-}
-
-.pagination a:hover:not(.active) {
-  background-color: #ddd;
-  border-radius: 5px;
-}
-
-@media screen and (max-width: 600px) {
-  .pagination-rows {
-    display: none;
-  }
-
-  #raw-type {
-    display: none;
-  }
-}
-
-.decoded {
-    margin-bottom: 20px;
-}
-
-.decoded table tr td:first-child {
-    width: 150px;
-}
-
-@media screen and (max-width: 600px) {
-  .datagrid-statistics tr th:nth-child(3),
-  .datagrid-statistics tr th:nth-child(4) {
-    display:none;
-  }
-  .datagrid-statistics tr td:nth-child(3),
-  .datagrid-statistics tr td:nth-child(4) {
-    display:none;
-  }
-}
-
-@media screen and (max-width: 600px) {
-  .datagrid-weather tr th:nth-child(3),
-  .datagrid-weather tr th:nth-child(4),
-  .datagrid-weather tr th:nth-child(5),
-  .datagrid-weather tr th:nth-child(6),
-  .datagrid-weather tr th:nth-child(7),
-  .datagrid-weather tr th:nth-child(8) {
-    display:none;
-  }
-  .datagrid-weather tr td:nth-child(3),
-  .datagrid-weather tr td:nth-child(4),
-  .datagrid-weather tr td:nth-child(5),
-  .datagrid-weather tr td:nth-child(6),
-  .datagrid-weather tr td:nth-child(7),
-  .datagrid-weather tr td:nth-child(8) {
-    display:none;
-  }
-}
-
-@media screen and (max-width: 600px) {
-  .datagrid-telemetry1 tr th:nth-child(4),
-  .datagrid-telemetry1 tr th:nth-child(5),
-  .datagrid-telemetry1 tr th:nth-child(6) {
-    display:none;
-  }
-  .datagrid-telemetry1 tr td:nth-child(4),
-  .datagrid-telemetry1 tr td:nth-child(5),
-  .datagrid-telemetry1 tr td:nth-child(6) {
-    display:none;
-  }
-}
-
-@media screen and (max-width: 600px) {
-  .datagrid-telemetry2 tr th:nth-child(4),
-  .datagrid-telemetry2 tr th:nth-child(5),
-  .datagrid-telemetry2 tr th:nth-child(6),
-  .datagrid-telemetry2 tr th:nth-child(7),
-  .datagrid-telemetry2 tr th:nth-child(8),
-  .datagrid-telemetry2 tr th:nth-child(9) {
-    display:none;
-  }
-  .datagrid-telemetry2 tr td:nth-child(4),
-  .datagrid-telemetry2 tr td:nth-child(5),
-  .datagrid-telemetry2 tr td:nth-child(6),
-  .datagrid-telemetry2 tr td:nth-child(7),
-  .datagrid-telemetry2 tr td:nth-child(8),
-  .datagrid-telemetry2 tr td:nth-child(9) {
-    display:none;
-  }
-}
-
-@media screen and (max-width: 600px) {
-  .datagrid-search tr th:nth-child(3),
-  .datagrid-search tr th:nth-child(4) {
-    display:none;
-  }
-  .datagrid-search tr td:nth-child(3),
-  .datagrid-search tr td:nth-child(4) {
-    display:none;
-  }
-}
-
-@media screen and (max-width: 800px) {
-  .datagrid-search tr th:nth-child(4) {
-    display:none;
-  }
-  .datagrid-search tr td:nth-child(4) {
-    display:none;
-  }
-}
-
-@media screen and (max-width: 600px) {
-  .modal-inner-content-menu a, .modal-inner-content-menu span {
-      margin-bottom: 10px;
-      display: block;
-  }
-}
-
diff --git a/htdocs/public/data/coverage.php b/htdocs/public/data/coverage.php
deleted file mode 100644
index bb662aa87af6c286e2f4a32b1017c015eb43490d..0000000000000000000000000000000000000000
--- a/htdocs/public/data/coverage.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-require dirname(__DIR__) . "../../includes/bootstrap.php";
-
-$response = [];
-$station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null);
-if ($station->isExistingObject()) {
-    $response['station_id'] = $station->id;
-    $response['coverage'] = [];
-
-    $numberOfHours = 10*24; // latest 10 days should be enough
-    $limit = 5000; // Limit number of packets to reduce load on server (and browser)
-
-    if (getWebsiteConfig('coverage_only_moving_senders')) {
-        $packetPaths = PacketPathRepository::getInstance()->getLatestMovingDataListByReceivingStationId($_GET['id'] ?? null, $numberOfHours, $limit);
-    } else {
-        $packetPaths = PacketPathRepository::getInstance()->getLatestDataListByReceivingStationId($_GET['id'] ?? null, $numberOfHours, $limit);
-    }
-
-
-    foreach ($packetPaths as $path) {
-        $row = [];
-        $row['latitude'] = $path['sending_latitude'];
-        $row['longitude'] = $path['sending_longitude'];
-        $row['distance'] = $path['distance'];
-        $response['coverage'][] = $row;
-    }
-}
-
-header('Content-type: application/json');
-echo json_encode($response);
diff --git a/htdocs/public/data/kml.php b/htdocs/public/data/kml.php
deleted file mode 100644
index 79321f54149cde09a2fe9731c3398a8833b25c01..0000000000000000000000000000000000000000
--- a/htdocs/public/data/kml.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-require dirname(__DIR__) . "../../includes/bootstrap.php";
-
-if (isset($_GET['id']) && isInt($_GET['id'])) {
-    $station = StationRepository::getInstance()->getObjectById($_GET['id']);
-} else {
-    $station = new Station(null);
-}
-
-$color = null;
-if (isset($_GET['color'])) {
-    $color = $_GET['color'];
-}
-
-$startTimestamp = time() - (60*60*24); // Default to 24h
-if (isset($_GET['startts'])) {
-    $startTimestamp = $_GET['startts'];
-}
-if ($startTimestamp < (time() - (60*60*24*3))) {
-    $startTimestamp = time() - (60*60*24*3); // Not older than 3 days allowed
-}
-
-$endTimestamp = time();
-if (isset($_GET['endts']) && isInt($_GET['endts'])) {
-    $endTimestamp = $_GET['endts'];
-}
-
-$startTimestampString = strftime('%Y%m%d%H%M', $startTimestamp);
-$endTimestampString = strftime('%Y%m%d%H%M', $endTimestamp);
-
-if ($station->isExistingObject()) {
-    $stationIds = [];
-    if ($station->stationTypeId == 2) {
-        $currentStations = StationRepository::getInstance()->getObjectListByName($station->name, 2, $station->sourceId);
-        foreach ($currentStations as $currentStation) {
-            $stationIds[] = $currentStation->getId();
-        }
-    } else {
-        $stationIds[] = $station->getId();
-    }
-
-    $lateststation = null;
-    foreach ($stationIds as $stationId) {
-        $s = StationRepository::getInstance()->getObjectById($stationId);
-        if ($lateststation === null) {
-            $lateststation = $s;
-        } else if ($lateststation->latestConfirmedPacketTimestamp < $s->latestConfirmedPacketTimestamp) {
-            $lateststation = $s;
-        }
-    }
-
-    $packets = PacketRepository::getInstance()->getConfirmedObjectListByStationIdList($stationIds, $startTimestamp, $endTimestamp);
-    $dom = Kml::getInstance()->getKmlDomDocument($lateststation, $packets, $startTimestamp, $endTimestamp, $color);
-    $kmlOutput = $dom->saveXML();
-
-    header('Content-type: application/vnd.google-earth.kml+xml');
-    header('Content-Disposition: attachment; filename="' . htmlspecialchars($lateststation->name) . '-' . $startTimestampString . '-' . $endTimestampString . '.kml"');
-    echo Kml::getInstance()->formatKmlContent($kmlOutput, " ", 4);
-}
diff --git a/htdocs/public/data/trail.php b/htdocs/public/data/trail.php
deleted file mode 100644
index 064f0e55a5907510e74f9bfdef3ae868601a248e..0000000000000000000000000000000000000000
--- a/htdocs/public/data/trail.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-require dirname(__DIR__) . "../../includes/bootstrap.php";
-
-$response = [];
-$station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null);
-if ($station->isExistingObject()) {
-    $numberOfHours = $_GET['hours'] ?? 1;
-
-    $columns = ['timestamp'];
-    $type = 'speed';
-    if ($_GET['type'] == 'speed') {
-        $type = 'speed';
-        if ($_GET['imperialUnits'] ?? '0' == '1') {
-            $response[] = array('Time', 'Speed (mph)');
-        } else {
-            $response[] = array('Time', 'Speed (kmh)');
-        }
-    } else {
-        $type = 'altitude';
-        if ($_GET['imperialUnits'] ?? '0' == '1') {
-            $response[] = array('Time', 'Altitude (ft)');
-        } else {
-            $response[] = array('Time', 'Altitude (m)');
-        }
-    }
-    $columns[] = $type;
-
-    $packets = PacketRepository::getInstance()->getLatestDataListByStationId($_GET['id'] ?? null, $numberOfHours, $columns);
-    foreach($packets as $packet) {
-        $value = floatval($packet[$type]);
-        if ($_GET['imperialUnits'] ?? '0' == '1') {
-            if ($type == 'speed') {
-                $value = convertKilometerToMile($value);
-            } else if ($type == 'altitude') {
-                $value = convertMeterToFeet($value);
-            }
-        }
-
-        if ($type == 'speed' && count($response) > 1) {
-            if (isset($response[count($response) - 1])) {
-                $prevTimestamp = $response[count($response) - 1][0];
-                if ($prevTimestamp < ($packet['timestamp'] - 60*60)) {
-                    // Previous value is old, make sure we have a break in graph
-                    $response[] = array($prevTimestamp + 1, null);
-                }
-            }
-        }
-
-        $response[] = [$packet['timestamp'], $value];
-    }
-}
-
-header('Content-type: application/json');
-echo json_encode($response);
diff --git a/htdocs/public/favicon.ico b/htdocs/public/favicon.ico
deleted file mode 100755
index 6a8a77bd5a18e9e9377bda4b1fe23d8e7ccac6c6..0000000000000000000000000000000000000000
Binary files a/htdocs/public/favicon.ico and /dev/null differ
diff --git a/htdocs/public/heatmaps/.htaccess b/htdocs/public/heatmaps/.htaccess
deleted file mode 100755
index 413bd31b84f2df2cc811382c5a7935c8bf50ffd3..0000000000000000000000000000000000000000
--- a/htdocs/public/heatmaps/.htaccess
+++ /dev/null
@@ -1,23 +0,0 @@
-<IfModule mod_expires.c>
-    ExpiresActive On
-    ExpiresByType image/jpg "access 1 hour"
-    ExpiresByType image/jpeg "access 1 hour"
-    ExpiresByType image/gif "access 1 hour"
-    ExpiresByType image/png "access 1 hour"
-    ExpiresDefault "access 1 week"
-</IfModule>
-
-Options +FollowSymLinks
-RewriteEngine On
-
-# Do not do anything for already existing files and folders
-RewriteCond %{REQUEST_FILENAME} -f [OR]
-RewriteCond %{REQUEST_FILENAME} -d
-RewriteRule .+ - [L]
-
-RewriteCond %{SCRIPT_FILENAME} !-d
-RewriteCond %{SCRIPT_FILENAME} !-f
-RewriteCond %{REQUEST_URI} \.png$
-
-# Images that needs to be handled by heatmap.php
-RewriteRule ^/?latest-heatmap\.(\d+)\.(\d+)\.(\d+)\.png$ ./heatmap.php?zoom=$1&x=$2&y=$3
diff --git a/htdocs/public/heatmaps/gd-heatmap/LICENSE b/htdocs/public/heatmaps/gd-heatmap/LICENSE
deleted file mode 100644
index 7ffb009659f5854d88a6c78b12993aee287fa345..0000000000000000000000000000000000000000
--- a/htdocs/public/heatmaps/gd-heatmap/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 xird
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/htdocs/public/heatmaps/gd-heatmap/README.md b/htdocs/public/heatmaps/gd-heatmap/README.md
deleted file mode 100644
index cba16fe0b1bf63c55db5371d5318278b991c9b2a..0000000000000000000000000000000000000000
--- a/htdocs/public/heatmaps/gd-heatmap/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-gd-heatmap
-==========
-
-GD-Heatmap is a heatmap generation library using PHP and GD.
-
-Take a look at the test.php script to get started.
diff --git a/htdocs/public/heatmaps/gd-heatmap/gd-rg.php b/htdocs/public/heatmaps/gd-heatmap/gd-rg.php
deleted file mode 100644
index 74066a4942b4c01f2fdf59dcc70a2c3fdee369ec..0000000000000000000000000000000000000000
--- a/htdocs/public/heatmaps/gd-heatmap/gd-rg.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-/**
- * This class is originally from here: http://planetozh.com/download/gd-gradient-fill.php
- *
- * It was then modified by StackOverflow user Justin (http://stackoverflow.com/users/265575/justin)
- * ..in this question: http://stackoverflow.com/questions/6615602/radial-gradients-with-opacity-in-php
- * ..to support alpha, and uploaded here: http://codepad.org/1eZ3Km0J/fork .
- * 
- * Only a couple of changes were needed to use this class with the heatmap lib.
- *
- */
-class gd_gradient_alpha {
-
-    // Constructor. Creates, fills and returns an image
-    function gd_gradient_alpha($w,$h,$d,$rgb,$as,$ae,$step=0) {
-        $this->width = $w;
-        $this->height = $h;
-        $this->direction = $d;
-        $this->color = $rgb;
-        $this->alphastart = $as;
-        $this->alphaend = $ae;
-        $this->step = intval(abs($step));
-
-        // Attempt to create a blank image in true colors, or a new palette based image if this fails
-        if (function_exists('imagecreatetruecolor')) {
-            $this->image = imagecreatetruecolor($this->width,$this->height);
-        } elseif (function_exists('imagecreate')) {
-            $this->image = imagecreate($this->width,$this->height);
-        } else {
-            die('Unable to create an image');
-        }
-
-        imagealphablending($this->image, false);
-        imagesavealpha($this->image, true);
-
-        // Fill it
-        $this->fillalpha($this->image,$this->direction,$this->color,$this->alphastart,$this->alphaend);
-
-        // Show it
-        //$this->display($this->image);
-
-        // Return it
-        //return $this->image;
-    }
-    
-    function get_image() {
-        return $this->image;    
-    }
-
-
-    // Displays the image with a portable function that works with any file type
-    // depending on your server software configuration
-    function display ($im) {
-        if (function_exists("imagepng")) {
-            header("Content-type: image/png");
-            imagepng($im);
-        }
-        elseif (function_exists("imagegif")) {
-            header("Content-type: image/gif");
-            imagegif($im);
-        }
-        elseif (function_exists("imagejpeg")) {
-            header("Content-type: image/jpeg");
-            imagejpeg($im, "", 0.5);
-        }
-        elseif (function_exists("imagewbmp")) {
-            header("Content-type: image/vnd.wap.wbmp");
-            imagewbmp($im);
-        } else {
-            die("Doh ! No graphical functions on this server ?");
-        }
-        return true;
-    }
-
-
-    // The main function that draws the gradient
-    function fillalpha($im,$direction,$rgb,$as,$ae) {
-
-        list($r,$g,$b) = $this->hex2rgb($rgb);
-        $a1 = $this->a2sevenbit($as);
-        $a2 = $this->a2sevenbit($ae);
-
-        switch($direction) {
-            case 'horizontal':
-                $line_numbers = imagesx($im);
-                $line_width = imagesy($im);
-                break;
-            case 'vertical':
-                $line_numbers = imagesy($im);
-                $line_width = imagesx($im);
-                break;
-            case 'ellipse':
-                $width = imagesx($im);
-                $height = imagesy($im);
-                $rh=$height>$width?1:$width/$height;
-                $rw=$width>$height?1:$height/$width;
-                $line_numbers = min($width,$height);
-                $center_x = $width/2;
-                $center_y = $height/2;
-                imagefill($im, 0, 0, imagecolorallocatealpha($im, $r, $g, $b, $a1));
-                break;
-            case 'ellipse2':
-                $width = imagesx($im);
-                $height = imagesy($im);
-                $rh=$height>$width?1:$width/$height;
-                $rw=$width>$height?1:$height/$width;
-                $line_numbers = sqrt(pow($width,2)+pow($height,2));
-                $center_x = $width/2;
-                $center_y = $height/2;
-                break;
-            case 'circle':
-                $width = imagesx($im);
-                $height = imagesy($im);
-                $line_numbers = sqrt(pow($width,2)+pow($height,2));
-                $center_x = $width/2;
-                $center_y = $height/2;
-                $rh = $rw = 1;
-                break;
-            case 'circle2':
-                $width = imagesx($im);
-                $height = imagesy($im);
-                $line_numbers = min($width,$height);
-                $center_x = $width/2;
-                $center_y = $height/2;
-                $rh = $rw = 1;
-                imagefill($im, 0, 0, imagecolorallocatealpha($im, $r, $g, $b, $a1));
-                break;
-            case 'square':
-            case 'rectangle':
-                $width = imagesx($im);
-                $height = imagesy($im);
-                $line_numbers = max($width,$height)/2;
-                break;
-            case 'diamond':
-                $width = imagesx($im);
-                $height = imagesy($im);
-                $rh=$height>$width?1:$width/$height;
-                $rw=$width>$height?1:$height/$width;
-                $line_numbers = min($width,$height);
-                break;
-            default:
-        }
-
-        for ( $i = 0; $i < $line_numbers; $i=$i+1+$this->step ) {
-            $old_a = ( empty($a) ) ? $a2 : $a;
-            $a = ( $a2 - $a1 != 0 ) ? intval( $a1 + ( $a2 - $a1 ) * ( $i / $line_numbers ) ): $a1;
-
-            if ( "$old_a" != "$a") {
-                $fill = imagecolorallocatealpha( $im, $r, $g, $b, $a );
-            }
-            switch($direction) {
-                case 'vertical':
-                    imagefilledrectangle($im, 0, $i, $line_width, $i+$this->step, $fill);
-                    break;
-                case 'horizontal':
-                    imagefilledrectangle( $im, $i, 0, $i+$this->step, $line_width, $fill );
-                    break;
-                case 'ellipse':
-                case 'ellipse2':
-                case 'circle':
-                case 'circle2':
-                    imagefilledellipse ($im,$center_x, $center_y, ($line_numbers-$i)*$rh, ($line_numbers-$i)*$rw,$fill);
-                    break;
-                case 'square':
-                case 'rectangle':
-                    imagefilledrectangle ($im,$i*$width/$height,$i*$height/$width,$width-($i*$width/$height), $height-($i*$height/$width),$fill);
-                    break;
-                case 'diamond':
-                    imagefilledpolygon($im, array (
-                        $width/2, $i*$rw-0.5*$height,
-                        $i*$rh-0.5*$width, $height/2,
-                        $width/2,1.5*$height-$i*$rw,
-                        1.5*$width-$i*$rh, $height/2 ), 4, $fill);
-                    break;
-                default:
-            }
-        }
-    }
-
-    // #ff00ff -> array(255,0,255) or #f0f -> array(255,0,255)
-    function hex2rgb($color) {
-        $color = str_replace('#','',$color);
-        $s = strlen($color) / 3;
-        $rgb[]=hexdec(str_repeat(substr($color,0,$s),2/$s));
-        $rgb[]=hexdec(str_repeat(substr($color,$s,$s),2/$s));
-        $rgb[]=hexdec(str_repeat(substr($color,2*$s,$s),2/$s));
-        return $rgb;
-    }
-
-    function a2sevenbit($alpha) {
-        return (abs($alpha - 255) >> 1);
-    }
-
-}
diff --git a/htdocs/public/heatmaps/gd-heatmap/gd_heatmap.php b/htdocs/public/heatmaps/gd-heatmap/gd_heatmap.php
deleted file mode 100644
index 5d9b4f35848be37c6440c06069aaee3060d3be00..0000000000000000000000000000000000000000
--- a/htdocs/public/heatmaps/gd-heatmap/gd_heatmap.php
+++ /dev/null
@@ -1,293 +0,0 @@
-<?php
-
-/**
- * A class for generating heatmaps using the GD image library.
- *
- * http://blog.ampli.fi/heatmap-generation-library-using-php-and-gd/
- *
- * TODO Automatic generation of gradient from source or from scratch.
- *
- */
-Class gd_heatmap {
-  private $config;
-  private $debug_log;
-  private $im;
-
-  /**
-   * @param array $data
-   *   An array containing the data to be represented by the heatmap. Each
-   *   element is a non-associative array with three values, where the first one
-   *   is the x-coordinate, second the y-coordinate and third the value in that
-   *   coordinate.
-   *
-   * @param array $config
-   *   An array containing configuration variables:
-   *   debug - Set to TRUE to print out debug data in the image.
-   *   r - radius of each data point.
-   *   width - width of the image.
-   *   height - height of the image.
-   *   noc - Number of colours to be used in the heatmap. More colours looks
-   *     nicer but is heavier to process.
-   *   dither - Boolean. Dithered images tend to look better than non-dithered
-   *     if noc is about less than 16.
-   *   format - String, "png" or "jpeg"
-   *   fill_with_smallest - Boolean. If set to true, the image won't be filled
-   *     (i.e. areas with 0 value won't be coloured) with white/transparent,
-   *     but instead with a colour that matches the gradient's low end.
-   */
-  function __construct($data, $config = array()) {
-    $default_config = array(
-      'debug' => FALSE,
-      'r' => 50,
-      'width' => 640,
-      'height' => 480,
-      'noc' => 16,
-      'dither' => FALSE,
-      'format' => 'png',
-      'fill_with_smallest' => false,
-    );
-    
-    foreach ($default_config as $key => $value) {
-      if (isset($config[$key])) {
-        $this->config[$key] = $config[$key];
-      }
-      else {
-        $this->config[$key] = $default_config[$key];      
-      }
-    }
-    
-    if ($this->config['format'] != 'png' && $this->config['format'] != 'jpeg') {
-      $this->error('Invalid format "' . $this->config['format'] . '". Supported formats include png and jpeg.');
-    }
-    
-    $this->debug_log = '';
-    
-    $this->generate_image($data);
-  }
-  
-  /**
-   * @param string $key
-   *   The configuration option to get.
-   *
-   * @return mixed
-   *   The value of the configuration option.
-   */
-  public function get_config($key) {
-    return $this->config[$key];
-  }
-  
-  
-  /**
-   * Generates the actual heatmap.
-   */
-  private function generate_image($data) {
-    require_once('gd-rg.php');
-    $time = microtime(1); $this->logg('Started at ' . $time);
-    
-    // Find the maximum value from the given data.
-    $max_data_value = 1;
-    foreach ($data as $row) {
-      if (isset($row[2]) && $max_data_value < $row[2]) {
-        $max_data_value = $row[2];
-      }
-    }
-    $this->logg('Done sorting data at ' . (microtime(1) - $time));
-    
-    // Create the heatmap image.
-    $im = imagecreatetruecolor($this->get_config('width'), $this->get_config('height'));
-    $white = imagecolorallocate($im, 255, 255, 255);
-    imagefill($im, 0, 0, $white);
-    imagealphablending($im, true);
-    imagesavealpha($im, true);
-    
-    // Create a separate spot image for each value to be shown, with different
-    // amounts of black. Having 25 separate shades of colour looks like a decent
-    // number.
-    $spots = array();
-    for ($i = 0; $i < $this->config['noc']; $i++) {
-      // The gradient lib doesn't like too small values for $alpha_end, so we use
-      // $noc for that, which happens to work well.
-      $alpha_end = $this->map($i, 0, $this->config['noc'] - 1, $this->config['noc'], 255);
-      $temp = new gd_gradient_alpha($this->config['r'], $this->config['r'], 'ellipse','#000', 0x00, $alpha_end, 0);
-      $spot = $temp->get_image();
-      imagealphablending($spot, true);
-      imagesavealpha($spot, true);
-      $spots[$i] = $spot;
-    }
-    $this->logg('Created '.count($spots).' spots at ' . (microtime(1) - $time));
-
-    // Go through the data, and add appropriate spot images to the heatmap
-    // image.
-    for ($i = 0; $i < count($data); $i++) {
-      $value = (isset($data[$i][2]) ? $data[$i][2] : 1);
-      $value = $this->map($value, 1, $max_data_value, 0, $this->config['noc'] - 1);
-      imagecopy($im , $spots[$value], $data[$i][0], $data[$i][1] , 0 , 0 , $this->config['r'] , $this->config['r']);
-    }
-    $this->logg('Copied spots to image at ' . (microtime(1) - $time));
-
-    imagetruecolortopalette($im, $this->config['dither'], $this->config['noc']);
-    $this->logg('Flattened black at ' . (microtime(1) - $time));
-
-    // Get the gradient from an image file
-    // FIX: Fetch image in current __FILE__ directory (script including this might be somewhere else)
-    $gi = dirname(__FILE__) . '/gradient-' . $this->config['noc'] . ($this->config['fill_with_smallest'] ? "-fill" : "") . '.png';
-    if (!file_exists($gi)) {
-      $this->error("Can't find gradient file " . $gi . ". Make one using gradient-source.jpg");
-    }
-    $gs = imagecreatefrompng($gi);
-    imagetruecolortopalette($gs, TRUE, $this->config['noc']);
-
-    // Get a list of different gray values in the image, and order them.
-    $grays = array();
-    $imagecolorstotal = imagecolorstotal($im);
-    // FIX: Loop over all colors supported by gradient instead of colors in image (might not contain all)
-    for ($i = 0; $i < $this->config['noc']; $i++) {
-      if ($i >= $imagecolorstotal) {
-        $c = array('red'=> 0, 'green'=> 0, 'blue'=> 0);
-      } else {
-        $c = imagecolorsforindex($im, $i);
-      }
-      $grays[] = str_pad(($c['red'] * 65536) + ($c['green'] * 256) + $c['blue'], 8, '0', STR_PAD_LEFT) . ':' . $i;
-    }
-    sort($grays);
-    $indexes = array();
-    foreach ($grays as $gray) {
-      $indexes[] = substr($gray, strpos($gray, ':') + 1);
-    }
-    $this->logg('Created gray indexes at ' . (microtime(1) - $time));
-
-    // Replace each shade of gray with the matching rainbow colour.
-    $i = 0;
-    foreach ($indexes as $index) {
-      $fill_index = imagecolorat($gs , $i, 0);
-      $fill_color = imagecolorsforindex($gs, $fill_index);
-      imagecolorset($im, $index, $fill_color['red'], $fill_color['green'], $fill_color['blue']);
-      $i++;
-    }
-
-    $this->logg('Replaced black with rainbow at ' . (microtime(1) - $time));
-
-    if (!$this->config['fill_with_smallest']) {
-      // Finally switch from white background to transparent.
-      $closest = imagecolorclosest ($im, 255 , 255 , 255);
-      imagecolortransparent($im, $closest);
-      $this->logg('Made transparent at ' . (microtime(1) - $time));
-    }
-
-    $this->logg('done at ' . (microtime(1) - $time));
-    
-    // Debugging text
-    if ($this->config['debug']) {
-      $text_color = imagecolorallocate($im, 0, 0, 0);
-      $y = 5;
-      foreach (explode("\n", $this->debug_log) as $line) {
-        imagestring($im, 3, 250, $y, $line, $text_color);
-        $y = $y + 10;
-      }    
-    }
-    $this->im = $im;
-  }
-
-  /**
-   * Prints out an error in the image if something went horribly wrong.
-   */  
-  function error ($text) {
-    $im = imagecreate(600, 480);
-    $bg_color = imagecolorallocate($im, 255, 0, 0);
-    $text_color = imagecolorallocate($im, 0, 0, 0);
-    imagestring($im, 3, 5, 5, $text , $text_color);
-    header('Content-type: image/png');
-    imagepng($im);
-    imagedestroy($im);
-    die();
-  }
-  
-  /**
-   * @return Object The generated GD image object containing the heatmap.
-   */
-  public function get_image() {
-    return $this->im;
-  }
-  
-  /**
-   * Prints out the generated image or saves it into a file.
-   */
-  public function output($filename = null) {
-    if (!$filename) {
-      header('Content-type: image/' . $this->config['format']);
-    }
-    switch ($this->config['format']) {
-      case 'png':
-        imagepng($this->im, $filename);
-        break;
-      case 'jpeg':
-        imagejpeg($this->im, $filename);
-        break;
-    }
-    imagedestroy($this->im);
-  }
-  
-  /**
-   * Debugging function.
-   */
-  private function logg($thing) {
-    if (!$this->config['debug']) {
-      return;
-    }
-    if (is_array($thing) || is_object($thing)) {
-      $out = print_r($thing, 1);
-    }
-    else {
-      $out = $thing;
-    }
-    $this->debug_log .= $out . "\n";
-  }
-  
-  /**
-   * Simple utility function for mapping values from one range to another.
-   * Copied from http://stackoverflow.com/questions/7742959/php-map-a-value-using-fromrange-and-torange
-   *
-   */
-  private function map($value, $fromLow, $fromHigh, $toLow, $toHigh) {
-      $fromRange = $fromHigh - $fromLow;
-      $toRange = $toHigh - $toLow;
-      $scaleFactor = $toRange / $fromRange;
-      $tmpValue = $value - $fromLow;
-      $tmpValue *= $scaleFactor;
-      return $tmpValue + $toLow;
-  }
-  
-  function debug() {
-    echo $this->debug_log;
-  }
-  
-  /**
-   * @param integer $w
-   *   The maximum x-coordinate of the test points.
-   * @param integer $h
-   *   The maximum y-coordinate of the test points.
-   *   height.
-   * @param integer $r
-   *   The radius of a single data point. Used to calculate data point distance
-   *   from image edges.
-   * @param integer $n
-   *   The number of data points generated.
-   * @param integer $mv
-   *   The maximum value of a single data point.
-   *
-   * @return array Test data that can be passed to the heatmap constructor.
-   */
-  public static function get_test_data($w, $h, $r, $n = 200, $mv = 1500) {
-    $data = array();
-
-    for ($i = 0; $i < $n; $i++) {
-      $x = rand(0 - $r, $w );
-      $y = rand(0 - $r, $h );
-      $v = rand(1, $mv);
-
-      $data[] = array($x, $y, $v);
-    }
-
-    return $data;
-  }
-}
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-16-fill.png b/htdocs/public/heatmaps/gd-heatmap/gradient-16-fill.png
deleted file mode 100644
index 61fdf6204243173a688eab735ea99e821773088b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-16-fill.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-16.png b/htdocs/public/heatmaps/gd-heatmap/gradient-16.png
deleted file mode 100644
index 119782bc87e07195298c76a3b5f70c33d04a08ef..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-16.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-25-fill.png b/htdocs/public/heatmaps/gd-heatmap/gradient-25-fill.png
deleted file mode 100644
index 725e67baf325816d9514e10ac9e1128e1869a50e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-25-fill.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-25.png b/htdocs/public/heatmaps/gd-heatmap/gradient-25.png
deleted file mode 100644
index 3b6ff273a3d8f59bfa0d81e80ae6b7a873c88cd2..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-25.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-32-fill.png b/htdocs/public/heatmaps/gd-heatmap/gradient-32-fill.png
deleted file mode 100644
index 4f52e9ab4b694157a4dd71a1e86245f69f1dea95..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-32-fill.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-32.png b/htdocs/public/heatmaps/gd-heatmap/gradient-32.png
deleted file mode 100644
index 3a30889d0744c78c4c6e6b92f53b5e4cc6b4b2b5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-32.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-8-fill.png b/htdocs/public/heatmaps/gd-heatmap/gradient-8-fill.png
deleted file mode 100644
index 0fdbfcaedc669d50ea87a61733d59300d965ff15..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-8-fill.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-8.png b/htdocs/public/heatmaps/gd-heatmap/gradient-8.png
deleted file mode 100644
index 7f890cc90e83bf04a01115dff01d079e8464d265..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-8.png and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/gradient-source.jpg b/htdocs/public/heatmaps/gd-heatmap/gradient-source.jpg
deleted file mode 100644
index 821bff13a0de21365d5feb74cac294c4494f7c86..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/gd-heatmap/gradient-source.jpg and /dev/null differ
diff --git a/htdocs/public/heatmaps/gd-heatmap/test.php b/htdocs/public/heatmaps/gd-heatmap/test.php
deleted file mode 100644
index abaf65983ec798474e72eddc0bf185a4e062d471..0000000000000000000000000000000000000000
--- a/htdocs/public/heatmaps/gd-heatmap/test.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-// This is a test script demonstrating the use of the gd-heatmap library.
-require_once('gd_heatmap.php');
-
-// Generate some test data using the static function provided for that purpose.
-$data = gd_heatmap::get_test_data(1240, 600, 50, 500);
-
-// Config array with all the available options. See the constructor's doc block
-// for explanations.
-$config = array(
-  'debug' => TRUE,
-  'width' => 1240,
-  'height' => 600,
-  'noc' => 32,
-  'r' => 50,
-  'dither' => FALSE,
-  'format' => 'jpeg',
-  'fill_with_smallest' => false,
-);
-
-// Create a new heatmap based on the data and the config.
-$heatmap = new gd_heatmap($data, $config);
-
-// And print it out. If you're having trouble getting any images out of the
-// library , comment this out to allow your browser to show you the error
-// messages.
-$heatmap->output();
-
-// Or save it to a file. Don't forget to set correct file permissions in the
-// target directory.
-//$heatmap->output('savetest.png');
diff --git a/htdocs/public/heatmaps/heatmap.php b/htdocs/public/heatmaps/heatmap.php
deleted file mode 100755
index 7e7a5398fafd0fd2f8c58a62162a43bee1631825..0000000000000000000000000000000000000000
--- a/htdocs/public/heatmaps/heatmap.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-header('Access-Control-Allow-Origin: *');
-header('Cache-Control: max-age=3600, public');
-header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 3600));
-header('Content-type: image/png');
-
-$zoom = $_GET['zoom'] ?? 0;
-$x = $_GET['x'] ?? 0;
-$y = $_GET['y'] ?? 0;
-$filename = 'heatmap.'.$zoom.'.'.$x.'.'.$y.'.png';
-
-if (file_exists($filename) && time()-filemtime($filename) < 3600) {
-    // File exists and is not older than 1 hour
-    readfile($filename);
-    exit;
-}
-
-require dirname(__DIR__) . "../../includes/bootstrap.php";
-require_once('gd-heatmap/gd_heatmap.php');
-
-$dotRadius = 16;
-$tilePixelSize = 256;
-
-$totalMinLat = -85.05115;
-$totalMaxLat = 85.05115;
-$totalMinLng = -180;
-$totalMaxLng = 180;
-
-$totalMinLatPixel = getLatPixelCoordinate($totalMinLat, $zoom, $tilePixelSize);
-$totalMaxLatPixel = getLatPixelCoordinate($totalMaxLat, $zoom, $tilePixelSize);
-$totalMinLngPixel = getLngPixelCoordinate($totalMinLng, $zoom, $tilePixelSize);
-$totalMaxLngPixel = getLngPixelCoordinate($totalMaxLng, $zoom, $tilePixelSize);
-
-$latPartPixelLength = ($totalMinLatPixel / pow(2, $zoom));
-$lngPartPixelLength = ($totalMaxLngPixel / pow(2, $zoom));
-
-$minLatPixel = ($x * $latPartPixelLength) + $latPartPixelLength;
-$maxLatPixel = ($x * $latPartPixelLength);
-$minLngPixel = $totalMinLngPixel + $y * $lngPartPixelLength;
-$maxLngPixel = $totalMinLngPixel + (($y * $lngPartPixelLength) + $lngPartPixelLength);
-
-$minLat = getLatFromLatPixelCoordinate($minLatPixel, $zoom, $tilePixelSize);
-$maxLat = getLatFromLatPixelCoordinate($maxLatPixel, $zoom, $tilePixelSize);
-$minLng = getLngFromLngPixelCoordinate($minLngPixel, $zoom, $tilePixelSize);
-$maxLng = getLngFromLngPixelCoordinate($maxLngPixel, $zoom, $tilePixelSize);
-
-$latMarginal = ($maxLat - $minLat) * 0.1;
-$lngMarginal = ($maxLng - $minLng) * 0.1;
-
-$sql = "select latest_confirmed_latitude latitude, latest_confirmed_longitude longitude
-    from station
-    where latest_confirmed_packet_timestamp > ?
-        and latest_confirmed_latitude between ? and ?
-        and latest_confirmed_longitude between ? and ?";
-$parameters = [time() - (3*60*60), $minLat - $latMarginal, $maxLat + $latMarginal, $minLng - $lngMarginal, $maxLng + $lngMarginal];
-
-$pdo = PDOConnection::getInstance();
-$stmt = $pdo->prepareAndExec($sql, $parameters);
-$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
-$data = [];
-foreach($rows as $row) {
-    $x = getLngPixelCoordinate($row["longitude"], $zoom, $tilePixelSize) - $minLngPixel - ($dotRadius / 2);
-    $y = getLatPixelCoordinate($row["latitude"], $zoom, $tilePixelSize) - $maxLatPixel - ($dotRadius / 2);
-    $data[] = [$x, $y, 2];
-}
-
-$config = array(
-  'debug' => FALSE,
-  'width' => 256,
-  'height' => 256,
-  'noc' =>16,
-  'r' => $dotRadius,
-  'dither' => FALSE,
-  'format' => 'png',
-  'fill_with_smallest' => FALSE,
-);
-
-$heatmap = new gd_heatmap($data, $config);
-
-if (is_writable(dirname($filename))) {
-    $heatmap->output($filename);
-    readfile($filename);
-} else {
-    $heatmap->output();
-}
diff --git a/htdocs/public/heatmaps/transparent.png b/htdocs/public/heatmaps/transparent.png
deleted file mode 100755
index 5ac920731787e5acc2b38c13795ca9d6d583b640..0000000000000000000000000000000000000000
Binary files a/htdocs/public/heatmaps/transparent.png and /dev/null differ
diff --git a/htdocs/public/images/aprs-symbols.png b/htdocs/public/images/aprs-symbols.png
deleted file mode 100644
index ca20360ce32cdfd7b55e6c4d55e1c86422470d40..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/aprs-symbols.png and /dev/null differ
diff --git a/htdocs/public/images/checked.png b/htdocs/public/images/checked.png
deleted file mode 100755
index 57bba8979fd4747eb4b3625af843712ba4fb6c52..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/checked.png and /dev/null differ
diff --git a/htdocs/public/images/dotColor0.png b/htdocs/public/images/dotColor0.png
deleted file mode 100755
index 94510499be66f2ebf969ad064a88679e7c860f59..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/dotColor0.png and /dev/null differ
diff --git a/htdocs/public/images/dotColor0.svg b/htdocs/public/images/dotColor0.svg
deleted file mode 100755
index 79928529e79179990a31d82f8858166e3dd037db..0000000000000000000000000000000000000000
--- a/htdocs/public/images/dotColor0.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="12"
-   height="12"
-   viewBox="0 0 12 12"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="dotColor0.svg">
-  <defs
-     id="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="653"
-     inkscape:window-height="480"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="-0.10614088"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4182">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     id="path4197"
-     sodipodi:type="arc"
-     sodipodi:cx="6"
-     sodipodi:cy="6"
-     sodipodi:rx="2.4999955"
-     sodipodi:ry="2.4999955"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     sodipodi:open="true"
-     d="M 3.5000045,5.9999999 A 2.4999955,2.4999955 0 0 1 5.9994001,3.5000046 2.4999955,2.4999955 0 0 1 8.4999952,5.9988001 2.4999955,2.4999955 0 0 1 6.0017999,8.4999948 2.4999955,2.4999955 0 0 1 3.5000057,6.0023999"
-     style="fill:#2a2aff;stroke:#1a1a1a;stroke-width:0;stroke-linecap:round" />
-</svg>
diff --git a/htdocs/public/images/dotColor1.png b/htdocs/public/images/dotColor1.png
deleted file mode 100755
index ce72213702baedbba1944959831a8b7522621218..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/dotColor1.png and /dev/null differ
diff --git a/htdocs/public/images/dotColor1.svg b/htdocs/public/images/dotColor1.svg
deleted file mode 100755
index b20db8d575cb179ccd34770b0db3f7f0bcc45da7..0000000000000000000000000000000000000000
--- a/htdocs/public/images/dotColor1.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="12"
-   height="12"
-   viewBox="0 0 12 12"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="dotColor1.svg">
-  <defs
-     id="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="653"
-     inkscape:window-height="480"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="12"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4182">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     id="path4197"
-     sodipodi:type="arc"
-     sodipodi:cx="6"
-     sodipodi:cy="6"
-     sodipodi:rx="2.4999955"
-     sodipodi:ry="2.4999955"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     sodipodi:open="true"
-     d="M 3.5000045,5.9999999 A 2.4999955,2.4999955 0 0 1 5.9994001,3.5000046 2.4999955,2.4999955 0 0 1 8.4999952,5.9988001 2.4999955,2.4999955 0 0 1 6.0017999,8.4999948 2.4999955,2.4999955 0 0 1 3.5000057,6.0023999"
-     style="fill:#6f02a7;fill-opacity:0.98799995;stroke:#1a1a1a;stroke-width:0;stroke-linecap:round" />
-</svg>
diff --git a/htdocs/public/images/dotColor2.png b/htdocs/public/images/dotColor2.png
deleted file mode 100755
index 10df02363dfec44689e533eedb55fe0e47740dcb..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/dotColor2.png and /dev/null differ
diff --git a/htdocs/public/images/dotColor2.svg b/htdocs/public/images/dotColor2.svg
deleted file mode 100755
index ba2eb645569fd91d427c8179fcc5cdbfa8000a94..0000000000000000000000000000000000000000
--- a/htdocs/public/images/dotColor2.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="12"
-   height="12"
-   viewBox="0 0 12 12"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="dotColor2.svg">
-  <defs
-     id="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="653"
-     inkscape:window-height="480"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="12"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4182">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     id="path4197"
-     sodipodi:type="arc"
-     sodipodi:cx="6"
-     sodipodi:cy="6"
-     sodipodi:rx="2.4999955"
-     sodipodi:ry="2.4999955"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     sodipodi:open="true"
-     d="M 3.5000045,5.9999999 A 2.4999955,2.4999955 0 0 1 5.9994001,3.5000046 2.4999955,2.4999955 0 0 1 8.4999952,5.9988001 2.4999955,2.4999955 0 0 1 6.0017999,8.4999948 2.4999955,2.4999955 0 0 1 3.5000057,6.0023999"
-     style="fill:#005500;stroke:#1a1a1a;stroke-width:0;stroke-linecap:round" />
-</svg>
diff --git a/htdocs/public/images/dotColor3.png b/htdocs/public/images/dotColor3.png
deleted file mode 100755
index 5b7b83f0ce5e5bd50e2cb632c7d4aeb95941485b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/dotColor3.png and /dev/null differ
diff --git a/htdocs/public/images/dotColor3.svg b/htdocs/public/images/dotColor3.svg
deleted file mode 100755
index 6aabeed550db735cb2a3a069ba5df9edafea101e..0000000000000000000000000000000000000000
--- a/htdocs/public/images/dotColor3.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="12"
-   height="12"
-   viewBox="0 0 12 12"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="dotColor3.svg">
-  <defs
-     id="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="653"
-     inkscape:window-height="480"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="-0.10169492"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4182">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     id="path4197"
-     sodipodi:type="arc"
-     sodipodi:cx="6"
-     sodipodi:cy="6"
-     sodipodi:rx="2.4999955"
-     sodipodi:ry="2.4999955"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     sodipodi:open="true"
-     d="M 3.5000045,5.9999999 A 2.4999955,2.4999955 0 0 1 5.9994001,3.5000046 2.4999955,2.4999955 0 0 1 8.4999952,5.9988001 2.4999955,2.4999955 0 0 1 6.0017999,8.4999948 2.4999955,2.4999955 0 0 1 3.5000057,6.0023999"
-     style="fill:#a70202;stroke:#1a1a1a;stroke-width:0;stroke-linecap:round" />
-</svg>
diff --git a/htdocs/public/images/dotColor4.png b/htdocs/public/images/dotColor4.png
deleted file mode 100755
index 35d1e796908ed4fb9b116e8d8dddeebc33ebc4a6..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/dotColor4.png and /dev/null differ
diff --git a/htdocs/public/images/dotColor4.svg b/htdocs/public/images/dotColor4.svg
deleted file mode 100755
index ee4a4837233beaf32913842cb7876526fbcd5e6b..0000000000000000000000000000000000000000
--- a/htdocs/public/images/dotColor4.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="12"
-   height="12"
-   viewBox="0 0 12 12"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="dotColor4.svg">
-  <defs
-     id="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="653"
-     inkscape:window-height="480"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="12"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4182">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     id="path4197"
-     sodipodi:type="arc"
-     sodipodi:cx="6"
-     sodipodi:cy="6"
-     sodipodi:rx="2.4999955"
-     sodipodi:ry="2.4999955"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     sodipodi:open="true"
-     d="M 3.5000045,5.9999999 A 2.4999955,2.4999955 0 0 1 5.9994001,3.5000046 2.4999955,2.4999955 0 0 1 8.4999952,5.9988001 2.4999955,2.4999955 0 0 1 6.0017999,8.4999948 2.4999955,2.4999955 0 0 1 3.5000057,6.0023999"
-     style="fill:#217867;stroke:#1a1a1a;stroke-width:0;stroke-linecap:round" />
-</svg>
diff --git a/htdocs/public/images/spinner.gif b/htdocs/public/images/spinner.gif
deleted file mode 100644
index 19cb4297f9bf3b49dacdb693f5e3f5da9350f016..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/spinner.gif and /dev/null differ
diff --git a/htdocs/public/images/transmit-original.png b/htdocs/public/images/transmit-original.png
deleted file mode 100755
index 07216aef0cf6cd1492bcd6e742a6dfc5ecb81132..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/transmit-original.png and /dev/null differ
diff --git a/htdocs/public/images/transmit-original.svg b/htdocs/public/images/transmit-original.svg
deleted file mode 100755
index 3bc5068188bfdfdf7c584d49196e57eaf6d9811f..0000000000000000000000000000000000000000
--- a/htdocs/public/images/transmit-original.svg
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="86"
-   height="72"
-   viewBox="0 0 86 72"
-   id="svg4310"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="transmit.svg">
-  <defs
-     id="defs4312" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.98"
-     inkscape:cx="-337.92553"
-     inkscape:cy="276.19386"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     units="px"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4315">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-980.36219)">
-    <g
-       id="g4878"
-       style="stroke:#2c5aa0"
-       transform="matrix(0.50474232,0,0,0.50474232,-105.22361,729.73976)">
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214"
-         d="m 246.84931,501.49154 c -46.53731,31.96085 -45.53599,101.06369 0.67435,132.84715"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5"
-         d="m 262.10498,522.50881 c -32.37593,21.6208 -30.92504,70.04354 0.44957,90.81259"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-9"
-         d="m 273.93876,539.70487 c -18.88891,14.42772 -19.46108,40.82167 0.44957,56.19592"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-9-1"
-         d="m 282.31201,552.74211 c -10.7967,7.909 -9.5706,23.06376 0.44957,30.12101"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-53"
-         d="m 340.47459,501.37914 c 46.53731,31.96085 45.53599,101.06368 -0.67435,132.84714"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-95"
-         d="m 325.21892,522.3964 c 32.37593,21.6208 30.92504,70.04354 -0.44957,90.81259"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-9-2"
-         d="m 313.38514,539.59247 c 18.88891,14.42772 19.46107,40.82166 -0.44957,56.19591"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-9-1-5"
-         d="m 305.01189,552.62971 c 10.7967,7.90899 9.57059,23.06375 -0.44956,30.121"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/images/transmit.png b/htdocs/public/images/transmit.png
deleted file mode 100755
index f2ef93cd56c5ff344171dc0467bbb637d8b29bb1..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/transmit.png and /dev/null differ
diff --git a/htdocs/public/images/transmit.svg b/htdocs/public/images/transmit.svg
deleted file mode 100755
index c69dd5c86b5e7c6f5d09544f57e7fbb60464d365..0000000000000000000000000000000000000000
--- a/htdocs/public/images/transmit.svg
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="76"
-   height="64"
-   viewBox="0 0 76 64"
-   id="svg4310"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="transmit.svg">
-  <defs
-     id="defs4312" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="7.1892188"
-     inkscape:cx="11.050423"
-     inkscape:cy="47.464992"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     units="px"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4315">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-988.36219)">
-    <g
-       id="g4878"
-       style="stroke:#2c5aa0"
-       transform="matrix(0.44605036,0,0,0.44605036,-92.988018,767.06851)">
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214"
-         d="m 246.84931,501.49154 c -46.53731,31.96085 -45.53599,101.06369 0.67435,132.84715"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5"
-         d="m 262.10498,522.50881 c -32.37593,21.6208 -30.92504,70.04354 0.44957,90.81259"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-9"
-         d="m 273.93876,539.70487 c -18.88891,14.42772 -19.46108,40.82167 0.44957,56.19592"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-53"
-         d="m 340.47459,501.37914 c 46.53731,31.96085 45.53599,101.06368 -0.67435,132.84714"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-95"
-         d="m 325.21892,522.3964 c 32.37593,21.6208 30.92504,70.04354 -0.44957,90.81259"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         id="path4214-5-9-2"
-         d="m 313.38514,539.59247 c 18.88891,14.42772 19.46107,40.82166 -0.44957,56.19591"
-         style="fill:none;fill-rule:evenodd;stroke:#2c5aa0;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/images/transmit1.png b/htdocs/public/images/transmit1.png
deleted file mode 100755
index 7cd8e5b26b1d74877e4489511761c93b38bd4a9e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/transmit1.png and /dev/null differ
diff --git a/htdocs/public/images/transmit1.svg b/htdocs/public/images/transmit1.svg
deleted file mode 100755
index af0a2b710e606cca792486fd68e5db081adb8386..0000000000000000000000000000000000000000
--- a/htdocs/public/images/transmit1.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="60"
-   height="60"
-   viewBox="0 0 60 60"
-   id="svg4310"
-   version="1.1"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
-   sodipodi:docname="transmit1.svg"
-   inkscape:export-filename="/run/user/1000/gvfs/sftp:host=aprsdirect.com/home/peqv/trackdirect_dev/htdocs/public/images/transmit1.png"
-   inkscape:export-xdpi="96"
-   inkscape:export-ydpi="96">
-  <defs
-     id="defs4312" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="8.0000002"
-     inkscape:cx="35.059875"
-     inkscape:cy="32.310313"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     units="px"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4315">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-992.3622)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 20.044871,1008.1516 c -9.534032,7.2823 -9.82283,20.6045 0.226917,28.3645"
-       id="path4214-5-9"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 39.955129,1008.0949 c 9.534032,7.2823 9.822825,20.6044 -0.226917,28.3645"
-       id="path4214-5-9-2"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-</svg>
diff --git a/htdocs/public/images/transmit2.png b/htdocs/public/images/transmit2.png
deleted file mode 100755
index 1ad39170fe0ead8a1cf77286641862a97481d02f..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/transmit2.png and /dev/null differ
diff --git a/htdocs/public/images/transmit2.svg b/htdocs/public/images/transmit2.svg
deleted file mode 100755
index 68640e02dfd23910854b22589fa9263c3eed6417..0000000000000000000000000000000000000000
--- a/htdocs/public/images/transmit2.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="60"
-   height="60"
-   viewBox="0 0 60 60"
-   id="svg4310"
-   version="1.1"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
-   sodipodi:docname="transmit2.svg"
-   inkscape:export-filename="/run/user/1000/gvfs/sftp:host=aprsdirect.com/home/peqv/trackdirect_dev/htdocs/public/images/transmit2.png"
-   inkscape:export-xdpi="96"
-   inkscape:export-ydpi="96">
-  <defs
-     id="defs4312" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.56"
-     inkscape:cx="-82.653226"
-     inkscape:cy="86.278417"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     units="px"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4315">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-992.3622)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 42.996273,1003.6012 c 12.939755,7.9568 12.788207,28.9745 -0.3669,37.1316"
-       id="path4214-5-95-0"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 16.996446,1003.7979 c -12.939757,7.9568 -12.788207,28.9745 0.3669,37.1316"
-       id="path4214-5-95-0-2"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-</svg>
diff --git a/htdocs/public/images/transmit3.png b/htdocs/public/images/transmit3.png
deleted file mode 100755
index 298ceb685b791bc64945edfa709812b6bbb15e5c..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/transmit3.png and /dev/null differ
diff --git a/htdocs/public/images/transmit3.svg b/htdocs/public/images/transmit3.svg
deleted file mode 100755
index dfa844f7a6140b0ec0b61d1e9953977afcd91a3e..0000000000000000000000000000000000000000
--- a/htdocs/public/images/transmit3.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="60"
-   height="60"
-   viewBox="0 0 60 60"
-   id="svg4310"
-   version="1.1"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
-   sodipodi:docname="transmit3.svg"
-   inkscape:export-filename="/run/user/1000/gvfs/sftp:host=aprsdirect.com/home/peqv/trackdirect_dev/htdocs/public/images/transmit3.png"
-   inkscape:export-xdpi="96"
-   inkscape:export-ydpi="96">
-  <defs
-     id="defs4312" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.12"
-     inkscape:cx="-23.97789"
-     inkscape:cy="34.822542"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     units="px"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4315">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-992.3622)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 14.071862,999.47211 C -2.26964,1010.385 -1.537315,1034.826 14.298779,1045.309"
-       id="path4214-5"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 45.928138,999.41537 c 16.341502,10.91293 15.609177,35.35393 -0.226917,45.83693"
-       id="path4214-5-95"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-</svg>
diff --git a/htdocs/public/images/transparent.png b/htdocs/public/images/transparent.png
deleted file mode 100755
index 81e94b216a2b4233194076c77be9e3c12a5b890b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/transparent.png and /dev/null differ
diff --git a/htdocs/public/images/unchecked.png b/htdocs/public/images/unchecked.png
deleted file mode 100755
index 568ed12f343a2f7515617a12c8c2ae90b80eb32f..0000000000000000000000000000000000000000
Binary files a/htdocs/public/images/unchecked.png and /dev/null differ
diff --git a/htdocs/public/index.php b/htdocs/public/index.php
deleted file mode 100755
index ab412ac0b49322a28bd0b8e344b1625cb8e0eb44..0000000000000000000000000000000000000000
--- a/htdocs/public/index.php
+++ /dev/null
@@ -1,400 +0,0 @@
-<?php require "../includes/bootstrap.php"; ?>
-
-<!DOCTYPE html>
-<html lang="en">
-    <head>
-        <meta charset="utf-8" />
-        <title><?php echo getWebsiteConfig('title'); ?></title>
-
-        <!-- Mobile meta -->
-        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
-        <meta name="apple-mobile-web-app-capable" content="yes"/>
-        <meta name="mobile-web-app-capable" content="yes">
-
-        <!-- JS libs used by this website (not a dependency for the track direct js lib) -->
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.4.5/mobile-detect.min.js" integrity="sha512-1vJtouuOb2tPm+Jh7EnT2VeiCoWv0d7UQ8SGl/2CoOU+bkxhxSX4gDjmdjmbX4OjbsbCBN+Gytj4RGrjV3BLkQ==" crossorigin="anonymous"></script>
-        <script type="text/javascript" src="//www.gstatic.com/charts/loader.js"></script>
-
-        <!-- Stylesheets used by this website (not a dependency for the track direct js lib) -->
-        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w==" crossorigin="anonymous" />
-
-        <!-- Track Direct js dependencies -->
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha512-jGsMH83oKe9asCpkOVkBnUrDDTp8wl+adkB2D+//JtlxO4SrLoJdhbOysIFQJloQFD+C4Fl1rMsQZF76JjV0eQ==" crossorigin="anonymous"></script>
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js" integrity="sha512-LGXaggshOkD/at6PFNcp2V2unf9LzFq6LE+sChH7ceMTDP0g2kn6Vxwgg7wkPP7AAtX+lmPqPdxB47A0Nz0cMQ==" crossorigin="anonymous"></script>
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/autolinker/3.14.2/Autolinker.min.js" integrity="sha512-qyoXjTIJ69k6Ik7CxNVKFAsAibo8vW/s3WV3mBzvXz6Gq0yGup/UsdZBDqFwkRuevQaF2g7qhD3E4Fs+OwS4hw==" crossorigin="anonymous"></script>
-        <script src="/js/convex-hull.js" crossorigin="anonymous"></script>
-
-        <!-- Map api javascripts and related dependencies -->
-        <?php $mapapi = $_GET['mapapi'] ?? 'leaflet'; ?>
-        <?php if ($mapapi == 'google') : ?>
-            <?php if (getWebsiteConfig('google_key') != null) : ?>
-                <script type="text/javascript" src="//maps.googleapis.com/maps/api/js?key=<?php echo getWebsiteConfig('google_key'); ?>&libraries=visualization,geometry"></script>
-            <?php else : ?>
-                <script type="text/javascript" src="//maps.googleapis.com/maps/api/js?libraries=visualization,geometry"></script>
-            <?php endif; ?>
-
-            <script src="https://cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier/1.0.3/oms.min.js" integrity="sha512-/3oZy+rGpR6XGen3u37AEGv+inHpohYcJupz421+PcvNWHq2ujx0s1QcVYEiSHVt/SkHPHOlMFn5WDBb/YbE+g==" crossorigin="anonymous"></script>
-
-        <?php elseif ($mapapi == 'leaflet' || $mapapi == 'leaflet-vector'): ?>
-            <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.min.css" integrity="sha512-1xoFisiGdy9nvho8EgXuXvnpR5GAMSjFwp40gSRE3NwdUdIMIKuPa7bqoUhLD0O/5tPNhteAsE5XyyMi5reQVA==" crossorigin="anonymous" />
-            <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.min.js" integrity="sha512-SeiQaaDh73yrb56sTW/RgVdi/mMqNeM2oBwubFHagc5BkixSpP1fvqF47mKzPGWYSSy4RwbBunrJBQ4Co8fRWA==" crossorigin="anonymous"></script>
-
-            <?php if ($mapapi == 'leaflet-vector'): ?>
-                <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/1.13.1/mapbox-gl.min.css" />
-                <script src="https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/1.13.1/mapbox-gl.min.js"></script>
-                <script src="https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl-leaflet/0.0.15/leaflet-mapbox-gl.min.js"></script>
-            <?php endif; ?>
-
-            <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-providers/1.11.0/leaflet-providers.min.js" integrity="sha512-TO+Wd5hbpDsACTmvzSqAZL83jMQCXGRFNoS4WZxcxrlJBTdgMYaT7g5uX49C5+Kbuxzlg2A+TFJ6UqdsXuOKLw==" crossorigin="anonymous"></script>
-            <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.heat/0.2.0/leaflet-heat.js" integrity="sha512-KhIBJeCI4oTEeqOmRi2gDJ7m+JARImhUYgXWiOTIp9qqySpFUAJs09erGKem4E5IPuxxSTjavuurvBitBmwE0w==" crossorigin="anonymous"></script>
-            <script src="https://cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier-Leaflet/0.2.6/oms.min.js" integrity="sha512-V8RRDnS4BZXrat3GIpnWx+XNYBHQGdK6nKOzMpX4R0hz9SPWt7fltGmmyGzUkVFZUQODO1rE+SWYJJkw3SYMhg==" crossorigin="anonymous"></script>
-        <?php endif; ?>
-
-        <!-- Track Direct jslib -->
-        <script type="text/javascript" src="/js/trackdirect.min.js"></script>
-
-
-        <script type="text/javascript" src="/js/main.js"></script>
-        <link rel="stylesheet" href="/css/main.css">
-
-        <script>
-            // Start everything!!!
-            $(document).ready(function() {
-                google.charts.load('current', {'packages':['corechart', 'timeline']});
-
-                var options = {};
-                options['isMobile'] = false;
-                options['useImperialUnit'] = <?php echo (isImperialUnitUser() ? 'true': 'false'); ?>;
-                options['coverageDataUrl'] = '/data/coverage.php';
-                options['coveragePercentile'] = <?php echo (getWebsiteConfig('coverage_percentile') ?? "95"); ?>;
-                options['defaultTimeLength'] = 60; // In minutes
-
-                var md = new MobileDetect(window.navigator.userAgent);
-                if (md.mobile() !== null) {
-                    options['isMobile'] = true;
-                }
-
-                options['time'] =       "<?php echo $_GET['time'] ?? '' ?>";        // How many minutes of history to show
-                options['center'] =     "<?php echo $_GET['center'] ?? '' ?>";      // Position to center on (for example "46.52108,14.63379")
-                options['zoom'] =       "<?php echo $_GET['zoom'] ?? '' ?>";        // Zoom level
-                options['timetravel'] = "<?php echo $_GET['timetravel'] ?? '' ?>";  // Unix timestamp to travel to
-                options['maptype'] =    "<?php echo $_GET['maptype'] ?? '' ?>";     // May be "roadmap", "terrain" or "satellite"
-                options['mid'] =        "<?php echo $_GET['mid'] ?? '' ?>";         // Render map from "Google My Maps" (requires https)
-
-                options['filters'] = {};
-                options['filters']['sid'] = "<?php echo $_GET['sid'] ?? '' ?>";         // Station id to filter on
-                options['filters']['sname'] = "<?php echo $_GET['sname'] ?? '' ?>";     // Station name to filter on
-                options['filters']['sidlist'] = "<?php echo $_GET['sidlist'] ?? '' ?>";     // Station id list to filter on (colon separated)
-                options['filters']['snamelist'] = "<?php echo $_GET['snamelist'] ?? '' ?>"; // Station name list to filter on (colon separated)
-
-                // Tell jslib which html element to use to show connection status and mouse cordinates
-                options['statusContainerElementId'] = 'status-container';
-                options['cordinatesContainerElementId'] = 'cordinates-container';
-
-                // Use this setting so enlarge some symbols (for example airplanes when using OGN as data source)
-                //options['symbolsToScale'] = [[88,47],[94,null]];
-
-                // Set this setting to false if you want to stop animations
-                options['animate'] = true;
-
-                // Use Stockholm as default position (will be used if we fail to fetch location from ip-location service)
-                options['defaultLatitude'] = '59.30928';
-                options['defaultLongitude'] = '18.08830';
-
-                // Tip: request position from some ip->location service (https://freegeoip.app/json and https://ipapi.co/json is two examples)
-                $.getJSON('https://ipapi.co/json', function(data) {
-                    if (data.latitude && data.longitude) {
-                        options['defaultLatitude'] = data.latitude;
-                        options['defaultLongitude'] = data.longitude;
-                    }
-                }).fail(function() {
-                    console.log('Failed to fetch location, using default location');
-                }).always(function() {
-                    <?php if ($mapapi == 'leaflet-vector') : ?>
-                        options['mapboxGLStyle'] = "https://api.maptiler.com/maps/bright/style.json?optimize=true&key=<?php echo getWebsiteConfig('maptiler_key'); ?>";
-                        options['mapboxGLAttribution'] = 'Map &copy; <a href="https://www.maptiler.com">MapTiler</a>, OpenStreetMap contributors';
-                    <?php endif; ?>
-
-                    <?php if ($mapapi == 'leaflet') : ?>
-                        // We are using Leaflet -- read about leaflet-providers and select your favorite maps
-                        // https://leaflet-extras.github.io/leaflet-providers/preview/
-
-                        // Make sure to read the license requirements for each provider before launching a public website
-                        // https://wiki.openstreetmap.org/wiki/Tile_servers
-
-                        // Many providers require a map api key or similar, the following is an example for HERE
-                        L.TileLayer.Provider.providers['HERE'].options['app_id'] = '<?php echo getWebsiteConfig('here_app_id'); ?>';
-                        L.TileLayer.Provider.providers['HERE'].options['app_code'] = '<?php echo getWebsiteConfig('here_app_code'); ?>';
-
-                        options['supportedMapTypes'] = {};
-                        options['supportedMapTypes']['roadmap'] = "<?php echo getWebsiteConfig('leaflet_raster_tile_roadmap'); ?>";
-                        options['supportedMapTypes']['terrain'] = "<?php echo getWebsiteConfig('leaflet_raster_tile_terrain'); ?>";
-                        options['supportedMapTypes']['satellite'] = "<?php echo getWebsiteConfig('leaflet_raster_tile_satellite'); ?>";
-                    <?php endif; ?>
-
-                    // host is used to create url to /heatmaps and /images
-                    options['host'] = "<?php echo $_SERVER['HTTP_HOST']; ?>";
-
-                    var supportsWebSockets = 'WebSocket' in window || 'MozWebSocket' in window;
-		    if (supportsWebSockets) {
-                       <?php if (getWebsiteConfig('websocket_url') != null) : ?>
-                           var wsServerUrl = "<?php echo getWebsiteConfig('websocket_url'); ?>";
-                        <?php else : ?>
-                            var wsServerUrl = 'ws://<?php echo $_SERVER['HTTP_HOST']; ?>:9000/ws';
-                        <?php endif; ?>
-                        var mapElementId = 'map-container';
-
-                        trackdirect.init(wsServerUrl, mapElementId, options);
-                    } else {
-                        alert('This service require HTML 5 features to be able to feed you APRS data in real-time. Please upgrade your browser.');
-                    }
-                });
-            });
-        </script>
-    </head>
-    <body>
-        <div class="topnav" id="tdTopnav">
-            <a  style="background-color: #af7a4c; color: white;"
-                href=""
-                onclick="
-                    if (location.protocol != 'https:') {
-                        trackdirect.setCenter(); // Will go to default position
-                    } else {
-                        trackdirect.setMapLocationByGeoLocation(
-                            function(errorMsg) {
-                                var msg = 'We failed to determine your current location by using HTML 5 Geolocation functionality';
-                                if (typeof errorMsg !== 'undefined' && errorMsg != '') {
-                                    msg += ' (' + errorMsg + ')';
-                                }
-                                msg += '.';
-                                alert(msg);
-                            },
-                            function() {},
-                            5000
-                        );
-                    }
-                    return false;"
-                title="Go to my current position">
-                My position
-            </a>
-
-            <div class="dropdown">
-                <button class="dropbtn">Tail length
-                    <i class="fa fa-caret-down"></i>
-                </button>
-                <div class="dropdown-content" id="tdTopnavTimelength">
-                    <a href="javascript:void(0);" onclick="trackdirect.setTimeLength(10); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox">10 minutes</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.setTimeLength(30); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox">30 minutes</a>
-                    <a href="javascript:void(0);" id="tdTopnavTimelengthDefault" onclick="trackdirect.setTimeLength(60); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox">1 hour</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.setTimeLength(180); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox">3 hours</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.setTimeLength(360); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox">6 hours</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.setTimeLength(720); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox dropdown-content-checkbox-only-filtering dropdown-content-checkbox-hidden">12 hours</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.setTimeLength(1080); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox dropdown-content-checkbox-only-filtering dropdown-content-checkbox-hidden">18 hours</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.setTimeLength(1440); $('#tdTopnavTimelength>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox dropdown-content-checkbox-only-filtering dropdown-content-checkbox-hidden">24 hours</a>
-                </div>
-            </div>
-
-            <div class="dropdown">
-                <button class="dropbtn">Map API
-                    <i class="fa fa-caret-down"></i>
-                </button>
-                <div class="dropdown-content">
-                    <?php if (getWebsiteConfig('google_key') != null) : ?>
-                        <a href="/?mapapi=google" title="Switch to Google Maps" <?= ($mapapi=="google"?"class='dropdown-content-checkbox dropdown-content-checkbox-active'":"class='dropdown-content-checkbox'") ?>>Google Maps API</a>
-                    <?php endif; ?>
-                    <a href="/?mapapi=leaflet" title="Switch to Leaflet with raster tiles" <?= ($mapapi=="leaflet"?"class='dropdown-content-checkbox  dropdown-content-checkbox-active'":"class='dropdown-content-checkbox'") ?>>Leaflet - Raster Tiles</a>
-                    <?php if (getWebsiteConfig('maptiler_key') != null) : ?>
-                        <a href="/?mapapi=leaflet-vector" title="Switch to Leaflet with vector tiles" <?= ($mapapi=="leaflet-vector"?"class='dropdown-content-checkbox dropdown-content-checkbox-active'":"class='dropdown-content-checkbox'") ?>>Leaflet - Vector Tiles</a>
-                    <?php endif; ?>
-                </div>
-            </div>
-
-            <?php if ($mapapi != 'leaflet-vector') : ?>
-            <div class="dropdown">
-                <button class="dropbtn">Map Type
-                    <i class="fa fa-caret-down"></i>
-                </button>
-                <div class="dropdown-content" id="tdTopnavMapType">
-                    <a href="javascript:void(0);" onclick="trackdirect.setMapType('roadmap'); $('#tdTopnavMapType>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox dropdown-content-checkbox-active">Roadmap</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.setMapType('terrain'); $('#tdTopnavMapType>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox">Terrain/Outdoors</a>
-                    <?php if ($mapapi == 'google' || getWebsiteConfig('leaflet_raster_tile_satellite') != null) : ?>
-                    <a href="javascript:void(0);" onclick="trackdirect.setMapType('satellite'); $('#tdTopnavMapType>a').removeClass('dropdown-content-checkbox-active'); $(this).addClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox">Satellite</a>
-                    <?php endif; ?>
-                </div>
-            </div>
-            <?php endif; ?>
-
-            <div class="dropdown">
-                <button class="dropbtn">Settings
-                    <i class="fa fa-caret-down"></i>
-                </button>
-		<div class="dropdown-content" id="tdTopnavSettings">
-                    <a href="javascript:void(0);" onclick="trackdirect.toggleImperialUnits(); $(this).toggleClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox <?php echo (isImperialUnitUser()?'dropdown-content-checkbox-active':''); ?>" title="Switch to imperial units">Use imperial units</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.toggleStationaryPositions(); $(this).toggleClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox" title="Hide stations that is not moving">Hide not moving stations</a>
-
-                    <!--
-                    <a href="javascript:void(0);" onclick="trackdirect.toggleInternetPositions(); $(this).toggleClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox" title="Hide stations that sends packet using TCP/UDP">Hide Internet stations</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.toggleCwopPositions(); $(this).toggleClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox" title="Hide CWOP weather stations">Hide CWOP stations</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.toggleOgflymPositions(); $(this).toggleClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox" title="Hide model airplanes (OGFLYM)">Hide model airplanes (OGFLYM)</a>
-                    <a href="javascript:void(0);" onclick="trackdirect.toggleUnknownPositions(); $(this).toggleClass('dropdown-content-checkbox-active');" class="dropdown-content-checkbox" title="Hide unknown aircrafts">Hide unknown aircrafts</a>
-                    -->
-                </div>
-            </div>
-
-            <div class="dropdown">
-                <button class="dropbtn">Other
-                    <i class="fa fa-caret-down"></i>
-                </button>
-                <div class="dropdown-content">
-
-                    <a href="/views/search.php"
-			class="tdlink"
-                        onclick="$(this).attr('href', '/views/search.php?imperialUnits=' + (trackdirect.isImperialUnits()?'1':'0'))"
-                        title="Search for a station/vehicle here!">
-                        Station search
-                    </a>
-
-                    <a href="/views/latest.php"
-			class="tdlink"
-                        onclick="$(this).attr('href', '/views/latest.php?imperialUnits=' + (trackdirect.isImperialUnits()?'1':'0'))"
-                        title="List latest heard stations!">
-                        Latest heard
-                    </a>
-
-                    <a href="javascript:void(0);"
-                        onclick="$('#modal-timetravel').show();"
-                        title="Select date and time to show what the map looked like then">
-                        Travel in time
-                    </a>
-
-                    <a class="triple-notselected" href="#" onclick="trackdirect.togglePHGCircles(); return false;" title="Show PHG cirlces, first click will show half PGH circles and second click will show full PHG circles.">
-                        Toggle PHG circles
-                    </a>
-                </div>
-            </div>
-
-            <a href="/views/about.php"
-                class="tdlink"
-                title="More about this website!">
-                About
-            </a>
-
-            <a href="javascript:void(0);" class="icon" onclick="toggleTopNav()">&#9776;</a>
-        </div>
-
-        <div id="map-container"></div>
-
-        <div id="right-container">
-            <div id="right-container-info">
-                <div id="status-container"></div>
-                <div id="cordinates-container"></div>
-            </div>
-
-            <div id="right-container-filtered">
-                <div id="right-container-filtered-content"></div>
-                <a href="#" onclick="trackdirect.filterOnStationId([]); return false;">reset</a>
-            </div>
-
-            <div id="right-container-timetravel">
-                <div id="right-container-timetravel-content"></div>
-                <a href="#" onclick="trackdirect.setTimeTravelTimestamp(0); $('#right-container-timetravel').hide(); return false;">reset</a>
-            </div>
-        </div>
-
-        <div id="td-modal" class="modal">
-            <div class="modal-long-content">
-                <div class="modal-content-header">
-                    <span class="modal-close" id="td-modal-close">&times;</span>
-                    <span class="modal-title" id="td-modal-title"><?php echo getWebsiteConfig('title'); ?></h2>
-                </div>
-                <div class="modal-content-body">
-                    <div id="td-modal-content">
-                        <?php $view = getView($_GET['view']); ?>
-                        <?php if ($view) : ?>
-                            <?php include($view); ?>
-			<?php else: ?>
-                            <div id="td-modal-content-nojs">
-                                <?php include(ROOT . '/public/views/about.php'); ?>
-                            </div>
-                        <?php endif; ?>
-                    </div>
-                </div>
-            </div>
-        </div>
-
-        <div id="modal-timetravel" class="modal">
-            <div class="modal-content">
-                <div class="modal-content-header">
-                    <span class="modal-close" onclick="$('#modal-timetravel').hide();">&times;</span>
-                    <span class="modal-title">Travel in time</h2>
-                </div>
-                <div class="modal-content-body" style="margin: 0px 20px 20px 20px;">
-                    <?php if (!isAllowedToShowOlderData()) : ?>
-                        <div style="text-align: center;">
-                            <p style="max-width: 800px; display: inline-block; color: red;">
-                                The time travel feature that allows you to see the map as it looked like an earlier date is disabled on this website.
-                            </p>
-                        </div>
-                    <?php else : ?>
-                        <p>Select date and time to show map data for (enter time for your locale time zone). The regular time length select box can still be used to select how old data that should be shown (relative to selected date and time).</p>
-                        <p>*Note that the heatmap will still based on data from the latest hour (not the selected date and time).</p>
-                        <p>Date and time:</p>
-
-                        <form id="timetravel-form">
-                            <select id="timetravel-date" class="timetravel-select form-control"
-                                <option value="0" selected>Select date</option>
-                                <?php for($i=0; $i <= 10; $i++) : ?>
-                                    <?php $date = date('Y-m-d', strtotime("-$i days")); ?>
-                                    <option value="<?php echo $date; ?>"><?php echo $date; ?></option>
-                                <?php endfor; ?>
-                            </select>
-
-                            <select id="timetravel-time" class="timetravel-select form-control">
-                                <option value="0" selected>Select time</option>
-                                <option value="00:00">00:00</option>
-                                <option value="01:00">01:00</option>
-                                <option value="02:00">02:00</option>
-                                <option value="03:00">03:00</option>
-                                <option value="04:00">04:00</option>
-                                <option value="05:00">05:00</option>
-                                <option value="06:00">06:00</option>
-                                <option value="07:00">07:00</option>
-                                <option value="08:00">08:00</option>
-                                <option value="09:00">09:00</option>
-                                <option value="10:00">10:00</option>
-                                <option value="11:00">11:00</option>
-                                <option value="12:00">12:00</option>
-                                <option value="13:00">13:00</option>
-                                <option value="14:00">14:00</option>
-                                <option value="15:00">15:00</option>
-                                <option value="16:00">16:00</option>
-                                <option value="17:00">17:00</option>
-                                <option value="18:00">18:00</option>
-                                <option value="19:00">19:00</option>
-                                <option value="20:00">20:00</option>
-                                <option value="21:00">21:00</option>
-                                <option value="22:00">22:00</option>
-                                <option value="23:00">23:00</option>
-                            </select>
-                            <input type="submit"
-                                value="Ok"
-                                onclick="
-                                    if ($('#timetravel-date').val() != '0' && $('#timetravel-time').val() != '0') {
-                                        trackdirect.setTimeLength(60, false);
-                                        var ts = moment($('#timetravel-date').val() + ' ' + $('#timetravel-time').val(), 'YYYY-MM-DD HH:mm').unix();
-                                        trackdirect.setTimeTravelTimestamp(ts);
-                                        $('#right-container-timetravel-content').html('Time travel to ' + $('#timetravel-date').val() + ' ' + $('#timetravel-time').val());
-                                        $('#right-container-timetravel').show();
-                                    } else {
-                                        trackdirect.setTimeTravelTimestamp(0, true);
-                                        $('#right-container-timetravel').hide();
-                                    }
-                                    $('#modal-timetravel').hide();
-                                    return false;"/>
-                        </form>
-                    <?php endif; ?>
-                </div>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/htdocs/public/js/convex-hull.js b/htdocs/public/js/convex-hull.js
deleted file mode 100644
index 376cb7f3d20b9a05ee9590b614cb3e715674e69d..0000000000000000000000000000000000000000
--- a/htdocs/public/js/convex-hull.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Convex hull algorithm - Library (compiled from TypeScript)
- *
- * Copyright (c) 2021 Project Nayuki
- * https://www.nayuki.io/page/convex-hull-algorithm
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program (see COPYING.txt and COPYING.LESSER.txt).
- * If not, see <http://www.gnu.org/licenses/>.
- */
-"use strict";
-var convexhull;
-(function (convexhull) {
-    // Returns a new array of points representing the convex hull of
-    // the given set of points. The convex hull excludes collinear points.
-    // This algorithm runs in O(n log n) time.
-    function makeHull(points) {
-        var newPoints = points.slice();
-        newPoints.sort(convexhull.POINT_COMPARATOR);
-        return convexhull.makeHullPresorted(newPoints);
-    }
-    convexhull.makeHull = makeHull;
-    // Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.
-    function makeHullPresorted(points) {
-        if (points.length <= 1)
-            return points.slice();
-        // Andrew's monotone chain algorithm. Positive y coordinates correspond to "up"
-        // as per the mathematical convention, instead of "down" as per the computer
-        // graphics convention. This doesn't affect the correctness of the result.
-        var upperHull = [];
-        for (var i = 0; i < points.length; i++) {
-            var p = points[i];
-            while (upperHull.length >= 2) {
-                var q = upperHull[upperHull.length - 1];
-                var r = upperHull[upperHull.length - 2];
-                if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))
-                    upperHull.pop();
-                else
-                    break;
-            }
-            upperHull.push(p);
-        }
-        upperHull.pop();
-        var lowerHull = [];
-        for (var i = points.length - 1; i >= 0; i--) {
-            var p = points[i];
-            while (lowerHull.length >= 2) {
-                var q = lowerHull[lowerHull.length - 1];
-                var r = lowerHull[lowerHull.length - 2];
-                if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))
-                    lowerHull.pop();
-                else
-                    break;
-            }
-            lowerHull.push(p);
-        }
-        lowerHull.pop();
-        if (upperHull.length == 1 && lowerHull.length == 1 && upperHull[0].x == lowerHull[0].x && upperHull[0].y == lowerHull[0].y)
-            return upperHull;
-        else
-            return upperHull.concat(lowerHull);
-    }
-    convexhull.makeHullPresorted = makeHullPresorted;
-    function POINT_COMPARATOR(a, b) {
-        if (a.x < b.x)
-            return -1;
-        else if (a.x > b.x)
-            return +1;
-        else if (a.y < b.y)
-            return -1;
-        else if (a.y > b.y)
-            return +1;
-        else
-            return 0;
-    }
-    convexhull.POINT_COMPARATOR = POINT_COMPARATOR;
-})(convexhull || (convexhull = {}));
\ No newline at end of file
diff --git a/htdocs/public/js/main.js b/htdocs/public/js/main.js
deleted file mode 100755
index c1b3a9b256bc5c0a131c1719d6cab04e1b5595e5..0000000000000000000000000000000000000000
--- a/htdocs/public/js/main.js
+++ /dev/null
@@ -1,158 +0,0 @@
-jQuery(document).ready(function ($) {
-  $('#td-modal-content-nojs').remove();
-  if ($('#td-modal-content').text().trim() == '') {
-    $('#td-modal').hide();
-  } else {
-    var title = $('#td-modal-content title').text();
-    if (title != '') {
-      $("#td-modal-title").text(title);
-    }
-  }
-});
-
-// Init local time presentation
-jQuery(document).ready(function ($) {
-  var locale = window.navigator.userLanguage || window.navigator.language;
-  moment.locale(locale);
-});
-
-// Switch between regular topnav and topnav adapted for mobile
-function toggleTopNav() {
-  var x = document.getElementById("tdTopnav");
-  if (x.className === "topnav") {
-    x.className += " responsive";
-  } else {
-    x.className = "topnav";
-  }
-}
-
-// If an external website shows map in iframe, hide all menu's
-if (!inIframe()) {
-  $("#tdTopnav").hide();
-}
-
-// Set correct time length option to active
-jQuery(document).ready(function ($) {
-  $("#tdTopnavTimelengthDefault").addClass("dropdown-content-checkbox-active");
-});
-
-// Open all internal url's in dialog
-function loadView(url) {
-  var view = url.split('/').pop().split("?")[0];
-  if (view != '') {
-    var requestUrl = '/views/' + url.split('/').pop();
-    $("#td-modal-content").html('<img src="/images/spinner.gif" style="max-width: 100%; max-height: 100px; margin-top: 40px; margin-left: auto; margin-right: auto; display: block;"/>');
-    $("#td-modal-title").text('');
-    $("#td-modal").show();
-    $("#td-modal-content").load(requestUrl, {'modal': true},
-      function() {
-        history.replaceState(null, "", requestUrl);
-        var title = $('#td-modal-content title').text();
-        $("#td-modal-title").text(title);
-
-        $("#td-modal-content .tdlink").unbind('click').bind('click', function(e) {
-          loadView(this.href);
-          e.preventDefault();
-        });
-      }
-    );
-  }
-}
-jQuery(document).ready(function ($) {
-  $(".tdlink").bind('click', function(e) {
-    loadView(this.href);
-    e.preventDefault();
-  });
-});
-
-// Handle dialog close
-jQuery(document).ready(function ($) {
-  $("#td-modal-close").bind('click', function(e) {
-    $('#td-modal').hide();
-    history.replaceState(null, "", "/");
-  });
-});
-
-// Open station dialog if user clicked on station name
-jQuery(document).ready(function ($) {
-  trackdirect.addListener("station-name-clicked", function (data) {
-    if (trackdirect.isImperialUnits()) {
-      loadView("/views/overview.php?id=" + data.station_id + "&imperialUnits=1");
-    } else {
-      loadView("/views/overview.php?id=" + data.station_id + "&imperialUnits=0");
-    }
-  });
-});
-
-// Update url when user moves map
-jQuery(document).ready(function ($) {
-  var newUrlTimeoutId = null;
-  trackdirect.addListener("position-request-sent", function (data) {
-    if (newUrlTimeoutId !== null) {
-      clearTimeout(newUrlTimeoutId);
-    }
-
-    newUrlTimeoutId = window.setTimeout(function () {
-      if ($("#td-modal").is(":hidden")) {
-        var url = window.location.href.split('/').pop();
-        var newLat = Math.round(data.center.lat * 10000) / 10000;
-        var newLng = Math.round(data.center.lng * 10000) / 10000;
-        var newZoom = data.zoom;
-
-        if (!url.includes("center=")) {
-          if (!url.includes("?")) {
-            url += "?center=" + newLat + "," + newLng;
-          } else {
-            url += "&center=" + newLat + "," + newLng;
-          }
-        } else {
-          url = url.replace(/center=[^&]*/i, "center=" + newLat + "," + newLng);
-        }
-
-        if (!url.includes("zoom=")) {
-          if (!url.includes("?")) {
-            url += "?zoom=" + newZoom;
-          } else {
-            url += "&zoom=" + newZoom;
-          }
-        } else {
-          url = url.replace(/zoom=[^&]*/i, "zoom=" + newZoom);
-        }
-
-        history.replaceState(null, "", url);
-      }
-    }, 1000);
-  });
-});
-
-// Handle filter response
-jQuery(document).ready(function ($) {
-  trackdirect.addListener("filter-changed", function (packets) {
-    if (packets.length == 0) {
-      // We are not filtering any more.
-      $("#right-container-filtered").hide();
-
-      // Time travel is stopped when filtering is stopped
-      $("#right-container-timetravel").hide();
-
-      // Reset tail length to default when filtering is stopped
-      $("#tdTopnavTimelength>a").removeClass("dropdown-content-checkbox-active");
-      $("#tdTopnavTimelengthDefault").addClass("dropdown-content-checkbox-active");
-      $(".dropdown-content-checkbox-only-filtering").addClass("dropdown-content-checkbox-hidden");
-    } else {
-      var counts = {};
-      for (var i = 0; i < packets.length; i++) {
-        // Note that if related is set to 1, it is included since it is related to the station we are filtering on
-        if (packets[i].related == 0) {
-          counts[packets[i]["station_name"]] =
-            1 + (counts[packets[i]["station_name"]] || 0);
-        }
-      }
-      $("#right-container-filtered-content").html(
-        "Filtering on " + Object.keys(counts).length + " station(s)"
-      );
-      $("#right-container-filtered").show();
-      $(".dropdown-content-checkbox-only-filtering").removeClass("dropdown-content-checkbox-hidden");
-    }
-  });
-});
diff --git a/htdocs/public/js/trackdirect.min.js b/htdocs/public/js/trackdirect.min.js
deleted file mode 100755
index 8bcd1e463f45e759435b7a65d83e45fe1fcaad12..0000000000000000000000000000000000000000
--- a/htdocs/public/js/trackdirect.min.js
+++ /dev/null
@@ -1,889 +0,0 @@
-var trackdirect={services:{},models:{},_time:null,_timetravel:null,_center:null,_zoom:null,_maptype:null,_mid:null,_rulers:[],_filterTimeoutId:null,_waitForFilterResponse:false,_doNotChangeLocationOnFilterResponse:false,_doNotChangeLocationOnFilterResponseTmp:false,_filters:{},_defaultLatitude:null,_defaultLongitude:null,_eventListeners:{},_eventListenersOnce:{},_cordinatesContainerElementId:null,_statusContainerElementId:"td-status-text",_mapElementId:null,_wsServerUrl:null,_map:null,_websocket:null,_mapCreated:false,_trackdirectInitDone:false,isMobile:false,coverageDataUrl:null,coveragePercentile:95,settings:{},init:function(wsServerUrl,mapElementId,options){this._initSettings();this._wsServerUrl=wsServerUrl;this._mapElementId=mapElementId;if($("#"+mapElementId).length<=0){console.log("ERROR: Specified map element missing");return;}
-if(typeof google==="object"&&typeof google.maps==="object"){this.settings.defaultMinZoomForMarkerLabel=12;this.settings.minZoomForMarkerLabel=12;}
-this._parseOptions(options);var me=this;this.addListener("map-created",function(){me._initTime();me._websocket=new trackdirect.Websocket(me._wsServerUrl);me._initWebsocketListeners();me._handleWebsocketStateChange();me._initMapListeners();if(!me._initFilterUrlRequest()){trackdirect.services.callbackExecutor.add(me,me._sendPositionRequest,[]);}
-me._setWebsocketStateIdle();if(inIframe()){var parentUrl="";try{parentUrl=window.location!=window.parent.location?document.referrer:document.location.href;}catch(e){parentUrl="Unknown";}}
-me._emitEventListeners("trackdirect-init-done");});this._mapInit(options);},enableImperialUnits:function(){this._map.state.useImperialUnit=true;if(this._map.state.openInfoWindow!==null){this._map.state.openInfoWindow.hide();}},enableMetricUnits:function(){this._map.state.useImperialUnit=false;if(this._map.state.openInfoWindow!==null){this._map.state.openInfoWindow.hide();}},toggleImperialUnits:function(){if(this._map.state.useImperialUnit){this.enableMetricUnits();}else{this.enableImperialUnits();}},isImperialUnits:function(){return this._map.state.useImperialUnit;},addListener:function(event,handler,execOnce){execOnce=typeof execOnce!=="undefined"?execOnce:false;if((event=="map-created"&&this._mapCreated)||(event=="trackdirect-init-done"&&this._trackdirectInitDone)){handler();if(execOnce){return;}}
-if(execOnce){if(!(event in this._eventListenersOnce)){this._eventListenersOnce[event]=[];}
-this._eventListenersOnce[event].push(handler);}else{if(!(event in this._eventListeners)){this._eventListeners[event]=[];}
-this._eventListeners[event].push(handler);}},setCenter:function(latitude,longitude,zoom){latitude=typeof latitude!=="undefined"?latitude:this._defaultLatitude;longitude=typeof longitude!=="undefined"?longitude:this._defaultLongitude;zoom=typeof zoom!=="undefined"?zoom:this._map.getZoom();if(this._map!==null){this._map.setCenter({lat:latitude,lng:longitude},zoom);}},setZoom:function(value){if(this._map!==null){this._map.setZoom(value);}},addRuler:function(){if(this._rulers.length>0){var ruler=this._rulers.pop();ruler.hide();}else{var ruler=new trackdirect.models.Ruler((this._map.getCurrentRadiusInKm()*1000)/2,this._map);this._rulers.push(ruler);}},isFilteredMode:function(){return this._map.state.isFilterMode;},stopFilterOnStationId:function(stationId){var currentFilterStationIds=this._map.state.getFilterStationIds();if(currentFilterStationIds.length==1&&currentFilterStationIds.indexOf(stationId)>=0){this.filterOnStationId([]);}else{if(this._map.state.getTrackStationId()==stationId){this.stopTrackStation();}
-this._setWebsocketStateLoading(false);this._websocket.doSendStopFilterRequest(stationId);}},filterOnStationId:function(stationIdArray){if(!Array.isArray(stationIdArray)){stationIdArray=[stationIdArray];}
-var currentFilterStationIds=this._map.state.getFilterStationIds();if(currentFilterStationIds.length==0){if(this._map.state.getTrackStationId()!==null&&stationIdArray.indexOf(this._map.state.getTrackStationId())==-1){this.stopTrackStation();}}
-this._setWebsocketStateLoading(false);this._websocket.doSendFilterRequest(stationIdArray,this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp());},filterOnStationName:function(stationNameArray){if(!Array.isArray(stationNameArray)){stationNameArray=[stationNameArray];}
-var currentFilterStationIds=this._map.state.getFilterStationIds();if(currentFilterStationIds.length==0){if(this._map.state.getTrackStationId()!==null&&stationIdArray.indexOf(this._map.state.getTrackStationId())==-1){this.stopTrackStation();}}
-this._setWebsocketStateLoading(false);this._websocket.doSendFilterRequestByName(stationNameArray,this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp());},stopTrackStation:function(){this._map.state.onlyTrackRecentPackets=false;this._map.state.trackStationId=null;this._emitEventListeners("track-changed",[null,null]);},trackStation:function(stationId,stationName,alsoFilterOnStation,onlyTrackRecentPackets){onlyTrackRecentPackets=typeof onlyTrackRecentPackets!=="undefined"?onlyTrackRecentPackets:false;if(alsoFilterOnStation){var currentFilterStationIds=this._map.state.getFilterStationIds();if(currentFilterStationIds.length>0){if(currentFilterStationIds.indexOf(stationId)==-1){this.filterOnStationId(stationId);}}}
-if(stationId!==null){var trackLinkElementClass="trackStationLink"+stationId;$("."+trackLinkElementClass).html("Untrack");}
-if(this._map.state.trackStationId!==null){var trackLinkElementClass="trackStationLink"+this._map.state.trackStationId;$("."+trackLinkElementClass).html("Track");}
-this._map.state.onlyTrackRecentPackets=onlyTrackRecentPackets;this._map.state.trackStationId=stationId;this._emitEventListeners("track-changed",[stationId,stationName]);},focusOnStation:function(stationId,openInfoWindow){var map=this._map;openInfoWindow=typeof openInfoWindow!=="undefined"?openInfoWindow:false;var marker=map.markerCollection.getStationLatestMarker(stationId);if(marker!==null){marker.show();marker.showLabel();if(openInfoWindow){map.openMarkerInfoWindow(marker,false);}else{this.setCenter(marker.packet.latitude,marker.packet.longitude);}
-marker.hide(5000,true);return true;}else{return false;}},focusOnMarkerId:function(markerId,zoom){var map=this._map;var markerIdKey=map.markerCollection.getMarkerIdKey(markerId);if(map.markerCollection.isExistingMarker(markerIdKey)){var marker=map.markerCollection.getMarker(markerIdKey);if(map.markerCollection.hasRelatedDashedPolyline(marker)){newerMarker=map.markerCollection.getMarker(marker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey);if(newerMarker.packet.hasConfirmedMapId()){return this.focusOnMarkerId(newerMarker.packet.marker_id);}}
-marker.show();marker.showLabel();this.setCenter(marker.packet.latitude,marker.packet.longitude,zoom);map.openMarkerInfoWindow(marker);marker.hide(5000,true);}},toggleStationCoverage:function(stationId,coverageLinkElementClass){coverageLinkElementClass=typeof coverageLinkElementClass!=="undefined"?coverageLinkElementClass:null;var coveragePolygon=this._map.markerCollection.getStationCoverage(stationId);if(coveragePolygon!==null&&coveragePolygon.isRequestedToBeVisible()){coveragePolygon.hide();if(coverageLinkElementClass!==null){$("."+coverageLinkElementClass).html("Coverage");}}else{if(coveragePolygon!==null){coveragePolygon.show();if(!coveragePolygon.hasContent()){alert("Currently we do not have enough data to create a max range coverage plot for this station. Try again later!");}else{if(coverageLinkElementClass!==null){$("."+coverageLinkElementClass).html("Hide coverage");}}}else{var packet=this._map.markerCollection.getStationLatestPacket(stationId);var center={lat:parseFloat(packet.latitude),lng:parseFloat(packet.longitude),};var coveragePolygon=new trackdirect.models.StationCoveragePolygon(center,this._map,true);this._map.markerCollection.addStationCoverage(stationId,coveragePolygon);coveragePolygon.showWhenDone();if(coverageLinkElementClass!==null){$("."+coverageLinkElementClass).html('Loading <i class="fa fa-spinner fa-spin" style="font-size:12px"></i>');coveragePolygon.addTdListener("visible",function(){if(!coveragePolygon.hasContent()){coveragePolygon.hide();alert("Currently we do not have enough data to create a max range coverage plot for this station. Try again later!");$("."+coverageLinkElementClass).html("Coverage");}else{$("."+coverageLinkElementClass).html("Hide coverage");}},true);}
-var me=this;$.getJSON(this.coverageDataUrl+"?id="+stationId,function(data){if("station_id"in data&&"coverage"in data){coveragePolygon.setData(data["coverage"],me.coveragePercentile);var marker=me._map.markerCollection.getStationLatestMarker(stationId);if(marker.isVisible()){if(coveragePolygon.isRequestedToBeVisible()){coveragePolygon.show();}}}}).fail(function(){coveragePolygon.hide();alert("Failed to fetch coverage data. Try again later!");$("."+coverageLinkElementClass).html("Coverage");}).always(function(){});}}},setMapType:function(mapType){if(this._map!==null){this._map.setMapType(mapType);}},getMapType:function(){if(this._map!==null){return this._map.getMapType();}},setMapDefaultLocation:function(setDefaultZoom){this._map.setMapDefaultLocation(setDefaultZoom);},setMapLocationByGeoLocation:function(failCallBack,successCallBack,timeout){var me=this;if(navigator&&navigator.geolocation){navigator.geolocation.getCurrentPosition(function(position){var pos={lat:position.coords.latitude,lng:position.coords.longitude,};me._map.setCenter(pos,12);if(successCallBack!==null){successCallBack();}},function(error){if(failCallBack!==null){failCallBack(error.message);}},{enableHighAccuracy:false,timeout:timeout,maximumAge:5000,});}else{if(failCallBack!==null){failCallBack();}}},openStationInformationDialog:function(stationId){var packet=this._map.markerCollection.getStationLatestPacket(stationId);if(packet==null){packet={station_id:stationId,id:null};}
-this._emitEventListeners("station-name-clicked",packet);},openMarkerInfoWindow:function(markerId){var markerIdKey=this._map.markerCollection.getMarkerIdKey(markerId);if(this._map.markerCollection.isExistingMarker(markerIdKey)){var marker=this._map.markerCollection.getMarker(markerIdKey);this._map.openMarkerInfoWindow(marker);}},closeAnyOpenInfoWindow:function(){if(this._map!==null){var state=this._map.state;if(state.isInfoWindowOpen()){state.openInfoWindow.hide();}}},setTimeTravelTimestamp:function(ts,sendRequestToServer){if(ts!=0||this._map.state.endTimeTravelTimestamp!=null){sendRequestToServer=typeof sendRequestToServer!=="undefined"?sendRequestToServer:true;if(this._map.state.endTimeTravelTimestamp!=ts){if(ts!=null&&ts!=0&&ts!=""){this._map.state.endTimeTravelTimestamp=ts;}else{this._map.state.endTimeTravelTimestamp=null;}
-if(sendRequestToServer){trackdirect.services.callbackExecutor.add(this,this._handleTimeChange,[]);}}
-this._emitEventListeners("time-travel-changed",ts);this._emitEventListeners("mode-changed");}},getTimeTravelTimestamp:function(){return this._map.state.endTimeTravelTimestamp;},setTimeLength:function(time,sendRequestToServer){sendRequestToServer=typeof sendRequestToServer!=="undefined"?sendRequestToServer:true;if(this._map.state.getTimeLength()/60!=time){this._map.state.setTimeLength(time*60);if(sendRequestToServer){trackdirect.services.callbackExecutor.add(this,this._handleTimeChange,[]);}}
-this._emitEventListeners("time-length-changed",time);this._updateMinZoomLevels();},togglePHGCircles:function(){var state=this._map.state;if(state.showPHGCircles==0){state.showPHGCircles=1;}else if(state.showPHGCircles==1){state.showPHGCircles=2;}else{state.showPHGCircles=0;}
-this._map.showHidePHGCircles();},toggleRNGCircles:function(){var state=this._map.state;if(state.showRNGCircles==0){state.showRNGCircles=1;}else if(state.showRNGCircles==1){state.showRNGCircles=2;}else{state.showRNGCircles=0;}
-this._map.showHideRNGCircles();},toggleStationaryPositions:function(){if(this.isStationaryMarkersVisible()){this._map.state.isStationaryMarkersVisible=false;}else{this._map.state.isStationaryMarkersVisible=true;}
-this._map.showHideMarkers();},toggleUnknownPositions:function(){if(this.isUnknownMarkersVisible()){this._map.state.isUnknownMarkersVisible=false;}else{this._map.state.isUnknownMarkersVisible=true;}
-this._map.showHideMarkers();},toggleOgflymPositions:function(){if(this.isOgflymMarkersVisible()){this._map.state.isOgflymMarkersVisible=false;}else{this._map.state.isOgflymMarkersVisible=true;}
-this._map.showHideMarkers();},toggleInternetPositions:function(){if(this.isInternetMarkersVisible()){this._map.state.isInternetMarkersVisible=false;}else{this._map.state.isInternetMarkersVisible=true;}
-this._map.showHideMarkers();},toggleCwopPositions:function(){if(this.isCwopMarkersVisible()){this._map.state.isCwopMarkersVisible=false;}else{this._map.state.isCwopMarkersVisible=true;}
-this._map.showHideMarkers();},toggleGhostPositions:function(){if(this.isGhostMarkersVisible()){this._map.state.isGhostMarkersVisible=false;}else{this._map.state.isGhostMarkersVisible=true;}
-this._map.showHideMarkers();},isGhostMarkersVisible:function(){return this._map.state.isGhostMarkersVisible;},isCwopMarkersVisible:function(){return this._map.state.isCwopMarkersVisible;},isInternetMarkersVisible:function(){return this._map.state.isInternetMarkersVisible;},isStationaryMarkersVisible:function(){return this._map.state.isStationaryMarkersVisible;},setVisibleSymbols:function(symbols){this._map.state.visibleSymbols=symbols;this._map.showHideMarkers();},addVisibleSymbol:function(symbol){this._map.state.visibleSymbols.push(symbol);this._map.showHideMarkers();},removeVisibleSymbol:function(symbol){var indexToRemove=null;for(var i=0;i<this._map.state.visibleSymbols.length;i++){if(this._map.state.visibleSymbols[i][0]==symbol[0]&&this._map.state.visibleSymbols[i][1]==symbol[1]){indexToRemove=i;break;}}
-if(indexToRemove!==null){this._map.state.visibleSymbols.splice(indexToRemove,1);}
-this._map.showHideMarkers();},getVisibleSymbols:function(){return this._map.state.visibleSymbols;},isUnknownMarkersVisible:function(){return this._map.state.isUnknownMarkersVisible;},isOgflymMarkersVisible:function(){return this._map.state.isOgflymMarkersVisible;},handleFilterStationRequest:function(stationId,filterLinkElementClass){filterLinkElementClass=typeof filterLinkElementClass!=="undefined"?filterLinkElementClass:null;if(this._map.state.filterStationIds.length>0&&this._map.state.filterStationIds.indexOf(stationId)>-1){this.stopFilterOnStationId(stationId);if(filterLinkElementClass!==null){$("."+filterLinkElementClass).html("Filter");}}else{this.filterOnStationId(stationId);if(filterLinkElementClass!==null){$("."+filterLinkElementClass).html("Unfilter");}}},handleTrackStationRequest:function(stationId,trackLinkElementClass){stationId=typeof stationId!=="undefined"?stationId:0;trackLinkElementClass=typeof trackLinkElementClass!=="undefined"?trackLinkElementClass:null;if(this._map.state.getTrackStationId()!==null&&(stationId===0||this._map.state.getTrackStationId()==stationId)){if(trackLinkElementClass!==null){$("."+trackLinkElementClass).html("Track");}else if(this._map.state.openInfoWindow!==null){this._map.state.openInfoWindow.hide();}
-this.stopTrackStation();}else if(stationId!==0){if(trackLinkElementClass!==null){$("."+trackLinkElementClass).html("Untrack");}
-var packet=this._map.markerCollection.getStationLatestPacket(stationId);if(packet!==null){var stationName=packet.station_name;if(packet.sender_name!=packet.station_name){stationName=packet.station_name+" ("+packet.sender_name+")";}
-this.trackStation(stationId,stationName,true);}}},_initSettings:function(){this.settings={animate:true,defaultMinZoomForMarkerLabel:11,defaultMinZoomForMarkerPrevPosition:11,defaultMinZoomForMarkerTail:9,defaultMinZoomForMarkers:8,minZoomForMarkerLabel:11,minZoomForMarkerPrevPosition:11,minZoomForMarkerTail:9,minZoomForMarkers:8,markerSymbolBaseDir:"/symbols/",imagesBaseDir:"/images/",defaultCurrentZoom:11,defaultCurrentZoomMobile:11,dateFormat:"L LTSZ",dateFormatNoTimeZone:"L LTS",host:"www.aprsdirect.com",baseUrl:"https://www.aprsdirect.com",defaultTimeLength:60,symbolsToScale:[],primarySymbolWithNoDirectionPolyline:[87,64,95],alternativeSymbolWithNoDirectionPolyline:[40,42,64,74,84,85,96,98,101,102,112,116,119,121,123,],};},_parseOptions:function(options){if(typeof options["cordinatesContainerElementId"]!==undefined){this._cordinatesContainerElementId=options["cordinatesContainerElementId"];}
-if(typeof options["statusContainerElementId"]!==undefined){this._statusContainerElementId=options["statusContainerElementId"];}
-if(typeof options["isMobile"]!==undefined){this.isMobile=options["isMobile"];}
-if(typeof options["coverageDataUrl"]!==undefined){this.coverageDataUrl=options["coverageDataUrl"];}
-if(typeof options["coveragePercentile"]!==undefined){this.coveragePercentile=options["coveragePercentile"];}
-if(typeof options["time"]!==undefined){this._time=options["time"];}
-if(typeof options["timetravel"]!==undefined){this._timetravel=options["timetravel"];}
-if(typeof options["center"]!==undefined){this._center=options["center"];}
-if(typeof options["zoom"]!==undefined){this._zoom=options["zoom"];}
-if(typeof options["maptype"]!==undefined){this._maptype=options["maptype"];}
-if(typeof options["mid"]!==undefined){this._mid=options["mid"];}
-if(typeof options["filters"]!==undefined&&options["filters"]!==null){for(var i in options["filters"]){if(options["filters"][i]!==null&&options["filters"][i]!=""){this._filters[i]=options["filters"][i];}}}
-if(typeof options["disableLocationChangeOnFilterResponse"]!==undefined&&options["disableLocationChangeOnFilterResponse"]){this._doNotChangeLocationOnFilterResponse=true;}
-if(typeof options["defaultMinZoomForMarkerLabel"]!==undefined&&options["defaultMinZoomForMarkerLabel"]!=null){this.settings.defaultMinZoomForMarkerLabel=options["defaultMinZoomForMarkerLabel"];}
-if(typeof options["defaultMinZoomForMarkerPrevPosition"]!==undefined&&options["defaultMinZoomForMarkerPrevPosition"]!=null){this.settings.defaultMinZoomForMarkerPrevPosition=options["defaultMinZoomForMarkerPrevPosition"];}
-if(typeof options["defaultMinZoomForMarkerTail"]!==undefined&&options["defaultMinZoomForMarkerTail"]!=null){this.settings.defaultMinZoomForMarkerTail=options["defaultMinZoomForMarkerTail"];}
-if(typeof options["defaultMinZoomForMarkers"]!==undefined&&options["defaultMinZoomForMarkers"]!=null){this.settings.defaultMinZoomForMarkers=options["defaultMinZoomForMarkers"];}
-if(typeof options["animate"]!==undefined&&options["animate"]!=null){this.settings.animate=options["animate"];}
-if(typeof options["host"]!==undefined&&options["host"]!=null){this.settings.host=options["host"];this.settings.baseUrl=this._getMapBaseUrl(options["host"]);}else{this.settings.baseUrl=this._getMapBaseUrl();}
-if(typeof options["defaultTimeLength"]!==undefined&&options["defaultTimeLength"]!=null){this.settings.defaultTimeLength=options["defaultTimeLength"];}
-if(typeof options["symbolsToScale"]!==undefined&&options["symbolsToScale"]!==null){this.settings.symbolsToScale=options["symbolsToScale"];}
-this._initDefaultLocation(options);},_initDefaultLocation:function(options){if(typeof options["defaultLatitude"]!=="undefined"&&typeof options["defaultLongitude"]!=="undefined"){this._defaultLatitude=options["defaultLatitude"];this._defaultLongitude=options["defaultLongitude"];}else{this._defaultLatitude=0;this._defaultLongitude=0;}},_initTime:function(){var filterMode=false;if("sid"in this._filters||"sidlist"in this._filters||"sname"in this._filters||"snamelist"in this._filters){filterMode=true;}
-if(this._time!=null&&this._isValidTime(this._time,filterMode)){this.setTimeLength(this._time,false);}else{this.setTimeLength(this.settings.defaultTimeLength,false);}
-now=new Date();if(this._timetravel!=null&&this._timetravel>=0&&this._timetravel<=now.getTime()/1000){this.setTimeTravelTimestamp(this._timetravel,false);}
-this._updateMinZoomLevels();},_mapInit:function(options){if("sid"in this._filters||"sidlist"in this._filters||"sname"in this._filters||"snamelist"in this._filters){this._waitForFilterResponse=true;if(window.location.href.indexOf("/center/")>=0){this._doNotChangeLocationOnFilterResponseTmp=true;}}
-var tdMapOptions=this._getMapInitOptions(options);var me=this;$(document).ready(function(){me._map=new trackdirect.models.Map(me._mapElementId,tdMapOptions);me._markerCreator=new trackdirect.MarkerCreator(me._map);if(typeof options["useImperialUnit"]!=="undefined"&&options["useImperialUnit"]==true){me.enableImperialUnits();}
-me._emitEventListeners("map-created");});},_getMapInitOptions:function(options){var center=this._getMapInitCenter();var tdMapOptions={zoom:this._getMapInitZoom(),maptype:this._getMapInitMapType(),cordinatesContainer:this._cordinatesContainerElementId,defaultLatitude:this._defaultLatitude,defaultLongitude:this._defaultLongitude,initCenter:center,mid:this._getMapInitMid(),};if("supportedMapTypes"in options){tdMapOptions["supportedMapTypes"]=options["supportedMapTypes"];}
-if("mapboxGLStyle"in options){tdMapOptions["mapboxGLStyle"]=options["mapboxGLStyle"];}
-if("mapboxGLAccessToken"in options){tdMapOptions["mapboxGLAccessToken"]=options["mapboxGLAccessToken"];}
-if("mapboxGLAttribution"in options){tdMapOptions["mapboxGLAttribution"]=options["mapboxGLAttribution"];}
-return tdMapOptions;},_getMapInitCenter:function(){if(this._center!=null){var centerParts=this._center.split(",");if(centerParts.length==2&&this._isValidLatitude(centerParts[0])&&this._isValidLongitude(centerParts[1])){return{lat:parseFloat(centerParts[0]),lng:parseFloat(centerParts[1]),};}}
-return null;},_getMapInitZoom:function(){var zoom=null;if(this._zoom!=null&&this._isValidZoom(this._zoom)){zoom=this._zoom;}
-return zoom;},_getMapInitMid:function(){var mid=null;if(this._mid!=null){mid=this._mid;}
-return mid;},_getMapInitMapType:function(){var maptype=null;if(this._maptype!=null){maptype=this._maptype;}
-return maptype;},_initFilterUrlRequest:function(){if("sid"in this._filters){stationId=this._filters["sid"];if(isNumeric(stationId)){this.filterOnStationId(stationId);}}else if("sname"in this._filters){stationName=this._filters["sname"];if(stationName!=""){this.filterOnStationName(stationName);}}else if("sidlist"in this._filters){stationIdArray=this._filters["sidlist"].split(",");var isValid=true;for(var i=0;i<stationIdArray.length;i++){if(!isNumeric(stationIdArray[i])){isValid=false;}}
-if(isValid){this.filterOnStationId(stationIdArray);}}else if("snamelist"in this._filters){stationNameArray=this._filters["snamelist"].split(",");var isValid=true;for(var i=0;i<stationNameArray.length;i++){if(typeof stationNameArray[i]=="undefined"||stationNameArray[i]==""){isValid=false;}}
-if(isValid){this.filterOnStationName(stationNameArray);}}else{return false;}
-var me=this;this._filterTimeoutId=window.setTimeout(function(){if(me._waitForFilterResponse){me._waitForFilterResponse=false;trackdirect.services.callbackExecutor.add(me,me._sendPositionRequest,[]);}},5000);return true;},_isValidTime:function(time,filteredMode){if(isNumeric(time)){if(filteredMode&&time<=14400&&time>0){return true;}else if(filteredMode==false&&time<=1440&&time>0){return true;}}
-return false;},_isValidZoom:function(zoom){if(isNumeric(zoom)){if(zoom<=21&&zoom>=0){return true;}}
-return false;},_isValidLatitude:function(lat){if(isNumeric(lat)){if(lat<=90&&lat>=-90){return true;}}
-return false;},_isValidLongitude:function(lng){if(isNumeric(lng)){if(lng<=180&&lng>=-180){return true;}}
-return false;},_initMapListeners:function(){var me=this;this._map.addTdListener("change",function(){trackdirect.services.callbackExecutor.add(me,me._sendPositionRequest,[]);trackdirect.services.mapAttributionModifier.update(me._map);});this._map.addTdListener("moving",function(){trackdirect.services.callbackExecutor.addIfUnique(me,me._sendIdleRequest,[]);});this._map.addTdListener("station-tail-needed",function(stationId){me._websocket.doSendCompleteStationRequest(stationId,me._map.state.getTimeLength()/60,me.getTimeTravelTimestamp());});this._map.addTdListener("station-information",function(stationId){me.openStationInformationDialog(stationId);});},_initWebsocketListeners:function(){this._initWebsocketStateChangeListener();this._initWebsocketAprsPacketListener();this._initWebsocketPayloadDoneListener();this._initWebsocketFilterResponseListener();this._initWebsocketServerTimestampResponseListener();this._initWebsocketResetListener();},_initWebsocketStateChangeListener:function(){var me=this;this._websocket.addListener("state-change",function(){var callback=function(){me._handleWebsocketStateChange();};trackdirect.services.callbackExecutor.add(this,callback,[]);});},_initWebsocketAprsPacketListener:function(){var me=this;this._websocket.addListener("aprs-packet",function(packetData){var packet=new trackdirect.models.Packet(packetData);var queueTimestamp=Math.floor(Date.now()/1000);var callback=function(){var dequeueTimestamp=Math.floor(Date.now()/1000);if(dequeueTimestamp-queueTimestamp>5||!this.settings.animate){me._handleAprsPacket(packet,false);}else{me._handleAprsPacket(packet,true);}};trackdirect.services.callbackExecutor.add(me,callback,[]);});},_initWebsocketPayloadDoneListener:function(){var me=this;this._websocket.addListener("aprs-packet-payload-done",function(){var callback=function(){me._map.showNewMarkersInQueue(true);};trackdirect.services.callbackExecutor.add(this,callback,[]);});},_initWebsocketFilterResponseListener:function(){var me=this;this._websocket.addListener("filter-response",function(data){var callback=function(){me._handleFilterResponse(data);};trackdirect.services.callbackExecutor.add(this,callback,[]);});},_initWebsocketServerTimestampResponseListener:function(){var me=this;this._websocket.addListener("server-timestamp-response",function(data){var callback=function(){me._map.state.setServerCurrentTimestamp(data.timestamp);};trackdirect.services.callbackExecutor.add(this,callback,[]);if(me._map.getNumberOfNewMarkersToShow()>0){var callback2=function(){me._map.showNewMarkersInQueue(true);};trackdirect.services.callbackExecutor.addIfUnique(this,callback2,[]);}});},_initWebsocketResetListener:function(){var me=this;this._websocket.addListener("reset",function(){trackdirect.services.callbackExecutor.add(me._map,me._map.resetAllMarkers,[]);});},_updateMinZoomLevels:function(){if(this._map.state.getTimeLength()/60>720){trackdirect.settings.minZoomForMarkerPrevPosition=trackdirect.settings.defaultMinZoomForMarkerPrevPosition+1;trackdirect.settings.minZoomForMarkerTail=trackdirect.settings.defaultMinZoomForMarkerTail+1;trackdirect.settings.minZoomForMarkerLabel=trackdirect.settings.defaultMinZoomForMarkerLabel+1;trackdirect.settings.minZoomForMarkers=trackdirect.settings.defaultMinZoomForMarkers;}else{trackdirect.settings.minZoomForMarkerPrevPosition=trackdirect.settings.defaultMinZoomForMarkerPrevPosition;trackdirect.settings.minZoomForMarkerTail=trackdirect.settings.defaultMinZoomForMarkerTail;trackdirect.settings.minZoomForMarkerLabel=trackdirect.settings.defaultMinZoomForMarkerLabel;trackdirect.settings.minZoomForMarkers=trackdirect.settings.defaultMinZoomForMarkers;}},_handleTimeChange:function(){this._updateMinZoomLevels();this._map.resetAllMarkers();this._websocket.clearLastSentPositionRequest();trackdirect.services.callbackExecutor.add(this,this._sendPositionRequest,[]);this._emitEventListeners("mode-changed");},_handleFilterResponse:function(data){if(this._filterTimeoutId!==null){clearTimeout(this._filterTimeoutId);this._filterTimeoutId=null;}
-if(data.length==0){this._handleEmptyFilterResponse();}else{this._handleNonEmptyFilterResponse(data);}},_unMarkMissingStationsAsFiltered:function(data){var filterStationIds=this._map.state.getFilterStationIds();for(var key in filterStationIds){var stationId=filterStationIds[key];var foundStation=false;for(var i=0;i<data.length;i++){var packetData=data[i];if(packetData.station_id==stationId&&packetData["related"]==0){foundStation=true;}}
-if(!foundStation){this._unMarkStationAsFiltered(stationId);}}},_unMarkStationAsFiltered:function(stationId){var map=this._map;var index=map.state.filterStationIds.indexOf(stationId);if(index>-1){map.state.filterStationIds.splice(index,1);var filterLinkElementClass="filterStationLink"+stationId;$("."+filterLinkElementClass).html("Filter");for(var markerIdKey in map.markerCollection.getStationMarkerIdKeys(stationId)){var marker=this._map.markerCollection.getMarker(markerIdKey);if(marker!==null){marker.hideCompleteMarker();}}}},_getNumberOfUniqeStationsInArray:function(data){var numberOfStationPackets=0;for(var i=0;i<data.length;i++){var packetData=data[i];if(packetData["related"]==0){numberOfStationPackets++;}}
-return numberOfStationPackets;},_trackStationInArray:function(data,onlyTrackRecentPackets){if(this._getNumberOfUniqeStationsInArray(data)==1){for(var i=0;i<data.length;i++){var packet=new trackdirect.models.Packet(data[i]);if(packet["related"]==0){this.trackStation(packet.station_id,escapeHtml(packet.getStationName()),false,onlyTrackRecentPackets);}}}},_addFilterResponsePacketsToMap:function(data){var tryToShowPacket=this._isAnyPacketInArrayOlderThanCurrentLimit(data);for(var i=0;i<data.length;i++){var packet=new trackdirect.models.Packet(data[i]);if(packet["related"]==0){this._markStationAsFiltered(packet.station_id);}
-var markerIdKey=this._markerCreator.addPacket(packet,tryToShowPacket);var marker=this._map.markerCollection.getMarker(markerIdKey);if(marker!==null){marker.markToBeOverWritten();}}},_markStationAsFiltered:function(stationId){var map=this._map;if(map.state.filterStationIds.indexOf(stationId)==-1){map.state.filterStationIds.push(stationId);}
-var filterLinkElementClass="filterStationLink"+stationId;$("."+filterLinkElementClass).html("Unfilter");for(var markerIdKey in map.markerCollection.getStationMarkerIdKeys(stationId)){var marker=this._map.markerCollection.getMarker(markerIdKey);if(marker!==null){marker.showCompleteMarker();}}},_handleNonEmptyFilterResponse:function(data){var isFilterModeNew=!this.isFilteredMode();this._map.activateFilteredMode();this._waitForFilterResponse=false;if(isFilterModeNew){this._map.resetAllMarkers();this._emitEventListeners("mode-changed");}else{this._unMarkMissingStationsAsFiltered(data);}
-this._addFilterResponsePacketsToMap(data);var packets=[];for(var i=0;i<data.length;i++){packets.push(new trackdirect.models.Packet(data[i]));}
-this._emitEventListeners("filter-changed",packets);if(isFilterModeNew){var onlyTrackRecentPackets=true;if(!this._doNotChangeLocationOnFilterResponse&&!this._doNotChangeLocationOnFilterResponseTmp){onlyTrackRecentPackets=false;this._setFilteredMapBounds(data);}
-this._doNotChangeLocationOnFilterResponseTmp=false;this._trackStationInArray(data,onlyTrackRecentPackets);this._emitEventListeners("filter-new");}
-trackdirect.services.callbackExecutor.add(this,this._requestFilteredUpdate,[]);},_requestFilteredUpdate:function(){this._websocket.clearLastSentPositionRequest();this._setWebsocketStateLoading(false);this._websocket.doSendNewPositionRequest(90,180,-90,-180,this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp(),false);},_handleEmptyFilterResponse:function(){this._deactivateFiltered(true);this._waitForFilterResponse=false;},_isAnyPacketInArrayOlderThanCurrentLimit:function(data){for(var i=0;i<data.length;i++){var packetData=data[i];if(packetData["related"]==0){if(packetData.timestamp<packetData.requested_timestamp+60){return true;}
-if(packetData["source"]==0||packetData["source_id"]==0){return true;}}}
-return false;},_setFilteredMapBounds:function(data){if(data.length==1){this._map.setCenter({lat:parseFloat(data[0].latitude),lng:parseFloat(data[0].longitude),},12);}else{var positions=[];for(var i=0;i<data.length;i++){var packetData=data[i];if(packetData["related"]==0){positions.push({lat:parseFloat(packetData.latitude),lng:parseFloat(packetData.longitude),});}}
-this._map.fitBounds(positions);if(this._map.getZoom()>12){this._map.setZoom(12);}}},_handleAprsPacket:function(packet,animate){var markerIdKey=this._markerCreator.addPacket(packet,true);if(markerIdKey!==null){var highlight=false;var autoRender=false;var marker=this._map.markerCollection.getMarker(markerIdKey);if(animate&&packet.db==0&&packet.station_name==packet.sender_name&&marker.shouldMarkerBeVisible()&&(this.isFilteredMode()||this._isPacketOnMap(packet))){highlight=true;var tdTransmitAnimation=new trackdirect.models.TransmitAnimation(marker,this._map);tdTransmitAnimation.show();}
-if(packet.realtime==1&&animate){autoRender=true;}}},_linkifyPacketRaw:function(packet){if(typeof packet.raw!=="undefined"&&typeof packet.raw=="string"){var raw=escapeHtml(packet.raw);var stationNameReplacement='<a href="#" onclick="trackdirect.focusOnMarkerId('+
-packet.marker_id+
-'); return false;">'+
-escapeHtml(packet.sender_name)+
-"</a>";raw=raw.replaceAll(escapeHtml(packet.sender_name)+"&gt;",stationNameReplacement+"&gt;");for(var i=0;i<packet.station_id_path.length;i++){var relatedStationId=packet.station_id_path[i];var relatedStationLatestPacket=this._map.markerCollection.getStationLatestPacket(relatedStationId);if(relatedStationLatestPacket!==null){var relatedStationNameReplacement='<a href="#" onclick="trackdirect.focusOnStation('+
-relatedStationId+
-', true); return false;">'+
-escapeHtml(relatedStationLatestPacket.sender_name)+
-"</a>";var relatedStationSenderName=escapeHtml(relatedStationLatestPacket.sender_name);raw=raw.replaceAll("&gt;"+relatedStationSenderName+":","&gt;"+relatedStationNameReplacement+":");raw=raw.replaceAll("&gt;"+relatedStationSenderName+",","&gt;"+relatedStationNameReplacement+",");raw=raw.replaceAll("&gt;"+relatedStationSenderName+"*","&gt;"+relatedStationNameReplacement+"*");raw=raw.replaceAll(","+relatedStationSenderName+":",","+relatedStationNameReplacement+":");raw=raw.replaceAll(","+relatedStationSenderName+",",","+relatedStationNameReplacement+",");raw=raw.replaceAll(","+relatedStationSenderName+"*",","+relatedStationNameReplacement+"*");}}
-raw=Autolinker.link(raw,{newWindow:true});return raw;}
-return"";},_isPacketOnMap:function(packet){if(packet.latitude<=this._map.getNorthEastLat()&&packet.latitude>=this._map.getSouthWestLat()){if(packet.longitude<=this._map.getNorthEastLng()&&packet.longitude>=this._map.getSouthWestLng()){return true;}}
-return false;},_handleWebsocketStateChange:function(){switch(this._websocket.getState()){case this._websocket.State.CONNECTING:this._setWebsocketStateConnecting();break;case this._websocket.State.CONNECTED:this._setWebsocketStateConnected();trackdirect.services.callbackExecutor.add(this,this._sendPositionRequest,[]);break;case this._websocket.State.CLOSED:case this._websocket.State.ERROR:this._setWebsocketStateError();break;case this._websocket.State.LOADING:this._setWebsocketStateLoading(true,false);break;case this._websocket.State.LOADING_DONE:this._setWebsocketStateLoadingDone();break;case this._websocket.State.LISTENING_APRSIS:this._setWebsocketStateAprsISConnected();break;case this._websocket.State.CONNECTING_APRSIS:this._setWebsocketStateAprsISConnecting();break;case this._websocket.State.IDLE:this._setWebsocketStateIdle();break;case this._websocket.State.INACTIVE:this._setWebsocketStateInactive();break;}},_setWebsocketStateConnecting:function(){if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Connecting").css("color","blue");}},_setWebsocketStateConnected:function(){this._map.resetAllMarkers();if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Connected").css("color","green");}},_setWebsocketStateError:function(){if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Disconnected").css("color","red");}
-this._map.resetAllMarkers();this._deactivateFiltered(false);var me=this;if(confirm("You have been disconnected, this can be caused by a network error, by the timeout limit or if maintenance occurs while you’re logged in. Do you want to reconnect?")){me._websocket=new trackdirect.Websocket(me._wsServerUrl);me._initWebsocketListeners();trackdirect.services.callbackExecutor.add(me,me._sendPositionRequest,[]);}},_setWebsocketStateLoading:function(isStateConfirmed,showOnMobile){isStateConfirmed=typeof isStateConfirmed!=="undefined"?isStateConfirmed:true;showOnMobile=typeof showOnMobile!=="undefined"?showOnMobile:true;if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html('Loading <i class="fa fa-spinner fa-spin" style="font-size:14px"></i>').css("color","green");}},_setWebsocketStateLoadingDone:function(){if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Complete").css("color","green");}},_setWebsocketStateAprsISConnected:function(){if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Connected to APRS feed").css("color","green");}},_setWebsocketStateAprsISConnecting:function(){if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Waiting for APRS feed").css("color","green");}},_setWebsocketStateIdle:function(){if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Idle").css("color","green");}},_setWebsocketStateInactive:function(){if(this._statusContainerElementId!==null){$("#"+this._statusContainerElementId).html("Inactive").css("color","orange");}
-this._websocket.close();this._map.resetAllMarkers();var me=this;if(confirm("No activity for a long time, map updates has been stopped. Do you want to reconnect?")){me._websocket=new trackdirect.Websocket(me._wsServerUrl);me._initWebsocketListeners();trackdirect.services.callbackExecutor.add(me,me._sendPositionRequest,[]);}},_sendPositionRequest:function(){if(!this._waitForFilterResponse&&this._map.isMapReady()){if(!this.isFilteredMode()){if(this._map.getZoom()<trackdirect.settings.minZoomForMarkers){this._websocket.doSendNewPositionRequest(0,0,0,0,this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp(),false);}else if(this._map.getZoom()>=trackdirect.settings.minZoomForMarkerTail){this._websocket.doSendNewPositionRequest(this._map.getNorthEastLat(),this._map.getNorthEastLng(),this._map.getSouthWestLat(),this._map.getSouthWestLng(),this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp(),false);}else{this._websocket.doSendNewPositionRequest(this._map.getNorthEastLat(),this._map.getNorthEastLng(),this._map.getSouthWestLat(),this._map.getSouthWestLng(),this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp(),true);}}else{this._websocket.doSendNewPositionRequest(90,180,-90,-180,this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp(),false);}
-var data={center:this._map.getCenterLiteral(),zoom:this._map.getZoom(),};this._emitEventListeners("position-request-sent",data);}},_sendIdleRequest:function(){if(this._websocket.isPositionRequestSent()){this._websocket.doSendNewPositionRequest(0,0,0,0,this._map.state.getTimeLength()/60,this.getTimeTravelTimestamp(),false);}},_deactivateFiltered:function(sendNewRequest){this.setTimeTravelTimestamp(null);this._map.resetAllMarkers();if(this._map.state.openInfoWindow!==null){this._map.state.openInfoWindow.hide();}
-this._map.deactivateFilteredMode();this.stopTrackStation();this.setTimeLength(this.settings.defaultTimeLength,false);this._emitEventListeners("filter-changed",[]);this._emitEventListeners("filter-stopped");if(sendNewRequest){trackdirect.services.callbackExecutor.add(this,this._sendPositionRequest,[]);}
-this._emitEventListeners("mode-changed");},_getMapBaseUrl:function(host){host=typeof host!=="undefined"?host:"";host=host.replace("http://","");host=host.replace("https://","");if(host==""){host=window.location.host;}
-if(location.protocol==="https:"){return"https://"+host;}else{return"http://"+host;}},_emitEventListeners:function(event,arg){if(event in this._eventListeners){for(var i=0;i<this._eventListeners[event].length;i++){this._eventListeners[event][i](arg);}}
-if(event in this._eventListenersOnce){for(var i=0;i<this._eventListenersOnce[event].length;i++){this._eventListenersOnce[event][i](arg);this._eventListenersOnce[event].splice(i,1);i--;}}
-if(event=="trackdirect-init-done"){this._trackdirectInitDone=true;}
-if(event=="map-created"){this._mapCreated=true;}},};
-trackdirect.services.symbolPathFinder={getFilePath:function(symbolTable,symbol,course,width,height,scaleWidth,scaleHeight){if(typeof symbol!=="undefined"&&typeof symbolTable!=="undefined"&&symbol!==null&&symbolTable!==null&&symbol.length>=1&&symbolTable.length>=1){var symbolAsciiValue=symbol.charCodeAt(0);var symbolTableAsciiValue=symbolTable.charCodeAt(0);}else{var symbolAsciiValue=125;var symbolTableAsciiValue=47;}
-var sizeStrValue="";if(width!==null&&height!==null){sizeStrValue="-"+width+"x"+height;}
-var scaleStrValue=this._getIconFilePathScalePart(scaleWidth,scaleHeight);var courseStrValue=this._getIconFilePathCoursePart(course);var url=trackdirect.settings.markerSymbolBaseDir+
-"symbol-"+
-symbolAsciiValue+
-"-"+
-symbolTableAsciiValue+
-courseStrValue+
-sizeStrValue+
-scaleStrValue+
-".png";return trackdirect.settings.baseUrl+url;},_getIconFilePathCoursePart:function(course){var courseStrValue="";if(course!==null){var courseValue=Math.round(parseInt(course)/10)*10;while(courseValue>360){courseValue=courseValue-360;}
-while(courseValue<0){courseValue=courseValue+360;}
-courseStrValue="-"+courseValue;}
-return courseStrValue;},_getIconFilePathScalePart:function(scaleWidth,scaleHeight){var scaleStrValue="";if(scaleWidth!==null&&scaleHeight!==null){if(isHighDensity()){scaleStrValue="-scale"+scaleWidth*2+"x"+scaleHeight*2;}else{scaleStrValue="-scale"+scaleWidth+"x"+scaleHeight;}}
-return scaleStrValue;},};
-trackdirect.services.stationColorCalculator={_colors:["#3333ff","#9900cc","#006600","#cc0000",],_stationColorId:{},getColor:function(packet){var colorId=this.getColorId(packet);return this._colors[colorId];},getKmlColor(packet){var hex=this.getColor(packet);var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);if(result){return"FF"+result[3]+result[2]+result[1];}
-return null;},getColorId:function(packet){if(packet.station_name in this._stationColorId){colorId=this._stationColorId[packet.station_name];return colorId;}else{var hash=this._simplehashStr(packet.station_name);var colorId=hash%this._colors.length;this._stationColorId[packet.station_name]=colorId;}
-return colorId;},_simplehashStr:function(str){var hash=0;for(var i=0;i<str.length;i++){var charCode=str.charCodeAt(i);hash+=charCode;}
-return hash;},};
-trackdirect.services.MapSectorCalculator={getMapSectors:function(bounds){var result=[];if(typeof google==="object"&&typeof google.maps==="object"){var maxLat=Math.ceil(bounds.getNorthEast().lat())+1;var minLat=Math.floor(bounds.getSouthWest().lat())-1;var maxLng=Math.ceil(bounds.getNorthEast().lng())+1;var minLng=Math.floor(bounds.getSouthWest().lng())-1;}else if(typeof L==="object"){var maxLat=Math.ceil(bounds.getNorthEast().lat)+1;var minLat=Math.floor(bounds.getSouthWest().lat)-1;var maxLng=Math.ceil(bounds.getNorthEast().lng)+1;var minLng=Math.floor(bounds.getSouthWest().lng)-1;}
-if(maxLng<minLng){result=result.concat(trackdirect.services.MapSectorCalculator.getMapSectorsByInterval(minLat,maxLat,minLng,180.0));minLng=-180.0;}
-result=result.concat(trackdirect.services.MapSectorCalculator.getMapSectorsByInterval(minLat,maxLat,minLng,maxLng));return result;},getMapSectorsByInterval:function(minLat,maxLat,minLng,maxLng){var result=[];var minAreaCode=this.getMapSector(minLat,minLng);var maxAreaCode=this.getMapSector(maxLat,maxLng);lngDiff=parseInt(Math.ceil(maxLng))-parseInt(Math.ceil(minLng));var areaCode=minAreaCode;while(areaCode<=maxAreaCode){if(areaCode%10==5){result.push(areaCode);}else{result.push(areaCode);result.push(areaCode+5);}
-for(var i=1;i<=lngDiff;i++){if(areaCode%10==5){result.push(areaCode+10*i-5);result.push(areaCode+10*i);}else{result.push(areaCode+10*i);result.push(areaCode+10*i+5);}}
-areaCode=areaCode+20000;}
-return result;},getMapSector:function(latitude,longitude){var lat=this._getMapSectorLatRepresentation(latitude);var lng=this._getMapSectorLngRepresentation(longitude);return lat+lng;},_getMapSectorLatRepresentation:function(latitude){var lat=parseInt(Math.floor(latitude))+90;var latDecimalPart=latitude-Math.floor(latitude);if(latDecimalPart<0.2){lat=lat*10+0;}else if(latDecimalPart<0.4){lat=lat*10+2;}else if(latDecimalPart<0.6){lat=lat*10+4;}else if(latDecimalPart<0.8){lat=lat*10+6;}else{lat=lat*10+8;}
-lat=lat*10000;return lat;},_getMapSectorLngRepresentation:function(longitude){lng=parseInt(Math.floor(longitude))+180;lngDecimalPart=longitude-Math.floor(longitude);if(lngDecimalPart<0.5){lng=lng*10+0;}else{lng=lng*10+5;}
-return lng;},};
-trackdirect.services.mapAttributionModifier={_hereBaseAttributionData:null,_hereAerialAttributionData:null,_latestAttribution:null,_isHereInitialized:false,_eventListeners:{},_eventListenersOnce:{},update:function(map){if(this._isHereTileProvider(map)){this.updateHereAttribution(map);}else if(this._latestAttribution!=null){this.setMapAttribution(map,"");}},updateHereAttribution:function(map){this._loadHereAttributionData(map);var me=this;var base=this._getMapTileBase(map);if(base=="base"){this.addListener("init-here-base",function(){var attribution=me._getHereAttributionString(map);me.setMapAttribution(map,attribution);},true);}else if(base=="aerial"){this.addListener("init-here-aerial",function(){var attribution=me._getHereAttributionString(map);me.setMapAttribution(map,attribution);},true);}},setMapAttribution:function(map,attribution){if(this._latestAttribution!=attribution){map.attributionControl.removeAttribution(this._latestAttribution);if(attribution!=""){map.attributionControl.addAttribution(attribution);}}
-this._latestAttribution=attribution;},addListener:function(event,handler,execOnce){execOnce=typeof execOnce!=="undefined"?execOnce:false;if(execOnce){if(!(event in this._eventListenersOnce)){this._eventListenersOnce[event]=[];}
-this._eventListenersOnce[event].push(handler);}else{if(!(event in this._eventListeners)){this._eventListeners[event]=[];}
-this._eventListeners[event].push(handler);}
-if(event=="init-here-base"&&this._isHereBaseInitialized){this._emitEventListeners("init-here-base");}
-if(event=="init-here-aerial"&&this._isHereAerialInitialized){this._emitEventListeners("init-here-aerial");}},_isHereTileProvider:function(map){var tileLayer=map.getLeafletTileLayer();if(tileLayer!==null&&typeof tileLayer._url!=="undefined"&&tileLayer._url.indexOf("here.com")>=0){return true;}
-return false;},_getMapTileOptions:function(map){var tileLayer=map.getLeafletTileLayer();if(tileLayer!==null&&typeof tileLayer.options!=="undefined"){return tileLayer.options;}
-return null;},_getMapTileVariant:function(map){var options=this._getMapTileOptions(map);if(options.variant!=="undefined"){return options.variant;}
-return null;},_getMapTileInitialVariant:function(map){var mapVariant=this._getMapTileVariant(map);var dotIndex=mapVariant.indexOf(".");if(dotIndex>=0){return mapVariant.substring(0,dotIndex);}
-return mapVariant;},_getMapTileBase:function(map){var options=this._getMapTileOptions(map);if(options.base!=="undefined"){return options.base;}
-return null;},_getHereAttributionString:function(map){var result=[];var mapBaseVariant=this._getMapTileInitialVariant(map);if(this._getMapTileBase(map)=="base"){var data=this._hereBaseAttributionData;}else if(this._getMapTileBase(map)=="aerial"){var data=this._hereAerialAttributionData;}
-if(data!==null&&typeof data[mapBaseVariant]!=="undefined"){for(var i=0,len=data[mapBaseVariant].length;i<len;i++){var attributionArea=data[mapBaseVariant][i];if(parseInt(map.getZoom())>=parseInt(attributionArea.minLevel)&&parseInt(map.getZoom())<=parseInt(attributionArea.maxLevel)){if(typeof attributionArea.boxes==="undefined"||this._isAnyBoxVisible(attributionArea.boxes,map)){var attributionText='<span title="'+
-attributionArea.alt+
-'">'+
-attributionArea.label+
-"</span>";if(result.indexOf(attributionText)<0){result.push(attributionText);}}}}}
-return result.join(", ");},_isAnyBoxVisible:function(boxes,map){if(typeof boxes!=="undefined"&&Array.isArray(boxes)){for(var i=0,len=boxes.length;i<len;i++){var box=boxes[i];if(Array.isArray(box)&&box.length>=4){var boxBounds=L.latLngBounds(L.latLng(parseFloat(box[0]),parseFloat(box[1])),L.latLng(parseFloat(box[2]),parseFloat(box[3])));if(boxBounds.isValid()&&boxBounds.intersects(map.getBounds())){return true;}}}}
-return false;},_loadHereAttributionData:function(map){var options=this._getMapTileOptions(map);var base=this._getMapTileBase(map);if((this._hereBaseAttributionData===null&&base=="base")||(this._hereAerialAttributionData===null&&base=="aerial")){var me=this;jQuery.ajax({url:"https://1."+
-base+
-".maps.api.here.com/maptile/2.1/copyright/"+
-options.mapID+
-"?app_id="+
-options.app_id+
-"&app_code="+
-options.app_code,type:"GET",dataType:"json",timeout:5000,success:function(result){if(base=="base"){me._hereBaseAttributionData=result;me._isHereBaseInitialized=true;me._emitEventListeners("init-here-base");}else if(base=="aerial"){me._hereAerialAttributionData=result;me._isHereAerialInitialized=true;me._emitEventListeners("init-here-aerial");}},error:function(xhr){console.log("Failed to load map copyright data");},});}},_emitEventListeners:function(event,arg){if(event in this._eventListeners){for(var i=0;i<this._eventListeners[event].length;i++){this._eventListeners[event][i](arg);}}
-if(event in this._eventListenersOnce){var eventListenersOnce=this._eventListenersOnce[event].splice(0);this._eventListenersOnce[event]=[];for(var i=0;i<eventListenersOnce.length;i++){eventListenersOnce[i](arg);}}},};
-trackdirect.services.imperialConverter={convertKilometerToMile:function(value){return value*0.621371192;},convertMpsToMph:function(value){return value*2.23693629;},convertMeterToFeet:function(value){return value*3.2808399;},convertMeterToYard:function(value){return value*1.0936133;},convertMmToInch:function(value){return value*0.0393700787;},convertCelciusToFahrenheit:function(value){return value*(9/5)+32;},convertMbarToMmhg:function(value){return value*0.75006375541921;},};
-trackdirect.services.distanceCalculator={getDistance:function(p1,p2){var R=6378137;var dLat=this._radians(p2.lat-p1.lat);var dLong=this._radians(p2.lng-p1.lng);var a=Math.sin(dLat/2)*Math.sin(dLat/2)+
-Math.cos(this._radians(p1.lat))*Math.cos(this._radians(p2.lat))*Math.sin(dLong/2)*Math.sin(dLong/2);var c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));var d=R*c;if(isNaN(d)){return null;}else{return d;}},getCenter:function(coords){var x=coords.map(function(a){return a.lat;});var y=coords.map(function(a){return a.lng;});var minX=Math.min.apply(null,x);var maxX=Math.max.apply(null,x);var minY=Math.min.apply(null,y);var maxY=Math.max.apply(null,y);return{lat:(minX+maxX)/2,lng:(minY+maxY)/2};},getPositionByDistance:function(latLng,course,distanceInMeters){var dist=distanceInMeters/1000;dist=dist/6371;var brng=(course*Math.PI)/180;var lat1=(latLng.lat*Math.PI)/180,lon1=(latLng.lng*Math.PI)/180;var lat2=Math.asin(Math.sin(lat1)*Math.cos(dist)+
-Math.cos(lat1)*Math.sin(dist)*Math.cos(brng));var lon2=lon1+
-Math.atan2(Math.sin(brng)*Math.sin(dist)*Math.cos(lat1),Math.cos(dist)-Math.sin(lat1)*Math.sin(lat2));if(isNaN(lat2)||isNaN(lon2))return null;var latitude=(lat2*180)/Math.PI;var longitude=(lon2*180)/Math.PI;return{lat:Math.round(latitude*100000)/100000,lng:Math.round(longitude*100000)/100000,};},getBearing:function(p1,p2){startLat=this._radians(p1.lat);startLong=this._radians(p1.lng);endLat=this._radians(p2.lat);endLong=this._radians(p2.lng);var dLong=endLong-startLong;var dPhi=Math.log(Math.tan(endLat/2.0+Math.PI/4.0)/
-Math.tan(startLat/2.0+Math.PI/4.0));if(Math.abs(dLong)>Math.PI){if(dLong>0.0){dLong=-(2.0*Math.PI-dLong);}else{dLong=2.0*Math.PI+dLong;}}
-return(this._degrees(Math.atan2(dLong,dPhi))+360.0)%360.0;},_radians:function(n){return n*(Math.PI/180);},_degrees:function(n){return n*(180/Math.PI);},};
-trackdirect.services.dateFormatter={getDateString:function(timestamp,includeTimeZone,includeTime,useLocalTimeZone){includeTimeZone=typeof includeTimeZone!=="undefined"?includeTimeZone:true;includeTime=typeof includeTime!=="undefined"?includeTime:true;useLocalTimeZone=typeof useLocalTimeZone!=="undefined"?useLocalTimeZone:true;var date=new Date(timestamp*1000);if(useLocalTimeZone){var theMoment=moment(date);}else{var theMoment=moment.utc(date);}
-if(!theMoment.isValid()){return timestamp;}
-if(includeTime){if(includeTimeZone){return theMoment.format("L LTSZ");}else{return theMoment.format("L LTS");}}else{return theMoment.format("L");}},getAgeString:function(timestamp){var delta=Math.abs(Math.floor(Date.now()/1000)-timestamp);var days=Math.floor(delta/86400);delta-=days*86400;var hours=Math.floor(delta/3600)%24;delta-=hours*3600;var minutes=Math.floor(delta/60)%60;delta-=minutes*60;var seconds=Math.floor(delta%60);var timeAgoList=[];if(days>1){timeAgoList.push(days+" days");}else if(days>0){timeAgoList.push(days+" day");}
-if(hours>1){timeAgoList.push(hours+" hours");}else if(hours>0){timeAgoList.push(hours+" hour");}
-if(minutes>1){timeAgoList.push(minutes+" minutes");}else if(minutes>0){timeAgoList.push(minutes+" minute");}
-if(seconds==1){timeAgoList.push(seconds+" second");}else{timeAgoList.push(seconds+" seconds");}
-if(timeAgoList.length>1){return(timeAgoList.slice(0,timeAgoList.length-1).join(", ")+
-" and "+
-timeAgoList[timeAgoList.length-1]);}else{return timeAgoList[timeAgoList.length-1];}},};
-if(!Date.now){Date.now=function(){return new Date().getTime();};}
-function escapeRegExp(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");}
-String.prototype.replaceAll=function(search,replacement){var target=this;return target.replace(new RegExp(escapeRegExp(search),"gi"),replacement);};function isNumeric(n){return!isNaN(parseFloat(n))&&isFinite(n);}
-Number.prototype.mod=function(n){return((this%n)+n)%n;};function isDate(str){var d=new Date(str);var now=new Date();if(Object.prototype.toString.call(d)==="[object Date]"){if(isNaN(d.getTime())){return false;}else{if(d.getTime()>0){return true;}else{return false;}}}else{return false;}}
-if(!Array.prototype.fill){Array.prototype.fill=function(value){if(this==null){throw new TypeError("this is null or not defined");}
-var O=Object(this);var len=O.length>>>0;var start=arguments[1];var relativeStart=start>>0;var k=relativeStart<0?Math.max(len+relativeStart,0):Math.min(relativeStart,len);var end=arguments[2];var relativeEnd=end===undefined?len:end>>0;var final=relativeEnd<0?Math.max(len+relativeEnd,0):Math.min(relativeEnd,len);while(k<final){O[k]=value;k++;}
-return O;};}
-if(!Array.prototype.indexOf){Array.prototype.indexOf=function(elt ){var len=this.length;var from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++){if(from in this&&this[from]===elt)return from;}
-return-1;};}
-if(typeof String.prototype.endsWith!=="function"){String.prototype.endsWith=function(suffix){return this.indexOf(suffix,this.length-suffix.length)!==-1;};}
-if(!String.prototype.trim){(function(){var rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(rtrim,"");};})();}
-if(!Object.keys){Object.keys=function(obj){var keys=[],k;for(k in obj){if(Object.prototype.hasOwnProperty.call(obj,k)){keys.push(k);}}
-return keys;};}
-if(!Date.prototype.toISOString){(function(){function pad(number){var r=String(number);if(r.length===1){r="0"+r;}
-return r;}
-Date.prototype.toISOString=function(){return(this.getUTCFullYear()+
-"-"+
-pad(this.getUTCMonth()+1)+
-"-"+
-pad(this.getUTCDate())+
-"T"+
-pad(this.getUTCHours())+
-":"+
-pad(this.getUTCMinutes())+
-":"+
-pad(this.getUTCSeconds())+
-"."+
-String((this.getUTCMilliseconds()/1000).toFixed(3)).slice(2,5)+
-"Z");};})();}
-function inIframe(){try{return window.self!==window.top;}catch(e){return true;}}
-function isHighDensity(){return((window.matchMedia&&(window.matchMedia("only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)").matches||window.matchMedia("only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)").matches))||(window.devicePixelRatio&&window.devicePixelRatio>1.3));}
-function escapeHtml(text){if(typeof text==="undefined"||text==null){return null;}
-var map={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;",};return text.replace(/[&<>"']/g,function(m){return map[m];});}
-trackdirect.services.callbackExecutor={settings:{minTimeBeforeSleep:30,},_running:false,_lastSleepTimestamp:0,_lastAddedUniqueCallback:null,_lowPriorityQueue:[],_normalPriorityQueue:[],_highPriorityQueue:[],add:function(thisObj,callback,argsArray){var callBackString=callback.toString()+":"+argsArray.toString();this._lastAddedUniqueCallback=callBackString;this._normalPriorityQueue.push(function(){callback.apply(thisObj,argsArray);trackdirect.services.callbackExecutor._next();});this.start();return this;},addIfUnique:function(thisObj,callback,argsArray){var callBackString=callback.toString()+":"+argsArray.toString();if(this._lastAddedUniqueCallback==callBackString){return this;}
-this._lastAddedUniqueCallback=callBackString;this._normalPriorityQueue.push(function(){callback.apply(thisObj,argsArray);trackdirect.services.callbackExecutor._next();});this.start();return this;},addWithPriority:function(thisObj,callback,argsArray){this._highPriorityQueue.push(function(){callback.apply(thisObj,argsArray);trackdirect.services.callbackExecutor._next();});this.start();return this;},addWithLowPriority:function(thisObj,callback,argsArray){this._lowPriorityQueue.push(function(){callback.apply(thisObj,argsArray);trackdirect.services.callbackExecutor._next();});this.start();return this;},start:function(){if(!this._running){this._next();}
-return this;},_next:function(){var secondsSinceLastSleep=Date.now()-this._lastSleepTimestamp;if(secondsSinceLastSleep>this.settings.minTimeBeforeSleep){this._lastSleepTimestamp=Date.now();var me=this;setTimeout(function(){me._dequeue();},1);}else{this._dequeue();}},_dequeue:function(){var shift=this._highPriorityQueue.shift();if(shift){this._running=true;shift();return;}
-shift=this._normalPriorityQueue.shift();if(shift){this._running=true;shift();return;}
-shift=this._lowPriorityQueue.shift();if(shift){this._running=true;shift();return;}
-this._running=false;},};
-trackdirect.Websocket=function(wsServerUrl){this._wsServerUrl=wsServerUrl;this._init();this._state=this.State.CONNECTING;this._emitEventListeners("state-change");this._instance=new WebSocket(this._wsServerUrl);var me=this;this._instance.onopen=function(evt){me._onOpen(evt);};this._instance.onclose=function(evt){me._onClose(evt);};this._instance.onmessage=function(evt){me._onMessage(evt);};this._instance.onerror=function(evt){me._onError(evt);};};trackdirect.Websocket.prototype._init=function(){this._instance=null;this._eventListeners={};this._lastSentPositionRequest="";this._state=0;this._lastMessageTimestamp=null;this._queue=[];this._running=false;this._sendPositionRequestIntervalId=null;this.State={CONNECTING:0,CONNECTED:1,CLOSING:2,CLOSED:3,ERROR:4,LOADING:5,LOADING_DONE:6,LISTENING_APRSIS:7,CONNECTING_APRSIS:8,IDLE:9,INACTIVE:10,};};trackdirect.Websocket.prototype.send=function(data){this._instance.send(data);};trackdirect.Websocket.prototype.close=function(){this._instance.close();};trackdirect.Websocket.prototype.getState=function(){return this._state;};trackdirect.Websocket.prototype.clearLastSentPositionRequest=function(){this._lastSentPositionRequest="";};trackdirect.Websocket.prototype.isPositionRequestSent=function(){if(this._lastSentPositionRequest!=""){return true;}else{return false;}};trackdirect.Websocket.prototype.doSendFilterRequest=function(list,historyMinutes,referenceTime){var request={};request.payload_request_type=4;request.list=list;request.minutes=historyMinutes;if(referenceTime!=""){request.time=parseInt(referenceTime,10);}else{request.time=null;}
-return this._addToSendQueue(request);};trackdirect.Websocket.prototype.doSendFilterRequestByName=function(namelist,historyMinutes,referenceTime){var request={};request.payload_request_type=8;request.namelist=namelist;request.minutes=historyMinutes;if(referenceTime!=""){request.time=parseInt(referenceTime,10);}else{request.time=null;}
-return this._addToSendQueue(request);};trackdirect.Websocket.prototype.doSendCompleteStationRequest=function(stationId,historyMinutes,referenceTime){var request={};request.payload_request_type=7;request.station_id=stationId;request.minutes=historyMinutes;if(referenceTime!=""){request.time=parseInt(referenceTime,10);}else{request.time=null;}
-return this._addToSendQueue(request);};trackdirect.Websocket.prototype.doSendStopFilterRequest=function(stationId){var request={};request.payload_request_type=6;request.station_id=stationId;return this._addToSendQueue(request);};trackdirect.Websocket.prototype.doSendNewPositionRequest=function(neLat,neLng,swLat,swLng,historyMinutes,referenceTime,onlyRequestLatestPacket){var request={};request.payload_request_type=1;request.neLat=neLat;request.neLng=neLng;request.swLat=swLat;request.swLng=swLng;request.minutes=historyMinutes;if(referenceTime!=""){request.time=parseInt(referenceTime,10);}else{request.time=null;}
-if(onlyRequestLatestPacket){request.onlyLatestPacket=1;}else{request.onlyLatestPacket=0;}
-var requestStr=JSON.stringify(request);if(requestStr!=this._lastSentPositionRequest){this._lastSentPositionRequest=requestStr;if(this._sendPositionRequestIntervalId!==null){clearInterval(this._sendPositionRequestIntervalId);}
-if(this._addToSendQueue(request)){var me=this;this._sendPositionRequestIntervalId=window.setInterval(function(){request.payload_request_type=11;if(me._lastSentPositionRequest==requestStr){me._addToSendQueue(request);}},60*1000);return true;}
-return false;}else{return true;}};trackdirect.Websocket.prototype.addListener=function(event,handler){if(!(event in this._eventListeners)){this._eventListeners[event]=[];}
-this._eventListeners[event].push(handler);};trackdirect.Websocket.prototype._onOpen=function(evt){this._state=this.State.CONNECTING;this._emitEventListeners("state-change");};trackdirect.Websocket.prototype._onClose=function(evt){this._state=this.State.CLOSED;this._emitEventListeners("state-change");};trackdirect.Websocket.prototype._onError=function(evt){this._state=this.State.ERROR;this._emitEventListeners("state-change");};trackdirect.Websocket.prototype._onMessage=function(evt){this._lastMessageTimestamp=Math.floor(Date.now()/1000);var packet=JSON.parse(evt.data);trackdirect.services.callbackExecutor.add(this,this._handleMessage,[packet,]);};trackdirect.Websocket.prototype._handleMessage=function(packet){switch(packet.payload_response_type){case 1:this._emitEventListeners("aprs-packet",packet.data);this._emitEventListeners("aprs-packet-payload-done");break;case 2:for(i=0;typeof packet.data!=="undefined"&&i<packet.data.length;i++){this._emitEventListeners("aprs-packet",packet.data[i]);}
-this._emitEventListeners("aprs-packet-payload-done");break;case 5:this._emitEventListeners("filter-response",packet.data);this._emitEventListeners("aprs-packet-payload-done");break;case 41:this._emitEventListeners("server-timestamp-response",packet.data);break;case 31:this._state=this.State.LISTENING_APRSIS;this._emitEventListeners("state-change");break;case 32:this._state=this.State.LOADING;this._emitEventListeners("state-change");break;case 33:this._state=this.State.IDLE;this._emitEventListeners("state-change");break;case 34:this._state=this.State.CONNECTING_APRSIS;this._emitEventListeners("state-change");break;case 35:this._state=this.State.LOADING_DONE;this._emitEventListeners("state-change");break;case 36:this._state=this.State.INACTIVE;this._emitEventListeners("state-change");this.clearLastSentPositionRequest();break;case 40:this._emitEventListeners("reset");break;case 42:this.clearLastSentPositionRequest();this._state=this.State.CONNECTED;this._emitEventListeners("state-change");break;}
-return true;};trackdirect.Websocket.prototype._addToSendQueue=function(request){if(this.readyState>1){return false;}
-var currentTs=Math.floor(Date.now()/1000);if(this._lastMessageTimestamp!==null&&this._lastMessageTimestamp<currentTs-60){this.close();return false;}
-var me=this;this._queue.push(function(){var data=JSON.stringify(request);if(data!=null){me.send(data);}
-me._dequeue();});this._start();return true;};trackdirect.Websocket.prototype._start=function(){if(!this._running){this._dequeue();}};trackdirect.Websocket.prototype._dequeue=function(){this._running=true;var me=this;setTimeout(function(){if(me._instance.readyState===1){var shift=me._queue.shift();if(shift){shift();}else{me._running=false;}
-return;}else if(me._instance.readyState>1){me._running=false;return;}else{me._dequeue();}},5);};trackdirect.Websocket.prototype._emitEventListeners=function(event,arg){if(typeof this._eventListeners!=="undefined"&&event in this._eventListeners){for(var i=0;i<this._eventListeners[event].length;i++){this._eventListeners[event][i](arg);}}};
-trackdirect.models.TransmitPolyline=function(packet,map){this._packet=packet;this._defaultMap=map;this._relatedMarkerIdKeys=[];if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Polyline.call(this,this._getGoolgePolylineOptions());}else if(typeof L==="object"){L.Polyline.call(this,{},this._getLeafletPolylineOptions());this.setLatLngs(this.getCoordinates());}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.TransmitPolyline.prototype=Object.create(google.maps.Polyline.prototype);}else if(typeof L==="object"){trackdirect.models.TransmitPolyline.prototype=Object.create(L.Polyline.prototype);}
-trackdirect.models.TransmitPolyline.prototype.constructor=trackdirect.models.TransmitPolyline;trackdirect.models.TransmitPolyline.prototype.getPathItem=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);return path.getAt(index);}else if(typeof L==="object"){var list=this.getLatLngs();if(typeof list[index]!=="undefined"){return list[index];}else{return null;}}
-return null;};trackdirect.models.TransmitPolyline.prototype.pushPathItem=function(latLng){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);path.push(latLng);}else if(typeof L==="object"){this.addLatLng(latLng);}};trackdirect.models.TransmitPolyline.prototype.removePathItem=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);path.removeAt(index);}else if(typeof L==="object"){var list=this.getLatLngs();if(typeof list[index]!=="undefined"){list.splice(index,1);this.setLatLngs(list);}}};trackdirect.models.TransmitPolyline.prototype.getPathLength=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);return path.getLength();}else if(typeof L==="object"){var list=this.getLatLngs();return list.length;}};trackdirect.models.TransmitPolyline.prototype.getPath=function(){if(typeof google==="object"&&typeof google.maps==="object"){return google.maps.Polyline.prototype.getPath.call(this);}else if(typeof L==="object"){return this.getLatLngs();}
-return[];};trackdirect.models.TransmitPolyline.prototype.getMap=function(){if(typeof google==="object"&&typeof google.maps==="object"){var map=google.maps.Polyline.prototype.getMap.call(this);if(typeof map!=="undefined"){return map;}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){return this._defaultMap;}}
-return null;};trackdirect.models.TransmitPolyline.prototype.show=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}}else if(typeof L==="object"){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}}
-for(var i=0;i<this._relatedMarkerIdKeys.length;i++){var relatedMarkerIdKey=this._relatedMarkerIdKeys[i];if(this._defaultMap.markerCollection.isExistingMarker(relatedMarkerIdKey)){var relatedMarker=this._defaultMap.markerCollection.getMarker(relatedMarkerIdKey);relatedMarker.show();relatedMarker.showLabel();}}};trackdirect.models.TransmitPolyline.prototype.hide=function(delayInMilliSeconds){if(typeof google==="object"&&typeof google.maps==="object"){if(this.getMap()!==null){this.setMap(null);}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}}
-for(var i=0;i<this._relatedMarkerIdKeys.length;i++){var relatedMarkerIdKey=this._relatedMarkerIdKeys[i];if(this._defaultMap.markerCollection.isExistingMarker(relatedMarkerIdKey)){var relatedMarker=this._defaultMap.markerCollection.getMarker(relatedMarkerIdKey);if(relatedMarker!==null&&relatedMarker.getMap()!==null){relatedMarker.hide(delayInMilliSeconds,true);}}}};trackdirect.models.TransmitPolyline.prototype.isVisible=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()!=="undefined"&&this.getMap()!==null){return true;}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){return true;}}
-return false;};trackdirect.models.TransmitPolyline.prototype._getGoolgePolylineOptions=function(){var lineCoordinates=this.getCoordinates();if(lineCoordinates.length<=1){lineCoordinates=[];}
-var lineSymbol={path:"M 0,-0.1 0,0",strokeOpacity:0.7,scale:3,};return{path:lineCoordinates,strokeOpacity:0,strokeColor:"#0000ff",icons:[{icon:lineSymbol,offset:"0px",repeat:"5px",},],map:null,zIndex:100,};};trackdirect.models.TransmitPolyline.prototype._getLeafletPolylineOptions=function(){return{opacity:0.6,weight:3,color:"#0000ff",dashArray:"1,5",lineCap:"round",lineJoin:"round",};};(trackdirect.models.TransmitPolyline.prototype.getCoordinates=function(){var lineCoordinates=this.getCoordinatesByStationMarkers();if(lineCoordinates.length<this._packet.station_location_path.length+1){lineCoordinates=this.getCoordinatesByPositions();}
-return lineCoordinates;}),(trackdirect.models.TransmitPolyline.prototype.getCoordinatesByStationMarkers=function(){var lineCoordinates=[];var startLatLng=this._packet.getLatLngLiteral();lineCoordinates.push(startLatLng);for(var i=0;i<this._packet.station_id_path.length;i++){var stationId=this._packet.station_id_path[i];var stationMarkerIdKey=null;var stationMarker=null;var stationDistance=null;var stationLatLng=null;for(var pointMarkerIdKey in this._defaultMap.markerCollection.getStationMarkerIdKeys(stationId)){var pointMarker=this._defaultMap.markerCollection.getMarker(pointMarkerIdKey);if(pointMarker!==null){var pointLatLng=pointMarker.packet.getLatLngLiteral();var distance=trackdirect.services.distanceCalculator.getDistance(startLatLng,pointLatLng);if(stationMarker===null||distance<stationDistance){stationMarkerIdKey=pointMarkerIdKey;stationMarker=pointMarker;stationDistance=distance;stationLatLng=pointLatLng;}}}
-if(stationLatLng!==null){lineCoordinates.push(stationLatLng);this._relatedMarkerIdKeys.push(stationMarkerIdKey);}}
-return lineCoordinates;}),(trackdirect.models.TransmitPolyline.prototype.getCoordinatesByPositions=function(){var lineCoordinates=[];var startLatLng=this._packet.getLatLngLiteral();lineCoordinates.push(startLatLng);if(lineCoordinates.length<this._packet.station_location_path.length+1){for(var i=0;i<this._packet.station_location_path.length;i++){if(this._packet.station_location_path[i][0]!==null&&this._packet.station_location_path[i][1]!==null){lineCoordinates.push({lat:parseFloat(this._packet.station_location_path[i][0]),lng:parseFloat(this._packet.station_location_path[i][1]),});}}}
-return lineCoordinates;});
-trackdirect.models.TransmitAnimation=function(marker,map){this._map=map;this._marker=marker;this.init();};trackdirect.models.TransmitAnimation.prototype.show=function(){this._startAnimation();};trackdirect.models.TransmitAnimation.prototype.hide=function(){if(typeof google==="object"&&typeof google.maps==="object"){this.iconMarkers[1].setMap(null);this.iconMarkers[2].setMap(null);this.iconMarkers[3].setMap(null);}else if(typeof L==="object"){this._map.removeLayer(this.iconMarkers[1]);this._map.removeLayer(this.iconMarkers[2]);this._map.removeLayer(this.iconMarkers[3]);}
-this.marker.transmitPolyLine.hide();};trackdirect.models.TransmitAnimation.prototype.init=function(){var newLatLng=this._marker.packet.getLatLngLiteral();this._marker.transmitPolyLine=new trackdirect.models.TransmitPolyline(this._marker.packet,this._map);this.iconMarkers=[];for(var i=1;i<=3;i++){var icon=this._getIcon(i);if(typeof google==="object"&&typeof google.maps==="object"){var iconMarker=new google.maps.Marker({position:newLatLng,zIndex:this._map.state.currentMarkerZindex,icon:icon,opacity:0.6,});}else if(typeof L==="object"){var iconMarker=new L.Marker(newLatLng,{zIndexOffset:this._map.state.currentMarkerZindex,icon:icon,opacity:0.6,});}
-this.iconMarkers[i]=iconMarker;}};trackdirect.models.TransmitAnimation.prototype._getIcon=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var icon={url:trackdirect.settings.baseUrl+
-trackdirect.settings.imagesBaseDir+
-"transmit"+
-index+
-".png",size:new google.maps.Size(60,60),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(30,30),};}else if(typeof L==="object"){var icon=L.icon({iconUrl:trackdirect.settings.baseUrl+
-trackdirect.settings.imagesBaseDir+
-"transmit"+
-index+
-".png",iconSize:[60,60],iconAnchor:[30,30],});}
-return icon;};trackdirect.models.TransmitAnimation.prototype._startAnimation=function(){var me=this;me._showIconMarker(1);window.setTimeout(function(){me._showIconMarker(2);},150);window.setTimeout(function(){me._showIconMarker(3);if(me._marker.transmitPolyLine!==null){me._marker.transmitPolyLine.show();}},300);window.setTimeout(function(){me._hideIconMarker(1);},800);window.setTimeout(function(){me._hideIconMarker(2);},900);window.setTimeout(function(){me._hideIconMarker(3);if(me._marker.transmitPolyLine!=null){me._marker.transmitPolyLine.hide(4000);}},1000);};trackdirect.models.TransmitAnimation.prototype._showIconMarker=function(index){if(typeof google==="object"&&typeof google.maps==="object"){this.iconMarkers[index].setMap(this._map);}else if(typeof L==="object"){this.iconMarkers[index].addTo(this._map);}};trackdirect.models.TransmitAnimation.prototype._hideIconMarker=function(index){if(typeof google==="object"&&typeof google.maps==="object"){this.iconMarkers[index].setMap(null);}else if(typeof L==="object"){this._map.removeLayer(this.iconMarkers[index]);}};
-trackdirect.models.TailPolyline=function(color,map){this._defaultMap=map;this.markerIdKey=null;this.ownerMarkerIdKey=null;this.relatedMarkerIdKey=null;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Polyline.call(this,this._getGooglePolylineOptions(color));}else if(typeof L==="object"){L.Polyline.call(this,{},this._getLeafletPolylineOptions(color));}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.TailPolyline.prototype=Object.create(google.maps.Polyline.prototype);}else if(typeof L==="object"){trackdirect.models.TailPolyline.prototype=Object.create(L.Polyline.prototype);}
-trackdirect.models.TailPolyline.prototype.constructor=trackdirect.models.TailPolyline;trackdirect.models.TailPolyline.prototype.getPathItem=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);return path.getAt(index);}else if(typeof L==="object"){var list=this.getLatLngs();if(typeof list[index]!=="undefined"){return list[index];}else{return null;}}
-return null;};trackdirect.models.TailPolyline.prototype.pushPathItem=function(latLng){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);path.push(latLng);}else if(typeof L==="object"){this.addLatLng(latLng);}};trackdirect.models.TailPolyline.prototype.removePathItem=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);path.removeAt(index);}else if(typeof L==="object"){var list=this.getLatLngs();if(typeof list[index]!=="undefined"){list.splice(index,1);this.setLatLngs(list);}}};trackdirect.models.TailPolyline.prototype.getPathLength=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);return path.getLength();}else if(typeof L==="object"){var list=this.getLatLngs();return list.length;}};trackdirect.models.TailPolyline.prototype.getPath=function(){if(typeof google==="object"&&typeof google.maps==="object"){return google.maps.Polyline.prototype.getPath.call(this);}else if(typeof L==="object"){return this.getLatLngs();}
-return[];};trackdirect.models.TailPolyline.prototype.getMap=function(){if(typeof google==="object"&&typeof google.maps==="object"){var map=google.maps.Polyline.prototype.getMap.call(this);if(typeof map!=="undefined"){return map;}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){return this._defaultMap;}}
-return null;};trackdirect.models.TailPolyline.prototype.setMarkerIdKey=function(markerIdKey){this.markerIdKey=markerIdKey;this.ownerMarkerIdKey=markerIdKey;this._addInfoWindowListener(markerIdKey);};trackdirect.models.TailPolyline.prototype.setRelatedMarkerIdKey=function(markerIdKey){this.relatedMarkerIdKey=markerIdKey;};trackdirect.models.TailPolyline.prototype.show=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}}else if(typeof L==="object"){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}}};trackdirect.models.TailPolyline.prototype.hide=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(this.getMap()!==null){this.setMap(null);}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}}};trackdirect.models.TailPolyline.prototype.addMarker=function(marker){if(typeof google==="object"&&typeof google.maps==="object"){var latLng=new google.maps.LatLng(parseFloat(marker.packet.latitude),parseFloat(marker.packet.longitude));latLng.marker=marker;this.pushPathItem(latLng);}else if(typeof L==="object"){var latLng=new L.latLng(parseFloat(marker.packet.latitude),parseFloat(marker.packet.longitude));latLng.marker=marker;this.addLatLng(latLng);}};trackdirect.models.TailPolyline.prototype._addInfoWindowListener=function(markerIdKey){var me=this;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.event.addListener(this,"click",function(event){var marker=me._defaultMap.markerCollection.getMarker(markerIdKey);me._defaultMap.openPolylineInfoWindow(marker,event.latLng);});}else if(typeof L==="object"){this.on("click",function(event){var marker=me._defaultMap.markerCollection.getMarker(markerIdKey);me._defaultMap.openPolylineInfoWindow(marker,event.latlng);});}};trackdirect.models.TailPolyline.prototype._getGooglePolylineOptions=function(color){return{geodesic:false,strokeOpacity:0.6,strokeWeight:4,strokeColor:color,map:null,zIndex:100,};};trackdirect.models.TailPolyline.prototype._getLeafletPolylineOptions=function(color){return{opacity:0.7,weight:4,color:color,};};
-trackdirect.models.StationCoveragePolygon=function(center,map,tryToShowCoveragePolygon){tryToShowCoveragePolygon=typeof tryToShowCoveragePolygon!=="undefined"?tryToShowCoveragePolygon:true;this._showPolygon=tryToShowCoveragePolygon;this._map=map;this._center=center;this._isRequestedToBeVisible=false;this._polygon=null;this._polygonCoordinates=null;this._heatmapCoordinates=null;this._heatmap=null;this._tdEventListeners={};this._tdEventListenersOnce={};this._upperMaxRangeInMeters=1000*1000;this._paddingInPercentOfMaxRange=10;this._paddingMinInMeters=1000;};trackdirect.models.StationCoveragePolygon.prototype.setData=function(data,percentile){this._addParametersToData(data);this._heatmapCoordinates=this._getCoordinates(data);if(this._showPolygon){var maxRange=this._getCoveragePolygonMaxRange(data,percentile);if(maxRange<=0){this._showPolygon=false;}else{this._polygonCoordinates=this._getConvexHullCoordinates(data,maxRange);}}
-if(typeof google==="object"&&typeof google.maps==="object"){this._googleMapsInit();}else if(typeof L==="object"){this._leafletInit();}};trackdirect.models.StationCoveragePolygon.prototype.addTdListener=function(event,handler,execOnce){execOnce=typeof execOnce!=="undefined"?execOnce:false;if(execOnce){if(!(event in this._tdEventListenersOnce)){this._tdEventListenersOnce[event]=[];}
-this._tdEventListenersOnce[event].push(handler);}else{if(!(event in this._tdEventListeners)){this._tdEventListeners[event]=[];}
-this._tdEventListeners[event].push(handler);}};trackdirect.models.StationCoveragePolygon.prototype.hasContent=function(){if(this._heatmapCoordinates!==null&&this._heatmapCoordinates.length>0){return true;}
-return false;};trackdirect.models.StationCoveragePolygon.prototype.isRequestedToBeVisible=function(){return this._isRequestedToBeVisible;};trackdirect.models.StationCoveragePolygon.prototype.showWhenDone=function(){this._isRequestedToBeVisible=true;};trackdirect.models.StationCoveragePolygon.prototype.show=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(this._polygon!==null){this._polygon.setMap(this._map);}
-if(this._heatmap!==null){this._heatmap.setMap(this._map);}}else if(typeof L==="object"){if(this._polygon!==null){this._polygon.addTo(this._map);}
-if(this._heatmap!==null){this._heatmap.addTo(this._map);}}
-this._isRequestedToBeVisible=true;if(this._showPolygon&&this._polygonCoordinates!==null){this._emitTdEventListeners("visible");}else if(this._heatmapCoordinates!==null){this._emitTdEventListeners("visible");}};trackdirect.models.StationCoveragePolygon.prototype.hide=function(stillMarkAsVisible){stillMarkAsVisible=typeof stillMarkAsVisible!=="undefined"?stillMarkAsVisible:false;if(typeof google==="object"&&typeof google.maps==="object"){if(this._polygon!==null){this._polygon.setMap(null);}
-if(this._heatmap!==null){this._heatmap.setMap(null);}}else if(typeof L==="object"){if(this._polygon!==null){this._map.removeLayer(this._polygon);}
-if(this._heatmap!==null){this._map.removeLayer(this._heatmap);}}
-if(!stillMarkAsVisible){this._isRequestedToBeVisible=false;}
-this._emitTdEventListeners("hidden");};trackdirect.models.StationCoveragePolygon.prototype._googleMapsInit=function(){if(this._polygonCoordinates!==null&&this._polygonCoordinates.length>0){this._polygon=new google.maps.Polygon({paths:this._polygonCoordinates,strokeColor:"#0000FF",strokeOpacity:0,strokeWeight:0,fillColor:"#0000FF",fillOpacity:0.2,});}
-if(this._heatmapCoordinates!==null&&this._heatmapCoordinates.length>0){var data=[];for(var i=0;i<this._heatmapCoordinates.length;i++){data.push({location:this._heatmapCoordinates[i],weight:1});}
-this._heatmap=new google.maps.visualization.HeatmapLayer({data:data,radius:8,maxIntensity:5,gradient:["rgba(0, 255, 255, 0)","rgba(0, 255, 255, 1)","rgba(0, 191, 255, 1)","rgba(0, 127, 255, 1)","rgba(0, 63, 255, 1)","rgba(0, 0, 255, 1)","rgba(0, 0, 223, 1)","rgba(0, 0, 191, 1)","rgba(0, 0, 159, 1)","rgba(0, 0, 127, 1)","rgba(63, 0, 91, 1)","rgba(127, 0, 63, 1)","rgba(191, 0, 31, 1)","rgba(255, 0, 0, 1)",],map:null,});}};trackdirect.models.StationCoveragePolygon.prototype._leafletInit=function(){if(this._polygonCoordinates!==null&&this._polygonCoordinates.length>0){this._polygon=new L.polygon(this._polygonCoordinates,{color:"#0000FF",opacity:0,weight:0,fillColor:"#0000FF",fillOpacity:0.2,});}
-if(this._heatmapCoordinates!==null&&this._heatmapCoordinates.length>0){var data=[];for(var i=0;i<this._heatmapCoordinates.length;i++){data.push([this._heatmapCoordinates[i].lat,this._heatmapCoordinates[i].lng,10,]);}
-this._heatmap=L.heatLayer(this._heatmapCoordinates,{minOpacity:0.35,radius:6,blur:4,});}};trackdirect.models.StationCoveragePolygon.prototype._getConvexHullCoordinates=function(data,maxRange){var positions=this._getFilteredPositions(data,maxRange);positions.push(this._center);var xyPositions=this._convertToXYPos(positions);var convexHullXYPositions=convexhull.makeHull(xyPositions);var latLngPadding=this._paddingInPercentOfMaxRange*0.01*maxRange*0.000009;var latLngPaddingMin=this._paddingMinInMeters*0.000009;if(isNaN(latLngPadding)||latLngPadding<latLngPaddingMin){latLngPadding=latLngPaddingMin;}
-var xyPositionsWithPadding=[];for(var i=0;i<convexHullXYPositions.length;i++){xyPositionsWithPadding.push(convexHullXYPositions[i]);for(var angle=0;angle<360;angle+=10){var x=convexHullXYPositions[i]["x"]+
-latLngPadding*Math.cos((angle*Math.PI)/180);var y=convexHullXYPositions[i]["y"]+
-latLngPadding*Math.sin((angle*Math.PI)/180)*2;if(!isNaN(x)&&!isNaN(y)){xyPositionsWithPadding.push({x:x,y:y});}}}
-var convexHullXYPositionsWithPadding=convexhull.makeHull(xyPositionsWithPadding);return this._convertToLatLngPos(convexHullXYPositionsWithPadding);};trackdirect.models.StationCoveragePolygon.prototype._getFilteredPositions=function(data,maxRange){var result=[];for(var i=0;i<data.length;i++){if(typeof maxRange!=="undefined"&&data[i].distance>maxRange){continue;}
-result.push(data[i].latLngLiteral);}
-return result;};trackdirect.models.StationCoveragePolygon.prototype._getCoveragePolygonMaxRange=function(data,percentile){var maxRange=this._getDistancePercentile(data,percentile,this._upperMaxRangeInMeters);if(isNaN(maxRange)){maxRange=0;}
-return maxRange;};trackdirect.models.StationCoveragePolygon.prototype._getDistancePercentile=function(data,percentile,upperMaxRange){var values=[];for(var i=0;i<data.length;i++){if(data[i].distance+0<upperMaxRange){values.push(data[i].distance);}}
-values.sort(function(a,b){return a-b;});var index=(percentile/100)*values.length;var result;if(Math.floor(index)==index){result=(values[index-1]+values[index])/2;}else{result=values[Math.floor(index)];}
-return result;};trackdirect.models.StationCoveragePolygon.prototype._getNumberOfValues=function(data,maxRange){var counter=0;for(var i=0;i<data.length;i++){if(data[i].distance>maxRange){continue;}
-counter++;}
-return counter;};trackdirect.models.StationCoveragePolygon.prototype._convertToXYPos=function(positions){var result=[];for(var i=0;i<positions.length;i++){result.push({x:positions[i].lat,y:positions[i].lng});}
-return result;};trackdirect.models.StationCoveragePolygon.prototype._convertToLatLngPos=function(positions){var result=[];for(var i=0;i<positions.length;i++){result.push({lat:positions[i].x,lng:positions[i].y});}
-return result;};trackdirect.models.StationCoveragePolygon.prototype._getCoordinates=function(data){var result=[];for(var j=0;j<data.length;j++){if(typeof google==="object"&&typeof google.maps==="object"){var position=new google.maps.LatLng(parseFloat(data[j]["latitude"]),parseFloat(data[j]["longitude"]));}else{var position={lat:parseFloat(data[j]["latitude"]),lng:parseFloat(data[j]["longitude"]),};}
-result.push(position);}
-return result;};trackdirect.models.StationCoveragePolygon.prototype._addParametersToData=function(data){for(var j=0;j<data.length;j++){var latLngLiteral={lat:parseFloat(data[j].latitude),lng:parseFloat(data[j].longitude),};data[j].latLngLiteral=latLngLiteral;data[j].angle=trackdirect.services.distanceCalculator.getBearing(this._center,latLngLiteral);}};trackdirect.models.StationCoveragePolygon.prototype._emitTdEventListeners=function(event,arg){if(event in this._tdEventListeners){for(var i=0;i<this._tdEventListeners[event].length;i++){this._tdEventListeners[event][i](arg);}}
-if(event in this._tdEventListenersOnce){var eventListenersOnce=this._tdEventListenersOnce[event].splice(0);this._tdEventListenersOnce[event]=[];for(var i=0;i<eventListenersOnce.length;i++){eventListenersOnce[i](arg);}}};
-trackdirect.models.Ruler=function(defaultLength,map){this._map=map;if(typeof google==="object"&&typeof google.maps==="object"){this._googleMapsInit(defaultLength);this._addGoolgeMapsListeners();}else if(typeof L==="object"){this.leafletInit(defaultLength);this._addLeafletListeners();}};trackdirect.models.Ruler.prototype._googleMapsInit=function(defaultLength){this.marker1=new google.maps.Marker({position:trackdirect.services.distanceCalculator.getPositionByDistance(this._map.getCenterLiteral(),270,defaultLength/2),draggable:true,map:this._map,});this.marker2=new google.maps.Marker({position:trackdirect.services.distanceCalculator.getPositionByDistance(this._map.getCenterLiteral(),90,defaultLength/2),draggable:true,map:this._map,});this.marker1.markerLabel=new trackdirect.models.Label({position:this.marker1.getPosition(),text:this._getDistance(this.marker1,this.marker2),},this._map);this.marker1.markerLabel.show();this.marker2.markerLabel=new trackdirect.models.Label({position:this.marker2.getPosition(),text:this._getDistance(this.marker2,this.marker1),},this._map);this.marker2.markerLabel.show();this.line=new google.maps.Polyline({path:[this.marker1.getPosition(),this.marker2.getPosition()],strokeColor:"#ffff00",strokeOpacity:0.7,strokeWeight:6,});this.line.setMap(this._map);};trackdirect.models.Ruler.prototype.leafletInit=function(defaultLength){this.marker1=new L.Marker(trackdirect.services.distanceCalculator.getPositionByDistance(this._map.getCenterLiteral(),270,defaultLength/2),{draggable:true});this.marker1.addTo(this._map);this.marker2=new L.Marker(trackdirect.services.distanceCalculator.getPositionByDistance(this._map.getCenterLiteral(),90,defaultLength/2),{draggable:true});this.marker2.addTo(this._map);this.marker1.markerLabel=new trackdirect.models.Label({position:this.marker1.getLatLng(),text:this._getDistance(this.marker1,this.marker2),},this._map);this.marker1.markerLabel.show();this.marker2.markerLabel=new trackdirect.models.Label({position:this.marker2.getLatLng(),text:this._getDistance(this.marker2,this.marker1),},this._map);this.marker2.markerLabel.show();this.line=new L.Polyline([this.marker1.getLatLng(),this.marker2.getLatLng()],{color:"#ffff00",opacity:0.8,weight:6,});this.line.addTo(this._map);};trackdirect.models.Ruler.prototype.show=function(){this.marker1.markerLabel.show();this.marker2.markerLabel.show();if(typeof google==="object"&&typeof google.maps==="object"){this.marker1.setMap(this._map);this.marker2.setMap(this._map);this.line.setMap(this._map);}else if(typeof L==="object"){this.marker1.addTo(this._map);this.marker2.addTo(this._map);this.line.addTo(this._map);}};trackdirect.models.Ruler.prototype.hide=function(){this.marker1.markerLabel.hide();this.marker2.markerLabel.hide();if(typeof google==="object"&&typeof google.maps==="object"){this.marker1.setMap(null);this.marker2.setMap(null);this.line.setMap(null);}else if(typeof L==="object"){this._map.removeLayer(this.marker1);this._map.removeLayer(this.marker2);this._map.removeLayer(this.line);}};trackdirect.models.Ruler.prototype._addGoolgeMapsListeners=function(){var me=this;google.maps.event.addListener(this.marker1,"drag",function(){me.line.setPath([me.marker1.getPosition(),me.marker2.getPosition()]);me._updateLabels();});google.maps.event.addListener(this.marker2,"drag",function(){me.line.setPath([me.marker1.getPosition(),me.marker2.getPosition()]);me._updateLabels();});};trackdirect.models.Ruler.prototype._addLeafletListeners=function(){var me=this;this.marker1.on("drag",function(e){me.line.setLatLngs([me.marker1.getLatLng(),me.marker2.getLatLng()]);me._updateLabels();});this.marker2.on("drag",function(e){me.line.setLatLngs([me.marker1.getLatLng(),me.marker2.getLatLng()]);me._updateLabels();});};trackdirect.models.Ruler.prototype._updateLabels=function(){this.marker1.markerLabel.hide();this.marker2.markerLabel.hide();if(typeof google==="object"&&typeof google.maps==="object"){this.marker1.markerLabel=new trackdirect.models.Label({position:this.marker1.getPosition(),text:this._getDistance(this.marker1,this.marker2),},this._map);this.marker2.markerLabel=new trackdirect.models.Label({position:this.marker2.getPosition(),text:this._getDistance(this.marker2,this.marker1),},this._map);}else if(typeof L==="object"){this.marker1.markerLabel=new trackdirect.models.Label({position:this.marker1.getLatLng(),text:this._getDistance(this.marker1,this.marker2),},this._map);this.marker2.markerLabel=new trackdirect.models.Label({position:this.marker2.getLatLng(),text:this._getDistance(this.marker2,this.marker1),},this._map);}
-this.marker1.markerLabel.show();this.marker2.markerLabel.show();};trackdirect.models.Ruler.prototype._getDistance=function(marker1,marker2){var p1=this._getPositionLiteral(marker1);var p2=this._getPositionLiteral(marker2);var distance=Math.round(trackdirect.services.distanceCalculator.getDistance(p1,p2),0);if(distance>99999){if(this._map.state.useImperialUnit){distance=Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(distance/1000)).toString()+" miles";}else{distance=Math.round(distance/1000).toString()+" km";}}else if(distance>999){if(this._map.state.useImperialUnit){distance=(Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(distance/1000)*10)/10).toString()+" miles";}else{distance=(Math.round(distance/100)/10).toString()+" km";}}else{distance=distance.toString()+" m";}
-var bearing=Math.round(trackdirect.services.distanceCalculator.getBearing(p2,p1),0).toString();return bearing+"&ordm; "+distance;};trackdirect.models.Ruler.prototype._getPositionLiteral=function(marker){if(typeof google==="object"&&typeof google.maps==="object"){var latLng=marker.getPosition();if(typeof latLng!=="undefined"&&typeof latLng.lat==="function"){return{lat:latLng.lat(),lng:latLng.lng()};}else{return latLng;}}else if(typeof L==="object"){var latLng=marker.getLatLng();if(typeof latLng!=="undefined"){return{lat:latLng.lat,lng:latLng.lng};}else{return latLng;}}
-return null;};
-trackdirect.models.RngCircle=function(packet,map,isHalf){this._defaultMap=map;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Circle.call(this,this._getGoogleCircleOptions(packet,isHalf));}else if(typeof L==="object"){var center=packet.getLatLngLiteral();if(L.version<="0.7.7"){var range=this._getCircleRadius(packet,isHalf);L.Circle.call(this,[center.lat,center.lng],range,this._getLeafletCircleOptions(packet,isHalf));}else{L.Circle.call(this,center,this._getLeafletCircleOptions(packet,isHalf));}}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.RngCircle.prototype=Object.create(google.maps.Circle.prototype);}else if(typeof L==="object"){trackdirect.models.RngCircle.prototype=Object.create(L.Circle.prototype);}
-trackdirect.models.RngCircle.prototype.constructor=trackdirect.models.RngCircle;trackdirect.models.RngCircle.prototype.show=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}}else if(typeof L==="object"){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}}};trackdirect.models.RngCircle.prototype.hide=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(this.getMap()!==null){this.setMap(null);}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}}};trackdirect.models.RngCircle.prototype._getGoogleCircleOptions=function(packet,isHalf){var color=trackdirect.services.stationColorCalculator.getColor(packet);var range=this._getCircleRadius(packet,isHalf);var options={strokeColor:color,strokeOpacity:0.6,strokeWeight:1,fillColor:color,fillOpacity:0.3,map:null,center:packet.getLatLngLiteral(),radius:range*1000,};return options;};trackdirect.models.RngCircle.prototype._getLeafletCircleOptions=function(packet,isHalf){var color=trackdirect.services.stationColorCalculator.getColor(packet);var range=this._getCircleRadius(packet,isHalf);var options={color:color,opacity:0.6,weight:1,fillColor:color,fillOpacity:0.3,radius:range*1000,};return options;};trackdirect.models.RngCircle.prototype._getCircleRadius=function(packet,isHalf){var range=packet.getRNGRange();if(range===null){range=0;}
-if(isHalf){range=range/2;}
-return range;};
-trackdirect.models.PhgCircle=function(packet,map,isHalf){this._defaultMap=map;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Circle.call(this,this._getGoogleCircleOptions(packet,isHalf));}else if(typeof L==="object"){if(L.version<="0.7.7"){var range=this._getCircleRadius(packet,isHalf);var center=this._getCircleCenter(packet,isHalf);L.Circle.call(this,[center.lat,center.lng],range,this._getLeafletCircleOptions(packet,isHalf));}else{L.Circle.call(this,this._getCircleCenter(packet,isHalf),this._getLeafletCircleOptions(packet,isHalf));}}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.PhgCircle.prototype=Object.create(google.maps.Circle.prototype);}else if(typeof L==="object"){trackdirect.models.PhgCircle.prototype=Object.create(L.Circle.prototype);}
-trackdirect.models.PhgCircle.prototype.constructor=trackdirect.models.PhgCircle;trackdirect.models.PhgCircle.prototype.show=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}}else if(typeof L==="object"){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}}};trackdirect.models.PhgCircle.prototype.hide=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(this.getMap()!==null){this.setMap(null);}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}}};trackdirect.models.PhgCircle.prototype._getGoogleCircleOptions=function(packet,isHalf){var color=trackdirect.services.stationColorCalculator.getColor(packet);var range=this._getCircleRadius(packet,isHalf);var center=this._getCircleCenter(packet,isHalf);var options={strokeColor:color,strokeOpacity:0.6,strokeWeight:1,fillColor:color,fillOpacity:0.3,map:null,center:center,radius:range,};return options;};trackdirect.models.PhgCircle.prototype._getLeafletCircleOptions=function(packet,isHalf){var color=trackdirect.services.stationColorCalculator.getColor(packet);var range=this._getCircleRadius(packet,isHalf);var options={color:color,opacity:0.6,weight:1,fillColor:color,fillOpacity:0.3,radius:range,};return options;};trackdirect.models.PhgCircle.prototype._getCircleRadius=function(packet,isHalf){var range=packet.getPHGRange();if(range===null){range=0;}
-if(isHalf){range=range/2;}
-return range;};trackdirect.models.PhgCircle.prototype._getCircleCenter=function(packet,isHalf){var direction=packet.getPhgDirectionDegree();var center=packet.getLatLngLiteral();if(direction!=null){var range=packet.getPHGRange();if(range===null){range=0;}
-if(isHalf){range=range/2;}
-var distance=(range*2)/3/2;center=trackdirect.services.distanceCalculator.getPositionByDistance(center,direction,distance);}
-return center;};
-trackdirect.models.Packet=function(data){this.init();for(var key in data){this[key]=data[key];}};trackdirect.models.Packet.prototype.init=function(){this["altitude"]=null;this["comment"]="";this["course"]=null;this["db"]=null;this["id"]=null;this["latest_phg_timestamp"]=null;this["latest_rng_timestamp"]=null;this["latitude"]=null;this["longitude"]=null;this["map_id"]=null;this["map_sector"]=null;this["marker_counter"]=null;this["marker_id"]=null;this["ogn"]=null;this["overwrite"]=null;this["is_moving"]=1;this["packet_order_id"]=null;this["packet_tail_timestamp"]=null;this["packet_type_id"]=null;this["phg"]=null;this["posambiguity"]=0;this["position_timestamp"]=null;this["raw"]="";this["raw_path"]="";this["realtime"]=0;this["related_map_sectors"]=[];this["reported_timestamp"]=null;this["rng"]=null;this["sender_id"]=null;this["sender_name"]=null;this["source_id"]=null;this["speed"]=null;this["station_id"]=null;this["station_id_path"]=[];this["station_location_path"]=[];this["station_name"]=null;this["station_name_path"]=[];this["symbol"]=null;this["symbol_table"]=null;this["telemetry"]=null;this["timestamp"]=null;this["weather"]=null;};trackdirect.models.Packet.prototype.getStationName=function(){if(this.station_name==this.sender_name){return escapeHtml(this.station_name);}else{return escapeHtml(this.station_name+" ("+this.sender_name+")");}};trackdirect.models.Packet.prototype.getLatLngLiteral=function(){return{lat:parseFloat(this.latitude),lng:parseFloat(this.longitude)};};trackdirect.models.Packet.prototype.hasConfirmedMapId=function(){if([1,2,12].indexOf(this.map_id)>=0){return true;}
-return false;};trackdirect.models.Packet.prototype.getOgnAircraftType=function(){if(typeof this.ogn!=="undefined"&&this.ogn!==null){if(typeof this.ogn.ogn_aircraft_type_id!=="undefined"&&this.ogn.ogn_aircraft_type_id!=""){if(this.ogn.ogn_aircraft_type_id==1){return"Glider";}else if(this.ogn.ogn_aircraft_type_id==2){return"Tow Plane";}else if(this.ogn.ogn_aircraft_type_id==3){return"Helicopter";}else if(this.ogn.ogn_aircraft_type_id==4){return"Parachute";}else if(this.ogn.ogn_aircraft_type_id==5){return"Drop Plane";}else if(this.ogn.ogn_aircraft_type_id==6){return"Hang Glider";}else if(this.ogn.ogn_aircraft_type_id==7){return"Para Glider";}else if(this.ogn.ogn_aircraft_type_id==8){return"Powered Aircraft";}else if(this.ogn.ogn_aircraft_type_id==9){return"Jet Aircraft";}else if(this.ogn.ogn_aircraft_type_id==10){return"UFO";}else if(this.ogn.ogn_aircraft_type_id==11){return"Balloon";}else if(this.ogn.ogn_aircraft_type_id==12){return"Airship";}else if(this.ogn.ogn_aircraft_type_id==13){return"UAV";}else if(this.ogn.ogn_aircraft_type_id==14){return"";}else if(this.ogn.ogn_aircraft_type_id==15){return"Static Object";}}}
-return null;};trackdirect.models.Packet.prototype.getOgnDdbAircraftType=function(){if(typeof this.ogn_device!=="undefined"&&this.ogn_device!==null){if(typeof this.ogn_device.ddb_aircraft_type!=="undefined"&&this.ogn_device.ddb_aircraft_type!=""){if(this.ogn_device.ddb_aircraft_type==1){return"Glider/Motoglider";}else if(this.ogn_device.ddb_aircraft_type==2){return"Plane";}else if(this.ogn_device.ddb_aircraft_type==3){return"Ultralight";}else if(this.ogn_device.ddb_aircraft_type==4){return"Helicopter";}else if(this.ogn_device.ddb_aircraft_type==5){return"Drone/UAV";}else if(this.ogn_device.ddb_aircraft_type==6){return"Other";}}}
-return null;};trackdirect.models.Packet.prototype.getOgnAddressType=function(){if(typeof this.ogn!=="undefined"&&this.ogn!==null){if(typeof this.ogn.ogn_address_type_id!=="undefined"&&this.ogn.ogn_address_type_id!=""){if(this.ogn.ogn_address_type_id==1){return"ICAO";}else if(this.ogn.ogn_address_type_id==2){return"FLARM";}else if(this.ogn.ogn_address_type_id==3){return"OGN";}}}
-return null;};trackdirect.models.Packet.prototype.getOgnSenderAddress=function(){if(typeof this.ogn!=="undefined"&&this.ogn!==null){if(typeof this.ogn.ogn_sender_address!=="undefined"&&this.ogn.ogn_sender_address!=""){return this.ogn.ogn_sender_address;}}
-return null;};trackdirect.models.Packet.prototype.getOgnRegistration=function(){if(typeof this.ogn_device!=="undefined"&&this.ogn_device!==null){if(typeof this.ogn_device.registration!=="undefined"&&this.ogn_device.registration!=""){return this.ogn_device.registration;}}
-return null;};trackdirect.models.Packet.prototype.getOgnCN=function(){if(typeof this.ogn_device!=="undefined"&&this.ogn_device!==null){if(typeof this.ogn_device.cn!=="undefined"&&this.ogn_device.cn!=""){return this.ogn_device.cn;}}
-return null;};trackdirect.models.Packet.prototype.getOgnSummary=function(){var senderAddress=this.getOgnSenderAddress();var aircraftType=this.getOgnAircraftType();var ddbAircraftType=this.getOgnDdbAircraftType();var addressType=this.getOgnAddressType();var summary="";if(ddbAircraftType!==null){summary+=ddbAircraftType;}else if(aircraftType!==null){summary+=aircraftType;}
-if(senderAddress!==null){if(summary!=""){summary+=" ";}
-summary+=senderAddress;if(addressType!==null){summary+=" ("+addressType+")";}}
-return summary;};trackdirect.models.Packet.prototype.hasDirectionSupport=function(){if(this.course!==null&&this.speed!==null&&this.speed>0&&this.source_id==1&&this.packet_order_id==1&&this.is_moving==1&&this.hasConfirmedMapId()){var symbolCategory=1;if(this.symbol_table.charCodeAt(0)=="92"){symbolCategory=2;}
-if(symbolCategory==1&&trackdirect.settings.primarySymbolWithNoDirectionPolyline.indexOf(parseInt(this.symbol.charCodeAt(0)))>-1){return false;}
-if(symbolCategory==2&&trackdirect.settings.alternativeSymbolWithNoDirectionPolyline.indexOf(parseInt(this.symbol.charCodeAt(0)))>-1){return false;}
-return true;}
-return false;};trackdirect.models.Packet.prototype.getPhg=function(){if(this.phg!==null){if(this.phg==0){return null;}else if(this.phg<10){return"000"+String(this.phg);}else if(this.phg<100){return"00"+String(this.phg);}else if(this.phg<1000){return"0"+String(this.phg);}else{return String(this.phg);}}
-return null;};trackdirect.models.Packet.prototype.getRNGRange=function(){if(this.rng!==null){return this.rng;}
-return null;};trackdirect.models.Packet.prototype.getPHGRange=function(){if(this.getPhg()!==null){var p=this.getPhgPower();var h=this.getPhgHaat(false);var g=this.getPhgGain();var gain=Math.pow(10,g/10);var range=Math.sqrt(2*h*Math.sqrt((p/10)*(gain/2)));return range/0.000621371192;}
-return null;};trackdirect.models.Packet.prototype.getPHGDescription=function(){if(this.getPhg()!==null){var power=this.getPhgPower();var haat=this.getPhgHaat();var gain=this.getPhgGain();var direction=this.getPhgDirection();var description="";if(power!==null){description+="Power "+power+"W";}
-if(haat!==null){if(description.length>0){description+=", ";}
-description+="Height "+haat+"m";}
-if(gain!==null&&direction!==null){if(description.length>0){description+=", ";}
-description+="Gain "+gain+"dB "+direction;}
-return description;}
-return null;};trackdirect.models.Packet.prototype.getPhgPower=function(){if(this.getPhg()!==null){return Math.pow(parseInt(this.getPhg().substring(0,1)),2);}
-return null;};trackdirect.models.Packet.prototype.getPhgHaat=function(inMeters){inMeters=typeof inMeters!=="undefined"?inMeters:true;if(this.getPhg()!=null){value=parseInt(this.getPhg().substring(1,2));var haat=10;if(value==1){haat=20;}else if(value>1){haat=10*Math.pow(value,2);}
-if(inMeters){return Math.round(haat*0.3048,0);}else{return haat;}}
-return null;};trackdirect.models.Packet.prototype.getPhgGain=function(){if(this.getPhg()!=null){return parseInt(this.getPhg().substring(2,3));}
-return null;};trackdirect.models.Packet.prototype.getPhgDirection=function(){if(this.getPhg()!=null){switch(parseInt(this.getPhg().substring(3,4))){case 0:return"omni";break;case 1:return"North East";break;case 2:return"East";break;case 3:return"South East";break;case 4:return"South";break;case 5:return"South West";break;case 6:return"West";break;case 7:return"North West";break;case 8:return"North";break;}}
-return null;};trackdirect.models.Packet.prototype.getPhgDirectionDegree=function(){if(this.getPhg()!=null){switch(parseInt(this.getPhg().substring(3,4))){case 0:return null;break;case 1:return 45;break;case 2:return 90;break;case 3:return 135;break;case 4:return 180;break;case 5:return 225;break;case 6:return 270;break;case 7:return 315;break;case 8:return 360;break;}}
-return null;};trackdirect.models.Packet.prototype.getMarkerDistance=function(marker){var packetLatLng={lat:parseFloat(this.latitude),lng:parseFloat(this.longitude),};var markerPacketLatLng={lat:parseFloat(marker.packet.latitude),lng:parseFloat(marker.packet.longitude),};return trackdirect.services.distanceCalculator.getDistance(packetLatLng,markerPacketLatLng);};trackdirect.models.Packet.prototype.hasSameSymbol=function(marker){if(marker.packet.symbol==this.symbol&&marker.packet.symbol_table==this.symbol_table){return true;}
-return false;};trackdirect.models.Packet.prototype.getLinkifiedRawPath=function(){if(typeof this.raw_path!=="undefined"&&this.raw_path!==null&&this.raw_path!==""){var rawPath=escapeHtml(this.raw_path);rawPath="#"+rawPath+"#";for(var i=0;i<this.station_id_path.length;i++){var relatedStationId=this.station_id_path[i];if(typeof this.station_name_path!=="undefined"&&this.station_name_path!==null){var relatedStationName=escapeHtml(this.station_name_path[i]);var relatedStationNameReplacement='<a href="#" onclick="'+
-" var relatedStationLatestPacket = trackdirect._map.markerCollection.getStationLatestPacket("+
-relatedStationId+
-");"+
-" if (relatedStationLatestPacket !== null) {"+
-"     trackdirect.focusOnStation("+
-relatedStationId+
-", true);"+
-" } else {"+
-"     alert('Can not go to "+
-relatedStationName+
-", station has not been heard for a long time.');"+
-" }"+
-' return false;">'+
-relatedStationName+
-"</a>";rawPath=rawPath.replaceAll("#"+relatedStationName+",","#"+relatedStationNameReplacement+",");rawPath=rawPath.replaceAll("#"+relatedStationName+"*","#"+relatedStationNameReplacement+"*");rawPath=rawPath.replaceAll("#"+relatedStationName+":","#"+relatedStationNameReplacement+":");rawPath=rawPath.replaceAll("#"+relatedStationName+"#","#"+relatedStationNameReplacement+"#");rawPath=rawPath.replaceAll(","+relatedStationName+",",","+relatedStationNameReplacement+",");rawPath=rawPath.replaceAll(","+relatedStationName+"*",","+relatedStationNameReplacement+"*");rawPath=rawPath.replaceAll(","+relatedStationName+":",","+relatedStationNameReplacement+":");rawPath=rawPath.replaceAll(","+relatedStationName+"#",","+relatedStationNameReplacement+"#");}}
-rawPath=rawPath.replace(/#+$/,"");rawPath=rawPath.replace(/^#+/,"");var rawPathArray=rawPath.split(",");if(rawPathArray.length>0){var rawPath=rawPathArray[0]+
-" via "+
-rawPathArray.join(",").replace(rawPathArray[0]+",","");}
-return rawPath;}
-return null;};
-trackdirect.MarkerCreator=function(map){this._map=map;this._currentPacketSequenceStationId=null;};trackdirect.MarkerCreator.prototype.addPacket=function(packet,tryToShowPacket){if(this.isBadPacket(packet)){return null;}
-var markerIdKey=this._map.markerCollection.getMarkerIdKey(packet.marker_id);if(this._map.markerCollection.isExistingMarker(markerIdKey)){var marker=this._map.markerCollection.getMarker(markerIdKey);if(marker.packet.is_moving==1&&packet.is_moving!=1){packet.is_moving=1;}}else{if(packet.packet_order_id==2){packet.packet_order_id=3;}}
-markerIdKeyToOverwrite=this._getMarkerIdKeyToOverwrite(packet);if(markerIdKeyToOverwrite!==null){this._overwriteMarker(markerIdKeyToOverwrite,markerIdKey);}
-if(this._map.markerCollection.isPacketReplacingMarker(packet)){this._replaceMarker(markerIdKey);}
-this._setCurrentPacketSequenceStationId(packet);this._convertLostMarkersToGhost(packet);this._connectToPreviousMarker(packet);marker=this._createMarker(packet);this._map.addMarkerToMapSectors(markerIdKey,packet,tryToShowPacket);if(packet.overwrite==1){marker.overwrite=true;}
-return markerIdKey;};trackdirect.MarkerCreator.prototype._getMarkerIdKeyToOverwrite=function(packet){var markerIdKey=this._map.markerCollection.getMarkerIdKey(packet.marker_id);if(this._map.markerCollection.isExistingMarker(markerIdKey)){var marker=this._map.markerCollection.getMarker(markerIdKey);if(marker.overwrite==true&&packet.overwrite==0){return markerIdKey;}}else{var prevMarker=this._map.markerCollection.getStationLatestMarker(packet.station_id);if(prevMarker!==null){if(packet.is_moving==0&&packet.station_id==prevMarker.packet.station_id&&packet.timestamp-prevMarker.packet.timestamp>86400&&Math.round(prevMarker.packet.latitude*100000)==Math.round(packet.latitude*100000)&&Math.round(prevMarker.packet.longitude*100000)==Math.round(packet.longitude*100000)&&prevMarker.packet.symbol==packet.symbol&&prevMarker.packet.symbol_table==packet.symbol_table){return prevMarker.markerIdKey;}}}
-return null;};trackdirect.MarkerCreator.prototype._replaceMarker=function(markerIdKey){if(this._map.markerCollection.isExistingMarker(markerIdKey)){var marker=this._map.markerCollection.getMarker(markerIdKey);if(this._map.state.isMarkerInfoWindowOpen(marker)){this._map.state.openInfoWindowForMarkerIdKey=markerIdKey;}
-marker.hide(0,false,false);marker.stopDirectionPolyline();}};trackdirect.MarkerCreator.prototype._overwriteMarker=function(prevMarkerIdKey,newMarkerIdKey){var prevMarker=this._map.markerCollection.getMarker(prevMarkerIdKey);if(this._map.state.isMarkerInfoWindowOpen(prevMarker)){this._map.state.openInfoWindowForMarkerIdKey=newMarkerIdKey;}
-var markerLabel=prevMarker.label;var markerPolyLine=this._map.markerCollection.getMarkerPolyline(prevMarkerIdKey);var markerDotMarkers=this._map.markerCollection.getDotMarkers(prevMarkerIdKey);var markerOriginDashedPolyline=this._map.markerCollection.getMarkerDashedPolyline(prevMarkerIdKey);clearTimeout(prevMarker.toOldTimerId);if(markerDotMarkers!=null){for(var i=0;i<markerDotMarkers.length;i++){clearTimeout(markerDotMarkers[i].toOldTimerId);}}
-this._map.markerCollection.resetMarker(prevMarkerIdKey);if(this._map.oms){this._map.oms.removeMarker(prevMarker);}
-if(prevMarker!=null&&typeof prevMarker.packet.latitude!="undefined"&&typeof prevMarker.packet.longitude!="undefined"){this._map.markerCollection.removePostionMarkerId(prevMarker.packet.latitude,prevMarker.packet.longitude,prevMarkerIdKey);this._map.showTopLabelOnPosition(prevMarker.packet.latitude,prevMarker.packet.longitude);}
-prevMarker.hide(0,false,false);if(markerPolyLine!==null){markerPolyLine.hide();}
-if(markerDotMarkers!=null){for(var i=0;i<markerDotMarkers.length;i++){markerDotMarkers[i].hide();}}
-if(markerOriginDashedPolyline!==null){markerOriginDashedPolyline.hide();if(typeof markerOriginDashedPolyline.relatedMarkerIdKey!=="undefined"&&markerOriginDashedPolyline.relatedMarkerIdKey!==null){var prevMarker=this._map.markerCollection.getMarker(markerOriginDashedPolyline.relatedMarkerIdKey);if(prevMarker!==null&&typeof prevMarker._relatedMarkerOriginDashedPolyLine!=="undefined"){prevMarker._relatedMarkerOriginDashedPolyLine=null;}}}
-prevMarker.hidePHGCircle();prevMarker.hideRNGCircle();if(prevMarker.directionPolyLine!==null){prevMarker.directionPolyLine.stop();}};trackdirect.MarkerCreator.prototype._setCurrentPacketSequenceStationId=function(packet){if(packet.packet_order_id==3){this._currentPacketSequenceStationId=packet.station_id;}
-if(packet.packet_order_id==2&&this._currentPacketSequenceStationId===null){this._currentPacketSequenceStationId=packet.station_id;packet.packet_order_id=3;}
-if(packet.packet_order_id==1){this._currentPacketSequenceStationId=null;}};trackdirect.MarkerCreator.prototype._createMarker=function(packet){var markerIdKey=this._map.markerCollection.getMarkerIdKey(packet.marker_id);var prevmarker=this._map.markerCollection.getMarker(markerIdKey);this._map.state.currentMarkerZindex+=1;if(packet.packet_order_id==1||packet.is_moving==0){if(prevmarker!==null){if(prevmarker.packet.latitude!=packet.latitude&&prevmarker.packet.longitude!=packet.longitude){this._map.markerCollection.removePostionMarkerId(prevmarker.latitude,prevmarker.longitude,markerIdKey);this._map.showTopLabelOnPosition(prevmarker.latitude,prevmarker.longitude);}}
-var marker=new trackdirect.models.Marker(packet,false,this._map);this._addInfoWindowClickListener(marker,true);}else{var marker=new trackdirect.models.Marker(packet,true,this._map);this._map.markerCollection.addDotMarker(markerIdKey,marker);this._addInfoWindowClickListener(marker,false);}
-marker.markerIdKey=markerIdKey;if(prevmarker!==null){if(!this._map.markerCollection.isPacketReplacingMarker(packet)){this._extendTail(prevmarker,marker);}else{this._replaceTailMarker(markerIdKey);}}
-if(packet.packet_order_id==1){if(packet.hasDirectionSupport()&&packet.hasConfirmedMapId()){marker.directionPolyLine=new trackdirect.models.DirectionPolyline(marker,this._map);}}
-this._map.markerCollection.setMarker(markerIdKey,marker);if(!marker.isDotMarker()){this._createMarkerLabel(marker);this._map.showTopLabelOnPosition(packet.latitude,packet.longitude);}
-return marker;};trackdirect.MarkerCreator.prototype._addInfoWindowClickListener=function(marker,useOmsIfExists){var me=this;if(useOmsIfExists&&this._map.oms){me._map.oms.addMarker(marker);}else if(typeof google==="object"&&typeof google.maps==="object"){marker.addListener("click",function(){me._map.openMarkerInfoWindow(marker,false);});}else if(typeof L==="object"){marker.on("click",function(){me._map.openMarkerInfoWindow(marker,false);});}};trackdirect.MarkerCreator.prototype._convertToDotMarker=function(markerIdKey,packet){var dotMarker=this._map.markerCollection.getMarker(markerIdKey);if(dotMarker!=null&&dotMarker.showAsMarker){dotMarker.stopDirectionPolyline();if(this._map.state.isMarkerInfoWindowOpen(dotMarker)){this._map.state.openInfoWindowForMarkerIdKey=markerIdKey;}
-if(!this._map.state.isFilterMode){if(this._map.getZoom()<trackdirect.settings.minZoomForMarkerPrevPosition){dotMarker.hide();}}
-var icon=this._getDotMarkerIcon(packet);dotMarker.setOpacity(1.0);dotMarker.setIcon(icon);if(typeof google==="object"&&typeof google.maps==="object"){dotMarker.setOptions({anchorPoint:null});}
-this._map.markerCollection.addDotMarker(markerIdKey,dotMarker);if(this._map.oms){this._map.oms.removeMarker(dotMarker);var me=this;if(typeof google==="object"&&typeof google.maps==="object"){dotMarker.addListener("click",function(){me._map.openMarkerInfoWindow(dotMarker,false);});}else if(typeof L==="object"){dotMarker.on("click",function(){me._map.openMarkerInfoWindow(dotMarker,false);});}}
-if(this._map.markerCollection.hasMarkerLabel(markerIdKey)){var markerLabel=this._map.markerCollection.getMarkerLabel(markerIdKey);markerLabel.hide();}
-dotMarker.hasLabel=false;dotMarker.showAsMarker=false;}};trackdirect.MarkerCreator.prototype._getDotMarkerIcon=function(packet){var colorId=trackdirect.services.stationColorCalculator.getColorId(packet);if(typeof google==="object"&&typeof google.maps==="object"){var icon={url:trackdirect.settings.baseUrl+
-trackdirect.settings.imagesBaseDir+
-"dotColor"+
-colorId+
-".png",size:new google.maps.Size(12,12),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(6,6),};}else if(typeof L==="object"){var icon=L.icon({iconUrl:trackdirect.settings.baseUrl+
-trackdirect.settings.imagesBaseDir+
-"dotColor"+
-colorId+
-".png",iconSize:[12,12],iconAnchor:[6,6],popupAnchor:[-3,-12],});}
-return icon;};trackdirect.MarkerCreator.prototype._removeExistingRelatedMarkerOriginDashedPolyLine=function(prevMarker,newMarkerIdKey){if(typeof prevMarker._relatedMarkerOriginDashedPolyLine!=="undefined"&&prevMarker._relatedMarkerOriginDashedPolyLine!==null){var ownerMarkerIdKey=prevMarker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey;var ownerMarker=this._map.markerCollection.getMarker(ownerMarkerIdKey);var isConfirmedMapId=true;if(ownerMarker!==null&&ownerMarker.packet.map_id!=1&&ownerMarker.packet.map_id!=2&&ownerMarker.packet.map_id!=12){isConfirmedMapId=false;}
-if(ownerMarkerIdKey!=newMarkerIdKey&&(!isConfirmedMapId||!this._map.markerCollection.hasDotMarkers(ownerMarkerIdKey))&&ownerMarker.showAsMarker){this._map.markerCollection.resetMarkerDashedPolyline(prevMarker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey);prevMarker._relatedMarkerOriginDashedPolyLine.hide();prevMarker._relatedMarkerOriginDashedPolyLine=null;}}};trackdirect.MarkerCreator.prototype._createMarkerOriginDashedPolyLine=function(prevMarker,packet,newMarkerIdKey){if(this._map.state.getClientTimestamp(prevMarker.packet.timestamp)<=this._map.state.getOldestAllowedPacketTimestamp()){return;}
-if(typeof prevMarker._relatedMarkerOriginDashedPolyLine==="undefined"||prevMarker._relatedMarkerOriginDashedPolyLine===null){var color=trackdirect.services.stationColorCalculator.getColor(packet);var newDashedPolyline=new trackdirect.models.DashedTailPolyline(color,this._map);newDashedPolyline.setMarkerIdKey(newMarkerIdKey);newDashedPolyline.setRelatedMarkerIdKey(prevMarker.markerIdKey);newDashedPolyline.addPacket(prevMarker.packet);newDashedPolyline.addPacket(packet);this._map.markerCollection.setMarkerDashedPolyline(newMarkerIdKey,newDashedPolyline);prevMarker._relatedMarkerOriginDashedPolyLine=newDashedPolyline;this._map.addMarkerToMapSectorInterval(newMarkerIdKey,prevMarker.packet.getLatLngLiteral(),packet.getLatLngLiteral());}};trackdirect.MarkerCreator.prototype._convertLostMarkersToGhost=function(newPacket){if(newPacket.packet_order_id!=2&&newPacket.hasConfirmedMapId()&&newPacket.is_moving==1&&this._map.markerCollection.isPacketReplacingMarker(newPacket)==false){if(this._map.markerCollection.hasNonRelatedMovingMarkerId(newPacket)){list=this._map.markerCollection.getStationMarkerIdKeys(newPacket.station_id);for(var markerIdKey in list){var newMarkerIdKey=this._map.markerCollection.getMarkerIdKey(newPacket.marker_id);var marker=this._map.markerCollection.getMarker(markerIdKey);if(marker!==null&&markerIdKey!==newMarkerIdKey&&marker.packet.is_moving==1&&marker.packet.timestamp<=newPacket.timestamp&&marker.packet.hasConfirmedMapId()&&marker.isSingleMovingMarker()){if(this._map.markerCollection.hasRelatedDashedPolyline(marker)){masterMarkerIdKey=this._map.markerCollection.getMarkerMasterMarkerKeyId(markerIdKey);if(masterMarkerIdKey!==markerIdKey&&this._map.markerCollection.isExistingMarker(masterMarkerIdKey)!==null){continue;}else{this._map.markerCollection.resetMarkerDashedPolyline(marker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey);marker._relatedMarkerOriginDashedPolyLine.hide();marker._relatedMarkerOriginDashedPolyLine=null;}}
-marker.packet.map_id=9;marker.setOpacity(0.5);marker.hasLabel=false;marker.hideLabel();marker.stopDirectionPolyline();if(!this._map.state.isGhostMarkersVisible){marker.hide();}}}}}};trackdirect.MarkerCreator.prototype._getLatestStationMarkerToConnectTo=function(newPacket,newMarkerIdKey){if(this._map.markerCollection.getStationLatestMovingMarkerIdKey(newPacket.station_id)===newMarkerIdKey){return newMarkerIdKey;}
-var latestPrevMarkerIdKey=null;var latestPrevMarkerIdKeyTimestamp=null;var list=this._map.markerCollection.getStationMarkerIdKeys(newPacket.station_id);for(var markerIdKey in list){var marker=this._map.markerCollection.getMarker(markerIdKey);if(marker!==null){if(markerIdKey===newMarkerIdKey){return markerIdKey;}else if(marker.packet.hasConfirmedMapId()&&marker.packet.is_moving==1&&marker.overwrite!==true&&marker.isSingleMovingMarker()==false&&(latestPrevMarkerIdKeyTimestamp===null||latestPrevMarkerIdKeyTimestamp<marker.packet.timestamp)){latestPrevMarkerIdKey=markerIdKey;latestPrevMarkerIdKeyTimestamp=marker.packet.timestamp;}}}
-return latestPrevMarkerIdKey;};trackdirect.MarkerCreator.prototype._connectToPreviousMarker=function(newPacket){var newMarkerIdKey=this._map.markerCollection.getMarkerIdKey(newPacket.marker_id);if(newPacket.packet_order_id!=2&&newPacket.is_moving==1&&this._map.markerCollection.isPacketReplacingMarker(newPacket)==false){var latestPrevMarkerIdKey=this._getLatestStationMarkerToConnectTo(newPacket,newMarkerIdKey);var latestPrevMarker=this._map.markerCollection.getMarker(latestPrevMarkerIdKey);if(latestPrevMarker!==null){if(newPacket.hasConfirmedMapId()){latestPrevMarker.stopDirectionPolyline();}
-if(latestPrevMarkerIdKey==newMarkerIdKey){if(this._map.markerCollection.hasDashedPolyline(latestPrevMarkerIdKey)&&newPacket.hasConfirmedMapId()){var dashedPolyline=this._map.markerCollection.getMarkerDashedPolyline(latestPrevMarkerIdKey);var latestPrevRelatedMarkerIdKey=dashedPolyline.relatedMarkerIdKey;this._convertToDotMarker(latestPrevRelatedMarkerIdKey,newPacket);}
-this._convertToDotMarker(latestPrevMarkerIdKey,newPacket);}else{this._removeExistingRelatedMarkerOriginDashedPolyLine(latestPrevMarker,newMarkerIdKey);this._createMarkerOriginDashedPolyLine(latestPrevMarker,newPacket,newMarkerIdKey);if(newPacket.hasConfirmedMapId()){this._convertToDotMarker(latestPrevMarkerIdKey,newPacket);}}}}};trackdirect.MarkerCreator.prototype._createMarkerLabel=function(marker){var position=marker.packet.getLatLngLiteral();if(this._map.markerCollection.hasMarkerLabel(marker.markerIdKey)){this._map.markerCollection.setMarkerLabelPosition(marker.markerIdKey,position);}else if(marker.packet.packet_order_id==1){if(marker.packet.getOgnRegistration()!=null){labelText=marker.packet.getOgnRegistration();if(marker.packet.getOgnCN()!==null){labelText+=" ["+marker.packet.getOgnCN()+"]";}}else{if(marker.packet.station_name==marker.packet.sender_name){labelText=escapeHtml(marker.packet.station_name);}else{labelText=escapeHtml(marker.packet.station_name)+
-' <span style="font-weight: normal;">('+
-escapeHtml(marker.packet.sender_name)+
-")</span>";}
-if(marker.packet.comment){var opIndex=marker.packet.comment.indexOf("OP:");if(opIndex>-1){opStr=marker.packet.comment.substring(opIndex+3).replace(/^\s+/,"")+" ";opStr=opStr.substring(0,opStr.indexOf(" "));if(opStr.length<=10&&opStr.length>0){labelText+=' <span style="font-weight: normal;">['+
-escapeHtml(opStr)+
-"]</span>";}}}}
-var markerLabel=new trackdirect.models.Label({position:position,text:labelText,},this._map);this._map.markerCollection.setMarkerLabel(marker.markerIdKey,markerLabel);}};trackdirect.MarkerCreator.prototype._extendTail=function(prevmarker,newmarker){if(this._map.state.getClientTimestamp(newmarker.packet.timestamp)<=this._map.state.getOldestAllowedPacketTimestamp()){return;}
-if(this._map.markerCollection.hasPolyline(newmarker.markerIdKey)){var polyline=this._map.markerCollection.getMarkerPolyline(newmarker.markerIdKey);polyline.addMarker(newmarker);}else{if(this._map.state.getClientTimestamp(this._map.markerCollection.getMarker(newmarker.markerIdKey).packet.timestamp)<=this._map.state.getOldestAllowedPacketTimestamp()){return;}else{var color=trackdirect.services.stationColorCalculator.getColor(newmarker.packet);var newTailPolyline=new trackdirect.models.TailPolyline(color,this._map);newTailPolyline.setMarkerIdKey(newmarker.markerIdKey);newTailPolyline.addMarker(prevmarker);newTailPolyline.addMarker(newmarker);this._map.markerCollection.setMarkerPolyline(newmarker.markerIdKey,newTailPolyline);}}};trackdirect.MarkerCreator.prototype._replaceTailMarker=function(markerIdKey){if(this._map.markerCollection.hasPolyline(markerIdKey)){var marker=this._map.markerCollection.getMarker(markerIdKey);var polylines=this._map.markerCollection.getMarkerPolyline(markerIdKey);var latestIndex=polylines.getPath().length-1;if(latestIndex>=0){polylines.getPathItem(latestIndex).marker=marker;}}};trackdirect.MarkerCreator.prototype.isBadPacket=function(packet){if(typeof packet.latitude==="undefined"||typeof packet.longitude==="undefined"||packet.marker_id==null){return true;}
-var markerIdKey=this._map.markerCollection.getMarkerIdKey(packet.marker_id);if(this._map.markerCollection.isExistingMarker(markerIdKey)){var marker=this._map.markerCollection.getMarker(markerIdKey);if(packet.packet_order_id==1&&this._currentPacketSequenceStationId==packet.station_id){return false;}
-if(packet.db==0){if(this._map.markerCollection.isDuplicate(packet)){return true;}}
-if(packet.db==1&&marker.packet.db==1&&marker.packet.source===0&&packet.id===marker.packet.id){return true;}
-if(marker.overwrite==true&&packet.overwrite==0){return false;}else{if(marker.packet.timestamp>=packet.timestamp){return true;}
-if(marker.packet.reported_timestamp!==null&&packet.reported_timestamp!==null&&Math.abs(marker.packet.reported_timestamp-packet.reported_timestamp)<600){if(marker.packet.reported_timestamp>packet.reported_timestamp){return true;}}}}
-if(packet.is_moving==1){var list=this._map.markerCollection.getStationMarkerIdKeys(packet.station_id);for(var relatedMarkerIdKey in list){var relatedMarker=this._map.markerCollection.getMarker(relatedMarkerIdKey);if(relatedMarker!==null&&relatedMarker.overwrite==false&&relatedMarker.packet.timestamp>packet.timestamp){return true;}}}
-return false;};
-trackdirect.models.MarkerCollection=function(){this._markerKeys={};this._markers=[];this._stationMarkers={};this._stationLastMovingMarkerIdKey={};this._stationLastMarker={};this._senderLastMarker={};this._positionMarkersIdKeys={};this._dotMarkers=[];this._markerPolyLines=[];this._markerOriginDashedPolyLines=[];this._mapSectorMarkerIdKeys={};this._stationCoverage={};this.resetAllMarkers();};trackdirect.models.MarkerCollection.prototype.getMarkerIdKey=function(markerId){if(!(markerId in this._markerKeys)){this._markers.push(null);this._markerPolyLines.push(null);this._dotMarkers.push(null);this._markerOriginDashedPolyLines.push(null);var markerIdKey=this._markers.length-1;this._markerKeys[markerId]=markerIdKey;return markerIdKey;}else{return this._markerKeys[markerId];}};trackdirect.models.MarkerCollection.prototype.isExistingMarker=function(markerIdKey){if(markerIdKey in this._markers&&this._markers[markerIdKey]!==null){return true;}
-return false;};trackdirect.models.MarkerCollection.prototype.setMarker=function(markerIdKey,marker){if(marker!==null&&typeof marker.packet!=="undefined"){var packet=marker.packet;this._markers[markerIdKey]=marker;this._addStationMarkerId(markerIdKey,packet);this._addStationLastMarker(packet,marker);this.addPostionMarkerId(markerIdKey,packet);}};trackdirect.models.MarkerCollection.prototype.getMarker=function(markerIdKey){if(markerIdKey!==null&&markerIdKey in this._markers){return this._markers[markerIdKey];}
-return null;};trackdirect.models.MarkerCollection.prototype.getAllMarkers=function(){return this._markers;};trackdirect.models.MarkerCollection.prototype.removeMarker=function(markerIdKey){if(markerIdKey!==null&&markerIdKey in this._markers){this._markers.splice(markerIdKey,1);}};trackdirect.models.MarkerCollection.prototype.getNumberOfMarkers=function(){return this._markers.length;};trackdirect.models.MarkerCollection.prototype.setMarkerLabel=function(markerIdKey,label){if(markerIdKey in this._markers&&this._markers[markerIdKey]!==null){this._markers[markerIdKey].label=label;}};trackdirect.models.MarkerCollection.prototype.getMarkerLabel=function(markerIdKey){if(markerIdKey in this._markers&&this._markers[markerIdKey]!==null){return this._markers[markerIdKey].label;}
-return null;};trackdirect.models.MarkerCollection.prototype.hasMarkerLabel=function(markerIdKey){if(markerIdKey in this._markers&&this._markers[markerIdKey]!==null&&this._markers[markerIdKey].label!==null){return true;}
-return false;};trackdirect.models.MarkerCollection.prototype.setMarkerLabelPosition=function(markerIdKey,position){if(markerIdKey in this._markers&&this._markers[markerIdKey]!==null&&this._markers[markerIdKey].label!==null){this._markers[markerIdKey].label.position=position;}};trackdirect.models.MarkerCollection.prototype.isDuplicate=function(packet){if(packet.is_moving==0){return false;}
-for(var markerIdKey in this.getPositionMarkerIdKeys(packet.latitude,packet.longitude)){var marker=this.getMarker(markerIdKey);if(marker!==null&&marker.packet.station_id==packet.station_id&&marker.packet.symbol==packet.symbol&&marker.packet.symbol_table==packet.symbol_table&&marker.packet.course==packet.course){return true;}}
-return false;};trackdirect.models.MarkerCollection.prototype.addDotMarker=function(markerIdKey,dotMarker){if(markerIdKey in this._dotMarkers){if(this._dotMarkers[markerIdKey]===null){this._dotMarkers[markerIdKey]=[];}
-this._dotMarkers[markerIdKey].push(dotMarker);}};trackdirect.models.MarkerCollection.prototype.getDotMarkers=function(markerIdKey){if(markerIdKey in this._dotMarkers&&this._dotMarkers[markerIdKey]!==null){return this._dotMarkers[markerIdKey];}
-return[];};trackdirect.models.MarkerCollection.prototype.hasDotMarkers=function(markerIdKey){if(markerIdKey in this._dotMarkers&&this._dotMarkers[markerIdKey]!==null&&this._dotMarkers[markerIdKey].length>0){return true;}
-return false;};trackdirect.models.MarkerCollection.prototype.addStationCoverage=function(stationId,stationCoveragePolygon){this._stationCoverage[stationId]=stationCoveragePolygon;};trackdirect.models.MarkerCollection.prototype.getStationCoverage=function(stationId){if(stationId in this._stationCoverage&&this._stationCoverage[stationId]!==null){return this._stationCoverage[stationId];}
-return null;};trackdirect.models.MarkerCollection.prototype.getStationIdListWithVisibleCoverage=function(){var result=[];for(var stationId in this._stationCoverage){if(this._stationCoverage[stationId].isRequestedToBeVisible()){result.push(stationId);}}
-return result;};trackdirect.models.MarkerCollection.prototype.hasCoveragePolygon=function(stationId){if(stationId in this._stationCoverage&&this._stationCoverage[stationId]!==null){return true;}
-return false;};trackdirect.models.MarkerCollection.prototype.resetDotMarkers=function(markerIdKey){if(markerIdKey in this._dotMarkers&&this._dotMarkers[markerIdKey]!==null){this._dotMarkers[markerIdKey]=[];}};trackdirect.models.MarkerCollection.prototype.removeOldestDotMarker=function(markerIdKey){if(this.hasDotMarkers(markerIdKey)){latestMarker=this.getMarker(markerIdKey);var latestMarkerIndex=this.getDotMarkerIndex(markerIdKey,latestMarker);var dotMarkers=this.getDotMarkers(markerIdKey);var maxNumberOfPolyLinePoints=dotMarkers.length;if(latestMarkerIndex>-1){maxNumberOfPolyLinePoints=maxNumberOfPolyLinePoints-1;}
-var removedItems=this._dotMarkers[markerIdKey].splice(0,1);if(removedItems.length==1){var removedMarker=removedItems[0];removedMarker.hide();if(this.hasPolyline(removedMarker.markerIdKey)){var polyline=this.getMarkerPolyline(removedMarker.markerIdKey);while(polyline.getPathLength()>maxNumberOfPolyLinePoints){polyline.removePathItem(0);}}
-removedMarker=null;return true;}}
-return false;};trackdirect.models.MarkerCollection.prototype.getDotMarkerIndex=function(markerIdKey,marker){if(!this.hasDotMarkers(markerIdKey)){return-1;}
-for(var i=0,len=this._dotMarkers[markerIdKey].length;i<len;i++){var foundMarker=this._dotMarkers[markerIdKey][i];if(foundMarker===null){continue;}
-if(typeof marker.packet.id!=="undefined"&&marker.packet.id!==null&&foundMarker.packet.id===marker.packet.id&&foundMarker.packet.map_id===marker.packet.map_id){return i;}
-if(foundMarker.packet.station_id===marker.packet.station_id&&foundMarker.packet.timestamp===marker.packet.timestamp&&Math.round(foundMarker.packet.latitude*100000)===Math.round(marker.packet.latitude*100000)&&Math.round(foundMarker.packet.longitude*100000)===Math.round(marker.packet.longitude*100000)&&foundMarker.packet.map_id===marker.packet.map_id){return i;}}
-return-1;};trackdirect.models.MarkerCollection.prototype.setMarkerPolyline=function(markerIdKey,polyline){if(markerIdKey in this._markerPolyLines){this._markerPolyLines[markerIdKey]=polyline;}};trackdirect.models.MarkerCollection.prototype.getMarkerPolyline=function(markerIdKey){if(this.hasPolyline(markerIdKey)){return this._markerPolyLines[markerIdKey];}
-return null;};trackdirect.models.MarkerCollection.prototype.hasPolyline=function(markerIdKey){if(markerIdKey in this._markerPolyLines&&this._markerPolyLines[markerIdKey]!==null){if(this._markerPolyLines[markerIdKey].getPathLength()>1){return true;}else{this._markerPolyLines[markerIdKey].hide();this._markerPolyLines[markerIdKey]=null;return false;}}
-return false;};trackdirect.models.MarkerCollection.prototype.resetMarkerPolyline=function(markerIdKey){if(markerIdKey in this._markerPolyLines){this._markerPolyLines[markerIdKey]=null;}};trackdirect.models.MarkerCollection.prototype.setMarkerDashedPolyline=function(markerIdKey,polyline){if(markerIdKey in this._markerOriginDashedPolyLines){this._markerOriginDashedPolyLines[markerIdKey]=polyline;}};trackdirect.models.MarkerCollection.prototype.getMarkerDashedPolyline=function(markerIdKey){if(this.hasDashedPolyline(markerIdKey)){return this._markerOriginDashedPolyLines[markerIdKey];}
-return null;};trackdirect.models.MarkerCollection.prototype.hasDashedPolyline=function(markerIdKey){if(markerIdKey in this._markerOriginDashedPolyLines&&this._markerOriginDashedPolyLines[markerIdKey]!==null){if(this._markerOriginDashedPolyLines[markerIdKey].getPathLength()>1){return true;}else{this._markerOriginDashedPolyLines[markerIdKey].hide();this._markerOriginDashedPolyLines[markerIdKey]=null;return false;}}
-return false;};trackdirect.models.MarkerCollection.prototype.resetMarkerDashedPolyline=function(markerIdKey){if(markerIdKey in this._markerOriginDashedPolyLines){this._markerOriginDashedPolyLines[markerIdKey]=null;}};trackdirect.models.MarkerCollection.prototype.getStationLatestPacket=function(stationId){if(typeof this._stationLastMarker[stationId]!=="undefined"&&this._stationLastMarker[stationId]!==null&&typeof this._stationLastMarker[stationId].packet!=="undefined"){return this._stationLastMarker[stationId].packet;}else{return null;}};trackdirect.models.MarkerCollection.prototype.getStationLatestMarker=function(stationId){if(typeof this._stationLastMarker[stationId]!=="undefined"&&this._stationLastMarker[stationId]!==null){return this._stationLastMarker[stationId];}else{return null;}};trackdirect.models.MarkerCollection.prototype.getSenderLatestPacket=function(senderId){if(typeof this._senderLastMarker[senderId]!=="undefined"&&this._senderLastMarker[senderId]!==null&&typeof this._senderLastMarker[senderId].packet!=="undefined"){return this._senderLastMarker[senderId].packet;}else{return null;}};trackdirect.models.MarkerCollection.prototype.getStationLatestMovingMarkerIdKey=function(stationId){if(this._stationLastMovingMarkerIdKey!==null&&typeof this._stationLastMovingMarkerIdKey[stationId]!=="undefined"&&this._stationLastMovingMarkerIdKey[stationId]!==null&&this.isExistingMarker(this._stationLastMovingMarkerIdKey[stationId])){return this._stationLastMovingMarkerIdKey[stationId];}
-return null;};trackdirect.models.MarkerCollection.prototype.getMarkerMasterMarkerKeyId=function(markerIdKey){if(this.isExistingMarker(markerIdKey)){var marker=this._markers[markerIdKey];if(this.hasRelatedDashedPolyline(marker)){return this.getMarkerMasterMarkerKeyId(marker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey);}}
-return markerIdKey;};trackdirect.models.MarkerCollection.prototype.getStationLatestVisibleMarker=function(stationId){var latestVisibleMarker=null;var latestVisibleMarkerTimestamp=null;for(var markerIdKey in this._stationMarkers[stationId]){var marker=this._markers[markerIdKey];if(typeof marker!=="undefined"&&marker!==null&&typeof marker.getMap()!=="undefined"&&marker.getMap()!==null){if(latestVisibleMarkerTimestamp===null||marker.packet.timestamp>latestVisibleMarkerTimestamp){latestVisibleMarker=marker;latestVisibleMarkerTimestamp=marker.packet.timestamp;}}}
-return latestVisibleMarker;};trackdirect.models.MarkerCollection.prototype.getStationMarkerIdKeys=function(stationId){if(stationId in this._stationMarkers){return this._stationMarkers[stationId];}
-return{};};trackdirect.models.MarkerCollection.prototype.getPositionMarkerIdKeys=function(latitude,longitude){var key=this._getCompareablePosition(latitude,longitude);if(key in this._positionMarkersIdKeys){return this._positionMarkersIdKeys[key];}
-return{};};trackdirect.models.MarkerCollection.prototype.addPostionMarkerId=function(markerIdKey,packet){var key=this._getCompareablePosition(packet.latitude,packet.longitude);if(!(key in this._positionMarkersIdKeys)){this._positionMarkersIdKeys[key]={};}
-this._positionMarkersIdKeys[key][markerIdKey]=true;};trackdirect.models.MarkerCollection.prototype.removePostionMarkerId=function(latitude,longitude,markerIdKey){var key=this._getCompareablePosition(latitude,longitude);if(key in this._positionMarkersIdKeys){if(markerIdKey in this._positionMarkersIdKeys[key]){this._positionMarkersIdKeys[key][markerIdKey]=false;}}};trackdirect.models.MarkerCollection.prototype.addMarkerToMapSector=function(markerIdKey,markerMapSector){if(!(markerMapSector in this._mapSectorMarkerIdKeys)){this._mapSectorMarkerIdKeys[markerMapSector]=[];}
-if(this._mapSectorMarkerIdKeys[markerMapSector].indexOf(markerIdKey)<0){this._mapSectorMarkerIdKeys[markerMapSector].push(markerIdKey);}};trackdirect.models.MarkerCollection.prototype.getMapSectorMarkerKeys=function(mapSector){if(mapSector in this._mapSectorMarkerIdKeys){return this._mapSectorMarkerIdKeys[mapSector];}
-return[];};trackdirect.models.MarkerCollection.prototype.resetAllMarkers=function(){this._markerKeys={};this._markers=[];this._markerPolyLines=[];this._dotMarkers=[];this._markerOriginDashedPolyLines=[];this._stationMarkers={};this._stationLastMovingMarkerIdKey={};this._stationLastMarker={};this._senderLastMarker={};this._positionMarkersIdKeys={};this._mapSectorMarkerIdKeys={};this._stationCoverage={};};trackdirect.models.MarkerCollection.prototype.resetMarker=function(markerIdKey){if(this.isExistingMarker(markerIdKey)){var marker=this._markers[markerIdKey];this._markers[markerIdKey]=null;this._markerPolyLines[markerIdKey]=null;this._dotMarkers[markerIdKey]=null;this._markerOriginDashedPolyLines[markerIdKey]=null;if(typeof marker.packet.latitude!="undefined"&&typeof marker.packet.longitude!="undefined"){this.removePostionMarkerId(marker.packet.latitude,marker.packet.longitude,markerIdKey);}}};trackdirect.models.MarkerCollection.prototype.hasRelatedDashedPolyline=function(marker){if(typeof marker._relatedMarkerOriginDashedPolyLine!=="undefined"&&marker._relatedMarkerOriginDashedPolyLine!==null){return true;}
-return false;};trackdirect.models.MarkerCollection.prototype.hasNonRelatedMovingMarkerId=function(packet){var latestStationMovingMarkerIdKey=this.getStationLatestMovingMarkerIdKey(packet.station_id);var newMarkerIdKey=this.getMarkerIdKey(packet.marker_id);if(latestStationMovingMarkerIdKey!==null&&latestStationMovingMarkerIdKey!==newMarkerIdKey){var latestStationMovingMarker=this.getMarker(latestStationMovingMarkerIdKey);if(latestStationMovingMarker.packet.hasConfirmedMapId()){return true;}}
-return false;};trackdirect.models.MarkerCollection.prototype.isPacketReplacingMarker=function(packet){var markerIdKey=this.getMarkerIdKey(packet.marker_id);if(this.isExistingMarker(markerIdKey)){var marker=this.getMarker(markerIdKey);if(marker!==null){if(packet.map_id==14){return true;}
-if(packet.is_moving==0){return true;}
-if([1,2,7,12].indexOf(packet.map_id)<0){return true;}}}
-return false;};trackdirect.models.MarkerCollection.prototype._addStationMarkerId=function(markerIdKey,packet){if(!(packet.station_id in this._stationMarkers)){this._stationMarkers[packet.station_id]={};}
-this._stationMarkers[packet.station_id][markerIdKey]=true;if(packet.is_moving==1&&packet.hasConfirmedMapId()){this._stationLastMovingMarkerIdKey[packet.station_id]=markerIdKey;}};trackdirect.models.MarkerCollection.prototype._addStationLastMarker=function(packet,marker){if(packet.hasConfirmedMapId()){if(typeof this._stationLastMarker[packet.station_id]==="undefined"||this._stationLastMarker[packet.station_id]===null){this._stationLastMarker[packet.station_id]=marker;if(packet.station_name==packet.sender_name){this._senderLastMarker[packet.sender_id]=marker;}}else if(this._stationLastMarker[packet.station_id].packet.timestamp<=packet.timestamp){this._stationLastMarker[packet.station_id]=marker;if(packet.station_name==packet.sender_name){this._senderLastMarker[packet.sender_id]=marker;}}}};trackdirect.models.MarkerCollection.prototype._getCompareablePosition=function(latitude,longitude){var latCmp=Math.round(latitude*100000);var lngCmp=Math.round(longitude*100000);return String(latCmp)+":"+String(lngCmp);};
-trackdirect.models.Marker=function(packet,isDotMarker,map){this.packet=packet;this._isDotMarker=isDotMarker;this._defaultMap=map;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Marker.call(this,this._getGoogleMarkerOptions());}else if(typeof L==="object"){L.Marker.call(this,this.packet.getLatLngLiteral(),this._getLeafletMarkerOptions());}
-this._init();if(typeof google==="object"&&typeof google.maps==="object"){this.setMap(null);}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.Marker.prototype=Object.create(google.maps.Marker.prototype);}else if(typeof L==="object"){trackdirect.models.Marker.prototype=Object.create(L.Marker.prototype);}
-trackdirect.models.Marker.prototype.constructor=trackdirect.models.Marker;trackdirect.models.Marker.prototype._init=function(){this._tdEventListeners={};this.hasLabel=false;this.showAsMarker=false;this.overwrite=false;this.markerIdKey=null;this.label=null;this.transmitPolyLine=null;this.directionPolyLine=null;this.phgCircle=null;this.rngCircle=null;this.hideTimerId=null;this.toOldTimerId=null;if(!this._isDotMarker){this.showAsMarker=true;if(this.packet.map_id!=1&&this.packet.map_id!=2&&this.packet.map_id!=12){this.setOpacity(0.5);}else{this.hasLabel=true;}}
-if(this._defaultMap.state.endTimeTravelTimestamp===null){this._addMarkerToOldTimeout(0);}
-this._addMarkerTooltip();};trackdirect.models.Marker.prototype.addTdListener=function(event,handler){if(!(event in this._tdEventListeners)){this._tdEventListeners[event]=[];}
-this._tdEventListeners[event].push(handler);};trackdirect.models.Marker.prototype.isDotMarker=function(){return this._isDotMarker;};trackdirect.models.Marker.prototype.isVisible=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()!=="undefined"&&this.getMap()!==null){return true;}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){return true;}}
-return false;};trackdirect.models.Marker.prototype.getPositionLiteral=function(){if(typeof google==="object"&&typeof google.maps==="object"){var latLng=this.getPosition();if(typeof latLng!=="undefined"&&typeof latLng.lat==="function"){return{lat:latLng.lat(),lng:latLng.lng()};}else{return latLng;}}else if(typeof L==="object"){var latLng=this.getLatLng();if(typeof latLng!=="undefined"){return{lat:latLng.lat,lng:latLng.lng};}else{return latLng;}}
-return{};};trackdirect.models.Marker.prototype.show=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}}else if(typeof L==="object"){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}}
-if(this.hideTimerId!==null){clearTimeout(this.hideTimerId);}
-this._emitTdEventListeners("onshow");};trackdirect.models.Marker.prototype.hide=function(delayInMilliSeconds,onlyHideIfNeeded,hideOpenInfoWindow){delayInMilliSeconds=typeof delayInMilliSeconds!=="undefined"?delayInMilliSeconds:0;onlyHideIfNeeded=typeof onlyHideIfNeeded!=="undefined"?onlyHideIfNeeded:false;hideOpenInfoWindow=typeof hideOpenInfoWindow!=="undefined"?hideOpenInfoWindow:true;if(delayInMilliSeconds>0){this._hideLater(delayInMilliSeconds,onlyHideIfNeeded);return;}
-if(onlyHideIfNeeded&&this.shouldMarkerBeVisible()){return;}
-if(hideOpenInfoWindow&&this._defaultMap.state.isMarkerInfoWindowOpen(this)){this._defaultMap.state.openInfoWindow.hide();}
-if(this.isVisible()){if(typeof google==="object"&&typeof google.maps==="object"){this.setMap(null);}else if(typeof L==="object"){this._defaultMap.removeLayer(this);}}
-if(this.showAsMarker){this.hideLabel();}
-this.hidePHGCircle();this.hideRNGCircle();if(this.hideTimerId!==null){clearTimeout(this.hideTimerId);}
-this._emitTdEventListeners("onhide");};trackdirect.models.Marker.prototype.getDefaultMap=function(){return this._defaultMap;};trackdirect.models.Marker.prototype.getMap=function(){if(typeof google==="object"&&typeof google.maps==="object"){var map=google.maps.Marker.prototype.getMap.call(this);if(typeof map!=="undefined"){return map;}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){return this._defaultMap;}}
-return null;};trackdirect.models.Marker.prototype.getState=function(){return this._defaultMap.state;};trackdirect.models.Marker.prototype.getZIndex=function(){if(typeof google==="object"&&typeof google.maps==="object"){return this.zIndex;}else if(typeof L==="object"){return this.options.zIndexOffset;}
-return 0;};trackdirect.models.Marker.prototype.showCompleteMarker=function(){if(this._defaultMap.state.isFilterMode&&this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id)==-1){return;}
-if(this.shouldMarkerBeVisible()){if(this.showAsMarker){this.show();}
-if(this._defaultMap.state.isFilterMode){this.showMarkerPrevPosition();this.showMarkerTail();this.showLabel();}else{if(this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerPrevPosition){this.showMarkerPrevPosition();}
-if(this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerTail){this.showMarkerTail();}
-if(this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerLabel){this.showLabel();}}
-if(this._defaultMap.state.showPHGCircles==1){this.showPHGCircle(true);}else if(this._defaultMap.state.showPHGCircles==2){this.showPHGCircle(false);}
-if(this._defaultMap.state.showRNGCircles==1){this._showRNGCircle(true);}else if(this._defaultMap.state.showRNGCircles==2){this._showRNGCircle(false);}}};trackdirect.models.Marker.prototype.hideCompleteMarker=function(){this.hide();this.hideMarkerPrevPosition();this.hideMarkerTail();};trackdirect.models.Marker.prototype.showMarkerDetails=function(){if(this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerPrevPosition){this.showMarkerPrevPosition();}
-if(this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerTail){this.showMarkerTail();}
-if(this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerLabel){this.showLabel();}};trackdirect.models.Marker.prototype.hideMarkerDetails=function(){if(this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkerPrevPosition){this.hideMarkerPrevPosition();}
-if(this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkerTail){this.hideMarkerTail();}
-if(this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkerLabel){this.hideLabel();}};trackdirect.models.Marker.prototype.showLabel=function(){if(!this._defaultMap.state.isFilterMode||this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id)>-1){if(this.isVisible()&&this.label!==null&&(this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerLabel||this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id)>-1)&&this.hasLabel&&this.packet.hasConfirmedMapId()){this.label.show();}}};trackdirect.models.Marker.prototype.hideLabel=function(){if(this.label!==null&&this.hasLabel){this.label.hide();}};trackdirect.models.Marker.prototype.showMarkerPrevPosition=function(){if(this.shouldMarkerBeVisible()&&this.packet.hasConfirmedMapId()){var oldestAllowedPacketTimestamp=this._defaultMap.state.getOldestAllowedPacketTimestamp();var dotMarkers=this._defaultMap.markerCollection.getDotMarkers(this.markerIdKey);for(var i=0;i<dotMarkers.length;i++){var dotMarker=dotMarkers[i];if(this._defaultMap.state.getClientTimestamp(dotMarker.packet.timestamp)>oldestAllowedPacketTimestamp){dotMarker.show();}}
-if(!this.showAsMarker){this.show();}}};trackdirect.models.Marker.prototype.hideMarkerPrevPosition=function(){if(this.packet.hasConfirmedMapId()){var dotMarkers=this._defaultMap.markerCollection.getDotMarkers(this.markerIdKey);for(var i=0;i<dotMarkers.length;i++){var dotMarker=dotMarkers[i];dotMarker.hide();}
-if(!this.showAsMarker){this.hide();}}};trackdirect.models.Marker.prototype.showMarkerTail=function(){if(this.shouldMarkerBeVisible()){if(this.packet.hasConfirmedMapId()===false&&this._defaultMap.state.showGhostPosition){this.show();}
-if(this._defaultMap.markerCollection.hasPolyline(this.markerIdKey)&&this.packet.hasConfirmedMapId()){var polyline=this._defaultMap.markerCollection.getMarkerPolyline(this.markerIdKey);while(this._defaultMap.state.getClientTimestamp(polyline.getPathItem(0).marker.packet.timestamp)<this._defaultMap.state.getOldestAllowedPacketTimestamp()){var relatedMarker=polyline.getPathItem(0).marker;if(relatedMarker.getMap()===null){polyline.removePathItem(0);}else{break;}}
-polyline.show();}
-var dashedPolyline=this._defaultMap.markerCollection.getMarkerDashedPolyline(this.markerIdKey);if(dashedPolyline!==null&&this.packet.hasConfirmedMapId()){var dashedPolyLineRelatedMarker=this._defaultMap.markerCollection.getMarker(dashedPolyline.relatedMarkerIdKey);if(this._defaultMap.state.getClientTimestamp(dashedPolyLineRelatedMarker.packet.timestamp)>this._defaultMap.state.getOldestAllowedPacketTimestamp()){dashedPolyline.show();if(typeof dashedPolyline.relatedMarkerIdKey!=="undefined"){var relatedMarker=this._defaultMap.markerCollection.getMarker(dashedPolyline.relatedMarkerIdKey);if(relatedMarker!==null&&relatedMarker.markerIdKey!==this.markerIdKey){relatedMarker.showMarkerTail();}}}}
-if(this.directionPolyLine!==null){this.directionPolyLine.show();}}};trackdirect.models.Marker.prototype.hideMarkerTail=function(markerIdKey){var latestMarker=this._defaultMap.markerCollection.getStationLatestMarker(this.packet.station_id);if(this._defaultMap.state.isMarkerInfoWindowOpen(this)||this._defaultMap.state.isMarkerInfoWindowOpen(latestMarker)){return;}
-if(this.packet.map_id!=1&&this.packet.map_id!=2&&this.packet.map_id!=12){this.hide();if(this.showAsMarker){this.hideLabel();}}
-var polyline=this._defaultMap.markerCollection.getMarkerPolyline(this.markerIdKey);if(polyline!==null){if(this._defaultMap.state.isPolylineInfoWindowOpen(polyline)){this._defaultMap.state.openInfoWindow.hide();}
-polyline.hide();}
-var dashedPolyline=this._defaultMap.markerCollection.getMarkerDashedPolyline(this.markerIdKey);if(dashedPolyline!==null){dashedPolyline.hide();if(typeof dashedPolyline.relatedMarkerIdKey!=="undefined"){var relatedMarker=this._defaultMap.markerCollection.getMarker(dashedPolyline.relatedMarkerIdKey);if(relatedMarker!==null&&relatedMarker.markerIdKey!==this.markerIdKey){relatedMarker.hideMarkerTail();}}}
-if(this.directionPolyLine!==null){this.directionPolyLine.hide();}};trackdirect.models.Marker.prototype.hideRNGCircle=function(){if(this.rngCircle!==null){this.rngCircle.hide();}};trackdirect.models.Marker.prototype.showRNGCircle=function(isHalf){this.hideRNGCircle();this.rngCircle=new trackdirect.models.RngCircle(this.packet,this._defaultMap,isHalf);this.rngCircle.show();};trackdirect.models.Marker.prototype.hidePHGCircle=function(){if(this.phgCircle!==null){this.phgCircle.hide();}};trackdirect.models.Marker.prototype.showPHGCircle=function(isHalf){this.hidePHGCircle();this.phgCircle=new trackdirect.models.PhgCircle(this.packet,this._defaultMap,isHalf);this.phgCircle.show();};trackdirect.models.Marker.prototype.markToBeOverWritten=function(){this.overwrite=true;};trackdirect.models.Marker.prototype.isSingleMovingMarker=function(){var markerCounter=0;if(typeof this.packet.marker_counter!=="undefined"&&this.packet.marker_counter!==null){markerCounter=this.packet.marker_counter;}
-if(this.packet.position_timestamp==this.packet.timestamp&&this.packet.is_moving==1&&[1,2,7,12].indexOf(this.packet.map_id)>=0&&markerCounter<=1&&!this._defaultMap.markerCollection.hasDotMarkers(this.markerIdKey)){return true;}
-return false;};trackdirect.models.Marker.prototype.shouldMarkerBeVisible=function(){if(this.packet.map_id==14){return false;}
-if(this.packet.source_id==2&&!this._defaultMap.state.isCwopMarkersVisible){return false;}
-if(!this._defaultMap.state.isStationaryMarkersVisible){if(!this.isMovingStation()){return false;}}
-if(!this._defaultMap.state.isUnknownMarkersVisible){if(this.packet.station_name.substring(0,7)=="UNKNOWN"){return false;}}
-if(!this._defaultMap.state.isOgflymMarkersVisible){if(this.packet.raw_path.indexOf("OGFLYM")>=0){return false;}}
-if(!this._defaultMap.state.isInternetMarkersVisible){if(this.packet.raw_path.indexOf("TCPIP")>=0||this.packet.raw_path.indexOf("qAC")>=0||this.packet.raw_path.indexOf("qAX")>=0||this.packet.raw_path.indexOf("qAU")>=0||this.packet.raw_path.indexOf("qAS")>=0){if(this.packet.station_id_path.length==0){return false;}}}
-if(this._defaultMap.state.visibleSymbols.length>0){var symbolFound=false;for(var key in this._defaultMap.state.visibleSymbols){var visibleSymbol=this._defaultMap.state.visibleSymbols[key];if(this.packet.symbol.charCodeAt(0)==visibleSymbol[0]&&this.packet.symbol_table.charCodeAt(0)==visibleSymbol[1]){symbolFound=true;}}
-if(!symbolFound){return false;}}
-if(this.packet.map_id!=1&&this.packet.map_id!=2&&this.packet.map_id!=12&&!this._defaultMap.state.isGhostMarkersVisible){return false;}
-if(this._defaultMap.state.isFilterMode&&this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id)>-1){var latestStationMarker=this._defaultMap.markerCollection.getStationLatestMarker(this.packet.station_id);if(this._defaultMap.state.getClientTimestamp(this.packet.timestamp)<=this._defaultMap.state.getOldestAllowedPacketTimestamp()&&typeof latestStationMarker!=="undefined"&&latestStationMarker!==null&&!this._isMarkersEqual(latestStationMarker)){return false;}
-return true;}else{if(this._defaultMap.state.isFilterMode&&this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id)===-1){return false;}
-if(this.packet.map_id!=1&&this.packet.map_id!=2&&this.packet.map_id!=12&&this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkerTail){return false;}
-if(this._defaultMap.state.getClientTimestamp(this.packet.timestamp)<=this._defaultMap.state.getOldestAllowedPacketTimestamp()){return false;}
-if(this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkers){return false;}
-return true;}};trackdirect.models.Marker.prototype.isMovingStation=function(){if(this.packet.is_moving==0){return false;}
-if(this._defaultMap.state.getClientTimestamp(this.packet.position_timestamp)<this._defaultMap.state.getOldestAllowedPacketTimestamp()){var stationLatestMovingMarkerIdKey=this._defaultMap.markerCollection.getStationLatestMovingMarkerIdKey(this.packet.station_id);if(stationLatestMovingMarkerIdKey==this.markerIdKey){return false;}}
-return true;};trackdirect.models.Marker.prototype.stopDirectionPolyline=function(){if(this.directionPolyLine!==null){this.directionPolyLine.stop();}};trackdirect.models.Marker.prototype.stopToOldTimeout=function(){clearTimeout(this.toOldTimerId);var dotMarkers=this._defaultMap.markerCollection.getDotMarkers(this.markerIdKey);for(var j=0;j<dotMarkers.length;j++){clearTimeout(dotMarkers[j].toOldTimerId);}};trackdirect.models.Marker.prototype.getToolTipContent=function(){var iconUrl=trackdirect.services.symbolPathFinder.getFilePath(this.packet.symbol_table,this.packet.symbol,null,null,null,20,20);var date=new Date(this.packet.timestamp*1000);var positionDate=new Date(this.packet.position_timestamp*1000);var dateString=moment(date).format(trackdirect.settings.dateFormatNoTimeZone);if(this.packet.timestamp>this.packet.position_timestamp){dateString=moment(positionDate).format(trackdirect.settings.dateFormatNoTimeZone)+
-" - "+
-moment(date).format(trackdirect.settings.dateFormatNoTimeZone);}
-if(this.packet.getOgnRegistration()!=null){var name=escapeHtml(this.packet.station_name);name+=", ";name+=escapeHtml(this.packet.getOgnRegistration());if(this.packet.getOgnCN()!==null){name+=" ["+escapeHtml(this.packet.getOgnCN())+"]";}
-return('<div><img style="float: left; width:20px; height:20px;" src="'+
-iconUrl+
-'" />'+
-'<span style="font-weight: bold; font-family: Helvetica; font-size: 10px; line-height: 22px; margin-left: 5px; margin-right: 25px">'+
-name+
-"</span></div>"+
-'<div style="clear:both; font-family: Helvetica; font-size: 9px;">'+
-dateString+
-"</div>");}else if(this.packet.station_name==this.packet.sender_name){return('<div><img style="float: left; width:20px; height:20px;" src="'+
-iconUrl+
-'" />'+
-'<span style="font-weight: bold; font-family: Helvetica; font-size: 10px; line-height: 22px; margin-left: 5px; margin-right: 25px">'+
-escapeHtml(this.packet.station_name)+
-"</span></div>"+
-'<div style="clear:both; font-family: Helvetica; font-size: 9px;">'+
-dateString+
-"</div>");}else{return('<div><img style="float: left; width:20px; height:20px;" src="'+
-iconUrl+
-'" />'+
-'<span style="font-weight: bold; font-family: Helvetica; font-size: 10px; line-height: 22px; margin-left: 5px; margin-right: 25px">'+
-escapeHtml(this.packet.station_name)+
-"</span></div>"+
-'<div style="clear:both; font-family: Helvetica; font-size: 9px;">Sent by '+
-escapeHtml(this.packet.sender_name)+
-"</div>"+
-'<div style="clear:both; font-family: Helvetica; font-size: 9px;">'+
-dateString+
-"</div>");}};trackdirect.models.Marker.prototype._getGoogleMarkerOptions=function(){var anchorPoint=null;if(this._isDotMarker){var colorId=trackdirect.services.stationColorCalculator.getColorId(this.packet);var iconUrl=trackdirect.settings.baseUrl+
-trackdirect.settings.imagesBaseDir+
-"dotColor"+
-colorId+
-".png";var scaledImageSize=new google.maps.Size(12,12);var imageSize=new google.maps.Size(12,12);var imageAnchor=new google.maps.Point(6,6);var opacity=1.0;}else{var scalePx=24;var sizePx=24;if(this._shouldMarkerSymbolBeScaled()){scalePx=48;}
-if(this.packet.course!==null){sizePx=sizePx+7;if(scalePx<sizePx){scalePx=sizePx;}}
-var imageSize=new google.maps.Size(scalePx,scalePx);var imageAnchor=new google.maps.Point(Math.floor(scalePx/2),Math.floor(scalePx/2));var scaledImageSize=new google.maps.Size(scalePx,scalePx);var iconUrl=trackdirect.services.symbolPathFinder.getFilePath(this.packet.symbol_table,this.packet.symbol,this.packet.course,sizePx,sizePx,scalePx,scalePx);if(isHighDensity()){imageSize=new google.maps.Size(scalePx*2,scalePx*2);anchorPoint=new google.maps.Point(0,-Math.floor(scalePx/2));iconUrl=trackdirect.services.symbolPathFinder.getFilePath(this.packet.symbol_table,this.packet.symbol,this.packet.course,sizePx,sizePx,scalePx*2,scalePx*2);}
-var opacity=1.0;}
-return{position:this.packet.getLatLngLiteral(),zIndex:this._defaultMap.state.currentMarkerZindex,icon:{url:iconUrl,size:imageSize,scaledSize:scaledImageSize,origin:new google.maps.Point(0,0),anchor:imageAnchor,},opacity:opacity,anchorPoint:anchorPoint,};};trackdirect.models.Marker.prototype._getLeafletMarkerOptions=function(){if(this._isDotMarker){var colorId=trackdirect.services.stationColorCalculator.getColorId(this.packet);var iconUrl=trackdirect.settings.baseUrl+
-trackdirect.settings.imagesBaseDir+
-"dotColor"+
-colorId+
-".png";var icon=L.icon({iconUrl:iconUrl,iconSize:[12,12],iconAnchor:[6,6],});var opacity=0.8;}else{var scalePx=24;var sizePx=24;if(this._shouldMarkerSymbolBeScaled()){scalePx=48;}
-if(this.packet.course!==null){sizePx=sizePx+7;if(scalePx<sizePx){scalePx=sizePx;}}
-var iconUrl=trackdirect.services.symbolPathFinder.getFilePath(this.packet.symbol_table,this.packet.symbol,this.packet.course,sizePx,sizePx,scalePx,scalePx);var iconRetinaUrl=trackdirect.services.symbolPathFinder.getFilePath(this.packet.symbol_table,this.packet.symbol,this.packet.course,sizePx,sizePx,scalePx*2,scalePx*2);var icon=L.icon({iconUrl:iconUrl,iconRetinaUrl:iconRetinaUrl,iconSize:[scalePx,scalePx],iconAnchor:[Math.floor(scalePx/2),Math.floor(scalePx/2)],});var opacity=1.0;}
-var tooltipTitle="";if(typeof L.tooltip=="undefined"){tooltipTitle=this.packet.station_name;}
-return{zIndexOffset:this._defaultMap.state.currentMarkerZindex,icon:icon,opacity:opacity,title:tooltipTitle,};};trackdirect.models.Marker.prototype._shouldMarkerSymbolBeScaled=function(){if(typeof trackdirect.settings.symbolsToScale==="undefined"){return false;}
-for(var i=0;i<trackdirect.settings.symbolsToScale.length;i++){var symbol=trackdirect.settings.symbolsToScale[i][0];var symbolTable=trackdirect.settings.symbolsToScale[i][1];if(symbolTable==null&&this.packet.symbol.charCodeAt()==symbol){return true;}else if(this.packet.symbol.charCodeAt()==symbol&&this.packet.symbol_table.charCodeAt()==symbolTable){return true;}}
-return false;};trackdirect.models.Marker.prototype._hideLater=function(delayInMilliSeconds,onlyHideIfNeeded){var me=this;this.hideTimerId=window.setTimeout(function(){if(me._defaultMap.state.isMarkerInfoWindowOpen(me)){me.hide(500);}else{if(!me.shouldMarkerBeVisible()){me.hide(0,onlyHideIfNeeded);}}},delayInMilliSeconds);};trackdirect.models.Marker.prototype._addMarkerTooltip=function(){if(typeof google==="object"&&typeof google.maps==="object"){this._addMarkerGoogleMapTooltip();}else if(typeof L==="object"){this._addMarkerLeafletMapTooltip();}};trackdirect.models.Marker.prototype._addMarkerLeafletMapTooltip=function(){if(!trackdirect.isMobile){if(typeof L.tooltip!="undefined"){var tooltip=L.tooltip({direction:"right",noWrap:true,offset:[6,30],className:"leaflet-marker-tooltiptext",});}
-var me=this;var isMyTooltipVisible=false;this.on("mouseover",function(e){if(typeof tooltip!=="undefined"){tooltip.setContent(me.getToolTipContent());tooltip.setLatLng(new L.LatLng(me.packet.latitude,me.packet.longitude));tooltip.addTo(me._defaultMap);isMyTooltipVisible=true;}
-if(me.transmitPolyLine==null){me.transmitPolyLine=new trackdirect.models.TransmitPolyline(me.packet,me._defaultMap);}
-me.transmitPolyLine.show();});this.on("mouseout",function(e){if(me.transmitPolyLine!=null&&me.transmitPolyLine.isVisible()){me.transmitPolyLine.hide(2000);}
-if(typeof tooltip!=="undefined"&&isMyTooltipVisible&&me._defaultMap.hasLayer(tooltip)){tooltip.remove();isMyTooltipVisible=false;}});this.on("remove",function(e){if(me.transmitPolyLine!=null&&me.transmitPolyLine.isVisible()){me.transmitPolyLine.hide(0);}
-if(typeof tooltip!=="undefined"&&isMyTooltipVisible&&me._defaultMap.hasLayer(tooltip)){tooltip.remove();isMyTooltipVisible=false;}});}};trackdirect.models.Marker.prototype._addMarkerGoogleMapTooltip=function(){if(!trackdirect.isMobile){if(!$("#marker-tooltip").length){var tooltip=$(document.createElement("div"));tooltip.attr("id","marker-tooltip");tooltip.css("display","none");tooltip.css("position","absolute");tooltip.css("margin","15px");tooltip.css("z-index","90");tooltip.css("padding","3px");tooltip.css("opacity","0.95");tooltip.css("filter","alpha(opacity=95)");tooltip.css("-webkit-border-radius","1px");tooltip.css("-moz-border-radius","1px");tooltip.css("border-radius","1px");tooltip.css("-webkit-box-shadow","0px 0px 3px 0px rgba(0,0,0,0.3)");tooltip.css("-moz-box-shadow","0px 0px 3px 0px rgba(0,0,0,0.3)");tooltip.css("box-shadow","0px 0px 3px 0px rgba(0,0,0,0.3)");tooltip.css("background-color","#fff");tooltip.css("background","#ffffff");$("body").append(tooltip);}
-var me=this;var isMyTooltipVisible=false;google.maps.event.addListener(this,"mouseover",function(){var point=this._fromGoogleLatLngToPoint(me.getPosition());var mapElementId=this._defaultMap.getMapElementId();$("#marker-tooltip").html(me.getToolTipContent()).css({left:point.x+$("#"+mapElementId).offset().left,top:point.y+$("#"+mapElementId).offset().top,}).show();isMyTooltipVisible=true;if(me.transmitPolyLine==null){me.transmitPolyLine=new trackdirect.models.TransmitPolyline(me.packet,me._defaultMap);}
-me.transmitPolyLine.show();});google.maps.event.addListener(this,"mouseout",function(){if(me.transmitPolyLine!=null&&me.transmitPolyLine.isVisible()){me.transmitPolyLine.hide(2000);}
-if(isMyTooltipVisible){$("#marker-tooltip").hide();isMyTooltipVisible=false;}});this.addTdListener("onhide",function(){if(me.transmitPolyLine!=null&&me.transmitPolyLine.isVisible()){me.transmitPolyLine.hide(0);}
-if(isMyTooltipVisible){$("#marker-tooltip").hide();isMyTooltipVisible=false;}});}};trackdirect.models.Marker.prototype._fromGoogleLatLngToPoint=function(latLng){var topRight=this._defaultMap.getProjection().fromLatLngToPoint(this._defaultMap.getBounds().getNorthEast());var bottomLeft=this._defaultMap.getProjection().fromLatLngToPoint(this._defaultMap.getBounds().getSouthWest());var scale=Math.pow(2,this._defaultMap.getZoom());var worldPoint=this._defaultMap.getProjection().fromLatLngToPoint(latLng);return new google.maps.Point((worldPoint.x-bottomLeft.x)*scale,(worldPoint.y-topRight.y)*scale);};trackdirect.models.Marker.prototype._isMarkersEqual=function(marker2){var marker1=this;if(typeof marker2!=="undefined"&&marker2!==null&&typeof marker1.packet!=="undefined"&&typeof marker2.packet!=="undefined"&&marker1.packet.station_id===marker2.packet.station_id&&marker1.packet.timestamp===marker2.packet.timestamp&&Math.round(marker1.packet.latitude*100000)===Math.round(marker2.packet.latitude*100000)&&Math.round(marker1.packet.longitude*100000)===Math.round(marker2.packet.longitude*100000)&&marker1.packet.map_id===marker2.packet.map_id){return true;}else{return false;}};(trackdirect.models.Marker.prototype._addMarkerToOldTimeout=function(altDelayMilliSeconds){var markerCollection=this._defaultMap.markerCollection;var state=this._defaultMap.state;var delay=(this._defaultMap.state.getClientTimestamp(this.packet.timestamp)-
-state.getOldestAllowedPacketTimestamp())*1000;if(altDelayMilliSeconds!==0){delay=altDelayMilliSeconds;}
-if(delay<0){delay=10;}
-if(typeof this.toOldTimerId!=="undefined"&&this.toOldTimerId!==null){clearTimeout(this.toOldTimerId);}
-var me=this;this.toOldTimerId=window.setTimeout(function(){if(me._defaultMap.state.isMarkerInfoWindowOpen(me)){me._addMarkerToOldTimeout(500);}else{var latestStationMarker=markerCollection.getStationLatestMarker(me.packet.station_id);var latestMarker=markerCollection.getMarker(me.markerIdKey);if(!me._isMarkersEqual(latestStationMarker)||state.filterStationIds.indexOf(me.packet.station_id)==-1){if(latestMarker===me){var callback=function(){me.hideCompleteMarker();markerCollection.resetMarkerPolyline(me.markerIdKey);markerCollection.resetDotMarkers(me.markerIdKey);};trackdirect.services.callbackExecutor.add(me,callback,[]);}else if(markerCollection.hasDotMarkers(me.markerIdKey)){var index=markerCollection.getDotMarkerIndex(me.markerIdKey,me);if(index==0){var callback=function(){if(markerCollection.hasDotMarkers(me.markerIdKey)){var success=markerCollection.removeOldestDotMarker(me.markerIdKey);if(!success){me._addMarkerToOldTimeout(500);}}};trackdirect.services.callbackExecutor.add(me,callback,[]);}else if(index>0){var dotMarkers=markerCollection.getDotMarkers(me.markerIdKey);dotMarkers[0]._addMarkerToOldTimeout(0);me._addMarkerToOldTimeout(100);}}}else{me._addMarkerToOldTimeout(1000);}}},delay);}),(trackdirect.models.Marker.prototype._emitTdEventListeners=function(event,arg){if(event in this._tdEventListeners){for(var i=0;i<this._tdEventListeners[event].length;i++){this._tdEventListeners[event][i](arg);}}});
-trackdirect.models.MapState=function(){this._init();};trackdirect.models.MapState.prototype._init=function(){this.isFilterMode=false;this.filterStationIds=[];this.isGhostMarkersVisible=false;this.isCwopMarkersVisible=true;this.isStationaryMarkersVisible=true;this.isInternetMarkersVisible=true;this.isUnknownMarkersVisible=true;this.isOgflymMarkersVisible=true;this.visibleSymbols=[];this.useImperialUnit=false;this.showPHGCircles=0;this.showRNGCircles=0;this.trackStationId=null;this.onlyTrackRecentPackets=false;this.timeLengthInSeconds=3600;this.endTimeTravelTimestamp=null;this.currentMarkerZindex=200;this.serverClientTimestampDiff=0;this.openInfoWindow=null;this.openInfoWindowForMarkerIdKey=null;};trackdirect.models.MapState.prototype.getOldestAllowedPacketTimestamp=function(){var oldestAllowedTimestamp=Math.floor(Date.now()/1000)-this.timeLengthInSeconds;if(this.endTimeTravelTimestamp!==null){oldestAllowedTimestamp=this.endTimeTravelTimestamp-this.timeLengthInSeconds;}
-return oldestAllowedTimestamp;};trackdirect.models.MapState.prototype.setTimeLength=function(seconds){this.timeLengthInSeconds=seconds;};trackdirect.models.MapState.prototype.getTimeLength=function(){return this.timeLengthInSeconds;};trackdirect.models.MapState.prototype.getClientTimestamp=function(serverTimestamp){return serverTimestamp-this.serverClientTimestampDiff;};trackdirect.models.MapState.prototype.setServerCurrentTimestamp=function(serverTimestamp){this.serverClientTimestampDiff=serverTimestamp-Math.floor(Date.now()/1000);};trackdirect.models.MapState.prototype.isInfoWindowOpen=function(){if(this.openInfoWindow===null){return false;}
-return this.openInfoWindow.isInfoWindowOpen();};trackdirect.models.MapState.prototype.isMarkerInfoWindowOpen=function(marker){if(!this.isInfoWindowOpen()){return false;}
-if(this.openInfoWindow.getPolyline()!==null){return false;}
-if(this.openInfoWindow.getMarker()===marker){return true;}
-return false;};trackdirect.models.MapState.prototype.isPolylineInfoWindowOpen=function(polyline){if(!this.isInfoWindowOpen()){return false;}
-if(this.openInfoWindow.getPolyline()===null){return false;}
-if(this.openInfoWindow.getPolyline()===polyline){return true;}
-return false;};trackdirect.models.MapState.prototype.getFilterStationIds=function(){return this.filterStationIds;};trackdirect.models.MapState.prototype.getTrackStationId=function(){return this.trackStationId;};
-trackdirect.models.Map=function(mapElementId,options){this._init(mapElementId,options);if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Map.call(this,document.getElementById(mapElementId),this._getGoolgeMapOptions());}else if(typeof L==="object"){L.Map.call(this,document.getElementById(mapElementId),this._getLeafletMapOptions());this._updateLeafletTileLayer();L.control.zoom({position:"bottomright",}).addTo(this);}
-this._initMap();};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.Map.prototype=Object.create(google.maps.Map.prototype);}else if(typeof L==="object"){trackdirect.models.Map.prototype=Object.create(L.Map.prototype);}
-trackdirect.models.Map.prototype.constructor=trackdirect.models.Map;trackdirect.models.Map.prototype._init=function(mapElementId,options){this._mapElementId=mapElementId;this._tdMapOptions=options;this._initBasic();this._initMapTypes();};trackdirect.models.Map.prototype._initBasic=function(){this._tdEventListeners={};this._tdEventTimeout=null;this._currentContentZoom=null;this._visibleMapSectors=[];this._newMarkersToShow=[];this._leafletTileLayer=null;this._heatMap=null;this.markerCollection=new trackdirect.models.MarkerCollection();this.state=new trackdirect.models.MapState();};trackdirect.models.Map.prototype._initMapTypes=function(){this._supportedMapTypes={};if(typeof this._tdMapOptions.supportedMapTypes!=="undefined"&&this._tdMapOptions.supportedMapTypes!==null&&Object.keys(this._tdMapOptions.supportedMapTypes).length>0){this._supportedMapTypes=this._tdMapOptions.supportedMapTypes;}else if(typeof google==="object"&&typeof google.maps==="object"){this._supportedMapTypes["roadmap"]=google.maps.MapTypeId.ROADMAP;this._supportedMapTypes["terrain"]=google.maps.MapTypeId.TERRAIN;this._supportedMapTypes["satellite"]=google.maps.MapTypeId.SATELLITE;this._supportedMapTypes["hybrid"]=google.maps.MapTypeId.HYBRID;}else if(typeof L==="object"){this._supportedMapTypes["roadmap"]="OpenStreetMap.Mapnik";this._supportedMapTypes["terrain"]="OpenTopoMap";}
-if(typeof this._tdMapOptions.maptype!=="undefined"&&this._tdMapOptions.maptype!==null&&this._tdMapOptions.maptype in this._supportedMapTypes){this._mapType=this._tdMapOptions.maptype;}else{this._mapType=Object.keys(this._supportedMapTypes)[0];}};trackdirect.models.Map.prototype._initMap=function(){this._heatMap=new trackdirect.models.HeatMap(this);this._setMapInitialLocation();this._initOms();this._initInfoWindowEvent();this._updateMapContent();this._initMapEvents();if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this._tdMapOptions.mid!=="undefined"){var kmlUrl="https://www.google.com/maps/d/u/0/kml?mid="+this._tdMapOptions.mid;var kmlLayer=new google.maps.KmlLayer(kmlUrl,{map:this});}}};trackdirect.models.Map.prototype.triggerResize=function(){if(typeof google==="object"&&typeof google.maps==="object"){google.maps.event.trigger(this,"resize");}else if(typeof L==="object"){L.Map.prototype._onResize.call(this);}};trackdirect.models.Map.prototype.setCenter=function(pos,zoom){if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Map.prototype.setCenter.call(this,pos);if(typeof zoom!=="undefined"){google.maps.Map.prototype.setZoom.call(this,zoom);}}else if(typeof L==="object"){zoom=typeof zoom!=="undefined"?zoom:this.getZoom();L.Map.prototype.setView.call(this,pos,zoom);}
-this._renderCordinatesContainer(pos);};trackdirect.models.Map.prototype.getCenterLiteral=function(){if(typeof google==="object"&&typeof google.maps==="object"){var latLng=google.maps.Map.prototype.getCenter.call(this);if(typeof latLng!=="undefined"&&typeof latLng.lat==="function"){return{lat:latLng.lat(),lng:latLng.lng()};}else{return latLng;}}else if(typeof L==="object"){var latLng=L.Map.prototype.getCenter.call(this);if(typeof latLng!=="undefined"){return{lat:latLng.lat,lng:latLng.lng};}else{return latLng;}}
-return null;};trackdirect.models.Map.prototype.fitBounds=function(bounds){if(typeof google==="object"&&typeof google.maps==="object"){var latLngBounds=new google.maps.LatLngBounds();for(var i=0;i<bounds.length;i++){latLngBounds.extend(bounds[i]);}
-google.maps.Map.prototype.fitBounds.call(this,latLngBounds);}else if(typeof L==="object"){L.Map.prototype.fitBounds.call(this,bounds);}};trackdirect.models.Map.prototype.setCenterByStationId=function(stationId){var latestVisibleMarker=this.markerCollection.getStationLatestVisibleMarker(stationId);if(latestVisibleMarker!==null){this.setCenter(latestVisibleMarker.packet.getLatLngLiteral());}};trackdirect.models.Map.prototype.getMapElementId=function(){return this._mapElementId;};trackdirect.models.Map.prototype.getTdMapOptions=function(){return this._tdMapOptions;};trackdirect.models.Map.prototype.isMapSectorVisible=function(mapSector){if(this._visibleMapSectors.indexOf(mapSector)>=0||this.state.isFilterMode){return true;}
-return false;};trackdirect.models.Map.prototype.getNumberOfNewMarkersToShow=function(){return this._newMarkersToShow;};trackdirect.models.Map.prototype.showNewMarkersInQueue=function(track){track=typeof track!=="undefined"?track:true;var oldestAllowedTrackingTimestamp=0;if(this.state.onlyTrackRecentPackets){oldestAllowedTrackingTimestamp=Math.floor(Date.now()/1000)-60;}
-while((markerIdKey=this._newMarkersToShow.pop())!=null){if(!this.markerCollection.isExistingMarker(markerIdKey)){continue;}
-var marker=this.markerCollection.getMarker(markerIdKey);trackdirect.services.callbackExecutor.addWithPriority(marker,marker.showCompleteMarker,[]);if(track&&marker.packet.packet_order_id==1){if(marker.shouldMarkerBeVisible()&&marker.showAsMarker&&this.state.trackStationId!==null&&this.state.trackStationId==marker.packet.station_id&&this.state.getClientTimestamp(marker.packet.timestamp)>oldestAllowedTrackingTimestamp){trackdirect.services.callbackExecutor.addWithPriority(this,this.setCenterByStationId,[marker.packet.station_id]);}}
-if(this.state.openInfoWindowForMarkerIdKey!==null&&this.state.openInfoWindowForMarkerIdKey==markerIdKey&&marker.packet.packet_order_id==1&&marker.shouldMarkerBeVisible()&&marker.showAsMarker){trackdirect.services.callbackExecutor.addWithPriority(this,this.openLatestStationInfoWindow,[marker.packet.station_id]);}}
-this.state.openInfoWindowForMarkerIdKey=null;};trackdirect.models.Map.prototype.activateFilteredMode=function(){this.state.isFilterMode=true;this._deactivateHeatMap();this._updateMapContent();};trackdirect.models.Map.prototype.deactivateFilteredMode=function(){if(this.state.isFilterMode){this._activateHeatMap();this.state.isFilterMode=false;this.state.filterStationIds=[];this._updateMapContent();}};trackdirect.models.Map.prototype.getNorthEastLat=function(){if(this.getBounds()!=null){if(typeof google==="object"&&typeof google.maps==="object"){return this.getBounds().getNorthEast().lat();}else if(typeof L==="object"){return this.getBounds().getNorthEast().lat;}}
-return 0;};trackdirect.models.Map.prototype.getNorthEastLng=function(){if(this.getBounds()!=null){if(typeof google==="object"&&typeof google.maps==="object"){return this.getBounds().getNorthEast().lng();}else if(typeof L==="object"){return this.getBounds().getNorthEast().lng;}}
-return 0;};trackdirect.models.Map.prototype.getSouthWestLat=function(){if(this.getBounds()!=null){if(typeof google==="object"&&typeof google.maps==="object"){return this.getBounds().getSouthWest().lat();}else if(typeof L==="object"){return this.getBounds().getSouthWest().lat;}}
-return 0;};trackdirect.models.Map.prototype.getSouthWestLng=function(){if(this.getBounds()!=null){if(typeof google==="object"&&typeof google.maps==="object"){return this.getBounds().getSouthWest().lng();}else if(typeof L==="object"){return this.getBounds().getSouthWest().lng;}}
-return 0;};trackdirect.models.Map.prototype.isMapReady=function(){if(this.getBounds()!=null){return true;}
-return false;};trackdirect.models.Map.prototype.setMapType=function(mapType){if(mapType in this._supportedMapTypes){this._mapType=mapType;if(typeof google==="object"&&typeof google.maps==="object"){this._updateGoogleMapTileLayer();}else if(typeof L==="object"){this._updateLeafletTileLayer();}
-this._emitTdEventListeners("change");}};trackdirect.models.Map.prototype.getMapType=function(){return this._mapType;};trackdirect.models.Map.prototype.getLeafletTileLayer=function(){return this._leafletTileLayer;};trackdirect.models.Map.prototype.getMid=function(){if(typeof this._tdMapOptions.mid!=="undefined"){return this._tdMapOptions.mid;}
-return null;};trackdirect.models.Map.prototype.resetAllMarkers=function(){while(this.markerCollection.getNumberOfMarkers()>0){var i=this.markerCollection.getNumberOfMarkers();while(i--){var marker=this.markerCollection.getMarker(i);if(marker!==null){marker.stopToOldTimeout();marker.stopDirectionPolyline();marker.hide();marker.hideMarkerPrevPosition();marker.hideMarkerTail();var stationCoverage=this.markerCollection.getStationCoverage(marker.packet.station_id);if(stationCoverage){stationCoverage.hide();}}
-this.markerCollection.removeMarker(i);}}
-if(this.state.openInfoWindow!==null){this.state.openInfoWindow.hide();}
-if(this.oms){this.oms.clearMarkers();}
-this.markerCollection.resetAllMarkers();};trackdirect.models.Map.prototype.openMarkerInfoWindow=function(marker,disableAutoPan){disableAutoPan=typeof disableAutoPan!=="undefined"?disableAutoPan:true;if(marker.getMap()!==null){if(this.state.openInfoWindow!==null&&this.state.openInfoWindow.getMarker().packet.id!=marker.packet.id){this.state.openInfoWindow.hide();}
-if(this.state.openInfoWindow!==null&&this.state.openInfoWindow.getMarker().packet.id==marker.packet.id){this.state.openInfoWindow.setMarker(marker);}else{this.state.openInfoWindow=new trackdirect.models.InfoWindow(marker,this,disableAutoPan);}
-this._addInfoWindowListeners(this.state.openInfoWindow);this.state.openInfoWindow.show();}};trackdirect.models.Map.prototype.openLatestStationInfoWindow=function(stationId){var latestVisibleMarker=this.markerCollection.getStationLatestVisibleMarker(stationId);if(latestVisibleMarker!==null){this.openMarkerInfoWindow(latestVisibleMarker);}};trackdirect.models.Map.prototype.openPolylineInfoWindow=function(marker,position){if(this.state.openInfoWindow!==null){this.state.openInfoWindow.hide();}
-this.state.openInfoWindow=new trackdirect.models.InfoWindow(marker,this);this._addInfoWindowListeners(this.state.openInfoWindow);this.state.openInfoWindow.show(true,position);};trackdirect.models.Map.prototype._addInfoWindowListeners=function(infoWindow){var me=this;infoWindow.addTdListener("station-tail-needed",function(stationId){me._emitTdEventListeners("station-tail-needed",stationId);});};(trackdirect.models.Map.prototype.addTdListener=function(event,handler){if(!(event in this._tdEventListeners)){this._tdEventListeners[event]=[];}
-this._tdEventListeners[event].push(handler);}),(trackdirect.models.Map.prototype._emitTdEventListeners=function(event,arg){if(event in this._tdEventListeners){for(var i=0;i<this._tdEventListeners[event].length;i++){this._tdEventListeners[event][i](arg);}}});(trackdirect.models.Map.prototype._triggerMapChangeEvent=function(){if(this._tdEventTimeout!=null){clearTimeout(this._tdEventTimeout);}
-var me=this;this._tdEventTimeout=window.setTimeout(function(){me._emitTdEventListeners("change");me._tdEventTimeout=null;},5);}),(trackdirect.models.Map.prototype._deactivateHeatMap=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.overlayMapTypes!=="undefined"&&this.overlayMapTypes.length>0){this.overlayMapTypes.clear();}}else if(typeof L==="object"){if(this._heatMap!==null){this.removeLayer(this._heatMap);}}});trackdirect.models.Map.prototype._activateHeatMap=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.overlayMapTypes!=="undefined"&&this.overlayMapTypes.length==0){this.overlayMapTypes.setAt(0,this._heatMap);}}else if(typeof L==="object"){if(this._heatMap!==null){this._heatMap.addTo(this);this._heatMap.bringToFront();this._heatMap.setZIndex(1000);}}};trackdirect.models.Map.prototype._updateGoogleMapTileLayer=function(){this.setMapTypeId(this._supportedMapTypes[this._mapType]);};trackdirect.models.Map.prototype._updateLeafletTileLayer=function(){if(typeof windyInit!=="function"){if(this._leafletTileLayer!==null){this._leafletTileLayer.remove();}
-if(typeof L.mapboxGL==="function"){var attribution="";var accessToken="no-token";var style="";if("mapboxGLStyle"in this._tdMapOptions){style=this._tdMapOptions["mapboxGLStyle"];}
-if("mapboxGLAccessToken"in this._tdMapOptions){accessToken=this._tdMapOptions["mapboxGLAccessToken"];}
-if("mapboxGLAttribution"in this._tdMapOptions){attribution=this._tdMapOptions["mapboxGLAttribution"];}
-this._leafletTileLayer=L.mapboxGL({accessToken:accessToken,style:style,});this.addLayer(this._leafletTileLayer);this.attributionControl.addAttribution(attribution);}else{var options={};if(isHighDensity()){options["ppi"]="320";options["size"]="512";}else if(trackdirect.isMobile){options["ppi"]="250";}
-this._leafletTileLayer=L.tileLayer.provider(this._supportedMapTypes[this._mapType],options);this.addLayer(this._leafletTileLayer);this._leafletTileLayer.bringToBack();}}};trackdirect.models.Map.prototype._updateMapContent=function(){if(this.getBounds()!=null){var previousVisibleMapSectors=[];for(var i=0;i<this._visibleMapSectors.length;i++){previousVisibleMapSectors.push(this._visibleMapSectors[i]);}
-this._visibleMapSectors=trackdirect.services.MapSectorCalculator.getMapSectors(this.getBounds());this._triggerMapChangeEvent();if(!this.state.isFilterMode){if(this.getZoom()<trackdirect.settings.minZoomForMarkers){this.hideAllMarkers();this._activateHeatMap();}else{this._deactivateHeatMap();this._hideMarkersInPreviousVisibleMapSectors(previousVisibleMapSectors);this._showMarkersInNewVisibleMapSectors(previousVisibleMapSectors);if(this._isAnyMarkerDetailsVisible()){this._showVisibleMarkerDetails();}
-if(this._isAnyMarkerDetailsHidden()){this._hideVisibleMarkerDetails();}}}}
-this._currentContentZoom=this.getZoom();};trackdirect.models.Map.prototype._isAnyMarkerDetailsVisible=function(){var showPrevPosition=this.getZoom()>=trackdirect.settings.minZoomForMarkerPrevPosition&&this._currentContentZoom<trackdirect.settings.minZoomForMarkerPrevPosition;var showMarkerTail=this.getZoom()>=trackdirect.settings.minZoomForMarkerTail&&this._currentContentZoom<trackdirect.settings.minZoomForMarkerTail;var showMarkerLabel=this.getZoom()>=trackdirect.settings.minZoomForMarkerLabel&&this._currentContentZoom<trackdirect.settings.minZoomForMarkerLabel;if(showPrevPosition||showMarkerTail||showMarkerLabel){return true;}
-return false;};trackdirect.models.Map.prototype._isAnyMarkerDetailsHidden=function(){var hidePrevPosition=this.getZoom()<trackdirect.settings.minZoomForMarkerPrevPosition&&this._currentContentZoom>=trackdirect.settings.minZoomForMarkerPrevPosition;var hideMarkerTail=this.getZoom()<trackdirect.settings.minZoomForMarkerTail&&this._currentContentZoom>=trackdirect.settings.minZoomForMarkerTail;var hideMarkerLabel=this.getZoom()<trackdirect.settings.minZoomForMarkerLabel&&this._currentContentZoom>=trackdirect.settings.minZoomForMarkerLabel;if(hidePrevPosition||hideMarkerTail||hideMarkerLabel){return true;}
-return false;};trackdirect.models.Map.prototype._showVisibleMarkerDetails=function(){for(var i=0;i<this._visibleMapSectors.length;i++){var mapSector=this._visibleMapSectors[i];var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];var marker=this.markerCollection.getMarker(markerIdKey);if(marker===null){continue;}
-trackdirect.services.callbackExecutor.addWithPriority(marker,marker.showMarkerDetails,[]);}}};trackdirect.models.Map.prototype._hideVisibleMarkerDetails=function(){for(var i=0;i<this._visibleMapSectors.length;i++){var mapSector=this._visibleMapSectors[i];var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];var marker=this.markerCollection.getMarker(markerIdKey);if(marker===null){continue;}
-trackdirect.services.callbackExecutor.addWithPriority(marker,marker.hideMarkerDetails,[]);}}};trackdirect.models.Map.prototype.showHideMarkers=function(){if(this.oms){this.oms.unspiderfy();}
-if(this.state.isFilterMode){for(var markerIdKey in this.markerCollection.getAllMarkers()){if(this.markerCollection.isExistingMarker(markerIdKey)){var marker=this.markerCollection.getMarker(markerIdKey);if(marker){if(marker.shouldMarkerBeVisible()){marker.showCompleteMarker();}else{marker.hideCompleteMarker();}}
-if(marker.packet){this.showTopLabelOnPosition(marker.packet.latitude,marker.packet.longitude);}}}}else{for(var i=0;i<this._visibleMapSectors.length;i++){var mapSector=this._visibleMapSectors[i];var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];if(this.markerCollection.isExistingMarker(markerIdKey)){var marker=this.markerCollection.getMarker(markerIdKey);if(marker.shouldMarkerBeVisible()){marker.showCompleteMarker();}else{marker.hideCompleteMarker();}
-this.showTopLabelOnPosition(marker.packet.latitude,marker.packet.longitude);}}}}};trackdirect.models.Map.prototype.showHidePHGCircles=function(){if(this.getZoom()>=trackdirect.settings.minZoomForMarkers){if(this.state.isFilterMode){for(var markerIdKey in this.markerCollection.getAllMarkers()){if(this.markerCollection.isExistingMarker(markerIdKey)){var marker=this.markerCollection.getMarker(markerIdKey);if(marker.showAsMarker&&marker.packet.phg!=null&&marker.getMap()!==null&&marker.shouldMarkerBeVisible()){if(this.state.showPHGCircles==0){marker.hidePHGCircle();}else if(this.state.showPHGCircles==1){marker.showPHGCircle(true);}else if(this.state.showPHGCircles==2){marker.showPHGCircle(false);}}}}}else{for(var i=0;i<this._visibleMapSectors.length;i++){var mapSector=this._visibleMapSectors[i];var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];if(this.markerCollection.isExistingMarker(markerIdKey)){var marker=this.markerCollection.getMarker(markerIdKey);if(marker.showAsMarker&&marker.packet.phg!=null&&marker.getMap()!==null&&marker.shouldMarkerBeVisible()){if(this.state.showPHGCircles==0){marker.hidePHGCircle();}else if(this.state.showPHGCircles==1){marker.showPHGCircle(true);}else if(this.state.showPHGCircles==2){marker.showPHGCircle(false);}}}}}}}};trackdirect.models.Map.prototype.showHideRNGCircles=function(){if(this.getZoom()>=trackdirect.settings.minZoomForMarkers){if(this.state.isFilterMode){for(var markerIdKey in this.markerCollection.getAllMarkers()){if(this.markerCollection.isExistingMarker(markerIdKey)){var marker=this.markerCollection.getMarker(markerIdKey);if(marker.showAsMarker&&marker.packet.rng!=null&&marker.getMap()!==null&&marker.shouldMarkerBeVisible()){if(this.state.showRNGCircles==0){marker.hideRNGCircle();}else if(this.state.showRNGCircles==1){marker.showRNGCircle(true);}else if(this.state.showRNGCircles==2){marker.showRNGCircle(false);}}}}}else{for(var i=0;i<this._visibleMapSectors.length;i++){var mapSector=this._visibleMapSectors[i];var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];if(this.markerCollection.isExistingMarker(markerIdKey)){var marker=this.markerCollection.getMarker(markerIdKey);if(marker.showAsMarker&&marker.packet.rng!=null&&marker.getMap()!==null&&marker.shouldMarkerBeVisible()){if(this.state.showRNGCircles==0){marker.hideRNGCircle();}else if(this.state.showRNGCircles==1){marker.showRNGCircle(true);}else if(this.state.showRNGCircles==2){marker.showRNGCircle(false);}}}}}}}};trackdirect.models.Map.prototype.hideAllMarkers=function(){for(var markerIdKey in this.markerCollection.getAllMarkers()){var marker=this.markerCollection.getMarker(markerIdKey);if(marker!==null){marker.hideCompleteMarker();}}};trackdirect.models.Map.prototype.showTopLabelOnPosition=function(latitude,longitude){var topMarkerIdKey=-1;var topMarkerZindex=0;if(Object.keys(this.markerCollection.getPositionMarkerIdKeys(latitude,longitude)).length>1){for(var markerIdKey in this.markerCollection.getPositionMarkerIdKeys(latitude,longitude)){var marker=this.markerCollection.getMarker(markerIdKey);if(marker!==null&&marker.shouldMarkerBeVisible()){if(marker.getZIndex()>topMarkerZindex){topMarkerZindex=marker.getZIndex();topMarkerIdKey=markerIdKey;}
-marker.hideLabel();marker.hasLabel=false;}}
-if(topMarkerIdKey!=-1){var topMarker=this.markerCollection.getMarker(topMarkerIdKey);topMarker.hasLabel=true;var topMarkerMapSector=trackdirect.services.MapSectorCalculator.getMapSector(topMarker.getPositionLiteral().lat,topMarker.getPositionLiteral().lng);if(this.state.isFilterMode){topMarker.showLabel();}else if(this.isMapSectorVisible(topMarkerMapSector)&&this.getZoom()>=trackdirect.settings.minZoomForMarkerLabel){topMarker.showLabel();}}}};trackdirect.models.Map.prototype._hideMarkersInPreviousVisibleMapSectors=function(previousVisibleMapSectors){if(this._currentContentZoom>=trackdirect.settings.minZoomForMarkers){var markerIdKeyListToMaybeHide={};var markerIdKeyListNotToHide={};for(var i=0;i<previousVisibleMapSectors.length;i++){var mapSector=previousVisibleMapSectors[i];if(!this.isMapSectorVisible(mapSector)||this.getZoom()<trackdirect.settings.minZoomForMarkers){var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];markerIdKeyListToMaybeHide[markerIdKey]=markerIdKey;}}else if(this.getZoom()>=trackdirect.settings.minZoomForMarkers){var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];markerIdKeyListNotToHide[markerIdKey]=markerIdKey;}}}
-for(var markerIdKey in markerIdKeyListToMaybeHide){if(markerIdKey in markerIdKeyListNotToHide){continue;}
-var marker=this.markerCollection.getMarker(markerIdKey);if(marker!==null){trackdirect.services.callbackExecutor.addWithPriority(marker,marker.hideCompleteMarker,[]);}}}};trackdirect.models.Map.prototype._showMarkersInNewVisibleMapSectors=function(previousVisibleMapSectors){if(this.getZoom()>=trackdirect.settings.minZoomForMarkers){for(var i=0;i<this._visibleMapSectors.length;i++){var mapSector=this._visibleMapSectors[i];if(previousVisibleMapSectors.indexOf(mapSector)==-1||this._currentContentZoom<trackdirect.settings.minZoomForMarkers){var mapSectorMarkerKeys=this.markerCollection.getMapSectorMarkerKeys(mapSector);for(var j=0;j<mapSectorMarkerKeys.length;j++){var markerIdKey=mapSectorMarkerKeys[j];var marker=this.markerCollection.getMarker(markerIdKey);if(marker!==null){trackdirect.services.callbackExecutor.addWithPriority(marker,marker.showCompleteMarker,[]);}}}}
-var stationIdList=this.markerCollection.getStationIdListWithVisibleCoverage();for(var i=0;i<stationIdList.length;i++){var latestMarker=this.markerCollection.getStationLatestMarker(stationIdList[i]);if(latestMarker!==null){if(latestMarker.shouldMarkerBeVisible()&&latestMarker.showAsMarker){latestMarker.show();}}}}};trackdirect.models.Map.prototype._setMapInitialLocation=function(){var zoom=this._getInitialZoom();if(typeof this._tdMapOptions.initCenter!=="undefined"&&this._tdMapOptions.initCenter!==null){var pos=this._tdMapOptions.initCenter;this.setCenter(pos,zoom);}else{this.setMapDefaultLocation();this.setZoom(zoom);}
-this._emitTdEventListeners("change");};trackdirect.models.Map.prototype.setMapDefaultLocation=function(setDefaultZoom){setDefaultZoom=typeof setDefaultZoom!=="undefined"?setDefaultZoom:false;var defaultLatitude=typeof this._tdMapOptions.defaultLatitude!=="undefined"?this._tdMapOptions.defaultLatitude:59.35;var defaultLongitude=typeof this._tdMapOptions.defaultLongitude!=="undefined"?this._tdMapOptions.defaultLongitude:18.05;var pos={lat:parseFloat(defaultLatitude),lng:parseFloat(defaultLongitude),};if(setDefaultZoom){if(trackdirect.isMobile){this.setCenter(pos,trackdirect.settings.defaultCurrentZoomMobile);}else{this.setCenter(pos,trackdirect.settings.defaultCurrentZoom);}}else{this.setCenter(pos);}};trackdirect.models.Map.prototype.addMarkerToMapSectorInterval=function(markerIdKey,startLatLng,endLatLng){var minLat=startLatLng.lat;var maxLat=endLatLng.lat;var minLng=startLatLng.lng;var maxLng=endLatLng.lng;if(endLatLng.lat<minLat){minLat=endLatLng.lat;maxLat=startLatLng.lat;}
-if(endLatLng.lng<minLng){minLng=endLatLng.lng;maxLng=startLatLng.lng;}
-for(var lat=Math.floor(minLat);lat<=Math.ceil(maxLat);lat++){for(var lng=Math.floor(minLng);lng<=Math.ceil(maxLng);lng++){var markerMapSector=trackdirect.services.MapSectorCalculator.getMapSector(lat,lng);this.markerCollection.addMarkerToMapSector(markerIdKey,markerMapSector);if(this.isMapSectorVisible(markerMapSector)){if(this._newMarkersToShow.indexOf(markerIdKey)<0){this._newMarkersToShow.push(markerIdKey);}}}}};trackdirect.models.Map.prototype.addMarkerToMapSectors=function(markerIdKey,packet,tryToShowPacket){var markerMapSectors=[];markerMapSectors.push(packet.map_sector);if(typeof packet.related_map_sectors!=="undefined"&&packet.related_map_sectors!==null){for(var i=0;i<packet.related_map_sectors.length;i++){markerMapSectors.push(packet.related_map_sectors[i]);}}
-for(var i=0;i<markerMapSectors.length;i++){var markerMapSector=markerMapSectors[i];this.markerCollection.addMarkerToMapSector(markerIdKey,markerMapSector);if(tryToShowPacket){if(this.isMapSectorVisible(markerMapSector)){if(this._newMarkersToShow.indexOf(markerIdKey)<0){this._newMarkersToShow.push(markerIdKey);}}}}};trackdirect.models.Map.prototype._initMapEvents=function(){if(typeof google==="object"&&typeof google.maps==="object"){this._initGoogleMapEvents();}else if(typeof L==="object"){this._initLeafletMapEvents();}};trackdirect.models.Map.prototype._initGoogleMapEvents=function(){var me=this;google.maps.event.addListener(this,"mousemove",function(event){me._renderCordinatesContainer(event.latLng);});google.maps.event.addListener(this,"idle",function(){me._updateMapContent();});google.maps.event.addListener(this,"maptypeid_changed",function(){me._updateMapContent();});google.maps.event.addListener(this,"bounds_changed",function(){if(me.isMapReady()){me._emitTdEventListeners("moving");}});};trackdirect.models.Map.prototype._initLeafletMapEvents=function(){var me=this;this.on("mousemove",function(event){me._renderCordinatesContainer(event.latlng);});this.on("moveend",function(){me._updateMapContent();});this.on("move",function(){if(me.isMapReady()){me._emitTdEventListeners("moving");}});};trackdirect.models.Map.prototype._initOms=function(){var options={};options["nearbyDistance"]=12;if(typeof google==="object"&&typeof google.maps==="object"){var mti=google.maps.MapTypeId;this.oms=new OverlappingMarkerSpiderfier(this,options);this.oms.legColors.usual[mti.HYBRID]=this.oms.legColors.usual[mti.SATELLITE]="#fff";this.oms.legColors.usual[mti.TERRAIN]=this.oms.legColors.usual[mti.ROADMAP]="#222";this.oms.legColors.highlighted[mti.HYBRID]=this.oms.legColors.highlighted[mti.SATELLITE]="#f00";this.oms.legColors.highlighted[mti.TERRAIN]=this.oms.legColors.highlighted[mti.ROADMAP]="#f00";}else if(typeof L==="object"){this.oms=new OverlappingMarkerSpiderfier(this,options);}};trackdirect.models.Map.prototype._initInfoWindowEvent=function(){var me=this;if(this.oms){this.oms.addListener("click",function(marker,event){me.openMarkerInfoWindow(marker,false);});}else{}};trackdirect.models.Map.prototype._getGoolgeMapOptions=function(){var zoom=this._getInitialZoom();var mapOptions={zoom:zoom,panControl:false,zoomControl:true,zoomControlOptions:{position:google.maps.ControlPosition.RIGHT_BOTTOM,},mapTypeControl:false,scaleControl:false,streetViewControl:false,overviewMapControl:false,fullscreenControl:false,mapTypeId:google.maps.MapTypeId.ROADMAP,gestureHandling:"greedy",};mapOptions.mapTypeId=this._supportedMapTypes[this._mapType];return mapOptions;};trackdirect.models.Map.prototype._getLeafletMapOptions=function(){var zoom=this._getInitialZoom();var mapOptions={zoom:zoom,zoomControl:true,attributionControl:true,zoomControl:false,minZoom:3,maxZoom:16,closePopupOnClick:false,};return mapOptions;};trackdirect.models.Map.prototype._getInitialZoom=function(){var zoom=trackdirect.settings.defaultCurrentZoom;if(typeof this._tdMapOptions.zoom!=="undefined"&&this._tdMapOptions.zoom!==null){zoom=parseInt(this._tdMapOptions.zoom);}else if(trackdirect.isMobile){zoom=trackdirect.settings.defaultCurrentZoomMobile;}
-return zoom;};trackdirect.models.Map.prototype.getCurrentRadiusInKm=function(){if(this.getBounds()!=null){if(typeof google==="object"&&typeof google.maps==="object"){var latLng=this.getBounds().getNorthEast();var latLngLiteral={lat:latLng.lat(),lng:latLng.lng()};}else if(typeof L==="object"){var latLng=this.getBounds().getNorthEast();var latLngLiteral={lat:latLng.lat,lng:latLng.lng};}
-return(trackdirect.services.distanceCalculator.getDistance(this.getCenterLiteral(),latLngLiteral)/1000);}
-return 0;};trackdirect.models.Map.prototype._renderCordinatesContainer=function(mouseLatLng){var options=this.getTdMapOptions();if(typeof options.cordinatesContainer==="undefined"){return;}
-if(options.cordinatesContainer==null){return;}
-var lat=null;var lng=null;if(typeof mouseLatLng.lat=="function"){lat=mouseLatLng.lat();lng=mouseLatLng.lng();}else{lat=mouseLatLng.lat;lng=mouseLatLng.lng;}
-if(lat<=90&&lat>=-90&&lng<=180&&lng>=-180){var content="";content+=this._getGpsDegreeFromGpsDecimal(lat.toFixed(5),"lat");content+=" "+this._getGpsDegreeFromGpsDecimal(lng.toFixed(5),"lon");content+="<br>"+lat.toFixed(5)+", "+lng.toFixed(5);content+="<br>"+this._getMaidenheadLocatorFromGpsDecimal(lat,lng);$("#"+options.cordinatesContainer).html(content);}};trackdirect.models.Map.prototype._getGpsDegreeFromGpsDecimal=function(dms,type){var sign=1,Abs=0;var days,minutes,secounds,direction;if(dms<0){sign=-1;}
-Abs=Math.abs(Math.round(dms*1000000));if(type=="lat"&&Abs>90*1000000){return false;}else if(type=="lon"&&Abs>180*1000000){return false;}
-days=Math.floor(Abs/1000000);minutes=Math.floor((Abs/1000000-days)*60);secounds=((Math.floor(((Abs/1000000-days)*60-minutes)*100000)*60)/
-100000).toFixed();days=days*sign;if(type=="lat")direction=days<0?"S":"N";if(type=="lon")direction=days<0?"W":"E";return days*sign+"º "+minutes+"' "+secounds+"'' "+direction;};trackdirect.models.Map.prototype._getMaidenheadLocatorFromGpsDecimal=function(lat,lng,){const chars='ABCDEFGHIJKLMNOPQRSTUVX';var result='';lng=lng+180;lat=lat+90;result=chars.charAt(parseInt(lng/20));result+=chars.charAt(parseInt(lat/10));result+=parseInt(lng/2%10);result+=parseInt(lat%10);lng_r=(lng-parseInt(lng/2)*2)*60;lat_r=(lat-parseInt(lat))*60;result+=chars.charAt(parseInt(lng_r/5));result+=chars.charAt(parseInt(lat_r/2.5));return result;};
-if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.Label=function(options,map){this._defaultMap=map;options.map=null;this.setValues(options);this.div_=null;};trackdirect.models.Label.prototype=new google.maps.OverlayView();trackdirect.models.Label.prototype.show=function(){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}};trackdirect.models.Label.prototype.hide=function(){if(this.getMap()!==null){this.setMap(null);}};trackdirect.models.Label.prototype.onAdd=function(){if(this.div_===null){var jqSpan=$(document.createElement("span"));jqSpan.css("color","#101010");jqSpan.css("text-shadow","1px 1px 1px #FFF, -1px -1px 1px #FFF, 1px -1px 1px #FFF, -1px 1px 1px #FFF, 1px 1px 1px #FFF");jqSpan.css("position","relative");jqSpan.css("top","10px");jqSpan.css("white-space","nowrap");jqSpan.css("font-family","Helvetica");jqSpan.css("font-weight","bold");jqSpan.css("font-size","10px");jqSpan.css("padding","0px");jqSpan.css("z-index","1000");jqSpan.css("margin","0");jqSpan.css("line-height","10px");var span=(this.span_=jqSpan[0]);span.innerHTML=this.get("text").toString();var div=(this.div_=document.createElement("div"));div.appendChild(span);div.style.cssText="position: absolute; display: none";}
-var pane=this.getPanes().overlayLayer;pane.appendChild(this.div_);var me=this;this.listeners_=[google.maps.event.addListener(this,"position_changed",function(){me.draw();}),google.maps.event.addListener(this,"text_changed",function(){me.draw();}),];};trackdirect.models.Label.prototype.onRemove=function(){if(this.div_!==null&&this.div_.parentNode!==null){this.div_.parentNode.removeChild(this.div_);for(var i=0,I=this.listeners_.length;i<I;++i){google.maps.event.removeListener(this.listeners_[i]);}}};trackdirect.models.Label.prototype.draw=function(){var projection=this.getProjection();if(typeof this.get("position").lat==="function"){var latLng=new google.maps.LatLng({lat:this.get("position").lat(),lng:this.get("position").lng(),});}else{var latLng=new google.maps.LatLng({lat:this.get("position").lat,lng:this.get("position").lng,});}
-var position=projection.fromLatLngToDivPixel(latLng);var div=this.div_;var span=this.span_;span.innerHTML=this.get("text").toString();div.style.left=position.x+"px";div.style.top=position.y+"px";div.style.display="block";};}else if(typeof L==="object"&&typeof L.Tooltip!=="undefined"){trackdirect.models.Label=function(options,map){this._defaultMap=map;L.Tooltip.call(this,this._getBasicOptions(options));this.setContent(options.text);if(typeof options.position!=="undefined"&&typeof options.position.lat!=="undefined"&&typeof options.position.lng!=="undefined"){this.setLatLng(new L.LatLng(options.position.lat,options.position.lng));}};trackdirect.models.Label.prototype=new L.Tooltip();trackdirect.models.Label.prototype.show=function(){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}};trackdirect.models.Label.prototype.hide=function(){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}};trackdirect.models.Label.prototype._getBasicOptions=function(options){return{direction:"right",noWrap:true,offset:L.point(2,10),className:"leaflet-marker-labeltext",permanent:true,};};}else if(typeof L==="object"){trackdirect.models.Label=function(options,map){this._defaultMap=map;var position=null;if(typeof options.position!=="undefined"&&typeof options.position.lat!=="undefined"&&typeof options.position.lng!=="undefined"){position=[options.position.lat,options.position.lng];}
-L.Marker.call(this,position,this._getBasicOptions(options));};trackdirect.models.Label.prototype=Object.create(L.Marker.prototype);trackdirect.models.Label.prototype.constructor=trackdirect.models.Label;trackdirect.models.Label.prototype.show=function(){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}};trackdirect.models.Label.prototype.hide=function(){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}};trackdirect.models.Label.prototype._getBasicOptions=function(options){var strlen=options.text.length;var myIcon=L.divIcon({iconSize:new L.Point(strlen*10,20),className:"leaflet-marker-labeltext",html:options.text,iconAnchor:new L.Point(-2,-10),});return{icon:myIcon,clickable:false,keyboard:false,};};}else{trackdirect.models.Label=function(options,map){};trackdirect.models.Label.prototype.show=function(){};trackdirect.models.Label.prototype.hide=function(){};}
-trackdirect.models.InfoWindow=function(marker,map,disableAutoPan){disableAutoPan=typeof disableAutoPan!=="undefined"?disableAutoPan:true;this._marker=marker;this._defaultMap=map;this._polyline=null;this._tdEventListeners={};if(typeof google==="object"&&typeof google.maps==="object"){google.maps.InfoWindow.call(this,{disableAutoPan:disableAutoPan,});}else if(typeof L==="object"){var yOffset=2;if(!marker.isDotMarker()){yOffset=-5;}
-L.Popup.call(this,{autoPan:!disableAutoPan,offset:[0,yOffset],maxWidth:440,className:"leaflet-infowindow-content",});}
-var me=this;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.event.addListener(this,"closeclick",function(){me._hideRelatedMarkerTail();});}else if(typeof L==="object"){this.on("popupclose",function(){me._hideRelatedMarkerTail();});}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.InfoWindow.prototype=Object.create(google.maps.InfoWindow.prototype);}else if(typeof L==="object"){trackdirect.models.InfoWindow.prototype=Object.create(L.Popup.prototype);}
-trackdirect.models.InfoWindow.prototype.constructor=trackdirect.models.InfoWindow;trackdirect.models.InfoWindow.prototype.setMarker=function(marker){this._marker=marker;};trackdirect.models.InfoWindow.prototype.getMarker=function(){return this._marker;};trackdirect.models.InfoWindow.prototype.getPolyline=function(){return this._polyline;};trackdirect.models.InfoWindow.prototype.isInfoWindowOpen=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(this.getMap()!==null){return true;}}else if(typeof L==="object"&&typeof windyInit==="function"){return this._defaultMap.hasLayer(this);}else if(typeof L==="object"){return this.isOpen();}
-return false;};trackdirect.models.InfoWindow.prototype.show=function(compactVersion,position){compactVersion=typeof compactVersion!=="undefined"?compactVersion:false;position=typeof position!=="undefined"?position:null;this._create(compactVersion);if(typeof google==="object"&&typeof google.maps==="object"){if(position!==null){this.setPosition(position);this.open(this._defaultMap);}else{this.open(this._defaultMap,this._marker);}
-this.addListener("domready",function(){this._addPhgLinkListeners();this._addRngLinkListeners();});}else if(typeof L==="object"){if(this.isOpen()){this._addPhgLinkListeners();this._addRngLinkListeners();}else{this.on("add",function(){this._addPhgLinkListeners();this._addRngLinkListeners();});}
-if(position!==null){this.setLatLng(position);this.openOn(this._defaultMap);}else{this.setLatLng(this._marker.packet.getLatLngLiteral());this.openOn(this._defaultMap);}}
-if(this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkerTail){if(this._marker.overwrite){this._emitTdEventListeners("station-tail-needed",this._marker.packet.station_id);}
-this._marker.showMarkerTail(true);}};trackdirect.models.InfoWindow.prototype.hide=function(){if(typeof google==="object"&&typeof google.maps==="object"){this.close();if(this.getMap()!==null){this.setMap(null);}}else if(typeof L==="object"){this._defaultMap.removeLayer(this);}
-this._hideRelatedMarkerTail();if(this._defaultMap.state.openInfoWindow!==null&&this._defaultMap.state.openInfoWindow===this){this._defaultMap.state.openInfoWindow=null;}};(trackdirect.models.InfoWindow.prototype.addTdListener=function(event,handler){if(!(event in this._tdEventListeners)){this._tdEventListeners[event]=[];}
-this._tdEventListeners[event].push(handler);}),(trackdirect.models.InfoWindow.prototype._emitTdEventListeners=function(event,arg){if(event in this._tdEventListeners){for(var i=0;i<this._tdEventListeners[event].length;i++){this._tdEventListeners[event][i](arg);}}});trackdirect.models.InfoWindow.prototype._create=function(compactVersion){if(compactVersion){var mainDiv=this._getCompactMainDiv();var menuwrapper=this._getMenuDiv(false);this._polyline=this._defaultMap.markerCollection.getMarkerPolyline(this._marker.markerIdKey);}else{var mainDiv=this._getMainDiv();if(!trackdirect.isMobile){mainDiv.append(this._getIconDiv());}
-mainDiv.append(this._getCompletePacketDiv());var menuwrapper=this._getMenuDiv(true);}
-mainDiv.append(menuwrapper);var wrapperDiv=$(document.createElement("div"));wrapperDiv.append(mainDiv);if(typeof google==="object"&&typeof google.maps==="object"){this.setContent(wrapperDiv.html());}else if(typeof L==="object"){this.setContent(wrapperDiv.html());}};trackdirect.models.InfoWindow.prototype._hideRelatedMarkerTail=function(){if(this._polyline!==null){if(!this._defaultMap.state.isFilterMode&&this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkerTail){var markerIdKey=this._polyline.markerIdKey;if(this._defaultMap.markerCollection.isExistingMarker(markerIdKey)){var stationId=this._defaultMap.markerCollection.getMarker(markerIdKey).packet.station_id;var stationLatestMarker=this._defaultMap.markerCollection.getStationLatestMarker(stationId);if(stationLatestMarker!==null){stationLatestMarker.hideMarkerTail();}}}}else if(this._marker!==null){if(!this._defaultMap.state.isFilterMode&&this._defaultMap.getZoom()<trackdirect.settings.minZoomForMarkerTail){this._marker.hideMarkerTail();}}};trackdirect.models.InfoWindow.prototype._getMainDiv=function(){var mainDiv=$(document.createElement("div"));mainDiv.css("font-family","Verdana,Arial,sans-serif");if(!trackdirect.isMobile){mainDiv.css("font-size","11px");}else{mainDiv.css("font-size","10px");}
-mainDiv.css("line-height","1.42857143");mainDiv.css("color","#333");mainDiv.css("text-align","left");return mainDiv;};trackdirect.models.InfoWindow.prototype._getIconDiv=function(){var iconUrl64=trackdirect.services.symbolPathFinder.getFilePath(this._marker.packet.symbol_table,this._marker.packet.symbol,null,null,null,64,64);var iconImg=$(document.createElement("img"));iconImg.css("width","64px");iconImg.css("height","64px");iconImg.attr("src",iconUrl64);iconImg.attr("alt","");iconImg.attr("title","");var leftIconDiv=$(document.createElement("div"));leftIconDiv.css("display","inline-block");leftIconDiv.css("vertical-align","top");leftIconDiv.css("padding-right","15px");leftIconDiv.css("padding-bottom","5px");leftIconDiv.append(iconImg);return leftIconDiv;};trackdirect.models.InfoWindow.prototype._getPacketDiv=function(){var packetDiv=$(document.createElement("div"));packetDiv.css("display","inline-block");packetDiv.css("vertical-align","top");packetDiv.css("max-width","350px");return packetDiv;};trackdirect.models.InfoWindow.prototype._getNameIconDiv=function(){var iconUrl24=trackdirect.services.symbolPathFinder.getFilePath(this._marker.packet.symbol_table,this._marker.packet.symbol,null,null,null,24,24);var iconImg=$(document.createElement("img"));iconImg.css("width","24px");iconImg.css("height","24px");iconImg.css("vertical-align","middle");iconImg.attr("src",iconUrl24);iconImg.attr("alt","symbol");iconImg.attr("title","");return iconImg;};trackdirect.models.InfoWindow.prototype._getNameLink=function(){var nameLink=$(document.createElement("a"));nameLink.css("color","#337ab7");if(trackdirect.isMobile){nameLink.css("vertical-align","-2px");}
-nameLink.attr("href","");nameLink.attr("onclick","trackdirect.openStationInformationDialog("+
-this._marker.packet.station_id+
-"); return false;");nameLink.html(escapeHtml(this._marker.packet.station_name));return nameLink;};trackdirect.models.InfoWindow.prototype._getSenderNameLink=function(){var nameLink=$(document.createElement("span"));if(trackdirect.isMobile){nameLink.css("vertical-align","-2px");}
-nameLink.html(escapeHtml(this._marker.packet.sender_name));return nameLink;};trackdirect.models.InfoWindow.prototype._getNameDiv=function(){var nameDiv=$(document.createElement("div"));nameDiv.css("clear","both");nameDiv.css("font-size","12px");nameDiv.css("font-weight","bold");if(trackdirect.isMobile){nameDiv.append(this._getNameIconDiv());nameDiv.append("&nbsp;");nameDiv.append("&nbsp;");}
-nameDiv.append(this._getNameLink());if(this._marker.packet.getOgnRegistration()!=null){var name=escapeHtml(this._marker.packet.getOgnRegistration());if(this._marker.packet.getOgnCN()!==null){name+=" ["+escapeHtml(this._marker.packet.getOgnCN())+"]";}
-nameDiv.append(", ");nameDiv.append(name);}
-if(this._marker.packet.sender_name!=this._marker.packet.station_name){nameDiv.append("&nbsp;(");nameDiv.append(this._getSenderNameLink());nameDiv.append(")");}
-return nameDiv;};trackdirect.models.InfoWindow.prototype._getCompletePacketDiv=function(){var packetDiv=this._getPacketDiv();packetDiv.append(this._getNameDiv());packetDiv.append(this._getPacketTimeDiv());if(this._marker.packet.timestamp>0){if($(window).height()>=300){packetDiv.append(this._getPacketPathDiv());}
-var phgRange=this._marker.packet.getPHGRange();var rngRange=this._marker.packet.getRNGRange();if(phgRange!==null||rngRange!==null){packetDiv.append(this._getSpaceDiv());packetDiv.append(this._getPhgDiv(phgRange));packetDiv.append(this._getRngDiv(rngRange));}
-if($(window).height()>=300){var transmitDistance=this._getTransmitDistance(this._marker.packet);var tailDistance=this._getTailDistance(this._defaultMap.markerCollection.getMarkerMasterMarkerKeyId(this._marker.markerIdKey));if((transmitDistance!==null&&Math.round(transmitDistance/100)!=0)||(tailDistance!==null&&Math.round(tailDistance)>0)){packetDiv.append(this._getSpaceDiv());packetDiv.append(this._getTransmitDistanceDiv(transmitDistance));packetDiv.append(this._getTailDistanceDiv(tailDistance));}}
-if(this._marker.packet.speed!==null||this._marker.packet.course!==null||this._marker.packet.altitude!==null){packetDiv.append(this._getSpaceDiv());packetDiv.append(this._getPacketSpeedAltitudeCourseDiv());}
-if(typeof this._marker.packet.weather!=="undefined"&&this._marker.packet.weather!==null){packetDiv.append(this._getSpaceDiv());packetDiv.append(this._getWeatherDiv());}
-if(typeof this._marker.packet.latest_telemetry_packet_timestamp!=="undefined"&&this._marker.packet.latest_telemetry_packet_timestamp!==null){packetDiv.append(this._getSpaceDiv());packetDiv.append(this._getTelemetryDiv());}
-var commentDiv=this._getPacketCommentDiv();if(commentDiv!=null){packetDiv.append(this._getSpaceDiv());packetDiv.append(commentDiv);}}
-return packetDiv;};trackdirect.models.InfoWindow.prototype._getPacketTimeDiv=function(){if(this._marker.packet.timestamp==0){dateString='<span style="color: grey;">No known packet for specified limits.</span>';}else{var date=new Date(this._marker.packet.timestamp*1000);var dateString=moment(date).format(trackdirect.settings.dateFormatNoTimeZone);if(this._marker.packet.timestamp>this._marker.packet.position_timestamp&&!trackdirect.isMobile){var positionDate=new Date(this._marker.packet.position_timestamp*1000);dateString=moment(positionDate).format(trackdirect.settings.dateFormatNoTimeZone)+
-" - "+
-moment(date).format(trackdirect.settings.dateFormatNoTimeZone);}
-if(this._defaultMap.state.endTimeTravelTimestamp!==null&&this._marker.packet.map_id==12){dateString+='<br/><span style="color: grey;">(exact time for this is not known)</span>';}}
-var timeDiv=$(document.createElement("div"));timeDiv.css("clear","both");timeDiv.html(dateString);return timeDiv;};trackdirect.models.InfoWindow.prototype._getPacketPathDiv=function(){var rawPath=this._marker.packet.getLinkifiedRawPath();if(rawPath!==null){var rawPathDiv=$(document.createElement("div"));rawPathDiv.css("clear","both");rawPathDiv.html("["+rawPath+"]");return rawPathDiv;}
-return null;};trackdirect.models.InfoWindow.prototype._getSpaceDiv=function(){var spaceDiv=$(document.createElement("div"));spaceDiv.css("clear","both");spaceDiv.css("line-height","4px");spaceDiv.html("&nbsp;");return spaceDiv;};trackdirect.models.InfoWindow.prototype._getPhgDiv=function(phgRange){if(phgRange!==null){if(this._defaultMap.state.useImperialUnit){var phgRange=Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(phgRange/1000)*10)/10;var phgRangeUnit="miles";}else{var phgRange=Math.round(phgRange/10)/100;var phgRangeUnit="km";}
-var phgDiv=$(document.createElement("div"));phgDiv.attr("id","phglinks-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id);var halfPhgLink=$("<a style='color: #337ab7;' id='half-phg-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id+
-"' href='#'>Half</a>");var fullPhgLink=$("<a style='color: #337ab7;' id='full-phg-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id+
-"' href='#'>Full</a>");var nonePhgLink=$("<a style='color: #337ab7;' id='none-phg-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id+
-"' href='#'>None</a>");phgDiv.css("clear","both");phgDiv.css("display","none");phgDiv.css("color","#440B2A");phgDiv.append("PHG calculated range: "+phgRange+" "+phgRangeUnit);if(typeof L==="object"&&L.version<="0.7.7"){return phgDiv;}
-if(phgRange>0){phgDiv.append("<br/>");phgDiv.append("PHG circle: ");phgDiv.append(fullPhgLink);phgDiv.append('<span style="color:#000"> - </span>');phgDiv.append(halfPhgLink);phgDiv.append('<span style="color:#000"> - </span>');phgDiv.append(nonePhgLink);}
-return phgDiv;}
-return null;};trackdirect.models.InfoWindow.prototype._getRngDiv=function(rngRange){if(rngRange!==null){if(this._defaultMap.state.useImperialUnit){var rngRange=Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(rngRange/1000)*10)/10;var rngRangeUnit="miles";}else{var rngRange=Math.round(rngRange*100)/100;var rngRangeUnit="km";}
-var rngDiv=$(document.createElement("div"));rngDiv.attr("id","rnglinks-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id);var halfRngLink=$("<a style='color: #337ab7;' id='half-rng-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id+
-"' href='#'>Half</a>");var fullRngLink=$("<a style='color: #337ab7;' id='full-rng-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id+
-"' href='#'>Full</a>");var noneRngLink=$("<a style='color: #337ab7;' id='none-rng-"+
-this._marker.packet.station_id+
-"-"+
-this._marker.packet.id+
-"' href='#'>None</a>");rngDiv.css("clear","both");rngDiv.css("display","none");rngDiv.css("color","#440B2A");rngDiv.append("RNG precalculated range: "+rngRange+" "+rngRangeUnit);if(typeof L==="object"&&L.version<="0.7.7"){return rngDiv;}
-if(rngRange>0){rngDiv.append("<br/>");rngDiv.append("RNG circle: ");rngDiv.append(fullRngLink);rngDiv.append('<span style="color:#000"> - </span>');rngDiv.append(halfRngLink);rngDiv.append('<span style="color:#000"> - </span>');rngDiv.append(noneRngLink);}
-return rngDiv;}
-return null;};trackdirect.models.InfoWindow.prototype._getTransmitDistanceDiv=function(transmitDistance){if(transmitDistance!==null&&Math.round(transmitDistance/100)!=0){var transmitDistanceDiv=$(document.createElement("div"));transmitDistanceDiv.css("clear","both");transmitDistanceDiv.css("color","#273c20");if(this._defaultMap.state.useImperialUnit){transmitDistance=Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(transmitDistance/1000)*10)/10;transmitDistanceUnit="miles";}else{transmitDistance=Math.round(transmitDistance/100)/10;transmitDistanceUnit="km";}
-transmitDistanceDiv.append('<span title="Transmit distance to receiving digipeater/igate">Transmit distance: '+
-transmitDistance+
-" "+
-transmitDistanceUnit+
-"</span>");return transmitDistanceDiv;}
-return null;};trackdirect.models.InfoWindow.prototype._getTailDistanceDiv=function(tailDistance){if(tailDistance!==null&&Math.round(tailDistance)>0){var distanceDiv=$(document.createElement("div"));distanceDiv.css("clear","both");distanceDiv.css("color","#273c20");if(tailDistance<1000){if(this._defaultMap.state.useImperialUnit){tailDistance=Math.round(trackdirect.services.imperialConverter.convertMeterToYard(tailDistance));tailDistanceUnit="yd";}else{tailDistance=Math.round(tailDistance);tailDistanceUnit="m";}}else{if(this._defaultMap.state.useImperialUnit){tailDistance=Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(tailDistance/1000)*10)/10;tailDistanceUnit="miles";}else{tailDistance=Math.round(tailDistance/100)/10;tailDistanceUnit="km";}}
-distanceDiv.append('<span title="Current shown tail distance (depends on the time settings)">Current tail distance: '+
-tailDistance+
-" "+
-tailDistanceUnit+
-"</span>");return distanceDiv;}
-return null;};trackdirect.models.InfoWindow.prototype._getPacketSpeedAltitudeCourseDiv=function(){if(Math.round(this._marker.packet.speed)!=0||Math.round(this._marker.packet.course)!=0||Math.round(this._marker.packet.altitude)!=0){var speedDiv=$(document.createElement("div"));speedDiv.css("clear","both");speedDiv.css("font-weight","bold");if(this._marker.packet.speed!==null){if(this._defaultMap.state.useImperialUnit){speedDiv.append(Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(this._marker.packet.speed))+" mph ");}else{speedDiv.append(Math.round(this._marker.packet.speed)+" km/h ");}}
-if(this._marker.packet.course!==null){speedDiv.append(Math.round(this._marker.packet.course)+"&deg; ");}
-if(this._marker.packet.altitude!==null){if(this._defaultMap.state.useImperialUnit){speedDiv.append(" alt "+
-Math.round(trackdirect.services.imperialConverter.convertMeterToFeet(this._marker.packet.altitude))+
-" ft ");}else{speedDiv.append(" alt "+Math.round(this._marker.packet.altitude)+" m ");}}
-return speedDiv;}
-return null;};trackdirect.models.InfoWindow.prototype._getWeatherDivRainString=function(){if(isNumeric(this._marker.packet.weather.rain_1h)){if(this._defaultMap.state.useImperialUnit){var rain1h="-";if(isNumeric(this._marker.packet.weather.rain_1h)){rain1h=Math.round(trackdirect.services.imperialConverter.convertMmToInch(this._marker.packet.weather.rain_1h))+"in";}
-var rain24h="-";if(isNumeric(this._marker.packet.weather.rain_24h)){rain24h=Math.round(trackdirect.services.imperialConverter.convertMmToInch(this._marker.packet.weather.rain_24h))+"in";}
-var rainSinceMidnight="-";if(isNumeric(this._marker.packet.weather.rain_since_midnight)){rainSinceMidnight=Math.round(trackdirect.services.imperialConverter.convertMmToInch(this._marker.packet.weather.rain_since_midnight))+"in";}}else{var rain1h="-";if(isNumeric(this._marker.packet.weather.rain_1h)){rain1h=Math.round(this._marker.packet.weather.rain_1h)+"mm";}
-var rain24h="-";if(isNumeric(this._marker.packet.weather.rain_24h)){rain24h=Math.round(this._marker.packet.weather.rain_24h)+"mm";}
-var rainSinceMidnight="-";if(isNumeric(this._marker.packet.weather.rain_since_midnight)){rainSinceMidnight=Math.round(this._marker.packet.weather.rain_since_midnight)+"mm";}}
-return("<b>Rain</b> "+
-rain1h+
-"/"+
-rain24h+
-"/"+
-rainSinceMidnight+
-" (1h/24h/midnight)<br/>");}
-return null;};trackdirect.models.InfoWindow.prototype._getWeatherDivTemperatureString=function(){if(isNumeric(this._marker.packet.weather.temperature)){if(this._defaultMap.state.useImperialUnit){return("<b>Temperature</b> "+
-Math.round(trackdirect.services.imperialConverter.convertCelciusToFahrenheit(this._marker.packet.weather.temperature))+
-"&deg;F"+
-"<br/>");}else{return("<b>Temperature</b> "+
-Math.round(this._marker.packet.weather.temperature)+
-"&deg;C"+
-"<br/>");}}
-return null;};trackdirect.models.InfoWindow.prototype._getWeatherDivHumidityString=function(){if(isNumeric(this._marker.packet.weather.humidity)){return("<b>Humidity</b> "+
-Math.round(this._marker.packet.weather.humidity)+
-"%<br/>");}
-return null;};trackdirect.models.InfoWindow.prototype._getWeatherDivPressureString=function(){if(isNumeric(this._marker.packet.weather.pressure)){if(this._defaultMap.state.useImperialUnit){return("<b>Pressure</b> "+
-Math.round(trackdirect.services.imperialConverter.convertMbarToMmhg(this._marker.packet.weather.pressure))+
-" mmHg<br/>");}else{return("<b>Pressure</b> "+
-Math.round(this._marker.packet.weather.pressure)+
-" hPa<br/>");}}
-return null;};trackdirect.models.InfoWindow.prototype._getWeatherDivWindString=function(){if(isNumeric(this._marker.packet.weather.wind_speed)){var windDir="";if(typeof this._marker.packet.weather.wind_direction!=="undefined"&&isNumeric(this._marker.packet.weather.wind_direction)){windDir=this._marker.packet.weather.wind_direction.toString()+"&deg; ";}
-if(this._defaultMap.state.useImperialUnit){if(isNumeric(this._marker.packet.weather.wind_gust)){return("<b>Wind</b> "+
-windDir+
-Math.round(trackdirect.services.imperialConverter.convertMpsToMph(this._marker.packet.weather.wind_speed)*10)/
-10+
-" mph"+
-" ("+
-Math.round(trackdirect.services.imperialConverter.convertMpsToMph(this._marker.packet.weather.wind_gust)*10)/
-10+
-" mph)<br/>");}else{return("<b>Wind</b> "+
-windDir+
-Math.round(trackdirect.services.imperialConverter.convertMpsToMph(this._marker.packet.weather.wind_speed)*10)/
-10+
-" mph<br/>");}}else{if(isNumeric(this._marker.packet.weather.wind_gust)){return("<b>Wind</b> "+
-windDir+
-Math.round(this._marker.packet.weather.wind_speed*10)/10+
-" m/s"+
-" ("+
-Math.round(this._marker.packet.weather.wind_gust*10)/10+
-" m/s)<br/>");}else{return("<b>Wind</b> "+
-windDir+
-Math.round(this._marker.packet.weather.wind_speed*10)/10+
-" m/s <br/>");}}}
-return null;};trackdirect.models.InfoWindow.prototype._getWeatherDiv=function(){var weatherDiv=$(document.createElement("div"));weatherDiv.css("clear","both");weatherDiv.css("color","#227152");var weatherDate=new Date(this._marker.packet.timestamp*1000);if(typeof this._marker.packet.weather.timestamp!=="undefined"&&this._marker.packet.weather.timestamp!==null){weatherDate=new Date(this._marker.packet.weather.timestamp*1000);}
-weatherDateString=moment(weatherDate).format(trackdirect.settings.dateFormatNoTimeZone);weatherDiv.append("<b>Latest Weather</b>  "+weatherDateString+"<br/>");if(!trackdirect.isMobile&&$(window).height()>=300){weatherDiv.append(this._getWeatherDivTemperatureString());weatherDiv.append(this._getWeatherDivHumidityString());weatherDiv.append(this._getWeatherDivPressureString());weatherDiv.append(this._getWeatherDivRainString());weatherDiv.append(this._getWeatherDivWindString());}
-return weatherDiv;};trackdirect.models.InfoWindow.prototype._getTelemetryDiv=function(){var telemetryDiv=$(document.createElement("div"));telemetryDiv.css("clear","both");telemetryDiv.css("color","#823030");var telemetryDate=new Date(this._marker.packet.latest_telemetry_packet_timestamp*1000);telemetryDateString=moment(telemetryDate).format(trackdirect.settings.dateFormatNoTimeZone);telemetryDiv.append("Latest Telemetry  "+telemetryDateString+"<br/>");return telemetryDiv;};trackdirect.models.InfoWindow.prototype._getPacketCommentDiv=function(){var comment="";var ognSummary=escapeHtml(this._marker.packet.getOgnSummary());if(ognSummary!=""){comment=ognSummary;}else if(typeof this._marker.packet.comment!=="undefined"&&this._marker.packet.comment!==null){comment=Autolinker.link(escapeHtml(this._marker.packet.comment),{newWindow:true,});}
-if(comment==""){return null;}
-var commentDiv=$(document.createElement("div"));commentDiv.css("clear","both");commentDiv.css("font-weight","bold");if(!trackdirect.isMobile){commentDiv.css("font-size","11px");}else{commentDiv.css("font-size","10px");}
-commentDiv.html(comment);return commentDiv;};trackdirect.models.InfoWindow.prototype._addPhgLinkListeners=function(){var marker=this._marker;$("#half-phg-"+marker.packet.station_id+"-"+marker.packet.id).click(function(e){marker.showPHGCircle(true);return false;});$("#full-phg-"+marker.packet.station_id+"-"+marker.packet.id).click(function(e){marker.showPHGCircle(false);return false;});$("#none-phg-"+this._marker.packet.station_id+"-"+marker.packet.id).click(function(e){marker.hidePHGCircle();return false;});if($("#phglinks-"+marker.packet.station_id+"-"+marker.packet.id).length){$("#phglinks-"+marker.packet.station_id+"-"+marker.packet.id).show();}};trackdirect.models.InfoWindow.prototype._addRngLinkListeners=function(){var marker=this._marker;$("#half-rng-"+marker.packet.station_id+"-"+marker.packet.id).click(function(e){marker.showRNGCircle(true);return false;});$("#full-rng-"+marker.packet.station_id+"-"+marker.packet.id).click(function(e){marker.showRNGCircle(false);return false;});$("#none-rng-"+marker.packet.station_id+"-"+marker.packet.id).click(function(e){marker.hideRNGCircle();return false;});if($("#rnglinks-"+marker.packet.station_id+"-"+marker.packet.id).length){$("#rnglinks-"+marker.packet.station_id+"-"+marker.packet.id).show();}};trackdirect.models.InfoWindow.prototype._getMenuDiv=function(isInfoWindowOpen){var menuWrapperDiv=this._getMenuDivWrapperDiv();var menuDiv=this._getMenuDivMainDiv();menuWrapperDiv.append(menuDiv);var menuUl=this._getMenuDivUlDiv();menuDiv.append(menuUl);menuUl.append(this._getMenuDivTrackLink());menuUl.append(this._getMenuDivFilterLink());if(!trackdirect.isMobile){menuUl.append(this._getMenuDivCenterLink(isInfoWindowOpen));}
-menuUl.append(this._getMenuDivZoomLink(isInfoWindowOpen));if(!trackdirect.isEmbedded&&!inIframe()&&!this._marker.isMovingStation()&&this._marker.packet.source_id!=2){menuUl.append(this._getMenuDivCoverageLink());}
-return menuWrapperDiv;};trackdirect.models.InfoWindow.prototype._getMenuDivWrapperDiv=function(){var menuWrapperDiv=$(document.createElement("div"));menuWrapperDiv.addClass("infowindow-menu-wrapper");menuWrapperDiv.css("clear","both");menuWrapperDiv.css("width","100%");menuWrapperDiv.css("padding-top","8px");return menuWrapperDiv;};trackdirect.models.InfoWindow.prototype._getMenuDivMainDiv=function(){var menuDiv=$(document.createElement("div"));menuDiv.addClass("infowindow-menu");menuDiv.css("width","100%");menuDiv.css("border-top","1px solid #cecece");return menuDiv;};trackdirect.models.InfoWindow.prototype._getMenuDivUlDiv=function(){var menuUl=$(document.createElement("ul"));menuUl.css("list-style-type","none");menuUl.css("list-style","none");menuUl.css("text-align","center");menuUl.css("margin","0");menuUl.css("padding","0");menuUl.css("display","table");return menuUl;};trackdirect.models.InfoWindow.prototype._getMenuDivLinkCss=function(){var liLinkCss={"list-style":"none",display:"table-cell","text-align":"center","padding-right":"10px",width:"auto",};return liLinkCss;};trackdirect.models.InfoWindow.prototype._getMenuDivTrackLink=function(){var trackLinkElementClass="trackStationLink"+this._marker.packet.station_id;var menuLi=$(document.createElement("li"));menuLi.css(this._getMenuDivLinkCss());var menuLink=$(document.createElement("a"));menuLink.css("color","#337ab7");menuLink.attr("href","#");menuLink.addClass(trackLinkElementClass);menuLink.attr("onclick","trackdirect.handleTrackStationRequest("+
-this._marker.packet.station_id+
-', "'+
-trackLinkElementClass+
-'"); return false;');if(this._defaultMap.state.getTrackStationId()!==null&&this._defaultMap.state.getTrackStationId()==this._marker.packet.station_id){menuLink.html("Untrack");}else{menuLink.html("Track");}
-menuLi.append(menuLink);return menuLi;};trackdirect.models.InfoWindow.prototype._getMenuDivFilterLink=function(){var filterLinkElementClass="filterStationLink"+this._marker.packet.station_id;var menuLi=$(document.createElement("li"));menuLi.css(this._getMenuDivLinkCss());var menuLink=$(document.createElement("a"));menuLink.css("color","#337ab7");menuLink.addClass(filterLinkElementClass);menuLink.attr("onclick","trackdirect.handleFilterStationRequest("+
-this._marker.packet.station_id+
-', "'+
-filterLinkElementClass+
-'"); return false;');if(this._defaultMap.state.filterStationIds.length>0&&this._defaultMap.state.filterStationIds.indexOf(this._marker.packet.station_id)>-1){menuLink.html("Unfilter");var center=this._defaultMap.getCenterLiteral();menuLink.attr("href","/center/"+
-Number.parseFloat(center.lat).toFixed(5)+
-","+
-Number.parseFloat(center.lng).toFixed(5)+
-"/zoom/"+
-this._defaultMap.getZoom());}else{menuLink.html("Filter");menuLink.attr("href","/sid/"+this._marker.packet.station_id);}
-menuLi.append(menuLink);return menuLi;};trackdirect.models.InfoWindow.prototype._getMenuDivCoverageLink=function(){var coverageLinkElementClass="stationCoverageLink"+this._marker.packet.station_id;var menuLi=$(document.createElement("li"));menuLi.css(this._getMenuDivLinkCss());var menuLink=$(document.createElement("a"));menuLink.css("color","#337ab7");menuLink.css("white-space","nowrap");menuLink.attr("href","#");menuLink.addClass(coverageLinkElementClass);menuLink.attr("onclick","trackdirect.toggleStationCoverage("+
-this._marker.packet.station_id+
-', "'+
-coverageLinkElementClass+
-'"); return false;');var coveragePolygon=this._defaultMap.markerCollection.getStationCoverage(this._marker.packet.station_id);if(coveragePolygon!==null&&coveragePolygon.isRequestedToBeVisible()){menuLink.html("Hide Coverage");}else{menuLink.html("Coverage");}
-menuLi.append(menuLink);return menuLi;};trackdirect.models.InfoWindow.prototype._getMenuDivCenterLink=function(isInfoWindowOpen){var menuLi=$(document.createElement("li"));menuLi.css(this._getMenuDivLinkCss());var menuLink=$(document.createElement("a"));menuLink.css("color","#337ab7");if(isInfoWindowOpen){menuLink.attr("href","/center/"+
-this._marker.packet.latitude.toFixed(5)+
-","+
-this._marker.packet.longitude.toFixed(5)+
-"/zoom/"+
-this._defaultMap.getZoom());menuLink.attr("onclick","trackdirect.setCenter("+
-this._marker.packet.latitude+
-","+
-this._marker.packet.longitude+
-"); return false;");menuLink.html("Center");}else{menuLink.attr("href","/center/"+
-this._marker.packet.latitude.toFixed(5)+
-","+
-this._marker.packet.longitude.toFixed(5)+
-"/zoom/"+
-this._defaultMap.getZoom());menuLink.attr("onclick","trackdirect.focusOnMarkerId("+
-this._marker.packet.marker_id+
-"); return false;");menuLink.html("Focus");}
-menuLi.append(menuLink);return menuLi;};trackdirect.models.InfoWindow.prototype._getMenuDivZoomLink=function(isInfoWindowOpen){var menuLi=$(document.createElement("li"));menuLi.css(this._getMenuDivLinkCss());var menuLink=$(document.createElement("a"));menuLink.css("color","#337ab7");if(isInfoWindowOpen){menuLink.attr("href","/center/"+
-this._marker.packet.latitude.toFixed(5)+
-","+
-this._marker.packet.longitude.toFixed(5)+
-"/zoom/14");menuLink.attr("onclick","trackdirect.setCenter("+
-this._marker.packet.latitude+
-","+
-this._marker.packet.longitude+
-", 14); return false;");menuLink.html("Zoom");}else{menuLink.attr("href","/center/"+
-this._marker.packet.latitude.toFixed(5)+
-","+
-this._marker.packet.longitude.toFixed(5)+
-"/zoom/14");menuLink.attr("onclick","trackdirect.focusOnMarkerId("+
-this._marker.packet.marker_id+
-", 14); return false;");menuLink.html("Zoom");}
-menuLi.append(menuLink);return menuLi;};trackdirect.models.InfoWindow.prototype._getCompactMainDiv=function(){var packet=this._marker.packet;var mainDiv=$(document.createElement("div"));mainDiv.css("font-family","Verdana,Arial,sans-serif");if(!trackdirect.isMobile){mainDiv.css("font-size","11px");}else{mainDiv.css("font-size","10px");}
-mainDiv.css("line-height","1.42857143");mainDiv.css("color","#333");mainDiv.css("text-align","left");var polylineDiv=$(document.createElement("div"));polylineDiv.css("float","left");var nameDiv=$(document.createElement("div"));nameDiv.css("clear","both");nameDiv.css("font-size","12px");nameDiv.css("font-weight","bold");var iconUrl24=trackdirect.services.symbolPathFinder.getFilePath(packet.symbol_table,packet.symbol,null,null,null,24,24);var iconImg=$(document.createElement("img"));iconImg.css("vertical-align","middle");iconImg.css("width","24px");iconImg.css("height","24px");iconImg.attr("src",iconUrl24);iconImg.attr("alt","");iconImg.attr("title","");nameDiv.append(iconImg);nameDiv.append("&nbsp;");nameDiv.append("&nbsp;");var nameLink=$(document.createElement("a"));nameLink.css("color","#337ab7");if(trackdirect.isMobile){nameLink.css("vertical-align","-2px");}
-nameLink.attr("href","");nameLink.attr("onclick","trackdirect.openStationInformationDialog("+
-packet.station_id+
-"); return false;");nameLink.html(escapeHtml(packet.station_name));nameDiv.append(nameLink);if(packet.sender_name!=packet.station_name){nameDiv.append("&nbsp;(");var nameLink2=$(document.createElement("span"));if(trackdirect.isMobile){nameLink2.css("vertical-align","-2px");}
-nameLink2.html(escapeHtml(packet.sender_name));nameDiv.append(nameLink2);nameDiv.append(")");}
-polylineDiv.append(nameDiv);var tailDistance=this._getTailDistance(this._defaultMap.markerCollection.getMarkerMasterMarkerKeyId(this._marker.markerIdKey));if(tailDistance!==null&&Math.round(tailDistance)>0){var distanceDiv=$(document.createElement("div"));distanceDiv.css("clear","both");distanceDiv.css("padding-top","4px");distanceDiv.append("Tail distance: ");if(tailDistance<1000){if(this._defaultMap.state.useImperialUnit){distanceDiv.append(Math.round(trackdirect.services.imperialConverter.convertMeterToYard(tailDistance))+" yd ");}else{distanceDiv.append(Math.round(tailDistance)+" m ");}}else{if(this._defaultMap.state.useImperialUnit){distanceDiv.append(Math.round(trackdirect.services.imperialConverter.convertKilometerToMile(tailDistance/1000)*10)/
-10+
-" miles ");}else{distanceDiv.append(Math.round(tailDistance/100)/10+" km ");}}
-polylineDiv.append(distanceDiv);}
-mainDiv.append(polylineDiv);return mainDiv;};trackdirect.models.InfoWindow.prototype._getTailDistance=function(markerIdKey){if(this._defaultMap.markerCollection.isExistingMarker(markerIdKey)){var marker=this._defaultMap.markerCollection.getMarker(markerIdKey);if(marker.packet.hasConfirmedMapId()&&marker.packet.is_moving==1&&marker.overwrite!==true){var distance=0;if(this._defaultMap.markerCollection.hasDotMarkers(markerIdKey)){var prevLatLng=null;var dotMarkers=this._defaultMap.markerCollection.getDotMarkers(markerIdKey);for(var i=0;i<dotMarkers.length;i++){var dotMarker=dotMarkers[i];var latLng=dotMarker.packet.getLatLngLiteral();if(prevLatLng!==null){distance+=trackdirect.services.distanceCalculator.getDistance(prevLatLng,latLng);}
-prevLatLng=latLng;}
-if(prevLatLng!==null){var latLng=marker.packet.getLatLngLiteral();if(prevLatLng!==latLng){distance+=trackdirect.services.distanceCalculator.getDistance(prevLatLng,latLng);}}}
-var dashedPolyline=this._defaultMap.markerCollection.getMarkerDashedPolyline(markerIdKey);if(dashedPolyline!==null){if(dashedPolyline.getPathLength()==2){distance+=trackdirect.services.distanceCalculator.getDistance(dashedPolyline.getPathItem(0),dashedPolyline.getPathItem(1));distance+=this._getTailDistance(dashedPolyline.relatedMarkerIdKey);}}
-return distance;}}
-return null;};trackdirect.models.InfoWindow.prototype._getTransmitDistance=function(packet){if(typeof packet.station_location_path!=="undefined"&&packet.station_location_path!==null&&packet.station_location_path.length>=1){var relatedStationLatLng={lat:parseFloat(packet.station_location_path[0][0]),lng:parseFloat(packet.station_location_path[0][1]),};var distance=trackdirect.services.distanceCalculator.getDistance(packet.getLatLngLiteral(),relatedStationLatLng);if(distance!==null){return distance;}}
-if(typeof packet.station_id_path!=="undefined"&&packet.station_id_path!==null&&packet.station_id_path.length>=1){for(var i=0;i<packet.station_id_path.length;i++){var relatedStationId=packet.station_id_path[i];var relatedStationPacket=this._defaultMap.markerCollection.getStationLatestPacket(relatedStationId);if(relatedStationPacket!==null){break;}}
-if(relatedStationPacket!==null){var relatedStationLatLng={lat:parseFloat(relatedStationPacket.latitude),lng:parseFloat(relatedStationPacket.longitude),};var distance=trackdirect.services.distanceCalculator.getDistance(packet.getLatLngLiteral(),relatedStationLatLng);if(distance!==null){return distance;}}}
-return null;};
-trackdirect.models.HeatMap=function(map){this._defaultMap=map;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.ImageMapType.call(this,this._getGoogleMapOptions());}else if(typeof L==="object"){L.TileLayer.call(this,this._getUrlTemplate(),this._getLeafletOptions());}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.HeatMap.prototype=Object.create(google.maps.ImageMapType.prototype);}else if(typeof L==="object"){trackdirect.models.HeatMap.prototype=Object.create(L.TileLayer.prototype);}
-trackdirect.models.HeatMap.prototype.constructor=trackdirect.models.HeatMap;trackdirect.models.HeatMap.prototype._getLeafletOptions=function(){var options={errorTileUrl:trackdirect.settings.baseUrl+"/heatmaps/transparent.png",tileSize:256,maxZoom:9,minZoom:0,};return options;};trackdirect.models.HeatMap.prototype._getGoogleMapOptions=function(){var me=this;var options={getTileUrl:function(coord,zoom){if(zoom>trackdirect.settings.minZoomForMarkers-1){return trackdirect.settings.baseUrl+"/heatmaps/transparent.png";}
-var normalizedCoord=me._getNormalizedCoord(coord,zoom);if(!normalizedCoord){return trackdirect.settings.baseUrl+"/heatmaps/transparent.png";}
-var xString=String(normalizedCoord.x);var yString=String(normalizedCoord.y);return me._getUrlTemplate().replace("{z}",zoom).replace("{y}",yString).replace("{x}",xString);},tileSize:new google.maps.Size(256,256),maxZoom:9,minZoom:0,radius:1738000,name:"APRSHEAT",};return options;};trackdirect.models.HeatMap.prototype._getUrlTemplate=function(){return(trackdirect.settings.baseUrl+
-"/heatmaps/latest-heatmap.{z}.{y}.{x}.png?version="+
-this._getHeatMapVersion());};trackdirect.models.HeatMap.prototype._getHeatMapVersion=function(){var today=new Date();var dd=today.getDate();var mm=today.getMonth()+1;var yyyy=today.getFullYear();var hh=today.getHours();if(dd<10){dd="0"+dd;}
-if(mm<10){mm="0"+mm;}
-return yyyy+"-"+mm+"-"+dd+"-"+hh;};trackdirect.models.HeatMap.prototype._getNormalizedCoord=function(coord,zoom){var y=coord.y;var x=coord.x;var tileRange=1<<zoom;if(y<0||y>=tileRange){return null;}
-if(x<0||x>=tileRange){x=((x%tileRange)+tileRange)%tileRange;}
-return{x:x,y:y};};
-trackdirect.models.DirectionPolyline=function(marker,map){this._marker=marker;this._defaultMap=map;this.startTimestamp=this._marker.packet.timestamp;this.speed=this._marker.packet.speed;this.course=this._marker.packet.course;this.stopped=false;this.timerId=null;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Polyline.call(this,this._getGooglePolylineOptions());}else if(typeof L==="object"){L.Polyline.call(this,{},this._getLeafletPolylineOptions());this.setLatLngs([this._getFirstCoordinate(),this._getExpectedCoordinate(),]);}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.DirectionPolyline.prototype=Object.create(google.maps.Polyline.prototype);}else if(typeof L==="object"){trackdirect.models.DirectionPolyline.prototype=Object.create(L.Polyline.prototype);}
-trackdirect.models.DirectionPolyline.prototype.constructor=trackdirect.models.DirectionPolyline;trackdirect.models.DirectionPolyline.prototype.setPathItems=function(pathItems){if(typeof google==="object"&&typeof google.maps==="object"){this.setPath(pathItems);}else if(typeof L==="object"){this.setLatLngs(pathItems);}};trackdirect.models.DirectionPolyline.prototype.getMap=function(){if(typeof google==="object"&&typeof google.maps==="object"){var map=google.maps.Polyline.prototype.getMap.call(this);if(typeof map!=="undefined"){return map;}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){return this._defaultMap;}}
-return null;};trackdirect.models.DirectionPolyline.prototype.show=function(){var timeInSeconds=this._getAgeInSeconds();if(this.stopped===false&&timeInSeconds<=900&&this._marker.packet.hasConfirmedMapId()&&(this._defaultMap.state.isFilterMode||this._defaultMap.getZoom()>=trackdirect.settings.minZoomForMarkerTail)){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}}else if(typeof L==="object"){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}}
-this.recalculate();}};trackdirect.models.DirectionPolyline.prototype.hide=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(this.getMap()!==null){this.setMap(null);}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}}};trackdirect.models.DirectionPolyline.prototype.stop=function(){this.stopped=true;this.hide();};trackdirect.models.DirectionPolyline.prototype._getGooglePolylineOptions=function(){var lineCoordinates=[this._getFirstCoordinate(),this._getExpectedCoordinate(),];var lineSymbol={path:google.maps.SymbolPath.FORWARD_OPEN_ARROW,strokeOpacity:1,scale:0.65,};var options={path:lineCoordinates,strokeOpacity:0,strokeColor:trackdirect.services.stationColorCalculator.getColor(this._marker.packet),map:null,icons:[{icon:lineSymbol,offset:"0px",repeat:"8px",},],};return options;};trackdirect.models.DirectionPolyline.prototype._getLeafletPolylineOptions=function(){return{color:trackdirect.services.stationColorCalculator.getColor(this._marker.packet),weight:4,opacity:0.7,dashArray:"2,8",lineJoin:"round",};};trackdirect.models.DirectionPolyline.prototype._getFirstCoordinate=function(){return this._marker.packet.getLatLngLiteral();};trackdirect.models.DirectionPolyline.prototype._getExpectedCoordinate=function(){var timeInSeconds=this._getAgeInSeconds();var distance=(this.speed/3.6)*timeInSeconds;var startPosition=this._getFirstCoordinate();if(startPosition!=null){return trackdirect.services.distanceCalculator.getPositionByDistance(startPosition,this.course,distance);}
-return null;};trackdirect.models.DirectionPolyline.prototype.recalculate=function(){var interval=1000;var me=this;this.timerId=window.setInterval(function(){if(!me._marker.isVisible()||me.stopped||!me._marker.showAsMarker){me.hide();clearInterval(me.timerId);return;}
-var timeInSeconds=me._getAgeInSeconds();if(timeInSeconds>900){me.stop();if(me.timerId!==null){clearInterval(me.timerId);}}else{var firstPosition=me._getFirstCoordinate();var newPosition=me._getExpectedCoordinate();if(firstPosition!=null&&newPosition!=null){me.setPathItems([firstPosition,newPosition]);}}},interval);};trackdirect.models.DirectionPolyline.prototype._getAgeInSeconds=function(){var timeInSeconds=0;var startTimestamp=this._defaultMap.state.getClientTimestamp(this.startTimestamp);if(startTimestamp<Date.now()/1000){timeInSeconds=Date.now()/1000-startTimestamp;}
-return timeInSeconds;};
-trackdirect.models.DashedTailPolyline=function(color,map){this._defaultMap=map;this.markerIdKey=null;this.ownerMarkerIdKey=null;this.relatedMarkerIdKey=null;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.Polyline.call(this,this._getGooglePolylineOptions(color));}else if(typeof L==="object"){L.Polyline.call(this,{},this._getLeafletPolylineOptions(color));}};if(typeof google==="object"&&typeof google.maps==="object"){trackdirect.models.DashedTailPolyline.prototype=Object.create(google.maps.Polyline.prototype);}else if(typeof L==="object"){trackdirect.models.DashedTailPolyline.prototype=Object.create(L.Polyline.prototype);}
-trackdirect.models.DashedTailPolyline.prototype.constructor=trackdirect.models.DashedTailPolyline;trackdirect.models.DashedTailPolyline.prototype.getPathItem=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);return path.getAt(index);}else if(typeof L==="object"){var list=this.getLatLngs();if(typeof list[index]!=="undefined"){return list[index];}else{return null;}}
-return null;};trackdirect.models.DashedTailPolyline.prototype.pushPathItem=function(latLng){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);path.push(latLng);}else if(typeof L==="object"){this.addLatLng(latLng);}};trackdirect.models.DashedTailPolyline.prototype.removePathItem=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);path.removeAt(index);}else if(typeof L==="object"){var list=this.getLatLngs();if(typeof list[index]!=="undefined"){list.splice(index,1);this.setLatLngs(list);}}};trackdirect.models.DashedTailPolyline.prototype.getPathLength=function(index){if(typeof google==="object"&&typeof google.maps==="object"){var path=google.maps.Polyline.prototype.getPath.call(this);return path.getLength();}else if(typeof L==="object"){var list=this.getLatLngs();return list.length;}};trackdirect.models.DashedTailPolyline.prototype.getPath=function(){if(typeof google==="object"&&typeof google.maps==="object"){return google.maps.Polyline.prototype.getPath.call(this).getArray();}else if(typeof L==="object"){return this.getLatLngs();}
-return[];};trackdirect.models.DashedTailPolyline.prototype.getMap=function(){if(typeof google==="object"&&typeof google.maps==="object"){var map=google.maps.Polyline.prototype.getMap.call(this);if(typeof map!=="undefined"){return map;}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){return this._defaultMap;}}
-return null;};trackdirect.models.DashedTailPolyline.prototype.setMarkerIdKey=function(markerIdKey){this.markerIdKey=markerIdKey;this.ownerMarkerIdKey=markerIdKey;this._addInfoWindowListener(markerIdKey);};trackdirect.models.DashedTailPolyline.prototype.setRelatedMarkerIdKey=function(markerIdKey){this.relatedMarkerIdKey=markerIdKey;};trackdirect.models.DashedTailPolyline.prototype.show=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(typeof this.getMap()==="undefined"||this.getMap()===null){this.setMap(this._defaultMap);}}else if(typeof L==="object"){if(!this._defaultMap.hasLayer(this)){this.addTo(this._defaultMap);}}};trackdirect.models.DashedTailPolyline.prototype.hide=function(){if(typeof google==="object"&&typeof google.maps==="object"){if(this.getMap()!==null){this.setMap(null);}}else if(typeof L==="object"){if(this._defaultMap.hasLayer(this)){this._defaultMap.removeLayer(this);}}};trackdirect.models.DashedTailPolyline.prototype.addPacket=function(packet){if(typeof google==="object"&&typeof google.maps==="object"){var latLng=new google.maps.LatLng(parseFloat(packet.latitude),parseFloat(packet.longitude));this.pushPathItem(latLng);}else if(typeof L==="object"){var latLng=new L.latLng(parseFloat(packet.latitude),parseFloat(packet.longitude));this.addLatLng(latLng);}};trackdirect.models.DashedTailPolyline.prototype._addInfoWindowListener=function(markerIdKey){var me=this;if(typeof google==="object"&&typeof google.maps==="object"){google.maps.event.addListener(this,"click",function(event){var marker=me._defaultMap.markerCollection.getMarker(markerIdKey);me._defaultMap.openPolylineInfoWindow(marker,event.latLng);});}else if(typeof L==="object"){this.on("click",function(event){var marker=me._defaultMap.markerCollection.getMarker(markerIdKey);me._defaultMap.openPolylineInfoWindow(marker,event.latlng);});}};trackdirect.models.DashedTailPolyline.prototype._getGooglePolylineOptions=function(color){var lineSymbol={path:"M 0,-1 0,1",strokeOpacity:0.4,scale:3,};var options={geodesic:false,strokeOpacity:0,strokeColor:color,icons:[{icon:lineSymbol,offset:"20px",repeat:"15px",},],map:null,zIndex:100,};return options;};trackdirect.models.DashedTailPolyline.prototype._getLeafletPolylineOptions=function(color){return{opacity:0.6,weight:3,dashArray:"6,8",lineJoin:"round",color:color,};};
diff --git a/htdocs/public/robots.txt b/htdocs/public/robots.txt
deleted file mode 100644
index 07b27593c63faf7ee313db7cdb92b9eaa57da49b..0000000000000000000000000000000000000000
--- a/htdocs/public/robots.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-User-agent: *
-Disallow: /heatmaps/
-Disallow: /data/
-
diff --git a/htdocs/public/symbols/.htaccess b/htdocs/public/symbols/.htaccess
deleted file mode 100755
index 89d0b1917339b22e2b156e3ec1e8edc57b7e53bc..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/.htaccess
+++ /dev/null
@@ -1,66 +0,0 @@
-<IfModule mod_expires.c>
-    ExpiresActive On
-    ExpiresByType image/jpg "access 1 month"
-    ExpiresByType image/jpeg "access 1 month"
-    ExpiresByType image/gif "access 1 month"
-    ExpiresByType image/png "access 1 month"
-    ExpiresDefault "access 1 week"
-</IfModule>
-
-
-Options +FollowSymLinks
-RewriteEngine On
-
-# Do not do anything for already existing files and folders
-RewriteCond %{REQUEST_FILENAME} -f [OR]
-RewriteCond %{REQUEST_FILENAME} -d
-RewriteRule .+ - [L]
-
-RewriteCond %{SCRIPT_FILENAME} !-d
-RewriteCond %{SCRIPT_FILENAME} !-f
-RewriteCond %{REQUEST_URI} \.(svg|png)$
-
-
-#
-# Simple svg images
-#
-
-# Regular primary table symbol (no point in using symbol.php)
-RewriteRule ^/?symbol-(\d+)-47\.svg$ ./svgicons/$1-1.svg
-
-# Regular alternative table symbol (no point in using symbol.php)
-RewriteRule ^/?symbol-(\d+)-92\.svg$ ./svgicons/$1-2.svg
-
-
-#
-# Images that needs to be handled by symbols.php
-#
-
-# Symbol with overlay (or other file extension)
-RewriteRule ^/?n?symbol-(\d+)-(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&format=$3
-
-# Symbol with overlay and course (raly used since width and height should be specified when rotating)
-RewriteRule ^/?n?symbol-(\d+)-(\d+)-(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&course=$3&format=$4
-
-# Symbol with overlay and specified width and height
-RewriteRule ^/?n?symbol-(\d+)-(\d+)-(\d+)x(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&width=$3&height=$4&format=$5
-
-# Symbol with overlay and course and specified width and height
-RewriteRule ^/?n?symbol-(\d+)-(\d+)-(\d+)-(\d+)x(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&course=$3&width=$4&height=$5&format=$6
-
-
-#
-# Images that needs to be handled by symbols.php AND also nees to be scaled
-#
-
-# Symbol with overlay (or other file extension)
-RewriteRule ^/?n?symbol-(\d+)-(\d+)-scale(\d+)x(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&scale_width=$3&scale_height=$4&format=$5
-
-# Symbol with overlay and course (raly used since width and height should be specified when rotating)
-RewriteRule ^/?n?symbol-(\d+)-(\d+)-(\d+)-scale(\d+)x(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&course=$3&scale_width=$4&scale_height=$5&format=$6
-
-# Symbol with overlay and specified width and height
-RewriteRule ^/?n?symbol-(\d+)-(\d+)-(\d+)x(\d+)-scale(\d+)x(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&width=$3&height=$4&scale_width=$5&scale_height=$6&format=$7
-
-# Symbol with overlay and course and specified width and height
-RewriteRule ^/?n?symbol-(\d+)-(\d+)-(\d+)-(\d+)x(\d+)-scale(\d+)x(\d+)\.(svg|png)$ ./symbol.php?symbol=$1&symbol_table=$2&course=$3&width=$4&height=$5&scale_width=$6&scale_height=$7&format=$8
diff --git a/htdocs/public/symbols/icons/100-1.png b/htdocs/public/symbols/icons/100-1.png
deleted file mode 100755
index c35faefeef77a2e27592800812440ac4cd8e54f5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/100-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/100-2.png b/htdocs/public/symbols/icons/100-2.png
deleted file mode 100755
index 9db76b0d4986d9eba15ba05932682e35bf541911..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/100-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/101-1.png b/htdocs/public/symbols/icons/101-1.png
deleted file mode 100755
index 53b96ec99bb6f849169a50bcaf6f7dd4281b5c79..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/101-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/101-2.png b/htdocs/public/symbols/icons/101-2.png
deleted file mode 100755
index 58f049496491c3e3b844a3c0144ea2676036fe93..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/101-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/102-1.png b/htdocs/public/symbols/icons/102-1.png
deleted file mode 100755
index 4612c5179f92f063f43ce70155dcceb068f587a8..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/102-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/102-2.png b/htdocs/public/symbols/icons/102-2.png
deleted file mode 100755
index ef59eb589511bea89a623adc2ccce887893a72a2..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/102-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/103-1.png b/htdocs/public/symbols/icons/103-1.png
deleted file mode 100755
index ef32b1246fbd8e9b83190a97bbd792c0e69fcaf1..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/103-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/103-2.png b/htdocs/public/symbols/icons/103-2.png
deleted file mode 100755
index 0d79074ee16ff3271dbe37d718e72b01942d7910..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/103-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/104-1.png b/htdocs/public/symbols/icons/104-1.png
deleted file mode 100755
index 055eda2431e54223438d4b84867b4ab7b8581b83..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/104-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/104-2.png b/htdocs/public/symbols/icons/104-2.png
deleted file mode 100755
index 65401954192309f3217b088932b70363b896dce1..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/104-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/105-1.png b/htdocs/public/symbols/icons/105-1.png
deleted file mode 100755
index 4e96a707c65d170d23ce43ca371c70841c483906..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/105-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/105-2.png b/htdocs/public/symbols/icons/105-2.png
deleted file mode 100755
index 7a2326796d36812696a7baef326ed7b3e65badb6..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/105-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/106-1.png b/htdocs/public/symbols/icons/106-1.png
deleted file mode 100755
index 816208827476fbea7d7c46dc28ce5bccbdf244ce..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/106-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/106-2.png b/htdocs/public/symbols/icons/106-2.png
deleted file mode 100755
index 4f1e87f26d0a10008b1909453f22853093508557..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/106-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/107-1.png b/htdocs/public/symbols/icons/107-1.png
deleted file mode 100755
index ff8f372d21d2ac5836abd57157afd5f2ebc28d11..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/107-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/107-2.png b/htdocs/public/symbols/icons/107-2.png
deleted file mode 100755
index 16e0cf0c236e217171e5058e0f4a23dcf5bb14fd..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/107-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/108-1.png b/htdocs/public/symbols/icons/108-1.png
deleted file mode 100755
index d5e8910cb2ccbc157b5ac60d80c75a851098ce90..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/108-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/108-2.png b/htdocs/public/symbols/icons/108-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/108-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/109-1.png b/htdocs/public/symbols/icons/109-1.png
deleted file mode 100755
index f0cab5637c013e8b6927904da820563fafc95157..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/109-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/109-2.png b/htdocs/public/symbols/icons/109-2.png
deleted file mode 100755
index 09e2de017db8e791334a903738cf3c5744ab9285..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/109-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/110-1.png b/htdocs/public/symbols/icons/110-1.png
deleted file mode 100755
index 41b1f95e14b598434b6ba4b8bc4bbe68cb6910da..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/110-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/110-2.png b/htdocs/public/symbols/icons/110-2.png
deleted file mode 100755
index 7791a99ca6f293f11b163b1a1552572bcec60c86..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/110-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/111-1.png b/htdocs/public/symbols/icons/111-1.png
deleted file mode 100755
index 276642fac207d9b90214d8a7ec175c9ab85888d0..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/111-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/111-2.png b/htdocs/public/symbols/icons/111-2.png
deleted file mode 100755
index 579be975d5fe2babdd29b018ed5826231a12fc63..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/111-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/112-1.png b/htdocs/public/symbols/icons/112-1.png
deleted file mode 100755
index 1021601b97c19566c5c28d283c07969b6c996e72..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/112-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/112-2.png b/htdocs/public/symbols/icons/112-2.png
deleted file mode 100755
index f0ad8254496ae06a9b1ca64a4c7fb5b4cae29d7e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/112-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/113-1.png b/htdocs/public/symbols/icons/113-1.png
deleted file mode 100755
index ca74259917ef696863603e81321c495ae363dbcd..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/113-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/113-2.png b/htdocs/public/symbols/icons/113-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/113-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/114-1.png b/htdocs/public/symbols/icons/114-1.png
deleted file mode 100755
index a238b6fba7ecf4f513daf5e50f98dfe80350efac..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/114-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/114-2.png b/htdocs/public/symbols/icons/114-2.png
deleted file mode 100755
index 1043d223669a667b1d2b84c7606aa70467356700..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/114-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/115-1.png b/htdocs/public/symbols/icons/115-1.png
deleted file mode 100755
index 9107ffa3f65fffdb7a3b90ecf24bb20e999c67ae..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/115-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/115-2.png b/htdocs/public/symbols/icons/115-2.png
deleted file mode 100755
index 393ab8b2a33f265ed2740f405382d54d77367d74..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/115-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/116-1.png b/htdocs/public/symbols/icons/116-1.png
deleted file mode 100755
index 9fab7f139ed7d67b469d3bb4e7e1e44accc55adf..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/116-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/116-2.png b/htdocs/public/symbols/icons/116-2.png
deleted file mode 100755
index dc309083b57e3d3ec5caa13033cb7f7ed161f7aa..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/116-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/117-1.png b/htdocs/public/symbols/icons/117-1.png
deleted file mode 100755
index 11fc96d8a6bc6e8bcf443649a7b28c422883b0ef..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/117-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/117-2.png b/htdocs/public/symbols/icons/117-2.png
deleted file mode 100755
index f85658d06082a7507eb8513b1db4de6854574df5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/117-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/118-1.png b/htdocs/public/symbols/icons/118-1.png
deleted file mode 100755
index ccfa8dc5939697370deeca8aa089f33357421915..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/118-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/118-2.png b/htdocs/public/symbols/icons/118-2.png
deleted file mode 100755
index ccfa8dc5939697370deeca8aa089f33357421915..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/118-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/119-1.png b/htdocs/public/symbols/icons/119-1.png
deleted file mode 100755
index 15b82d036b5538ef19533929fb62f8a7e3b9db92..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/119-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/119-2.png b/htdocs/public/symbols/icons/119-2.png
deleted file mode 100755
index 4ff4dffcd20887fad57f4e202e57b5b79d5e981f..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/119-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/120-1.png b/htdocs/public/symbols/icons/120-1.png
deleted file mode 100755
index 44db21dee6bd7736ebadefe13649576d4af31330..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/120-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/120-2.png b/htdocs/public/symbols/icons/120-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/120-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/121-1.png b/htdocs/public/symbols/icons/121-1.png
deleted file mode 100755
index e2d581b171e2611a2a857118647d7f4c1191e5d5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/121-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/121-2.png b/htdocs/public/symbols/icons/121-2.png
deleted file mode 100755
index 0e63464fa0e724c0df4ac875171ebfbd09544199..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/121-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/122-1.png b/htdocs/public/symbols/icons/122-1.png
deleted file mode 100755
index bdf4bf2a0c06b3a64ce9ceff9f59d792b337e428..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/122-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/122-2.png b/htdocs/public/symbols/icons/122-2.png
deleted file mode 100755
index 5c7dd40997266f7d1a8dfb58e01da14b5cd8d7e7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/122-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/123-1.png b/htdocs/public/symbols/icons/123-1.png
deleted file mode 100755
index 9a99f2851e16323e5c5174321002f9a79ae4d79b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/123-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/123-2.png b/htdocs/public/symbols/icons/123-2.png
deleted file mode 100755
index 50d955b8f4b97ff3f607b06f7e44a24e98044949..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/123-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/124-1.png b/htdocs/public/symbols/icons/124-1.png
deleted file mode 100755
index 9a99f2851e16323e5c5174321002f9a79ae4d79b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/124-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/124-2.png b/htdocs/public/symbols/icons/124-2.png
deleted file mode 100755
index ba59de5af28f69db5b643af7fa3bd148e95f45fc..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/124-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/125-1.png b/htdocs/public/symbols/icons/125-1.png
deleted file mode 100755
index 9a99f2851e16323e5c5174321002f9a79ae4d79b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/125-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/125-2.png b/htdocs/public/symbols/icons/125-2.png
deleted file mode 100755
index 9a99f2851e16323e5c5174321002f9a79ae4d79b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/125-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/126-1.png b/htdocs/public/symbols/icons/126-1.png
deleted file mode 100755
index 1dc247035738680604f82f8f55cfe9643dd0dd2a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/126-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/126-2.png b/htdocs/public/symbols/icons/126-2.png
deleted file mode 100755
index 1dc247035738680604f82f8f55cfe9643dd0dd2a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/126-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/32-1.png b/htdocs/public/symbols/icons/32-1.png
deleted file mode 100755
index e4c239447755f7db3f1f85b4e4cc5aad646be1d5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/32-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/32-2.png b/htdocs/public/symbols/icons/32-2.png
deleted file mode 100755
index e4c239447755f7db3f1f85b4e4cc5aad646be1d5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/32-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/33-1.png b/htdocs/public/symbols/icons/33-1.png
deleted file mode 100755
index ae42eb642da8673e171020fc78c616c576d1a2f4..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/33-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/33-2.png b/htdocs/public/symbols/icons/33-2.png
deleted file mode 100755
index 07aa19370a19a6cafc84f726262a1b909c15e366..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/33-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/34-1.png b/htdocs/public/symbols/icons/34-1.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/34-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/34-2.png b/htdocs/public/symbols/icons/34-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/34-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/35-1.png b/htdocs/public/symbols/icons/35-1.png
deleted file mode 100755
index f627f33643fb2be54ba9a53dcb387d14b62e6275..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/35-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/35-2.png b/htdocs/public/symbols/icons/35-2.png
deleted file mode 100755
index b3b8706f6275b4826ed1052b6c75370c63301f3e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/35-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/36-1.png b/htdocs/public/symbols/icons/36-1.png
deleted file mode 100755
index 229eb5142ce81e0c0887310786ab141b778a5ccb..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/36-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/36-2.png b/htdocs/public/symbols/icons/36-2.png
deleted file mode 100755
index 4e17c9f926854d29e66e8da55db1e06ba1bb585f..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/36-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/37-1.png b/htdocs/public/symbols/icons/37-1.png
deleted file mode 100755
index 473f8bf0898c5f545cbcafe87c22e351ba81eae6..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/37-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/37-2.png b/htdocs/public/symbols/icons/37-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/37-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/38-1.png b/htdocs/public/symbols/icons/38-1.png
deleted file mode 100755
index e9ee41d309dafe9cc12f918a8c82d306669202ae..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/38-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/38-2.png b/htdocs/public/symbols/icons/38-2.png
deleted file mode 100755
index 5a746b63c83b67a8bd71a8b6ff231aa8354076b1..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/38-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/39-1.png b/htdocs/public/symbols/icons/39-1.png
deleted file mode 100755
index 23685956b2455614e339da0c557017c6f22510e7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/39-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/39-2.png b/htdocs/public/symbols/icons/39-2.png
deleted file mode 100755
index 7f5d1f09c80d07c6325f73b9363fbdc7432b097e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/39-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/40-1.png b/htdocs/public/symbols/icons/40-1.png
deleted file mode 100755
index 6e15bcea1b12b35a183436fabe77e7e24f44944f..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/40-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/40-2.png b/htdocs/public/symbols/icons/40-2.png
deleted file mode 100755
index 485cd977b9ecace737370d2f5c6af1d990f43e4b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/40-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/41-1.png b/htdocs/public/symbols/icons/41-1.png
deleted file mode 100755
index 9e566b39f9a32aa830f8cfb7f26de22fccf571af..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/41-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/41-2.png b/htdocs/public/symbols/icons/41-2.png
deleted file mode 100755
index 356f3812eaf235c7c1f88baf5fd9719e26508a48..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/41-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/42-1.png b/htdocs/public/symbols/icons/42-1.png
deleted file mode 100755
index c4f02de449a1b495540789c7a96bc94fd8c110cc..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/42-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/42-2.png b/htdocs/public/symbols/icons/42-2.png
deleted file mode 100755
index 8377b3af0006601ba2fa2e0c934ecd04e5e5b9cd..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/42-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/43-1.png b/htdocs/public/symbols/icons/43-1.png
deleted file mode 100755
index 935aa24a888948bc9d5bbecdc371a3e04d744c3b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/43-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/43-2.png b/htdocs/public/symbols/icons/43-2.png
deleted file mode 100755
index 78b514349d5c5d88d6375986c6adaec6086996a1..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/43-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/44-1.png b/htdocs/public/symbols/icons/44-1.png
deleted file mode 100755
index 946f15ff9cfa1d304e5be1e1c2ffb3cf2635b58d..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/44-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/44-2.png b/htdocs/public/symbols/icons/44-2.png
deleted file mode 100755
index d74dc8652b2cea23681141cbaf2cc22adffbf46d..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/44-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/45-1.png b/htdocs/public/symbols/icons/45-1.png
deleted file mode 100755
index c1431907c8ef004665ba0c13c430eb191320762a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/45-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/45-2.png b/htdocs/public/symbols/icons/45-2.png
deleted file mode 100755
index 6abb770bb874389650ccbf3c9a0850d2a9f231bc..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/45-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/46-1.png b/htdocs/public/symbols/icons/46-1.png
deleted file mode 100755
index 86e57b13395c177939ad24d5f9b90bb161ca8858..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/46-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/46-2.png b/htdocs/public/symbols/icons/46-2.png
deleted file mode 100755
index 27b2263df191384d248e7f638ef7c5d3b9a78d45..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/46-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/47-1.png b/htdocs/public/symbols/icons/47-1.png
deleted file mode 100755
index 3476187a2d78c283847d22affa3b317637f68be4..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/47-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/47-2.png b/htdocs/public/symbols/icons/47-2.png
deleted file mode 100755
index aeaa4d485583ed6a2af0d7bca9bcd52e30d476fe..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/47-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/48-1.png b/htdocs/public/symbols/icons/48-1.png
deleted file mode 100755
index 4c6ba20d8a8cfe2cce8ab542d9b3bb3974efc10a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/48-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/48-2.png b/htdocs/public/symbols/icons/48-2.png
deleted file mode 100755
index fef9f60f5b70b9ece1bf5891c07be8329e101ced..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/48-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/49-1.png b/htdocs/public/symbols/icons/49-1.png
deleted file mode 100755
index e2eff03667562608b11858fadb9e50e1641a9371..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/49-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/49-2.png b/htdocs/public/symbols/icons/49-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/49-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/50-1.png b/htdocs/public/symbols/icons/50-1.png
deleted file mode 100755
index 9a15de1617cb1f01ca47aea3991724630ce5c1e7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/50-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/50-2.png b/htdocs/public/symbols/icons/50-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/50-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/51-1.png b/htdocs/public/symbols/icons/51-1.png
deleted file mode 100755
index 2885b1727bc189ce28891680efa1041daf7af971..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/51-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/51-2.png b/htdocs/public/symbols/icons/51-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/51-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/52-1.png b/htdocs/public/symbols/icons/52-1.png
deleted file mode 100755
index 2febcd239483778bfccddbffcecc48ddca657f18..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/52-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/52-2.png b/htdocs/public/symbols/icons/52-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/52-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/53-1.png b/htdocs/public/symbols/icons/53-1.png
deleted file mode 100755
index 31406b4b787f36bec01c1f20ff8ce835d55c992a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/53-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/53-2.png b/htdocs/public/symbols/icons/53-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/53-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/54-1.png b/htdocs/public/symbols/icons/54-1.png
deleted file mode 100755
index c244d84389d105328c01be0972f0789259c3a007..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/54-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/54-2.png b/htdocs/public/symbols/icons/54-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/54-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/55-1.png b/htdocs/public/symbols/icons/55-1.png
deleted file mode 100755
index 3e72b3c515c2394eaf6878339a7feca4af8addf5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/55-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/55-2.png b/htdocs/public/symbols/icons/55-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/55-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/56-1.png b/htdocs/public/symbols/icons/56-1.png
deleted file mode 100755
index 537faabd8da10a1ffa2b30feedb3d671ca95f1bf..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/56-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/56-2.png b/htdocs/public/symbols/icons/56-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/56-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/57-1.png b/htdocs/public/symbols/icons/57-1.png
deleted file mode 100755
index a8324072a3e51974849979fbb716cc92549376ca..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/57-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/57-2.png b/htdocs/public/symbols/icons/57-2.png
deleted file mode 100755
index 148ef50a59fadbbae0879edba48a594a19a60d67..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/57-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/58-1.png b/htdocs/public/symbols/icons/58-1.png
deleted file mode 100755
index 76793e577ac62bc971af8606cccde31ed4e5ce68..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/58-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/58-2.png b/htdocs/public/symbols/icons/58-2.png
deleted file mode 100755
index 330114382a8d71be56d66e8ce802860833e9d005..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/58-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/59-1.png b/htdocs/public/symbols/icons/59-1.png
deleted file mode 100755
index fde1341883cecc957c825353b9cde13453c13474..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/59-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/59-2.png b/htdocs/public/symbols/icons/59-2.png
deleted file mode 100755
index 86e8b06f4ed3190a33203b8f954b6d53fa3bfa73..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/59-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/60-1.png b/htdocs/public/symbols/icons/60-1.png
deleted file mode 100755
index fc326d3d5b38ffbfb5756a35ffcff248f572728f..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/60-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/60-2.png b/htdocs/public/symbols/icons/60-2.png
deleted file mode 100755
index 217f9ef55b020b136b39b68d78f9d074070fcdd8..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/60-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/61-1.png b/htdocs/public/symbols/icons/61-1.png
deleted file mode 100755
index 227c9f0f41782487a4f257b1c366566f6cbb0a49..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/61-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/61-2.png b/htdocs/public/symbols/icons/61-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/61-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/62-1.png b/htdocs/public/symbols/icons/62-1.png
deleted file mode 100755
index 7919b1508e492799e62b893d3700fe0c3c15f2b9..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/62-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/62-1.svg b/htdocs/public/symbols/icons/62-1.svg
deleted file mode 100755
index 6ca9118ad271eef3a9eb86fe77e6431896491a9b..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/icons/62-1.svg
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3406"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   width="20"
-   height="20"
-   viewBox="0 0 20 20"
-   sodipodi:docname="62-1.svg"
-   enable-background="new">
-  <metadata
-     id="metadata3412">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3410">
-    <linearGradient
-       id="linearGradient4149"
-       osb:paint="solid">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4151" />
-    </linearGradient>
-  </defs>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview3408"
-     showgrid="false"
-     inkscape:object-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:zoom="45.95"
-     inkscape:cx="4.6898803"
-     inkscape:cy="9.3630291"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer2" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Layer 1"
-     style="display:inline">
-    <path
-       style="fill:#b3b3b3;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 2.4693829,10.743841 4.4511829,-5.1943307 4.8966272,0.021763 3.156422,5.1642207"
-       id="path4376"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 2.4693829,10.743841 -1.8600249,2.030914 -0.0217628,1.741023 1.4145811,1.196953 4.9619151,1.08814 6.0718176,-0.02176 4.940152,-1.153428 1.414581,-1.305767 -0.0029,-3.587369 z"
-       id="path4370"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 9.3580451,16.792292 -0.02181,-1.362477 0,0"
-       id="path4378"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 8.1397624,5.5598044 4.43e-5,7.7524236"
-       id="path4374"
-       inkscape:connector-curvature="0" />
-    <path
-       style="opacity:1;fill:#666666;fill-opacity:1;stroke:#000000;stroke-width:1.107;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4334-4"
-       sodipodi:type="arc"
-       sodipodi:cx="4.8639832"
-       sodipodi:cy="16.213278"
-       sodipodi:rx="1.7530049"
-       sodipodi:ry="1.7856489"
-       sodipodi:start="3.1415927"
-       sodipodi:end="3.1406327"
-       sodipodi:open="true"
-       d="M 3.1109782,16.213278 A 1.7530049,1.7856489 0 0 1 4.8635625,14.427629 1.7530049,1.7856489 0 0 1 6.6169879,16.212421 1.7530049,1.7856489 0 0 1 4.8652452,17.998926 1.7530049,1.7856489 0 0 1 3.1109791,16.214992" />
-    <path
-       style="opacity:1;fill:#666666;fill-opacity:1;stroke:#000000;stroke-width:1.107;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4334-4-4"
-       sodipodi:type="arc"
-       sodipodi:cx="15.081611"
-       sodipodi:cy="16.16975"
-       sodipodi:rx="1.7530049"
-       sodipodi:ry="1.7856489"
-       sodipodi:start="3.1415927"
-       sodipodi:end="3.1406327"
-       sodipodi:open="true"
-       d="m 13.328606,16.16975 a 1.7530049,1.7856489 0 0 1 1.752584,-1.785649 1.7530049,1.7856489 0 0 1 1.753425,1.784792 1.7530049,1.7856489 0 0 1 -1.751742,1.786506 1.7530049,1.7856489 0 0 1 -1.754266,-1.783935" />
-    <path
-       style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:#1a1a1a;stroke-width:0.40162328;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4380"
-       sodipodi:type="arc"
-       sodipodi:cx="1.5112727"
-       sodipodi:cy="11.812865"
-       sodipodi:rx="0.84983104"
-       sodipodi:ry="0.8436057"
-       sodipodi:start="2.3268943"
-       sodipodi:end="5.4319826"
-       d="M 0.92821389,12.426604 A 0.84983104,0.8436057 0 0 1 0.88246619,11.245375 0.84983104,0.8436057 0 0 1 2.0713785,11.178412 L 1.5112727,11.812865 Z" />
-    <path
-       style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:#1a1a1a;stroke-width:0.50709417;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4380-4"
-       sodipodi:type="arc"
-       sodipodi:cx="5.4738126"
-       sodipodi:cy="20.904537"
-       sodipodi:rx="1.1014514"
-       sodipodi:ry="1.1388382"
-       sodipodi:start="2.288325"
-       sodipodi:end="5.4377386"
-       d="m 4.7495811,21.762575 a 1.1014514,1.1388382 0 0 1 -0.3560156,-1.080423 1.1014514,1.1388382 0 0 1 0.729113,-0.857034 1.1014514,1.1388382 0 0 1 1.0818337,0.227264 l -0.7306996,0.852155 z"
-       transform="matrix(0.85691816,-0.51545249,0.70172322,0.71244966,0,0)" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/icons/62-2.png b/htdocs/public/symbols/icons/62-2.png
deleted file mode 100755
index 0f2bf5b36e9e8fb6087009cecac20c696cefa5d0..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/62-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/63-1.png b/htdocs/public/symbols/icons/63-1.png
deleted file mode 100755
index 476e3121d349491ac9b059324c840544eab62a05..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/63-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/63-2.png b/htdocs/public/symbols/icons/63-2.png
deleted file mode 100755
index 6a6d597fb43208a79cff06b4722550777b98b4bf..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/63-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/64-1.png b/htdocs/public/symbols/icons/64-1.png
deleted file mode 100755
index d37e76f70eac706a3a940c5a687cb6283de7acf7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/64-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/64-2.png b/htdocs/public/symbols/icons/64-2.png
deleted file mode 100755
index 655d57f257b45d238bb6dac46366730bd89179d2..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/64-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/65-1.png b/htdocs/public/symbols/icons/65-1.png
deleted file mode 100755
index 4b4bf358c9adbf1b064b5ae362faf1ea583f8442..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/65-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/65-2.png b/htdocs/public/symbols/icons/65-2.png
deleted file mode 100755
index 29c4b7d9070add1d70e1ead7fd4ba957e542fdcc..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/65-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/66-1.png b/htdocs/public/symbols/icons/66-1.png
deleted file mode 100755
index 2dce183c93c0a998bfcd4dfe7f332dff1662503c..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/66-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/66-2.png b/htdocs/public/symbols/icons/66-2.png
deleted file mode 100755
index 4bc23cf550880f04a6d6b9d01ffb017d27fad852..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/66-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/67-1.png b/htdocs/public/symbols/icons/67-1.png
deleted file mode 100755
index 548fb93b2b207a7d1974e3793146587a788405ff..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/67-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/67-2.png b/htdocs/public/symbols/icons/67-2.png
deleted file mode 100755
index 2fa7f60047c2cc274f2e999db47042105a3effcf..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/67-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/68-1.png b/htdocs/public/symbols/icons/68-1.png
deleted file mode 100755
index 9a99f2851e16323e5c5174321002f9a79ae4d79b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/68-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/68-2.png b/htdocs/public/symbols/icons/68-2.png
deleted file mode 100755
index 8e31f43a854ea60f6e2d0340979c15dd3946a3be..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/68-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/69-1.png b/htdocs/public/symbols/icons/69-1.png
deleted file mode 100755
index d60450fd28667e5e773dc9a42c5116fad1d4f39e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/69-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/69-2.png b/htdocs/public/symbols/icons/69-2.png
deleted file mode 100755
index f6fab0f13f258e57cedbf1d7cca908aa95972024..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/69-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/70-1.png b/htdocs/public/symbols/icons/70-1.png
deleted file mode 100755
index 3576fa91f69f6a7edf05f9b10acbe91820768d8a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/70-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/70-2.png b/htdocs/public/symbols/icons/70-2.png
deleted file mode 100755
index cc3488904a5c5c57c06ca98a6b2956c902c206ec..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/70-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/71-1.png b/htdocs/public/symbols/icons/71-1.png
deleted file mode 100755
index f372c554e042dae568086d3c1d18c035038db56d..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/71-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/71-2.png b/htdocs/public/symbols/icons/71-2.png
deleted file mode 100755
index 0df603172423e780482af59399528a7a577d5897..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/71-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/72-1.png b/htdocs/public/symbols/icons/72-1.png
deleted file mode 100755
index dbd286935393791a158bd932b431893fea0ca973..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/72-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/72-2.png b/htdocs/public/symbols/icons/72-2.png
deleted file mode 100755
index f1b1e57928b5bcba1e5ce66891658ae3aa48e71c..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/72-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/73-1.png b/htdocs/public/symbols/icons/73-1.png
deleted file mode 100755
index 2354f488479173396619914702e2fa381c2ce7ce..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/73-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/73-2.png b/htdocs/public/symbols/icons/73-2.png
deleted file mode 100755
index 5cc39dd8e603fde9ae9d526873d7a7ce46327bf7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/73-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/74-1.png b/htdocs/public/symbols/icons/74-1.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/74-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/74-2.png b/htdocs/public/symbols/icons/74-2.png
deleted file mode 100755
index 0ae51340cbda1e553868e147d304abc06470ca0e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/74-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/75-1.png b/htdocs/public/symbols/icons/75-1.png
deleted file mode 100755
index 30bece8d49f0a8e964aca1ae35de78c8684314f7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/75-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/75-2.png b/htdocs/public/symbols/icons/75-2.png
deleted file mode 100755
index eba53c6d14379fefc04bdf30ae500e072231fab5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/75-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/76-1.png b/htdocs/public/symbols/icons/76-1.png
deleted file mode 100755
index 74b3e85a9722e0e18e2df915ab1884f2ef6aec3b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/76-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/76-2.png b/htdocs/public/symbols/icons/76-2.png
deleted file mode 100755
index 1d090821055880f13d748edd83fc59c0a0eb3841..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/76-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/77-1.png b/htdocs/public/symbols/icons/77-1.png
deleted file mode 100755
index a00e2c4d0a9879e2ccb8296d05514a7dbceda49a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/77-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/77-2.png b/htdocs/public/symbols/icons/77-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/77-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/78-1.png b/htdocs/public/symbols/icons/78-1.png
deleted file mode 100755
index bc352a0b20bc4bed3e8c7f10d22768252ff917bd..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/78-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/78-2.png b/htdocs/public/symbols/icons/78-2.png
deleted file mode 100755
index b49eaefba74ff79ab700bc3f55a9ce5af3cf18aa..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/78-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/79-1.png b/htdocs/public/symbols/icons/79-1.png
deleted file mode 100755
index 1bcf0061934f3c20b2a7f963445798dd752e9ad8..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/79-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/79-2.png b/htdocs/public/symbols/icons/79-2.png
deleted file mode 100755
index 2cc4e5417557de1eca35c5885dd22d992ce5c31d..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/79-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/80-1.png b/htdocs/public/symbols/icons/80-1.png
deleted file mode 100755
index f037b7fcdc5c86989a3476f1c4127b0bf85ab027..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/80-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/80-2.png b/htdocs/public/symbols/icons/80-2.png
deleted file mode 100755
index a736df9c42c956e7dae85ce86bb034a1fdbb6341..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/80-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/81-1.png b/htdocs/public/symbols/icons/81-1.png
deleted file mode 100755
index 43753804d2ba69f699ed0b59058545d8304a71b2..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/81-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/81-2.png b/htdocs/public/symbols/icons/81-2.png
deleted file mode 100755
index 304182be1e7a5eecc623070d9481e056c335be69..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/81-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/82-1.png b/htdocs/public/symbols/icons/82-1.png
deleted file mode 100755
index 588818dc9411621f04da72fd130470739af4e7b1..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/82-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/82-2.png b/htdocs/public/symbols/icons/82-2.png
deleted file mode 100755
index a3eac8a3f56e953553e649d355f48db10f66e72b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/82-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/83-1.png b/htdocs/public/symbols/icons/83-1.png
deleted file mode 100755
index 2b870affa4cd624357597de967fabd603c186b8a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/83-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/83-2.png b/htdocs/public/symbols/icons/83-2.png
deleted file mode 100755
index 5ffb898d9662cb78e8d8d2d2126ea4e48ae9cfd1..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/83-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/84-1.png b/htdocs/public/symbols/icons/84-1.png
deleted file mode 100755
index ac19132f2a620076c53747448698782185680f0a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/84-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/84-2.png b/htdocs/public/symbols/icons/84-2.png
deleted file mode 100755
index fe9dd5d742296290cc5281f01e1c9bb8f2453135..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/84-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/85-1.png b/htdocs/public/symbols/icons/85-1.png
deleted file mode 100755
index 2b874b734dadee76f5ed49500c8879cdd50206de..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/85-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/85-2.png b/htdocs/public/symbols/icons/85-2.png
deleted file mode 100755
index 5657beefed36435e3992f9e499449173a0569e58..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/85-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/86-1.png b/htdocs/public/symbols/icons/86-1.png
deleted file mode 100755
index 990682cf3e3c6e48afcf3a1d1d96cde6fa99c16b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/86-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/86-2.png b/htdocs/public/symbols/icons/86-2.png
deleted file mode 100755
index e325cd800db9e41f5c3488258ec47f896fece82a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/86-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/87-1.png b/htdocs/public/symbols/icons/87-1.png
deleted file mode 100755
index 967246f286f112c89ab3faf446a351b880795a8b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/87-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/87-2.png b/htdocs/public/symbols/icons/87-2.png
deleted file mode 100755
index bdefa72a7ace4aeb8794e5d64ef49a17fed16474..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/87-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/88-1.png b/htdocs/public/symbols/icons/88-1.png
deleted file mode 100755
index 417eb64bc3777f42b32f1f0379f9c8e2cca66dce..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/88-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/88-2.png b/htdocs/public/symbols/icons/88-2.png
deleted file mode 100755
index 32ff405e906ebcb7c24bdc8b351de40a9a7f03fa..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/88-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/89-1.png b/htdocs/public/symbols/icons/89-1.png
deleted file mode 100755
index 9e52ef517898574c7da37213567f232f1c00adbf..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/89-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/89-2.png b/htdocs/public/symbols/icons/89-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/89-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/90-1.png b/htdocs/public/symbols/icons/90-1.png
deleted file mode 100755
index bad1b738c2757c4e7f06e7afb57a07ee66aa23b0..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/90-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/90-2.png b/htdocs/public/symbols/icons/90-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/90-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/91-1.png b/htdocs/public/symbols/icons/91-1.png
deleted file mode 100755
index 4e56743e1227b9a4ada96c482e9ce28dc751f248..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/91-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/91-2.png b/htdocs/public/symbols/icons/91-2.png
deleted file mode 100755
index c1cefdfed647500ea591a9d25aee4a9b78752d8e..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/91-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/92-1.png b/htdocs/public/symbols/icons/92-1.png
deleted file mode 100755
index a88ae2cb57c24b6b4f12ba9999ae7195ccb40268..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/92-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/92-2.png b/htdocs/public/symbols/icons/92-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/92-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/93-1.png b/htdocs/public/symbols/icons/93-1.png
deleted file mode 100755
index 51244768f13981197b89ed17943ab23dec852ba2..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/93-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/93-2.png b/htdocs/public/symbols/icons/93-2.png
deleted file mode 100755
index dee7bb238f0b1cc57e6ca81f1016dbd165ed8928..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/93-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/94-1.png b/htdocs/public/symbols/icons/94-1.png
deleted file mode 100755
index 4575d4e1c35e92c5de151d3a637755b6789b1632..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/94-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/94-2.png b/htdocs/public/symbols/icons/94-2.png
deleted file mode 100755
index f4ea80a4648f6bf007a4544367b8e530cb5f6d9a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/94-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/95-1.png b/htdocs/public/symbols/icons/95-1.png
deleted file mode 100755
index d1fcfe56ad72c0699caac980b028d2c088317f04..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/95-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/95-2.png b/htdocs/public/symbols/icons/95-2.png
deleted file mode 100755
index 0339a3c42fd95f6bfb406f3ee220afeecd8743a0..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/95-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/96-1.png b/htdocs/public/symbols/icons/96-1.png
deleted file mode 100755
index f9084733c9f4bef00d7ae343aa049e87d33ff213..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/96-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/96-2.png b/htdocs/public/symbols/icons/96-2.png
deleted file mode 100755
index 58a29620497e901cc1b3f0ce06987becfdfb8d8d..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/96-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/97-1.png b/htdocs/public/symbols/icons/97-1.png
deleted file mode 100755
index 192b503d4654bc5e3198b9c1321bfe646914f390..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/97-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/97-2.png b/htdocs/public/symbols/icons/97-2.png
deleted file mode 100755
index 8ddf159848806235ec3d017e75ab7b87887b8f6d..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/97-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/98-1.png b/htdocs/public/symbols/icons/98-1.png
deleted file mode 100755
index 99aaeaac0f633dc7c3440421703d482f37b64894..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/98-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/98-2.png b/htdocs/public/symbols/icons/98-2.png
deleted file mode 100755
index 9ed506b8b0dd865b75ba45380ec9d079977895bd..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/98-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/99-1.png b/htdocs/public/symbols/icons/99-1.png
deleted file mode 100755
index 3c0e000ba2e2541c01c313ae960021179f7e1eb8..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/99-1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/99-2.png b/htdocs/public/symbols/icons/99-2.png
deleted file mode 100755
index 417eee9c155752e092150b0793a6294b6dd79dd7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/99-2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/Icon-set.gif b/htdocs/public/symbols/icons/Icon-set.gif
deleted file mode 100755
index 5c33bf91d699fd6efb24e893ab64b1c64e9d201b..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/Icon-set.gif and /dev/null differ
diff --git a/htdocs/public/symbols/icons/dot.png b/htdocs/public/symbols/icons/dot.png
deleted file mode 100755
index 0d77c340b05896966921ea47c2423b2a76ae35da..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/dot.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/dotColor0.png b/htdocs/public/symbols/icons/dotColor0.png
deleted file mode 100755
index faaba3d32c2218c0dce98fa8d8c35c051273e68a..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/dotColor0.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/dotColor1.png b/htdocs/public/symbols/icons/dotColor1.png
deleted file mode 100755
index c52ccc7ddc9436361e94f0bc4542f79280daf3f7..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/dotColor1.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/dotColor2.png b/htdocs/public/symbols/icons/dotColor2.png
deleted file mode 100755
index 61084ba3eb697adbd3bb5912ce11be5f3e786ff5..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/dotColor2.png and /dev/null differ
diff --git a/htdocs/public/symbols/icons/dotColor3.png b/htdocs/public/symbols/icons/dotColor3.png
deleted file mode 100755
index 3571cbe9e405086c368b10e574f93e3285fd9048..0000000000000000000000000000000000000000
Binary files a/htdocs/public/symbols/icons/dotColor3.png and /dev/null differ
diff --git a/htdocs/public/symbols/svgicons/100-1.svg b/htdocs/public/symbols/svgicons/100-1.svg
deleted file mode 100755
index 4f44880d30e95c721afd40210dad5f40ed62e257..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/100-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3957"/>
- <path d="m 2.3225454,23.562785 19.2338326,0 0,-11.58873 2.006407,0 L 12.025945,0.43721472 0.43721467,12.025945 l 1.91992393,0 z" id="path3961" inkscape:connector-curvature="0" fill="#ff0000" stroke="#000000" stroke-linejoin="round" stroke-width="0.874"/>
- <text x="3.626" y="18.335" id="text4509" sodipodi:linespacing="125%" transform="scale(0.86944981,1.1501526)" fill="#e6e6e6" font-family="Sans" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="8.05"><tspan sodipodi:role="line" id="tspan4511" x="3.626" y="18.335">FIRE</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/100-2.svg b/htdocs/public/symbols/svgicons/100-2.svg
deleted file mode 100755
index d65a4284233781d0531208b587a9beb0804c1380..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/100-2.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
-  <text x="1.773" y="8.688" id="text2985" sodipodi:linespacing="125%" font-family="Sans" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="9"><tspan sodipodi:role="line" id="tspan2987" x="1.773" y="8.688">D</tspan>
-  </text>
-  <text x="14.825" y="8.688" id="text2985-9" sodipodi:linespacing="125%" font-family="Sans" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="9"><tspan sodipodi:role="line" id="tspan2987-2" x="14.825" y="8.688">X</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/101-1.svg b/htdocs/public/symbols/svgicons/101-1.svg
deleted file mode 100755
index a77b74a1648c995b4a5edd802129054e6f3bee1c..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/101-1.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="-0.258 -0.548 24.000001 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="101-1.svg">
-  <defs
-     id="defs10" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview8"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="-5.440678"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4206">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g4752"
-     transform="matrix(0.94457081,0,0,0.94457081,-48.338123,48.378111)">
-    <path
-       d="m 60.945313,-47.661027 c 0.925776,0 1.674641,-0.747216 1.674641,-1.667339 0,-0.92766 -0.749101,-1.674641 -1.674641,-1.674641 -0.920122,0 -1.667339,0.747217 -1.667339,1.674641 0,0.920123 0.747217,1.667339 1.667339,1.667339 z"
-       id="path4198"
-       inkscape:connector-curvature="0"
-       style="fill:#231f20" />
-    <path
-       d="m 73.362252,-42.848406 -1.770517,-0.338744 -1.030603,2.048249 c 0.167488,0.03863 0.340393,0.05701 0.517068,0.05701 1.098917,2.36e-4 2.01904,-0.746981 2.284052,-1.766512 z m -21.756674,3.458114 c 0,-1.358275 1.098681,-2.462375 2.456957,-2.462375 l 5.180575,0 0,-3.721242 c 0,-0.925776 0.747217,-1.672992 1.674642,-1.672992 0.925775,0 1.672992,0.747216 1.672992,1.672992 l 0,0.57596 2.468029,0.631318 c 0.430615,0.09941 0.706699,0.530024 0.609174,0.960639 -0.09752,0.437918 -0.530024,0.708584 -0.966293,0.61106 l -2.11091,-0.495161 0,1.437426 2.484518,0 6.79821,-7.033776 -0.202351,1.829408 3.347633,2.224925 c 0.552168,0.316601 0.752635,1.030602 0.437918,1.58277 -0.248522,0.441687 -0.743447,0.65511 -1.209162,0.568657 l -0.27043,-0.0497 c -0.322019,1.302917 -1.499851,2.263557 -2.898644,2.263557 -0.276084,0 -0.54463,-0.04052 -0.798806,-0.108596 l -2.535872,5.180575 0,7.107509 c 0,0.609174 -0.500578,1.104335 -1.109753,1.104335 -0.609174,0 -1.104335,-0.495161 -1.104335,-1.104335 l 0,-7.269578 -5.59635,0 -1.001157,1.713274 2.09442,4.992829 c 0.30553,0.535442 0.114014,1.207278 -0.414125,1.507154 -0.535443,0.303645 -1.207278,0.114014 -1.512808,-0.414126 l -2.444001,-5.763602 0,-1.834827 -1.093263,1.720813 0,5.348063 c 0,0.609174 -0.495161,1.104335 -1.104335,1.104335 -0.609175,0 -1.109753,-0.495161 -1.109753,-1.104335 l 0,-6.176315 0.914704,-1.431772 0,-4.843951 -0.909051,1.391255 0,4.032189 -1.748373,0 0,-4.074356 z"
-       id="path4200"
-       inkscape:connector-curvature="0"
-       style="fill:#231f20" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/101-2.svg b/htdocs/public/symbols/svgicons/101-2.svg
deleted file mode 100755
index 27c2148924d1fe5f520888d31b29270b685e2dd2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/101-2.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3064"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <path inkscape:connector-curvature="0" id="path4305" d="m 21.887317,1035.9366 c -0.04771,0 -0.09492,0 -0.141903,0.01 -0.597417,0.034 -1.132448,0.2812 -1.450926,0.6765 -0.114029,0.1416 -0.356407,0.1856 -0.541427,0.098 -0.120747,-0.057 -0.186751,-0.1554 -0.186832,-0.2563 0,-0.054 0.01842,-0.1085 0.05808,-0.1576 0.470154,-0.5838 1.272944,-0.9406 2.162251,-0.9657 -0.07538,-1.9228 -2.096246,-3.4714 -4.60875,-3.5349 0.153647,0.3492 0.264017,0.7142 0.325154,1.0919 0.02671,0.1649 -0.126498,0.3152 -0.342209,0.3357 -0.0039,4e-4 -0.0077,3e-4 -0.01174,5e-4 -0.01238,0 -0.02486,0 -0.03704,0 -0.19576,0 -0.365416,-0.1116 -0.390113,-0.264 -0.06388,-0.3948 -0.187836,-0.7742 -0.364008,-1.1332 -0.403386,-0.8222 -1.081649,-1.5369 -1.94461,-2.0838 -0.117327,-0.074 -0.238033,-0.1454 -0.361917,-0.2135 -1.075092,-0.5898 -2.389908,-0.9346 -3.797595,-0.9346 -0.120263,0 -0.239924,0 -0.3589004,0.01 -0.6587147,0.028 -1.2965944,0.1304 -1.8964644,0.2993 -1.6054185,0.4524 -2.9383334,1.3778 -3.6691258,2.5956 0.096694,-0.01 0.1940307,-0.01 0.2920515,-0.01 1.0352724,0 2.0340235,0.2333 2.888257,0.6747 0.1124203,0.058 0.173075,0.1527 0.1731957,0.2492 8.04e-5,0.058 -0.0218,0.1168 -0.067493,0.1685 -0.1217117,0.1378 -0.3663014,0.1739 -0.546375,0.08 -0.7235926,-0.3738 -1.5699427,-0.5714 -2.4475854,-0.5714 -0.2474454,0 -0.4900641,0.015 -0.7264082,0.046 -0.068377,0.028 -0.1471319,0.041 -0.2269322,0.034 -0.027873,0.01 -0.055667,0.01 -0.083339,0.014 -1.9151274,0.357 -3.3410755,1.6796 -3.3410755,3.2525 0,4e-4 -4.022e-5,7e-4 -4.022e-5,0 6.8377e-4,2.0145 2.13666982,3.6474 4.77148832,3.6474 l 12.0025086,0 4.47638,0 c 1.249454,0 2.262645,-0.7746 2.262645,-1.7302 0,-0.788 -0.838548,-1.4292 -1.869194,-1.4292 z" fill="#b3b3b3" stroke="#808080" stroke-width="0.487"/>
-  <g id="g4307" transform="matrix(0.04105515,0,0,0.04105515,-0.19392772,1024.4556)">
-   <path inkscape:connector-curvature="0" id="path4309" d="m 45.378,497.42 c -3.818,10.365 1.488,21.863 11.853,25.682 2.281,0.84 4.616,1.238 6.912,1.238 8.14,0 15.791,-5.008 18.769,-13.092 l 49.855,-135.322 -42.627,0 -44.762,121.494 z" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" id="path4311" d="m 181.378,497.42 c -3.818,10.365 1.488,21.863 11.853,25.682 2.281,0.84 4.616,1.238 6.912,1.238 8.14,0 15.791,-5.008 18.769,-13.092 l 49.855,-135.322 -42.627,0 -44.762,121.494 z" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" id="path4313" d="m 317.379,497.42 c -3.818,10.365 1.488,21.863 11.853,25.682 2.28,0.84 4.616,1.238 6.912,1.238 8.14,0 15.79,-5.008 18.769,-13.092 l 49.855,-135.322 -42.628,0 -44.761,121.494 z" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" id="path4315" d="m 498.139,375.926 -44.76,121.494 c -3.818,10.365 1.488,21.863 11.853,25.682 2.28,0.84 4.616,1.238 6.912,1.238 8.14,0 15.79,-5.008 18.769,-13.092 l 49.855,-135.322 -42.629,0 z" fill="#b3b3b3"/>
-  </g>
-  <circle id="circle4505" transform="matrix(0.98480773,-0.17364829,0.17364829,0.98480773,0,0)" r="1.219" cy="1026.49" cx="-174" fill="#80b3ff"/>
-  <circle id="circle4515" transform="matrix(0.98480773,-0.17364829,0.17364829,0.98480773,0,0)" r="1.219" cy="1029.18" cx="-175.93" fill="#80b3ff"/>
-  <circle id="circle4505-8" transform="matrix(0.98480773,-0.17364829,0.17364829,0.98480773,0,0)" r="1.219" cy="1027.47" cx="-168.42" fill="#80b3ff"/>
-  <circle id="circle4515-0" transform="matrix(0.98480773,-0.17364829,0.17364829,0.98480773,0,0)" r="1.219" cy="1030.17" cx="-170.34" fill="#80b3ff"/>
-  <circle id="circle4505-8-9" transform="matrix(0.98480773,-0.17364829,0.17364829,0.98480773,0,0)" r="1.219" cy="1028.42" cx="-163.01" fill="#80b3ff"/>
-  <circle id="circle4515-0-6" transform="matrix(0.98480773,-0.17364829,0.17364829,0.98480773,0,0)" r="1.219" cy="1031.12" cx="-164.94" fill="#80b3ff"/>
-  <text x="-0.156" y="1052.23" id="text3098" sodipodi:linespacing="125%" fill="#1a1a1a" font-family="Sans" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="7"><tspan sodipodi:role="line" id="tspan3100" x="-0.156" y="1052.23">SLEET</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/102-1.svg b/htdocs/public/symbols/svgicons/102-1.svg
deleted file mode 100755
index 4816ec49cce549e4d259665553ccf9394907528f..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/102-1.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata16"/>
- <rect x="-16.834" y="8.951" height="5.149" width="16.834" id="rect6" transform="scale(-1,1)" fill="#ff0000"/>
- <path inkscape:connector-curvature="0" d="m 17.262338,8.262819 0,6.38346 -10.0774435,0.0082 c 0.5913749,0.483155 0.9605805,1.149107 0.9557546,2.023167 l 10.0037429,-0.006 c 0.09583,-3.391009 4.906836,-3.379471 5.011375,-0.0196 0.722587,-0.0054 0.822818,-0.169504 0.829785,-0.835124 l 0,-2.54551 c 0.0091,-1.137564 0.151138,-0.386644 -0.690943,-2.543831 C 22.428158,8.4281362 22.667023,8.6406854 21.883322,8.5813386 L 17.262338,8.262819 Z m 2.001581,3.763825 -0.03988,-2.7121043 2.57251,0.1595355 c 0.468983,0.031418 0.472886,0.034362 0.638143,0.5783168 l 0.658084,1.754891 c 0.22108,0.538266 0.185892,0.696875 -0.418781,0.6182 l -3.410073,-0.398839 z m -19.25064324,2.632702 -0.00490023,1.434155 1.66120227,0.588036 1.4585673,-9.33e-4 c -0.00594,-0.831598 0.3396595,-1.53102 0.9524215,-2.022334 l -4.06729084,0.0011 z" id="path4" fill="#ff0000" fill-rule="evenodd"/>
- <circle r="1.472" cx="-5.635" cy="16.624" id="circle10" transform="scale(-1,1)" fill="none" stroke="#000000" stroke-width="1.487"/>
- <path d="m 0.06519882,5.2563742 3.67926758,0 0,2.9947522 -2.84501464,0 C 0.22810636,8.3130312 0.02206606,7.9484071 0.03311293,7.3847869 Z" id="path4266" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" fill="#1a1a1a" fill-rule="evenodd" stroke-width="3.488"/>
- <path id="path4230-7" d="m 4.2792429,6.4865296 0,1.4332034 3.123098,0 0,-1.4118114 z m 7.6580091,0 0,1.4332034 3.123097,0 0,-1.4118114 z m -3.8290057,0 0,1.4332034 3.1230987,0 0,-1.4118114 z m -6.609845,1.4009481 2.0107626,-1.3904208 0,1.4118117 -2.0963258,0 m 15.3587959,-2.0749345 -13.818638,0 -2.28884665,1.7326778 0,0.9412071 16.17165965,0 0,-0.6203413 -1.026772,0 0,-1.4118114 0.98399,0 z" inkscape:connector-curvature="0" fill="#4d4d4d" fill-rule="evenodd" stroke-width="3.488"/>
- <path inkscape:connector-curvature="0" d="m 21.614958,8.1381339 0.02868,-0.4101547 -0.535784,-0.037466 0.01815,-0.2595229 C 21.158279,6.9694151 20.781066,6.5681619 20.282189,6.533277 19.784115,6.4984483 19.355121,6.8435282 19.322858,7.3049026 l -0.01815,0.2595228 -0.524293,-0.036662 -0.02868,0.4101547 2.863221,0.2002159 z" id="path3" fill="#0000ff" stroke="#000000" stroke-width="0"/>
- <path d="M 21.214851,7.0125175 21.738875,6.8378429" id="path4411" inkscape:connector-curvature="0" fill="#0000ff" fill-rule="evenodd" stroke="#0000ff" stroke-width="0.111"/>
- <path d="M 19.318657,6.8472358 18.842401,6.5674276" id="path4411-1" inkscape:connector-curvature="0" fill="#0000ff" fill-rule="evenodd" stroke="#0000ff" stroke-width="0.111"/>
- <path d="m 20.752567,6.4995702 0.351836,-0.425823" id="path4411-4" inkscape:connector-curvature="0" fill="#0000ff" fill-rule="evenodd" stroke="#0000ff" stroke-width="0.111"/>
- <path d="M 19.836981,6.4496678 19.616145,5.943361" id="path4411-4-2" inkscape:connector-curvature="0" fill="#0000ff" fill-rule="evenodd" stroke="#0000ff" stroke-width="0.111"/>
- <circle r="1.472" cx="-20.651" cy="16.624" id="circle10-6" transform="scale(-1,1)" fill="none" stroke="#000000" stroke-width="1.487"/>
- <rect id="rect3343" width="13.212" height="0.379" x="1.723" y="11.36" fill="#ffffff" fill-rule="evenodd" stroke="#ffffff" stroke-width="0.706"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/102-2.svg b/htdocs/public/symbols/svgicons/102-2.svg
deleted file mode 100755
index b5f4fb9ae647f86c15d8d4759517f80b9d31146e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/102-2.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g transform="matrix(0.08683674,0,0,0.12984142,3.5732685,1034.444)" id="g3405" fill="#4d4d4d">
-   <g id="g3509">
-    <path inkscape:connector-curvature="0" d="m 61.254807,4.999999 0,2 c -12.621002,1.629901 -27.061005,4.7024 -38,11.4684 -11.507004,7.117199 -9.490997,16.063301 2,21.531601 -2.535995,-13.834801 24.475998,-21.2733 35,-19 -7.85701,4.938299 -37.820007,12.626499 -16.001999,23.621899 2.25499,1.136002 4.563004,1.798603 7.001999,2.378101 -8.223999,-11.623299 13.093002,-14.979 21,-16 -3.404999,4.229698 -14.292999,3.501999 -15.218002,10.039398 -0.899002,6.361401 10.871002,8.882801 15.218002,9.699802 13.065994,2.4557 29.030703,2.5117 42.000003,-0.638901 4.61149,-1.1203 17.0063,-5.137302 13.91359,-12.006901 -1.41739,-3.148399 -5.4102,-4.907799 -7.91359,-7.093399 8.3441,-1.2341 18.63359,4.719498 16,14 2.10899,-0.921898 4.0885,-1.860199 5.96449,-3.223801 18.70981,-13.5991 -11.95689,-18.598499 -16.96449,-25.7762 12.94209,1.6713 34.612,5.9484 35,22.000001 2.1483,-1.917702 4.48039,-3.7542 6.19749,-6.091 C 177.6577,16.659798 148.58,6.909198 138.25481,4.155098 c -3.668,-0.978399 -7.6133,-1.0165 -10,-4.155099 15.2339,1.203899 32.7129,5.132899 46,12.876499 6.28795,3.6646 13.32872,10.0522 10.25772,18.123501 -2.76161,7.258099 -11.49953,11.5462 -18.25772,14.188301 -16.82201,6.5765 -35.98741,9.983597 -54,10.772297 C 84.948807,57.156299 56.663804,56.2877 30.254807,48.709098 21.236802,46.121101 10.155808,43.918998 3.387803,36.895099 c -7.645004,-7.935501 -1.042999,-15.4701 6.867004,-19.632 14.806,-7.7901 34.358002,-11.5485 51,-12.263101 z" id="path1365"/>
-    <path inkscape:connector-curvature="0" d="m 70.254807,42 c 5.369003,-1.971802 10.352997,-2.606598 16,-3.168999 4.231995,-0.421501 7.767998,-0.421501 12,0 l 7.000003,0.607998 c 2.17399,0.344101 11.19619,1.819798 8.10959,5.851902 -1.90999,2.495098 -7.2558,2.824299 -10.10959,3.2701 C 95.077607,49.838101 73.358811,51.857201 70.254807,42 Z" id="path1605"/>
-    <path inkscape:connector-curvature="0" d="m 177.99594,40.912319 c -2.26642,12.892502 -16.72382,17.374199 -28,19.789402 -28.3129,6.064102 -55.64762,3.871994 -84.000014,0.210598 9.261002,-3.886002 22.1464,0.392101 32,-0.0394 28.575794,-1.251202 56.046294,-3.301403 80.000014,-19.960602 z" id="path1609"/>
-    <path inkscape:connector-curvature="0" d="m 173.25481,59 c -4.2818,14.376198 -22.65641,14.798904 -35,16.4244 -28.04901,3.693703 -59.458011,-2.149002 -86.000003,-11.091805 -10.475998,-3.529896 -24.57901,-8.821396 -28,-20.332596 8.263992,3.475399 15.481003,9.102398 24,12.315598 38.215996,14.414398 87.339703,20.267502 125.000003,2.684402 z" id="path1627"/>
-    <path inkscape:connector-curvature="0" d="m 164.25481,74 c -1.5712,15.199005 -22.54,14 -34,14 -28.863,0 -74.668002,-1.978104 -93.000003,-28 9.51799,1.8353 18.641998,8.528 28,11.645096 C 94.757805,81.471802 135.80611,89.602997 164.25481,74 Z" id="path1699"/>
-    <path inkscape:connector-curvature="0" d="m 151.25481,82 -1,1 1,-1 z" id="path1775"/>
-    <path inkscape:connector-curvature="0" d="m 137.25481,93 c -15.87451,14.72299 -56.256,7.877 -70.000003,-7 10.156998,-0.596405 22.635994,5.794006 33.000003,7.410004 12.30829,1.917999 24.7016,-0.376007 37,-0.410004 z" id="path1797"/>
-    <path inkscape:connector-curvature="0" d="m 71.254807,95 c 17.209999,9.79401 35.089603,9.013 54.000003,9 -9.73851,10.34 -32.788005,9.522 -44.000003,2.3 -3.865997,-2.49 -10.106003,-6.298 -10,-11.3 z" id="path1819"/>
-    <path inkscape:connector-curvature="0" d="m 72.254807,107 c 14.245995,8.313 23.916,5.653 39.000003,7 -7.16851,8.588 -21.832004,9.218 -31.000003,3.44099 C 76.6418,115.164 71.311799,111.698 72.254807,107 Z" id="path1855"/>
-    <path inkscape:connector-curvature="0" d="m 94.254807,124 c -3.297302,5.44 -9.484009,7.22501 -10,14 -6.074997,-3.64999 -12.81601,-10.162 -15,-17 9.421997,2.713 15.110992,3.78 25,3 z" id="path1887"/>
-   </g>
-  </g>
-  <path inkscape:connector-curvature="0" d="m 21.713332,1037.3646 c -0.04689,0 -0.09328,0 -0.13944,0.012 -0.58687,0.039 -1.112518,0.3181 -1.425407,0.7652 -0.112021,0.1601 -0.350146,0.2099 -0.531908,0.112 -0.118609,-0.064 -0.183411,-0.1756 -0.183494,-0.2898 0,-0.061 0.01807,-0.1226 0.05707,-0.1782 0.46192,-0.6603 1.250558,-1.0639 2.124216,-1.0923 -0.07408,-2.175 -2.059334,-3.9268 -4.527686,-3.9986 0.150968,0.3951 0.25941,0.8079 0.319475,1.2353 0.02622,0.1866 -0.12429,0.3563 -0.336189,0.3795 -0.0038,5e-4 -0.0077,10e-5 -0.01152,7e-4 -0.01218,0 -0.02442,0 -0.0364,0 -0.192344,0 -0.358994,-0.1262 -0.383245,-0.2987 -0.06274,-0.4466 -0.18452,-0.8756 -0.357638,-1.2819 -0.396296,-0.9298 -1.062623,-1.7383 -1.910383,-2.3569 -0.115232,-0.084 -0.233842,-0.1646 -0.355539,-0.2414 -1.056117,-0.667 -2.347806,-1.0573 -3.730727,-1.0573 -0.118156,0 -0.235736,0 -0.3526155,0.012 -0.6470995,0.031 -1.2737389,0.1474 -1.8630373,0.3385 -1.5771987,0.5118 -2.8866319,1.5586 -3.6045433,2.9359 0.094978,-0.012 0.1906141,-0.012 0.2869094,-0.012 1.0170893,0 1.9982377,0.2637 2.8374343,0.7631 0.1104575,0.066 0.1700295,0.1728 0.1701531,0.2818 8.22e-5,0.066 -0.021408,0.1324 -0.066284,0.1908 -0.1195558,0.1558 -0.3598616,0.1966 -0.5367664,0.092 -0.7108716,-0.423 -1.5423283,-0.6466 -2.4044972,-0.6466 -0.2430641,0 -0.4813936,0.018 -0.7135889,0.054 -0.067146,0.031 -0.1445455,0.046 -0.2229321,0.038 -0.027378,0.012 -0.054672,0.012 -0.081845,0.016 -1.881564,0.4037 -3.28247539,1.8999 -3.28247539,3.679 0,4e-4 -4.123e-5,8e-4 -4.123e-5,0 6.9987e-4,2.2787 2.09906162,4.1259 4.68754512,4.1259 l 11.7912384,0 4.39763,0 c 1.227506,0 2.222817,-0.8764 2.222817,-1.9572 0,-0.8915 -0.823799,-1.6167 -1.836277,-1.6167 z" id="path3614" fill="#b3b3b3" stroke="#4d4d4d" stroke-width="0.534"/>
-  <text x="1.596" y="1052.36" id="text3475" sodipodi:linespacing="125%" font-family="sans-serif" fill="#1a1a1a" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="8.75"><tspan sodipodi:role="line" id="tspan3477" x="1.596" y="1052.36">F</tspan>
-  </text>
-  <text x="16.497" y="1052.24" id="text3475-1" sodipodi:linespacing="125%" font-family="sans-serif" fill="#1a1a1a" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="8.75"><tspan sodipodi:role="line" id="tspan3477-7" x="16.497" y="1052.24">C</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/103-1.svg b/htdocs/public/symbols/svgicons/103-1.svg
deleted file mode 100755
index 97780e206acc401b481dc26a798ad24da3b85fc1..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/103-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="-0.258 -0.548 24.000001 24">
- <metadata id="metadata17"/>
- <g id="g4180" transform="matrix(1.0127819,0,0,1.0127819,-0.24080261,-0.17759904)">
-  <path d="m 13.941942,11.960746 c 0.601141,0.205439 1.252519,-0.106889 1.461379,-0.706533 0.20886,-0.601141 -0.108598,-1.25252 -0.709739,-1.4613797 -0.599645,-0.2088601 -1.25252,0.1085987 -1.46138,0.7097397 -0.203729,0.596438 0.110309,1.252733 0.70974,1.458173 z" id="path9" inkscape:connector-curvature="0"/>
-  <path sodipodi:nodetypes="ccccccccccccccccccccccccccccc" d="M 11.797545,8.6023093 11.44182,12.22476 9.1471382,12.787635 c -0.2037294,0.04682 -0.3758199,0.147078 -0.5160576,0.272138 l -5.0387232,4.865136 c -0.2973637,0.282186 -0.3039908,0.756557 -0.016675,1.04879 0.2821856,0.297364 0.7565567,0.308908 1.0487898,0.02672 l 3.792831,-3.654303 4.6430228,-1.137294 -0.03164,0.01005 0.773231,-0.197103 0.70974,0.808291 c 0.110308,0.120143 0.265511,0.193682 0.43247,0.193682 l 2.500122,0.01005 c 0.314038,0 0.574632,-0.255463 0.574632,-0.574632 l 0,0 c 0,-0.277269 -0.193681,-0.491046 -0.449359,-0.554537 l -1.86221,-6.4849279 z m 5.214234,5.2758017 c -0.569502,0 -1.518244,-0.0049 -1.805346,-0.0049 -0.272138,-0.307411 -1.347864,-1.523161 -1.347864,-1.523161 -0.01497,-0.02181 -0.04169,-0.02672 -0.05686,-0.04169 -0.272138,-0.318955 -0.704822,-0.482709 -1.137293,-0.380737 l -0.67297,0.16696 0.359145,-3.6592205 2.844303,-0.8617349 1.81689,6.3044964 z" id="path11" inkscape:connector-curvature="0"/>
-  <path sodipodi:nodetypes="csccccc" d="m 23.07216,4.463962 c 0,0 -3.773916,-0.4529368 -11.610758,-0.4529368 -5.7801351,0 -10.50210258,0.4529368 -10.50210258,0.4529368 0,0 1.95759978,0.8634881 1.61831308,3.5353982 0,0 2.8096608,-0.3343004 3.986673,2.0729118 0,0 -0.1009115,0.03153 16.6182025,-5.035283 0.36027,-0.1558268 0.331181,-0.5244092 -0.110328,-0.573027 z" id="path11-9" inkscape:connector-curvature="0" fill="#ff0000" stroke="#550000" stroke-width="0.5"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/103-2.svg b/htdocs/public/symbols/svgicons/103-2.svg
deleted file mode 100755
index ad132490a44124a76ea5422f193ecdad24fe56a1..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/103-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4196"/>
- <path d="m 8.4874864,0.50166737 c 0,22.94102163 0,23.01852463 0,23.01852463" id="path4200" inkscape:connector-curvature="0" fill="none" fill-rule="evenodd" stroke="#000000" stroke-linecap="round"/>
- <path sodipodi:type="star" id="path4202" sodipodi:sides="3" sodipodi:cx="11.072906" sodipodi:cy="4.9913278" sodipodi:r1="5.1861811" sodipodi:r2="2.5930905" sodipodi:arg1="2.0943951" sodipodi:arg2="3.1415927" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="m 8.479815,9.4826923 0,-8.98272909 7.779272,4.49136459 z" inkscape:transform-center-x="-1.479492" transform="matrix(1.1411034,0,0,1.020518,-1.079427,-0.01340882)" fill="#d50000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round"/>
- <path sodipodi:type="star" id="path4202-7" sodipodi:sides="3" sodipodi:cx="11.072906" sodipodi:cy="4.9913278" sodipodi:r1="5.1861811" sodipodi:r2="2.5930905" sodipodi:arg1="2.0943951" sodipodi:arg2="3.1415927" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="m 8.479815,9.4826923 0,-8.98272909 7.779272,4.49136459 z" inkscape:transform-center-x="-1.479492" transform="matrix(1.1411034,0,0,1.020518,-1.1093532,9.0607759)" fill="#d50000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/104-1.svg b/htdocs/public/symbols/svgicons/104-1.svg
deleted file mode 100755
index 4fad64aeef09c9512f8679eae03fbb8f4cd4be4c..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/104-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="-0.258 -0.548 24.000001 24">
- <metadata id="metadata17"/>
- <rect id="rect4242" width="24" height="24" x="-0.258" y="-0.548" rx="4" fill="#000080" stroke-width="0.5"/>
- <text x="2.343" y="20.565" id="text4244" sodipodi:linespacing="125%" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" letter-spacing="0" font-size="25"><tspan sodipodi:role="line" id="tspan4246" x="2.343" y="20.565">H</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/104-2.svg b/htdocs/public/symbols/svgicons/104-2.svg
deleted file mode 100755
index 4b79fd6876e204912f5e5bd4fe2cd1f251759061..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/104-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata7"/>
- <g inkscape:label="Camada 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <path d="m 23.310235,1028.8715 c -0.037,6e-4 -0.0751,0 -0.11147,0.01 -6.7e-4,2e-4 -0.001,-1e-4 -0.002,0 l -3.67436,0.6276 c -0.23368,0.04 -0.42959,0.2003 -0.51606,0.4211 a 0.16705751,0.16705751 0 0 0 0,0 l -1.70506,4.3721 -16.63986969,0.4149 c -0.19136,0 -0.37099,0.091 -0.49542,0.2353 -0.1244,0.1441 -0.18429,0.3358 -0.16101,0.5264 l 0.91859,7.5985 c 0.0379,0.3188 0.30127999,0.5716 0.62133999,0.5966 l 11.8631997,0.9433 2.35117,1.8496 a 0.16705751,0.16705751 0 0 0 0.008,0.01 c 0.003,0 0.006,0 0.008,0 0.003,0 0.005,0 0.008,0.01 0.42908,0.3203 0.53543,0.7566 0.47479,0.9991 -0.0346,0.1381 -0.0873,0.2397 -0.21262,0.3179 -0.12532,0.078 -0.34179,0.1348 -0.71216,0.1135 a 0.16705751,0.16705751 0 0 0 -0.004,0 c -0.0119,-4e-4 -0.0252,-3e-4 -0.0371,0 -0.002,0 -0.004,-10e-5 -0.006,0 l -14.1483297,0.041 -0.002,0 c -0.37180999,0 -0.68473999,0.3095 -0.68325999,0.6812 0.001,0.3717 0.31561,0.6824 0.68739999,0.6771 7.2e-4,0 10e-4,0 0.002,0 l 1.03419,0 c -0.38426,0.2449 -0.64198,0.6734 -0.64198,1.1601 0,0.7569 0.61995,1.3768 1.37685,1.3768 0.75692,0 1.37685,-0.6199 1.37685,-1.3768 0,-0.4893 -0.2584,-0.9221 -0.6461,-1.1663 l 11.6505897,-0.033 c -0.41975,0.2366 -0.70598,0.6859 -0.70598,1.1993 0,0.7569 0.61993,1.3768 1.37685,1.3768 0.75692,0 1.37686,-0.6199 1.37686,-1.3768 0,-0.6574 -0.46699,-1.2115 -1.0858,-1.3459 0.58509,-0.207 1.03455,-0.6338 1.31286,-1.286 a 0.16705751,0.16705751 0 0 0 0.0103,-0.025 c 0.21336,-0.8532 -0.16506,-1.7808 -0.94542,-2.3842 a 0.16705751,0.16705751 0 0 0 -0.006,-0.01 c -0.002,0 -0.002,0 -0.004,-0.01 a 0.16705751,0.16705751 0 0 0 -0.0227,-0.023 l -1.66584,-1.3067 5.1957,-13.3082 3.2966,-0.5615 c 6.6e-4,-10e-5 0.001,2e-4 0.002,0 0.34631,-0.056 0.59958,-0.3784 0.56973,-0.7287 -0.0299,-0.3509 -0.33564,-0.6261 -0.68739,-0.6213 z m -6.51063,6.4818 -0.95781,2.4565 -1.24886,0 0,-2.4008 2.20667,-0.056 z m -2.68352,0.068 0,2.3883 -2.30575,0 0,-2.3305 2.30575,-0.058 z m -2.7826,0.068 0,2.3202 -2.3057497,0 0,-2.2624 2.3057497,-0.058 z m -2.7825997,0.07 0,2.25 -2.30576,0 0,-2.1922 2.30576,-0.058 z m -2.7826,0.07 0,2.1799 -2.30576,0 0,-2.1221 2.30576,-0.058 z m -2.7826,0.068 0,2.1117 -1.69061,0 -0.24978,-2.0621 1.94039,-0.05 z m -1.63281,2.5865 1.63281,0 0,2.1572 -1.37272,0 -0.26009,-2.1572 z m 2.10965,0 2.30576,0 0,2.1572 -2.30576,0 0,-2.1572 z m 2.7826,0 2.30576,0 0,2.1572 -2.30576,0 0,-2.1572 z m 2.78261,0 2.3057497,0 0,2.1572 -2.3057497,0 0,-2.1572 z m 2.7825997,0 2.30575,0 0,2.1572 -2.30575,0 0,-2.1572 z m 2.7826,0 1.06515,0 -0.84222,2.1572 -0.22293,0 0,-2.1572 z m -12.9221697,2.6319 1.31492,0 0,1.5482 -1.13946,-0.091 -0.17546,-1.4574 z m 1.79176,0 2.30576,0 0,1.7691 -2.30576,-0.1837 0,-1.5854 z m 2.7826,0 2.30576,0 0,1.99 -2.30576,-0.1817 0,-1.8083 z m 2.78261,0 2.3057497,0 0,2.2129 -2.3057497,-0.1837 0,-2.0292 z m 2.7825997,0 2.30575,0 0,1.3129 -0.43762,1.1209 c -0.0568,-0.028 -0.11873,-0.044 -0.18165,-0.05 l -1.68648,-0.1342 0,-2.25 z m 2.7826,0 0.0351,0 -0.0351,0.097 0,-0.097 z m -11.6815597,8.7483 c 0.44991,0 0.80918,0.3593 0.80918,0.8092 0,0.4499 -0.35927,0.8071 -0.80918,0.8071 -0.44989,0 -0.80919,-0.3572 -0.80919,-0.8071 0,-0.4499 0.3593,-0.8092 0.80919,-0.8092 z m 13.0522097,0 c 0.4499,0 0.80919,0.3593 0.80919,0.8092 0,0.4499 -0.35929,0.8071 -0.80919,0.8071 -0.4499,0 -0.80918,-0.3572 -0.80918,-0.8071 0,-0.4499 0.35928,-0.8092 0.80918,-0.8092 z m -13.0522097,0.3839 c -0.24442,0 -0.43968,0.1953 -0.43968,0.4397 0,0.2444 0.19526,0.4376 0.43968,0.4376 0.24442,0 0.43969,-0.1932 0.43969,-0.4376 0,-0.2444 -0.19527,-0.4397 -0.43969,-0.4397 z m 13.0522097,0 c -0.24442,0 -0.43968,0.1953 -0.43968,0.4397 0,0.2444 0.19526,0.4376 0.43968,0.4376 0.24442,0 0.43968,-0.1932 0.43968,-0.4376 0,-0.2444 -0.19526,-0.4397 -0.43968,-0.4397 z" id="path3847" inkscape:connector-curvature="0" color="#000000" stroke-width="15.5" fill="#550000"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/105-1.svg b/htdocs/public/symbols/svgicons/105-1.svg
deleted file mode 100755
index 0577b4c6a137570bdc1e287d96d986231d3b7e92..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/105-1.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" version="1.1" width="24" height="24">
- <metadata id="metadata26"/>
- <path inkscape:connector-curvature="0" id="path6-9" d="M 0.42237017,20.852183 C 1.4886938,21.641264 2.6475758,22.253 3.8782569,22.569115 c 2.0606033,0.632017 3.9047512,0.997097 5.9958112,1.1718 1.0803169,0.09786 2.4267789,0.121537 3.4780879,0.103979 1.148719,0.03236 3.06396,0.134213 3.06396,0.134213 1.492934,-0.09743 3.020733,-0.125285 4.329408,-0.525325 1.16385,-0.500881 2.142446,-1.482579 2.983006,-2.530347 0.550327,-1.131092 -0.573852,-2.065826 -1.349076,-2.451413 -1.584141,-1.093048 -3.36483,-1.490939 -5.387889,-2.103011 C 15.387074,15.896081 14.028803,15.67259 11.583978,14.996822 9.4965832,14.749861 7.5530337,15.26673 6.2960009,15.657008 4.3380386,16.436501 4.9218724,16.35612 2.6306795,17.363095 1.5947333,17.95343 0.28957936,18.6799 0.12804054,20.191189 c -0.006513,0.261309 0.0969278,0.53011 0.29432963,0.660994 z" sodipodi:nodetypes="cccccccccccccc" fill="#2a7fff" stroke-width="0.255"/>
- <path inkscape:connector-curvature="0" id="path6" d="m 2.7730463,20.337108 c 0.8607735,0.540145 1.7962623,0.958893 2.7897109,1.175281 1.6633903,0.432631 3.3793443,-0.02419 5.0673198,0.0954 0.872069,-0.09363 1.655922,0.340182 2.504575,0.392413 0.927285,0.02215 1.866334,-0.08029 2.776392,0.156119 1.072561,0.206361 2.230089,0.444281 3.267555,-0.03836 0.9395,-0.342865 1.729455,-1.01486 2.407986,-1.732083 0.444242,-0.774259 -0.463235,-1.414107 -1.089021,-1.67805 -1.278774,-0.748219 -2.716208,-1.156875 -4.081423,-1.71214 -1.348774,-0.505452 -2.766658,-0.794726 -4.097323,-1.348165 -1.042133,-0.396197 -2.182444,-0.22411 -3.2507381,-0.04781 -1.6876819,0.351863 -3.1450431,1.341724 -4.5124108,2.349031 -0.836251,0.404097 -1.8898162,0.901385 -2.0202169,1.935898 -0.00525,0.178873 0.078247,0.362873 0.2375941,0.452464 z" fill="#e5b380" stroke-width="0.19"/>
- <path inkscape:connector-curvature="0" id="path8" d="m 14.155551,20.157272 c -0.108809,0.123074 -0.712277,-0.223187 -0.88619,-0.17749 -0.173914,0.0457 -0.436605,0.619553 -0.609194,0.570419 -0.172587,-0.04913 0.0319,-0.639557 -0.07344,-0.764754 -0.10534,-0.125197 -0.834465,-0.158301 -0.83232,-0.311741 0.0021,-0.15344 0.731991,-0.172081 0.840801,-0.295154 0.10881,-0.123074 -0.07912,-0.717388 0.09479,-0.763085 0.173913,-0.0457 0.420497,0.533205 0.593085,0.582337 0.17259,0.04913 0.785564,-0.285068 0.890905,-0.159871 0.10534,0.125198 -0.472111,0.50162 -0.474255,0.655059 -0.0021,0.153439 0.564629,0.541207 0.455819,0.66428 z" fill="#f3f98f" stroke-width="0.338"/>
- <path inkscape:connector-curvature="0" id="path10" d="M 8.7185804,17.631722 C 7.6474285,12.043944 9.4008377,7.2022748 13.759866,3.5144596 14.286828,3.470482 14.218373,3.9973953 13.83578,4.2926727 10.355637,8.1216331 9.669201,12.985452 10.120977,17.983736 9.7056131,17.646691 9.2814064,17.346933 8.7185804,17.631722 Z" fill="#9c6434" stroke-width="0.237"/>
- <path inkscape:connector-curvature="0" id="path12" d="m 14.200774,3.9008721 c 0.846883,0.8169903 1.492017,1.7650085 2.110296,2.7560443 l 0.392165,-0.6594174 0.209479,0.8337544 3.856939,1.5668713 -2.276069,-3.6008689 -1.04933,0.079075 c 0.005,-0.1957562 0.07546,-0.5014145 0.08051,-0.6971694 C 16.552831,3.7037343 15.546575,3.3106627 14.459617,3.529059 14.370307,3.558324 14.226546,3.546675 14.169112,3.599897 l 0.03165,0.3009754 z" fill="#026333" stroke-width="0.237"/>
- <path inkscape:connector-curvature="0" id="path14" d="M 13.693886,3.9300053 C 12.67843,4.5224553 11.828091,5.2901655 10.993699,6.106054 L 10.768177,5.3721624 10.368051,6.1324177 6.2512902,6.7379065 9.3117522,3.7804582 10.312603,4.1067214 c 0.04126,-0.1913914 0.04491,-0.5050974 0.08617,-0.6964882 1.056408,-0.2308717 2.126745,-0.3735697 3.131299,0.096998 0.07987,0.049664 0.222292,0.072519 0.265542,0.1378807 l -0.101726,0.284893 z" fill="#026333" stroke-width="0.237"/>
- <path inkscape:connector-curvature="0" id="path16" d="m 13.847257,3.9837972 c -0.28159,1.2232894 -0.792609,2.3329258 -1.357456,3.4413939 l 0.814474,0 -0.644791,0.6473913 0.678727,4.3954436 2.036184,-4.0547117 -0.644791,-0.9199767 C 14.910597,7.3911179 15.227337,7.2888987 15.408331,7.1866789 15.310666,6.0350583 15.119277,4.896888 14.327093,4.0184255 14.251693,3.9524265 14.183828,3.8141139 14.104017,3.7904499 l -0.25676,0.1933473 z" fill="#026333" stroke-width="0.252"/>
- <path inkscape:connector-curvature="0" id="path18" d="M 13.70466,3.7179063 C 12.708895,3.3516704 11.687172,3.2017038 10.641327,3.0906587 L 11.01885,2.50992 10.262073,2.6695945 7.4677368,0.14827983 11.279478,0.5758619 11.631314,1.4620384 c 0.156194,-0.081672 0.37531,-0.2601348 0.531504,-0.3418078 0.769281,0.6034346 1.485609,1.2674602 1.739762,2.2394902 0.01173,0.084353 0.07811,0.1968542 0.05785,0.2647289 l -0.255769,0.093457 z" fill="#026333" stroke-width="0.214"/>
- <path inkscape:connector-curvature="0" id="path20" d="M 14.110627,3.5996953 C 15.06045,3.30601 16.023993,3.2160071 17.008209,3.163618 L 16.683281,2.6015113 17.38373,2.7882401 20.122147,0.56628391 16.533904,0.77861736 16.161309,1.5906377 c -0.142187,-0.084135 -0.33853,-0.2619512 -0.480717,-0.3460832 -0.749455,0.5268353 -1.452311,1.1129868 -1.737683,2.0101682 -0.0151,0.078367 -0.08273,0.1803834 -0.06708,0.2449039 l 0.2348,0.1000687 z" fill="#026333" stroke-width="0.201"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/105-2.svg b/htdocs/public/symbols/svgicons/105-2.svg
deleted file mode 100755
index 3ef2ad08c336775a5cce12c0b192cda7a71d3c22..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/105-2.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="-0.258 -0.548 24.000001 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="105-2.svg">
-  <defs
-     id="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="-0.76271186"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata19">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <rect
-     id="rect4191"
-     width="14.886283"
-     height="14.886283"
-     x="4.2988591"
-     y="4.0088582"
-     style="stroke:#000000;stroke-width:4.06287098" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/106-1.svg b/htdocs/public/symbols/svgicons/106-1.svg
deleted file mode 100755
index 6c56a634b9f34892e20ef8812e35e60b5d731ee2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/106-1.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="-0.258 -0.548 24.000001 24">
- <metadata id="metadata19"/>
- <g id="g3339-7" transform="matrix(1.206235,0,0,1.206235,12.018091,-3.1654974)">
-  <circle r="1.188" cy="14.952" cx="5.523" id="path3341-1" fill="#666666" fill-rule="evenodd"/>
-  <path sodipodi:nodetypes="ssscssssss" d="m 5.4550981,16.158002 c 0.6654362,0 1.2007092,-0.540525 1.2007092,-1.20779 0,-0.660182 -0.535273,-1.200707 -1.2007092,-1.200707 -0.6672637,0 -1.2025361,0.540525 -1.2025361,1.200707 2.256e-4,0.667265 0.5355008,1.20779 1.2025361,1.20779 z m -2.7777529,-1.20779 c 0,-1.528858 1.2418136,-2.774098 2.7777529,-2.774098 1.5306879,0 2.7725006,1.24524 2.7725006,2.774098 0,1.536169 -1.2418127,2.779581 -2.7725006,2.779581 -1.5359393,0 -2.7777529,-1.24364 -2.7777529,-2.779581 z" id="path9-0-5-2" inkscape:connector-curvature="0" stroke="#000000" stroke-width="0.319"/>
- </g>
- <path inkscape:connector-curvature="0" id="path11" d="m 22.660454,11.946482 -0.0052,-2.7536211 c 0,-1.0969109 -0.97583,-0.9809973 -0.97583,-0.9809973 l -5.517577,0 -2.012988,-3.3958637 -1.184744,0 2.012987,3.3958637 -1.525072,2.5797514 -3.4767336,-0.0052 C 8.77486,8.3205887 6.333711,8.4751402 6.333711,8.4751402 l -6.59157429,0 0,5.8617228 0.94235947,0 c 0.1264716,-1.993669 2.04106752,-3.574901 4.06461322,-3.574901 2.0235456,0 3.9435329,1.584827 4.0646131,3.574901 l 5.7300845,0.0052 c 0.121081,-1.995466 2.041068,-3.580292 4.064613,-3.580292 2.023546,0 3.9487,1.584826 4.064614,3.583661 l 0.356277,0.0036 c 0.394915,0 0.712554,-0.321234 0.712554,-0.714351 l 0,-1.688385 -1.081411,0 z" fill="#165016"/>
- <g id="g3339" transform="matrix(1.206235,0,0,1.206235,-1.8384114,-3.165498)">
-  <circle r="1.188" cy="14.952" cx="5.523" id="path3341" fill="#666666" fill-rule="evenodd"/>
-  <path sodipodi:nodetypes="ssscssssss" d="m 5.4550981,16.158002 c 0.6654362,0 1.2007092,-0.540525 1.2007092,-1.20779 0,-0.660182 -0.535273,-1.200707 -1.2007092,-1.200707 -0.6672637,0 -1.2025361,0.540525 -1.2025361,1.200707 2.256e-4,0.667265 0.5355008,1.20779 1.2025361,1.20779 z m -2.7777529,-1.20779 c 0,-1.528858 1.2418136,-2.774098 2.7777529,-2.774098 1.5306879,0 2.7725006,1.24524 2.7725006,2.774098 0,1.536169 -1.2418127,2.779581 -2.7725006,2.779581 -1.5359393,0 -2.7777529,-1.24364 -2.7777529,-2.779581 z" id="path9-0-5" inkscape:connector-curvature="0" stroke="#000000" stroke-width="0.319"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/106-2.svg b/htdocs/public/symbols/svgicons/106-2.svg
deleted file mode 100755
index 72563dcd91d83e3438083912d04cec867a5419a8..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/106-2.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" version="1.1" width="24" height="24">
- <defs id="defs5962">
-  <linearGradient id="linearGradient7499-4">
-   <stop id="stop7501-1" stop-color="#6f6f6f"/>
-   <stop id="stop7503-6" offset="0.143" stop-color="#868686"/>
-   <stop id="stop7505-4" offset="0.407" stop-color="#a0a0a0"/>
-   <stop id="stop7507-6" offset="0.638" stop-color="#ebebeb"/>
-   <stop id="stop7509-45" offset="0.869" stop-color="#cfcfcf"/>
-   <stop id="stop7511-3" offset="1" stop-color="#aaaaaa"/>
-  </linearGradient>
-  <linearGradient id="linearGradient7069-4">
-   <stop id="stop7071-13" stop-color="#ffcb05"/>
-   <stop id="stop7073-0" offset="1" stop-color="#cca111"/>
-  </linearGradient>
- </defs>
- <g id="layer1" inkscape:label="Calque 1" inkscape:groupmode="layer" transform="translate(-21.451,-697.80301)">
-  <path inkscape:connector-curvature="0" sodipodi:nodetypes="cccsscc" d="m 43.681028,714.25418 -6.766915,-10.07764 -0.524206,-0.95153 c 0.0083,-0.75691 0.07198,-1.51382 0.142961,-2.27071 0.09304,-0.99196 0.794441,-0.77411 1.096043,-0.21626 l 6.933439,12.82417 c 0.354441,0.5572 0.02043,1.16472 -0.881605,0.69202 z" id="path7035" stroke="#000000" stroke-width="0.034"/>
-  <path inkscape:connector-curvature="0" sodipodi:nodetypes="ssccssss" d="m 43.834539,713.63701 c -0.297107,-0.38351 -1.351861,-0.97532 -1.852204,-0.50443 -0.838518,0.78916 -2.300849,1.5219 -3.948667,1.36352 l -0.504431,0.74088 c 1.78335,1.54714 3.586468,2.83815 6.202942,0.74876 0.224445,-0.17924 0.42854,-0.37473 0.535959,-0.63842 0.08262,-0.20282 0.09969,-0.40214 -0.02365,-0.81969 -0.08489,-0.2874 -0.15742,-0.56481 -0.409843,-0.89062 z" id="path6705"/>
-  <path inkscape:connector-curvature="0" d="m 38.034673,714.49811 -0.283741,-0.45715 -1.749744,-0.23645 1.529041,1.43448 z" id="path6713" stroke="#000000" stroke-width="0.034"/>
-  <path inkscape:connector-curvature="0" sodipodi:nodetypes="cssccc" d="m 32.070628,715.40947 c 0.608902,-5.02052 3.643428,-9.6517 5.514731,-14.11066 0.30419,-0.72477 -0.116764,-0.56943 -0.978237,-0.49917 -0.296187,0.0242 -0.665862,0.37389 -0.665862,0.37389 -3.350587,4.22342 -6.496453,8.51552 -9.678506,12.79522 z" id="path7677"/>
-  <g transform="matrix(-0.02812885,0,0,0.02812885,-19.094846,670.95925)" id="g7047" stroke="#000000">
-   <circle r="12.142" cy="1121.56" cx="-2319.47" transform="matrix(1.1569,0,0,1.1569,689.23,-228.12)" id="path7049" color="#000000" stroke-width="0.8"/>
-   <path d="m -2005.3,1064.9 c 3.2045,-9.62 17.065,-13.506 23.523,2.47 -9.2702,-11.147 -15.601,-10.329 -23.523,-2.47 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" id="path7051"/>
-  </g>
-  <path d="m 27.472082,707.06943 3.756911,0.0677 1.319995,1.28615 1.049228,2.43691 0.50769,3.04614 -0.50769,1.52308 -7.581513,-2.30153 0.135384,-4.46768 0.676921,-1.32 z" id="path4677" inkscape:connector-curvature="0" fill="#b3b3b3" fill-rule="evenodd" stroke="#000000" stroke-width="0.034"/>
-  <path d="m 27.828115,706.74921 2.591478,0.0157 c 1.864199,0.0113 2.538103,1.97252 3.136987,3.41123 0.570437,1.37046 0.882712,2.87373 0.683721,5.27919 l -8.407963,-1.2994 -0.04712,-5.30867 c 0.197932,-1.42799 1.137658,-2.10376 2.042819,-2.0983 z m 0.09319,0.60729 c -0.553383,-0.004 -1.551791,0.31065 -1.564322,2.24909 l -0.01152,1.71613 2.203011,0.23245 -0.07748,-4.1745 -0.4984,-0.022 c -0.01687,-7.4e-4 -0.03345,-9e-4 -0.0513,-10e-4 z m 1.469032,10e-4 -0.06701,4.29613 4.263622,0.5319 c -0.238086,-0.88854 -1.23898,-4.81647 -3.344322,-4.81647 l -0.852288,-0.0115 z m 0.233492,5.03426 c -0.12549,-0.002 -0.245012,0.0442 -0.245012,0.20313 l 0,0.52038 c 0,0.20805 0.129641,0.47749 0.343436,0.5424 l 2.845921,0.86381 c 0.2634,0.0799 1.182188,0.17958 1.162252,-0.39892 l -0.02199,-0.64184 c -0.01324,-0.38404 -0.290053,-0.64371 -0.841835,-0.70885 l -3.188284,-0.3759 c -0.01784,-0.002 -0.03652,-0.004 -0.05445,-0.004 z" inkscape:connector-curvature="0" id="path7755" stroke="#000000" stroke-width="0.221"/>
-  <path inkscape:connector-curvature="0" sodipodi:nodetypes="ccssssccc" d="m 34.214997,715.3691 -7.772357,-2.45796 0,-0.93006 c 0,-0.4019 -0.22021,-0.59787 -0.775024,-0.59787 l -1.70508,0 c -0.654671,0 -0.642173,0.376 -0.642173,0.73073 l 0,3.96374 10.916882,0 z" id="path7867" fill="#ff6600" stroke="#000000" stroke-width="0.436"/>
-  <rect id="rect8131" height="4.31" width="14.371" y="716.69" x="-35.822" transform="scale(-1,1)" color="#000000" rx="2.155"/>
- </g>
- <metadata id="metadata244"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/107-1.svg b/htdocs/public/symbols/svgicons/107-1.svg
deleted file mode 100755
index 745533bad814d98a8b6b22f85ff2a0e99312ee25..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/107-1.svg
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="-0.258 -0.548 24.000001 24"
-   id="svg4618"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="107-1.svg">
-  <defs
-     id="defs4633" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4631"
-     showgrid="false"
-     inkscape:zoom="19.666667"
-     inkscape:cx="10.675699"
-     inkscape:cy="13.645399"
-     inkscape:window-x="445"
-     inkscape:window-y="357"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg4618" />
-  <metadata
-     id="metadata19">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3339-8"
-     transform="matrix(1.0958316,0,0,1.0958316,13.068522,-1.4329655)">
-    <circle
-       r="1.188"
-       cy="14.952"
-       cx="5.523"
-       id="path3341-5"
-       fill="#666666"
-       fill-rule="evenodd" />
-    <path
-       sodipodi:nodetypes="ssscssssss"
-       d="m 5.4550981,16.158002 c 0.6654362,0 1.2007092,-0.540525 1.2007092,-1.20779 0,-0.660182 -0.535273,-1.200707 -1.2007092,-1.200707 -0.6672637,0 -1.2025361,0.540525 -1.2025361,1.200707 2.256e-4,0.667265 0.5355008,1.20779 1.2025361,1.20779 z m -2.7777529,-1.20779 c 0,-1.528858 1.2418136,-2.774098 2.7777529,-2.774098 1.5306879,0 2.7725006,1.24524 2.7725006,2.774098 0,1.536169 -1.2418127,2.779581 -2.7725006,2.779581 -1.5359393,0 -2.7777529,-1.24364 -2.7777529,-2.779581 z"
-       id="path9-0-2"
-       inkscape:connector-curvature="0"
-       stroke="#000000"
-       stroke-width="0.319" />
-  </g>
-  <circle
-     id="path3341-9"
-     cx="19.05"
-     cy="14.827"
-     r="1.188"
-     fill="#666666"
-     fill-rule="evenodd" />
-  <g
-     id="g3339"
-     transform="matrix(1.0958316,0,0,1.0958316,-0.52251938,-1.4329662)">
-    <circle
-       r="1.188"
-       cy="14.952"
-       cx="5.523"
-       id="path3341"
-       fill="#666666"
-       fill-rule="evenodd" />
-    <path
-       sodipodi:nodetypes="ssscssssss"
-       d="m 5.4550981,16.158002 c 0.6654362,0 1.2007092,-0.540525 1.2007092,-1.20779 0,-0.660182 -0.535273,-1.200707 -1.2007092,-1.200707 -0.6672637,0 -1.2025361,0.540525 -1.2025361,1.200707 2.256e-4,0.667265 0.5355008,1.20779 1.2025361,1.20779 z m -2.7777529,-1.20779 c 0,-1.528858 1.2418136,-2.774098 2.7777529,-2.774098 1.5306879,0 2.7725006,1.24524 2.7725006,2.774098 0,1.536169 -1.2418127,2.779581 -2.7725006,2.779581 -1.5359393,0 -2.7777529,-1.24364 -2.7777529,-2.779581 z"
-       id="path9-0"
-       inkscape:connector-curvature="0"
-       stroke="#000000"
-       stroke-width="0.319" />
-  </g>
-  <path
-     style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-     d="M 8.768122,5.7866079 14.232681,5.5075598 17.164673,10.37949 8.5566171,10.611368 Z"
-     id="path4754"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="ccccc" />
-  <path
-     sodipodi:nodetypes="cccccccccccccsccsccsccc"
-     inkscape:connector-curvature="0"
-     id="path11"
-     d="m 22.75482,12.282904 -0.0047,-2.5137827 c 0,-1.0013709 -0.890836,-0.8955533 -0.890836,-0.8955533 l -5.037,0 -1.837659,-3.1000867 -1.081553,0 1.837657,3.1000867 -1.392239,1.136307 -3.173913,-0.0047 C 10.4849,8.9728233 7.8501235,9.1139135 7.8501235,9.1139135 l -8.10816334,0 0,5.3511715 2.00956154,0 c 0.115456,-1.820022 1.8632922,-3.26353 3.7105887,-3.26353 1.8472964,0 3.6000543,1.44679 3.7105886,3.26353 l 6.172428,0.0047 c 0.110535,-1.821662 1.863292,-3.268451 3.710588,-3.268451 1.847297,0 3.604772,1.446789 3.71059,3.271527 l 0.325245,0.0033 c 0.360518,0 0.650491,-0.293255 0.650491,-0.652132 l 0,-1.541328 -0.987221,0 z"
-     fill="#800000"
-     style="fill:#800000" />
-  <rect
-     id="rect3336-6"
-     width="6.191"
-     height="1.527"
-     x="5.02"
-     y="-9.649"
-     transform="matrix(0,1,-1,0,0,0)"
-     fill="#800000"
-     fill-rule="evenodd"
-     style="fill:#800000" />
-  <path
-     d="m 8.1231182,5.0144994 6.4302758,0 0.631319,1.1125532 -7.0381574,-0.00961 z"
-     id="path4156"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="ccccc"
-     fill="#800000"
-     fill-rule="evenodd"
-     style="fill:#800000" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/107-2.svg b/htdocs/public/symbols/svgicons/107-2.svg
deleted file mode 100755
index e6525a91046c8b9cd1524c459a65ad780c6060a7..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/107-2.svg
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   enable-background="new 0 0 1000 600"
-   height="24"
-   id="Shape_1_7_"
-   overflow="visible"
-   version="1.1"
-   viewBox="0 0 24 24"
-   width="24"
-   xml:space="preserve"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="107-2.svg"
-   style="overflow:visible"><metadata
-     id="metadata12"><rdf:RDF><cc:Work
-         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
-     id="defs10" /><sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview8"
-     showgrid="false"
-     inkscape:zoom="28.963094"
-     inkscape:cx="6.8080044"
-     inkscape:cy="18.809498"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="Shape_1_7_"
-     showguides="false" /><path
-     style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-     d="M 2.2905532,7.0474501 12.64907,7.0772571 17.545906,11.229782 0.9604041,10.550176 Z"
-     id="path4754"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="ccccc" /><g
-     id="Shape_1"
-     transform="matrix(0.03259342,0,0,0.03259342,-6.7040498,2.4819419)"
-     style="fill:#800000"><g
-       id="g4"
-       style="fill:#800000"><path
-         d="m 219.11831,311.436 c -0.022,0.005 -0.032,0.003 -0.056,0.009 0.024,0.139 0.043,0.128 0.056,-0.009 z M 941.987,332.575 c 1.476,-52.841 -33.835,-74.252 -32.12,-72.974 -8.865,-6.607 -20.691,-9.007 -32.965,-12.397 21.246,5.869 -30.112,-5.286 -143.693,-17.75 -2.16,-0.094 -4.32,-0.188 -6.48,-0.281 -22.21592,-15.3252 -26.194,-19.84328 -34.373,-25.61628 -24.20348,-20.55582 -65.04568,-54.59248 -73.69602,-60.576 -20.5372,-13.81947 -25.36669,-13.09519 -57.478,-17.186 0,0 -34.41662,-3.834 -69.20062,-5.042 -56.897,-1.977 -59.22177,-1.14794 -59.22177,-1.14794 0,0 -10.29628,-0.44906 -64.23328,1.77994 -32.192,1.331 -57.895,3.538 -57.895,3.538 0,0 -39.964,6.832 -38.318,6.224 -16.795,6.207 -4.993,7.6 -4.508,10.425 -9.25,9.972 -25.809,27.88228 -47.053,90.70028 -1.77,5.233 -1.238,11.699 -2.536,17.188 0,22.552 1.117,59.737 0.901,61.977 3.723,-0.819 -22.681,14.576 -9.917,58.612 1.274,4.397 7.411,17.749 10.153,14.138 -12.241,16.121 26.23477,24.601 82.84877,29.028 -2.35,-7.895 -3.617,-16.253 -3.617,-24.908 0,-58.84291 46.96623,-95.75377 95.43923,-95.75377 48.473,0 95.95709,34.01536 96.80881,95.75377 0.14307,10.37001 -1.815,20.317 -5.14,29.548 1.244,-0.013 1.904,-0.021 1.904,-0.021 l 207.10605,0.467 c -4.41,-10.433 -6.0455,-21.92293 -6.85,-33.927 -3.48821,-52.04824 44.40983,-95.00472 92.88283,-95.00472 48.473,0 97.86913,38.90097 95.7505,95.00472 -0.45698,12.10137 -2.471,23.645 -6.936,34.132 l 4.628,0.006 c 0,0 31.2835,2.535 36.8155,-12.115 1.754,-1.079 5.025,-0.462 7.044,-1.127 6.262,-2.064 16.019,-14.87 12.397,-12.679 7.087,-4.291 10.955,-38.623 11.552,-60.016 z M 399.50952,160.78231 353.02052,228.077 c 0,0 61.37379,0.282 -97.76121,-0.146 13.339,-45.461 46.34,-72.04469 46.34,-72.04469 l 91.43021,-8.005 c 0,0 7.981,-0.04 9.017,2.745 2.233,2.728 -2.537,10.156 -2.537,10.156 z m 22.08935,69.95369 c 0,0 -16.209,-15.43728 -18.878,-23.79728 -1.136,-3.561 -0.391,-8.308 0.521,-11.395 -0.005,0.007 0.008,-0.039 0.044,-0.157 -0.016,0.049 -0.029,0.107 -0.044,0.157 0.127,-0.175 13.628,-32.09641 24.274,-41.32141 13.686,-7.696 64.52812,-1.69 64.52812,-1.69 l 0.037,78.05869 z m 224.62854,-33.00196 c -11.544,14.993 0.82333,36.79096 0.82333,36.79096 l -125.45162,-0.048 c 0,0 0.265,-77.31869 0.265,-71.23869 0.839,-3.864 0.624,-7.521 2.536,-10.143 1.871,-2.565 25.43498,-2.26 28.86098,-3.381 0.707,0.027 16.02428,-0.88 37.83228,6.198 26.11437,11.24671 34.46442,26.75419 55.13403,41.82173 z"
-         id="path6"
-         inkscape:connector-curvature="0"
-         style="fill:#800000"
-         sodipodi:nodetypes="cccccccccccccccccccccccssscccssscccccccccccccccccccccccccccccc" /></g></g><path
-     style="overflow:visible;fill:#666666;stroke:#000000;stroke-width:1.88725293;stroke-miterlimit:4;stroke-dasharray:none"
-     id="path3514-1-1-5"
-     sodipodi:type="arc"
-     sodipodi:cx="6.1523438"
-     sodipodi:cy="15.137695"
-     sodipodi:rx="1.8765619"
-     sodipodi:ry="1.8765619"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     d="m 4.2757819,15.137695 a 1.8765619,1.8765619 0 0 1 1.8761116,-1.876562 1.8765619,1.8765619 0 0 1 1.8770119,1.875662 1.8765619,1.8765619 0 0 1 -1.8752106,1.877462 1.8765619,1.8765619 0 0 1 -1.8779121,-1.87476"
-     sodipodi:open="true" /><path
-     style="overflow:visible;fill:#666666;stroke:#000000;stroke-width:1.88725293;stroke-miterlimit:4;stroke-dasharray:none"
-     id="path3514-1-1-5-5"
-     sodipodi:type="arc"
-     sodipodi:cx="18.782524"
-     sodipodi:cy="15.057586"
-     sodipodi:rx="1.8765619"
-     sodipodi:ry="1.8765619"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     d="m 16.905962,15.057586 a 1.8765619,1.8765619 0 0 1 1.876112,-1.876562 1.8765619,1.8765619 0 0 1 1.877012,1.875661 1.8765619,1.8765619 0 0 1 -1.875211,1.877462 1.8765619,1.8765619 0 0 1 -1.877912,-1.87476"
-     sodipodi:open="true" /></svg>
diff --git a/htdocs/public/symbols/svgicons/107-65.svg b/htdocs/public/symbols/svgicons/107-65.svg
deleted file mode 100755
index 5f09ee8e456bfbb39eee4d88d04d1b4e3980bc37..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/107-65.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="-0.258 -0.548 24.000001 24">
- <metadata id="metadata25"/>
- <path d="m 18.726837,7.1624246 0,-2.9805619 -0.274301,0 c -0.822901,0 -1.492036,0.6674961 -1.492036,1.490164 0,0.8245402 0.669135,1.4901639 1.492036,1.4901639 l 0.274301,0 z" id="path11" inkscape:connector-curvature="0"/>
- <path d="M 16.479538,6.4839284 15.17778,3.8801788 C 14.887096,3.3463224 14.325623,2.9879996 13.672871,2.9879996 l -3.022456,0 c -0.283428,0 -0.508345,0.2267895 -0.508345,0.5102179 0,0.2834284 0.224917,0.5083456 0.508345,0.5083456 l 3.022456,-0.00187 c 0.246918,0 0.515601,0.1664059 0.625368,0.3967061 l 0.828285,1.6603146 1.353014,0.422217 z" id="path13" inkscape:connector-curvature="0"/>
- <path d="m 23.04497,9.1623456 c 0.414529,0.1194237 0.722958,0.5031096 0.722958,0.9561304 l -2.320867,0.002 c -3.05345,0 -5.534454,2.482732 -5.534454,5.536428 l -7.5528137,0 c 0,-2.453863 -1.5961827,-4.535884 -3.8052758,-5.262542 L 0.39269753,9.0254029 1.0828386,7.9710686 c 0.2427955,-0.3681411 0.6689213,-0.6111832 1.143162,-0.6111832 0.1098008,0 0.2082513,0.00766 0.2988062,0.026895 l 9.2740942,2.87604 c 0.11375,0.03282 0.231447,0.05404 0.35852,0.05404 0.418229,0 0.782669,-0.211953 1.000543,-0.537901 l 2.108915,-3.0457999 7.778091,2.4291883 z" id="path15" inkscape:connector-curvature="0" fill="#550000" stroke-width="0.702"/>
- <circle id="path4236-3" cx="20.15" cy="16.419" r="2.175" fill="#4d4d4d" stroke-width="3"/>
- <path d="m 16.589305,16.33956 c 0,-1.980254 1.605314,-3.578313 3.57644,-3.578313 1.976509,0 3.57644,1.598059 3.57644,3.578313 0,1.972998 -1.599931,3.57644 -3.57644,3.57644 -1.971126,0 -3.57644,-1.603676 -3.57644,-3.57644 z m 3.57644,1.33663 c 0.742391,0 1.342014,-0.599623 1.342014,-1.33663 0,-0.742391 -0.599623,-1.338503 -1.342014,-1.338503 -0.73139,0 -1.331247,0.596112 -1.331247,1.338503 2.34e-4,0.736773 0.599857,1.33663 1.331247,1.33663 z" id="path17" inkscape:connector-curvature="0"/>
- <circle id="path4236" cx="3.536" cy="15.864" r="2.175" fill="#4d4d4d" stroke-width="3"/>
- <path d="m -0.25818392,15.955492 c 0,-2.16866 1.76071982,-3.933125 3.93476302,-3.933125 2.1777879,0 3.9312524,1.764465 3.9312524,3.933125 0,2.174043 -1.7534645,3.936635 -3.9312524,3.936635 -2.1740432,0 -3.93476302,-1.762592 -3.93476302,-3.936635 z m 3.94389082,1.475653 c 0.808157,0 1.4681637,-0.658134 1.4681637,-1.471908 0,-0.813775 -0.6600067,-1.471909 -1.4681637,-1.471909 -0.8172849,0 -1.4719085,0.658134 -1.4719085,1.471909 0,0.813774 0.6546236,1.471908 1.4719085,1.471908 z" id="path19" inkscape:connector-curvature="0"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/108-1.svg b/htdocs/public/symbols/svgicons/108-1.svg
deleted file mode 100755
index efcae6de980369babec243a6bb133a0070e4c70e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/108-1.svg
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" version="1.0" width="24" height="24">
- <defs id="defs7856">
-  <linearGradient id="linearGradient5418" y2="18.14" gradientUnits="userSpaceOnUse" x2="25.17" gradientTransform="matrix(1.0625,0,0,0.93333,-1.5,0.51667)" y1="4.739" x1="21.09" inkscape:collect="always">
-   <stop id="stop5414" stop-color="#ffffff"/>
-   <stop id="stop5416" offset="1" stop-color="#ffffff" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient5426" y2="8.24" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.0452,0,0,0.97519,-0.83237,0.65789)" y1="26.933" inkscape:collect="always">
-   <stop id="stop5422" stop-color="#3465a4"/>
-   <stop id="stop5424" offset="1" stop-color="#204a87"/>
-  </linearGradient>
-  <filter id="filter5450" height="1.203" width="1.076" y="-0.102" x="-0.038" inkscape:collect="always">
-   <feGaussianBlur id="feGaussianBlur5452" stdDeviation="0.71466" inkscape:collect="always"/>
-  </filter>
-  <linearGradient id="linearGradient5741" y2="30.489" gradientUnits="userSpaceOnUse" x2="24" y1="2.01" x1="17.799" inkscape:collect="always">
-   <stop id="stop5737" stop-color="#2e3436"/>
-   <stop id="stop5739" offset="1" stop-color="#080d19"/>
-  </linearGradient>
- </defs>
- <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(0,-24)">
-  <g id="g3416" transform="matrix(0.48504583,0,0,0.48504583,0.3597217,23.888137)">
-   <path d="M 4.8125,29.363 1.5,42.582 c -0.70396,1.954 0.0843,2.946 0.625,3.125 l 43.125,0 c 0.788,-0.629 1.614,-1.476 1.125,-3.25 l -2.5,-12.969 C 43.809,29.132 43.523,28.94 43.125,28.832 L 6.25,28.863 C 5.5292,28.82 5.1504,28.837 4.8125,29.363 Z" transform="matrix(1.0154,0,0,1.1259,-0.2403,-5.4628)" sodipodi:nodetypes="ccccccccc" id="path5428" inkscape:connector-curvature="0" filter="url(#filter5450)" fill-rule="evenodd" color="#000000"/>
-   <rect x="4.511" y="2.511" width="38.978" height="27.478" ry="0.492" rx="0.557" id="rect5139" fill="url(#linearGradient5741)" fill-rule="evenodd" stroke="#202526" stroke-linejoin="round" stroke-linecap="square" color="#000000"/>
-   <path d="M 4.8125,28.656 1.5,41.875 c -0.221,0.613 -0.4895,1.189 -0.2756,1.56 L 2.125,45 45.25,45 46.389,43.566 c 0.312,-0.392 0.194,-1.061 -0.014,-1.816 l -2.5,-12.969 c -0.066,-0.357 -0.352,-0.549 -0.75,-0.656 L 6.25,28.156 C 5.5292,28.113 5.1504,28.13 4.8125,28.656 Z" sodipodi:nodetypes="ccsccsccccc" id="path5147" inkscape:connector-curvature="0" fill="#2e3436" fill-rule="evenodd" stroke="#202526" stroke-linejoin="round" stroke-linecap="square" color="#000000"/>
-   <path d="m 6.7502,29.752 -0.9651,6.267 c -0.6372,0.926 0.0762,1.396 0.5656,1.481 l 27.679,0 0.088,1.061 8.259,0 c 0.713,-0.298 1.46,-0.7 1.018,-1.541 l -1.29,-7.209 c -0.06,-0.169 -0.319,-0.26 -0.679,-0.311 L 8.0507,29.515 C 7.3985,29.494 7.0557,29.502 6.7499,29.752 Z" sodipodi:nodetypes="ccccccccccc" id="path2787" inkscape:connector-curvature="0" opacity="0.85" fill="none" stroke="#171b1c" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.5"/>
-   <g transform="translate(-1.0607,-1.5581)" id="g5266" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489">
-    <rect x="7.745" y="33.12" width="2.928" height="1.511" id="rect5268"/>
-    <rect x="10.989" y="33.12" width="2.133" height="1.511" id="rect5270"/>
-    <rect x="13.475" y="33.12" width="2.133" height="1.511" id="rect5272"/>
-    <rect x="15.906" y="33.12" width="2.133" height="1.511" id="rect5274"/>
-    <rect x="18.513" y="33.12" width="2.133" height="1.511" id="rect5276"/>
-    <rect x="20.988" y="33.12" width="2.133" height="1.511" id="rect5278"/>
-    <rect x="23.463" y="33.12" width="2.133" height="1.511" id="rect5280"/>
-    <rect x="26.07" y="33.12" width="2.133" height="1.511" id="rect5282"/>
-    <rect x="28.59" y="33.12" width="2.133" height="1.511" id="rect5284"/>
-    <rect x="31.06" y="33.12" width="2.133" height="1.511" id="rect5286"/>
-    <rect x="33.495" y="33.12" width="2.133" height="1.511" id="rect5288"/>
-    <rect x="36.01" y="33.12" width="2.133" height="1.511" id="rect5290"/>
-    <rect x="38.489" y="33.12" width="2.133" height="1.511" id="rect5320"/>
-    <rect x="40.964" y="33.12" width="1.914" height="1.511" id="rect5324"/>
-   </g>
-   <rect x="6.596" y="33.12" width="4.077" height="1.511" id="rect5199" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="10.989" y="33.12" width="2.133" height="1.511" id="rect5203" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="13.475" y="33.12" width="2.133" height="1.511" id="rect5207" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="15.906" y="33.12" width="2.133" height="1.511" id="rect5211" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="18.513" y="33.12" width="2.133" height="1.511" id="rect5215" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="20.988" y="33.12" width="2.133" height="1.511" id="rect5219" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="23.463" y="33.12" width="2.133" height="1.511" id="rect5223" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="26.07" y="33.12" width="2.133" height="1.511" id="rect5227" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="28.59" y="33.12" width="2.133" height="1.511" id="rect5231" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="31.06" y="33.12" width="2.133" height="1.511" id="rect5235" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="33.495" y="33.12" width="2.133" height="1.511" id="rect5239" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="36.01" y="33.12" width="2.133" height="1.511" id="rect5243" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="38.31" y="33.12" width="3.724" height="1.511" id="rect5247" fill="#545755" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="6.484" y="5.484" width="35.03" height="21.03" ry="0.372" rx="0.361" id="rect5137" fill="url(#linearGradient5426)" fill-rule="evenodd" stroke="#204a87" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.968"/>
-   <rect x="11.373" y="35.24" width="2.133" height="1.511" id="rect5149" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="13.994" y="35.24" width="2.133" height="1.511" id="rect5159" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="16.623" y="35.24" width="12.414" height="1.511" id="rect5163" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="29.588" y="35.24" width="2.133" height="1.511" id="rect5167" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="32.21" y="35.24" width="2.133" height="1.511" id="rect5171" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="34.98" y="36.432" width="2.133" height="1.324" id="rect5175" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="37.37" y="35.18" width="2.133" height="1.199" id="rect5183" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="37.623" y="36.554" width="2.133" height="1.168" id="rect5179" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="40.24" y="36.526" width="2.133" height="1.23" id="rect5187" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="8.779" y="35.24" width="2.133" height="1.511" id="rect5191" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <rect x="6.154" y="35.24" width="2.133" height="1.511" id="rect5195" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489"/>
-   <g transform="translate(-1.4982,-2.9331)" id="g5328" fill="#555753" fill-rule="evenodd" stroke="#222728" stroke-linejoin="round" stroke-linecap="square" color="#000000" stroke-width="0.489">
-    <rect x="8.495" y="33.12" width="2.178" height="1.511" id="rect5330"/>
-    <rect x="10.989" y="33.12" width="2.133" height="1.511" id="rect5332"/>
-    <rect x="13.475" y="33.12" width="2.133" height="1.511" id="rect5334"/>
-    <rect x="15.906" y="33.12" width="2.133" height="1.511" id="rect5336"/>
-    <rect x="18.513" y="33.12" width="2.133" height="1.511" id="rect5338"/>
-    <rect x="20.988" y="33.12" width="2.133" height="1.511" id="rect5340"/>
-    <rect x="23.463" y="33.12" width="2.133" height="1.511" id="rect5342"/>
-    <rect x="26.07" y="33.12" width="2.133" height="1.511" id="rect5344"/>
-    <rect x="28.59" y="33.12" width="2.133" height="1.511" id="rect5346"/>
-    <rect x="31.06" y="33.12" width="2.133" height="1.511" id="rect5348"/>
-    <rect x="33.495" y="33.12" width="2.133" height="1.511" id="rect5350"/>
-    <rect x="36.01" y="33.12" width="2.133" height="1.511" id="rect5352"/>
-    <rect x="38.489" y="33.12" width="2.133" height="1.511" id="rect5354"/>
-    <rect x="40.964" y="33.12" width="2.133" height="1.511" id="rect5356"/>
-   </g>
-   <path d="M 18.143,39.34 18,41 29,41 28.929,39.462 C 28.913,39.15 28.727,39.006 28.5,39 l -10.071,0 c -0.144,0.009 -0.238,0.124 -0.286,0.34 z" sodipodi:nodetypes="ccccccc" id="path5386" inkscape:connector-curvature="0" opacity="0.75" fill="#555753" fill-rule="evenodd" color="#000000"/>
-   <path d="M 18.143,41.731 18,41 29,41 28.929,41.769 C 28.904,41.988 28.67,41.973 28.5,42 l -10.071,0 c -0.117,0.016 -0.217,-0.05 -0.286,-0.269 z" sodipodi:nodetypes="ccccccc" id="path5388" inkscape:connector-curvature="0" opacity="0.75" fill="#555753" fill-rule="evenodd" color="#000000"/>
-   <path d="m 1.591,43.05 c 0.0984,0.644 0.0034,1.371 0.8839,1.68 l 42.426,0 c 0.499,-0.476 0.927,-0.783 1.194,-1.724 L 1.5909,43.05 Z" sodipodi:nodetypes="ccccc" id="path5398" inkscape:connector-curvature="0" fill="#2e3436" fill-rule="evenodd" color="#000000"/>
-   <path d="m 7,6.1167 0.1255,13.883 c 7.1195,-4.224 26.594,-6.457 33.874,-6.65 l 0,-7.35 -34,0.1167 z" sodipodi:nodetypes="ccccc" id="path5410" inkscape:connector-curvature="0" opacity="0.218" fill="url(#linearGradient5418)" fill-rule="evenodd" color="#000000"/>
-   <path d="m 1.6661,43 44.396,0 c 0,0.619 -0.488,1 -0.937,1 L 2.8541,44 C 1.9356,44 1.6662,43 1.6662,43 Z" sodipodi:nodetypes="ccccc" id="rect5496" inkscape:connector-curvature="0" opacity="0.12" fill="#eeeeec" fill-rule="evenodd" color="#000000"/>
-   <path d="M 28.997,43.006 29,44.08 c 0,0.191 -0.154,0.345 -0.345,0.345 l -10.31,0 C 18.154,44.425 18,44.271 18,44.08 l 0,-1.082 10.997,0.008 z" sodipodi:nodetypes="ccccccc" id="rect5733" inkscape:connector-curvature="0" opacity="0.615" fill="#000000" fill-rule="evenodd" color="#000000"/>
-   <rect x="23.688" y="42.42" width="5.313" height="1" ry="0.345" rx="0.157" id="rect5466" opacity="0.273" fill="#808285" fill-rule="evenodd" color="#000000"/>
-   <rect x="18" y="42.42" width="5.438" height="1" ry="0.345" rx="0.157" id="rect3766" opacity="0.273" fill="#808285" fill-rule="evenodd" color="#000000"/>
-   <path d="m 18.501,37.265 -0.147,1.293 4.646,0 -0.031,-1.198 C 22.962,37.117 22.88,37.005 22.781,37 l -4.154,0 c -0.063,0.007 -0.104,0.097 -0.126,0.265 z" sodipodi:nodetypes="ccccccc" id="path4778" inkscape:connector-curvature="0" opacity="0.27" fill="#888a85" fill-rule="evenodd" color="#000000"/>
-   <path d="m 28.615,37.265 0.154,1.293 -4.813,0 0.032,-1.198 C 23.995,37.117 24.08,37.005 24.183,37 l 4.303,0 c 0.065,0.007 0.108,0.097 0.129,0.265 z" sodipodi:nodetypes="ccccccc" id="path4780" inkscape:connector-curvature="0" opacity="0.27" fill="#888a85" fill-rule="evenodd" color="#000000"/>
-   <ellipse transform="matrix(0.34811,0,0,0.2901,21.238,17.601)" id="path4782" cx="6.497" cy="59.977" rx="2.873" ry="1.724" fill="#555753" fill-rule="evenodd" stroke="#3465a4" fill-opacity="0.75" stroke-width="3.147"/>
-   <rect x="22.938" y="37" width="1.094" height="1.5" ry="0.345" rx="0.157" id="rect3781" opacity="0.619" fill="#808285" fill-rule="evenodd" color="#000000"/>
-  </g>
- </g>
- <metadata id="metadata88"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/108-2.svg b/htdocs/public/symbols/svgicons/108-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/108-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/109-1.svg b/htdocs/public/symbols/svgicons/109-1.svg
deleted file mode 100755
index 9ca89f9158bda784b9d311e9ffa8911af12c1e3e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/109-1.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" version="1.0" width="24" height="24">
- <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(0,-24)">
-  <rect id="rect3508" width="24" height="24" y="24" rx="4" fill="#e6e6e6" fill-rule="evenodd"/>
-  <text x="1.346" y="32.758" id="text3510" sodipodi:linespacing="125%" font-family="sans-serif" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="10"><tspan sodipodi:role="line" id="tspan3512" x="1.346" y="32.758">MIC</tspan>
-  </text>
-  <text x="8.492" y="46.935" id="text3514" sodipodi:linespacing="125%" font-family="sans-serif" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="10"><tspan sodipodi:role="line" id="tspan3516" x="8.492" y="46.935">E</tspan>
-  </text>
-  <path sodipodi:type="arc" id="path5701" sodipodi:cx="12.000047" sodipodi:cy="36" sodipodi:rx="1.8725199" sodipodi:ry="1.8725199" d="m 10.127527,36 a 1.8725199,1.8725199 0 0 1 1.87207,-1.87252 1.8725199,1.8725199 0 0 1 1.872969,1.871621 1.8725199,1.8725199 0 0 1 -1.871171,1.873418 1.8725199,1.8725199 0 0 1 -1.873867,-1.870721" sodipodi:start="3.1415927" sodipodi:end="3.1406327" sodipodi:open="true" fill="#ff0000" stroke="#ff0000" stroke-linejoin="round" stroke-linecap="round" stroke-width="1.674"/>
- </g>
- <metadata id="metadata88"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/109-2.svg b/htdocs/public/symbols/svgicons/109-2.svg
deleted file mode 100755
index e28599fbbd9a5aaceb58e2da6f30dedefda0881f..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/109-2.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata3740"/>
- <path d="M 11.98987,1.6991642 12.01013,22.300836" id="path3744" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" fill="none" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="3.351"/>
- <rect id="rect4546" width="22.811" height="11.37" x="0.595" y="2.679" rx="3.176" fill="#ffffff" stroke="#000000" stroke-linecap="round" stroke-width="1.189"/>
- <text x="1.261" y="12.178" id="text4548" sodipodi:linespacing="125%" font-family="sans-serif" word-spacing="0" line-height="125%" letter-spacing="0" font-size="11.25"><tspan sodipodi:role="line" id="tspan4550" x="1.261" y="12.178">888</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/110-1.svg b/htdocs/public/symbols/svgicons/110-1.svg
deleted file mode 100755
index c3bfee69bd8882d8e29f901b88281d363121a0a5..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/110-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3276"/>
- <path sodipodi:type="arc" id="path3280" sodipodi:cx="11.898305" sodipodi:cy="12.101695" sodipodi:rx="12.20339" sodipodi:ry="12.20339" d="m 24.101695,12.101695 a 12.20339,12.20339 0 1 1 -24.40678018,0 12.20339,12.20339 0 1 1 24.40678018,0 z" transform="matrix(0.9201921,0,0,0.9201921,1.0512738,0.86411581)" fill="#cccccc" stroke="#000000" stroke-width="1.675"/>
- <path sodipodi:type="arc" id="path3282" sodipodi:cx="12" sodipodi:cy="11.898305" sodipodi:rx="7.2203388" sodipodi:ry="7.2203388" d="m 19.220339,11.898305 a 7.2203388,7.2203388 0 1 1 -14.4406778,0 7.2203388,7.2203388 0 1 1 14.4406778,0 z" transform="matrix(0.93617311,0,0,0.93617311,0.76592268,0.86112686)" fill="#999999" stroke="#000000" stroke-width="1.582"/>
- <path sodipodi:type="arc" id="path3284" sodipodi:cx="11.79661" sodipodi:cy="12" sodipodi:rx="1.2203389" sodipodi:ry="1.2203389" d="m 13.016949,12 a 1.2203389,1.2203389 0 1 1 -2.440678,0 1.2203389,1.2203389 0 1 1 2.440678,0 z" transform="translate(0.20339012,0)" fill="#0000ff" stroke="#0000ff" stroke-width="1.582"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/110-2.svg b/htdocs/public/symbols/svgicons/110-2.svg
deleted file mode 100755
index f0c31d3dd1061ea8244a352ac4783c5dbf3f5637..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/110-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3070"/>
- <path sodipodi:type="star" id="path3879" sodipodi:sides="3" sodipodi:cx="11.186441" sodipodi:cy="12.610169" sodipodi:r1="12.604427" sodipodi:r2="6.3022137" sodipodi:arg1="0.52359878" sodipodi:arg2="1.5707963" inkscape:flatsided="false" inkscape:rounded="0" inkscape:randomized="0" d="m 22.102196,18.912383 -10.915754,0 -10.91575488,0 L 5.7285642,9.4590627 11.186441,0.00574207 16.644318,9.4590624 Z" inkscape:transform-center-y="-3.6355753" transform="matrix(1.0454529,0,0,1.1537455,0.3051024,1.0866167)" fill="#ff0000" stroke="#ff0000" stroke-linejoin="round" stroke-width="1.125"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/111-1.svg b/htdocs/public/symbols/svgicons/111-1.svg
deleted file mode 100755
index 4580c646965854d7b80e8d0583c4337944a5d699..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/111-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3957"/>
- <path d="m 2.3225454,23.562785 19.2338326,0 0,-11.58873 2.006407,0 L 12.025945,0.43721472 0.43721467,12.025945 l 1.91992393,0 z" id="path3961" inkscape:connector-curvature="0" fill="#ff0000" stroke="#000000" stroke-linejoin="round" stroke-width="0.874"/>
- <text x="4.925" y="16.972" id="text4509" sodipodi:linespacing="125%" transform="scale(0.80564602,1.2412399)" fill="#ffffff" font-family="Sans" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="8.689"><tspan sodipodi:role="line" id="tspan4511" x="4.925" y="16.972">EOC</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/111-2.svg b/htdocs/public/symbols/svgicons/111-2.svg
deleted file mode 100755
index 6a5150540c1001a82a32c33b04d8d99ea0a1ab78..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/111-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3276"/>
- <ellipse id="path3280" cx="12" cy="12" rx="9.95" ry="9.95" fill="#ffffff" stroke="#ff0000" stroke-width="4.1"/>
- <circle id="path3282" cx="12" cy="12" r="3.419" fill="#ffffff" stroke="#ffff00" stroke-width="2.826"/>
- <circle id="path3284" cx="12" cy="12" r="1.547" fill="#ff0000" stroke="#ff0000" stroke-width="2.01"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/112-1.svg b/htdocs/public/symbols/svgicons/112-1.svg
deleted file mode 100755
index dd97456a8b8a2b9084027e983afd80594cd31625..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/112-1.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24"
-   height="24"
-   id="svg3000"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="Nytt dokument 2">
-  <defs
-     id="defs3002" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="7.9195959"
-     inkscape:cx="25.766187"
-     inkscape:cy="25.439181"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1867"
-     inkscape:window-height="1056"
-     inkscape:window-x="53"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata3005">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1028.3622)">
-    <g
-       transform="matrix(-44.210088,0,0,44.210088,35.674396,1031.1014)"
-       id="g6547">
-      <path
-         d="m 0.67499548,0.44929292 -0.002899,4.1666e-4 -0.002795,3.6458e-4 -0.002691,2.9514e-4 -0.002569,2.2569e-4 -0.0025,1.7361e-4 -0.002378,1.0417e-4 -0.002292,5.208e-5 -0.002205,0 -0.002101,-6.944e-5 -0.002014,-1.2153e-4 -0.001927,-1.7361e-4 -0.00184,-2.2569e-4 -0.001771,-2.9514e-4 -0.001667,-3.2986e-4 -0.001597,-3.8194e-4 -0.00151,-4.3402e-4 -0.001441,-4.8611e-4 -0.001372,-5.3819e-4 -0.001285,-5.9028e-4 -0.001233,-6.2499e-4 -0.001146,-6.7708e-4 -0.001094,-7.2916e-4 -0.001024,-7.6389e-4 -9.5485e-4,-8.1596e-4 -9.0277e-4,-8.5069e-4 -8.3333e-4,-9.0278e-4 -7.8125e-4,-9.3749e-4 -7.2916e-4,-9.7222e-4 -6.7708e-4,-0.001024 -6.2499e-4,-0.001059 -0.001094,-0.002222 -9.2013e-4,-0.002361 -7.4652e-4,-0.0025 -6.0764e-4,-0.002622 -4.6875e-4,-0.00276 -3.2985e-4,-0.002865 -2.4306e-4,-0.002969 -1.5625e-4,-0.003073 -8.68e-5,-0.003177 -1.736e-5,-0.003247 3.472e-5,-0.003333 3.472e-5,-0.003403 6.944e-5,-0.003455 8.681e-5,-0.007118 1.736e-5,-0.003611 -0.003802,-0.0803294 -0.0158332,0.0741662 c -0.003333,0.0137499 -0.007083,0.0266665 0.0129166,0.0370831 0.0141666,0.0125173 -0.001667,0.0296005 -0.0170832,0.0275172 -0.0462497,0.001649 -0.0395831,-0.0291665 -0.0354164,-0.0508504 l 0.0025,-0.0316665 0.0075,-0.0645829 -0.00625,-0.0162499 C 0.51582983,0.27137739 0.48166338,0.26179412 0.44291363,0.24096092 l -0.0274998,0.00375 c -0.0129166,0.002083 -0.009583,0.0166666 -0.0108333,0.0262498 l -0.004167,0.0262672 -0.0229165,0.059583 -0.001667,0.004983 c -0.001667,0.004167 -0.00125,0.0204165 0.004583,0.0287498 l 0.0124999,0.0250172 c 0.009167,0.0137326 0.0116666,0.0487323 -0.0141666,0.0374824 l 4.1666e-4,0 -0.0191665,-0.007917 c -0.0137499,-0.005816 -0.0249998,-0.0437324 -0.0299998,-0.0712322 l 8.3333e-4,-0.0391838 c -0.0120833,-0.003316 -0.0170832,0.0662496 -0.0120833,0.0808502 l 0.0120833,0.0362324 c 0.003333,0.0116666 -0.0104166,0.0158506 -0.0199999,0.0158506 -0.0224998,0 -0.0324998,-0.0229339 -0.0370831,-0.0421004 l -0.003333,-0.0145832 c -0.005833,-0.0220832 -0.002917,-0.055833 0.008333,-0.0754162 l 0.005833,-0.0120833 c 0.009583,-0.0241665 -0.002917,-0.0412497 -0.005833,-0.0537496 -0.009583,-0.0391664 -0.0174999,-0.0770828 0.009583,-0.1145826 l 0.0025,-0.002899 c -0.00125,-0.002934 -0.009167,-0.009167 -0.0137499,-0.0237672 C 0.26666352,0.0951289 0.25749692,0.04054591 0.27041312,0.04054591 l 0.00875,-4.1666e-4 c 0.0216665,0 0.0149999,0.08999943 0.0412497,0.08416613 l 0.1874988,0.002083 0.0333331,-0.009149 c 0.0116666,-0.003351 0.0220832,-0.0108506 0.0329164,-0.01751725 l 0.0216665,-0.01333325 c 0.0241665,0.02458318 0.045833,0.03999975 0.0812495,0.05291633 0.009583,0.0733329 -0.00125,0.0896001 -0.0104166,0.13333248 l -0.003333,0.0179166 c -0.007083,0.0312672 -0.009167,0.0637496 -0.0075,0.0962494 l 8.3332e-4,0.0149999 c -8.3332e-4,0.0154166 0.008333,0.0166839 0.0204165,0.0204339 0.007917,0.004149 0.0133333,0.0195658 -0.002083,0.0270658 l 4.1666e-4,0 -4.1666e-4,0 z"
-         id="path12"
-         inkscape:connector-curvature="0"
-         stroke-miterlimit="10.433"
-         style="fill:#1e1916;stroke:#1e1916;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10.43299961" />
-      <path
-         d="m 0.71499522,1.29127e-4 9.375e-4,6.9444e-4 9.7221e-4,6.94443e-4 0.001962,0.0015104 0.002031,0.00161458 0.002066,0.00171874 0.002101,0.00180554 0.002118,0.00187499 0.002153,0.0019444 0.00217,0.0019965 0.00217,0.002066 0.00217,0.0020833 0.004288,0.0042708 0.002101,0.0021528 0.002083,0.0021528 0.002031,0.0021354 0.001979,0.0021354 0.0133332,0.01414922 c 0.008333,0.0087499 0.0212499,0.0074999 0.0324998,0.0099999 l 0.004583,4.1667e-4 c 0.0120832,0.006684 0.008333,0.02001723 0.004167,0.02999981 l -0.0025,0.0062673 c -0.0120832,0.02873245 -0.047083,0.03081577 -0.0720829,0.01748253 l -0.0108333,-0.005833 -0.00375,0 -0.007917,0.005 -0.0154166,0.0125173 C 0.65791226,0.10681247 0.63166242,0.09012855 0.61082922,0.06762869 l 0.048333,-0.06083294 0.0162499,-0.02333318 0.003333,-0.0079166 0.00375,-0.0087326 c 0,0 0.0149999,-0.01876724 0.0237498,-0.01501727 0.00875,0.0037673 0.0141666,0.01999987 0.0120833,0.02833316 l -0.0025,0.00999993 -8.3333e-4,0.009999937 4.1667e-4,0"
-         id="path14"
-         inkscape:connector-curvature="0"
-         stroke-miterlimit="10.433"
-         style="fill:#1e1916;stroke:#1e1916;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10.43299961" />
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/112-2.svg b/htdocs/public/symbols/svgicons/112-2.svg
deleted file mode 100755
index 68d5c87c0d544b4f4a14dae3e50f3673473743a9..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/112-2.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <switch id="switch3117" transform="matrix(0.04126034,0,0,0.04126034,-0.21995112,513.7136)">
-   <g id="g3121">
-    <path d="m 587.001,191.775 c 0,-34.867 -24.173,-64.178 -56.635,-72.094 -0.487,-0.119 -0.977,-0.23 -1.468,-0.34 -1.321,0.132 -2.625,-0.138 -3.761,-0.734 -4.019,-0.676 -8.14,-1.047 -12.347,-1.047 -14.877,0 -29.225,4.381 -41.491,12.671 -3.054,2.063 -7.2,1.261 -9.263,-1.792 -0.774,-1.146 -1.145,-2.447 -1.144,-3.735 0.002,-2.139 1.03,-4.239 2.936,-5.526 14.481,-9.786 31.411,-14.959 48.962,-14.959 1.654,0 3.297,0.051 4.928,0.142 C 499.864,65.46 460.832,40.014 417.312,40.014 c -46.851,0 -87.649,29.456 -103.479,71.663 -2.983,7.955 -5.083,16.361 -6.166,25.111 -0.418,3.378 -3.293,5.852 -6.612,5.852 -0.207,0 -0.417,-0.019 -0.627,-0.039 -0.067,-0.006 -0.133,-0.004 -0.2,-0.012 -3.656,-0.452 -6.253,-3.783 -5.801,-7.439 1.036,-8.369 2.905,-16.456 5.507,-24.189 -42.585,1.412 -76.817,35.727 -78.098,78.348 8.087,0.308 15.9,2.767 22.695,7.162 1.975,1.276 3.044,3.421 3.043,5.609 -0.001,1.24 -0.342,2.495 -1.065,3.614 -2,3.095 -6.129,3.979 -9.224,1.978 -4.437,-2.869 -9.495,-4.561 -14.755,-4.959 -0.804,-0.062 -1.611,-0.097 -2.423,-0.097 -14.922,0 -27.461,10.372 -30.804,24.284 11.929,-3.955 24.376,-6.65 37.163,-7.951 5.847,-0.594 11.765,-0.901 17.736,-0.901 5.979,0 11.893,0.314 17.732,0.909 11.826,1.203 23.331,3.594 34.384,7.062 20.481,6.429 39.406,16.55 55.945,29.621 6.605,5.221 12.835,10.904 18.624,17.02 h 135.23 c 44.668,0 80.877,-36.205 80.885,-80.871 0,-0.006 -10e-4,-0.01 -10e-4,-0.014 z" id="path3123" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-    <path d="m 521.806,465.719 c -1.138,0 -2.266,0.055 -3.387,0.139 -14.255,1.062 -27.023,8.777 -34.622,21.114 -2.721,4.414 -8.506,5.79 -12.921,3.07 -2.88,-1.773 -4.455,-4.852 -4.456,-8.002 0,-1.681 0.439,-3.382 1.385,-4.918 11.22,-18.215 30.377,-29.352 51.597,-30.136 -1.799,-60.006 -50.021,-108.336 -109.977,-110.315 3.667,10.895 6.302,22.287 7.761,34.077 0.637,5.147 -3.02,9.836 -8.166,10.473 -0.094,0.012 -0.187,0.009 -0.281,0.018 -0.296,0.027 -0.592,0.055 -0.884,0.055 -4.672,0 -8.72,-3.482 -9.308,-8.238 -1.525,-12.323 -4.483,-24.163 -8.688,-35.367 -9.626,-25.658 -25.811,-47.963 -46.402,-65.029 -2.799,-2.319 -5.68,-4.541 -8.637,-6.662 -25.652,-18.406 -57.028,-29.169 -90.619,-29.169 -2.87,0 -5.725,0.084 -8.565,0.239 -15.718,0.86 -30.94,4.069 -45.253,9.344 -38.31,14.117 -70.116,42.994 -87.554,81 2.307,-0.129 4.63,-0.201 6.969,-0.201 24.705,0 48.537,7.281 68.921,21.057 2.683,1.812 4.13,4.769 4.133,7.779 0.002,1.812 -0.52,3.645 -1.61,5.259 -2.904,4.298 -8.741,5.427 -13.038,2.522 -17.267,-11.669 -37.463,-17.836 -58.405,-17.836 -5.904,0 -11.693,0.5 -17.333,1.446 -1.631,0.87 -3.511,1.261 -5.415,1.056 -0.665,0.148 -1.328,0.304 -1.988,0.465 -45.703,11.139 -79.73,52.417 -79.73,101.501 0,0.011 -0.001,0.021 -0.001,0.031 0.017,62.868 50.986,113.828 113.86,113.828 H 405.6 512.417 c 29.816,0 53.992,-24.176 53.992,-53.997 0,-24.594 -20.009,-44.603 -44.603,-44.603 z" id="path3125" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-   </g>
-  </switch>
-  <switch transform="matrix(0.04099584,0,0,0.04099584,-0.41974494,1028.2304)" id="switch4024">
-   <g id="g4028">
-    <g id="g4030">
-     <path inkscape:connector-curvature="0" d="m 259.145,407.478 c 17.73,-46.855 62.652,-78.06 113.067,-78.06 19.159,0 37.393,4.506 53.622,12.558 8.705,-21.276 13.515,-44.558 13.515,-68.967 0,-100.664 -81.604,-182.267 -182.268,-182.267 -100.663,0 -182.266,81.603 -182.266,182.267 0,82.6 54.95,152.352 130.283,174.73 11.605,-19.933 31.027,-34.761 54.047,-40.261 z" id="path4032" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 294.336,76.668 c -0.122,0 -0.245,-0.011 -0.367,-0.034 -12.121,-2.262 -24.531,-3.409 -36.888,-3.409 -11.317,0 -22.722,0.969 -33.895,2.88 -0.113,0.02 -0.226,0.029 -0.338,0.029 -0.647,0 -1.263,-0.314 -1.641,-0.857 -0.443,-0.636 -0.479,-1.472 -0.091,-2.143 l 23.761,-41.157 c 3.607,-6.248 8.423,-9.688 13.56,-9.688 5.137,0 9.953,3.44 13.561,9.688 l 24.07,41.69 c 0.391,0.676 0.352,1.518 -0.099,2.155 -0.38,0.537 -0.991,0.846 -1.633,0.846 z" id="path4034" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 103.03,144.698 c -0.174,0 -0.349,-0.022 -0.521,-0.069 -0.749,-0.202 -1.313,-0.819 -1.448,-1.583 L 92.804,96.214 C 91.729,90.115 92.71,84.88 95.568,81.473 c 2.333,-2.78 5.779,-4.25 9.966,-4.25 2.499,0 5.206,0.524 8.045,1.558 l 45.236,16.465 c 0.734,0.267 1.245,0.937 1.309,1.716 0.064,0.778 -0.331,1.523 -1.012,1.906 -20.767,11.696 -39.122,26.877 -54.555,45.121 -0.386,0.457 -0.948,0.709 -1.527,0.709 z" id="path4036" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 55.301,274.2 c -0.462,0 -0.919,-0.16 -1.286,-0.468 l -36.419,-30.56 c -5.526,-4.638 -8.078,-9.978 -7.186,-15.037 0.892,-5.059 5.117,-9.204 11.896,-11.671 l 45.213,-16.457 c 0.223,-0.081 0.455,-0.121 0.684,-0.121 0.525,0 1.041,0.207 1.423,0.594 0.549,0.556 0.725,1.381 0.449,2.112 -8.382,22.233 -12.68,45.655 -12.774,69.615 -0.003,0.776 -0.455,1.48 -1.158,1.807 -0.269,0.125 -0.557,0.186 -0.842,0.186 z" id="path4038" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 54.448,404.091 c -7.214,0 -12.602,-2.45 -15.17,-6.898 -2.568,-4.449 -1.997,-10.341 1.61,-16.589 l 24.06,-41.67 c 0.359,-0.622 1.022,-1 1.731,-1 0.062,0 0.124,0.003 0.187,0.009 0.778,0.072 1.442,0.592 1.701,1.329 7.889,22.476 19.65,43.181 34.958,61.539 0.497,0.597 0.604,1.427 0.275,2.129 -0.329,0.703 -1.035,1.152 -1.811,1.152 l -47.541,-10e-4 z" id="path4040" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 174.05,508.828 c -6.811,0 -11.828,-5.395 -13.421,-14.431 l -8.36,-47.413 c -0.136,-0.771 0.189,-1.549 0.833,-1.993 0.341,-0.235 0.739,-0.354 1.137,-0.354 0.353,0 0.706,0.093 1.021,0.28 12.801,7.597 26.484,13.76 40.669,18.317 1.05,0.338 1.629,1.462 1.293,2.513 -2.481,7.765 -4.133,14.701 -4.133,23.319 0,1.573 0.304,4.142 0.548,6.204 l 0.054,0.453 c 0.076,0.646 -0.166,1.288 -0.649,1.723 l -6.928,6.226 c -4.04,3.389 -8.193,5.156 -12.064,5.156 z" id="path4042" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 457.351,363.719 c -0.501,0 -1,-0.188 -1.385,-0.557 -4.231,-4.062 -8.809,-7.854 -13.604,-11.272 -0.759,-0.542 -1.044,-1.535 -0.686,-2.396 1.022,-2.462 1.996,-4.938 2.892,-7.36 0.27,-0.727 0.935,-1.233 1.707,-1.299 0.057,-0.005 0.113,-0.007 0.17,-0.007 0.71,0 1.372,0.378 1.731,1 l 10.906,18.892 c 0.497,0.862 0.285,1.96 -0.499,2.574 -0.362,0.284 -0.798,0.425 -1.232,0.425 z" id="path4044" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 458.85,277.275 c -0.291,0 -0.584,-0.063 -0.857,-0.193 -0.707,-0.335 -1.153,-1.052 -1.143,-1.834 0.011,-0.772 0.016,-1.513 0.016,-2.239 0,-23.188 -3.945,-45.919 -11.726,-67.56 -0.263,-0.73 -0.079,-1.546 0.471,-2.094 0.381,-0.38 0.892,-0.583 1.411,-0.583 0.229,0 0.461,0.04 0.685,0.121 l 44.62,16.243 c 6.778,2.467 11.003,6.612 11.896,11.671 0.892,5.059 -1.66,10.399 -7.186,15.037 l -36.901,30.964 c -0.368,0.307 -0.825,0.467 -1.286,0.467 z" id="path4046" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 413.104,147.04 c -0.59,0 -1.161,-0.262 -1.546,-0.731 -15.14,-18.452 -33.266,-33.903 -53.873,-45.926 -0.67,-0.391 -1.054,-1.134 -0.984,-1.906 0.07,-0.772 0.579,-1.436 1.309,-1.701 l 44.652,-16.25 c 2.841,-1.034 5.547,-1.558 8.044,-1.558 4.188,0 7.636,1.47 9.968,4.251 2.857,3.405 3.839,8.64 2.763,14.739 l -8.362,47.428 c -0.136,0.77 -0.707,1.39 -1.463,1.587 -0.17,0.046 -0.34,0.067 -0.508,0.067 z" id="path4048" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 595.627,530.521 c -0.834,-16.318 -14.371,-29.338 -30.894,-29.338 -0.795,0 -1.583,0.039 -2.366,0.098 -9.877,0.741 -18.727,6.09 -23.994,14.643 -1.887,3.061 -5.897,4.017 -8.961,2.129 -1.996,-1.23 -3.089,-3.364 -3.09,-5.549 0,-1.166 0.305,-2.347 0.961,-3.412 7.777,-12.625 21.057,-20.328 35.763,-20.88 -1.24,-41.618 -34.663,-75.128 -76.243,-76.507 2.54,7.55 4.365,15.445 5.376,23.615 0.442,3.569 -2.094,6.821 -5.663,7.263 -0.065,0.008 -0.129,0.006 -0.194,0.012 -0.206,0.02 -0.411,0.038 -0.614,0.038 -3.239,0 -6.047,-2.415 -6.454,-5.713 -1.058,-8.541 -3.106,-16.748 -6.02,-24.515 -1.118,-2.981 -2.362,-5.899 -3.729,-8.744 -7.823,-16.288 -19.604,-30.232 -34.023,-40.684 -4.734,-3.432 -9.754,-6.486 -15.012,-9.122 -14.585,-7.312 -30.999,-11.411 -48.257,-11.411 -42.489,0 -80.596,24.844 -98.026,62.824 1.596,-0.089 3.199,-0.144 4.815,-0.144 17.132,0 33.66,5.05 47.798,14.604 1.86,1.257 2.864,3.308 2.866,5.396 10e-4,1.257 -0.36,2.526 -1.116,3.646 -2.014,2.979 -6.063,3.764 -9.043,1.749 -11.976,-8.092 -25.982,-12.369 -40.505,-12.369 -4.108,0 -8.132,0.361 -12.056,1.022 -1.109,0.582 -2.381,0.845 -3.67,0.717 -0.479,0.106 -0.957,0.216 -1.434,0.331 -18.139,4.424 -33.616,15.69 -43.544,30.905 -3.263,5 -5.92,10.425 -7.879,16.174 -2.063,6.056 -3.355,12.464 -3.736,19.115 -0.08,1.387 -0.13,2.78 -0.13,4.187 0,0.004 0,0.009 0,0.013 0.007,43.604 35.357,78.95 78.963,78.95 h 198.628 74.08 c 20.677,0 37.443,-16.766 37.443,-37.447 0,-0.536 -0.019,-1.067 -0.04,-1.596 z" id="path4050" fill="#b3b3b3"/>
-    </g>
-   </g>
-  </switch>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/112-2.svg~ b/htdocs/public/symbols/svgicons/112-2.svg~
deleted file mode 100755
index 68d5c87c0d544b4f4a14dae3e50f3673473743a9..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/112-2.svg~
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <switch id="switch3117" transform="matrix(0.04126034,0,0,0.04126034,-0.21995112,513.7136)">
-   <g id="g3121">
-    <path d="m 587.001,191.775 c 0,-34.867 -24.173,-64.178 -56.635,-72.094 -0.487,-0.119 -0.977,-0.23 -1.468,-0.34 -1.321,0.132 -2.625,-0.138 -3.761,-0.734 -4.019,-0.676 -8.14,-1.047 -12.347,-1.047 -14.877,0 -29.225,4.381 -41.491,12.671 -3.054,2.063 -7.2,1.261 -9.263,-1.792 -0.774,-1.146 -1.145,-2.447 -1.144,-3.735 0.002,-2.139 1.03,-4.239 2.936,-5.526 14.481,-9.786 31.411,-14.959 48.962,-14.959 1.654,0 3.297,0.051 4.928,0.142 C 499.864,65.46 460.832,40.014 417.312,40.014 c -46.851,0 -87.649,29.456 -103.479,71.663 -2.983,7.955 -5.083,16.361 -6.166,25.111 -0.418,3.378 -3.293,5.852 -6.612,5.852 -0.207,0 -0.417,-0.019 -0.627,-0.039 -0.067,-0.006 -0.133,-0.004 -0.2,-0.012 -3.656,-0.452 -6.253,-3.783 -5.801,-7.439 1.036,-8.369 2.905,-16.456 5.507,-24.189 -42.585,1.412 -76.817,35.727 -78.098,78.348 8.087,0.308 15.9,2.767 22.695,7.162 1.975,1.276 3.044,3.421 3.043,5.609 -0.001,1.24 -0.342,2.495 -1.065,3.614 -2,3.095 -6.129,3.979 -9.224,1.978 -4.437,-2.869 -9.495,-4.561 -14.755,-4.959 -0.804,-0.062 -1.611,-0.097 -2.423,-0.097 -14.922,0 -27.461,10.372 -30.804,24.284 11.929,-3.955 24.376,-6.65 37.163,-7.951 5.847,-0.594 11.765,-0.901 17.736,-0.901 5.979,0 11.893,0.314 17.732,0.909 11.826,1.203 23.331,3.594 34.384,7.062 20.481,6.429 39.406,16.55 55.945,29.621 6.605,5.221 12.835,10.904 18.624,17.02 h 135.23 c 44.668,0 80.877,-36.205 80.885,-80.871 0,-0.006 -10e-4,-0.01 -10e-4,-0.014 z" id="path3123" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-    <path d="m 521.806,465.719 c -1.138,0 -2.266,0.055 -3.387,0.139 -14.255,1.062 -27.023,8.777 -34.622,21.114 -2.721,4.414 -8.506,5.79 -12.921,3.07 -2.88,-1.773 -4.455,-4.852 -4.456,-8.002 0,-1.681 0.439,-3.382 1.385,-4.918 11.22,-18.215 30.377,-29.352 51.597,-30.136 -1.799,-60.006 -50.021,-108.336 -109.977,-110.315 3.667,10.895 6.302,22.287 7.761,34.077 0.637,5.147 -3.02,9.836 -8.166,10.473 -0.094,0.012 -0.187,0.009 -0.281,0.018 -0.296,0.027 -0.592,0.055 -0.884,0.055 -4.672,0 -8.72,-3.482 -9.308,-8.238 -1.525,-12.323 -4.483,-24.163 -8.688,-35.367 -9.626,-25.658 -25.811,-47.963 -46.402,-65.029 -2.799,-2.319 -5.68,-4.541 -8.637,-6.662 -25.652,-18.406 -57.028,-29.169 -90.619,-29.169 -2.87,0 -5.725,0.084 -8.565,0.239 -15.718,0.86 -30.94,4.069 -45.253,9.344 -38.31,14.117 -70.116,42.994 -87.554,81 2.307,-0.129 4.63,-0.201 6.969,-0.201 24.705,0 48.537,7.281 68.921,21.057 2.683,1.812 4.13,4.769 4.133,7.779 0.002,1.812 -0.52,3.645 -1.61,5.259 -2.904,4.298 -8.741,5.427 -13.038,2.522 -17.267,-11.669 -37.463,-17.836 -58.405,-17.836 -5.904,0 -11.693,0.5 -17.333,1.446 -1.631,0.87 -3.511,1.261 -5.415,1.056 -0.665,0.148 -1.328,0.304 -1.988,0.465 -45.703,11.139 -79.73,52.417 -79.73,101.501 0,0.011 -0.001,0.021 -0.001,0.031 0.017,62.868 50.986,113.828 113.86,113.828 H 405.6 512.417 c 29.816,0 53.992,-24.176 53.992,-53.997 0,-24.594 -20.009,-44.603 -44.603,-44.603 z" id="path3125" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-   </g>
-  </switch>
-  <switch transform="matrix(0.04099584,0,0,0.04099584,-0.41974494,1028.2304)" id="switch4024">
-   <g id="g4028">
-    <g id="g4030">
-     <path inkscape:connector-curvature="0" d="m 259.145,407.478 c 17.73,-46.855 62.652,-78.06 113.067,-78.06 19.159,0 37.393,4.506 53.622,12.558 8.705,-21.276 13.515,-44.558 13.515,-68.967 0,-100.664 -81.604,-182.267 -182.268,-182.267 -100.663,0 -182.266,81.603 -182.266,182.267 0,82.6 54.95,152.352 130.283,174.73 11.605,-19.933 31.027,-34.761 54.047,-40.261 z" id="path4032" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 294.336,76.668 c -0.122,0 -0.245,-0.011 -0.367,-0.034 -12.121,-2.262 -24.531,-3.409 -36.888,-3.409 -11.317,0 -22.722,0.969 -33.895,2.88 -0.113,0.02 -0.226,0.029 -0.338,0.029 -0.647,0 -1.263,-0.314 -1.641,-0.857 -0.443,-0.636 -0.479,-1.472 -0.091,-2.143 l 23.761,-41.157 c 3.607,-6.248 8.423,-9.688 13.56,-9.688 5.137,0 9.953,3.44 13.561,9.688 l 24.07,41.69 c 0.391,0.676 0.352,1.518 -0.099,2.155 -0.38,0.537 -0.991,0.846 -1.633,0.846 z" id="path4034" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 103.03,144.698 c -0.174,0 -0.349,-0.022 -0.521,-0.069 -0.749,-0.202 -1.313,-0.819 -1.448,-1.583 L 92.804,96.214 C 91.729,90.115 92.71,84.88 95.568,81.473 c 2.333,-2.78 5.779,-4.25 9.966,-4.25 2.499,0 5.206,0.524 8.045,1.558 l 45.236,16.465 c 0.734,0.267 1.245,0.937 1.309,1.716 0.064,0.778 -0.331,1.523 -1.012,1.906 -20.767,11.696 -39.122,26.877 -54.555,45.121 -0.386,0.457 -0.948,0.709 -1.527,0.709 z" id="path4036" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 55.301,274.2 c -0.462,0 -0.919,-0.16 -1.286,-0.468 l -36.419,-30.56 c -5.526,-4.638 -8.078,-9.978 -7.186,-15.037 0.892,-5.059 5.117,-9.204 11.896,-11.671 l 45.213,-16.457 c 0.223,-0.081 0.455,-0.121 0.684,-0.121 0.525,0 1.041,0.207 1.423,0.594 0.549,0.556 0.725,1.381 0.449,2.112 -8.382,22.233 -12.68,45.655 -12.774,69.615 -0.003,0.776 -0.455,1.48 -1.158,1.807 -0.269,0.125 -0.557,0.186 -0.842,0.186 z" id="path4038" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 54.448,404.091 c -7.214,0 -12.602,-2.45 -15.17,-6.898 -2.568,-4.449 -1.997,-10.341 1.61,-16.589 l 24.06,-41.67 c 0.359,-0.622 1.022,-1 1.731,-1 0.062,0 0.124,0.003 0.187,0.009 0.778,0.072 1.442,0.592 1.701,1.329 7.889,22.476 19.65,43.181 34.958,61.539 0.497,0.597 0.604,1.427 0.275,2.129 -0.329,0.703 -1.035,1.152 -1.811,1.152 l -47.541,-10e-4 z" id="path4040" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 174.05,508.828 c -6.811,0 -11.828,-5.395 -13.421,-14.431 l -8.36,-47.413 c -0.136,-0.771 0.189,-1.549 0.833,-1.993 0.341,-0.235 0.739,-0.354 1.137,-0.354 0.353,0 0.706,0.093 1.021,0.28 12.801,7.597 26.484,13.76 40.669,18.317 1.05,0.338 1.629,1.462 1.293,2.513 -2.481,7.765 -4.133,14.701 -4.133,23.319 0,1.573 0.304,4.142 0.548,6.204 l 0.054,0.453 c 0.076,0.646 -0.166,1.288 -0.649,1.723 l -6.928,6.226 c -4.04,3.389 -8.193,5.156 -12.064,5.156 z" id="path4042" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 457.351,363.719 c -0.501,0 -1,-0.188 -1.385,-0.557 -4.231,-4.062 -8.809,-7.854 -13.604,-11.272 -0.759,-0.542 -1.044,-1.535 -0.686,-2.396 1.022,-2.462 1.996,-4.938 2.892,-7.36 0.27,-0.727 0.935,-1.233 1.707,-1.299 0.057,-0.005 0.113,-0.007 0.17,-0.007 0.71,0 1.372,0.378 1.731,1 l 10.906,18.892 c 0.497,0.862 0.285,1.96 -0.499,2.574 -0.362,0.284 -0.798,0.425 -1.232,0.425 z" id="path4044" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 458.85,277.275 c -0.291,0 -0.584,-0.063 -0.857,-0.193 -0.707,-0.335 -1.153,-1.052 -1.143,-1.834 0.011,-0.772 0.016,-1.513 0.016,-2.239 0,-23.188 -3.945,-45.919 -11.726,-67.56 -0.263,-0.73 -0.079,-1.546 0.471,-2.094 0.381,-0.38 0.892,-0.583 1.411,-0.583 0.229,0 0.461,0.04 0.685,0.121 l 44.62,16.243 c 6.778,2.467 11.003,6.612 11.896,11.671 0.892,5.059 -1.66,10.399 -7.186,15.037 l -36.901,30.964 c -0.368,0.307 -0.825,0.467 -1.286,0.467 z" id="path4046" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 413.104,147.04 c -0.59,0 -1.161,-0.262 -1.546,-0.731 -15.14,-18.452 -33.266,-33.903 -53.873,-45.926 -0.67,-0.391 -1.054,-1.134 -0.984,-1.906 0.07,-0.772 0.579,-1.436 1.309,-1.701 l 44.652,-16.25 c 2.841,-1.034 5.547,-1.558 8.044,-1.558 4.188,0 7.636,1.47 9.968,4.251 2.857,3.405 3.839,8.64 2.763,14.739 l -8.362,47.428 c -0.136,0.77 -0.707,1.39 -1.463,1.587 -0.17,0.046 -0.34,0.067 -0.508,0.067 z" id="path4048" fill="#ffaa00"/>
-     <path inkscape:connector-curvature="0" d="m 595.627,530.521 c -0.834,-16.318 -14.371,-29.338 -30.894,-29.338 -0.795,0 -1.583,0.039 -2.366,0.098 -9.877,0.741 -18.727,6.09 -23.994,14.643 -1.887,3.061 -5.897,4.017 -8.961,2.129 -1.996,-1.23 -3.089,-3.364 -3.09,-5.549 0,-1.166 0.305,-2.347 0.961,-3.412 7.777,-12.625 21.057,-20.328 35.763,-20.88 -1.24,-41.618 -34.663,-75.128 -76.243,-76.507 2.54,7.55 4.365,15.445 5.376,23.615 0.442,3.569 -2.094,6.821 -5.663,7.263 -0.065,0.008 -0.129,0.006 -0.194,0.012 -0.206,0.02 -0.411,0.038 -0.614,0.038 -3.239,0 -6.047,-2.415 -6.454,-5.713 -1.058,-8.541 -3.106,-16.748 -6.02,-24.515 -1.118,-2.981 -2.362,-5.899 -3.729,-8.744 -7.823,-16.288 -19.604,-30.232 -34.023,-40.684 -4.734,-3.432 -9.754,-6.486 -15.012,-9.122 -14.585,-7.312 -30.999,-11.411 -48.257,-11.411 -42.489,0 -80.596,24.844 -98.026,62.824 1.596,-0.089 3.199,-0.144 4.815,-0.144 17.132,0 33.66,5.05 47.798,14.604 1.86,1.257 2.864,3.308 2.866,5.396 10e-4,1.257 -0.36,2.526 -1.116,3.646 -2.014,2.979 -6.063,3.764 -9.043,1.749 -11.976,-8.092 -25.982,-12.369 -40.505,-12.369 -4.108,0 -8.132,0.361 -12.056,1.022 -1.109,0.582 -2.381,0.845 -3.67,0.717 -0.479,0.106 -0.957,0.216 -1.434,0.331 -18.139,4.424 -33.616,15.69 -43.544,30.905 -3.263,5 -5.92,10.425 -7.879,16.174 -2.063,6.056 -3.355,12.464 -3.736,19.115 -0.08,1.387 -0.13,2.78 -0.13,4.187 0,0.004 0,0.009 0,0.013 0.007,43.604 35.357,78.95 78.963,78.95 h 198.628 74.08 c 20.677,0 37.443,-16.766 37.443,-37.447 0,-0.536 -0.019,-1.067 -0.04,-1.596 z" id="path4050" fill="#b3b3b3"/>
-    </g>
-   </g>
-  </switch>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/113-1.svg b/htdocs/public/symbols/svgicons/113-1.svg
deleted file mode 100755
index 6df0241690b0eda122554667933c08fdd53d04f9..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/113-1.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="113-1.svg">
-  <defs
-     id="defs10" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="653"
-     inkscape:window-height="480"
-     id="namedview8"
-     showgrid="false"
-     inkscape:zoom="7.8666667"
-     inkscape:cx="15"
-     inkscape:cy="15"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4249">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3338"
-     transform="matrix(0.80286981,0,0,0.80286981,-0.04344836,-0.04264536)">
-    <rect
-       rx="0.5"
-       y="3.5039999"
-       x="3.552"
-       height="22.990999"
-       width="22.896999"
-       id="rect4255"
-       style="fill:#cccccc;stroke:#1a1a1a;stroke-width:2.15799999" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path4797"
-       d="m 15,3.3135594 0,22.3728816 0,0"
-       style="fill:#1a1a1a;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:2" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path4797-9"
-       d="m 26.18644,15 -22.3728805,0 0,0"
-       style="fill:#1a1a1a;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:2" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/113-2.svg b/htdocs/public/symbols/svgicons/113-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/113-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/114-1.svg b/htdocs/public/symbols/svgicons/114-1.svg
deleted file mode 100755
index 77a422278a196c5dba19119c20ca4e1a83703e1b..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/114-1.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.0">
- <metadata id="metadata7599"/>
- <g inkscape:label="Calque 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-30)">
-  <g id="g4285-3" transform="matrix(1.1781391,0,0,0.98623438,-312.96944,-269.49239)" stroke="#000000">
-   <path inkscape:connector-curvature="0" d="m 275.82023,322.78012 -0.11743,0.0587 -4.69724,2.34862 -0.11787,0.40315 4.81511,2.35648 0.11743,0.0587 0.10275,-0.0587 4.69724,-2.34862 0,-0.41101 -4.69724,-2.34862 -0.10275,-0.0587 z m 0,0.52844 4.1688,2.0844 -4.1688,2.0844 -4.18348,-2.0844 4.18348,-2.0844 z" id="path13409-3-5" sodipodi:nodetypes="cccccccccccccccc" fill-rule="evenodd" stroke-width="0.07"/>
-   <path inkscape:connector-curvature="0" d="m 275.58537,306.54529 c 0,0 0,0.0294 0,0.0294 -1e-5,5e-5 -0.007,0.25759 -4.69724,19.01891 l 0.33761,0.005 4.69724,-2.34862 0.13211,-0.0587 0,-0.14679 0,-16.44034 -0.46972,-0.0587 z m 0,1.93761 0,14.41465 -4.12477,2.05505 c 2.2092,-8.83676 3.42326,-13.66369 3.99266,-15.94126 0.0755,-0.30197 0.0748,-0.29913 0.13211,-0.52844 z" id="path13411-2-9" sodipodi:nodetypes="ccccccccccccsc" fill-rule="evenodd" stroke-width="0.07"/>
-   <path inkscape:connector-curvature="0" d="m 276.04041,306.54529 -0.45504,0.0587 0,0.0587 0,21.07886 0.33761,0.20551 4.69724,-2.34862 0.16147,-0.0734 -0.044,-0.19082 -4.68256,-18.73025 -0.0147,-0.0587 z m 0.0147,1.99632 4.18348,16.73392 -4.18348,2.0844 0,-18.81832 z" id="path13413-7-0" sodipodi:nodetypes="cccccccccccccc" fill-rule="evenodd" stroke-width="0.07"/>
-   <path inkscape:connector-curvature="0" d="m 275.64341,309.26123 -0.93909,0.97507 0.0587,0.38089 0.64564,0.33517 -0.96845,0.97507 0.044,0.38089 0.90975,0.54847 -1.59941,1.24931 0.0294,0.41136 1.54071,0.79224 -2.28906,1.7216 0.0294,0.41136 2.25972,1.27978 -3.0961,2.20914 0.0146,0.41136 2.9934,1.70636 -4.0442,2.15425 0.21442,0.0549 4.46075,-1.95014 0.44019,-0.19805 -0.42552,-0.24378 -3.08144,-1.76731 3.11078,-2.20913 0.30815,-0.22854 -0.33749,-0.18282 -2.2744,-1.27978 2.30374,-1.7216 0.30815,-0.22853 -0.33749,-0.18283 -1.54073,-0.80747 1.57007,-1.21884 0.27885,-0.22853 -0.29347,-0.18283 -0.93911,-0.57895 0.98313,-0.97506 0.23477,-0.24377 -0.29347,-0.15236 -0.66031,-0.33517 0.71901,-0.74654 -0.3375,-0.33518 z" id="path13415-7-8" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc" fill-rule="evenodd" stroke-width="0.071"/>
-   <path inkscape:connector-curvature="0" d="m 275.98235,309.26123 -0.3375,0.33482 0.71901,0.74576 -0.66031,0.33483 -0.29348,0.15219 0.24945,0.24351 0.96847,0.97405 -0.92444,0.57835 -0.30815,0.18264 0.2788,0.22829 1.57008,1.21756 -1.54073,0.80663 -0.3375,0.18264 0.30815,0.22829 2.30376,1.7198 -2.27441,1.27844 -0.3375,0.18263 0.32282,0.2283 3.09614,2.22205 -3.08146,1.75024 -0.42554,0.24352 0.44021,0.19785 4.47547,1.9481 0.15935,-0.0384 -4.00385,-2.16846 2.99342,-1.70458 0.0147,-0.41093 -3.09615,-2.20684 2.25975,-1.27844 0.0294,-0.41093 -2.2891,-1.7198 1.54073,-0.79141 0.0294,-0.41093 -1.58476,-1.23278 0.90977,-0.56313 0.044,-0.38048 -0.98315,-0.97405 0.64565,-0.33483 0.0587,-0.38048 -0.93911,-0.97405 z" id="path13417-3-1" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc" fill-rule="evenodd" stroke-width="0.071"/>
-  </g>
-  <g id="g3005" transform="translate(0.04031641,0)">
-   <path inkscape:connector-curvature="0" id="path3012" d="m 5.2748532,32.118719 c 13.3696608,0 13.3696608,0 13.3696608,0" fill="#333333" stroke="#333333" stroke-width="0.347"/>
-   <path inkscape:connector-curvature="0" id="path3782" d="m 5.2904294,30.045199 0,4.24156" fill="#333333" stroke="#333333" stroke-width="0.378"/>
-   <path inkscape:connector-curvature="0" id="path3782-5" d="m 7.6909752,30.045199 0,4.24156" fill="#333333" stroke="#333333" stroke-width="0.378"/>
-   <path inkscape:connector-curvature="0" id="path3782-7" d="m 10.09152,30.0452 0,4.241558" fill="#333333" stroke="#333333" stroke-width="0.378"/>
-   <path inkscape:connector-curvature="0" id="path3782-6" d="m 18.487833,30.103136 0,4.24156" fill="#333333" stroke="#333333" stroke-width="0.378"/>
-   <path inkscape:connector-curvature="0" id="path3782-0" d="m 16.135838,30.103136 0,4.24156" fill="#333333" stroke="#333333" stroke-width="0.378"/>
-   <path inkscape:connector-curvature="0" id="path3782-59" d="m 13.783847,30.103136 0,4.24156" fill="#333333" stroke="#333333" stroke-width="0.378"/>
-   <path transform="translate(0,29.53069)" d="m 12.177967,2.5423729 c 0,0.1263703 -0.102444,0.2288136 -0.228814,0.2288136 -0.12637,0 -0.228814,-0.1024433 -0.228814,-0.2288136 0,-0.1263702 0.102444,-0.2288135 0.228814,-0.2288135 0.12637,0 0.228814,0.1024433 0.228814,0.2288135 z" sodipodi:ry="0.22881356" sodipodi:rx="0.22881356" sodipodi:cy="2.5423729" sodipodi:cx="11.949153" id="path3832" sodipodi:type="arc" fill="#333333" stroke="#333333" stroke-width="0.5"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/114-2.svg b/htdocs/public/symbols/svgicons/114-2.svg
deleted file mode 100755
index 32924b7d84317da0ffd11fb650200170f9e95779..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/114-2.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" viewBox="0 0 24 24" version="1.0">
- <metadata id="metadata4"/>
- <rect id="rect3411" width="20.379" height="21.849" x="1.847" y="1.119" fill="#ffffff"/>
- <g transform="matrix(0.04136539,0,0,0.04136539,-1.4461831,-1.267893)" id="g8" fill="#000080">
-  <path d="m 81.553493,609.68121 c -23.478786,-4.36846 -38.026716,-17.69952 -44.23322,-40.5333 -1.666124,-6.12969 -1.76678,-20.20156 -1.76678,-247 l 0,-240.499996 2.233155,-8.373779 c 5.725822,-21.470413 19.780719,-35.211978 41.766845,-40.83572 6.631125,-1.696148 19.594455,-1.790501 245.999997,-1.790501 223.52273,0 239.43669,0.112295 245.7433,1.734056 16.60649,4.270396 29.36707,14.086266 36.09557,27.765944 7.75705,15.770794 7.16113,-5.990182 7.16113,261.499996 0,227.0761 -0.0902,239.38457 -1.8089,246.70814 -4.92962,21.0063 -17.56825,34.06696 -39.1911,40.49976 -5.67908,1.68953 -18.81014,1.79417 -245.5,1.95641 -193.0645,0.13817 -240.857193,-0.0811 -246.499997,-1.13101 z m 99.648477,-94.63903 c 5.92937,-4.22208 5.85152,-3.32583 5.85152,-67.36215 l 0,-58.53212 4.5,0 4.5,0 0,58.7656 c 0,66.74815 -0.36956,63.63344 8.07399,68.04897 7.47759,3.91038 14.99459,1.99127 20.36422,-5.19902 2.02074,-2.7059 2.06723,-3.94405 2.33484,-62.18821 l 0.27305,-59.42734 19.97695,0 c 10.98732,0 19.97695,-0.27385 19.97695,-0.60856 0,-0.3347 -9.675,-33.85244 -21.5,-74.48386 -11.825,-40.63142 -21.5,-74.10757 -21.5,-74.39144 0,-0.28388 1.54468,-0.51614 3.43261,-0.51614 2.4037,0 3.58903,0.52456 3.95444,1.75 0.287,0.9625 6.20184,20.854 13.14408,44.20334 6.94224,23.34933 13.48194,43.66065 14.53267,45.13626 2.8155,3.95401 9.11875,6.20761 13.82101,4.94142 6.07042,-1.6346 10.11519,-7.14266 10.11519,-13.77462 0,-5.09778 -29.1129,-101.06697 -32.3189,-106.53759 -6.13905,-10.4755 -18.89204,-19.53452 -30.56759,-21.71353 -7.03332,-1.31263 -50.28136,-1.30097 -57.22269,0.0154 -12.59805,2.38917 -25.40548,11.71042 -30.72495,22.36162 -2.94595,5.8987 -32.16587,102.06675 -32.16587,105.86372 0,8.06714 5.92419,13.74372 14.35,13.75021 4.15703,0.003 5.32197,-0.46823 8.15325,-3.29951 3.75233,-3.75233 3.69318,-3.57876 19.578,-57.44675 l 10.39467,-35.25 3.32943,0 c 2.70585,0 3.23029,0.32776 2.80014,1.75 -2.25569,7.45809 -42.60549,147.41352 -42.60549,147.77942 0,0.25882 9,0.47058 20,0.47058 l 20,0 0,57.2566 c 0,34.24599 0.39229,58.62443 0.97612,60.66013 1.17576,4.09965 4.454,7.84185 8.52388,9.73025 4.04465,1.87669 11.766,1.01186 15.64848,-1.75271 z m 262.39289,0.22607 c 5.46787,-2.48371 9.0604,-7.03621 10.3695,-13.14037 0.7299,-3.4034 1.08913,-29.46955 1.08913,-79.02919 l 0,-73.95078 3,0 3,0 0,76.9349 c 0,52.06692 0.34477,77.84484 1.06661,79.75 5.17311,13.65333 26.21636,15.19519 33.69752,2.46905 l 2.73587,-4.65395 0.26467,-129.75 0.26468,-129.75 2.98532,0 2.98533,0 0.002,47.75 c 10e-4,43.45693 0.15876,48.06468 1.75,51.25 4.58907,9.18628 19.48162,9.14868 24.42118,-0.0617 1.70573,-3.18051 1.82727,-7.03595 1.82727,-57.96264 0,-59.30802 -0.13002,-60.93195 -5.69773,-71.16166 -3.50091,-6.43232 -12.013,-14.33444 -18.77628,-17.43077 -8.78679,-4.02273 -15.6615,-4.53932 -55.69793,-4.18539 -35.41726,0.31309 -37.62367,0.44102 -43.10284,2.49908 -11.2885,4.24012 -20.39716,13.16752 -25.083,24.58384 -2.09219,5.09731 -2.14864,6.56211 -2.41718,62.7192 -0.25998,54.36819 -0.17407,57.68642 1.57727,60.92273 4.79424,8.85933 18.99389,9.38064 24.17206,0.88745 1.95044,-3.19912 2.01828,-4.92908 2.02189,-51.56018 l 0.004,-48.25 3.5,0 3.5,0 0,129.4349 c 0,89.02006 0.3321,130.31389 1.06362,132.25 1.40532,3.7195 5.70967,8.23429 9.43638,9.89774 4.24127,1.89313 11.30401,1.68958 16.04137,-0.4623 z m -98.04137,-196.12034 0,-196.5 -18.75,-0.27207 -18.75,-0.27206 0,196.3554 c 0,107.99547 0.30982,196.66522 0.6885,197.04389 0.37867,0.37868 8.81617,0.56618 18.75,0.41667 l 18.0615,-0.27183 0,-196.5 z m -146,-136.35609 c 7.48349,-1.99414 10.69414,-3.98175 16.24814,-10.05871 5.98478,-6.54831 8.24999,-12.45035 8.25681,-21.51334 0.007,-9.73191 -2.39611,-15.46761 -9.49547,-22.6606 -6.98516,-7.07728 -13.15174,-9.67387 -22.89386,-9.64 -12.71415,0.0442 -24.01473,7.35234 -29.39274,19.0084 -6.72112,14.56707 -1.08243,32.94399 12.56187,40.94008 8.4767,4.96768 16.19833,6.19368 24.71525,3.92417 z m 265.78946,-0.13109 c 22.72524,-5.91917 31.93438,-31.7694 18.10284,-50.81504 -11.77397,-16.21242 -36.44442,-17.44384 -49.88903,-2.49019 -11.15873,12.4112 -11.26723,31.49906 -0.247,43.45461 5.05046,5.4791 9.00592,7.91593 15.8251,9.74933 7.01655,1.88646 9.29958,1.90073 16.20809,0.10129 z" id="path10" inkscape:connector-curvature="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/115-1.svg b/htdocs/public/symbols/svgicons/115-1.svg
deleted file mode 100755
index b7ea475b30398cab9d2091f5a95aa9471f0b74fd..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/115-1.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 99.988 49.124">
- <metadata id="metadata15"/>
- <path d="M -3.5754934e-8,17.89555 C 0.48989565,17.89555 0.96298942,17.784177 1.3801568,17.595036 1.8088456,17.394613 2.2929806,17.27772 2.7941575,17.27772 c 0.5062176,0 0.9905926,0.116893 1.4190413,0.317316 0.4231681,0.189141 0.8907413,0.300514 1.3803969,0.300514 0.4843751,0 0.9574688,-0.111373 1.3748763,-0.300514 0.4284487,-0.200423 0.9128237,-0.317316 1.4192813,-0.317316 0.5009369,0 0.9850719,0.116893 1.4137606,0.317316 0.4229281,0.189141 0.8905011,0.300514 1.3801571,0.300514 0.489895,0 0.957469,-0.111373 1.375116,-0.300514 0.428449,-0.200423 0.912824,-0.317316 1.419041,-0.317316 0.506458,0 0.985312,0.116893 1.413761,0.317316 0.422928,0.189141 0.890501,0.300514 1.380157,0.300514 0.489656,0 0.951708,-0.111373 1.369356,-0.300514 0.434209,-0.200423 0.912823,-0.317316 1.419281,-0.317316 0.506457,0 0.985072,0.116893 1.419281,0.317316 0.417408,0.189141 0.884981,0.300514 1.374876,0.300514 v -2.064955 c -0.489895,0 -0.957228,-0.111372 -1.374876,-0.300754 -0.434209,-0.194662 -0.912824,-0.311555 -1.419281,-0.311555 -0.506458,0 -0.985072,0.116893 -1.419281,0.311555 -0.417408,0.189382 -0.87946,0.300754 -1.369356,0.300754 -0.489896,0 -0.957229,-0.111372 -1.380157,-0.300754 -0.428449,-0.194662 -0.907303,-0.311555 -1.413761,-0.311555 -0.506217,0 -0.990592,0.116893 -1.419041,0.311555 -0.417407,0.189382 -0.885221,0.300754 -1.375116,0.300754 -0.489656,0 -0.957229,-0.111372 -1.3801571,-0.300754 -0.4284486,-0.194662 -0.9128237,-0.311555 -1.4137606,-0.311555 -0.5064576,0 -0.9908326,0.116893 -1.4192813,0.311555 -0.4171675,0.189382 -0.8905012,0.300754 -1.3748763,0.300754 -0.4896556,0 -0.9572288,-0.111372 -1.3803969,-0.300754 -0.4284487,-0.194662 -0.9128237,-0.311555 -1.4190413,-0.311555 -0.5011769,0 -0.9850719,0.116893 -1.4140007,0.311555 C 0.96298942,15.719223 0.48989565,15.830595 -3.5754935e-8,15.830595 v 2.064955 z" id="path3" inkscape:connector-curvature="0" fill="#333333"/>
- <path d="m 5.6214389,9.2713698 -4.0631818,0.3170761 0.3060348,-2.075996 2.983539,-0.211464 c 0.8067317,-0.038884 0.6900785,0.7680873 0.6900785,0.7680873 l 0.08353,1.2022966 z" id="path5" inkscape:connector-curvature="0" fill="#1a1a1a"/>
- <path d="m 12.986123,8.7982761 c -0.745764,0 -1.346793,-0.6010283 -1.346793,-1.3467931 0,-0.7457648 0.601029,-1.3470331 1.346793,-1.3470331 0.745765,0 1.346793,0.6012683 1.346793,1.3470331 0,0.7457648 -0.600788,1.3467931 -1.346793,1.3467931 z" id="path7" inkscape:connector-curvature="0" fill="#1a1a1a"/>
- <path d="m 21.4726,13.988386 c -0.172579,-0.04993 -0.339638,-0.116653 -0.495416,-0.189142 -0.434209,-0.200422 -0.912824,-0.317316 -1.419281,-0.317316 -0.506458,0 -0.985072,0.116894 -1.419282,0.317316 -0.417407,0.189142 -0.879459,0.300515 -1.369355,0.300515 -0.489896,0 -0.957229,-0.111373 -1.380157,-0.300515 -0.428449,-0.200422 -0.907303,-0.317316 -1.413761,-0.317316 -0.506217,0 -0.990592,0.116894 -1.419041,0.317316 -0.417407,0.189142 -0.885221,0.300515 -1.375116,0.300515 -0.489656,0 -0.957229,-0.111373 -1.3801571,-0.300515 -0.4284487,-0.200422 -0.9128238,-0.317316 -1.4137607,-0.317316 -0.5064575,0 -0.9908326,0.116894 -1.4192813,0.317316 -0.4171674,0.189142 -0.8905012,0.300515 -1.3748763,0.300515 -0.4896556,0 -0.9572287,-0.111373 -1.3803968,-0.300515 -0.4284487,-0.200422 -0.9128238,-0.317316 -1.4190413,-0.317316 -0.501177,0 -0.985072,0.116894 -1.4140007,0.317316 -0.41716744,0.189142 -0.88498061,0.300515 -1.37463626,0.300515 L 0.4613324,10.41798 17.353252,9.0042195 14.804163,6.4328072 15.92293,6.3327158 18.467219,8.9096487 23.999608,8.4533569 C 24.03297,10.339971 21.929132,13.476408 21.4726,13.988386 l 0,0 z" id="path9" inkscape:connector-curvature="0" fill="#165016"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/115-2.svg b/htdocs/public/symbols/svgicons/115-2.svg
deleted file mode 100755
index 0cbedb5e60fbe2cd8bb6dc83ace67bbdc4d17b55..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/115-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata2570"/>
- <path d="m 3,11.74468 0,12.25527 18,0 0,-12.25527 C 21,7.65959 18.000005,3.74471 12,5e-5 5.9999946,4.08514 3,8.00002 3,11.74468" id="path2565" inkscape:connector-curvature="0" sodipodi:nodetypes="cccscc" fill="#005500" stroke-width="10"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/116-1.svg b/htdocs/public/symbols/svgicons/116-1.svg
deleted file mode 100755
index 4e0ef716f7f3655fb24d63899c46d1735e5edd3e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/116-1.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <rect id="rect3370" width="24" height="24" y="1028.36" rx="4" fill="#330080"/>
-  <g id="g3446" transform="translate(-0.06313467,1.0100882)">
-   <text sodipodi:linespacing="125%" id="text3391" y="1043.78" x="1.72" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="16.25"><tspan dy="0" id="tspan3414" y="1043.78" x="1.72" sodipodi:role="line">T</tspan>
-   </text>
-   <text sodipodi:linespacing="125%" id="text3391-9" y="1046.54" x="11.813" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="16.25"><tspan id="tspan3414-4" y="1046.54" x="11.813" sodipodi:role="line">S</tspan>
-   </text>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/116-2.svg b/htdocs/public/symbols/svgicons/116-2.svg
deleted file mode 100755
index ffcccdd724ea79e8f897584fd69ca766fcdaa72d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/116-2.svg
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g transform="matrix(0.12955143,0,0,0.13637681,-4.7984412e-5,1030.9522)" id="g3405" fill="#4d4d4d">
-   <g id="g3509">
-    <path inkscape:connector-curvature="0" d="m 61.254807,4.999999 0,2 c -12.621002,1.629901 -27.061005,4.7024 -38,11.4684 -11.507004,7.117199 -9.490997,16.063301 2,21.531601 -2.535995,-13.834801 24.475998,-21.2733 35,-19 -7.85701,4.938299 -37.820007,12.626499 -16.001999,23.621899 2.25499,1.136002 4.563004,1.798603 7.001999,2.378101 -8.223999,-11.623299 13.093002,-14.979 21,-16 -3.404999,4.229698 -14.292999,3.501999 -15.218002,10.039398 -0.899002,6.361401 10.871002,8.882801 15.218002,9.699802 13.065994,2.4557 29.030703,2.5117 42.000003,-0.638901 4.61149,-1.1203 17.0063,-5.137302 13.91359,-12.006901 -1.41739,-3.148399 -5.4102,-4.907799 -7.91359,-7.093399 8.3441,-1.2341 18.63359,4.719498 16,14 2.10899,-0.921898 4.0885,-1.860199 5.96449,-3.223801 18.70981,-13.5991 -11.95689,-18.598499 -16.96449,-25.7762 12.94209,1.6713 34.612,5.9484 35,22.000001 2.1483,-1.917702 4.48039,-3.7542 6.19749,-6.091 C 177.6577,16.659798 148.58,6.909198 138.25481,4.155098 c -3.668,-0.978399 -7.6133,-1.0165 -10,-4.155099 15.2339,1.203899 32.7129,5.132899 46,12.876499 6.28795,3.6646 13.32872,10.0522 10.25772,18.123501 -2.76161,7.258099 -11.49953,11.5462 -18.25772,14.188301 -16.82201,6.5765 -35.98741,9.983597 -54,10.772297 C 84.948807,57.156299 56.663804,56.2877 30.254807,48.709098 21.236802,46.121101 10.155808,43.918998 3.387803,36.895099 c -7.645004,-7.935501 -1.042999,-15.4701 6.867004,-19.632 14.806,-7.7901 34.358002,-11.5485 51,-12.263101 z" id="path1365"/>
-    <path inkscape:connector-curvature="0" d="m 70.254807,42 c 5.369003,-1.971802 10.352997,-2.606598 16,-3.168999 4.231995,-0.421501 7.767998,-0.421501 12,0 l 7.000003,0.607998 c 2.17399,0.344101 11.19619,1.819798 8.10959,5.851902 -1.90999,2.495098 -7.2558,2.824299 -10.10959,3.2701 C 95.077607,49.838101 73.358811,51.857201 70.254807,42 Z" id="path1605"/>
-    <path inkscape:connector-curvature="0" d="m 177.99594,40.912319 c -2.26642,12.892502 -16.72382,17.374199 -28,19.789402 -28.3129,6.064102 -55.64762,3.871994 -84.000014,0.210598 9.261002,-3.886002 22.1464,0.392101 32,-0.0394 28.575794,-1.251202 56.046294,-3.301403 80.000014,-19.960602 z" id="path1609"/>
-    <path inkscape:connector-curvature="0" d="m 173.25481,59 c -4.2818,14.376198 -22.65641,14.798904 -35,16.4244 -28.04901,3.693703 -59.458011,-2.149002 -86.000003,-11.091805 -10.475998,-3.529896 -24.57901,-8.821396 -28,-20.332596 8.263992,3.475399 15.481003,9.102398 24,12.315598 38.215996,14.414398 87.339703,20.267502 125.000003,2.684402 z" id="path1627"/>
-    <path inkscape:connector-curvature="0" d="m 164.25481,74 c -1.5712,15.199005 -22.54,14 -34,14 -28.863,0 -74.668002,-1.978104 -93.000003,-28 9.51799,1.8353 18.641998,8.528 28,11.645096 C 94.757805,81.471802 135.80611,89.602997 164.25481,74 Z" id="path1699"/>
-    <path inkscape:connector-curvature="0" d="m 151.25481,82 -1,1 1,-1 z" id="path1775"/>
-    <path inkscape:connector-curvature="0" d="m 137.25481,93 c -15.87451,14.72299 -56.256,7.877 -70.000003,-7 10.156998,-0.596405 22.635994,5.794006 33.000003,7.410004 12.30829,1.917999 24.7016,-0.376007 37,-0.410004 z" id="path1797"/>
-    <path inkscape:connector-curvature="0" d="m 71.254807,95 c 17.209999,9.79401 35.089603,9.013 54.000003,9 -9.73851,10.34 -32.788005,9.522 -44.000003,2.3 -3.865997,-2.49 -10.106003,-6.298 -10,-11.3 z" id="path1819"/>
-    <path inkscape:connector-curvature="0" d="m 72.254807,107 c 14.245995,8.313 23.916,5.653 39.000003,7 -7.16851,8.588 -21.832004,9.218 -31.000003,3.44099 C 76.6418,115.164 71.311799,111.698 72.254807,107 Z" id="path1855"/>
-    <path inkscape:connector-curvature="0" d="m 94.254807,124 c -3.297302,5.44 -9.484009,7.22501 -10,14 -6.074997,-3.64999 -12.81601,-10.162 -15,-17 9.421997,2.713 15.110992,3.78 25,3 z" id="path1887"/>
-   </g>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/117-1.svg b/htdocs/public/symbols/svgicons/117-1.svg
deleted file mode 100755
index bbb73cbb0885ed4a4713070dcb3ea101c80dd97d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/117-1.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <circle id="path4202-7-41" cx="20.848" cy="15.639" r="1.167" fill="#999999" stroke="#000000" stroke-width="0.869"/>
- <circle id="path4202-7-4" cx="14.889" cy="15.639" r="1.167" fill="#999999" stroke="#000000" stroke-width="0.869"/>
- <circle id="path4202-7-3" cx="5.902" cy="15.639" r="1.167" fill="#999999" stroke="#000000" stroke-width="0.869"/>
- <circle id="path4202-7" cx="2.566" cy="15.639" r="1.167" fill="#999999" stroke="#000000" stroke-width="0.869"/>
- <metadata id="metadata16"/>
- <path inkscape:connector-curvature="0" id="path1999" d="m 18.973354,8.2340634 3.694442,0.058906 1.332271,3.5694771 0,3.393518 c 0,0.236478 -0.153395,0.45247 -0.427332,0.45247 l -0.754115,0 C 22.246471,13.4291 20.049359,13.090386 19.073181,15.004593 l -2.413168,0 c -1.075877,-1.819269 -3.54604,-1.482708 -3.670026,0.68158 l -0.678704,0 c 0,-0.915452 0.928708,-2.566867 1.960699,-2.566867 l 4.725789,0 z" sodipodi:nodetypes="cccsscccccscc" color="#000000" stroke-linecap="round" fill="#330080"/>
- <path inkscape:connector-curvature="0" id="path2003" d="m 6.4246942,13.128203 c 1.0319917,0 1.9606895,1.65139 1.9606901,2.566841 l -0.680552,0 C 7.5843514,13.591945 5.2490251,13.353691 4.5296521,14.290175 l 0.00219,0.08534 -0.680552,0 0.00219,-0.08534 C 3.1341043,13.353691 0.79877799,13.591945 0.67829706,15.695044 l -0.678363787946,0 C -6.6064736e-5,14.779593 0.92863167,13.128203 1.9606235,13.128203 l 4.4640713,0 z" color="#000000" stroke-linecap="round" fill="#330080"/>
- <path inkscape:connector-curvature="0" id="path2018" d="m 17.408213,6.8489999 0.0041,5.9776541 -17.36951172,-0.0044 0,-5.952824 L 17.408186,6.849041 Z" color="#000000" stroke-linecap="round" fill="#330080"/>
- <path inkscape:connector-curvature="0" id="path2020" d="m 20.388457,9.1247404 -0.0071,2.1916766 2.751974,0.335393 -0.897406,-2.5199873 -1.847486,-0.00704 z" sodipodi:nodetypes="cccccc" color="#000000" stroke-linecap="round" fill="#7f2aff"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/117-2.svg b/htdocs/public/symbols/svgicons/117-2.svg
deleted file mode 100755
index de2be4800b4a9055c14eefa8cf39394d87b845f9..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/117-2.svg
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="117-2.svg">
-  <defs
-     id="defs11" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview9"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="15.953885"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata16">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3339"
-     transform="translate(0,1.0174495)">
-    <circle
-       transform="scale(-1,1)"
-       id="circle10-3"
-       cy="16.049999"
-       cx="-20.650999"
-       r="1.635"
-       style="fill:#333333;stroke:#000000;stroke-width:1.09000003" />
-    <circle
-       transform="scale(-1,1)"
-       id="circle10"
-       cy="16.049999"
-       cx="-5.6350002"
-       r="1.635"
-       style="fill:#333333;stroke:#000000;stroke-width:1.09000003" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path4"
-       d="m 17.26232,7.6891224 0,6.3834376 -10.0774084,0.0082 c 0.5913728,0.483153 0.9605772,1.149103 0.9557512,2.02316 l 10.0037082,-0.006 c 0.09583,-3.390997 4.906818,-3.37946 5.011357,-0.0196 0.722585,-0.0054 0.822815,-0.169504 0.829782,-0.835121 l 0,-2.545501 c 0.0091,-1.13756 0.151137,-0.386643 -0.69094,-2.543823 C 22.428121,7.854439 22.666986,8.0669874 21.883288,8.0076409 L 17.26232,7.6891224 Z m 2.001574,3.7638116 -0.03988,-2.7120946 2.572501,0.159535 c 0.468981,0.031418 0.472884,0.034362 0.63814,0.5783144 l 0.658082,1.7548852 c 0.221079,0.538264 0.185891,0.696873 -0.418779,0.618198 l -3.410061,-0.398838 z m -19.25057607,2.632693 -0.00490022,1.43415 1.66119649,0.588034 1.4585622,-9.33e-4 c -0.00594,-0.831595 0.3396583,-1.531015 0.9524182,-2.022327 l -4.06727667,0.0011 z"
-       style="fill:#550000;fill-rule:evenodd" />
-    <rect
-       style="fill:#550000"
-       transform="scale(-1,1)"
-       id="rect6"
-       width="16.966"
-       height="9.999898"
-       y="3.7351017"
-       x="-16.966" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/118-1.svg b/htdocs/public/symbols/svgicons/118-1.svg
deleted file mode 100755
index 3ed29dfb06110d0b8a03c89c264fa3b2efd1ca4b..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/118-1.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.0">
- <metadata id="metadata3205"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-73)">
-  <text x="-35.536" y="68.786" id="text3301" font-family="RoadSign" font-size="72"><tspan sodipodi:role="line" id="tspan3303" x="-35.536" y="68.786"/>
-  </text>
-  <text x="-14.286" y="63.25" id="text3305" font-family="RoadSign" font-size="72"><tspan sodipodi:role="line" id="tspan3307" x="-14.286" y="63.25"/>
-  </text>
-  <text x="-10.536" y="52.54" id="text3309" font-family="RoadSign" font-size="72"><tspan sodipodi:role="line" id="tspan3311" x="-10.536" y="52.54"/>
-  </text>
-  <circle id="path3374-9" cx="18.796" cy="89.89" r="1.74" fill="#cccccc" stroke="#000000" stroke-width="1.602"/>
-  <circle id="path3374" cx="4.28" cy="89.89" r="1.74" fill="#cccccc" stroke="#000000" stroke-width="1.602"/>
-  <g id="g4295" fill="#007ad4">
-   <path sodipodi:nodetypes="cccccccccccccccscc" id="path3678" d="m 21.808672,89.618143 1.369448,0 c 0.547753,8e-6 0.821643,-0.273881 0.821669,-0.821669 l 0,-1.369448 -0.821669,0 0,-1.917228 c -2.5e-5,-0.547766 -0.25109,-0.890127 -0.753196,-1.027086 l -0.280954,-0.546148 -1.780283,-5.83048 c -0.182615,-0.296697 -2.992157,-0.512983 -3.266025,-0.513 l -0.374425,9.90187 -10.6974543,-0.06793 c 0.753188,0.547789 1.1754341,1.278161 1.2667394,2.191117 l 8.4905779,0 c 0.06846,-0.776012 0.387992,-1.426499 0.958614,-1.951464 0.593408,-0.524944 1.278132,-0.787422 2.054172,-0.787433 0.798823,1.1e-5 1.472135,0.262489 2.019936,0.787433 0.57058,0.502141 0.901529,1.152628 0.99285,1.951464" inkscape:connector-curvature="0"/>
-   <path sodipodi:nodetypes="ccsccccsc" id="path3676" d="m 17.556318,77.567 -15.7415879,0 c -0.4564861,2e-5 -0.84449594,0.159789 -1.16403114,0.479306 -0.31954015,0.319558 -0.4793087,0.707568 -0.4793068,1.164031 l 0,7.668909 17.29688984,0.03261 0.540171,-6.605956 c 0.27387,1.7e-5 0.410814,-0.136927 0.410835,-0.410835 -2.1e-5,-0.09128 -0.03426,-0.171162 -0.102709,-0.239653" inkscape:connector-curvature="0"/>
-   <path id="path3666" d="m 2.5336903,87.427026 -2.53347913634,0 0,1.232503 C 2.0926165e-4,89.298613 0.31974675,89.618151 0.95882476,89.618143 l 0.30812584,0 c 0.091293,-0.93578 0.5135395,-1.666152 1.2667397,-2.191117" inkscape:connector-curvature="0"/>
-  </g>
-  <path inkscape:connector-curvature="0" d="m 20.877773,83.188801 c 0.0228,0.06849 0.03421,0.136959 0.03424,0.205417 -2.2e-5,0.273903 -0.136966,0.410848 -0.410834,0.410835 l -2.3373,0 c -0.273908,1.3e-5 -0.410853,-0.136932 -0.410835,-0.410835 l 0,-3.712725 c -1.8e-5,-0.273874 0.136927,-0.410819 0.410835,-0.410835 l 0.728198,0 c 0.296694,1.6e-5 0.524935,0.125549 0.684724,0.376599 l 1.300976,3.541544" id="path3662" sodipodi:nodetypes="cscccccccc" fill="#cccccc"/>
-  <path d="m 15.492906,79.628566 0,3.962045 c -6.4e-5,0.122847 -0.337431,0.184274 -1.012083,0.184282 l -10.1207902,0 c -0.6747747,-8e-6 -1.0121442,-0.06144 -1.0120848,-0.184282 l 0,-3.962045 c -5.94e-5,-0.122858 0.3373101,-0.184284 1.0120848,-0.184281 l 10.1207902,0 c 0.674652,-3e-6 1.012019,0.06142 1.012083,0.184281" id="path3700-4" inkscape:connector-curvature="0" fill="#cccccc"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/118-2.svg b/htdocs/public/symbols/svgicons/118-2.svg
deleted file mode 100755
index dbb17864817239e2e527afa2b8541f02611c8ce8..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/118-2.svg
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24"
-   height="24"
-   version="1.0"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="118-2.svg">
-  <defs
-     id="defs21" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview19"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="-0.76271186"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer1" />
-  <metadata
-     id="metadata3205">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-73)">
-    <text
-       x="-35.536"
-       y="68.786"
-       id="text3301"
-       font-family="RoadSign"
-       font-size="72">
-      <tspan
-         sodipodi:role="line"
-         id="tspan3303"
-         x="-35.536"
-         y="68.786" />
-    </text>
-    <text
-       x="-14.286"
-       y="63.25"
-       id="text3305"
-       font-family="RoadSign"
-       font-size="72">
-      <tspan
-         sodipodi:role="line"
-         id="tspan3307"
-         x="-14.286"
-         y="63.25" />
-    </text>
-    <text
-       x="-10.536"
-       y="52.54"
-       id="text3309"
-       font-family="RoadSign"
-       font-size="72">
-      <tspan
-         sodipodi:role="line"
-         id="tspan3311"
-         x="-10.536"
-         y="52.54" />
-    </text>
-    <g
-       id="g3349"
-       transform="translate(0,0.86540701)">
-      <circle
-         r="1.74"
-         cy="89.889999"
-         cx="18.796"
-         id="path3374-9"
-         style="fill:#cccccc;stroke:#000000;stroke-width:1.602" />
-      <circle
-         r="1.74"
-         cy="89.889999"
-         cx="4.2800002"
-         id="path3374"
-         style="fill:#cccccc;stroke:#000000;stroke-width:1.602" />
-      <g
-         style="fill:#007ad4"
-         transform="matrix(1,0,0,1.1434564,0,-12.856296)"
-         id="g3363">
-        <path
-           inkscape:connector-curvature="0"
-           d="m 21.808672,89.618143 1.369448,0 c 0.547753,8e-6 0.821643,-0.273881 0.821669,-0.821669 l 0,-1.369448 -0.821669,0 0,-1.917228 c -2.5e-5,-0.547766 -0.25109,-0.890127 -0.753196,-1.027086 l -0.280954,-0.546148 -1.780283,-5.83048 c -0.182615,-0.296697 -2.992157,-0.512983 -3.266025,-0.513 l -0.374425,9.90187 -10.6974543,-0.06793 c 0.753188,0.547789 1.1754341,1.278161 1.2667394,2.191117 l 8.4905779,0 c 0.06846,-0.776012 0.387992,-1.426499 0.958614,-1.951464 0.593408,-0.524944 1.278132,-0.787422 2.054172,-0.787433 0.798823,1.1e-5 1.472135,0.262489 2.019936,0.787433 0.57058,0.502141 0.901529,1.152628 0.99285,1.951464"
-           id="path3678"
-           sodipodi:nodetypes="cccccccccccccccscc" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m 17.556318,77.567 -15.7415879,0 c -0.4564861,2e-5 -0.84449594,0.159789 -1.16403114,0.479306 -0.31954015,0.319558 -0.4793087,0.707568 -0.4793068,1.164031 l 0,7.668909 17.29688984,0.03261 0.540171,-6.605956 c 0.27387,1.7e-5 0.410814,-0.136927 0.410835,-0.410835 -2.1e-5,-0.09128 -0.03426,-0.171162 -0.102709,-0.239653"
-           id="path3676"
-           sodipodi:nodetypes="ccsccccsc" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m 2.5336903,87.427026 -2.53347913634,0 0,1.232503 C 2.0926165e-4,89.298613 0.31974675,89.618151 0.95882476,89.618143 l 0.30812584,0 c 0.091293,-0.93578 0.5135395,-1.666152 1.2667397,-2.191117"
-           id="path3666" />
-      </g>
-      <path
-         style="fill:#cccccc"
-         sodipodi:nodetypes="cscccccccc"
-         id="path3662"
-         d="m 20.877773,82.953845 c 0.0228,0.0946 0.03421,0.189177 0.03424,0.283735 -2.2e-5,0.378333 -0.136966,0.567491 -0.410834,0.567473 l -2.3373,0 c -0.273908,1.8e-5 -0.410853,-0.18914 -0.410835,-0.567473 l 0,-5.128263 c -1.8e-5,-0.378293 0.136927,-0.56745 0.410835,-0.567473 l 0.728198,0 c 0.296694,2.3e-5 0.524935,0.173417 0.684724,0.520184 l 1.300976,4.891817"
-         inkscape:connector-curvature="0" />
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/119-1.svg b/htdocs/public/symbols/svgicons/119-1.svg
deleted file mode 100755
index 9945291decbf5341c6290160420a4c05e78e9f3c..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/119-1.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <rect id="rect3370" width="24" height="24" y="1028.36" rx="4" fill="#330080"/>
-  <g id="g3565" transform="translate(0,1.4520842)">
-   <text transform="scale(0.90797253,1.1013549)" sodipodi:linespacing="125%" id="text3391-4" y="948.63" x="9.561" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="10.625"><tspan id="tspan3414-3" y="948.63" x="9.561" sodipodi:role="line">2</tspan>
-   </text>
-   <g transform="translate(-0.63089896,-0.05619343)" id="g3539">
-    <text x="1.457" y="945.91" id="text3391" sodipodi:linespacing="125%" transform="scale(0.90797253,1.1013549)" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="10.625"><tspan sodipodi:role="line" x="1.457" y="945.91" id="tspan3414">H</tspan>
-    </text>
-    <text x="16.891" y="945.91" id="text3391-3" sodipodi:linespacing="125%" transform="scale(0.90797253,1.1013549)" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="10.625"><tspan sodipodi:role="line" x="16.891" y="945.91" id="tspan3414-9">O</tspan>
-    </text>
-   </g>
-  </g>
-  <text x="-76.27" y="1019.03" id="text3554" sodipodi:linespacing="125%" font-family="sans-serif" fill="#000000" word-spacing="0" line-height="125%" font-weight="normal" letter-spacing="0" font-size="15"><tspan sodipodi:role="line" id="tspan3556" x="-76.27" y="1019.03"/>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/119-2.svg b/htdocs/public/symbols/svgicons/119-2.svg
deleted file mode 100755
index 3cfd67a948765a31f3d23976ae43348682ffb66f..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/119-2.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata18081">image/svg+xmlPublic Domainclker.comMohamed Ibrahimmap symbolsmap symbols</metadata>
- <g id="g3363" transform="matrix(0.1260878,0,0,0.1260878,-20.426648,35.46397)">
-  <path sodipodi:nodetypes="csccccscc" id="path6712" d="m 251.64044,-204.39984 c -6.83786,6.62585 -16.06195,9.22351 -26.29251,9.22351 -12.98724,0 -24.80786,-5.30078 -31.59329,-15.31989 -6.73184,10.23114 -18.60602,15.31989 -31.75229,15.31989 l 0,-29.10217 c 13.14627,0 25.02045,-6.51984 31.75229,-16.7504 6.78543,10.01855 18.60605,16.7504 31.59329,16.7504 13.25226,0 24.96744,-6.83786 31.6463,-17.17441 z" inkscape:connector-curvature="0" fill="#2948cc"/>
-  <path sodipodi:nodetypes="ccscsccscsccc" d="m 352.34793,-194.17633 c -12.98724,0 -24.80786,-5.30078 -31.59329,-15.31989 -6.73184,10.23114 -18.60602,15.31989 -31.75229,15.31989 -12.98666,0 -24.70184,-5.4068 -31.48669,-15.4259 -6.73243,10.33715 -18.60605,15.4259 -31.91129,15.4259 -9.59454,0 -18.39404,-2.17365 -25.02045,-8.05747 l -5.03578,-36.04602 c 6.89144,9.1175 17.81099,15.00132 30.05623,15.00132 13.30524,0 25.17886,-6.51984 31.91129,-16.85639 6.78485,10.01853 18.50003,16.85639 31.48669,16.85639 13.14627,0 25.02045,-6.51984 31.75229,-16.7504 6.78543,10.01855 18.60605,16.7504 31.59329,16.7504 z" id="svg_1" inkscape:connector-curvature="0" fill="#2948cc"/>
- </g>
- <rect id="rect3367" width="24" height="15.333" y="8.667" fill="#2948cc" fill-rule="evenodd"/>
- <text x="-0.018" y="22.762" id="text3369" sodipodi:linespacing="125%" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" letter-spacing="-0.3" font-size="7.25"><tspan sodipodi:role="line" id="tspan3371" x="-0.018" y="22.762">FLOOD</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/120-1.svg b/htdocs/public/symbols/svgicons/120-1.svg
deleted file mode 100755
index d774dd4672d4dd022464c543afb197768850189e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/120-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata8"/>
- <g transform="matrix(0.08790013,0,0,0.08790013,-26.032503,-29.850322)" id="layer1">
-  <path d="m 296.78571,612.63003 c 0,0 104.06285,-132.7859 104.06285,-132.7859 0,0 -104.06285,-140.24982 -104.06285,-140.24982 l 67.30299,0 c 0,0 83.34749,113.48826 83.34749,113.48826 l -126.86477,159.54746 -23.78571,0 z M 417.28794,500.06578 544.11662,339.59431 c 0,0 24.45481,0 24.45481,0 L 464.47749,471.26578 c 0,0 104.09394,141.36425 104.09394,141.36425 l -67.30357,0 c 0,0 -83.97992,-112.56425 -83.97992,-112.56425 z" id="path2830" inkscape:connector-curvature="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/120-2.svg b/htdocs/public/symbols/svgicons/120-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/120-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/121-1.svg b/htdocs/public/symbols/svgicons/121-1.svg
deleted file mode 100755
index dc8aba6f96cad03a51d2a6174505ca107543a55d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/121-1.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3029"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g transform="translate(0.00101871,1028.5055)" id="g2991">
-   <path sodipodi:nodetypes="cccsscsssscssc" id="rect2391" d="m 20.265448,16.462473 -8.264431,-6.266405 -8.2684999,6.269014 0,5.886696 c 0,0.231639 0.2182565,0.417208 0.4882882,0.417208 l 5.9228317,0 0,-3.927855 c 0,-0.231202 0.216733,-0.418082 0.487275,-0.418082 l 2.735628,0 c 0.270543,0 0.487286,0.18688 0.487286,0.418082 l 0,3.927855 5.924345,0 c 0.270032,0 0.487277,-0.185569 0.487277,-0.417208 z" inkscape:connector-curvature="0" fill="#ffff00" stroke="#000000" stroke-width="1.879"/>
-   <path id="path2399" d="M 11.9536,5.5543978 0.22594157,14.44575 1.4612949,15.638705 12.001217,7.6473983 22.539115,15.638705 23.772021,14.44575 12.046899,5.5543978 12.0012,5.5996202 11.95349,5.5543978 z" inkscape:connector-curvature="0" stroke="#000000" stroke-linejoin="round" stroke-width="0.47"/>
-   <path id="rect2404" d="m 3.7328178,6.8342717 2.9729061,0 -0.025857,1.5076098 -2.9470184,2.2794445 0,-3.7870543 z" inkscape:connector-curvature="0"/>
-   <path sodipodi:nodetypes="ccccc" id="rect2404-4" d="m 18.098343,2.2763645 -0.954846,0 0.0083,6.0962772 0.946533,0.8746216 z" inkscape:connector-curvature="0"/>
-   <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path3336" d="M 22.021206,2.453667 10.079193,2.4094135" fill="none" stroke="#000000" stroke-linecap="square" stroke-width="0.796"/>
-   <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4138" d="m 9.5054813,0.35498487 0,4.24235173" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="0.7"/>
-   <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4138-0" d="m 12.353087,0.35498487 0,4.24235173" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="0.7"/>
-   <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4138-2" d="m 15.200692,0.35498487 0,4.24235173" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="0.7"/>
-   <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4138-7" d="m 19.881322,0.35498487 0,4.24235173" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="0.7"/>
-   <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4138-3" d="m 22.438356,0.35498487 0,4.24235173" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="0.7"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/121-2.svg b/htdocs/public/symbols/svgicons/121-2.svg
deleted file mode 100755
index 8ebb972d28c9fc5d1958bce3697efa5c1b63c45b..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/121-2.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <rect id="rect3370" width="24" height="24" y="1028.36" rx="4" fill="#d45500"/>
-  <g transform="matrix(0.11875777,0,0,0.12501449,0.99974367,1031.7362)" id="g3405">
-   <g id="g3509">
-    <path inkscape:connector-curvature="0" d="m 61.254807,4.999999 0,2 c -12.621002,1.629901 -27.061005,4.7024 -38,11.4684 -11.507004,7.117199 -9.490997,16.063301 2,21.531601 -2.535995,-13.834801 24.475998,-21.2733 35,-19 -7.85701,4.938299 -37.820007,12.626499 -16.001999,23.621899 2.25499,1.136002 4.563004,1.798603 7.001999,2.378101 -8.223999,-11.623299 13.093002,-14.979 21,-16 -3.404999,4.229698 -14.292999,3.501999 -15.218002,10.039398 -0.899002,6.361401 10.871002,8.882801 15.218002,9.699802 13.065994,2.4557 29.030703,2.5117 42.000003,-0.638901 4.61149,-1.1203 17.0063,-5.137302 13.91359,-12.006901 -1.41739,-3.148399 -5.4102,-4.907799 -7.91359,-7.093399 8.3441,-1.2341 18.63359,4.719498 16,14 2.10899,-0.921898 4.0885,-1.860199 5.96449,-3.223801 18.70981,-13.5991 -11.95689,-18.598499 -16.96449,-25.7762 12.94209,1.6713 34.612,5.9484 35,22.000001 2.1483,-1.917702 4.48039,-3.7542 6.19749,-6.091 C 177.6577,16.659798 148.58,6.909198 138.25481,4.155098 c -3.668,-0.978399 -7.6133,-1.0165 -10,-4.155099 15.2339,1.203899 32.7129,5.132899 46,12.876499 6.28795,3.6646 13.32872,10.0522 10.25772,18.123501 -2.76161,7.258099 -11.49953,11.5462 -18.25772,14.188301 -16.82201,6.5765 -35.98741,9.983597 -54,10.772297 C 84.948807,57.156299 56.663804,56.2877 30.254807,48.709098 21.236802,46.121101 10.155808,43.918998 3.387803,36.895099 c -7.645004,-7.935501 -1.042999,-15.4701 6.867004,-19.632 14.806,-7.7901 34.358002,-11.5485 51,-12.263101 z" id="path1365"/>
-    <path inkscape:connector-curvature="0" d="m 70.254807,42 c 5.369003,-1.971802 10.352997,-2.606598 16,-3.168999 4.231995,-0.421501 7.767998,-0.421501 12,0 l 7.000003,0.607998 c 2.17399,0.344101 11.19619,1.819798 8.10959,5.851902 -1.90999,2.495098 -7.2558,2.824299 -10.10959,3.2701 C 95.077607,49.838101 73.358811,51.857201 70.254807,42 Z" id="path1605"/>
-    <path inkscape:connector-curvature="0" d="m 177.99594,40.912319 c -2.26642,12.892502 -16.72382,17.374199 -28,19.789402 -28.3129,6.064102 -55.64762,3.871994 -84.000014,0.210598 9.261002,-3.886002 22.1464,0.392101 32,-0.0394 28.575794,-1.251202 56.046294,-3.301403 80.000014,-19.960602 z" id="path1609"/>
-    <path inkscape:connector-curvature="0" d="m 173.25481,59 c -4.2818,14.376198 -22.65641,14.798904 -35,16.4244 -28.04901,3.693703 -59.458011,-2.149002 -86.000003,-11.091805 -10.475998,-3.529896 -24.57901,-8.821396 -28,-20.332596 8.263992,3.475399 15.481003,9.102398 24,12.315598 38.215996,14.414398 87.339703,20.267502 125.000003,2.684402 z" id="path1627"/>
-    <path inkscape:connector-curvature="0" d="m 164.25481,74 c -1.5712,15.199005 -22.54,14 -34,14 -28.863,0 -74.668002,-1.978104 -93.000003,-28 9.51799,1.8353 18.641998,8.528 28,11.645096 C 94.757805,81.471802 135.80611,89.602997 164.25481,74 Z" id="path1699"/>
-    <path inkscape:connector-curvature="0" d="m 151.25481,82 -1,1 1,-1 z" id="path1775"/>
-    <path inkscape:connector-curvature="0" d="m 137.25481,93 c -15.87451,14.72299 -56.256,7.877 -70.000003,-7 10.156998,-0.596405 22.635994,5.794006 33.000003,7.410004 12.30829,1.917999 24.7016,-0.376007 37,-0.410004 z" id="path1797"/>
-    <path inkscape:connector-curvature="0" d="m 71.254807,95 c 17.209999,9.79401 35.089603,9.013 54.000003,9 -9.73851,10.34 -32.788005,9.522 -44.000003,2.3 -3.865997,-2.49 -10.106003,-6.298 -10,-11.3 z" id="path1819"/>
-    <path inkscape:connector-curvature="0" d="m 72.254807,107 c 14.245995,8.313 23.916,5.653 39.000003,7 -7.16851,8.588 -21.832004,9.218 -31.000003,3.44099 C 76.6418,115.164 71.311799,111.698 72.254807,107 Z" id="path1855"/>
-    <path inkscape:connector-curvature="0" d="m 94.254807,124 c -3.297302,5.44 -9.484009,7.22501 -10,14 -6.074997,-3.64999 -12.81601,-10.162 -15,-17 9.421997,2.713 15.110992,3.78 25,3 z" id="path1887"/>
-   </g>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/122-1.svg b/htdocs/public/symbols/svgicons/122-1.svg
deleted file mode 100755
index 700aecd3cc6a78451e0a60000be084a270829b53..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/122-1.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3957"/>
- <path d="m 2.1612884,23.755458 19.5543286,0 0,-11.781835 2.039841,0 L 12.026377,0.24454219 0.24454209,12.026377 l 1.95191591,0 z" id="path3961" inkscape:connector-curvature="0" fill="#ff0000" stroke="#ff0000" stroke-linejoin="round" stroke-width="0.489"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/122-2.svg b/htdocs/public/symbols/svgicons/122-2.svg
deleted file mode 100755
index 700aecd3cc6a78451e0a60000be084a270829b53..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/122-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3957"/>
- <path d="m 2.1612884,23.755458 19.5543286,0 0,-11.781835 2.039841,0 L 12.026377,0.24454219 0.24454209,12.026377 l 1.95191591,0 z" id="path3961" inkscape:connector-curvature="0" fill="#ff0000" stroke="#ff0000" stroke-linejoin="round" stroke-width="0.489"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/123-1.svg b/htdocs/public/symbols/svgicons/123-1.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/123-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/123-2.svg b/htdocs/public/symbols/svgicons/123-2.svg
deleted file mode 100755
index 5675e6fef10e1f760314f7578861ebbd2c4e5dff..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/123-2.svg
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g3121">
-   <path d="m 587.001,191.775 c 0,-34.867 -24.173,-64.178 -56.635,-72.094 -0.487,-0.119 -0.977,-0.23 -1.468,-0.34 -1.321,0.132 -2.625,-0.138 -3.761,-0.734 -4.019,-0.676 -8.14,-1.047 -12.347,-1.047 -14.877,0 -29.225,4.381 -41.491,12.671 -3.054,2.063 -7.2,1.261 -9.263,-1.792 -0.774,-1.146 -1.145,-2.447 -1.144,-3.735 0.002,-2.139 1.03,-4.239 2.936,-5.526 14.481,-9.786 31.411,-14.959 48.962,-14.959 1.654,0 3.297,0.051 4.928,0.142 C 499.864,65.46 460.832,40.014 417.312,40.014 c -46.851,0 -87.649,29.456 -103.479,71.663 -2.983,7.955 -5.083,16.361 -6.166,25.111 -0.418,3.378 -3.293,5.852 -6.612,5.852 -0.207,0 -0.417,-0.019 -0.627,-0.039 -0.067,-0.006 -0.133,-0.004 -0.2,-0.012 -3.656,-0.452 -6.253,-3.783 -5.801,-7.439 1.036,-8.369 2.905,-16.456 5.507,-24.189 -42.585,1.412 -76.817,35.727 -78.098,78.348 8.087,0.308 15.9,2.767 22.695,7.162 1.975,1.276 3.044,3.421 3.043,5.609 -0.001,1.24 -0.342,2.495 -1.065,3.614 -2,3.095 -6.129,3.979 -9.224,1.978 -4.437,-2.869 -9.495,-4.561 -14.755,-4.959 -0.804,-0.062 -1.611,-0.097 -2.423,-0.097 -14.922,0 -27.461,10.372 -30.804,24.284 11.929,-3.955 24.376,-6.65 37.163,-7.951 5.847,-0.594 11.765,-0.901 17.736,-0.901 5.979,0 11.893,0.314 17.732,0.909 11.826,1.203 23.331,3.594 34.384,7.062 20.481,6.429 39.406,16.55 55.945,29.621 6.605,5.221 12.835,10.904 18.624,17.02 h 135.23 c 44.668,0 80.877,-36.205 80.885,-80.871 0,-0.006 -10e-4,-0.01 -10e-4,-0.014 z" id="path3123" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-   <path d="m 521.806,465.719 c -1.138,0 -2.266,0.055 -3.387,0.139 -14.255,1.062 -27.023,8.777 -34.622,21.114 -2.721,4.414 -8.506,5.79 -12.921,3.07 -2.88,-1.773 -4.455,-4.852 -4.456,-8.002 0,-1.681 0.439,-3.382 1.385,-4.918 11.22,-18.215 30.377,-29.352 51.597,-30.136 -1.799,-60.006 -50.021,-108.336 -109.977,-110.315 3.667,10.895 6.302,22.287 7.761,34.077 0.637,5.147 -3.02,9.836 -8.166,10.473 -0.094,0.012 -0.187,0.009 -0.281,0.018 -0.296,0.027 -0.592,0.055 -0.884,0.055 -4.672,0 -8.72,-3.482 -9.308,-8.238 -1.525,-12.323 -4.483,-24.163 -8.688,-35.367 -9.626,-25.658 -25.811,-47.963 -46.402,-65.029 -2.799,-2.319 -5.68,-4.541 -8.637,-6.662 -25.652,-18.406 -57.028,-29.169 -90.619,-29.169 -2.87,0 -5.725,0.084 -8.565,0.239 -15.718,0.86 -30.94,4.069 -45.253,9.344 -38.31,14.117 -70.116,42.994 -87.554,81 2.307,-0.129 4.63,-0.201 6.969,-0.201 24.705,0 48.537,7.281 68.921,21.057 2.683,1.812 4.13,4.769 4.133,7.779 0.002,1.812 -0.52,3.645 -1.61,5.259 -2.904,4.298 -8.741,5.427 -13.038,2.522 -17.267,-11.669 -37.463,-17.836 -58.405,-17.836 -5.904,0 -11.693,0.5 -17.333,1.446 -1.631,0.87 -3.511,1.261 -5.415,1.056 -0.665,0.148 -1.328,0.304 -1.988,0.465 -45.703,11.139 -79.73,52.417 -79.73,101.501 0,0.011 -0.001,0.021 -0.001,0.031 0.017,62.868 50.986,113.828 113.86,113.828 H 405.6 512.417 c 29.816,0 53.992,-24.176 53.992,-53.997 0,-24.594 -20.009,-44.603 -44.603,-44.603 z" id="path3125" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-  </g>
-  <g id="g3046" transform="translate(-0.03373486,-0.89285714)">
-   <path inkscape:connector-curvature="0" id="path3903" d="m 0.74157708,1045.7667 c 20.84821392,0 20.84821392,0 20.84821392,0" stroke="#b3b1b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-6" d="m 2.2817553,1047.4801 c 20.8482147,0 20.8482147,0 20.8482147,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-0" d="m 0.67857143,1049.1935 c 7.98315367,0 7.98315367,0 7.98315367,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-0-4" d="m 10.499999,1049.1506 c 7.983154,0 7.983154,0 7.983154,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-6-6" d="m 2.1924695,1050.9068 c 20.8482145,0 20.8482145,0 20.8482145,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-  </g>
-  <text x="2.5" y="11.143" id="text4818" sodipodi:linespacing="0%" transform="translate(0,1028.3622)" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" letter-spacing="0" font-size="6"><tspan sodipodi:role="line" id="tspan4820"/>
-  </text>
-  <g id="g3053" transform="translate(-0.04910686,1.0267857)">
-   <path inkscape:connector-curvature="0" id="path3903-3" d="m 0.75694943,1029.8814 c 20.84821357,0 20.84821357,0 20.84821357,0" stroke="#b3b1b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-6-5" d="m 2.2971274,1031.5948 c 20.8482146,0 20.8482146,0 20.8482146,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-0-0" d="m 0.69394343,1033.3082 c 7.98315397,0 7.98315397,0 7.98315397,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-0-4-6" d="m 10.515371,1033.2653 c 7.983154,0 7.983154,0 7.983154,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-6-6-5" d="m 2.2078414,1035.0215 c 20.8482146,0 20.8482146,0 20.8482146,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-  </g>
-  <g id="g3046-8" transform="translate(-0.03373486,-7.9388357)">
-   <path inkscape:connector-curvature="0" id="path3903-67" d="m 0.74157708,1045.7667 c 20.84821392,0 20.84821392,0 20.84821392,0" stroke="#b3b1b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-6-58" d="m 2.2817553,1047.4801 c 20.8482147,0 20.8482147,0 20.8482147,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-0-01" d="m 0.67857143,1049.1935 c 7.98315367,0 7.98315367,0 7.98315367,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-0-4-1" d="m 10.499999,1049.1506 c 7.983154,0 7.983154,0 7.983154,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-   <path inkscape:connector-curvature="0" id="path3903-6-6-3" d="m 2.1924695,1050.9068 c 20.8482145,0 20.8482145,0 20.8482145,0" stroke="#b3b3b3" fill-opacity="0" stroke-linecap="round"/>
-  </g>
-  <text x="11.917" y="1043.64" id="text4818-9" sodipodi:linespacing="0%" fill="#1a1a1a" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="9"><tspan sodipodi:role="line" id="tspan4820-2" x="11.917" y="1043.64">FOG</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/124-1.svg b/htdocs/public/symbols/svgicons/124-1.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/124-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/124-2.svg b/htdocs/public/symbols/svgicons/124-2.svg
deleted file mode 100755
index ea1c71cfe9e24cf61e7b596ec0bc786f3b79b494..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/124-2.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   viewBox="0 0 24 24"
-   height="24"
-   width="24"
-   version="1.1"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="124-2.svg">
-  <defs
-     id="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="7.8666667"
-     inkscape:cx="-16.90678"
-     inkscape:cy="15"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata3432">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <rect
-     rx="1.9170001"
-     y="1.2583904"
-     x="8.1230001"
-     height="21.483219"
-     width="7.7540002"
-     id="rect3436" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/125-1.svg b/htdocs/public/symbols/svgicons/125-1.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/125-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/125-2.svg b/htdocs/public/symbols/svgicons/125-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/125-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/126-1.svg b/htdocs/public/symbols/svgicons/126-1.svg
deleted file mode 100755
index c0618969cc40587a530fca1f0e825e18f21df7bb..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/126-1.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="30" height="30" viewBox="0 0 30 30">
- <metadata id="metadata3516"/>
- <text x="-4.337" y="29.2" id="text3528" sodipodi:linespacing="125%" transform="scale(0.84923707,1.1775275)" font-family="sans-serif" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="52.51"><tspan sodipodi:role="line" id="tspan3530" x="-4.337" y="29.2">~</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/126-2.svg b/htdocs/public/symbols/svgicons/126-2.svg
deleted file mode 100755
index c0618969cc40587a530fca1f0e825e18f21df7bb..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/126-2.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="30" height="30" viewBox="0 0 30 30">
- <metadata id="metadata3516"/>
- <text x="-4.337" y="29.2" id="text3528" sodipodi:linespacing="125%" transform="scale(0.84923707,1.1775275)" font-family="sans-serif" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="52.51"><tspan sodipodi:role="line" id="tspan3530" x="-4.337" y="29.2">~</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/32-1.svg b/htdocs/public/symbols/svgicons/32-1.svg
deleted file mode 100755
index 712d15a0cbb40c8ff0e95e9b23319b3c04a3bada..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/32-1.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4183"/>
- <text x="11.563" y="8.596" id="text4187" sodipodi:linespacing="125%" font-family="sans-serif" text-anchor="middle" text-align="center" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="10"><tspan sodipodi:role="line" id="tspan4189" x="11.563" y="8.596">REV</tspan>
- </text>
- <text x="4.677" y="23.06" id="text4191" sodipodi:linespacing="125%" font-family="sans-serif" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="17.5"><tspan sodipodi:role="line" id="tspan4193" x="4.677" y="23.06">H</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/32-2.svg b/htdocs/public/symbols/svgicons/32-2.svg
deleted file mode 100755
index 712d15a0cbb40c8ff0e95e9b23319b3c04a3bada..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/32-2.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4183"/>
- <text x="11.563" y="8.596" id="text4187" sodipodi:linespacing="125%" font-family="sans-serif" text-anchor="middle" text-align="center" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="10"><tspan sodipodi:role="line" id="tspan4189" x="11.563" y="8.596">REV</tspan>
- </text>
- <text x="4.677" y="23.06" id="text4191" sodipodi:linespacing="125%" font-family="sans-serif" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="17.5"><tspan sodipodi:role="line" id="tspan4193" x="4.677" y="23.06">H</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/33-1.svg b/htdocs/public/symbols/svgicons/33-1.svg
deleted file mode 100755
index 3460dc97efd84d897937a2882e3f2cbdeaeecd61..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/33-1.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4298"/>
- <g inkscape:groupmode="layer" id="layer1" inkscape:label="Layer 1">
-  <path sodipodi:type="star" id="path4304" sodipodi:sides="6" sodipodi:cx="11.986943" sodipodi:cy="13.815016" sodipodi:r1="13.818669" sodipodi:r2="7.8766413" sodipodi:arg1="0.52453753" sodipodi:arg2="1.0481363" inkscape:flatsided="false" inkscape:rounded="0" inkscape:randomized="0" d="m 23.94777,20.735582 -8.028911,-0.0955 -3.944888,6.993598 -3.9317502,-7.000992 -8.02907713,0.08043 4.09716173,-6.905491 -4.08418939,-6.9131722 8.02891189,0.0955 3.9448881,-6.99359774 3.93175,7.00099194 8.029077,-0.080426 -4.097162,6.9054915 z" transform="matrix(1.0010906,0,0,0.8695997,-1.6205237e-5,-0.01353359)" fill="#0000d0" stroke="#1a1a1a" stroke-linecap="round" stroke-width="0"/>
- </g>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 2">
-  <text x="13.13" y="14.347" id="text4323" sodipodi:linespacing="125%" transform="scale(0.9004394,1.1105689)" fill="#d8d81f" font-family="sans-serif" text-anchor="middle" text-align="center" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="9.717"><tspan sodipodi:role="line" id="tspan4325" x="13.13" y="14.347">PD</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/33-2.svg b/htdocs/public/symbols/svgicons/33-2.svg
deleted file mode 100755
index 455d42494523b1ecf8a8abc2278744f698824534..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/33-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" viewBox="0 0 24 24" width="24" height="24">
- <path inkscape:connector-curvature="0" d="M 11.926935,5.4192426 20.327446,19.51052 3.6845254,19.564516 11.926935,5.4192426 Z" id="white_bg" fill="#ffff00"/>
- <path inkscape:connector-curvature="0" d="M 11.977044,2.0093618 C 11.566241,1.9828259 11.146799,2.1767499 10.883729,2.5250469 L 0.0572775,20.713555 c -0.07304604,0.274732 -0.07581064,0.44968 -0.01066964,0.70843 0.0623332,0.247518 0.3058344,0.502812 0.53862277,0.564584 l 22.54621637,0.0065 c 0.140822,-0.02549 0.335208,-0.09158 0.430673,-0.146869 0.347304,-0.201298 0.582295,-0.737372 0.336073,-1.144719 L 12.938262,2.5587406 C 12.778002,2.2935977 12.455321,2.1025808 12.15251,2.034848 12.095058,2.0218889 12.035878,2.0129903 11.97713,2.009189 Z m -0.05011,3.4098808 8.400511,14.0912774 -16.6429206,0.054 8.2424096,-14.1452734 z" id="foo"/>
- <path inkscape:connector-curvature="0" id="path8" d="m 11.627581,18.593621 c -0.380134,-0.181859 -0.669553,-0.619876 -0.669553,-1.012968 0,-0.731325 0.764154,-1.282518 1.487271,-1.072149 0.487693,0.141686 0.819014,0.581863 0.815126,1.082516 -0.0035,0.42549 -0.187474,0.738668 -0.563288,0.958972 -0.28726,0.168468 -0.768474,0.187907 -1.069556,0.04363 z m 0.08639,-2.88858 C 11.666458,15.679123 11.554578,15.587977 11.46516,15.502879 11.15371,15.206116 11.15371,15.208708 10.950684,12.029413 10.770121,9.2034682 10.768393,9.1594073 10.846148,8.9563817 11.020231,8.4997899 11.409004,8.299788 12.056094,8.3334816 c 0.411235,0.021598 0.728301,0.1663083 0.933918,0.4263539 0.176244,0.2220324 0.214257,0.3477355 0.214257,0.7023824 -4.32e-4,0.3853168 -0.246654,5.1132231 -0.281644,5.4030741 -0.04579,0.37927 -0.266957,0.687264 -0.591798,0.822902 -0.185315,0.07732 -0.491581,0.08596 -0.616853,0.01685 z"/>
- <metadata id="metadata10"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/34-1.svg b/htdocs/public/symbols/svgicons/34-1.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/34-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/34-2.svg b/htdocs/public/symbols/svgicons/34-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/34-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/35-1.svg b/htdocs/public/symbols/svgicons/35-1.svg
deleted file mode 100644
index 5cd64ee5fde37939041f15d6104a28bfc8c42797..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/35-1.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="m23.993 17.993-8.046-.076L12 23.987l-3.948-6.07-8.046.076L4.106 12l-4.1-5.994 8.046.077L12 .013l3.947 6.07 8.046-.077-4.1 5.994Z" fill="green"/>
-  <path d="M6.803 12a5.197 5.197 0 0 1 5.196-5.197 5.197 5.197 0 0 1 5.198 5.195 5.197 5.197 0 0 1-5.193 5.199 5.197 5.197 0 0 1-5.201-5.192" fill="#f9f9f9"/>
-  <text x="12" y="14.5" word-spacing="0" font-weight="bold" letter-spacing="0" font-size="7.5" style="font-weight:700;font-size:7.5px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#000" transform="translate(.052 .234)"><tspan x="12" y="14.5">D</tspan></text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/35-1.svg.orig b/htdocs/public/symbols/svgicons/35-1.svg.orig
deleted file mode 100755
index 7c21b5de9a5319ae41ce4fc8091d2b6fb7d3adf3..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/35-1.svg.orig
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:dc="http://purl.org/dc/elements/1.1/">
-  <defs
-     id="defs13" />
-  <metadata
-     id="metadata4228">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <path
-       id="path4232"
-       d="M 23.196655,18.425219 15.684703,18.34292 12,24.88961 8.3152966,18.34292 0.80334509,18.425219 4.6305938,11.960827 0.80334515,5.4964351 8.3152972,5.5787337 12,-0.96795654 15.684703,5.5787341 23.196655,5.4964352 19.369406,11.960827 Z"
-       transform="matrix(1.071125,0,0,0.92715745,-0.8535,0.91043026)"
-       fill="#008000"
-       stroke-linejoin="round"
-       stroke-width="1.124" />
-  </g>
-  <g
-     id="layer2">
-    <path
-       id="path4253"
-       d="m 6.8030467,12 a 5.1969533,5.1969533 0 0 1 5.1957063,-5.1969531 5.1969533,5.1969533 0 0 1 5.1982,5.1944591 5.1969533,5.1969533 0 0 1 -5.193211,5.199446 5.1969533,5.1969533 0 0 1 -5.2006929,-5.191963"
-       fill="#f9f9f9"
-       stroke-linejoin="round"
-       stroke-width="1.124" />
-  </g>
-  <g
-     id="text"
-     transform="translate(0.05168457,0.23376465)">
-    <text
-       x="12"
-       y="14.5"
-       id="text3339"
-       text-align="center"
-       word-spacing="0"
-       line-height="0%"
-       font-weight="bold"
-       letter-spacing="0"
-       font-size="7.5px"
-       style="font-weight:bold;font-size:7.5px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#000000"><tspan
-         id="tspan2930"
-         x="12"
-         y="14.5">D</tspan></text>
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/35-2.svg b/htdocs/public/symbols/svgicons/35-2.svg
deleted file mode 100644
index 97cae2ab92e0a33fc76ee018c8d2e6aeffb2da79..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/35-2.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-  <path d="m24.001 18.003-8.046-.076-3.947 6.07-3.948-6.07-8.046.076 4.1-5.993-4.1-5.994 8.046.077 3.948-6.07 3.947 6.07L24 6.016l-4.1 5.994Z" fill="green"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/35-2.svg.orig b/htdocs/public/symbols/svgicons/35-2.svg.orig
deleted file mode 100755
index 82d97941a5fcc9c0e81c73827db2323a9be09a13..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/35-2.svg.orig
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4228"/>
- <g inkscape:groupmode="layer" id="layer1" inkscape:label="Layer 1">
-  <path sodipodi:type="star" id="path4232" sodipodi:sides="6" sodipodi:cx="12" sodipodi:cy="11.960827" sodipodi:r1="12.928783" sodipodi:r2="7.3694062" sodipodi:arg1="0.52359878" sodipodi:arg2="1.0471976" inkscape:flatsided="false" inkscape:rounded="0" inkscape:randomized="0" d="M 23.196655,18.425219 15.684703,18.34292 12,24.88961 8.3152966,18.34292 0.80334509,18.425219 4.6305938,11.960827 0.80334515,5.4964351 8.3152972,5.5787337 12,-0.96795654 15.684703,5.5787341 23.196655,5.4964352 19.369406,11.960827 Z" transform="matrix(1.071125,0,0,0.92715745,-0.84619502,0.91977284)" fill="#008000" stroke-linejoin="round" stroke-width="1.124"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/36-1.svg b/htdocs/public/symbols/svgicons/36-1.svg
deleted file mode 100755
index ad3fee23cb372c0c9983c72f15b8f4d8ad66c439..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/36-1.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4363"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Layer 1">
-  <rect id="rect4368" width="24" height="24" y="0.013" rx="3" fill="#0000cc" stroke-linejoin="round" stroke-width="1.124"/>
- </g>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Lager 3">
-  <path d="m 2.5688082,17.036813 c 0.01627,0.36089 0.04177,0.71077 0.07367,1.07539 0.152993,0.75716 0.4477841,1.50192 0.8625371,2.15964 0.693847,0.87314 1.596347,1.56473 2.626656,2.0257 0.662705,0.28393 1.398155,0.29103 2.052647,0.0143 6.6681927,-2.75725 11.5729997,-8.5802 13.1773497,-15.6146809 0.17485,-0.80116 0.0185,-1.65498 -0.45328,-2.32302 -0.35456,-0.49458 -0.736833,-0.95613 -1.173679,-1.34146 -1.032497,-0.89456 -2.302869,-1.4161599 -3.640831,-1.5440499 -0.16011,-0.0217 -0.337085,0.055 -0.447991,0.18718 -0.05547,0.0661 -0.09261,0.1663 -0.100274,0.2537199 l -0.847367,5.30468 c -0.04786,0.26954 0.133502,0.53433 0.408548,0.58682 l 1.656695,0.32963 c 0.09842,0.0169 0.173763,0.0613 0.23985,0.1168 0.225798,0.18946 0.244029,0.51446 0.05456,0.74026 l 0,0 -7.1027073,8.4646709 c -0.189462,0.22579 -0.5126894,0.26428 -0.7384874,0.0748 -0.0771,-0.0647 -0.131063,-0.15697 -0.164818,-0.25096 l -0.273771,-0.97113 c -0.08292,-0.2479 -0.315305,-0.39596 -0.558393,-0.37469 l -5.181511,0.56049 c -0.130783,0.0216 -0.2478891,0.0829 -0.3356941,0.18756 -0.07855,0.0936 -0.118561,0.2196 -0.133697,0.33829 z" id="path4" inkscape:connector-curvature="0" fill="none" stroke="#ffffff" stroke-width="1.2"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/36-2.svg b/htdocs/public/symbols/svgicons/36-2.svg
deleted file mode 100755
index 2808185903905fb8668b24b7beba8b4fb7c6eadb..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/36-2.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4457"/>
- <g inkscape:groupmode="layer" id="layer7" inkscape:label="Layer 2">
-  <rect id="rect4137" width="24" height="24" rx="3" fill="#008000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.3"/>
-  <g transform="matrix(0.00379319,0,0,-0.00362069,0.62155767,22.86207)" id="g4" fill="#ffffff">
-   <path inkscape:connector-curvature="0" d="m 2568,5643 -3,-258 -27,-3 c -16,-2 -28,-7 -28,-11 0,-4 -45,-16 -100,-26 -55,-10 -100,-22 -100,-27 0,-4 -7,-8 -17,-8 -20,0 -126,-32 -133,-40 -3,-4 -32,-15 -65,-25 -33,-10 -62,-21 -65,-24 -3,-4 -25,-15 -50,-26 -25,-11 -51,-25 -58,-32 -7,-7 -19,-13 -26,-13 -7,0 -21,-8 -32,-18 -10,-10 -34,-27 -53,-38 -19,-10 -53,-38 -76,-61 -23,-24 -46,-43 -51,-43 -5,0 -31,-26 -59,-56 -27,-31 -64,-71 -82,-89 -17,-19 -34,-43 -38,-55 -4,-11 -17,-32 -31,-47 -13,-14 -24,-34 -24,-44 0,-11 -4,-19 -8,-19 -5,0 -17,-25 -27,-55 -11,-30 -22,-55 -25,-55 -4,0 -15,-26 -26,-57 -10,-32 -22,-61 -27,-64 -9,-7 -37,-134 -37,-171 0,-16 -4,-28 -9,-28 -15,0 -27,-260 -17,-407 5,-79 13,-143 17,-143 4,0 16,-36 25,-80 10,-44 21,-80 25,-80 4,0 10,-12 13,-27 10,-40 30,-83 38,-83 4,0 14,-16 22,-35 8,-19 19,-35 23,-35 5,0 17,-17 28,-37 11,-21 28,-44 37,-51 10,-7 18,-19 18,-27 0,-8 9,-19 20,-25 11,-6 20,-16 20,-22 0,-14 72,-88 85,-88 6,0 16,-9 23,-20 7,-11 19,-20 27,-20 8,0 19,-9 25,-20 6,-11 17,-20 25,-20 8,0 20,-8 27,-17 15,-20 44,-41 71,-49 9,-4 17,-10 17,-15 0,-4 16,-16 35,-25 19,-9 35,-20 35,-24 0,-5 20,-16 45,-26 25,-9 45,-20 45,-23 0,-4 20,-15 45,-26 25,-11 45,-23 45,-26 0,-4 23,-15 50,-25 28,-10 50,-21 50,-25 0,-4 23,-15 50,-25 28,-10 50,-21 50,-25 0,-3 21,-14 47,-24 27,-10 53,-24 59,-30 7,-6 37,-17 68,-24 31,-7 56,-17 56,-22 0,-5 7,-9 15,-9 13,0 15,-103 15,-865 l 0,-866 -62,7 c -35,4 -65,10 -68,14 -3,4 -30,10 -60,14 -74,9 -150,28 -150,38 0,4 -13,8 -28,8 -29,0 -123,28 -132,40 -3,3 -25,12 -49,20 -24,8 -49,19 -55,25 -6,6 -32,20 -59,30 -26,10 -47,22 -47,26 0,5 -6,9 -12,9 -15,0 -98,82 -98,96 0,5 -9,15 -20,22 -11,7 -20,19 -20,27 0,8 -6,15 -14,15 -13,0 -34,38 -24,44 1,1 30,7 62,14 34,7 67,20 78,32 10,11 24,20 31,20 16,0 117,107 117,124 0,7 8,21 18,32 29,30 42,103 42,226 0,111 -12,188 -30,188 -5,0 -14,17 -21,37 -13,40 -96,129 -141,152 -16,8 -28,18 -28,23 0,4 -6,8 -14,8 -7,0 -27,7 -42,15 -16,8 -48,15 -71,15 -24,0 -43,5 -43,10 0,6 -25,10 -55,10 -30,0 -55,-4 -55,-8 0,-4 -34,-16 -74,-25 -86,-20 -119,-44 -211,-151 -16,-19 -37,-43 -46,-53 -9,-10 -23,-36 -30,-58 -8,-22 -16,-42 -19,-45 -19,-18 -30,-72 -30,-142 0,-77 18,-207 29,-218 4,-3 15,-31 25,-62 11,-32 22,-58 26,-58 4,0 15,-16 26,-35 10,-19 22,-35 26,-35 4,0 14,-16 22,-35 8,-19 19,-35 25,-35 5,0 12,-8 15,-18 9,-27 119,-152 135,-152 4,0 19,-13 33,-29 15,-16 42,-34 62,-41 20,-6 36,-15 36,-20 0,-5 17,-17 38,-27 20,-9 43,-25 50,-35 7,-10 22,-18 32,-18 10,0 25,-6 33,-14 8,-8 39,-23 68,-32 30,-10 56,-21 59,-25 3,-4 32,-15 65,-24 33,-10 62,-21 65,-24 3,-4 34,-16 70,-26 36,-10 67,-22 70,-26 6,-8 148,-39 179,-39 11,0 21,-4 23,-10 2,-5 57,-16 123,-22 l 120,-13 3,-273 2,-272 270,0 0,520 320,0 0,-520 270,0 0,546 132,12 c 72,6 134,15 137,20 3,4 53,15 111,25 57,9 106,21 110,25 3,4 39,16 80,26 41,11 77,22 80,25 3,4 31,15 63,24 31,10 57,22 57,26 0,4 18,14 40,21 23,8 44,18 48,24 4,6 23,20 42,30 19,11 44,28 54,38 11,10 26,18 33,18 7,0 17,9 23,20 6,11 16,20 23,20 17,0 173,162 181,188 4,12 11,22 16,22 5,0 17,16 26,35 9,19 20,35 24,35 5,0 16,20 26,45 9,25 20,45 24,45 8,0 40,94 40,116 0,8 4,14 9,14 5,0 17,35 26,78 10,42 21,80 27,83 38,24 36,799 -3,799 -4,0 -13,25 -20,56 -7,31 -18,61 -24,68 -6,6 -20,32 -30,59 -10,26 -21,47 -24,47 -4,0 -15,17 -26,38 -11,20 -28,43 -37,50 -10,7 -18,18 -18,23 0,6 -36,46 -79,90 -44,43 -84,79 -90,79 -5,0 -16,8 -23,18 -7,9 -29,26 -48,36 -19,11 -44,28 -54,38 -11,10 -25,18 -32,18 -7,0 -17,6 -21,13 -4,7 -25,21 -45,32 -21,11 -38,23 -38,26 0,4 -22,15 -50,25 -27,10 -50,21 -50,25 0,4 -22,15 -50,25 -27,10 -50,21 -50,25 0,4 -22,15 -50,25 -27,10 -50,21 -50,25 0,3 -27,14 -60,23 -33,9 -60,21 -60,25 0,4 -28,16 -62,27 -35,10 -68,23 -74,29 -7,6 -37,17 -68,25 -31,7 -56,16 -56,20 0,3 -22,14 -50,24 -27,10 -50,22 -50,27 0,5 -9,9 -20,9 -20,0 -20,7 -20,810 l 0,810 50,0 c 28,0 50,-4 50,-10 0,-5 17,-10 37,-10 43,0 196,-31 203,-41 3,-3 31,-14 63,-23 31,-9 57,-21 57,-26 0,-6 8,-10 19,-10 10,0 24,-7 31,-15 7,-8 16,-15 21,-15 4,0 19,-10 33,-22 13,-13 31,-29 40,-36 9,-7 16,-28 16,-47 0,-31 -3,-35 -35,-41 -19,-3 -35,-10 -35,-15 0,-5 -7,-9 -15,-9 -9,0 -29,-7 -46,-15 -42,-22 -139,-117 -139,-136 0,-9 -9,-26 -20,-39 -18,-21 -40,-79 -40,-107 0,-7 -4,-13 -10,-13 -6,0 -10,-42 -10,-105 0,-58 3,-105 8,-105 4,0 16,-27 26,-60 11,-33 23,-60 27,-60 4,0 10,-8 14,-19 9,-28 88,-106 124,-122 17,-8 31,-17 31,-21 0,-8 59,-38 76,-38 7,0 14,-6 16,-12 6,-17 266,-18 276,-1 4,6 21,13 37,17 17,4 44,18 59,31 16,14 32,25 36,25 11,0 70,62 70,73 0,5 11,18 25,29 14,11 25,25 25,33 0,7 6,15 14,18 8,3 20,32 26,64 22,105 -2,473 -31,473 -4,0 -15,20 -25,45 -9,25 -20,45 -23,45 -4,0 -13,17 -20,37 -9,25 -53,76 -130,151 -134,131 -136,133 -176,152 -16,8 -32,18 -35,21 -3,3 -22,14 -42,24 -21,9 -38,21 -38,25 0,3 -26,15 -57,26 -32,10 -60,22 -63,25 -3,4 -33,15 -67,24 -35,10 -63,21 -63,25 0,9 -88,28 -167,36 -35,4 -63,10 -63,15 0,4 -36,11 -80,15 l -80,7 0,507 -270,0 0,-490 -102,0 c -57,0 -120,-3 -140,-6 l -38,-7 0,503 -310,0 -2,-257 z m 592,-1243 c 0,-461 -4,-760 -9,-760 -5,0 -16,7 -25,15 -8,8 -19,15 -25,15 -16,0 -105,32 -111,39 -3,4 -27,15 -55,26 -27,10 -56,24 -62,31 -10,10 -13,162 -13,693 l 0,680 33,6 c 29,5 60,6 220,13 l 47,2 0,-760 z m -590,95 c 0,-571 -1,-604 -17,-598 -10,4 -24,13 -31,20 -7,7 -20,13 -27,13 -8,0 -20,8 -27,18 -13,17 -39,36 -68,49 -8,4 -21,15 -28,25 -7,10 -18,18 -23,18 -18,0 -165,157 -179,191 -7,19 -18,39 -25,44 -19,16 -32,47 -40,95 -4,25 -12,48 -18,52 -13,8 -11,162 3,166 5,2 10,17 10,33 0,33 30,151 41,159 3,3 9,14 13,25 3,11 19,36 36,55 17,19 33,43 36,53 3,9 9,17 14,17 5,0 16,13 24,29 8,15 30,34 48,42 18,7 42,21 52,31 11,10 25,18 32,18 7,0 19,6 27,14 14,14 81,33 125,35 l 22,1 0,-605 z m 365,-2038 c 11,-14 147,-47 195,-47 l 30,0 0,-1590 -73,0 c -41,0 -108,-3 -150,-6 l -77,-7 0,1682 33,-10 c 17,-5 37,-15 42,-22 z m 542,-199 c 15,-7 37,-21 47,-30 11,-10 26,-18 33,-18 7,0 17,-9 23,-20 6,-11 17,-20 25,-20 8,0 20,-8 27,-18 7,-10 20,-21 28,-25 53,-24 166,-139 180,-183 7,-19 15,-34 19,-34 4,0 14,-19 21,-41 8,-23 20,-48 27,-55 22,-21 33,-108 33,-251 0,-129 -15,-273 -29,-283 -4,-3 -15,-27 -26,-55 -10,-27 -29,-58 -42,-68 -13,-10 -23,-25 -23,-33 0,-8 -4,-14 -8,-14 -5,0 -14,-11 -20,-25 -7,-14 -20,-28 -29,-32 -10,-4 -34,-23 -54,-43 -19,-20 -49,-42 -67,-49 -17,-7 -41,-21 -52,-31 -11,-10 -41,-24 -65,-31 -25,-7 -45,-16 -45,-20 0,-4 -11,-9 -25,-11 l -25,-5 0,703 c 0,440 4,704 10,704 5,0 22,-6 37,-12 z" id="path6"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/37-1.svg b/htdocs/public/symbols/svgicons/37-1.svg
deleted file mode 100755
index a982ac0f0436cd1a2ad78a533c1f328c764c61ac..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/37-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4641"/>
- <rect id="rect3334" width="23.04" height="23.04" x="0.48" y="0.48" rx="2.88" fill="#ffffff" fill-rule="evenodd" stroke="#333333" stroke-width="0.96"/>
- <text x="1.805" y="15.846" id="text4645" sodipodi:linespacing="125%" transform="scale(0.77898225,1.2837263)" font-family="sans-serif" fill="#000080" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="-1.951" font-size="17.827"><tspan sodipodi:role="line" id="tspan4647" x="1.805" y="15.846">DX</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/37-2.svg b/htdocs/public/symbols/svgicons/37-2.svg
deleted file mode 100755
index d6aad82703011e2a2884a59fbab14795ba7188fa..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/37-2.svg
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg4231"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="37-2.svg">
-  <defs
-     id="defs4233" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="7.9195959"
-     inkscape:cx="-10.192552"
-     inkscape:cy="13.794823"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     units="px"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4236">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1028.3622)">
-    <g
-       id="g4251"
-       transform="translate(-210.85714,662.28571)"
-       style="fill:#1a1a1a">
-      <path
-         sodipodi:nodetypes="csccc"
-         id="path5796"
-         style="fill:#1a1a1a"
-         d="m 212.15962,373.77571 c 0.1561,14.84097 4.97586,14.40251 10.69011,14.40251 5.71386,0 10.69168,-0.1021 10.70494,-14.40251 l -21.39456,0 z"
-         inkscape:connector-curvature="0" />
-      <path
-         id="rect5801"
-         style="fill:#1a1a1a"
-         d="m 216.96298,366.07659 c 0.66663,0 1.20317,0.53605 1.20317,1.20317 l 0,6.73766 c 0,0.66663 -0.53703,1.20317 -1.20317,1.20317 -0.66663,0 -1.20317,-0.53703 -1.20317,-1.20317 l 0,-6.73766 c 0,-0.66663 0.53703,-1.20317 1.20317,-1.20317 z"
-         inkscape:connector-curvature="0" />
-      <path
-         id="rect5803"
-         style="fill:#1a1a1a"
-         d="m 228.39639,366.07659 c 0.66663,0 1.20318,0.53703 1.20318,1.20317 l 0,6.73766 c 0,0.66663 -0.53704,1.20317 -1.20318,1.20317 -0.66662,0 -1.20317,-0.53703 -1.20317,-1.20317 l 0,-6.73766 c 0,-0.66663 0.53605,-1.20317 1.20317,-1.20317 z"
-         inkscape:connector-curvature="0" />
-      <path
-         id="rect5805"
-         style="fill:#1a1a1a"
-         d="m 217.97362,380.63177 9.76704,0 c 0.92484,0 1.66972,0.53703 1.66972,1.20317 l 0,7.03828 c 0,0.66663 -0.74517,1.20317 -1.66972,1.20317 l -9.76704,0 c -0.92483,0 -1.66971,-0.53703 -1.66971,-1.20317 l 0,-7.03828 c 0,-0.66663 0.74419,-1.20317 1.66971,-1.20317 z"
-         inkscape:connector-curvature="0" />
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/38-1.svg b/htdocs/public/symbols/svgicons/38-1.svg
deleted file mode 100755
index 8a64e97754b8982a6d59e9e346a60d144bdf2b17..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/38-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24"><metadata id="metadata4733"/><g><g><g><g>
-
- <g inkscape:groupmode="layer" id="layer9" inkscape:label="Layer 1">
-  <path sodipodi:type="star" id="path4741" sodipodi:sides="4" sodipodi:cx="12" sodipodi:cy="12" sodipodi:r1="11.990243" sodipodi:r2="8.4783821" sodipodi:arg1="0" sodipodi:arg2="0.78539816" inkscape:flatsided="true" inkscape:rounded="-3.469447e-18" inkscape:randomized="0" d="M 23.990243,12 12,23.990243 0.00975704,12 12,0.00975704 Z" transform="matrix(0.88484358,0,0,0.8847113,1.381877,1.3834644)" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="3.145"/>
- </g>
-<text id="textoverlay"><tspan id="tspanoverlay" font-family="Sans-Serif" text-anchor="middle" text-align="center" word-spacing="0" letter-spacing="0" font-weight="bold" x="12" y="12" fill="#ffff00" font-size="14" dy="4.7" dx="-0.2">G</tspan></text></g></g></g></g></svg>
diff --git a/htdocs/public/symbols/svgicons/38-2.svg b/htdocs/public/symbols/svgicons/38-2.svg
deleted file mode 100755
index c70d6b927ac500850ffb7bee78cd1f36d11327d8..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/38-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4733"/>
- <g inkscape:groupmode="layer" id="layer9" inkscape:label="Layer 1">
-  <path sodipodi:type="star" id="path4741" sodipodi:sides="4" sodipodi:cx="12" sodipodi:cy="12" sodipodi:r1="11.990243" sodipodi:r2="8.4783821" sodipodi:arg1="0" sodipodi:arg2="0.78539816" inkscape:flatsided="true" inkscape:rounded="-3.469447e-18" inkscape:randomized="0" d="M 23.990243,12 12,23.990243 0.00975704,12 12,0.00975704 Z" transform="matrix(0.88484358,0,0,0.8847113,1.381877,1.3834644)" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="3.145"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/39-1.svg b/htdocs/public/symbols/svgicons/39-1.svg
deleted file mode 100755
index a1b225046ea6bfee1bbe8edeaf365bf8ddeecae5..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/39-1.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="39-1.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="2.4583333"
-     inkscape:cx="-172.29272"
-     inkscape:cy="47.937368"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     inkscape:connector-curvature="0"
-     style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="M 2.4083407e-4,8.1162722 C -0.01838917,9.6764723 1.0466148,10.484411 2.4035078,10.73719 c 2.700071,0.37144 6.117916,0.07016 8.7605222,0.343954 0.12819,3.287784 0.20839,5.023295 0.348354,7.747571 -3.3678522,0.01565 -4.0829152,0.246165 -4.1373382,1.257336 -0.05361,0.996037 0.782894,1.165189 1.611365,1.193297 0.828467,0.02811 1.7426692,0.01809 2.6429532,0.03655 -4e-6,-4e-6 0.0043,0.494225 0.162466,0.591807 0.146984,0.09071 0.460239,0.106085 0.625114,0.03034 0.152246,-0.06993 0.205754,-0.637342 0.205758,-0.637338 0,0 1.697258,-0.0067 2.534782,0.01743 0.914595,0.02794 1.780169,-0.03316 1.803993,-1.237044 0.0238,-1.203501 -1.867308,-1.241138 -4.185258,-1.252397 0.227213,-3.628941 0.26379,-3.830654 0.453975,-7.747572 2.631603,-0.255168 5.568176,0.02749 7.851383,-0.343954 1.826305,-0.297106 2.968643,-1.0612513 2.916725,-2.6156021 -0.05192,-1.5543509 -0.935194,-2.1069768 -2.930505,-2.1096095 -3.52709,-0.00455 -7.503174,-0.3191949 -7.503174,-0.3191949 -0.03419,-1.5374531 0.351454,-3.6732247 -1.17103,-3.6792188 -1.522493,-0.006 -1.245886,2.1306675 -1.295288,3.6826712 0,0 -6.0155202,0.3410105 -8.7344712,0.3257934 -1.272077,-0.00741 -2.34478297,0.5187641 -2.36359296593,2.0942433 z"
-     id="path3241"
-     sodipodi:nodetypes="cccczzczzcczccszsczcszc" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/39-2.svg b/htdocs/public/symbols/svgicons/39-2.svg
deleted file mode 100755
index ce75666bda850b5e770c4c014c61cf8b4715d53c..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/39-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" viewBox="0 0 24 24" width="24" height="24">
- <path inkscape:connector-curvature="0" d="M 11.926935,5.4192426 20.327446,19.51052 3.6845254,19.564516 11.926935,5.4192426 Z" id="white_bg" fill="#ffff00"/>
- <path inkscape:connector-curvature="0" d="M 11.977044,2.0093618 C 11.566241,1.9828259 11.146799,2.1767499 10.883729,2.5250469 L 0.0572775,20.713555 c -0.07304604,0.274732 -0.07581064,0.44968 -0.01066964,0.70843 0.0623332,0.247518 0.3058344,0.502812 0.53862277,0.564584 l 22.54621637,0.0065 c 0.140822,-0.02549 0.335208,-0.09158 0.430673,-0.146869 0.347304,-0.201298 0.582295,-0.737372 0.336073,-1.144719 L 12.938262,2.5587406 C 12.778002,2.2935977 12.455321,2.1025808 12.15251,2.034848 12.095058,2.0218889 12.035878,2.0129903 11.97713,2.009189 Z m -0.05011,3.4098808 8.400511,14.0912774 -16.6429206,0.054 8.2424096,-14.1452734 z" id="foo"/>
- <metadata id="metadata10"/>
- <path d="m 15.351913,18.201835 -2.342899,-1.117795 -0.337372,2.000901 -1.7871,-1.825512 -2.3108271,1.262611 1.2808018,-2.461453 -1.6007975,-0.455922 1.4995009,-1.060977 -1.4848918,-1.584709 2.3132657,0.584318 0.781932,-1.719343 1.194351,1.469863 2.755388,-1.144062 -1.265982,2.046527 2.119454,0.781933 -2.062616,0.838701 1.247792,2.384919 z" id="path2816" sodipodi:nodetypes="ccccccccccccccccc" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-width="0.104" stroke-miterlimit="8.8"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/40-1.svg b/htdocs/public/symbols/svgicons/40-1.svg
deleted file mode 100755
index 2e2fafd4734f023b231e393dacec1c46995adf80..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/40-1.svg
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   id="svg4853"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="40-1.svg">
-  <defs
-     id="defs4874" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview4872"
-     showgrid="false"
-     inkscape:zoom="13.906433"
-     inkscape:cx="30.299655"
-     inkscape:cy="28.647355"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer2" />
-  <metadata
-     id="metadata3051">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="Lager">
-    <rect
-       id="rect4211"
-       width="4.8"
-       height="4.8"
-       x="18.02"
-       y="1.092"
-       opacity="0.4"
-       stroke-linejoin="round"
-       stroke-linecap="round"
-       stroke-width="0.4" />
-    <rect
-       id="rect4215"
-       width="2.981"
-       height="2.981"
-       x="18.932"
-       y="2"
-       opacity="0.5"
-       stroke-linejoin="round"
-       stroke-linecap="round"
-       stroke-width="0.4" />
-    <path
-       d="m 17.655966,3.4924092 c 5.532952,0 5.532952,0 5.532952,0"
-       id="path4199"
-       inkscape:connector-curvature="0"
-       fill-rule="evenodd"
-       stroke="#000000"
-       stroke-linecap="round"
-       stroke-width="0.994" />
-    <path
-       d="m 20.422442,0.88666139 c 0,5.21149571 0,5.21149571 0,5.21149571"
-       id="path4197"
-       inkscape:connector-curvature="0"
-       fill-rule="evenodd"
-       stroke="#000000"
-       stroke-linecap="round"
-       stroke-width="0.932" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Lager#2" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Lager#1">
-    <path
-       style="fill:#1a1a1a;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:0.37599999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 12.012265,5.6055669 10.869091,1.2079924"
-       id="path4894"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <g
-       id="g5513"
-       transform="translate(-7.1997469,-0.06307911)">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4754"
-         d="M 12.120566,6.1199094 19.924108,5.9425562 24.889998,10.509402 10.790417,9.6226353 Z"
-         style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccscccccccccccccccccccsssccssscccccccccccccccccc"
-         style="fill:#aa0000;stroke:none;stroke-width:0.29631296;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path6-9"
-         d="m 30.925122,14.715807 c 0.150421,-0.941042 -0.0056,-1.022202 -0.62861,-2.409677 C 30.127356,11.929418 29.680225,11.700118 29.318658,11.502877 27.428887,10.472062 25.430189,9.8329837 25.123551,9.8265709 24.162926,8.8699239 22.590339,7.0707393 20.479805,5.6315388 20.086098,5.3630672 18.697693,5.3214637 18.697693,5.3214637 c 0,0 -3.645845,-0.4365462 -6.362043,0.2095624 -0.234324,0.055703 -0.397184,0.036273 -0.593689,0.1396825 -0.03202,0.016842 -0.596586,0.6001015 -0.62861,0.6635303 -0.03129,0.061961 -0.216168,0.2637975 -0.279364,0.3492447 C 10.414823,7.2500554 9.9010187,7.8094032 9.5418084,8.429631 9.384085,8.7020427 9.3109994,8.9612817 9.1576426,9.2328822 9.0100403,9.4943226 8.4730195,9.6954636 8.3893496,10.175778 c -0.04018,0.23046 -0.3022728,0.144318 -0.3143248,0.488927 0.1197104,0.03696 0.1341586,0.0807 0.2793638,0.104764 -0.2099861,0.76358 -0.3388526,2.126644 -0.3499781,2.270266 2.716e-4,-7.8e-5 5.027e-4,-1.93e-4 7.733e-4,-2.71e-4 -0.00178,0.01742 -0.00197,0.01645 -7.733e-4,2.71e-4 -0.6570394,0.206279 -0.5960454,1.386859 -0.6574256,1.172931 0.078997,0.314208 0.296632,0.723481 0.3787956,1.061873 0.070374,0.28991 -0.1633238,0.413561 -0.1746419,0.698451 0.050995,0.02978 0.1001182,0.342638 0.1396829,0.384126 0.1661051,0.457213 1.4659312,0.871007 1.4659312,0.871007 l 0.1287895,1.55e-4 c -0.1106719,-0.328232 -0.170702,-0.679833 -0.170702,-1.045418 0,-1.806061 1.4640788,-3.270137 3.2701388,-3.270137 1.806059,0 3.270139,1.464076 3.270139,3.270137 0,0.368444 -0.061,0.722671 -0.173329,1.053144 l 6.640748,0.02127 c -0.155443,-0.380998 -0.241353,-0.797728 -0.241353,-1.234662 0,-1.80602 1.464077,-3.270099 3.270099,-3.270099 1.806061,0 3.270139,1.464079 3.270139,3.270099 0,0.439794 -0.08704,0.859149 -0.244445,1.242156 l 0.26855,3.47e-4 c 0,0 2.007472,0.186616 2.270032,-0.454006 0.107774,-0.120252 0.147717,-0.728581 0.139682,-1.082578 0.0039,-0.364155 0.07741,-0.29389 0.174642,-0.523887 0.09445,-0.223353 -0.139567,-0.386754 -0.104761,-0.488837 z M 16.151586,9.4894943 c -0.06405,0.044889 -0.0598,0.068728 -0.139721,0.1047968 -0.254372,0.1927587 -0.336931,-0.069877 -3.711136,-0.069877 0.0574,0.081895 -0.394981,0.01124 -0.03493,-0.7683307 0.489429,-1.0596329 1.235858,-2.0237737 1.194756,-2.0386846 0.947192,-0.2821227 1.247996,-0.3717956 2.69106,-0.3348663 -0.02928,0.8381727 -0.01734,1.7798619 -3.3e-5,3.1069623 z m 1.48938,0.232315 C 17.4963,6.9730081 17.366547,6.8829639 17.675896,6.439078 c 2.779918,0 1.837221,0.00942 1.837221,0.00942 1.271994,0.026081 3.482374,2.7540307 4.141432,3.657518 -1.85567,-0.1400534 -2.978847,-0.2327808 -6.013583,-0.3842067 z" />
-      <path
-         sodipodi:open="true"
-         d="m 10.520695,16.172659 a 1.8473057,1.8473057 0 0 1 1.846863,-1.847306 1.8473057,1.8473057 0 0 1 1.847748,1.846419 1.8473057,1.8473057 0 0 1 -1.845975,1.848192 1.8473057,1.8473057 0 0 1 -1.848635,-1.845532"
-         sodipodi:end="3.1406327"
-         sodipodi:start="3.1415927"
-         sodipodi:ry="1.8473057"
-         sodipodi:rx="1.8473057"
-         sodipodi:cy="16.172659"
-         sodipodi:cx="12.368001"
-         sodipodi:type="arc"
-         id="path3514-1-1"
-         style="fill:#666666;stroke:#000000;stroke-width:1.85782993;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:open="true"
-         d="m 23.308721,16.051691 a 1.8473057,1.8473057 0 0 1 1.846863,-1.847306 1.8473057,1.8473057 0 0 1 1.847748,1.846419 1.8473057,1.8473057 0 0 1 -1.845975,1.848192 1.8473057,1.8473057 0 0 1 -1.848635,-1.845532"
-         sodipodi:end="3.1406327"
-         sodipodi:start="3.1415927"
-         sodipodi:ry="1.8473057"
-         sodipodi:rx="1.8473057"
-         sodipodi:cy="16.051691"
-         sodipodi:cx="25.156027"
-         sodipodi:type="arc"
-         id="path3514-1-1-1"
-         style="fill:#666666;stroke:#000000;stroke-width:1.85782993;stroke-miterlimit:4;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/40-2.svg b/htdocs/public/symbols/svgicons/40-2.svg
deleted file mode 100755
index d91b55c6ddf61684b9c8f123ec83133c59b74a2b..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/40-2.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3007"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-427)">
-  <g id="g2984" transform="matrix(0.04041772,0,0,0.04041772,0.02960512,426.78712)">
-   <path inkscape:connector-curvature="0" id="path3123" d="m 587.001,191.775 c 0,-34.867 -24.173,-64.178 -56.635,-72.094 -0.487,-0.119 -0.977,-0.23 -1.468,-0.34 -1.321,0.132 -2.625,-0.138 -3.761,-0.734 -4.019,-0.676 -8.14,-1.047 -12.347,-1.047 -14.877,0 -29.225,4.381 -41.491,12.671 -3.054,2.063 -7.2,1.261 -9.263,-1.792 -0.774,-1.146 -1.145,-2.447 -1.144,-3.735 0.002,-2.139 1.03,-4.239 2.936,-5.526 14.481,-9.786 31.411,-14.959 48.962,-14.959 1.654,0 3.297,0.051 4.928,0.142 C 499.864,65.46 460.832,40.014 417.312,40.014 c -46.851,0 -87.649,29.456 -103.479,71.663 -2.983,7.955 -5.083,16.361 -6.166,25.111 -0.418,3.378 -3.293,5.852 -6.612,5.852 -0.207,0 -0.417,-0.019 -0.627,-0.039 -0.067,-0.006 -0.133,-0.004 -0.2,-0.012 -3.656,-0.452 -6.253,-3.783 -5.801,-7.439 1.036,-8.369 2.905,-16.456 5.507,-24.189 -42.585,1.412 -76.817,35.727 -78.098,78.348 8.087,0.308 15.9,2.767 22.695,7.162 1.975,1.276 3.044,3.421 3.043,5.609 -0.001,1.24 -0.342,2.495 -1.065,3.614 -2,3.095 -6.129,3.979 -9.224,1.978 -4.437,-2.869 -9.495,-4.561 -14.755,-4.959 -0.804,-0.062 -1.611,-0.097 -2.423,-0.097 -14.922,0 -27.461,10.372 -30.804,24.284 11.929,-3.955 24.376,-6.65 37.163,-7.951 5.847,-0.594 11.765,-0.901 17.736,-0.901 5.979,0 11.893,0.314 17.732,0.909 11.826,1.203 23.331,3.594 34.384,7.062 20.481,6.429 39.406,16.55 55.945,29.621 6.605,5.221 12.835,10.904 18.624,17.02 l 135.23,0 c 44.668,0 80.877,-36.205 80.885,-80.871 0,-0.006 -10e-4,-0.01 -10e-4,-0.014 z" fill="#b3b3b3" stroke="#808080" stroke-width="12.12"/>
-   <path inkscape:connector-curvature="0" id="path3125" d="m 521.806,465.719 c -1.138,0 -2.266,0.055 -3.387,0.139 -14.255,1.062 -27.023,8.777 -34.622,21.114 -2.721,4.414 -8.506,5.79 -12.921,3.07 -2.88,-1.773 -4.455,-4.852 -4.456,-8.002 0,-1.681 0.439,-3.382 1.385,-4.918 11.22,-18.215 30.377,-29.352 51.597,-30.136 -1.799,-60.006 -50.021,-108.336 -109.977,-110.315 3.667,10.895 6.302,22.287 7.761,34.077 0.637,5.147 -3.02,9.836 -8.166,10.473 -0.094,0.012 -0.187,0.009 -0.281,0.018 -0.296,0.027 -0.592,0.055 -0.884,0.055 -4.672,0 -8.72,-3.482 -9.308,-8.238 -1.525,-12.323 -4.483,-24.163 -8.688,-35.367 -9.626,-25.658 -25.811,-47.963 -46.402,-65.029 -2.799,-2.319 -5.68,-4.541 -8.637,-6.662 -25.652,-18.406 -57.028,-29.169 -90.619,-29.169 -2.87,0 -5.725,0.084 -8.565,0.239 -15.718,0.86 -30.94,4.069 -45.253,9.344 -38.31,14.117 -70.116,42.994 -87.554,81 2.307,-0.129 4.63,-0.201 6.969,-0.201 24.705,0 48.537,7.281 68.921,21.057 2.683,1.812 4.13,4.769 4.133,7.779 0.002,1.812 -0.52,3.645 -1.61,5.259 -2.904,4.298 -8.741,5.427 -13.038,2.522 -17.267,-11.669 -37.463,-17.836 -58.405,-17.836 -5.904,0 -11.693,0.5 -17.333,1.446 -1.631,0.87 -3.511,1.261 -5.415,1.056 -0.665,0.148 -1.328,0.304 -1.988,0.465 -45.703,11.139 -79.73,52.417 -79.73,101.501 0,0.011 -0.001,0.021 -0.001,0.031 0.017,62.868 50.986,113.828 113.86,113.828 l 286.408,0 106.817,0 c 29.816,0 53.992,-24.176 53.992,-53.997 0,-24.594 -20.009,-44.603 -44.603,-44.603 z" fill="#b3b3b3" stroke="#808080" stroke-width="12.12"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/41-1.svg b/htdocs/public/symbols/svgicons/41-1.svg
deleted file mode 100755
index 01d72c336746178d1bb839f0a4e194bd4696a048..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/41-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.0">
- <metadata id="metadata7"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-427)">
-  <path d="m 2.02217,427.02661 19.95566,0 c 1.10554,0 1.99556,0.89002 1.99556,1.99556 l 0,19.95566 c 0,1.10554 -0.89002,1.99556 -1.99556,1.99556 l -19.95566,0 c -1.10554,0 -1.99556,-0.89002 -1.99556,-1.99556 l 0,-19.95566 c 0,-1.10554 0.89002,-1.99556 1.99556,-1.99556 z" id="rect1872" inkscape:connector-curvature="0" fill="#ffffff" stroke="#000000" color="#000000" stroke-width="0.053"/>
-  <path d="m 2.02217,427.6918 19.95566,0 c 0.73703,0 1.33037,0.59334 1.33037,1.33037 l 0,19.95566 c 0,0.73703 -0.59334,1.33037 -1.33037,1.33037 l -19.95566,0 c -0.73703,0 -1.33037,-0.59334 -1.33037,-1.33037 l 0,-19.95566 c 0,-0.73703 0.59334,-1.33037 1.33037,-1.33037 z" id="rect2760" inkscape:connector-curvature="0" fill="#003f87" color="#000000" stroke-width="0.874"/>
-  <path d="m 9.3994964,448.96892 c -0.55432,-0.0491 -1.0531,-0.15264 -1.54365,-0.32051 -2.24285,-0.76753 -3.90777,-2.75864 -4.29589,-5.13754 -0.0227,-0.1391 -0.0497,-0.33168 -0.0601,-0.42796 -0.0254,-0.23544 -0.0253,-1.06434 1.6e-4,-1.2983 0.0844,-0.7763 0.28718,-1.49841 0.61462,-2.18815 0.62044,-1.30697 1.64696,-2.3749 2.90333,-3.02041 l 0.1815,-0.0933 0.008,0.0762 c 0.009,0.0799 0.13589,1.79645 0.13589,1.83443 0,0.012 -0.0528,0.0579 -0.11737,0.1019 -0.27345,0.18636 -0.60334,0.48288 -0.82746,0.74375 -0.6264,0.72911 -1.00129,1.55758 -1.14858,2.53826 -0.0272,0.18088 -0.0319,0.27279 -0.0327,0.63456 -9.1e-4,0.43481 0.0101,0.58496 0.065,0.88255 0.17981,0.97628 0.61247,1.81457 1.29901,2.51689 0.2386,0.24407 0.43905,0.41171 0.72347,0.60501 1.09616,0.74502 2.45454,0.97295 3.7336096,0.62648 0.31166,-0.0844 0.55719,-0.18331 0.92177,-0.37126 0.97597,-0.50315 1.78791,-1.40988 2.20111,-2.4581 0.12308,-0.31223 0.23107,-0.70745 0.27735,-1.01506 0.0138,-0.0916 0.0284,-0.16647 0.0324,-0.16638 0.004,9e-5 0.25818,0.52688 0.56475,1.17066 l 0.55741,1.1705 -0.0722,0.1379 c -0.74906,1.4311 -2.04845,2.56179 -3.56796,3.10474 -0.47439,0.16951 -0.88808,0.26665 -1.41561,0.33241 -0.21605,0.0269 -0.9226896,0.0398 -1.1381796,0.0207 z m 7.6796396,-2.17573 c -0.0148,-0.0349 -0.60256,-1.44683 -1.30615,-3.13772 l -1.27925,-3.07434 -3.18379,0 c -1.7510796,0 -3.1843596,-0.002 -3.1850696,-0.004 -7.1e-4,-0.002 -0.14103,-2.00908 -0.31182,-4.46017 l -0.31052,-4.45653 -0.05,-0.11157 c -0.10052,-0.22448 -0.15059,-0.43902 -0.1612,-0.69074 -0.0366,-0.86881 0.5664,-1.64103 1.41419,-1.81093 0.18205,-0.0365 0.46676,-0.0329 0.65837,0.008 0.51817,0.11126 0.9531896,0.45123 1.1925796,0.93199 0.134,0.26912 0.19062,0.50783 0.19095,0.80508 6.4e-4,0.56696 -0.25428,1.08325 -0.70774,1.43339 -0.2076796,0.16036 -0.5416896,0.30223 -0.7673996,0.32594 l -0.0909,0.01 0.006,0.0747 c 0.008,0.0899 0.19028,3.43538 0.19028,3.48791 l 0,0.0368 2.2265596,0 2.22656,0 0,0.8315 0,0.83149 -2.14328,0 -2.1432796,0 0.008,0.10576 c 0.005,0.0582 0.0228,0.31436 0.0405,0.56932 l 0.0323,0.46355 0.5910996,-0.008 c 1.33284,-0.0181 5.32569,-0.0381 5.33571,-0.0268 0.006,0.007 0.5766,1.35289 1.26814,2.99154 0.69154,1.63865 1.26241,2.97944 1.2686,2.97953 0.006,8e-5 0.43764,-0.15757 0.95876,-0.35035 0.52113,-0.19277 0.95082,-0.3471 0.95488,-0.34293 0.0188,0.0193 0.52465,1.27073 0.51683,1.27867 -0.009,0.009 -3.34455,1.35253 -3.39014,1.36552 -0.017,0.005 -0.0311,-0.011 -0.0506,-0.0566 z" id="path1938" inkscape:connector-curvature="0" fill="#ffffff"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/41-2.svg b/htdocs/public/symbols/svgicons/41-2.svg
deleted file mode 100755
index a50534a8c2bfe6c2a3228d8e514ec2e9b2d7f27a..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/41-2.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata5621"/>
- <g inkscape:groupmode="layer" id="layer1" inkscape:label="Lager">
-  <rect id="rect5627" width="19.622" height="19.622" x="2.189" y="2.189" fill="#ff0000" stroke="#ff0000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.904" rx="5.293"/>
- </g>
- <g inkscape:groupmode="layer" id="layer3" inkscape:label="Lager#2">
-  <path d="M 12,4.3728815 C 12,19.627118 12,19.627118 12,19.627118" id="path6162" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="1.5"/>
-  <path d="M 18.864407,5.1864406 C 5.237288,18.813559 5.237288,18.813559 5.237288,18.813559 l -0.1016949,0" id="path6168" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="1.5"/>
-  <path d="M 5.135593,5.1864412 C 18.762712,18.813559 18.762712,18.813559 18.762712,18.813559 l 0.101695,0" id="path6168-7" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="1.5"/>
-  <path d="M 19.627118,12 C 4.372882,12 4.372882,12 4.372882,12" id="path6162-2" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="1.5"/>
- </g>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Lager#1" opacity="0.94">
-  <rect id="rect6157" width="3.751" height="3.675" x="10.124" y="10.163" rx="0" ry="1.837" fill="#ffff00" stroke="#ffff00" stroke-linejoin="round" stroke-linecap="round" stroke-width="1.28"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/42-1.svg b/htdocs/public/symbols/svgicons/42-1.svg
deleted file mode 100755
index d24e1cb22904907293e467a7414e0c7ee7eca2c6..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/42-1.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="-0.258 -0.548 24.000001 24">
- <metadata id="metadata6439"/>
- <g id="g6421" transform="matrix(0.20244323,0,0,0.20244323,-0.93762632,-0.95857977)">
-  <path d="m 45.91646,26.082576 c 5.296144,0 9.570144,-4.273999 9.570144,-9.596798 0,-5.260218 -4.274,-9.5608715 -9.570144,-9.5608715 -5.286872,0 -9.570142,4.3006535 -9.570142,9.5608715 0,5.322799 4.28327,9.596798 9.570142,9.596798 z" id="path6427" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 57.189018,103.42945 h 45.550312 c 0,0 2.94243,0.19933 8.80064,-4.490712 l 9.98618,-7.61393 v 8.601312 l -10.18551,7.61393 c 0,0 -3.02355,2.46265 -8.12153,3.02355 H 53.368146 l 3.820872,-7.13415 z" id="path6429" inkscape:connector-curvature="0" fill="#1a1a1a" stroke="#1a1a1a" stroke-linejoin="round" stroke-width="1.156"/>
-  <polygon points="50.359,97.504 11.039,97.504 7.758,103.66 8.086,103.66 47.406,103.66 50.688,97.504 " id="polygon6431" transform="matrix(0.92339056,0,0,1.1777069,-3.0934674,-11.459588)" fill="#1a1a1a" stroke="#1a1a1a" stroke-linejoin="round" stroke-width="0.998"/>
-  <path d="m 50.841758,37.734093 c 0,-5.286874 -4.282112,-9.587527 -9.587527,-9.587527 -5.296143,0 -9.596797,4.300653 -9.596797,9.587527 l 0,23.458323 c 0,2.969086 1.457887,5.74 3.594888,7.496883 11.151042,0 26.275536,0.0012 31.189303,0.0012 l -15.599867,-5.93933 0,-5.830393 12.313245,0 c 0.597989,0.02665 1.222632,-0.05447 1.810192,-0.308266 2.353712,-0.878441 3.512605,-3.512607 2.60751,-5.830393 -0.679113,-1.810192 -2.381527,-2.887964 -4.165064,-2.915776 l -12.576314,-0.02665 0.01047,-10.105551" id="path6433" inkscape:connector-curvature="0" sodipodi:nodetypes="cssscccccccccc" fill="#1a1a1a"/>
-  <path d="m 39.820287,68.439774 -21.459232,0 -11.5970425,21.050138 c -0.253798,0.479794 -0.370846,1.014032 -0.370846,1.584207 0,1.928411 1.566824,3.503336 3.495223,3.503336 l 79.1130345,0 c 0,0 3.395546,0.543556 8.520178,-3.476681 L 118.0653,75.989967 110.30651,62.436707 c 0,0 -1.74761,-3.277351 -8.31158,-4.264728 L 86.485455,55.564468 78.162282,41.677447 78.081159,41.532585 c -1.213362,-1.384876 -3.313277,-1.529738 -4.699314,-0.334921 l 0,0.02667 c -0.987377,0.905075 -1.358223,2.372233 -0.814702,3.675989 l 6.193128,10.294451 0,0.0904 -7.750669,13.155757" id="path6433-2" inkscape:connector-curvature="0" sodipodi:nodetypes="cccsscccccccccccccc" fill="#aa0000"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/42-2.svg b/htdocs/public/symbols/svgicons/42-2.svg
deleted file mode 100755
index d0c494bb06d8ea65a5b30cd718b1d0078db85ecd..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/42-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24">
- <metadata id="metadata4746"/>
- <path d="m 10.85495,-4.55e-4 0,2.98997 -2.24649,-1.29879 -1.14046,1.96884 3.38695,1.96195 0,4.41268 -3.80458,-2.19831 -0.007,-3.93079 -2.27632,0.005 0.005,2.61135 -2.59759,-1.50073 -1.13816,1.97114 2.5907,1.49613 -2.24879,1.2942 1.13357,1.97343 3.39384,-1.95277 3.81835,2.20519 -3.80458,2.19601 -3.40761,-1.95966 -1.13357,1.97343 2.26256,1.30338 -2.59759,1.49843 1.13817,1.97113 2.5907,-1.49613 -0.005,2.59528 2.27632,0.005 0.007,-3.91473 3.81835,-2.20289 0,4.39202 -3.40072,1.97113 1.14046,1.96884 2.26026,-1.30797 0,2.99915 2.27633,0 0,-2.98997 2.24649,1.29879 1.14046,-1.96884 -3.38695,-1.96195 0,-4.41268 3.80458,2.19831 0.007,3.93079 2.27632,-0.005 -0.005,-2.61135 2.59759,1.50073 1.13816,-1.97114 -2.5907,-1.49613 2.24879,-1.2942 -1.13357,-1.97343 -3.39154,1.95277 -3.82065,-2.20519 3.80688,-2.1983 3.40531,1.96195 1.13357,-1.97343 -2.26256,-1.30338 2.59759,-1.49843 -1.13817,-1.97113 -2.5907,1.49613 0.005,-2.59528 -2.27632,-0.005 -0.007,3.91473 -3.81835,2.20289 0,-4.39202 3.40072,-1.97113 -1.14046,-1.96884 -2.26026,1.30797 0,-2.99915 -2.27633,0 z" id="rect2991" inkscape:connector-curvature="0" fill="#3d7dab"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/43-1.svg b/htdocs/public/symbols/svgicons/43-1.svg
deleted file mode 100755
index cb7e9efb8226355dd6d33617cb2d226f57a6be5e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/43-1.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata7115"/>
- <path d="M 12,-0.00134109 C 12,24.001341 12,24.001341 12,24.001341" id="path7119" inkscape:connector-curvature="0" fill="#cc0000" stroke="#cc0000" stroke-width="6.3"/>
- <path d="M 24.001341,12 C -0.001341,12 -0.001341,12 -0.001341,12" id="path7119-9" inkscape:connector-curvature="0" fill="#cc0000" stroke="#cc0000" stroke-width="6.3"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/43-2.svg b/htdocs/public/symbols/svgicons/43-2.svg
deleted file mode 100755
index b24a84242baf133efd7ab106ec513cd6adf45dd4..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/43-2.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3042"/>
- <path d="m 12,3.0113814 0,19.0069396 0,0" id="path3046" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-width="6"/>
- <path d="m 4.9636962,10.29703 14.0726078,0" id="path3816" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" fill="none" stroke="#000000" stroke-width="6"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/44-1.svg b/htdocs/public/symbols/svgicons/44-1.svg
deleted file mode 100755
index 0dead5ea5d86ee19687a102e91e9b42192cfbc37..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/44-1.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3204"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g4148">
-   <path id="path26" d="m 17.032497,1049.0732 c -1.35161,-0.044 -2.33959,-2.0678 -2.6015,-3.4568 l 1.54127,-0.3248 c 0.29019,1.1075 1.03171,1.7138 1.61281,1.8612 0.58133,0.1478 0.93023,0 1.32261,-0.1922 0.14546,1.0044 -0.5521,1.9794 -1.87519,2.1126" inkscape:connector-curvature="0" fill="#ff0000" fill-rule="evenodd"/>
-   <path sodipodi:nodetypes="cccccccccccc" id="path28" d="m 20.241957,1043.2306 c 0.2486,-0.657 0.29827,-1.651 -0.72988,-2.2415 -0.62982,-0.337 -1.37585,-0.3027 -1.95671,0.085 -0.66309,0.5392 -1.04431,1.2978 -1.29338,2.0897 l -1.72522,-0.017 c 0,-0.4546 0.0829,-0.9434 0.14949,-1.281 0.16613,-1.0112 0.99535,-3.1849 1.55885,-3.9771 0.61414,-0.8934 1.29362,-1.8879 3.2173,-2.1238 1.12749,-0.1343 2.75313,0.2866 3.48229,1.2477 0.74652,1.0111 0.99535,1.9884 0.84586,3.3364 -0.33154,1.3656 -1.75826,3.2022 -3.5486,2.8817 z" inkscape:connector-curvature="0" fill="#ff0000" fill-rule="evenodd"/>
-   <path id="path102" d="m 11.786527,1052.3619 c 1.33707,-0.8274 2.55796,-1.6106 3.42972,-2.9844 -0.61009,-0.724 -1.2929,-3.6336 -1.32214,-3.8697 l -1.46783,0.088 -0.4513,4.21 c -0.0289,0.029 -0.13034,0.015 -0.17416,0.015 l -0.26125,-4.3129 -1.52608,-0.059 c -0.3200194,1.4922 -1.1051494,3.2203 -1.4240494,3.7961 0.24629,0.6058 1.4240494,1.9357 3.1970894,3.1175" inkscape:connector-curvature="0" fill="#ff0000" fill-rule="evenodd"/>
-   <path id="path112" d="m 6.8843676,1048.8709 c 1.3521801,-0.044 2.3399001,-2.068 2.60188,-3.4569 l -1.54084,-0.3246 c -0.29067,1.1077 -1.03197,1.7135 -1.61288,1.8613 -0.5817096,0.1479 -0.9303196,0 -1.3233996,-0.1921 -0.14512,1.0047 0.55229,1.9794 1.8752396,2.1123" inkscape:connector-curvature="0" fill="#ff0000" fill-rule="evenodd"/>
-   <path id="path128" d="m 13.857277,1043.1636 c 0.029,0 0.11645,0 0.13119,-0.045 0.0582,-0.3696 0.0582,-0.7977 0.20344,-1.1961 0.029,-0.2809 0.14474,-0.591 0.18871,-0.8418 0.26143,-0.7539 0.43612,-1.3295 0.72631,-2.0384 0.97443,-2.0685 1.73021,-3.7968 1.11988,-6.0567 -0.30564,-1.0931 -1.55553,-2.4371 -1.99069,-2.7332 -0.4221,-0.2797 -1.8466,-1.3143 -2.00601,-1.8754 -0.0587,-0.015 -0.14557,-0.015 -0.18977,-0.015 -0.36309,0.7831 -1.42415,1.3886 -1.91833,1.8317 -0.4797793,0.4137 -1.3520893,1.078 -1.9625993,2.7621 -0.59603,1.6544 0.0728,4.4316 0.77037,6.0864 0.34899,0.8563 0.71245,1.7573 0.88709,2.6733 0.0725,0.4873 0.1883493,0.9599 0.2332893,1.4625 l 1.43808,0.029 0.63937,-11.5212 0.17454,0.014 0.11596,11.4782 1.43917,-0.015" inkscape:connector-curvature="0" fill="#ff0000" fill-rule="evenodd"/>
-   <path sodipodi:nodetypes="cccccccccccc" id="path182" d="m 3.7584081,1043.2478 c -0.24919,-0.6573 -0.2982901,-1.6518 0.7295199,-2.242 0.63046,-0.3365 1.37604,-0.3028 1.9571096,0.085 0.66307,0.5393 1.04417,1.2979 1.29334,2.0906 l 1.7243901,-0.017 c 0,-0.4716 -0.0825,-0.9439 -0.14937,-1.2806 -0.14909,-1.0117 -0.97814,-3.1857 -1.55867,-3.9778 -0.6304601,-0.8597 -1.29333,-1.8876 -3.2169596,-2.1238 -1.12733,-0.134 -2.75275,0.2869 -3.48291,1.2473 -0.74578007,1.011 -0.99469007,1.9885 -0.84560007,3.3373 0.33209,1.3649 1.75810007,3.2021 3.54915007,2.8818 z" inkscape:connector-curvature="0" fill="#ff0000" fill-rule="evenodd"/>
-   <path id="path184" d="m 11.900347,1043.5337 c 1.27696,0 2.45412,0.1019 3.28382,0.2195 0.84514,0.1348 1.40936,0.169 1.37609,0.5398 -0.0328,0.3703 -0.53095,0.3878 -1.37609,0.5225 -0.8297,0.1344 -2.00686,0.2362 -3.28382,0.2362 -1.19373,0 -2.3214293,-0.1018 -3.1343193,-0.2026 -0.92859,-0.1185 -1.44255,-0.1683 -1.54196,-0.5561 -0.0998,-0.3878 0.59676,-0.4552 1.54196,-0.5732 0.79654,-0.1014 1.9405893,-0.1861 3.1343193,-0.1861 z m 0,0.3209 c 1.09503,0 2.12282,0.051 2.83582,0.1179 0.74627,0.068 1.22731,0.1015 1.19404,0.3205 -0.0164,0.2183 -0.44777,0.2356 -1.19404,0.3201 -0.713,0.084 -1.74079,0.1344 -2.83582,0.1344 -1.04426,0 -2.0223993,-0.05 -2.7193293,-0.1344 -0.81216,-0.067 -1.2604,-0.085 -1.34358,-0.3201 -0.0827,-0.2365 0.51433,-0.2527 1.34358,-0.3375 0.67975,-0.068 1.6750693,-0.1009 2.7193293,-0.1009" inkscape:connector-curvature="0" fill="#ff0000" fill-rule="evenodd"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/44-2.svg b/htdocs/public/symbols/svgicons/44-2.svg
deleted file mode 100755
index 928409b7c79afb07bfad1cef3a05cebbe3c5b5df..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/44-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3408"/>
- <path d="m 11.98881,23.244115 c 3.22297,-1.26105 5.49011,-3.61614 5.63141,-6.09914 0.53801,0.75934 6.35191,1.92593 6.37978,-5.66883 -0.1154,-3.8627 -2.07478,-6.47315 -5.96851,-5.25496 0.49363,-4.76376 -2.77008,-5.27331 -6.00526,-5.4653 -3.4952,0.14196 -6.46711,0.88196 -6.06172,5.48174 C 3.09054,5.045855 0.11669,6.723545 0,11.274775 c 0.041,8.24728 6.12254,6.38075 6.37611,5.87956 0.21597,3.8362 5.1276,5.95378 5.6127,6.08978 z" id="path4245" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc" fill="#01a850"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/45-1.svg b/htdocs/public/symbols/svgicons/45-1.svg
deleted file mode 100755
index c106a47ffc805f3df9af33e0a9cba74d735f5c9c..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/45-1.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="24" height="24">
- <metadata id="metadata3031"/>
- <g transform="translate(0,-1028.3622)" id="layer1">
-  <g transform="translate(-922.28571,-6.2856999)" id="g3047">
-   <path d="m 942.53375,1050.0898 -8.24601,-7.3025 -8.25007,7.3055 0,6.86 c 0,0.27 0.21777,0.4862 0.4872,0.4862 l 5.90963,0 0,-4.5773 c 0,-0.2694 0.21625,-0.4872 0.48619,-0.4872 l 2.72953,0 c 0.26994,0 0.4862,0.2178 0.4862,0.4872 l 0,4.5773 5.91114,0 c 0.26943,0 0.48619,-0.2162 0.48619,-0.4862 z" id="rect2391" fill="#ffff00" stroke="#000000" stroke-width="2.026"/>
-   <path d="m 934.24043,1037.3781 -11.70152,10.3615 1.2326,1.3902 10.51643,-9.3126 10.51441,9.3126 1.23016,-1.3902 -11.69899,-10.3615 -0.0456,0.053 -0.0476,-0.053 z" id="path2399" stroke="#000000" stroke-linejoin="round" stroke-width="0.506"/>
-   <path d="m 926.03797,1038.8696 2.96628,0 -0.0258,1.7569 -2.94045,2.6563 0,-4.4132 z" id="rect2404"/>
-   <path d="m 940.37148,1034.8439 -0.95272,0 0.008,5.9798 0.94442,0.8579 z" id="rect2404-4"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/45-2.svg b/htdocs/public/symbols/svgicons/45-2.svg
deleted file mode 100755
index 89a49c38322e7ed3d5cc33ff99f78b7abdcd87d2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/45-2.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3010"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g3032" transform="translate(469.14286,673.7143)">
-   <path sodipodi:nodetypes="cccsscsssscssc" id="rect2391" d="m -448.83166,372.26523 -8.30915,-5.39133 -8.31324,5.39358 0,5.06465 c 0,0.19929 0.21944,0.35894 0.49093,0.35894 l 5.95488,0 0,-3.37934 c 0,-0.19892 0.2179,-0.3597 0.48991,-0.3597 l 2.75043,0 c 0.27201,0 0.48992,0.16078 0.48992,0.3597 l 0,3.37934 5.9564,0 c 0.2715,0 0.48992,-0.15965 0.48992,-0.35894 z" inkscape:connector-curvature="0" fill="#00ffff" stroke="#000000" stroke-width="1.747"/>
-   <path id="path2399" d="m -457.18848,362.88042 -11.79112,7.64972 1.24204,1.02636 10.59695,-6.87536 10.59492,6.87536 1.23958,-1.02636 -11.78857,-7.64972 -0.046,0.0389 -0.048,-0.0389 z" inkscape:connector-curvature="0" stroke="#000000" stroke-linejoin="round" stroke-width="0.437"/>
-   <path id="rect2404" d="m -465.45375,363.98157 h 2.98899 l -0.026,1.29708 -2.96297,1.96113 v -3.25821 z" inkscape:connector-curvature="0"/>
-   <path sodipodi:nodetypes="cccccc" id="rect2404-6" d="m -454.94958,359.09746 -1.74869,-0.0219 0.0221,3.249 1.65285,1.02305 0.0247,-4.2361 z" inkscape:connector-curvature="0"/>
-   <path inkscape:connector-curvature="0" id="path5724" d="m -461.04865,358.36317 c 11.01724,-0.0285 11.01724,-0.0285 11.01724,-0.0285 l 0,0" fill="none" stroke="#000000" stroke-width="1.021"/>
-   <path inkscape:connector-curvature="0" id="path5744" d="m -458.37699,355.42708 c -5.53612,5.61787 -5.56503,5.64721 -5.56503,5.64721" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="1.392"/>
-   <path inkscape:connector-curvature="0" id="path5744-7" d="m -447.04557,355.42708 c -5.53612,5.61787 -5.56503,5.64721 -5.56503,5.64721" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="1.392"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/45-3.svg b/htdocs/public/symbols/svgicons/45-3.svg
deleted file mode 100755
index 7890b443f856e31c6eea7e1d3eff0078d2da04b6..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/45-3.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24"
-   height="24"
-   version="1.1"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="45-3.svg">
-  <defs
-     id="defs16" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="6.9532167"
-     inkscape:cx="-13.752296"
-     inkscape:cy="17.943936"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer1" />
-  <metadata
-     id="metadata3010">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1028.3622)">
-    <g
-       id="g3351"
-       transform="translate(0,-7.9875566)">
-      <path
-         sodipodi:nodetypes="cccsccsc"
-         id="rect2391"
-         d="m 20.3112,1045.9795 -8.30915,-5.3913 -8.31324,5.3936 0,13.0985 c 0,0.1993 0.21944,0.359 0.49093,0.359 l 15.64154,0 c 0.2715,0 0.48992,-0.1597 0.48992,-0.359 z"
-         inkscape:connector-curvature="0"
-         style="fill:#00ffff;stroke:#000000;stroke-width:1.74699998" />
-      <path
-         id="path2399"
-         d="m 11.95438,1036.5947 -11.79112,7.6497 1.24204,1.0264 10.59695,-6.8754 10.59492,6.8754 1.23958,-1.0264 -11.78857,-7.6497 -0.046,0.039 -0.048,-0.039 z"
-         inkscape:connector-curvature="0"
-         style="stroke:#000000;stroke-width:0.43700001;stroke-linejoin:round" />
-      <path
-         id="rect2404"
-         d="m 3.68911,1037.6959 2.98899,0 -0.026,1.297 -2.96297,1.9612 0,-3.2582 z"
-         inkscape:connector-curvature="0" />
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/46-1.svg b/htdocs/public/symbols/svgicons/46-1.svg
deleted file mode 100755
index 041138708f7a598d145ab3863520d86fca7f39db..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/46-1.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata5085"/>
- <path d="M 21.661017,2.338983 C 2.338983,21.661017 2.338983,21.661017 2.338983,21.661017" id="path5089" inkscape:connector-curvature="0" stroke="#ff0000" fill-opacity="0" stroke-linecap="round" stroke-width="3"/>
- <path d="M 2.3389831,2.3389831 C 21.661017,21.661017 21.661017,21.661017 21.661017,21.661017" id="path5089-8" inkscape:connector-curvature="0" stroke="#ff0000" fill-opacity="0" stroke-linecap="round" stroke-width="3"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/46-2.svg b/htdocs/public/symbols/svgicons/46-2.svg
deleted file mode 100755
index dfc2bf6efb02138745108e7347a8a8be57e3ac32..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/46-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata4472"/>
- <g inkscape:groupmode="layer" id="layer3" inkscape:label="Lager">
-  <path sodipodi:type="arc" id="path4476" sodipodi:cx="11.505466" sodipodi:cy="12.458579" sodipodi:rx="11.397602" sodipodi:ry="11.397602" d="m 0.10786438,12.458579 a 11.397602,11.397602 0 1 1 5.25e-6,0.01094" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" transform="translate(0.49453354,-0.45857906)" fill="#cccccc" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="1.2"/>
-  <text x="11.984" y="20.16" id="text5005" sodipodi:linespacing="0%" fill="#ff0000" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" letter-spacing="0" font-size="22"><tspan sodipodi:role="line" id="tspan5007" x="11.984" y="20.16">?</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/47-1.svg b/htdocs/public/symbols/svgicons/47-1.svg
deleted file mode 100755
index 6084f496862758fe17b4480a8f6d5e0245c1b32d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/47-1.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata5697"/>
- <defs id="defs5695">
-  <linearGradient inkscape:collect="always" id="linearGradient4480">
-   <stop id="stop4482" stop-color="#ff8080"/>
-   <stop offset="1" id="stop4484" stop-color="#ff8080" stop-opacity="0"/>
-  </linearGradient>
-  <radialGradient inkscape:collect="always" xlink:href="#linearGradient4480" id="radialGradient4488" cx="10.525" cy="10.169" r="4.856" gradientTransform="matrix(-0.00522198,0.93192464,-0.9999843,-0.00560335,20.74972,0.41757067)" gradientUnits="userSpaceOnUse"/>
- </defs>
- <path sodipodi:type="arc" id="path5701" sodipodi:cx="12" sodipodi:cy="12" sodipodi:rx="3.3559322" sodipodi:ry="3.3559322" d="m 8.6440678,12 a 3.3559322,3.3559322 0 1 1 1.5e-6,0.0032" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" fill="#ff0000" stroke="#ff0000" stroke-linejoin="round" stroke-linecap="round" stroke-width="3"/>
- <path sodipodi:type="arc" id="path5701-9" sodipodi:cx="12" sodipodi:cy="12" sodipodi:rx="4.8559928" sodipodi:ry="4.8559937" d="m 7.1440072,12 a 4.8559928,4.8559937 0 0 1 4.8548278,-4.8559936 4.8559928,4.8559937 0 0 1 4.857157,4.8536626 4.8559928,4.8559937 0 0 1 -4.852496,4.858323 4.8559928,4.8559937 0 0 1 -4.8594866,-4.85133" sodipodi:start="3.1415927" sodipodi:end="3.1406327" sodipodi:open="true" fill="url(#radialGradient4488)" stroke="#ff6600" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/47-2.svg b/htdocs/public/symbols/svgicons/47-2.svg
deleted file mode 100755
index 3ca935a54cf03773f89fdf53f9c83a45a92ab2a3..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/47-2.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata5697"/>
- <defs id="defs5695">
-  <linearGradient inkscape:collect="always" id="linearGradient4184">
-   <stop id="stop4186" stop-color="#d45500"/>
-   <stop offset="1" id="stop4188" stop-color="#d45500" stop-opacity="0"/>
-  </linearGradient>
-  <radialGradient inkscape:collect="always" xlink:href="#linearGradient4184" id="radialGradient4190" cx="-0.467" cy="8.03" r="4.856" gradientTransform="matrix(-0.00522206,0.92145355,-0.99998394,-0.0056671,19.547066,11.382745)" gradientUnits="userSpaceOnUse"/>
- </defs>
- <path sodipodi:type="arc" id="path5701" sodipodi:cx="12" sodipodi:cy="12" sodipodi:rx="3.3559322" sodipodi:ry="3.3559322" d="m 8.6440678,12 a 3.3559322,3.3559322 0 1 1 1.5e-6,0.0032" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="3"/>
- <path sodipodi:type="arc" id="path5701-9" sodipodi:cx="12" sodipodi:cy="12" sodipodi:rx="4.8559928" sodipodi:ry="4.8559937" d="m 7.1440072,12 a 4.8559928,4.8559937 0 0 1 4.8548278,-4.8559936 4.8559928,4.8559937 0 0 1 4.857157,4.8536626 4.8559928,4.8559937 0 0 1 -4.852496,4.858323 4.8559928,4.8559937 0 0 1 -4.8594866,-4.85133" sodipodi:start="3.1415927" sodipodi:end="3.1406327" sodipodi:open="true" fill="url(#radialGradient4190)" stroke="#ff6600" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/48-1.svg b/htdocs/public/symbols/svgicons/48-1.svg
deleted file mode 100755
index e2ec2e7d75a9a9a053b7c1db7b4605efbf738427..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/48-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="11.994" y="20.372" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="11.994" y="20.372">0</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/48-2.svg b/htdocs/public/symbols/svgicons/48-2.svg
deleted file mode 100755
index 6c871318314df8e41e6b8cd8fb52ac3a6664f036..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/48-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3116"/>
- <path sodipodi:type="arc" id="path3120" sodipodi:cx="11.694915" sodipodi:cy="12.101695" sodipodi:rx="11.288136" sodipodi:ry="11.288136" d="m 0.40677929,12.101695 a 11.288136,11.288136 0 1 1 5.2e-6,0.01084" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" transform="matrix(1.0191414,0,0,1.0191414,0.08122772,-0.33333887)" fill="#ccd5cc" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.973"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/49-1.svg b/htdocs/public/symbols/svgicons/49-1.svg
deleted file mode 100755
index 04796fadcc3390ceab564ef5ee7267ed5e1343bb..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/49-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#552200" stroke="#552200" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="11.489" y="20.384" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="11.489" y="20.384">1</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/49-2.svg b/htdocs/public/symbols/svgicons/49-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/49-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/50-1.svg b/htdocs/public/symbols/svgicons/50-1.svg
deleted file mode 100755
index 61d4e6506accf3be504e07e5738593d5c6899096..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/50-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#d40000" stroke="#d40000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.08" y="20.535" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.08" y="20.535">2</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/50-2.svg b/htdocs/public/symbols/svgicons/50-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/50-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/51-1.svg b/htdocs/public/symbols/svgicons/51-1.svg
deleted file mode 100755
index a39c7f406dd26015dad4e7856454b3d12cd675ee..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/51-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#ff6600" stroke="#ff6600" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.14" y="20.372" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.14" y="20.372">3</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/51-2.svg b/htdocs/public/symbols/svgicons/51-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/51-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/52-1.svg b/htdocs/public/symbols/svgicons/52-1.svg
deleted file mode 100755
index 348670d23f0e9d7d48699383a0143a1c6f548978..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/52-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#ffff00" stroke="#ffff00" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.14" y="20.372" id="text6841" sodipodi:linespacing="0%" fill="#808080" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.14" y="20.372">4</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/52-2.svg b/htdocs/public/symbols/svgicons/52-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/52-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/53-1.svg b/htdocs/public/symbols/svgicons/53-1.svg
deleted file mode 100755
index 913c938a8580fa5e0019f1e9e927374d7a4b69ff..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/53-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#00d400" stroke="#00d400" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.14" y="20.372" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.14" y="20.372">5</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/53-2.svg b/htdocs/public/symbols/svgicons/53-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/53-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/54-1.svg b/htdocs/public/symbols/svgicons/54-1.svg
deleted file mode 100755
index 176dfaa65f76844fec33deb239f100b0035a9760..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/54-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#0000ff" stroke="#0000ff" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.14" y="20.372" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.14" y="20.372">6</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/54-2.svg b/htdocs/public/symbols/svgicons/54-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/54-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/55-1.svg b/htdocs/public/symbols/svgicons/55-1.svg
deleted file mode 100755
index 57a21cef5572643e0b0a94d7134c1e176cc984b3..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/55-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#ff00ff" stroke="#ff00ff" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.14" y="20.372" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.14" y="20.372">7</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/55-2.svg b/htdocs/public/symbols/svgicons/55-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/55-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/56-1.svg b/htdocs/public/symbols/svgicons/56-1.svg
deleted file mode 100755
index e84f6200f570a07f4041b74a0f2f91625197403c..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/56-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#0000ff" stroke="#0000ff" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.14" y="20.372" id="text6841" sodipodi:linespacing="0%" fill="#ffffff" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.14" y="20.372">8</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/56-2.svg b/htdocs/public/symbols/svgicons/56-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/56-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/57-1.svg b/htdocs/public/symbols/svgicons/57-1.svg
deleted file mode 100755
index aa1d4ea786c223777d295f8ba065ce5242652d16..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/57-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata6326"/>
- <g inkscape:groupmode="layer" id="layer4" inkscape:label="Lager">
-  <rect id="rect6331" width="23.551" height="23.552" x="0.224" y="0.224" fill="#ffffff" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.449" rx="5.885"/>
-  <text x="12.14" y="20.372" id="text6841" sodipodi:linespacing="0%" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="23"><tspan sodipodi:role="line" id="tspan6843" x="12.14" y="20.372">9</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/57-2.svg b/htdocs/public/symbols/svgicons/57-2.svg
deleted file mode 100755
index 804c3f8bded6e598a1678c9b872e728f7038fc3a..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/57-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="-0.258 -0.548 24.000001 24">
- <metadata id="metadata7316"/>
- <path inkscape:connector-curvature="0" id="path7310" d="m 11.279486,6.517982 c 0,0.315832 -0.249759,0.561627 -0.567706,0.561627 H 4.7712145 c -0.320062,0 -0.567707,-0.245795 -0.567707,-0.561627 V 1.508528 c 0,-0.315833 0.247909,-0.561628 0.567707,-0.561628 H 10.71178 c 0.317947,0 0.567706,0.245795 0.567706,0.561628 v 5.009454 z m 6.925331,0.639859 C 17.453161,6.992656 17.180672,6.60652 17.180672,6.251308 V 4.956789 c 0,0 0.499783,0.111533 0.619509,0.142455 0.24368,0.06396 0.398557,0.437673 0.404636,0.764078 0.0082,0.32614 0,1.294519 0,1.294519 z m 1.513355,7.8649 c 0,-0.01242 -0.208529,-1.590001 -0.208529,-1.590001 V 6.148232 c 0,-0.780464 -0.256102,-1.414508 -0.784693,-1.947063 L 15.35122,0.843825 c -0.233373,0 -0.87746,0.642238 -0.87746,0.642238 0,0.233372 1.674575,1.895526 1.674575,1.895526 l -0.04969,2.826638 c 0,1.00353 0.815616,1.817031 1.82311,1.817031 l 0.452209,0.0061 -0.160956,5.401668 0.22518,1.852181 1.013837,5.465628 c 0.03727,0.887768 -0.774386,1.416359 -1.414509,1.416359 -0.59255,0 -1.280247,-0.489475 -1.280247,-1.121141 l 0.01242,-9.578592 c 0,-1.164485 -0.945649,-2.110134 -2.110134,-2.110134 0,0 -2.025559,0 -2.035867,0 0.142455,-0.0082 0.148534,-6.272785 0.148534,-7.602719 0,-0.156992 0,-0.245795 0,-0.245795 0,-1.133563 -0.925033,-2.056482 -2.060711,-2.056482 H 4.7712105 c -1.135678,0 -2.060711,0.922919 -2.060711,2.056482 v 21.711333 l 10.0617225,0.167299 0.01031,-12.684062 h 1.899755 c 0.435558,0 0.790771,0.355213 0.790771,0.790772 v 9.551898 c 0,1.282361 1.197522,2.405616 2.564458,2.405616 1.290554,0 2.735985,-1.026259 2.735985,-2.405616 -0.02273,-0.318212 -1.055331,-6.023291 -1.055331,-6.023291 z" fill="#000080"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/58-1.svg b/htdocs/public/symbols/svgicons/58-1.svg
deleted file mode 100755
index d6a9fec5607f59dcbffd59c7f6ae3e4b4552aa56..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/58-1.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" height="24" width="24" version="1.1">
- <metadata id="metadata3"/>
- <defs id="defs3">
-  <linearGradient id="linearGradient19763">
-   <stop id="stop19764" stop-opacity="0.741"/>
-   <stop id="stop19765" offset="1" stop-color="#ffffff" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient29186">
-   <stop id="stop29187" stop-color="#ffffff"/>
-   <stop id="stop29188" offset="1" stop-color="#ffffff" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient gradientTransform="matrix(-0.345461,-1.103135,0.825546,-0.25853,-265.0855,1483.115)" gradientUnits="userSpaceOnUse" id="linearGradient30536" inkscape:collect="always" x1="78.65" x2="122.42" xlink:href="#linearGradient29186" y1="743.14" y2="713.55"/>
-  <linearGradient gradientTransform="matrix(1.100206,-1.253837,0.450605,0.395393,-311.0192,864.0529)" gradientUnits="userSpaceOnUse" id="linearGradient30535" inkscape:collect="always" x1="82.56" x2="94.62" xlink:href="#linearGradient29186" y1="1126.68" y2="1102.49"/>
-  <linearGradient id="linearGradient17250">
-   <stop id="stop17251" stop-color="#dc0000"/>
-   <stop id="stop17252" offset="1" stop-color="#ffb200"/>
-  </linearGradient>
-  <linearGradient id="linearGradient26051">
-   <stop id="stop26052" stop-color="#ffffff" stop-opacity="0.449"/>
-   <stop id="stop26053" offset="1" stop-color="#ffffff" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient29186" id="linearGradient4463" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.04580023,0,0,0.07975769,-1.6635904,480.27262)" x1="198.88" y1="246.21" x2="342.54" y2="403.09"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient4466" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.03648159,0,0,0.10013055,-3.162027,482.08065)" x1="349.43" x2="390.32"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient4470" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.0533835,0,0,0.09296341,72.273472,478.53617)" x1="-1131.03" y1="404.58" x2="-1102.73" y2="306.76"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient4473" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.04039753,0,0,0.09042433,-3.162027,481.96995)" x1="533.78" x2="572.41"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient29186" id="linearGradient4476" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.05330894,0,0,0.06852355,-1.5727754,480.53091)" x1="501.4" y1="384.4" x2="317.14" y2="485.78"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient4479" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.06213546,0,0,0.07986921,72.273472,478.53617)" x1="-916.9" y1="438.47" x2="-857.96" y2="362.16"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient29186" id="linearGradient4498" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.05403741,0,0,0.06759984,-1.9814393,481.34268)" x1="9.655" y1="256.78" x2="323.1" y2="500.8"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient4501" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.04069374,0,0,0.08976607,-3.162027,482.08065)" x1="468.41" x2="502.45"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient29186" id="linearGradient4504" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.0403567,0,0,0.09051581,-1.4250417,481.04359)" x1="110.45" y1="244.05" x2="239.46" y2="376.9"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient4512" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.04703865,0,0,0.10550269,72.273472,478.53617)" x1="-1308.2" y1="330.2" x2="-1335.04" y2="272.82"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient4515" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.06298454,0,0,0.07879257,72.273472,478.53617)" x1="-1006.61" y1="448.68" x2="-953.88" y2="299.89"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient3037" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.0547431,0,0,0.13541198,-47.754626,481.62834)" x1="349.43" x2="390.32"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient3041" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.08010556,0,0,0.12571947,65.441451,476.83495)" x1="-1131.03" y1="404.58" x2="-1102.73" y2="306.76"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient3044" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.06061923,0,0,0.12228573,-47.754626,481.47863)" x1="533.78" x2="572.41"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient3050" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.09323846,0,0,0.10801147,65.441451,476.83495)" x1="-916.9" y1="438.47" x2="-857.96" y2="362.16"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient3054" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.06106371,0,0,0.12139553,-47.754626,481.62834)" x1="468.41" x2="502.45"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient3058" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.07058468,0,0,0.14267702,65.441451,476.83495)" x1="-1308.2" y1="330.2" x2="-1335.04" y2="272.82"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient3064" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.09451257,0,0,0.10655547,100.83342,471.1867)" x1="-1006.61" y1="448.68" x2="-953.88" y2="299.89"/>
-  <linearGradient y2="299.89" x2="-953.88" y1="448.68" x1="-1006.61" gradientTransform="matrix(0.09451257,0,0,0.10655547,65.441451,476.83495)" gradientUnits="userSpaceOnUse" id="linearGradient3129" xlink:href="#linearGradient17250" inkscape:collect="always"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient3037-6" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.0547431,0,0,0.13541198,-74.716956,479.69588)" x1="349.43" x2="390.32"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient3041-8" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.08010556,0,0,0.12571947,38.479121,474.90249)" x1="-1131.03" y1="404.58" x2="-1102.73" y2="306.76"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient3044-9" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.06061923,0,0,0.12228573,-74.716956,479.54617)" x1="533.78" x2="572.41"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient3050-1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.09323846,0,0,0.10801147,38.479121,474.90249)" x1="-916.9" y1="438.47" x2="-857.96" y2="362.16"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient26051" id="linearGradient3054-3" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.06106371,0,0,0.12139553,-74.716956,479.69588)" x1="468.41" x2="502.45"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient17250" id="linearGradient3058-8" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.07058468,0,0,0.14267702,38.479121,474.90249)" x1="-1308.2" y1="330.2" x2="-1335.04" y2="272.82"/>
-  <linearGradient y2="299.89" x2="-953.88" y1="448.68" x1="-1006.61" gradientTransform="matrix(0.09451257,0,0,0.10655547,38.479121,474.90249)" gradientUnits="userSpaceOnUse" id="linearGradient3129-0" xlink:href="#linearGradient17250" inkscape:collect="always"/>
- </defs>
- <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" transform="translate(0,-497.11258)">
-  <g id="g4065" transform="translate(62.335816,-3.7180513)">
-   <path d="m -61.143517,517.67383 c 1.946549,4.21283 5.026163,6.4469 10.546224,6.70223 6.07207,1.42555 11.708343,-1.48938 10.110431,-6.06392 -0.726325,0.97874 -1.19117,1.51066 -2.44045,1.78726 0.493901,-2.53196 -2.672871,-2.95749 -1.133064,-5.68094 1.074961,-1.68087 1.714124,-3.74474 -0.174318,-5.42561 -0.784429,1.91492 -1.743176,3.19154 -3.660672,4.59581 0.20337,-2.34046 1.88844,-4.23411 0.871588,-6.4469 0.14527,-1.48939 -3.195826,-1.44683 -3.224879,-6.0001 -2.120865,1.95748 -3.021507,3.46814 -2.701925,6.44691 -0.784431,2.40429 -2.701924,3.27666 -2.353289,5.87243 -0.290529,-1.44683 -0.4939,-2.70216 -0.08716,-3.76601 -0.232423,-1.31916 -0.464847,-2.44685 -2.26613,-3.38303 0.552007,1.63832 1.191172,4.10645 -0.697271,4.72347 -0.522953,0.78725 -3.13772,3.48942 -0.261477,7.72353 -0.842535,-0.36172 -1.685073,-0.46811 -2.527608,-1.08513 z" id="path15991-0" inkscape:connector-curvature="0" stroke-opacity="0.504" fill="url(#linearGradient3129-0)" fill-rule="evenodd" stroke="#ffff00" stroke-width="0.186"/>
-   <path d="m -51.207404,523.73776 c -4.619421,-3.57453 -5.403851,-6.06393 -2.35329,-8.42567 3.428249,-4.46815 2.585713,-7.27671 0.08715,-9.9576 2.35329,5.93627 -2.789085,9.76611 -4.445103,11.48953 -0.987799,-2.23407 -0.145265,-3.19152 1.220225,-5.93625 -2.672873,2.12769 -4.299839,4.7022 -3.312038,7.14905 1.801284,3.6809 6.043015,4.48942 8.803047,5.68094 z" id="path15990-3" inkscape:connector-curvature="0" stroke-opacity="0.504" fill="url(#linearGradient3058-8)" fill-rule="evenodd" stroke="#ffff00" stroke-width="0.186"/>
-   <path d="m -45.601295,510.23227 c -0.619226,-1.31895 -0.113908,-1.6014 0.428512,-2.17763 0.559547,-0.15959 0.388044,-0.71607 0.693378,-1.95535 0.462312,1.38324 1.703436,2.01216 -1.12189,4.13298 z" id="path15994-8" inkscape:connector-curvature="0" stroke-opacity="0.504" fill="#ffd700" fill-rule="evenodd" stroke="#ffff00" stroke-width="0.186"/>
-   <path d="m -44.905453,505.88237 c -0.18828,0.58799 -0.103164,1.236 -0.452738,1.78444 -0.819061,0.45825 -1.17621,1.30976 -0.817056,2.03238 0.111507,0.60563 0.370172,0.71013 0.828717,0.15707 0.979108,-0.73786 1.895208,-1.79505 1.337706,-2.85229 -0.251547,-0.53926 -0.471814,-1.08672 -0.752006,-1.61894 -0.04821,0.16578 -0.09641,0.33155 -0.144625,0.49734 z" id="path28563-9" inkscape:connector-curvature="0" fill="url(#linearGradient3054-3)" fill-rule="evenodd"/>
-   <path d="m -41.619927,518.31214 c 1.597912,-1.12767 1.27833,-1.61705 1.133065,-2.42557 -0.464848,-0.38299 0.116219,-0.89363 0.69727,-2.29791 -1.481701,1.25534 -3.224879,1.42556 -1.830335,4.72348 z" id="path15993-42" inkscape:connector-curvature="0" stroke-opacity="0.504" fill="#ffd700" fill-rule="evenodd" stroke="#ffff00" stroke-width="0.186"/>
-   <path d="m -49.115592,523.73776 c 1.801283,-0.7447 2.295183,-3.08517 2.527609,-5.68094 0.435793,-2.51068 1.307383,-5.02136 7.059868,-5.42562 -2.353291,1.38301 -4.270784,3.08515 -3.399197,6.25542 -0.232423,4.61709 -4.909949,4.44687 -6.18828,4.85114 z" id="path15992-7" inkscape:connector-curvature="0" stroke-opacity="0.504" fill="url(#linearGradient3050-1)" fill-rule="evenodd" stroke="#ffff00" stroke-width="0.186"/>
-   <path d="m -40.161143,513.13986 c -0.988473,0.76628 -2.422497,1.48341 -2.3879,2.66159 -0.07306,0.84412 0.337391,1.64894 0.59267,2.45919 0.858055,-0.59964 1.833394,-1.38076 1.519084,-2.32643 -0.0023,-0.41668 -0.431066,-0.7812 -0.09442,-1.1872 0.323344,-0.6429 0.661588,-1.28263 0.886172,-1.95023 -0.171872,0.11441 -0.343745,0.22872 -0.515618,0.34308 z" id="path28562-2" inkscape:connector-curvature="0" fill="url(#linearGradient3044-9)" fill-rule="evenodd"/>
-   <path d="m -52.25331,522.01432 c -0.232425,-2.04258 -0.552007,-3.51069 2.963402,-5.36178 5.955855,-3.0426 3.021507,-4.80859 -0.697272,-7.97884 1.104013,3.14898 -0.668218,5.65965 -2.178973,7.34053 -0.9878,1.04257 -4.416048,3.17026 -0.08715,6.00009 z" id="path15989-6" inkscape:connector-curvature="0" stroke-opacity="0.504" fill="url(#linearGradient3041-8)" fill-rule="evenodd" stroke="#ffff00" stroke-width="0.186"/>
-   <path d="m -54.525194,507.0314 c 1.60857,-1.35648 1.195445,-1.91484 0.932717,-2.84879 -0.558868,-0.43055 0.0132,-1.04054 0.471015,-2.68762 -1.464775,1.50117 -3.355122,1.75087 -1.403732,5.53641 z" id="path15995-9" inkscape:connector-curvature="0" stroke-opacity="0.504" fill="#ffd700" fill-rule="evenodd" stroke="#ffff00" stroke-width="0.186"/>
-   <path d="m -53.507465,501.20597 c -0.936634,0.897 -2.356998,1.72471 -2.282552,2.96793 -0.01008,1.0337 0.546212,1.9981 0.962067,2.96794 0.849161,-0.70989 1.752609,-1.61138 1.37467,-2.61168 0.0025,-0.39578 -0.375973,-0.70305 -0.386884,-1.07686 0.206939,-0.88235 0.635105,-1.73465 0.8043,-2.62495 -0.157201,0.1259 -0.314402,0.25174 -0.471601,0.37762 z" id="path28564-1" inkscape:connector-curvature="0" fill="url(#linearGradient3037-6)" fill-rule="evenodd"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/58-2.svg b/htdocs/public/symbols/svgicons/58-2.svg
deleted file mode 100755
index d0f70a000dadd9afe368bd54acb16cd9baa938e9..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/58-2.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3063"/>
- <path d="m 1.513309,9.830772 20.973382,0 -10.506219,-9.2530367 z" id="path3073" inkscape:connector-curvature="0" fill="#ffffff" stroke="#000000" stroke-linejoin="round" stroke-width="1.155"/>
- <path d="m 1.513309,14.169229 20.973382,0 -10.506219,9.253036 z" id="path3073-7" inkscape:connector-curvature="0" fill="#ffffff" stroke="#000000" stroke-linejoin="round" stroke-width="1.155"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/59-1.svg b/htdocs/public/symbols/svgicons/59-1.svg
deleted file mode 100755
index 87044873b67afc1ae8c24d31d82c9ddeff5ae29a..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/59-1.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24.000001 24" version="1.1" width="24" height="24">
- <g id="g3293" transform="translate(-0.84289,-88.891844)">
-  <rect id="rect4140" width="23.04" height="23.04" x="1.322" y="89.37" rx="2.874" fill="#cccccc" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.958"/>
-  <path inkscape:connector-curvature="0" id="path2400" d="m 11.282037,91.475632 -0.388575,0.310588 1.631833,2.500758 -10.2781321,16.021082 7.6433279,0 0,-0.22604 0,-0.0495 0,-5.06481 5.9054792,0 0,5.06481 0,0.0495 0,0.22604 7.642649,0 -10.277453,-16.028089 1.539832,-2.465269 -0.381342,-0.311041 -1.476313,2.387735 -1.561306,-2.415764 z" fill-rule="evenodd"/>
- </g>
- <metadata id="metadata7"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/59-2.svg b/htdocs/public/symbols/svgicons/59-2.svg
deleted file mode 100755
index 1bbaea57fe3742114fdbdc4e35e16f7d9bcfe791..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/59-2.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24" viewBox="0 0 24 23.999999" enable-background="new 0 0 100 73.649">
- <metadata id="metadata4391"/>
- <rect id="rect4140" width="23.04" height="23.04" x="0.479" y="0.479" rx="2.874" fill="#cccccc" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.958"/>
- <g id="g4145" transform="matrix(0.85275463,0,0,0.85275463,1.7669445,1.7669443)">
-  <g id="g4139">
-   <g id="g4375" transform="matrix(0.24000326,0,0,0.24000326,-1.62e-4,3.161999)" stroke-width="1.25">
-    <rect x="19.818" width="61.23" height="7" id="rect4377"/>
-    <path d="M 50.438,3.489" id="path4379" inkscape:connector-curvature="0"/>
-   </g>
-   <polygon points="24.877,73.649 34.42,41.002 66.563,41.002 76.106,73.649 86.308,73.649 76.765,41.002 100,41.002 100,34.648 74.907,34.648 67.677,9.903 57.463,9.903 64.705,34.648 36.279,34.648 43.508,9.903 33.305,9.903 26.076,34.648 0,34.648 0,41.002 24.218,41.002 14.674,73.649 " id="polygon4381" transform="matrix(0.24000326,0,0,0.24000326,-1.62e-4,3.161999)" stroke-width="1.25"/>
-  </g>
-  <rect id="rect4383" height="1.338" width="4.44" y="8.946" stroke-width="0.3"/>
-  <rect id="rect4385" height="1.338" width="4.443" y="8.946" x="19.557" stroke-width="0.3"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/59-83.svg b/htdocs/public/symbols/svgicons/59-83.svg
deleted file mode 100755
index ab9312f0469dc07d7f4505f7c36eca9e19484213..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/59-83.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   id="svg869"
-   width="24"
-   height="24"
-   viewBox="0 0 24.000001 24.000001"
-   sodipodi:docname="59-83.svg"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">
-  <metadata
-     id="metadata875">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs873" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     id="namedview871"
-     showgrid="false"
-     inkscape:zoom="8"
-     inkscape:cx="1.2886852"
-     inkscape:cy="22.876366"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg869" />
-  <rect
-     style="fill:#fd0134;fill-opacity:1;stroke:#fd0134;stroke-width:4.81033421;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="rect887"
-     width="19.189665"
-     height="19.189665"
-     x="2.4051681"
-     y="2.4051681" />
-  <path
-     style="fill:#60fe61;fill-opacity:1;stroke:#60fe61;stroke-width:1.06600618;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="M 4.3925127,12.449221 1.7774363,20.348234 22.222581,20.321454 12.624061,3.6665908 11.821709,4.4431037 9.7415332,1.7119202 5.4028832,12.984747 Z"
-     id="path881"
-     inkscape:connector-curvature="0" />
-  <text
-     xml:space="preserve"
-     style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.02321291px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.5646801"
-     x="3.2019567"
-     y="18.966843"
-     id="text909"
-     transform="scale(0.95198711,1.0504344)"><tspan
-       sodipodi:role="line"
-       id="tspan907"
-       x="3.2019567"
-       y="18.966843"
-       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.02321291px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke-width:0.5646801">SOTA</tspan></text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/60-1.svg b/htdocs/public/symbols/svgicons/60-1.svg
deleted file mode 100755
index 0f4f0a54446fe67970f8c092444cea33840f2a2a..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/60-1.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24">
- <metadata id="metadata5140"/>
- <g id="layer1" transform="matrix(-0.03993015,0,0,0.03993015,25.603209,2.0469741)">
-  <path d="m 438.12826,429.16927 c -62.79839,-3.16426 -155.20224,7.89495 -186.20451,-31.3992 -14.20607,-74.76934 -54.80076,-112.40662 -124.50145,-113.18313 -42.795768,-82.64828 34.88862,-95.59972 87.99076,-116.8342 3.3733,38.41563 1.30629,78.34741 62.06817,100.7695 2.43911,-11.88771 7.42309,-21.59411 23.36684,-21.90641 l 89.81629,0.36511 63.52859,-49.65454 c 10.2664,16.32783 30.63852,37.24918 30.66898,48.92432 l 96.38822,0.36511 c 7.01925,5.97861 12.97283,21.84281 -1.09532,37.60601 -57.74129,-1.75276 -162.68681,4.55533 -142.02657,144.94743 z" id="path4749" inkscape:connector-curvature="0" fill-rule="evenodd"/>
-  <path d="m 281.45311,113.13794 0.25817,-34.043529 38.12235,-5.174139 0,-27.017909 -38.89686,6.464987 c 2.8605,-24.34011 18.51028,-41.939346 52.98479,-47.0361453 21.6463,1.5255947 44.34631,2.6992313 57.25914,43.1895493 3.78428,16.060343 1.42553,32.309362 -8.54869,46.305931 -32.28759,-17.699463 -56.45288,-5.617153 -78.49798,14.239165 l -22.68092,3.07209 z" id="path5636" inkscape:connector-curvature="0" fill-rule="evenodd"/>
-  <path d="m 215.04795,186.7383 113.54824,-85.80012 c 15.26233,-8.1407 32.0941,-9.689721 52.21028,2.55575 17.19617,15.62165 46.2444,58.89814 69.37031,88.35586 l -64.62391,48.37667 -62.06818,-86.34778 -98.21375,75.21202 c -7.55995,-13.19498 -9.32895,-28.68129 -10.22299,-42.3524 z" id="path6523" inkscape:connector-curvature="0" fill-rule="evenodd"/>
-  <path d="m 241.70075,414.19989 a 83.609474,83.609474 0 1 1 -167.218946,0 83.609474,83.609474 0 1 1 167.218946,0 z" transform="matrix(0.974466,0,0,0.974466,-15.37667,-10.08382)" id="path7410" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="35"/>
-  <path d="m 241.70075,414.19989 a 83.609474,83.609474 0 1 1 -167.218946,0 83.609474,83.609474 0 1 1 167.218946,0 z" transform="matrix(0.974466,0,0,0.974466,388.6178,-9.97323)" id="path8297" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="35"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/60-2.svg b/htdocs/public/symbols/svgicons/60-2.svg
deleted file mode 100755
index df54d2efffa38bd8666dbef9fef6c16fb0e948c7..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/60-2.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4230"/>
- <path sodipodi:type="star" id="path4774" sodipodi:sides="3" sodipodi:cx="11.694916" sodipodi:cy="5.4915252" sodipodi:r1="5.8528838" sodipodi:r2="2.9264417" sodipodi:arg1="2.0943951" sodipodi:arg2="3.1415927" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="m 8.7684739,10.560271 0,-10.13749189 L 17.5478,5.4915252 Z" inkscape:transform-center-x="-1.5613875" transform="matrix(1.0670894,0,0,0.99791178,-0.99063412,0.06158974)" fill="#ce0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.969"/>
- <path d="m 8.3389831,23.451316 c 0,-22.94192958 0,-22.94192958 0,-22.94192958" id="path4776" inkscape:connector-curvature="0" fill="none" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="0.997"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/61-1.svg b/htdocs/public/symbols/svgicons/61-1.svg
deleted file mode 100755
index ee8dffc80ba02e7d90f7463db270f32a34b3e83e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/61-1.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24">
- <metadata id="metadata4204"/>
- <path d="m 22.510718,21.63724 1.46589,-0.0155 0.0193,-0.34619 c 0.0216,-0.38726 -0.0381,-0.48381 -0.26398,-0.42712 -0.21942,0.0551 -3.20443,0.0481 -3.25999,-0.007 -0.0274,-0.0274 0.0996,-0.11729 0.28817,-0.20385 0.41002,-0.1882 0.74555,-0.55019 0.89456,-0.96509 l 0.10746,-0.29923 0.68084,-0.0161 c 0.45689,-0.0108 0.69533,-0.0389 0.72488,-0.0855 0.0242,-0.0381 0.0444,-0.39614 0.0449,-0.79563 l 8.7e-4,-0.72632 -0.96592,0 -0.96593,0 -0.23823,-0.40792 c -0.34156,-0.58483 -0.34121,-0.58583 0.21819,-0.60554 0.54303,-0.0191 0.53728,-0.0137 0.70665,-0.66605 0.20711,-0.79771 0.19344,-1.93002 -0.0311,-2.57945 l -0.0736,-0.21295 -2.09649,-0.057 -0.0285,-0.65512 c -0.0264,-0.60729 -0.0368,-0.65518 -0.14242,-0.65594 -0.10492,-7.5e-4 -0.11242,-0.0326 -0.0948,-0.40302 0.0225,-0.47303 -0.0489,-0.78033 -0.24221,-1.04233 -0.13324,-0.18059 -0.13855,-0.21823 -0.10824,-0.7675503 0.0367,-0.66458 -0.012,-0.89871 -0.27949,-1.34473 -0.35742,-0.59596 -0.9847,-0.93219 -1.73944,-0.93235 l -0.41337,-1.1e-4 -0.0625,-0.23229 c -0.13802,-0.51256 -0.48689,-0.95659 -0.93365,-1.18831 -0.34616,-0.17954 -1.04631,-0.20268 -1.45129,-0.048 l -0.31195,0.11918 -0.26381,-0.25984 -0.26381,-0.25984 0.0279,-0.53383 c 0.047,-0.8981 -0.17119,-1.46326 -0.79028,-2.04728 -0.46814,-0.44162 -0.85054,-0.60511 -1.50591,-0.64382 -0.83481,-0.0493 -1.5062997,0.21659 -2.0885697,0.82704 -0.54262,0.56888 -0.74733,1.11194 -0.74429,1.97452 l 0.002,0.57094 -0.22946,0.25785 c -0.1262,0.14181 -0.29596,0.39884 -0.37725,0.57116 -0.19855,0.42093 -0.21119,1.19615 -0.0261,1.60205 0.16421,0.36015 0.49589,0.71251 0.84137,0.89384 0.25293,0.13274 0.3551,0.15149 0.82964,0.15223 0.47916,7.5e-4 0.57864,-0.0175 0.8679997,-0.15964 0.32103,-0.15765 0.44224,-0.16182 0.44224,-0.0153 0,0.14395 0.40534,0.60205 0.67076,0.75807 0.23728,0.13948 0.32659,0.15824 0.75341,0.15824 0.48164,0 0.61286,-0.0369 0.97211,-0.27338 0.14053,-0.0925 0.15351,-0.0907 0.34031,0.0471 0.27709,0.20444 0.58857,0.2731 1.05171,0.23184 l 0.39877,-0.0355 0.10565,0.2578503 c 0.26986,0.65862 1.15817,0.90259 1.75054,0.48079 0.0854,-0.0608 0.18111,-0.11054 0.21273,-0.11054 0.0668,0 1.03577,1.22587 1.03577,1.31042 0,0.0538 -0.0839,0.0808 -0.19113,0.0615 -0.1589,-0.0285 -0.20763,0.13956 -0.20763,0.7161 0,0.42441 -0.0203,0.59936 -0.0712,0.61545 -0.10983,0.0347 -3.08059,0.079 -3.16497,0.0473 -0.041,-0.0154 -0.13393,-0.1624 -0.20655,-0.32661 -0.21226,-0.47995 -0.63416,-0.68266 -1.19992,-0.57652 -0.2599,0.0488 -0.62844,0.37649 -0.71363,0.63461 -0.0356,0.10784 -0.11224,0.22151 -0.17033,0.2526 -0.1525,0.0816 -3.9111197,0.076 -3.9617497,-0.006 -0.0212,-0.0343 -0.0343,-0.32945 -0.0291,-0.65585 0.007,-0.4411 -0.01,-0.60068 -0.0645,-0.62163 l -6.04654,0.0581 -0.0162,0.58391 -0.0162,0.58391 1.07978,0 c 0.12007,0 0.23113,0.0539 0.34418,0.16691 l 0.1669,0.1669 -0.0322,0.81578 c -0.0177,0.44867 -0.0529,1.39988 -0.0784,2.11379 -0.0254,0.71391 -0.0645,1.31633 -0.0868,1.33872 -0.0223,0.0224 -0.58324,0.0535 -1.24651,0.0692 l -1.20593995,0.0285 0,1.5338 1.28695995,-0.0171 c 1.13724,-0.0151 1.29795,-0.006 1.38145,0.0774 0.052,0.052 0.0945,0.13213 0.0945,0.17814 0,0.29978 0.49195,0.88045 0.89818,1.06014 0.14938,0.0661 0.23231,0.13298 0.20218,0.16311 -0.0284,0.0283 -1.30518,0.0577 -2.86864,0.0659 l -1.81477995,0.0148 -0.017,0.35604 L -3.165134e-5,21.68015 9.5530283,21.66655 c 5.8057197,-0.007 11.6366697,-0.0206 12.9576697,-0.0291 z m -12.03256,-0.76773 c -0.0228,-0.0228 0.007,-0.0579 0.0664,-0.0781 0.53186,-0.18093 1.03368,-0.62708 1.16539,-1.03609 0.1147,-0.35619 0.10889,-0.35407 0.97298,-0.35407 l 0.79178,0 0.0618,0.15666 c 0.16732,0.4244 0.23202,0.53921 0.42295,0.75055 0.1136,0.12575 0.34907,0.29605 0.52326,0.37846 0.17419,0.0824 0.28947,0.1665 0.25617,0.18689 -0.0836,0.0512 -4.20925,0.047 -4.26067,-0.004 z m -4.8938197,0.0162 c -0.0182,-0.0295 0.0892,-0.10782 0.23875,-0.17396 0.14957,-0.0661 0.34588,-0.18937 0.43626,-0.27385 0.20979,-0.19612 0.4908,-0.63059 0.4908,-0.75884 0,-0.23615 0.14037,-0.27775 0.93705,-0.27775 0.82655,0 0.82501,-5.8e-4 0.93845,0.3518 0.12063,0.37469 0.42651,0.70687 0.83697,0.90894 0.30209,0.14872 0.35601,0.19403 0.27078,0.22753 -0.16079,0.0632 -4.10988,0.0595 -4.14906,-0.004 z m 9.9387197,-0.0525 c 0,-0.0271 0.11507,-0.0932 0.25572,-0.14689 0.33234,-0.12692 0.71099,-0.49929 0.87225,-0.85777 0.0705,-0.15666 0.14741,-0.31996 0.17098,-0.36288 0.0332,-0.0604 0.21498,-0.077 0.80515,-0.0736 0.41927,0.002 0.77964,0.0248 0.80083,0.0496 0.0212,0.0248 0.0819,0.163 0.13482,0.3071 0.13505,0.36745 0.44132,0.70164 0.80698,0.88054 0.17152,0.0839 0.31185,0.1752 0.31185,0.20286 0,0.0281 -0.91537,0.0503 -2.07929,0.0503 -1.14361,0 -2.07929,-0.0222 -2.07929,-0.0492 z" id="path2371" inkscape:connector-curvature="0"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/61-2.svg b/htdocs/public/symbols/svgicons/61-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/61-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/62-1.svg b/htdocs/public/symbols/svgicons/62-1.svg
deleted file mode 100755
index 52f5fc3cdcc47690eecf93147942acf699319a39..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/62-1.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg3445"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="62-1.svg">
-  <defs
-     id="defs3458" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview3456"
-     showgrid="false"
-     inkscape:zoom="22.553862"
-     inkscape:cx="7.665445"
-     inkscape:cy="12.118826"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg3445" />
-  <metadata
-     id="metadata4277">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-     d="M 4.9215517,6.1316637 12.725093,5.9543105 17.690983,10.521156 3.5914026,9.6343896 Z"
-     id="path4754"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 23.726107,14.727561 c 0.150421,-0.941042 -0.0056,-1.022202 -0.62861,-2.409677 C 22.928341,11.941172 22.48121,11.711872 22.119643,11.514631 20.229872,10.483816 18.231174,9.844738 17.924536,9.8383252 16.963911,8.8816782 15.391324,7.0824936 13.28079,5.6432931 12.887083,5.3748215 11.498678,5.333218 11.498678,5.333218 c 0,0 -3.6458442,-0.4365462 -6.3620422,0.2095624 C 4.9023115,5.5984832 4.739452,5.579053 4.5429462,5.6824629 4.5109246,5.6993053 3.9463606,6.2825644 3.914337,6.3459932 3.8830464,6.4079542 3.6981688,6.6097907 3.6349722,6.6952379 3.2158089,7.2618097 2.7020042,7.8211575 2.3427939,8.4413853 2.1850705,8.713797 2.1119849,8.973036 1.9586281,9.2446365 1.8110258,9.5060769 1.274005,9.7072179 1.1903351,10.187532 c -0.04018,0.23046 -0.30227278,0.144318 -0.31432481,0.488927 0.11971043,0.03696 0.13415861,0.0807 0.27936381,0.104764 -0.20998609,0.76358 -0.33885259,2.126644 -0.34997815,2.270266 2.7162e-4,-7.8e-5 5.0275e-4,-1.93e-4 7.7338e-4,-2.71e-4 -0.001778,0.01742 -0.001975,0.01645 -7.7338e-4,2.71e-4 -0.65703938,0.206279 -0.59604534,1.386859 -0.65742557,1.172931 0.078997,0.314208 0.29663197,0.723481 0.3787956,1.061873 0.0703743,0.28991 -0.16332375,0.413561 -0.17464191,0.698451 0.0509954,0.02978 0.10011821,0.342638 0.13968291,0.384126 0.16610513,0.457213 1.46593122,0.871007 1.46593122,0.871007 l 0.1287895,1.55e-4 C 1.9758558,16.9118 1.9158257,16.560199 1.9158257,16.194614 c 0,-1.806061 1.4640793,-3.270137 3.2701393,-3.270137 1.806059,0 3.2701383,1.464076 3.2701383,3.270137 0,0.368444 -0.061001,0.722671 -0.1733292,1.053144 l 6.6407479,0.02127 C 14.768079,16.88803 14.682169,16.4713 14.682169,16.034366 c 0,-1.80602 1.464077,-3.270099 3.270099,-3.270099 1.806061,0 3.270139,1.464079 3.270139,3.270099 0,0.439794 -0.08704,0.859149 -0.244445,1.242156 l 0.26855,3.47e-4 c 0,0 2.007472,0.186616 2.270032,-0.454006 0.107774,-0.120252 0.147717,-0.728581 0.139682,-1.082578 0.0039,-0.364155 0.07741,-0.29389 0.174642,-0.523887 0.09445,-0.223353 -0.139567,-0.386754 -0.104761,-0.488837 z M 8.9525711,9.5012486 C 8.8885181,9.546138 8.8927751,9.5699764 8.8128506,9.6060454 8.5584788,9.7988041 8.4759197,9.5361679 5.1017144,9.5361679 5.15912,9.6180629 4.7067332,9.547408 5.0667889,8.7678372 5.5562179,7.7082043 6.302647,6.7440635 6.2615445,6.7291526 7.2087364,6.4470299 7.5095409,6.357357 8.9526047,6.3942863 8.923329,7.232459 8.9352605,8.1741482 8.9525711,9.5012486 Z m 1.4893799,0.232315 c -0.144666,-2.7488012 -0.274419,-2.8388454 0.03493,-3.2827313 2.779918,0 1.837221,0.00942 1.837221,0.00942 1.271994,0.026081 3.482374,2.7540307 4.141432,3.6575177 -1.85567,-0.1400531 -2.978847,-0.2327805 -6.013583,-0.3842064 z"
-     id="path6-9"
-     inkscape:connector-curvature="0"
-     style="fill:#aa0000;stroke:none;stroke-width:0.29631296;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     sodipodi:nodetypes="ccccscccccccccccccccccccsssccssscccccccccccccccccc" />
-  <path
-     style="fill:#666666;stroke:#000000;stroke-width:1.85782993;stroke-miterlimit:4;stroke-dasharray:none"
-     id="path3514-1-1"
-     sodipodi:type="arc"
-     sodipodi:cx="5.1689858"
-     sodipodi:cy="16.184412"
-     sodipodi:rx="1.8473057"
-     sodipodi:ry="1.8473057"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     d="M 3.3216802,16.184412 A 1.8473057,1.8473057 0 0 1 5.1685426,14.337106 1.8473057,1.8473057 0 0 1 7.0162913,16.183525 1.8473057,1.8473057 0 0 1 5.1703158,18.031717 1.8473057,1.8473057 0 0 1 3.321681,16.186185"
-     sodipodi:open="true" />
-  <path
-     style="fill:#666666;stroke:#000000;stroke-width:1.85782993;stroke-miterlimit:4;stroke-dasharray:none"
-     id="path3514-1-1-1"
-     sodipodi:type="arc"
-     sodipodi:cx="17.957012"
-     sodipodi:cy="16.063444"
-     sodipodi:rx="1.8473057"
-     sodipodi:ry="1.8473057"
-     sodipodi:start="3.1415927"
-     sodipodi:end="3.1406327"
-     d="m 16.109707,16.063444 a 1.8473057,1.8473057 0 0 1 1.846862,-1.847305 1.8473057,1.8473057 0 0 1 1.847749,1.846419 1.8473057,1.8473057 0 0 1 -1.845976,1.848191 1.8473057,1.8473057 0 0 1 -1.848635,-1.845532"
-     sodipodi:open="true" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/62-2.svg b/htdocs/public/symbols/svgicons/62-2.svg
deleted file mode 100755
index 91b345b55d332f5976d50fc43d7b3ada26892be3..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/62-2.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" version="1.1" width="24" height="24">
- <defs id="defs4">
-  <linearGradient id="linearGradient3759">
-   <stop id="stop3761" stop-color="#1a1a1a"/>
-   <stop id="stop3763" stop-color="#f30000" stop-opacity="0" offset="1"/>
-  </linearGradient>
-  <linearGradient id="linearGradient4149" y2="834.68" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="848.16" gradientTransform="translate(8.3085,-2.6518)" y1="842.3" x1="871.33"/>
-  <linearGradient id="linearGradient4153" y2="533.5" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="812.14" gradientTransform="matrix(0.89332,0,0,0.89332,80.349,365.15)" y1="537.5" x1="879.9"/>
-  <linearGradient id="linearGradient4155" y2="531.91" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="815.82" gradientTransform="translate(27.625,296.49)" y1="537.5" x1="879.9"/>
-  <linearGradient id="linearGradient4185" y2="834.68" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="848.16" gradientTransform="matrix(1,0,0,-1,8.3085,1452)" y1="842.3" x1="871.33"/>
-  <linearGradient id="linearGradient4187" y2="528.42" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="876.14" gradientTransform="matrix(1,0,0,-1,21.438,1151.5)" y1="528.36" x1="887.9"/>
-  <linearGradient id="linearGradient4189" y2="531.91" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="815.82" gradientTransform="matrix(1,0,0,-1,27.625,1152.9)" y1="537.5" x1="879.9"/>
-  <linearGradient id="linearGradient4191" y2="535.37" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="883.76" gradientTransform="matrix(1,0,0,-1,21.438,1151.5)" y1="542.4" x1="897.22"/>
-  <linearGradient id="linearGradient4193" y2="501.08" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="835.99" gradientTransform="matrix(1,0,0,-1,21.438,1151.5)" y1="552.05" x1="880.71"/>
-  <linearGradient id="linearGradient4195" y2="529.61" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="805.29" gradientTransform="matrix(0.89332,0,0,-0.89332,94.156,1087.8)" y1="528.36" x1="887.9"/>
-  <linearGradient id="linearGradient4197" y2="533.5" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="812.14" gradientTransform="matrix(0.89332,0,0,-0.89332,80.349,1084.2)" y1="537.5" x1="879.9"/>
-  <linearGradient id="linearGradient4199" y2="867.68" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="205.59" gradientTransform="matrix(0.99043,-0.13799,-0.13799,-0.99043,146.05,1483.3)" y1="873.14" x1="229.7"/>
-  <linearGradient id="linearGradient4201" y2="872.65" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="216.56" gradientTransform="matrix(0.99043,-0.13799,-0.13799,-0.99043,156.31,1482)" y1="873.06" x1="238.83"/>
-  <linearGradient id="linearGradient4203" y2="528.42" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="876.14" gradientTransform="translate(21.438,297.91)" y1="528.36" x1="887.9"/>
-  <linearGradient id="linearGradient4205" y2="535.37" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="883.76" gradientTransform="translate(21.438,297.91)" y1="542.4" x1="897.22"/>
-  <linearGradient id="linearGradient4207" y2="501.08" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="835.99" gradientTransform="translate(21.438,297.91)" y1="552.05" x1="880.71"/>
-  <linearGradient id="linearGradient4209" y2="529.61" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="805.29" gradientTransform="matrix(0.89332,0,0,0.89332,94.156,361.57)" y1="528.36" x1="887.9"/>
-  <linearGradient id="linearGradient4211" y2="867.68" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="205.59" gradientTransform="matrix(0.99043,0.13799,-0.13799,0.99043,146.05,-33.885)" y1="873.14" x1="229.7"/>
-  <linearGradient id="linearGradient4213" y2="872.65" xlink:href="#linearGradient3759" gradientUnits="userSpaceOnUse" x2="216.56" gradientTransform="matrix(0.99043,0.13799,-0.13799,0.99043,156.31,-32.603)" y1="873.06" x1="238.83"/>
- </defs>
- <metadata id="metadata60"/>
- <rect id="rect4814" width="2.207" height="4.682" x="2.903" y="3.318" rx="0.943" fill="#1a1a1a" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.3"/>
- <rect id="rect4814-1" width="2.207" height="4.682" x="18.829" y="3.318" rx="0.943" fill="#1a1a1a" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.3"/>
- <rect id="rect4814-2" width="2.207" height="4.682" x="2.85" y="16.818" rx="0.943" fill="#1a1a1a" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.3"/>
- <rect id="rect4814-7" width="2.207" height="4.682" x="18.918" y="16.818" rx="0.943" fill="#1a1a1a" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.3"/>
- <g id="g4179" transform="matrix(1.0127361,0,0,1,-0.15244214,0)">
-  <path inkscape:connector-curvature="0" d="m 2.9101531,10.06761 c 3.542e-4,0.03757 0.011999,0.117586 0.036894,0.161112 l 0.05903,0.08717 1.4142901,-0.215595 0.011068,3.108568 c 1.968e-4,0.06068 -5.51e-4,0.121732 -0.00123,0.182905 -0.00135,0.12234 -0.00411,0.245699 -0.00861,0.36971 -0.00658,0.181633 -0.016248,0.365352 -0.028285,0.549485 -6.454e-4,0.0099 -0.0018,0.01971 -0.00246,0.02958 -0.0248,0.371902 -0.058704,0.747366 -0.095924,1.12156 -0.050479,0.506247 -0.1065459,1.009207 -0.1524952,1.497472 -0.034053,0.36184 -0.062163,0.715611 -0.078707,1.055409 -0.011363,0.233353 -0.017967,0.459872 -0.015987,0.678699 9.72e-4,0.107491 0.00367,0.213393 0.00861,0.316785 0.00494,0.103381 0.013982,0.208718 0.025826,0.315215 0.00592,0.05325 0.012209,0.106545 0.019677,0.160333 0.022369,0.161117 0.052002,0.324904 0.086086,0.488016 3.93e-5,2.51e-4 -3.94e-5,5.25e-4 0,7.77e-4 0.022769,0.108903 0.048228,0.217146 0.075016,0.325327 0.026789,0.108191 0.055009,0.216023 0.084854,0.322214 0.029776,0.105945 0.061604,0.210967 0.093465,0.313672 7.87e-5,2.49e-4 -7.87e-5,5.28e-4 0,7.77e-4 0.015972,0.05147 0.031647,0.101361 0.047964,0.151772 0.048861,0.150967 0.099014,0.297233 0.1488039,0.435862 7.87e-5,2.51e-4 -7.87e-5,5.25e-4 0,7.77e-4 0.03325,0.09256 0.065925,0.181498 0.098384,0.266972 0.06487,0.170952 0.1272932,0.326647 0.1832383,0.46154 0.083922,0.20233 0.1545495,0.358204 0.196768,0.450656 0.028169,0.06161 0.044273,0.09496 0.044273,0.09496 l 0.1475761,0.340894 c 0.00979,0.02248 0.027268,0.04429 0.051652,0.06538 0.00828,0.0072 0.017155,0.01401 0.027056,0.02102 0.038551,0.02739 0.08936,0.05357 0.1512674,0.07861 2.755e-4,1.25e-4 9.563e-4,-1.24e-4 0.00123,0 0.030882,0.01246 0.06456,0.02547 0.1008437,0.03736 3.148e-4,10e-5 9.13e-4,-10e-5 0.00123,0 0.036351,0.01189 0.075331,0.02369 0.116833,0.03502 3.542e-4,10e-5 8.736e-4,-9.9e-5 0.00123,0 0.3348796,0.09133 0.8315812,0.164881 1.4253484,0.222599 3.936e-4,2.5e-5 8.343e-4,-2.5e-5 0.00123,0 0.00921,8.94e-4 0.019024,0.0014 0.028285,0.0023 0.1311065,0.01257 0.2675337,0.02471 0.4070737,0.0358 0.00955,7.6e-4 0.0187,0.0016 0.028285,0.0023 0.1591145,0.01249 0.322798,0.02358 0.4907002,0.03425 3.935e-4,2.4e-5 8.303e-4,-2.5e-5 0.00123,0 0.08376,0.0053 0.1690159,0.01069 0.2545706,0.01557 3.936e-4,2.3e-5 8.225e-4,-2.3e-5 0.00123,0 0.085567,0.0049 0.1711567,0.0096 0.258258,0.01401 3.936e-4,2.1e-5 8.225e-4,-2e-5 0.00123,0 0.1746355,0.0089 0.3520495,0.01689 0.5312737,0.02413 3.975e-4,1.7e-5 8.225e-4,-1.6e-5 0.00123,0 0.5385148,0.02173 1.093597,0.03635 1.635615,0.04436 4.09e-4,7e-6 8.14e-4,-5e-6 0.0012,0 0.361636,0.0053 0.716747,0.0078 1.058887,0.0078 0.03808,0 0.07725,-6.85e-4 0.115601,-7.77e-4 0.03835,10e-5 0.07752,7.77e-4 0.115602,7.77e-4 0.342108,0 0.697227,-0.0024 1.058848,-0.0078 4.13e-4,-6e-6 8.18e-4,6e-6 0.0012,0 0.542056,-0.008 1.0971,-0.02263 1.635614,-0.04436 4.06e-4,-1.7e-5 8.31e-4,1.6e-5 0.0012,0 0.179224,-0.0072 0.356638,-0.01522 0.531274,-0.02413 4.05e-4,-2.1e-5 8.3e-4,2.1e-5 0.0012,0 0.0871,-0.0044 0.172691,-0.0091 0.258258,-0.01401 4.05e-4,-2.3e-5 8.3e-4,2.3e-5 0.0012,0 0.08555,-0.0049 0.17081,-0.01025 0.25457,-0.01557 4.02e-4,-2.5e-5 8.31e-4,2.5e-5 0.0012,0 0.167894,-0.01067 0.331578,-0.02175 0.4907,-0.03425 0.0096,-7.52e-4 0.01874,-0.0016 0.02829,-0.0023 0.139532,-0.0111 0.275959,-0.02323 0.407073,-0.0358 0.0093,-8.87e-4 0.01907,-0.0014 0.02829,-0.0023 3.93e-4,-2.5e-5 8.46e-4,5e-5 0.0012,0 0.593728,-0.05772 1.090449,-0.131266 1.425348,-0.222598 3.54e-4,-10e-5 8.89e-4,9.9e-5 0.0012,0 0.0415,-0.01133 0.08048,-0.02313 0.116833,-0.03502 3.15e-4,-9.9e-5 9.09e-4,10e-5 0.0012,0 0.03628,-0.01189 0.06996,-0.0249 0.100843,-0.03736 2.76e-4,-1.25e-4 9.53e-4,1.24e-4 0.0012,0 0.06191,-0.02504 0.112717,-0.05122 0.151268,-0.07861 0.0099,-0.007 0.01877,-0.01385 0.02706,-0.02101 0.02438,-0.02109 0.04187,-0.0429 0.05165,-0.06538 l 0.147576,-0.340893 c 0,0 0.0161,-0.03335 0.04427,-0.09496 0.04222,-0.09243 0.112846,-0.248317 0.196768,-0.450656 0.05595,-0.134886 0.118368,-0.290583 0.183238,-0.461541 0.03246,-0.08546 0.06513,-0.1744 0.09838,-0.266972 7.9e-5,-2.54e-4 -7.9e-5,-5.25e-4 0,-7.77e-4 0.04979,-0.138631 0.09994,-0.284879 0.148804,-0.435862 0.01631,-0.05041 0.03199,-0.100305 0.04796,-0.151772 7.9e-5,-2.51e-4 -7.9e-5,-5.28e-4 0,-7.77e-4 0.03186,-0.102694 0.06369,-0.207717 0.09347,-0.313671 0.02985,-0.106201 0.05807,-0.214033 0.08485,-0.322214 0.02679,-0.108191 0.05225,-0.216432 0.07502,-0.325328 3.9e-5,-2.54e-4 -3.9e-5,-5.25e-4 0,-7.77e-4 0.03409,-0.163102 0.06372,-0.326896 0.08609,-0.488016 0.0075,-0.05379 0.01375,-0.107082 0.01968,-0.160332 0.01184,-0.1065 0.02089,-0.211837 0.02583,-0.315216 0.0049,-0.103381 0.0076,-0.209283 0.0086,-0.316784 0.002,-0.218825 -0.0046,-0.445351 -0.01599,-0.6787 -0.01655,-0.339773 -0.04465,-0.693568 -0.07871,-1.055408 -0.04595,-0.488265 -0.102017,-0.991225 -0.152496,-1.497473 -0.03722,-0.374193 -0.07112,-0.749632 -0.09592,-1.12156 -6.61e-4,-0.0099 -0.0018,-0.01972 -0.0025,-0.02958 -0.01204,-0.184143 -0.0217,-0.367868 -0.02829,-0.549485 -0.0045,-0.124002 -0.0073,-0.24736 -0.0086,-0.369711 -6.77e-4,-0.06117 -0.0014,-0.122223 -0.0012,-0.182905 l 0.01107,-3.108568 1.41429,0.215595 0.05903,-0.08717 c 0.0249,-0.04353 0.03654,-0.123538 0.03689,-0.161112 1.97e-4,-0.02114 -0.0029,-0.04371 -0.0098,-0.06694 -0.0023,-0.00774 -0.0056,-0.01553 -0.0086,-0.02335 -0.003,-0.00759 -0.0062,-0.015755 -0.0098,-0.02335 -0.0076,-0.015652 -0.01659,-0.031469 -0.02706,-0.0467 -0.03123,-0.045367 -0.07601,-0.088024 -0.130359,-0.1190825 -4.21e-4,-2.49e-4 -8.1e-4,-5.404e-4 -0.0012,-7.77e-4 -0.02746,-0.015562 -0.05711,-0.027703 -0.08977,-0.03658 l -1.23224,-0.3027622 0.0098,-2.7382096 c 0.01471,-0.018603 0.02932,-0.036764 0.04304,-0.05526 0.05508,-0.074201 0.102202,-0.1472217 0.142657,-0.2202622 0.02017,-0.036421 0.03839,-0.072672 0.05534,-0.1089655 0.05933,-0.1270227 0.100411,-0.2537464 0.127899,-0.3821638 0.01572,-0.073379 0.02731,-0.1475929 0.03567,-0.2225985 0.0042,-0.037502 0.0071,-0.075566 0.0098,-0.113633 0.0055,-0.076139 0.0084,-0.1528904 0.0098,-0.2319383 0.0029,-0.1580934 0,-0.3232602 0,-0.498128 0,-0.2592756 -0.02091,-0.5061479 -0.06149,-0.7417375 -0.01623,-0.094233 -0.03532,-0.1865764 -0.0578,-0.2770837 -0.04496,-0.1810098 -0.103063,-0.3543683 -0.172172,-0.5206932 -0.01728,-0.041579 -0.03537,-0.08308 -0.05411,-0.1237525 -0.05623,-0.1220164 -0.11906,-0.2394202 -0.188157,-0.353347 -0.02303,-0.037977 -0.04567,-0.075765 -0.0701,-0.1128559 -0.04885,-0.074179 -0.100627,-0.1464995 -0.154955,-0.217149 -0.02716,-0.035325 -0.05512,-0.070622 -0.08363,-0.1050726 -0.05701,-0.068901 -0.117274,-0.1361583 -0.179551,-0.2015849 -0.03114,-0.032715 -0.0635,-0.064659 -0.09592,-0.096512 -0.162141,-0.159259 -0.339445,-0.3079178 -0.532494,-0.445974 -0.154246,-0.1103005 -0.317969,-0.2142324 -0.4907,-0.31133 -2.36e-4,-1.246e-4 -0.001,1.245e-4 -0.0012,0 -0.04301,-0.02417 -0.08625,-0.048244 -0.130359,-0.071606 -2.36e-4,-1.246e-4 -9.88e-4,1.245e-4 -0.0012,0 -0.04411,-0.023355 -0.08885,-0.046717 -0.134046,-0.06927 -2.36e-4,-1.245e-4 -9.8e-4,1.245e-4 -0.0012,0 C 17.4713,1.1610661 17.331173,1.0966184 17.185561,1.035929 c -2.75e-4,-1.245e-4 -9.44e-4,1.245e-4 -0.0012,0 -0.04835,-0.020145 -0.09698,-0.04057 -0.146348,-0.0599298 -3.15e-4,-1.2453e-4 -9.37e-4,1.2453e-4 -0.0012,0 -0.148682,-0.0582934 -0.301153,-0.11374255 -0.458706,-0.16500241 -3.14e-4,-9.963e-5 -9.09e-4,9.962e-5 -0.0012,0 -0.05231,-0.0170108 -0.105393,-0.0335664 -0.158643,-0.0498128 -3.14e-4,-9.963e-5 -9.01e-4,9.962e-5 -0.0012,0 -0.05326,-0.01624 -0.10692,-0.0327768 -0.161106,-0.0482561 -3.54e-4,-9.963e-5 -8.94e-4,9.962e-5 -0.0012,0 -0.108714,-0.0310433 -0.21848,-0.0607218 -0.330814,-0.0887291 -3.55e-4,-9.963e-5 -8.82e-4,9.962e-5 -0.0012,0 -0.056,-0.0139533 -0.112843,-0.0272675 -0.169713,-0.0404729 -3.54e-4,-7.472e-5 -8.73e-4,7.472e-5 -0.0012,0 -0.05687,-0.0132009 -0.11444,-0.0264581 -0.172172,-0.0389162 -0.05774,-0.012453 -0.116053,-0.0248671 -0.174631,-0.03658 -3.54e-4,-7.472e-5 -8.66e-4,7.472e-5 -0.0012,0 -0.05858,-0.0117092 -0.117687,-0.0232713 -0.177091,-0.0342463 -3.94e-4,-7.472e-5 -8.54e-4,7.472e-5 -0.0012,0 -0.05941,-0.01097 -0.119336,-0.0216708 -0.179551,-0.0319101 -3.94e-4,-7.472e-5 -8.54e-4,7.472e-5 -0.0012,0 -0.181424,-0.0308366 -0.366225,-0.0589883 -0.55465,-0.08328 l -0.0012,0 c -0.06255,-0.00806 -0.126105,-0.0152228 -0.18939,-0.0225727 l -0.0012,0 c -0.445404,-0.0516733 -0.907572,-0.0862285 -1.385994,-0.10351598 -4.06e-4,-1.245e-5 -8.31e-4,1.494e-5 -0.0012,0 -0.068,-0.002441 -0.136782,-0.004451 -0.205379,-0.006227 -4.05e-4,-9.96e-6 -8.3e-4,9.96e-6 -0.0012,0 -0.137615,-0.003552 -0.275758,-0.006144 -0.415652,-0.007004 -4.06e-4,0 -8.31e-4,2.49e-6 -0.0012,0 -0.07017,-4.2341e-4 -0.140807,-2.4906e-4 -0.211526,0 -0.02502,0 -0.05003,5.4794e-4 -0.07502,7.721e-4 -0.02498,-2.4906e-4 -0.05,-7.721e-4 -0.07502,-7.721e-4 -0.07072,-2.4906e-4 -0.141358,-4.2341e-4 -0.211525,0 -4.02e-4,2.49e-6 -8.23e-4,0 -0.0012,0 -0.139914,8.4682e-4 -0.278057,0.003452 -0.415653,0.007004 -4.01e-4,9.96e-6 -8.22e-4,-9.96e-6 -0.0012,0 -0.0686,0.001768 -0.137375,0.003786 -0.205378,0.006227 -4.02e-4,1.494e-5 -8.23e-4,-1.245e-5 -0.0012,0 -0.478422,0.0172875 -0.940552,0.0518427 -1.3859949,0.10351598 l -0.00123,0 c -0.063284,0.00735 -0.1268406,0.014513 -0.1893892,0.0225727 l -0.00123,0 c -0.1884172,0.0242934 -0.3732139,0.0524434 -0.5546498,0.08328 -3.935e-4,7.472e-5 -8.382e-4,-7.472e-5 -0.00123,0 -0.060215,0.0102403 -0.1201427,0.0209411 -0.1795509,0.0319101 -3.935e-4,7.472e-5 -8.382e-4,-7.472e-5 -0.00123,0 -0.059404,0.0109745 -0.1185095,0.0225365 -0.1770913,0.0342463 -3.542e-4,7.472e-5 -8.776e-4,-7.472e-5 -0.00123,0 -0.058578,0.011714 -0.116896,0.0241281 -0.1746316,0.03658 -0.057732,0.0124574 -0.1152983,0.0257159 -0.1721721,0.0389162 -3.542e-4,7.472e-5 -8.776e-4,-7.472e-5 -0.00123,0 -0.05687,0.0132056 -0.1137162,0.0265203 -0.1697125,0.0404729 -3.541e-4,9.962e-5 -8.775e-4,-9.963e-5 -0.00123,0 -0.1123388,0.0280048 -0.2221039,0.0576857 -0.3308143,0.0887291 -3.148e-4,9.962e-5 -8.776e-4,-9.963e-5 -0.00123,0 -0.054182,0.0154788 -0.1078486,0.0320147 -0.1611059,0.0482561 -3.148e-4,9.962e-5 -9.169e-4,-9.963e-5 -0.00123,0 -0.053253,0.016245 -0.1063374,0.0328017 -0.1586423,0.0498128 -3.148e-4,9.962e-5 -9.169e-4,-9.963e-5 -0.00123,0 -0.157564,0.0512624 -0.3100356,0.10670898 -0.4587057,0.16500241 -2.754e-4,1.2453e-4 -9.169e-4,-1.2453e-4 -0.00123,0 -0.049361,0.0193605 -0.097998,0.0397855 -0.1463482,0.0599298 -2.755e-4,1.245e-4 -9.524e-4,-1.245e-4 -0.00123,0 -0.1456045,0.060689 -0.2857309,0.1251372 -0.4218314,0.1930221 -2.361e-4,1.245e-4 -9.956e-4,-1.245e-4 -0.00123,0 -0.045198,0.022552 -0.089935,0.045915 -0.1340463,0.06927 -2.361e-4,1.245e-4 -9.956e-4,-1.246e-4 -0.00123,0 -0.044111,0.023362 -0.087349,0.047434 -0.1303589,0.071606 -2.361e-4,1.245e-4 -9.956e-4,-1.246e-4 -0.00123,0 -0.172719,0.097093 -0.3364458,0.2010245 -0.4907001,0.31133 -0.193061,0.1380562 -0.3703647,0.2867225 -0.5324937,0.445974 -0.032428,0.031853 -0.064784,0.063798 -0.095925,0.096512 -0.062552,0.065425 -0.12281,0.1326822 -0.1798255,0.2015833 C 4.799052,2.4596769 4.7710988,2.4949743 4.743933,2.530299 4.6896014,2.600951 4.6378317,2.6732692 4.5889781,2.747448 4.5645509,2.7845386 4.5419112,2.8223266 4.5188815,2.8603039 4.4497844,2.9742407 4.3869485,3.091642 4.330724,3.2136509 4.3119814,3.2543231 4.2938902,3.2958246 4.2766128,3.3374034 4.2075039,3.5037208 4.1494022,3.6770769 4.1044407,3.8580966 4.0819596,3.9486015 4.0628755,4.0409444 4.0466382,4.1351803 4.0060016,4.37076 3.985097,4.6176422 3.985097,4.8769178 c 0,0.1748529 -0.00292,0.3400221 0,0.498128 0.00146,0.079048 0.00433,0.1557995 0.00984,0.2319383 0.00275,0.038069 0.00566,0.076134 0.00984,0.113633 0.00836,0.075006 0.01995,0.1492192 0.035664,0.2225985 0.027488,0.1284074 0.068574,0.2551411 0.1278992,0.3821638 0.016952,0.036294 0.035169,0.072545 0.055339,0.1089655 0.040456,0.073043 0.087581,0.1460635 0.1426568,0.2202622 0.01372,0.018497 0.028329,0.036657 0.043045,0.05526 l 0.00984,2.7382096 -1.2322402,0.3027622 c -0.032663,0.00888 -0.062313,0.021019 -0.089774,0.03658 -4.132e-4,2.49e-4 -8.107e-4,5.305e-4 -0.00123,7.77e-4 -0.054351,0.031058 -0.099132,0.073715 -0.1303589,0.1190825 -0.010466,0.015229 -0.019458,0.031046 -0.027056,0.0467 -0.00367,0.00759 -0.00686,0.015763 -0.00984,0.02335 -0.00306,0.00782 -0.00631,0.015613 -0.00861,0.023351 -0.00692,0.02322 -0.010035,0.0458 -0.00984,0.06694 z" id="path3855" stroke="#191919" fill-opacity="0.996" stroke-width="0.436"/>
-  <path inkscape:connector-curvature="0" d="m 2.9101531,10.06761 c 3.542e-4,0.03757 0.012047,0.117586 0.036894,0.161112 l 0.05903,0.08717 1.4105908,-0.215595 0.011068,3.108568 c 0.00651,1.941777 -0.4527239,4.147413 -0.3738592,5.801447 0.078853,1.654084 1.101901,3.788762 1.101901,3.788762 l 0.1488039,0.340894 c 0.2084285,0.479473 3.8317429,0.640543 6.5633944,0.640543 0.0438,0 0.08867,-6.65e-4 0.132819,-7.77e-4 0.04415,1.24e-4 0.08902,7.77e-4 0.132818,7.77e-4 2.731692,0 6.354821,-0.161077 6.563395,-0.640543 l 0.148804,-0.340894 c 0,0 1.023037,-2.134752 1.101901,-3.788762 0.07885,-1.654083 -0.380368,-3.859744 -0.373859,-5.801447 l 0.01107,-3.108568 1.410591,0.215595 0.05903,-0.08717 c 0.02485,-0.04353 0.03654,-0.123535 0.03689,-0.161112 1.97e-4,-0.02114 -0.0029,-0.04371 -0.0098,-0.06694 -0.0023,-0.00774 -0.0056,-0.015529 -0.0086,-0.023349 -0.003,-0.00759 -0.0062,-0.015755 -0.0098,-0.02335 -0.0076,-0.015652 -0.01661,-0.031469 -0.02706,-0.046699 -0.03117,-0.045367 -0.07488,-0.088024 -0.129127,-0.1190824 -4.21e-4,-2.491e-4 -8.18e-4,-5.405e-4 -0.0012,-7.771e-4 -0.02741,-0.015562 -0.05717,-0.027703 -0.08977,-0.03658 l -1.2298,-0.3027622 0.0098,-2.7382096 c 0.469961,-0.5952629 0.421831,-1.1335151 0.421831,-1.8329367 0,-3.3187778 -3.407471,-4.67318829 -7.92503,-4.65749726 -0.0307,0 -0.06161,4.7322e-4 -0.09224,7.721e-4 -0.03062,-2.9888e-4 -0.06153,-7.721e-4 -0.09224,-7.721e-4 C 7.3909335,0.20378424 3.9833044,1.558125 3.9833044,4.8769277 c 0,0.6994216 -0.048153,1.2376738 0.4218314,1.8329367 l 0.00984,2.7382096 -1.2298003,0.3027622 c -0.032602,0.00888 -0.062364,0.021019 -0.089774,0.03658 -4.093e-4,2.49e-4 -8.107e-4,5.305e-4 -0.00123,7.771e-4 -0.054249,0.031058 -0.097959,0.073715 -0.1291271,0.1190824 -0.010446,0.01523 -0.019473,0.031046 -0.027056,0.046699 -0.00366,0.00759 -0.00687,0.015763 -0.00984,0.02335 -0.00305,0.00782 -0.00631,0.015611 -0.00861,0.023349 -0.00691,0.02322 -0.010035,0.0458 -0.00984,0.06694 z" id="path2853" fill="#ca0000" fill-opacity="0.996"/>
-  <path inkscape:connector-curvature="0" d="m 16.046782,0.64053789 0.02337,0.12686573 C 16.169032,1.304012 17.092515,1.706076 18.21614,1.7457519 l 0.280394,0.00934 -0.190621,-0.1307561 C 17.728202,1.2285977 17.026645,0.91940962 16.23001,0.69268666 l -0.182994,-0.0520544 z" id="path3707" fill="#212121" stroke="#191919" color="#000000" stroke-width="0.156"/>
-  <path inkscape:connector-curvature="0" d="M 7.9552859,0.64053789 7.9319197,0.76740362 C 7.8330359,1.304012 6.9095523,1.706076 5.785928,1.7457519 L 5.5055335,1.7550916 5.6961546,1.6243355 C 6.2738656,1.2285977 6.9754224,0.91940962 7.7720575,0.69268666 l 0.1832383,-0.0521465 z" id="path4161" fill="#212121" stroke="#191919" color="#000000" stroke-width="0.156"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/63-1.svg b/htdocs/public/symbols/svgicons/63-1.svg
deleted file mode 100755
index 0aa40f1fc8b7f54d7de3525d982facd32fef6d29..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/63-1.svg
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" version="1.1" width="24" height="24">
- <defs id="defs55">
-  <linearGradient gradientTransform="matrix(0.07561054,0,0,0.07561054,418.95066,390.49482)" x2="0" y1="53.39" gradientUnits="userSpaceOnUse" y2="6.431" id="XMLID_3_">
-   <stop id="stop4284" stop-color="#ffffff"/>
-   <stop id="stop4286" offset="0.386" stop-color="#fdfdfe"/>
-   <stop id="stop4288" offset="0.561" stop-color="#f6f8fb"/>
-   <stop id="stop4290" offset="0.693" stop-color="#e9edf5"/>
-   <stop id="stop4292" offset="0.804" stop-color="#d7dfee"/>
-   <stop id="stop4294" offset="0.901" stop-color="#bfcee4"/>
-   <stop id="stop4296" offset="0.988" stop-color="#a3bad9"/>
-   <stop id="stop4298" offset="1" stop-color="#9eb6d7"/>
-  </linearGradient>
-  <linearGradient gradientTransform="matrix(0.07561054,0,0,0.07561054,418.95066,390.49482)" x2="0" y1="93.1" gradientUnits="userSpaceOnUse" y2="2.985" id="XMLID_2_">
-   <stop id="stop4276" stop-color="#4041c5"/>
-   <stop id="stop4278" offset="1" stop-color="#5f86a2"/>
-  </linearGradient>
-  <radialGradient id="XMLID_1_" gradientUnits="userSpaceOnUse" cy="126.75" cx="42.36" r="91.43" gradientTransform="matrix(-0.07561054,0,0,0.07561054,416.50935,390.49482)">
-   <stop id="stop12" stop-color="#e3ebef"/>
-   <stop offset="1" id="stop14"/>
-  </radialGradient>
-  <linearGradient id="linearGradient4280" y2="2.985" gradientUnits="userSpaceOnUse" y1="93.1" x2="0" gradientTransform="matrix(0.07561054,0,0,0.07561054,418.95066,390.49482)">
-   <stop id="stop21" stop-color="#e3ebef"/>
-   <stop offset="1" id="stop23" stop-color="#5f86a2"/>
-  </linearGradient>
-  <radialGradient id="radialGradient4205" gradientUnits="userSpaceOnUse" cy="126.75" cx="42.36" r="91.43">
-   <stop id="stop4207" stop-color="#e3ebef"/>
-   <stop offset="1" id="stop4209"/>
-  </radialGradient>
-  <linearGradient id="linearGradient4213" y2="2.985" gradientUnits="userSpaceOnUse" y1="93.1" x2="0">
-   <stop id="stop4215" stop-color="#e3ebef"/>
-   <stop offset="1" id="stop4217" stop-color="#5f86a2"/>
-  </linearGradient>
-  <linearGradient id="linearGradient4220" y2="6.431" gradientUnits="userSpaceOnUse" y1="53.39" x2="0">
-   <stop id="stop4222" stop-color="#ffffff"/>
-   <stop offset="0.386" id="stop4224" stop-color="#fdfdfe"/>
-   <stop offset="0.561" id="stop4226" stop-color="#f6f8fb"/>
-   <stop offset="0.693" id="stop4228" stop-color="#e9edf5"/>
-   <stop offset="0.804" id="stop4230" stop-color="#d7dfee"/>
-   <stop offset="0.901" id="stop4232" stop-color="#bfcee4"/>
-   <stop offset="0.988" id="stop4234" stop-color="#a3bad9"/>
-   <stop offset="1" id="stop4236" stop-color="#9eb6d7"/>
-  </linearGradient>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_2_" id="linearGradient4358" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.07561054,0,0,0.07561054,416.50935,390.49482)" y1="93.1" x2="0" y2="2.985"/>
- </defs>
- <g id="layer1" inkscape:label="Capa 1" inkscape:groupmode="layer" transform="translate(-405.73,-376.36)">
-  <g id="g4374" transform="matrix(0.98735242,0,0,0.98735242,5.2338987,4.8592025)">
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g14" fill="#c7c7c7" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 5903,2361 c 50,82 34,3995 -31,4149 -51,122 -1703,1495 -1789,1531 -1117,-7 -1870,-414 -1995,-629 -48,-270 -7,-4433 38,-4520 40,-76 2153,-833 2227,-851 67,-15 1493,229 1550,320 z" id="path16"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g18" fill="#000000" stroke="#000000" stroke-width="50.43">
-    <path inkscape:connector-curvature="0" d="m 5881,2374 2,-1 -2,2 c 0,-1 -1,-1 -1,-1 l 0,-2 7,-3 -2,2 -5,1 5,-1 -2,2 -2,1 z m 2,-1 2,-2 2,-2 5,-2 -5,4 5,-4 1,0 -6,3 0,1 0,-1 -4,3 z m 10,-6 -1,0 1,0 -1,0 11,-6 -10,5 0,1 z m 11,-4 -11,4 0,-1 11,-3 z m 20,-15 c -2,-3 -4,-6 -7,-9 -2,-3 -5,-5 -8,-7 -5,-4 -12,-8 -20,-12 -7,-4 -15,-7 -24,-11 -9,-4 -19,-7 -30,-11 -21,-8 -47,-16 -75,-24 -29,-8 -61,-16 -95,-25 -136,-34 -313,-72 -494,-106 -181,-35 -364,-66 -511,-90 -73,-11 -138,-21 -189,-27 -25,-3 -47,-6 -65,-8 -9,-1 -17,-1 -24,-2 -4,0 -7,0 -10,-1 l -9,0 c -3,0 -5,0 -7,1 l -4,0 c -2,0 -3,0 -4,1 -2,0 -4,1 -7,2 -2,0 -5,1 -8,2 -3,1 -7,2 -11,3 -4,2 -8,3 -13,5 -10,3 -22,7 -35,12 -13,4 -28,9 -44,15 -33,11 -71,25 -115,40 -43,15 -91,32 -144,51 -209,75 -481,173 -753,274 -271,101 -542,203 -747,285 -51,21 -98,40 -140,57 -43,18 -80,34 -111,48 -16,7 -30,14 -42,20 -13,6 -24,12 -33,17 -5,2 -9,5 -13,7 -4,3 -8,5 -10,7 -4,3 -7,5 -9,7 -5,4 -7,8 -9,11 -1,2 -2,5 -4,9 0,3 -1,6 -1,9 -1,3 -1,7 -2,11 -1,4 -1,8 -2,13 0,9 -1,20 -3,32 0,13 -1,27 -2,42 -2,31 -4,69 -6,111 -2,43 -4,91 -5,144 -7,213 -14,504 -19,835 -11,662 -19,1482 -19,2144 0,308 2,583 5,791 1,52 2,100 3,143 1,43 3,82 4,115 1,34 3,62 4,85 1,12 2,22 3,30 1,5 1,9 1,13 1,3 2,7 2,10 l 1,4 2,4 c 9,15 20,30 33,46 14,16 30,32 48,49 35,32 80,66 135,101 107,70 249,142 423,207 173,65 377,124 608,167 231,43 489,70 769,72 l 6,0 5,-2 8,-4 c 2,-2 5,-3 8,-6 3,-2 6,-4 10,-6 l 12,-9 c 9,-6 19,-13 30,-22 11,-8 23,-17 37,-28 27,-20 58,-45 93,-73 35,-28 74,-59 116,-93 169,-136 385,-315 600,-497 215,-181 430,-366 593,-512 41,-37 79,-71 113,-103 34,-31 64,-59 89,-84 13,-13 24,-24 34,-35 11,-11 20,-20 28,-29 8,-9 14,-17 19,-23 3,-4 5,-8 7,-10 2,-4 4,-8 6,-11 0,-2 1,-5 2,-8 1,-3 2,-5 3,-9 1,-6 2,-13 3,-22 2,-8 3,-17 4,-28 1,-11 2,-22 3,-35 2,-25 4,-55 7,-89 1,-34 3,-72 5,-113 8,-166 14,-391 19,-648 10,-516 16,-1164 16,-1743 0,-389 -3,-747 -8,-1012 -1,-66 -2,-127 -4,-181 -1,-53 -3,-100 -5,-139 -1,-20 -2,-38 -3,-53 -1,-16 -2,-30 -3,-41 -1,-6 -1,-11 -2,-16 -1,-5 -1,-10 -2,-13 -1,-4 -1,-8 -2,-11 -1,-2 -1,-4 -2,-5 -1,-3 -2,-5 -3,-6 z m -37,21 12,-12 -12,12 z m -6,9 c 1,3 1,7 2,11 0,4 1,9 1,15 1,11 3,24 4,39 0,15 1,33 2,52 2,39 4,86 6,139 1,53 2,114 4,180 5,264 7,622 7,1011 0,578 -5,1227 -15,1742 -6,257 -12,481 -19,646 -2,42 -4,79 -6,113 -2,33 -4,63 -6,88 -1,12 -2,24 -4,34 0,10 -2,18 -3,26 -1,7 -2,14 -3,18 0,3 -1,4 -1,6 0,1 -1,2 -1,2 0,1 -1,2 -2,4 -1,1 -3,4 -4,6 -5,6 -10,13 -17,21 -7,7 -16,17 -26,27 l -34,34 c -25,24 -54,52 -88,83 -33,31 -71,66 -112,102 -163,146 -377,330 -592,512 -215,181 -431,360 -598,495 -42,34 -81,65 -116,93 -35,28 -66,52 -93,73 -13,10 -26,20 -37,28 -10,8 -20,15 -28,21 -4,3 -8,6 -12,8 -3,2 -6,4 -8,6 -2,1 -4,2 -5,3 -276,-2 -528,-29 -755,-71 -228,-42 -429,-100 -600,-164 -169,-64 -308,-134 -413,-202 -51,-33 -94,-66 -128,-97 -17,-15 -31,-30 -43,-44 -10,-12 -19,-23 -26,-34 l 0,-4 c -1,-3 -1,-7 -1,-11 -1,-8 -2,-18 -3,-28 -2,-23 -3,-51 -5,-84 -1,-33 -2,-71 -3,-115 -1,-42 -2,-90 -3,-142 -3,-208 -5,-482 -5,-790 0,-662 7,-1481 18,-2143 6,-330 12,-622 19,-834 2,-53 4,-101 6,-144 2,-42 3,-79 5,-109 1,-16 2,-30 3,-42 1,-12 2,-22 3,-31 0,-4 1,-8 1,-11 1,-4 1,-6 2,-9 l 0,-2 c 0,-1 1,-1 2,-2 2,-1 4,-3 7,-5 4,-1 7,-4 11,-6 9,-5 19,-10 31,-16 12,-6 26,-12 41,-19 31,-14 67,-29 109,-47 42,-17 89,-37 140,-57 205,-82 475,-184 746,-284 271,-101 543,-200 752,-274 52,-19 101,-36 144,-51 43,-16 82,-29 114,-40 17,-6 31,-11 44,-16 13,-4 25,-8 35,-11 4,-2 9,-3 13,-4 4,-2 7,-3 10,-4 3,-1 5,-1 8,-2 l 3,-1 -2,-8 1,8 1,0 4,0 7,0 c 2,0 5,0 8,1 7,0 14,1 23,2 17,1 39,4 64,7 50,6 114,16 187,27 147,23 329,55 509,89 180,35 357,72 492,106 34,9 65,17 92,25 28,8 53,15 73,23 10,3 20,7 28,10 7,3 15,6 20,9 5,3 10,5 13,8 0,0 1,0 1,1 0,1 1,3 1,4 z M 4075,8017 c 1,0 1,-1 2,-1 l 6,0 0,14 -8,-13 8,13 0,11 -10,-23 c 0,0 1,-1 2,-1 z M 2110,7400 c 1,1 1,3 2,4 1,1 1,3 1,4 l -25,4 21,-11 1,-1 -1,1 1,-1 2,0 -2,0 z m 39,-4498 0,3 c -1,0 -1,1 -2,1 l -5,-6 -17,-4 17,4 -2,-1 4,2 5,1 z m -7,-2 2,1 -2,-1 z m -16,-8 14,7 -14,-7 z m 14,7 -10,-11 10,11 z m 2217,-841 -2,-17 2,17 z m -4,-17 4,17 0,1 -4,-18 z" id="path20"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g22" stroke-opacity="0.541" fill="#ffffff" stroke="#ffffff" fill-opacity="0.541" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 5822,2442 -52,22 -52,23 -52,23 -53,25 -53,25 -53,26 -53,26 -54,27 -54,27 -54,28 -55,28 -54,29 -55,29 -55,29 -111,60 -112,60 -112,60 -113,61 -114,60 -114,60 -114,59 -57,29 -57,29 -58,28 -57,28 -27,-6 -28,-7 -56,-13 -58,-14 -59,-13 -60,-14 -61,-14 -61,-14 -63,-14 -62,-14 -63,-15 -127,-28 -127,-28 -64,-14 -63,-14 -62,-13 -62,-13 -61,-13 -60,-13 -60,-13 -58,-12 -57,-12 -28,-5 -28,-6 -27,-5 -27,-6 -27,-5 -26,-5 -26,-5 -25,-6 -25,-4 -24,-5 -24,-5 -24,-4 -23,-4 -22,-5 -22,-4 -21,-3 -21,-4 -20,-4 52,16 52,16 53,16 54,15 55,16 55,15 57,16 56,15 57,16 58,15 116,31 117,30 118,31 118,31 117,30 116,31 58,15 57,16 57,15 56,16 55,15 55,16 54,15 53,16 52,16 52,16 1,60 2,61 1,61 1,63 1,64 2,64 1,65 1,66 1,67 1,67 1,68 0,69 1,69 1,70 1,70 0,71 1,71 0,72 1,72 1,73 1,146 1,147 0,149 1,149 2,299 1,300 1,149 1,148 1,147 1,146 1,73 0,72 1,72 1,71 0,71 1,71 1,69 1,70 0,68 1,68 1,67 1,67 1,66 1,65 1,65 2,63 1,63 1,62 2,61 1,60 1,-61 1,-61 0,-63 1,-63 1,-64 1,-65 1,-66 1,-67 1,-67 1,-68 1,-69 2,-69 1,-70 1,-71 1,-71 1,-72 1,-72 2,-73 1,-73 1,-73 3,-148 3,-149 2,-151 3,-151 6,-303 5,-303 3,-151 3,-150 2,-149 3,-149 1,-73 2,-73 1,-73 1,-72 1,-71 1,-72 1,-70 2,-70 1,-70 1,-68 1,-68 1,-68 1,-66 1,-66 1,-65 1,-64 1,-64 0,-62 1,-62 1,-60 110,-59 109,-59 109,-57 109,-58 108,-57 107,-58 107,-57 107,-58 105,-58 105,-58 104,-60 103,-60 51,-30 50,-31 51,-31 50,-31 50,-31 50,-32 49,-32 50,-32 z" id="path24"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g32" stroke-opacity="0.161" fill="#000000" stroke="#ffffff" fill-opacity="0.161" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 2420,6628 10,14 10,13 11,13 12,13 12,12 12,12 14,12 13,12 14,12 15,11 15,11 16,11 15,11 17,10 16,10 17,11 18,9 18,10 18,9 18,8 19,9 19,8 19,8 19,8 40,15 40,14 41,12 41,11 42,10 41,9 42,8 41,6 41,6 41,3 21,2 20,1 19,1 20,0 20,0 19,0 19,-1 19,-1 18,-1 19,-1 17,-2 18,-3 17,-2 17,-3 17,-4 16,-4 15,-4 15,-4 15,-5 15,-5 -2,-1 -1,0 -5,-2 -6,-1 -7,-2 -8,-2 -10,-3 -10,-3 -12,-3 -13,-4 -14,-3 -15,-4 -16,-5 -16,-4 -18,-5 -18,-5 -19,-5 -20,-6 -20,-5 -21,-6 -22,-6 -22,-6 -22,-6 -23,-7 -24,-6 -48,-13 -49,-14 -50,-14 -50,-13 -50,-15 -50,-13 -49,-14 -49,-13 -23,-7 -24,-6 -23,-7 -22,-6 -22,-6 -21,-6 -21,-6 -20,-5 -19,-6 -19,-5 -18,-5 -17,-5 -16,-4 -15,-5 -15,-4 -13,-4 -12,-3 -12,-3 -10,-3 -9,-3 -7,-2 -7,-2 -5,-2 -2,0 -2,-1 z" id="path34"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g42" stroke-opacity="0.388" fill="#ffffff" stroke="#ffffff" fill-opacity="0.388" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 3454,6093 -936,-361 -9,4 -8,4 -8,4 -6,5 -6,6 -6,6 -5,7 -5,6 -4,7 -4,7 -3,7 -3,8 -3,8 -2,7 -3,15 -2,15 -2,14 0,6 0,7 0,5 0,6 0,5 0,4 0,4 1,4 0,2 0,2 0,1 0,1 146,51 1,1 1,1 1,1 1,2 2,2 1,3 3,3 2,3 3,4 3,4 3,4 4,5 4,4 4,6 5,4 10,12 10,11 13,12 13,12 14,13 15,12 17,13 17,12 19,12 19,11 21,11 22,10 11,4 11,5 12,4 12,4 13,3 12,3 13,3 13,3 13,2 13,1 14,2 14,1 14,0 15,0 15,0 15,-1 15,-2 15,-2 16,-2 16,-3 16,-4 16,-4 17,-5 17,-6 1,0 2,1 3,0 6,1 6,1 7,1 8,1 9,1 10,1 11,1 12,1 12,1 12,0 13,1 26,0 14,-1 13,-1 14,-1 13,-2 13,-2 12,-3 12,-3 12,-3 10,-5 11,-5 9,-6 8,-6 8,-8 3,-4 3,-4 3,-4 2,-4 2,-5 2,-5 z" id="path44"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g52" fill="#606060" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 3446,5971 c -311,-81 -622,-161 -933,-242 -12,44 -13,107 6,140 47,23 142,41 189,64 136,131 255,142 472,124 84,17 168,31 251,48 26,-51 33,-72 15,-134 z" id="path54"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g60" stroke-opacity="0.4" fill="#ffffff" stroke="#ffffff" fill-opacity="0.4" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 5856,2414 -1813,1017 7,4549 1775,-1494 31,-4072 z" id="path62"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g70" stroke-opacity="0.161" fill="#000000" stroke="#ffffff" fill-opacity="0.161" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 2525,6916 10,13 11,12 10,13 11,11 11,12 11,11 12,11 12,10 12,10 12,10 13,10 12,9 13,9 13,8 27,17 28,15 28,14 28,13 29,11 29,11 30,9 30,8 29,8 30,6 30,5 30,4 30,3 30,2 29,2 29,0 29,-1 27,-2 28,-2 27,-3 26,-5 25,-5 24,-6 24,-6 22,-8 -2,-1 -4,0 -4,-2 -5,-1 -6,-2 -8,-2 -8,-2 -9,-2 -10,-3 -10,-3 -11,-3 -12,-3 -13,-4 -13,-3 -14,-4 -15,-4 -15,-4 -15,-5 -16,-4 -16,-5 -17,-4 -18,-5 -35,-10 -36,-10 -38,-10 -38,-10 -38,-11 -76,-21 -37,-10 -37,-11 -36,-10 -17,-4 -17,-5 -17,-5 -16,-4 -16,-5 -15,-4 -15,-4 -14,-4 -14,-4 -13,-4 -12,-3 -11,-3 -12,-3 -10,-3 -9,-3 -8,-2 -8,-3 -7,-1 -6,-2 -5,-2 -4,-1 -3,-1 z" id="path72"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g80" stroke-opacity="0.161" fill="#000000" stroke="#ffffff" fill-opacity="0.161" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 2680,7199 12,15 12,14 13,14 14,12 14,13 14,11 15,11 16,11 15,9 17,9 16,9 17,7 18,7 17,7 18,5 18,5 18,5 19,3 18,4 19,2 18,2 19,1 19,0 19,0 18,-1 19,-2 18,-2 19,-3 18,-4 18,-4 18,-5 17,-6 -1,0 -2,-1 -3,0 -4,-1 -3,-1 -5,-2 -5,-1 -6,-2 -6,-1 -6,-2 -7,-2 -8,-2 -8,-2 -8,-3 -9,-2 -9,-2 -19,-6 -20,-5 -22,-6 -22,-6 -23,-6 -23,-7 -48,-13 -48,-13 -23,-7 -23,-6 -23,-6 -21,-6 -21,-6 -19,-6 -9,-2 -9,-3 -9,-2 -8,-2 -8,-2 -7,-2 -7,-2 -6,-2 -6,-2 -5,-2 -5,-1 -5,-1 -3,-1 -3,-1 -3,-1 -2,0 z" id="path82"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g90" stroke-opacity="0.439" fill="#fcfcfc" stroke="#ffffff" fill-opacity="0.439" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 2356,3259 -92,13 -17,2173 1425,399 35,-116 -1369,-365 18,-2104 z" id="path92"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g100" stroke-opacity="0.231" fill="#000000" stroke="#ffffff" fill-opacity="0.231" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 3700,4065 -2,61 -1340,-386 1342,325 z" id="path102"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g106" stroke-opacity="0.231" fill="#000000" stroke="#ffffff" fill-opacity="0.231" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 3720,4507 -3,61 -1339,-386 1342,325 z" id="path108"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g112" stroke-opacity="0.231" fill="#000000" stroke="#ffffff" fill-opacity="0.231" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 3700,4916 -2,61 -1340,-386 1342,325 z" id="path114"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g118" stroke-opacity="0.231" fill="#000000" stroke="#ffffff" fill-opacity="0.231" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 3700,5318 -2,61 -1340,-387 1342,326 z" id="path120"/>
-   </g>
-   <g transform="matrix(-0.0039657,0,0,0.0039657,435.9735,368.36892)" id="g124" fill="#9e9e9e" stroke-width="25.22">
-    <path inkscape:connector-curvature="0" d="m 2361,3309 1332,333 -11,2197 11,0 11,0 11,-2205 0,-9 -8,-2 -1341,-335 -2,11 -3,10 z m 1340,335 -8,-2 0,-8 11,0 -3,10 z" id="path126"/>
-   </g>
-   <path id="path16-1" d="m 408.34342,399.31706 c 0,0.39 1.56241,0.7062 3.48972,0.7062 1.92732,0 3.48973,-0.3162 3.48973,-0.7062 0,-0.39008 -1.56241,-0.70628 -3.48973,-0.70628 -1.92731,0 -3.48972,0.31605 -3.48972,0.7062 z" i:knockout="Off" inkscape:connector-curvature="0" fill="url(#XMLID_1_)" stroke="#333333" stroke-width="0.227"/>
-   <path id="path18" i:knockout="Off" d="m 411.39528,399.24749 0.99708,0 0,-3.15696 -0.99708,0 0,3.15696 z" inkscape:connector-curvature="0" fill="#333333" stroke="#333333" stroke-width="0.227"/>
-   <path id="path25" d="m 407.80734,396.62646 c 0,0.50107 0.40625,0.90732 0.90732,0.90732 l 6.66054,0 c 0.50107,0 0.90732,-0.40625 0.90732,-0.90732 l 0,-4.99862 c 0,-0.50107 -0.40625,-0.90732 -0.90732,-0.90732 l -6.66039,0 c -0.50107,0 -0.90732,0.40625 -0.90732,0.90732 l 0,4.99862 z" i:knockout="Off" inkscape:connector-curvature="0" fill="url(#linearGradient4358)" stroke="#333333" stroke-width="0.454"/>
-  </g>
- </g>
- <metadata id="metadata53"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/63-2.svg b/htdocs/public/symbols/svgicons/63-2.svg
deleted file mode 100755
index ea76685b17fa50243f3fdae6b84f7ba9f33b6508..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/63-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata5882"/>
- <rect id="rect4202" width="24" height="24" rx="4" fill="#009bff" stroke-linejoin="round" stroke-linecap="round"/>
- <text x="4.675" y="22.21" id="text4204" sodipodi:linespacing="125%" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="125%" letter-spacing="0" font-size="27.5"><tspan sodipodi:role="line" id="tspan4206" x="4.675" y="22.21">?</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/64-1.svg b/htdocs/public/symbols/svgicons/64-1.svg
deleted file mode 100755
index 85c78f36a28ddacc83478639f09355f96e32d7ed..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/64-1.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" viewBox="0 0 24 24" width="24" height="24" shape-rendering="geometricPrecision" fill-rule="evenodd" image-rendering="optimizeQuality" clip-rule="evenodd">
- <defs id="defs4841">
-  <linearGradient inkscape:collect="always" id="linearGradient4142">
-   <stop id="stop4144" stop-color="#0000ff"/>
-   <stop offset="1" id="stop4146" stop-color="#0000ff" stop-opacity="0"/>
-  </linearGradient>
-  <radialGradient inkscape:collect="always" xlink:href="#linearGradient4142" id="radialGradient4150" cx="1070" cy="1447.5" r="1070" gradientTransform="matrix(2.6317987,2.4065414e-8,-2.5363448e-8,2.773752,-1746.0246,-2567.5061)" gradientUnits="userSpaceOnUse"/>
- </defs>
- <g id="Layer_x0020_1" transform="matrix(0,-0.00690846,0.00690846,0,2,19.392055)" fill="url(#radialGradient4150)">
-  <path d="M 1633.2577,2021.4393 C 1198.0447,2456.6523 412.73502,2851.9645 0,2895 561,2620 790.30306,2335.9546 752.30306,2138.9546 268.30306,1952.9546 123,1408 424,988 797,402 1369,73 2140,0 c -564,276 -825,512 -785,710 305,128 505,483 505,739 2.3564,226.1977 -119.0281,482.4327 -226.7423,572.4393 z" id="path4835" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccc"/>
- </g>
- <metadata id="metadata4837"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/64-2.svg b/htdocs/public/symbols/svgicons/64-2.svg
deleted file mode 100755
index 6ee944dc7f3cb4fe31213da9958dab7b8ea29359..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/64-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" viewBox="0 0 24 24" width="24" height="24" shape-rendering="geometricPrecision" fill-rule="evenodd" image-rendering="optimizeQuality" clip-rule="evenodd">
- <g id="Layer_x0020_1" transform="matrix(0,-0.00829019,0.00829019,0,-5.0025e-5,20.870503)">
-  <path d="M 1633.2577,2021.4393 C 1198.0447,2456.6523 412.73502,2851.9645 0,2895 561,2620 790.30306,2335.9546 752.30306,2138.9546 268.30306,1952.9546 123,1408 424,988 797,402 1369,73 2140,0 c -564,276 -825,512 -785,710 305,128 505,483 505,739 2.3564,226.1977 -119.0281,482.4327 -226.7423,572.4393 z" id="path4835" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccc" fill="#0000ff"/>
- </g>
- <metadata id="metadata4837"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/65-1.svg b/htdocs/public/symbols/svgicons/65-1.svg
deleted file mode 100755
index 1a2ac56e2c53453cf6ad026b21c39c7b6eb0bb03..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/65-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4228"/>
- <rect id="rect4772" width="24" height="24" rx="2" fill="#009cff" stroke-linejoin="round" stroke-linecap="round"/>
- <text x="0.27" y="20.777" id="text3010" sodipodi:linespacing="125%" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="28" fill="#ffffff" font-family="Sans"><tspan sodipodi:role="line" id="tspan3012" x="0.27" y="20.777" dx="-0.5" dy="-0.5">+</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/65-2.svg b/htdocs/public/symbols/svgicons/65-2.svg
deleted file mode 100755
index 606c0602844ac61dca26cea6cf10cb8549359769..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/65-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4908"/>
- <rect id="rect5452" width="21.493" height="21.493" x="1.254" y="1.254" fill="#ffffff" stroke="#000000" stroke-linecap="round" stroke-width="2.507"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/66-1.svg b/htdocs/public/symbols/svgicons/66-1.svg
deleted file mode 100755
index 99fcda5d8607f8e9c63ae2ab12f10c33b174c7cf..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/66-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata5545"/>
- <rect id="rect4134" width="23.02" height="17.208" x="0.489" y="3.396" rx="3" fill="#cccccc" stroke="#4d4d4d" stroke-linejoin="round" stroke-linecap="round"/>
- <text x="2.45" y="14.252" id="text6089" sodipodi:linespacing="125%" transform="scale(0.82782149,1.2079899)" font-family="sans-serif" fill="#330098" word-spacing="0" line-height="125%" letter-spacing="0" font-size="11.864"><tspan sodipodi:role="line" id="tspan6091" x="2.45" y="14.252">BBS</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/66-2.svg b/htdocs/public/symbols/svgicons/66-2.svg
deleted file mode 100755
index b2f1694294db1bb0d25b384ff6735d95592b1c72..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/66-2.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3937"/>
- <rect id="rect3943" width="23" height="23" x="0.499" y="0.499" rx="1.917" fill="#cccccc" stroke="#000000" stroke-width="0.998"/>
- <g id="g3337" transform="translate(0,-0.3249971)">
-  <text transform="scale(0.82585399,1.2108678)" sodipodi:linespacing="0%" id="text4459-9" y="9.17" x="14.324" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="6.875"><tspan y="9.17" x="14.324" id="tspan4461-6" sodipodi:role="line">BLOW</tspan>
-  </text>
-  <text transform="scale(0.82585399,1.2108678)" sodipodi:linespacing="0%" id="text4459" y="16.193" x="14.386" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="0" font-size="6.875"><tspan y="16.193" x="14.386" id="tspan4461" sodipodi:role="line">SNOW</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/67-1.svg b/htdocs/public/symbols/svgicons/67-1.svg
deleted file mode 100755
index f87b4e0a34a527353662bb8ac9186422204cd3be..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/67-1.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata13"/>
- <g id="g3197" transform="matrix(0.04229602,0,0,0.04229602,-2.7000875,-7.7034529)">
-  <path d="m 377.53,372.82 c 20.564,0 37.18,-16.714 37.18,-37.278 0,-20.564 -16.617,-37.229 -37.18,-37.229 -20.564,0 -37.229,16.665 -37.229,37.229 0,20.564 16.665,37.278 37.229,37.278" id="path7088" inkscape:connector-curvature="0"/>
-  <path d="m 240.16,576.32 c 8.723,0 17.104,-1.998 24.609,-5.36 7.699,-3.557 16.421,-5.653 25.485,-5.653 9.015,0 17.737,2.096 25.388,5.653 7.553,3.362 15.983,5.311 24.803,5.311 8.771,0 17.152,-1.949 24.705,-5.311 7.651,-3.557 16.373,-5.653 25.437,-5.653 9.063,0 17.688,2.096 25.485,5.653 7.456,3.362 15.934,5.311 24.657,5.311 8.771,0 17.25,-1.949 24.706,-5.311 7.748,-3.557 16.421,-5.653 25.534,-5.653 9.014,0 17.688,2.096 25.387,5.653 7.553,3.362 15.984,5.311 24.755,5.311 8.82,0 17.201,-1.949 24.754,-5.311 7.651,-3.557 16.373,-5.653 25.388,-5.653 7.748,0 15.301,1.462 22.074,4.142 11.062,-12.084 17.932,-28.165 17.932,-45.805 0,-37.473 -30.358,-67.831 -67.83,-67.831 l -7.602,0.78 c -8.333,33.867 -42.151,35.28 -42.151,35.28 l -154.86,-0.049 -12.962,-7.602 31.235,-52.383 34.159,19.735 c 20.466,13.254 31.138,-5.36 31.138,-5.36 l 34.256,-55.844 c 14.863,-24.267 -16.714,-43.71 -31.527,-19.345 l -23.975,39.129 -57.013,-31.527 c -39.471,-22.026 -56.233,14.472 -56.233,14.472 l -44.782,76.699 c -7.602,15.935 -0.82898,22.806 -0.82898,22.806 l -22.123,-0.049 v 83.765 z" id="path7090" inkscape:connector-curvature="0"/>
-  <path d="m 620.45,633.38 c -12.136,0 -23.802,-1.949 -34.117,-5.311 -10.721,-3.606 -22.723,-5.702 -35.331,-5.702 -12.474,0 -24.542,2.096 -35.129,5.702 -10.451,3.362 -22.048,5.311 -34.252,5.311 -12.136,0 -23.802,-1.949 -34.253,-5.311 -10.653,-3.606 -22.655,-5.702 -35.128,-5.702 -12.609,0 -24.611,2.096 -35.331,5.702 -10.317,3.362 -22.049,5.311 -34.185,5.311 -12.07,0 -23.801,-1.949 -34.117,-5.311 -10.788,-3.606 -22.723,-5.702 -35.263,-5.702 -12.542,0 -24.61,2.096 -35.197,5.702 -10.451,3.362 -22.048,5.311 -34.184,5.311 -12.204,0 -23.868,-1.949 -34.319,-5.311 -10.586,-3.606 -22.655,-5.702 -35.129,-5.702 -12.542,0 -24.61,2.096 -35.263,5.702 -10.384,3.362 -22.049,5.311 -34.185,5.311 v -37.034 c 12.136,0 23.801,-1.998 34.185,-5.36 10.653,-3.557 22.721,-5.653 35.263,-5.653 12.474,0 24.542,2.096 35.129,5.653 10.451,3.362 22.115,5.36 34.319,5.36 12.136,0 23.733,-1.998 34.184,-5.36 10.586,-3.557 22.655,-5.653 35.197,-5.653 12.54,0 24.474,2.096 35.263,5.653 10.317,3.362 22.048,5.36 34.117,5.36 12.136,0 23.868,-1.998 34.185,-5.36 10.721,-3.557 22.721,-5.653 35.331,-5.653 12.472,0 24.474,2.096 35.128,5.653 10.451,3.362 22.117,5.36 34.253,5.36 12.204,0 23.801,-1.998 34.252,-5.36 10.586,-3.557 22.655,-5.653 35.129,-5.653 12.608,0 24.61,2.096 35.331,5.653 10.315,3.362 21.981,5.36 34.117,5.36 v 37.034 z" id="path7092" inkscape:connector-curvature="0" fill="#000080"/>
-  <path d="m 430.75,575.73 c -8.1834,0 -16.046,-1.998 -23.087,-5.36 -7.2227,-3.557 -15.405,-5.653 -23.908,-5.653 -8.4573,0 -16.64,2.096 -23.817,5.653 -7.0857,3.362 -14.994,5.311 -23.269,5.311 -8.2284,0 -16.091,-1.949 -23.177,-5.311 -7.1776,-3.557 -15.36,-5.653 -23.863,-5.653 -8.5024,0 -16.594,2.096 -23.908,5.653 -6.9947,3.362 -14.948,5.311 -23.132,5.311 -8.2284,0 -16.183,-1.949 -23.178,-5.311 -7.2687,-3.557 -15.405,-5.653 -23.954,-5.653 -8.4563,0 -16.594,2.096 -23.816,5.653 -7.0857,3.362 -14.995,5.311 -23.224,5.311 -8.2744,0 -16.137,-1.949 -23.223,-5.311 -7.1777,-3.557 -15.36,-5.653 -23.817,-5.653 -7.2687,0 -14.354,1.462 -20.708,4.142 -10.378,-12.084 -16.823,-28.165 -16.823,-45.805 0,-37.473 28.48,-67.831 63.634,-67.831 l 7.1317,0.78 c 7.8174,33.867 39.543,35.28 39.543,35.28 l 145.28,-0.049 12.16,-7.602 -9.3026,41.617 -22.046,-44.265 c -19.2,13.254 54.788,53.64 4.7884,28.64 l 47.863,-8.844 c -21.944,-5.267 83.68,46.29 38.577,43.655 l -63.508,-15.871 -2.5141,10.473 c 37.029,-22.026 -1.2459,86.472 37.754,-18.528 l 46.012,-5.301 c 7.1317,15.935 0.77768,22.806 0.77768,22.806 l 20.754,-46.049 v 83.765 z" id="svg_1" inkscape:connector-curvature="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/67-2.svg b/htdocs/public/symbols/svgicons/67-2.svg
deleted file mode 100755
index 99db17ee8299719195ea17575435e2a8db246620..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/67-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3069"/>
- <path sodipodi:type="arc" id="path3073" sodipodi:cx="-3.5643563" sodipodi:cy="7.0759077" sodipodi:rx="6.1254125" sodipodi:ry="6.1254125" d="m 2.5610561,7.0759077 a 6.1254125,6.1254125 0 1 1 -12.2508249,0 6.1254125,6.1254125 0 1 1 12.2508249,0 z" transform="matrix(1.3587811,0,0,1.3587811,16.84318,2.3853903)" fill="none" stroke="#ff5b00" stroke-width="3.925"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/68-1.svg b/htdocs/public/symbols/svgicons/68-1.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/68-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/68-2.svg b/htdocs/public/symbols/svgicons/68-2.svg
deleted file mode 100755
index a89d4bc99fbb44700259a471b155c75007003e77..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/68-2.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="68-2.svg">
-  <defs
-     id="defs14" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview12"
-     showgrid="false"
-     inkscape:zoom="8"
-     inkscape:cx="20.200219"
-     inkscape:cy="-2.8996853"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata3937">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <rect
-     id="rect3943"
-     width="23"
-     height="23"
-     x="0.5"
-     y="0.5"
-     rx="3.1373389"
-     style="fill:#217867;stroke:#ffffff;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none" />
-  <rect
-     id="rect3943-9"
-     width="20.02396"
-     height="20.02396"
-     x="1.9880199"
-     y="1.9880199"
-     rx="2.7313888"
-     style="fill:#217867;stroke:#ffffff;stroke-width:0.97604084;stroke-miterlimit:4;stroke-dasharray:none" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/69-1.svg b/htdocs/public/symbols/svgicons/69-1.svg
deleted file mode 100755
index bf919f489e7a966fb6412e1f7efd40b41aba524c..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/69-1.svg
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="24" width="24" version="1.1">
- <metadata id="metadata57"/>
- <defs id="defs55">
-  <filter filterUnits="objectBoundingBox" id="AI_Shadow_1">
-   <feGaussianBlur id="feGaussianBlur6" stdDeviation="4" in="SourceAlpha" result="blur"/>
-   <feOffset id="feOffset8" dx="4" in="blur" dy="4" result="offsetBlurredAlpha"/>
-   <feMerge id="feMerge10">
-    <feMergeNode id="feMergeNode12" in="offsetBlurredAlpha"/>
-    <feMergeNode id="feMergeNode14" in="SourceGraphic"/>
-   </feMerge>
-  </filter>
-  <filter id="AI_GaussianBlur_4">
-   <feGaussianBlur id="feGaussianBlur17" stdDeviation="4"/>
-  </filter>
-  <linearGradient gradientTransform="translate(279.44081,-282.1023)" y2="456.16" x2="432.1" y1="44.829" x1="71.43" gradientUnits="userSpaceOnUse" id="SVGID_1_">
-   <stop id="stop26" stop-color="#ffffff"/>
-   <stop id="stop28" offset="1" stop-color="#e6e6e6"/>
-  </linearGradient>
-  <linearGradient y2="198.65" x2="250.74" y1="338.65" x1="251.45" gradientUnits="userSpaceOnUse" id="SVGID_2_">
-   <stop id="stop35" stop-color="#ffffff"/>
-   <stop id="stop37" offset="1" stop-color="#4279cb"/>
-  </linearGradient>
- </defs>
- <g transform="matrix(0.08175062,0,0,0.08175062,-8.5298643,-6.8353428)" id="g4185">
-  <path d="m 389.3,270.7 c 0,0 -62.5,86.1 -138.8,86.1 -76.3,0 -137.6,-86.1 -137.6,-86.1 0,0 61.3,-88.1 137.6,-88.1 76.3,0 138.8,88.1 138.8,88.1 z" id="path32" fill="#ffffff" stroke="#000000" stroke-width="14" stroke-miterlimit="10"/>
-  <circle cx="251.1" cy="269.7" r="70" id="circle39" fill="url(#SVGID_2_)" stroke="#000000" stroke-width="8" stroke-miterlimit="10"/>
-  <path d="m 251.1,298.7 c -16,0 -29,-13 -29,-29 0,-16 13,-29 29,-29 16,0 29,13 29,29 0,16 -13,29 -29,29 z" id="path41"/>
-  <g id="g43" filter="url(#AI_GaussianBlur_4)">
-   <circle cx="225.3" cy="248.3" r="24.7" id="circle45" fill="#ffffff"/>
-  </g>
-  <line x1="250" y1="97" x2="250" y2="171" id="line47" fill="none" stroke="#000000" stroke-width="14" stroke-miterlimit="10"/>
-  <line x1="363.9" y1="130.6" x2="320.4" y2="190.5" id="line49" fill="none" stroke="#000000" stroke-width="14" stroke-miterlimit="10"/>
-  <line x1="136.6" y1="132" x2="180.1" y2="191.9" id="line51" fill="none" stroke="#000000" stroke-width="14" stroke-miterlimit="10"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/69-2.svg b/htdocs/public/symbols/svgicons/69-2.svg
deleted file mode 100755
index 10611c92ad5be3e5009cd4f15614be3c7cc3af29..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/69-2.svg
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="24"
-   width="24"
-   version="1.0"
-   viewBox="-0.7 -0.596 24.478088 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="69-2.svg">
-  <defs
-     id="defs13" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="861"
-     inkscape:window-height="534"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="-0.76271186"
-     inkscape:cy="12"
-     inkscape:window-x="317"
-     inkscape:window-y="158"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata1952">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3341"
-     transform="matrix(1,0,0,0.97809776,0.29016846,0.82007813)">
-    <path
-       style="fill:#4d4d4d"
-       sodipodi:open="true"
-       sodipodi:end="3.1406327"
-       sodipodi:start="3.1415927"
-       d="M 0.0690856,12.101988 A 4.3146133,3.6947634 0 0 1 4.3826636,8.4072245 4.3146133,3.6947634 0 0 1 8.6983118,12.100215 4.3146133,3.6947634 0 0 1 4.3868053,15.79675 4.3146133,3.6947634 0 0 1 0.06908759,12.105535"
-       sodipodi:ry="3.6947634"
-       sodipodi:rx="4.3146133"
-       sodipodi:cy="12.101988"
-       sodipodi:cx="4.3836989"
-       id="path3064"
-       sodipodi:type="arc" />
-    <path
-       style="fill:#4d4d4d"
-       sodipodi:open="true"
-       sodipodi:end="3.1406327"
-       sodipodi:start="3.1415927"
-       d="M -0.52747869,17.618847 A 6.8988371,5.2170744 0 0 1 6.369703,12.401773 6.8988371,5.2170744 0 0 1 13.270195,17.616343 6.8988371,5.2170744 0 0 1 6.3763252,22.83592 6.8988371,5.2170744 0 0 1 -0.52747552,17.623855"
-       sodipodi:ry="5.2170744"
-       sodipodi:rx="6.8988371"
-       sodipodi:cy="17.618847"
-       sodipodi:cx="6.3713584"
-       id="path3070"
-       sodipodi:type="arc" />
-    <path
-       style="fill:#4d4d4d"
-       sodipodi:open="true"
-       sodipodi:end="3.1406327"
-       sodipodi:start="3.1415927"
-       d="M 0.56472778,4.8770544 A 5.8142023,5.4726467 0 0 1 6.377535,-0.59559186 5.8142023,5.4726467 0 0 1 12.193132,4.8744281 5.8142023,5.4726467 0 0 1 6.383116,10.3497 5.8142023,5.4726467 0 0 1 0.56473046,4.8823082"
-       sodipodi:ry="5.4726467"
-       sodipodi:rx="5.8142023"
-       sodipodi:cy="4.8770547"
-       sodipodi:cx="6.3789301"
-       id="path3074"
-       sodipodi:type="arc" />
-    <path
-       style="fill:#4d4d4d"
-       sodipodi:open="true"
-       sodipodi:end="3.1406327"
-       sodipodi:start="3.1415927"
-       d="M 8.2794294,16.240707 A 7.2528496,6.6843758 0 0 1 15.530539,9.5563318 7.2528496,6.6843758 0 0 1 22.785128,16.237499 7.2528496,6.6843758 0 0 1 15.537501,22.925081 7.2528496,6.6843758 0 0 1 8.2794328,16.247124"
-       sodipodi:ry="6.6843758"
-       sodipodi:rx="7.2528496"
-       sodipodi:cy="16.240707"
-       sodipodi:cx="15.532279"
-       id="path3076"
-       sodipodi:type="arc" />
-    <path
-       style="fill:#4d4d4d"
-       sodipodi:open="true"
-       sodipodi:end="3.1406327"
-       sodipodi:start="3.1415927"
-       d="M 5.8055601,7.2356263 A 8.6098347,7.9886446 0 0 1 14.413329,-0.75301767 8.6098347,7.9886446 0 0 1 23.025228,7.2317925 8.6098347,7.9886446 0 0 1 14.421593,15.224269 8.6098347,7.9886446 0 0 1 5.8055641,7.2432954"
-       sodipodi:ry="7.9886446"
-       sodipodi:rx="8.6098347"
-       sodipodi:cy="7.2356267"
-       sodipodi:cx="14.415395"
-       id="path3084"
-       sodipodi:type="arc" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/70-1.svg b/htdocs/public/symbols/svgicons/70-1.svg
deleted file mode 100755
index f4d71b32feb2bb9f7ac933b2ec82f58a2e014d33..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/70-1.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24">
- <metadata id="metadata18"/>
- <path d="m 1.2088042,11.331373 -0.136115,0.168782 -0.13067037,0.179672 -0.11978117,0.179672 -0.11978116,0.185116 -0.1034474,0.190561 -0.10344739,0.196006 -0.0871136,0.20145 -0.0871136,0.20145 -0.0707798,0.212339 -0.0653352,0.21234 -0.054446,0.217784 -0.04900139,0.217784 -0.01633382,0.114336 -0.01633381,0.114337 -0.0163338,0.108892 -0.0108892,0.114336 -0.0108892,0.114337 -0.00544459,0.119781 -0.005444604,0.114337 0,0.114336 c 0,2.803969 2.286731704,5.090701 5.079811304,5.090701 2.2812869,0 4.2195644,-1.513599 4.8565822,-3.593436 l 0,0 0,0 5.9346134,0 0,0 0,0 c 0.234118,2.030836 1.960056,3.615214 4.050782,3.615214 2.24862,0 4.078005,-1.83483 4.078005,-4.083449 0,-1.056252 -0.397456,-2.019947 -1.061697,-2.749523 C 22.878309,12.556407 22.73675,12.022837 22.410074,11.63627 21.898282,11.021031 20.716803,10.68891 19.704108,10.3459 18.881973,10.068226 16.295789,9.5019872 14.466403,9.2515358 14.43918,8.8377462 14.341178,7.6344898 13.878387,6.5129023 13.36115,5.2660891 13.078031,4.9503024 13.197812,4.5855143 13.312148,4.220726 12.931026,4.3840642 12.843913,4.4820667 12.762244,4.5855143 12.566238,4.8522996 12.811245,5.3477581 13.050808,5.8268828 13.83483,7.5691546 13.938277,9.1862006 13.758605,9.1698667 13.600712,9.1535328 13.453708,9.1480882 13.399262,8.8377462 13.328482,8.5001811 13.301259,8.3477323 13.252258,8.0918361 12.707798,6.4257888 12.397456,5.7234354 12.092558,5.0265267 12.13067,5.1245295 12.13067,5.1245295 c 0,0 -0.163337,-0.6315735 -0.969139,-0.6696855 C 10.355731,4.4221762 9.1415853,4.3132844 8.3248954,4.2860612 7.5136501,4.258838 5.6951541,4.3078397 4.8675749,4.3895088 4.0508851,4.4820667 4.0889972,4.4439547 3.9365484,4.71074 3.7786551,4.9666361 3.7786551,4.9666361 3.7786551,4.9666361 c 0,0 -0.4410126,1.0671415 -0.6860196,1.83483 C 2.8530732,7.5691546 2.5753986,8.7669664 2.5481756,8.9684166 2.5155082,9.1589774 2.5862876,9.2950924 2.4229499,9.3658722 2.2541673,9.4420967 1.3666976,9.7959957 0.82768225,10.198896 0.29411153,10.596352 0.24511014,10.61813 0.23422094,10.667132 c -0.0217784,0.049 -0.0707798,0.098 0.12522578,0.179672 0.1796718,0.07078 0.52268153,0.245006 0.84935748,0.484569 l 0,0 0,0 0,0 0,0 z" id="path18" inkscape:connector-curvature="0" stroke-width="0" stroke-miterlimit="10.433"/>
- <path d="m 14.482737,12.12084 0,-0.05445 0,-0.05989 0,-0.06534 0,-0.07078 0,-0.07622 0,-0.08167 0.0054,-0.08711 0,-0.08711 0,-0.098 0,-0.09256 0,-0.103447 0,-0.098 0,-0.206895 0,-0.212339 0,-0.206895 0,-0.103447 0,-0.098 0,-0.098 0,-0.098 0,-0.09256 -0.0054,-0.087114 0,-0.081669 0,-0.081669 0,-0.076224 0,-0.07078 0,-0.059891 0,-0.05989 -0.0054,-0.049001 0,-0.038112 c 1.252257,0.1633381 3.288537,0.4954586 5.194147,1.072586 0.914693,0.277675 1.70416,0.539015 2.166951,0.854802 0.653352,0.451902 0.827579,1.007251 0.892914,1.328483 -0.735021,-0.702354 -1.720493,-1.132477 -2.809413,-1.132477 -1.21959,0 -2.319399,0.539015 -3.070754,1.393817 l 0,0 0,0 -2.368401,-0.822134 0,0 0,0 z" id="path12" inkscape:connector-curvature="0" fill="#00ff00" stroke="#000000" stroke-width="0" stroke-miterlimit="10.433"/>
- <path d="m 13.938277,9.354983 0,0.00544 0.0054,0 0,0.00544 0,0 0,0.00544 0,0 0,0.00544 0,0 0,0.00544 0,0.00544 0,0 0,0.00544 0,0 0,0.00544 0,0.00544 0,0 c 0.02722,1.274036 -0.0054,2.16695 -0.02722,2.520849 l 0,0 0,0 -0.41379,-0.147004 0,0 0,0 c 0.0054,-0.381122 0.01089,-1.9056095 0.01089,-2.1397275 0,-0.076224 -0.01089,-0.1960055 -0.03267,-0.3321205 0.114337,0.010889 0.266785,0.027223 0.457346,0.049001 l 0,0 0,0 0,0 0,0 z" id="path14" inkscape:connector-curvature="0" fill="#00ff00" stroke="#000000" stroke-width="0" stroke-miterlimit="10.433"/>
- <path d="m 12.749933,10.66625 0,0 0,0 -0.02208,0.310468 -2.237731,0 0,0 0,0 C 9.4917681,9.7076835 7.6226321,9.0607444 6.3049492,8.8076023 l 0,0 0,0 0.8439126,-3.3275478 0,0 0,0 c 0,0 2.2159522,0.038643 3.1796462,0.098753 0.95825,0.055817 1.029029,0.055817 1.127032,0.077285 0.098,0.021468 0.223229,0.055817 0.326676,0.2447359 0.098,0.1846251 0.73725,1.5547825 0.971367,2.7398188 0,0 -0.01779,2.0293468 -0.0037,2.0256028 z" id="path16" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccscccc" fill="#b3b3b3" stroke="#000000" stroke-width="0" stroke-miterlimit="10.433"/>
- <path d="m 19.921892,17.875781 -0.114337,-0.0054 -0.114336,-0.0054 -0.108892,-0.01633 -0.108892,-0.02178 -0.108892,-0.02178 -0.108892,-0.03267 -0.103448,-0.03267 -0.098,-0.04356 -0.103447,-0.04356 -0.09256,-0.049 -0.09256,-0.05445 -0.09256,-0.05989 -0.08711,-0.05989 -0.08711,-0.06533 -0.08167,-0.07078 -0.07623,-0.07622 -0.07622,-0.07622 -0.06534,-0.08167 -0.07078,-0.08711 -0.05989,-0.08711 -0.05989,-0.09256 -0.05445,-0.09256 -0.049,-0.098 -0.04356,-0.098 -0.03811,-0.098 -0.03811,-0.108892 -0.02722,-0.103447 -0.02722,-0.108892 -0.02178,-0.108892 -0.01089,-0.114336 -0.01089,-0.108893 0,-0.114336 c 0,-1.235924 1.001806,-2.243175 2.232285,-2.243175 1.23048,0 2.237731,1.007251 2.237731,2.243175 0,1.230479 -1.007251,2.23773 -2.237731,2.23773 l 0,0 0,0 0,0 z" id="path20" inkscape:connector-curvature="0" stroke-width="0" stroke-miterlimit="10.433" fill="#ffff00" stroke="#000000"/>
- <path d="m 5.0799144,17.418435 -0.1415596,0 -0.1415597,-0.01089 -0.1415596,-0.02178 -0.136115,-0.02178 -0.1361149,-0.03267 -0.136115,-0.03811 -0.1306704,-0.04356 -0.1252258,-0.049 -0.1252257,-0.05989 -0.1197812,-0.05989 -0.1197812,-0.07078 -0.108892,-0.07078 -0.1143366,-0.07622 -0.1034474,-0.08711 -0.1034474,-0.08711 -0.098003,-0.09256 -0.092558,-0.098 -0.087114,-0.103447 -0.081669,-0.103447 -0.081669,-0.108892 -0.07078,-0.114337 -0.07078,-0.119781 -0.05989,-0.119782 -0.054446,-0.125225 -0.054446,-0.130671 -0.043557,-0.13067 -0.038112,-0.13067 -0.027223,-0.136115 -0.027223,-0.136115 -0.016334,-0.14156 -0.010889,-0.141559 -0.00544,-0.147005 c 0,-1.546266 1.2577024,-2.803968 2.8039689,-2.803968 1.546266,0 2.8094133,1.257702 2.8094133,2.803968 0,1.551711 -1.2631473,2.809414 -2.8094133,2.809414 l 0,0 0,0 0,0 z" id="path22" inkscape:connector-curvature="0" stroke-width="0" stroke-miterlimit="10.433" fill="#ffff00" stroke="#000000"/>
- <path d="m 9.0708055,11.026475 -0.00544,-0.0054 -0.010889,-0.01633 -0.016334,-0.02178 -0.027223,-0.03267 -0.038112,-0.03811 -0.038112,-0.049 -0.054445,-0.049 -0.054446,-0.05989 -0.065335,-0.06533 -0.07078,-0.06533 -0.081669,-0.07623 -0.092558,-0.07622 -0.092558,-0.07622 L 8.3194508,10.313232 8.2051143,10.231564 8.0853332,10.14445 7.9601075,10.062781 7.8239925,9.981112 7.6824329,9.8939987 7.529984,9.8123296 7.3720905,9.7361052 7.2033082,9.6598807 7.0290808,9.5836563 6.8439645,9.5128765 6.6534036,9.4529859 6.4573981,9.3876508 6.2505033,9.3332049 6.0381639,9.2896478 5.8149352,9.2460907 5.5808172,9.2134229 5.3412551,9.1861997 5.0962483,9.1698658 C 2.4175053,9.0391964 0.70790109,10.443903 0.46833871,10.705244 l 0,0 0,0 0.45190176,0.239562 0,0 0,0 C 0.942019,10.955695 2.1724983,9.5292104 4.7913505,9.4529859 6.8112967,9.39854 8.3357847,10.384012 8.9728029,11.021031 c 0.098003,0.103447 0.098003,0.0054 0.098003,0.0054 l 0,0 0,0 0,0 z" id="path24" inkscape:connector-curvature="0" fill="#00ff00" stroke="#000000" stroke-width="0" stroke-miterlimit="10.433"/>
- <path d="m 19.921892,16.460185 -0.04356,0 -0.04356,0 -0.03811,-0.0054 -0.04356,-0.01089 -0.03811,-0.0054 -0.03811,-0.01089 -0.03811,-0.01633 -0.03811,-0.01633 -0.03811,-0.01633 -0.03811,-0.01633 -0.03267,-0.02178 -0.03267,-0.02178 -0.03267,-0.02178 -0.03267,-0.02178 -0.03267,-0.02722 -0.02722,-0.02722 -0.02722,-0.03267 -0.02722,-0.02722 -0.02178,-0.03267 -0.02722,-0.03267 -0.01633,-0.03267 -0.02178,-0.03267 -0.02178,-0.03811 -0.01633,-0.03811 -0.01089,-0.03267 -0.01633,-0.04356 -0.01089,-0.03811 -0.0054,-0.03811 -0.01089,-0.04356 -0.0054,-0.03811 0,-0.04356 -0.0054,-0.03811 c 0,-0.46279 0.375677,-0.833023 0.833024,-0.833023 0.457346,0 0.827579,0.370233 0.827579,0.833023 0,0.451902 -0.370233,0.822135 -0.827579,0.822135 l 0,0 0,0 0,0 z" id="path28" inkscape:connector-curvature="0" stroke="#000000" stroke-width="0" stroke-miterlimit="10.433"/>
- <path d="m 5.0799144,15.442045 -0.043557,-0.0054 -0.038112,0 -0.043557,-0.0054 -0.038113,-0.01089 -0.043557,-0.0054 -0.038113,-0.01089 -0.038112,-0.01633 -0.038112,-0.01089 -0.038113,-0.01633 -0.032668,-0.02178 -0.032668,-0.01633 -0.038112,-0.02178 -0.032668,-0.02722 -0.027223,-0.02178 -0.032668,-0.02722 -0.027223,-0.02722 -0.027223,-0.02722 -0.027223,-0.03267 -0.021779,-0.03267 -0.027223,-0.03267 -0.021779,-0.03267 -0.016334,-0.03267 -0.021778,-0.03811 -0.016334,-0.03811 -0.010889,-0.03267 -0.016334,-0.03811 -0.010889,-0.04356 -0.010889,-0.03811 -0.00544,-0.04356 -0.00544,-0.03811 0,-0.04356 -0.00544,-0.04356 c 0,-0.457346 0.3702329,-0.827579 0.8275791,-0.827579 0.4627909,0 0.8330238,0.370233 0.8330238,0.827579 0,0.457347 -0.3702329,0.833024 -0.8330238,0.833024 l 0,0 0,0 0,0 z" id="path30" inkscape:connector-curvature="0" stroke="#000000" stroke-width="0" stroke-miterlimit="10.433"/>
- <path d="m 6.3669949,5.3998846 -0.8971328,3.4514683 0,0 0,0 c 0,0 -0.8205483,-0.087906 -2.1717178,0.064773 0,0 -0.1969315,0 -0.1586393,-0.2035717 0.038291,-0.203572 0.3282193,-1.9107996 1.0995347,-3.067458 0,0 0.043763,-0.1156657 0.3555709,-0.1526789 0.3063379,-0.02776 1.0885941,-0.078652 1.7723843,-0.092533 l 0,0 0,0 0,0 z" id="path26" inkscape:connector-curvature="0" fill="#b3b3b3" stroke="#000000" stroke-width="0.185" stroke-miterlimit="10.433"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/70-2.svg b/htdocs/public/symbols/svgicons/70-2.svg
deleted file mode 100755
index 668c42e1b16cf1426423cbeab3f9300e7c26bd18..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/70-2.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3937"/>
- <rect id="rect3943" width="23" height="23" x="0.499" y="0.499" rx="1.917" fill="#cccccc" stroke="#000000" stroke-width="0.998"/>
- <g id="g3338" transform="translate(0,-0.57361507)">
-  <text transform="scale(0.99533893,1.0046829)" sodipodi:linespacing="0%" id="text4453" y="10.894" x="11.849" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="-0.184" font-size="7.5"><tspan y="10.894" x="11.757" id="tspan4455" sodipodi:role="line">FRZ</tspan><tspan id="tspan4457" y="10.894" x="11.849" sodipodi:role="line"/>
-  </text>
-  <text transform="scale(0.89906163,1.1122708)" sodipodi:linespacing="0%" id="text4459" y="17.708" x="13.351" font-family="Sans" text-anchor="middle" text-align="center" word-spacing="0" line-height="0%" font-weight="bold" letter-spacing="-0.252" font-size="7.5"><tspan y="17.708" x="13.225" id="tspan4461" sodipodi:role="line">RAIN</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/71-1.svg b/htdocs/public/symbols/svgicons/71-1.svg
deleted file mode 100755
index 17f83b5c822575d01f42c95af33fd49815e935cb..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/71-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3077"/>
- <rect id="rect3923" width="22.31" height="22.31" x="0.845" y="0.845" fill="#cccccc" stroke="#000099" stroke-width="1.69"/>
- <path d="M 8,0.66006602 8,22.943895" id="path3925" inkscape:connector-curvature="0" fill="none" stroke="#000099" stroke-width="1.6"/>
- <path d="M 16,0.92409211 16,23.207922" id="path3925-1" inkscape:connector-curvature="0" fill="none" stroke="#000099" stroke-width="1.6"/>
- <path d="M 23.075911,16 0.7920807,16" id="path3925-1-6" inkscape:connector-curvature="0" fill="none" stroke="#000099" stroke-width="1.6"/>
- <path d="M 23.287129,8 1.0032995,8" id="path3925-1-6-5" inkscape:connector-curvature="0" fill="none" stroke="#000099" stroke-width="1.6"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/71-2.svg b/htdocs/public/symbols/svgicons/71-2.svg
deleted file mode 100755
index 98e4c8252eb3ac9e372a08f2aa72f180b5e8c68e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/71-2.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata4038"/>
- <path d="m 0.79240343,11.317982 22.41519257,0 -11.228467,11.939825 z" id="path3073-7" inkscape:connector-curvature="0" fill="#ffffff" stroke="#000000" stroke-linejoin="round" stroke-width="1.585"/>
- <g transform="translate(-2e-7,0.4661015)" id="g4597">
-  <path d="M 8.0847458,0.0847458 15.915254,7.915254" id="path4049" fill="none" stroke="#000000" stroke-linecap="round"/>
-  <path d="M 15.915255,0.084746 8.0847452,7.915254" id="path4049-3" fill="none" stroke="#000000" stroke-linecap="round"/>
-  <path d="m 7.5597724,3.898305 8.8804556,0" id="path4069" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="1.058"/>
-  <path d="M 12,0.0338985 12,7.966102" id="path4069-0" fill="none" stroke="#000000" stroke-linecap="round"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/72-1.svg b/htdocs/public/symbols/svgicons/72-1.svg
deleted file mode 100755
index 4c83e26583a4743c842e5a499d5f7a0400408964..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/72-1.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3012"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g3036" transform="translate(289.14285,1125.1429)">
-   <rect rx="1.995" y="-96.78" x="-289.14" height="24" width="24" id="rect3284" fill="#0078ff" fill-rule="evenodd"/>
-   <g transform="matrix(0.0525723,0,0,0.0525723,-288.14285,-100.97938)" id="g1882" fill="#e2e3db">
-    <g id="g1884">
-     <path id="path1886" d="m 89.25,279.01 c 21.59,0 39.09,-17.5 39.09,-39.08 0,-21.59 -17.5,-39.09 -39.09,-39.09 -21.585,0 -39.085,17.5 -39.085,39.09 0,21.58 17.5,39.08 39.085,39.08 z" inkscape:connector-curvature="0"/>
-     <path id="path1888" d="M 89.25,239.93" inkscape:connector-curvature="0"/>
-    </g>
-    <path id="path1890" d="m 173.65,228.84 h 156.23 c 22.92,0 36.43,14.76 36.43,34.51 V 319.9 H 173.65 v -91.06 z" inkscape:connector-curvature="0"/>
-    <path id="path1892" d="M 131.12,249.08 V 283 H 71.054 c -29,0.1 -29.047,37.38 0,37.38 H 149.8 c 11.5,0 18.7,-9.28 18.7,-19.78 v -51.52 c 0,-28.22 -37.38,-28.22 -37.38,0 z" inkscape:connector-curvature="0"/>
-    <path id="path1894" d="M 42.702,196.26 C 42.702,165.48 0,165.48 0,196.26 v 246.81 h 43.651 v -63.74 h 332.12 v 63.26 h 42.7 V 251.96 c 0,-32.48 -43.17,-32.48 -43.17,0 v 76.09 h -332.6 l 0.002,-131.79 z" inkscape:connector-curvature="0"/>
-   </g>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/72-2.svg b/htdocs/public/symbols/svgicons/72-2.svg
deleted file mode 100755
index 178ca43b10d85c22a834b64beea1a7b2c9e9d566..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/72-2.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24"
-   height="24"
-   version="1.1"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="72-2.svg">
-  <defs
-     id="defs33" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1277"
-     inkscape:window-height="747"
-     id="namedview31"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="-16.830508"
-     inkscape:cy="12"
-     inkscape:window-x="212"
-     inkscape:window-y="418"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="layer1" />
-  <metadata
-     id="metadata3212">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1028.3622)">
-    <rect
-       style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.14321816px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       id="rect3334"
-       width="21.856783"
-       height="21.856781"
-       x="1.0716085"
-       y="1029.4338"
-       ry="0" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/73-1.svg b/htdocs/public/symbols/svgicons/73-1.svg
deleted file mode 100755
index 80b2d43f7a46fdb6338c05b88fe3354c10d11ae7..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/73-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata4744"/>
- <path d="m 0,1.1917886 24,0 L 17.938828,24 6.104348,24 z" id="path4752" inkscape:connector-curvature="0" fill="#ffff00"/>
- <text x="2.623" y="10.633" id="text5262" sodipodi:linespacing="125%" transform="scale(0.98919696,1.010921)" fill="#0e6600" font-family="Sans" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="9"><tspan sodipodi:role="line" id="tspan5264" x="2.623" y="10.633">TCP</tspan>
- </text>
- <text x="6.773" y="22.18" id="text5262-9" sodipodi:linespacing="125%" transform="scale(1.0579262,0.94524551)" fill="#0e6600" font-family="Sans" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="9"><tspan sodipodi:role="line" id="tspan5264-7" x="6.773" y="22.18">IP</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/73-2.svg b/htdocs/public/symbols/svgicons/73-2.svg
deleted file mode 100755
index d1c7d5c0dafe88148db9b548f4fd75123bb6118f..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/73-2.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata4038"/>
- <path d="m 0.79240343,11.317982 22.41519257,0 -11.228467,11.939825 z" id="path3073-7" inkscape:connector-curvature="0" fill="#ffffff" stroke="#000000" stroke-linejoin="round" stroke-width="1.585"/>
- <path sodipodi:type="arc" id="path3756" sodipodi:cx="-16.576271" sodipodi:cy="4.6779661" sodipodi:rx="4.1694913" sodipodi:ry="4.1694913" d="m -12.40678,4.6779661 a 4.1694913,4.1694913 0 1 1 -8.338982,0 4.1694913,4.1694913 0 1 1 8.338982,0 z" transform="matrix(1.2682927,0,0,1.2682927,33.023564,-0.64489491)" stroke-width="1.6"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/74-1.svg b/htdocs/public/symbols/svgicons/74-1.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/74-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/74-2.svg b/htdocs/public/symbols/svgicons/74-2.svg
deleted file mode 100755
index 472fbb36e4b95759b0fc574191f3c9e87937ca4d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/74-2.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g3612" transform="matrix(0.10386872,0,0,0.10386872,-31.118241,990.7961)" stroke="#d45500" stroke-width="6.657">
-   <g id="g3620">
-    <path inkscape:connector-curvature="0" d="m 480.641,428.896 c -0.08,0 -54.669,1.311 -54.669,1.311 l 43.71,-62.555 c 0.465,-0.676 1.057,-1.586 1.672,-2.652 l -79.879,0 -48.62,102.676 c -1.448,3.059 -1.251,6.643 0.524,9.525 1.776,2.881 4.89,4.67 8.273,4.75 l 42.475,1.021 -53.1,90.703 c -2.462,4.193 -1.66,9.635 1.91,12.945 1.936,1.793 4.455,2.779 7.092,2.779 2.898,-0.002 5.689,-1.221 7.649,-3.338 l 130.29,-140.363 c 2.735,-2.947 3.439,-7.246 1.788,-10.91 -1.617,-3.593 -5.19,-5.892 -9.115,-5.892 z" id="path3622" fill="#ffdc21"/>
-   </g>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/75-1.svg b/htdocs/public/symbols/svgicons/75-1.svg
deleted file mode 100755
index c71b0bd4af3654bf2854f35e9343833ea6f68208..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/75-1.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3010"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g3032" transform="translate(614.85714,1462.2857)">
-   <path sodipodi:nodetypes="cccsscsssscssc" id="rect2391" d="m -594.6091,-422.9064 -8.24601,-6.1895 -8.25007,6.19208 0,11.62589 c 0,0.2288 0.21777,0.41209 0.4872,0.41209 l 4.63803,0 0,-3.87965 c 0,-0.22837 0.21625,-0.41296 0.48619,-0.41296 l 5.30971,0 c 0.26994,0 0.4862,0.18459 0.4862,0.41296 l 0,3.87965 4.60256,0 c 0.26943,0 0.48619,-0.18329 0.48619,-0.41209 z" inkscape:connector-curvature="0" fill="#ff0000" stroke="#000000" stroke-width="1.865"/>
-   <path id="path2399-0" d="m -602.90242,-433.68061 -11.70152,8.78223 1.2326,1.17832 10.51643,-7.89324 10.51441,7.89324 1.23016,-1.17832 -11.69899,-8.78223 -0.0456,0.0447 -0.0476,-0.0447 z" inkscape:connector-curvature="0" stroke="#000000" stroke-linejoin="round" stroke-width="0.466"/>
-   <path id="rect2404" d="m -611.10488,-432.41644 2.96628,0 -0.0258,1.4891 -2.94045,2.25147 0,-3.74057 z" inkscape:connector-curvature="0"/>
-   <path transform="matrix(1.3354475,0,0,1.3354475,-572.93556,-438.8482)" d="m -19.929245,12.915094 c 0,1.367687 -1.108729,2.476416 -2.476416,2.476416 -1.367686,0 -2.476415,-1.108729 -2.476415,-2.476416 0,-1.367686 1.108729,-2.476415 2.476415,-2.476415 1.367687,0 2.476416,1.108729 2.476416,2.476415 z" sodipodi:ry="2.4764152" sodipodi:rx="2.4764152" sodipodi:cy="12.915094" sodipodi:cx="-22.405661" id="path3003" sodipodi:type="arc" fill="#ffffff" stroke="#000000" stroke-width="0.834"/>
-   <path inkscape:connector-curvature="0" id="path3793" d="m -602.85714,-422.35748 0,-1.58471" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="0.613"/>
-   <path inkscape:connector-curvature="0" id="path3793-6" d="m -603.60832,-421.60077 -0.99519,0" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="0.562"/>
-   <path transform="matrix(16.977259,0,0,16.977259,51.188677,-608.51344)" d="m -38.480178,11.009591 c 0,0.02465 -0.01999,0.04464 -0.04464,0.04464 -0.02465,0 -0.04464,-0.01999 -0.04464,-0.04464 0,-0.02465 0.01999,-0.04464 0.04464,-0.04464 0.02465,0 0.04464,0.01999 0.04464,0.04464 z" sodipodi:ry="0.044640578" sodipodi:rx="0.044640578" sodipodi:cy="11.009591" sodipodi:cx="-38.524818" id="path3813" sodipodi:type="arc"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/75-2.svg b/htdocs/public/symbols/svgicons/75-2.svg
deleted file mode 100755
index c84a79fefa0ba2fdfda11657f9b4f3f8f36f5923..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/75-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24">
- <metadata id="metadata17"/>
- <path sodipodi:nodetypes="cccc" d="m 8.97624,2.120499 6.94776,0 L 11.99999,8.890666 8.076,2.1205" id="path22355" inkscape:connector-curvature="0" fill="#ec1b24" fill-rule="evenodd"/>
- <path d="M 11.999,15.922856 15.75,21.895125 24,2.104875 20.496008,2.136125 15.49975,13.955375 11.999,9.226959" id="path22353-6" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" fill="#1a1a1a" fill-rule="evenodd"/>
- <path d="M 12.001,15.922856 8.25,21.895125 0,2.104875 3.503992,2.136125 8.50025,13.955375 12.001,9.226959" id="path22353-6-1" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" fill="#1a1a1a" fill-rule="evenodd"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/76-1.svg b/htdocs/public/symbols/svgicons/76-1.svg
deleted file mode 100755
index 5a32cf8d5be46134dae1a956693beb4a57b6db24..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/76-1.svg
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <defs id="defs3">
-  <linearGradient id="linearGradient2985" inkscape:collect="always">
-   <stop id="stop2987" stop-color="#d8dfd6"/>
-   <stop id="stop2989" offset="1" stop-color="#d8dfd6" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2752">
-   <stop id="stop2754" stop-color="#9d9d9d"/>
-   <stop id="stop2756" offset="1" stop-color="#b9b9b9"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2711">
-   <stop id="stop2713" stop-color="#909090"/>
-   <stop id="stop2715" offset="1" stop-color="#bebebe" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2701">
-   <stop id="stop2703" stop-color="#585956"/>
-   <stop id="stop2705" offset="1" stop-color="#bbbeb8"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2691">
-   <stop id="stop2693" stop-color="#868686"/>
-   <stop id="stop2695" offset="1" stop-color="#e9e9e9"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2683" inkscape:collect="always">
-   <stop id="stop2685"/>
-   <stop id="stop2687" offset="1" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2675">
-   <stop id="stop2677" stop-color="#5b5b97"/>
-   <stop id="stop2679" offset="1" stop-color="#1b1b43"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2667">
-   <stop id="stop2669" stop-color="#ffffff"/>
-   <stop id="stop2671" offset="1" stop-color="#fcfcff" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2635" inkscape:collect="always">
-   <stop id="stop2637" stop-color="#f9fff5"/>
-   <stop id="stop2639" offset="1" stop-color="#f9fff5" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2623">
-   <stop id="stop2625" stop-color="#dfdfde"/>
-   <stop id="stop2627" offset="1" stop-color="#9d9f9a"/>
-  </linearGradient>
-  <linearGradient inkscape:collect="always" id="linearGradient2415">
-   <stop id="stop2417" stop-color="#ffffff"/>
-   <stop offset="1" id="stop2419" stop-color="#ffffff" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2379">
-   <stop id="stop2381" stop-color="#1a4876"/>
-   <stop offset="1" id="stop2383" stop-color="#3f54a3" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient inkscape:collect="always" id="linearGradient2307">
-   <stop id="stop2309" stop-color="#5a7aa4"/>
-   <stop offset="1" id="stop2311" stop-color="#5a7aa4" stop-opacity="0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2253">
-   <stop id="stop2255" stop-color="#8f8f8f"/>
-   <stop offset="1" id="stop2257" stop-color="#494949"/>
-  </linearGradient>
-  <linearGradient id="linearGradient2245">
-   <stop id="stop2247" stop-color="#dde1d9"/>
-   <stop offset="1" id="stop2249" stop-color="#cacdc6"/>
-  </linearGradient>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2245" id="linearGradient2251" gradientTransform="matrix(0.59023401,0,0,0.46235188,10.909502,10.860705)" x1="8.612" y1="7.229" x2="34.784" y2="33.34" gradientUnits="userSpaceOnUse"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2307" id="linearGradient2313" gradientTransform="matrix(1.208393,0,0,0.98441,-0.789284,-0.50338)" x1="16.852" y1="9.324" x2="24.419" y2="53.735" gradientUnits="userSpaceOnUse"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2415" id="linearGradient2334" gradientTransform="matrix(1.289166,0,0,0.922731,-0.789284,-0.50338)" x1="16.12" y1="10.842" x2="27.29" y2="39.03" gradientUnits="userSpaceOnUse"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2415" id="linearGradient2421" gradientTransform="matrix(0.57884895,0,0,0.47144572,12.280787,12.064496)" x1="17.698" y1="13" x2="34.975" y2="55.2" gradientUnits="userSpaceOnUse"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2379" id="linearGradient2445" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.02787,0,0,0.822296,1.523986,1.001198)" x1="21.356" y1="30.08" x2="19.995" y2="-1.322"/>
-  <radialGradient inkscape:collect="always" xlink:href="#linearGradient2683" id="radialGradient2460" gradientTransform="matrix(1.0060312,0,0,0.37133584,10.724808,4.4285903)" cx="12.576" cy="67.5" r="8.766" gradientUnits="userSpaceOnUse"/>
-  <radialGradient inkscape:collect="always" xlink:href="#linearGradient2683" id="radialGradient2464" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0060312,0,0,0.37133584,10.724808,1.6055035)" cx="12.576" cy="67.5" r="8.766"/>
-  <linearGradient y2="92.57" x2="0" y1="84.03" gradientTransform="scale(1.983556,0.504145)" gradientUnits="userSpaceOnUse" id="linearGradient2653" xlink:href="#linearGradient2623" inkscape:collect="always"/>
-  <linearGradient y2="74.1" x2="8.649" y1="101.28" x1="13.629" gradientTransform="scale(2.143634,0.466498)" gradientUnits="userSpaceOnUse" id="linearGradient2655" xlink:href="#linearGradient2635" inkscape:collect="always"/>
-  <radialGradient r="8.766" cy="67.5" cx="12.576" gradientTransform="matrix(1.2720238,0,0,0.35026711,8.5110164,9.4523034)" gradientUnits="userSpaceOnUse" id="radialGradient2659" xlink:href="#linearGradient2683" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="26.729" x2="17.199" y1="1.654" x1="11.492" gradientTransform="matrix(0.64723455,0,0,0.4680418,12.066894,10.846521)" id="linearGradient2673" xlink:href="#linearGradient2667" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="8.867" x2="16.316" y1="32.622" x1="19.15" gradientTransform="matrix(0.61336354,0,0,0.49388778,12.13547,10.846521)" id="linearGradient2681" xlink:href="#linearGradient2675" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="162.45" x2="0" y1="171.29" gradientTransform="matrix(2.9803427,0,0,0.09156528,12.280787,11.187201)" id="linearGradient2689" xlink:href="#linearGradient2683" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="64.893" x2="12.13" y1="53.54" x1="12.207" gradientTransform="matrix(0.94884831,0,0,0.28760733,11.758393,11.542102)" id="linearGradient2707" xlink:href="#linearGradient2701" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="3.845" x2="35.521" y1="3.938" x1="34.3" id="linearGradient2717" xlink:href="#linearGradient2711" inkscape:collect="always" gradientTransform="matrix(0.69543065,0,0,0.34397002,6.3153941,13.032945)"/>
-  <linearGradient y2="3.845" x2="35.521" y1="3.938" x1="34.3" gradientUnits="userSpaceOnUse" id="linearGradient2721" xlink:href="#linearGradient2711" inkscape:collect="always" gradientTransform="matrix(0.69543065,0,0,0.34397002,6.3747381,14.132995)"/>
-  <linearGradient y2="3.845" x2="35.521" y1="3.938" x1="34.3" gradientUnits="userSpaceOnUse" id="linearGradient2725" xlink:href="#linearGradient2711" inkscape:collect="always" gradientTransform="matrix(0.69543065,0,0,0.34397002,6.4340821,15.177784)"/>
-  <linearGradient y2="3.845" x2="35.521" y1="3.938" x1="34.3" gradientUnits="userSpaceOnUse" id="linearGradient2729" xlink:href="#linearGradient2711" inkscape:collect="always" gradientTransform="matrix(0.69543065,0,0,0.34397002,6.4934261,16.222572)"/>
-  <linearGradient y2="3.845" x2="35.521" y1="3.938" x1="34.3" gradientUnits="userSpaceOnUse" id="linearGradient2733" xlink:href="#linearGradient2711" inkscape:collect="always" gradientTransform="matrix(0.69543065,0,0,0.34397002,6.5527701,17.267361)"/>
-  <linearGradient y2="74.1" x2="8.649" y1="101.28" x1="13.629" gradientTransform="matrix(1.1198222,0,0,0.24369591,12.280787,11.276294)" gradientUnits="userSpaceOnUse" id="linearGradient2741" xlink:href="#linearGradient2635" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="100.2" x2="0" y1="88.51" gradientTransform="matrix(1.206653,0,0,0.22615913,11.758393,11.542102)" id="linearGradient2758" xlink:href="#linearGradient2752" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="31.25" x2="32.537" y1="5.382" x1="10.391" gradientTransform="matrix(0.57693072,0,0,0.47301291,11.758393,11.542102)" id="linearGradient2979" xlink:href="#linearGradient2253" inkscape:collect="always"/>
-  <linearGradient y2="52.54" x2="18.18" y1="48.643" x1="18.317" gradientTransform="matrix(0.59023401,0,0,0.46235188,11.758393,11.542102)" gradientUnits="userSpaceOnUse" id="linearGradient2981" xlink:href="#linearGradient2245" inkscape:collect="always"/>
-  <linearGradient gradientUnits="userSpaceOnUse" y2="44.879" x2="0" y1="49.953" gradientTransform="matrix(0.73329015,0,0,0.32902483,40.700924,13.381553)" id="linearGradient2991" xlink:href="#linearGradient2985" inkscape:collect="always"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2752" id="linearGradient3096" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.206653,0,0,0.22615913,-0.861067,23.375509)" y1="88.51" x2="0" y2="100.2"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2245" id="linearGradient3108" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.59023401,0,0,0.46235188,-0.861067,23.375509)" x1="18.317" y1="48.643" x2="18.18" y2="52.54"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2667" id="linearGradient3112" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.64723455,0,0,0.4680418,-0.552566,22.679928)" x1="11.492" y1="1.654" x2="17.199" y2="26.729"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2683" id="linearGradient3116" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.9803427,0,0,0.09156528,-0.338673,23.020608)" y1="171.29" x2="0" y2="162.45"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2245" id="linearGradient3120" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.59023401,0,0,0.46235188,-1.709958,22.694112)" x1="8.612" y1="7.229" x2="34.784" y2="33.34"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient2701" id="linearGradient3123" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.94884831,0,0,0.28760733,-0.861067,23.375509)" x1="12.207" y1="53.54" x2="12.13" y2="64.893"/>
- </defs>
- <metadata id="metadata4"/>
- <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(0,-24)">
-  <ellipse id="path2452" cx="23.376" cy="29.494" rx="8.819" ry="3.255" transform="translate(-12.61946,11.833407)" fill="url(#radialGradient2460)" fill-rule="evenodd" color="#000000"/>
-  <ellipse id="path2407" cx="23.19" cy="28.739" rx="4.908" ry="2.058" transform="translate(-12.61946,11.833407)" fill="#adb0aa" fill-rule="evenodd" stroke="#1a1a1a" color="#000000" stroke-width="0.522"/>
-  <ellipse id="path1825" cx="23.19" cy="28.37" rx="4.614" ry="1.935" transform="translate(-12.61946,11.833407)" fill="none" stroke="#7b7f7a" color="#000000" stroke-width="0.491"/>
-  <ellipse id="path2983" cx="23.19" cy="27.978" rx="4.614" ry="1.935" transform="translate(-12.61946,11.833407)" fill="none" stroke="url(#linearGradient2991)" color="#000000" stroke-width="0.334"/>
-  <path sodipodi:nodetypes="ccccccccccccccccc" d="m 12.557937,38.402831 -0.03265,0.522394 c 0,0 2.25889,1.880184 4.701549,2.195366 1.22133,0.15759 2.483293,0.366936 3.526162,0.620343 1.042869,0.253407 1.874537,0.584876 2.154876,0.865216 0.162157,0.162157 0.235633,0.299665 0.261198,0.40812 0.02556,0.108455 0.01996,0.185354 -0.04897,0.293847 -0.137877,0.216987 -0.564111,0.505496 -1.289661,0.734617 -1.451099,0.458242 -4.033105,0.750942 -7.607367,0.750942 l 0,0.522394 c 3.60243,0 6.197511,-0.275652 7.754291,-0.767267 0.778389,-0.245807 1.319015,-0.530589 1.583507,-0.946839 0.132247,-0.208125 0.186663,-0.464121 0.130599,-0.701968 -0.05606,-0.237846 -0.200889,-0.462086 -0.408121,-0.669317 -0.458437,-0.458438 -1.325229,-0.734717 -2.399749,-0.995814 -1.074519,-0.261098 -2.358994,-0.477641 -3.59146,-0.636669 -2.464932,-0.318055 -4.734199,-2.195365 -4.734199,-2.195365 z" id="path2411" inkscape:connector-curvature="0" fill="#d0d0d0" fill-rule="evenodd" stroke="#1a1a1a" stroke-linejoin="round" stroke-width="0.209"/>
-  <ellipse id="path2462" cx="23.376" cy="26.671" rx="8.819" ry="3.255" transform="translate(-12.61946,11.833407)" fill="url(#radialGradient2464)" fill-rule="evenodd" color="#000000"/>
-  <rect y="39.41" x="8.266" height="1.431" width="4.722" id="rect2699" fill="url(#linearGradient3123)" fill-rule="evenodd" color="#000000" stroke-width="0.609"/>
-  <path d="m 2.837956,24.261292 15.456705,0 c 0.47608,0 0.848445,0.304808 0.870702,0.732181 l 0.695852,13.361862 c 0.03041,0.583898 -0.470707,1.055395 -1.055396,1.055395 l -16.479021,0 c -0.584689,0 -1.085804,-0.471497 -1.055396,-1.055395 L 1.967254,24.993473 c 0.02104,-0.40409 0.286013,-0.732181 0.870702,-0.732181 z" id="rect2404" sodipodi:nodetypes="cssssssss" inkscape:connector-curvature="0" fill="url(#linearGradient3120)" fill-rule="evenodd" stroke="#1a1a1a" color="#000000" stroke-width="0.522"/>
-  <path sodipodi:nodetypes="ccccc" id="path2377" d="m 4.1898777,26.200665 -0.5840244,10.364714 12.9999657,0 -0.627665,-10.320787 -11.7882763,-0.04393 z" inkscape:connector-curvature="0" fill="#008000" fill-rule="evenodd" stroke="#000000" stroke-linejoin="round" stroke-width="0.535"/>
-  <path d="m 2.365989,38.386922 16.418058,0" id="path2393" inkscape:connector-curvature="0" stroke-opacity="0.248" fill="none" stroke="url(#linearGradient3116)" stroke-linecap="round" stroke-width="0.52"/>
-  <path sodipodi:nodetypes="cssssssss" id="path2397" d="m 2.75108,24.789285 15.591121,-0.01975 c 0.148202,-1.88e-4 0.292176,0.123938 0.304088,0.340885 l 0.711445,12.957076 c 0.03032,0.552187 -0.281962,0.932929 -0.83498,0.932929 l -15.945548,0 c -0.553018,0 -0.832182,-0.380716 -0.80233,-0.932929 L 2.466573,25.271882 c 0.02021,-0.373946 0.08692,-0.48235 0.284507,-0.4826 z" inkscape:connector-curvature="0" stroke-opacity="0.701" fill="none" stroke="#333333" color="#000000" stroke-width="0.522"/>
-  <path sodipodi:nodetypes="ccccc" d="m 3.68979,25.854982 -0.419237,9.335359 c 5.769656,-1.254076 5.966508,-5.481066 13.140324,-6.867788 l -0.08435,-2.43306 -12.636735,-0.03451 z" id="path2443" inkscape:connector-curvature="0" opacity="0.531" fill="url(#linearGradient3112)" fill-rule="evenodd"/>
-  <ellipse id="path2657" cx="24.508" cy="33.1" rx="11.151" ry="3.071" transform="translate(-12.61946,11.833407)" fill="url(#radialGradient2659)" fill-rule="evenodd" color="#000000"/>
-  <path sodipodi:nodetypes="cssssssss" id="path2409" d="m 2.514741,42.608736 16.195481,0 c 0.584689,0 0.510565,0.141798 0.570573,0.320148 l 1.480803,4.401073 c 0.06001,0.17835 0.01412,0.320147 -0.570573,0.320147 l -19.157087,0 c -0.584689,0 -0.630582,-0.141797 -0.570573,-0.320147 l 1.480803,-4.401073 c 0.06001,-0.17835 -0.01412,-0.320148 0.570573,-0.320148 z" inkscape:connector-curvature="0" fill="url(#linearGradient3108)" fill-rule="evenodd" stroke="#1a1a1a" color="#000000" stroke-width="0.522"/>
-  <path sodipodi:nodetypes="ccccccccc" id="path2611" d="m 2.477915,43.659617 -0.923471,2.678067 2.862761,0 0.277042,-1.061992 7.757159,0 0.287149,1.084028 3.222042,0 -0.877297,-2.700103 -12.605385,0 z" inkscape:connector-curvature="0" fill="#7a7d77" fill-rule="evenodd"/>
-  <path id="path2613" d="m 4.925114,45.460387 -0.230867,0.877298 7.710986,0 -0.230868,-0.923472 -7.249251,0.04617 z" inkscape:connector-curvature="0" fill="#777874" fill-rule="evenodd"/>
-  <path d="m 18.777186,43.659617 0.877298,2.631894 -2.862762,-0.04617 -0.784951,-2.539546 2.770415,-0.04617 z" id="path2619" inkscape:connector-curvature="0" fill="#777a75" fill-rule="evenodd" color="#000000" stroke-width="0.313"/>
-  <path id="path2615" d="m 18.777186,43.382577 0.877298,2.631894 -2.862762,-0.04617 -0.784951,-2.539547 2.770415,-0.04617 z" inkscape:connector-curvature="0" fill="url(#linearGradient3096)" fill-rule="evenodd" color="#000000" stroke-width="0.313"/>
-  <path d="m 2.477915,43.336403 -0.923471,2.678068 2.862761,0 0.277042,-1.061993 7.757159,0 0.287149,1.084028 3.222042,0 -0.877297,-2.700103 -12.605385,0 z" id="path2617" sodipodi:nodetypes="ccccccccc" inkscape:connector-curvature="0" fill="url(#linearGradient3096)" fill-rule="evenodd"/>
-  <path d="m 4.925114,45.183346 -0.230867,0.877299 7.710986,0 -0.230868,-0.923472 -7.249251,0.04617 z" id="path2621" inkscape:connector-curvature="0" fill="url(#linearGradient3096)" fill-rule="evenodd" color="#000000" stroke-width="0.313"/>
-  <path d="m 2.340071,43.006103 16.625625,0 1.377647,4.227509 -19.464971,0 1.461699,-4.227509 z" id="path2631" sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" fill="none" stroke="#b3b3b3" stroke-linejoin="round" color="#000000" stroke-width="0.261"/>
-  <ellipse id="path2709" cx="30.503" cy="14.388" rx="0.584" ry="0.289" transform="translate(-12.61946,11.833407)" fill="url(#linearGradient2717)" fill-rule="evenodd" color="#000000" stroke-width="0.5"/>
-  <ellipse id="path2719" cx="30.562" cy="15.488" rx="0.584" ry="0.289" transform="translate(-12.61946,11.833407)" fill="url(#linearGradient2721)" fill-rule="evenodd" color="#000000" stroke-width="0.5"/>
-  <ellipse id="path2723" cx="30.622" cy="16.532" rx="0.584" ry="0.289" transform="translate(-12.61946,11.833407)" fill="url(#linearGradient2725)" fill-rule="evenodd" color="#000000" stroke-width="0.5"/>
-  <ellipse id="path2727" cx="30.681" cy="17.577" rx="0.584" ry="0.289" transform="translate(-12.61946,11.833407)" fill="url(#linearGradient2729)" fill-rule="evenodd" color="#000000" stroke-width="0.5"/>
-  <ellipse id="path2731" cx="30.74" cy="18.622" rx="0.584" ry="0.289" transform="translate(-12.61946,11.833407)" fill="url(#linearGradient2733)" fill-rule="evenodd" color="#000000" stroke-width="0.5"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/76-2.svg b/htdocs/public/symbols/svgicons/76-2.svg
deleted file mode 100755
index 9ae22bd0c15c919b7e9a63562698642849f2601e..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/76-2.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" height="24" width="24" version="1.1">
- <metadata id="metadata3"/>
- <defs id="defs1572">
-  <linearGradient id="linearGradient1669">
-   <stop id="stop1670" stop-color="#fd5a00"/>
-   <stop id="stop1671" offset="1" stop-color="#fffa7d"/>
-  </linearGradient>
-  <linearGradient id="linearGradient1655">
-   <stop id="stop1656" stop-color="#fde700"/>
-   <stop id="stop1657" offset="1" stop-color="#fffaff"/>
-  </linearGradient>
-  <linearGradient id="linearGradient1651">
-   <stop id="stop1652" stop-color="#6b6b6a"/>
-   <stop id="stop1653" offset="1" stop-color="#bdbdbd"/>
-  </linearGradient>
-  <linearGradient id="linearGradient1643">
-   <stop id="stop1644" stop-color="#522722"/>
-   <stop id="stop1645" offset="1" stop-color="#975a00"/>
-  </linearGradient>
-  <linearGradient id="linearGradient1625">
-   <stop id="stop1626"/>
-   <stop id="stop1627" offset="1" stop-color="#a7a6a6"/>
-  </linearGradient>
-  <linearGradient id="linearGradient1618">
-   <stop id="stop1619" stop-color="#7f7f7f"/>
-   <stop id="stop1620" offset="1" stop-color="#f0f0f0"/>
-  </linearGradient>
-  <linearGradient id="linearGradient1607">
-   <stop id="stop1608" stop-color="#870000"/>
-   <stop id="stop1609" offset="1" stop-color="#ff0000"/>
-  </linearGradient>
-  <linearGradient id="linearGradient1610" xlink:href="#linearGradient1625" gradientTransform="matrix(0.03846753,0,0,0.02113344,-1.1884015,-2.607463)" x1="281.43" x2="403.99" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1611" xlink:href="#linearGradient1625" gradientTransform="matrix(0.0520113,0,0,0.01563028,-1.1884015,-2.607463)" x1="208.15" x2="298.83" gradientUnits="userSpaceOnUse"/>
-  <radialGradient cx="173.15" cy="453.05" id="radialGradient1612" r="62.09" xlink:href="#linearGradient1625" gradientTransform="matrix(0.0638069,-0.00112233,2.2019652e-4,0.01251865,-1.0938389,-2.4122535)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1617" x1="244.75" x2="383.17" xlink:href="#linearGradient1618" y1="826.31" y2="820.08" gradientTransform="matrix(0.04465307,0,0,0.02401902,-3.1582371,-4.0909887)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1628" x1="311.75" x2="429.89" xlink:href="#linearGradient1625" y1="655.36" y2="643.29" gradientTransform="matrix(0.04372273,0,0,0.0245301,-3.1582371,-4.0909887)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1629" x1="0" x2="1" xlink:href="#linearGradient1618"/>
-  <linearGradient id="linearGradient1638" x1="683.62" x2="620.93" xlink:href="#linearGradient1625" y1="479.49" y2="542.28" gradientTransform="matrix(0.02162252,0,0,0.04960209,-4.8715715,-3.8205162)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1642" x1="555.12" x2="466.77" xlink:href="#linearGradient1643" y1="658.4" y2="743.48" gradientTransform="matrix(0.02975007,0,0,0.0360511,-4.8715715,-3.8205162)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient gradientTransform="matrix(0.15406935,0,0,0.0069613,-3.1582371,-4.0909887)" id="linearGradient1647" x1="69.39" x2="127.7" xlink:href="#linearGradient1651" gradientUnits="userSpaceOnUse"/>
-  <linearGradient gradientTransform="matrix(0.16164309,0,0,0.00663513,-3.1582371,-4.0909887)" id="linearGradient1648" x1="63.19" x2="124.36" xlink:href="#linearGradient1651" gradientUnits="userSpaceOnUse"/>
-  <linearGradient gradientTransform="matrix(0.16850448,0,0,0.00636495,-3.1582371,-4.0909887)" id="linearGradient1649" x1="58.07" x2="121.84" xlink:href="#linearGradient1651" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1650" x1="504.56" x2="1035.09" xlink:href="#linearGradient1625" gradientTransform="matrix(0.02220578,0,0,0.04829925,-3.1582371,-4.0909887)" gradientUnits="userSpaceOnUse"/>
-  <radialGradient cx="410.12" cy="281.45" id="radialGradient1654" r="3.801" spreadMethod="reflect" xlink:href="#linearGradient1655" gradientTransform="scale(1.0187186,0.98162532)" gradientUnits="userSpaceOnUse"/>
-  <radialGradient cx="1070.94" cy="112.3" id="radialGradient1661" r="0.943" spreadMethod="reflect" xlink:href="#linearGradient1655" gradientTransform="scale(0.42008915,2.3804471)" gradientUnits="userSpaceOnUse"/>
-  <radialGradient cx="923.81" cy="109.91" id="radialGradient1662" r="0.901" spreadMethod="reflect" xlink:href="#linearGradient1655" gradientTransform="scale(0.41100851,2.4330396)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1668" spreadMethod="reflect" x1="143.84" x2="151.66" xlink:href="#linearGradient1669" y1="647.74" y2="647.54" gradientTransform="scale(2.7026083,0.37001293)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient gradientTransform="matrix(0.02248161,0,0,0.04770663,-3.1582371,-4.0909887)" id="linearGradient672" x1="665.93" x2="681.55" xlink:href="#linearGradient1625" gradientUnits="userSpaceOnUse"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient1618" id="linearGradient4235" x1="245.44" y1="542.1" x2="365.1" y2="536.72" gradientTransform="matrix(0.04619997,0,0,0.02321479,-3.1582371,-4.0909887)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient gradientTransform="matrix(0.16850448,0,0,0.00654644,26.105757,-4.4799845)" id="linearGradient1649-2" x1="58.07" x2="121.84" xlink:href="#linearGradient1651" gradientUnits="userSpaceOnUse"/>
-  <linearGradient gradientTransform="matrix(0.16164309,0,0,0.00682433,26.105757,-4.4799845)" id="linearGradient1648-8" x1="63.19" x2="124.36" xlink:href="#linearGradient1651" gradientUnits="userSpaceOnUse"/>
-  <linearGradient gradientTransform="matrix(0.15406935,0,0,0.0071598,26.105757,-4.4799845)" id="linearGradient1647-9" x1="69.39" x2="127.7" xlink:href="#linearGradient1651" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1638-9" x1="683.62" x2="620.93" xlink:href="#linearGradient1625" y1="479.49" y2="542.28" gradientTransform="matrix(0.02162252,0,0,0.05101649,24.392423,-4.2017994)" gradientUnits="userSpaceOnUse"/>
-  <linearGradient id="linearGradient1650-0" x1="507.69" x2="859.37" xlink:href="#linearGradient1651" gradientTransform="matrix(0.02220578,0,0,0.04967651,26.105757,-4.4799845)" gradientUnits="userSpaceOnUse"/>
- </defs>
- <rect id="rect3405" width="4.564" height="3.867" x="9.685" y="2.748" fill="#cccccc"/>
- <path sodipodi:nodetypes="cccc" id="path1578" d="m 14.483576,3.0641418 -4.9839696,0 c 0,-0.5184774 1.1156986,-0.9387874 2.4919836,-0.9387874 1.376287,0 2.491986,0.42031 2.491986,0.9387874 z" inkscape:connector-curvature="0" fill="url(#radialGradient1612)" fill-rule="evenodd" stroke="#000000" stroke-width="0.073"/>
- <path id="path1586" d="m 9.6558587,3.0248651 0,2.5607126 4.6779183,0 0,-2.5607126 -4.6779183,0 z m 0.1503714,0.1089605 0,2.3698829 1.2028349,0 0,-2.3698829 -1.2028349,0 z m 1.3531869,0 0,2.3698804 1.672689,0 0,-2.3698804 -1.672689,0 z m 1.823042,0 0,2.3698829 1.202831,0 0,-2.3698829 -1.202831,0 z" inkscape:connector-curvature="0" fill="url(#linearGradient1610)" fill-rule="evenodd" stroke="#000000" stroke-width="0.073"/>
- <rect y="5.568" x="9.656" width="4.68" id="rect1606" height="1.388" fill="url(#linearGradient1611)" fill-rule="evenodd" stroke="#000000" stroke-width="0.073"/>
- <path inkscape:connector-curvature="0" d="M 8.9844364,6.7531278 8.1344467,23.70939 l 7.7713113,0 -0.971415,-16.9562622 -5.9499066,0 z" id="path1574" sodipodi:nodetypes="ccccc" fill="url(#linearGradient1650)" fill-rule="evenodd" stroke="#000000" stroke-width="0.089"/>
- <path inkscape:connector-curvature="0" d="M 8.9464909,6.93346 8.8009459,10.104253 15.132273,10.084559 14.96247,6.953154 8.9464909,6.93346 Z" id="path1622" sodipodi:nodetypes="ccccc" fill="url(#linearGradient4235)" fill-rule="evenodd" stroke="#000000" stroke-width="0.089"/>
- <path inkscape:connector-curvature="0" d="m 8.6311364,13.885562 -0.169806,3.80101 7.0833266,0 -0.218321,-3.80101 -6.6951996,0 z" id="path1623" sodipodi:nodetypes="ccccc" fill="#ffffff" fill-rule="evenodd" stroke="#000000" stroke-width="0.089"/>
- <rect height="1.147" id="rect1613" width="0.291" x="12.173" y="7.386" fill="#3b3a3a" fill-rule="evenodd" stroke="#000000" stroke-width="0.033"/>
- <rect height="1.185" id="rect1615" width="0.291" x="12.221" y="10.831" fill="#010000" fill-rule="evenodd" stroke="#000000" stroke-width="0.033"/>
- <path inkscape:connector-curvature="0" d="m 10.351367,19.930301 c -0.6818126,0 -1.2307063,0.471152 -1.2307063,1.056397 l 0.036204,1.957452 2.4386113,0 -0.03619,-1.957452 c 0,-0.585245 -0.45371,-1.056397 -1.135515,-1.056397 l -0.07239,0 z" id="path1631" sodipodi:nodetypes="ccccccc" fill="url(#linearGradient1642)" fill-rule="evenodd" stroke="#000000" stroke-width="0.033"/>
- <path inkscape:connector-curvature="0" d="m 10.351367,19.930301 c -0.6818126,0 -1.2307063,0.471152 -1.2307063,1.056397 l 0.036204,1.957452 0.2493497,0 -0.036197,-1.957452 c 0,-0.585245 0.5933257,-0.94048 1.0537476,-1.056397 l -0.0724,0 z" id="path1632" sodipodi:nodetypes="ccccccc" fill="url(#linearGradient1638)" fill-rule="evenodd" stroke="#000000" stroke-width="0.033"/>
- <rect height="0.376" id="rect1639" width="8.947" x="7.55" y="22.925" fill="url(#linearGradient1647)" fill-rule="evenodd" stroke="#000000" stroke-width="0.089"/>
- <rect height="0.376" id="rect1640" width="9.852" x="7.07" y="23.23" fill="url(#linearGradient1648)" fill-rule="evenodd" stroke="#000000" stroke-width="0.089"/>
- <rect height="0.376" id="rect1641" width="10.71" x="6.645" y="23.582" fill="url(#linearGradient1649)" fill-rule="evenodd" stroke="#000000" stroke-width="0.089"/>
- <path inkscape:connector-curvature="0" d="m 10.46374,20.002227 0.04763,2.861497" id="path1646" fill="none" fill-rule="evenodd" stroke="#000000" stroke-width="0.033"/>
- <g id="g7546" transform="matrix(2.6057113,0,0,-2.6800134,0.00521142,6.4130072)" opacity="0.5" fill="#ffff00">
-  <path inkscape:connector-curvature="0" d="M 0,0 -0.002,1.449 3.412,1.012 3.414,0.434 0,0 Z" id="path7548"/>
- </g>
- <g id="g7546-6" transform="matrix(-2.6057113,0,0,-2.6800134,23.994776,6.4130072)" opacity="0.5" fill="#ffff00" stroke="#000000" stroke-width="0">
-  <path inkscape:connector-curvature="0" d="M 0,0 -0.002,1.449 3.412,1.012 3.414,0.434 0,0 Z" id="path7548-6"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/77-1.svg b/htdocs/public/symbols/svgicons/77-1.svg
deleted file mode 100755
index 70a5f130ec4a0bf2e2e5b157ece551b8baf26604..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/77-1.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 23.999999" overflow="visible" enable-background="new 0 0 499.524 554.546">
- <metadata id="metadata25"/>
- <g id="g4149" transform="matrix(0.04378904,0,0,0.04378904,1.5563356,-0.04001019)">
-  <path stroke-miterlimit="2.613" d="m 28.987206,199.7257 c 0.16383,-0.27056 0.337529,-0.53715 0.511228,-0.79879 28.075115,-43.40744 72.361496,-68.81326 114.007846,-68.81326 42.40727,0 69.06516,23.34442 104.11883,23.34442 34.01247,0 54.72906,-23.37812 103.75762,-23.37812 37.04333,0 76.31809,20.25628 104.29254,55.28232 -7.73455,4.25363 -14.71212,9.08306 -20.94852,14.39118 l -405.739544,-0.0277 0,0 z" id="path5" inkscape:connector-curvature="0" fill="#61bb46" fill-rule="evenodd" stroke="#61bb46" stroke-width="2.952"/>
-  <path stroke-miterlimit="2.613" d="M 314.19335,90.969749 C 331.98962,68.01779 345.52631,35.610127 340.62029,2.4760176 311.52371,4.4789499 277.4915,23.081147 257.6138,47.296707 c -18.03708,21.998559 -32.92783,54.624253 -27.13062,86.316373 31.76622,0.99205 64.62694,-18.05513 83.71017,-42.643331 l 0,0 z" id="path7" inkscape:connector-curvature="0" fill="#61bb46" fill-rule="evenodd" stroke="#61bb46" stroke-width="2.952"/>
-  <path stroke-miterlimit="2.613" d="m 27.538934,199.08608 c -12.090475,19.0213 -20.4561492,46.2843 -22.6761741,70.19718 l 392.2413601,-0.0101 c 4.24099,-26.16153 18.34267,-51.15586 40.69396,-70.15816 l -410.259146,-0.0289 0.02315,0 z" id="path9" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccc" fill="#fdb827" fill-rule="evenodd"/>
-  <path stroke-miterlimit="2.613" d="M 8.4245798,338.85665 C 4.6130673,314.43297 3.9962379,290.88638 6.390523,269.28424 l 389.185817,-0.01 c -3.80658,23.42668 -0.61189,47.80576 9.01657,69.59719 l -396.1683302,-0.0149 0,0 z" id="path11" inkscape:connector-curvature="0" fill="#f5821f" fill-rule="evenodd" stroke="#f5821f" stroke-width="2.952"/>
-  <path stroke-miterlimit="2.613" d="M 27.444639,408.42411 C 18.254374,385.05095 11.961727,361.57571 8.4245798,338.85665 l 396.1683302,0.0149 c 12.26454,27.76752 34.96189,51.35772 66.92155,63.48037 -0.94942,2.11988 -1.86529,4.14758 -2.74662,6.10195 l -441.323201,-0.0297 0,0 z" id="path13" inkscape:connector-curvature="0" fill="#e03a3e" fill-rule="evenodd" stroke="#e03a3e" stroke-width="2.952"/>
-  <path stroke-miterlimit="2.613" d="m 468.76686,408.45285 c -10.97266,24.22448 -17.3334,36.79707 -32.51826,60.00571 -2.04294,3.11689 -4.15398,6.30513 -6.35187,9.5231 l -365.683135,0.0337 c -1.171483,-1.7522 -2.332109,-3.5034 -3.47497,-5.24073 C 47.066723,451.86426 35.998336,430.18482 27.444639,408.42312 l 441.322221,0.0297 0,0 z" id="path15" inkscape:connector-curvature="0" fill="#963d97" fill-rule="evenodd" stroke="#963d97" stroke-width="2.952"/>
-  <path stroke-miterlimit="2.613" d="m 429.89673,477.98166 c -22.36969,32.90617 -52.40188,69.11752 -88.84318,69.46141 -35.55898,0.32408 -44.68115,-23.23738 -92.92412,-22.97178 -48.24297,0.27056 -58.31456,23.38307 -93.87354,23.04909 -38.01742,-0.35282 -67.538383,-35.91602 -90.042295,-69.50502 l 365.683135,-0.0337 0,0 z" id="path19" inkscape:connector-curvature="0" fill="#009ddc" fill-rule="evenodd" stroke="#009ddc" stroke-width="2.952"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/77-2.svg b/htdocs/public/symbols/svgicons/77-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/77-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/78-1.svg b/htdocs/public/symbols/svgicons/78-1.svg
deleted file mode 100755
index 5b5351c7e8eb6e9ac3e16ef0e8b16b158ade7253..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/78-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4397"/>
- <path d="m 7.2163337,1.7669242 9.5479813,0 5.468785,10.0789058 -5.63609,10.387246 -9.3499754,0 -5.480134,-10.099823 z" id="path4403" inkscape:connector-curvature="0" fill="#330099" fill-rule="evenodd" stroke="#330099" stroke-linejoin="round" stroke-width="3.534"/>
- <text x="6.883" y="8.577" id="text4945" sodipodi:linespacing="100%" transform="scale(1.2019576,0.8319761)" font-family="sans-serif" fill="#ffffff" word-spacing="0" line-height="100%" font-weight="bold" letter-spacing="0" font-size="9.1"><tspan sodipodi:role="line" id="tspan4947" x="6.883" y="8.577" dx="-0.722">N</tspan><tspan sodipodi:role="line" x="6.883" y="17.676" id="tspan4949">T</tspan><tspan sodipodi:role="line" x="6.883" y="26.775" id="tspan4951">S</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/78-2.svg b/htdocs/public/symbols/svgicons/78-2.svg
deleted file mode 100755
index 3f8a24f7abe988f3697a0ff00201bf4b3300ddea..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/78-2.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24">
- <metadata id="metadata7"/>
- <path inkscape:connector-curvature="0" id="path6-9" d="m 1.6815843,20.853317 c 0.9502396,0.794117 1.9829631,1.409751 3.0796704,1.727888 1.8362904,0.636055 3.4796759,1.003464 5.3431013,1.17928 0.962716,0.09853 2.162599,0.122316 3.099463,0.104649 1.023669,0.03261 2.730414,0.135066 2.730414,0.135066 1.330419,-0.09803 2.691892,-0.126078 3.858106,-0.528673 1.037153,-0.504085 1.909223,-1.492041 2.658279,-2.5465 0.490411,-1.138307 -0.51139,-2.079014 -1.202219,-2.467056 -1.411688,-1.100026 -2.998531,-1.500455 -4.80136,-2.116441 -1.429824,-0.47595 -2.640232,-0.700866 -4.818916,-1.380938 -1.8601541,-0.248546 -3.5921275,0.271622 -4.7123163,0.664393 -1.7448241,0.784465 -1.2245414,0.703572 -3.2663106,1.716979 -0.9231758,0.594098 -2.0862461,1.325204 -2.2302008,2.84614 -0.00624,0.262978 0.086352,0.533494 0.262289,0.665219 z" sodipodi:nodetypes="cccccccccccccc" fill="#2a7fff" stroke-width="0.255"/>
- <path d="m 5.6033084,19.634505 2.9053805,-8.939635 11.0069271,3.631726 -1.8438,5.475528 -4.078708,-0.111751 -0.558728,1.31193 -1.049428,0.515859 L 10.787316,21.378056 10.017253,20.530164 9.73789,19.6345 Z" id="path4215" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccc" fill="#ff0000" fill-rule="evenodd"/>
- <circle id="path3337" cx="11.625" cy="19.626" r="1.918" fill="#ffffff"/>
- <path inkscape:connector-curvature="0" d="m 14.644279,8.2925329 -1.106472,3.4256831 -5.6136224,-1.7691029 -3.044358,9.1518289 -1.594068,0 0,1.131477 5.938686,0 c 0.2575161,1.106811 1.2469034,1.931634 2.4317364,1.931635 1.185227,0 2.174625,-0.824269 2.431736,-1.931635 l 5.969943,0 0,-1.131477 -1.537806,0 1.800358,-5.238547 -5.988696,-1.887878 1.106471,-3.4256833 -0.793908,-0.2563008 z m -5.7136424,3.3819241 9.4331354,3.19439 -1.444039,4.232095 -2.831816,0 c -0.257111,-1.107366 -1.246509,-1.931635 -2.431736,-1.931635 -1.184833,1e-6 -2.1742203,0.824824 -2.4317364,1.931635 l -2.744298,0 2.45049,-7.426485 z m 2.7255444,6.488798 c 0.828166,0 1.5003,0.672135 1.5003,1.5003 0,0.828166 -0.672134,1.500299 -1.5003,1.500299 -0.828165,0 -1.5003,-0.672133 -1.5003,-1.500299 0,-0.828165 0.672135,-1.5003 1.5003,-1.5003 z m 0.468844,-12.2174417 3.588217,-1.7878574 -1.787857,-3.58821749 0.895178,-0.45008993 1.855372,3.61322242 3.590717,-1.7928585 0.447589,0.90018 -3.65573,1.7678534 1.787857,3.5882177 -0.830166,0.4700941 -1.85537,-3.6132228 -3.588217,1.7903583 -0.44759,-0.8976798 z" id="path90440" fill="#000407" fill-rule="evenodd"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/79-1.svg b/htdocs/public/symbols/svgicons/79-1.svg
deleted file mode 100755
index 1b452882be652db25757c60837baf0afccf093b7..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/79-1.svg
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24" height="24" width="24">
- <metadata id="metadata4411"/>
- <g transform="translate(0,-1028.3622)" id="layer1">
-  <g id="g4221" transform="matrix(0.08983967,0,0,0.08983967,3.0740715,1050.2035)">
-   <path id="path3" d="m 118.63,-26.848002 c 15.074,-19.321 30.347,-38.382 44.727,-58.238 7.056,-9.743 13.26,-19.966998 19.409,-30.290998 5.39,-9.048 11.323,-20.028 13.408,-30.449 5.933,-29.642 -2.521,-64.016 -33.229,-75.906 -15.567,53.601 -31.135,107.2 -46.702,160.799998 -3.625,12.479 -7.249,24.96 -10.874,37.439 4.41,-1.12 8.83,-2.24 13.25,-3.36" fill="#ff7021"/>
-   <path id="path5" d="m 108.89,-24.498002 c 3.879,-19.206 7.882,-37.785 13.32,-56.565 9.576,-33.072998 19.152,-66.146998 28.729,-99.220998 4.001,-13.816 8.001,-27.633 12.002,-41.449 10.804,3.34 18.13,10.481 21.915,21.075 3.994,11.178 6.092,22.935 5.496,34.836 -1.217,24.32 -15.943,46.695 -27.798,67.213998 -7.764,13.438 -16.307,26.452 -24.586,39.575 -4.313,6.837 -8.61,13.686 -12.795,20.603 -2.252,3.724 -4.447,7.482 -6.67,11.223 -0.9,1.5 -8.2,2.77 -9.62,2.71" fill="#eb490c"/>
-   <path id="path7" d="m 105.53,-23.658002 c 7.811,-10.503 15.621,-21.005 23.431,-31.508 4.405,-5.924 8.811,-11.848 13.216,-17.771 2.489,-3.347 4.872,-4.609 9.012,-1.751 4.482,3.095 0.207,6.056 -2.236,9.415 -3.515,4.831 -7.318,9.487 -11.03,14.168 -3.6,4.538 -7.176,9.107 -10.885,13.557 -2.604,3.123 -5.896,10.055 -9.91,11.084 -3.51,0.89 -8.3,2.85 -11.6,2.8" fill="#ff0000"/>
-   <path id="path9" d="m 198.36,-160.465 c -2.91,-3.669 -6.505,-7.132 -11.985,-7.678 -2.199,-0.219 -1.919,0.025 -2.738,-2.018 -1.237,-3.083 -2.474,-6.166 -3.711,-9.248 -5.661,-14.108 -11.322,-28.217 -16.983,-42.326 12.712,5.262 20.685,13.15 27.757,24.833 6.51,10.776 7.26,24.235 7.65,36.437" fill="#ffd900"/>
-   <path id="path11" d="m 148.5,-75.868002 c -5.722,9.441 -11.751,18.685 -17.573,28.063 -2.942,4.738 -5.979,9.447 -8.766,14.277 -0.686,1.189 -2.879,6.407 -4.013,6.711 l -9.264,2.481 c 1.02,-5.265 2.479,-7.181 5.683,-11.488 5.308,-7.137 10.614,-14.272 15.922,-21.408 4.322,-5.812 8.645,-11.623 12.967,-17.435 1.48,-1.99 3.27,-1.74 5.04,-1.2" fill="#bf0000"/>
-   <path id="path13" d="m 178.55,-212.67 c 8.959,13.786 11.75,29.27 11.75,45.49 -1.117,-0.555 -5.741,-0.672 -6.039,-1.415 -2.179,-5.431 -4.358,-10.862 -6.538,-16.294 l -14.784,-36.846 c 5.51,1.704 12.06,5.581 15.61,9.065" fill="#ffa300"/>
-   <path id="path15" d="m 114.93,-26.848002 c 12.064,-21.341 25.105,-42.117 37.716,-63.139 6.388,-10.647998 12.223,-21.590998 17.978,-32.590998 5.198,-9.936 10.331,-21.109 12.269,-32.208 4.255,-24.375 -2.2,-49.595 -19.481,-67.477 -2.74,-2.834 -20.133,-14.417 -21.46,-6.954 -1.583,8.899 -3.165,17.798 -4.748,26.697 -10.49,58.955 -20.98,117.909998 -31.46,176.869998 -0.128,0.72 -0.256,1.438 -0.384,2.158 3.18,-1.12 6.37,-2.24 9.56,-3.36" fill="#ff7021"/>
-   <path id="path17" d="m 106.54,-25.508002 c 7.363,-54.338 18.51,-108.279998 28.072,-162.259998 l 6.426,-36.273 c 0.406,-2.293 0.813,-4.587 1.219,-6.88 0.434,-2.447 10.843,1.668 12.291,2.392 10.501,5.245 14.186,18.755 16.617,29.389 2.496,10.911 3.019,23.603 1.179,34.631 -4.021,24.107 -16.497,47.163 -26.669,69.158998 -10.192,22.042 -20.627,43.942 -30.337,66.207 -1.5,3.41 -5.11,3.91 -8.8,3.63" fill="#eb490c"/>
-   <path id="path19" d="m 143.8,-105.908 c 3.767,-2.278 9.362,-1.846 13.094,0.336 3.905,2.283 3.182,3.741 1.424,7.136998 -4.831,9.329 -9.974,18.437 -15.523,27.357 -5.344,8.59 -11.085,16.934 -16.545,25.452 -2.781,4.339 -5.641,8.657 -8.164,13.153 -1.133,2.02 -2.012,5.224 -4.286,6.021 -2.813,0.987 -5.626,1.975 -8.438,2.962 1.514,-8.483 3.026,-16.967 4.54,-25.45 1.016,-5.692 6.324,-12.913 9.131,-17.989 3.896,-7.047 7.875,-14.04 11.909,-21.009 3.34,-5.75 7.55,-13.879998 12.87,-17.969998" fill="#ff0000"/>
-   <path id="path21" d="m 150.18,-107.418 c -6.394,14.827998 -13.331,29.406998 -19.888,44.157998 -3.068,6.903 -6.078,13.835 -9.184,20.721 -1.83,4.06 -3.612,8.12 -5.33,12.228 -0.484,1.159 -0.826,3.511 -2.177,3.751 -2.299,0.408 -4.598,0.817 -6.896,1.226 0.613,-4.954 1.227,-9.907 1.84,-14.861 0.39,-3.144 0.329,-7.357 1.769,-10.129 4.222,-8.129 8.503,-16.213 12.936,-24.229 4.209,-7.613 8.617,-15.112 13.502,-22.313 3.67,-5.419998 6.4,-10.519998 13.43,-10.559998" fill="#bf0000"/>
-   <path id="path23" d="m 184.09,-168.354 c -3.42,-4.807 -10.932,-5.508 -16.213,-4.447 -2.85,0.572 -6.052,-11.322 -7.052,-13.728 -6.178,-14.869 -12.354,-29.738 -18.532,-44.606 7.312,0.188 12.541,1.951 18.351,6.518 5.877,4.619 10.353,10 14.296,16.308 3.31,5.294 6.396,12.573 7.327,18.782 0.87,5.869 3.46,15.595 1.81,21.173" fill="#ffd900"/>
-   <path id="path25" d="m 148.67,-230.967 c 11.84,2.759 17.198,13.519 20.516,24.214 1.832,5.908 2.765,11.81 3.549,17.932 0.365,2.857 1.717,14.308 -0.229,15.599 -1.279,0.849 -5.86,0.707 -6.343,-0.455 -2.428,-5.844 -4.856,-11.688 -7.284,-17.531 -5.499,-13.238 -10.999,-26.475 -16.499,-39.713 -0.029,-0.071 -0.06,-0.143 -0.089,-0.214 1.93,0.05 5.05,0.118 6.37,0.168" fill="#ffa300"/>
-   <path id="path27" d="m 110.23,-26.848002 c 9.29,-22.388 19.429,-44.345 29.203,-66.518 5.021,-11.390998 10.175,-22.738998 14.773,-34.307998 4.339,-10.914 9.518,-22.341 11.217,-34.034 3.163,-21.763 0.569,-52.576 -17.426,-67.913 -4.104,-3.497 -9.334,-6.483 -14.771,-7.051 -1.786,-0.187 -8.86,0.024 -9.115,2.51 -0.768,7.469 -1.535,14.938 -2.302,22.408 -6.231,60.654 -12.462,121.309998 -18.693,181.959998 -0.146,1.429 -0.294,2.858 -0.44,4.287 2.53,-0.45 5.05,-0.89 7.56,-1.34" fill="#ff7021"/>
-   <path id="path29" d="m 109.73,-26.848002 c -2.084,0.273 -4.674,-0.28 -6.881,-0.5 L 119.94,-193.558 c 1.181,-11.49 2.362,-22.98 3.544,-34.47 0.221,-2.145 0.441,-4.289 0.661,-6.434 0.276,-2.68 9.355,-2.349 11.016,-1.875 9.373,2.678 13.825,15.111 16.391,23.736 3.442,11.57 3.501,23.8 3.501,35.761 0,10.674 -3.781,22.104 -6.704,32.271 -3.565,12.4 -7.409,24.702 -11.337,36.991 -7.209,22.553998 -14.904,44.978998 -22.618,67.363998 -1.44,4.2 -2.97,9.89 -4.66,13.37" fill="#eb490c"/>
-   <path id="path31" d="m 102.68,-25.508002 c 0.695,-6.738 1.391,-13.477 2.087,-20.216 0.556,-5.387 2.11,-9.155 4.173,-14.201 4.487,-10.973 8.973,-22.03 13.985,-32.776 1.975,-4.232 3.846,-12.095998 8.794,-13.379998 1.543,-0.4 13.289,0.132 12.02,3.18 -4.54,10.902998 -9.343,21.694998 -14.248,32.437998 -3.897,8.536 -7.712,17.108 -11.595,25.65 -1.793,3.946 -3.552,7.912 -5.192,11.924 -0.37,0.904 -1.739,5.906 -2.645,6.067 -2.44,0.45 -4.9,0.88 -7.36,1.32" fill="#ff0000"/>
-   <path id="path33" d="m 109.73,-26.848002 c -2.084,0.273 -4.674,-0.28 -6.881,-0.5 0.438,-4.212 0.877,-8.424 1.315,-12.636 0.354,-3.404 -0.091,-8.529 1.271,-11.702 3.241,-7.557 6.24,-15.219 9.546,-22.747 3.35,-7.628 6.569,-15.317 10.092,-22.866 2.509,-5.378998 4.556,-10.521998 11.515,-8.942998 -4.268,13.105998 -8.819,26.116998 -13.178,39.192998 -2.442,7.329 -4.987,14.62 -7.385,21.964 -1.89,5.81 -3.89,13.23 -6.29,18.25" fill="#bf0000"/>
-   <path id="path35" d="m 135.75,-236.17 c 26.932,8.57 30.719,39.412 30.719,63.62 -2.412,-2.985 -6.776,-3.854 -10.39,-4.153 -1.105,-0.092 -7.426,1.242 -7.558,0.925 -3.324,-8.037 -6.647,-16.073 -9.972,-24.11 -4.215,-10.19 -8.43,-20.381 -12.645,-30.571 -0.633,-1.529 -2.688,-4.057 -0.646,-4.871 3.4,-1.353 6.96,-1.927 10.5,-0.84" fill="#ffd900"/>
-   <path id="path37" d="m 135.75,-236.17 c 3.534,0.334 6.646,4.67 8.646,7.47 3.595,5.032 5.656,10.714 7.404,16.59 1.553,5.219 2.481,11.038 2.783,16.469 0.159,2.867 0.472,5.767 0.472,8.638 0,1.857 1.146,8.993 0,10.257 -0.544,0.601 -6.468,1.126 -6.618,0.763 -2.209,-5.341 -4.418,-10.682 -6.627,-16.023 -5.767,-13.943 -11.533,-27.885 -17.301,-41.828 -1.32,-3.207 9.46,-2.885 11.25,-2.336" fill="#ffa300"/>
-   <path id="path39" d="m 105.53,-26.848002 c 15.168,-46.276 32.349,-92.581998 42.231,-140.349998 2.383,-11.52 0.677,-24.06 -0.589,-35.607 -1.205,-10.985 -6.014,-23.88 -14.448,-31.26 -4.167,-3.646 -9.2,-5.915 -14.772,-6.127 -2.479,-0.095 -4.997,0.316 -7.218,1.428 -3.129,1.565 -2.593,4.958 -2.993,8.084 -1.631,12.71 -1.8,25.842 -2.615,38.622 -3.044,47.65 -5.808,95.386998 -7.836,143.089998 -0.222,5.217 -0.363,10.443 -0.67,15.655 -0.12,2.042 -1.434,5.344 0.949,5.599 2.457,0.25 6.127,0.59 7.967,0.86" fill="#ff7021"/>
-   <path id="path41" d="m 98.986,-27.518002 c 1.78,-48.048 2.055,-96.081998 4.848,-144.099998 0.676,-11.61 1.494,-23.211 2.209,-34.818 0.367,-5.964 0.798,-11.92 1.222,-17.88 0.282,-3.961 -0.808,-13.319 4.06,-14.709 2.445,-0.699 4.364,-1.176 6.967,-1.176 2.564,0 5.06,3.894 6.45,5.71 3.482,4.55 5.336,10.411 6.447,15.97 2.37,11.86 2.849,23.946 2.493,36.024 -0.677,22.971 -4.314,46.571 -8.856,69.077 -4.899,24.282998 -10.216,48.465998 -16.679,72.385998 -1.088,4.025 -2.176,8.05 -3.263,12.075 -0.84,3.1 -2.84,1.71 -5.894,1.43" fill="#eb490c"/>
-   <path id="path43" d="m 105.53,-26.848002 c -2.294,-0.224 -4.587,-0.446 -6.881,-0.67 1.614,-10.52 3.862,-21.046 6.922,-31.249 1.583,-5.276 3.035,-10.587 4.829,-15.795 0.532,-1.543 1.321,-5.354 2.937,-6 2.146,-0.858 4.378,-0.794 6.63,-0.419 5.059,0.842 0.928,7.06 -0.026,10.24 -1.454,4.845 -3.12,9.622 -4.674,14.435 -1.528,4.734 -3.144,9.435 -4.627,14.185 -1.45,4.66 -2.6,11.31 -5.11,15.28" fill="#ff0000"/>
-   <path id="path45" d="m 104.19,-27.018002 c -1.735,-0.168 -3.47,-0.335 -5.205,-0.503 0.888,-4.311 1.16,-9.059 2.182,-13.526 1.386,-6.055 3.022,-12.049 4.603,-18.056 1.511,-5.743 3.144,-11.499 5.134,-17.098 1.543,-4.34 2.945,-5.035 7.219,-5.035 -2.084,8.923 -4.264,17.812 -6.421,26.715 -1.219,5.034 -2.593,10.021 -3.917,15.028 -0.94,3.57 -1.75,9.51 -3.59,12.48" fill="#bf0000"/>
-   <path id="path47" d="m 120.3,-240.031 c 27.469,5.782 28.299,42.466 28.369,64.625 -5.033,-4.205 -15.783,-6.076 -21.484,-2.18 -4.461,-11.89 -8.241,-24.079 -11.796,-36.269 -1.845,-6.325 -3.712,-12.65 -5.632,-18.952 -1.123,-3.687 -1.499,-5.351 2.654,-6.721 2.46,-0.808 6.09,-0.705 7.89,-0.503" fill="#ffd900"/>
-   <path id="path49" d="m 118.79,-240.199 c 12.12,7.795 13.899,25.745 14.602,38.857 0.34,6.331 0.338,12.632 0.338,18.971 0,2.308 0.081,2.285 -1.68,3.106 -1.582,0.738 -3.332,0.722 -4.865,1.679 -4.346,-11.582 -8.059,-23.453 -11.521,-35.327 -1.839,-6.306 -3.739,-12.594 -5.602,-18.894 -0.896,-3.033 -2.538,-5.242 0.67,-7.049 2.41,-1.353 5.39,-1.343 8.06,-1.343" fill="#ffa300"/>
-   <path id="path51" d="m 70.955,-29.538002 c -14.217,-20.137 -28.029,-40.467 -41.22,-61.291 C 17.59,-109.999 4.002,-132.999 1.107,-155.828 c -3.657,-28.835 9.525,-60.545 38.625,-69.936 12.529,54.446 25.059,108.89 37.588,163.339998 2.857,12.418 5.715,24.835 8.573,37.253 -4.66,-1.3 -10.896,-2.07 -14.938,-4.36" fill="#eb490c"/>
-   <path id="path53" d="m 49.636,-79.388002 c 6.009,9.279 12.018,18.558 18.027,27.837 3.949,6.098 7.898,12.195 11.847,18.293 1.75,2.702 3.318,6.613 6.383,8.087 -3.992,-1.121 -7.984,-2.243 -11.977,-3.364 -3.528,-0.991 -4.297,-2.748 -6.319,-5.784 -4.132,-6.203 -8.567,-12.249 -12.904,-18.315 -3.986,-5.577 -7.703,-11.336 -11.543,-17.011 -1.652,-2.441 -4.973,-4.959 -2.746,-7.729 1.967,-2.46 6.488,-2.46 9.232,-2.02" fill="#bf0000"/>
-   <path id="path55" d="m 39.565,-225.763 c -4.618,12.587 -10.611,24.742 -16.601,36.728 -1.409,2.82 -6.089,15.812 -8.982,15.521 -6.49,-0.653 -10.922,3.812 -13.527,9.188 1.151,-27.288 12.235,-51.58 39.11,-61.437" fill="#ffa300"/>
-   <path id="path57" d="m 74.982,-28.188002 c -10.59,-22.119 -22.398,-43.587 -33.458,-65.469 C 35.941,-104.704 30.649,-115.803 25.789,-127.185 c -4.454,-10.43 -8.899,-21.692 -10.139,-33.03 -2.656,-24.295 5.052,-49.185 23.373,-65.728 4.294,-3.877 9.798,-6.216 15.22,-7.959 2.641,-0.849 6.656,-1.018 7.011,1.959 1.049,8.805 2.098,17.61 3.147,26.416 7.078,59.392 14.155,118.779998 21.232,178.179998 0.086,0.728 0.173,1.454 0.26,2.182 -3.617,-1.02 -7.246,-2.24 -10.911,-3.02" fill="#eb490c"/>
-   <path id="path59" d="m 83.375,-27.858002 c -10.473,-22.18 -22.399,-43.581 -33.458,-65.468 C 44.314,-104.415 39.06,-115.596 34.182,-127.02 c -4.426,-10.366 -8.905,-21.596 -10.138,-32.865 -2.658,-24.29 5.039,-49.34 23.373,-65.894 4.295,-3.878 9.745,-6.236 15.22,-7.801 2.702,-0.772 6.648,-1.241 7.011,1.801 1.049,8.805 2.098,17.61 3.147,26.416 7.077,59.392 14.154,118.779998 21.231,178.179998 0.086,0.728 0.173,1.454 0.26,2.182 -3.619,-0.97 -7.249,-2.12 -10.911,-2.86" fill="#ff7021"/>
-   <path id="path61" d="m 36.544,-103.398 c -0.42,-4.696 13.913,-6.11 15.484,-2.546 3.796,8.612998 7.592,17.226998 11.389,25.839998 7.966,18.075 17.245,35.854 22.477,54.929 -1.924,-0.541 -10.063,-1.58 -10.84,-3.227 -1.921,-4.069 -3.923,-8.054 -6.02,-12.036 -3.735,-7.093 -7.438,-14.2 -11.209,-21.274 -3.544,-6.647 -7.124,-13.266 -10.548,-19.978 -3.465,-6.78 -6.212,-15.79 -10.733,-21.699998" fill="#bf0000"/>
-   <path id="path63" d="m 85.223,-27.518002 c -3.368,0.189 -8.938,-15.129 -10.634,-18.373 -3.348,-6.405 -6.531,-12.9 -9.967,-19.261 -7.528,-13.937 -14.729,-28.044 -21.7,-42.267998 2.428,-0.655 5.319,-0.421 7.637,0.505 1.84,0.733 2.005,2.195 2.804,4.008 4.089,9.276998 8.179,18.555998 12.268,27.833998 4.603,10.443 9.206,20.887 13.808,31.329 2.055,4.65 5.84,11.71 5.784,16.22" fill="#ff0000"/>
-   <path id="path65" d="m 54.503,-233.988 c 2.107,0.108 4.215,0.216 6.322,0.324 0.591,0.03 0.767,5.027 0.837,5.675 0.494,4.569 0.725,7.874 -0.334,12.375 -1.991,8.465 -3.988,16.89 -6.565,25.201 -1.193,3.846 -2.555,7.751 -3.532,11.652 -0.332,1.322 -12.082,1.458 -13.704,1.609 -7.858,0.734 -15.29,-1.414 -22.302,3.763 -1.207,-5.01 1.21,-13.271 2.267,-18.551 1.343,-6.711 4.311,-12.668 7.506,-18.659 6.083,-11.404 17.379,-19.657 29.505,-23.389" fill="#ffa300"/>
-   <path id="path67" d="m 61.05,-233.316 c 0.431,3.875 0.861,7.749 1.292,11.624 0.352,3.167 -1.362,7.563 -2.088,10.649 -1.709,7.265 -3.574,14.451 -5.786,21.582 -1.016,3.277 -1.896,6.585 -2.979,9.843 -0.86,2.583 -7.363,1.851 -9.861,2.084 -6.005,0.562 -11.98,-0.362 -17.842,0.62 2.005,-12.03 4.574,-23.314 10.911,-33.908 3.225,-5.391 7.122,-9.99 11.874,-14.063 4.467,-3.831 9.791,-5.531 14.479,-8.431" fill="#ffd900"/>
-   <path id="path69" d="m 79.683,-27.858002 c -7.629,-22.892 -16.476,-45.277 -24.663,-67.963 C 50.775,-107.584 46.327,-119.29 42.415,-131.167 c -3.695,-11.218 -7.82,-23.051 -8.915,-34.871 -2.038,-22.006 3.096,-52.358 21.842,-66.609 3.876,-2.947 10.683,-6.762 15.78,-6.126 1.958,0.244 8.155,0.708 8.254,3.375 0.297,7.906 0.594,15.813 0.891,23.719 2.277,60.676 4.554,121.349998 6.832,182.029998 0.046,1.213 0.091,2.425 0.137,3.638 -2.518,-0.62 -5.036,-1.23 -7.553,-1.85" fill="#eb490c"/>
-   <path id="path71" d="m 86.732,-27.688002 c -7.646,-22.934 -16.439,-45.387 -24.716,-68.09 C 53.743,-118.471 42.709,-142.537 40.462,-166.813 c -1.116,-12.06 0.704,-24.749 4.053,-36.372 3.057,-10.608 8.46,-23.136 18.119,-29.45 4.686,-3.063 10.375,-6.339 16.209,-5.885 2.02,0.157 7.493,0.869 7.59,3.452 0.304,8.104 0.608,16.208 0.913,24.312 2.272,60.53 4.544,121.059998 6.816,181.589998 0.042,1.108 0.083,2.216 0.125,3.323 -2.519,-0.61 -5.037,-1.22 -7.555,-1.84" fill="#ff7021"/>
-   <path id="path73" d="m 48.964,-112.458 c 7.533,-4.791 14.92,-1.439 20.982,3.526 2.248,1.841 3.741,2.542 4.258,5.313 0.88,4.716998 1.76,9.432998 2.641,14.148998 3.904,20.921 9.649,42.15 10.391,63.459 l -6.174,-1.509 c -2.139,-0.522 -2.014,-2.206 -2.716,-4.272 -1.447,-4.263 -2.957,-8.496 -4.481,-12.731 -2.768,-7.69 -5.67,-15.305 -8.649,-22.916 -2.947,-7.531 -5.914,-15.046 -8.753,-22.618 -2.669,-7.12 -4.395,-15.819998 -7.499,-22.399998" fill="#bf0000"/>
-   <path id="path75" d="m 87.068,-27.518002 c -1.896,-2.246 -2.539,-6.688 -3.524,-9.568 -1.19,-3.476 -2.36,-6.961 -3.621,-10.411 -2.854,-7.809 -5.752,-15.598 -8.706,-23.368 -5.516,-14.51 -11.213,-28.895 -16.209,-43.602998 7.183,-1.362 11.464,2.673 16.617,6.966 4.838,4.031 4.47,14.020998 5.577,19.951998 2.446,13.107 4.892,26.216 7.338,39.323 1.169,6.26 3.71,14.51 2.528,20.71" fill="#ff0000"/>
-   <path id="path77" d="m 67.765,-238.352 c 3.01,-0.919 7.438,-0.37 10.155,1.258 2.178,1.306 -1.97,8.585 -2.939,10.923 -3.285,7.923 -7.259,15.518 -10.958,23.25 -3.432,7.172 -7.193,14.371 -11.175,21.253 -0.507,0.875 -1.049,1.725 -1.448,2.654 -0.501,1.169 -0.791,0.023 -1.763,0.083 -1.809,0.113 -3.823,-0.572 -5.708,-0.503 -3.531,0.128 -7.891,0.829 -10.911,2.687 2.145,-23.286 7.508,-55.419 34.747,-61.605" fill="#ffa300"/>
-   <path id="path79" d="m 74.814,-238.184 c 1.147,0.307 2.284,0.722 3.357,1.258 1.778,0.889 -0.928,5.296 -1.639,7.011 -3.083,7.436 -6.577,14.591 -10.048,21.846 -3.431,7.171 -7.213,14.115 -10.864,21.171 -0.907,1.753 -1.785,3.521 -2.774,5.229 -1.039,1.795 -1.041,3.205 -2.96,2.821 -3.271,-0.652 -6.349,-0.621 -9.652,-0.25 1.536,-12.453 3.259,-24.487 8.717,-35.921 2.593,-5.431 5.943,-10.602 10.403,-14.704 4.782,-4.398 10.067,-6.347 15.46,-8.461" fill="#ffd900"/>
-   <path id="path81" d="M 84.215,-27.518002 C 72.5,-74.778002 58.023,-122.048 51.474,-170.378 c -1.589,-11.723 0.944,-23.916 2.843,-35.459 1.852,-11.264 7.931,-23.497 16.898,-30.592 4.083,-3.231 10.221,-5.523 15.519,-4.864 2.5,0.311 5.444,0.83 7.302,2.686 1.899,1.898 1.401,5.336 1.428,7.902 0.134,13.091 0.166,26.177 0.166,39.269 0,48.09 -0.523,96.244998 -1.558,144.319998 -0.109,5.077 -0.288,10.157 -0.288,15.236 0,2.995 0.909,3.983 -2.122,4.092 -2.483,0.1 -4.965,0.2 -7.447,0.27" fill="#eb490c"/>
-   <path id="path83" d="m 88.914,-27.688002 c -5.965,-24.06 -11.926,-48.117 -17.618,-72.243 C 65.775,-123.337 60.354,-146.954 57.875,-170.897 c -1.14,-11.008 0.023,-23.996 2.879,-34.7 3.109,-11.657 6.734,-24.599 17.25,-31.915 3.776,-2.627 9.251,-4.5 13.598,-2.518 4.639,2.116 3.827,5.945 3.875,10.651 0.132,12.845 0.188,25.687 0.152,38.532 -0.138,48.846 -0.568,97.735998 -1.619,146.579998 -0.078,3.595 -0.227,7.196 -0.227,10.792 0,0.952 0.61,5.004 0,5.623 -0.56,0.57 -3.969,0.14 -4.869,0.17" fill="#ff7021"/>
-   <path id="path85" d="m 91.938,-32.728002 c 0.154,0.626 1.247,3.912 1.006,4.366 -0.544,1.026 -3.065,0.619 -4.448,0.671 -2.471,0.094 -4.192,1.087 -4.883,-1.399 -2.242,-8.071 -4.201,-16.24 -6.194,-24.378 -3.876,-15.826 -7.833,-31.656 -12.005,-47.408998 1.658,-0.603 3.162,-1.773 5.204,-1.846 1.168,-0.041 3.527,0.213 4.533,0.839 1.598,0.993 1.484,2.252998 1.973,4.133998 1.849,7.126 3.627,14.291 5.292,21.462 1.796,7.735 3.676,15.452 5.502,23.181 1.387,5.88 4.668,14.69 4.02,20.39" fill="#bf0000"/>
-   <path id="path87" d="m 92.943,-27.858002 c -0.646,0.028 -3.772,0.5 -3.918,-0.052 -0.521,-1.979 -1.042,-3.959 -1.563,-5.938 -0.76,-2.888 -1.364,-5.817 -2.103,-8.711 -1.862,-7.29 -3.606,-14.606 -5.362,-21.923 -3.061,-12.759 -6.111,-25.531 -9.379,-38.239998 1.62,0.158 3.366,0.255 4.868,1.007 1.972,0.985 2.385,6.859998 2.941,9.194998 1.943,8.16 3.949,16.306 5.917,24.46 3.22,13.32 6.032,26.83 8.599,40.19" fill="#ff0000"/>
-   <path id="path89" d="m 83.375,-241.206 c 2.19,0.086 13.146,0.294 11.42,4.705 -2.343,5.988 -4.687,11.977 -7.03,17.966 -5.1,13.034 -10.201,26.068 -15.301,39.102 -5.71,-3.131 -16.424,-3.493 -21.486,1.008 0.259,-22.297 5.741,-58.334 32.397,-62.781" fill="#ffa300"/>
-   <path id="path91" d="m 57.526,-181.281 c 1.234,-11.389 1.548,-24.762 6.275,-35.398 4.62,-10.395 10.566,-22.814 23.379,-24.241 2.304,-0.257 6.42,1.028 7.274,2.736 0.994,1.988 -1.006,5.125 -2.005,7.677 -3.02,7.717 -6.04,15.435 -9.06,23.152 -3.642,9.307 -7.284,18.615 -10.926,27.922 -4.086,-2.497 -10.31,-2.405 -14.937,-1.848" fill="#ffd900"/>
-   <path id="path93" d="M 89.754,-27.188002 C 80.825,-75.345002 74.026,-123.247 72.469,-172.248 c -0.357,-11.231 0.404,-23.042 2.464,-34.077 2.238,-11.986 4.798,-24.591 14.424,-32.905 2.797,-2.416 12.048,-6.127 13.788,-0.91 1.794,5.376 1.549,11.233 1.549,16.84 0,12.122 -0.584,24.21 -1.176,36.313 -2.402,49.116 -5.198,98.219998 -7.869,147.319998 -0.263,4.829 -0.482,9.661 -0.692,14.493 -1.707,-0.68 -3.439,-1.49 -5.195,-2.01" fill="#eb490c"/>
-   <path id="path95" d="m 78.509,-186.148 c 0.997,-12.302 2.127,-24.353 6.054,-36.126 1.953,-5.854 4.72,-10.628 8.685,-15.339 1.491,-1.771 4.127,-3.167 6.3,-3.892 3.001,-1 3.922,0.659 4.36,3.872 1.55,11.36 1.122,23.466 0.407,34.896 -0.795,12.708 -1.281,25.441 -1.895,38.16 -2.174,45.079 -4.84,90.143998 -7.294,135.209998 C 86.428,-77.047002 78.34,-125.237 78.34,-173.857 c 0,-4.101 0.047,-8.187 0.169,-12.29" fill="#ff7021"/>
-   <path id="path97" d="m 94.622,-107.418 c 4.258,5.68 4.119,9.976998 3.81,16.992998 -0.335,7.637 -0.863,15.267 -1.232,22.903 -0.679,14.048 -2.305,28.298 -2.242,42.354 -0.842,-0.337 -4.906,-1.378 -5.066,-2.166 -0.566,-2.778 -1.132,-5.557 -1.699,-8.335 -0.853,-4.183 -1.636,-8.383 -2.364,-12.589 -1.634,-9.443 -3.119,-18.899 -4.727,-28.346 -1.521,-8.941 -2.586,-18.034 -3.686,-27.037998 -0.589,-4.828 0.878,-4.607 5.523,-5.537 3.499,-0.67 9.021,0.44 11.683,1.79" fill="#bf0000"/>
-   <path id="path99" d="m 98.818,-99.198002 c -0.843,23.293 -2.633,46.548 -3.692,69.83 -3.269,-17.64 -6.383,-35.276 -9.082,-53.014 -0.441,-2.901 -4.251,-26.612998 -2.92,-26.803998 3.042,-0.435 9.112,-0.215 11.665,1.763 2.159,1.67 3.214,5.77 4.029,8.219998" fill="#ff0000"/>
-   <path id="path101" d="m 72.634,-186.484 c 1.159,-11.986 2.486,-23.51 5.882,-35.098 2.729,-9.313 10.515,-23.456 22.402,-20.715 6.772,1.561 3.628,24.59 2.771,29.384 -2.004,11.21 -3.971,22.595 -6.715,33.648 -6.513,-2.87 -18.157,-4.043 -24.509,-0.169 -0.058,-2.307 0.228,-4.879 0.168,-7.05" fill="#ff0000"/>
-   <path id="path103" d="m 101.84,-242.213 c 3.518,3.955 2.855,11.431 2.855,16.376 0,5.54 -0.078,11.069 -0.204,16.608 -0.226,9.932 -1.703,20.076 -1.308,29.964 -4.991,-0.834 -10.003,-1.506 -15.064,-1.738 -4.723,-0.216 -11.367,-0.663 -15.654,1.569 -0.068,-11.209 1.609,-22.64 3.82,-33.706 2.543,-12.764 10.161,-32 25.548,-29.073" fill="#ffa300"/>
-   <path id="path105" d="m 78.509,-186.148 c 0.895,-11.037 1.506,-22.492 5.038,-33.081 1.83,-5.484 3.624,-11.164 7.414,-15.667 2.343,-2.784 8.992,-9.892 12.055,-5.639 2.714,3.769 1.68,12.071 1.68,16.45 0,5.655 -0.123,11.3 -0.252,16.953 -0.21,9.241 -1.628,18.664 -1.26,27.866 -7.795,-2.112 -16.852,-2.155 -24.843,-1.511 -0.007,-1.817 0.125,-3.578 0.162,-5.371" fill="#ffd900"/>
-   <path id="path107" d="m 99.994,-26.848002 c 12.418,-47.117 22.991,-94.877998 26.847,-143.549998 0.902,-11.387 0.923,-22.938 -0.272,-34.301 -1.282,-12.193 -3.398,-24.607 -12.143,-33.789 -1.852,-1.943 -4.554,-2.828 -7.049,-3.616 -1.109,-0.35 -2.603,-0.362 -3.751,-0.186 -2.217,0.341 -1.793,1.476 -2.13,3.495 -0.887,5.316 -1.76,10.617 -2.371,15.975 -1.35,11.835 -1.988,23.762 -2.32,35.668 -1.375,49.221 -1.148,98.544998 -1.678,147.779998 -0.051,4.734 -0.169,9.467 -0.169,14.202 1.494,-0.49 4.147,-1.26 5.032,-1.68" fill="#eb490c"/>
-   <path id="path109" d="m 99.658,-26.848002 c 1.116,-49.069 1.269,-98.173998 1.819,-147.249998 0.255,-22.663 0.776,-45.735 4.728,-68.109 11.416,1.792 17,15.047 18.669,25.252 2.062,12.608 2.854,25.17 2.488,37.946 -0.656,22.971 -4.316,46.267 -8.474,68.833 -2.567,13.936998 -5.243,27.849998 -8.444,41.654998 -1.558,6.718 -3.035,13.457 -4.751,20.137 -1.266,4.928 -2.53,9.855 -3.796,14.782 -0.43,1.63 -0.92,6.29 -2.252,6.76" fill="#ff7021"/>
-   <path id="path111" d="m 119.97,-108.928 c -2.232,14.690998 -5.581,29.118998 -9.398,43.475998 -1.887,7.094 -3.867,14.161 -5.758,21.254 -1.043,3.911 -2.089,7.821 -3.14,11.729 -0.344,1.281 -0.583,4.644 -1.511,5.623 -0.883,0.933 -3.944,1.273 -5.204,1.68 0.146,-19.243 -0.503,-38.533 -0.503,-57.789 0,-4.44 -0.053,-8.884 10e-4,-13.324 0.029,-2.387 -1.246,-13.033998 0.768,-14.040998 8.398,-4.2 17.228,-2.05 24.748,1.39" fill="#bf0000"/>
-   <path id="path113" d="m 119.97,-108.928 c -2.139,14.070998 -5.008,27.955998 -8.528,41.745998 -1.736,6.8 -3.486,13.61 -5.403,20.362 -0.921,3.246 -1.951,6.461 -2.892,9.701 -0.887,3.052 -1.372,8.077 -3.319,10.441 l 0,-52.726 c 0,-9.611 0.158,-19.219 0.288,-28.828998 0.039,-2.891 -0.597,-3.205 2.062,-4.053 1.983,-0.633 5.056,-0.45 7.114,-0.292 3.75,0.28 8.07,1.57 10.68,3.65" fill="#ff0000"/>
-   <path id="path115" d="m 81.026,20.151998 c -1.015,4.249 7.103,2.604 9.681,2.706 2.136,0.084 14.052,2.581 13.315,-1.529 -4.019,-0.176 -8.036,-0.352 -12.055,-0.527 -3.288,-0.15 -8.021,0.32 -10.939,-0.65" fill="#84442f"/>
-   <path id="path117" d="m 102.01,8.0619983 c 0.16,-3.537 0.32,-7.07400001 0.481,-10.611 0.225,-4.969 0.039,-4.172 -5.014,-4.496 -0.102,3.021 -0.203,6.04 -0.305,9.061 -0.061,1.805 1.023,6.7 -1.877,5.88 0.204,-4.802 0.408,-9.604 0.612,-14.405 0.125,-2.94 1.153,-2.201 4.255,-2.047 2.341,0.116 4.264,-0.541 4.163,1.807 -0.213,4.994 -0.425,9.987 -0.638,14.98 -0.51,-0.05 -1.19,0.02 -1.67,-0.17" fill="#c1d8f1"/>
-   <path id="path119" d="m 102.01,8.0619983 c 0.16,-3.537 0.32,-7.07400001 0.481,-10.611 0.225,-4.969 0.039,-4.172 -5.014,-4.496 -0.102,3.021 -0.203,6.04 -0.305,9.061 -0.061,1.805 1.023,6.7 -1.877,5.88 0.204,-4.802 0.408,-9.604 0.612,-14.405 0.125,-2.94 1.153,-2.201 4.255,-2.047 2.341,0.116 4.264,-0.541 4.163,1.807 -0.213,4.994 -0.425,9.987 -0.638,14.98 -0.51,-0.05 -1.19,0.02 -1.67,-0.17" fill="none" stroke="#000000" stroke-linecap="square" stroke-width="1.1" stroke-miterlimit="10"/>
-   <path id="path121" d="m 89.083,-2.0080017 c 0.259,1.98799999 0.717,3.045 1.343,4.197 0.438,0.806 0.999,1.229 1.343,2.518 0.162,0.606 0.711,3.093 0.336,3.691 -0.753,1.2 -7.042,1.7959997 -8.561,2.1839997 0.515,-2.5129997 2.794,-6.5989997 2.668,-8.8739997 -0.103,-1.86000001 -0.201,-5.5 2.871,-3.72" fill="#ffd900"/>
-   <path id="path123" d="m 89.083,-2.0080017 c 0.259,1.98799999 0.717,3.045 1.343,4.197 0.438,0.806 0.999,1.229 1.343,2.518 0.162,0.606 0.711,3.093 0.336,3.691 -0.753,1.2 -7.042,1.7959997 -8.561,2.1839997 0.515,-2.5129997 2.794,-6.5989997 2.668,-8.8739997 -0.103,-1.86000001 -0.201,-5.5 2.871,-3.72" fill="none" stroke="#000000" stroke-linecap="square" stroke-width="0.9" stroke-miterlimit="10"/>
-   <path id="path125" d="m 85.558,6.5519983 c -0.224,1.642 0.241,4.1589997 -2.014,4.0289997 0.351,-2.3419997 0.927,-4.8519997 1.847,-7.0509997 0.055,1.01 0.111,2.02 0.167,3.02"/>
-   <path id="path127" d="m 86.229,-0.99800171 c 1.819,0.614 2.502,2.99800001 0.337,3.52400001 -0.112,-1.17 -0.224,-2.35000001 -0.337,-3.52000001"/>
-   <path id="path129" d="m 87.571,0.17199829 c -0.571,-0.116 -0.623,0.245 -1.005,-0.169 -0.142,0.74 -0.012,1.02400001 0.166,1.84800001 1.06,-0.628 0.64,-0.534 0.672,-1.00800001 0.368,-0.3 0.315,-0.4 0.167,-0.67" fill="#ffb8bd"/>
-   <path id="path131" d="m 89.754,2.3519983 c -0.422,1.436 -0.42,2.879 -0.503,4.365 0.448,-0.167 0.895,-0.335 1.343,-0.502 -0.882,1.442 -1.449,3.34 -3.358,3.523 0.336,-1.119 0.672,-2.237 1.009,-3.356 -0.867,0.051 -1.558,-0.468 -1.847,-0.505 2.439,0.75 2.632,-2.3 3.356,-3.52" fill="#ffa300"/>
-   <path id="path133" d="m 90.426,7.5619983 c 0.161,-3.536 0.322,-7.07200001 0.483,-10.608 0.226,-4.97 0.038,-4.171 -5.016,-4.499 -0.102,3.021 -0.203,6.04 -0.305,9.061 -0.061,1.804 1.023,6.699 -1.876,5.88 0.212,-4.993 0.425,-9.986 0.638,-14.98 0.127,-2.9810003 4.516,-1.456 6.89,-1.337 2.377,0.119 1.477,2.313 1.377,4.65 -0.094,2.19 0.818,13.26 -2.191,11.84" fill="#c1d8f1"/>
-   <path id="path135" d="m 90.426,7.5619983 c 0.161,-3.536 0.322,-7.07200001 0.483,-10.608 0.226,-4.97 0.038,-4.171 -5.016,-4.499 -0.102,3.021 -0.203,6.04 -0.305,9.061 -0.061,1.804 1.023,6.699 -1.876,5.88 0.205,-4.802 0.409,-9.604 0.613,-14.405 0.148,-3.4740003 2.952,-2.11 6.162,-1.95 2.851,0.144 2.292,0.856 2.167,3.794 -0.129,3.04 -0.259,6.08099999 -0.389,9.122 -0.073,1.7 0.707,4.507 -1.84,3.775" fill="none" stroke="#000000" stroke-linecap="square" stroke-width="1.1" stroke-miterlimit="10"/>
-   <path id="path137" d="m 98.147,-2.3380017 c 1.864,1.098 0.72,2.04499999 1.006,3.526 0.165,0.854 0.768,0.979 0.988,2.082 0.611,3.057 2.16,4.816 -1.07,5.723 -2.758,0.772 -3.508,-0.352 -5.905,-1.949 -0.554,-0.369 0.38,-2.665 0.522,-3.258 0.381,-1.589 1.889,-0.779 2.276,-1.758 0.611,-1.54000001 -1.345,-5.18 2.184,-4.36" fill="#ff7f00"/>
-   <path id="path139" d="m 98.147,-2.3380017 c 1.751,1.032 0.694,1.87099999 1.006,3.18899999 0.105,0.44300001 -0.378,0.48300001 -0.336,0.83900001 0.091,0.762 1.081,0.365 1.216,1.04 0.367,1.833 2.126,5.396 0.048,5.979 -3.306,0.928 -3.467,0.633 -6.339,-1.281 -1.85,-1.232 -0.039,-4.647 1.7,-5.226 1.211,-0.402 -1.087,-5.77 2.705,-4.371" fill="none" stroke="#000000" stroke-linecap="square" stroke-width="0.9" stroke-miterlimit="10"/>
-   <path id="path141" d="m 99.322,-0.66800171 c -4.051,0.01 -0.901,5.39000001 0,0"/>
-   <path id="path143" d="m 98.484,0.85199829 c 0.105,-0.304 0.522,-0.252 0.168,-0.84 -1.058,0.134 -1.271,0.663 -0.504,1.67900001 0.696,-0.2 0.34,-0.51 0.336,-0.84000001" fill="#ffb8bd"/>
-   <path id="path145" d="m 89.083,5.7119983 c -0.144,4.3149997 -0.287,8.6299997 -0.431,12.9449997 -0.121,3.64 -0.689,2.831 -4.491,2.736 -3.372,-0.085 -3.18,0.113 -3.039,-3.046 0.191,-4.268 0.383,-8.5349997 0.574,-12.8029997 2.217,0.11 5.514,0.73 7.387,0.17" fill="#bf7242"/>
-   <path id="path147" d="m 88.747,13.101998 c 0.056,-1.008 0.111,-2.016 0.167,-3.023 -1.93,-0.088 -3.86,-0.1749997 -5.79,-0.2629997 -2.335,-0.105 -1.647,0.9009997 -1.764,3.1179997 2.217,0.09 5.514,0.71 7.387,0.16" fill="#84442f"/>
-   <path id="path149" d="m 88.914,7.0619983 c 0.056,-0.393 0.113,-0.784 0.169,-1.177 -1.815,-0.082 -7.816,-1.54 -7.554,1.009 2.138,0.09 6.012,0.61 7.385,0.17" fill="#84442f"/>
-   <path id="path151" d="m 104.53,6.3919983 c -0.167,5.0029997 -0.334,10.0049997 -0.501,15.0079997 -0.056,1.695 -6.423,0.583 -7.779,0.537 -1.297,-0.044 -8.922,0.683 -8.838,-1.21 0.222,-5.002 0.444,-10.005 0.667,-15.0069997 4.31,0.21 13.16,2.12 16.45,0.67" fill="#ffc461"/>
-   <path id="path153" d="m 104.19,13.771998 c 0.056,-1.063 0.112,-2.127 0.168,-3.19 -3.622,-0.147 -7.244,-0.296 -10.865,-0.443 -4.264,-0.1749997 -5.52,-1.4779997 -5.753,2.962 5.482,0.22 10.966,0.45 16.448,0.67" fill="#e3622d"/>
-   <path id="path155" d="m 104.36,7.7319983 c 0.056,-0.447 0.112,-0.896 0.168,-1.343 l -16.452,-0.672 c -0.442,2.56 5.864,1.644 7.69,1.736 2.204,0.1 7.152,0.93 8.592,0.27" fill="#e3622d"/>
-   <path id="path157" d="m 80.857,21.661998 c 0.59,-3.916 0.471,-8.002 0.65,-11.9509997 0.03,-0.649 -0.285,-3.673 0.189,-4.162 0.608,-0.628 5.177,0.136 6.16,0.161 3.732,0.098 7.467,0.372 11.196,0.56 4.183,0.212 5.701,-1.026 5.51,3.247 -0.161,3.5699997 0.556,8.5749997 -0.539,11.9789997 -0.737,2.293 -0.697,1.858 -3.368,1.753 -2.886,-0.114 -19.032,0.834 -19.628,-1.586" fill="none" stroke="#000000" stroke-linecap="square" stroke-width="1.3" stroke-miterlimit="10"/>
-   <path id="path159" d="M 85.391,-7.2080017 C 81.329,-13.633002 77.267,-20.057002 73.205,-26.481002 c -0.485,-0.767 -6.296,-9.207 -3.089,-7.418 1.613,0.9 3.305,5.227 4.265,6.745 2.64,4.176 5.28,8.353 7.92,12.528 0.877,1.387 4.26,5.0500003 4.265,6.7450003 0.004,1.18 -0.529,1.13 -1.175,0.66"/>
-   <path id="path161" d="m 90.594,-7.7080017 9.201,-20.8890003 c 0.354,-0.802 3.996,-10.144 4.564,-6.976 0.232,1.296 -2.438,5.422 -2.963,6.639 -1.962,4.542 -3.924,9.084 -5.886,13.627 -1.184,2.741 -2.368,5.4810003 -3.552,8.2230003 -0.594,1.36 -1.358,-0.42 -1.368,-0.62"/>
-   <path id="path163" d="m 101.84,-242.213 c 15.437,-1.69 22.554,16.828 23.884,29.477 0.858,8.159 1.417,16.123 1.68,24.322 0.105,3.314 0.618,7.842 -0.214,10.828 -7.595,-5.089 -21.862,-5.328 -30.215,-1.679 -1.257,-8.376 0.089,-18.071 0.68,-26.546 0.441,-6.342 0.923,-12.656 1.713,-18.966 0.652,-5.213 3.222,-12.409 2.472,-17.436" fill="#ffa300"/>
-   <path id="path165" d="m 101.67,-187.156 c 0.402,-18.308 1.342,-36.997 4.531,-55.057 14.667,2.302 17.913,20.627 19.878,32.648 1.155,7.063 1.174,14.354 1.354,21.489 0.081,3.215 0.557,7.605 -0.247,10.49 -6.164,-5.114 -18.132,-4.238 -25.516,-3.023 0.01,-2.182 0.01,-4.365 0.01,-6.547" fill="#ffd900"/>
-   <path id="path167" d="m 70.955,-29.538002 c 2.408,2.393 6.544,3.047 9.73,3.783 2.397,0.555 9.896,3.255 8.566,-0.594 -1.539,-4.454 -18.068,-9.4 -18.296,-3.021" fill="none" stroke="#000000" stroke-linecap="square" stroke-width="2.7" stroke-miterlimit="10"/>
-   <path id="path169" d="m 70.955,-29.538002 c 2.408,2.393 6.544,3.047 9.73,3.783 2.397,0.555 9.896,3.255 8.566,-0.594 -1.747,-5.05 -18.988,-8.28 -18.296,-3.19" fill="#bf0000"/>
-   <path id="path171" d="m 70.955,-29.538002 c -14.217,-20.137 -28.029,-40.467 -41.22,-61.291 C 17.59,-109.999 4.002,-132.999 1.107,-155.828 c -3.032,-23.906 5.262,-49.519 25.358,-63.774 4.625,-3.281 10.063,-5.022 14.803,-8.039 4.097,-2.608 8.34,-5.489 13.235,-6.348 1.681,-0.295 2.138,-0.01 3.693,-0.671 1.173,-0.499 2.186,-1.322 3.357,-1.847 2.124,-0.951 4.314,-1.372 6.547,-1.93 1.274,-0.318 2.443,-0.252 3.692,-0.252 2.269,0 3.142,-0.345 5.371,-1.175 3.394,-1.263 6.729,-1.343 10.24,-1.343 2.167,0 2.651,0.53 4.7,0 2.565,-0.663 5.08,-1.804 7.805,-1.259 4.259,0.852 8.124,-0.386 12.183,2.148 1.992,1.245 6.815,0.006 9.472,0.538 1.983,0.396 3.65,0.946 5.455,1.846 2.2,1.098 2.809,0.923 5.035,1.091 3.705,0.279 7.091,1.617 10.408,3.273 1.216,0.607 2.178,1.399 3.273,2.182 1.119,0.799 2.502,0.193 3.776,0.672 2.464,0.926 4.63,1.904 6.882,3.273 2.328,1.416 4.427,2.987 6.547,4.7 2.297,1.855 4.84,2.612 7.334,4.191 22.305,14.126 28.289,37.483 27.92,62.491 -0.169,11.441 -6.459,23.51 -11.583,33.41 -5.69,10.993 -12.271,21.373 -19.184,31.627998 -11.658,17.295 -24.517,33.87 -37.637,50.076 -3.542,4.373 -7.022,8.784 -10.484,13.222 -1.684,2.158 -8.313,0.47 -10.791,0.339 -12.52,-0.66 -25.041,-1.321 -37.561,-1.982" fill="none" stroke="#000000" stroke-linecap="square" stroke-miterlimit="10"/>
-   <path id="path173" d="m 118.79,-27.348002 c -4.174,5.347 -8.348,10.692 -12.521,16.039 -0.602,0.77 -2.824,4.6540003 -3.883,4.5860003 -4.394,-0.282 -4.672,0.002 -6.563,-3.7790003 -5.091,-10.178 -13.132,-18.44 -24.873,-18.862 3.848,-8.856 49.099,-6.413 48.007,2.017" fill="none" stroke="#000000" stroke-linecap="square" stroke-miterlimit="10"/>
-   <path id="path175" d="m 118.79,-27.348002 c -7.265,-5.329 -20.801,-4.535 -29.375,-4.535 -4.961,0 -10.075,-0.169 -14.92,1.046 -2.479,0.621 -3.073,2.146 -4.633,-0.088 -1.707,-2.445 -3.415,-4.89 -5.122,-7.335 3.856,-2.594 9.683,-2.7 14.167,-2.914 5.469,-0.26 10.914,-0.389 16.384,-0.108 9.01,0.462 22.675,-0.034 30.215,5.708 -2.183,2.742 -4.364,5.484 -6.547,8.227" fill="none" stroke="#000000" stroke-linecap="square" stroke-miterlimit="10"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/79-2.svg b/htdocs/public/symbols/svgicons/79-2.svg
deleted file mode 100755
index be049687ca015714cc43ce5cceb192fe58a7253a..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/79-2.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata7">image/svg+xml</metadata>
- <g id="g7" transform="matrix(0.1034433,-0.1034433,0.1034433,0.1034433,-1.4469352,12.187413)" fill="#4d4d4d">
-  <g id="layer1">
-   <path id="path3297" d="M 27.233047,80.190277 50.521446,102.74008 C 80.457618,77.648438 118.54006,55.793946 120.62015,7.044739 71.963279,10.694428 50.380767,48.797791 27.233047,80.190277 Z" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linejoin="round" stroke-width="6"/>
-   <path d="M 105.79237,32.142879 A 7.099771,7.181993 0 1 1 95.534653,22.210502 7.099771,7.181993 0 1 1 105.79237,32.142879 Z" id="path3301" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linejoin="round" stroke-width="3.61"/>
-   <path id="path3303" d="M 91.621361,46.777889 A 7.0997695,7.1819915 0 1 1 81.363648,36.845512 7.0997695,7.1819915 0 1 1 91.621361,46.777889 Z" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linejoin="round" stroke-width="3.61"/>
-   <path d="M 77.256363,61.612881 A 7.0997695,7.1819915 0 1 1 66.99865,51.680504 7.0997695,7.1819915 0 1 1 77.256363,61.612881 Z" id="path3305" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linejoin="round" stroke-width="3.61"/>
-   <path id="path3307" d="M 27.233047,80.190277 7.460029,87.048248 C 11.736541,74.369049 18.503852,57.978424 27.636146,52.378753 33.63639,48.699554 47.960906,51.440612 47.960906,51.440612 L 27.233047,80.190276 Z" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linejoin="round" stroke-width="6"/>
-   <path d="m 51.231438,102.00681 -6.217346,19.9837 c 12.534836,-4.6828 28.698914,-11.97467 34.001465,-21.28266 3.483932,-6.115657 0.282806,-20.344416 0.282806,-20.344416 L 51.231438,102.00681 Z" id="path3309" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linejoin="round" stroke-width="6"/>
-  </g>
- </g>
- <path inkscape:connector-curvature="0" d="m 12.663647,24.000053 -0.146243,-0.253609 c -0.281073,-0.491613 -0.365476,-0.855758 -0.360977,-1.556829 0.0037,-0.573683 0.02786,-0.720946 0.199926,-1.232875 0.174389,-0.51883 0.192684,-0.633696 0.168456,-1.066271 l -0.02592,-0.485006 0.118474,0.266569 c 0.135263,0.300825 0.148471,0.626473 0.07034,1.760457 l -0.04998,0.723805 0.183265,0.372084 c 0.187565,0.380772 0.658443,0.916001 0.581266,0.660865 -0.05557,-0.183695 0.101748,-0.591639 0.479451,-1.245833 0.469321,-0.812878 0.569167,-1.130555 0.536838,-1.679007 -0.0391,-0.66333 -0.372644,-1.268016 -0.953349,-1.727135 C 13.27539,18.387204 13.117825,18.309575 12.9987,18.309575 l -0.179563,0 0.249907,0.272121 c 0.345508,0.374833 0.544888,0.837375 0.581266,1.345796 0.02163,0.30224 0.01061,0.40267 -0.03887,0.372084 -0.0373,-0.02306 -0.06664,-0.09006 -0.06664,-0.148093 0,-0.168138 -0.331888,-0.785432 -0.573861,-1.068122 -0.121983,-0.142509 -0.379963,-0.375097 -0.57201,-0.516475 -0.333196,-0.245283 -0.366654,-0.257311 -0.760829,-0.257311 -0.227194,0 -0.403017,0.01999 -0.390595,0.04443 0.355079,0.698455 0.372338,0.755718 0.370233,1.229174 -0.0019,0.437648 -0.02464,0.519208 -0.279526,1.066271 -0.316737,0.679812 -0.395968,0.981433 -0.398,1.486484 -0.003,0.73232 0.345394,1.282872 1.016289,1.606811 0.205689,0.09932 0.448907,0.198953 0.54054,0.220288 l 0.166605,0.03702 z m -2.471305,-1.928913 0.04628,-0.266567 c 0.06547,-0.379236 0.146956,-0.559475 0.490559,-1.09589 0.166957,-0.260644 0.337697,-0.561507 0.38134,-0.66827 0.123544,-0.30223 0.05492,-0.920239 -0.148094,-1.330987 l -0.168455,-0.342466 -0.07405,0.255461 c -0.05696,0.195346 -0.184194,0.360983 -0.544242,0.703442 -0.5221647,0.496655 -0.5992159,0.658928 -0.5997775,1.269899 -4.096e-4,0.448141 0.1188643,0.797232 0.3998516,1.179191 L 10.19234,22.07114 Z" id="path2396" fill="#ff0000"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/79-3.svg b/htdocs/public/symbols/svgicons/79-3.svg
deleted file mode 100755
index f898767c4711a6878e1c8ff206b9c5be640b48e2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/79-3.svg
+++ /dev/null
@@ -1,459 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   viewBox="0 0 24 24"
-   height="24"
-   width="24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="79-3.svg">
-  <defs
-     id="defs96" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview94"
-     showgrid="false"
-     inkscape:zoom="13.906433"
-     inkscape:cx="-6.6869741"
-     inkscape:cy="17.701382"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4411">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     id="path3"
-     d="m 13.731752,19.429284 c 1.354243,-1.735792 2.726364,-3.448226 4.018258,-5.232082 0.633909,-0.875308 1.191274,-1.793829 1.743699,-2.721334 0.484235,-0.812869 1.017254,-1.7993085 1.20457,-2.7355277 0.533019,-2.6630275 -0.226486,-5.7511763 -2.985282,-6.81937 -1.398535,4.8154961 -2.797159,9.6308127 -4.195693,14.4462187 -0.325669,1.121109 -0.651248,2.242398 -0.976916,3.363507 0.396193,-0.10062 0.793284,-0.20124 1.190375,-0.301861"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path5"
-     d="m 12.856713,19.640408 c 0.348488,-1.725461 0.708116,-3.394592 1.196665,-5.081781 0.860304,-2.971268 1.720609,-5.9426248 2.581003,-8.9139821 0.359449,-1.2412248 0.718808,-2.4825396 1.078256,-3.7237644 0.970628,0.3000644 1.628793,0.9416095 1.968837,1.893371 0.358819,1.0042278 0.547303,2.0604728 0.493758,3.1296547 -0.109335,2.1849008 -1.432313,4.1950638 -2.497363,6.0384838 -0.697515,1.207265 -1.465015,2.376439 -2.208798,3.555405 -0.387478,0.614233 -0.773519,1.229545 -1.149498,1.850966 -0.202319,0.334563 -0.399517,0.672181 -0.599231,1.008271 -0.08086,0.134759 -0.736685,0.248856 -0.864258,0.243465"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path7"
-     d="m 12.554852,19.715873 c 0.701738,-0.943586 1.403385,-1.887082 2.105033,-2.830668 0.395744,-0.532211 0.791578,-1.064421 1.187321,-1.596541 0.223611,-0.300694 0.437699,-0.414071 0.809635,-0.157309 0.402662,0.278053 0.0186,0.544069 -0.200881,0.84584 -0.315787,0.434015 -0.657447,0.852309 -0.990932,1.272848 -0.323423,0.407693 -0.644689,0.81817 -0.977905,1.217957 -0.233942,0.280569 -0.529694,0.903338 -0.890311,0.995783 -0.315337,0.07996 -0.745669,0.256043 -1.04214,0.251551"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path9"
-     d="M 20.894668,7.4251774 C 20.633235,7.0955556 20.310261,6.7844408 19.81794,6.7353884 19.620383,6.7157135 19.645538,6.7376344 19.571959,6.5540919 19.460827,6.2771162 19.349696,6.0001405 19.238564,5.7232546 18.729982,4.4557966 18.221399,3.1882487 17.712817,1.9207008 c 1.142042,0.4727363 1.858333,1.1813916 2.49368,2.2309885 0.584856,0.9681123 0.652236,2.1772644 0.687273,3.2734881"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900" />
-  <path
-     id="path11"
-     d="m 16.415262,15.025344 c -0.514062,0.848176 -1.055705,1.678654 -1.578752,2.52117 -0.264308,0.425661 -0.537151,0.848716 -0.787535,1.282641 -0.06163,0.10682 -0.258648,0.575603 -0.360526,0.602914 l -0.832275,0.222893 c 0.09164,-0.473006 0.222713,-0.645139 0.510559,-1.032079 0.476869,-0.641185 0.953558,-1.282191 1.430427,-1.923287 0.388287,-0.522148 0.776664,-1.044207 1.164951,-1.566355 0.132963,-0.178781 0.357335,-0.28344 0.516351,-0.234926"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1"
-     sodipodi:nodetypes="ccccccccc" />
-  <path
-     id="path13"
-     d="M 19.114945,2.7350974 C 19.919818,3.9736271 20.170561,5.3647045 20.170561,6.821904 20.07021,6.772043 19.654791,6.7615317 19.628019,6.6947808 19.432258,6.2068616 19.236498,5.7189423 19.040647,5.2309333 l -1.32819,-3.3102325 c 0.495017,0.1530868 1.083467,0.5013952 1.402398,0.8143966"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path15"
-     d="m 13.399345,19.429284 c 1.083826,-1.917268 2.255425,-3.783777 3.388393,-5.672387 0.573896,-0.956612 1.09811,-1.939728 1.615137,-2.927964 C 18.869862,9.936286 19.331009,8.9325073 19.505118,7.9353768 19.887386,5.7455349 19.307471,3.4797784 17.754952,1.8732654 17.508791,1.6186598 15.94621,0.5780469 15.826992,1.2485204 15.684776,2.0480036 15.54265,2.8474868 15.400434,3.64697 c -0.942419,5.2964978 -1.884837,10.592995 -2.826356,15.889942 -0.0115,0.06469 -0.023,0.12919 -0.0345,0.193874 0.28569,-0.10062 0.572279,-0.201241 0.858867,-0.301861"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path17"
-     d="m 12.64559,19.54967 c 0.661489,-4.881708 1.662932,-9.7278398 2.521979,-14.5773852 l 0.57731,-3.2587543 c 0.03648,-0.2060024 0.07304,-0.4120946 0.109514,-0.6180969 0.03899,-0.21983771 0.974132,0.1498525 1.10422,0.2148965 0.943406,0.471209 1.274465,1.684943 1.492866,2.640298 0.224239,0.9802407 0.271226,2.1204857 0.105921,3.1112376 -0.361246,2.165765 -1.482085,4.2371083 -2.395935,6.2132213 -0.915645,1.980246 -1.853122,3.947735 -2.725466,5.948015 -0.134759,0.306354 -0.45908,0.351273 -0.790589,0.326118"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path19"
-     d="m 15.993016,12.32656 c 0.338426,-0.204655 0.841079,-0.165844 1.176361,0.03019 0.350824,0.205104 0.28587,0.336091 0.127931,0.641186 -0.434015,0.838114 -0.89606,1.656374 -1.394581,2.457744 -0.480103,0.771723 -0.995873,1.521345 -1.486397,2.286599 -0.249844,0.389814 -0.506786,0.777742 -0.733451,1.181661 -0.101789,0.181476 -0.180758,0.469323 -0.385053,0.540925 -0.252719,0.08867 -0.505438,0.177433 -0.758067,0.266105 0.136017,-0.76211 0.271855,-1.52431 0.407872,-2.28642 0.09128,-0.511367 0.568146,-1.160099 0.820326,-1.616125 0.350015,-0.633101 0.707487,-1.261349 1.069901,-1.887442 0.300064,-0.516578 0.678289,-1.246975 1.156236,-1.614419"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path21"
-     d="m 16.6806,12.165478 c -0.574435,1.332143 -1.31206,2.667339 -1.901138,3.992564 -0.275628,0.620164 -0.546046,1.242932 -0.825088,1.861568 -0.164406,0.364749 -0.324501,0.729498 -0.478845,1.09856 -0.04348,0.104124 -0.07421,0.315427 -0.195581,0.336988 -0.206542,0.03665 -0.413083,0.0734 -0.619535,0.110144 0.05507,-0.445066 0.110234,-0.890042 0.165305,-1.335108 0.03504,-0.282456 0.02956,-0.66095 0.158927,-0.909986 0.379303,-0.730306 0.763907,-1.45657 1.162166,-2.176725 0.378135,-0.68395 0.774148,-1.357657 1.213015,-2.004593 0.329712,-0.48693 0.574974,-1.148503 1.206547,-1.152096"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1"
-     sodipodi:nodetypes="ccccccccccc" />
-  <path
-     id="path23"
-     d="m 19.612656,6.7164322 c -0.307251,-0.4318593 -0.982127,-0.4948369 -1.45657,-0.399517 -0.256043,0.051388 -0.54371,-1.0171648 -0.63355,-1.233319 -0.555029,-1.3358261 -1.109879,-2.6716521 -1.664908,-4.0073883 0.656907,0.01689 1.126679,0.1752772 1.648647,0.5855749 0.527988,0.4149695 0.930111,0.8983967 1.284348,1.4651054 0.29737,0.4756112 0.574615,1.1295542 0.658256,1.6873687 0.07816,0.527269 0.310845,1.4010496 0.162609,1.9021753"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900" />
-  <path
-     id="path25"
-     d="m 16.430535,1.0913009 c 1.063702,0.2478677 1.545063,1.2145425 1.843151,2.1753778 0.164586,0.5307728 0.248407,1.0610065 0.318841,1.611005 0.03279,0.2566719 0.154255,1.285426 -0.02057,1.401409 -0.114905,0.076274 -0.526461,0.063517 -0.569853,-0.040877 C 17.78397,5.7131926 17.565839,5.1881696 17.347708,4.6632364 16.85368,3.4739388 16.359562,2.2847311 15.865444,1.0954336 c -0.0026,-0.00638 -0.0054,-0.012847 -0.008,-0.019226 0.173391,0.00449 0.45369,0.010601 0.572279,0.015093"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path27"
-     d="m 12.977098,19.429284 c 0.834611,-2.01133 1.745495,-3.98394 2.623588,-5.975955 0.451085,-1.023363 0.914119,-2.042864 1.327202,-3.082219 0.389814,-0.9805102 0.855094,-2.0071081 1.007731,-3.0576034 0.284163,-1.9551807 0.05112,-4.7234104 -1.565546,-6.1012815 -0.368702,-0.31416929 -0.838563,-0.58243055 -1.327022,-0.63345948 -0.160453,-0.0168 -0.795979,0.002156 -0.818888,0.22549757 -0.069,0.67101251 -0.137904,1.34202501 -0.206811,2.01312731 -0.559791,5.4491354 -1.119582,10.8984505 -1.679373,16.3472265 -0.01312,0.128381 -0.02641,0.256761 -0.03953,0.385142 0.227295,-0.04043 0.453691,-0.07996 0.679188,-0.120385"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path29"
-     d="m 12.932178,19.429284 c -0.187225,0.02453 -0.41991,-0.02515 -0.618186,-0.04492 l 1.53545,-14.9322518 c 0.1061,-1.0322579 0.212201,-2.0645157 0.318391,-3.0967735 0.01985,-0.1927061 0.03962,-0.38532232 0.05938,-0.57802841 0.0248,-0.24077031 0.84045,-0.21103338 0.989674,-0.16844938 0.842067,0.24059064 1.242034,1.35756729 1.472562,2.13243439 0.309228,1.039445 0.314529,2.1381842 0.314529,3.2127565 0,0.9589486 -0.339684,1.985816 -0.602285,2.8992159 -0.320279,1.114012 -0.665622,2.2192193 -1.018513,3.3232593 -0.647654,2.026244 -1.33897,4.040898 -2.031993,6.051959 -0.129369,0.377327 -0.266824,0.888515 -0.418653,1.201157"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path31"
-     d="m 12.298809,19.54967 c 0.06244,-0.60534 0.124967,-1.21077 0.187495,-1.816199 0.04995,-0.483967 0.189562,-0.822482 0.374901,-1.275813 0.403111,-0.985811 0.806132,-1.979168 1.256408,-2.944585 0.177433,-0.380202 0.345523,-1.086701 0.79005,-1.202055 0.138623,-0.03594 1.193879,0.01186 1.079873,0.28569 -0.407872,0.979522 -0.839372,1.949072 -1.280036,2.914219 -0.350105,0.766872 -0.692843,1.536977 -1.041691,2.304388 -0.161082,0.354507 -0.31911,0.710811 -0.466447,1.071248 -0.03324,0.08122 -0.156232,0.530593 -0.237626,0.545057 -0.219209,0.04043 -0.440215,0.07906 -0.66122,0.118589"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path33"
-     d="m 12.932178,19.429284 c -0.187225,0.02453 -0.41991,-0.02515 -0.618186,-0.04492 0.03935,-0.378405 0.07879,-0.75681 0.118139,-1.135215 0.0318,-0.305814 -0.0082,-0.766242 0.114186,-1.051303 0.29117,-0.678919 0.5606,-1.36727 0.85761,-2.043583 0.300962,-0.685297 0.590156,-1.376075 0.906662,-2.054274 0.225407,-0.483248 0.409309,-0.945293 1.034503,-0.803436 -0.383435,1.177438 -0.792296,2.346342 -1.183907,3.521086 -0.219388,0.658435 -0.44803,1.313456 -0.663466,1.973238 -0.169797,0.521969 -0.349476,1.188579 -0.565091,1.639574"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path35"
-     d="M 15.269807,0.62386514 C 17.689369,1.3937911 18.029592,4.1646262 18.029592,6.3394649 17.812898,6.0712935 17.420838,5.9932229 17.096157,5.9663608 16.996885,5.9580955 16.429008,6.0779417 16.417149,6.0494625 16.118522,5.3274211 15.819985,4.6054695 15.521268,3.883428 15.142594,2.9679618 14.76392,2.0524057 14.385245,1.1369395 14.328377,0.99957464 14.143756,0.77245995 14.327209,0.69933046 14.632664,0.57777739 14.952493,0.52620941 15.270525,0.62386514"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900" />
-  <path
-     id="path37"
-     d="m 15.269807,0.62386514 c 0.317493,0.0300064 0.597074,0.41955126 0.776753,0.67110236 0.322974,0.4520732 0.508134,0.9625422 0.665173,1.4904401 0.139521,0.4688732 0.222893,0.9916503 0.250024,1.4795695 0.01429,0.2575704 0.04241,0.5181054 0.04241,0.7760351 0,0.1668323 0.102956,0.8079281 0,0.9214855 -0.04887,0.053994 -0.581083,0.1011595 -0.594559,0.068548 C 16.211147,5.5512117 16.012691,5.071378 15.814235,4.5915443 15.29613,3.3389098 14.778114,2.0863651 14.259919,0.83373061 14.141331,0.54561478 15.109802,0.57454316 15.270615,0.62386514"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path39"
-     d="m 12.554852,19.429284 c 1.362688,-4.15742 2.906223,-8.317536 3.794019,-12.6089971 0.214088,-1.034953 0.06082,-2.1615425 -0.05292,-3.1989212 C 16.187699,2.634477 15.75566,1.4759944 14.997952,0.81297764 14.62359,0.4854222 14.171427,0.28157599 13.67084,0.26252998 c -0.222712,-0.008535 -0.448929,0.0283893 -0.648462,0.12829105 -0.281109,0.14059909 -0.232955,0.44542509 -0.268891,0.72626387 -0.146528,1.1418622 -0.161711,2.3216368 -0.23493,3.4697878 -0.273472,4.2808602 -0.521789,8.5695363 -0.703984,12.8551583 -0.01994,0.468693 -0.03261,0.938196 -0.06019,1.40644 -0.01078,0.183452 -0.12883,0.480103 0.08526,0.503012 0.220736,0.02246 0.550448,0.05301 0.715753,0.07726"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path41"
-     d="m 11.966941,19.369092 c 0.159915,-4.316617 0.184621,-8.631975 0.435543,-12.9458965 0.06073,-1.0430386 0.13422,-2.0852686 0.198456,-3.1280376 0.03297,-0.5358038 0.07169,-1.0708889 0.109784,-1.6063333 0.02533,-0.3558549 -0.07259,-1.19657458 0.364749,-1.32145172 0.219658,-0.0627979 0.39206,-0.10565145 0.625913,-0.10565145 0.230349,0 0.454588,0.34983567 0.579466,0.51298451 0.312821,0.40877046 0.479384,0.93532076 0.579196,1.43473956 0.21292,1.0654985 0.255953,2.1513007 0.22397,3.2363842 -0.06082,2.0637071 -0.387568,4.1839233 -0.79562,6.2058553 -0.440124,2.181576 -0.917802,4.354169 -1.498436,6.503134 -0.09774,0.361604 -0.195491,0.723209 -0.293147,1.084814 -0.07546,0.278503 -0.255144,0.153626 -0.529515,0.128471"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path43"
-     d="m 12.554852,19.429284 c -0.206092,-0.02012 -0.412095,-0.04007 -0.618187,-0.06019 0.145001,-0.945114 0.346961,-1.890766 0.62187,-2.8074 0.142216,-0.473994 0.272664,-0.951133 0.433836,-1.419018 0.04779,-0.138622 0.118678,-0.481001 0.263859,-0.539038 0.192796,-0.07708 0.393318,-0.07133 0.595637,-0.03764 0.454499,0.07564 0.08337,0.634268 -0.0023,0.919958 -0.130627,0.435273 -0.280299,0.864437 -0.41991,1.296835 -0.137275,0.425301 -0.282456,0.847638 -0.415688,1.274376 -0.130268,0.418653 -0.233584,1.016087 -0.459081,1.37275"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path45"
-     d="m 12.434467,19.414012 c -0.155872,-0.01509 -0.311744,-0.0301 -0.467616,-0.04519 0.07978,-0.387299 0.104214,-0.813857 0.19603,-1.215171 0.124518,-0.543979 0.271496,-1.082478 0.413532,-1.622145 0.135748,-0.515949 0.282456,-1.033067 0.461237,-1.536079 0.138623,-0.389904 0.264578,-0.452343 0.648553,-0.452343 -0.187226,0.80164 -0.383077,1.600225 -0.576861,2.400067 -0.109514,0.452253 -0.232954,0.900284 -0.351902,1.350111 -0.08445,0.320727 -0.157219,0.854375 -0.322524,1.121199"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path47"
-     d="M 13.881784,0.27699417 C 16.34959,0.79644714 16.424157,4.0921256 16.430445,6.0828828 15.978282,5.705107 15.012506,5.537017 14.50033,5.8870324 14.099555,4.8188387 13.759961,3.7237829 13.440581,2.6286374 13.274827,2.0604015 13.107096,1.4921655 12.934604,0.92599595 c -0.10089,-0.33123887 -0.13467,-0.48073208 0.238435,-0.60381243 0.221005,-0.0725905 0.547123,-0.063337 0.708835,-0.0451894"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900" />
-  <path
-     id="path49"
-     d="m 13.746126,0.26190111 c 1.088857,0.70030022 1.248681,2.31292229 1.311839,3.49090009 0.03055,0.5687749 0.03037,1.1348547 0.03037,1.7043483 0,0.20735 0.0073,0.2052837 -0.150931,0.2790421 -0.142126,0.066302 -0.299346,0.064864 -0.43707,0.1508408 C 14.109887,4.8465093 13.776312,3.7800226 13.465287,2.7132663 13.300072,2.1467374 13.129377,1.5818255 12.962005,1.0158356 12.881509,0.7433519 12.733992,0.54489607 13.022198,0.38255578 13.238711,0.26100271 13.506434,0.26190111 13.746306,0.26190111"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path51"
-     d="M 9.4486453,19.187616 C 8.1713947,17.378514 6.9305292,15.552074 5.7454541,13.681252 4.6543513,11.959026 3.4336099,9.8927137 3.173524,7.8417639 2.8449803,5.251237 4.0292469,2.4024211 6.6435813,1.5587367 7.7691825,6.4501474 8.8948736,11.341378 10.020475,16.233148 c 0.256672,1.115629 0.513433,2.231168 0.770195,3.346797 -0.418653,-0.116791 -0.9788928,-0.185968 -1.3420247,-0.3917"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path53"
-     d="m 7.5333534,14.709108 c 0.5398465,0.833622 1.0796931,1.667245 1.6195397,2.500867 0.3547768,0.547842 0.7095537,1.095595 1.0643309,1.643437 0.157219,0.242747 0.298088,0.59411 0.573446,0.726533 -0.35864,-0.10071 -0.71728,-0.20151 -1.0760095,-0.30222 C 9.3977062,19.188694 9.3286195,19.030845 9.1469637,18.758092 8.7757462,18.200817 8.3773072,17.657646 7.9876726,17.112679 7.6295716,16.611643 7.2956376,16.094256 6.9506533,15.584416 6.8022381,15.365117 6.5038806,15.138901 6.7039535,14.890045 6.8806682,14.66904 7.2868333,14.66904 7.5333534,14.708569"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path55"
-     d="M 6.628578,1.5588266 C 6.2136984,2.6896385 5.6752893,3.7816397 5.1371497,4.858458 5.0105656,5.1118059 4.5901159,6.2790028 4.3302098,6.2528595 3.7471503,6.1941942 3.3489809,6.5953283 3.1149485,7.0783064 3.218354,4.6267615 4.2141369,2.4443762 6.628578,1.5588266"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path57"
-     d="M 9.8104296,19.308899 C 8.8590275,17.321736 7.7982007,15.393058 6.804574,13.427186 6.3029991,12.434727 5.8275675,11.437597 5.3909467,10.415042 4.9908009,9.4780138 4.5914635,8.4662394 4.4800623,7.4476373 4.2414482,5.2649825 4.9339323,3.0288731 6.5798849,1.5426554 6.9656565,1.194347 7.460134,0.98421205 7.9472447,0.82762151 8.1845113,0.75134763 8.5452176,0.73616472 8.5771106,1.0036174 8.6713525,1.7946557 8.7655943,2.585694 8.8598361,3.3768221 9.4957213,8.7125798 10.131517,14.047978 10.767312,19.384454 c 0.0077,0.0654 0.01554,0.130627 0.02336,0.196031 -0.32495,-0.09164 -0.650978,-0.201241 -0.9802404,-0.271316"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path59"
-     d="M 10.564454,19.338546 C 9.6235631,17.345902 8.5521352,15.423244 7.5585983,13.456923 7.0552266,12.460691 6.583209,11.456194 6.1449711,10.429865 5.7473407,9.4985871 5.3449488,8.4896876 5.2341765,7.4772844 4.9953827,5.2950788 5.6868786,3.044595 7.3339991,1.5573891 7.7198605,1.2089909 8.2094867,0.99714896 8.7013589,0.85654988 8.9441057,0.78719366 9.298613,0.74505885 9.3312248,1.0183511 9.4254666,1.8093894 9.5197085,2.6004277 9.6139503,3.3915558 10.249746,8.7273135 10.885541,14.062712 11.521336,19.399188 c 0.0077,0.0654 0.01554,0.130627 0.02336,0.19603 -0.32513,-0.08714 -0.651248,-0.19046 -0.980241,-0.256941"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path61"
-     d="m 6.3571724,12.552058 c -0.037733,-0.421887 1.2499393,-0.548921 1.3910775,-0.228732 0.3410313,0.773789 0.6820627,1.547668 1.023184,2.321457 0.7156628,1.623852 1.5492851,3.221111 2.0193261,4.934803 C 10.617909,19.530983 9.8867035,19.437639 9.8168981,19.289674 9.6443161,18.924116 9.4644571,18.566105 9.2760633,18.208363 8.9405121,17.57113 8.6078358,16.93264 8.2690504,16.297114 7.9506586,15.69995 7.6290326,15.105301 7.3214216,14.502297 7.0101271,13.893184 6.7633375,13.083729 6.3571724,12.552777"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path63"
-     d="M 10.730478,19.369092 C 10.427898,19.386071 9.9274907,18.009907 9.7751226,17.718468 9.4743394,17.143044 9.1883798,16.559536 8.8796907,15.988066 8.2033776,14.73597 7.3859226,13.090066 6.7596502,11.812187 c 0.2181307,-0.05884 0.6214109,0.25083 0.8296593,0.33402 0.165305,0.06585 0.2070944,0.287084 0.2788763,0.449963 0.3673544,0.833443 0.7347987,1.667065 1.1021531,2.500597 0.413532,0.938196 0.827064,1.876481 1.2405061,2.814587 0.184621,0.417755 0.524664,1.052023 0.519633,1.4572"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1"
-     sodipodi:nodetypes="ccccccccc" />
-  <path
-     id="path65"
-     d="m 7.970603,0.8198953 c 0.1892922,0.009703 0.3786742,0.0194054 0.5679664,0.0291081 0.053095,0.002695 0.068907,0.45162405 0.075196,0.50984015 C 8.658146,1.7693209 8.678899,2.066241 8.5837588,2.4706094 8.404888,3.2311022 8.2254782,3.9880014 7.9939613,4.7346589 7.8867826,5.0801823 7.764421,5.4310062 7.6766476,5.7814708 7.6468209,5.9002388 6.5912047,5.912457 6.4454848,5.9260228 5.7395247,5.9919651 5.0718362,5.7989895 4.4418805,6.2640895 4.333444,5.8139927 4.5505865,5.0718272 4.645547,4.5974737 4.7662017,3.9945597 5.0328458,3.4593848 5.3198836,2.9211553 5.8663783,1.8966237 6.8812072,1.1551769 7.970603,0.8198953"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path67"
-     d="M 8.5587834,0.88026755 C 8.5975043,1.2283963 8.6361353,1.5764352 8.6748562,1.9245639 8.7064798,2.2090861 8.5524946,2.6040213 8.487271,2.8812665 8.333735,3.5339517 8.166184,4.1795396 7.9674586,4.8201863 7.8761815,5.1145909 7.7971226,5.4117805 7.6998263,5.7044782 7.6225642,5.936534 7.0383368,6.099585 6.8139173,6.1205176 6.2744301,6.1710075 5.737638,5.8591821 5.2109979,5.9474046 5.3911264,4.8666334 5.6219245,3.8528826 6.1912385,2.9011211 6.4809715,2.4167954 6.8310767,2.0036228 7.2579948,1.6377058 7.6593086,1.29353 8.137615,1.1408026 8.5587834,0.88026755"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900"
-     sodipodi:nodetypes="cccccccccc" />
-  <path
-     id="path69"
-     d="M 10.232766,19.338546 C 9.5473791,17.281937 8.7525675,15.270876 8.0170501,13.232773 7.6356807,12.175989 7.2360739,11.124326 6.8846211,10.0573 6.5526635,9.0494786 6.1820749,7.9864058 6.0837004,6.9245009 5.9006072,4.9474891 6.3618441,2.2206754 8.0459785,0.94037029 c 0.3482186,-0.2647575 0.9597572,-0.60749585 1.41767,-0.55035781 0.1759061,0.0219209 0.7326425,0.0636065 0.7415365,0.30320888 0.02668,0.71027244 0.05336,1.42063474 0.08005,2.13090714 0.204565,5.4511118 0.40913,10.9020435 0.613785,16.3535145 0.0041,0.108976 0.0082,0.217862 0.01231,0.326837 -0.226216,-0.0557 -0.452433,-0.110503 -0.678559,-0.166203"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path71"
-     d="M 10.866046,19.353819 C 10.179132,17.293436 9.3891714,15.276266 8.6455685,13.236636 7.9023249,11.197904 6.911034,9.035823 6.7091642,6.8548751 6.6089032,5.7714087 6.7724114,4.6314331 7.0732844,3.5872267 7.3479243,2.6342074 7.833328,1.508696 8.7010894,0.94144837 9.1220781,0.66626946 9.633176,0.3719547 10.157301,0.41274191 c 0.181476,0.0141048 0.673168,0.0780707 0.681883,0.31012654 0.02731,0.72806065 0.05462,1.45612135 0.08202,2.18418205 0.204116,5.4379952 0.408232,10.8759905 0.612348,16.3139855 0.0038,0.09954 0.0075,0.199085 0.01123,0.298537 -0.226306,-0.0548 -0.452522,-0.109604 -0.678738,-0.165305"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path73"
-     d="m 7.4729811,11.73811 c 0.6767622,-0.430421 1.3404079,-0.129279 1.885016,0.316775 0.2019595,0.165395 0.3360902,0.228373 0.3825373,0.477318 0.079059,0.423774 0.1581178,0.847458 0.2372665,1.271142 0.3507341,1.879535 0.8668631,3.786742 0.9335241,5.701135 l -0.55467,-0.135568 C 10.164488,19.322016 10.175718,19.170726 10.11265,18.985117 9.9826523,18.602131 9.8469944,18.221839 9.7100787,17.841368 9.4614025,17.150501 9.2006878,16.466372 8.9330554,15.782602 8.6682979,15.10602 8.4017436,14.430875 8.1466888,13.750609 7.9069067,13.11095 7.7518434,12.329345 7.4729811,11.7382"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path75"
-     d="M 10.896232,19.369092 C 10.725896,19.167312 10.668129,18.768244 10.579637,18.509506 10.472728,18.197223 10.367615,17.884132 10.254327,17.574185 9.997925,16.872627 9.7375697,16.172866 9.4721833,15.474812 8.9766277,14.171238 8.4139636,12.751775 7.9651246,11.430414 c 0.6453183,-0.122362 1.0807694,0.36726 1.5437133,0.752942 0.4346443,0.362144 0.4015833,1.259642 0.5010361,1.792481 0.219748,1.177528 0.439495,2.355237 0.659243,3.532765 0.105023,0.562396 0.333305,1.303574 0.227115,1.86058"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1"
-     sodipodi:nodetypes="ccccccccc" />
-  <path
-     id="path77"
-     d="M 9.1620567,0.42783498 C 9.4324741,0.34527232 9.8302842,0.3945943 10.074379,0.54085328 10.270049,0.65818389 9.8973944,1.3121268 9.8103398,1.522172 9.5152165,2.2339717 9.1581936,2.916304 8.8258767,3.6109443 8.5175469,4.2552744 8.1796599,4.9020302 7.8219184,5.5203068 7.7763697,5.5989165 7.7276766,5.6752803 7.6918305,5.7587413 7.6468209,5.8637639 7.6207674,5.7608076 7.5334432,5.766198 7.3709232,5.7763499 7.1899861,5.7148097 7.0206384,5.7210087 6.7034145,5.7325081 6.3117135,5.7954857 6.0403977,5.9624078 6.2331038,3.8704013 6.714914,0.98358317 9.1620567,0.42783498"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path79"
-     d="M 9.7953366,0.44292804 C 9.8983827,0.47050882 10.00053,0.50779228 10.096928,0.55594635 10.256663,0.63581381 10.013557,1.0317372 9.9496811,1.1858123 9.6727054,1.8538601 9.3588056,2.4966629 9.0469721,3.1484497 8.7387322,3.79269 8.3989586,4.4165366 8.0709539,5.0504454 7.9894694,5.2079343 7.9105901,5.3667708 7.8217387,5.520217 7.7283953,5.6814792 7.7027919,5.9861192 7.5303896,5.9516208 7.236524,5.8930453 6.9854212,5.7178643 6.6886808,5.7511948 6.8266745,4.6324214 6.9814683,3.5512908 7.4718132,2.524064 7.7047675,2.0361447 8.0057303,1.5715838 8.4064153,1.2030615 8.8360286,0.80794662 9.3108312,0.6328491 9.7953366,0.44292804"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900"
-     sodipodi:nodetypes="ccccccccccc" />
-  <path
-     id="path81"
-     d="M 10.639919,19.369092 C 9.5874476,15.123269 8.2868387,10.876548 7.6984787,6.5345967 7.5557234,5.4814063 7.7832873,4.3859912 7.9538929,3.3489718 8.1202759,2.3370178 8.6664113,1.2380091 9.4720036,0.60059666 9.838819,0.31032469 10.390255,0.10441216 10.866225,0.16361651 c 0.2246,0.0279401 0.489088,0.0745669 0.65601,0.24130935 0.170605,0.17051569 0.125865,0.47938448 0.128291,0.70991304 0.01204,1.1760912 0.01491,2.3517331 0.01491,3.527914 0,4.3203898 -0.04699,8.6466191 -0.13997,12.9656611 -0.0098,0.456116 -0.02587,0.912501 -0.02587,1.368797 0,0.26907 0.08166,0.357832 -0.19064,0.367624 -0.223072,0.009 -0.446054,0.01797 -0.669036,0.02426"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path83"
-     d="M 11.062076,19.353819 C 10.526182,17.192277 9.990648,15.031004 9.4792806,12.863532 8.9832758,10.760745 8.4962549,8.6390011 8.2735424,6.4879699 8.1711252,5.4990148 8.2756087,4.3321772 8.5321908,3.3705334 8.8115023,2.3232723 9.1371711,1.1605673 10.081925,0.5033003 c 0.339235,-0.23600881 0.831107,-0.40427852 1.22164,-0.22621629 0.416766,0.19010074 0.343816,0.53409684 0.348129,0.95688229 0.01186,1.1539906 0.01689,2.3077116 0.01365,3.4617022 -0.0124,4.3883085 -0.05103,8.7805695 -0.14545,13.1686985 -0.007,0.322974 -0.02039,0.646486 -0.02039,0.96955 0,0.08553 0.0548,0.449558 0,0.505168 -0.05031,0.05121 -0.356573,0.01258 -0.437429,0.01527"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path85"
-     d="m 11.333751,18.901027 c 0.01384,0.05624 0.11203,0.351453 0.09038,0.39224 -0.04887,0.09218 -0.275359,0.05561 -0.399607,0.06028 -0.221994,0.0084 -0.376608,0.09766 -0.438687,-0.125686 C 10.384415,18.502768 10.208419,17.768868 10.029369,17.037752 9.6811504,15.61595 9.3256548,14.193788 8.9508437,12.778544 9.0997978,12.72437 9.2349167,12.619258 9.4183693,12.6127 c 0.1049328,-0.0037 0.3168645,0.01914 0.4072432,0.07537 0.1435638,0.08921 0.1333221,0.202409 0.1772535,0.371397 0.166114,0.640198 0.325849,1.283899 0.475432,1.928139 0.161352,0.69491 0.33025,1.388203 0.494298,2.082573 0.124607,0.528258 0.419371,1.319745 0.361155,1.831831"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path87"
-     d="m 11.42404,19.338546 c -0.05804,0.0025 -0.338875,0.04492 -0.351992,-0.0047 -0.04681,-0.177793 -0.09361,-0.355676 -0.140419,-0.533468 -0.06828,-0.259457 -0.122542,-0.522598 -0.188933,-0.782594 -0.167282,-0.654931 -0.323962,-1.312198 -0.48172,-1.969555 -0.2749996,-1.146264 -0.5759765,-2.410548 -0.8695726,-3.552321 0.1455403,0.0142 0.3293662,0.139762 0.4643054,0.207322 0.1771642,0.08849 0.3221312,0.6163 0.3720822,0.826076 0.174559,0.733091 0.354777,1.464925 0.531582,2.197478 0.289283,1.196664 0.434049,2.410398 0.664667,3.610656"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1"
-     sodipodi:nodetypes="cccccccscc" />
-  <path
-     id="path89"
-     d="m 10.564454,0.17143256 c 0.196749,0.007726 1.181032,0.0264129 1.025969,0.42269565 C 11.379929,1.1320881 11.169344,1.6701379 10.95885,2.2081877 10.500668,3.379158 10.042396,4.5501282 9.5842133,5.7210985 9.0712288,5.4398105 8.1086866,5.4072885 7.6539182,5.8116569 7.6771867,3.8085018 8.1696877,0.57094957 10.564454,0.17143256"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path91"
-     d="M 8.2421884,5.5550748 C 8.3530505,4.5318908 8.3812602,3.3304649 8.8059323,2.3749301 9.2209916,1.4410468 9.7551782,0.32532791 10.906294,0.1971267 c 0.206991,-0.0230888 0.576771,0.0923552 0.653494,0.24580134 0.0893,0.17860126 -0.09038,0.46042831 -0.180129,0.68969916 -0.271316,0.6932927 -0.542631,1.3866753 -0.813947,2.079968 C 10.238516,4.048733 9.9113196,5.1137743 9.5841235,5.9499121 9.2170386,5.7255824 8.6578765,5.5050341 8.2421884,5.5550748"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900"
-     sodipodi:nodetypes="cscscccc" />
-  <path
-     id="path93"
-     d="M 11.137541,19.398739 C 10.335363,15.07233 9.7245429,10.76883 9.5846625,6.3665965 9.5525898,5.3576072 9.6209578,4.2965108 9.8060275,3.3051301 10.007089,2.2283118 10.237078,1.0958828 11.101875,0.34895575 c 0.251281,-0.21705265 1.082388,-0.55044766 1.238709,-0.0817541 0.161173,0.48297806 0.139162,1.00916905 0.139162,1.51290005 0,1.0890365 -0.05247,2.1750184 -0.105652,3.2623479 -0.215794,4.4125653 -0.466986,8.8240524 -0.706948,13.2351804 -0.02363,0.433835 -0.0433,0.867941 -0.06217,1.302046 -0.153356,-0.06109 -0.308959,-0.133861 -0.466717,-0.180578"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path95"
-     d="m 10.127294,5.1178251 c 0.08957,-1.1052076 0.191089,-2.1878655 0.54389,-3.2455479 0.175456,-0.5259214 0.424043,-0.95481602 0.780257,-1.37805071 0.133951,-0.15910605 0.370768,-0.28452223 0.56599,-0.34965599 0.269609,-0.08983967 0.352351,0.0592043 0.391701,0.3478592 0.139251,1.0205787 0.1008,2.1081777 0.03656,3.1350451 -0.07142,1.1416825 -0.115085,2.2856111 -0.170246,3.4282818 -0.195312,4.0498824 -0.434825,8.0985074 -0.655291,12.1472214 -0.781426,-4.283555 -1.508049,-8.612929 -1.508049,-12.9809335 0,-0.3684325 0.0042,-0.7355174 0.01518,-1.1041296"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path97"
-     d="m 11.574881,12.190902 c 0.382537,0.51029 0.370049,0.896331 0.342289,1.526646 -0.0301,0.686105 -0.07753,1.371582 -0.110683,2.057598 -0.061,1.262067 -0.20708,2.542283 -0.20142,3.805069 -0.07564,-0.03028 -0.440754,-0.123799 -0.455128,-0.194593 -0.05085,-0.249574 -0.101698,-0.499239 -0.152637,-0.748813 -0.07663,-0.3758 -0.146978,-0.753126 -0.212381,-1.130992 -0.146798,-0.848356 -0.28021,-1.69788 -0.424673,-2.546595 -0.118669,-0.794268 -0.19637,-1.629158 -0.286206,-2.429085 -0.008,-0.451723 0.03394,-0.413891 0.451242,-0.497442 0.314349,-0.06019 0.810444,0.03953 1.049597,0.160813"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1"
-     sodipodi:nodetypes="ccscccccccc" />
-  <path
-     id="path99"
-     d="m 11.951848,12.929384 c -0.07573,2.092636 -0.236548,4.181857 -0.331688,6.273504 -0.293686,-1.584771 -0.573447,-3.169184 -0.815924,-4.76276 -0.03962,-0.260625 -0.334241,-2.533903 -0.334241,-2.533903 0.372168,-0.182898 0.899517,0.106521 1.128878,0.284228 0.193964,0.150032 0.198858,0.536352 0.352975,0.738482"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1"
-     sodipodi:nodetypes="cccccc" />
-  <path
-     id="path101"
-     d="M 9.5994861,5.087639 C 9.7036103,4.0108207 9.8228275,2.9755083 10.127923,1.9344462 10.373095,1.0977694 11.072587,-0.17283306 12.140511,0.07341748 12.748906,0.2136572 12.46645,2.282575 12.389457,2.7132663 12.209418,3.720369 12.032704,4.7431937 11.786184,5.7361916 11.201058,5.4783517 10.154965,5.3729698 9.5843032,5.7210087 9.5790925,5.5137485 9.6047866,5.2826809 9.5993963,5.087639"
-     inkscape:connector-curvature="0"
-     style="fill:#ff0000" />
-  <path
-     id="path103"
-     d="m 12.223343,0.08096401 c 0.316056,0.3553159 0.256493,1.02695729 0.256493,1.47121439 0,0.4977118 -0.007,0.9944354 -0.01833,1.4920573 -0.0203,0.8922876 -0.152997,1.8036212 -0.11751,2.6919559 C 11.895608,5.6612653 11.445332,5.600893 10.990653,5.5800502 10.566341,5.5606448 9.9694459,5.5204865 9.5843032,5.7210087 9.5781941,4.7139958 9.7288552,3.6870385 9.9274907,2.6928727 10.155953,1.5461592 10.840352,-0.1819967 12.222715,0.08096401"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path105"
-     d="m 10.127294,5.1178251 c 0.08041,-0.9915604 0.135299,-2.0206738 0.452612,-2.9719861 0.164407,-0.4926808 0.325579,-1.0029701 0.666072,-1.40751812 0.210494,-0.25011365 0.807838,-0.88869402 1.083017,-0.5066059 0.243825,0.33860571 0.150931,1.08445462 0.150931,1.47786252 0,0.5080434 -0.01105,1.0151883 -0.02264,1.523052 -0.01887,0.8302084 -0.171683,1.9055812 -0.138622,2.7322858 -0.7003,-0.1897414 -1.488554,-0.4224181 -2.206463,-0.3645613 -6.29e-4,-0.1632387 0.01123,-0.3214464 0.01455,-0.4825289"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900"
-     sodipodi:nodetypes="ccccscccc" />
-  <path
-     id="path107"
-     d="M 12.057499,19.429284 C 13.173128,15.196309 14.123003,10.905476 14.469425,6.5327999 14.55046,5.5097956 14.552347,4.4720576 14.444989,3.4512094 14.329814,2.3557943 14.139713,1.2405246 13.354066,0.41561678 13.187683,0.2410583 12.944936,0.16155019 12.720786,0.09075653 12.621154,0.05931265 12.486933,0.05823457 12.383797,0.07404636 12.184623,0.10468168 12.222715,0.20664971 12.192439,0.388036 c -0.07969,0.47758769 -0.158118,0.9538278 -0.21301,1.4351887 -0.121284,1.0632525 -0.178601,2.1347703 -0.208428,3.2044014 -0.12353,4.4219984 -0.103136,8.8532499 -0.150751,13.2765059 -0.0046,0.425301 -0.01518,0.850512 -0.01518,1.275903 0.13422,-0.04402 0.372565,-0.113198 0.452073,-0.15093"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1" />
-  <path
-     id="path109"
-     d="m 12.027313,19.429284 c 0.100261,-4.408342 0.114007,-8.819919 0.163419,-13.2288909 0.02291,-2.0360364 0.06971,-4.1088173 0.424762,-6.11889005 1.025609,0.16099269 1.527274,1.35181755 1.677216,2.26863135 0.18525,1.1326986 0.256403,2.2612645 0.223522,3.4090561 -0.05893,2.0637071 -0.387748,4.156612 -0.761302,6.1839345 -0.230618,1.252095 -0.471029,2.502034 -0.758606,3.742271 -0.13997,0.603543 -0.272663,1.208972 -0.426828,1.809101 -0.113737,0.44273 -0.227295,0.88537 -0.341032,1.32801 -0.03863,0.146439 -0.08265,0.565092 -0.202319,0.607316"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path111"
-     d="m 13.852137,12.055244 c -0.200522,1.319835 -0.501395,2.616042 -0.844314,3.90587 -0.169527,0.637322 -0.34741,1.272219 -0.517296,1.909452 -0.0937,0.351363 -0.187675,0.702636 -0.282097,1.05373 -0.03091,0.115084 -0.05238,0.417215 -0.135748,0.505168 -0.07933,0.08382 -0.354327,0.114366 -0.467525,0.150931 0.01312,-1.728785 0.0087,-3.479769 0.0087,-5.209722 0,-0.398888 0.01318,-0.780159 0.01807,-1.179047 0.0026,-0.214447 -0.01025,-0.475495 0.09879,-1.464828 0.260098,-0.0807 1.446063,0.01922 2.121657,0.328267"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300;fill-opacity:1"
-     sodipodi:nodetypes="ccccccsccc" />
-  <path
-     id="path113"
-     d="m 13.73773,11.997301 c -0.192167,1.28492 -0.33551,2.489296 -0.651746,3.748556 -0.155962,0.620955 -0.313181,1.242823 -0.485404,1.859395 -0.08274,0.296415 -0.175277,0.589999 -0.259816,0.885865 -0.07969,0.2787 -0.12326,0.737567 -0.298178,0.95344 l 0,-4.814774 c 0,-0.877647 0.07776,-1.767732 0.08943,-2.632575 0.0035,-0.263997 -0.04092,-0.851993 0.197961,-0.92943 0.178152,-0.05781 0.377959,0.518232 0.562849,0.532662 0.336898,0.02556 0.636023,0.05438 0.870504,0.244323"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1"
-     sodipodi:nodetypes="cccccscccc" />
-  <path
-     id="path115"
-     d="m 10.353421,23.651749 c -0.09119,0.381729 0.638131,0.233942 0.869737,0.243106 0.191898,0.0075 1.262427,0.231876 1.196216,-0.137365 -0.361066,-0.01581 -0.721952,-0.03162 -1.083018,-0.04734 -0.295392,-0.01348 -0.720604,0.02875 -0.982756,-0.0584"
-     inkscape:connector-curvature="0"
-     style="fill:#84442f" />
-  <path
-     id="path117"
-     d="m 12.238616,22.565587 c 0.01437,-0.317763 0.02875,-0.635526 0.04321,-0.953288 0.02021,-0.446414 0.0035,-0.374812 -0.450456,-0.40392 -0.0092,0.271406 -0.01824,0.542632 -0.0274,0.814038 -0.0055,0.16216 0.09191,0.601925 -0.168629,0.528257 0.01833,-0.43141 0.03665,-0.86282 0.05498,-1.294141 0.01123,-0.264128 0.103585,-0.197737 0.382268,-0.183901 0.210314,0.01042 0.383076,-0.0486 0.374002,0.16234 -0.01914,0.448659 -0.03818,0.897229 -0.05732,1.345798 -0.04582,-0.0045 -0.106909,0.0018 -0.150032,-0.01527"
-     inkscape:connector-curvature="0"
-     style="fill:#c1d8f1" />
-  <path
-     id="path119"
-     d="m 12.238616,22.565587 c 0.01437,-0.317763 0.02875,-0.635526 0.04321,-0.953288 0.02021,-0.446414 0.0035,-0.374812 -0.450456,-0.40392 -0.0092,0.271406 -0.01824,0.542632 -0.0274,0.814038 -0.0055,0.16216 0.09191,0.601925 -0.168629,0.528257 0.01833,-0.43141 0.03665,-0.86282 0.05498,-1.294141 0.01123,-0.264128 0.103585,-0.197737 0.382268,-0.183901 0.210314,0.01042 0.383076,-0.0486 0.374002,0.16234 -0.01914,0.448659 -0.03818,0.897229 -0.05732,1.345798 -0.04582,-0.0045 -0.106909,0.0018 -0.150032,-0.01527"
-     stroke-miterlimit="10"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#000000;stroke-width:0.09882364;stroke-linecap:square;stroke-miterlimit:10" />
-  <path
-     id="path125"
-     d="m 10.760574,22.429929 c -0.02012,0.147517 0.02165,0.373644 -0.180937,0.361964 0.03153,-0.210404 0.08328,-0.435902 0.165934,-0.633459 0.0049,0.09074 0.01,0.181476 0.015,0.271316"
-     inkscape:connector-curvature="0" />
-  <path
-     id="path133"
-     d="m 11.197913,22.520667 c 0.01446,-0.317673 0.02893,-0.635346 0.04339,-0.953019 0.0203,-0.446503 0.0034,-0.374721 -0.450636,-0.404188 -0.0092,0.271405 -0.01824,0.542631 -0.0274,0.814037 -0.0055,0.162071 0.09191,0.601836 -0.168539,0.528257 0.01905,-0.448569 0.03818,-0.897139 0.05732,-1.345798 0.01141,-0.267812 0.405716,-0.130807 0.618995,-0.120116 0.213549,0.01069 0.132693,0.207799 0.123709,0.417755 -0.0084,0.196748 0.07349,1.191274 -0.196839,1.063701"
-     inkscape:connector-curvature="0"
-     style="fill:#c1d8f1" />
-  <path
-     id="path135"
-     d="m 11.197913,22.520667 c 0.01446,-0.317673 0.02893,-0.635346 0.04339,-0.953019 0.0203,-0.446503 0.0034,-0.374721 -0.450636,-0.404188 -0.0092,0.271405 -0.01824,0.542631 -0.0274,0.814037 -0.0055,0.162071 0.09191,0.601836 -0.168539,0.528257 0.01842,-0.43141 0.03674,-0.86282 0.05507,-1.29414 0.0133,-0.312103 0.265206,-0.189562 0.553592,-0.175188 0.256133,0.01294 0.205912,0.0769 0.194682,0.340852 -0.01159,0.273113 -0.02327,0.546315 -0.03495,0.819517 -0.0066,0.152728 0.06352,0.404908 -0.165305,0.339145"
-     stroke-miterlimit="10"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#000000;stroke-width:0.09882364;stroke-linecap:square;stroke-miterlimit:10" />
-  <path
-     id="path145"
-     d="m 11.077259,22.354464 c -0.01294,0.387658 -0.02578,0.775316 -0.03872,1.162975 -0.01087,0.327016 -0.0619,0.254336 -0.40347,0.245801 -0.302939,-0.0076 -0.28569,0.01015 -0.273023,-0.273652 0.01716,-0.383435 0.03441,-0.766781 0.05157,-1.150217 0.199175,0.0099 0.495376,0.06558 0.663646,0.01527"
-     inkscape:connector-curvature="0"
-     style="fill:#bf7242" />
-  <path
-     id="path147"
-     d="m 11.047073,23.018379 c 0.005,-0.09056 0.01,-0.181117 0.015,-0.271585 -0.173391,-0.0079 -0.346781,-0.01572 -0.520172,-0.02363 -0.209775,-0.0094 -0.147966,0.08095 -0.158477,0.28012 0.199175,0.0081 0.495376,0.06379 0.663646,0.01437"
-     inkscape:connector-curvature="0"
-     style="fill:#84442f" />
-  <path
-     id="path149"
-     d="m 11.062076,22.475748 c 0.005,-0.03531 0.01015,-0.07043 0.01518,-0.105742 -0.163059,-0.0074 -0.702187,-0.138353 -0.678649,0.09065 0.192077,0.0081 0.540116,0.0548 0.663466,0.01527"
-     inkscape:connector-curvature="0"
-     style="fill:#84442f" />
-  <path
-     id="path151"
-     d="m 12.465012,22.415555 c -0.015,0.449468 -0.03001,0.898846 -0.04501,1.348314 -0.005,0.152278 -0.577041,0.05238 -0.698863,0.04824 -0.116522,-0.004 -0.80155,0.06136 -0.794003,-0.108706 0.01994,-0.449378 0.03989,-0.898846 0.05992,-1.348224 0.387209,0.01887 1.18229,0.19046 1.477862,0.06019"
-     inkscape:connector-curvature="0"
-     style="fill:#ffc461" />
-  <path
-     id="path153"
-     d="m 12.434467,23.078572 c 0.005,-0.0955 0.01006,-0.191089 0.01509,-0.286589 -0.3254,-0.01321 -0.650799,-0.02659 -0.976108,-0.0398 -0.383077,-0.01572 -0.495915,-0.132783 -0.516848,0.266105 0.492501,0.01976 0.985182,0.04043 1.477683,0.06019"
-     inkscape:connector-curvature="0"
-     style="fill:#e3622d" />
-  <path
-     id="path155"
-     d="m 12.449739,22.53594 c 0.005,-0.04016 0.01006,-0.0805 0.01509,-0.120655 l -1.478043,-0.06037 c -0.03971,0.22999 0.52682,0.147697 0.690867,0.155962 0.198007,0.009 0.642534,0.08355 0.771903,0.02426"
-     inkscape:connector-curvature="0"
-     style="fill:#e3622d" />
-  <path
-     id="path157"
-     d="m 10.338238,23.787407 c 0.053,-0.351812 0.04231,-0.718897 0.05839,-1.073674 0.0027,-0.05831 -0.0256,-0.329981 0.01698,-0.373913 0.05462,-0.05642 0.4651,0.01222 0.553413,0.01446 0.335281,0.0088 0.670832,0.03342 1.005844,0.05031 0.3758,0.01905 0.512176,-0.09218 0.495017,0.291709 -0.01446,0.320728 0.04995,0.770375 -0.04842,1.076189 -0.06621,0.206003 -0.06262,0.166922 -0.30258,0.157489 -0.259277,-0.01024 -1.709828,0.07493 -1.763373,-0.142485"
-     stroke-miterlimit="10"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#000000;stroke-width:0.11679157;stroke-linecap:square;stroke-miterlimit:10" />
-  <path
-     id="path159"
-     d="m 10.745571,21.193736 c -0.364929,-0.57722 -0.729858,-1.15435 -1.0947865,-1.73148 -0.043572,-0.06891 -0.5656305,-0.827154 -0.2775147,-0.666431 0.1449114,0.08086 0.2969201,0.469592 0.3831662,0.605968 0.2371767,0.375171 0.474353,0.750431 0.71153,1.125512 0.07879,0.124607 0.382717,0.45369 0.383166,0.605968 3.6e-4,0.106011 -0.04753,0.101519 -0.105561,0.0593"
-     inkscape:connector-curvature="0" />
-  <path
-     id="path161"
-     d="m 11.213007,21.148816 0.826614,-1.876661 c 0.0318,-0.07205 0.359,-0.911334 0.410029,-0.626722 0.02084,0.116432 -0.219029,0.487111 -0.266195,0.596446 -0.176266,0.408052 -0.352531,0.816103 -0.528797,1.224245 -0.10637,0.246251 -0.21274,0.492411 -0.31911,0.738752 -0.05336,0.122182 -0.122002,-0.03773 -0.122901,-0.0557"
-     inkscape:connector-curvature="0" />
-  <path
-     id="path163"
-     d="m 12.223343,0.08096401 c 1.386855,-0.15182904 2.026244,1.51182199 2.145731,2.64820399 0.07708,0.7330018 0.127303,1.448485 0.150931,2.1850804 0.0094,0.2977287 0.05552,0.7045227 -0.01923,0.972784 -0.682332,-0.4571941 -1.964075,-0.4786658 -2.714506,-0.1508408 -0.112928,-0.7524971 0.008,-1.6234927 0.06109,-2.3848839 0.03962,-0.5697632 0.08292,-1.1370109 0.153896,-1.7038992 0.05857,-0.4683342 0.289463,-1.11482047 0.222083,-1.56644449"
-     inkscape:connector-curvature="0"
-     style="fill:#ffa300" />
-  <path
-     id="path165"
-     d="m 12.208071,5.0272667 c 0.03611,-1.6447847 0.120565,-3.3237982 0.407063,-4.94630269 1.317679,0.20681092 1.609298,1.85312289 1.785833,2.93308559 0.103765,0.6345375 0.105472,1.2895586 0.121643,1.9305646 0.0073,0.2888346 0.05004,0.9883154 -0.02219,1.2475029 C 13.946648,5.732677 12.871447,5.5062918 12.208071,5.615447 c 8.98e-4,-0.1960301 8.98e-4,-0.3921501 8.98e-4,-0.5881803"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900"
-     sodipodi:nodetypes="ccccccc" />
-  <path
-     id="path167"
-     d="m 9.4486453,19.187616 c 0.2163339,0.214986 0.5879107,0.273741 0.8741397,0.339863 0.215346,0.04986 0.889054,0.292428 0.769567,-0.05336 -0.138263,-0.400146 -1.6232233,-0.844493 -1.6437067,-0.271405"
-     stroke-miterlimit="10"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#000000;stroke-width:0.24256711;stroke-linecap:square;stroke-miterlimit:10" />
-  <path
-     id="path169"
-     d="m 9.4486453,19.187616 c 0.2163339,0.214986 0.5879107,0.273741 0.8741397,0.339863 0.215346,0.04986 0.889054,0.292428 0.769567,-0.05336 -0.15695,-0.45369 -1.7058758,-0.743872 -1.6437067,-0.286588"
-     inkscape:connector-curvature="0"
-     style="fill:#ffd900;fill-opacity:1" />
-  <path
-     id="path171"
-     d="M 9.4486453,19.187616 C 8.1713947,17.378514 6.9305292,15.552074 5.7454541,13.681252 4.6543513,11.959026 3.4336099,9.8927137 3.173524,7.8417639 2.9011301,5.6940568 3.6462604,3.3929933 5.4516784,2.1123288 5.8671868,1.8175648 6.355735,1.661154 6.781575,1.3901077 7.1496481,1.1558058 7.5308378,0.89697773 7.970603,0.81980546 8.1216235,0.79330275 8.1626802,0.81890706 8.3023809,0.75952304 8.4077629,0.71469304 8.4987705,0.64075499 8.6039727,0.59358917 8.7947922,0.50815164 8.991541,0.47032914 9.192153,0.4201986 9.3066088,0.3916296 9.4116313,0.397559 9.5238411,0.397559 c 0.2038462,0 0.2822762,-0.0309947 0.4825289,-0.10556161 0.304916,-0.11346751 0.604531,-0.12065468 0.919958,-0.12065468 0.194683,0 0.238165,0.047615 0.422247,0 0.230438,-0.0595637 0.456385,-0.16207077 0.701198,-0.11310815 0.382627,0.0765434 0.729858,-0.03467811 1.094517,0.19297561 0.178961,0.11185039 0.612257,5.3904e-4 0.850961,0.0483338 0.178152,0.0355765 0.327915,0.0849883 0.490076,0.16584403 0.197647,0.098644 0.252359,0.082922 0.452342,0.0980151 0.332856,0.0250653 0.637054,0.14527074 0.935052,0.29404524 0.109245,0.0545327 0.195671,0.1256857 0.294045,0.19603016 0.100531,0.071782 0.224779,0.017339 0.339235,0.060372 0.221365,0.083192 0.415957,0.1710547 0.618276,0.2940452 0.209147,0.127213 0.39772,0.2683511 0.58818,0.4222465 0.206362,0.1666526 0.434824,0.2346612 0.658885,0.376518 2.003873,1.2690752 2.541474,3.3674604 2.508323,5.6141709 -0.01518,1.0278556 -0.580274,2.1121306 -1.040613,3.0015439 -0.511187,0.987607 -1.102422,1.920143 -1.723484,2.841449 -1.047351,1.553777 -2.202599,3.042869 -3.381296,4.498811 -0.318212,0.392869 -0.630854,0.789152 -0.941879,1.18786 -0.15129,0.193874 -0.746837,0.04223 -0.96946,0.03046 -1.124792,-0.05929 -2.249675,-0.118679 -3.3744674,-0.178063"
-     stroke-miterlimit="10"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#000000;stroke-width:0.08983967;stroke-linecap:square;stroke-miterlimit:10" />
-  <path
-     id="path173"
-     d="m 13.746126,19.384365 c -0.374991,0.480372 -0.749982,0.960565 -1.124883,1.440938 -0.05408,0.06918 -0.253707,0.418114 -0.348847,0.412005 -0.394756,-0.02533 -0.419731,1.79e-4 -0.589618,-0.339504 -0.457374,-0.914389 -1.179774,-1.656644 -2.2345819,-1.694556 0.345703,-0.79562 4.4110379,-0.576142 4.3129329,0.181206"
-     stroke-miterlimit="10"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#000000;stroke-width:0.08983967;stroke-linecap:square;stroke-miterlimit:10" />
-  <path
-     id="path175"
-     d="m 13.746126,19.384365 c -0.652685,-0.478756 -1.868755,-0.407423 -2.63904,-0.407423 -0.445695,0 -0.905135,-0.01518 -1.3404083,0.09397 -0.2227125,0.05579 -0.2760773,0.192796 -0.4162272,-0.0079 C 9.1970942,18.84335 9.0436481,18.623692 8.8902917,18.404034 9.2367135,18.17099 9.7602093,18.161467 10.16305,18.142241 c 0.491333,-0.02336 0.98051,-0.03495 1.471933,-0.0097 0.809456,0.0415 2.037115,-0.0031 2.714506,0.512804 -0.19612,0.246341 -0.39206,0.492681 -0.58818,0.739111"
-     stroke-miterlimit="10"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#000000;stroke-width:0.08983967;stroke-linecap:square;stroke-miterlimit:10" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/80-1.svg b/htdocs/public/symbols/svgicons/80-1.svg
deleted file mode 100755
index a105726389b838c625cd97e5dd7c33a6ded034d3..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/80-1.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="80-1.svg">
-  <defs
-     id="defs17" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview15"
-     showgrid="false"
-     inkscape:zoom="7.9739945"
-     inkscape:cx="-14.367507"
-     inkscape:cy="40.658751"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata4277">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g4181"
-     transform="translate(-37.932203,-10.548736)">
-    <path
-       style="fill:#8080ff;stroke:none;stroke-width:0.676;stroke-linejoin:round"
-       transform="matrix(0,1,-1,0,0,0)"
-       d="m 16.884163,-46.322253 a 1.9606265,2.0019734 0 0 1 -1.697952,-1.000987 1.9606265,2.0019734 0 0 1 0,-2.001973 1.9606265,2.0019734 0 0 1 1.697952,-1.000987 l 0,2.001974 z"
-       sodipodi:end="4.712389"
-       sodipodi:start="1.5707963"
-       sodipodi:ry="2.0019734"
-       sodipodi:rx="1.9606265"
-       sodipodi:cy="-48.324226"
-       sodipodi:cx="16.884163"
-       sodipodi:type="arc"
-       id="path4167-7" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path4754"
-       d="m 42.853023,17.344966 7.803541,-0.177353 4.96589,4.566846 -14.09958,-0.886767 z"
-       style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="ccccscccccccccccccccccccsssccssscccccccccccccccccc"
-       style="fill:#000080;stroke:none;stroke-width:0.29631296;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       inkscape:connector-curvature="0"
-       id="path6-9"
-       d="m 61.657578,25.940864 c 0.150421,-0.941042 -0.0056,-1.022202 -0.62861,-2.409677 -0.169156,-0.376712 -0.616287,-0.606012 -0.977854,-0.803253 -1.889771,-1.030815 -3.888469,-1.669893 -4.195107,-1.676306 -0.960625,-0.956647 -2.533212,-2.755832 -4.643746,-4.195032 -0.393707,-0.268472 -1.782112,-0.310075 -1.782112,-0.310075 0,0 -3.645844,-0.436547 -6.362042,0.209562 -0.234324,0.0557 -0.397184,0.03627 -0.59369,0.139682 -0.03202,0.01684 -0.596585,0.600102 -0.628609,0.663531 -0.03129,0.06196 -0.216168,0.263797 -0.279365,0.349244 -0.419163,0.566572 -0.932968,1.12592 -1.292178,1.746148 -0.157723,0.272412 -0.230809,0.531651 -0.384166,0.803251 -0.147602,0.26144 -0.684623,0.462581 -0.768293,0.942896 -0.04018,0.23046 -0.302273,0.144318 -0.314325,0.488927 0.119711,0.03696 0.134159,0.0807 0.279364,0.104764 -0.209986,0.76358 -0.338852,2.126644 -0.349978,2.270266 2.72e-4,-7.8e-5 5.03e-4,-1.93e-4 7.73e-4,-2.71e-4 -0.0018,0.01742 -0.002,0.01645 -7.73e-4,2.71e-4 -0.657039,0.206279 -0.596045,1.386859 -0.657426,1.172931 0.079,0.314208 0.296632,0.723481 0.378796,1.061873 0.07037,0.28991 -0.163324,0.413561 -0.174642,0.698451 0.051,0.02978 0.100118,0.342638 0.139683,0.384126 0.166105,0.457213 1.465931,0.871007 1.465931,0.871007 l 0.12879,1.55e-4 c -0.110672,-0.328232 -0.170702,-0.679833 -0.170702,-1.045418 0,-1.806061 1.464079,-3.270137 3.270139,-3.270137 1.806059,0 3.270138,1.464076 3.270138,3.270137 0,0.368444 -0.061,0.722671 -0.173329,1.053144 l 6.640748,0.02127 C 52.69955,28.101333 52.61364,27.684603 52.61364,27.247669 c 0,-1.80602 1.464077,-3.270099 3.270099,-3.270099 1.806061,0 3.270139,1.464079 3.270139,3.270099 0,0.439794 -0.08704,0.859149 -0.244445,1.242156 l 0.26855,3.47e-4 c 0,0 2.007472,0.186616 2.270032,-0.454006 0.107774,-0.120252 0.147717,-0.728581 0.139682,-1.082578 0.0039,-0.364155 0.07741,-0.29389 0.174642,-0.523887 0.09445,-0.223353 -0.139567,-0.386754 -0.104761,-0.488837 z M 46.884042,20.714551 c -0.06405,0.04489 -0.0598,0.06873 -0.13972,0.104797 -0.254372,0.192759 -0.336931,-0.06988 -3.711137,-0.06988 0.05741,0.0819 -0.394981,0.01124 -0.03493,-0.76833 0.489429,-1.059633 1.235858,-2.023774 1.194756,-2.038685 0.947191,-0.282123 1.247996,-0.371795 2.69106,-0.334866 -0.02928,0.838173 -0.01734,1.779862 -3.4e-5,3.106962 z m 1.48938,0.232315 c -0.144666,-2.748801 -0.274419,-2.838845 0.03493,-3.282731 2.779918,0 1.837221,0.0094 1.837221,0.0094 1.271994,0.02608 3.482374,2.754031 4.141432,3.657518 -1.85567,-0.140054 -2.978847,-0.232781 -6.013583,-0.384207 z" />
-    <path
-       sodipodi:open="true"
-       d="m 41.253151,27.397715 a 1.8473057,1.8473057 0 0 1 1.846862,-1.847306 1.8473057,1.8473057 0 0 1 1.847749,1.846419 1.8473057,1.8473057 0 0 1 -1.845976,1.848192 1.8473057,1.8473057 0 0 1 -1.848635,-1.845532"
-       sodipodi:end="3.1406327"
-       sodipodi:start="3.1415927"
-       sodipodi:ry="1.8473057"
-       sodipodi:rx="1.8473057"
-       sodipodi:cy="27.397715"
-       sodipodi:cx="43.100456"
-       sodipodi:type="arc"
-       id="path3514-1-1"
-       style="fill:#666666;stroke:#000000;stroke-width:1.85782993;stroke-miterlimit:4;stroke-dasharray:none" />
-    <path
-       sodipodi:open="true"
-       d="M 54.041179,27.276747 A 1.8473057,1.8473057 0 0 1 55.888042,25.429441 1.8473057,1.8473057 0 0 1 57.73579,27.27586 1.8473057,1.8473057 0 0 1 55.889815,29.124052 1.8473057,1.8473057 0 0 1 54.04118,27.27852"
-       sodipodi:end="3.1406327"
-       sodipodi:start="3.1415927"
-       sodipodi:ry="1.8473057"
-       sodipodi:rx="1.8473057"
-       sodipodi:cy="27.276747"
-       sodipodi:cx="55.888485"
-       sodipodi:type="arc"
-       id="path3514-1-1-1"
-       style="fill:#666666;stroke:#000000;stroke-width:1.85782993;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       transform="matrix(0.99920529,0.03985973,-0.02474987,0.99969368,0,0)"
-       y="20.746895"
-       x="42.759113"
-       height="0.5083794"
-       width="11.700276"
-       id="rect4170"
-       style="fill:#ffffff;stroke:none" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/80-2.svg b/htdocs/public/symbols/svgicons/80-2.svg
deleted file mode 100755
index 9794f2ea2c5923af6a3991ff0f6358594c8ce185..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/80-2.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.0">
- <metadata id="metadata5438"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-104)">
-  <g id="g2984" transform="matrix(0.1875,0,0,0.1875,0,104)">
-   <rect rx="14.173" height="128" width="128" id="rect1869" fill="#204a87"/>
-   <path id="text1871" d="m 23.520836,11.511719 44.929687,0 c 13.359304,1.05e-4 23.601481,2.976664 30.726563,8.929687 7.171774,5.90634 10.757714,14.343832 10.757814,25.3125 -1e-4,11.015685 -3.58604,19.500051 -10.757814,25.453125 -7.125082,5.90629 -17.367259,8.859412 -30.726563,8.859375 l -17.859375,0 0,36.421874 -27.070312,0 0,-104.976561 m 27.070312,19.617187 0,29.320313 14.976563,0 c 5.249939,5.6e-5 9.304623,-1.265568 12.164062,-3.796875 2.859305,-2.578063 4.288991,-6.210872 4.289063,-10.898438 -7.2e-5,-4.687424 -1.429758,-8.296796 -4.289063,-10.828125 -2.859439,-2.531166 -6.914123,-3.796789 -12.164062,-3.796875 l -14.976563,0" inkscape:connector-curvature="0" fill="#ffffff"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/81-1.svg b/htdocs/public/symbols/svgicons/81-1.svg
deleted file mode 100755
index eb2fee4dc16524e7147a485b45671e4c06cf2704..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/81-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3276"/>
- <path sodipodi:type="arc" id="path3280" sodipodi:cx="11.898305" sodipodi:cy="12.101695" sodipodi:rx="12.20339" sodipodi:ry="12.20339" d="m 24.101695,12.101695 a 12.20339,12.20339 0 1 1 -24.40678018,0 12.20339,12.20339 0 1 1 24.40678018,0 z" transform="matrix(0.9201921,0,0,0.9201921,1.0512738,0.86411581)" fill="#ffffff" stroke="#000000" stroke-width="1.675"/>
- <path sodipodi:type="arc" id="path3282" sodipodi:cx="12" sodipodi:cy="11.898305" sodipodi:rx="7.2203388" sodipodi:ry="7.2203388" d="m 19.220339,11.898305 a 7.2203388,7.2203388 0 1 1 -14.4406778,0 7.2203388,7.2203388 0 1 1 14.4406778,0 z" transform="matrix(0.93617311,0,0,0.93617311,0.76592268,0.86112686)" fill="#ffffff" stroke="#000000" stroke-width="1.582"/>
- <path sodipodi:type="arc" id="path3284" sodipodi:cx="11.79661" sodipodi:cy="12" sodipodi:rx="1.2203389" sodipodi:ry="1.2203389" d="m 13.016949,12 a 1.2203389,1.2203389 0 1 1 -2.440678,0 1.2203389,1.2203389 0 1 1 2.440678,0 z" transform="translate(0.20339012,0)" stroke="#000000" stroke-width="1.582"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/81-2.svg b/htdocs/public/symbols/svgicons/81-2.svg
deleted file mode 100755
index eb2fee4dc16524e7147a485b45671e4c06cf2704..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/81-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3276"/>
- <path sodipodi:type="arc" id="path3280" sodipodi:cx="11.898305" sodipodi:cy="12.101695" sodipodi:rx="12.20339" sodipodi:ry="12.20339" d="m 24.101695,12.101695 a 12.20339,12.20339 0 1 1 -24.40678018,0 12.20339,12.20339 0 1 1 24.40678018,0 z" transform="matrix(0.9201921,0,0,0.9201921,1.0512738,0.86411581)" fill="#ffffff" stroke="#000000" stroke-width="1.675"/>
- <path sodipodi:type="arc" id="path3282" sodipodi:cx="12" sodipodi:cy="11.898305" sodipodi:rx="7.2203388" sodipodi:ry="7.2203388" d="m 19.220339,11.898305 a 7.2203388,7.2203388 0 1 1 -14.4406778,0 7.2203388,7.2203388 0 1 1 14.4406778,0 z" transform="matrix(0.93617311,0,0,0.93617311,0.76592268,0.86112686)" fill="#ffffff" stroke="#000000" stroke-width="1.582"/>
- <path sodipodi:type="arc" id="path3284" sodipodi:cx="11.79661" sodipodi:cy="12" sodipodi:rx="1.2203389" sodipodi:ry="1.2203389" d="m 13.016949,12 a 1.2203389,1.2203389 0 1 1 -2.440678,0 1.2203389,1.2203389 0 1 1 2.440678,0 z" transform="translate(0.20339012,0)" stroke="#000000" stroke-width="1.582"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/82-1.svg b/htdocs/public/symbols/svgicons/82-1.svg
deleted file mode 100755
index 34dbf9317a9b4d2b8b63ff1a318e09bcec2cc536..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/82-1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24" viewBox="0 0 24 23.999999" enable-background="new 0 0 100 73.649">
- <metadata id="metadata4391"/>
- <rect id="rect4140" width="23.04" height="23.04" x="0.479" y="0.479" rx="2.874" fill="#cccccc" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.958"/>
-
-
- <text id="textoverlay"><tspan id="tspanoverlay" line-height="125%" font-family="Sans-Serif" text-anchor="middle" text-align="center" word-spacing="0" letter-spacing="0" x="12" y="12" fill="#000000" font-size="17.5" dy="6.5" dx="-10">R</tspan></text>
- <text id="textoverlay"><tspan id="tspanoverlay" line-height="125%" font-family="Sans-Serif" text-anchor="middle" text-align="center" word-spacing="0" letter-spacing="0" x="12" y="12" fill="#000000" font-size="17.5" dy="6.5" dx="10">V</tspan></text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/82-1.svg~ b/htdocs/public/symbols/svgicons/82-1.svg~
deleted file mode 100755
index b8a0765090c3fe58f4b884d0f9b0a24e7d9bac56..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/82-1.svg~
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24" viewBox="0 0 24 23.999999" enable-background="new 0 0 100 73.649">
- <metadata id="metadata4391"/>
- <rect id="rect4140" width="23.04" height="23.04" x="0.479" y="0.479" rx="2.874" fill="#cccccc" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.958"/>
-
-
- <text id="textoverlay"><tspan id="tspanoverlay" line-height="125%" font-family="Sans-Serif" text-anchor="middle" text-align="center" word-spacing="0" letter-spacing="0" x="12" y="12" fill="#000000" font-size="17.5" dy="6.5" dx="-9">R</tspan></text>
- <text id="textoverlay"><tspan id="tspanoverlay" line-height="125%" font-family="Sans-Serif" text-anchor="middle" text-align="center" word-spacing="0" letter-spacing="0" x="12" y="12" fill="#000000" font-size="17.5" dy="6.5" dx="9">V</tspan></text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/82-2.svg b/htdocs/public/symbols/svgicons/82-2.svg
deleted file mode 100755
index 73707c3d113457c0655b7c1d7a58850c5bd2818f..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/82-2.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" viewBox="0 0 19.2 19.2" version="1.1">
- <metadata id="metadata28"/>
- <defs id="defs4">
-  <clipPath id="clip0">
-   <rect width="613" height="614" id="rect7"/>
-  </clipPath>
- </defs>
- <path inkscape:connector-curvature="0" id="path14" d="M 1.604758,0.06952736 C 1.7625114,0.04362326 1.9223224,0.02981971 2.0821728,0.02733721 7.0737472,0.02752566 12.065322,0.02782914 17.0569,0.02718512 c 0.539089,0.0028419 1.115964,0.13308216 1.511562,0.5226716 0.415734,0.39426025 0.56682,0.98697028 0.580152,1.54299378 -5.66e-4,5.0698973 3.59e-4,10.1398085 -4.63e-4,15.2097015 -0.01933,0.51838 -0.17125,1.065417 -0.5621,1.428542 -0.389149,0.368051 -0.942727,0.487456 -1.463001,0.496275 -5.047611,-9.9e-5 -10.0952288,-6.6e-5 -15.1428377,-2.6e-5 -0.5493575,-0.0078 -1.13492185,-0.162009 -1.51608879,-0.581107 -0.37358438,-0.404708 -0.48755143,-0.974179 -0.4907003,-1.508866 -1.161e-5,-4.970902 -1.461e-5,-9.9418123 2.01e-6,-14.9127118 C -0.0233684,1.7214326 0.06661653,1.1952838 0.36990312,0.78057058 0.65440497,0.37793323 1.1263722,0.1454494 1.604758,0.06952736 z m 0,0" fill="none" stroke="#000000" stroke-width="0.003" stroke-miterlimit="10"/>
- <path inkscape:connector-curvature="0" id="path16" d="M 1.633454,0.0422503 C 1.7914115,0.0163462 1.9514292,0.00254265 2.1114863,6.015e-5 7.1095164,2.486e-4 12.107547,5.5208e-4 17.10558,-9.194e-5 c 0.539787,0.0028419 1.117408,0.13308216 1.513517,0.5226716 C 19.035369,0.91683991 19.18665,1.5095499 19.2,2.0655734 c -5.67e-4,5.0698973 3.59e-4,10.1398086 -4.64e-4,15.2097016 -0.01936,0.51838 -0.171471,1.065417 -0.562827,1.428542 -0.389652,0.368051 -0.943946,0.487456 -1.464893,0.496275 -5.054139,-9.9e-5 -10.108285,-6.6e-5 -15.1624221,-2.6e-5 C 1.4593259,19.192266 0.87300425,19.038057 0.49134434,18.618959 0.1172768,18.214251 0.00316235,17.64478 9.4079049e-6,17.110093 c -1.162e-5,-4.970902 -1.463e-5,-9.9418124 2.0100001e-6,-14.9127119 C 0.00322195,1.6941555 0.09332326,1.1680067 0.3970021,0.75329352 0.6818719,0.35065617 1.1544495,0.11817234 1.633454,0.0422503 z m 0,0" fill="#000080"/>
- <g id="g2994" transform="translate(1.0060726,0.07373165)">
-  <path d="m 3.4728087,2.0010816 c 0.00138,-0.1708048 0.1709478,-0.3110212 0.3391428,-0.2812512 0.1545729,0.013421 0.2646869,0.1615458 0.2629,0.3112065 0.00107,1.1646728 -1.653e-4,2.3293977 5.952e-4,3.4940983 0.1625127,-1.985e-4 0.3250499,2.313e-4 0.4876223,-2.976e-4 1.323e-4,-1.1852932 -0.00133,-2.3706502 6.976e-4,-3.5558917 0.011179,-0.1979393 0.2603406,-0.3076961 0.4252605,-0.2117066 0.1143448,0.052513 0.154541,0.1864385 0.1521275,0.3033371 8.728e-4,1.1548519 -1.322e-4,2.3097353 4.86e-4,3.4646067 0.165158,-1.653e-4 0.3303424,-1.653e-4 0.4955685,3.6e-6 3.669e-4,-1.1667829 9.91e-5,-2.3335686 9.91e-5,-3.5003379 -0.010748,-0.1518673 0.1086753,-0.3020027 0.2646061,-0.3078944 0.1575032,-0.01787 0.2981664,0.1214766 0.2968879,0.2766415 0.00152,1.1771637 -6.61e-5,2.3543938 7.638e-4,3.5315901 0.1679247,-1.652e-4 0.3358812,-9.91e-5 0.5038824,-6.6e-5 5.388e-4,-1.1766086 -3.307e-4,-2.353235 4.067e-4,-3.5298205 -0.00646,-0.1540869 0.1400726,-0.2841741 0.2911416,-0.2736707 0.1641936,-0.011239 0.3002875,0.1412094 0.2942986,0.3008784 0.00258,1.5892636 3.305e-4,3.178635 0.00112,4.767939 0.00363,0.5639413 -0.4984761,1.0809111 -1.0662497,1.0758746 -1.653e-4,2.8711612 2.975e-4,5.7423332 -2.316e-4,8.6134912 -0.00631,0.267496 -0.1202482,0.544438 -0.3442624,0.701187 -0.249048,0.185615 -0.6036462,0.205261 -0.8768842,0.06146 C 4.7235476,17.100228 4.5631771,16.7859 4.5624825,16.478971 4.5633587,13.608156 4.5624164,10.737345 4.5629487,7.8665346 4.2845706,7.8656124 4.0032698,7.7635043 3.8046501,7.5654307 3.5846567,7.3591136 3.4706267,7.0554499 3.4714678,6.7565577 c 0.00149,-1.5851483 -0.00116,-3.1703581 0.00132,-4.7554619 z m 0,0" id="path18" inkscape:connector-curvature="0" fill="none" stroke="#ffffff" stroke-width="0.003" stroke-miterlimit="10"/>
-  <path d="m 3.4728087,2.0010816 c 0.00138,-0.1708048 0.1709478,-0.3110212 0.3391428,-0.2812512 0.1545729,0.013421 0.2646869,0.1615458 0.2629,0.3112065 0.00107,1.1646728 -1.653e-4,2.3293977 5.952e-4,3.4940983 0.1625127,-1.985e-4 0.3250499,2.313e-4 0.4876223,-2.976e-4 1.323e-4,-1.1852932 -0.00133,-2.3706502 6.976e-4,-3.5558917 0.011179,-0.1979393 0.2603406,-0.3076961 0.4252605,-0.2117066 0.1143448,0.052513 0.154541,0.1864385 0.1521275,0.3033371 8.728e-4,1.1548519 -1.322e-4,2.3097353 4.86e-4,3.4646067 0.165158,-1.653e-4 0.3303424,-1.653e-4 0.4955685,3.6e-6 3.669e-4,-1.1667829 9.91e-5,-2.3335686 9.91e-5,-3.5003379 -0.010748,-0.1518673 0.1086753,-0.3020027 0.2646061,-0.3078944 0.1575032,-0.01787 0.2981664,0.1214766 0.2968879,0.2766415 0.00152,1.1771637 -6.61e-5,2.3543938 7.638e-4,3.5315901 0.1679247,-1.652e-4 0.3358812,-9.91e-5 0.5038824,-6.6e-5 5.388e-4,-1.1766086 -3.307e-4,-2.353235 4.067e-4,-3.5298205 -0.00646,-0.1540869 0.1400726,-0.2841741 0.2911416,-0.2736707 0.1641936,-0.011239 0.3002875,0.1412094 0.2942986,0.3008784 0.00258,1.5892636 3.305e-4,3.178635 0.00112,4.767939 0.00363,0.5639413 -0.4984761,1.0809111 -1.0662497,1.0758746 -1.653e-4,2.8711612 2.975e-4,5.7423332 -2.316e-4,8.6134912 -0.00631,0.267496 -0.1202482,0.544438 -0.3442624,0.701187 -0.249048,0.185615 -0.6036462,0.205261 -0.8768842,0.06146 C 4.7235476,17.100228 4.5631771,16.7859 4.5624825,16.478971 4.5633587,13.608156 4.5624164,10.737345 4.5629487,7.8665346 4.2845706,7.8656124 4.0032698,7.7635043 3.8046501,7.5654307 3.5846567,7.3591136 3.4706267,7.0554499 3.4714678,6.7565577 c 0.00149,-1.5851483 -0.00116,-3.1703581 0.00132,-4.7554619 z m 0,0" id="path20" inkscape:connector-curvature="0" fill="#ffffff"/>
-  <path d="m 11.578286,2.0708961 c 0.38596,-0.3710011 1.014634,-0.4386066 1.478693,-0.1777347 0.288585,0.1579719 0.4998,0.4403753 0.589571,0.755071 0.06485,0.2206266 0.07062,0.4527967 0.06977,0.6811213 -5.62e-4,4.3532356 4.04e-4,8.7064793 -4.8e-4,13.0597113 0.0012,0.256899 -0.06735,0.530945 -0.263201,0.70989 -0.324777,0.313029 -0.906566,0.283913 -1.198022,-0.06072 -0.139638,-0.159969 -0.207469,-0.373875 -0.208181,-0.584304 2.31e-4,-1.765608 1.66e-4,-3.53121 3.3e-5,-5.296808 -0.294772,-1.65e-4 -0.589506,6.7e-5 -0.88422,-9.8e-5 4.6e-4,-2.676446 -10e-4,-5.3529103 7.43e-4,-8.0293333 0.0029,-0.3860244 0.125432,-0.7888934 0.415297,-1.0567865 z m 0,0" id="path22" inkscape:connector-curvature="0" fill="none" stroke="#ffffff" stroke-width="0.003" stroke-miterlimit="10"/>
-  <path d="m 11.578286,2.0708961 c 0.38596,-0.3710011 1.014634,-0.4386066 1.478693,-0.1777347 0.288585,0.1579719 0.4998,0.4403753 0.589571,0.755071 0.06485,0.2206266 0.07062,0.4527967 0.06977,0.6811213 -5.62e-4,4.3532356 4.04e-4,8.7064793 -4.8e-4,13.0597113 0.0012,0.256899 -0.06735,0.530945 -0.263201,0.70989 -0.324777,0.313029 -0.906566,0.283913 -1.198022,-0.06072 -0.139638,-0.159969 -0.207469,-0.373875 -0.208181,-0.584304 2.31e-4,-1.765608 1.66e-4,-3.53121 3.3e-5,-5.296808 -0.294772,-1.65e-4 -0.589506,6.7e-5 -0.88422,-9.8e-5 4.6e-4,-2.676446 -10e-4,-5.3529103 7.43e-4,-8.0293333 0.0029,-0.3860244 0.125432,-0.7888934 0.415297,-1.0567865 z m 0,0" id="path24" inkscape:connector-curvature="0" fill="#ffffff"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/83-1.svg b/htdocs/public/symbols/svgicons/83-1.svg
deleted file mode 100755
index 9a5d0bdf63d8791cfb14acaba0c354edea818230..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/83-1.svg
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 23.999999 24" version="1.1" width="24" height="24">
- <defs id="defs5222">
-  <clipPath id="clipPath854">
-   <path id="path856" d="m 220.41,353.78 c 0.127,8.395 -2.341,8.539 -2.341,8.539 l -2.786,0 c 0,0 -2.313,-0.227 -2.187,-8.622 l 7.314,0.083"/>
-  </clipPath>
-  <clipPath id="clipPath830">
-   <path id="path832" d="m 72.5,499.91 227.51,0 0,-336.13 -227.51,0 0,336.13 z"/>
-  </clipPath>
-  <clipPath id="clipPath836">
-   <path id="path838" d="M 0,792 612,792 612,0 0,0 0,792 Z"/>
-  </clipPath>
-  <clipPath id="clipPath842">
-   <path id="path844" d="m 0.06,792 612,0 0,-792 -612,0 0,792 z"/>
-  </clipPath>
-  <clipPath id="clipPath820">
-   <path id="path822" d="m 211.29,353.78 c 0.127,8.395 -2.341,8.539 -2.341,8.539 l -2.786,0 c 0,0 -2.313,-0.227 -2.187,-8.622 l 7.314,0.083"/>
-  </clipPath>
-  <clipPath id="clipPath786">
-   <path id="path788" d="m 212.4,349.75 c 0,0 1.186,6.305 1.334,13.756 0.148,7.451 -1.104,12.421 -1.104,12.421 l -1.037,0 c 0,0 -1.186,-4.97 -1.038,-12.421 0.148,-7.451 1.845,-13.756 1.845,-13.756"/>
-  </clipPath>
-  <clipPath id="clipPath750">
-   <path id="path752" d="m 204.1,360.99 15.426,-0.067 -0.162,48.24 c 0,0 0.485,8.94 -1.132,23.557 -0.855,7.722 -4.009,13.491 -6.498,13.7 -2.49,-0.209 -5.482,-5.978 -6.337,-13.7 -1.617,-14.617 -1.132,-23.557 -1.132,-23.557 l -0.17,-48.17"/>
-  </clipPath>
-  <clipPath id="clipPath708">
-   <path id="path710" d="m 204.69,425.61 c 0,0 -2.668,-21.73 -9.714,-32.63 -7.046,-10.9 -14.484,-12.325 -15.87,-21.872 -0.297,-2.043 -0.445,-4.157 -0.445,-4.157 l 25.584,-6.117 1.818,63.886 -1.373,0.89"/>
-  </clipPath>
-  <clipPath id="clipPath672">
-   <path id="path674" d="m 186.9,347.49 13.459,0 -1.45,5.415 c 0,0 -0.016,91.334 -0.016,92.532 0,1.198 0,2.935 -0.31,3.962 -0.31,1.027 -2.967,9.407 -3.367,10.605 -0.399,1.198 -0.712,1.565 -1.739,1.565 -1.027,0 -1.337,-0.367 -1.736,-1.565 -0.4,-1.198 -3.367,-10.605 -3.367,-10.605 -0.31,-1.027 -0.31,-2.764 -0.31,-3.962 l 0,-92.532 -1.164,-5.415"/>
-  </clipPath>
-  <clipPath id="clipPath638">
-   <path id="path640" d="m 199.47,342.41 c -0.748,9.305 -3.562,9.457 -3.562,9.457 l -4.5,0 c 0,0 -2.612,-0.295 -3.322,-9.457 l 11.384,0"/>
-  </clipPath>
-  <clipPath id="clipPath592">
-   <path id="path594" d="m 218.78,425.61 c 0,0 2.669,-21.73 9.714,-32.63 7.046,-10.9 14.485,-12.325 15.87,-21.872 0.297,-2.043 0.445,-4.157 0.445,-4.157 l -25.584,-6.117 -1.818,63.886 1.373,0.89"/>
-  </clipPath>
-  <clipPath id="clipPath556">
-   <path id="path558" d="m 236.03,347.49 -13.459,0 1.449,5.415 c 0,0 0.017,91.334 0.017,92.532 0,1.198 0,2.935 0.31,3.962 0.31,1.027 2.967,9.407 3.366,10.605 0.4,1.198 0.712,1.565 1.739,1.565 1.027,0 1.338,-0.367 1.737,-1.565 0.399,-1.198 3.366,-10.605 3.366,-10.605 0.31,-1.027 0.31,-2.764 0.31,-3.962 l 0,-92.532 1.165,-5.415"/>
-  </clipPath>
-  <clipPath id="clipPath522">
-   <path id="path524" d="m 223.46,342.41 c 0.748,9.305 3.562,9.457 3.562,9.457 l 4.5,0 c 0,0 2.612,-0.295 3.322,-9.457 l -11.384,0"/>
-  </clipPath>
- </defs>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 13.743669,5.2157578 c 0,0 0.660591,5.3782792 2.404262,8.0760822 1.743919,2.697802 3.585107,3.050497 3.927901,5.413425 0.07351,0.505652 0.11014,1.028877 0.11014,1.028877 L 13.853809,21.248129 13.403845,5.4360371 13.743669,5.2157578 Z" id="path622" fill="#ffffff" stroke="#231f20" stroke-width="0.43"/>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 17.12211,20.365527 0,-1.66249" id="path628" fill="none" stroke="#231f20" stroke-width="0.23"/>
- <g clip-path="url(#clipPath836)" id="g726" transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" fill="#ffffff" stroke="#1a1a1a" stroke-width="0.808" stroke-miterlimit="3.864">
-  <g clip-path="url(#clipPath842)" id="g732">
-   <path inkscape:connector-curvature="0" d="m 204.69,425.61 c 0,0 -2.668,-21.73 -9.714,-32.63 -7.046,-10.9 -14.484,-12.325 -15.87,-21.872 -0.297,-2.043 -0.445,-4.157 -0.445,-4.157 l 25.584,-6.117 1.818,63.886 -1.373,0.89 z" id="path738" stroke-width="1.616"/>
-   <path inkscape:connector-curvature="0" d="m 204.1,360.99 15.426,-0.067 -0.162,48.24 c 0,0 0.485,8.94 -1.132,23.557 -0.855,7.722 -4.009,13.491 -6.498,13.7 -2.49,-0.209 -5.482,-5.978 -6.337,-13.7 -1.617,-14.617 -1.132,-23.557 -1.132,-23.557 l -0.17,-48.17" id="path744"/>
-  </g>
- </g>
- <g transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" id="g588">
-  <g clip-path="url(#clipPath592)" id="g590">
-   <path inkscape:connector-curvature="0" d="m 220.56,359.02 25.14,4.19 0,13.162 -15.722,19.251 -4.347,0 c 1.867,-3.637 4.205,-7.064 7.168,-10.21 5.984,-6.354 9.706,-7.58 10.613,-17.446 l -22.923,-5.481 0.071,-3.466" id="path596" fill="#231f20"/>
-   <path inkscape:connector-curvature="0" d="m 219.52,372.33 26.029,0 0,-2.224 -25.881,-2.263 -0.148,4.487" id="path598" fill="#231f20"/>
-   <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 228.64,395.69 -11.235,0" id="path600" fill="none" stroke="#231f20" stroke-width="0.667"/>
-  </g>
- </g>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 17.12211,18.915149 0,-0.600942" id="path630" fill="none" stroke="#ffffff" stroke-width="0.13"/>
- <g transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" id="g704" fill="#1a1a1a">
-  <g clip-path="url(#clipPath708)" id="g706">
-   <path inkscape:connector-curvature="0" d="m 202.91,359.02 -25.139,4.19 0,13.162 15.722,19.251 4.346,0 c -1.866,-3.637 -4.205,-7.064 -7.168,-10.21 -5.983,-6.354 -9.705,-7.58 -10.613,-17.446 l 22.923,-5.481 -0.071,-3.466" id="path712"/>
-   <path inkscape:connector-curvature="0" d="m 203.95,372.33 -26.029,0 0,-2.224 25.881,-2.263 0.148,4.487" id="path714"/>
-   <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 194.83,395.69 11.235,0" id="path716" stroke="#231f20" stroke-width="0.667"/>
-  </g>
- </g>
- <g transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" id="g746" fill="#1a1a1a" stroke="#1a1a1a">
-  <g clip-path="url(#clipPath750)" id="g748">
-   <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 205.62,445.08 c 0,1.905 2.681,3.449 5.988,3.449 3.308,0 5.989,-1.544 5.989,-3.449 0,-1.905 -2.681,-3.449 -5.989,-3.449 -3.307,0 -5.988,1.544 -5.988,3.449 z" id="path754" stroke-width="0.262"/>
-  </g>
- </g>
- <g transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" id="g756" stroke="#1a1a1a" stroke-width="0.808" stroke-miterlimit="3.864">
-  <g clip-path="url(#clipPath830)" id="g758">
-   <g clip-path="url(#clipPath836)" id="g764">
-    <g clip-path="url(#clipPath842)" id="g770">
-     <path inkscape:connector-curvature="0" d="m 204.1,360.99 15.426,-0.067 -0.162,48.24 c 0,0 0.485,8.94 -1.132,23.557 -0.855,7.722 -4.009,13.491 -6.498,13.7 -2.49,-0.209 -5.482,-5.978 -6.337,-13.7 -1.617,-14.617 -1.132,-23.557 -1.132,-23.557 l -0.17,-48.17 z" id="path776" fill="none" stroke-width="1.616"/>
-     <path inkscape:connector-curvature="0" d="m 214.18775,428.16727 c -0.57209,1.53782 -1.46074,2.29766 -2.40346,2.26928 -1.11099,-0.0335 -2.03373,-0.68546 -2.50309,-2.26928 l -2.26873,-0.007 c 0.558,2.594 2.37664,4.40534 4.76582,4.40991 2.37171,0.005 4.13318,-1.87291 4.67918,-4.40991 z" id="path778" sodipodi:nodetypes="csccscc" fill="#918f90" stroke-width="1.212"/>
-     <path inkscape:connector-curvature="0" d="m 212.4,349.75 c 0,0 1.186,6.305 1.334,13.756 0.148,7.451 -1.104,12.421 -1.104,12.421 l -1.037,0 c 0,0 -1.186,-4.97 -1.038,-12.421 0.148,-7.451 1.845,-13.756 1.845,-13.756" id="path780" fill="#ffffff"/>
-    </g>
-   </g>
-  </g>
- </g>
- <g clip-path="url(#clipPath836)" id="g800" transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)">
-  <g clip-path="url(#clipPath842)" id="g806">
-   <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 212.4,349.75 c 0,0 1.186,6.305 1.334,13.756 0.148,7.451 -1.104,12.421 -1.104,12.421 l -1.037,0 c 0,0 -1.186,-4.97 -1.038,-12.421 0.148,-7.451 1.845,-13.756 1.845,-13.756 z" id="path812" fill="none" stroke="#231f20" stroke-width="1.071"/>
-   <path inkscape:connector-curvature="0" d="m 211.29,353.78 c 0.127,8.395 -2.341,8.539 -2.341,8.539 l -2.786,0 c 0,0 -2.313,-0.227 -2.187,-8.622 l 7.314,0.083" id="path814" fill="#231f20"/>
-  </g>
- </g>
- <g transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" id="g816">
-  <g clip-path="url(#clipPath820)" id="g818">
-   <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 202.62,354.84 9.121,0 m -9.121,1.571 9.121,0 m -9.121,1.572 9.121,0 m -9.121,1.571 9.121,0" id="path824" fill="none" stroke="#7b7979" stroke-width="0.524"/>
-  </g>
- </g>
- <g transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" id="g826">
-  <g clip-path="url(#clipPath830)" id="g828">
-   <g clip-path="url(#clipPath836)" id="g834">
-    <g clip-path="url(#clipPath842)" id="g840">
-     <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 211.29,353.78 c 0.127,8.395 -2.341,8.539 -2.341,8.539 l -2.786,0 c 0,0 -2.313,-0.227 -2.187,-8.622 l 7.314,0.083 z" id="path846" fill="none" stroke="#231f20" stroke-width="0.524"/>
-     <path inkscape:connector-curvature="0" d="m 220.41,353.78 c 0.127,8.395 -2.341,8.539 -2.341,8.539 l -2.786,0 c 0,0 -2.313,-0.227 -2.187,-8.622 l 7.314,0.083" id="path848" fill="#231f20"/>
-    </g>
-   </g>
-  </g>
- </g>
- <g transform="matrix(0.24750481,0,0,-0.24750481,-40.405433,110.55628)" id="g850">
-  <g clip-path="url(#clipPath854)" id="g852">
-   <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 211.74,354.84 9.122,0 m -9.122,1.571 9.122,0 m -9.122,1.572 9.122,0 m -9.122,1.571 9.122,0" id="path858" fill="none" stroke="#7b7979" stroke-width="0.524"/>
-  </g>
- </g>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 14.147661,22.993493 c 0.03143,-2.077861 -0.579418,-2.113433 -0.579418,-2.113433 l -0.689549,0 c 0,0 -0.572482,0.05618 -0.5413,2.134027 l 1.81023,-0.02054 z" id="path880" fill="none" stroke="#231f20" stroke-width="0.13"/>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 11.789626,21.24673 c 0.03663,-3.707891 -0.67842,-3.771733 -0.67842,-3.771733 l -0.807124,0 c 0,0 -0.6702477,0.10049 -0.6336181,3.808428 l 2.1191431,-0.03663 z" id="path882" fill="#ffffff" stroke="#231f20" stroke-width="0.33"/>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 14.569842,21.24673 c 0.03688,-3.707891 -0.678419,-3.771733 -0.678419,-3.771733 l -0.807124,0 c 0,0 -0.670005,0.10049 -0.633366,3.808428 l 2.118862,-0.03663 z" id="path884" fill="#ffffff" stroke="#231f20" stroke-width="0.33"/>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 6.743111,20.36586 0,-1.662513" id="path886" fill="#1a1a1a" stroke="#1a1a1a" stroke-width="0.23"/>
- <path inkscape:connector-curvature="0" stroke-miterlimit="3.864" d="m 6.743111,18.915842 0,-0.600949" id="path888" fill="none" stroke="#ffffff" stroke-width="0.13"/>
- <metadata id="metadata183"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/83-2.svg b/htdocs/public/symbols/svgicons/83-2.svg
deleted file mode 100755
index 8cd3f1f16c6456103c0d2465890d566290acabf3..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/83-2.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3001"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g3013" transform="translate(-528,648.00002)">
-   <g transform="matrix(0.05291658,0,0,0.05291658,518.73976,375.22261)" id="layer1-1">
-    <path inkscape:connector-curvature="0" d="m 287.44,286.58 c 8.8583,-0.0756 18.161,1.2414 27.843,4.3505 23.639,7.5916 49.437,23.77 72.544,46.876 22.316,22.316 38.195,47.044 46.114,70.042 3.5848,10.411 5.3257,20.665 5.3294,30.127 34.464,-34.381 74.719,-74.501 74.719,-74.501 8.8046,-8.8046 10.662,-25.016 4.0244,-45.788 -6.6374,-20.772 -21.622,-44.897 -43.287,-66.562 -21.664,-21.665 -45.789,-36.649 -66.561,-43.287 -20.772,-6.6373 -36.984,-4.7803 -45.788,4.0241 a 7.3368,7.3368 0 0 1 -0.32655,0.32655 c 1.5e-4,-3.8e-4 -0.15572,-0.0378 -0.32656,0.10658 a 7.3368,7.3368 0 0 1 -0.10733,0.10809 c -0.0755,0.0755 -0.23434,0.23735 -0.3258,0.32655 a 7.3368,7.3368 0 0 1 -0.10734,0.10734 c -0.0227,0.0227 -0.0755,0.0907 -0.10734,0.10734 -0.27741,0.27062 -0.46261,0.46942 -0.87004,0.87005 -1.3246,1.3035 -3.2358,3.2497 -5.7641,5.7642 -5.0603,5.0256 -12.407,12.42 -21.317,21.317 -11.973,11.959 -29.332,29.327 -45.679,45.68 z m -40.639,-122.78 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m -115.4,-38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 233,156.07 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m -115.4,-38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m 38.467,38.467 -33.338,-33.338 33.338,-33.338 33.338,33.338 z m -26.89,-249.86 c 14.671,-18.593 23.601,-32.737 23.601,-32.737 6.0975,-9.8498 8.7897,-20.878 6.5255,-33.498 -2.2639,-12.621 -9.7854,-27.187 -25.667,-43.069 -15.989,-15.989 -29.977,-23.759 -42.199,-26.103 -12.222,-2.3439 -23.154,0.29026 -34.586,6.9608 a 8.7573,8.7573 0 0 1 -0.10733,0.10734 c -0.90581,0.51174 -0.23131,0.0975 -0.4354,0.21694 -0.20486,0.11566 -0.55106,0.2948 -0.97959,0.54275 -0.85462,0.49889 -2.117,1.2198 -3.8063,2.284 -3.3786,2.1287 -8.3084,5.4327 -14.574,10.006 -3.793,2.7685 -8.1932,6.2168 -12.943,10.115 20.824,8.7749 42.483,23.558 62.211,43.287 19.646,19.646 34.196,41.165 42.96,61.885 z m -243.08,138.23 c 15.825,15.825 27.262,20.215 35.673,20.012 8.2898,-0.19956 16.009,-4.9974 24.362,-13.269 0.18141,-0.20258 0.17082,-0.17235 0.32654,-0.32579 0.67351,-0.65991 1.1912,-1.0953 1.5228,-1.3049 0.81396,-0.51552 1.1331,-0.63722 1.4148,-0.75877 0.5639,-0.24415 0.87103,-0.43313 1.196,-0.54349 0.65234,-0.22073 1.3406,-0.40517 2.1753,-0.65311 1.67,-0.49361 3.9356,-1.1132 6.6343,-1.8491 5.3972,-1.4715 12.536,-3.2413 19.686,-5.1116 12.5,-3.2709 22.067,-5.7697 25.015,-6.5254 5.2003,-6.2337 6.9486,-16.641 2.8278,-30.888 -4.3795,-15.141 -14.954,-33.009 -30.779,-48.834 -15.825,-15.825 -33.693,-26.4 -48.834,-30.779 -14.246,-4.121 -24.654,-2.3723 -30.888,2.8278 -0.39307,1.4287 -0.92984,3.0175 -1.5226,5.2205 -1.4259,5.3024 -3.3261,12.432 -5.2202,19.577 -3.793,14.289 -7.613,28.713 -7.613,28.713 a 9.2981,9.2981 0 0 1 -2.3919,4.1331 c -8.4974,8.4974 -13.392,16.277 -13.595,24.689 -0.20259,8.4119 4.1869,19.848 20.012,35.673 z" id="path7145"/>
-   </g>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/84-1.svg b/htdocs/public/symbols/svgicons/84-1.svg
deleted file mode 100755
index bd78e41136201b837d6780843f7a956b62448b67..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/84-1.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24" viewBox="0 0 24.000001 24">
- <metadata id="metadata51"/>
- <defs id="defs86">
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_9_" id="linearGradient3825" gradientUnits="userSpaceOnUse" x1="0.125" x2="30.13" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_10_" id="linearGradient3827" gradientUnits="userSpaceOnUse" x1="1.029" x2="23.18" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_11_" id="linearGradient3829" gradientUnits="userSpaceOnUse" x1="24.11" x2="29.09" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_12_" id="linearGradient3831" gradientUnits="userSpaceOnUse" x1="2.099" x2="22.11" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_13_" id="linearGradient3833" gradientUnits="userSpaceOnUse" x1="25.2" y1="6.891" x2="28" y2="9.691" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_14_" id="linearGradient3835" gradientUnits="userSpaceOnUse" x1="25.2" y1="2.501" x2="28" y2="5.302" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_15_" id="linearGradient3837" gradientUnits="userSpaceOnUse" y1="11.9" x2="0" y2="19.02" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient x1="0.125" x2="30.13" id="XMLID_9_" gradientUnits="userSpaceOnUse">
-   <stop id="stop4" stop-color="#696969"/>
-   <stop offset="0.298" id="stop6" stop-color="#aaadb6"/>
-   <stop offset="0.438" id="stop8" stop-color="#999a9e"/>
-   <stop offset="0.562" id="stop10" stop-color="#adb1ba"/>
-   <stop offset="1" id="stop12" stop-color="#828387"/>
-  </linearGradient>
-  <linearGradient x1="1.029" x2="23.18" id="XMLID_10_" gradientUnits="userSpaceOnUse">
-   <stop id="stop17" stop-color="#aaadb6"/>
-   <stop offset="0.079" id="stop19" stop-color="#696969"/>
-   <stop offset="0.438" id="stop21" stop-color="#828387"/>
-   <stop offset="0.933" id="stop23" stop-color="#828387"/>
-   <stop offset="1" id="stop25" stop-color="#adb1ba"/>
-  </linearGradient>
-  <linearGradient x1="24.11" x2="29.09" id="XMLID_11_" gradientUnits="userSpaceOnUse">
-   <stop id="stop32" stop-color="#383838"/>
-   <stop offset="0.562" id="stop34" stop-color="#616369"/>
-   <stop offset="1" id="stop36" stop-color="#525252"/>
-  </linearGradient>
-  <linearGradient x1="2.099" x2="22.11" id="XMLID_12_" gradientUnits="userSpaceOnUse">
-   <stop id="stop41" stop-color="#8c8c8c"/>
-   <stop offset="1" id="stop43" stop-color="#5e5e5e"/>
-  </linearGradient>
-  <linearGradient x1="25.2" y1="6.891" x2="28" y2="9.691" id="XMLID_13_" gradientUnits="userSpaceOnUse">
-   <stop offset="0.264" id="stop48" stop-color="#9698a1"/>
-   <stop offset="0.36" id="stop50" stop-color="#787a82"/>
-   <stop offset="0.725" id="stop52" stop-color="#abaeb8"/>
-  </linearGradient>
-  <linearGradient x1="25.2" y1="2.501" x2="28" y2="5.302" id="XMLID_14_" gradientUnits="userSpaceOnUse">
-   <stop offset="0.264" id="stop57" stop-color="#9698a1"/>
-   <stop offset="0.36" id="stop59" stop-color="#787a82"/>
-   <stop offset="0.725" id="stop61" stop-color="#abaeb8"/>
-  </linearGradient>
-  <linearGradient y1="11.9" x2="0" y2="19.02" id="XMLID_15_" gradientUnits="userSpaceOnUse">
-   <stop id="stop66" stop-color="#3b3b3b"/>
-   <stop offset="0.522" id="stop68" stop-color="#424345"/>
-   <stop offset="1" id="stop70" stop-color="#3b3b3b"/>
-  </linearGradient>
-  <linearGradient x1="2.874" x2="21.336" id="XMLID_16_" gradientUnits="userSpaceOnUse">
-   <stop id="stop75" stop-color="#8c8c8c"/>
-   <stop offset="1" id="stop77" stop-color="#7c7c7c"/>
-  </linearGradient>
- </defs>
- <rect width="23.802" height="16.344" x="0.099" y="3.322" id="rect14" fill="url(#linearGradient3825)" stroke="#000000" stroke-width="0.198"/>
- <rect width="17.613" height="14.202" x="0.813" y="4.433" id="rect27" fill="url(#linearGradient3827)" stroke="#000000" stroke-width="0.079"/>
- <rect width="20.787" height="1.111" x="1.607" y="19.666" id="rect29"/>
- <rect width="3.967" height="14.995" x="19.14" y="4.04" id="rect38" fill="url(#linearGradient3829)" stroke="#000000" stroke-width="0.079"/>
- <path inkscape:connector-curvature="0" d="m 17.236364,16.333884 c -0.07934,0.634711 -0.63471,1.110744 -1.269421,1.190083 -5.077686,0.396694 -7.6165294,0.396694 -12.6942155,0 -0.6347107,-0.07934 -1.1900826,-0.555372 -1.2694215,-1.190083 -0.3966942,-3.887603 -0.3966942,-5.791736 0,-9.6000001 C 2.0826449,6.178512 2.6380168,5.62314 3.2727275,5.5438012 c 5.0776861,-0.3966942 7.6165295,-0.3966942 12.6942155,0 0.634711,0.079339 1.190082,0.5553719 1.269421,1.1900827 0.476033,3.8082641 0.476033,5.7123971 0,9.6000001 z" id="path45" fill="url(#linearGradient3831)" stroke="#000000" stroke-width="0.397"/>
- <circle cx="21.12" cy="9.828" r="1.587" id="circle54" fill="url(#linearGradient3833)" stroke="#000000" stroke-width="0.079"/>
- <circle cx="21.12" cy="6.337" r="1.587" id="circle63" fill="url(#linearGradient3835)" stroke="#000000" stroke-width="0.079"/>
- <rect width="2.539" height="5.712" x="19.855" y="12.605" id="rect72" fill="url(#linearGradient3837)" stroke="#000000" stroke-width="0.079"/>
- <circle cx="21.12" cy="6.337" r="0.793" id="circle81" fill="#8c8c8c" stroke="#000000" stroke-width="0.079"/>
- <circle cx="21.12" cy="9.828" r="0.793" id="circle83" fill="#8c8c8c" stroke="#000000" stroke-width="0.079"/>
- <g id="g3802" transform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)" opacity="0.6">
-  <circle r="4.67" cy="-0.729" cx="-24.385" transform="matrix(1.1299292,0,0,1.110931,39.538735,11.339575)" id="path3025" fill="#ffff00" fill-rule="evenodd" stroke="#000000"/>
-  <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path3027" d="m 9.2895291,11.685109 c 1.6066949,1.955462 3.3983769,2.348098 5.6279769,0" fill="none" stroke="#000000" stroke-width="1.12"/>
-  <circle r="1.245" cy="-2.597" cx="-25.838" transform="matrix(1.1299292,0,0,1.110931,39.305401,11.572493)" id="path3031" stroke="#ffff00"/>
-  <circle r="1.245" cy="-2.597" cx="-25.838" id="path3031-3" transform="matrix(1.1299292,0,0,1.110931,42.940134,11.572492)" stroke="#ffff00"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/84-2.svg b/htdocs/public/symbols/svgicons/84-2.svg
deleted file mode 100755
index 5591f380bbbd0d2080e4209e2c038c80f8e916c7..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/84-2.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <path inkscape:connector-curvature="0" d="m 21.848666,1037.81 c -0.04754,0 -0.09459,0 -0.141384,0.01 -0.595046,0.042 -1.128019,0.353 -1.445267,0.8491 -0.113582,0.1776 -0.355024,0.2328 -0.539319,0.1234 -0.120262,-0.071 -0.185965,-0.1951 -0.186049,-0.3217 0,-0.067 0.01833,-0.1361 0.05786,-0.1977 0.468357,-0.7325 1.267984,-1.1804 2.153812,-1.2119 -0.0751,-2.413 -2.088025,-4.3565 -4.590767,-4.4361 0.153072,0.4381 0.263023,0.8963 0.323926,1.3704 0.02659,0.207 -0.126022,0.3955 -0.340873,0.4211 -0.0039,5e-4 -0.0078,3e-4 -0.01169,7e-4 -0.01235,0 -0.02476,0 -0.03689,0 -0.195024,0 -0.363998,-0.14 -0.388586,-0.3312 -0.06361,-0.4955 -0.187092,-0.9716 -0.362621,-1.4222 -0.401817,-1.0318 -1.077428,-1.9286 -1.937,-2.6149 -0.116838,-0.094 -0.237099,-0.1827 -0.360492,-0.2679 -1.070832,-0.7401 -2.380518,-1.173 -3.782706,-1.173 -0.119803,0 -0.239021,0 -0.3575287,0.01 -0.6561161,0.035 -1.291486,0.1636 -1.8889949,0.3757 -1.5991734,0.5677 -2.9268503,1.7289 -3.6547644,3.2572 0.096301,-0.01 0.1932699,-0.01 0.2909068,-0.01 1.0312602,0 2.0260787,0.2927 2.8769675,0.8467 0.1119965,0.073 0.1723986,0.1918 0.1725238,0.3127 8.34e-5,0.073 -0.021706,0.1467 -0.067207,0.2116 -0.1212216,0.1728 -0.3648754,0.2182 -0.5442449,0.1013 -0.720776,-0.4692 -1.563817,-0.7171 -2.4379985,-0.7171 -0.2464505,0 -0.4881007,0.02 -0.723531,0.059 -0.068082,0.035 -0.1465595,0.051 -0.2260382,0.042 -0.02776,0.01 -0.055434,0.013 -0.082985,0.018 -1.9077792,0.448 -3.32820921,2.1078 -3.32820921,4.0817 0,4e-4 -4.175e-5,8e-4 -4.175e-5,0 7.0964e-4,2.528 2.12830736,4.5773 4.75285526,4.5773 l 11.9555222,0 4.4589,0 c 1.24461,0 2.253787,-0.9722 2.253787,-2.1714 0,-0.989 -0.835276,-1.7936 -1.861861,-1.7936 z" id="path3614" fill="#b3b3b3" stroke="#808080" stroke-width="0.491"/>
-  <g id="g3616" transform="matrix(0.04172682,0,0,0.04172682,-0.60141574,1027.4975)" stroke="#d45500" stroke-width="11.983">
-   <path inkscape:connector-curvature="0" d="m 242.641,428.896 c -0.08,0 -54.669,1.311 -54.669,1.311 l 43.71,-62.555 c 0.465,-0.676 1.056,-1.586 1.671,-2.652 l -79.878,0 -48.62,102.676 c -1.449,3.059 -1.251,6.643 0.525,9.525 1.776,2.881 4.889,4.67 8.273,4.75 l 42.474,1.021 -53.1,90.703 c -2.461,4.193 -1.66,9.635 1.911,12.945 1.936,1.793 4.454,2.779 7.091,2.779 2.898,-0.002 5.689,-1.221 7.649,-3.338 l 130.29,-140.363 c 2.735,-2.947 3.439,-7.246 1.788,-10.91 -1.617,-3.593 -5.19,-5.892 -9.115,-5.892 z" id="path3618" fill="#ffdc21"/>
-  </g>
-  <g id="g3620" transform="matrix(0.04172682,0,0,0.04172682,-0.60141574,1027.4975)" stroke="#d45500" stroke-width="11.983">
-   <path inkscape:connector-curvature="0" d="m 480.641,428.896 c -0.08,0 -54.669,1.311 -54.669,1.311 l 43.71,-62.555 c 0.465,-0.676 1.057,-1.586 1.672,-2.652 l -79.879,0 -48.62,102.676 c -1.448,3.059 -1.251,6.643 0.524,9.525 1.776,2.881 4.89,4.67 8.273,4.75 l 42.475,1.021 -53.1,90.703 c -2.462,4.193 -1.66,9.635 1.91,12.945 1.936,1.793 4.455,2.779 7.092,2.779 2.898,-0.002 5.689,-1.221 7.649,-3.338 l 130.29,-140.363 c 2.735,-2.947 3.439,-7.246 1.788,-10.91 -1.617,-3.593 -5.19,-5.892 -9.115,-5.892 z" id="path3622" fill="#ffdc21"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/85-1.svg b/htdocs/public/symbols/svgicons/85-1.svg
deleted file mode 100755
index 63b7bfc6fb32a311f443a7e26e0c47d7c9fb2dc2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/85-1.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24">
- <metadata id="metadata16"/>
- <path inkscape:connector-curvature="0" id="path1966" d="m 22.800572,8.2688913 0.01595,-0.7329406 c -0.0157,-0.049247 -0.02412,-0.1057818 -0.09126,-0.1035977 L 1.8714751,7.4189727 C 0.92545083,7.6072532 0.73794541,10.068642 0.24866478,11.442638 l 0,2.980094 c 0.23834022,0.560104 0.4957278,0.605926 0.7512842,0.701199 l 3.10530832,-0.02505 c 0,-2.707608 4.1070207,-2.692523 4.1070207,0 l 8.339255,0 c 0,-2.697709 4.006849,-2.698447 4.006849,0 l 2.879923,0 c 0.136502,-0.04003 0.229533,-0.167006 0.313035,-0.313035 L 23.717887,12.11382 22.498519,8.5944457 c -0.04247,-0.2337777 0.201264,-0.2171274 0.30205,-0.3255564 z" fill="#ffcc00" fill-rule="evenodd" stroke="#000000" stroke-width="0.497"/>
- <path inkscape:connector-curvature="0" id="path2856" d="m 4.6644943,15.108229 a 1.4907993,1.4904321 0 1 0 2.9815985,0 1.4907993,1.4904321 0 1 0 -2.9815985,0 z"/>
- <path inkscape:connector-curvature="0" id="path3745" d="m 17.049313,15.117691 a 1.4907998,1.4907998 0 0 0 2.981599,0 1.4907998,1.4907998 0 1 0 -2.981599,0 z"/>
- <path inkscape:connector-curvature="0" id="path3747" d="M 5.2756717,8.7631877 4.5560579,11.216442 c -0.042363,0.10005 -0.083941,0.200711 -0.2011915,0.242515 l -2.4948567,-0.0061 C 1.7604904,11.366142 1.6579002,11.285068 1.6422613,11.106107 L 2.3490748,8.6534092 C 2.40683,8.4599115 2.486435,8.4047941 2.5694668,8.3713791 l 2.5425805,0.0032 c 0.1239524,0.074007 0.1674796,0.2123551 0.1636244,0.3886085 z" fill="#cccccc" fill-rule="evenodd" stroke="#000000" stroke-width="0.397"/>
- <path inkscape:connector-curvature="0" id="path4634" d="M 9.5750061,8.7585694 8.8553922,11.211823 c -0.042364,0.100051 -0.083941,0.200712 -0.2011914,0.242516 l -2.4948567,-0.0062 C 6.0598247,11.361523 5.9572344,11.28045 5.9415956,11.101488 L 6.648409,8.6487909 C 6.7061646,8.4552932 6.7857693,8.4001758 6.8688011,8.3667608 l 2.5425806,0.0032 c 0.1239523,0.074007 0.1674795,0.2123551 0.1636244,0.3886084 z" fill="#cccccc" fill-rule="evenodd" stroke="#000000" stroke-width="0.397"/>
- <path inkscape:connector-curvature="0" id="path4636" d="m 13.874341,8.7585691 -0.719614,2.4532539 c -0.04236,0.100051 -0.08394,0.200712 -0.201191,0.242516 l -2.494858,-0.0062 c -0.09952,-0.08666 -0.20211,-0.167727 -0.217748,-0.346689 l 0.706813,-2.4526973 c 0.05775,-0.1934977 0.13736,-0.2486152 0.220393,-0.2820302 l 2.542581,0.0032 c 0.123952,0.074007 0.167479,0.2123552 0.163624,0.3886085 z" fill="#cccccc" fill-rule="evenodd" stroke="#000000" stroke-width="0.397"/>
- <path inkscape:connector-curvature="0" id="path4640" d="m 17.87754,8.587075 4.22e-4,2.638863 c -0.04237,0.10005 -0.115944,0.194311 -0.233194,0.236115 l -2.590861,-0.0093 c -0.09952,-0.0867 -0.20211,-0.167767 -0.217748,-0.346728 L 15.542973,8.6533051 C 15.600726,8.4598074 15.680333,8.40469 15.763364,8.371275 l 1.921751,-0.0032 c 0.123952,0.074007 0.151479,0.074749 0.192425,0.2190002 z" fill="#cccccc" fill-rule="evenodd" stroke="#000000" stroke-width="0.397"/>
- <path inkscape:connector-curvature="0" id="path4642" d="M 18.9754,8.6678402 18.98,11.22066 c 0.04237,0.100049 0.08394,0.20071 0.201191,0.242515 l 2.93385,-0.01518 c 0.09952,-0.08669 0.20211,-0.167768 0.217748,-0.346728 L 21.453952,8.6576271 C 21.396196,8.4641294 21.316592,8.409012 21.23356,8.375597 l -2.094536,0.00772 c -0.123952,0.07401 -0.167479,0.1082663 -0.163624,0.2845197 z" fill="#cccccc" fill-rule="evenodd" stroke="#000000" stroke-width="0.397"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/85-2.svg b/htdocs/public/symbols/svgicons/85-2.svg
deleted file mode 100755
index 4cf7c575569f6aa46211f6bcacf2487f19eb0eb0..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/85-2.svg
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3050"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <switch transform="matrix(0.0408403,0,0,0.0408403,-0.20169302,1028.1994)" id="switch3786">
-   <g id="g3790">
-    <g id="g3792">
-     <circle cx="298.49" cy="306.12" r="216.75" id="circle3794" fill="#ffaa00"/>
-     <g id="g3796">
-      <g id="g3798">
-       <path inkscape:connector-curvature="0" d="m 339.642,72.042 c -0.225,0 -0.451,-0.019 -0.677,-0.058 -13.323,-2.287 -26.942,-3.446 -40.478,-3.446 -12.325,0 -24.765,0.969 -36.975,2.879 -0.207,0.033 -0.414,0.048 -0.619,0.048 -1.305,0 -2.545,-0.64 -3.298,-1.737 -0.872,-1.271 -0.936,-2.928 -0.166,-4.263 l 26.545,-45.98 c 4.29,-7.429 10.016,-11.52 16.125,-11.52 6.11,0 11.836,4.091 16.126,11.52 l 26.879,46.556 c 0.775,1.343 0.704,3.014 -0.183,4.287 -0.754,1.085 -1.985,1.714 -3.279,1.714 z" id="path3800" fill="#ffaa00"/>
-      </g>
-      <g id="g3802">
-       <path inkscape:connector-curvature="0" d="m 116.291,151.497 c -0.356,0 -0.716,-0.047 -1.07,-0.146 -1.485,-0.412 -2.602,-1.641 -2.87,-3.159 l -9.225,-52.317 c -1.279,-7.254 -0.111,-13.48 3.287,-17.53 2.774,-3.306 6.873,-5.053 11.852,-5.053 2.971,0 6.19,0.624 9.568,1.854 l 50.512,18.385 c 1.458,0.531 2.478,1.857 2.616,3.403 0.138,1.546 -0.63,3.032 -1.972,3.812 -22.481,13.09 -42.561,29.703 -59.682,49.377 -0.769,0.885 -1.876,1.374 -3.016,1.374 z" id="path3804" fill="#ffaa00"/>
-      </g>
-      <g id="g3806">
-       <path inkscape:connector-curvature="0" d="m 56.946,305.711 c -0.924,0 -1.837,-0.319 -2.572,-0.936 L 13.69,270.639 C 7.119,265.123 4.084,258.773 5.145,252.757 6.206,246.741 11.23,241.812 19.291,238.878 l 50.482,-18.375 c 0.446,-0.163 0.909,-0.241 1.368,-0.241 1.041,0 2.062,0.406 2.825,1.167 1.099,1.096 1.465,2.729 0.938,4.189 -8.797,24.401 -13.495,50.026 -13.96,76.164 -0.027,1.541 -0.938,2.93 -2.341,3.568 -0.53,0.243 -1.095,0.361 -1.657,0.361 z" id="path3808" fill="#ffaa00"/>
-      </g>
-      <g id="g3810">
-       <path inkscape:connector-curvature="0" d="m 57.515,462.003 c -8.579,0 -14.986,-2.914 -18.041,-8.204 -3.055,-5.291 -2.375,-12.297 1.915,-19.728 l 26.863,-46.524 c 0.718,-1.244 2.043,-2 3.463,-2 0.114,0 0.229,0.005 0.344,0.015 1.547,0.133 2.877,1.149 3.412,2.606 8.962,24.402 21.833,47.051 38.254,67.317 0.971,1.198 1.167,2.848 0.503,4.24 -0.664,1.392 -2.069,2.278 -3.611,2.278 l -53.102,0 z" id="path3812" fill="#ffaa00"/>
-      </g>
-      <g id="g3814">
-       <path inkscape:connector-curvature="0" d="m 199.747,586.558 c -7.979,-10e-4 -14.094,-6.577 -15.961,-17.162 l -9.333,-52.934 c -0.27,-1.529 0.37,-3.077 1.642,-3.969 0.687,-0.482 1.491,-0.726 2.298,-0.726 0.686,0 1.374,0.177 1.993,0.532 22.592,12.986 46.999,22.081 72.543,27.031 1.514,0.293 2.725,1.431 3.111,2.924 0.386,1.493 -0.12,3.076 -1.301,4.067 l -40.646,34.104 c -4.781,4.013 -9.742,6.133 -14.346,6.133 10e-4,0 10e-4,0 0,0 z" id="path3816" fill="#ffaa00"/>
-      </g>
-      <g id="g3818">
-       <path inkscape:connector-curvature="0" d="m 394.197,587.662 c -4.604,0 -9.564,-2.12 -14.343,-6.13 l -41.179,-34.556 c -1.189,-0.999 -1.693,-2.596 -1.293,-4.097 0.4,-1.5 1.634,-2.634 3.163,-2.906 25.633,-4.565 50.176,-13.286 72.947,-25.921 0.605,-0.336 1.274,-0.502 1.94,-0.502 0.817,0 1.631,0.25 2.322,0.743 1.256,0.896 1.885,2.433 1.617,3.951 l -9.215,52.253 c -1.865,10.588 -7.981,17.165 -15.959,17.165 z" id="path3820" fill="#ffaa00"/>
-      </g>
-      <g id="g3822">
-       <path inkscape:connector-curvature="0" d="m 484.058,464.795 c -1.554,0 -2.966,-0.898 -3.624,-2.306 -0.657,-1.406 -0.441,-3.067 0.554,-4.259 16.732,-20.028 29.945,-42.48 39.271,-66.732 0.553,-1.438 1.884,-2.432 3.421,-2.552 0.104,-0.009 0.209,-0.013 0.313,-0.013 1.42,0 2.745,0.756 3.463,2 l 26.517,45.932 c 4.29,7.429 4.971,14.434 1.917,19.725 -3.056,5.291 -9.463,8.205 -18.043,8.205 h -53.789 z" id="path3824" fill="#ffaa00"/>
-      </g>
-      <g id="g3826">
-       <path inkscape:connector-curvature="0" d="m 540.069,309.322 c -0.571,0 -1.146,-0.122 -1.684,-0.372 -1.408,-0.653 -2.311,-2.062 -2.315,-3.615 -0.084,-26.152 -4.398,-51.846 -12.821,-76.367 -0.501,-1.458 -0.12,-3.073 0.98,-4.153 0.761,-0.748 1.772,-1.146 2.803,-1.146 0.459,0 0.922,0.079 1.368,0.241 l 49.841,18.144 c 8.061,2.934 13.085,7.863 14.146,13.879 1.061,6.016 -1.974,12.367 -8.546,17.882 l -41.199,34.572 c -0.736,0.616 -1.65,0.935 -2.573,0.935 z" id="path3828" fill="#ffaa00"/>
-      </g>
-      <g id="g3830">
-       <path inkscape:connector-curvature="0" d="m 483.04,154.215 c -1.16,0 -2.284,-0.506 -3.056,-1.419 -16.812,-19.901 -36.645,-36.804 -58.95,-50.239 -1.32,-0.795 -2.066,-2.278 -1.918,-3.812 0.149,-1.534 1.166,-2.846 2.614,-3.373 L 471.611,77.22 c 3.377,-1.229 6.596,-1.853 9.566,-1.853 4.98,0 9.08,1.748 11.854,5.056 3.398,4.051 4.564,10.276 3.284,17.528 l -9.337,52.959 c -0.27,1.529 -1.399,2.764 -2.897,3.167 -0.345,0.093 -0.694,0.138 -1.041,0.138 z" id="path3832" fill="#ffaa00"/>
-      </g>
-     </g>
-    </g>
-   </g>
-  </switch>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/86-1.svg b/htdocs/public/symbols/svgicons/86-1.svg
deleted file mode 100755
index fc6727b9198bf9f326b376bfd9746798f197242d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/86-1.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24" viewBox="0 0 24.000001 24">
- <metadata id="metadata51"/>
- <defs id="defs86">
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_9_" id="linearGradient3825" gradientUnits="userSpaceOnUse" x1="0.125" x2="30.13" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_10_" id="linearGradient3827" gradientUnits="userSpaceOnUse" x1="1.029" x2="23.18" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_11_" id="linearGradient3829" gradientUnits="userSpaceOnUse" x1="24.11" x2="29.09" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_13_" id="linearGradient3833" gradientUnits="userSpaceOnUse" x1="25.2" y1="6.891" x2="28" y2="9.691" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_14_" id="linearGradient3835" gradientUnits="userSpaceOnUse" x1="25.2" y1="2.501" x2="28" y2="5.302" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient inkscape:collect="always" xlink:href="#XMLID_15_" id="linearGradient3837" gradientUnits="userSpaceOnUse" y1="11.9" x2="0" y2="19.02" gradientTransform="matrix(0.79338845,0,0,0.79338845,0.0198349,3.2429747)"/>
-  <linearGradient x1="2.099" x2="22.11" id="linearGradient4289" gradientUnits="userSpaceOnUse">
-   <stop id="stop41-0" stop-color="#8c8c8c"/>
-   <stop offset="1" id="stop43-2" stop-color="#5e5e5e"/>
-  </linearGradient>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient4289" id="linearGradient3831-3" gradientUnits="userSpaceOnUse" x1="2.099" x2="22.11" gradientTransform="matrix(0.79338855,0,0,0.79338855,0.0198333,3.2429735)"/>
-  <linearGradient x1="0.125" x2="30.13" id="XMLID_9_" gradientUnits="userSpaceOnUse">
-   <stop id="stop4" stop-color="#696969"/>
-   <stop offset="0.298" id="stop6" stop-color="#aaadb6"/>
-   <stop offset="0.438" id="stop8" stop-color="#999a9e"/>
-   <stop offset="0.562" id="stop10" stop-color="#adb1ba"/>
-   <stop offset="1" id="stop12" stop-color="#828387"/>
-  </linearGradient>
-  <linearGradient x1="1.029" x2="23.18" id="XMLID_10_" gradientUnits="userSpaceOnUse">
-   <stop id="stop17" stop-color="#aaadb6"/>
-   <stop offset="0.079" id="stop19" stop-color="#696969"/>
-   <stop offset="0.438" id="stop21" stop-color="#828387"/>
-   <stop offset="0.933" id="stop23" stop-color="#828387"/>
-   <stop offset="1" id="stop25" stop-color="#adb1ba"/>
-  </linearGradient>
-  <linearGradient x1="24.11" x2="29.09" id="XMLID_11_" gradientUnits="userSpaceOnUse">
-   <stop id="stop32" stop-color="#383838"/>
-   <stop offset="0.562" id="stop34" stop-color="#616369"/>
-   <stop offset="1" id="stop36" stop-color="#525252"/>
-  </linearGradient>
-  <linearGradient x1="25.2" y1="6.891" x2="28" y2="9.691" id="XMLID_13_" gradientUnits="userSpaceOnUse">
-   <stop offset="0.264" id="stop48" stop-color="#9698a1"/>
-   <stop offset="0.36" id="stop50" stop-color="#787a82"/>
-   <stop offset="0.725" id="stop52" stop-color="#abaeb8"/>
-  </linearGradient>
-  <linearGradient x1="25.2" y1="2.501" x2="28" y2="5.302" id="XMLID_14_" gradientUnits="userSpaceOnUse">
-   <stop offset="0.264" id="stop57" stop-color="#9698a1"/>
-   <stop offset="0.36" id="stop59" stop-color="#787a82"/>
-   <stop offset="0.725" id="stop61" stop-color="#abaeb8"/>
-  </linearGradient>
-  <linearGradient y1="11.9" x2="0" y2="19.02" id="XMLID_15_" gradientUnits="userSpaceOnUse">
-   <stop id="stop66" stop-color="#3b3b3b"/>
-   <stop offset="0.522" id="stop68" stop-color="#424345"/>
-   <stop offset="1" id="stop70" stop-color="#3b3b3b"/>
-  </linearGradient>
-  <linearGradient x1="2.874" x2="21.336" id="XMLID_16_" gradientUnits="userSpaceOnUse">
-   <stop id="stop75" stop-color="#8c8c8c"/>
-   <stop offset="1" id="stop77" stop-color="#7c7c7c"/>
-  </linearGradient>
- </defs>
- <rect width="23.802" height="16.344" x="0.099" y="3.322" id="rect14" fill="url(#linearGradient3825)" stroke="#000000" stroke-width="0.198"/>
- <rect width="17.613" height="14.202" x="0.813" y="4.433" id="rect27" fill="url(#linearGradient3827)" stroke="#000000" stroke-width="0.079"/>
- <rect width="20.787" height="1.111" x="1.607" y="19.666" id="rect29"/>
- <rect width="3.967" height="14.995" x="19.14" y="4.04" id="rect38" fill="url(#linearGradient3829)" stroke="#000000" stroke-width="0.079"/>
- <circle cx="21.12" cy="9.828" r="1.587" id="circle54" fill="url(#linearGradient3833)" stroke="#000000" stroke-width="0.079"/>
- <circle cx="21.12" cy="6.337" r="1.587" id="circle63" fill="url(#linearGradient3835)" stroke="#000000" stroke-width="0.079"/>
- <rect width="2.539" height="5.712" x="19.855" y="12.605" id="rect72" fill="url(#linearGradient3837)" stroke="#000000" stroke-width="0.079"/>
- <circle cx="21.12" cy="6.337" r="0.793" id="circle81" fill="#8c8c8c" stroke="#000000" stroke-width="0.079"/>
- <circle cx="21.12" cy="9.828" r="0.793" id="circle83" fill="#8c8c8c" stroke="#000000" stroke-width="0.079"/>
- <path d="M 1.8710486,7.4082056 C 1.9254792,6.2299476 2.535135,5.8349808 3.7634784,5.5371574 l 0,11.9967196 C 2.9529507,17.319004 2.2857243,18.12995 1.7609869,15.479393 Z" id="rect3404" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" fill="#ff0000" fill-rule="evenodd"/>
- <path d="m 5.706614,5.3109102 2.0024917,-0.140625 0,12.6570908 -2.0024917,-0.171875 z" id="rect3404-1" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" fill="#ffff00" fill-rule="evenodd"/>
- <rect id="rect3404-2" width="2" height="12.657" x="7.679" y="5.17" fill="#00ff00" fill-rule="evenodd"/>
- <rect id="rect3404-6" width="2" height="12.657" x="9.652" y="5.17" fill="#008080" fill-rule="evenodd"/>
- <path d="m 11.625056,5.1702843 1.986867,0.125 0.01563,12.3914667 -2.002492,0.140625 z" id="rect3404-6-4" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" fill="#0000ff" fill-rule="evenodd"/>
- <path d="m 13.582247,5.3087127 2.018117,0.1605066 0,12.0612817 -2.002492,0.125 z" id="rect3404-6-8" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" fill="#ff00ff" fill-rule="evenodd"/>
- <path d="m 15.570685,5.4270948 c 1.358396,-0.1278255 1.809434,1.1809982 2.002492,2.8982904 l 0,6.5670128 c -0.204175,2.374062 -1.021926,2.754002 -2.002492,2.604793 z" id="rect3404-6-6" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" fill="#00ffff" fill-rule="evenodd"/>
- <path d="m 3.7337995,5.5140343 2.0024919,-0.21875 0,12.3445917 -2.0024919,-0.04687 z" id="rect3404-6-7" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" fill="#ff6600" fill-rule="evenodd"/>
- <g inkscape:groupmode="layer" id="layer1" inkscape:label="Layer 1">
-  <path inkscape:connector-curvature="0" d="m 17.236365,16.333886 c -0.07934,0.63471 -0.63471,1.110743 -1.269421,1.190082 -5.077688,0.396694 -7.6165306,0.396694 -12.6942178,0 -0.6347107,-0.07934 -1.1900827,-0.555372 -1.2694216,-1.190082 -0.3966942,-3.887605 -0.3966942,-5.791738 0,-9.6000033 0.079339,-0.555372 0.6347109,-1.1107441 1.2694216,-1.1900831 5.0776872,-0.396694 7.6165298,-0.396694 12.6942178,0 0.634711,0.07934 1.190082,0.5553721 1.269421,1.1900831 0.476033,3.8082653 0.476033,5.7123983 0,9.6000033 z" id="path45-2" opacity="0.3" fill="url(#linearGradient3831-3)" stroke="#000000" stroke-width="0.397"/>
-  <path inkscape:connector-curvature="0" d="m 17.236364,16.333884 c -0.07934,0.634711 -0.63471,1.110744 -1.269421,1.190083 -5.077686,0.396694 -7.6165299,0.396694 -12.6942159,0 -0.6347107,-0.07934 -1.1900826,-0.555372 -1.2694215,-1.190083 -0.3966942,-3.887603 -0.3966942,-5.791737 0,-9.600001 0.079339,-0.5553719 0.6347108,-1.1107439 1.2694215,-1.1900827 5.077686,-0.3966942 7.6165299,-0.3966942 12.6942159,0 0.634711,0.079339 1.190082,0.5553719 1.269421,1.1900827 0.476033,3.808264 0.476033,5.712398 0,9.600001 z" id="path45" fill="none" stroke="#000000" stroke-width="0.397"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/86-2.svg b/htdocs/public/symbols/svgicons/86-2.svg
deleted file mode 100755
index 81ba54f74c5864c72c0805abb3f10c50b1448b37..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/86-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1" stroke="#000000" stroke-width="2">
- <metadata id="metadata14"/>
- <path inkscape:connector-curvature="0" d="m 5.2476657,11.063511 3.1920126,5.401868 7.1206437,0 3.192012,-5.401868 0,-6.1384855 -13.5046683,0" id="path6" fill="#ffffff" stroke-width="0.491"/>
- <path inkscape:connector-curvature="0" d="M 0.33687708,8.1170381 4.0199685,1.9785523 8.9307571,4.9250255 5.2476657,11.063511 Z M 15.069243,4.9250255 19.980031,1.9785523 23.663123,8.1170381 18.752334,11.063511 Z m -6.6295647,11.5403535 7.1206437,0 0,5.647407 -7.1206437,0 z" id="path4" stroke-width="0.491"/>
- <circle cx="11.877" cy="10.818" r="1.719" id="circle8" stroke-width="0.491"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/87-1.svg b/htdocs/public/symbols/svgicons/87-1.svg
deleted file mode 100755
index c4f0d3a31806d19b5d363348f9f01d7a4313b946..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/87-1.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" height="24" width="24" version="1.1"><metadata id="metadata3412"/><g><g><g><g>
-
- <circle r="12" cy="12" cx="12" id="path3416" fill="#000080" fill-rule="evenodd"/>
-<text id="textoverlay"><tspan id="tspanoverlay" font-family="Sans-Serif" text-anchor="middle" text-align="center" word-spacing="0" letter-spacing="0" font-weight="bold" x="12" y="12" fill="#ffffff" font-size="11" dy="4.0" dx="-0.4">WX</tspan></text></g></g></g></g></svg>
diff --git a/htdocs/public/symbols/svgicons/87-2.svg b/htdocs/public/symbols/svgicons/87-2.svg
deleted file mode 100755
index b9982b7a96a37b54e4dc645d65e156540e1fd279..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/87-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="24" width="24" version="1.1">
- <metadata id="metadata3412"/>
- <circle r="11.52" cy="12" cx="12" id="path3416" fill="#008000" fill-rule="evenodd" stroke="#000000" stroke-width="0.96"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/88-1.svg b/htdocs/public/symbols/svgicons/88-1.svg
deleted file mode 100755
index 3b100285996f64d91a1dfa962338ecbba4655320..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/88-1.svg
+++ /dev/null
@@ -1,221 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="88-1.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="22.627417"
-     inkscape:cx="6.3336698"
-     inkscape:cy="19.236151"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     style="fill:#1a1a1a;stroke:#1a1a1a"
-     transform="matrix(-0.04229117,0,0,-0.03508931,28.159572,29.493315)"
-     id="g4241">
-    <path
-       style="fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 326.12263,515.52088 27.3184,11.99722 -1.97231,4.49106 -27.3184,-11.99722 z"
-       id="path4239"
-       inkscape:connector-curvature="0" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       inkscape:connector-curvature="0"
-       id="rect4236"
-       d="m 326.61151,514.77002 37.16036,-30.66177 0,4.41682 -37.16036,30.66177 z"
-       style="fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <rect
-       ry="6.0592961"
-       y="502.09976"
-       x="317.90591"
-       height="31.949015"
-       width="11.617825"
-       id="rect4232"
-       style="fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-  </g>
-  <g
-     style="fill:#1a1a1a;stroke:#1a1a1a"
-     id="g4271"
-     transform="matrix(0.04229117,0,0,-0.03508931,-6.1286271,29.420561)">
-    <path
-       inkscape:connector-curvature="0"
-       id="path4273"
-       d="m 326.12263,515.52088 27.3184,11.99722 -1.97231,4.49106 -27.3184,-11.99722 z"
-       style="fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <path
-       style="fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 326.61151,514.77002 37.16036,-30.66177 0,4.41682 -37.16036,30.66177 z"
-       id="path4275"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <rect
-       style="fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect4277"
-       width="11.617825"
-       height="31.949015"
-       x="317.90591"
-       y="502.09976"
-       ry="6.0592961" />
-  </g>
-  <rect
-     style="display:inline;fill:#4d4d4d;stroke:#4d4d4d;stroke-width:0.03676214;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="rect4203"
-     width="0.97268414"
-     height="0.17276153"
-     x="-12.10735"
-     y="-22.702787"
-     transform="scale(-1,-1)" />
-  <path
-     style="display:inline;fill:#1a1a1a;stroke:#1a1a1a;stroke-width:0.03676214;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="m 11.465088,3.3466272 c 0.474867,0.084361 0.949281,0.3976852 1.165821,0.7699635 0.09435,0.1622165 0.182284,0.4619006 0.283655,0.9667747 0.03525,0.175543 0.08708,0.401754 0.115167,0.5026916 l 0.05109,-0.4934377 0.15915,0 c 0.204818,0 0.225309,0.030887 0.308503,0.4650482 0.177261,0.9250644 0.186103,1.0841274 0.178538,3.2116134 l -0.0074,2.0648571 -0.141937,0.11038 c -0.179805,0.139822 -0.324288,0.162592 -0.503792,0.0794 l -0.137615,-0.06379 -0.0032,0.377627 c -0.0047,0.563096 -0.01948,0.680253 -0.158442,1.259653 -0.112009,0.467042 -0.151114,0.566912 -0.324967,0.829841 -0.248189,0.37535 -0.399348,0.570194 -0.442359,0.570194 -0.01839,0 -0.08192,0.05387 -0.141226,0.119688 -0.09802,0.108831 -0.110162,0.158783 -0.133684,0.550567 -0.0282,0.469505 -0.05738,0.917571 -0.08734,1.340511 -0.01049,0.149211 -0.02989,0.486733 -0.04295,0.750047 -0.01305,0.263316 -0.04133,0.730099 -0.06282,1.037301 -0.02149,0.307199 -0.04902,0.304645 -0.06114,0.506519 -0.01207,0.201875 -0.03462,0.548095 -0.04999,0.769379 -0.01569,0.225928 -0.01144,0.409848 0.0096,0.419472 0.02069,0.0095 0.123351,0.02598 0.228148,0.03676 0.1048,0.01079 0.23818,0.02556 0.2964,0.03282 0.05823,0.0073 0.305927,0.03751 0.550458,0.06724 0.24453,0.02972 0.468418,0.06852 0.49753,0.08622 0.0707,0.043 0.06935,0.357371 -0.0017,0.401833 -0.07462,0.04669 -0.323935,0.08583 -1.043574,0.163915 -0.336211,0.03647 -0.61496,0.06961 -0.619443,0.07366 -0.0083,0.0073 -0.03558,0.492315 -0.08846,1.563289 -0.02075,0.420025 -0.01529,0.566527 0.02105,0.566527 0.02697,0 0.04903,0.02873 0.04903,0.06383 0,0.0351 -0.02143,0.06025 -0.04763,0.05585 -0.007,0.08796 -0.0023,0.185628 -0.0031,0.18995 -0.04582,0.009 -0.128779,0.04717 -0.144544,0.08478 -0.01577,0.0376 -0.05716,0.101195 -0.09195,0.141339 l -0.06329,0.07297 -0.08448,-0.104705 c -0.09087,-0.112629 -0.09976,-0.197038 -0.199265,-1.890377 -0.02469,-0.420183 -0.05208,-0.769384 -0.06086,-0.776004 -0.0088,-0.0066 -0.338229,-0.04634 -0.7321044,-0.08829 -0.953844,-0.101556 -0.9545792,-0.101804 -0.9545792,-0.318673 0,-0.271581 -0.076965,-0.242873 0.9015809,-0.336271 0.3798967,-0.03625 0.7077807,-0.07387 0.7286307,-0.08358 0.02085,-0.0097 0.02733,-0.156203 0.01438,-0.325531 -0.02481,-0.324748 -0.05129,-0.374508 -0.08951,-1.165479 -0.03719,-0.769747 -0.104025,-1.899116 -0.12466,-2.106516 -0.01049,-0.105324 -0.03001,-0.464392 -0.04341,-0.797924 -0.03727,-0.928033 -0.03552,-0.920577 -0.252036,-1.071017 C 9.8566166,13.872005 9.4669609,13.300175 9.3422649,12.944183 9.213914,12.577755 9.1257546,12.154533 9.1256046,11.904067 L 9.1254939,11.677833 8.7861528,11.479562 C 8.5995156,11.370518 8.4298354,11.289202 8.409086,11.298867 8.3871879,11.309087 8.3689249,10.475332 8.3655572,9.311828 8.3600856,7.4218728 8.3641016,7.3042885 8.4356381,7.256065 8.5506504,7.1785417 8.8109473,7.1585071 8.9580716,7.2158544 l 0.1250703,0.048756 0,-1.3371496 c 0,-1.411183 0.022808,-0.9606821 0.2134346,-1.4422411 C 9.3728197,4.2926123 9.5835897,3.9844966 9.7282371,3.8541883 9.8814172,3.7161965 10.41948,3.4180375 10.565142,3.3904327 c 0.01168,-0.00221 0.07481,-0.020762 0.140372,-0.041234 0.136741,-0.042701 0.526282,-0.044018 0.759588,-0.00257 z"
-     id="path3357"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="ccsccssccccccssscsccscscsccccsccssccccccsccscccccscsccccscccssscccc" />
-  <path
-     style="fill:#999999;fill-opacity:1;stroke:#333333;stroke-width:0.04528588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="m 11.254222,4.5545287 -0.405992,0 c -0.07049,0 -0.127221,-0.052935 -0.127221,-0.1186868 l 0,-0.8447472 c 0,-0.065753 0.05675,-0.1186866 0.127221,-0.1186866 l 0.405992,0 c 0.07049,0 0.12722,0.052934 0.12722,0.1186866 l 0,0.8447472 c 0,0.065752 -0.05674,0.1186868 -0.12722,0.1186868 z"
-     id="rect4280"
-     inkscape:connector-curvature="0" />
-  <path
-     id="path4283"
-     d="m 11.923185,4.6831344 -0.325896,-0.07595 c -0.06503,-0.015148 -0.113861,-0.06659 -0.107625,-0.1340487 l 0.07133,-0.7722527 c 0.0062,-0.067462 0.07037,-0.1352479 0.132003,-0.1093034 l 0.341281,0.1436735 c 0.06163,0.025948 0.115907,0.066816 0.107637,0.1340486 l -0.08671,0.7045278 c -0.0083,0.067233 -0.06697,0.1244559 -0.132001,0.1093021 z"
-     style="fill:#999999;fill-opacity:1;stroke:#333333;stroke-width:0.04528588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="sssssssss" />
-  <path
-     sodipodi:nodetypes="sssssssss"
-     inkscape:connector-curvature="0"
-     style="fill:#999999;fill-opacity:1;stroke:#333333;stroke-width:0.04528588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="m 10.211293,4.6908172 0.325894,-0.075949 C 10.602217,4.59972 10.651048,4.54828 10.644824,4.4808196 l -0.07133,-0.7722519 c -0.0062,-0.067462 -0.07037,-0.1352491 -0.132001,-0.109302 l -0.341278,0.1436728 c -0.06163,0.025948 -0.115907,0.066816 -0.1076376,0.1340486 l 0.086711,0.704528 c 0.0083,0.067232 0.06697,0.1244558 0.132001,0.109302 z"
-     id="path4285" />
-  <path
-     id="path4287"
-     d="M 9.4521724,5.1325653 9.8948551,4.8491864 C 9.9499179,4.8139258 10.016948,4.7815167 10.00248,4.7151376 L 9.8894364,4.1964102 c -0.014461,-0.06638 -0.09503,-0.1616147 -0.132001,-0.1093037 l -0.4705695,0.66609 c -0.03696,0.052312 -0.061393,0.096646 -0.028383,0.1570972 l 0.061691,0.1129696 c 0.033015,0.060449 0.076923,0.1445611 0.1319997,0.109302 z"
-     style="fill:#999999;fill-opacity:1;stroke:#333333;stroke-width:0.04528588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="sssssssss" />
-  <path
-     sodipodi:nodetypes="sssssssss"
-     inkscape:connector-curvature="0"
-     style="fill:#999999;fill-opacity:1;stroke:#333333;stroke-width:0.04528588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="M 12.721004,5.1325653 12.278321,4.8491864 c -0.05506,-0.035261 -0.122093,-0.06767 -0.107625,-0.1340488 l 0.113042,-0.5187275 c 0.01446,-0.066381 0.09503,-0.1616147 0.132001,-0.1093036 l 0.470583,0.6660893 c 0.03695,0.052312 0.06141,0.096646 0.02839,0.1570971 l -0.06167,0.1129696 c -0.03302,0.060449 -0.07692,0.144561 -0.132,0.109302 z"
-     id="path4289" />
-  <rect
-     style="display:inline;fill:#4d4d4d;stroke:#4d4d4d;stroke-width:0.03676214;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="rect4205"
-     width="0.21801542"
-     height="0.2991724"
-     x="-12.033846"
-     y="-22.765993"
-     ry="0.04213696"
-     transform="scale(-1,-1)" />
-  <rect
-     style="display:inline;fill:#4d4d4d;stroke:#4d4d4d;stroke-width:0.44347614;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="rect4207"
-     width="0.11262723"
-     height="1.1137763"
-     x="-11.939633"
-     y="-23.778214"
-     ry="0.014238616"
-     transform="scale(-1,-1)" />
-  <rect
-     ry="0.014238616"
-     y="-22.483994"
-     x="-11.939633"
-     height="1.1137763"
-     width="0.11262723"
-     id="rect4209"
-     style="display:inline;fill:#4d4d4d;stroke:#4d4d4d;stroke-width:0.44347614;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     transform="scale(-1,-1)" />
-  <g
-     id="g4730"
-     style="fill:#4d4d4d;stroke:#4d4d4d">
-    <path
-       inkscape:transform-center-y="-177.95367"
-       inkscape:transform-center-x="75.786419"
-       sodipodi:nodetypes="ssssscscss"
-       inkscape:connector-curvature="0"
-       id="rect4213"
-       d="M 15.335599,19.308888 14.86082,19.45435 c -0.05239,0.01605 -0.110055,-0.0073 -0.128038,-0.0529 l -3.695104,-9.35558 c -0.01798,-0.04552 0.0087,-0.094791 0.06111,-0.1108426 l 0.150504,0.065081 0.689638,1.714982 c 0.03751,0.0933 0.268397,-0.03571 0.47442,-0.07057 l 2.98336,7.553527 c 0.01798,0.04552 -0.0087,0.09479 -0.06111,0.110842 z"
-       style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.44347614;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <path
-       style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.41295668;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 3.2522389,16.066201 2.9944015,15.714178 c -0.028453,-0.03885 -0.020388,-0.09344 0.018761,-0.121475 L 11.058274,9.8312911 c 0.03915,-0.028036 0.09302,-0.020085 0.121475,0.018761 L 11.15491,9.9936786 9.6832178,11.06 c -0.08006,0.05801 0.1011744,0.212406 0.1859704,0.373304 l -6.4954755,4.651657 c -0.039147,0.02804 -0.093024,0.02009 -0.1214758,-0.01876 z"
-       id="path4216"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ssssscscss"
-       inkscape:transform-center-x="-154.08386"
-       inkscape:transform-center-y="-113.34617" />
-    <path
-       inkscape:transform-center-y="108.716"
-       inkscape:transform-center-x="-157.12942"
-       sodipodi:nodetypes="ssssscscss"
-       inkscape:connector-curvature="0"
-       id="path4218"
-       d="M 2.7291705,4.5029931 2.9729637,4.1411019 c 0.026902,-0.039935 0.080999,-0.050851 0.1206436,-0.023523 l 8.1472117,5.6161043 c 0.03964,0.027328 0.05042,0.080709 0.02353,0.1206439 L 11.120804,9.8796414 9.6187754,8.8564858 C 9.5370656,8.8008265 9.4532362,9.0236647 9.330603,9.1579763 L 2.7526939,4.6236373 C 2.7130494,4.596309 2.7022679,4.5429274 2.7291705,4.5029931 Z"
-       style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.41295668;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <path
-       style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.41295668;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 13.901821,0.20974224 0.417462,0.12698873 c 0.04607,0.0140127 0.07236,0.0625329 0.05786,0.10844682 l -2.98089,9.43567551 c -0.0145,0.045914 -0.06238,0.071871 -0.108446,0.057858 l -0.06628,-0.1298155 0.537864,-1.7359792 c 0.02926,-0.094437 -0.208364,-0.1092554 -0.372726,-0.1871255 l 2.406717,-7.61819076 c 0.0145,-0.0459145 0.06238,-0.0718717 0.108448,-0.0578584 z"
-       id="path4220"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ssssscscss"
-       inkscape:transform-center-x="58.885611"
-       inkscape:transform-center-y="180.05033" />
-    <path
-       inkscape:transform-center-y="6.6577419"
-       inkscape:transform-center-x="187.21113"
-       sodipodi:nodetypes="ssssscscss"
-       inkscape:connector-curvature="0"
-       id="path4222"
-       d="m 21.276474,9.4810214 0.0075,0.4362837 c 8.34e-4,0.048144 -0.03725,0.088089 -0.0854,0.088408 l -9.895119,0.06563 c -0.04815,3.2e-4 -0.08758,-0.03725 -0.0884,-0.085395 l 0.103136,-0.1029966 1.817259,-0.022124 c 0.09886,-0.00121 0.03987,-0.2318665 0.06342,-0.4122111 l 7.989136,-0.052988 c 0.04815,-3.198e-4 0.08758,0.037252 0.0884,0.085395 z"
-       style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.41295668;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-  </g>
-  <ellipse
-     style="fill:#4d4d4d;stroke:#4d4d4d;stroke-width:0.06478313;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="path4211-2"
-     cx="-11.171059"
-     cy="-9.9016705"
-     transform="scale(-1,-1)"
-     rx="0.59183103"
-     ry="0.51234722" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/88-2.svg b/htdocs/public/symbols/svgicons/88-2.svg
deleted file mode 100755
index 848ecbc42232a246bde1148ab3b70566056de8de..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/88-2.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" version="1.1" width="24" height="24">
- <metadata id="metadata30"/>
- <defs id="defs4">
-  <linearGradient id="linearGradient1697-1-3-6-5-5">
-   <stop stop-color="#69db0e" id="stop7"/>
-   <stop offset="1" stop-color="#397607" id="stop9"/>
-  </linearGradient>
-  <linearGradient gradientTransform="matrix(0.56414,0,0,0.23364,101.88495,314.1874)" gradientUnits="userSpaceOnUse" id="linearGradient3890" x1="213.83" x2="214.59" y1="183.48" y2="463.47">
-   <stop stop-color="#fff" stop-opacity="0.691" id="stop12"/>
-   <stop offset="1" stop-color="#fff" stop-opacity="0" id="stop14"/>
-  </linearGradient>
-  <linearGradient gradientUnits="userSpaceOnUse" id="linearGradient3886" x2="0" xlink:href="#linearGradient1697-1-3-6-5-5" y1="485.97" y2="352.9"/>
-  <linearGradient gradientUnits="userSpaceOnUse" id="linearGradient3888" x2="0" xlink:href="#linearGradient1697-1-3-6-5-5" y1="363.61" y2="481.97"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient3890" id="linearGradient3004" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.56414,0,0,0.23364,101.88495,314.1874)" x1="213.83" y1="183.48" x2="214.59" y2="463.47"/>
-  <linearGradient inkscape:collect="always" xlink:href="#linearGradient3890" id="linearGradient3007" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.09716758,0,0,0.0402422,-8.9028609,-6.5743117)" x1="213.83" y1="183.48" x2="214.59" y2="463.47"/>
- </defs>
- <path inkscape:connector-curvature="0" id="path20" d="m 23.516371,12.000002 c 0,6.360314 -5.156055,11.51637 -11.516374,11.51637 -6.3603182,0 -11.51636845,-5.156056 -11.51636845,-11.51637 0,-6.3603134 5.15605675,-11.51637357 11.51636845,-11.51637357 6.360313,0 11.516374,5.15605517 11.516374,11.51637357 z" fill="#000080" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0.967"/>
- <g transform="matrix(0.04520444,0,0,0.04520444,3.0214508,-10.289896)" id="g24" stroke="#000000" stroke-width="7.62">
-  <path d="m 41.6875,328.15625 0,231.09375 71.71875,0 0,-93.8125 6.3125,0 c 6.5152,10e-5 13.95135,0.18768 17.46875,5.375 l 67.5157,99.56963 -60.84375,87.625 69.5,0 36.4375,-53.90625 30.875,53.90625 74.875,0 -61.15625,-87.625 57.0625,-79.78125 -70.78125,0 -30.875,46.6875 c -26.84406,-34.64846 -28.95636,-45.20921 -55.3907,-80.03838 10.61345,-2.41686 18.96735,-5.47814 25.0625,-9.15625 9.56258,-5.77958 17.09783,-13.29356 22.5625,-22.59375 5.46467,-9.30019 8.18727,-20.36691 8.1875,-33.1875 -2.3e-4,-14.7118 -3.57316,-27.19146 -10.71875,-37.4375 -7.14559,-10.24604 -16.55446,-17.2792 -28.21875,-21.0625 -11.66429,-3.7833 -28.52595,-5.65602 -50.59375,-5.65625 l -119,0 z m 71.71875,46.65625 31.375,0 c 13.03047,1.8e-4 21.896,2.00693 26.625,6 4.729,3.99307 7.09359,9.69535 7.09375,17.15625 -1.6e-4,5.04427 -1.50522,9.51824 -4.5,13.40625 -2.9951,3.88831 -6.86505,6.30438 -11.59375,7.25 -9.35275,2.10185 -15.64872,3.15639 -18.90625,3.15625 l -30.09375,0 0,-46.96875 z" id="path26" inkscape:connector-curvature="0" fill="#ffffff"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/89-1.svg b/htdocs/public/symbols/svgicons/89-1.svg
deleted file mode 100755
index 6ad5e26c2d05f81caba28c6640875043a1281d70..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/89-1.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" viewBox="0 0 24.000001 24.000001" version="1.1">
- <metadata id="metadata7399"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <path inkscape:connector-curvature="0" d="m 22.936001,1052.3622 c -0.473761,0 -0.935763,-0.1113 -1.345204,-0.298 -0.417842,-0.1985 -0.892324,-0.3137 -1.386966,-0.3137 -0.491761,0 -0.965283,0.1149 -1.383845,0.3137 -0.414961,0.1867 -0.871923,0.298 -1.350965,0.298 -0.473762,0 -0.937203,-0.1113 -1.345205,-0.298 -0.420001,-0.1985 -0.894243,-0.3137 -1.389125,-0.3137 -0.489602,0 -0.964083,0.1149 -1.383365,0.3137 -0.413522,0.1867 -0.872163,0.298 -1.350965,0.298 -0.479762,0 -0.936484,-0.1113 -1.345685,-0.298 -0.420001,-0.1985 -0.894723,-0.3137 -1.387445,-0.3137 -0.494642,0 -0.969364,0.1149 -1.386965,0.3137 -0.410642,0.1867 -0.869523,0.298 -1.349285,0.298 -0.475922,0 -0.936004,-0.1113 -1.347125,-0.298 -0.420722,-0.1985 -0.893763,-0.3137 -1.387445,-0.3137 -0.492002,0 -0.965524,0.1149 -1.385766,0.3137 -0.411601,0.1867 -0.867603,0.298 -1.346645,0.298 v -2.0438 c 0.479042,0 0.935044,-0.1099 1.346645,-0.2981 0.420242,-0.1922 0.894004,-0.3062 1.385766,-0.3062 0.493682,0 0.966723,0.1147 1.387445,0.3062 0.411121,0.1882 0.871203,0.2981 1.347125,0.2981 0.479042,0 0.938643,-0.1099 1.349285,-0.2981 0.417841,-0.1922 0.892323,-0.3062 1.386965,-0.3062 0.492962,0 0.967444,0.1147 1.387445,0.3062 0.409201,0.1882 0.865923,0.2981 1.345685,0.2981 0.478802,0 0.937203,-0.1099 1.350725,-0.2981 0.419281,-0.1922 0.894003,-0.3062 1.383365,-0.3062 0.494882,0 0.969124,0.1147 1.389125,0.3062 0.408002,0.1882 0.871683,0.2981 1.345205,0.2981 0.479042,0 0.936004,-0.1099 1.350965,-0.2981 0.418322,-0.1922 0.892084,-0.3062 1.383845,-0.3062 0.494642,0 0.969124,0.1147 1.386965,0.3062 0.409442,0.1882 0.871444,0.2981 1.345205,0.2981 v 2.0438 h 2.4e-4 z" id="path3" fill="#333333"/>
-  <path inkscape:connector-curvature="0" d="m 15.339493,1032.0001 c 3.664814,1.7227 8.01651,6.3156 7.445308,11.8267 h -7.445308 v -11.8267 l 0,0 z" id="path5" fill="#808080"/>
-  <path inkscape:connector-curvature="0" d="m 21.211115,1044.939 -3.398653,0 -13.168608,0 c -0.979148,0 -1.851739,2.6193 -2.55001,3.4896 1.279342,-0.9148 2.921291,-0.3458 3.090252,-0.2635 0.411121,0.181 0.871203,0.2926 1.347125,0.2926 0.479762,0 0.939363,-0.1116 1.349285,-0.2926 0.417841,-0.1975 0.892323,-0.3137 1.386965,-0.3137 0.492962,0 0.967444,0.1159 1.387445,0.3137 0.409681,0.181 0.866643,0.2926 1.345685,0.2926 0.478802,0 0.937203,-0.1116 1.350725,-0.2926 0.420002,-0.1975 0.894003,-0.3137 1.383365,-0.3137 0.494882,0 0.969604,0.1159 1.389125,0.3137 0.408002,0.181 0.871683,0.2926 1.345205,0.2926 0.0924,0 0.180241,-0.023 0.266401,-0.033 0.01056,0 0.01056,0.01 0.02136,0.01 0.06048,0 0.104641,-0.027 0.164401,-0.027 0.10896,-0.015 0.217441,-0.028 0.327361,-0.054 0.979684,-0.2049 1.612086,-0.976 1.612086,-0.976 l 1.905127,-2.438 -0.554162,0 0,0 -4.8e-4,0 z" id="path7" sodipodi:nodetypes="cccccscscscscscscccccccc" fill="#165016"/>
-  <path inkscape:connector-curvature="0" d="m 14.199249,1028.3785 c -0.03048,-0.022 -0.07056,-0.025 -0.10224,0.011 -2.4e-4,0 -7.2e-4,0 -0.0012,0 -4.8e-4,0 -9.6e-4,0 -0.0014,0 -4.151295,5.1241 -8.302831,10.2478 -12.454126,15.3721 -0.04704,0.058 -0.02112,0.1529 0.06336,0.1529 4.151295,0 8.302831,0 12.454366,0 0.04896,0 0.08976,-0.041 0.08976,-0.09 0,-5.1241 0,-10.2481 0,-15.3719 2.4e-4,-0.039 -0.02112,-0.064 -0.04848,-0.077 z" id="path9" fill="#808080"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/89-2.svg b/htdocs/public/symbols/svgicons/89-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/89-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/90-1.svg b/htdocs/public/symbols/svgicons/90-1.svg
deleted file mode 100755
index 907b537d2b22e132a938a791e6fd6eb7e3c3e652..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/90-1.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" height="24" width="24" version="1.1">
- <metadata id="metadata200"/>
- <g id="g4353" transform="matrix(0.11470234,0,0,0.11470234,1.3941528e-4,2.2500365)">
-  <g id="g4" fill="#666666">
-   <path id="path6" d="m 108.812,10.5291 0,146.377 c 31.3021,-18.1855 64.5445,-16.3965 99.2748,0.44656 l 0,-145.183 c -34.432,-16.3981 -67.376,-15.5036 -99.275,-1.6409" inkscape:connector-curvature="0"/>
-   <path id="path8" d="m 87.3481,20.8139 0,18.4837 18.4837,-9.6884 0,-17.7389 -18.4837,8.94367" inkscape:connector-curvature="0"/>
-   <path id="path10" d="m 87.3481,41.9797 0,18.4837 18.4837,-9.6884 0,-17.8873 -18.4837,9.09206" inkscape:connector-curvature="0"/>
-   <path id="path12" d="m 87.3481,62.8487 0,18.4837 18.4837,-9.54 0,-17.8873 -18.4837,8.94367" inkscape:connector-curvature="0"/>
-   <path id="path14" d="m 87.3481,84.0159 0,18.4837 18.4837,-9.68839 0,-17.7403 -18.4837,8.94506" inkscape:connector-curvature="0"/>
-   <path id="path16" d="m 87.3481,104.884 0,18.3353 18.4837,-9.5414 0,-17.8859 -18.4837,9.09205" inkscape:connector-curvature="0"/>
-   <path id="path18" d="m 87.3481,126.347 0,18.4823 18.4837,-9.53723 0,-17.8873 -18.4837,8.94228" inkscape:connector-curvature="0"/>
-   <path id="path20" d="m 87.3481,147.515 0,18.4837 18.4837,-9.68839 0,-17.7403 -18.4837,8.94505" inkscape:connector-curvature="0"/>
-   <path id="path22" d="m 66.4819,27.2238 17.1398,-8.64689 0,16.696 -17.1398,8.6455 0,-16.6947" inkscape:connector-curvature="0"/>
-   <path id="path24" d="m 66.4819,48.5394 17.1398,-8.6455 0,16.6947 -17.1398,8.6455 0,-16.6947" inkscape:connector-curvature="0"/>
-   <path id="path26" d="m 66.4819,68.8107 17.1398,-8.6455 0,16.696 -17.1398,8.64411 0,-16.6947" inkscape:connector-curvature="0"/>
-   <path id="path28" d="m 66.4819,89.9779 17.1398,-8.6455 0,16.6947 -17.1398,8.79527 0,-16.8444" inkscape:connector-curvature="0"/>
-   <path id="path30" d="m 66.4819,111.293 17.1398,-8.6455 0,16.6947 -17.1398,8.79527 0,-16.8444" inkscape:connector-curvature="0"/>
-   <path id="path32" d="m 66.4819,131.716 17.1398,-8.64827 0,16.696 -17.1398,8.79389 0,-16.8417" inkscape:connector-curvature="0"/>
-   <path id="path34" d="m 66.4819,152.88 17.1398,-8.64411 0,16.6947 -17.1398,8.64134 0,-16.6919" inkscape:connector-curvature="0"/>
-   <path id="path36" d="m 47.9982,26.4791 14.6061,-6.85788 0,14.6075 -14.6061,7.00765 0,-14.7573" inkscape:connector-curvature="0"/>
-   <path id="path38" d="m 47.9982,47.9417 14.6061,-7.00349 0,14.7559 -14.6061,7.00626 0,-14.7586" inkscape:connector-curvature="0"/>
-   <path id="path40" d="m 47.9982,68.2143 14.6061,-6.85649 0,14.6089 -14.6061,7.00488 0,-14.7573" inkscape:connector-curvature="0"/>
-   <path id="path42" d="m 47.9982,89.3815 14.6061,-6.85649 0,14.6075 -14.6061,7.00627 0,-14.7573" inkscape:connector-curvature="0"/>
-   <path id="path44" d="m 47.9982,110.847 14.6061,-7.00765 0,14.7586 -14.6061,7.00488 0,-14.7559" inkscape:connector-curvature="0"/>
-   <path id="path46" d="m 47.9982,131.12 14.6061,-7.00766 0,14.7586 -14.6061,6.8551 0,-14.6061" inkscape:connector-curvature="0"/>
-   <path id="path48" d="m 47.9982,152.136 14.6061,-6.85649 0,14.6075 -14.6061,7.00627 0,-14.7573" inkscape:connector-curvature="0"/>
-   <path id="path50" d="m 30.8542,37.8067 11.9254,-5.36565 0,-10.8811 -11.9254,5.66381 0,10.5829" inkscape:connector-curvature="0"/>
-   <path id="path52" d="m 30.8542,59.1223 11.9254,-5.36565 0,-10.8811 -11.9254,5.66381 0,10.5829" inkscape:connector-curvature="0"/>
-   <path id="path54" d="m 30.8542,79.395 11.9254,-5.36565 0,-11.0322 -11.9254,5.81359 0,10.5843" inkscape:connector-curvature="0"/>
-   <path id="path56" d="m 30.8542,100.561 11.9254,-5.36704 0,-10.8825 -11.9254,5.66659 0,10.5829" inkscape:connector-curvature="0"/>
-   <path id="path58" d="m 30.8542,122.026 11.9254,-5.51542 0,-10.8811 -11.9254,5.66381 0,10.7327" inkscape:connector-curvature="0"/>
-   <path id="path60" d="m 30.8542,142.447 11.9254,-5.51543 0,-10.8811 -11.9254,5.6652 0,10.7313" inkscape:connector-curvature="0"/>
-   <path id="path62" d="m 30.8542,163.463 11.9254,-5.36565 0,-10.8811 -11.9254,5.66382 0,10.5829" inkscape:connector-curvature="0"/>
-   <path id="path64" d="m 14.7559,20.2175 8.64411,-5.21587 0,9.09206 -8.64411,4.9177 0,-8.79389" inkscape:connector-curvature="0"/>
-   <path id="path66" d="m 14.7559,41.5331 8.64411,-5.21587 0,9.24045 -8.64411,4.7707 0,-8.79528" inkscape:connector-curvature="0"/>
-   <path id="path68" d="m 14.7559,61.8058 8.64411,-5.21726 0,9.24184 -8.64411,4.9177 0,-8.94228" inkscape:connector-curvature="0"/>
-   <path id="path70" d="m 14.7559,82.9716 8.64411,-5.21726 0,9.24184 -8.64411,4.91909 0,-8.94367" inkscape:connector-curvature="0"/>
-   <path id="path72" d="m 14.7559,104.434 8.64411,-5.21448 0,9.09206 -8.64411,4.91909 0,-8.79667" inkscape:connector-curvature="0"/>
-   <path id="path74" d="m 14.7559,124.708 8.64411,-5.21587 0,9.24045 -8.64411,4.91909 0,-8.94367" inkscape:connector-curvature="0"/>
-   <path id="path76" d="m 14.7559,145.875 8.64411,-5.21726 0,9.24045 -8.64411,4.77209 0,-8.79528" inkscape:connector-curvature="0"/>
-   <path id="path78" d="M 3.12992e-6,15.2985 6.70671,11.8702 l 0,6.55971 L 0,21.41021 0,15.29845" inkscape:connector-curvature="0"/>
-   <path id="path80" d="M 3.12992e-6,36.4656 6.70671,33.1858 l 0,6.55832 L 0,42.7258 0,36.46565" inkscape:connector-curvature="0"/>
-   <path id="path82" d="M 3.12992e-6,56.7369 6.70671,53.6083 l 0,6.55693 L 0,62.99714 0,56.73699" inkscape:connector-curvature="0"/>
-   <path id="path84" d="M 3.12992e-6,77.9041 6.70671,74.6243 l 0,6.55693 L 0,84.1643 0,77.90415" inkscape:connector-curvature="0"/>
-   <path id="path86" d="M 3.12992e-6,99.3695 6.70671,96.0896 l 0,6.40992 L 0,105.47982 0,99.36945" inkscape:connector-curvature="0"/>
-   <path id="path88" d="M 3.12992e-6,119.791 6.70671,116.511 l 0,6.40993 L 0,125.90261 0,119.79085" inkscape:connector-curvature="0"/>
-   <path id="path90" d="M 3.12992e-6,140.956 6.70671,137.528 l 0,6.55832 L 0,147.068 0,140.95624" inkscape:connector-curvature="0"/>
-  </g>
-  <path d="m 1.14772,141.389 6.70671,-3.42824 0,6.55832 -6.70671,2.98168 0,-6.11176" id="path94" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 1.14772,15.7315 6.70671,-3.42824 0,6.55971 -6.70671,2.9803 0,-6.11176" id="path96" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 1.14772,78.3372 6.70671,-3.27985 0,6.55693 -6.70671,2.98307 0,-6.26015" id="path98" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 109.96,10.9622 0,146.377 c 31.3021,-18.1855 64.5445,-16.3965 99.2748,0.44656 l 0,-145.183 c -34.433,-16.3981 -67.377,-15.5036 -99.275,-1.6408" id="path100" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 15.9036,146.308 8.64411,-5.21725 0,9.24044 -8.64411,4.77209 0,-8.79528" id="path102" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 15.9036,20.6506 8.64411,-5.21587 0,9.09206 -8.64411,4.9177 0,-8.79389" id="path104" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 15.9036,83.4047 8.64411,-5.21726 0,9.24184 -8.64411,4.91908 0,-8.94366" id="path106" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 32.0019,100.994 11.9254,-5.36704 0,-10.8825 -11.9254,5.66658 0,10.5829" id="path112" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 32.0019,163.896 11.9254,-5.36565 0,-10.8811 -11.9254,5.66382 0,10.5829" id="path114" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 32.0019,38.2398 11.9254,-5.36565 0,-10.8811 -11.9254,5.66381 0,10.5829" id="path116" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 49.1459,152.569 14.6061,-6.85649 0,14.6075 -14.6061,7.00627 0,-14.7573" id="path118" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 49.1459,26.9121 14.6061,-6.85788 0,14.6075 -14.6061,7.00765 0,-14.7573" id="path120" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 49.1459,89.8146 14.6061,-6.85648 0,14.6075 -14.6061,7.00627 0,-14.7573" id="path122" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 67.6296,153.313 17.1398,-8.64411 0,16.6947 -17.1398,8.64134 0,-16.6919" id="path124" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 67.6296,27.6569 17.1398,-8.64689 0,16.696 -17.1398,8.6455 0,-16.6947" id="path126" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 67.6296,90.4109 17.1398,-8.6455 0,16.6947 -17.1398,8.79527 0,-16.8444" id="path128" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 88.4958,105.317 0,18.3353 18.4837,-9.54139 0,-17.886 -18.4837,9.09206" id="path130" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 88.4958,126.781 0,18.4823 18.4837,-9.53723 0,-17.8873 -18.4837,8.94229" id="path132" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 88.4958,147.948 0,18.4837 18.4837,-9.6884 0,-17.7403 -18.4837,8.94505" id="path134" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 88.4958,21.2469 0,18.4837 18.4837,-9.6884 0,-17.7389 -18.4837,8.94367" id="path136" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 88.4958,42.4127 0,18.4837 18.4837,-9.6884 0,-17.8873 -18.4837,9.09206" id="path138" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 88.4958,63.2818 0,18.4837 18.4837,-9.54 0,-17.8873 -18.4837,8.94367" id="path140" inkscape:connector-curvature="0" fill="#231f20"/>
-  <path d="m 88.4958,84.4489 0,18.4837 18.4837,-9.68839 0,-17.7403 -18.4837,8.94506" id="path142" inkscape:connector-curvature="0" fill="#231f20"/>
-  <g id="g144" fill="#0000fe">
-   <path id="path146" d="m 1.14772,120.224 6.70671,-3.27985 0,6.40993 -6.70671,2.98168 0,-6.11176" inkscape:connector-curvature="0"/>
-   <path id="path148" d="m 1.14772,99.8025 6.70671,-3.27985 0,6.40992 -6.70671,2.9803 0,-6.11037" inkscape:connector-curvature="0"/>
-   <path id="path150" d="m 109.811,91.9018 c 12.2221,-5.96337 23.253,-8.6455 33.2409,-9.39022 l 0,44.1192 c -11.7756,2.08856 -23.1046,5.22003 -33.2409,9.98933 l 0,-44.7183" inkscape:connector-curvature="0"/>
-   <path id="path152" d="m 15.9036,104.867 8.64411,-5.21448 0,9.09206 -8.64411,4.91909 0,-8.79667" inkscape:connector-curvature="0"/>
-   <path id="path154" d="m 15.9036,125.141 8.64411,-5.21587 0,9.24045 -8.64411,4.91909 0,-8.94367" inkscape:connector-curvature="0"/>
-   <path id="path156" d="m 32.0019,122.459 11.9254,-5.51542 0,-10.8811 -11.9254,5.66381 0,10.7327" inkscape:connector-curvature="0"/>
-   <path id="path158" d="m 32.0019,142.88 11.9254,-5.51543 0,-10.8811 -11.9254,5.6652 0,10.7313" inkscape:connector-curvature="0"/>
-   <path id="path160" d="m 49.1459,111.28 14.6061,-7.00765 0,14.7586 -14.6061,7.00488 0,-14.7559" inkscape:connector-curvature="0"/>
-   <path id="path162" d="m 49.1459,131.553 14.6061,-7.00766 0,14.7586 -14.6061,6.8551 0,-14.6061" inkscape:connector-curvature="0"/>
-   <path id="path164" d="m 67.6296,111.726 17.1398,-8.64549 0,16.6947 -17.1398,8.79527 0,-16.8444" inkscape:connector-curvature="0"/>
-   <path id="path166" d="m 67.6296,132.149 17.1398,-8.64827 0,16.696 -17.1398,8.79389 0,-16.8417" inkscape:connector-curvature="0"/>
-  </g>
-  <path id="path168" d="m 156.019,19.7575 0,47.2507 13.1194,0 c 5.81221,0 15.3522,2.98168 19.675,4.62092 l 0,-46.6557 c -10.882,-4.6196 -21.909,-6.2602 -32.794,-5.2159" inkscape:connector-curvature="0" fill="#007f00"/>
-  <g id="g170" fill="#fe0000">
-   <path id="path172" d="m 1.14772,36.8987 6.70671,-3.27985 0,6.55832 -6.70671,2.98168 0,-6.26015" inkscape:connector-curvature="0"/>
-   <path id="path174" d="m 1.14772,57.17 6.70671,-3.12869 0,6.55693 -6.70671,2.83191 0,-6.26015" inkscape:connector-curvature="0"/>
-   <path id="path176" d="m 109.811,31.3833 c 13.1166,-5.81359 23.8493,-8.94367 33.2409,-9.54 l 0,46.2092 c -11.1792,0.893119 -22.2101,4.32275 -33.2409,9.39023 l 0,-46.0594" inkscape:connector-curvature="0"/>
-   <path id="path178" d="m 15.9036,41.9662 8.64411,-5.21587 0,9.24045 -8.64411,4.7707 0,-8.79528" inkscape:connector-curvature="0"/>
-   <path id="path180" d="m 15.9036,62.2389 8.64411,-5.21726 0,9.24184 -8.64411,4.9177 0,-8.94228" inkscape:connector-curvature="0"/>
-   <path id="path182" d="m 32.0019,59.5553 11.9254,-5.36565 0,-10.8811 -11.9254,5.66381 0,10.5829" inkscape:connector-curvature="0"/>
-   <path id="path184" d="m 32.0019,79.828 11.9254,-5.36565 0,-11.0322 -11.9254,5.81359 0,10.5843" inkscape:connector-curvature="0"/>
-   <path id="path186" d="m 49.1459,48.3747 14.6061,-7.00349 0,14.7559 -14.6061,7.00627 0,-14.7586" inkscape:connector-curvature="0"/>
-   <path id="path188" d="m 49.1459,68.6474 14.6061,-6.85649 0,14.6089 -14.6061,7.00488 0,-14.7573" inkscape:connector-curvature="0"/>
-   <path id="path190" d="m 67.6296,48.9724 17.1398,-8.6455 0,16.6947 -17.1398,8.6455 0,-16.6947" inkscape:connector-curvature="0"/>
-   <path id="path192" d="m 67.6296,69.2437 17.1398,-8.6455 0,16.696 -17.1398,8.64411 0,-16.6947" inkscape:connector-curvature="0"/>
-  </g>
-  <path id="path194" d="m 156.019,80.5728 0,45.4631 c 12.6715,-0.59634 22.3599,1.34245 32.7944,4.77069 l 0,-45.911 c -10.882,-4.3232 -21.909,-5.6643 -32.794,-4.3232" inkscape:connector-curvature="0" fill="#fefe00"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/90-2.svg b/htdocs/public/symbols/svgicons/90-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/90-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/91-1.svg b/htdocs/public/symbols/svgicons/91-1.svg
deleted file mode 100755
index 534203f19a844bc8713795a6017578ca51da864d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/91-1.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3010"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g2997" transform="matrix(1.2,0,0,1.2,-2.4,1025.9622)">
-   <path id="path4" d="M 6,12 C 6,12 6.8,10.8 7.4,9.9 7.8,9.3 8.3,8.9 9,8.7 l 2.1,-0.6 c 1.2,-0.3 2.4,0.3 2.8,1.4 l 0.6,1.3 c 0.3,0.8 0.9,1.3 1.7,1.6 L 18,13" stroke-miterlimit="10" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-width="2"/>
-   <circle id="circle6" r="2" cy="4" cx="13"/>
-   <path id="path8" d="m 10.6,8.1 -1,4.6 c -0.2,0.7 0.1,1.4 0.5,1.9 l 3.4,3.7 -1,-4.7 0.9,-4.1 -0.7,-1.4 h -2.1 z" inkscape:connector-curvature="0"/>
-   <g id="g10">
-    <path id="path12" d="m 14.6,22 h 2.1 c -0.4,-1 -1.4,-3.5 -1.8,-4.7 l -2.9,-4.2 -1.6,1.2 2.7,3.6 1.5,4.1 z" inkscape:connector-curvature="0"/>
-    <polygon id="polygon14" points="10.7,17 9.2,15.3 8.3,18.2 5.3,22 7.6,22 9.9,19.4 "/>
-   </g>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/91-2.svg b/htdocs/public/symbols/svgicons/91-2.svg
deleted file mode 100755
index 3b64f6e28bebff3f35a48f729ec632fc1ecf2744..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/91-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <path inkscape:connector-curvature="0" d="m 21.86501,1044.7757 c -0.04762,0 -0.09474,0 -0.141619,0.012 -0.596033,0.058 -1.129891,0.4887 -1.447665,1.1754 -0.11377,0.2458 -0.355613,0.3225 -0.540213,0.171 -0.120461,-0.098 -0.186274,-0.27 -0.186358,-0.4454 0,-0.093 0.01835,-0.1884 0.05795,-0.2737 0.469134,-1.0142 1.270088,-1.6342 2.157386,-1.6779 -0.07522,-3.3405 -2.09149,-6.0311 -4.598384,-6.1414 0.153326,0.6066 0.26346,1.2408 0.324463,1.8972 0.02664,0.2865 -0.126231,0.5475 -0.341438,0.5831 -0.0039,7e-4 -0.0078,4e-4 -0.01171,0 -0.01238,0 -0.0248,0 -0.03696,0 -0.195347,0 -0.364602,-0.1938 -0.38923,-0.4585 -0.06372,-0.6862 -0.187403,-1.3452 -0.363223,-1.9691 -0.402484,-1.4284 -1.079215,-2.67 -1.940213,-3.6202 -0.117032,-0.129 -0.237493,-0.2529 -0.36109,-0.3709 -1.072609,-1.0246 -2.384467,-1.624 -3.788982,-1.624 -0.120002,0 -0.239418,0 -0.358122,0.013 -0.6572047,0.047 -1.2936286,0.2264 -1.8921288,0.52 -1.6018266,0.786 -2.9317062,2.3937 -3.6608279,4.5095 0.096461,-0.012 0.1935906,-0.012 0.2913894,-0.012 1.0329711,0 2.0294401,0.4053 2.8817406,1.1722 0.1121822,0.1008 0.1726845,0.2655 0.17281,0.4331 8.35e-5,0.1007 -0.021742,0.203 -0.067318,0.2928 -0.1214227,0.2393 -0.3654807,0.3021 -0.5451478,0.1403 -0.7219718,-0.6496 -1.5664116,-0.9929 -2.4420433,-0.9929 -0.2468594,0 -0.4889104,0.027 -0.7247314,0.082 -0.068196,0.048 -0.1468027,0.07 -0.2264132,0.058 -0.027805,0.014 -0.055527,0.017 -0.083122,0.025 -1.9109443,0.6203 -3.33373081,2.9184 -3.33373081,5.651 0,5e-4 -4.182e-5,0 -4.182e-5,0 7.1082e-4,3.4998 2.13183823,6.3369 4.76074043,6.3369 l 11.9753576,0 4.466298,0 c 1.246674,0 2.257526,-1.3459 2.257526,-3.006 0,-1.3693 -0.836662,-2.4832 -1.86495,-2.4832 z" id="path3614" fill="#b3b3b3" stroke="#808080" stroke-width="0.5"/>
-  <text x="2.684" y="1048.01" id="text3355" sodipodi:linespacing="125%" font-family="sans-serif" fill="#000080" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="9.212"><tspan sodipodi:role="line" id="tspan3357" x="2.684" y="1048.01">WC</tspan>
-  </text>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/91-3.svg b/htdocs/public/symbols/svgicons/91-3.svg
deleted file mode 100755
index 4174a33bbe25d3f8bf3d6aab1395dc75168c73f4..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/91-3.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24"
-   height="24"
-   version="1.1"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="91-3.svg">
-  <defs
-     id="defs15" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="12"
-     inkscape:cy="12"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer1" />
-  <metadata
-     id="metadata3010">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1028.3622)">
-    <g
-       id="g2997"
-       transform="matrix(1.2,0,0,1.2,-6.2015396,1025.9622)">
-      <path
-         id="path4"
-         d="M 6,12 C 6,12 6.8,10.8 7.4,9.9 7.8,9.3 8.3,8.9 9,8.7 l 2.1,-0.6 c 1.2,-0.3 2.4,0.3 2.8,1.4 l 0.6,1.3 c 0.3,0.8 0.9,1.3 1.7,1.6 L 18,13"
-         stroke-miterlimit="10"
-         inkscape:connector-curvature="0"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:10" />
-      <circle
-         id="circle6"
-         r="2"
-         cy="4"
-         cx="13" />
-      <path
-         id="path8"
-         d="m 10.6,8.1 -1,4.6 c -0.2,0.7 0.1,1.4 0.5,1.9 l 3.4,3.7 -1,-4.7 0.9,-4.1 -0.7,-1.4 -2.1,0 z"
-         inkscape:connector-curvature="0" />
-      <g
-         id="g10">
-        <path
-           id="path12"
-           d="m 14.6,22 2.1,0 c -0.4,-1 -1.4,-3.5 -1.8,-4.7 l -2.9,-4.2 -1.6,1.2 2.7,3.6 1.5,4.1 z"
-           inkscape:connector-curvature="0" />
-        <polygon
-           id="polygon14"
-           points="9.2,15.3 8.3,18.2 5.3,22 7.6,22 9.9,19.4 10.7,17 " />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/92-1.svg b/htdocs/public/symbols/svgicons/92-1.svg
deleted file mode 100755
index 632c136e06f1ecc3856b1840849755a3c1d31463..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/92-1.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" viewBox="0 0 24 24" width="24" height="24">
- <path inkscape:connector-curvature="0" d="M 11.977044,2.0093513 C 11.566241,1.9828154 11.146799,2.1767394 10.883729,2.5250364 L 0.05727741,20.713545 c -0.07304604,0.274732 -0.07581064,0.44968 -0.01066964,0.70843 0.0623332,0.247518 0.3058344,0.502812 0.53862277,0.564584 l 22.54621646,0.0065 c 0.140822,-0.02549 0.335208,-0.09158 0.430673,-0.146869 0.347304,-0.201298 0.582295,-0.737372 0.336073,-1.144719 L 12.938262,2.5587301 C 12.778002,2.2935872 12.455321,2.1025703 12.15251,2.0348375 12.095058,2.0218784 12.035878,2.0129798 11.97713,2.0091785 Z M 11.926934,5.4192321 20.327445,19.51051 3.6845243,19.56451 11.926934,5.4192361 Z" id="foo"/>
- <path inkscape:connector-curvature="0" d="M 11.901229,3.1629299 22.397442,20.769604 1.6025581,20.83707 11.901229,3.1629299 Z" id="white_bg" fill="#ffff00"/>
- <metadata id="metadata10"/>
- <text x="5.821" y="19.554" id="text3335" sodipodi:linespacing="125%" font-family="sans-serif" word-spacing="0" line-height="125%" font-weight="bold" letter-spacing="0" font-size="8.125"><tspan sodipodi:role="line" id="tspan3337" x="5.821" y="19.554">DF</tspan>
- </text>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/92-2.svg b/htdocs/public/symbols/svgicons/92-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/92-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/93-1.svg b/htdocs/public/symbols/svgicons/93-1.svg
deleted file mode 100755
index 2c842e053663ea3dd3172a660e145570d049acdd..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/93-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="-0.258 -0.548 24.000001 24">
- <metadata id="metadata15"/>
- <path inkscape:connector-curvature="0" id="path7" d="m 2.6059382,-0.06530034 c -1.3113268,0 -2.37826117,1.07281774 -2.37826117,2.38552874 l 0,18.2635426 c 0,1.312711 1.06693437,2.379507 2.37826117,2.379507 l 18.2674628,0 c 1.312881,0 2.379815,-1.066796 2.379815,-2.379507 l 0,-18.2635426 c 0,-1.312711 -1.066934,-2.38552874 -2.379815,-2.38552874 l -18.2674628,0 z" fill="#231f20"/>
- <path inkscape:connector-curvature="0" id="path5" d="m 20.873401,-0.54800036 -18.2674628,0 c -1.5829172,0 -2.86393777,1.28376838 -2.86393777,2.86822876 l 0,18.2635426 c 0,1.582712 1.28102057,2.868229 2.86393777,2.868229 l 18.2674628,0 c 1.582917,0 2.8686,-1.285322 2.8686,-2.868229 l 0,-18.2635426 c -1.94e-4,-1.58426614 -1.285683,-2.86822876 -2.8686,-2.86822876 z" fill="#000080"/>
- <path inkscape:connector-curvature="0" id="path9" d="m 19.990052,16.386321 -4.96614,-4.969965 4.965946,-4.9699651 0,9.9399301 z m -15.5097907,0.943838 4.9750769,-4.965303 0.212532,0.203375 c 1.1747548,1.12002 3.0415008,1.12002 4.1661338,0 l 0.214086,-0.212504 4.998001,4.974432 -14.5658297,0 z M 3.587782,6.4463909 8.5463458,11.416356 3.5788456,16.386321 3.587782,6.4463909 z M 19.03696,5.4978902 12.927926,11.601472 c -0.620695,0.625276 -1.731729,0.611484 -2.370685,-0.02428 l -6.0678489,-6.0793008 14.5475679,0 z M 2.2385724,4.1412798 c 0,0.5691392 0,13.9522642 0,14.5258712 0.5783437,0 18.5679996,0 19.1463426,0 0,-0.573607 0,-13.9569262 0,-14.5258712 -0.578343,0 -18.5679989,0 -19.1463426,0 z" fill="#ffffff"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/93-2.svg b/htdocs/public/symbols/svgicons/93-2.svg
deleted file mode 100755
index 6afb3ddd9cfb3b2b8eea9ca5d0804e7d5e2522f2..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/93-2.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4305"/>
- <g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 1">
-  <path d="M 3.2869998,12 C 20.713,12 20.713,12 20.713,12" id="path4312" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.722"/>
-  <path d="M 12,20.473983 C 12,3.5260173 12,3.5260173 12,3.5260173" id="path4312-3" inkscape:connector-curvature="0" fill-rule="evenodd" stroke="#000000" stroke-linecap="round" stroke-width="2.687"/>
-  <path id="path4314" sodipodi:type="arc" sodipodi:cx="12" sodipodi:cy="12.026115" sodipodi:rx="3.1077249" sodipodi:ry="3.1077249" sodipodi:start="3.1415927" sodipodi:end="9.423818" sodipodi:open="true" d="m 8.8922751,12.026115 a 3.1077249,3.1077249 0 1 1 1.4e-6,0.003" transform="translate(0,-0.02611542)" fill="#cb0000" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-1.svg b/htdocs/public/symbols/svgicons/94-1.svg
deleted file mode 100755
index dc9e489dfaa46fcbe1ea3c02ffd1965738228dc6..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-1.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="94-1.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="27.812867"
-     inkscape:cx="16.996021"
-     inkscape:cy="11.227399"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     inkscape:connector-curvature="0"
-     style="fill:#333333;fill-rule:evenodd"
-     id="path5724"
-     d="M 23.852939,15.898417 13.434529,8.1557394 c 0.07711,-1.1961361 0.127255,-5.1254658 0.0821,-5.6212684 -0.378513,-4.1562174 -3.000001,-2.36599271 -3.024321,-0.5110796 -0.0067,0.5073326 -0.0975,4.3898428 -0.106119,6.141825 l -10.282381,7.9227256 -0.02731,2.480306 10.614792,-4.849387 0.383602,6.45448 -3.07804,2.203462 -0.01958,1.623135 4.060667,-1.11389 7.68e-4,0.0134 4.103063,1.048869 -0.04892,-1.621714 -3.117538,-2.151672 0.250846,-6.460284 10.697344,4.659543 -0.0706,-2.475774 z"
-     sodipodi:nodetypes="ccsccccccccccccccccc" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-2.svg b/htdocs/public/symbols/svgicons/94-2.svg
deleted file mode 100755
index 13c80b224ad1e8dee3c96f3ea6574242f9083d31..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-2.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="94-2.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="19.666667"
-     inkscape:cx="15.507465"
-     inkscape:cy="16.399191"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     inkscape:connector-curvature="0"
-     style="fill:#333333"
-     id="path13"
-     d="m 12.000001,2.3295018 c -0.10843,8e-7 -0.172538,0.074557 -0.389749,0.6661681 -0.02564,0.06983 -0.0774,0.3676365 -0.0774,0.3676365 2e-6,0 -0.173556,0.0083 -0.21837,0.0083 -0.08664,3.2e-6 -0.203812,0.077251 -0.262599,0.1713784 -0.182379,0.2920431 -0.467145,1.899345 -0.467146,2.6397943 0,0.4595005 -0.0385,0.7348981 -0.110569,0.7905564 -0.06081,0.04697 -0.379711,0.1917754 -0.7076317,0.3206462 C 9.187937,7.52137 9.0428824,7.5348662 4.85735,7.7583642 1.542796,7.9353556 0.49942198,8.0186875 0.34343998,8.1177078 c -0.432501,0.2745545 -0.455019,0.9088912 -0.07463,2.1090722 l 0.196257,0.619177 c 0,0 10.20259802,1.688917 10.20259802,1.688917 l 0.856898,6.27193 -0.226663,0.06358 c -0.12459,0.03449 -0.961589,0.126537 -1.8602956,0.20455 -0.8987071,0.07801 -1.6848407,0.183399 -1.7469648,0.234956 -0.2497381,0.207267 -0.053487,1.840946 0.2211364,1.840946 0.4334372,0 2.0359995,0.215503 2.120127,0.28471 0.06004,0.04942 1.437291,0.234956 1.968098,0.234955 0.530808,10e-7 1.908036,-0.185542 1.968099,-0.234955 0.08416,-0.06919 1.686691,-0.284709 2.120129,-0.28471 0.274619,0 0.470875,-1.633682 0.221133,-1.840947 -0.06216,-0.05153 -0.848254,-0.156939 -1.746962,-0.234955 -0.898707,-0.07801 -1.735705,-0.170054 -1.860296,-0.20455 l -0.226662,-0.06358 0.856896,-6.271931 c 0,0 10.202601,-1.688918 10.202602,-1.688916 L 23.731192,10.22677 C 24.111579,9.0265907 24.08906,8.3922573 23.656561,8.1177011 23.500576,8.0186805 22.457205,7.9353476 19.142651,7.7583572 14.957117,7.5348578 14.812064,7.5213617 14.233462,7.293975 13.905541,7.1651045 13.586645,7.0202984 13.52583,6.9733301 c -0.07206,-0.05566 -0.110569,-0.3310565 -0.110569,-0.790557 0,-0.74045 -0.284764,-2.3477543 -0.467148,-2.6397947 -0.05878,-0.094127 -0.175951,-0.1713818 -0.262596,-0.1713794 -0.04482,-3.2e-6 -0.215607,-0.0083 -0.215607,-0.0083 0,0 -0.05176,-0.2978087 -0.0774,-0.3676357 C 12.175301,2.4040549 12.10843,2.3294986 12,2.3294986 Z" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-3.svg b/htdocs/public/symbols/svgicons/94-3.svg
deleted file mode 100755
index ab03ba1ef9ff2b7312fe464755993c24b71e3d9a..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-3.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="94-2.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="27.812867"
-     inkscape:cx="16.996021"
-     inkscape:cy="11.227399"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     inkscape:connector-curvature="0"
-     style="fill:#333333;fill-rule:evenodd"
-     id="path5724"
-     d="M 23.852939,17.3366 13.434529,9.5939227 c 0.07711,-1.1961361 0.127255,-6.5636491 0.0821,-7.0594517 -0.378513,-4.1562174 -3.000001,-2.36599271 -3.024321,-0.5110796 -0.0067,0.5073326 -0.0975,5.8280261 -0.106119,7.5800083 l -10.282381,7.9227253 -0.02731,2.480306 10.614792,-4.849387 0.383602,5.016297 -3.07804,2.203462 -0.01958,1.623135 4.060667,-1.11389 7.68e-4,0.0134 4.103063,1.048869 -0.04892,-1.621714 -3.117538,-2.151672 0.250846,-5.022101 10.697344,4.659543 -0.0706,-2.475774 z"
-     sodipodi:nodetypes="ccsccccccccccccccccc" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-68.svg b/htdocs/public/symbols/svgicons/94-68.svg
deleted file mode 100755
index e4ebc3f895f58b6d54501da4b5aebaa1296a9a54..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-68.svg
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
-   sodipodi:docname="94-68.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="6.9532165"
-     inkscape:cx="-40.448274"
-     inkscape:cy="0.54852928"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3596"
-     transform="matrix(0.66667404,0,0,0.66667404,15.835203,-1.9387406)">
-    <path
-       inkscape:connector-curvature="0"
-       class="st0"
-       d="m -12.75489,19.005988 c 0.569295,0 1.117121,-0.09741 1.62815,-0.272811 0.01739,-0.0059 0.03553,-0.0099 0.05292,-0.01594 l -3.28e-4,-5.62e-4 c 0.0025,-7.03e-4 0.005,-0.0013 0.0073,-0.0022 -0.18328,-0.455389 -0.483232,-0.874731 -0.858043,-1.194043 -0.266577,0.06389 -0.544217,0.09722 -0.830013,0.09722 -1.990727,0 -3.609548,-1.618635 -3.609548,-3.609361 0,-1.987961 1.618821,-3.609502 3.609548,-3.609502 1.990727,0 3.6093613,1.621587 3.6093613,3.609502 0,0.313686 -0.041531,0.619075 -0.1166245,0.91059 0.3065144,0.338342 0.6914036,0.610826 1.1365269,0.806575 0.016078,0.0075 0.031125,0.01645 0.04739,0.02358 l 1.875e-4,-5.16e-4 c 0.00239,0.0011 0.00459,0.0023 0.00698,0.0033 0.2026868,-0.544217 0.313827,-1.129965 0.313827,-1.743556 0,-2.754271 -2.2408508,-4.9976529 -4.9977002,-4.9976529 -2.754223,4.69e-5 -4.997793,2.2434289 -4.997793,4.9976529 0,2.757036 2.24357,4.997699 4.99784,4.997699 z"
-       style="fill:#333333"
-       id="path3408" />
-    <path
-       inkscape:connector-curvature="0"
-       class="st0"
-       d="m -3.4511287,15.708814 c 0,0 3.75e-4,-1.88e-4 7.032e-4,-1.88e-4 7.5e-4,0.0024 0.0015,0.0048 0.0022,0.0072 0.4664044,-0.197015 0.8744966,-0.496967 1.1856048,-0.880028 -0.06389,-0.266577 -0.097218,-0.544217 -0.097218,-0.827481 0,-1.987961 1.61863443,-3.609502 3.6093612,-3.609502 1.9906798,0 3.6095017,1.621588 3.6095017,3.609502 0,1.990727 -1.6188219,3.609361 -3.6095017,3.609361 -0.31368634,0 -0.61907579,-0.04153 -0.9107778,-0.116625 -0.22757725,0.191718 -0.42754523,0.416577 -0.58846649,0.666513 -0.0974059,0.147187 -0.18145243,0.310734 -0.25870213,0.485577 -0.003469,0.0073 -0.007172,0.01355 -0.0106406,0.02105 l 5.625e-4,1.87e-4 c -0.001078,0.0024 -0.002203,0.0044 -0.003281,0.0068 0.54984164,0.210937 1.14679247,0.324842 1.77139942,0.324842 2.7542707,0 4.9976527,-2.240663 4.9976527,-4.997699 -9.38e-5,-2.754224 -2.2434758,-4.997606 -4.9977464,-4.997606 -2.7570363,0 -4.9976996,2.243382 -4.9976996,4.997653 0,0.575154 0.099422,1.12612 0.2789052,1.640618 0.00656,0.01978 0.011156,0.04027 0.01814,0.05986 z"
-       style="fill:#333333"
-       id="path3410" />
-    <path
-       inkscape:connector-curvature="0"
-       class="st0"
-       d="m -8.0045956,26.254195 -5.156e-4,1.87e-4 c -7.5e-4,-0.0023 -0.00131,-0.005 -0.00202,-0.0073 -0.4693107,0.172124 -0.8858403,0.449904 -1.2162141,0.808028 0.049969,0.244218 0.077812,0.494154 0.077812,0.752341 0,1.987961 -1.6186347,3.609361 -3.6093617,3.609361 -1.990727,0 -3.609548,-1.6214 -3.609548,-3.609361 0,-1.990914 1.618821,-3.609361 3.609548,-3.609361 0.344061,0 0.677341,0.04978 0.993887,0.141515 0.317718,-0.325921 0.570373,-0.727075 0.742497,-1.183589 0.0031,-0.0077 0.007,-0.015 0.01008,-0.02274 -1.87e-4,-1.4e-4 -1.87e-4,-1.4e-4 -1.87e-4,-1.4e-4 7.03e-4,-0.0024 0.0018,-0.0046 0.0027,-0.007 -0.544216,-0.205405 -1.13287,-0.316405 -1.74904,-0.316405 -2.754223,9.4e-5 -4.997793,2.240711 -4.997793,4.997747 0,2.75427 2.24357,4.997653 4.99784,4.997653 2.7568494,0 4.9977001,-2.243383 4.9977001,-4.997653 0,-0.526779 -0.084984,-1.034715 -0.2362022,-1.512651 -0.00422,-0.01355 -0.00703,-0.02728 -0.011203,-0.04064 z"
-       style="fill:#333333"
-       id="path3412" />
-    <path
-       inkscape:connector-curvature="0"
-       class="st0"
-       d="m 1.2495252,22.809833 c -0.64377882,0 -1.26271395,0.123234 -1.8279774,0.347155 -0.002719,0.0011 -0.005672,0.0018 -0.008578,0.0029 0,0 0,0 0,1.88e-4 -0.002203,7.5e-4 -0.004781,0.0015 -0.006984,0.0024 0.13884322,0.374624 0.33327997,0.730216 0.59690396,1.035653 0.05278105,0.05822 0.10565584,0.113718 0.16096813,0.169405 0.34152994,-0.11114 0.70809103,-0.169405 1.08566771,-0.169405 1.9906798,0 3.6095017,1.618447 3.6095017,3.609361 0,1.987961 -1.6188219,3.609361 -3.6095017,3.609361 -1.99072673,0 -3.6093612,-1.6214 -3.6093612,-3.609361 0,-0.222093 0.019406,-0.438702 0.058219,-0.649826 -0.2987801,-0.345702 -0.6785599,-0.625122 -1.1196519,-0.828184 -0.027469,-0.01303 -0.052922,-0.02878 -0.080906,-0.0412 0,3.75e-4 -1.875e-4,7.5e-4 -1.875e-4,0.0011 -0.00239,-0.0011 -0.00459,-0.0024 -0.00698,-0.0033 -0.1554369,0.480279 -0.2387803,0.991121 -0.2387803,1.521416 0,2.75427 2.2406632,4.997652 4.9976995,4.997652 2.7542707,0 4.9976527,-2.243382 4.9976527,-4.997652 -4.69e-5,-2.757083 -2.2434289,-4.9977 -4.9976995,-4.9977 z"
-       style="fill:#333333"
-       id="path3414" />
-    <path
-       inkscape:connector-curvature="0"
-       class="st0"
-       d="M 0.74594881,28.6769 2.2812866,27.141563 c -0.1887649,-0.272109 -3.5054863,-3.296124 -3.6248765,-3.604514 -0.2942801,-0.746903 -0.4110922,-1.57415 -0.4247796,-2.362585 -0.016641,-0.94134 0.108234,-1.971273 0.4969668,-2.854395 0.083859,-0.192843 2.7270674,-2.831617 2.83877,-3.008523 0.012656,-0.01903 0.022734,-0.03881 0.036094,-0.05784 0.00253,-0.0031 0.010785,-0.0062 0.00769,-0.0093 L 0.05640435,13.689443 c -0.191718,0.127781 -2.93800395,2.689915 -3.14912815,2.784414 -0.07214,0.03056 -0.1444682,0.06113 -0.2193742,0.08897 -0.7747001,0.285843 -1.61315,0.421873 -2.4515999,0.421873 -0.6747162,0 -1.3465261,-0.08883 -1.9879611,-0.252702 -0.2332491,-0.05822 -0.4582951,-0.136031 -0.6747162,-0.230343 -0.2414991,-0.10289 -3.1640388,-2.869114 -3.3778818,-3.010676 l -1.560415,1.560463 c 0.14428,0.210937 2.958773,3.080051 3.053085,3.313112 0.02508,0.05278 0.04725,0.105469 0.06666,0.161156 0.5220452,1.427151 0.5414513,3.101285 0.127781,4.556186 -0.039,0.13603 -0.08348,0.272108 -0.136218,0.402467 -0.124875,0.324842 -3.126255,3.293824 -3.32341,3.571417 l 1.538244,1.538244 c 0.266577,-0.183281 3.3983159,-2.996638 3.7037522,-3.113263 0.013922,-0.0057 0.030562,-0.01116 0.044484,-0.01664 0.7802314,-0.28603 1.6159157,-0.419342 2.4516,-0.419342 0.6719974,0 1.3439948,0.08606 1.9852424,0.249936 0.2305303,0.05822 0.449717,0.133312 0.6635599,0.224859 0.2719677,0.116671 3.729859,3.363308 3.93584031,3.157326 z"
-       style="fill:#333333"
-       id="path3424"
-       sodipodi:nodetypes="sccccccscccsccccccccccccsccs" />
-    <path
-       inkscape:connector-curvature="0"
-       class="st0"
-       d="m -9.5815114,15.726954 -0.02489,0.02213 c 0.00277,0.0028 0.00553,0.0057 0.00825,0.0057 0.00567,-0.0082 0.011156,-0.01669 0.01664,-0.02784 z"
-       style="fill:#333333"
-       id="path3426" />
-    <circle
-       r="2.0134568"
-       cy="14.0083"
-       cx="-12.755002"
-       id="path3479"
-       style="fill:#333333" />
-    <circle
-       r="2.0134568"
-       cy="14.008369"
-       cx="1.2495462"
-       id="path3479-3"
-       style="fill:#333333" />
-    <circle
-       r="2.0134568"
-       cy="27.807472"
-       cx="1.2495538"
-       id="path3479-6"
-       style="fill:#333333" />
-    <circle
-       r="2.0134568"
-       cy="27.847139"
-       cx="-12.763877"
-       id="path3479-7"
-       style="fill:#333333" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-71.svg b/htdocs/public/symbols/svgicons/94-71.svg
deleted file mode 100755
index aa7d339faebce10556e50461b0bd2705984c8b8a..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-71.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="94-71.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="32"
-     inkscape:cx="6.2227228"
-     inkscape:cy="14.589176"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3"
-     transform="matrix(0.25417844,0,0,0.25417844,3.6293682e-4,3.20202)"
-     style="fill:#333333" />
-  <g
-     id="g3388"
-     transform="matrix(-0.00411188,-0.0177399,0.0177399,-0.00411188,1.8254364,20.496882)"
-     style="fill:#333333">
-    <path
-       inkscape:connector-curvature="0"
-       d="m 14.765,576.732 13.394,5.834 c 0,0 -14.377,5.953 -14.425,6.161 C 13.686,588.933 0,700.341 0,700.341 c 0,0 56.171388,14.76393 58.943388,9.39893 2.772,-5.365 43.074602,-96.35537 43.074602,-96.35537 0,0 144.08575,43.97258 164.40175,50.09958 20.316,6.127 58.97,20.325 58.97,20.325 L 275.487,1069.888 260.77389,1307.8528 c 0,0 83.23646,26.8259 86.02846,16.6599 2.792,-10.167 140.20085,-596.70168 140.20085,-596.70168 0,0 20.429,5.17 39.623,9.07 19.194,3.901 109.1458,11.68398 115.5018,-14.80502 6.355,-26.489 -64.54128,-54.75626 -96.89928,-63.12726 -32.358,-8.37 -39.103,-10.37 -39.103,-10.37 0,0 134.68085,-590.009666 136.10185,-596.451666 2.178,-9.872 -84.32346,-24.019872 -84.32346,-24.019872 C 558.38368,18.105466 465.036,249.822 465.036,249.822 L 340.92026,617.72486 c 0,0 -14.559,-0.299 -61.054,-8.028 -25.032,-4.161 -170.75348,-27.86756 -170.75348,-27.86756 0,0 4.39261,-98.47337 4.71861,-103.82137 C 114.45439,467.77593 56.014,457.62 56.014,457.62 c 0,0 -36.357,106.482 -36.309,106.275 0.048,-0.207 10.062,13.144 10.062,13.144 z"
-       id="path3390"
-       style="fill:#333333"
-       sodipodi:nodetypes="ccccscscccccccccccccscccscc" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-74.svg b/htdocs/public/symbols/svgicons/94-74.svg
deleted file mode 100755
index 7ead4782af1167e710501aa880dd40ae4756af46..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-74.svg
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="24"
-   height="24"
-   viewBox="0 0 24.000001 24"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="94-74.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1875"
-     inkscape:window-height="1056"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="13.906433"
-     inkscape:cx="4.2736353"
-     inkscape:cy="10.331998"
-     inkscape:window-x="45"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.03832955,-0.03832955,0.03832955,0.03832955,-12.977414,15.441768)"
-     id="g3388"
-     style="fill:#333333">
-    <path
-       d="m 157.98695,184.38488 15.38788,-16.18471 c 9.01133,-9.01133 24.18529,-5.8854 24.18529,-5.8854 l 45.02946,6.16135 22.80617,-22.31567 c 12.01512,-11.80056 22.86694,6.25375 18.14672,12.47586 l -11.70942,13.61004 48.49336,8.98159 16.46066,-19.18912 c 17.59356,-21.02645 30.68334,-2.08353 22.74478,9.07336 l -10.63664,13.45688 72.86283,9.50247 c 62.65024,-60.29014 88.22733,-85.29891 104.71135,-70.44132 16.59028,14.95339 -12.75624,44.75856 -69.82804,103.5468 l 10.36069,75.06977 15.2651,-12.72081 c 9.01133,-7.50944 25.01187,4.53795 8.49108,20.20051 l -20.99733,19.80177 8.8588,49.13702 13.11954,-10.08475 c 11.586,-9.22589 25.65553,2.97466 9.99297,19.71 l -20.84417,20.99734 c -0.85822,0.64367 6.80502,43.09845 6.80502,43.09845 4.72022,20.8119 -7.01958,28.41564 -7.01958,28.41564 l -14.31509,12.47587 -54.37876,-153.60343 c -4.50567,-13.51701 -15.92502,-28.19577 -35.00611,-26.45363 -10.08411,1.07278 -35.55799,18.2695 -38.99088,22.34606 l -58.97684,56.70849 c -1.50189,1.07278 9.07336,73.72104 9.07336,73.72104 0,2.14556 -18.69861,26.66819 -18.69861,26.66819 l -37.36621,-66.51729 -18.45305,8.58285 10.7898,-16.79799 -67.28375,-37.97951 25.22769,-18.45304 c 12.01512,2.78922 75.00838,9.87019 76.29571,9.22652 0,0 51.29689,-50.87264 54.2256,-53.94965 16.9499,-17.80812 22.65302,-24.46187 25.22769,-33.25865 2.57678,-8.80401 -1.81285,-21.70583 -28.41564,-38.04088 -36.68901,-22.52835 -151.64143,-61.09202 -151.64143,-61.09202 z"
-       id="path3166"
-       style="fill:#333333;stroke:none"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-76.svg b/htdocs/public/symbols/svgicons/94-76.svg
deleted file mode 100755
index 3c3ec3b60003b927aa492753ec48a596baca4e25..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-76.svg
+++ /dev/null
@@ -1,982 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   version="1.1"
-   id="svg5"
-   inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
-   sodipodi:docname="Paraglider.svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg">
-  <sodipodi:namedview
-     id="namedview7"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     inkscape:pagecheckerboard="0"
-     inkscape:document-units="px"
-     showgrid="false"
-     height="31px"
-     inkscape:snap-global="true"
-     inkscape:lockguides="false"
-     inkscape:snap-to-guides="true"
-     inkscape:snap-grids="true"
-     inkscape:snap-others="false"
-     inkscape:snap-nodes="false"
-     inkscape:zoom="42.364278"
-     inkscape:cx="9.9140129"
-     inkscape:cy="16.192888"
-     inkscape:window-width="1920"
-     inkscape:window-height="1137"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer1" />
-  <defs
-     id="defs2">
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8960"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8956"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8952"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8948"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8944"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8940"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8936"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8932"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8928"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8924"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8920"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8916"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8912"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8908"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8904"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8900"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8896"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8892"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8888"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8884"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8880"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8596"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8133"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8129"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect8092"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7918"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7914"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7910"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7906"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7902"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7898"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7894"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7890"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7886"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7882"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7878"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7874"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7870"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7866"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7862"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7858"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7854"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7704"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7700"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7696"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7692"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7468"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7464"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect7257"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect6383"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect5893"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect5319"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-    <inkscape:path-effect
-       effect="bspline"
-       id="path-effect4762"
-       is_visible="true"
-       lpeversion="1"
-       weight="33.333333"
-       steps="2"
-       helper_size="0"
-       apply_no_weight="true"
-       apply_with_weight="true"
-       only_selected="false" />
-  </defs>
-  <g
-     inkscape:label="Ebene 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 0.96892735,14.996352 C 0.92502693,14.652466 0.88098473,14.307469 0.86255026,13.995432 0.84411579,13.683396 0.85145601,13.404468 0.8954117,13.143696 0.93936739,12.882925 1.0201098,12.640698 1.122876,12.394693 1.2256423,12.148689 1.3504261,11.899121 1.4716284,11.711757 1.5928306,11.524392 1.7102742,11.399608 1.8754677,11.238085 2.0406611,11.076563 2.2535269,10.878377 2.4885356,10.69847 2.7235443,10.518563 2.9804518,10.357079 3.2925463,10.20291 3.6046407,10.048741 3.9716512,9.9019369 4.3901208,9.7588061 4.8085905,9.6156753 5.2783641,9.4762112 5.6967409,9.3440788 6.1151177,9.2119464 6.4821283,9.0871628 6.8712847,8.9917724 7.2604411,8.8963819 7.671493,8.83032 8.0642765,8.7899948 8.45706,8.7496697 8.8314108,8.7349892 9.2828075,8.6982569 9.7342042,8.6615245 10.262699,8.6028028 10.725207,8.5734902 c 0.462508,-0.029313 0.858879,-0.029313 1.262594,-0.032992 0.403715,-0.00368 0.814767,-0.011019 1.240552,3.58e-5 0.425785,0.011055 0.866198,0.040416 1.317646,0.077134 0.451448,0.036718 0.913881,0.08076 1.405716,0.1468682 0.491836,0.066108 1.012991,0.154191 1.512159,0.2570058 0.499168,0.1028147 0.976282,0.2202582 1.361666,0.3267446 0.385383,0.1064863 0.678991,0.2019089 0.998303,0.3304539 0.319312,0.128545 0.664302,0.2900297 1.053343,0.480904 0.38904,0.190875 0.822112,0.411081 1.108201,0.616872 0.286088,0.205791 0.425553,0.396637 0.546602,0.580174 0.121049,0.183537 0.223812,0.359702 0.322769,0.587267 0.09896,0.227565 0.194379,0.506491 0.249275,0.726644 0.0549,0.220153 0.06958,0.381638 0.07318,0.601796 0.0036,0.220159 -0.0037,0.499088 -0.05519,0.821928 -0.05146,0.32284 -0.146883,0.689849 -0.242128,1.056174"
-       id="path5891"
-       inkscape:path-effect="#path-effect5893"
-       inkscape:original-d="m 0.96892735,14.996352 c -0.0430421,-0.343996 -0.0870843,-0.688993 -0.13212646,-1.03499 0.00834,-0.277939 0.0156807,-0.556867 0.0220211,-0.836801 C 0.94056753,12.883325 1.0213099,12.641098 1.1010538,12.397866 1.2268424,12.149289 1.351626,11.899721 1.4754121,11.649149 1.5938602,11.525361 1.7113036,11.400577 1.8277493,11.274791 2.041624,11.077597 2.2544901,10.879412 2.4663605,10.680222 2.7242782,10.519731 2.9811856,10.358246 3.2370982,10.195758 3.6051235,10.049948 3.972134,9.9031439 4.338152,9.7553367 4.8089443,9.6168671 5.2787179,9.4774031 5.7475008,9.3369362 6.1155261,9.2131476 6.4825367,9.088364 6.8485546,8.9625779 7.260623,8.8975134 7.6716748,8.8314515 8.0817349,8.7643883 8.4571007,8.7507073 8.8314515,8.7360268 9.2048098,8.7203461 9.7343262,8.6626221 10.262821,8.6039004 10.790327,8.5441775 c 0.397388,10e-4 0.793759,10e-4 1.189138,0 0.412069,-0.00634 0.823121,-0.013681 1.233181,-0.022021 0.44143,0.030362 0.881843,0.059723 1.321264,0.088084 0.463452,0.045043 0.925885,0.089084 1.387328,0.1321265 0.522176,0.089086 1.043331,0.1771686 1.563496,0.2642529 0.478133,0.1184481 0.955247,0.2358915 1.43137,0.3523372 0.294621,0.096427 0.588229,0.1918493 0.880843,0.286274 0.346004,0.1624911 0.690994,0.3239758 1.034991,0.4844639 0.43409,0.221215 0.867162,0.441421 1.299243,0.660632 0.14047,0.191853 0.279934,0.382699 0.418401,0.572548 0.103767,0.177172 0.20653,0.353337 0.308295,0.528506 0.09643,0.279939 0.191849,0.558867 0.286274,0.836801 0.01568,0.162491 0.03036,0.323976 0.04404,0.484464 -0.0063,0.279939 -0.01368,0.558867 -0.02202,0.836801 -0.09443,0.368025 -0.189849,0.735035 -0.286274,1.101053"
-       sodipodi:nodetypes="ccccccccccccccccccccccccccccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 0.96892735,14.996352 c 1.15346115,0.02939 2.30589745,0.05875 3.33354815,0.07709 1.0276507,0.01834 1.9304971,0.02568 3.1013046,0.04404 1.1708076,0.01836 2.6094889,0.04772 4.0665419,0.04402 1.457053,-0.0037 2.932436,-0.04039 4.2317,-0.06241 1.299264,-0.02201 2.422317,-0.02935 3.589461,-0.01833 1.167144,0.01103 2.378278,0.04039 3.588412,0.06972"
-       id="path6381"
-       inkscape:path-effect="#path-effect6383"
-       inkscape:original-d="m 0.96892735,14.996352 c 1.15343635,0.03036 2.30587265,0.05972 3.45730895,0.08808 0.9038822,0.0083 1.8067282,0.01568 2.7085923,0.02202 1.4397391,0.03036 2.8784204,0.05972 4.3161314,0.08808 1.476441,-0.0357 2.951824,-0.0724 4.426236,-0.110105 1.124097,-0.0063 2.24715,-0.01368 3.369224,-0.02202 1.212183,0.03036 2.423317,0.05972 3.633475,0.08808" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 10.548095,16.846123 c 0.507485,0 1.01397,0 1.519455,0"
-       id="path7255"
-       inkscape:path-effect="#path-effect7257"
-       inkscape:original-d="m 10.548095,16.846123 c 0.507485,0.001 1.01397,0.001 1.519455,0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 11.05458,16.890165 c 0.0189,-0.160758 0.0379,-0.322387 0.05099,-0.479731 0.01308,-0.157344 0.02019,-0.310503 0.04102,-0.456226 0.02083,-0.145723 0.0557,-0.284529 0.0904,-0.422616 0.03593,-0.02604 0.07204,-0.0522 0.116441,-0.05452 0.0444,-0.0023 0.09625,0.01846 0.124378,0.100376 0.02813,0.08191 0.03369,0.22439 0.03976,0.3746 0.0061,0.150211 0.01264,0.308142 0.01629,0.458605 0.0036,0.150463 0.0044,0.293479 0.0052,0.435494"
-       id="path7462"
-       inkscape:path-effect="#path-effect7464"
-       inkscape:original-d="m 11.05458,16.890165 c 0.02001,-0.160628 0.03901,-0.322257 0.05701,-0.484885 0.0081,-0.152142 0.01521,-0.305301 0.02132,-0.459427 0.03569,-0.137072 0.104077,-0.414261 0.104077,-0.414261 0,0 0.07286,-0.05107 0.107788,-0.07811 0.05285,0.02178 0.1047,0.04256 0.155553,0.06235 0.0066,0.143487 0.01213,0.285964 0.01669,0.427447 0.0076,0.158935 0.01414,0.316867 0.01971,0.473804 0.0018,0.144023 0.0025,0.28704 0.0023,0.42906"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 11.05458,16.890165 c 0.05888,0.412178 0.117604,0.823229 0.198184,0.815687 0.08058,-0.0075 0.183341,-0.433271 0.286279,-0.859728"
-       id="path7466"
-       inkscape:path-effect="#path-effect7468"
-       inkscape:original-d="m 11.05458,16.890165 c 0.05972,0.412058 0.118444,0.823109 0.176169,1.23318 0.103767,-0.424751 0.20653,-0.850481 0.308294,-1.277221"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 0.96892735,14.996352 C 4.1473862,15.550195 7.3247056,16.103839 10.500886,16.657285"
-       id="path7690"
-       inkscape:path-effect="#path-effect7692"
-       inkscape:original-d="M 0.96892735,14.996352 C 4.1472466,15.550996 7.3245661,16.10464 10.500886,16.657285"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 12.185574,16.63368 c 3.565619,-0.494511 7.130392,-0.988904 10.694321,-1.48318"
-       id="path7694"
-       inkscape:path-effect="#path-effect7696"
-       inkscape:original-d="m 12.185574,16.63368 c 3.565774,-0.493393 7.130547,-0.987787 10.694321,-1.48318"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 12.209179,16.63368 c 1.237856,-0.509281 2.475209,-1.018355 3.712059,-1.527222"
-       id="path7698"
-       inkscape:path-effect="#path-effect7700"
-       inkscape:original-d="m 12.209179,16.63368 c 1.238353,-0.508074 2.475706,-1.017148 3.712059,-1.527222"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:#ff0000;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 10.477281,16.657284 C 9.3569956,16.14823 8.2355043,15.638628 7.1128076,15.128479"
-       id="path7702"
-       inkscape:path-effect="#path-effect7704"
-       inkscape:original-d="M 10.477281,16.657284 C 9.3567899,16.148683 8.2352987,15.639081 7.1128076,15.128479"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.00220211;stroke-miterlimit:4;stroke-dasharray:none;paint-order:fill markers stroke"
-       d="m 7.8284925,15.016432 c -0.5571332,-0.0093 -1.7363471,-0.02786 -2.6204754,-0.04126 -1.5618499,-0.02368 -4.1308014,-0.082 -4.1400142,-0.09399 -0.00251,-0.0033 -0.021802,-0.149631 -0.04287,-0.325249 -0.0580295,-0.483717 -0.0688949,-1.0838 -0.024522,-1.354296 0.069887,-0.426022 0.3208645,-1.051043 0.5780229,-1.439476 0.073626,-0.11121 0.2228026,-0.286027 0.3595134,-0.421305 C 2.7028828,10.584132 3.344552,10.227099 4.6574576,9.7264325 5.2133314,9.5144541 6.4542679,9.2216015 6.7054177,9.1524646 7.2744092,8.9958319 7.8029454,8.9182273 8.819441,8.842064 9.2312351,8.8112094 9.7762567,8.7663602 10.0306,8.742399 10.860334,8.664232 11.338782,8.64922 12.641423,8.660481 c 1.264689,0.010934 1.476402,0.021568 2.531098,0.1271348 1.263779,0.1264943 2.552612,0.3675001 3.699672,0.6918213 0.620508,0.1754434 1.055615,0.3472517 1.8424,0.7274989 1.093783,0.528616 1.408945,0.750947 1.714033,1.209163 0.273976,0.41149 0.503292,0.957859 0.595547,1.418955 0.04806,0.240219 0.03497,0.986773 -0.02284,1.302477 -0.04118,0.224906 -0.19729,0.875952 -0.214053,0.892715 -0.0056,0.0056 -0.356169,-1.99e-4 -0.779061,-0.01287 -1.474855,-0.0442 -5.23737,-0.05052 -7.24309,-0.01218 -1.925623,0.03682 -5.0948443,0.04195 -6.9366385,0.01124 z"
-       id="path7780"
-       sodipodi:nodetypes="cccssscsssssssssssscccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 11.913402,8.6322618 c 0.0073,2.1957702 0.01468,4.3905372 0.02202,6.5843022"
-       id="path7852"
-       inkscape:path-effect="#path-effect7854"
-       inkscape:original-d="m 11.913402,8.6322618 c 0.0083,2.1957672 0.01568,4.3905342 0.02202,6.5843022" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 11.098622,8.6542829 c 0.02203,2.1590751 0.04405,4.3171411 0.06606,6.4741961"
-       id="path7856"
-       inkscape:path-effect="#path-effect7858"
-       inkscape:original-d="m 11.098622,8.6542829 c 0.02302,2.1590651 0.04504,4.3171311 0.06606,6.4741961"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 10.327885,8.698325 c 0.03672,2.151742 0.07342,4.302467 0.110105,6.452175"
-       id="path7860"
-       inkscape:path-effect="#path-effect7862"
-       inkscape:original-d="m 10.327885,8.698325 c 0.0377,2.151725 0.0744,4.30245 0.110105,6.452175" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 12.816266,8.6102407 c -0.0073,2.1664023 -0.01468,4.3318083 -0.02202,6.4962173"
-       id="path7864"
-       inkscape:path-effect="#path-effect7866"
-       inkscape:original-d="m 12.816266,8.6102407 c -0.0063,2.1664063 -0.01368,4.3318113 -0.02202,6.4962173" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 13.564983,8.6322618 c 0,2.1957672 0,4.3905342 0,6.5843022"
-       id="path7868"
-       inkscape:path-effect="#path-effect7870"
-       inkscape:original-d="m 13.564983,8.6322618 c 10e-4,2.1957672 10e-4,4.3905342 0,6.5843022" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 14.357742,8.7203461 c -0.0073,2.1370399 -0.01468,4.2730859 -0.02202,6.4081329"
-       id="path7872"
-       inkscape:path-effect="#path-effect7874"
-       inkscape:original-d="m 14.357742,8.7203461 c -0.0063,2.1370439 -0.01368,4.2730889 -0.02202,6.4081329" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 15.084437,8.7423672 c -0.05875,2.1076538 -0.117473,4.2143368 -0.176169,6.3200488"
-       id="path7876"
-       inkscape:path-effect="#path-effect7878"
-       inkscape:original-d="M 15.084437,8.7423672 C 15.026714,10.85005 14.967991,12.956733 14.908268,15.062416"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 15.921238,8.8524726 c -0.08812,2.0709364 -0.176209,4.1409184 -0.264253,6.2099434"
-       id="path7880"
-       inkscape:path-effect="#path-effect7882"
-       inkscape:original-d="m 15.921238,8.8524726 c -0.08708,2.0709804 -0.175169,4.1409624 -0.264253,6.2099434"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 16.625912,8.984599 c 0.02204,1.175475 0.04406,2.349933 -0.0074,3.370161 -0.05146,1.020229 -0.176239,1.886374 -0.300904,2.751698"
-       id="path7884"
-       inkscape:path-effect="#path-effect7886"
-       inkscape:original-d="m 16.625912,8.984599 c 0.02302,1.175457 0.04504,2.349915 0.06606,3.523372 -0.123789,0.867179 -0.248572,1.733325 -0.374359,2.598487"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 17.39665,9.0506622 c 0.0073,1.1093998 0.01469,2.2177958 -0.0441,3.2306948 -0.05878,1.012899 -0.183568,1.930425 -0.308239,2.847122"
-       id="path7888"
-       inkscape:path-effect="#path-effect7890"
-       inkscape:original-d="m 17.39665,9.0506622 c 0.0083,1.1093938 0.01568,2.2177888 0.02202,3.3251828 -0.123788,0.918563 -0.248572,1.836089 -0.374358,2.752634" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 17.969198,9.2488519 c 0.01469,1.0506851 0.02937,2.1003571 -0.05145,3.0728431 -0.08083,0.972485 -0.256994,1.867991 -0.433011,2.762742"
-       id="path7892"
-       inkscape:path-effect="#path-effect7894"
-       inkscape:original-d="m 17.969198,9.2488519 c 0.01568,1.0506711 0.03036,2.1003431 0.04404,3.1490141 -0.175172,0.896541 -0.351337,1.792047 -0.528506,2.686571" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 18.607809,9.3589573 c -0.0073,0.7350257 -0.01469,1.4690617 -0.02939,2.0819687 -0.0147,0.612906 -0.03672,1.1047 -0.124863,1.688156 -0.08815,0.583456 -0.242293,1.258754 -0.396273,1.933334"
-       id="path7896"
-       inkscape:path-effect="#path-effect7898"
-       inkscape:original-d="m 18.607809,9.3589573 c -0.0063,0.7350357 -0.01368,1.4690717 -0.02202,2.2021077 -0.02102,0.492814 -0.04304,0.984608 -0.06606,1.475412 -0.153151,0.676327 -0.307295,1.351626 -0.462443,2.025939" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 19.158336,9.4910838 c -0.0073,0.8671532 -0.01469,1.7333152 -0.04043,2.3241442 -0.02575,0.590828 -0.06979,0.906457 -0.117496,1.266146 -0.04771,0.359689 -0.09909,0.763401 -0.165195,1.104629 -0.06611,0.341229 -0.146847,0.620156 -0.227401,0.898434"
-       id="path7900"
-       inkscape:path-effect="#path-effect7902"
-       inkscape:original-d="m 19.158336,9.4910838 c -0.0063,0.8671622 -0.01368,1.7333242 -0.02202,2.5984872 -0.04304,0.316641 -0.08708,0.632271 -0.132126,0.946906 -0.05038,0.404728 -0.101765,0.808439 -0.154148,1.211159 -0.07975,0.279939 -0.160488,0.558867 -0.242232,0.836801" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 19.774926,9.6672524 c 0,0.6542916 0,1.3075836 -0.02207,1.8323616 -0.02207,0.524779 -0.06611,0.921151 -0.128525,1.357872 -0.06241,0.436721 -0.143156,0.913835 -0.231272,1.299108 -0.08812,0.385274 -0.183539,0.678881 -0.278765,0.971885"
-       id="path7904"
-       inkscape:path-effect="#path-effect7906"
-       inkscape:original-d="m 19.774926,9.6672524 c 10e-4,0.6542916 10e-4,1.3075836 0,1.9598756 -0.04304,0.397387 -0.08708,0.793759 -0.132126,1.189138 -0.07975,0.478133 -0.160488,0.955247 -0.242232,1.43137 -0.09443,0.29462 -0.189849,0.588229 -0.286274,0.880843" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 20.325453,9.8874631 c -0.02205,0.7570269 -0.04407,1.5130839 -0.08449,2.0965809 -0.04042,0.583497 -0.09914,0.99455 -0.216624,1.493602 -0.117484,0.499051 -0.293649,1.086268 -0.469624,1.672854"
-       id="path7908"
-       inkscape:path-effect="#path-effect7910"
-       inkscape:original-d="m 20.325453,9.8874631 c -0.02102,0.7570569 -0.04304,1.5131139 -0.06606,2.2681709 -0.05772,0.412068 -0.116446,0.82312 -0.176169,1.23318 -0.175172,0.588241 -0.351337,1.175458 -0.528505,1.761686" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 20.787896,10.129695 c -0.04411,0.566124 -0.08816,1.131331 -0.139549,1.69653 -0.05139,0.565198 -0.110115,1.130395 -0.209258,1.669812 -0.09914,0.539418 -0.238606,1.053233 -0.377889,1.566379"
-       id="path7912"
-       inkscape:path-effect="#path-effect7914"
-       inkscape:original-d="m 20.787896,10.129695 c -0.04304,0.566208 -0.08708,1.131415 -0.132127,1.695623 -0.05772,0.566219 -0.116445,1.131415 -0.176168,1.695623 -0.13847,0.514835 -0.277934,1.02865 -0.418401,1.541475" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 21.184275,10.371927 c -0.0074,0.448745 -0.0147,0.896507 -0.05146,1.322167 -0.03676,0.42566 -0.102823,0.829372 -0.172561,1.236757 -0.06974,0.407384 -0.143141,0.818437 -0.220233,1.185414 -0.07709,0.366976 -0.157833,0.689944 -0.238401,1.012214"
-       id="path7916"
-       inkscape:path-effect="#path-effect7918"
-       inkscape:original-d="m 21.184275,10.371927 c -0.0063,0.448762 -0.01368,0.896524 -0.02202,1.343285 -0.06506,0.404728 -0.131126,0.80844 -0.19819,1.21116 -0.0724,0.412068 -0.145807,0.82312 -0.22021,1.23318 -0.07975,0.323982 -0.160488,0.646951 -0.242232,0.968927"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 21.69076,10.592138 c -0.04414,0.404599 -0.08818,0.808319 -0.12855,1.193697 -0.04037,0.385378 -0.07707,0.752389 -0.128493,1.075283 -0.05143,0.322894 -0.117487,0.601822 -0.198222,0.983552 -0.08074,0.381729 -0.176159,0.866182 -0.271431,1.349872"
-       id="path8090"
-       inkscape:path-effect="#path-effect8092"
-       inkscape:original-d="m 21.69076,10.592138 c -0.04304,0.404719 -0.08708,0.808439 -0.132127,1.211159 -0.0357,0.368025 -0.0724,0.735036 -0.110105,1.101054 -0.06506,0.279939 -0.131126,0.558867 -0.19819,0.8368 -0.09443,0.485474 -0.189849,0.969928 -0.286274,1.453391" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 22.153202,10.878412 c -0.03678,0.448673 -0.07348,0.896435 -0.121221,1.296437 -0.04774,0.400002 -0.106465,0.752334 -0.161506,1.123047 -0.05504,0.370713 -0.106424,0.759744 -0.176205,1.07156 -0.06978,0.311815 -0.157863,0.546701 -0.245742,0.781044"
-       id="path8127"
-       inkscape:path-effect="#path-effect8129"
-       inkscape:original-d="m 22.153202,10.878412 c -0.0357,0.448761 -0.0724,0.896523 -0.110105,1.343285 -0.05772,0.353344 -0.116446,0.705675 -0.176168,1.057012 -0.05038,0.390047 -0.101766,0.779078 -0.154148,1.167117 -0.08709,0.235896 -0.175169,0.470783 -0.264253,0.704674" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 22.527561,11.186707 c -0.102886,0.712852 -0.205651,1.424867 -0.286393,1.993753 -0.08074,0.568885 -0.139465,0.994619 -0.194548,1.310186 -0.05508,0.315567 -0.106464,0.521093 -0.15767,0.725917"
-       id="path8131"
-       inkscape:path-effect="#path-effect8133"
-       inkscape:original-d="m 22.527561,11.186707 c -0.101765,0.713014 -0.20453,1.425029 -0.308295,2.136044 -0.05772,0.426749 -0.116446,0.852482 -0.176169,1.277222 -0.05038,0.206535 -0.101765,0.41206 -0.154147,0.61659"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 22.70373,11.737234 c -0.07352,0.551377 -0.146921,1.101904 -0.227672,1.667107 -0.08075,0.565203 -0.168834,1.14508 -0.256792,1.724138"
-       id="path8594"
-       inkscape:path-effect="#path-effect8596"
-       inkscape:original-d="m 22.70373,11.737234 c -0.0724,0.551526 -0.145807,1.102053 -0.220211,1.65158 -0.08709,0.5809 -0.175169,1.160778 -0.264253,1.739665"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 22.945961,12.111592 c -0.05147,0.500031 -0.102856,0.999177 -0.161617,1.395483 -0.05876,0.396307 -0.124823,0.689917 -0.183544,0.954175 -0.05872,0.264259 -0.110103,0.499147 -0.161321,0.733292"
-       id="path8878"
-       inkscape:path-effect="#path-effect8880"
-       inkscape:original-d="m 22.945961,12.111592 c -0.05038,0.500144 -0.101765,0.999289 -0.154147,1.497433 -0.06506,0.29462 -0.131127,0.588229 -0.19819,0.880843 -0.05038,0.235896 -0.101764,0.470783 -0.154145,0.704674"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 23.210214,12.772224 c -0.08091,0.360415 -0.161654,0.720093 -0.224048,0.995355 -0.0624,0.275261 -0.106436,0.466105 -0.157828,0.667939 -0.05139,0.201833 -0.110114,0.414701 -0.168651,0.626898"
-       id="path8882"
-       inkscape:path-effect="#path-effect8884"
-       inkscape:original-d="m 23.210214,12.772224 c -0.07974,0.360678 -0.160488,0.720355 -0.242232,1.079033 -0.04304,0.191853 -0.08708,0.382698 -0.132126,0.572548 -0.05772,0.213874 -0.116446,0.426741 -0.176169,0.638611" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 23.254256,13.763173 c -0.169032,0.463002 -0.337861,0.925445 -0.506484,1.387327"
-       id="path8886"
-       inkscape:path-effect="#path-effect8888"
-       inkscape:original-d="M 23.254256,13.763173 C 23.086428,14.226615 22.9176,14.689058 22.747772,15.1505" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 9.5351259,8.676304 c 0.066095,2.129734 0.1321584,4.258438 0.1981897,6.386112"
-       id="path8890"
-       inkscape:path-effect="#path-effect8892"
-       inkscape:original-d="m 9.5351259,8.676304 c 0.067063,2.129704 0.1331265,4.258408 0.1981897,6.386112" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="M 8.8084304,8.7423672 C 8.8524938,10.85741 8.896536,12.971434 8.9405569,15.084437"
-       id="path8894"
-       inkscape:path-effect="#path-effect8896"
-       inkscape:original-d="m 8.8084304,8.7423672 c 0.045042,2.1150228 0.089084,4.2290468 0.1321265,6.3420698" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 7.9936506,8.8304515 c 0.066124,1.1534901 0.1321869,2.3059265 0.1798852,3.3555955 0.047698,1.049669 0.077059,1.996556 0.1063885,2.942432"
-       id="path8898"
-       inkscape:path-effect="#path-effect8900"
-       inkscape:original-d="m 7.9936506,8.8304515 c 0.067063,1.1534363 0.1331265,2.3058725 0.1981897,3.4573085 0.030362,0.947926 0.059723,1.894813 0.088084,2.840719" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 7.3109972,9.0066201 c 0.080821,1.1168019 0.1615651,2.2325359 0.2276202,3.2418379 0.066055,1.009301 0.1174367,1.912147 0.1687592,2.813958"
-       id="path8902"
-       inkscape:path-effect="#path-effect8904"
-       inkscape:original-d="m 7.3109972,9.0066201 c 0.081744,1.1167349 0.1624879,2.2324689 0.2422319,3.3472039 0.052383,0.903882 0.103765,1.806728 0.1541475,2.708592" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 6.6063228,9.1167255 c 0.058783,1.0360435 0.1175055,2.0710345 0.1872558,3.0620045 0.06975,0.990969 0.1504926,1.937857 0.2311447,2.883686"
-       id="path8906"
-       inkscape:path-effect="#path-effect8908"
-       inkscape:original-d="m 6.6063228,9.1167255 c 0.059723,1.0359905 0.1184457,2.0709815 0.1761686,3.1049715 0.081746,0.947925 0.1624879,1.894813 0.2422319,2.840719" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 5.9236695,9.3149152 c 0.058782,1.0433838 0.1175051,2.0857148 0.183583,3.0583318 0.066078,0.972617 0.1394801,1.875463 0.2127963,2.777253"
-       id="path8910"
-       inkscape:path-effect="#path-effect8912"
-       inkscape:original-d="m 5.9236695,9.3149152 c 0.059723,1.0433308 0.1184457,2.0856618 0.1761686,3.1269928 0.074405,0.903882 0.1478071,1.806728 0.2202107,2.708592" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 5.3511215,9.5131048 c 0.044088,0.9919902 0.088131,1.9829392 0.1322055,2.6949822 0.044075,0.712043 0.088116,1.145115 0.1432049,1.567211 0.055089,0.422095 0.1211508,0.833147 0.1870322,1.243076"
-       id="path8914"
-       inkscape:path-effect="#path-effect8916"
-       inkscape:original-d="m 5.3511215,9.5131048 c 0.045042,0.9919482 0.089084,1.9828972 0.1321264,2.9728452 0.045043,0.43409 0.089084,0.867162 0.1321265,1.299244 0.067064,0.412068 0.1331264,0.82312 0.1981897,1.23318" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 4.7345313,9.6892735 c 0.051453,0.7791385 0.1028351,1.5572165 0.1468796,2.2105155 0.044044,0.653299 0.080745,1.181794 0.150564,1.692001 0.069819,0.510207 0.1725814,1.002001 0.2751044,1.492647"
-       id="path8918"
-       inkscape:path-effect="#path-effect8920"
-       inkscape:original-d="m 4.7345313,9.6892735 c 0.052383,0.7790775 0.1037651,1.5571555 0.1541476,2.3342345 0.037702,0.529516 0.074404,1.058011 0.1101054,1.585517 0.103767,0.492814 0.20653,0.984608 0.308295,1.475412" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 4.1179412,9.8874631 c 0.0441,0.8084909 0.088142,1.6159299 0.1395478,2.3279679 0.051406,0.712038 0.1101278,1.328616 0.1725942,1.7911 0.062466,0.462483 0.1285283,0.770772 0.1943428,1.077906"
-       id="path8922"
-       inkscape:path-effect="#path-effect8924"
-       inkscape:original-d="m 4.1179412,9.8874631 c 0.045042,0.8084399 0.089084,1.6158789 0.1321265,2.4223189 0.059724,0.617602 0.1184457,1.23418 0.1761686,1.84977 0.067064,0.309301 0.1331264,0.61759 0.1981897,0.924885" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 3.5894354,10.085653 c 0.036764,0.624985 0.073466,1.248916 0.1248993,1.78847 0.051433,0.539555 0.1174954,0.994648 0.1651534,1.508442 0.047658,0.513794 0.077019,1.086331 0.1063264,1.65783"
-       id="path8926"
-       inkscape:path-effect="#path-effect8928"
-       inkscape:original-d="m 3.5894354,10.085653 c 0.037702,0.62493 0.074404,1.248861 0.1101054,1.871791 0.067065,0.456112 0.1331264,0.911205 0.1981897,1.365307 0.030362,0.573559 0.059723,1.146096 0.088084,1.717644" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 3.193056,10.305864 c 0.022058,0.617624 0.044079,1.234214 0.069787,1.762738 0.025708,0.528524 0.055069,0.968937 0.095461,1.446079 0.040391,0.477142 0.091773,0.990957 0.1430466,1.503693"
-       id="path8930"
-       inkscape:path-effect="#path-effect8932"
-       inkscape:original-d="m 3.193056,10.305864 c 0.023021,0.61759 0.045042,1.23418 0.066063,1.84977 0.030362,0.44143 0.059723,0.881843 0.088084,1.321265 0.052384,0.514835 0.103765,1.02865 0.1541475,1.541475" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 2.7526345,10.680222 c 0.066153,0.793835 0.1322161,1.586593 0.1982896,2.313302 0.066074,0.726709 0.1321355,1.387328 0.1980898,2.046871"
-       id="path8934"
-       inkscape:path-effect="#path-effect8936"
-       inkscape:original-d="m 2.7526345,10.680222 c 0.067063,0.793759 0.1331265,1.586517 0.1981897,2.378276 0.067064,0.661646 0.1331264,1.322265 0.1981897,1.981897" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 2.2461498,10.988517 c 0.1102778,0.720482 0.2203832,1.439837 0.3010874,2.100451 0.080704,0.660613 0.1320857,1.262511 0.1833762,1.863343"
-       id="path8938"
-       inkscape:path-effect="#path-effect8940"
-       inkscape:original-d="m 2.2461498,10.988517 c 0.1111053,0.720355 0.2212107,1.43971 0.3303161,2.158065 0.052383,0.602922 0.103765,1.204819 0.1541475,1.805729" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 2.0479601,11.208728 c 0.073526,0.66173 0.146929,1.322362 0.2019529,1.957288 0.055024,0.634926 0.091725,1.244164 0.1283632,1.852358"
-       id="path8942"
-       inkscape:path-effect="#path-effect8944"
-       inkscape:original-d="m 2.0479601,11.208728 c 0.074404,0.661632 0.1478071,1.322264 0.2202107,1.981897 0.037703,0.610261 0.074404,1.219499 0.1101054,1.827749" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 1.7176439,11.583086 c 0.073559,0.529623 0.1469625,1.058129 0.1982996,1.564589 0.051337,0.506459 0.080698,0.990913 0.1212289,1.31396 0.040531,0.323048 0.091912,0.484532 0.1429138,0.644823"
-       id="path8946"
-       inkscape:path-effect="#path-effect8948"
-       inkscape:original-d="m 1.7176439,11.583086 c 0.074404,0.529506 0.1478072,1.058012 0.2202108,1.585517 0.030362,0.485474 0.059723,0.969928 0.088084,1.453391 0.052383,0.162492 0.103765,0.323976 0.1541475,0.484464" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 1.4974332,11.759255 c 0.066187,0.588327 0.13225,1.175556 0.183611,1.715062 0.051361,0.539507 0.088062,1.031301 0.124684,1.522036"
-       id="path8950"
-       inkscape:path-effect="#path-effect8952"
-       inkscape:original-d="m 1.4974332,11.759255 c 0.067063,0.588228 0.1331264,1.175457 0.1981897,1.761686 0.037702,0.492814 0.074404,0.984608 0.1101053,1.475412" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 1.2552013,12.221697 c 0.058853,0.500247 0.1175755,0.999391 0.1763083,1.469184 0.058733,0.469794 0.1174545,0.910206 0.176029,1.349514"
-       id="path8954"
-       inkscape:path-effect="#path-effect8956"
-       inkscape:original-d="m 1.2552013,12.221697 c 0.059723,0.500145 0.1184458,0.999289 0.1761686,1.497433 0.059724,0.441431 0.1184458,0.881843 0.1761687,1.321265" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 1.0570116,12.750203 c 0.080866,0.727794 0.1616098,1.454489 0.2422319,2.180087"
-       id="path8958"
-       inkscape:path-effect="#path-effect8960"
-       inkscape:original-d="m 1.0570116,12.750203 c 0.081744,0.727696 0.1624879,1.454391 0.2422319,2.180087" />
-    <ellipse
-       style="fill:#ffffff;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;paint-order:fill markers stroke"
-       id="path4899"
-       cx="11.318498"
-       cy="16.605972"
-       rx="0.27145511"
-       ry="0.29505992" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 10.456923,16.523355 0.07081,0.306862"
-       id="path5083" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 12.227283,16.523355 -0.118024,0.330467"
-       id="path5085" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 5.2638688,15.154277 5.2166592,1.487102"
-       id="path6003" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 12.250887,16.594169 5.853989,-1.463497"
-       id="path6038" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-77.svg b/htdocs/public/symbols/svgicons/94-77.svg
deleted file mode 100755
index 1e59f4a8736cb6aa7bdedce05e5d56a16d120b2d..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-77.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24"
-   height="24"
-   version="1.1"
-   id="svg12"
-   sodipodi:docname="94-77.svg"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">
-  <defs
-     id="defs16" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="9.8333333"
-     inkscape:cx="11.898305"
-     inkscape:cy="12"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg12" />
-  <metadata
-     id="metadata7">image/svg+xml<rdf:RDF>
-  <cc:Work
-     rdf:about="">
-    <dc:format>image/svg+xml</dc:format>
-    <dc:type
-       rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-    <dc:title></dc:title>
-  </cc:Work>
-</rdf:RDF>
-</metadata>
-  <path
-     id="path3297"
-     d="m 9.4318167,19.959558 5.2158203,-0.08404 C 15.198885,13.61403 17.045425,6.7939484 11.735056,1.0102032 6.6137959,6.9620427 8.4936644,13.753557 9.4318167,19.959558 Z"
-     inkscape:connector-curvature="0"
-     style="fill:#4d4d4d;fill-rule:evenodd;stroke:#000000;stroke-width:0.96552008;stroke-linejoin:round" />
-  <path
-     id="path3307"
-     d="M 9.4318167,19.959558 7.9622442,22.989835 C 7.0061223,21.060485 5.9111082,18.425398 6.313077,16.749083 6.5771832,15.647682 8.5190345,14.329627 8.5190345,14.329627 Z"
-     inkscape:connector-curvature="0"
-     style="fill:#4d4d4d;fill-rule:evenodd;stroke:#000000;stroke-width:0.96552008;stroke-linejoin:round" />
-  <path
-     d="m 14.644988,19.711289 1.566441,2.981355 c 0.893465,-1.959154 1.903012,-4.628151 1.447243,-6.290649 -0.299458,-1.092315 -2.282763,-2.347123 -2.282763,-2.347123 z"
-     id="path3309"
-     inkscape:connector-curvature="0"
-     style="fill:#4d4d4d;fill-rule:evenodd;stroke:#000000;stroke-width:0.96552008;stroke-linejoin:round" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-80.svg b/htdocs/public/symbols/svgicons/94-80.svg
deleted file mode 100755
index 810f68aee2b8a6c249ddf58fb90732bfedc910f1..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-80.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata11"/>
- <g id="g3" transform="matrix(0.25417844,0,0,0.25417844,3.6293682e-4,1.6054998)" fill="#333333">
-  <path d="m 47.209,81.789 -3.312,-6.008 h -13.25 c -0.414,-1.047 0.625,-3.32 0.625,-3.32 2.688,-3.523 11.594,-7.234 11.594,-7.234 l -2.688,-35 L 5.389,28.148 C -0.408,27.32 0.006,23.195 0.006,23.195 c 0,-3.32 6,-4.359 6,-4.359 L 40.592,14.922 43.069,4.555 H 38.311 V 3.102 h 6.406 L 47.413,0 49.694,3.102 h 6.422 v 1.453 h -4.758 l 2.477,10.367 34.57,3.914 c 0,0 6.008,1.039 6.008,4.359 0,0 0.414,4.125 -5.383,4.953 l -34.781,2.078 -2.694,35 c 0,0 8.913,3.711 11.594,7.233 0,0 1.039,2.272 0.625,3.32 H 50.53 l -3.321,6.01" id="path5" inkscape:connector-curvature="0"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-82.svg b/htdocs/public/symbols/svgicons/94-82.svg
deleted file mode 100755
index c5a68e3441e8bd2d44d9b722dc0deef151339666..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-82.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
-   sodipodi:docname="94-82.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="19.666667"
-     inkscape:cx="6.4566177"
-     inkscape:cy="16.399191"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     inkscape:connector-curvature="0"
-     style="fill:#333333;stroke-width:0.63999999"
-     id="path13"
-     d="m 12.000001,5.8108807 c -0.06939,5e-7 -0.110425,0.047717 -0.249439,0.4263476 -0.01641,0.044691 -0.04954,0.2352874 -0.04954,0.2352874 0,0 -0.111076,0.00531 -0.139757,0.00531 -0.05545,2e-6 -0.13044,0.049441 -0.168064,0.1096821 -0.116723,0.1869076 -0.298973,1.2155808 -0.298973,1.6894683 0,0.2940804 -0.02464,0.4703348 -0.07077,0.5059562 C 10.984544,8.8129951 10.78045,8.9056705 10.57058,8.9881478 10.20028,9.1336764 10.107445,9.1423139 7.428704,9.2853526 5.3073894,9.3986271 4.6396301,9.4519596 4.5398016,9.5153325 4.263001,9.6910474 4.2485894,10.097023 4.4920384,10.865139 l 0.1256045,0.396273 c 0,0 6.5296631,1.080907 6.5296631,1.080907 l 0.548414,4.014035 -0.145064,0.04069 c -0.07974,0.02207 -0.615417,0.08098 -1.190589,0.130912 -0.5751728,0.04993 -1.0782982,0.117375 -1.1180576,0.150372 -0.1598324,0.132651 -0.034232,1.178206 0.1415272,1.178206 0.2773999,0 1.3030394,0.137921 1.3568814,0.182214 0.03842,0.03163 0.919866,0.150372 1.259583,0.150371 0.339717,10e-7 1.221143,-0.118747 1.259583,-0.150371 0.05386,-0.04428 1.079482,-0.182214 1.356882,-0.182214 0.175756,0 0.30136,-1.045557 0.141526,-1.178207 -0.03978,-0.03298 -0.542883,-0.100441 -1.118056,-0.150371 -0.575173,-0.04993 -1.110851,-0.108834 -1.19059,-0.130912 l -0.145063,-0.04069 0.548413,-4.014036 c 0,0 6.529665,-1.080907 6.529666,-1.080906 l 0.125601,-0.39628 C 19.75141,10.097018 19.736998,9.6910442 19.460199,9.5153282 19.360369,9.4519551 18.692611,9.398622 16.571297,9.2853481 13.892555,9.1423085 13.799721,9.133671 13.429416,8.9881436 13.219546,8.9056665 13.015453,8.8129905 12.976531,8.7829308 c -0.04612,-0.035622 -0.07076,-0.2118762 -0.07076,-0.5059565 0,-0.473888 -0.182249,-1.5025627 -0.298975,-1.6894686 -0.03762,-0.060242 -0.112608,-0.1096844 -0.168061,-0.1096828 -0.02869,-2e-6 -0.137989,-0.00531 -0.137989,-0.00531 0,0 -0.03313,-0.1905976 -0.04954,-0.2352868 C 12.112193,5.8585947 12.069395,5.8108786 12,5.8108786 Z" />
-</svg>
diff --git a/htdocs/public/symbols/svgicons/94-83.svg b/htdocs/public/symbols/svgicons/94-83.svg
deleted file mode 100755
index 2837088deb1382160c017ed86c76a9f2ba3f293b..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/94-83.svg
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="24"
-   height="24"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
-   sodipodi:docname="94-83.svg">
-  <defs
-     id="defs9" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1865"
-     inkscape:window-height="1025"
-     id="namedview7"
-     showgrid="false"
-     inkscape:zoom="32"
-     inkscape:cx="5.4950825"
-     inkscape:cy="14.589176"
-     inkscape:window-x="55"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <metadata
-     id="metadata11">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3"
-     transform="matrix(0.25417844,0,0,0.25417844,3.6293682e-4,3.20202)"
-     style="fill:#333333" />
-  <g
-     id="g3388"
-     transform="matrix(-0.00411188,-0.0177399,0.0177399,-0.00411188,1.8254364,20.496882)"
-     style="fill:#4d4d4d">
-    <path
-       inkscape:connector-curvature="0"
-       d="m 14.765,576.732 13.394,5.834 c 0,0 -14.377,5.953 -14.425,6.161 C 13.686,588.933 0,700.341 0,700.341 c 0,0 56.171388,14.76393 58.943388,9.39893 2.772,-5.365 43.074602,-96.35537 43.074602,-96.35537 0,0 144.08575,43.97258 164.40175,50.09958 20.316,6.127 58.97,20.325 58.97,20.325 L 275.487,1069.888 260.77389,1307.8528 c 0,0 83.23646,26.8259 86.02846,16.6599 2.792,-10.167 140.20085,-596.70168 140.20085,-596.70168 0,0 20.429,5.17 39.623,9.07 19.194,3.901 109.1458,11.68398 115.5018,-14.80502 6.355,-26.489 -64.54128,-54.75626 -96.89928,-63.12726 -32.358,-8.37 -39.103,-10.37 -39.103,-10.37 0,0 134.68085,-590.009666 136.10185,-596.451666 2.178,-9.872 -84.32346,-24.019872 -84.32346,-24.019872 C 558.38368,18.105466 465.036,249.822 465.036,249.822 L 340.92026,617.72486 c 0,0 -14.559,-0.299 -61.054,-8.028 -25.032,-4.161 -170.75348,-27.86756 -170.75348,-27.86756 0,0 4.39261,-98.47337 4.71861,-103.82137 C 114.45439,467.77593 56.014,457.62 56.014,457.62 c 0,0 -36.357,106.482 -36.309,106.275 0.048,-0.207 10.062,13.144 10.062,13.144 z"
-       id="path3390"
-       style="fill:#4d4d4d"
-       sodipodi:nodetypes="ccccscscccccccccccccscccscc" />
-  </g>
-  <g
-     id="g4645"
-     transform="translate(-0.02734375)">
-    <rect
-       y="9.1875"
-       x="8.4375"
-       height="1.4375"
-       width="2.59375"
-       id="rect4604"
-       style="fill:#1a1a1a;stroke:#1a1a1a;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       y="9.1875"
-       x="5.078125"
-       height="1.4375"
-       width="2.59375"
-       id="rect4604-6"
-       style="fill:#1a1a1a;stroke:#1a1a1a;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       y="9.1875"
-       x="16.382812"
-       height="1.4375"
-       width="2.59375"
-       id="rect4604-2"
-       style="fill:#1a1a1a;stroke:#1a1a1a;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       y="9.1875"
-       x="13.023438"
-       height="1.4375"
-       width="2.59375"
-       id="rect4604-6-9"
-       style="fill:#1a1a1a;stroke:#1a1a1a;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/95-1.svg b/htdocs/public/symbols/svgicons/95-1.svg
deleted file mode 100755
index ce3f30782e012a27a96626194e440be6c35a1f9f..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/95-1.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" height="24" width="24" version="1.1"><metadata id="metadata3412"/><g><g><g><g>
-
- <circle r="12" cy="12" cx="12" id="path3416" fill="#0000ff" fill-rule="evenodd"/>
-<text id="textoverlay"><tspan id="tspanoverlay" font-family="Sans-Serif" text-anchor="middle" text-align="center" word-spacing="0" letter-spacing="0" font-weight="bold" x="12" y="12" fill="#ffffff" font-size="11" dy="4.0" dx="-0.4">WX</tspan></text></g></g></g></g></svg>
diff --git a/htdocs/public/symbols/svgicons/95-2.svg b/htdocs/public/symbols/svgicons/95-2.svg
deleted file mode 100755
index 9f31dca64bcf6a301a6c42ce34e522f8b6a642f7..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/95-2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 24 24" height="24" width="24" version="1.1">
- <metadata id="metadata3412"/>
- <circle r="12" cy="12" cx="12" id="path3416" fill="#0000ff" fill-rule="evenodd"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/96-1.svg b/htdocs/public/symbols/svgicons/96-1.svg
deleted file mode 100755
index 15d8c948fac5228f4f4ba0150c21999778b4d652..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/96-1.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata4106"/>
- <g inkscape:label="Ebene 1" inkscape:groupmode="layer" id="layer1" transform="translate(-317.72197,-453.96166)">
-  <g id="g4068" transform="matrix(0.24863142,0.13038661,-0.13038661,0.24863142,298.90668,257.36886)">
-   <g transform="matrix(0.83109018,-0.84335752,0.84335752,0.83109018,-425.72131,478.52845)" id="g4046">
-    <path d="m 443.65385,563.57293 c -1.05193,-0.0129 -2.10701,0.0598 -3.12744,0.18048 l 0.06,2.75094 c 0.99036,-0.12733 2.00989,-0.19417 3.0337,-0.18162 12.83055,0.15709 23.11001,11.57671 22.93914,25.53274 -0.002,0.17643 -0.001,0.35569 -0.007,0.53121 l 2.50057,-0.0319 c 0.004,-0.15699 0.004,-0.31113 0.006,-0.46872 0.18944,-15.473 -11.18011,-28.13898 -25.40528,-28.31315 z" id="path3194" inkscape:connector-curvature="0" stroke="#000000" stroke-width="0"/>
-    <path d="m 442.89836,570.53348 c -0.79783,-0.01 -1.59802,0.0454 -2.37195,0.13688 l 0.0455,2.52833 c 0.75111,-0.0966 1.52436,-0.14725 2.30084,-0.13774 9.73108,0.11913 16.95911,8.33817 16.82952,18.92284 -0.002,0.1338 -10e-4,0.26976 -0.005,0.40289 l 2.46472,-0.0242 c 0.003,-0.11907 0.003,-0.23598 0.004,-0.35547 0.14368,-11.73519 -8.47933,-21.34145 -19.26811,-21.47354 z" id="path3194-4" inkscape:connector-curvature="0" sodipodi:nodetypes="cccscccccc" stroke="#000000" stroke-width="0"/>
-    <path d="m 442.20847,576.88946 c -0.56577,-0.007 -1.13323,0.0322 -1.68206,0.0971 l 0.0323,2.42658 c 0.53265,-0.0685 1.081,-0.10442 1.63165,-0.0977 6.90079,0.46331 10.91426,5.09 11.13804,12.78552 -10e-4,0.0949 -7.7e-4,0.19129 -0.003,0.28572 l 2.54446,-0.0171 c 0.002,-0.0845 0.002,-0.16735 0.003,-0.25208 0.10189,-8.32201 -6.01312,-15.13429 -13.66399,-15.22797 z" id="path3194-0" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc" stroke="#000000" stroke-width="0"/>
-   </g>
-   <g transform="translate(4.3272904,0)" id="g4061">
-    <path inkscape:connector-curvature="0" d="m 428.82958,632.50381 c 1.51739,8.39514 3.18843,16.70366 3.25039,25.86381 13.43389,-7.07008 16.24573,-8.60045 29.67957,-15.67062 -4.84405,-3.37683 -9.59166,-7.39353 -13.56307,-11.22903 -6.14118,1.98174 -12.37667,2.63171 -19.36689,1.03584 z m 3.03559,3.5588 2.90054,0.34654 c 1.65734,7.68989 1.24429,15.11973 -0.19508,18.63703 -0.5999,-6.11993 -0.9108,-10.44519 -2.70546,-18.98357 z" id="path4401"/>
-    <path inkscape:connector-curvature="0" d="m 398.11826,602.8218 c 5.46403,15.3042 20.05405,26.26585 37.2409,26.32057 17.18753,0.0547 31.81943,-10.80285 37.38029,-26.07291 l -74.62119,-0.24766 z m 6.11343,4.37701 6.55964,0.18844 c 4.52018,8.23085 9.05564,11.77782 15.40988,16.82483 -9.13544,-2.75636 -16.94711,-7.80772 -21.96952,-17.01327 z" id="path3423-9-5"/>
-    <g id="g4055" transform="translate(2.1996971,2)">
-     <rect y="594.76" x="431.59" height="8.08" width="3.283" id="rect4051" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
-     <ellipse id="path4053" cx="433.23" cy="594.01" rx="3.409" ry="3.788" stroke="#000000" stroke-linejoin="round" stroke-linecap="round" stroke-width="0"/>
-    </g>
-   </g>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/96-2.svg b/htdocs/public/symbols/svgicons/96-2.svg
deleted file mode 100755
index 2d693f80ad9a46263f72433ab90a4ac58b6bc037..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/96-2.svg
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata3212"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <g id="g3121">
-   <path d="m 587.001,191.775 c 0,-34.867 -24.173,-64.178 -56.635,-72.094 -0.487,-0.119 -0.977,-0.23 -1.468,-0.34 -1.321,0.132 -2.625,-0.138 -3.761,-0.734 -4.019,-0.676 -8.14,-1.047 -12.347,-1.047 -14.877,0 -29.225,4.381 -41.491,12.671 -3.054,2.063 -7.2,1.261 -9.263,-1.792 -0.774,-1.146 -1.145,-2.447 -1.144,-3.735 0.002,-2.139 1.03,-4.239 2.936,-5.526 14.481,-9.786 31.411,-14.959 48.962,-14.959 1.654,0 3.297,0.051 4.928,0.142 C 499.864,65.46 460.832,40.014 417.312,40.014 c -46.851,0 -87.649,29.456 -103.479,71.663 -2.983,7.955 -5.083,16.361 -6.166,25.111 -0.418,3.378 -3.293,5.852 -6.612,5.852 -0.207,0 -0.417,-0.019 -0.627,-0.039 -0.067,-0.006 -0.133,-0.004 -0.2,-0.012 -3.656,-0.452 -6.253,-3.783 -5.801,-7.439 1.036,-8.369 2.905,-16.456 5.507,-24.189 -42.585,1.412 -76.817,35.727 -78.098,78.348 8.087,0.308 15.9,2.767 22.695,7.162 1.975,1.276 3.044,3.421 3.043,5.609 -0.001,1.24 -0.342,2.495 -1.065,3.614 -2,3.095 -6.129,3.979 -9.224,1.978 -4.437,-2.869 -9.495,-4.561 -14.755,-4.959 -0.804,-0.062 -1.611,-0.097 -2.423,-0.097 -14.922,0 -27.461,10.372 -30.804,24.284 11.929,-3.955 24.376,-6.65 37.163,-7.951 5.847,-0.594 11.765,-0.901 17.736,-0.901 5.979,0 11.893,0.314 17.732,0.909 11.826,1.203 23.331,3.594 34.384,7.062 20.481,6.429 39.406,16.55 55.945,29.621 6.605,5.221 12.835,10.904 18.624,17.02 h 135.23 c 44.668,0 80.877,-36.205 80.885,-80.871 0,-0.006 -10e-4,-0.01 -10e-4,-0.014 z" id="path3123" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-   <path d="m 521.806,465.719 c -1.138,0 -2.266,0.055 -3.387,0.139 -14.255,1.062 -27.023,8.777 -34.622,21.114 -2.721,4.414 -8.506,5.79 -12.921,3.07 -2.88,-1.773 -4.455,-4.852 -4.456,-8.002 0,-1.681 0.439,-3.382 1.385,-4.918 11.22,-18.215 30.377,-29.352 51.597,-30.136 -1.799,-60.006 -50.021,-108.336 -109.977,-110.315 3.667,10.895 6.302,22.287 7.761,34.077 0.637,5.147 -3.02,9.836 -8.166,10.473 -0.094,0.012 -0.187,0.009 -0.281,0.018 -0.296,0.027 -0.592,0.055 -0.884,0.055 -4.672,0 -8.72,-3.482 -9.308,-8.238 -1.525,-12.323 -4.483,-24.163 -8.688,-35.367 -9.626,-25.658 -25.811,-47.963 -46.402,-65.029 -2.799,-2.319 -5.68,-4.541 -8.637,-6.662 -25.652,-18.406 -57.028,-29.169 -90.619,-29.169 -2.87,0 -5.725,0.084 -8.565,0.239 -15.718,0.86 -30.94,4.069 -45.253,9.344 -38.31,14.117 -70.116,42.994 -87.554,81 2.307,-0.129 4.63,-0.201 6.969,-0.201 24.705,0 48.537,7.281 68.921,21.057 2.683,1.812 4.13,4.769 4.133,7.779 0.002,1.812 -0.52,3.645 -1.61,5.259 -2.904,4.298 -8.741,5.427 -13.038,2.522 -17.267,-11.669 -37.463,-17.836 -58.405,-17.836 -5.904,0 -11.693,0.5 -17.333,1.446 -1.631,0.87 -3.511,1.261 -5.415,1.056 -0.665,0.148 -1.328,0.304 -1.988,0.465 -45.703,11.139 -79.73,52.417 -79.73,101.501 0,0.011 -0.001,0.021 -0.001,0.031 0.017,62.868 50.986,113.828 113.86,113.828 H 405.6 512.417 c 29.816,0 53.992,-24.176 53.992,-53.997 0,-24.594 -20.009,-44.603 -44.603,-44.603 z" id="path3125" inkscape:connector-curvature="0" fill="#b3b3b3"/>
-  </g>
-  <path inkscape:connector-curvature="0" d="m 21.88398,1038.5155 c -0.04769,0 -0.09489,0 -0.141856,0.01 -0.597215,0.045 -1.132066,0.3756 -1.450436,0.9034 -0.11399,0.189 -0.356287,0.2478 -0.541245,0.1314 -0.120706,-0.076 -0.186688,-0.2076 -0.186768,-0.3423 0,-0.072 0.01841,-0.1448 0.05806,-0.2105 0.469996,-0.7795 1.272514,-1.256 2.161522,-1.2895 -0.07535,-2.5677 -2.09554,-4.6358 -4.607196,-4.7205 0.153595,0.4662 0.263928,0.9537 0.325044,1.4582 0.0267,0.2202 -0.126455,0.4209 -0.342093,0.4481 -0.0039,5e-4 -0.0077,4e-4 -0.01174,8e-4 -0.01238,0 -0.02485,0 -0.03703,0 -0.195694,0 -0.365293,-0.1491 -0.389981,-0.3525 -0.06386,-0.5273 -0.187772,-1.0339 -0.363886,-1.5134 -0.403249,-1.0979 -1.081283,-2.0523 -1.943954,-2.7826 -0.117288,-0.099 -0.237952,-0.1944 -0.361794,-0.2851 -1.07473,-0.7876 -2.389102,-1.2481 -3.796314,-1.2481 -0.120224,0 -0.239844,0 -0.3587801,0.01 -0.6584926,0.037 -1.2961572,0.174 -1.895825,0.3997 -1.6048771,0.604 -2.9373425,1.8398 -3.6678885,3.4661 0.096661,-0.01 0.1939652,-0.01 0.291953,-0.01 1.0349234,0 2.0333377,0.3115 2.8872831,0.901 0.1123824,0.077 0.1730167,0.204 0.1731373,0.3328 8.04e-5,0.077 -0.021793,0.156 -0.06747,0.225 -0.1216706,0.184 -0.3661778,0.2323 -0.5461907,0.1079 -0.7233486,-0.4993 -1.5694133,-0.7631 -2.4467601,-0.7631 -0.2473619,0 -0.4898988,0.021 -0.7261633,0.062 -0.068354,0.037 -0.1470822,0.054 -0.2268556,0.045 -0.027864,0.01 -0.055648,0.013 -0.083311,0.02 -1.9144816,0.4768 -3.33994892,2.243 -3.33994892,4.3434 0,5e-4 -4.021e-5,9e-4 -4.021e-5,0 6.8354e-4,2.6902 2.13594933,4.8707 4.76987943,4.8707 l 11.9984616,0 4.47487,0 c 1.249034,0 2.261883,-1.0344 2.261883,-2.3105 0,-1.0524 -0.838265,-1.9086 -1.868564,-1.9086 z" id="path4305" fill="#b3b3b3" stroke="#808080" stroke-width="0.495"/>
-  <g id="g4307" transform="matrix(0.04105515,0,0,0.04105515,-0.37250317,1028.0717)">
-   <path inkscape:connector-curvature="0" d="m 45.378,497.42 c -3.818,10.365 1.488,21.863 11.853,25.682 2.281,0.84 4.616,1.238 6.912,1.238 8.14,0 15.791,-5.008 18.769,-13.092 l 49.855,-135.322 -42.627,0 -44.762,121.494 z" id="path4309" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" d="m 181.378,497.42 c -3.818,10.365 1.488,21.863 11.853,25.682 2.281,0.84 4.616,1.238 6.912,1.238 8.14,0 15.791,-5.008 18.769,-13.092 l 49.855,-135.322 -42.627,0 -44.762,121.494 z" id="path4311" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" d="m 317.379,497.42 c -3.818,10.365 1.488,21.863 11.853,25.682 2.28,0.84 4.616,1.238 6.912,1.238 8.14,0 15.79,-5.008 18.769,-13.092 l 49.855,-135.322 -42.628,0 -44.761,121.494 z" id="path4313" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" d="m 498.139,375.926 -44.76,121.494 c -3.818,10.365 1.488,21.863 11.853,25.682 2.28,0.84 4.616,1.238 6.912,1.238 8.14,0 15.79,-5.008 18.769,-13.092 l 49.855,-135.322 -42.629,0 z" id="path4315" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" d="m 91.823,555.93 c -3.818,10.363 1.488,21.861 11.853,25.68 2.281,0.842 4.616,1.24 6.912,1.24 8.14,0 15.791,-5.008 18.769,-13.092 l 71.411,-193.832 -42.628,0 -66.317,180.004 z" id="path4317" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" d="m 227.823,555.93 c -3.818,10.363 1.488,21.861 11.853,25.68 2.281,0.842 4.616,1.24 6.912,1.24 8.141,0 15.791,-5.008 18.77,-13.092 l 71.41,-193.832 -42.628,0 -66.317,180.004 z" id="path4319" fill="#b3b3b3"/>
-   <path inkscape:connector-curvature="0" d="m 363.822,555.93 c -3.818,10.363 1.488,21.861 11.854,25.68 2.281,0.842 4.615,1.24 6.912,1.24 8.141,0 15.791,-5.008 18.77,-13.092 l 71.41,-193.832 -42.629,0 -66.317,180.004 z" id="path4321" fill="#b3b3b3"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/97-1.svg b/htdocs/public/symbols/svgicons/97-1.svg
deleted file mode 100755
index da0c794672be032c91a50f568a27f8b130b23f93..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/97-1.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="24" height="24" viewBox="0 0 24 24" enable-background="new 0 0 100 68.387">
- <metadata id="metadata15"/>
- <path inkscape:connector-curvature="0" d="m 12.349522,5.5937539 0,-0.5564514 0.72689,0 0,-0.352091 c 0,-0.6262128 0.547149,-1.1323266 1.223973,-1.1323266 0.675731,0 1.222335,0.5063872 1.222335,1.1323266 l 0,0.352091 0.711293,0 0,0.5564514 -3.884491,0 z" id="path3" fill="#0000ff" stroke="#000000" stroke-width="0"/>
- <g id="g4137" transform="matrix(0.99169525,0,0,0.99169525,0.09965485,0.10761902)">
-  <path id="path5" d="m 18.133659,15.805247 c -1.105106,0 -2.000949,0.895303 -2.000949,1.999789 0,1.104698 0.895843,2.000211 2.000949,2.000211 1.104261,0 1.999051,-0.895513 1.999051,-2.000211 0,-1.104486 -0.89479,-1.999789 -1.999051,-1.999789 z m -4.23e-4,2.956815 c -0.528738,0 -0.957166,-0.428271 -0.957166,-0.956814 0,-0.528545 0.428428,-0.956183 0.957166,-0.956183 0.528108,0 0.956115,0.427428 0.956115,0.956183 0,0.528543 -0.428007,0.956814 -0.956115,0.956814 z" inkscape:connector-curvature="0" stroke="#000000" stroke-width="0.4"/>
-  <path id="path7" d="m 5.3582413,15.783389 c -1.1040294,0 -1.9996839,0.896239 -1.9996839,2.000421 0,1.104815 0.8954438,1.999579 1.9996839,1.999579 1.1048723,0 2.0003161,-0.894764 2.0003161,-1.999579 0,-1.104182 -0.8954438,-2.000421 -2.0003161,-2.000421 z m 0.00442,2.959234 c -0.528417,0 -0.956966,-0.427895 -0.956966,-0.956916 0,-0.52839 0.428549,-0.956285 0.956966,-0.956285 0.5284173,0 0.9567554,0.427895 0.9567554,0.956285 -2.108e-4,0.529021 -0.4283381,0.956916 -0.9567554,0.956916 z" inkscape:connector-curvature="0" stroke="#000000" stroke-width="0.4"/>
-  <ellipse ry="3.917" rx="3.957" cy="12" cx="10.695" id="path4147" fill="#ff0000" stroke-width="0.1"/>
-  <path sodipodi:nodetypes="cccscsccscsssscscccccccccccccccccccc" id="path9" d="m 21.878581,11.460007 c 0.666324,0.12974 1.065414,0.417658 1.366258,2.062197 l 0.475711,2.968492 c 0.171341,0.965994 -0.374646,1.318312 -1.055072,1.318312 l -1.634669,0 c 0,-1.600589 -1.296688,-2.902683 -2.897041,-2.902683 -1.600589,0 -2.898687,1.302329 -2.898687,2.902683 l -6.9861805,0 c 0,-1.600589 -1.2973932,-2.902683 -2.8979817,-2.902683 -1.6012936,0 -2.8986868,1.302329 -2.8986868,2.902683 l -1.3545068,0 c -0.47688607,0 -0.84871145,-0.361015 -0.84871145,-0.827089 l 0,-9.7605333 c 0,-0.5318841 0.41977253,-0.9591779 0.93426415,-0.9591779 l 15.0765561,0 2.463401,0 c 0.666325,0 1.153788,0.3309294 1.394698,0.9107608 z m -5.846731,-3.7820206 0,3.6337136 4.183427,0 -1.644539,-3.6337136 z m -4.193965,3.1133456 0,-2.487845 -2.4878456,0 0,2.487845 -2.4883156,0 0,2.488316 2.4883156,0 0,2.48761 2.4878456,0 0,-2.48761 2.487846,0 0,-2.488316 z" inkscape:connector-curvature="0" fill="#ffffff" stroke="#000000" stroke-width="0.7"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/97-2.svg b/htdocs/public/symbols/svgicons/97-2.svg
deleted file mode 100755
index 0685dd72c67f3d9473511b9abf28fc575ae6df17..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/97-2.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24" viewBox="0 0 24 24">
- <metadata id="metadata4733"/>
- <g inkscape:groupmode="layer" id="layer9" inkscape:label="Layer 1">
-  <path sodipodi:type="star" id="path4741" sodipodi:sides="4" sodipodi:cx="12" sodipodi:cy="12" sodipodi:r1="11.990243" sodipodi:r2="8.4783821" sodipodi:arg1="0" sodipodi:arg2="0.78539816" inkscape:flatsided="true" inkscape:rounded="-3.469447e-18" inkscape:randomized="0" d="M 23.990243,12 12,23.990243 0.00975704,12 12,0.00975704 Z" transform="matrix(0.88484358,0,0,0.8847113,1.381877,1.3834644)" fill="#ff0000" stroke="#ff0000" stroke-linejoin="round" stroke-linecap="round" stroke-width="3.145"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/98-1.svg b/htdocs/public/symbols/svgicons/98-1.svg
deleted file mode 100755
index 38cb96725fce33463bf4722fb51cde65480b4ef9..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/98-1.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.0">
- <metadata id="metadata3205"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-73)">
-  <text x="-35.536" y="68.786" id="text3301" font-family="RoadSign" font-size="72"><tspan sodipodi:role="line" id="tspan3303" x="-35.536" y="68.786"/>
-  </text>
-  <text x="-14.286" y="63.25" id="text3305" font-family="RoadSign" font-size="72"><tspan sodipodi:role="line" id="tspan3307" x="-14.286" y="63.25"/>
-  </text>
-  <text x="-10.536" y="52.54" id="text3309" font-family="RoadSign" font-size="72"><tspan sodipodi:role="line" id="tspan3311" x="-10.536" y="52.54"/>
-  </text>
-  <g id="g4201" transform="translate(-24.61803,17.041885)">
-   <path id="path3555" d="m 40.755457,59.2729 c -1.8e-5,-0.549346 -0.194586,-1.007152 -0.583704,-1.37342 -0.366262,-0.366222 -0.824068,-0.549344 -1.373419,-0.549368 -0.526493,2.4e-5 -0.984299,0.194592 -1.37342,0.583703 -0.36626,0.366269 -0.549382,0.81263 -0.549368,1.339085 -1.4e-5,0.526499 0.183108,0.984305 0.549368,1.373419 0.389121,0.366266 0.846927,0.549388 1.37342,0.549368 0.549351,2e-5 1.007157,-0.183102 1.373419,-0.549368 0.389118,-0.366224 0.583686,-0.82403 0.583704,-1.373419" inkscape:connector-curvature="0"/>
-   <path id="path3551" d="m 41.957199,64.938256 c -1.9e-5,-0.572241 -0.274702,-0.85837 -0.824052,-0.858387 l -2.300478,0 -1.716775,-3.227537 c -0.274697,-0.389114 -0.652388,-0.583682 -1.133071,-0.583703 -0.5036,2.1e-5 -0.88129,0.183144 -1.133071,0.549368 l -3.708234,3.639562 c -0.297582,0.297591 -0.446369,0.709617 -0.446361,1.236078 -8e-6,0.686725 0.21745,1.144531 0.652374,1.37342 l 4.188931,2.300478 -0.03434,4.18893 c -1.2e-5,0.686717 0.343342,1.030072 1.030065,1.030065 0.709586,7e-6 1.064386,-0.343348 1.0644,-1.030065 l 0,-5.150324 c -1.4e-5,-0.27467 -0.125911,-0.62947 -0.37769,-1.0644 l -2.815511,-1.510762 2.266143,-2.300478 0.961394,1.854117 c 0.137327,0.251809 0.377675,0.377706 0.721045,0.37769 l 2.74684,0 c 0.572239,1.6e-5 0.858368,-0.274668 0.858387,-0.824052" inkscape:connector-curvature="0"/>
-   <path id="path3547" d="m 47.857557,73.316117 c -2.7e-5,1.232373 -0.434978,2.283509 -1.304859,3.153408 -0.86993,0.86991 -1.921065,1.304863 -3.153408,1.304859 -1.232387,4e-6 -2.283522,-0.434949 -3.153408,-1.304859 -0.869924,-0.869899 -1.304876,-1.921035 -1.304859,-3.153408 -1.7e-5,-1.232357 0.434935,-2.283492 1.304859,-3.153408 0.869886,-0.869893 1.921021,-1.304845 3.153408,-1.304859 1.232343,1.4e-5 2.283478,0.434966 3.153408,1.304859 0.869881,0.869916 1.304832,1.921051 1.304859,3.153408" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-width="1.583"/>
-   <path id="text3540" d="m 34.295036,73.316117 c -1.1e-5,1.232373 -0.434964,2.283509 -1.304858,3.153408 -0.869915,0.86991 -1.92105,1.304863 -3.153408,1.304859 -1.232373,4e-6 -2.283508,-0.434949 -3.153409,-1.304859 -0.869909,-0.869899 -1.304861,-1.921035 -1.304858,-3.153408 -3e-6,-1.232357 0.434949,-2.283492 1.304858,-3.153408 0.869901,-0.869893 1.921036,-1.304845 3.153409,-1.304859 1.232358,1.4e-5 2.283493,0.434966 3.153408,1.304859 0.869894,0.869916 1.304847,1.921051 1.304858,3.153408" inkscape:connector-curvature="0" fill="none" stroke="#000000" stroke-width="1.583"/>
-  </g>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/98-2.svg b/htdocs/public/symbols/svgicons/98-2.svg
deleted file mode 100755
index f037c812fded8c30d2d1ad14d972a0880a66c7a8..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/98-2.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" version="1.1">
- <metadata id="metadata4044"/>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1028.3622)">
-  <path sodipodi:type="spiral" id="path4049" sodipodi:cx="334.28571" sodipodi:cy="423.79074" sodipodi:expansion="0.69" sodipodi:revolution="0.98159838" sodipodi:radius="259.73999" sodipodi:argument="-10.691573" sodipodi:t0="0.27220243" d="M 237.31145,381.40835 C 239.11471,299.73947 328.93243,255.98729 401.1349,270.8345 508.43992,292.89994 562.8951,410.94953 535.07058,511.54334 505.06609,620.0184 395.6532,687.41952 285.64468,678.93563" transform="matrix(0.02139504,-0.00206403,0.00238602,0.0185078,10.27631,1029.4979)" fill="none" stroke="#4d4d4d" stroke-linecap="round" stroke-width="99.89"/>
-  <path d="m 18.038234,1041.4669 -4.258212,-0.026 -12.79635679,0" id="path4561" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" fill="none" stroke="#4d4d4d" stroke-linecap="round" stroke-width="1.9"/>
-  <path sodipodi:type="spiral" id="path4049-7" sodipodi:cx="334.28571" sodipodi:cy="423.79074" sodipodi:expansion="0.69" sodipodi:revolution="0.98159838" sodipodi:radius="259.73999" sodipodi:argument="-10.691573" sodipodi:t0="0.27220243" d="M 237.31145,381.40835 C 239.11471,299.73947 328.93243,255.98729 401.1349,270.8345 508.43992,292.89994 562.8951,410.94953 535.07058,511.54334 505.06609,620.0184 395.6532,687.41952 285.64468,678.93563" transform="matrix(0.01283702,-0.00123842,0.00143161,0.01110468,5.8580561,1031.741)" fill="none" stroke="#4d4d4d" stroke-linecap="round" stroke-width="166.48"/>
-  <path d="m 10.521214,1038.9285 -1.4203126,-0.028 -4.2681873,0" id="path4561-9" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" fill="none" stroke="#4d4d4d" stroke-linecap="round" stroke-width="1.9"/>
-  <path sodipodi:type="spiral" id="path4049-0" sodipodi:cx="334.28571" sodipodi:cy="423.79074" sodipodi:expansion="0.69" sodipodi:revolution="0.98159838" sodipodi:radius="259.73999" sodipodi:argument="-10.691573" sodipodi:t0="0.27220243" d="M 237.31145,381.40835 C 239.11471,299.73947 328.93243,255.98729 401.1349,270.8345 508.43992,292.89994 562.8951,410.94953 535.07058,511.54334 505.06609,620.0184 395.6532,687.41952 285.64468,678.93563" transform="matrix(0.00855802,8.25612e-4,9.54408e-4,-0.00740312,12.757315,1048.7221)" fill="none" stroke="#4d4d4d" stroke-linecap="round" stroke-width="249.72"/>
-  <path d="m 15.912862,1043.9369 -3.193959,0 -9.5981739,0" id="path4561-3" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" fill="none" stroke="#4d4d4d" stroke-linecap="round" stroke-width="1.9"/>
- </g>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/99-1.svg b/htdocs/public/symbols/svgicons/99-1.svg
deleted file mode 100755
index 23524be4e242dee3ec8fd63b81c3f46203d4d3d8..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/99-1.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3070"/>
- <rect id="rect3080" width="24" height="24" fill="#ffffff"/>
- <path d="M 24,-2e-7 1.5e-7,24 24,24 z" id="path3076" inkscape:connector-curvature="0" fill="#00a900"/>
- <rect id="rect3074" width="23" height="23" x="0.499" y="0.499" fill="none" stroke="#000000" stroke-width="0.998"/>
-</svg>
diff --git a/htdocs/public/symbols/svgicons/99-2.svg b/htdocs/public/symbols/svgicons/99-2.svg
deleted file mode 100755
index 58dc6a8ad829c13fa1a36978ab46e2736e948524..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/svgicons/99-2.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="24" height="24">
- <metadata id="metadata3070"/>
- <path sodipodi:type="arc" id="path3877" sodipodi:cx="12" sodipodi:cy="10.881356" sodipodi:rx="9.0508471" sodipodi:ry="9.0508471" d="m 21.050847,10.881356 a 9.0508471,9.0508471 0 1 1 -18.1016941,0 9.0508471,9.0508471 0 1 1 18.1016941,0 z" transform="matrix(1.3258428,0,0,1.3258428,-3.9101136,-2.4269678)"/>
- <path sodipodi:type="star" id="path3879" sodipodi:sides="3" sodipodi:cx="11.186441" sodipodi:cy="12.610169" sodipodi:r1="12.604427" sodipodi:r2="6.3022137" sodipodi:arg1="0.52359878" sodipodi:arg2="1.5707963" inkscape:flatsided="false" inkscape:rounded="0" inkscape:randomized="0" d="m 22.102196,18.912383 -10.915754,0 -10.91575488,0 L 5.7285642,9.4590627 11.186441,0.00574207 16.644318,9.4590624 z" inkscape:transform-center-y="-2.8060175" transform="matrix(0.80756234,0,0,0.8904864,2.9662512,1.3039895)" fill="#ffff00" stroke="#ffff00" stroke-linejoin="round" stroke-width="1.125"/>
-</svg>
diff --git a/htdocs/public/symbols/symbol.php b/htdocs/public/symbols/symbol.php
deleted file mode 100755
index 95afbcdeb17e54c84b2a8c3186e346d5310a2b8f..0000000000000000000000000000000000000000
--- a/htdocs/public/symbols/symbol.php
+++ /dev/null
@@ -1,464 +0,0 @@
-<?php
-header('Access-Control-Allow-Origin: *');
-header("Cache-Control: max-age=2592000"); //30days (60sec * 60min * 24hours * 30days)
-
-
-// Contains ascii values that corresponds to symbols with overlay support (for symbols in the alternative table)
-$alternativeSymbolWithOverlaySupport = [33, 35, 37, 38, 39, 45, 62, 64, 79, 87, 91, 95, 97, 115, 122, 48, 65, 68, 69, 72, 94, 99, 105, 110,  117, 118];
-
-$alternativeSymbolThatShouldNotBeFlipped = [115, 62, 94, 79];
-$primarySymbolThatShouldNotBeFlipped = [94, 83, 39, 88];
-
-$primarySymbolRotateDiff[40] = -90;
-$primarySymbolRotateDiff[42] = -90;
-$primarySymbolRotateDiff[60] = -90;
-$primarySymbolRotateDiff[61] = -90;
-$primarySymbolRotateDiff[62] = -90;
-$primarySymbolRotateDiff[67] = -90;
-$primarySymbolRotateDiff[70] = -90;
-$primarySymbolRotateDiff[80] = -90;
-$primarySymbolRotateDiff[85] = -90;
-$primarySymbolRotateDiff[89] = -90;
-$primarySymbolRotateDiff[91] = -90;
-$primarySymbolRotateDiff[97] = -90;
-$primarySymbolRotateDiff[98] = -90;
-$primarySymbolRotateDiff[101] = -90;
-$primarySymbolRotateDiff[102] = -90;
-$primarySymbolRotateDiff[103] = -90;
-$primarySymbolRotateDiff[106] = -90;
-$primarySymbolRotateDiff[107] = -90;
-$primarySymbolRotateDiff[115] = -90;
-$primarySymbolRotateDiff[117] = -90;
-$primarySymbolRotateDiff[118] = -90;
-
-$primarySymbolRotateDiff[39] = 0; // Small Airplace
-$primarySymbolRotateDiff[94] = 0; // Large Airplane
-$primarySymbolRotateDiff[83] = 0;
-$primarySymbolRotateDiff[88] = 0; // Helicopter
-
-$alternativeSymbolRotateDiff[106] = -90;
-$alternativeSymbolRotateDiff[107] = -90;
-$alternativeSymbolRotateDiff[117] = -90;
-$alternativeSymbolRotateDiff[115] = 0;
-$alternativeSymbolRotateDiff[118] = -90;
-$alternativeSymbolRotateDiff[91] = -90;
-$alternativeSymbolRotateDiff[94] = 0;
-$alternativeSymbolRotateDiff[79] = 0;
-$alternativeSymbolRotateDiff[62] = 0;
-
-$svgContent = null;
-if (isset($_GET['symbol']) && isset($_GET['symbol_table'])) {
-
-    // symbol and symbol_table is ascii values so everything should be numbers
-    $symbol = preg_replace("/[^0-9]/","",$_GET['symbol']);
-    $symbolTable = preg_replace("/[^0-9]/","",$_GET['symbol_table']);
-
-    if ($symbol >= 32 && $symbol <= 126) {
-
-        // Init $course
-        if (isset($_GET['course'])) {
-            $course = preg_replace("/[^0-9]/","",$_GET['course']);
-            while ($course > 360) {
-                $course = $course - 360;
-            }
-            while ($course < 0) {
-                $course = $course + 360;
-            }
-            if ($course == 360) {
-                $course = 0;
-            }
-        } else {
-            $course = null;
-        }
-
-        // Init hight and width
-        if (isset($_GET['width']) && isset($_GET['height'])) {
-            $width = preg_replace("/[^0-9]/","",$_GET['width']);
-            $height = preg_replace("/[^0-9]/","",$_GET['height']);
-
-            if ($width > 1024) {
-                $width = 1024;
-            }
-
-            if ($height > 1024) {
-                $height = 1024;
-            }
-        } else {
-            $width = null;
-            $height = null;
-        }
-
-        // Init scale hight and width
-        if (isset($_GET['scale_width']) && isset($_GET['scale_height'])) {
-            $scaleWidth = preg_replace("/[^0-9]/","",$_GET['scale_width']);
-            $scaleHeight = preg_replace("/[^0-9]/","",$_GET['scale_height']);
-
-            if ($scaleWidth > 1024) {
-                $scaleWidth = 1024;
-            }
-
-            if ($scaleHeight > 1024) {
-                $scaleHeight = 1024;
-            }
-
-            if ($scaleWidth == 24 && $scaleHeight == 24) {
-                $scaleWidth = null;
-                $scaleHeight = null;
-            }
-        } else {
-            $scaleWidth = null;
-            $scaleHeight = null;
-        }
-
-        // Init $symbolCategory and $overlay
-        $overlay = null;
-        if ($symbolTable == 47) {
-            // Primary table (47 == '/')
-            $symbolCategory = 1;
-
-        } else if ($symbolTable == 92) {
-            // Alternative table (92 == '\')
-            $symbolCategory = 2;
-
-        } else if (preg_match("/^[a-zA-Z\d]$/", chr($symbolTable))) {
-            // Alternative table with overlay
-
-            $filepath1 = './svgicons/' . $symbol . '-' . $symbolTable . '.svg';
-            $filepath2 = './svgicons/' . $symbol . '-' . '3.svg';
-            if (file_exists($filepath1)) {
-                $symbolCategory = $symbolTable;
-            } else if (file_exists($filepath2)) {
-                $symbolCategory = 3;
-            } else {
-                $symbolCategory = 2;
-            }
-
-            if (in_array($symbol, $alternativeSymbolWithOverlaySupport) && ($symbolCategory == 2 || $symbolCategory == 3)) {
-                $overlay = chr($symbolTable);
-            }
-
-        } else {
-            // Use primary if nothing else fits
-            $symbolCategory = 1;
-        }
-
-        // Init $filepath
-        $name = $symbol . '-' . $symbolCategory;
-        $filepath = './svgicons/' . $name . '.svg';
-
-        if (file_exists($filepath)) {
-            $svgContent = file_get_contents($filepath);
-
-            if ($overlay !== null || $course !== null || ($width !== null && $height !== null) || ($scaleWidth !== null && $scaleHeight !== null)) {
-
-                // We will do changes to symbol (course or overlay)
-
-                $doc = new DOMDocument();
-                $doc->loadXML($svgContent);
-                $svg = $doc->getElementsByTagName('svg')->item(0);
-
-                $childs = Array();
-                foreach ($svg->childNodes as $child) {
-                    if (isset($child->tagName) && $child->tagName != 'metadata') {
-                        $childs[] = $child;
-                    }
-                }
-
-                // Wrapper1 used for width and height transfrom
-                $wrapper1 = $doc->createElement('g');
-                $wrapper1 = $svg->appendChild($wrapper1);
-
-                // Wrapper 2 used for rotate
-                $wrapper2 = $doc->createElement('g');
-                $wrapper2 = $wrapper1->appendChild($wrapper2);
-
-                // Wrapper 3 used for flip
-                $wrapper3 = $doc->createElement('g');
-                $wrapper3 = $wrapper2->appendChild($wrapper3);
-
-                // Wrapper 4 used for text
-                $wrapper4 = $doc->createElement('g');
-                $wrapper4 = $wrapper3->appendChild($wrapper4);
-
-                foreach ($childs as $child) {
-                    $removedChild = $svg->removeChild($child);
-                    $wrapper4->appendChild($child);
-                }
-
-                if ($overlay !== null) {
-                    // We should add overlay
-                    // dominant-baseline do not seem to be supported by internet explorer so we have to do vertical alignment manual by changing y
-
-                    $text = $doc->createElement('text');
-                    $text->setAttribute('id','textoverlay');
-                    $text = $wrapper4->appendChild($text);
-
-                    $tspan = $doc->createElement('tspan', chr($symbolTable));
-                    $tspan = $text->appendChild($tspan);
-
-                    $tspan->setAttribute('id','tspanoverlay');
-                    //$tspan->setAttribute('sodipodi:linespacing','0%');
-                    $tspan->setAttribute('font-family','Helvetica');
-                    $tspan->setAttribute('text-anchor','middle');
-                    $tspan->setAttribute('text-align','center');
-                    $tspan->setAttribute('word-spacing','0');
-                    //$tspan->setAttribute('line-height','0%');
-                    $tspan->setAttribute('letter-spacing','0');
-                    $tspan->setAttribute('font-weight','bold');
-                    $tspan->setAttribute('x','12'); // left/right (higher means more to the right)
-                    $tspan->setAttribute('y','12'); // up/down (higher means more down)
-
-
-                    // White text, normal size, bold, centered
-                    if (in_array($symbol, Array(35, 38, 62, 87, 95, 97))) {
-                        $tspan->setAttribute('fill','#ffffff');
-                        $tspan->setAttribute('font-size','14');
-                        $tspan->setAttribute('dy','5.2');
-                        $tspan->setAttribute('dx','0');
-
-                        if (in_array(chr($symbolTable), array('Y', 'V'))) {
-                            $tspan->setAttribute('dx','-0.2');
-                        }
-
-                        if (in_array(chr($symbolTable), array('S', 'W', 'Q'))) {
-                            $tspan->setAttribute('dx','-0.1');
-                        }
-
-                        if (in_array(chr($symbolTable), array('R', 'P', 'D', 'F', 'K', 'L'))) {
-                            $tspan->setAttribute('dx','0.4');
-                        }
-                    }
-
-                    // White text, normal size, bold, centered (little bit to the left)
-                    if (in_array($symbol, Array(105))) {
-                        $tspan->setAttribute('fill','#ffffff');
-                        $tspan->setAttribute('font-size','14');
-                        $tspan->setAttribute('dy','4.5');
-                        $tspan->setAttribute('dx','-0.5');
-
-                        if (in_array(chr($symbolTable), array('S', 'W'))) {
-                            $tspan->setAttribute('dx','-0.6');
-                        }
-
-                        if (in_array(chr($symbolTable), array('R', 'P', 'D', 'F', 'K', 'L'))) {
-                            $tspan->setAttribute('dx','-0.1');
-                        }
-                    }
-
-                    // White/Yellow text, normal size, bold, centered, a bit lower
-                    if (in_array($symbol, Array(37, 110, 115, 122))) {
-                        if ($symbol == 37) {
-                            $tspan->setAttribute('fill','#ffff00');
-                        } else {
-                            $tspan->setAttribute('fill','#ffffff');
-                        }
-                        $tspan->setAttribute('font-size','14');
-                        $tspan->setAttribute('dy','8');
-                        $tspan->setAttribute('dx','-0.1');
-
-                        if (in_array(chr($symbolTable), array('T'))) {
-                            $tspan->setAttribute('dx','0');
-                        }
-
-                        if (in_array(chr($symbolTable), array('S', 'Y'))) {
-                            $tspan->setAttribute('dx','-0.2');
-                        }
-                    }
-
-                    // Black text, normal size, bold, centered, a bit lower
-                    if (in_array($symbol, Array(45))) {
-                        $tspan->setAttribute('fill','#000000');
-                        $tspan->setAttribute('font-size','14');
-                        $tspan->setAttribute('dy','8');
-                        $tspan->setAttribute('dx','-0.1');
-
-                        if (in_array(chr($symbolTable), array('S', 'Y'))) {
-                            $tspan->setAttribute('dx','-0.2');
-                        }
-                    }
-
-                    // White text, normal size, bold, centered
-                    if (in_array($symbol, Array(68, 69))) {
-                        $tspan->setAttribute('fill','#ffffff');
-                        $tspan->setAttribute('font-size','14');
-                        $tspan->setAttribute('dy','4.6');
-
-                        if (in_array(chr($symbolTable), array('R', 'P', 'D', 'F', 'K', 'L'))) {
-                            $tspan->setAttribute('dx','0.4');
-                        }
-
-
-                        if (in_array(chr($symbolTable), array('S', 'Y'))) {
-                            $tspan->setAttribute('dx','-0.2');
-                        }
-                    }
-
-                    // Black text, normal size, bold, centered
-                    if (in_array($symbol, Array(48, 65, 72))) {
-                        $tspan->setAttribute('fill','#000000');
-                        $tspan->setAttribute('font-size','14');
-                        $tspan->setAttribute('dy','4.6');
-
-                        if (in_array(chr($symbolTable), array('R', 'P', 'D', 'F', 'K', 'L'))) {
-                            $tspan->setAttribute('dx','0.4');
-                        }
-                    }
-
-                    // Black text, normal size, bold, centered, a bit higher
-                    if (in_array($symbol, Array(79))) {
-                        $tspan->setAttribute('fill','#000000');
-                        $tspan->setAttribute('font-size','14');
-                        $tspan->setAttribute('dy','1.5');
-
-                        if (in_array(chr($symbolTable), array('R', 'P', 'D', 'F', 'K', 'L'))) {
-                            $tspan->setAttribute('dx','0.4');
-                        }
-                    }
-
-                    // Black text, smaller size, bold, centered
-                    if (in_array($symbol, Array(99))) {
-                        $tspan->setAttribute('fill','#000000');
-                        $tspan->setAttribute('font-size','12');
-                        $tspan->setAttribute('dy','5');
-
-                        if (in_array(chr($symbolTable), array('S', 'W'))) {
-                            $tspan->setAttribute('dx','-0.1');
-                        }
-                    }
-
-                    // Black text, very very small size, bold, right upper corner (besides airplane, human, symbol)
-                    if (in_array($symbol, Array(33, 39, 91, 94))) {
-                        $tspan->setAttribute('fill','#000000');
-                        $tspan->setAttribute('font-size','9');
-                        if ($symbol == 39 || $symbol == 33) {
-                            $tspan->setAttribute('dx','17');
-                        } else {
-                            $tspan->setAttribute('dx','11');
-                        }
-                        $tspan->setAttribute('dy','-4');
-                    }
-
-                    // White text, small size, bold, centered, a bit lower
-                    if (in_array($symbol, Array(64))) {
-                        $tspan->setAttribute('fill','#ffffff');
-                        $tspan->setAttribute('font-size','10');
-                        $tspan->setAttribute('dy','3.4');
-                        $tspan->setAttribute('dx','-0.1');
-                    }
-
-                    // White text, very small size, bold, a bit to the right (on trucks)
-                    if (in_array($symbol, Array(117))) {
-                        $tspan->setAttribute('fill','#ffffff');
-                        $tspan->setAttribute('font-size','9');
-                        $tspan->setAttribute('dy','0.7');
-                        $tspan->setAttribute('dx','-3');
-                    }
-
-                    // White text, very small size, bold, a bit to the right (on vans)
-                    if (in_array($symbol, Array(118))) {
-                        $tspan->setAttribute('fill','#ffffff');
-                        $tspan->setAttribute('font-size','9');
-                        $tspan->setAttribute('dy','0.3');
-                        $tspan->setAttribute('dx','-3');
-                    }
-                }
-
-
-                if ($course !== null) {
-                    // We should rotate symbol
-                    if ($symbolCategory == 1 && isset($primarySymbolRotateDiff[$symbol])) {
-                        $adjustedCourse = $course + $primarySymbolRotateDiff[$symbol];
-                    } else if ($symbolCategory != 1 && isset($alternativeSymbolRotateDiff[$symbol])) {
-                        $adjustedCourse = $course + $alternativeSymbolRotateDiff[$symbol];
-                    } else {
-                        $course = 0;
-                        $adjustedCourse = 0;
-                    }
-
-                    $wrapper2->setAttribute('transform', 'rotate(' . $adjustedCourse . ' 12 12)');
-                    if (($symbolCategory == 1 && !in_array($symbol, $primarySymbolThatShouldNotBeFlipped))
-                        || ($symbolCategory != 1 && !in_array($symbol, $alternativeSymbolThatShouldNotBeFlipped))) {
-
-                        if ($course > 180) {
-                            // Symbols that rotate more than 180 deg should be flipped
-                            $wrapper3->setAttribute('transform', 'translate(0,24) scale(1, -1)');
-
-                            if (isset($tspan)) {
-                                // Flip letter back
-                                $x = 24 + $tspan->getAttribute('dx');
-                                $tspan->setAttribute('transform', 'translate(' . $x . ', 0) scale(-1, 1)');
-                            }
-
-                        }
-                    }
-                }
-
-                if ($width !== null && $height !== null) {
-                    // We should change svg size (not scaling!), center existing stuff
-                    $wrapper1->setAttribute('transform', 'translate('.(($width-24)/2).' '.(($height-24)/2).')');
-                    $svg->setAttribute('viewBox', '0 0 '.$width.' '.$height);
-                    $svg->setAttribute('width', $width);
-                    $svg->setAttribute('height', $height);
-                }
-
-                if ($scaleWidth !== null && $scaleHeight !== null) {
-                    $svg->setAttribute('preserveAspectRatio',"xMinYMin meet");
-                    if ($width !== null && $height !== null) {
-                        $svg->setAttribute('viewBox', '0 0 '.$width.' '.$height);
-                    } else {
-                        $svg->setAttribute('viewBox', "0 0 24 24");
-                    }
-                    $svg->setAttribute('width', $scaleWidth);
-                    $svg->setAttribute('height', $scaleHeight);
-                }
-
-                $svgContent = $doc->saveXML();
-            }
-        }
-    }
-}
-
-if ($svgContent === null) {
-    $filepath = './svgicons/125-1.svg';
-    $svgContent = file_get_contents($filepath);
-}
-
-if (isset($_GET['format']) && $_GET['format'] == 'png') {
-    str_replace('#000000', '#010101', $svgContent);
-
-    $im = new Imagick();
-
-    // Hack to set needed density to get correct size?!
-    if ($width !== null && $height !== null) {
-        $im->setResolution($width*4,$height*4);
-    } else {
-        $im->setResolution(96,96);
-    }
-
-    $im->setBackgroundColor(new ImagickPixel('transparent'));
-    $im->readImageBlob($svgContent);
-    $im->setImageFormat("png32");
-
-    if ((!isset($scaleWidth) && !isset($scaleHeight)) || ($scaleWidth == null && $scaleHeight == null)
-            || ($scaleWidth == 24 && $scaleHeight == 24)
-            || ($scaleWidth == 64 && $scaleHeight == 64)
-            || ($scaleWidth == 150 && $scaleHeight == 150)) {
-        $im->writeImage('./' . basename($_SERVER['REQUEST_URI']));
-    }
-
-    header('Pragma: public');
-    header('Cache-Control: max-age=86400, public');
-    header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));
-    header('Content-type: image/png');
-    echo $im->getImageBlob();
-
-    $im->destroy();
-
-} else {
-
-    header('Pragma: public');
-    header('Cache-Control: max-age=86400, public');
-    header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));
-    header('Content-type: image/svg+xml');
-    echo $svgContent;
-}
diff --git a/htdocs/public/views/about.php b/htdocs/public/views/about.php
deleted file mode 100644
index 20404be21959448a7fcc2bdc8e339c76f2e0992d..0000000000000000000000000000000000000000
--- a/htdocs/public/views/about.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<title>About / FAQ</title>
-<div class="modal-inner-content modal-inner-content-about" style="padding-bottom: 30px;">
-    <div class="modal-inner-content-menu">
-        <span>About</span>
-        <a href="/views/faq.php" class="tdlink" title="Frequently asked questions">FAQ</a>
-    </div>
-    <div class="horizontal-line">&nbsp;</div>
-
-    <p>
-	Welcome to this APRS tracking website! Our goal is to bring you a fast and easy-to-use map with APRS data from <a href="http://www.aprs-is.net" target="_blank">APRS-IS</a>, <a href="http://www.wxqa.com" target="_blank">CWOP-IS</a>, <a href="https://www.glidernet.org" target="_blank">OGN</a> or some other APRS data sourcei (depending on how this specific website is configured). We give you fast map updates and nice looking APRS symbols!
-    </p>
-
-    <img src="/images/aprs-symbols.png" title="APRS symbols" style="width:100%"/>
-
-    <p>
-        This website is based on the APRS Track Direct tools. Read more about APRS Track Direct <a href="https://www.aprsdirect.com" target="_blank">here</a> or go directly to <a href="https://github.com/qvarforth/trackdirect" target="_blank">GitHub</a>. In addition to a map with fast APRS data updates, APRS Track direct also provides related functions such as <a href="/views/latest.php" class="tdlink" title="List latest heard stations">Latest heard</a> and <a href="/views/search.php" class="tdlink" title="Search for stations">Station search</a> etc. 
-    </p>
-
-    <h3>What is APRS?</h3>
-    <p>
-        APRS (Automatic Packet Reporting System) is a digital communications system that uses packet radio to send real time tactical information (on amateur radio frequencies).
-        The APRS network is used by ham radio operators all over the world.
-        Information shared over the APRS network is for example coordinates, altitude, speed, heading, text messages, alerts, announcements, bulletins and weather data.
-        APRS has been developed by Bob Bruninga, callsign WB4APR.
-	More information about APRS can be found at <a target="_blank" rel="nofollow" href="http://www.aprs.org/">www.aprs.org</a> or at <a target="_blank" rel="nofollow" href="https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System">wikipedia</a>.
-    </p>
-    <p>
-        But as you probably already understood, the APRS specification is not only used by ham radio operators, but also for several other areas of use, such as e.g. for CWOP and OGN data.
-    </p>
-
-</div>
diff --git a/htdocs/public/views/faq.php b/htdocs/public/views/faq.php
deleted file mode 100644
index 655ed1ae249f671ab5be894be59c8934820342a6..0000000000000000000000000000000000000000
--- a/htdocs/public/views/faq.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<title>About / FAQ</title>
-<div class="modal-inner-content modal-inner-content-about" style="padding-bottom: 30px;">
-    <div class="modal-inner-content-menu">
-        <a href="/views/about.php" class="tdlink" title="More about this website!">About</a>
-        <span>FAQ</span>
-    </div>
-    <div class="horizontal-line">&nbsp;</div>
-
-    <h2>1. I have a question. Who may I contact?</h2>
-    <p>
-        Maintainer of this website is <a href="mailto:<?php echo getWebsiteConfig('owner_email'); ?>"><?php echo getWebsiteConfig('owner_name'); ?></a>.
-    </p>
-
-    <h2>2. What is APRS?</h2>
-    <p>
-        APRS (Automatic Packet Reporting System) is a digital communications system that uses packet radio to send real time tactical information. The APRS network is used by ham radio operators all over the world.
-    </p>
-    <p>
-        Information shared over the APRS network is for example coordinates, altitude, speed, heading, text messages, alerts, announcements, bulletins and weather data.
-    </p>
-
-    <h2>3. What is APRS Track Direct</h2>
-    <p>
-        This website is based on the APRS Track Direct tools. Read more on <a href="https://github.com/qvarforth/trackdirect" target="_blank">GitHub</a>. But please note that the maintainer of APRS Track Direct has nothing to do with this website.
-    </p>
-
-    <h2>4. I have a map created in <a target="_blank" href="https://mymaps.google.com/">Google My Maps</a>, can I render it on top of this map?</h2>
-    <p>
-        Sure! Follow the following instructions...
-    </p>
-    <ol>
-        <li>Open your map at <a target="_blank" href="https://mymaps.google.com/">Google My Maps</a>.</li>
-        <li>Look at the current URL and try to find a value named <b>mid</b>. Copy that value!</li>
-        <li>Open this website. Add <b>"&mid={the mid value}"</b> to the end of the URL.</li>
-        <li>Press Enter!</li>
-    </ol>
-
-    <h2>5. My latest packet seems to be using different path's depending on what website I look at (APRS-IS related). Why?</h2>
-    <p>
-        The websites you compare are not collecting packets from the same APRS-IS servers. Each APRS-IS server performes duplicate filtering, and which packet that is considered to be a duplicate may differ depending on which APRS-IS server you ask.
-    </p>
-
-    <h2>6. Where does the displayed data come from?</h2>
-    <p>On each station you can see the specified source. APRS data can be received from <a href="http://www.aprs-is.net" target="_blank">APRS-IS</a>, <a href="http://www.wxqa.com" target="_blank">CWOP-IS</a> or <a href="https://www.glidernet.org" target="_blank">OGN</a> (and more).
-
-    <h2>7. How do I prevent my data from being displayed on websites such as this?</h2>
-    <h3>A. Answer for APRS-IS/CWOP-IS and more</h3>
-    <p>
-        If you do not want your APRS data to be publiched on APRS-websites you can append <b>NOGATE</b> to the end of your path (or use <b>RFONLY</b>). If your digipeater path is <b>WIDE1-1,WIDE2-1</b>, you just change it to <b>WIDE1-1,WIDE2-1,NOGATE</b>.
-    </p>
-
-    <h3>B. Answer for OGN (Open Glider Network)</h3>
-    <p>
-        Not all information that is sent to the Open Glider Network is published.
-    </p>
-    <p>
-        Aircrafts that meet any of the following condition is not shown at all.<br/>
-        &rarr; Has the "no-tracking" flag in FLARM device configuration set.<br/>
-        &rarr; Has activated the setting "I don't want this device to be tracked" in the the <a target="_blank" href="http://wiki.glidernet.org/ddb">OGN Devices DataBase</a>.
-    </p>
-    <p>
-        This website will only display information that can be used to identify an aircraft if the aircraft device details exists in the <a target="_blank" href="http://wiki.glidernet.org/ddb">OGN Devices DataBase</a>, and if the setting "I don't want this device to be identified" is deactivated. If the website is configured to also render aircrafts that does not exists in the OGN database, the aircraft is given a temporary name that is only used for a maximum of 24h (to make sure it can not be identified).
-    </p>
-    <p>
-        Read more about how to "Opt In" or "Opt Out" <a target="_blank" href="http://wiki.glidernet.org/opt-in-opt-out">here</a>.
-    </p>
-
-    <h2>8. How is the coverage map created?</h2>
-    <p>
-        Note that the coverage map is only available for receiving stations, it tries to show from which area the station is able to receive packets.
-    </p>
-    <p>
-        The coverage map consists of two parts:
-        <ul>
-            <li><span>The heatmap that shows all recorded coordinates.</span></li>
-            <li><span>The interpolated max range plot polygon that shows the coverage.</span></li>
-        </ul>
-    </p>
-    <p>
-        The max range plot is created by:
-        <ol>
-            <li><span>We exclude positions that have a distance that is further away than the 95th percentile.</span></li>
-            <li><span>We use a convex hull algorithm to get a polygon of the covered area.</span></li>
-            <li><span>We add some padding to the area received in the previous step. This step is just used to make the polygon look a bit nicer.</span></li>
-        </ol>
-    </p>
-
-    <h2>9. Can you tell me how the marker logic works?</h2>
-    <p>
-        Okay, let me tell you more about our brilliant marker logic :-)
-    </p>
-    <ul>
-        <li>We have a speed limit filter and other filters that sorts out packets that has a faulty position.</li>
-        <li>If a moving station sends a packet that is sorted out by our speed limit filter the packet will be marked as unconfirmed, if we later receive a packet that confirmes that the station is moving in that direction, the previous packet will be confirmed then.</li>
-        <li>If a station moves in one area and suddently appear in another area the two tails will be connected by a dashed polyline.</li>
-        <li>A moving station that reports it's speed and direction will have an animated direction polyline (will be hidden after 15min).</li>
-        <li>The dotted polyline shows the packet transmit path, will be shown when you hover over a marker or a "dotmarker". If a station in the path hasn't sent a position packet in a long time it will show up for some seconds and than disappear again.</li>
-        <li>Note that the time-interval specified in the station info-window (on the map) is how long a station has been on that location <u>without any downtime longer than 24h</u>.</li>
-    </ul>
-
-    <h2>10. Can I link to this website?</h4>
-    <p>
-        Yes absolutely!
-    </p>
-    <ul>
-        <li>
-            To link to a station tracking map view, use one of the following alternatives:
-            <br/><span style="color:darkblue;">https://www.thiswebsite.com?sname=<b>STATION-NAME</b></span>
-            <br/><span style="color:darkblue;">https://www.thiswebsite.com?sid=<b>STATION-ID</b></span>
-        </li>
-        <br/>
-        <li>
-            To link to a tracking map view for multiple stations, use one of the following alternatives:
-            <br/><span style="color:darkblue;">https://www.thiswebsite.com?snamelist=<b>STATION-NAME-1,STATION-NAME-2,STATION-NAME-3</b></span>
-            <br/><span style="color:darkblue;">https://www.thiswebsite.com?sidlist=<b>STATION-ID-1,STATION-ID-2,STATION-ID-3</b></span>
-        </li>
-        <br/>
-        <li>
-            To link to a map view, centered on a position, use the following:
-            <br/><span style="color:darkblue;">https://www.thiswebsite.com?center=<b>LATITUDE</b>,<b>LONGITUDE</b>&zoom=<b>ZOOM-LEVEL</b></span>
-        </li>
-
-    </ul>
-
-    <h2>11. What browsers do this website support?</h2>
-    <p>
-        Our goal is that APRS Direct should work on all broswers that supports websockets (an HTML5 feature). The following browser version (and newer) supports the websocket-protocol.
-    </p>
-    <ul>
-        <li>Internet Explorer 10 (released 4/9 2012)</li>
-        <li>Edge 12 (released 30/3 2015)</li>
-        <li>Firefox 11 (released 31/1 2012)</li>
-        <li>Chrome 16 (released 25/10 2012)</li>
-        <li>Safari 7 (released 22/10 2013)</li>
-        <li>Opera 6.1 (released 5/11 2012)</li>
-        <li>iOS Safari 6.1 (released 28/1 2013)</li>
-        <li>Android Browser 4.4 (released 9/12 2013)</li>
-        <li>Blackberry browser 7 (released 1/1 2012)</li>
-        <li>Opera Mobile 12.1 (released 9/10 2012)</li>
-        <li>Chrome 53 for Android (released 8/9 2016)</li>
-        <li>Firefox 49 for Android (released 20/9 2016)</li>
-        <li>IE Mobile 10 (released 20/6 2012)</li>
-        <li>UC Browser 11 (released 17/8 2016)</li>
-        <li>Samsung Internet 4 (released 19/4 2016)</li>
-    </ul>
-</div>
diff --git a/htdocs/public/views/latest.php b/htdocs/public/views/latest.php
deleted file mode 100644
index 178a47ad9340eab9ab1ca1118149bf9e062f8b95..0000000000000000000000000000000000000000
--- a/htdocs/public/views/latest.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php
-    $stations = [];
-    $seconds = 60*60*24;
-    $page = $_GET['page'] ?? 1;
-    $rows = 50;
-    $offset = ($page - 1) * $rows;
-
-    $stations = StationRepository::getInstance()->getObjectList($seconds, $rows, $offset);
-    $count = StationRepository::getInstance()->getNumberOfStations($seconds);
-
-    $pages = ceil($count / $rows);
-?>
-
-<title>Latest heard stations</title>
-<div class="modal-inner-content" style="padding-bottom: 30px;">
-    <?php if (count($stations) > 0) : ?>
-        <p>
-            <?php echo $count; ?> station(s) have been heard in the last 24 hours.
-        </p>
-
-        <?php if ($pages > 1): ?>
-            <div class="pagination">
-              <a class="tdlink" href="/views/latest.php?q=<?php echo ($_GET['q'] ?? "") ?>&seconds=<?php echo $seconds ?>&page=1"><<</a>
-              <?php for($i = max(1, $page - 3); $i <= min($pages, $page + 3); $i++) : ?>
-              <a href="/views/latest.php?q=<?php echo ($_GET['q'] ?? "") ?>&seconds=<?php echo $seconds ?>&page=<?php echo $i; ?>" <?php echo ($i == $page ? 'class="tdlink active"': 'class="tdlink"')?>><?php echo $i ?></a>
-              <?php endfor; ?>
-              <a class="tdlink" href="/views/latest.php?q=<?php echo ($_GET['q'] ?? "") ?>&seconds=<?php echo $seconds ?>&page=<?php echo $pages; ?>">>></a>
-            </div>
-        <?php endif; ?>
-
-        <div class="datagrid datagrid-search" style="max-width:1000px;">
-            <table>
-                <thead>
-                    <tr>
-                        <th>&nbsp;</th>
-                        <th>Name/Id</th>
-                        <th>Latest heard</th>
-                        <th>Comment/Other</th>
-                        <th>Map</th>
-
-                    </tr>
-                </thead>
-                <tbody>
-                <?php foreach ($stations as $foundStation) : ?>
-                    <tr>
-                        <td>
-                            <img src="<?php echo $foundStation->getIconFilePath(22, 22); ?>" alt="Symbol"/>
-                        </td>
-                        <td>
-                            <a class="tdlink" href="/views/overview.php?id=<?php echo $foundStation->id; ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>"><?php echo htmlentities($foundStation->name) ?></a>
-                        </td>
-                        <td class="station-latest-heard-timestamp" style="white-space: nowrap;">
-                            <?php echo $foundStation->latestConfirmedPacketTimestamp; ?>
-                        </td>
-                        <td>
-                            <?php if ($foundStation->sourceId == 5 && $foundStation->getOgnDevice() !== null) : ?>
-                                <div style="width: 100px; display: inline-block;">Registration:</div><?php echo htmlspecialchars($foundStation->getOgnDevice()->registration); ?> <?php echo $foundStation->getOgnDevice()->cn ? '[' .htmlspecialchars($foundStation->getOgnDevice()->cn) . ']' : ''; ?><br/>
-                                <div style="width: 100px; display: inline-block;">Aircraft Model:</div><?php echo htmlspecialchars($foundStation->getOgnDevice()->aircraftModel); ?>
-                            <?php else : ?>
-                                <?php $latestPacket = PacketRepository::getInstance()->getObjectById($foundStation->latestPacketId, $foundStation->latestPacketTimestamp); ?>
-                                <?php echo htmlspecialchars($latestPacket->comment); ?>
-                            <?php endif; ?>
-                        </td>
-                        <td>
-                            <?php if ($foundStation->latestConfirmedPacketTimestamp > (time() - 60*60*24)) : ?>
-                                <a href="?sid=<?php echo $foundStation->id; ?>" onclick="
-                                    if (window.parent && window.parent.trackdirect) {
-                                        $('.modal', parent.document).hide();
-                                        window.parent.trackdirect.filterOnStationId([]);
-                                        window.parent.trackdirect.filterOnStationId([<?php echo $foundStation->id; ?>]);
-                                        return false;
-                                    }">Map</a>
-                            <?php else : ?>
-                                &nbsp;
-                            <?php endif; ?>
-                        </td>
-                    </tr>
-                <?php endforeach; ?>
-                </tbody>
-            </table>
-        </div>
-    <?php endif; ?>
-
-    <?php if (count($stations) == 0) : ?>
-        <p>
-            <b><i>No station have been heard in the last 24 hours.</i></b>
-        </p>
-    <?php endif; ?>
-</div>
-<script>
-    $(document).ready(function() {
-        var locale = window.navigator.userLanguage || window.navigator.language;
-        moment.locale(locale);
-
-        $('.station-latest-heard-timestamp').each(function() {
-            if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-            }
-        });
-    });
-</script>
diff --git a/htdocs/public/views/overview.php b/htdocs/public/views/overview.php
deleted file mode 100644
index d52b097684113a1097621829b57d4f9fbfdfa243..0000000000000000000000000000000000000000
--- a/htdocs/public/views/overview.php
+++ /dev/null
@@ -1,549 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php $station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null); ?>
-<?php if ($station->isExistingObject()) : ?>
-    <title><?php echo $station->name; ?> Overview</title>
-    <div class="modal-inner-content">
-        <div class="modal-inner-content-menu">
-            <span>Overview</span>
-            <a class="tdlink" title="Statistics" href="/views/statistics.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Statistics</a>
-            <a class="tdlink" title="Trail Chart" href="/views/trail.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Trail Chart</a>
-            <a class="tdlink" title="Weather" href="/views/weather.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Weather</a>
-            <a class="tdlink" title="Telemetry" href="/views/telemetry.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Telemetry</a>
-            <a class="tdlink" title="Raw packets" href="/views/raw.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Raw packets</a>
-        </div>
-
-        <div class="horizontal-line">&nbsp;</div>
-
-        <div class="overview-content-summary">
-            <div>
-                <div class="overview-content-summary-hr">
-                    <?php if ($station->sourceId == 5) : ?>
-                        ID:
-                    <?php else: ?>
-                        Name:
-                    <?php endif; ?>
-                </div>
-                <div class="overview-content-station" title="Name of the station/object">
-                    <?php echo htmlentities($station->name); ?>
-                </div>
-            </div>
-
-            <div>
-                <div class="overview-content-summary-hr">
-                    Station ID:
-                </div>
-                <div class="overview-content-station" title="Website station id">
-                    <?php echo $station->id; ?>
-                </div>
-            </div>
-
-            <?php if ($station->sourceId != null) : ?>
-                <div>
-                    <div class="overview-content-summary-hr">Source:</div>
-                    <div class="overview-content-station" title="Source of this station">
-                        <?php echo $station->getSourceDescription(); ?>
-                    </div>
-                </div>
-            <?php endif; ?>
-
-            <?php if ($station->getOgnDevice() !== null) : ?>
-                <br/>
-                <?php if ($station->getOgnDevice()->registration != null) : ?>
-                    <div>
-                        <div class="overview-content-summary-hr">Aircraft Registration:</div>
-                        <div class="overview-content-station" title="Aircraft Registration">
-                            <b><?php echo htmlspecialchars($station->getOgnDevice()->registration); ?></b>
-                        </div>
-                    </div>
-                <?php endif; ?>
-
-                <?php if ($station->getOgnDevice()->cn != null) : ?>
-                    <div>
-                        <div class="overview-content-summary-hr">Aircraft CN:</div>
-                        <div class="overview-content-station" title="Aircraft CN">
-                            <b><?php echo htmlspecialchars($station->getOgnDevice()->cn); ?></b>
-                        </div>
-                    </div>
-                <?php endif; ?>
-            <?php endif; ?>
-
-            <?php if ($station->getOgnDdbAircraftTypeName() !== null) : ?>
-                <div>
-                    <div class="overview-content-summary-hr">Aircraft Type:</div>
-                    <div class="overview-content-station" title="Type of aircraft">
-                        <?php echo htmlspecialchars($station->getOgnDdbAircraftTypeName()); ?>
-                    </div>
-                </div>
-                <?php if ($station->getOgnDevice()->aircraftModel != null) : ?>
-                    <div>
-                        <div class="overview-content-summary-hr">Aircraft Model:</div>
-                        <div class="overview-content-station" title="Aircraft Model">
-                            <?php echo htmlspecialchars($station->getOgnDevice()->aircraftModel); ?>
-                        </div>
-                    </div>
-                <?php endif; ?>
-            <?php elseif ($station->getOgnAircraftTypeName() != null) : ?>
-                <div>
-                    <div class="overview-content-summary-hr">Aircraft Type:</div>
-                    <div class="overview-content-station" title="Type of aircraft">
-                        <?php echo htmlspecialchars($station->getOgnAircraftTypeName()); ?>
-                    </div>
-                </div>
-            <?php else : ?>
-                <div>
-                    <div class="overview-content-summary-hr">Symbol:</div>
-                    <div class="overview-content-station" title="Symbol type">
-                        <img src="<?php echo $station->getIconFilePath(24, 24); ?>" alt="Latest symbol" />
-                        <span>&nbsp;<?php echo htmlentities($station->getLatestSymbolDescription()); ?></span>
-                    </div>
-                </div>
-            <?php endif; ?>
-
-            <!-- Latest Packet -->
-            <?php if ($station->latestPacketId !== null) : ?>
-                <?php $latestPacket = PacketRepository::getInstance()->getObjectById($station->latestPacketId, $station->latestPacketTimestamp); ?>
-                <div class="overview-content-divider"></div>
-
-                <div>
-                    <div class="overview-content-summary-hr">Latest Packet:</div>
-                    <div class="overview-content-summary-cell-type overview-content-summary-indent"><?php echo $latestPacket->getPacketTypeName(); ?> Packet</div>
-                </div>
-
-                <?php $latestPacketSender = SenderRepository::getInstance()->getObjectById($latestPacket->senderId); ?>
-                <?php if ($latestPacketSender->name != $station->name) : ?>
-                <div>
-                    <div class="overview-content-summary-hr-indent">Sender:</div>
-                    <div class="overview-content-summary-indent" title="Sender of current packet">
-                        <?php $latestPacketSenderStation = StationRepository::getInstance()->getObjectByNameAndSenderId($latestPacketSender->name, $latestPacketSender->id); ?>
-                        <?php if ($latestPacketSenderStation->isExistingObject()) : ?>
-                            <a class="tdlink" title="Sender of the object" href="/views/overview.php?id=<?php echo $latestPacketSenderStation->id; ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">
-                                <?php echo htmlentities($latestPacketSenderStation->name); ?>
-                            </a>
-                        <?php else : ?>
-                            <?php echo $latestPacketSender->name; ?>
-                        <?php endif; ?>
-                    </div>
-                </div>
-                <?php endif; ?>
-
-                <div>
-                    <div class="overview-content-summary-hr-indent">Receive Time:</div>
-                    <div title="Timestamp of the latest packet" id="latest-timestamp" class="overview-content-summary-cell-time overview-content-summary-indent">
-                        <?php echo $station->latestPacketTimestamp; ?>
-                    </div>
-                </div>
-
-
-                <div>
-                    <div class="overview-content-summary-hr-indent">Age:</div>
-                    <div title="Age of the latest packet" id="latest-timestamp-age" class="overview-content-summary-cell-time overview-content-summary-indent">
-                        <?php echo $station->latestPacketTimestamp; ?>
-                    </div>
-                </div>
-
-
-                <div>
-                    <div class="overview-content-summary-hr-indent">Path:</div>
-                    <div class="overview-content-summary-cell-path overview-content-summary-indent" title="Latest path"><?php echo $latestPacket->rawPath; ?></div>
-                </div>
-
-                <?php if ($latestPacket->comment != '') : ?>
-                    <div>
-                        <div class="overview-content-summary-hr-indent">Comment:</div>
-                        <div title="Comment found in thelatest packet" id="latest-packet-comment" class="overview-content-summary-indent">
-                            <?php echo htmlentities($latestPacket->comment); ?>
-                        </div>
-                    </div>
-                <?php endif;?>
-
-                <?php if ($latestPacket->getPacketOgn()->isExistingObject()) : ?>
-                    <div style="line-height: 8px">&nbsp;</div>
-                    <?php if ($latestPacket->getPacketOgn()->ognSignalToNoiseRatio !== null) : ?>
-                        <div>
-                            <div class="overview-content-summary-hr-indent">Signal to Noise Ratio:</div>
-                            <div class="overview-content-summary-indent" title="Signal to Noise Ratio measured upon reception"><?php echo $latestPacket->getPacketOgn()->ognSignalToNoiseRatio; ?> dB</div>
-                        </div>
-                    <?php endif;?>
-
-                    <?php if ($latestPacket->getPacketOgn()->ognBitErrorsCorrected !== null) : ?>
-                        <div>
-                            <div class="overview-content-summary-hr-indent">Bits corrected:</div>
-                            <div class="overview-content-summary-indent" title="The number of bit errors corrected in the packet upon reception"><?php echo $latestPacket->getPacketOgn()->ognBitErrorsCorrected; ?></div>
-                        </div>
-                    <?php endif;?>
-
-                    <?php if ($latestPacket->getPacketOgn()->ognFrequencyOffset !== null) : ?>
-                        <div>
-                            <div class="overview-content-summary-hr-indent">Frequency Offset:</div>
-                            <div class="overview-content-summary-indent" title="The frequency offset measured upon reception"><?php echo $latestPacket->getPacketOgn()->ognFrequencyOffset; ?> kHz</div>
-                        </div>
-                    <?php endif;?>
-                <?php endif;?>
-
-            <?php endif;?>
-
-
-            <!-- Latest Weather -->
-            <?php if ($station->latestWeatherPacketTimestamp !== null) : ?>
-                <div class="overview-content-divider"></div>
-
-                <div>
-                    <div class="overview-content-summary-hr">Latest Weather:</div>
-                    <div id="weather-timestamp" class="overview-content-summary-cell-weather-time" title="Latest received weather">
-                        <?php echo $station->latestWeatherPacketTimestamp; ?>
-                    </div>
-                </div>
-
-                <?php if ($station->latestWeatherPacketComment != '') : ?>
-                    <div>
-                        <div class="overview-content-summary-hr-indent">Comment/Software:</div>
-                        <div class="overview-content-summary-cell-time overview-content-summary-indent" title="Weather packet comment/software">
-                            <?php echo htmlentities($station->latestWeatherPacketComment); ?><br/>
-                        </div>
-                    </div>
-                <?php endif;?>
-            <?php endif;?>
-
-            <!-- Latest Telemetry -->
-            <?php if ($station->latestTelemetryPacketTimestamp !== null) : ?>
-                <div class="overview-content-divider"></div>
-
-                <div>
-                    <div class="overview-content-summary-hr">Latest Telemetry:</div>
-                    <div id="telemetry-timestamp" class="overview-content-summary-cell-telemetry-time" title="Latest received telemetry">
-                        <?php echo $station->latestTelemetryPacketTimestamp; ?>
-                    </div>
-                </div>
-            <?php endif;?>
-
-            <!-- Latest Position -->
-            <?php if ($station->latestConfirmedPacketId !== null) : ?>
-
-                <div class="overview-content-divider"></div>
-
-                <div>
-                    <div class="overview-content-summary-hr">Latest Position:</div>
-                    <div id="overview-content-latest-position" class="overview-content-summary-cell-position" title="Latest position (that is approved by our filters)">
-                        <?php echo round($station->latestConfirmedLatitude, 5); ?>, <?php echo round($station->latestConfirmedLongitude, 5); ?>
-                    </div>
-                </div>
-
-                <div>
-                    <div class="overview-content-summary-hr-indent">Receive Time:</div>
-                    <div id="position-timestamp" class="overview-content-summary-cell-time overview-content-summary-indent" title="Latest position receive time">
-                        <?php if ($station->latestPacketId == $station->latestConfirmedPacketId && $station->latestPacketTimestamp == $station->latestConfirmedPacketTimestamp) : ?>
-                            (Received in latest packet)
-                        <?php else : ?>
-                            <?php echo $station->latestConfirmedPacketTimestamp; ?>
-                        <?php endif; ?>
-                    </div>
-                </div>
-                <div>
-                    <div class="overview-content-summary-hr">&nbsp;</div>
-                    <div class="overview-content-summary-cell-position">
-                        <a href="?sid=<?php echo $station->id; ?>" onclick="
-                            if (window.parent && window.parent.trackdirect) {
-                                $('.modal', parent.document).hide();
-                                window.parent.trackdirect.filterOnStationId([]);
-                                window.parent.trackdirect.filterOnStationId([<?php echo $station->id; ?>]);
-                                return false;
-                            }">Show on map</a>
-                    </div>
-                </div>
-
-
-                <?php $latestConfirmedPacket = PacketRepository::getInstance()->getObjectById($station->latestConfirmedPacketId, $station->latestConfirmedPacketTimestamp); ?>
-                <?php if ($latestConfirmedPacket->isExistingObject() && $latestConfirmedPacket->posambiguity > 0) : ?>
-                <div>
-                    <div class="overview-content-summary-hr-indent">Posambiguity:</div>
-                    <div class="overview-content-summary-cell-posambiguity overview-content-summary-indent" title="If posambiguity is active the gps position is inaccurate">Yes</div>
-                </div>
-                <?php endif;?>
-
-                <?php if ($latestConfirmedPacket->isExistingObject()) : ?>
-                    <?php if ($latestConfirmedPacket->speed != '' || $latestConfirmedPacket->course != '' || $latestConfirmedPacket->altitude != '') : ?>
-                        <?php if (round($latestConfirmedPacket->speed) != 0 || round($latestConfirmedPacket->course) != 0 || round($latestConfirmedPacket->altitude) != 0) : ?>
-
-                            <?php if ($latestConfirmedPacket->speed != '') : ?>
-                            <div>
-                                <div class="overview-content-summary-hr-indent">Speed:</div>
-                                <div title="Latest speed" class="overview-content-summary-indent">
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertKilometerToMile($latestConfirmedPacket->speed), 2); ?> mph
-                                    <?php else : ?>
-                                        <?php echo round($latestConfirmedPacket->speed, 2); ?> km/h
-                                    <?php endif; ?>
-                                </div>
-                            </div>
-                            <?php endif;?>
-
-                            <?php if ($latestConfirmedPacket->course != '') : ?>
-                            <div>
-                                <div class="overview-content-summary-hr-indent">Course:</div>
-                                <div title="Latest course" class="overview-content-summary-indent"><?php echo $latestConfirmedPacket->course; ?>&deg;</div>
-                            </div>
-                            <?php endif;?>
-
-                            <?php if ($latestConfirmedPacket->altitude != '') : ?>
-                            <div>
-                                <div class="overview-content-summary-hr-indent">Altitude:</div>
-                                <div title="Latest altitude" class="overview-content-summary-indent">
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertMeterToFeet($latestConfirmedPacket->altitude), 2); ?> ft
-                                    <?php else : ?>
-                                        <?php echo round($latestConfirmedPacket->altitude, 2); ?> m
-                                    <?php endif; ?>
-                                </div>
-                            </div>
-                            <?php endif;?>
-
-                        <?php endif;?>
-                    <?php endif;?>
-
-                    <?php if ($latestConfirmedPacket->getPacketOgn()->isExistingObject()) : ?>
-                        <?php if ($latestConfirmedPacket->getPacketOgn()->ognClimbRate !== null) : ?>
-                            <div>
-                                <div class="overview-content-summary-hr-indent">Climb Rate:</div>
-                                <div class="overview-content-summary-indent" title="The climb rate in feet-per-minute"><?php echo $latestConfirmedPacket->getPacketOgn()->ognClimbRate; ?> fpm</div>
-                            </div>
-                        <?php endif;?>
-
-                        <?php if ($latestConfirmedPacket->getPacketOgn()->ognTurnRate !== null) : ?>
-                            <div>
-                                <?php $turnRateNote = true; ?>
-                                <div class="overview-content-summary-hr-indent">Turn Rate:</div>
-                                <div class="overview-content-summary-indent" title="Current turn rate."><?php echo $latestConfirmedPacket->getPacketOgn()->ognTurnRate; ?> rot</div>
-                            </div>
-                        <?php endif;?>
-                    <?php endif;?>
-                <?php endif;?>
-
-                <!-- Latest PHG and RNG -->
-                <?php if ($latestConfirmedPacket && $latestConfirmedPacket->isExistingObject()) : ?>
-                    <?php if ($latestConfirmedPacket->phg != null || $latestConfirmedPacket->latestPhgTimestamp != null) : ?>
-                        <div class="overview-content-divider"></div>
-                        <div>
-                            <div class="overview-content-summary-hr">Latest PHG:</div>
-                            <div class="overview-content-summary-cell-phg" title="Power-Height-Gain (and directivity)">
-                                <?php echo $latestConfirmedPacket->getPHGDescription(true); ?><br/>
-                                (Calculated range:
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertKilometerToMile($latestConfirmedPacket->getPHGRange(true)/1000),2); ?> miles)
-                                    <?php else : ?>
-                                        <?php echo round($latestConfirmedPacket->getPHGRange(true)/1000,2); ?> km)
-                                    <?php endif; ?>
-                            </div>
-                        </div>
-                    <?php endif;?>
-
-                    <?php if ($latestConfirmedPacket->rng != null || $latestConfirmedPacket->latestRngTimestamp != null) : ?>
-                        <div class="overview-content-divider"></div>
-                        <div>
-                            <div class="overview-content-summary-hr">Latest RNG:</div>
-                            <div class="overview-content-summary-cell-phg" title="The pre-calculated radio range">
-                                <?php if (isImperialUnitUser()) : ?>
-                                    <?php echo round(convertKilometerToMile($latestConfirmedPacket->getRng(true)), 2); ?> miles
-                                <?php else : ?>
-                                    <?php echo round($latestConfirmedPacket->getRng(true), 2); ?> km
-                                <?php endif; ?>
-                            </div>
-                        </div>
-                    <?php endif;?>
-                <?php endif;?>
-            <?php endif;?>
-
-            <!-- Latest Symbols -->
-            <?php $stationLatestSymbols = $station->getLatestIconFilePaths(22, 22); ?>
-            <?php if ($stationLatestSymbols !== null && count($stationLatestSymbols) > 1) : ?>
-                <div class="overview-content-divider"></div>
-                <div>
-                    <div class="overview-content-summary-hr">Latest used symbols:</div>
-                    <div title="Latest symbols that this station has used">
-                        <?php foreach ($stationLatestSymbols as $symbolPath) : ?>
-                            <img src="<?php echo $symbolPath; ?>" alt="Symbol"/>&nbsp;
-                        <?php endforeach; ?>
-                    </div>
-                </div>
-            <?php endif; ?>
-
-
-            <!-- Packet Frequency -->
-            <?php $packetFrequencyNumberOfPackets = null; ?>
-            <?php $stationPacketFrequency = $station->getPacketFrequency(null, $packetFrequencyNumberOfPackets); ?>
-            <?php if ($stationPacketFrequency != null) : ?>
-                <div class="overview-content-divider"></div>
-                <div>
-                    <div class="overview-content-summary-hr">Packet frequency:</div>
-                    <div class="overview-content-packet-frequency" title="Calculated packet frequency"><span><?php echo $stationPacketFrequency; ?>s</span> <span>(Latest <?php echo $packetFrequencyNumberOfPackets; ?> packets)</span></div>
-                </div>
-            <?php endif; ?>
-
-
-            <div class="overview-content-divider"></div>
-        </div>
-
-        <div class="overview-content-symbol" id ="overview-content-symbol-<?php echo $station->id; ?>">
-            <img src="<?php echo $station->getIconFilePath(150, 150); ?>" alt="Latest symbol" title="<?php echo $station->getLatestSymbolDescription(); ?>"/>
-            <?php if ($station->latestPacketId !== null) : ?>
-                <br/>
-                <div style="text-align: center; padding-top: 30px;">
-                    <?php if ($station->getOgnDevice() !== null && $station->getOgnDevice()->registration != null) : ?>
-                        <div>
-                            Search for <a href="https://www.jetphotos.com/registration/<?php echo $station->getOgnDevice()->registration; ?>" target="_blank"><?php echo htmlspecialchars($station->getOgnDevice()->registration); ?></a> photos!
-                        </div>
-                    <?php endif; ?>
-
-                    <?php if ($station->sourceId == 1) : ?>
-                        <?php if ($station->getLiklyHamRadioCallsign() !== null) : ?>
-                            <div>Search for <a href="https://www.qrz.com/db/<?php echo $station->getLiklyHamRadioCallsign(); ?>" target="_blank"><?php echo htmlspecialchars($station->getLiklyHamRadioCallsign()); ?></a> at QRZ</div>
-                        <?php endif; ?>
-                    <?php endif; ?>
-
-                    <div>Export <a href="/data/kml.php?id=<?php echo $station->id; ?>"><?php echo htmlspecialchars($station->name); ?></a> data to KML</div>
-                </div>
-                <div style="clear: both;"></div>
-            <?php endif; ?>
-        </div>
-
-        <div class="horizontal-line">&nbsp;</div>
-
-        <div class="overview-content-summary">
-
-            <!-- Related stations -->
-            <?php $relatedStations = StationRepository::getInstance()->getRelatedObjectListByStationId($station->id, 15); ?>
-            <?php if (count($relatedStations) > 1) : ?>
-                <div>
-                    <?php $relatedStattionNote = true; ?>
-                    <div class="overview-content-summary-hr">Related stations/objects:</div>
-                    <div class="overview-content-station-list" title="Stations with same call except SSID or objects with related sender">
-                        <?php foreach ($relatedStations as $relatedStation) : ?>
-                            <?php if ($relatedStation->id != $station->id) : ?>
-                                <img src="<?php echo $relatedStation->getIconFilePath(22, 22); ?>" alt="Symbol"/>&nbsp;
-                                <span><a class="tdlink" href="/views/overview.php?id=<?php echo $relatedStation->id; ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>"><?php echo htmlentities($relatedStation->name) ?></a></span>
-                                <br/>
-                            <?php endif; ?>
-                        <?php endforeach; ?>
-                    </div>
-                </div>
-                <div class="overview-content-divider"></div>
-            <?php endif; ?>
-
-
-            <!-- Close by stations -->
-            <?php $closeByStations = StationRepository::getInstance()->getCloseByObjectListByStationId($station->id, 15); ?>
-            <?php if (count($closeByStations) > 1) : ?>
-                <div>
-                    <div class="overview-content-summary-hr">Nearby stations/objects:</div>
-                    <div class="overview-content-station-list" title="The closest stations/objects at the current position">
-                        <?php foreach ($closeByStations as $closeByStation) : ?>
-                            <?php if ($closeByStation->id != $station->id) : ?>
-
-                                <img src="<?php echo $closeByStation->getIconFilePath(22, 22); ?>" alt="Symbol"/>&nbsp;
-                                <span>
-                                    <a class="tdlink" href="/views/overview.php?id=<?php echo $closeByStation->id; ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>"><?php echo htmlentities($closeByStation->name) ?></a>
-                                    <span>
-                                        <?php if (isImperialUnitUser()) : ?>
-                                            <?php if (convertMeterToYard($closeByStation->getDistance($station->latestConfirmedLatitude, $station->latestConfirmedLongitude)) < 1000) : ?>
-                                                <?php echo round(convertMeterToYard($closeByStation->getDistance($station->latestConfirmedLatitude, $station->latestConfirmedLongitude)), 0); ?> yd
-                                            <?php else : ?>
-                                                <?php echo round(convertKilometerToMile($closeByStation->getDistance($station->latestConfirmedLatitude, $station->latestConfirmedLongitude) / 1000), 2); ?> miles
-                                            <?php endif; ?>
-                                        <?php else : ?>
-                                            <?php if ($closeByStation->getDistance($station->latestConfirmedLatitude, $station->latestConfirmedLongitude) < 1000) : ?>
-                                                <?php echo round($closeByStation->getDistance($station->latestConfirmedLatitude, $station->latestConfirmedLongitude), 0); ?> m
-                                            <?php else : ?>
-                                                <?php echo round($closeByStation->getDistance($station->latestConfirmedLatitude, $station->latestConfirmedLongitude) / 1000, 2); ?> km
-                                            <?php endif; ?>
-                                        <?php endif; ?>
-                                    </span>
-
-                                </span>
-                            <br/>
-                            <?php endif; ?>
-                        <?php endforeach; ?>
-                    </div>
-                </div>
-                <div class="overview-content-divider"></div>
-            <?php endif; ?>
-        </div>
-
-        <?php if (count($relatedStations) > 1 || count($closeByStations) > 1) : ?>
-            <div class="horizontal-line">&nbsp;</div>
-        <?php endif; ?>
-
-        <div class="overview-content-explanations">
-            <ul>
-                <li>The specified "Station ID" is the ID that this station has on this website, this ID is useful when creating a link to this website. Read more in the About/FAQ.</li>
-
-                <?php if ($station->sourceId == 5) : ?>
-                    <li>Packets is received from the <a target="_blank" href="http://wiki.glidernet.org/">Open Glider Network</a>. The goal of the Open Glider Network project is to create a unified platform for tracking aircraft equipped with FLARM and OGN trackers.</li>
-
-                    <li>Aircraft device details such as Registration, CN and Aircraft Model is collected from the <a target="_blank" href="http://wiki.glidernet.org/ddb">OGN Devices DataBase</a>. We will only display information that can be used to identify an aircraft if the aircraft device details exists in the OGN Devices DataBase, and if the setting "I don't want this device to be identified" is deactivated.</li>
-
-                    <li>Detailed aircraft information is received from the <a target="_blank" rel="nofollow" href="http://wiki.glidernet.org/ddb">OGN Devices DataBase</a>. If the aircraft is not registered in the <a target="_blank" rel="nofollow" href="http://wiki.glidernet.org/ddb">OGN Devices DataBase</a> or if the aircraft does not want to be identified, the aircraft type indicated in the FLARM/OGN packet is displayed (but only if the website is configured to show aircrafts not registered in the database, that setting is not enabled by default). We also adapt which symbol that is used based on the selected aircraft type.</li>
-
-                    <li>According to <a target="_blank" href="http://wiki.glidernet.org/">OGN</a>, 4-5dB is about the limit of meaningful reception (but currently we still save packets with low SNR).</li>
-
-                    <li>According to <a target="_blank" href="http://wiki.glidernet.org/">OGN</a>, it is recommended that you ignore packets that have a high CRC error rate (>5) as their information may be corrupt (but currently we still save packets with high CRC error rate).</li>
-
-                    <li>1rot is the standard aircraft rotation rate of 1 half-turn per minute (equal to 1.5&deg; per second).</li>
-                <?php endif; ?>
-
-                <?php if ($station->sourceId == 1) : ?>
-                    <li>To get a better understanding of the APRS path I recommend reading <a target="_blank" rel="nofollow" href="http://wa8lmf.net/DigiPaths/">the explanation written by wa8lmf</a>.</li>
-
-                    <li>If this packet has the "Posambiguity"-mark it means that the sent position is ambiguous (a configured number of digits has been truncated from the end of the position).</li>
-
-                    <li>PHG stands for Power-Height-Gain (and directivity). The height is not the height above sea-level, it is the height above average terrain (HAAT = Height Above Average Terrain). PHG is used to calculate the relative RF range of a station. If this station has reported several positions or symbols the PHG data will only be used for the position and symbol used in the PHG-packet.</li>
-
-                    <li>RNG is the "pre-calculated omni-directional radio range" of the station (reported by the station itself). If this station has reported several positions or symbols the RNG data will only be used for the position and symbol used in the RNG-packet. It seems like many D-STAR station use the RNG value to specifify D-STAR range.</li>
-
-                    <li>One object may be sent by several different senders. On the map they may share the same path, but they all have their own "Station information" modal.</li>
-
-                    <li>If station has more than 15 related stations we will only show the 10 closest related stations.</li>
-                <?php endif; ?>
-
-                <?php if ($station->sourceId == 2) : ?>
-                    <li>Station data is received from the CWOP network (Citizen Weather Observer Program). Visit <a href="http://www.wxqa.com/cwop_info.htm" target="_blank">CWOP Information</a> if you want know more!</li>
-
-
-                <?php endif; ?>
-
-            </ul>
-        </div>
-    </div>
-
-    <script>
-        $(document).ready(function() {
-            var locale = window.navigator.userLanguage || window.navigator.language;
-            moment.locale(locale);
-
-            $('#overview-content-comment, #overview-content-beacon, #overview-content-status').each(function() {
-                if ($(this).html().trim() != '') {
-                    $(this).html(Autolinker.link($(this).html()));
-                }
-            });
-
-            $('#latest-timestamp, #comment-timestamp, #status-timestamp, #beacon-timestamp, #position-timestamp, #weather-timestamp, #telemetry-timestamp').each(function() {
-                if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                    $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-                }
-            });
-
-            if ($('#latest-timestamp-age').length && $('#latest-timestamp-age').html().trim() != '' && !isNaN($('#latest-timestamp-age').html().trim())) {
-                $('#latest-timestamp-age').html(moment(new Date(1000 * $('#latest-timestamp-age').html())).locale('en').fromNow());
-            }
-
-            if (window.trackdirect) {
-                <?php if ($station->latestConfirmedLatitude != null && $station->latestConfirmedLongitude != null) : ?>
-                    window.trackdirect.addListener("map-created", function() {
-                        if (!window.trackdirect.focusOnStation(<?php echo $station->id ?>, true)) {
-                            window.trackdirect.setCenter(<?php echo $station->latestConfirmedLatitude ?>, <?php echo $station->latestConfirmedLongitude ?>);
-                        }
-                    });
-                <?php endif; ?>
-            }
-        });
-    </script>
-<?php endif; ?>
diff --git a/htdocs/public/views/raw.php b/htdocs/public/views/raw.php
deleted file mode 100644
index 9e776baa1786b786e9e774e001d8040275b4c12a..0000000000000000000000000000000000000000
--- a/htdocs/public/views/raw.php
+++ /dev/null
@@ -1,510 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php $station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null); ?>
-<?php if ($station->isExistingObject()) : ?>
-
-    <?php
-        $page = $_GET['page'] ?? 1;
-        $rows = $_GET['rows'] ?? 25;
-        $offset = ($page - 1) * $rows;
-
-        if (($_GET['category'] ?? 1) == 2) {
-            $packets = PacketRepository::getInstance()->getObjectListWithRawBySenderStationId($station->id, $rows, $offset);
-            $count = PacketRepository::getInstance()->getNumberOfPacketsWithRawBySenderStationId($station->id);
-        } else {
-            $packets = PacketRepository::getInstance()->getObjectListWithRawByStationId($station->id, $rows, $offset);
-            $count = PacketRepository::getInstance()->getNumberOfPacketsWithRawByStationId($station->id);
-        }
-
-        $pages = ceil($count / $rows);
-    ?>
-
-    <title><?php echo $station->name; ?> Raw Packets</title>
-    <div class="modal-inner-content">
-        <div class="modal-inner-content-menu">
-            <a class="tdlink" title="Overview" href="/views/overview.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Overview</a>
-            <a class="tdlink" title="Statistics" href="/views/statistics.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Statistics</a>
-            <a class="tdlink" title="Trail Chart" href="/views/trail.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Trail Chart</a>
-            <a class="tdlink" title="Weather" href="/views/weather.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Weather</a>
-            <a class="tdlink" title="Telemetry" href="/views/telemetry.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Telemetry</a>
-            <span>Raw packets</span>
-        </div>
-
-        <div class="horizontal-line">&nbsp;</div>
-
-        <p>
-            This is the latest recevied packets stored in our database for station/object <?php echo $station->name; ?>. If no packets are shown the sender has not sent any packets the latest 24 hours.
-        </p>
-
-        <?php if ($station->sourceId == 5) : ?>
-            <p>
-                We do not save raw packets for aircrafts that do not exists in the <a target="_blank" href="http://wiki.glidernet.org/ddb">OGN Devices DataBase</a>. We will only display information that can be used to identify an aircraft if the aircraft device details exists in the OGN Devices DataBase, and if the setting "I don't want this device to be identified" is deactivated.
-            </p>
-        <?php else : ?>
-            <p>
-                If you compare the raw packets with similar data from other websites it may differ (especially the path), the reason is that we are not collecting packets from the same APRS-IS servers. Each APRS-IS server performes duplicate filtering, and which packet that is considered to be a duplicate may differ depending on which APRS-IS server you receive your data from.
-            </p>
-        <?php endif; ?>
-
-        <div class="form-container">
-            <?php if ($station->stationTypeId == 1) : ?>
-                <select id="raw-category" style="float:left; margin-right: 5px;">
-                    <option <?php echo (($_GET['category'] ?? 1) == 1 ? 'selected' : ''); ?> value="1">Packets regarding <?php echo $station->name; ?></option>
-                    <option <?php echo (($_GET['category'] ?? 1) == 2 ? 'selected' : ''); ?> value="2">Packets sent by <?php echo $station->name; ?></option>
-                </select>
-            <?php endif; ?>
-
-            <select id="raw-type" style="float:left; margin-right: 5px;">
-                <option <?php echo (($_GET['type'] ?? 1) == 1 ? 'selected' : ''); ?> value="1">Raw Packets</option>
-                <option <?php echo (($_GET['type'] ?? 1) == 2 ? 'selected' : ''); ?> value="2">Decoded Data</option>
-            </select>
-
-            <select id="raw-rows" style="float:left; margin-right: 5px;" class="pagination-rows">
-                <option <?php echo ($rows == 25 ? 'selected' : ''); ?> value="25">25 rows</option>
-                <option <?php echo ($rows == 50 ? 'selected' : ''); ?> value="50">50 rows</option>
-                <option <?php echo ($rows == 100 ? 'selected' : ''); ?> value="100">100 rows</option>
-                <option <?php echo ($rows == 200 ? 'selected' : ''); ?> value="200">200 rows</option>
-                <option <?php echo ($rows == 300 ? 'selected' : ''); ?> value="300">300 rows</option>
-            </select>
-        </div>
-
-        <?php if ($pages > 1): ?>
-            <div class="pagination">
-              <a class="tdlink" href="/views/raw.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1) ?>&type=<?php echo ($_GET['type'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=1"><<</a>
-              <?php for($i = max(1, $page - 3); $i <= min($pages, $page + 3); $i++) : ?>
-              <a href="/views/raw.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1) ?>&type=<?php echo ($_GET['type'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=<?php echo $i; ?>" <?php echo ($i == $page ? 'class="tdlink active"': 'class="tdlink"')?>><?php echo $i ?></a>
-              <?php endfor; ?>
-              <a class="tdlink" href="/views/raw.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1) ?>&type=<?php echo ($_GET['type'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=<?php echo $pages; ?>">>></a>
-            </div>
-        <?php endif; ?>
-
-        <div id="raw-content-output">
-            <?php foreach (array_slice($packets, 0, $rows) as $packet) : ?>
-                <?php if (($_GET['type'] ?? 1) == 1) : ?>
-                    <p>
-                        <span class="raw-packet-timestamp"><?php echo $packet->timestamp; ?></span>:
-
-                        <?php if (in_array($packet->mapId, Array(3, 6))) : ?>
-                        <span class="raw-packet-error">
-                        <?php else : ?>
-                        <span>
-                        <?php endif; ?>
-
-                            <?php echo str_replace_first(htmlspecialchars($station->name . '>'), '<b>' . htmlspecialchars($station->name) . '</b>&gt;', htmlspecialchars($packet->raw)); ?>
-
-                            <?php if ($packet->mapId == 3) : ?>
-                            &nbsp;<b>[Duplicate]</b>
-                            <?php elseif ($packet->mapId == 6) : ?>
-                            &nbsp;<b>[Received in wrong order]</b>
-                            <?php endif; ?>
-
-                        </span>
-                    </p>
-                <?php elseif (($_GET['type'] ?? 1) == 2) : ?>
-                    <div class="decoded">
-                        <div class="datagrid">
-                            <table>
-                                <thead>
-                                    <tr>
-                                        <th colspan="2">
-                                            <?php if (in_array($packet->mapId, Array(3, 6))) : ?>
-                                            <span class="raw-packet-error">
-                                            <?php else : ?>
-                                            <span>
-                                            <?php endif; ?>
-                                                <span class="raw-packet-timestamp"><?php echo $packet->timestamp; ?></span>
-
-                                                <?php if ($packet->mapId == 3) : ?>
-                                                &nbsp;<b>[Duplicate]</b>
-                                                <?php elseif ($packet->mapId == 6) : ?>
-                                                &nbsp;<b>[Received in wrong order]</b>
-                                                <?php endif; ?>
-                                            </span>
-                                        </th>
-                                    </tr>
-                                </thead>
-                                <tbody>
-                                    <tr>
-                                        <td>Raw</td>
-                                        <td>
-                                            <?php echo str_replace_first(htmlspecialchars($station->name . '>'), '<b>' . htmlspecialchars($station->name) . '</b>&gt;', htmlspecialchars($packet->raw)); ?>
-                                        </td>
-                                    </tr>
-
-                                    <tr><td>Packet type</td><td><?php echo $packet->getPacketTypeName(); ?></td></tr>
-
-                                    <?php if ($packet->getStationObject()->stationTypeId == 2) : ?>
-                                        <tr><td>Object/Item name</td><td><?php echo htmlspecialchars($packet->getStationObject()->name); ?></td></tr>
-                                    <?php else : ?>
-                                        <tr><td>Callsign</td><td><?php echo htmlspecialchars($packet->getStationObject()->name); ?></td></tr>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->getStationObject()->name != $packet->getSenderObject()->name) : ?>
-                                        <tr><td>Sender</td><td><?php echo htmlspecialchars($packet->getSenderObject()->name); ?></td></tr>
-                                    <?php endif; ?>
-
-                                    <tr><td>Path</td><td><?php echo htmlspecialchars($packet->rawPath); ?></td></tr>
-
-                                    <?php if ($packet->reportedTimestamp != null) : ?>
-                                        <tr><td>Reported time</td><td><?php echo $packet->reportedTimestamp; ?> - <span class="raw-packet-timestamp"><?php echo $packet->reportedTimestamp; ?></span></td></tr>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->latitude != null && $packet->longitude != null) : ?>
-                                        <tr><td>Latitude</td><td><?php echo round($packet->latitude, 5); ?></td></tr>
-                                        <tr><td>Longitude</td><td><?php echo round($packet->longitude, 5); ?></td></tr>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->symbol != null && $packet->symbolTable != null) : ?>
-                                        <tr><td>Symbol</td><td><?php echo htmlspecialchars($packet->symbol); ?></td></tr>
-                                        <tr><td>Symbol table</td><td><?php echo htmlspecialchars($packet->symbolTable); ?></td></tr>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->speed != null) : ?>
-                                        <?php if (isImperialUnitUser()) : ?>
-                                            <tr><td>Speed</td><td><?php echo convertKilometerToMile($packet->speed); ?> mph</td></tr>
-                                        <?php else : ?>
-                                            <tr><td>Speed</td><td><?php echo $packet->speed; ?> km/h</td></tr>
-                                        <?php endif; ?>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->course != null) : ?>
-                                        <tr><td>Course</td><td><?php echo $packet->course; ?>°</td></tr>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->altitude != null) : ?>
-                                        <?php if (isImperialUnitUser()) : ?>
-                                            <tr><td>Altitude</td><td><?php echo convertMeterToFeet($packet->altitude); ?> ft</td></tr>
-                                        <?php else : ?>
-                                            <tr><td>Altitude</td><td><?php echo $packet->altitude; ?> m</td></tr>
-                                        <?php endif; ?>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->comment != null) : ?>
-                                        <?php if ($packet->packetTypeId == 10) : ?>
-                                            <tr><td>Status</td><td><?php echo htmlspecialchars($packet->comment); ?></td></tr>
-                                        <?php elseif ($packet->packetTypeId == 7) : ?>
-                                            <tr><td>Beacon</td><td><?php echo htmlspecialchars($packet->comment); ?></td></tr>
-                                        <?php else : ?>
-                                            <tr><td>Comment</td><td><?php echo htmlspecialchars($packet->comment); ?></td></tr>
-                                        <?php endif; ?>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->posambiguity == 1) : ?>
-                                        <tr><td>Posambiguity</td><td>Yes</td></tr>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->phg != null) : ?>
-                                        <?php if (isImperialUnitUser()) : ?>
-                                            <tr><td>PHG</td><td><?php echo $packet->phg; ?> (Calculated range: <?php echo round(convertKilometerToMile($packet->getPHGRange()/1000),2); ?> miles)</td></tr>
-                                        <?php else : ?>
-                                            <tr><td>PHG</td><td><?php echo $packet->phg; ?> (Calculated range: <?php echo round($packet->getPHGRange()/1000,2); ?> km)</td></tr>
-                                        <?php endif; ?>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->rng != null) : ?>
-                                        <tr><td>RNG</td><td><?php echo $packet->rng; ?></td></tr>
-                                    <?php endif; ?>
-
-                                    <?php if ($station->latestWeatherPacketTimestamp !== null) : ?>
-                                        <?php $weather = $packet->getPacketWeather(); ?>
-                                        <?php if ($weather->isExistingObject()) : ?>
-                                            <tr>
-                                                <td>Weather</td>
-                                                <td>
-                                                    <table>
-                                                        <tbody>
-                                                            <?php if ($weather->wxRawTimestamp !== null) : ?>
-                                                                <tr>
-                                                                    <td>Time:</td><td><span class="raw-packet-timestamp"><?php echo $weather->wxRawTimestamp; ?></span></td>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->temperature !== null) : ?>
-                                                                <tr>
-                                                                    <td>Temperature:</td>
-                                                                    <?php if (isImperialUnitUser()) : ?>
-                                                                        <td><?php echo round(convertCelciusToFahrenheit($weather->temperature), 2); ?>&deg; F</td>
-                                                                    <?php else : ?>
-                                                                        <td><?php echo round($weather->temperature, 2); ?>&deg; C</td>
-                                                                    <?php endif; ?>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->humidity !== null) : ?>
-                                                                <tr>
-                                                                    <td>Humidity:</td>
-                                                                    <td><?php echo $weather->humidity; ?>%</td>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->pressure !== null) : ?>
-                                                                <tr>
-                                                                    <td>Pressure:</td>
-                                                                    <?php if (isImperialUnitUser()) : ?>
-                                                                        <td><?php echo round(convertMbarToMmhg($weather->pressure),1); ?> mmHg</td>
-                                                                    <?php else : ?>
-                                                                        <td><?php echo round($weather->pressure,1); ?> hPa</td>
-                                                                    <?php endif; ?>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->rain_1h !== null) : ?>
-                                                                <tr>
-                                                                    <td>Rain latest hour:</td>
-                                                                    <?php if (isImperialUnitUser()) : ?>
-                                                                        <td><?php echo round(convertMmToInch($weather->rain_1h),2); ?> in</td>
-                                                                    <?php else : ?>
-                                                                        <td><?php echo round($weather->rain_1h,2); ?> mm</td>
-                                                                    <?php endif; ?>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->rain_24h !== null) : ?>
-                                                                <tr>
-                                                                    <td>Rain latest 24h hours:</td>
-                                                                    <?php if (isImperialUnitUser()) : ?>
-                                                                        <td><?php echo round(convertMmToInch($weather->rain_24h),2); ?> in</td>
-                                                                    <?php else : ?>
-                                                                        <td><?php echo round($weather->rain_24h,2); ?> mm</td>
-                                                                    <?php endif; ?>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->rain_since_midnight !== null) : ?>
-                                                                <tr>
-                                                                    <td>Rain since midnight:</td>
-                                                                    <?php if (isImperialUnitUser()) : ?>
-                                                                        <td><?php echo round(convertMmToInch($weather->rain_since_midnight),2); ?> in</td>
-                                                                    <?php else : ?>
-                                                                        <td><?php echo round($weather->rain_since_midnight,2); ?> mm</td>
-                                                                    <?php endif; ?>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if (isImperialUnitUser()) : ?>
-                                                                <?php if ($weather->wind_speed !== null && $weather->wind_speed > 0) : ?>
-                                                                    <tr>
-                                                                        <td>Wind Speed:</td>
-                                                                        <td><?php echo round(convertMpsToMph($weather->wind_speed), 2); ?> mph, <?php echo $weather->wind_direction; ?>&deg;</td>
-                                                                    </tr>
-                                                                <?php elseif($weather->wind_speed !== null) : ?>
-                                                                    <tr>
-                                                                        <td>Wind Speed:</td>
-                                                                        <td><?php echo round(convertMpsToMph($weather->wind_speed), 2); ?> mph</td>
-                                                                    </tr>
-                                                                <?php endif; ?>
-
-                                                            <?php else : ?>
-                                                                <?php if ($weather->wind_speed !== null && $weather->wind_speed > 0) : ?>
-                                                                    <tr>
-                                                                        <td>Wind Speed:</td>
-                                                                        <td><?php echo round($weather->wind_speed, 2); ?> m/s, <?php echo $weather->wind_direction; ?>&deg;</td>
-                                                                    </tr>
-                                                                <?php elseif($weather->wind_speed !== null) : ?>
-                                                                    <tr>
-                                                                        <td>Wind Speed:</td>
-                                                                        <td><?php echo round($weather->wind_speed, 2); ?> m/s</td>
-                                                                    </tr>
-                                                                <?php endif; ?>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->luminosity !== null) : ?>
-                                                                <tr>
-                                                                    <td>Luminosity:</td><td><?php echo round($weather->luminosity,0); ?> W/m&sup2;</td>
-                                                                </tr>
-                                                            <?php endif; ?>
-
-                                                            <?php if ($weather->snow !== null) : ?>
-                                                                <tr>
-                                                                <?php if (isImperialUnitUser()) : ?>
-                                                                    <td>Snow:</td><td><?php echo round(convertMmToInch($weather->snow), 0); ?> in</td>
-                                                                <?php else : ?>
-                                                                    <td>Snow:</td><td><?php echo round($weather->snow, 0); ?> mm</td>
-                                                                <?php endif; ?>
-                                                                </tr>
-                                                            <?php endif; ?>
-                                                        </tbody>
-                                                    </table>
-                                                </td>
-                                            </tr>
-
-                                        <?php endif; ?>
-                                    <?php endif; ?>
-
-                                    <?php if ($station->latestTelemetryPacketTimestamp !== null) : ?>
-                                        <?php $telemetry = $packet->getPacketTelemetry(); ?>
-                                        <?php if ($telemetry->isExistingObject()) : ?>
-                                            <tr>
-                                                <td>Telemetry Analog Values</td>
-                                                <td>
-                                                    <table>
-                                                        <tbody>
-                                                            <?php for ($i = 1; $i<=5; $i++) : ?>
-                                                                <?php if ($telemetry->isValueSet($i)) : ?>
-                                                                    <tr>
-                                                                        <td><?php echo htmlspecialchars($telemetry->getValueParameterName($i)); ?>:</td>
-                                                                        <td><?php echo round($telemetry->getValue($i), 2); ?> <?php echo htmlspecialchars($telemetry->getValueUnit($i)); ?></td>
-                                                                    </tr>
-                                                                <?php endif; ?>
-                                                            <?php endfor; ?>
-                                                        </tbody>
-                                                    </table>
-                                                </td>
-                                            </tr>
-                                            <?php if ($telemetry->bits !== null) : ?>
-                                                <tr>
-                                                    <td>Telemetry Bit Values</td>
-                                                    <td>
-                                                        <table>
-                                                            <tbody>
-                                                                <?php for ($i = 1; $i<=8; $i++) : ?>
-                                                                    <tr>
-                                                                        <td><?php echo htmlspecialchars($telemetry->getBitParameterName($i)); ?>:</td>
-                                                                        <td><?php echo $telemetry->getBit($i); ?></td>
-                                                                    </tr>
-                                                                <?php endfor; ?>
-                                                            </tbody>
-                                                        </table>
-                                                    </td>
-                                                </tr>
-                                            <?php endif; ?>
-                                        <?php endif; ?>
-
-
-                                        <?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':UNIT.')) : ?>
-                                            <?php $pos = strpos($packet->raw, ':UNIT.'); ?>
-                                            <tr>
-                                                <td>Telemetry UNIT</td>
-                                                <td>
-                                                    <?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
-                                                </td>
-                                            </tr>
-                                        <?php endif; ?>
-
-                                        <?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':BITS.')) : ?>
-                                            <?php $pos = strpos($packet->raw, ':BITS.'); ?>
-                                            <tr>
-                                                <td>Telemetry BITS</td>
-                                                <td>
-                                                    <?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
-                                                </td>
-                                            </tr>
-                                        <?php endif; ?>
-
-                                        <?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':EQNS.')) : ?>
-                                            <?php $pos = strpos($packet->raw, ':EQNS.'); ?>
-                                            <tr>
-                                                <td>Telemetry EQNS</td>
-                                                <td>
-                                                    <?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
-                                                </td>
-                                            </tr>
-                                        <?php endif; ?>
-
-                                        <?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':PARM.')) : ?>
-                                            <?php $pos = strpos($packet->raw, ':PARM.'); ?>
-                                            <tr>
-                                                <td>Telemetry PARM</td>
-                                                <td>
-                                                    <?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
-                                                </td>
-                                            </tr>
-                                        <?php endif; ?>
-                                    <?php endif; ?>
-
-                                    <?php if ($packet->getPacketOgn()->isExistingObject()) : ?>
-                                        <?php if ($packet->getPacketOgn()->ognSignalToNoiseRatio !== null) : ?>
-                                            <tr>
-                                                <td>Signal to Noise Ratio</td>
-                                                <td>
-                                                    <?php echo $packet->getPacketOgn()->ognSignalToNoiseRatio; ?> dB
-                                                </td>
-                                            </tr>
-                                        <?php endif;?>
-
-                                        <?php if ($packet->getPacketOgn()->ognBitErrorsCorrected !== null) : ?>
-                                            <tr>
-                                                <td>Bits corrected</td>
-                                                <td>
-                                                    <?php echo $packet->getPacketOgn()->ognBitErrorsCorrected; ?>
-                                                </td>
-                                            </tr>
-                                        <?php endif;?>
-
-                                        <?php if ($packet->getPacketOgn()->ognFrequencyOffset !== null) : ?>
-                                            <tr>
-                                                <td>Frequency Offset</td>
-                                                <td>
-                                                    <?php echo $packet->getPacketOgn()->ognFrequencyOffset; ?> kHz
-                                                </td>
-                                            </tr>
-                                        <?php endif;?>
-
-                                        <?php if ($packet->getPacketOgn()->ognClimbRate !== null) : ?>
-                                            <tr>
-                                                <td>Climb Rate</td>
-                                                <td>
-                                                    <?php echo $packet->getPacketOgn()->ognClimbRate; ?> fpm
-                                                </td>
-                                            </tr>
-                                        <?php endif;?>
-
-                                        <?php if ($packet->getPacketOgn()->ognTurnRate !== null) : ?>
-                                            <tr>
-                                                <td>Turn Rate</td>
-                                                <td>
-                                                    <?php echo $packet->getPacketOgn()->ognTurnRate; ?> fpm
-                                                </td>
-                                            </tr>
-                                        <?php endif;?>
-                                    <?php endif;?>
-                                </tbody>
-                            </table>
-                        </div>
-                    </div>
-                <?php endif; ?>
-            <?php endforeach; ?>
-        </div>
-
-        <?php if (count($packets) == 0) : ?>
-        <p>
-            <b><i>No raw packets found.</i></b>
-        </p>
-        <?php endif; ?>
-    </div>
-
-    <script>
-        $(document).ready(function() {
-            var locale = window.navigator.userLanguage || window.navigator.language;
-            moment.locale(locale);
-
-            $('.raw-packet-timestamp').each(function() {
-                if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                    $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-                }
-            });
-
-            $('#raw-category').change(function () {
-                loadView("/views/raw.php?id=<?php echo $station->id ?>&type=" + $('#raw-type').val() + "&category=" + $('#raw-category').val() + "&rows=" + $('#raw-rows').val() + "&page=1");
-            });
-
-            $('#raw-type').change(function () {
-                loadView("/views/raw.php?id=<?php echo $station->id ?>&type=" + $('#raw-type').val() + "&category=" + $('#raw-category').val() + "&rows=" + $('#raw-rows').val() + "&page=1");
-            });
-
-            $('#raw-rows').change(function () {
-                loadView("/views/raw.php?id=<?php echo $station->id ?>&type=" + $('#raw-type').val() + "&category=" + $('#raw-category').val() + "&rows=" + $('#raw-rows').val() + "&page=1");
-            });
-
-            if (window.trackdirect) {
-                <?php if ($station->latestConfirmedLatitude != null && $station->latestConfirmedLongitude != null) : ?>
-                    window.trackdirect.addListener("map-created", function() {
-                        if (!window.trackdirect.focusOnStation(<?php echo $station->id ?>, true)) {
-                            window.trackdirect.setCenter(<?php echo $station->latestConfirmedLatitude ?>, <?php echo $station->latestConfirmedLongitude ?>);
-                        }
-                    });
-                <?php endif; ?>
-            }
-        });
-    </script>
-<?php endif; ?>
diff --git a/htdocs/public/views/search.php b/htdocs/public/views/search.php
deleted file mode 100644
index 4f5b3046e74a55d9ffe32f05a76b616ca9bf2977..0000000000000000000000000000000000000000
--- a/htdocs/public/views/search.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php
-    $stations = [];
-    $seconds = $_GET['seconds'] ?? 0;
-    $page = $_GET['page'] ?? 1;
-    $rows = $_GET['rows'] ?? 50;
-    $offset = ($page - 1) * $rows;
-    $count = 0;
-    if (isset($_GET['q'])) {
-        $stations = StationRepository::getInstance()->getObjectListByQueryString($_GET['q'], $seconds, $rows, $offset);
-        $count = StationRepository::getInstance()->getNumberOfStationsByQueryString($_GET['q'], $seconds);
-    }
-    $pages = ceil($count / $rows);
-?>
-
-<title>Station search</title>
-<div class="modal-inner-content" style="padding-bottom: 30px;">
-    <p>
-        Search by entering the beginning of the station name/id (or just click search to list all).
-    </p>
-
-    <form id="station-search-form" method="get" action="">
-        <div style="margin-bottom: 5px;">
-            <select name ="seconds" style="width: 280px;" id="station-search-form-seconds">
-                <option <?php echo ($seconds == 0 ? 'selected' : ''); ?> value="0">Include all known stations in search</option>
-                <option <?php echo ($seconds == 60 ? 'selected' : ''); ?> value="60">Only stations active latest hour</option>
-                <option <?php echo ($seconds == 360 ? 'selected' : ''); ?> value="360">Only stations active latest 6 hours</option>
-                <option <?php echo ($seconds == 720 ? 'selected' : ''); ?> value="720">Only stations active latest 12 hours</option>
-            </select>
-        </div>
-        <div>
-            <input type="text" style="width: 280px; margin-bottom: 5px;" id="station-search-form-q" name="q" placeholder="Search here!" title="Search for a station/vehicle here!" value="<?php echo ($_GET['q'] ?? '') ?>">
-            <input type="submit" value="Search">
-        </div>
-    </form>
-
-    <div style="clear: both;"></div>
-
-    <?php if (count($stations) > 0) : ?>
-        <p>
-            <?php echo $count; ?> result(s):
-        </p>
-
-        <?php if ($pages > 1): ?>
-            <div class="pagination">
-              <a class="tdlink" href="/search.php?q=<?php echo ($_GET['q'] ?? "") ?>&seconds=<?php echo $seconds ?>&page=1"><<</a>
-              <?php for($i = max(1, $page - 3); $i <= min($pages, $page + 3); $i++) : ?>
-              <a href="/search.php?q=<?php echo ($_GET['q'] ?? "") ?>&seconds=<?php echo $seconds ?>&page=<?php echo $i; ?>" <?php echo ($i == $page ? 'class="tdlink active"': 'class="tdlink"')?>><?php echo $i ?></a>
-              <?php endfor; ?>
-              <a class="tdlink" href="/search.php?q=<?php echo ($_GET['q'] ?? "") ?>&seconds=<?php echo $seconds ?>&page=<?php echo $pages; ?>">>></a>
-            </div>
-        <?php endif; ?>
-
-        <div class="datagrid datagrid-search" style="max-width:1000px;">
-            <table>
-                <thead>
-                    <tr>
-                        <th>&nbsp;</th>
-                        <th>Name/Id</th>
-                        <th>Latest heard</th>
-                        <th>Comment/Other</th>
-                        <th>Map</th>
-
-                    </tr>
-                </thead>
-                <tbody>
-                <?php foreach ($stations as $foundStation) : ?>
-                    <tr>
-                        <td>
-                            <img src="<?php echo $foundStation->getIconFilePath(22, 22); ?>" alt="Symbol"/>
-                        </td>
-                        <td>
-                            <a class="tdlink" href="/views/overview.php?id=<?php echo $foundStation->id; ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>"><?php echo htmlentities($foundStation->name) ?></a>
-                        </td>
-                        <td class="station-latest-heard-timestamp" style="white-space: nowrap;">
-                            <?php echo $foundStation->latestConfirmedPacketTimestamp; ?>
-                        </td>
-                        <td>
-                            <?php if ($foundStation->sourceId == 5 && $foundStation->getOgnDevice() !== null) : ?>
-                                <div style="width: 100px; display: inline-block;">Registration:</div><?php echo htmlspecialchars($foundStation->getOgnDevice()->registration); ?> <?php echo $foundStation->getOgnDevice()->cn ? '[' .htmlspecialchars($foundStation->getOgnDevice()->cn) . ']' : ''; ?><br/>
-                                <div style="width: 100px; display: inline-block;">Aircraft Model:</div><?php echo htmlspecialchars($foundStation->getOgnDevice()->aircraftModel); ?>
-                            <?php else : ?>
-                                <?php $latestPacket = PacketRepository::getInstance()->getObjectById($foundStation->latestPacketId, $foundStation->latestPacketTimestamp); ?>
-                                <?php echo htmlspecialchars($latestPacket->comment); ?>
-                            <?php endif; ?>
-                        </td>
-                        <td>
-                            <?php if ($foundStation->latestConfirmedPacketTimestamp > (time() - 60*60*24)) : ?>
-                                <a href="?sid=<?php echo $foundStation->id; ?>" onclick="
-                                    if (window.parent && window.parent.trackdirect) {
-                                        $('.modal', parent.document).hide();
-                                        window.parent.trackdirect.filterOnStationId([]);
-                                        window.parent.trackdirect.filterOnStationId([<?php echo $foundStation->id; ?>]);
-                                        return false;
-                                    }">Map</a>
-                            <?php else : ?>
-                                &nbsp;
-                            <?php endif; ?>
-                        </td>
-                    </tr>
-                <?php endforeach; ?>
-                </tbody>
-            </table>
-        </div>
-    <?php endif; ?>
-
-    <?php if (isset($_GET['q']) && count($stations) == 0) : ?>
-        <p>
-            <b><i>No stations packets found.</i></b>
-        </p>
-    <?php endif; ?>
-</div>
-<script>
-    $(document).ready(function() {
-        var locale = window.navigator.userLanguage || window.navigator.language;
-        moment.locale(locale);
-
-        $('.station-latest-heard-timestamp').each(function() {
-            if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-            }
-        });
-
-        $('#station-search-form').bind('submit',function(e) {
-            var q = $('#station-search-form-q').val();
-            var seconds = $('#station-search-form-seconds').val();
-	    loadView('/views/search.php?imperialUnits=<?php echo $_GET['imperialUnits'] ?? '0'; ?>&q=' + q + '&seconds=' + seconds);
-            e.preventDefault();
-        });
-    });
-</script>
diff --git a/htdocs/public/views/statistics.php b/htdocs/public/views/statistics.php
deleted file mode 100644
index 38903af5dcacf1d02ff5ad612540e9334a0102f4..0000000000000000000000000000000000000000
--- a/htdocs/public/views/statistics.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php $station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null); ?>
-<?php if ($station->isExistingObject()) : ?>
-    <?php
-        $days = 10;
-        if (!isAllowedToShowOlderData()) {
-            $days = 1;
-        }
-    ?>
-    <?php $senderStats = PacketPathRepository::getInstance()->getSenderPacketPathSatistics($station->id, time() - (60*60*24*$days)); ?>
-    <?php $receiverStats = PacketPathRepository::getInstance()->getReceiverPacketPathSatistics($station->id, time() - (60*60*24*$days)); ?>
-
-    <title><?php echo $station->name; ?> Stats</title>
-    <div class="modal-inner-content">
-        <div class="modal-inner-content-menu">
-            <a class="tdlink" title="Overview" href="/views/overview.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Overview</a>
-            <span>Statistics</span>
-            <a class="tdlink" title="Trail Chart" href="/views/trail.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Trail Chart</a>
-            <a class="tdlink" title="Weather" href="/views/weather.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Weather</a>
-            <a class="tdlink" title="Telemetry" href="/views/telemetry.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Telemetry</a>
-            <a class="tdlink" title="Raw packets" href="/views/raw.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Raw packets</a>
-        </div>
-
-        <div class="horizontal-line">&nbsp;</div>
-
-        <p>
-            The communication statistics that we show here may differ from similar communication statistics on other websites, the reason is probably that this website is not collecting packets from the same APRS servers. Each APRS server performes duplicate filtering, and which packet that is considered to be a duplicate may differ depending on which APRS server you receive your data from.
-        </p>
-
-        <?php if (count($senderStats) > 0) : ?>
-            <p>Stations that heard <?php echo htmlspecialchars($station->name) ?> <b>directly</b> during the latest <?php echo $days; ?> day(s).</p>
-            <div class="datagrid datagrid-statistics" style="max-width:700px;">
-                <table>
-                    <thead>
-                        <tr>
-                            <th>Station</th>
-                            <th>Number of packets</th>
-                            <th>Latest heard</th>
-                            <th>Longest distance</th>
-                        </tr>
-                    </thead>
-                    <tbody>
-                    <?php foreach ($senderStats as $stats) : ?>
-                        <?php $otherStation = StationRepository::getInstance()->getObjectById($stats["station_id"]) ?>
-                        <tr>
-                            <td>
-                                <img alt="Symbol" src="<?php echo $otherStation->getIconFilePath(22, 22); ?>" style="vertical-align: middle;"/>&nbsp;
-                                <a class="tdlink" href="/views/overview.php?id=<?php echo $otherStation->id; ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>"><?php echo htmlentities($otherStation->name) ?></a>
-                            </td>
-                            <td>
-                                <?php echo $stats["number_of_packets"]; ?>
-                            </td>
-                            <td class="latest-heard">
-                                <?php echo $stats["latest_timestamp"];?>
-                            </td>
-
-                            <td class="longest-distance">
-                                <?php if ($stats["longest_distance"] !== null) : ?>
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertKilometerToMile($stats["longest_distance"] / 1000), 2); ?> miles
-                                    <?php else : ?>
-                                        <?php echo round($stats["longest_distance"] / 1000, 2); ?> km
-                                    <?php endif; ?>
-                                <?php else : ?>
-                                    &nbsp;
-                                <?php endif; ?>
-                            </td>
-                        </tr>
-                    <?php endforeach; ?>
-                    </tbody>
-                </table>
-            </div>
-            <br/>
-        <?php endif; ?>
-
-
-        <?php if (count($receiverStats) > 0) : ?>
-            <p>Stations <b>directly</b> heard by <?php echo htmlspecialchars($station->name); ?> during the latest <?php echo $days; ?> day(s).</p>
-            <div class="datagrid datagrid-statistics" style="max-width:700px;">
-                <table>
-                    <thead>
-                        <tr>
-                            <th>Station</th>
-                            <th>Number of packets</th>
-                            <th>Latest heard</th>
-                            <th>Longest distance</th>
-                        </tr>
-                    </thead>
-                    <tbody>
-                    <?php foreach ($receiverStats as $stats) : ?>
-                        <?php $otherStation = StationRepository::getInstance()->getObjectById($stats["station_id"]) ?>
-                        <tr>
-                            <td>
-                                <img alt="Symbol" src="<?php echo $otherStation->getIconFilePath(22, 22); ?>" style="vertical-align: middle;"/>&nbsp;
-                                <a class="tdlink" href="/views/overview.php?id=<?php echo $otherStation->id; ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>"><?php echo htmlentities($otherStation->name) ?></a>
-
-                            </td>
-                            <td>
-                                <?php echo $stats["number_of_packets"]; ?>
-                            </td>
-                            <td class="latest-heard">
-                                <?php echo $stats["latest_timestamp"];?>
-                            </td>
-                            <td class="longest-distance">
-                                <?php if ($stats["longest_distance"] !== null) : ?>
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertKilometerToMile($stats["longest_distance"] / 1000), 2); ?> miles
-                                    <?php else : ?>
-                                        <?php echo round($stats["longest_distance"] / 1000, 2); ?> km
-                                    <?php endif; ?>
-                                <?php else : ?>
-                                    &nbsp;
-                                <?php endif; ?>
-                            </td>
-                        </tr>
-                    <?php endforeach; ?>
-                    </tbody>
-                </table>
-            </div>
-            <br/>
-        <?php endif; ?>
-
-
-        <?php if (count($senderStats) == 0 && count($receiverStats) == 0): ?>
-            <p><i><b>No radio communication statistics during the latest <?php echo $days; ?> days.</b></i></p>
-        <?php endif; ?>
-    </div>
-    <script>
-        $(document).ready(function() {
-            var locale = window.navigator.userLanguage || window.navigator.language;
-            moment.locale(locale);
-
-            $('.latest-heard').each(function() {
-                if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                    $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-                }
-	    });
-
-            if (window.trackdirect) {
-                <?php if ($station->latestConfirmedLatitude != null && $station->latestConfirmedLongitude != null) : ?>
-                    window.trackdirect.addListener("map-created", function() {
-                        if (!window.trackdirect.focusOnStation(<?php echo $station->id ?>, true)) {
-                            window.trackdirect.setCenter(<?php echo $station->latestConfirmedLatitude ?>, <?php echo $station->latestConfirmedLongitude ?>);
-                        }
-                    });
-                <?php endif; ?>
-            }
-        });
-    </script>
-<?php endif; ?>
diff --git a/htdocs/public/views/telemetry.php b/htdocs/public/views/telemetry.php
deleted file mode 100644
index a425ae09113131582ed3813fec43d2695acdc17a..0000000000000000000000000000000000000000
--- a/htdocs/public/views/telemetry.php
+++ /dev/null
@@ -1,287 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php $station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null); ?>
-<?php if ($station->isExistingObject()) : ?>
-    <?php
-        $maxDays = 10;
-        if (!isAllowedToShowOlderData()) {
-            $maxDays = 1;
-        }
-        $page = $_GET['page'] ?? 1;
-        $rows = $_GET['rows'] ?? 25;
-        $offset = ($page - 1) * $rows;
-        $telemetryPackets = PacketTelemetryRepository::getInstance()->getLatestObjectListByStationId($station->id, $rows, $offset, $maxDays);
-        $latestPacketTelemetry = (count($telemetryPackets) > 0 ? $telemetryPackets[0] : new PacketTelemetry(null));
-        $count = PacketTelemetryRepository::getInstance()->getLatestNumberOfPacketsByStationId($station->id, $maxDays);
-        $pages = ceil($count / $rows);
-    ?>
-
-    <title><?php echo $station->name; ?> Telemetry</title>
-    <div class="modal-inner-content">
-        <div class="modal-inner-content-menu">
-            <a class="tdlink" title="Overview" href="/views/overview.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Overview</a>
-            <a class="tdlink" title="Statistics" href="/views/statistics.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Statistics</a>
-            <a class="tdlink" title="Trail Chart" href="/views/trail.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Trail Chart</a>
-            <a class="tdlink" title="Weather" href="/views/weather.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Weather</a>
-            <span>Telemetry</span>
-            <a class="tdlink" title="Raw packets" href="/views/raw.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Raw packets</a>
-        </div>
-
-        <div class="horizontal-line">&nbsp;</div>
-
-        <?php if (count($telemetryPackets) > 0) : ?>
-
-            <p>This is the latest recevied telemetry packets stored in our database for station/object <?php echo $station->name; ?>. If no packets are shown the sender has not sent any telemetry packets the latest <?php echo $maxDays; ?> day(s).</p>
-            <p>Telemetry packets is used to share measurements like repeteater parameters, battery voltage, radiation readings (or any other measurements).</p>
-
-            <div class="form-container">
-                <select id="telemetry-category" style="float:left; margin-right: 5px;">
-                    <option <?php echo (($_GET['category'] ?? 1) == 1 ? 'selected' : ''); ?> value="1">Telemetry Values</option>
-                    <option <?php echo (($_GET['category'] ?? 1) == 2 ? 'selected' : ''); ?> value="2">Telemetry Bits</option>
-                </select>
-
-                <select id="telemetry-rows" style="float:left; margin-right: 5px;" class="pagination-rows">
-                    <option <?php echo ($rows == 25 ? 'selected' : ''); ?> value="25">25 rows</option>
-                    <option <?php echo ($rows == 50 ? 'selected' : ''); ?> value="50">50 rows</option>
-                    <option <?php echo ($rows == 100 ? 'selected' : ''); ?> value="100">100 rows</option>
-                    <option <?php echo ($rows == 200 ? 'selected' : ''); ?> value="200">200 rows</option>
-                    <option <?php echo ($rows == 300 ? 'selected' : ''); ?> value="300">300 rows</option>
-                </select>
-            </div>
-
-            <?php if ($pages > 1): ?>
-                <div class="pagination">
-                  <a class="tdlink" href="/views/telemetry.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=1"><<</a>
-                  <?php for($i = max(1, $page - 3); $i <= min($pages, $page + 3); $i++) : ?>
-                  <a href="/views/telemetry.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=<?php echo $i; ?>" <?php echo ($i == $page ? 'class="tdlink active"': 'class="tdlink"')?>><?php echo $i ?></a>
-                  <?php endfor; ?>
-                  <a class="tdlink" href="/views/telemetry.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=<?php echo $pages; ?>">>></a>
-                </div>
-            <?php endif; ?>
-
-            <?php if (($_GET['category'] ?? 1) == 1) : ?>
-            <div class="datagrid datagrid-telemetry1" style="max-width:1000px;">
-                <table>
-                    <thead>
-                        <tr>
-                            <th>Time</th>
-                            <th><?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(1)); ?>*</th>
-                            <th><?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(2)); ?>*</th>
-                            <th><?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(3)); ?>*</th>
-                            <th><?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(4)); ?>*</th>
-                            <th><?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(5)); ?>*</th>
-                        </tr>
-                    </thead>
-                    <tbody>
-                    <?php foreach ($telemetryPackets as $packetTelemetry) : ?>
-
-                        <tr>
-                            <td class="telemetrytime">
-                                <?php echo ($packetTelemetry->wxRawTimestamp != null?$packetTelemetry->wxRawTimestamp:$packetTelemetry->timestamp); ?>
-                            </td>
-                            <td>
-                                <?php if ($packetTelemetry->val1 !== null) : ?>
-                                    <?php echo round($packetTelemetry->getValue(1), 2); ?> <?php echo htmlspecialchars($packetTelemetry->getValueUnit(1)); ?>
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                            <td>
-                                <?php if ($packetTelemetry->val1 !== null) : ?>
-                                    <?php echo round($packetTelemetry->getValue(2), 2); ?> <?php echo htmlspecialchars($packetTelemetry->getValueUnit(2)); ?>
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                            <td>
-                                <?php if ($packetTelemetry->val1 !== null) : ?>
-                                    <?php echo round($packetTelemetry->getValue(3), 2); ?> <?php echo htmlspecialchars($packetTelemetry->getValueUnit(3)); ?>
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                            <td>
-                                <?php if ($packetTelemetry->val1 !== null) : ?>
-                                    <?php echo round($packetTelemetry->getValue(4), 2); ?> <?php echo htmlspecialchars($packetTelemetry->getValueUnit(4)); ?>
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                            <td>
-                                <?php if ($packetTelemetry->val1 !== null) : ?>
-                                    <?php echo round($packetTelemetry->getValue(5), 2); ?> <?php echo htmlspecialchars($packetTelemetry->getValueUnit(5)); ?>
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                        </tr>
-
-                    <?php endforeach; ?>
-                    </tbody>
-                </table>
-            </div>
-
-            <div class="telemetry-subtable">
-                <div>
-                    <div>
-                        *Used Equation Coefficients:
-                    </div>
-                    <div>
-                        <?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(1)); ?>: <?php echo implode(', ', $latestPacketTelemetry->getEqnsValue(1)); ?>
-                    </div>
-                    <div>
-                        <?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(2)); ?>: <?php echo implode(', ', $latestPacketTelemetry->getEqnsValue(2)); ?>
-                    </div>
-                    <div>
-                        <?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(3)); ?>: <?php echo implode(', ', $latestPacketTelemetry->getEqnsValue(3)); ?>
-                    </div>
-                    <div>
-                        <?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(4)); ?>: <?php echo implode(', ', $latestPacketTelemetry->getEqnsValue(4)); ?>
-                    </div>
-                    <div>
-                        <?php echo htmlspecialchars($latestPacketTelemetry->getValueParameterName(5)); ?>: <?php echo implode(', ', $latestPacketTelemetry->getEqnsValue(5)); ?>
-                    </div>
-                </div>
-            </div>
-        <?php endif; ?>
-
-            <?php if (($_GET['category'] ?? 1) == 2) : ?>
-                <div class="datagrid datagrid-telemetry2" style="max-width:1000px;">
-                    <table>
-                        <thead>
-                            <tr>
-                                <th>Time</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(1)); ?>*</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(2)); ?>*</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(3)); ?>*</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(4)); ?>*</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(5)); ?>*</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(6)); ?>*</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(7)); ?>*</th>
-                                <th><?php echo htmlspecialchars($latestPacketTelemetry->getBitParameterName(8)); ?>*</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                        <?php foreach ($telemetryPackets as $i => $packetTelemetry) : ?>
-                            <?php if ($packetTelemetry->bits !== null && $i >= 2 ) : ?>
-                            <tr>
-                                <td class="telemetrytime">
-                                    <?php echo $packetTelemetry->timestamp; ?>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(1) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(1)); ?>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(2) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(2)); ?>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(3) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(3)); ?>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(4) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(4)); ?>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(5) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(5)); ?>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(6) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(6)); ?>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(7) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(7)); ?>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div class="<?php echo ($packetTelemetry->getBit(8) == 1?'telemetry-biton':'telemetry-bitoff'); ?>">
-                                        <?php echo htmlspecialchars($packetTelemetry->getBitLabel(8)); ?>
-                                    </div>
-                                </td>
-                            </tr>
-                            <?php endif; ?>
-                        <?php endforeach; ?>
-                        </tbody>
-                    </table>
-                </div>
-
-                <div class="telemetry-subtable">
-                    <div>
-                        <div>
-                            *Used Bit Sense:
-                        </div>
-                        <div>
-                            <?php echo $latestPacketTelemetry->getBitSense(1); ?>
-                            <?php echo $latestPacketTelemetry->getBitSense(2); ?>
-                            <?php echo $latestPacketTelemetry->getBitSense(3); ?>
-                            <?php echo $latestPacketTelemetry->getBitSense(4); ?>
-                            <?php echo $latestPacketTelemetry->getBitSense(5); ?>
-                            <?php echo $latestPacketTelemetry->getBitSense(6); ?>
-                            <?php echo $latestPacketTelemetry->getBitSense(7); ?>
-                            <?php echo $latestPacketTelemetry->getBitSense(8); ?>
-                        </div>
-                    </div>
-                </div>
-            <?php endif; ?>
-        <?php endif; ?>
-
-
-        <?php if (count($telemetryPackets) > 0) : ?>
-            <br/>
-            <ul>
-                <li>The parameter names for the analog channels will be Value1, Value2, Value3 (up to Value5) if station has not sent a PARAM-packet that specifies the parameter names for each analog channel.</li>
-                <li>Each analog value is a decimal number between 000 and 255 (according to APRS specifications). The receiver use the telemetry equation coefficientsto to restore the original sensor values. If no EQNS-packet with equation coefficients is sent we will show the values as is (this corresponds to the equation coefficients a=0, b=1 and c=0).<br/>The sent equation coefficients is used in the equation: a * value<sup>2</sup> + b * value + c.</li>
-                <li>The units for the analog values will not be shown if station has not sent a UNIT-packet specifying what unit's to use.</li>
-                <li>The parameter names for the digital bits will be Bit1, Bit2, Bit3 (up to Bit8) if station has not sent a PARAM-packet that specifies the parameter names for each digital bit.</li>
-                <li>All bit labels will be named "On" if station has not sent a UNIT-packet that specifies the label of each bit.</li>
-                <li>A bit is considered to be <b>On</b> when the bit is 1 if station has not sent a BITS-packet that specifies another "Bit sense" (a BITS-packet specify the state of the bits that match the BIT labels)</li>
-            </ul>
-        <?php endif; ?>
-
-        <?php if (count($telemetryPackets) == 0) : ?>
-            <p><i><b>No recent telemetry values.</b></i></p>
-        <?php endif; ?>
-
-    </div>
-
-    <script>
-        $(document).ready(function() {
-            var locale = window.navigator.userLanguage || window.navigator.language;
-            moment.locale(locale);
-
-            $('.telemetrytime').each(function() {
-                if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                    $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-                }
-            });
-
-            $('#telemetry-category').change(function () {
-                loadView("/views/telemetry.php?id=<?php echo $station->id ?>&category=" + $('#telemetry-category').val() + "&rows=" + $('#telemetry-rows').val() + "&page=1");
-            });
-
-            $('#telemetry-rows').change(function () {
-                loadView("/views/telemetry.php?id=<?php echo $station->id ?>&category=" + $('#telemetry-category').val() + "&rows=" + $('#telemetry-rows').val() + "&page=1");
-            });
-
-            if (window.trackdirect) {
-                <?php if ($station->latestConfirmedLatitude != null && $station->latestConfirmedLongitude != null) : ?>
-                    window.trackdirect.addListener("map-created", function() {
-                        if (!window.trackdirect.focusOnStation(<?php echo $station->id ?>, true)) {
-                            window.trackdirect.setCenter(<?php echo $station->latestConfirmedLatitude ?>, <?php echo $station->latestConfirmedLongitude ?>);
-                        }
-                    });
-                <?php endif; ?>
-            }
-        });
-    </script>
-<?php endif; ?>
diff --git a/htdocs/public/views/trail.php b/htdocs/public/views/trail.php
deleted file mode 100644
index 5f13f2eb127b4239998f083fbf52a8e57ee70c2f..0000000000000000000000000000000000000000
--- a/htdocs/public/views/trail.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php $station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null); ?>
-<?php if ($station->isExistingObject()) : ?>
-    <title><?php echo $station->name; ?> Trail Chart</title>
-    <div class="modal-inner-content">
-        <div class="modal-inner-content-menu">
-            <a class="tdlink" title="Overview" href="/views/overview.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Overview</a>
-            <a class="tdlink" title="Statistics" href="/views/statistics.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Statistics</a>
-            <span>Trail Chart</span>
-            <a class="tdlink" title="Weather" href="/views/weather.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Weather</a>
-            <a class="tdlink" title="Telemetry" href="/views/telemetry.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Telemetry</a>
-            <a class="tdlink" title="Raw packets" href="/views/raw.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Raw packets</a>
-        </div>
-
-        <div class="horizontal-line">&nbsp;</div>
-
-        <p>
-            Show chart for
-        </p>
-
-
-        <div class="form-container">
-            <select id="trail-type" style="float:left; margin-right: 5px;">
-                <option <?php echo (($_GET['type'] ?? 'speed') == 'speed' ? 'selected' : ''); ?> value="speed">Speed</option>
-                <option <?php echo (($_GET['type'] ?? 'speed') == 'altitude' ? 'selected' : ''); ?> value="altitude">Altitude</option>
-            </select>
-
-            <select id="trail-hours" style="float:left; margin-right: 5px;">
-                <option <?php echo (($_GET['hours'] ?? 1) == 1 ? 'selected' : ''); ?> value="1">Latest hour</option>
-                <option <?php echo (($_GET['hours'] ?? 1) == 3 ? 'selected' : ''); ?> value="3">Latest 3 hours</option>
-                <option <?php echo (($_GET['hours'] ?? 1) == 24 ? 'selected' : ''); ?> value="24">Latest 24 hours</option>
-            </select>
-        </div>
-
-        <div style="clear: both;"></div>
-
-        <div id="trail-curve-chart" style="width:850px; height: 350px;"></div>
-
-        <p>
-            * chart x-axis is based on your timezone (not the timezone of the station).
-        </p>
-    </div>
-    <script>
-        $(document).ready(function() {
-            var locale = window.navigator.userLanguage || window.navigator.language;
-            moment.locale(locale);
-
-            $('.raw-packet-timestamp').each(function() {
-                if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                    $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-                }
-            });
-
-            if (window.trackdirect) {
-                <?php if ($station->latestConfirmedLatitude != null && $station->latestConfirmedLongitude != null) : ?>
-                    window.trackdirect.addListener("map-created", function() {
-                        if (!window.trackdirect.focusOnStation(<?php echo $station->id ?>, true)) {
-                            window.trackdirect.setCenter(<?php echo $station->latestConfirmedLatitude ?>, <?php echo $station->latestConfirmedLongitude ?>);
-                        }
-                    });
-                <?php endif; ?>
-            }
-
-            function loadTrailChart(stationId, hours, type, imperialUnits) {
-                $('#trail-curve-chart').html('Loading!');
-
-                $.ajax({
-                    type: 'GET',
-                    url: '/data/trail.php?id=' + stationId + '&hours=' + hours + '&type=' + type + '&imperialUnits=' + imperialUnits,
-                    dataType: 'json'
-                }).done(function( result ) {
-                    var onlyZeroValues = true;
-                    for(i=1; i < result.length; i++) {
-                        if (result[i][0] === parseInt(result[i][0], 10)) {
-                            result[i][0] = new Date(result[i][0] * 1000);
-                        }
-
-                        if (result[i][1] != 0 && result[i][1] != null) {
-                            onlyZeroValues = false;
-                        }
-                    }
-
-                    var endTimestamp = new Date();
-                    var startTimestamp = new Date(endTimestamp.getTime() - 1000*60*60*hours);
-
-                    if (result != null && result.length > 1) {
-                        google.charts.setOnLoadCallback(
-                            function () {
-                                var data = google.visualization.arrayToDataTable(result);
-
-                                var pointSize = 0; // default
-                                var dataOpacity = 1;
-                                var trigger = 'selection';
-                                var series = {
-                                    0: { lineWidth: 2},
-                                    1: { lineWidth: 1, color: 'darkgreen'},
-                                };
-                                var legend = {position: 'none'};
-                                var title = result[0][1];
-                                var curveType = 'none'; // can be 'function' or 'none'
-                                var vAxis = {};
-                                var hAxis = {
-                                    minValue: startTimestamp,
-                                    maxValue: endTimestamp
-                                };
-                                var explorer = {
-                                    axis: 'horizontal',
-                                    keepInBounds:true,
-                                    maxZoomIn: 50,
-                                    maxZoomOut: 1,
-                                    actions: ['dragToPan', 'rightClickToReset']
-                                };
-                                explorer = null;
-
-                                if (result[0].length > 2) {
-                                    // We need to show legend if we plot more than one thing
-                                    legend = {position: 'top'};
-                                    title = null;
-                                }
-
-                                if (onlyZeroValues) {
-                                    // dot chart with big dots
-                                    var series = {
-                                        0: { lineWidth: 0, pointsVisible: true, pointSize: 4 },
-                                    }
-                                } else if (hours < 24) {
-                                    // line chart
-                                    var series = {
-                                        0: { lineWidth: 2, pointsVisible: false},
-                                    }
-                                } else {
-                                    // dot chart
-                                    var series = {
-                                        0: { lineWidth: 0, pointsVisible: true, pointSize: 1 },
-                                    }
-                                }
-
-                                if (type == 'speed') {
-                                    // I'm pretty sure we won't have negative speed
-                                    var vAxis = {
-                                        viewWindow : {
-                                            min: 0
-                                        }
-                                    };
-                                }
-
-                                var chartArea = {'width': '90%', 'height': '80%', 'left': '8%'};
-                                var options = {
-                                    title: title,
-                                    curveType: curveType,
-                                    tooltip : {
-                                      trigger: trigger
-                                    },
-                                    pointsVisible : false,
-                                    pointSize: pointSize,
-                                    dataOpacity: dataOpacity,
-                                    series: series,
-                                    chartArea: chartArea,
-                                    legend: legend,
-                                    hAxis: hAxis,
-                                    vAxis: vAxis,
-                                    interpolateNulls: false,
-                                    crosshair: {
-                                        trigger: 'focus',
-                                        opacity: 0.5
-                                    },
-                                    explorer: explorer
-                                };
-
-                                var chart = new google.visualization.LineChart(document.getElementById('trail-curve-chart'));
-
-                                chart.draw(data, options);
-                            });
-
-                    } else {
-                        $('#trail-curve-chart').html('<br/><p><i><b>No trail data to create chart from.</b></i></p>');
-                    }
-                });
-            }
-
-            $('#trail-hours').change(function() {
-                loadTrailChart(<?php echo $station->id; ?>, $('#trail-hours').val(), $('#trail-type').val(), <?php echo $_GET['imperialUnits'] ?? 0; ?>);
-            });
-
-            $('#trail-type').change(function() {
-                loadTrailChart(<?php echo $station->id; ?>, $('#trail-hours').val(), $('#trail-type').val(), <?php echo $_GET['imperialUnits'] ?? 0; ?>);
-            });
-
-            loadTrailChart(<?php echo $station->id; ?>, $('#trail-hours').val(), $('#trail-type').val(), <?php echo $_GET['imperialUnits'] ?? 0; ?>);
-
-        });
-    </script>
-<?php endif; ?>
diff --git a/htdocs/public/views/weather.php b/htdocs/public/views/weather.php
deleted file mode 100644
index 5103cee8e5f0745740cbb9c73efce8a0d9fd0ee4..0000000000000000000000000000000000000000
--- a/htdocs/public/views/weather.php
+++ /dev/null
@@ -1,239 +0,0 @@
-<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
-
-<?php $station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null); ?>
-<?php if ($station->isExistingObject()) : ?>
-    <?php
-        $maxDays = 10;
-        if (!isAllowedToShowOlderData()) {
-            $maxDays = 1;
-        }
-        $page = $_GET['page'] ?? 1;
-        $rows = $_GET['rows'] ?? 25;
-        $offset = ($page - 1) * $rows;
-        $weatherPackets = PacketWeatherRepository::getInstance()->getLatestObjectListByStationIdAndLimit($station->id, $rows, $offset, $maxDays);
-        $count = PacketWeatherRepository::getInstance()->getLatestNumberOfPacketsByStationIdAndLimit($station->id, $maxDays);
-        $pages = ceil($count / $rows);
-    ?>
-
-    <title><?php echo $station->name; ?> Weather</title>
-    <div class="modal-inner-content">
-        <div class="modal-inner-content-menu">
-            <a class="tdlink" title="Overview" href="/views/overview.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Overview</a>
-            <a class="tdlink" title="Statistics" href="/views/statistics.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Statistics</a>
-            <a class="tdlink" title="Trail Chart" href="/views/trail.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Trail Chart</a>
-            <span>Weather</span>
-            <a class="tdlink" title="Telemetry" href="/views/telemetry.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Telemetry</a>
-            <a class="tdlink" title="Raw packets" href="/views/raw.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Raw packets</a>
-        </div>
-
-        <div class="horizontal-line">&nbsp;</div>
-
-        <?php if (count($weatherPackets) > 0) : ?>
-
-            <p>This is the latest recevied weather packets stored in our database for station/object <?php echo $station->name; ?>. If no packets are shown the sender has not sent any weather packets the latest <?php echo $maxDays; ?> day(s).</p>
-
-            <div class="form-container">
-                <select id="weather-rows" style="float:left; margin-right: 5px;" class="pagination-rows">
-                    <option <?php echo ($rows == 25 ? 'selected' : ''); ?> value="25">25 rows</option>
-                    <option <?php echo ($rows == 50 ? 'selected' : ''); ?> value="50">50 rows</option>
-                    <option <?php echo ($rows == 100 ? 'selected' : ''); ?> value="100">100 rows</option>
-                    <option <?php echo ($rows == 200 ? 'selected' : ''); ?> value="200">200 rows</option>
-                    <option <?php echo ($rows == 300 ? 'selected' : ''); ?> value="300">300 rows</option>
-                </select>
-            </div>
-
-            <?php if ($pages > 1): ?>
-                <div class="pagination">
-                  <a class="tdlink" href="/views/weather.php?id=<?php echo $station->id; ?>&rows=<?php echo $rows; ?>&page=1"><<</a>
-                  <?php for($i = max(1, $page - 3); $i <= min($pages, $page + 3); $i++) : ?>
-                  <a href="/views/weather.php?id=<?php echo $station->id; ?>&rows=<?php echo $rows; ?>&page=<?php echo $i; ?>" <?php echo ($i == $page ? 'class="tdlink active"': 'class="tdlink"')?>><?php echo $i ?></a>
-                  <?php endfor; ?>
-                  <a class="tdlink" href="/views/weather.php?id=<?php echo $station->id; ?>&rows=<?php echo $rows; ?>&page=<?php echo $pages; ?>">>></a>
-                </div>
-            <?php endif; ?>
-
-
-            <div class="datagrid datagrid-weather" style="max-width:1000px;">
-                <table>
-                    <thead>
-                        <tr>
-                            <th>Time</th>
-                            <th>Temp.</th>
-                            <th>Humidity</th>
-                            <th>Pressure</th>
-                            <th>Rain*</th>
-                            <th>Wind**</th>
-                            <th>Luminosity</th>
-                            <th>Snow</th>
-                        </tr>
-                    </thead>
-                    <tbody>
-                    <?php foreach ($weatherPackets as $packetWeather) : ?>
-
-                        <tr>
-                            <td class="weathertime">
-                                <?php echo ($packetWeather->wxRawTimestamp != null?$packetWeather->wxRawTimestamp:$packetWeather->timestamp); ?>
-                            </td>
-                            <td>
-                                <?php if ($packetWeather->temperature !== null) : ?>
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertCelciusToFahrenheit($packetWeather->temperature), 2); ?>&deg; F
-                                    <?php else : ?>
-                                        <?php echo round($packetWeather->temperature, 2); ?>&deg; C
-                                    <?php endif; ?>
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                            <td>
-                                <?php if ($packetWeather->humidity !== null) : ?>
-                                    <?php echo $packetWeather->humidity; ?>%
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                            <td>
-                                <?php if ($packetWeather->pressure !== null) : ?>
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertMbarToMmhg($packetWeather->pressure),1); ?> mmHg
-                                    <?php else : ?>
-                                        <?php echo round($packetWeather->pressure,1); ?> hPa
-                                    <?php endif; ?>
-
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-
-                            <?php if ($weatherPackets[0]->rain_1h !== null) : ?>
-                                <td title="<?php echo $packetWeather->getRainSummary(false, true, true); ?>">
-                                    <?php if ($packetWeather->rain_1h !== null) : ?>
-                                        <?php if (isImperialUnitUser()) : ?>
-                                            <?php echo round(convertMmToInch($packetWeather->rain_1h), 2); ?> in
-                                        <?php else : ?>
-                                            <?php echo round($packetWeather->rain_1h, 2); ?> mm
-                                        <?php endif; ?>
-                                    <?php else : ?>
-                                        -
-                                    <?php endif; ?>
-                                </td>
-                            <?php elseif ($weatherPackets[0]->rain_24h !== null) : ?>
-                                <td title="<?php echo $packetWeather->getRainSummary(true, false, true); ?>">
-                                    <?php if ($packetWeather->rain_24h !== null) : ?>
-                                        <?php if (isImperialUnitUser()) : ?>
-                                            <?php echo round(convertMmToInch($packetWeather->rain_24h), 2); ?> in
-                                        <?php else : ?>
-                                            <?php echo round($packetWeather->rain_24h, 2); ?> mm
-                                        <?php endif; ?>
-                                    <?php else : ?>
-                                        -
-                                    <?php endif; ?>
-                                </td>
-                            <?php else : ?>
-                                <td title="<?php echo $packetWeather->getRainSummary(true, true, false); ?>">
-                                    <?php if ($packetWeather->rain_since_midnight !== null) : ?>
-                                        <?php if (isImperialUnitUser()) : ?>
-                                            <?php echo round(convertMmToInch($packetWeather->rain_since_midnight), 2); ?> in
-                                        <?php else : ?>
-                                            <?php echo round($packetWeather->rain_since_midnight, 2); ?> mm
-                                        <?php endif; ?>
-                                    <?php else : ?>
-                                        -
-                                    <?php endif; ?>
-                                </td>
-                            <?php endif; ?>
-
-                            <td title="Wind gust: <?php echo ($packetWeather->wind_gust !== null?round($packetWeather->wind_gust,2):'-'); ?> m/s">
-
-                                <?php if (isImperialUnitUser()) : ?>
-                                    <?php if ($packetWeather->wind_speed !== null && $packetWeather->wind_speed > 0) : ?>
-                                        <?php echo round(convertMpsToMph($packetWeather->wind_speed), 2); ?> mph, <?php echo $packetWeather->wind_direction; ?>&deg;
-                                    <?php elseif($packetWeather->wind_speed !== null) : ?>
-                                        <?php echo round(convertMpsToMph($packetWeather->wind_speed), 2); ?> mph
-                                    <?php else : ?>
-                                        -
-                                    <?php endif; ?>
-
-                                <?php else : ?>
-                                    <?php if ($packetWeather->wind_speed !== null && $packetWeather->wind_speed > 0) : ?>
-                                        <?php echo round($packetWeather->wind_speed, 2); ?> m/s, <?php echo $packetWeather->wind_direction; ?>&deg;
-                                    <?php elseif($packetWeather->wind_speed !== null) : ?>
-                                        <?php echo round($packetWeather->wind_speed, 2); ?> m/s
-                                    <?php else : ?>
-                                        -
-                                    <?php endif; ?>
-                                <?php endif; ?>
-                            </td>
-
-                            <td>
-                                <?php if ($packetWeather->luminosity !== null) : ?>
-                                    <?php echo round($packetWeather->luminosity,0); ?> W/m&sup2;
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-
-                            <td>
-                                <?php if ($packetWeather->snow !== null) : ?>
-                                    <?php if (isImperialUnitUser()) : ?>
-                                        <?php echo round(convertMmToInch($packetWeather->snow), 0); ?> in
-                                    <?php else : ?>
-                                        <?php echo round($packetWeather->snow, 0); ?> mm
-                                    <?php endif; ?>
-                                <?php else : ?>
-                                    -
-                                <?php endif; ?>
-                            </td>
-                        </tr>
-
-                    <?php endforeach; ?>
-                    </tbody>
-                </table>
-            </div>
-            <p>
-                <?php if ($weatherPackets[0]->rain_1h !== null) : ?>
-                    * Rain latest hour (hover to see other rain measurements)<br/>
-                <?php elseif ($weatherPackets[0]->rain_24h !== null) : ?>
-                    * Rain latest 24 hours (hover to see other rain measurements)<br/>
-                <?php else : ?>
-                    * Rain since midnight (hover to see other rain measurements)<br/>
-                <?php endif; ?>
-                ** Current wind speed in m/s (hover to see current wind gust speed)
-            </p>
-
-        <?php endif; ?>
-
-        <?php if (count($weatherPackets) == 0) : ?>
-            <p><i><b>No recent weather reports.</b></i></p>
-        <?php endif; ?>
-
-    </div>
-
-    <script>
-        $(document).ready(function() {
-            var locale = window.navigator.userLanguage || window.navigator.language;
-            moment.locale(locale);
-
-            $('.weathertime').each(function() {
-                if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
-                    $(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
-                }
-            });
-
-            $('#weather-rows').change(function () {
-                loadView("/views/weather.php?id=<?php echo $station->id ?>&rows=" + $('#weather-rows').val() + "&page=1");
-            });
-
-
-            if (window.trackdirect) {
-                <?php if ($station->latestConfirmedLatitude != null && $station->latestConfirmedLongitude != null) : ?>
-                    window.trackdirect.addListener("map-created", function() {
-                        if (!window.trackdirect.focusOnStation(<?php echo $station->id ?>, true)) {
-                            window.trackdirect.setCenter(<?php echo $station->latestConfirmedLatitude ?>, <?php echo $station->latestConfirmedLongitude ?>);
-                        }
-                    });
-                <?php endif; ?>
-            }
-        });
-    </script>
-<?php endif; ?>
diff --git a/jslib/build.sh b/jslib/build.sh
deleted file mode 100755
index 335d84110687fd9f08b1e21458e913cc7f6d4130..0000000000000000000000000000000000000000
--- a/jslib/build.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-CURRENTDIR=$(dirname $0)
-
-cd $CURRENTDIR/../htdocs
-mkdir -p tmp
-
-#
-# Minimize and move to build dir
-#
-for file in $(find ../jslib/src/ -name '*.js')
-do
-    if [[ ${file} != *".min."* ]];then
-        newFile="${file##*/}"
-        newFile="tmp/${newFile//.js/}.min.js"
-        echo "Processing $file -> $newFile"
-        python -m jsmin $file > $newFile
-        #cp $file $newFile
-    else
-        newFile="tmp/${file##*/}"
-        echo "Processing $file -> $newFile"
-        cp $file $newFile
-    fi
-done
-
-#
-# Create the full js file
-#
-cp tmp/trackdirect.min.js public/js/trackdirect.min.js
-rm tmp/trackdirect.min.js
-# Note that the order is important (may need to start adding digits in beginning of each js-file)
-ls -vr tmp/*.js | xargs cat  >> public/js/trackdirect.min.js
-
-#
-# Remove temp dir
-#
-rm -R tmp
-
-exit 0
diff --git a/jslib/src/other/common.js b/jslib/src/other/common.js
deleted file mode 100755
index 886d75d7b54eceb604ce0d2dafdca6941f529c59..0000000000000000000000000000000000000000
--- a/jslib/src/other/common.js
+++ /dev/null
@@ -1,206 +0,0 @@
-if (!Date.now) {
-  Date.now = function () {
-    return new Date().getTime();
-  };
-}
-
-function escapeRegExp(str) {
-  return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
-}
-
-String.prototype.replaceAll = function (search, replacement) {
-  var target = this;
-  return target.replace(new RegExp(escapeRegExp(search), "gi"), replacement);
-};
-
-function isNumeric(n) {
-  return !isNaN(parseFloat(n)) && isFinite(n);
-}
-
-Number.prototype.mod = function (n) {
-  return ((this % n) + n) % n;
-};
-
-function isDate(str) {
-  var d = new Date(str);
-  var now = new Date();
-  if (Object.prototype.toString.call(d) === "[object Date]") {
-    if (isNaN(d.getTime())) {
-      return false;
-    } else {
-      if (d.getTime() > 0) {
-        return true;
-      } else {
-        return false;
-      }
-    }
-  } else {
-    return false;
-  }
-}
-
-if (!Array.prototype.fill) {
-  Array.prototype.fill = function (value) {
-    // Steps 1-2.
-    if (this == null) {
-      throw new TypeError("this is null or not defined");
-    }
-
-    var O = Object(this);
-
-    // Steps 3-5.
-    var len = O.length >>> 0;
-
-    // Steps 6-7.
-    var start = arguments[1];
-    var relativeStart = start >> 0;
-
-    // Step 8.
-    var k =
-      relativeStart < 0
-        ? Math.max(len + relativeStart, 0)
-        : Math.min(relativeStart, len);
-
-    // Steps 9-10.
-    var end = arguments[2];
-    var relativeEnd = end === undefined ? len : end >> 0;
-
-    // Step 11.
-    var final =
-      relativeEnd < 0
-        ? Math.max(len + relativeEnd, 0)
-        : Math.min(relativeEnd, len);
-
-    // Step 12.
-    while (k < final) {
-      O[k] = value;
-      k++;
-    }
-
-    // Step 13.
-    return O;
-  };
-}
-
-if (!Array.prototype.indexOf) {
-  Array.prototype.indexOf = function (elt /*, from*/) {
-    var len = this.length;
-    var from = Number(arguments[1]) || 0;
-    from = from < 0 ? Math.ceil(from) : Math.floor(from);
-
-    if (from < 0) from += len;
-
-    for (; from < len; from++) {
-      if (from in this && this[from] === elt) return from;
-    }
-    return -1;
-  };
-}
-
-if (typeof String.prototype.endsWith !== "function") {
-  String.prototype.endsWith = function (suffix) {
-    return this.indexOf(suffix, this.length - suffix.length) !== -1;
-  };
-}
-
-if (!String.prototype.trim) {
-  (function () {
-    // Make sure we trim BOM and NBSP
-    var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
-    String.prototype.trim = function () {
-      return this.replace(rtrim, "");
-    };
-  })();
-}
-
-if (!Object.keys) {
-  Object.keys = function (obj) {
-    var keys = [],
-      k;
-    for (k in obj) {
-      if (Object.prototype.hasOwnProperty.call(obj, k)) {
-        keys.push(k);
-      }
-    }
-    return keys;
-  };
-}
-
-if (!Date.prototype.toISOString) {
-  (function () {
-    function pad(number) {
-      var r = String(number);
-      if (r.length === 1) {
-        r = "0" + r;
-      }
-      return r;
-    }
-
-    Date.prototype.toISOString = function () {
-      return (
-        this.getUTCFullYear() +
-        "-" +
-        pad(this.getUTCMonth() + 1) +
-        "-" +
-        pad(this.getUTCDate()) +
-        "T" +
-        pad(this.getUTCHours()) +
-        ":" +
-        pad(this.getUTCMinutes()) +
-        ":" +
-        pad(this.getUTCSeconds()) +
-        "." +
-        String((this.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5) +
-        "Z"
-      );
-    };
-  })();
-}
-
-// Returnes true if we are in a iframe
-function inIframe() {
-  try {
-    return window.self !== window.top;
-  } catch (e) {
-    return true;
-  }
-}
-
-/**
- * Returnes true if screen has high density
- * @return boolean
- */
-function isHighDensity() {
-  return (
-    (window.matchMedia &&
-      (window.matchMedia(
-        "only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)"
-      ).matches ||
-        window.matchMedia(
-          "only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)"
-        ).matches)) ||
-    (window.devicePixelRatio && window.devicePixelRatio > 1.3)
-  );
-}
-
-/**
- * htmlspecialchars equivalent
- * @param {string} text
- * @return string
- */
-function escapeHtml(text) {
-  if (typeof text === "undefined" || text == null) {
-    return null;
-  }
-
-  var map = {
-    "&": "&amp;",
-    "<": "&lt;",
-    ">": "&gt;",
-    '"': "&quot;",
-    "'": "&#039;",
-  };
-  return text.replace(/[&<>"']/g, function (m) {
-    return map[m];
-  });
-}
diff --git a/jslib/src/trackdirect.js b/jslib/src/trackdirect.js
deleted file mode 100755
index 4c7f33f93ccc38616c3c8c3e168d9563ced97872..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect.js
+++ /dev/null
@@ -1,2422 +0,0 @@
-var trackdirect = {
-  services: {},
-  models: {},
-
-  _time: null, // How many minutes of history to show
-  _timetravel: null, // Unix timestamp to travel to
-  _center: null, // Position to center on (for example "46.52108,14.63379")
-  _zoom: null, // Zoom level
-  _maptype: null, // May be "roadmap", "terrain" or "satellite"
-  _mid: null,
-
-  _rulers: [],
-
-  _filterTimeoutId: null,
-  _waitForFilterResponse: false,
-  _doNotChangeLocationOnFilterResponse: false,
-  _doNotChangeLocationOnFilterResponseTmp: false,
-
-  _filters: {},
-
-  _defaultLatitude: null,
-  _defaultLongitude: null,
-
-  _eventListeners: {},
-  _eventListenersOnce: {},
-
-  _cordinatesContainerElementId: null,
-  _statusContainerElementId: "td-status-text",
-  _mapElementId: null,
-
-  _wsServerUrl: null,
-
-  _map: null,
-  _websocket: null,
-
-  _mapCreated: false,
-  _trackdirectInitDone: false,
-
-  isMobile: false,
-  coverageDataUrl: null,
-  coveragePercentile: 95,
-  settings: {},
-
-  /**
-   * Initialize
-   * @param {string} wsServerUrl
-   * @param {string} mapElementId
-   * @param {object} options
-   */
-  init: function (wsServerUrl, mapElementId, options) {
-    this._initSettings();
-    this._wsServerUrl = wsServerUrl;
-    this._mapElementId = mapElementId;
-
-    if ($("#" + mapElementId).length <= 0) {
-      // map element does not exists, nothing to do...
-      console.log("ERROR: Specified map element missing");
-      return;
-    }
-
-    if (typeof google === "object" && typeof google.maps === "object") {
-      // Google maps is slow with to many labels
-      this.settings.defaultMinZoomForMarkerLabel = 12;
-      this.settings.minZoomForMarkerLabel = 12;
-    }
-
-    this._parseOptions(options);
-
-    var me = this;
-    this.addListener("map-created", function () {
-      me._initTime();
-
-      me._websocket = new trackdirect.Websocket(me._wsServerUrl);
-      me._initWebsocketListeners();
-      me._handleWebsocketStateChange();
-
-      me._initMapListeners();
-      if (!me._initFilterUrlRequest()) {
-        trackdirect.services.callbackExecutor.add(
-          me,
-          me._sendPositionRequest,
-          []
-        );
-      }
-
-      me._setWebsocketStateIdle();
-
-      if (inIframe()) {
-        // Somebody has included trackdirect inside an iframe... In the future we may STOP this but currently we allow it...
-        var parentUrl = "";
-        try {
-          parentUrl =
-            window.location != window.parent.location
-              ? document.referrer
-              : document.location.href;
-        } catch (e) {
-          parentUrl = "Unknown";
-        }
-      }
-
-      me._emitEventListeners("trackdirect-init-done");
-    });
-
-    this._mapInit(options);
-  },
-
-  /**
-   * Enable Imperial units
-   * @return null
-   */
-  enableImperialUnits: function () {
-    this._map.state.useImperialUnit = true;
-    if (this._map.state.openInfoWindow !== null) {
-      this._map.state.openInfoWindow.hide();
-    }
-  },
-
-  /**
-   * Enable Metric units
-   * @return null
-   */
-  enableMetricUnits: function () {
-    this._map.state.useImperialUnit = false;
-    if (this._map.state.openInfoWindow !== null) {
-      this._map.state.openInfoWindow.hide();
-    }
-  },
-
-  /**
-   * Enable/Disable Imperial units
-   * @return null
-   */
-  toggleImperialUnits: function () {
-    if (this._map.state.useImperialUnit) {
-      this.enableMetricUnits();
-    } else {
-      this.enableImperialUnits();
-    }
-  },
-
-  /**
-   * Returns true if Imperial units is active
-   * @return boolean
-   */
-  isImperialUnits: function () {
-    return this._map.state.useImperialUnit;
-  },
-
-  /**
-   * Add new event listener
-   * @param {string} event
-   * @param {string} handler
-   * @param {boolean} execOnce
-   * @return null
-   */
-  addListener: function (event, handler, execOnce) {
-    execOnce = typeof execOnce !== "undefined" ? execOnce : false;
-    if (
-      (event == "map-created" && this._mapCreated) ||
-      (event == "trackdirect-init-done" && this._trackdirectInitDone)
-    ) {
-      handler();
-      if (execOnce) {
-        return;
-      }
-    }
-
-    if (execOnce) {
-      if (!(event in this._eventListenersOnce)) {
-        this._eventListenersOnce[event] = [];
-      }
-      this._eventListenersOnce[event].push(handler);
-    } else {
-      if (!(event in this._eventListeners)) {
-        this._eventListeners[event] = [];
-      }
-      this._eventListeners[event].push(handler);
-    }
-  },
-
-  /**
-   * Set map center
-   * @param {float} latitude
-   * @param {float} longitude
-   * @param {int} zoom
-   * @return None
-   */
-  setCenter: function (latitude, longitude, zoom) {
-    latitude =
-      typeof latitude !== "undefined" ? latitude : this._defaultLatitude;
-    longitude =
-      typeof longitude !== "undefined" ? longitude : this._defaultLongitude;
-    zoom =
-      typeof zoom !== "undefined" ? zoom : this._map.getZoom();
-
-    if (this._map !== null) {
-      this._map.setCenter({ lat: latitude, lng: longitude }, zoom);
-    }
-  },
-
-  /**
-   * Set zoom
-   * @param {int} value
-   * @return None
-   */
-  setZoom: function (value) {
-    if (this._map !== null) {
-      this._map.setZoom(value);
-    }
-  },
-
-  /**
-   * Add a ruler
-   * @return None
-   */
-  addRuler: function () {
-    if (this._rulers.length > 0) {
-      var ruler = this._rulers.pop();
-      ruler.hide();
-    } else {
-      var ruler = new trackdirect.models.Ruler(
-        (this._map.getCurrentRadiusInKm() * 1000) / 2,
-        this._map
-      );
-      this._rulers.push(ruler);
-    }
-  },
-
-  /**
-   * Returns true if we are filtering on one or several stations
-   * @return {boolean}
-   */
-  isFilteredMode: function () {
-    return this._map.state.isFilterMode;
-  },
-
-  /**
-   * Stop filter on station
-   * @return {int} stationId
-   */
-  stopFilterOnStationId: function (stationId) {
-    var currentFilterStationIds = this._map.state.getFilterStationIds();
-    if (
-      currentFilterStationIds.length == 1 &&
-      currentFilterStationIds.indexOf(stationId) >= 0
-    ) {
-      this.filterOnStationId([]);
-    } else {
-      if (this._map.state.getTrackStationId() == stationId) {
-        this.stopTrackStation();
-      }
-      this._setWebsocketStateLoading(false);
-      this._websocket.doSendStopFilterRequest(stationId);
-    }
-  },
-
-  /**
-   * Filter on station
-   * @return {array} stationIdArray
-   */
-  filterOnStationId: function (stationIdArray) {
-    if (!Array.isArray(stationIdArray)) {
-      stationIdArray = [stationIdArray];
-    }
-
-    // If user wants to start filtering and we are tracking something else, stop tracking
-    var currentFilterStationIds = this._map.state.getFilterStationIds();
-    if (currentFilterStationIds.length == 0) {
-      if (
-        this._map.state.getTrackStationId() !== null &&
-        stationIdArray.indexOf(this._map.state.getTrackStationId()) == -1
-      ) {
-        this.stopTrackStation();
-      }
-    }
-
-    this._setWebsocketStateLoading(false);
-    this._websocket.doSendFilterRequest(
-      stationIdArray,
-      this._map.state.getTimeLength() / 60,
-      this.getTimeTravelTimestamp()
-    );
-  },
-
-  /**
-   * Filter on station by name
-   * @return {array} stationNameArray
-   */
-  filterOnStationName: function (stationNameArray) {
-    if (!Array.isArray(stationNameArray)) {
-      stationNameArray = [stationNameArray];
-    }
-
-    // If user wants to start filtering and we are tracking something else, stop tracking
-    var currentFilterStationIds = this._map.state.getFilterStationIds();
-    if (currentFilterStationIds.length == 0) {
-      if (
-        this._map.state.getTrackStationId() !== null &&
-        stationIdArray.indexOf(this._map.state.getTrackStationId()) == -1
-      ) {
-        this.stopTrackStation();
-      }
-    }
-
-    this._setWebsocketStateLoading(false);
-    this._websocket.doSendFilterRequestByName(
-      stationNameArray,
-      this._map.state.getTimeLength() / 60,
-      this.getTimeTravelTimestamp()
-    );
-  },
-
-  /**
-   * Stop track station
-   * @return {int} stationId
-   */
-  stopTrackStation: function () {
-    this._map.state.onlyTrackRecentPackets = false;
-    this._map.state.trackStationId = null;
-    this._emitEventListeners("track-changed", [null, null]);
-  },
-
-  /**
-   * Track station
-   * @param {int} stationId
-   * @param {string} stationName
-   * @param {boolean} alsofilterOnStation
-   * @param {boolean} onlyTrackRecentPackets
-   * @return null
-   */
-  trackStation: function (
-    stationId,
-    stationName,
-    alsoFilterOnStation,
-    onlyTrackRecentPackets
-  ) {
-    onlyTrackRecentPackets =
-      typeof onlyTrackRecentPackets !== "undefined"
-        ? onlyTrackRecentPackets
-        : false;
-
-    // if user are filtering and want to track a station that we do not filter in, start filtering on that station
-    if (alsoFilterOnStation) {
-      var currentFilterStationIds = this._map.state.getFilterStationIds();
-      if (currentFilterStationIds.length > 0) {
-        if (currentFilterStationIds.indexOf(stationId) == -1) {
-          this.filterOnStationId(stationId);
-        }
-      }
-    }
-
-    if (stationId !== null) {
-      var trackLinkElementClass = "trackStationLink" + stationId;
-      $("." + trackLinkElementClass).html("Untrack");
-    }
-
-    if (this._map.state.trackStationId !== null) {
-      var trackLinkElementClass =
-        "trackStationLink" + this._map.state.trackStationId;
-      $("." + trackLinkElementClass).html("Track");
-    }
-
-    this._map.state.onlyTrackRecentPackets = onlyTrackRecentPackets;
-    this._map.state.trackStationId = stationId;
-
-    this._emitEventListeners("track-changed", [stationId, stationName]);
-  },
-
-  /**
-   * Move focus to specified station
-   * @param {int} stationId
-   * @param {boolean} openInfoWindow
-   * @return Boolean
-   */
-  focusOnStation: function (stationId, openInfoWindow) {
-    var map = this._map;
-    openInfoWindow =
-      typeof openInfoWindow !== "undefined" ? openInfoWindow : false;
-    var marker = map.markerCollection.getStationLatestMarker(stationId);
-    if (marker !== null) {
-      marker.show();
-      marker.showLabel();
-
-      // Set focus
-      if (openInfoWindow) {
-        map.openMarkerInfoWindow(marker, false);
-      } else {
-        this.setCenter(marker.packet.latitude, marker.packet.longitude);
-      }
-
-      // This method will hide marker when infowindow is closed, if nessecery
-      marker.hide(5000, true);
-      return true;
-    } else {
-      return false;
-    }
-  },
-
-  /**
-   * Move focus to specified marker
-   * @param {int} markerId
-   * @param {int} zoom
-   * @return None
-   */
-  focusOnMarkerId: function (markerId, zoom) {
-    var map = this._map;
-    var markerIdKey = map.markerCollection.getMarkerIdKey(markerId);
-    if (map.markerCollection.isExistingMarker(markerIdKey)) {
-      var marker = map.markerCollection.getMarker(markerIdKey);
-
-      if (map.markerCollection.hasRelatedDashedPolyline(marker)) {
-        newerMarker = map.markerCollection.getMarker(
-          marker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey
-        );
-        if (newerMarker.packet.hasConfirmedMapId()) {
-          return this.focusOnMarkerId(newerMarker.packet.marker_id);
-        }
-      }
-
-      marker.show();
-      marker.showLabel();
-
-      // Set focus
-      this.setCenter(marker.packet.latitude, marker.packet.longitude, zoom);
-      map.openMarkerInfoWindow(marker);
-
-      // This method will hide marker when infowindow is closed, if nessecery
-      marker.hide(5000, true);
-    }
-  },
-
-  /**
-   * Toggle station coverage
-   * @param {int} stationId
-   * @param {string} coverageLinkElementClass
-   */
-  toggleStationCoverage: function (stationId, coverageLinkElementClass) {
-    coverageLinkElementClass =
-      typeof coverageLinkElementClass !== "undefined"
-        ? coverageLinkElementClass
-        : null;
-
-    var coveragePolygon =
-      this._map.markerCollection.getStationCoverage(stationId);
-    if (coveragePolygon !== null && coveragePolygon.isRequestedToBeVisible()) {
-      coveragePolygon.hide();
-      if (coverageLinkElementClass !== null) {
-        $("." + coverageLinkElementClass).html("Coverage");
-      }
-    } else {
-      if (coveragePolygon !== null) {
-        coveragePolygon.show();
-
-        if (!coveragePolygon.hasContent()) {
-          alert(
-            "Currently we do not have enough data to create a max range coverage plot for this station. Try again later!"
-          );
-        } else {
-          if (coverageLinkElementClass !== null) {
-            $("." + coverageLinkElementClass).html("Hide coverage");
-          }
-        }
-      } else {
-        var packet =
-          this._map.markerCollection.getStationLatestPacket(stationId);
-        var center = {
-          lat: parseFloat(packet.latitude),
-          lng: parseFloat(packet.longitude),
-        };
-        var coveragePolygon = new trackdirect.models.StationCoveragePolygon(
-          center,
-          this._map,
-          true
-        );
-        this._map.markerCollection.addStationCoverage(
-          stationId,
-          coveragePolygon
-        );
-        coveragePolygon.showWhenDone();
-
-        if (coverageLinkElementClass !== null) {
-          $("." + coverageLinkElementClass).html(
-            'Loading <i class="fa fa-spinner fa-spin" style="font-size:12px"></i>'
-          );
-          coveragePolygon.addTdListener(
-            "visible",
-            function () {
-              if (!coveragePolygon.hasContent()) {
-                coveragePolygon.hide();
-                alert(
-                  "Currently we do not have enough data to create a max range coverage plot for this station. Try again later!"
-                );
-                $("." + coverageLinkElementClass).html("Coverage");
-              } else {
-                $("." + coverageLinkElementClass).html("Hide coverage");
-              }
-            },
-            true
-          );
-        }
-
-        var me = this;
-        $.getJSON(this.coverageDataUrl + "?id=" + stationId, function (data) {
-          if ("station_id" in data && "coverage" in data) {
-            coveragePolygon.setData(data["coverage"], me.coveragePercentile);
-            var marker =
-              me._map.markerCollection.getStationLatestMarker(stationId);
-            if (marker.isVisible()) {
-              if (coveragePolygon.isRequestedToBeVisible()) {
-                coveragePolygon.show();
-              }
-            }
-          }
-        })
-          .fail(function () {
-            coveragePolygon.hide();
-            alert("Failed to fetch coverage data. Try again later!");
-            $("." + coverageLinkElementClass).html("Coverage");
-          })
-          .always(function () {});
-      }
-    }
-  },
-
-  /**
-   * Set map type
-   * @param {string} mapType
-   * @return None
-   */
-  setMapType: function (mapType) {
-    if (this._map !== null) {
-      this._map.setMapType(mapType);
-    }
-  },
-
-  /**
-   * Set map type
-   * @return {string}
-   */
-  getMapType: function () {
-    if (this._map !== null) {
-      return this._map.getMapType();
-    }
-  },
-
-  /**
-   * Set map default location
-   * @param {boolean} setDefaultZoom
-   * @return None
-   */
-  setMapDefaultLocation: function (setDefaultZoom) {
-    this._map.setMapDefaultLocation(setDefaultZoom);
-  },
-
-  /**
-   * Set map location based on user position by using geo location functionality
-   * @param {function} failCallBack
-   * @param {function} successCallBack
-   * @param int timeout
-   * @return None
-   */
-  setMapLocationByGeoLocation: function (
-    failCallBack,
-    successCallBack,
-    timeout
-  ) {
-    var me = this;
-    if (navigator && navigator.geolocation) {
-      navigator.geolocation.getCurrentPosition(
-        function (position) {
-          var pos = {
-            lat: position.coords.latitude,
-            lng: position.coords.longitude,
-          };
-          me._map.setCenter(pos, 12);
-          if (successCallBack !== null) {
-            successCallBack();
-          }
-        },
-        function (error) {
-          // User said NO (or other error)
-          // Note that you will not end up here if browser is Firefox and user just says "Not now"
-          if (failCallBack !== null) {
-            failCallBack(error.message);
-          }
-        },
-        {
-          enableHighAccuracy: false,
-          timeout: timeout,
-          maximumAge: 5000,
-        }
-      );
-    } else {
-      // Browser doesn't support Geolocation
-      if (failCallBack !== null) {
-        failCallBack();
-      }
-    }
-  },
-
-  /**
-   * Open station information dialog
-   * @param {int} stationId
-   * @return null
-   */
-  openStationInformationDialog: function (stationId) {
-    var packet = this._map.markerCollection.getStationLatestPacket(stationId);
-    if (packet == null) {
-      packet = { station_id: stationId, id: null };
-    }
-
-    // Ask listener to open dialog
-    this._emitEventListeners("station-name-clicked", packet);
-  },
-
-  /**
-   * Open marker info window
-   * @param {int} markerId
-   * @return None
-   */
-  openMarkerInfoWindow: function (markerId) {
-    var markerIdKey = this._map.markerCollection.getMarkerIdKey(markerId);
-    if (this._map.markerCollection.isExistingMarker(markerIdKey)) {
-      var marker = this._map.markerCollection.getMarker(markerIdKey);
-      this._map.openMarkerInfoWindow(marker);
-    }
-  },
-
-  /**
-   * Close any open info window
-   * @return None
-   */
-  closeAnyOpenInfoWindow: function () {
-    if (this._map !== null) {
-      var state = this._map.state;
-      if (state.isInfoWindowOpen()) {
-        state.openInfoWindow.hide();
-      }
-    }
-  },
-
-  /**
-   * Set timetravel timestamp
-   * @param {int} ts
-   * @param {boolean} sendRequestToServer
-   * @return null
-   */
-  setTimeTravelTimestamp: function (ts, sendRequestToServer) {
-    if (ts != 0 || this._map.state.endTimeTravelTimestamp != null) {
-      sendRequestToServer =
-        typeof sendRequestToServer !== "undefined" ? sendRequestToServer : true;
-
-      if (this._map.state.endTimeTravelTimestamp != ts) {
-        if (ts != null && ts != 0 && ts != "") {
-          this._map.state.endTimeTravelTimestamp = ts;
-        } else {
-          this._map.state.endTimeTravelTimestamp = null;
-        }
-
-        if (sendRequestToServer) {
-          trackdirect.services.callbackExecutor.add(
-            this,
-            this._handleTimeChange,
-            []
-          );
-        }
-      }
-
-      this._emitEventListeners("time-travel-changed", ts);
-      this._emitEventListeners("mode-changed");
-    }
-  },
-
-  /**
-   * Returns the time travel timestamp currently used
-   * @return {int}
-   */
-  getTimeTravelTimestamp: function () {
-    return this._map.state.endTimeTravelTimestamp;
-  },
-
-  /**
-   * Set time in minutes
-   * @param {int} time
-   * @param {boolean} sendRequestToServer
-   */
-  setTimeLength: function (time, sendRequestToServer) {
-    sendRequestToServer =
-      typeof sendRequestToServer !== "undefined" ? sendRequestToServer : true;
-
-    if (this._map.state.getTimeLength() / 60 != time) {
-      this._map.state.setTimeLength(time * 60);
-
-      if (sendRequestToServer) {
-        trackdirect.services.callbackExecutor.add(
-          this,
-          this._handleTimeChange,
-          []
-        );
-      }
-    }
-
-    this._emitEventListeners("time-length-changed", time);
-    this._updateMinZoomLevels();
-  },
-
-  /**
-   * Toggle PHG circles
-   * @return None
-   */
-  togglePHGCircles: function () {
-    var state = this._map.state;
-    if (state.showPHGCircles == 0) {
-      state.showPHGCircles = 1;
-    } else if (state.showPHGCircles == 1) {
-      state.showPHGCircles = 2;
-    } else {
-      state.showPHGCircles = 0;
-    }
-    this._map.showHidePHGCircles();
-  },
-
-  /**
-   * Toggle PHG circles
-   * @return None
-   */
-  toggleRNGCircles: function () {
-    var state = this._map.state;
-    if (state.showRNGCircles == 0) {
-      state.showRNGCircles = 1;
-    } else if (state.showRNGCircles == 1) {
-      state.showRNGCircles = 2;
-    } else {
-      state.showRNGCircles = 0;
-    }
-    this._map.showHideRNGCircles();
-  },
-
-  /**
-   * Toggle Stationary positions
-   * @return None
-   */
-  toggleStationaryPositions: function () {
-    if (this.isStationaryMarkersVisible()) {
-      this._map.state.isStationaryMarkersVisible = false;
-    } else {
-      this._map.state.isStationaryMarkersVisible = true;
-    }
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Toggle Unknown positions
-   * @return None
-   */
-  toggleUnknownPositions: function () {
-    if (this.isUnknownMarkersVisible()) {
-      this._map.state.isUnknownMarkersVisible = false;
-    } else {
-      this._map.state.isUnknownMarkersVisible = true;
-    }
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Toggle Ogflym positions
-   * @return None
-   */
-  toggleOgflymPositions: function () {
-    if (this.isOgflymMarkersVisible()) {
-      this._map.state.isOgflymMarkersVisible = false;
-    } else {
-      this._map.state.isOgflymMarkersVisible = true;
-    }
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Toggle Stationary positions
-   * @return None
-   */
-  toggleInternetPositions: function () {
-    if (this.isInternetMarkersVisible()) {
-      this._map.state.isInternetMarkersVisible = false;
-    } else {
-      this._map.state.isInternetMarkersVisible = true;
-    }
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Toggle the CWOP positions option
-   * @return None
-   */
-  toggleCwopPositions: function () {
-    if (this.isCwopMarkersVisible()) {
-      this._map.state.isCwopMarkersVisible = false;
-    } else {
-      this._map.state.isCwopMarkersVisible = true;
-    }
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Toggle the ghost positions option
-   * Ghost positions are positions that some filter has removed since it is unlikly
-   * @return None
-   */
-  toggleGhostPositions: function () {
-    if (this.isGhostMarkersVisible()) {
-      this._map.state.isGhostMarkersVisible = false;
-    } else {
-      this._map.state.isGhostMarkersVisible = true;
-    }
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Returns true if ghost markers is visible
-   * @return {boolean}
-   */
-  isGhostMarkersVisible: function () {
-    return this._map.state.isGhostMarkersVisible;
-  },
-
-  /**
-   * Returns true if CWOP markers is visible
-   * @return {boolean}
-   */
-  isCwopMarkersVisible: function () {
-    return this._map.state.isCwopMarkersVisible;
-  },
-
-  /**
-   * Returns true if INTERNET markers is visible
-   * @return {boolean}
-   */
-  isInternetMarkersVisible: function () {
-    return this._map.state.isInternetMarkersVisible;
-  },
-
-  /**
-   * Returns true if stationary markers is visible
-   * @return {boolean}
-   */
-  isStationaryMarkersVisible: function () {
-    return this._map.state.isStationaryMarkersVisible;
-  },
-
-  /**
-   * Set visible symbols, argument should be an array of two value arrays (first value should be the ascii value for the symbol code and the second should be the ascii value for the symbol table)
-   * @param {array} symbols
-   * @return None
-   */
-  setVisibleSymbols: function (symbols) {
-    this._map.state.visibleSymbols = symbols;
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Add visible symbol, argument should be a two value array (first value should be the ascii value for the symbol code and the second should be the ascii value for the symbol table)
-   * @param {array} symbols
-   * @return None
-   */
-  addVisibleSymbol: function (symbol) {
-    this._map.state.visibleSymbols.push(symbol);
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Remove visible symbol, argument should be a two value array (first value should be the ascii value for the symbol code and the second should be the ascii value for the symbol table)
-   * @param {array} symbols
-   * @return None
-   */
-  removeVisibleSymbol: function (symbol) {
-    var indexToRemove = null;
-    for (var i = 0; i < this._map.state.visibleSymbols.length; i++) {
-      if (
-        this._map.state.visibleSymbols[i][0] == symbol[0] &&
-        this._map.state.visibleSymbols[i][1] == symbol[1]
-      ) {
-        indexToRemove = i;
-        break;
-      }
-    }
-    if (indexToRemove !== null) {
-      this._map.state.visibleSymbols.splice(indexToRemove, 1);
-    }
-    this._map.showHideMarkers();
-  },
-
-  /**
-   * Returns array of visible symbols
-   * @return {array}
-   */
-  getVisibleSymbols: function () {
-    return this._map.state.visibleSymbols;
-  },
-
-  /**
-   * Returns true if unknown markers is visible
-   * @return {boolean}
-   */
-  isUnknownMarkersVisible: function () {
-    return this._map.state.isUnknownMarkersVisible;
-  },
-
-  /**
-   * Returns true if ogflym markers is visible
-   * @return {boolean}
-   */
-  isOgflymMarkersVisible: function () {
-    return this._map.state.isOgflymMarkersVisible;
-  },
-
-  /**
-   * Handle filter station request
-   * @param {int} stationId
-   * @param {string} linkElementId
-   * @return {boolean}
-   */
-  handleFilterStationRequest: function (stationId, filterLinkElementClass) {
-    filterLinkElementClass =
-      typeof filterLinkElementClass !== "undefined"
-        ? filterLinkElementClass
-        : null;
-    if (
-      this._map.state.filterStationIds.length > 0 &&
-      this._map.state.filterStationIds.indexOf(stationId) > -1
-    ) {
-      // We want to stop filtering
-      this.stopFilterOnStationId(stationId);
-      if (filterLinkElementClass !== null) {
-        $("." + filterLinkElementClass).html("Filter");
-      }
-    } else {
-      this.filterOnStationId(stationId);
-      if (filterLinkElementClass !== null) {
-        $("." + filterLinkElementClass).html("Unfilter");
-      }
-    }
-  },
-
-  /**
-   * Handle track station request
-   * @param {int} stationId
-   * @param {string} trackLinkElementClass
-   * @return null
-   */
-  handleTrackStationRequest: function (stationId, trackLinkElementClass) {
-    stationId = typeof stationId !== "undefined" ? stationId : 0;
-    trackLinkElementClass =
-      typeof trackLinkElementClass !== "undefined"
-        ? trackLinkElementClass
-        : null;
-
-    if (
-      this._map.state.getTrackStationId() !== null &&
-      (stationId === 0 || this._map.state.getTrackStationId() == stationId)
-    ) {
-      // We want to stop tracking
-      if (trackLinkElementClass !== null) {
-        $("." + trackLinkElementClass).html("Track");
-      } else if (this._map.state.openInfoWindow !== null) {
-        this._map.state.openInfoWindow.hide();
-      }
-      this.stopTrackStation();
-    } else if (stationId !== 0) {
-      if (trackLinkElementClass !== null) {
-        $("." + trackLinkElementClass).html("Untrack");
-      }
-
-      var packet = this._map.markerCollection.getStationLatestPacket(stationId);
-      if (packet !== null) {
-        var stationName = packet.station_name;
-        if (packet.sender_name != packet.station_name) {
-          stationName = packet.station_name + " (" + packet.sender_name + ")";
-        }
-        this.trackStation(stationId, stationName, true);
-      }
-    }
-  },
-
-  /**
-   * Init settings
-   * @return null
-   */
-  _initSettings: function () {
-    this.settings = {
-      animate: true,
-
-      defaultMinZoomForMarkerLabel: 11,
-      defaultMinZoomForMarkerPrevPosition: 11,
-      defaultMinZoomForMarkerTail: 9,
-      defaultMinZoomForMarkers: 8,
-
-      minZoomForMarkerLabel: 11,
-      minZoomForMarkerPrevPosition: 11,
-      minZoomForMarkerTail: 9,
-      minZoomForMarkers: 8,
-
-      markerSymbolBaseDir: "/symbols/",
-      imagesBaseDir: "/images/",
-
-      defaultCurrentZoom: 11,
-      defaultCurrentZoomMobile: 11,
-
-      dateFormat: "L LTSZ",
-      dateFormatNoTimeZone: "L LTS",
-
-      host: "www.aprsdirect.com",
-      baseUrl: "https://www.aprsdirect.com",
-
-      defaultTimeLength: 60,
-
-      symbolsToScale: [],
-
-      // Contains ascii values that corresponds to symbols without support for direction polyline (for symbols in the primary table)
-      primarySymbolWithNoDirectionPolyline: [87, 64, 95],
-
-      // Contains ascii values that corresponds to symbols without support for direction polyline (for symbols in the alterantive table)
-      alternativeSymbolWithNoDirectionPolyline: [
-        40, 42, 64, 74, 84, 85, 96, 98, 101, 102, 112, 116, 119, 121, 123,
-      ],
-    };
-  },
-
-  /**
-   * Parse the options
-   * @param {object} options
-   */
-  _parseOptions: function (options) {
-    if (typeof options["cordinatesContainerElementId"] !== undefined) {
-      this._cordinatesContainerElementId =
-        options["cordinatesContainerElementId"];
-    }
-    if (typeof options["statusContainerElementId"] !== undefined) {
-      this._statusContainerElementId = options["statusContainerElementId"];
-    }
-    if (typeof options["isMobile"] !== undefined) {
-      this.isMobile = options["isMobile"];
-    }
-    if (typeof options["coverageDataUrl"] !== undefined) {
-      this.coverageDataUrl = options["coverageDataUrl"];
-    }
-    if (typeof options["coveragePercentile"] !== undefined) {
-      this.coveragePercentile = options["coveragePercentile"];
-    }
-    if (typeof options["time"] !== undefined) {
-      this._time = options["time"];
-    }
-    if (typeof options["timetravel"] !== undefined) {
-      this._timetravel = options["timetravel"];
-    }
-    if (typeof options["center"] !== undefined) {
-      this._center = options["center"];
-    }
-    if (typeof options["zoom"] !== undefined) {
-      this._zoom = options["zoom"];
-    }
-    if (typeof options["maptype"] !== undefined) {
-      this._maptype = options["maptype"];
-    }
-    if (typeof options["mid"] !== undefined) {
-      this._mid = options["mid"];
-    }
-    if (
-      typeof options["filters"] !== undefined &&
-      options["filters"] !== null
-    ) {
-      for (var i in options["filters"]) {
-        if (options["filters"][i] !== null && options["filters"][i] != "") {
-          this._filters[i] = options["filters"][i];
-        }
-      }
-    }
-    if (
-      typeof options["disableLocationChangeOnFilterResponse"] !== undefined &&
-      options["disableLocationChangeOnFilterResponse"]
-    ) {
-      this._doNotChangeLocationOnFilterResponse = true;
-    }
-    if (
-      typeof options["defaultMinZoomForMarkerLabel"] !== undefined &&
-      options["defaultMinZoomForMarkerLabel"] != null
-    ) {
-      this.settings.defaultMinZoomForMarkerLabel =
-        options["defaultMinZoomForMarkerLabel"];
-    }
-    if (
-      typeof options["defaultMinZoomForMarkerPrevPosition"] !== undefined &&
-      options["defaultMinZoomForMarkerPrevPosition"] != null
-    ) {
-      this.settings.defaultMinZoomForMarkerPrevPosition =
-        options["defaultMinZoomForMarkerPrevPosition"];
-    }
-    if (
-      typeof options["defaultMinZoomForMarkerTail"] !== undefined &&
-      options["defaultMinZoomForMarkerTail"] != null
-    ) {
-      this.settings.defaultMinZoomForMarkerTail =
-        options["defaultMinZoomForMarkerTail"];
-    }
-    if (
-      typeof options["defaultMinZoomForMarkers"] !== undefined &&
-      options["defaultMinZoomForMarkers"] != null
-    ) {
-      this.settings.defaultMinZoomForMarkers =
-        options["defaultMinZoomForMarkers"];
-    }
-
-    if (typeof options["animate"] !== undefined && options["animate"] != null) {
-      this.settings.animate = options["animate"];
-    }
-
-    if (typeof options["host"] !== undefined && options["host"] != null) {
-      this.settings.host = options["host"];
-      this.settings.baseUrl = this._getMapBaseUrl(options["host"]);
-    } else {
-      this.settings.baseUrl = this._getMapBaseUrl();
-    }
-
-    if (
-      typeof options["defaultTimeLength"] !== undefined &&
-      options["defaultTimeLength"] != null
-    ) {
-      this.settings.defaultTimeLength = options["defaultTimeLength"];
-    }
-
-    if (
-      typeof options["symbolsToScale"] !== undefined &&
-      options["symbolsToScale"] !== null
-    ) {
-      this.settings.symbolsToScale = options["symbolsToScale"];
-    }
-
-    this._initDefaultLocation(options);
-  },
-
-  /**
-   * Initialize default location
-   * @param {object} options
-   */
-  _initDefaultLocation: function (options) {
-    if (
-      typeof options["defaultLatitude"] !== "undefined" &&
-      typeof options["defaultLongitude"] !== "undefined"
-    ) {
-      this._defaultLatitude = options["defaultLatitude"];
-      this._defaultLongitude = options["defaultLongitude"];
-    } else {
-      this._defaultLatitude = 0;
-      this._defaultLongitude = 0;
-    }
-  },
-
-  /**
-   * Init time
-   * @return null
-   */
-  _initTime: function () {
-    var filterMode = false;
-    if (
-      "sid" in this._filters ||
-      "sidlist" in this._filters ||
-      "sname" in this._filters ||
-      "snamelist" in this._filters
-    ) {
-      filterMode = true;
-    }
-
-    if (this._time != null && this._isValidTime(this._time, filterMode)) {
-      this.setTimeLength(this._time, false);
-    } else {
-      this.setTimeLength(this.settings.defaultTimeLength, false);
-    }
-
-    now = new Date();
-    if (
-      this._timetravel != null &&
-      this._timetravel >= 0 &&
-      this._timetravel <= now.getTime() / 1000
-    ) {
-      this.setTimeTravelTimestamp(this._timetravel, false);
-    }
-
-    this._updateMinZoomLevels();
-  },
-
-  /**
-   * Init map
-   * @param {object} options
-   * @return null
-   */
-  _mapInit: function (options) {
-    if (
-      "sid" in this._filters ||
-      "sidlist" in this._filters ||
-      "sname" in this._filters ||
-      "snamelist" in this._filters
-    ) {
-      // To avoid flicker we wait with sending feed requests until we get the filter response
-      this._waitForFilterResponse = true;
-      if (window.location.href.indexOf("/center/") >= 0) {
-        this._doNotChangeLocationOnFilterResponseTmp = true;
-      }
-    }
-
-    var tdMapOptions = this._getMapInitOptions(options);
-    var me = this;
-
-    $(document).ready(function () {
-      me._map = new trackdirect.models.Map(me._mapElementId, tdMapOptions);
-      me._markerCreator = new trackdirect.MarkerCreator(me._map);
-
-      if (
-        typeof options["useImperialUnit"] !== "undefined" &&
-        options["useImperialUnit"] == true
-      ) {
-        me.enableImperialUnits();
-      }
-
-      me._emitEventListeners("map-created");
-    });
-  },
-
-  /**
-   * Returns the map init options
-   * @param {array} options
-   * @return string
-   */
-  _getMapInitOptions: function (options) {
-    var center = this._getMapInitCenter();
-    var tdMapOptions = {
-      zoom: this._getMapInitZoom(),
-      maptype: this._getMapInitMapType(),
-      cordinatesContainer: this._cordinatesContainerElementId,
-      defaultLatitude: this._defaultLatitude,
-      defaultLongitude: this._defaultLongitude,
-      initCenter: center,
-      mid: this._getMapInitMid(),
-    };
-
-    if ("supportedMapTypes" in options) {
-      tdMapOptions["supportedMapTypes"] = options["supportedMapTypes"];
-    }
-
-    if ("mapboxGLStyle" in options) {
-      tdMapOptions["mapboxGLStyle"] = options["mapboxGLStyle"];
-    }
-
-    if ("mapboxGLAccessToken" in options) {
-      tdMapOptions["mapboxGLAccessToken"] = options["mapboxGLAccessToken"];
-    }
-
-    if ("mapboxGLAttribution" in options) {
-      tdMapOptions["mapboxGLAttribution"] = options["mapboxGLAttribution"];
-    }
-
-    return tdMapOptions;
-  },
-
-  /**
-   * Returns the map init center
-   * @return string
-   */
-  _getMapInitCenter: function () {
-    if (this._center != null) {
-      var centerParts = this._center.split(",");
-      if (
-        centerParts.length == 2 &&
-        this._isValidLatitude(centerParts[0]) &&
-        this._isValidLongitude(centerParts[1])
-      ) {
-        return {
-          lat: parseFloat(centerParts[0]),
-          lng: parseFloat(centerParts[1]),
-        };
-      }
-    }
-    return null;
-  },
-
-  /**
-   * Returns the map init zoom
-   * @return string
-   */
-  _getMapInitZoom: function () {
-    var zoom = null;
-    if (this._zoom != null && this._isValidZoom(this._zoom)) {
-      zoom = this._zoom;
-    }
-    return zoom;
-  },
-
-  /**
-   * Returns the map init mid value
-   * @return string
-   */
-  _getMapInitMid: function () {
-    var mid = null;
-    if (this._mid != null) {
-      mid = this._mid;
-    }
-    return mid;
-  },
-
-  /**
-   * Returns the map init map type
-   * @return string
-   */
-  _getMapInitMapType: function () {
-    var maptype = null;
-    if (this._maptype != null) {
-      maptype = this._maptype;
-    }
-    return maptype;
-  },
-
-  /**
-   * Init filter url request, returnes true if filter request is sent otherwise false
-   * @return boolean
-   */
-  _initFilterUrlRequest: function () {
-    if ("sid" in this._filters) {
-      stationId = this._filters["sid"];
-      if (isNumeric(stationId)) {
-        this.filterOnStationId(stationId);
-      }
-    } else if ("sname" in this._filters) {
-      stationName = this._filters["sname"];
-      if (stationName != "") {
-        this.filterOnStationName(stationName);
-      }
-    } else if ("sidlist" in this._filters) {
-      stationIdArray = this._filters["sidlist"].split(",");
-      var isValid = true;
-      for (var i = 0; i < stationIdArray.length; i++) {
-        if (!isNumeric(stationIdArray[i])) {
-          isValid = false;
-        }
-      }
-      if (isValid) {
-        this.filterOnStationId(stationIdArray);
-      }
-    } else if ("snamelist" in this._filters) {
-      stationNameArray = this._filters["snamelist"].split(",");
-      var isValid = true;
-      for (var i = 0; i < stationNameArray.length; i++) {
-        if (
-          typeof stationNameArray[i] == "undefined" ||
-          stationNameArray[i] == ""
-        ) {
-          isValid = false;
-        }
-      }
-      if (isValid) {
-        this.filterOnStationName(stationNameArray);
-      }
-    } else {
-      return false;
-    }
-
-    // This timeout is just to be safe, if we get a bad station request we should at least show regular aprs data after a while
-    var me = this;
-    this._filterTimeoutId = window.setTimeout(function () {
-      // Remember to clear _filterTimeoutId and _waitForFilterResponse when we have received a filter response
-      if (me._waitForFilterResponse) {
-        // We give up, we have not received any filter response, ask for everything instead
-        me._waitForFilterResponse = false;
-        trackdirect.services.callbackExecutor.add(
-          me,
-          me._sendPositionRequest,
-          []
-        );
-      }
-    }, 5000);
-
-    return true;
-  },
-
-  /**
-   * Returns true if parameter is a valid zoom
-   * @param {int} time
-   * @param {boolean} filteredMode
-   * @return {boolean}
-   */
-  _isValidTime: function (time, filteredMode) {
-    if (isNumeric(time)) {
-      if (filteredMode && time <= 14400 && time > 0) {
-        return true;
-      } else if (filteredMode == false && time <= 1440 && time > 0) {
-        return true;
-      }
-    }
-    return false;
-  },
-
-  /**
-   * Returns true if parameter is a valid zoom
-   * @param {int} zoom
-   * @return {boolean}
-   */
-  _isValidZoom: function (zoom) {
-    if (isNumeric(zoom)) {
-      if (zoom <= 21 && zoom >= 0) {
-        return true;
-      }
-    }
-    return false;
-  },
-
-  /**
-   * Returns true if parameter is a valid latitude
-   * @param {object} lat
-   * @return {boolean}
-   */
-  _isValidLatitude: function (lat) {
-    if (isNumeric(lat)) {
-      if (lat <= 90 && lat >= -90) {
-        return true;
-      }
-    }
-    return false;
-  },
-
-  /**
-   * Returns true if parameter is a valid longitude
-   * @param {object} lng
-   * @return {boolean}
-   */
-  _isValidLongitude: function (lng) {
-    if (isNumeric(lng)) {
-      if (lng <= 180 && lng >= -180) {
-        return true;
-      }
-    }
-    return false;
-  },
-
-  /**
-   * Initializes the map listeners
-   * @return null
-   */
-  _initMapListeners: function () {
-    var me = this;
-    this._map.addTdListener("change", function () {
-      trackdirect.services.callbackExecutor.add(
-        me,
-        me._sendPositionRequest,
-        []
-      );
-      trackdirect.services.mapAttributionModifier.update(me._map);
-    });
-    this._map.addTdListener("moving", function () {
-      // This event will happen many times, but same message will never be sent twice (handled by both ws-part and queue)
-      trackdirect.services.callbackExecutor.addIfUnique(
-        me,
-        me._sendIdleRequest,
-        []
-      );
-    });
-    this._map.addTdListener("station-tail-needed", function (stationId) {
-      me._websocket.doSendCompleteStationRequest(
-        stationId,
-        me._map.state.getTimeLength() / 60,
-        me.getTimeTravelTimestamp()
-      );
-    });
-    this._map.addTdListener("station-information", function (stationId) {
-      me.openStationInformationDialog(stationId);
-    });
-  },
-
-  /**
-   * Initializes the websocket listeners
-   * @return null
-   */
-  _initWebsocketListeners: function () {
-    this._initWebsocketStateChangeListener();
-    this._initWebsocketAprsPacketListener();
-    this._initWebsocketPayloadDoneListener();
-    this._initWebsocketFilterResponseListener();
-    this._initWebsocketServerTimestampResponseListener();
-    this._initWebsocketResetListener();
-  },
-
-  /**
-   * Initializes websocket state change listener
-   * @return null
-   */
-  _initWebsocketStateChangeListener: function () {
-    var me = this;
-    this._websocket.addListener("state-change", function () {
-      var callback = function () {
-        me._handleWebsocketStateChange();
-      };
-      trackdirect.services.callbackExecutor.add(this, callback, []);
-    });
-  },
-
-  /**
-   * Initializes websocket new aprs packet listener
-   * @return null
-   */
-  _initWebsocketAprsPacketListener: function () {
-    var me = this;
-    this._websocket.addListener("aprs-packet", function (packetData) {
-      var packet = new trackdirect.models.Packet(packetData);
-
-      var queueTimestamp = Math.floor(Date.now() / 1000);
-      var callback = function () {
-        var dequeueTimestamp = Math.floor(Date.now() / 1000);
-        if (dequeueTimestamp - queueTimestamp > 5 || !this.settings.animate) {
-          // More than 5 seconds has passed since queued or we do not want to animate
-          me._handleAprsPacket(packet, false);
-        } else {
-          me._handleAprsPacket(packet, true);
-        }
-      };
-      trackdirect.services.callbackExecutor.add(me, callback, []);
-    });
-  },
-
-  /**
-   * Initializes websocket payload done listener
-   * @return null
-   */
-  _initWebsocketPayloadDoneListener: function () {
-    var me = this;
-    this._websocket.addListener("aprs-packet-payload-done", function () {
-      var callback = function () {
-        me._map.showNewMarkersInQueue(true);
-      };
-      trackdirect.services.callbackExecutor.add(this, callback, []);
-    });
-  },
-
-  /**
-   * Initializes websocket filter response listener
-   * @return null
-   */
-  _initWebsocketFilterResponseListener: function () {
-    var me = this;
-    this._websocket.addListener("filter-response", function (data) {
-      var callback = function () {
-        me._handleFilterResponse(data);
-      };
-      trackdirect.services.callbackExecutor.add(this, callback, []);
-    });
-  },
-
-  /**
-   * Initializes websocket server timestamp response listener
-   * @return null
-   */
-  _initWebsocketServerTimestampResponseListener: function () {
-    var me = this;
-    this._websocket.addListener("server-timestamp-response", function (data) {
-      var callback = function () {
-        me._map.state.setServerCurrentTimestamp(data.timestamp);
-      };
-      trackdirect.services.callbackExecutor.add(this, callback, []);
-
-      // Just make sure we have not forgotten any markers in queue (should not be needed, but just to be safe)
-      if (me._map.getNumberOfNewMarkersToShow() > 0) {
-        var callback2 = function () {
-          me._map.showNewMarkersInQueue(true);
-        };
-        trackdirect.services.callbackExecutor.addIfUnique(this, callback2, []);
-      }
-    });
-  },
-
-  /**
-   * Initializes websocket reset listener
-   * @return null
-   */
-  _initWebsocketResetListener: function () {
-    var me = this;
-    this._websocket.addListener("reset", function () {
-      // Important that everything happens in order!!!
-      trackdirect.services.callbackExecutor.add(
-        me._map,
-        me._map.resetAllMarkers,
-        []
-      );
-    });
-  },
-
-  /**
-   * Update min zoom level based on time settings
-   * @return null
-   */
-  _updateMinZoomLevels: function () {
-    if (this._map.state.getTimeLength() / 60 > 720) {
-      trackdirect.settings.minZoomForMarkerPrevPosition =
-        trackdirect.settings.defaultMinZoomForMarkerPrevPosition + 1;
-      trackdirect.settings.minZoomForMarkerTail =
-        trackdirect.settings.defaultMinZoomForMarkerTail + 1;
-      trackdirect.settings.minZoomForMarkerLabel =
-        trackdirect.settings.defaultMinZoomForMarkerLabel + 1;
-      trackdirect.settings.minZoomForMarkers =
-        trackdirect.settings.defaultMinZoomForMarkers;
-    } else {
-      trackdirect.settings.minZoomForMarkerPrevPosition =
-        trackdirect.settings.defaultMinZoomForMarkerPrevPosition;
-      trackdirect.settings.minZoomForMarkerTail =
-        trackdirect.settings.defaultMinZoomForMarkerTail;
-      trackdirect.settings.minZoomForMarkerLabel =
-        trackdirect.settings.defaultMinZoomForMarkerLabel;
-      trackdirect.settings.minZoomForMarkers =
-        trackdirect.settings.defaultMinZoomForMarkers;
-    }
-  },
-
-  /**
-   * Handle time change request
-   * @return null
-   */
-  _handleTimeChange: function () {
-    this._updateMinZoomLevels();
-
-    // A reset request will soon be sent by server, but if server takes time we do it now also so user will notice that something happens
-    this._map.resetAllMarkers();
-
-    this._websocket.clearLastSentPositionRequest();
-    trackdirect.services.callbackExecutor.add(
-      this,
-      this._sendPositionRequest,
-      []
-    );
-    this._emitEventListeners("mode-changed");
-  },
-
-  /**
-   * Handle filter response
-   * @param {array} data
-   * @return null
-   */
-  _handleFilterResponse: function (data) {
-    // We have received a filter response, reset timeout and stop waiting for response
-    if (this._filterTimeoutId !== null) {
-      clearTimeout(this._filterTimeoutId);
-      this._filterTimeoutId = null;
-    }
-
-    if (data.length == 0) {
-      this._handleEmptyFilterResponse();
-    } else {
-      this._handleNonEmptyFilterResponse(data);
-    }
-  },
-
-  /**
-   * Unmark all stations as filtered that has no packet in the specified array
-   * @param {array} data
-   * @return null
-   */
-  _unMarkMissingStationsAsFiltered: function (data) {
-    var filterStationIds = this._map.state.getFilterStationIds();
-    for (var key in filterStationIds) {
-      var stationId = filterStationIds[key];
-      var foundStation = false;
-      for (var i = 0; i < data.length; i++) {
-        var packetData = data[i];
-        if (packetData.station_id == stationId && packetData["related"] == 0) {
-          foundStation = true;
-        }
-      }
-      if (!foundStation) {
-        this._unMarkStationAsFiltered(stationId);
-      }
-    }
-  },
-
-  /**
-   * Unmark station as a station that we are filtering on
-   * @param {int} stationId
-   * @return None
-   */
-  _unMarkStationAsFiltered: function (stationId) {
-    var map = this._map;
-    var index = map.state.filterStationIds.indexOf(stationId);
-    if (index > -1) {
-      map.state.filterStationIds.splice(index, 1);
-
-      // If we for some reason have infoWindow open and doesn't close it, update link name
-      var filterLinkElementClass = "filterStationLink" + stationId;
-      $("." + filterLinkElementClass).html("Filter");
-
-      // We only hide the marker since it may exist in a station transmit event
-      for (var markerIdKey in map.markerCollection.getStationMarkerIdKeys(
-        stationId
-      )) {
-        var marker = this._map.markerCollection.getMarker(markerIdKey);
-        if (marker !== null) {
-          marker.hideCompleteMarker();
-        }
-      }
-    }
-  },
-
-  /**
-   * Returns the number of uniqe stations in array (excluding packets marked as related)
-   * @param {array} data
-   * @return int
-   */
-  _getNumberOfUniqeStationsInArray: function (data) {
-    var numberOfStationPackets = 0;
-    for (var i = 0; i < data.length; i++) {
-      var packetData = data[i];
-      if (packetData["related"] == 0) {
-        numberOfStationPackets++;
-      }
-    }
-    return numberOfStationPackets;
-  },
-
-  /**
-   * Track station in packet array (only if only one uniqe station exists)
-   * @param {array} data
-   * @param {boolean} onlyTrackRecentPackets
-   * @return null
-   */
-  _trackStationInArray: function (data, onlyTrackRecentPackets) {
-    if (this._getNumberOfUniqeStationsInArray(data) == 1) {
-      for (var i = 0; i < data.length; i++) {
-        var packet = new trackdirect.models.Packet(data[i]);
-        if (packet["related"] == 0) {
-          // If we filter on only one station, track it
-          this.trackStation(
-            packet.station_id,
-            escapeHtml(packet.getStationName()),
-            false,
-            onlyTrackRecentPackets
-          );
-        }
-      }
-    }
-  },
-
-  /**
-   * Add a packet from a filter response
-   * @param {array} data
-   * @return null
-   */
-  _addFilterResponsePacketsToMap: function (data) {
-    // We add packet to map if it is so old that it will not be replaced by a newPositionRequest or if we will not call a newPositionRequest (if info window is open)
-    var tryToShowPacket = this._isAnyPacketInArrayOlderThanCurrentLimit(data);
-    for (var i = 0; i < data.length; i++) {
-      var packet = new trackdirect.models.Packet(data[i]);
-      if (packet["related"] == 0) {
-        this._markStationAsFiltered(packet.station_id);
-      }
-
-      // This may look unnessecery since we will add it later again (by calling doSendNewPositionRequest),
-      // but if latest packet is old it may not be received any more, so don't remove the following calls...
-      var markerIdKey = this._markerCreator.addPacket(packet, tryToShowPacket);
-      var marker = this._map.markerCollection.getMarker(markerIdKey);
-      if (marker !== null) {
-        marker.markToBeOverWritten();
-      }
-    }
-  },
-
-  /**
-   * Mark station as a station that we are filtering on
-   * @param {int} stationId
-   * @return None
-   */
-  _markStationAsFiltered: function (stationId) {
-    var map = this._map;
-    if (map.state.filterStationIds.indexOf(stationId) == -1) {
-      map.state.filterStationIds.push(stationId);
-    }
-
-    // If we for some reason have infoWindow open and doesn't close it, update link name
-    var filterLinkElementClass = "filterStationLink" + stationId;
-    $("." + filterLinkElementClass).html("Unfilter");
-
-    // If we allready have markers for this station we should show them
-    for (var markerIdKey in map.markerCollection.getStationMarkerIdKeys(
-      stationId
-    )) {
-      var marker = this._map.markerCollection.getMarker(markerIdKey);
-      if (marker !== null) {
-        marker.showCompleteMarker();
-      }
-    }
-  },
-
-  /**
-   * Handle non empty filter response
-   * @param {array} data
-   * @return null
-   */
-  _handleNonEmptyFilterResponse: function (data) {
-    var isFilterModeNew = !this.isFilteredMode();
-    this._map.activateFilteredMode();
-    this._waitForFilterResponse = false;
-
-    if (isFilterModeNew) {
-      this._map.resetAllMarkers();
-
-      this._emitEventListeners("mode-changed");
-    } else {
-      this._unMarkMissingStationsAsFiltered(data);
-    }
-
-    this._addFilterResponsePacketsToMap(data);
-
-    var packets = [];
-    for (var i = 0; i < data.length; i++) {
-      packets.push(new trackdirect.models.Packet(data[i]));
-    }
-    this._emitEventListeners("filter-changed", packets);
-
-    if (isFilterModeNew) {
-      var onlyTrackRecentPackets = true;
-      if (
-        !this._doNotChangeLocationOnFilterResponse &&
-        !this._doNotChangeLocationOnFilterResponseTmp
-      ) {
-        onlyTrackRecentPackets = false;
-        this._setFilteredMapBounds(data);
-      }
-      this._doNotChangeLocationOnFilterResponseTmp = false;
-      this._trackStationInArray(data, onlyTrackRecentPackets);
-      this._emitEventListeners("filter-new");
-    }
-    trackdirect.services.callbackExecutor.add(
-      this,
-      this._requestFilteredUpdate,
-      []
-    );
-  },
-
-  /**
-   * Request filtered update from server
-   * @return null
-   */
-  _requestFilteredUpdate: function () {
-    // request update from server (request is filtered), but if information dialog is open we wait until it closes
-    this._websocket.clearLastSentPositionRequest();
-    this._setWebsocketStateLoading(false);
-    this._websocket.doSendNewPositionRequest(
-      90,
-      180,
-      -90,
-      -180,
-      this._map.state.getTimeLength() / 60,
-      this.getTimeTravelTimestamp(),
-      false
-    );
-  },
-
-  /**
-   * Handle empty filter response
-   * @param {array} data
-   * @return null
-   */
-  _handleEmptyFilterResponse: function () {
-    // Response indicate that user are not demanding anything, we will reset and restart everything
-    this._deactivateFiltered(true);
-    this._waitForFilterResponse = false;
-  },
-
-  /**
-   * Returns true if any packet in array is older than current timelimit
-   * @param {array} data
-   * @return {boolean}
-   */
-  _isAnyPacketInArrayOlderThanCurrentLimit: function (data) {
-    for (var i = 0; i < data.length; i++) {
-      var packetData = data[i];
-      if (packetData["related"] == 0) {
-        // The 60 seconds is just a marginal
-        if (packetData.timestamp < packetData.requested_timestamp + 60) {
-          return true;
-        }
-
-        if (packetData["source"] == 0 || packetData["source_id"] == 0) {
-          // packet seems to be simulated, we better treat it as a very old packet
-          return true;
-        }
-      }
-    }
-    return false;
-  },
-
-  /**
-   * Set map bounds after receiving a filter response
-   * @param {array} data
-   * @return {int}
-   */
-  _setFilteredMapBounds: function (data) {
-    if (data.length == 1) {
-      this._map.setCenter(
-        {
-          lat: parseFloat(data[0].latitude),
-          lng: parseFloat(data[0].longitude),
-        },
-        12
-      );
-    } else {
-      var positions = [];
-      for (var i = 0; i < data.length; i++) {
-        var packetData = data[i];
-        if (packetData["related"] == 0) {
-          positions.push({
-            lat: parseFloat(packetData.latitude),
-            lng: parseFloat(packetData.longitude),
-          });
-        }
-      }
-
-      this._map.fitBounds(positions);
-      if (this._map.getZoom() > 12) {
-        this._map.setZoom(12);
-      }
-    }
-  },
-
-  /**
-   * Handle a received APRS packet!
-   * @param {trackdirect.models.Packet} packet
-   * @param {boolean} animate
-   * @return null
-   */
-  _handleAprsPacket: function (packet, animate) {
-    var markerIdKey = this._markerCreator.addPacket(packet, true);
-    if (markerIdKey !== null) {
-      var highlight = false;
-      var autoRender = false;
-      var marker = this._map.markerCollection.getMarker(markerIdKey);
-      if (
-        animate &&
-        packet.db == 0 &&
-        packet.station_name == packet.sender_name &&
-        marker.shouldMarkerBeVisible() &&
-        (this.isFilteredMode() || this._isPacketOnMap(packet))
-      ) {
-        highlight = true;
-
-        var tdTransmitAnimation = new trackdirect.models.TransmitAnimation(
-          marker,
-          this._map
-        );
-        tdTransmitAnimation.show();
-      }
-
-      if (packet.realtime == 1 && animate) {
-        autoRender = true;
-      }
-    }
-  },
-
-  /**
-   * Returns linkified packet.raw
-   * @param {trackdirect.models.Packet} packet
-   * @return {string}
-   */
-  _linkifyPacketRaw: function (packet) {
-    if (typeof packet.raw !== "undefined" && typeof packet.raw == "string") {
-      var raw = escapeHtml(packet.raw);
-      var stationNameReplacement =
-        '<a href="#" onclick="trackdirect.focusOnMarkerId(' +
-        packet.marker_id +
-        '); return false;">' +
-        escapeHtml(packet.sender_name) +
-        "</a>";
-      raw = raw.replaceAll(
-        escapeHtml(packet.sender_name) + "&gt;",
-        stationNameReplacement + "&gt;"
-      );
-
-      for (var i = 0; i < packet.station_id_path.length; i++) {
-        var relatedStationId = packet.station_id_path[i];
-        var relatedStationLatestPacket =
-          this._map.markerCollection.getStationLatestPacket(relatedStationId);
-        if (relatedStationLatestPacket !== null) {
-          var relatedStationNameReplacement =
-            '<a href="#" onclick="trackdirect.focusOnStation(' +
-            relatedStationId +
-            ', true); return false;">' +
-            escapeHtml(relatedStationLatestPacket.sender_name) +
-            "</a>";
-
-          var relatedStationSenderName = escapeHtml(
-            relatedStationLatestPacket.sender_name
-          );
-          raw = raw.replaceAll(
-            "&gt;" + relatedStationSenderName + ":",
-            "&gt;" + relatedStationNameReplacement + ":"
-          );
-          raw = raw.replaceAll(
-            "&gt;" + relatedStationSenderName + ",",
-            "&gt;" + relatedStationNameReplacement + ","
-          );
-          raw = raw.replaceAll(
-            "&gt;" + relatedStationSenderName + "*",
-            "&gt;" + relatedStationNameReplacement + "*"
-          );
-
-          raw = raw.replaceAll(
-            "," + relatedStationSenderName + ":",
-            "," + relatedStationNameReplacement + ":"
-          );
-          raw = raw.replaceAll(
-            "," + relatedStationSenderName + ",",
-            "," + relatedStationNameReplacement + ","
-          );
-          raw = raw.replaceAll(
-            "," + relatedStationSenderName + "*",
-            "," + relatedStationNameReplacement + "*"
-          );
-        }
-      }
-
-      // Before returning we also linkify any url
-      raw = Autolinker.link(raw, { newWindow: true });
-      return raw;
-    }
-    return "";
-  },
-
-  /**
-   * Returns true if packet is on map, false otherwise
-   * @param {trackdirect.models.Packet} packet
-   * @return boolean
-   */
-  _isPacketOnMap: function (packet) {
-    if (
-      packet.latitude <= this._map.getNorthEastLat() &&
-      packet.latitude >= this._map.getSouthWestLat()
-    ) {
-      if (
-        packet.longitude <= this._map.getNorthEastLng() &&
-        packet.longitude >= this._map.getSouthWestLng()
-      ) {
-        return true;
-      }
-    }
-    return false;
-  },
-
-  /**
-   * Modify website when websocket state has changed
-   * @return null
-   */
-  _handleWebsocketStateChange: function () {
-    switch (this._websocket.getState()) {
-      case this._websocket.State.CONNECTING:
-        this._setWebsocketStateConnecting();
-        break;
-
-      case this._websocket.State.CONNECTED:
-        this._setWebsocketStateConnected();
-
-        // Trigger map change event since we now have access to websocket
-        trackdirect.services.callbackExecutor.add(
-          this,
-          this._sendPositionRequest,
-          []
-        );
-        break;
-
-      case this._websocket.State.CLOSED:
-      case this._websocket.State.ERROR:
-        this._setWebsocketStateError();
-        break;
-
-      case this._websocket.State.LOADING:
-        this._setWebsocketStateLoading(true, false);
-        break;
-
-      case this._websocket.State.LOADING_DONE:
-        this._setWebsocketStateLoadingDone();
-        break;
-
-      case this._websocket.State.LISTENING_APRSIS:
-        this._setWebsocketStateAprsISConnected();
-        break;
-
-      case this._websocket.State.CONNECTING_APRSIS:
-        this._setWebsocketStateAprsISConnecting();
-        break;
-
-      case this._websocket.State.IDLE:
-        this._setWebsocketStateIdle();
-        break;
-
-      case this._websocket.State.INACTIVE:
-        this._setWebsocketStateInactive();
-        break;
-    }
-  },
-
-  /**
-   * Show that websocket is Connecting
-   * @return null
-   */
-  _setWebsocketStateConnecting: function () {
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Connecting")
-        .css("color", "blue");
-    }
-  },
-
-  /**
-   * Show that websocket is Connected
-   * @return null
-   */
-  _setWebsocketStateConnected: function () {
-    this._map.resetAllMarkers();
-
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Connected")
-        .css("color", "green");
-    }
-  },
-
-  /**
-   * Show that websocket has a problem
-   * @return null
-   */
-  _setWebsocketStateError: function () {
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Disconnected")
-        .css("color", "red");
-    }
-
-    this._map.resetAllMarkers();
-    this._deactivateFiltered(false);
-
-    var me = this;
-    if (
-      confirm(
-        "You have been disconnected, this can be caused by a network error, by the timeout limit or if maintenance occurs while you’re logged in. Do you want to reconnect?"
-      )
-    ) {
-      me._websocket = new trackdirect.Websocket(me._wsServerUrl);
-      me._initWebsocketListeners();
-      trackdirect.services.callbackExecutor.add(
-        me,
-        me._sendPositionRequest,
-        []
-      );
-    }
-  },
-
-  /**
-   * Show that websocket is loading
-   * @param {boolean} isStateConfirmed
-   * @param {boolean} showOnMobile
-   * @return null
-   */
-  _setWebsocketStateLoading: function (isStateConfirmed, showOnMobile) {
-    isStateConfirmed =
-      typeof isStateConfirmed !== "undefined" ? isStateConfirmed : true;
-    showOnMobile = typeof showOnMobile !== "undefined" ? showOnMobile : true;
-
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html(
-          'Loading <i class="fa fa-spinner fa-spin" style="font-size:14px"></i>'
-        )
-        .css("color", "green");
-    }
-  },
-
-  /**
-   * Show that websocket is done loading
-   * @return null
-   */
-  _setWebsocketStateLoadingDone: function () {
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Complete")
-        .css("color", "green");
-    }
-  },
-
-  /**
-   * Show that websocket is receiving packets from APRS-IS
-   * @return null
-   */
-  _setWebsocketStateAprsISConnected: function () {
-    // APRS-IS Connection is up for this area!
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Connected to APRS feed")
-        .css("color", "green");
-    }
-  },
-
-  /**
-   * Show that websocket waiting for packets from APRS-IS
-   * @return null
-   */
-  _setWebsocketStateAprsISConnecting: function () {
-    // Waiting for APRS-IS Connection
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Waiting for APRS feed")
-        .css("color", "green");
-    }
-  },
-
-  /**
-   * Show that websocket is IDLE
-   * @return null
-   */
-  _setWebsocketStateIdle: function () {
-    // We are zoomed out and not doing anything
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Idle")
-        .css("color", "green");
-    }
-  },
-
-  /**
-   * Show that websocket is INACTIVE
-   * @return null
-   */
-  _setWebsocketStateInactive: function () {
-    if (this._statusContainerElementId !== null) {
-      $("#" + this._statusContainerElementId)
-        .html("Inactive")
-        .css("color", "orange");
-    }
-
-    this._websocket.close();
-    this._map.resetAllMarkers();
-    var me = this;
-    if (
-      confirm(
-        "No activity for a long time, map updates has been stopped. Do you want to reconnect?"
-      )
-    ) {
-      me._websocket = new trackdirect.Websocket(me._wsServerUrl);
-      me._initWebsocketListeners();
-      trackdirect.services.callbackExecutor.add(
-        me,
-        me._sendPositionRequest,
-        []
-      );
-    }
-  },
-
-  /**
-   * Send a position request to server
-   * @return null
-   */
-  _sendPositionRequest: function () {
-    if (!this._waitForFilterResponse && this._map.isMapReady()) {
-      if (!this.isFilteredMode()) {
-        if (this._map.getZoom() < trackdirect.settings.minZoomForMarkers) {
-          // Just stop connection to APRS-IS
-          this._websocket.doSendNewPositionRequest(
-            0,
-            0,
-            0,
-            0,
-            this._map.state.getTimeLength() / 60,
-            this.getTimeTravelTimestamp(),
-            false
-          );
-        } else if (
-          this._map.getZoom() >= trackdirect.settings.minZoomForMarkerTail
-        ) {
-          // We need all details, send regular request
-          this._websocket.doSendNewPositionRequest(
-            this._map.getNorthEastLat(),
-            this._map.getNorthEastLng(),
-            this._map.getSouthWestLat(),
-            this._map.getSouthWestLng(),
-            this._map.state.getTimeLength() / 60,
-            this.getTimeTravelTimestamp(),
-            false
-          );
-        } else {
-          // We only need markers, only request the last packet for each station (server my still send everything, but we do not force server to do that)
-          this._websocket.doSendNewPositionRequest(
-            this._map.getNorthEastLat(),
-            this._map.getNorthEastLng(),
-            this._map.getSouthWestLat(),
-            this._map.getSouthWestLng(),
-            this._map.state.getTimeLength() / 60,
-            this.getTimeTravelTimestamp(),
-            true
-          );
-        }
-      } else {
-        // We are filtering, request everything everywhere for our filter
-        this._websocket.doSendNewPositionRequest(
-          90,
-          180,
-          -90,
-          -180,
-          this._map.state.getTimeLength() / 60,
-          this.getTimeTravelTimestamp(),
-          false
-        );
-      }
-
-      var data = {
-        center: this._map.getCenterLiteral(),
-        zoom: this._map.getZoom(),
-      };
-      this._emitEventListeners("position-request-sent", data);
-    }
-  },
-
-  /**
-   * Send a idle request to server if needed
-   * @return null
-   */
-  _sendIdleRequest: function () {
-    // The position 0,0,0,0 means that we request server to be IDLE
-    if (this._websocket.isPositionRequestSent()) {
-      this._websocket.doSendNewPositionRequest(
-        0,
-        0,
-        0,
-        0,
-        this._map.state.getTimeLength() / 60,
-        this.getTimeTravelTimestamp(),
-        false
-      );
-    }
-  },
-
-  /**
-   * Deactivate filtered mode is confirmed
-   * @param {boolean} sendNewRequest
-   * @return null
-   */
-  _deactivateFiltered: function (sendNewRequest) {
-    // Reset Time travel
-    this.setTimeTravelTimestamp(null);
-
-    // clear everything
-    this._map.resetAllMarkers();
-
-    if (this._map.state.openInfoWindow !== null) {
-      this._map.state.openInfoWindow.hide();
-    }
-    this._map.deactivateFilteredMode();
-
-    // If we was tracking one station that we was filtering on, stop tracking it
-    this.stopTrackStation();
-    this.setTimeLength(this.settings.defaultTimeLength, false);
-
-    this._emitEventListeners("filter-changed", []);
-    this._emitEventListeners("filter-stopped");
-
-    if (sendNewRequest) {
-      trackdirect.services.callbackExecutor.add(
-        this,
-        this._sendPositionRequest,
-        []
-      );
-    }
-
-    this._emitEventListeners("mode-changed");
-  },
-
-  /**
-   * Returns the website base URL
-   * @param {string} host
-   * @return string
-   */
-  _getMapBaseUrl: function (host) {
-    host = typeof host !== "undefined" ? host : "";
-    host = host.replace("http://", "");
-    host = host.replace("https://", "");
-    if (host == "") {
-      host = window.location.host;
-    }
-    if (location.protocol === "https:") {
-      return "https://" + host;
-    } else {
-      return "http://" + host;
-    }
-  },
-
-  /**
-   * Call all listeners that are listening on specified event
-   * @param {string} event
-   * @param {string} arg
-   * @return null
-   */
-  _emitEventListeners: function (event, arg) {
-    if (event in this._eventListeners) {
-      for (var i = 0; i < this._eventListeners[event].length; i++) {
-        this._eventListeners[event][i](arg);
-      }
-    }
-
-    if (event in this._eventListenersOnce) {
-      for (var i = 0; i < this._eventListenersOnce[event].length; i++) {
-        this._eventListenersOnce[event][i](arg);
-        this._eventListenersOnce[event].splice(i, 1);
-        i--;
-      }
-    }
-
-    if (event == "trackdirect-init-done") {
-      this._trackdirectInitDone = true;
-    }
-
-    if (event == "map-created") {
-      this._mapCreated = true;
-    }
-  },
-};
diff --git a/jslib/src/trackdirect/MarkerCreator.js b/jslib/src/trackdirect/MarkerCreator.js
deleted file mode 100755
index 4c6a6a88c9a14dcc972d442ce4de4d5ecb0a18b5..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/MarkerCreator.js
+++ /dev/null
@@ -1,914 +0,0 @@
-/**
- * Class trackdirect.MarkerCreator
- * @param {trackdirect.models.Map} map
- */
-trackdirect.MarkerCreator = function (map) {
-  this._map = map;
-
-  // Station id for the packet sequence that is currenly being added to the map
-  this._currentPacketSequenceStationId = null;
-};
-
-/**
- * Add new packet to map
- * @param {object} packet
- * @param {boolean} tryToShowPacket
- * @return {int} markerIdKey
- */
-trackdirect.MarkerCreator.prototype.addPacket = function (
-  packet,
-  tryToShowPacket
-) {
-  if (this.isBadPacket(packet)) {
-    return null;
-  }
-  var markerIdKey = this._map.markerCollection.getMarkerIdKey(packet.marker_id);
-
-  if (this._map.markerCollection.isExistingMarker(markerIdKey)) {
-    var marker = this._map.markerCollection.getMarker(markerIdKey);
-    if (
-      marker.packet.is_moving == 1 &&
-      packet.is_moving != 1
-    ) {
-      // If server for some reason decides to change move-type we keep the original moving since we have started to plot it
-      // Server should not do this...
-      packet.is_moving = 1;
-    }
-  } else {
-    if (packet.packet_order_id == 2) {
-      // Something is wrong, a packet should not have order id 2 if no marker exists
-      packet.packet_order_id = 3; // Force first packet
-    }
-  }
-
-  markerIdKeyToOverwrite = this._getMarkerIdKeyToOverwrite(packet);
-  if (markerIdKeyToOverwrite !== null) {
-    this._overwriteMarker(markerIdKeyToOverwrite, markerIdKey);
-  }
-
-  if (this._map.markerCollection.isPacketReplacingMarker(packet)) {
-    this._replaceMarker(markerIdKey);
-  }
-
-  this._setCurrentPacketSequenceStationId(packet);
-  this._convertLostMarkersToGhost(packet);
-  this._connectToPreviousMarker(packet);
-
-  marker = this._createMarker(packet);
-
-  // Add to map sector and show it if that should be done
-  this._map.addMarkerToMapSectors(markerIdKey, packet, tryToShowPacket);
-
-  if (packet.overwrite == 1) {
-    marker.overwrite = true; // Mark it to be overwritten
-  }
-  return markerIdKey;
-};
-
-/**
- * Should packet overwrite any previous marker?
- * If so the markerIdKey will be returned otherwise null
- * @param {object} packet
- * @return {int}
- */
-trackdirect.MarkerCreator.prototype._getMarkerIdKeyToOverwrite = function (
-  packet
-) {
-  var markerIdKey = this._map.markerCollection.getMarkerIdKey(packet.marker_id);
-  if (this._map.markerCollection.isExistingMarker(markerIdKey)) {
-    // This marker exists on map, overwrite if it is marked to be overwritten
-    var marker = this._map.markerCollection.getMarker(markerIdKey);
-    if (marker.overwrite == true && packet.overwrite == 0) {
-      return markerIdKey;
-    }
-  } else {
-    // If packet is stationary and station has another marker allready, check if it may be the same thing
-    // It may be the same thing but different marker id's if it is more than 24h between packets
-    // (collector only connects packets that has less than 24h apart from eachother)
-    var prevMarker = this._map.markerCollection.getStationLatestMarker(
-      packet.station_id
-    );
-    if (prevMarker !== null) {
-      if (
-        packet.is_moving == 0 &&
-        packet.station_id == prevMarker.packet.station_id &&
-        packet.timestamp - prevMarker.packet.timestamp > 86400 &&
-        Math.round(prevMarker.packet.latitude * 100000) ==
-          Math.round(packet.latitude * 100000) &&
-        Math.round(prevMarker.packet.longitude * 100000) ==
-          Math.round(packet.longitude * 100000) &&
-        prevMarker.packet.symbol == packet.symbol &&
-        prevMarker.packet.symbol_table == packet.symbol_table
-      ) {
-        return prevMarker.markerIdKey;
-      }
-    }
-  }
-  return null;
-};
-
-/**
- * Replace marker
- * Replace is bit different from overwrite:
- * - replace is just replacing the latest position, used for stationary when a new packet for the same position is received
- * - overwrite is used when only the latest packet has been added to map and we now want to add the history
- * @param {int} markerIdKey
- * @return {null}
- */
-trackdirect.MarkerCreator.prototype._replaceMarker = function (markerIdKey) {
-  if (this._map.markerCollection.isExistingMarker(markerIdKey)) {
-    var marker = this._map.markerCollection.getMarker(markerIdKey);
-    if (this._map.state.isMarkerInfoWindowOpen(marker)) {
-      this._map.state.openInfoWindowForMarkerIdKey = markerIdKey;
-    }
-
-    // We hide old marker since we will just overwrite the variable which will not remove it from map
-    marker.hide(0, false, false);
-    marker.stopDirectionPolyline();
-  }
-};
-
-/**
- * Prepare marker to be overwritten
- * @param {int} prevMarkerIdKey
- * @param {int} newMarkerIdKey
- * @return {null}
- */
-trackdirect.MarkerCreator.prototype._overwriteMarker = function (
-  prevMarkerIdKey,
-  newMarkerIdKey
-) {
-  var prevMarker = this._map.markerCollection.getMarker(prevMarkerIdKey);
-  if (this._map.state.isMarkerInfoWindowOpen(prevMarker)) {
-    this._map.state.openInfoWindowForMarkerIdKey = newMarkerIdKey;
-  }
-
-  var markerLabel = prevMarker.label;
-  var markerPolyLine =
-    this._map.markerCollection.getMarkerPolyline(prevMarkerIdKey);
-  var markerDotMarkers =
-    this._map.markerCollection.getDotMarkers(prevMarkerIdKey);
-  var markerOriginDashedPolyline =
-    this._map.markerCollection.getMarkerDashedPolyline(prevMarkerIdKey);
-
-  clearTimeout(prevMarker.toOldTimerId);
-  if (markerDotMarkers != null) {
-    for (var i = 0; i < markerDotMarkers.length; i++) {
-      clearTimeout(markerDotMarkers[i].toOldTimerId);
-    }
-  }
-
-  this._map.markerCollection.resetMarker(prevMarkerIdKey);
-  if (this._map.oms) {
-    this._map.oms.removeMarker(prevMarker);
-  }
-
-  if (
-    prevMarker != null &&
-    typeof prevMarker.packet.latitude != "undefined" &&
-    typeof prevMarker.packet.longitude != "undefined"
-  ) {
-    this._map.markerCollection.removePostionMarkerId(
-      prevMarker.packet.latitude,
-      prevMarker.packet.longitude,
-      prevMarkerIdKey
-    );
-    this._map.showTopLabelOnPosition(
-      prevMarker.packet.latitude,
-      prevMarker.packet.longitude
-    );
-  }
-
-  // Note that the marker needs to be hidden after it has been removed from array
-  // (otherwise it may be shown again before it is removed)
-  prevMarker.hide(0, false, false);
-  if (markerPolyLine !== null) {
-    markerPolyLine.hide();
-  }
-  if (markerDotMarkers != null) {
-    for (var i = 0; i < markerDotMarkers.length; i++) {
-      markerDotMarkers[i].hide();
-    }
-  }
-  if (markerOriginDashedPolyline !== null) {
-    markerOriginDashedPolyline.hide();
-
-    // Remove dashed polyline from related marker also
-    if (
-      typeof markerOriginDashedPolyline.relatedMarkerIdKey !== "undefined" &&
-      markerOriginDashedPolyline.relatedMarkerIdKey !== null
-    ) {
-      var prevMarker = this._map.markerCollection.getMarker(
-        markerOriginDashedPolyline.relatedMarkerIdKey
-      );
-      if (
-        prevMarker !== null &&
-        typeof prevMarker._relatedMarkerOriginDashedPolyLine !== "undefined"
-      ) {
-        prevMarker._relatedMarkerOriginDashedPolyLine = null;
-      }
-    }
-  }
-
-  prevMarker.hidePHGCircle();
-  prevMarker.hideRNGCircle();
-
-  if (prevMarker.directionPolyLine !== null) {
-    prevMarker.directionPolyLine.stop();
-  }
-};
-
-/**
- * Remember the station that we are currently working, if we receive a series of packet for a station
- * @param {object} packet
- */
-trackdirect.MarkerCreator.prototype._setCurrentPacketSequenceStationId =
-  function (packet) {
-    if (packet.packet_order_id == 3) {
-      this._currentPacketSequenceStationId = packet.station_id;
-    }
-
-    if (
-      packet.packet_order_id == 2 &&
-      this._currentPacketSequenceStationId === null
-    ) {
-      // Looks like we marked the start-packet as bad...
-      this._currentPacketSequenceStationId = packet.station_id;
-      packet.packet_order_id = 3;
-    }
-
-    if (packet.packet_order_id == 1) {
-      this._currentPacketSequenceStationId = null;
-    }
-  };
-
-/**
- * Create a new marker!
- * @param {object} packet
- */
-trackdirect.MarkerCreator.prototype._createMarker = function (packet) {
-  var markerIdKey = this._map.markerCollection.getMarkerIdKey(packet.marker_id);
-  var prevmarker = this._map.markerCollection.getMarker(markerIdKey);
-  this._map.state.currentMarkerZindex += 1;
-
-  if (packet.packet_order_id == 1 || packet.is_moving == 0) {
-    if (prevmarker !== null) {
-      if (
-        prevmarker.packet.latitude != packet.latitude &&
-        prevmarker.packet.longitude != packet.longitude
-      ) {
-        this._map.markerCollection.removePostionMarkerId(
-          prevmarker.latitude,
-          prevmarker.longitude,
-          markerIdKey
-        );
-        this._map.showTopLabelOnPosition(
-          prevmarker.latitude,
-          prevmarker.longitude
-        );
-      }
-    }
-    var marker = new trackdirect.models.Marker(packet, false, this._map);
-    this._addInfoWindowClickListener(marker, true);
-  } else {
-    var marker = new trackdirect.models.Marker(packet, true, this._map);
-    this._map.markerCollection.addDotMarker(markerIdKey, marker);
-    this._addInfoWindowClickListener(marker, false);
-  }
-  marker.markerIdKey = markerIdKey;
-
-  if (prevmarker !== null) {
-    if (!this._map.markerCollection.isPacketReplacingMarker(packet)) {
-      // We need to extend the marker polyline since this is not the first dotmarker
-      this._extendTail(prevmarker, marker);
-    } else {
-      // update marker for the latest polyline point
-      this._replaceTailMarker(markerIdKey);
-    }
-  }
-
-  if (packet.packet_order_id == 1) {
-    if (packet.hasDirectionSupport() && packet.hasConfirmedMapId()) {
-      marker.directionPolyLine = new trackdirect.models.DirectionPolyline(
-        marker,
-        this._map
-      );
-    }
-  }
-
-  this._map.markerCollection.setMarker(markerIdKey, marker);
-
-  if (!marker.isDotMarker()) {
-    this._createMarkerLabel(marker);
-    this._map.showTopLabelOnPosition(packet.latitude, packet.longitude);
-  }
-
-  return marker;
-};
-
-/**
- * Add listener for InfoWindow
- * @param {object} marker
- * @param {boolean} useOmsIfExists
- */
-trackdirect.MarkerCreator.prototype._addInfoWindowClickListener = function (
-  marker,
-  useOmsIfExists
-) {
-  var me = this;
-  if (useOmsIfExists && this._map.oms) {
-    me._map.oms.addMarker(marker);
-  } else if (typeof google === "object" && typeof google.maps === "object") {
-    marker.addListener("click", function () {
-      me._map.openMarkerInfoWindow(marker, false);
-    });
-  } else if (typeof L === "object") {
-    marker.on("click", function () {
-      me._map.openMarkerInfoWindow(marker, false);
-    });
-  }
-};
-
-/**
- * Convert marker to dot marker
- * @param {int} markerIdKey
- * @param {object} packet
- */
-trackdirect.MarkerCreator.prototype._convertToDotMarker = function (
-  markerIdKey,
-  packet
-) {
-  // Check that marker has not allready been converted to dot-marker
-  var dotMarker = this._map.markerCollection.getMarker(markerIdKey);
-  if (dotMarker != null && dotMarker.showAsMarker) {
-    dotMarker.stopDirectionPolyline();
-
-    if (this._map.state.isMarkerInfoWindowOpen(dotMarker)) {
-      this._map.state.openInfoWindowForMarkerIdKey = markerIdKey;
-    }
-
-    if (!this._map.state.isFilterMode) {
-      if (
-        this._map.getZoom() < trackdirect.settings.minZoomForMarkerPrevPosition
-      ) {
-        dotMarker.hide();
-      }
-    }
-
-    var icon = this._getDotMarkerIcon(packet);
-    dotMarker.setOpacity(1.0);
-    dotMarker.setIcon(icon);
-    if (typeof google === "object" && typeof google.maps === "object") {
-      dotMarker.setOptions({ anchorPoint: null });
-    }
-    this._map.markerCollection.addDotMarker(markerIdKey, dotMarker);
-
-    // Remove from oms
-    if (this._map.oms) {
-      this._map.oms.removeMarker(dotMarker);
-
-      // markers that is not handled by oms need to have their own clicklistener
-      var me = this;
-      if (typeof google === "object" && typeof google.maps === "object") {
-        dotMarker.addListener("click", function () {
-          me._map.openMarkerInfoWindow(dotMarker, false);
-        });
-      } else if (typeof L === "object") {
-        dotMarker.on("click", function () {
-          me._map.openMarkerInfoWindow(dotMarker, false);
-        });
-      }
-    }
-
-    // Allways hide label for marker that is converted to dot-marker (we are not sure if label will still be used)
-    if (this._map.markerCollection.hasMarkerLabel(markerIdKey)) {
-      var markerLabel = this._map.markerCollection.getMarkerLabel(markerIdKey);
-      markerLabel.hide();
-    }
-    dotMarker.hasLabel = false;
-
-    // Mark that marker has been converted to dot marker
-    dotMarker.showAsMarker = false;
-  }
-};
-
-/**
- * Get dot marker icon
- * @param {object} packet
- * @return {object}
- */
-trackdirect.MarkerCreator.prototype._getDotMarkerIcon = function (packet) {
-  var colorId = trackdirect.services.stationColorCalculator.getColorId(packet);
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var icon = {
-      url:
-        trackdirect.settings.baseUrl +
-        trackdirect.settings.imagesBaseDir +
-        "dotColor" +
-        colorId +
-        ".png",
-      size: new google.maps.Size(12, 12),
-      origin: new google.maps.Point(0, 0),
-      anchor: new google.maps.Point(6, 6),
-    };
-  } else if (typeof L === "object") {
-    var icon = L.icon({
-      iconUrl:
-        trackdirect.settings.baseUrl +
-        trackdirect.settings.imagesBaseDir +
-        "dotColor" +
-        colorId +
-        ".png",
-      iconSize: [12, 12],
-      iconAnchor: [6, 6],
-      popupAnchor: [-3, -12],
-    });
-  }
-  return icon;
-};
-
-/**
- * Remove existing related marker origin dashed polyline if it should no longer be used
- * @param {object} prevMarker
- * @param {int} newMarkerIdKey
- */
-trackdirect.MarkerCreator.prototype._removeExistingRelatedMarkerOriginDashedPolyLine =
-  function (prevMarker, newMarkerIdKey) {
-    // We only connect confirmed and moving previous markers with longer length than 1 packet
-    if (
-      typeof prevMarker._relatedMarkerOriginDashedPolyLine !== "undefined" &&
-      prevMarker._relatedMarkerOriginDashedPolyLine !== null
-    ) {
-      //
-      // Check if it should be overwritten!
-      // (If this marker allready has a related-origin-dashed-polyline and the owner marker is alone we exclude it from path)
-      //
-      var ownerMarkerIdKey =
-        prevMarker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey;
-      var ownerMarker = this._map.markerCollection.getMarker(ownerMarkerIdKey);
-      var isConfirmedMapId = true;
-      if (
-        ownerMarker !== null &&
-        ownerMarker.packet.map_id != 1 &&
-        ownerMarker.packet.map_id != 2 &&
-        ownerMarker.packet.map_id != 12
-      ) {
-        isConfirmedMapId = false;
-      }
-
-      if (
-        ownerMarkerIdKey != newMarkerIdKey &&
-        (!isConfirmedMapId ||
-          !this._map.markerCollection.hasDotMarkers(ownerMarkerIdKey)) &&
-        ownerMarker.showAsMarker
-      ) {
-        // overwrite it!
-        this._map.markerCollection.resetMarkerDashedPolyline(
-          prevMarker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey
-        );
-        prevMarker._relatedMarkerOriginDashedPolyLine.hide();
-        prevMarker._relatedMarkerOriginDashedPolyLine = null;
-      }
-    }
-  };
-
-/**
- * Create related marker origin dashed polyline if possible
- * @param {object} prevMarker
- * @param {object} packet
- * @param {int} newMarkerIdKey
- */
-trackdirect.MarkerCreator.prototype._createMarkerOriginDashedPolyLine =
-  function (prevMarker, packet, newMarkerIdKey) {
-    if (
-      this._map.state.getClientTimestamp(prevMarker.packet.timestamp) <=
-      this._map.state.getOldestAllowedPacketTimestamp()
-    ) {
-      // previous marker is to old, no need to connect them
-      return;
-    }
-
-    if (
-      typeof prevMarker._relatedMarkerOriginDashedPolyLine === "undefined" ||
-      prevMarker._relatedMarkerOriginDashedPolyLine === null
-    ) {
-      var color = trackdirect.services.stationColorCalculator.getColor(packet);
-      var newDashedPolyline = new trackdirect.models.DashedTailPolyline(
-        color,
-        this._map
-      );
-      newDashedPolyline.setMarkerIdKey(newMarkerIdKey); // Add alias for owner
-      newDashedPolyline.setRelatedMarkerIdKey(prevMarker.markerIdKey);
-      newDashedPolyline.addPacket(prevMarker.packet);
-      newDashedPolyline.addPacket(packet);
-
-      this._map.markerCollection.setMarkerDashedPolyline(
-        newMarkerIdKey,
-        newDashedPolyline
-      );
-      prevMarker._relatedMarkerOriginDashedPolyLine = newDashedPolyline;
-
-      this._map.addMarkerToMapSectorInterval(
-        newMarkerIdKey,
-        prevMarker.packet.getLatLngLiteral(),
-        packet.getLatLngLiteral()
-      );
-    }
-  };
-
-/**
- * Looks for lost markers and converts them to ghost markers
- * @param {object} newPacket
- */
-trackdirect.MarkerCreator.prototype._convertLostMarkersToGhost = function (
-  newPacket
-) {
-  // Look for lost markers if this is a confirmed and moving marker
-  if (
-    newPacket.packet_order_id != 2 &&
-    newPacket.hasConfirmedMapId() &&
-    newPacket.is_moving == 1 &&
-    this._map.markerCollection.isPacketReplacingMarker(newPacket) == false
-  ) {
-    if (this._map.markerCollection.hasNonRelatedMovingMarkerId(newPacket)) {
-      // Loop over all markers for this station
-      list = this._map.markerCollection.getStationMarkerIdKeys(
-        newPacket.station_id
-      );
-      for (var markerIdKey in list) {
-        var newMarkerIdKey = this._map.markerCollection.getMarkerIdKey(
-          newPacket.marker_id
-        );
-        var marker = this._map.markerCollection.getMarker(markerIdKey);
-        if (
-          marker !== null &&
-          markerIdKey !== newMarkerIdKey &&
-          marker.packet.is_moving == 1 &&
-          marker.packet.timestamp <= newPacket.timestamp &&
-          marker.packet.hasConfirmedMapId() &&
-          marker.isSingleMovingMarker()
-        ) {
-          // This marker is considered lost
-          // This is the CLIENT PART of the adaptive speed filter
-          // If we have a confirmed previous marker but it has no dot-markers, we convert it to a ghost marker
-
-          // If marker has a dashed polyline (it is a origin of another marker), that dashed polyline should be removed
-          // Actually this should not happen (or it may happen for OBJECTS)
-          if (this._map.markerCollection.hasRelatedDashedPolyline(marker)) {
-            masterMarkerIdKey =
-              this._map.markerCollection.getMarkerMasterMarkerKeyId(
-                markerIdKey
-              );
-            if (
-              masterMarkerIdKey !== markerIdKey &&
-              this._map.markerCollection.isExistingMarker(masterMarkerIdKey) !==
-                null
-            ) {
-              // Another packet is connected to this one with a dashed polyline, this marker is probably an OBJECT sent by several senders
-              continue;
-            } else {
-              // This on the other hand should never happen...
-              // but if it does the dashed polyline should be removed
-              this._map.markerCollection.resetMarkerDashedPolyline(
-                marker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey
-              );
-              marker._relatedMarkerOriginDashedPolyLine.hide();
-              marker._relatedMarkerOriginDashedPolyLine = null;
-            }
-          }
-
-          marker.packet.map_id = 9; // Abnormal position (not releted to any previous or any newer positions)
-          marker.setOpacity(0.5);
-          marker.hasLabel = false;
-          marker.hideLabel();
-          marker.stopDirectionPolyline();
-
-          if (!this._map.state.isGhostMarkersVisible) {
-            marker.hide();
-          }
-        }
-      }
-    }
-  }
-};
-
-/**
- * Get the latest markerIdKey to connect new marker to, regular polyline if possible, otherwise dashed polyline
- * @param {object} newPacket
- * @param {int} newMarkerIdKey
- * @return {int}
- */
-trackdirect.MarkerCreator.prototype._getLatestStationMarkerToConnectTo =
-  function (newPacket, newMarkerIdKey) {
-    if (
-      this._map.markerCollection.getStationLatestMovingMarkerIdKey(
-        newPacket.station_id
-      ) === newMarkerIdKey
-    ) {
-      // This markerId is known and is the latest, just go on and use it
-      return newMarkerIdKey;
-    }
-
-    var latestPrevMarkerIdKey = null;
-    var latestPrevMarkerIdKeyTimestamp = null;
-    // Loop over all markers for this station
-
-    var list = this._map.markerCollection.getStationMarkerIdKeys(
-      newPacket.station_id
-    );
-    for (var markerIdKey in list) {
-      var marker = this._map.markerCollection.getMarker(markerIdKey);
-      if (marker !== null) {
-        if (markerIdKey === newMarkerIdKey) {
-          return markerIdKey;
-        } else if (
-          marker.packet.hasConfirmedMapId() &&
-          marker.packet.is_moving == 1 &&
-          marker.overwrite !== true &&
-          marker.isSingleMovingMarker() == false &&
-          (latestPrevMarkerIdKeyTimestamp === null ||
-            latestPrevMarkerIdKeyTimestamp < marker.packet.timestamp)
-        ) {
-          // We exclude single packet markers from the same station since they will allways be converted to ghost-markers by server when found
-          // (This is not allways true when we speak about objects with different stations)
-          latestPrevMarkerIdKey = markerIdKey;
-          latestPrevMarkerIdKeyTimestamp = marker.packet.timestamp;
-        }
-      }
-    }
-    return latestPrevMarkerIdKey;
-  };
-
-/**
- * Convert all stations previous markers to dot markers since a new packet has been received
- * @param {object} newPacket
- */
-trackdirect.MarkerCreator.prototype._connectToPreviousMarker = function (
-  newPacket
-) {
-  var newMarkerIdKey = this._map.markerCollection.getMarkerIdKey(
-    newPacket.marker_id
-  );
-  // Create dot-marker for old position (is needed even if marker is new since same station may have other markers)
-  if (
-    newPacket.packet_order_id != 2 &&
-    newPacket.is_moving == 1 &&
-    this._map.markerCollection.isPacketReplacingMarker(newPacket) == false
-  ) {
-    var latestPrevMarkerIdKey = this._getLatestStationMarkerToConnectTo(
-      newPacket,
-      newMarkerIdKey
-    );
-    var latestPrevMarker = this._map.markerCollection.getMarker(
-      latestPrevMarkerIdKey
-    );
-    if (latestPrevMarker !== null) {
-      // Since we will add a new packet for this station any direction polylines should be stopped
-      if (newPacket.hasConfirmedMapId()) {
-        latestPrevMarker.stopDirectionPolyline();
-      }
-
-      if (latestPrevMarkerIdKey == newMarkerIdKey) {
-        if (
-          this._map.markerCollection.hasDashedPolyline(latestPrevMarkerIdKey) &&
-          newPacket.hasConfirmedMapId()
-        ) {
-          // If previous marker is connected to a prev marker by a origin dashed polyline,
-          // we need to convert that marker to a dot-marker also (this happens when the prev marker is a mapId 7)
-          // We don't do this until our new markerId gets a packet with mapId 1 (some never get it and will be abandoned)
-          var dashedPolyline =
-            this._map.markerCollection.getMarkerDashedPolyline(
-              latestPrevMarkerIdKey
-            );
-          var latestPrevRelatedMarkerIdKey = dashedPolyline.relatedMarkerIdKey;
-          this._convertToDotMarker(latestPrevRelatedMarkerIdKey, newPacket);
-        }
-
-        // We can use the new packet here since it will only be used to get the correct color
-        this._convertToDotMarker(latestPrevMarkerIdKey, newPacket);
-      } else {
-        // Connect it with previous polyline with a dashed polyline
-        // Remember that we should create a origin dashed polyline even if new packet has mapId 7 since it may be converted to 1 later
-        // If it wont't be converted to a mapId 1 the origin dashed polyline will be removed when next packet with mapId 1 or is received for this station
-        this._removeExistingRelatedMarkerOriginDashedPolyLine(
-          latestPrevMarker,
-          newMarkerIdKey
-        );
-        this._createMarkerOriginDashedPolyLine(
-          latestPrevMarker,
-          newPacket,
-          newMarkerIdKey
-        );
-
-        if (newPacket.hasConfirmedMapId()) {
-          // We only convert previous packet to a dot-marker if this marker has mapId 1 (or equal)
-          // We can use the new packet here since it will only be used to get the correct color
-          this._convertToDotMarker(latestPrevMarkerIdKey, newPacket);
-        }
-      }
-    }
-  }
-};
-
-/**
- * Create label for marker
- * @param {trackdirect.models.Marker} marker
- */
-trackdirect.MarkerCreator.prototype._createMarkerLabel = function (marker) {
-  var position = marker.packet.getLatLngLiteral();
-
-  if (this._map.markerCollection.hasMarkerLabel(marker.markerIdKey)) {
-    // Just move existing label
-    this._map.markerCollection.setMarkerLabelPosition(
-      marker.markerIdKey,
-      position
-    );
-  } else if (marker.packet.packet_order_id == 1) {
-    if (marker.packet.getOgnRegistration() != null) {
-      labelText = marker.packet.getOgnRegistration();
-      if (marker.packet.getOgnCN() !== null) {
-        labelText += " [" + marker.packet.getOgnCN() + "]";
-      }
-    } else {
-      if (marker.packet.station_name == marker.packet.sender_name) {
-        labelText = escapeHtml(marker.packet.station_name);
-      } else {
-        labelText =
-          escapeHtml(marker.packet.station_name) +
-          ' <span style="font-weight: normal;">(' +
-          escapeHtml(marker.packet.sender_name) +
-          ")</span>";
-      }
-
-      // Add operator in comment to label
-      if (marker.packet.comment) {
-        var opIndex = marker.packet.comment.indexOf("OP:");
-        if (opIndex > -1) {
-          opStr = marker.packet.comment.substring(opIndex + 3).replace(/^\s+/, "") + " ";
-          opStr = opStr.substring(0, opStr.indexOf(" "));
-          if (opStr.length <= 10 && opStr.length > 0) {
-            labelText +=
-              ' <span style="font-weight: normal;">[' +
-              escapeHtml(opStr) +
-              "]</span>";
-          }
-        }
-      }
-    }
-
-    var markerLabel = new trackdirect.models.Label(
-      {
-        position: position,
-        text: labelText,
-      },
-      this._map
-    );
-    this._map.markerCollection.setMarkerLabel(marker.markerIdKey, markerLabel);
-  }
-};
-
-/**
- * Extend marker tail polyline with another position
- * @param {trackdirect.models.Marker} prevmarker
- * @param {trackdirect.models.Marker} newmarker
- */
-trackdirect.MarkerCreator.prototype._extendTail = function (
-  prevmarker,
-  newmarker
-) {
-  if (
-    this._map.state.getClientTimestamp(newmarker.packet.timestamp) <=
-    this._map.state.getOldestAllowedPacketTimestamp()
-  ) {
-    // received packet is allready to old...
-    return;
-  }
-
-  if (this._map.markerCollection.hasPolyline(newmarker.markerIdKey)) {
-    var polyline = this._map.markerCollection.getMarkerPolyline(
-      newmarker.markerIdKey
-    );
-    polyline.addMarker(newmarker);
-  } else {
-    if (
-      this._map.state.getClientTimestamp(
-        this._map.markerCollection.getMarker(newmarker.markerIdKey).packet.timestamp
-      ) <= this._map.state.getOldestAllowedPacketTimestamp()
-    ) {
-      // previous marker is to old, no need to connect them
-      return;
-    } else {
-      var color = trackdirect.services.stationColorCalculator.getColor(
-        newmarker.packet
-      );
-      var newTailPolyline = new trackdirect.models.TailPolyline(
-        color,
-        this._map
-      );
-      newTailPolyline.setMarkerIdKey(newmarker.markerIdKey);
-      newTailPolyline.addMarker(prevmarker);
-      newTailPolyline.addMarker(newmarker);
-      this._map.markerCollection.setMarkerPolyline(
-        newmarker.markerIdKey,
-        newTailPolyline
-      );
-    }
-  }
-};
-
-/**
- * Replace latest marker in marker tail polyline
- * @param {int} markerIdKey
- */
-trackdirect.MarkerCreator.prototype._replaceTailMarker = function (
-  markerIdKey
-) {
-  if (this._map.markerCollection.hasPolyline(markerIdKey)) {
-    var marker = this._map.markerCollection.getMarker(markerIdKey);
-    var polylines = this._map.markerCollection.getMarkerPolyline(markerIdKey);
-    var latestIndex = polylines.getPath().length - 1;
-    if (latestIndex >= 0) {
-      polylines.getPathItem(latestIndex).marker = marker;
-    }
-  }
-};
-
-/**
- * Return true if packet is bad (if it should not be added to map)
- * @param {trackdirect.models.Packet} markerCollection
- * @return {boolean}
- */
-trackdirect.MarkerCreator.prototype.isBadPacket = function (packet) {
-  if (
-    typeof packet.latitude === "undefined" ||
-    typeof packet.longitude === "undefined" ||
-    packet.marker_id == null
-  ) {
-    return true;
-  }
-  var markerIdKey = this._map.markerCollection.getMarkerIdKey(packet.marker_id);
-  if (this._map.markerCollection.isExistingMarker(markerIdKey)) {
-    var marker = this._map.markerCollection.getMarker(markerIdKey);
-    if (
-      packet.packet_order_id == 1 &&
-      this._currentPacketSequenceStationId == packet.station_id
-    ) {
-      // This is the last packet in an ongoing serie, do not mark this packet as bad
-      return false;
-    }
-    if (packet.db == 0) {
-      if (this._map.markerCollection.isDuplicate(packet)) {
-        return true; // We think this is a duplicate
-      }
-    }
-    if (
-      packet.db == 1 &&
-      marker.packet.db == 1 &&
-      marker.packet.source === 0 &&
-      packet.id === marker.packet.id
-    ) {
-      // For some reason we got the same packet again, duplicate!
-      // (this may happen when filtering on a station with only non confirmed packets)
-      return true;
-    }
-
-    if (marker.overwrite == true && packet.overwrite == 0) {
-      return false;
-    } else {
-      if (marker.packet.timestamp >= packet.timestamp) {
-        // It's important that we do not allow two packets with the same timestamp since they may be the same packet, which can cause wierd problems
-        return true;
-      }
-
-      if (
-        marker.packet.reported_timestamp !== null &&
-        packet.reported_timestamp !== null &&
-        Math.abs(marker.packet.reported_timestamp - packet.reported_timestamp) < 600
-      ) {
-        if (marker.packet.reported_timestamp > packet.reported_timestamp) {
-          return true;
-        }
-      }
-    }
-  }
-
-  if (packet.is_moving == 1) {
-    var list = this._map.markerCollection.getStationMarkerIdKeys(
-      packet.station_id
-    );
-    for (var relatedMarkerIdKey in list) {
-      var relatedMarker =
-        this._map.markerCollection.getMarker(relatedMarkerIdKey);
-      // Do not add packet to map if other packet with earlier timestamp exists
-      if (
-        relatedMarker !== null &&
-        relatedMarker.overwrite == false &&
-        relatedMarker.packet.timestamp > packet.timestamp
-      ) {
-        return true;
-      }
-    }
-  }
-
-  return false;
-};
diff --git a/jslib/src/trackdirect/Websocket.js b/jslib/src/trackdirect/Websocket.js
deleted file mode 100755
index 40bdb5edfff15530048ff1208f65181d9b078915..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/Websocket.js
+++ /dev/null
@@ -1,464 +0,0 @@
-/**
- * Class trackdirect.Websocket
- * @param {string} wsServerUrl
- */
-trackdirect.Websocket = function (wsServerUrl) {
-  this._wsServerUrl = wsServerUrl;
-  this._init();
-
-  this._state = this.State.CONNECTING;
-  this._emitEventListeners("state-change");
-
-  // Call the parent constructor
-  this._instance = new WebSocket(this._wsServerUrl);
-
-  var me = this;
-  this._instance.onopen = function (evt) {
-    me._onOpen(evt);
-  };
-  this._instance.onclose = function (evt) {
-    me._onClose(evt);
-  };
-  this._instance.onmessage = function (evt) {
-    me._onMessage(evt);
-  };
-  this._instance.onerror = function (evt) {
-    me._onError(evt);
-  };
-};
-
-/**
- * Init object
- */
-trackdirect.Websocket.prototype._init = function () {
-  this._instance = null;
-  this._eventListeners = {};
-  this._lastSentPositionRequest = "";
-  this._state = 0;
-  this._lastMessageTimestamp = null;
-  this._queue = [];
-  this._running = false;
-  this._sendPositionRequestIntervalId = null;
-
-  this.State = {
-    CONNECTING: 0, // Not connected!
-    CONNECTED: 1,
-    CLOSING: 2, // Not connected!
-    CLOSED: 3, // Not connected!
-    ERROR: 4, // Not connected!
-    LOADING: 5, // Loading history from database
-    LOADING_DONE: 6,
-    LISTENING_APRSIS: 7, // Listening on APRS-IS Feed
-    CONNECTING_APRSIS: 8,
-    IDLE: 9,
-    INACTIVE: 10,
-  };
-};
-
-/**
- * Send data
- * @param {string} data
- */
-trackdirect.Websocket.prototype.send = function (data) {
-  this._instance.send(data);
-};
-
-/**
- * Close websocket connection
- */
-trackdirect.Websocket.prototype.close = function () {
-  this._instance.close();
-};
-
-/**
- * Get current state of websocket connection
- * @return {int}
- */
-trackdirect.Websocket.prototype.getState = function () {
-  return this._state;
-};
-
-/**
- * Clear the last sent filter cache
- */
-trackdirect.Websocket.prototype.clearLastSentPositionRequest = function () {
-  this._lastSentPositionRequest = "";
-};
-
-/**
- * Clear the last sent filter cache
- */
-trackdirect.Websocket.prototype.isPositionRequestSent = function () {
-  if (this._lastSentPositionRequest != "") {
-    return true;
-  } else {
-    return false;
-  }
-};
-
-/**
- * Send new filter request
- * @param {array} list
- * @param {int} historyMinutes
- * @return {boolean}
- */
-trackdirect.Websocket.prototype.doSendFilterRequest = function (
-  list,
-  historyMinutes,
-  referenceTime
-) {
-  var request = {};
-  request.payload_request_type = 4;
-  request.list = list;
-  request.minutes = historyMinutes;
-  if (referenceTime != "") {
-    request.time = parseInt(referenceTime, 10);
-  } else {
-    request.time = null;
-  }
-  return this._addToSendQueue(request);
-};
-
-/**
- * Send new filter request by names
- * @param {array} list
- * @param {int} historyMinutes
- * @return {boolean}
- */
-trackdirect.Websocket.prototype.doSendFilterRequestByName = function (
-  namelist,
-  historyMinutes,
-  referenceTime
-) {
-  var request = {};
-  request.payload_request_type = 8;
-  request.namelist = namelist;
-  request.minutes = historyMinutes;
-  if (referenceTime != "") {
-    request.time = parseInt(referenceTime, 10);
-  } else {
-    request.time = null;
-  }
-  return this._addToSendQueue(request);
-};
-
-/**
- * Send station request
- * @param {int} stationId
- * @param {int} historyMinutes
- * @param {string} referenceTime
- * @return {boolean}
- */
-trackdirect.Websocket.prototype.doSendCompleteStationRequest = function (
-  stationId,
-  historyMinutes,
-  referenceTime
-) {
-  var request = {};
-  request.payload_request_type = 7;
-  request.station_id = stationId;
-  request.minutes = historyMinutes;
-  if (referenceTime != "") {
-    request.time = parseInt(referenceTime, 10);
-  } else {
-    request.time = null;
-  }
-  return this._addToSendQueue(request);
-};
-
-/**
- * Send new stop filter request
- * @param {int} stationId
- * @return {boolean}
- */
-trackdirect.Websocket.prototype.doSendStopFilterRequest = function (stationId) {
-  var request = {};
-  request.payload_request_type = 6;
-  request.station_id = stationId;
-  return this._addToSendQueue(request);
-};
-
-/**
- * Send new position request
- * @param {float} neLat
- * @param {float} neLng
- * @param {float} swLat
- * @param {float} swLng
- * @param {int} historyMinutes
- * @param {string} referenceTime
- * @param {boolean} onlyRequestLatestPacket
- * @return {boolean}
- */
-trackdirect.Websocket.prototype.doSendNewPositionRequest = function (
-  neLat,
-  neLng,
-  swLat,
-  swLng,
-  historyMinutes,
-  referenceTime,
-  onlyRequestLatestPacket
-) {
-  var request = {};
-  request.payload_request_type = 1;
-  request.neLat = neLat;
-  request.neLng = neLng;
-  request.swLat = swLat;
-  request.swLng = swLng;
-  request.minutes = historyMinutes;
-  if (referenceTime != "") {
-    request.time = parseInt(referenceTime, 10);
-  } else {
-    request.time = null;
-  }
-
-
-  if (onlyRequestLatestPacket) {
-    request.onlyLatestPacket = 1;
-  } else {
-    request.onlyLatestPacket = 0;
-  }
-
-  var requestStr = JSON.stringify(request);
-  if (requestStr != this._lastSentPositionRequest) {
-    this._lastSentPositionRequest = requestStr;
-
-    if (this._sendPositionRequestIntervalId !== null) {
-      clearInterval(this._sendPositionRequestIntervalId);
-    }
-
-    if (this._addToSendQueue(request)) {
-      var me = this;
-      this._sendPositionRequestIntervalId = window.setInterval(function () {
-        // Real-time update functionality may discard packets during high load,
-        // so it is good to send an extra update request now and then
-        request.payload_request_type = 11;
-        if (me._lastSentPositionRequest == requestStr) {
-          me._addToSendQueue(request);
-        }
-      }, 60 * 1000);
-      return true;
-    }
-    return false;
-  } else {
-    // No need to send this request...
-    return true;
-  }
-};
-
-/**
- * Add new event listener
- * @param {string} event
- * @param {string} handler
- */
-trackdirect.Websocket.prototype.addListener = function (event, handler) {
-  if (!(event in this._eventListeners)) {
-    this._eventListeners[event] = [];
-  }
-  this._eventListeners[event].push(handler);
-};
-
-/**
- * On open
- * @param {string} evt
- */
-trackdirect.Websocket.prototype._onOpen = function (evt) {
-  // We still consider this to be "connecting", first when server says it ready we consider us connected
-  this._state = this.State.CONNECTING;
-  this._emitEventListeners("state-change");
-};
-
-/**
- * On close
- * @param {string} evt
- */
-trackdirect.Websocket.prototype._onClose = function (evt) {
-  this._state = this.State.CLOSED;
-  this._emitEventListeners("state-change");
-};
-
-/**
- * On error
- * @param {string} evt
- */
-trackdirect.Websocket.prototype._onError = function (evt) {
-  this._state = this.State.ERROR;
-  this._emitEventListeners("state-change");
-};
-
-/**
- * On message
- * @param {string} evt
- */
-trackdirect.Websocket.prototype._onMessage = function (evt) {
-  this._lastMessageTimestamp = Math.floor(Date.now() / 1000);
-
-  // We skip try-catch since it affects performance
-  var packet = JSON.parse(evt.data);
-
-  // Add to queue to make sure packets are handled in order
-  trackdirect.services.callbackExecutor.add(this, this._handleMessage, [
-    packet,
-  ]);
-};
-
-/**
- * Handle message
- * @param {object} packet
- */
-trackdirect.Websocket.prototype._handleMessage = function (packet) {
-  switch (packet.payload_response_type) {
-    case 1:
-      this._emitEventListeners("aprs-packet", packet.data);
-      this._emitEventListeners("aprs-packet-payload-done");
-      break;
-
-    case 2:
-      for (
-        i = 0;
-        typeof packet.data !== "undefined" && i < packet.data.length;
-        i++
-      ) {
-        this._emitEventListeners("aprs-packet", packet.data[i]);
-      }
-      this._emitEventListeners("aprs-packet-payload-done");
-      break;
-
-    case 5:
-      this._emitEventListeners("filter-response", packet.data);
-      this._emitEventListeners("aprs-packet-payload-done");
-      break;
-
-    case 41:
-      this._emitEventListeners("server-timestamp-response", packet.data);
-      break;
-
-    case 31:
-      this._state = this.State.LISTENING_APRSIS;
-      this._emitEventListeners("state-change");
-      break;
-
-    case 32:
-      this._state = this.State.LOADING;
-      this._emitEventListeners("state-change");
-      break;
-
-    case 33:
-      this._state = this.State.IDLE;
-      this._emitEventListeners("state-change");
-      break;
-
-    case 34:
-      this._state = this.State.CONNECTING_APRSIS;
-      this._emitEventListeners("state-change");
-      break;
-
-    case 35:
-      this._state = this.State.LOADING_DONE;
-      this._emitEventListeners("state-change");
-      break;
-
-    case 36:
-      this._state = this.State.INACTIVE;
-      this._emitEventListeners("state-change");
-      this.clearLastSentPositionRequest();
-      break;
-
-    case 40:
-      this._emitEventListeners("reset");
-      break;
-
-    case 42:
-      this.clearLastSentPositionRequest();
-      this._state = this.State.CONNECTED;
-      this._emitEventListeners("state-change");
-      break;
-  }
-
-  return true;
-};
-
-/**
- * Add object to send queue
- * @param {object} request
- * @return {boolean}
- */
-trackdirect.Websocket.prototype._addToSendQueue = function (request) {
-  if (this.readyState > 1) {
-    return false;
-  }
-
-  var currentTs = Math.floor(Date.now() / 1000);
-  if (
-    this._lastMessageTimestamp !== null &&
-    this._lastMessageTimestamp < currentTs - 60
-  ) {
-    // We havn't heard anything from server in 60s, server should send a message every 10s,
-    // we better close the connection and force user of this class to reconnect
-    this.close(); // This should trigger the onClose event which should reset the map
-    return false;
-  }
-
-  var me = this;
-  this._queue.push(function () {
-    var data = JSON.stringify(request);
-    if (data != null) {
-      me.send(data);
-    }
-    me._dequeue();
-  });
-  this._start();
-  return true;
-};
-
-/**
- * Start the execution
- */
-trackdirect.Websocket.prototype._start = function () {
-  if (!this._running) {
-    this._dequeue();
-  }
-};
-
-/**
- * Execute the first call in queue
- * @return {function}
- */
-trackdirect.Websocket.prototype._dequeue = function () {
-  this._running = true;
-  var me = this;
-  setTimeout(function () {
-    if (me._instance.readyState === 1) {
-      // Open
-      var shift = me._queue.shift();
-      if (shift) {
-        shift();
-      } else {
-        me._running = false;
-      }
-      return;
-    } else if (me._instance.readyState > 1) {
-      // Closed (or closing)
-      me._running = false;
-      return;
-    } else {
-      // Probably on the way to open, just wait
-      me._dequeue();
-    }
-  }, 5); // wait 5 milisecond for the connection...
-};
-
-/**
- * Call all listeners that are listening on specified event
- * @param {string} event
- * @param {string} arg
- */
-trackdirect.Websocket.prototype._emitEventListeners = function (event, arg) {
-  if (
-    typeof this._eventListeners !== "undefined" &&
-    event in this._eventListeners
-  ) {
-    for (var i = 0; i < this._eventListeners[event].length; i++) {
-      this._eventListeners[event][i](arg);
-    }
-  }
-};
diff --git a/jslib/src/trackdirect/models/DashedTailPolyline.js b/jslib/src/trackdirect/models/DashedTailPolyline.js
deleted file mode 100755
index 7e90e24714787931259d4bb5667323d75e1451d6..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/DashedTailPolyline.js
+++ /dev/null
@@ -1,264 +0,0 @@
-/**
- * Class trackdirect.models.DashedTailPolyline
- * @see https://developers.google.com/maps/documentation/javascript/reference#Polyline
- * @param {string} color
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.DashedTailPolyline = function (color, map) {
-  this._defaultMap = map;
-  this.markerIdKey = null;
-  this.ownerMarkerIdKey = null;
-  this.relatedMarkerIdKey = null;
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Polyline.call(this, this._getGooglePolylineOptions(color));
-  } else if (typeof L === "object") {
-    L.Polyline.call(this, {}, this._getLeafletPolylineOptions(color));
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.DashedTailPolyline.prototype = Object.create(
-    google.maps.Polyline.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.DashedTailPolyline.prototype = Object.create(
-    L.Polyline.prototype
-  );
-}
-trackdirect.models.DashedTailPolyline.prototype.constructor =
-  trackdirect.models.DashedTailPolyline;
-
-/**
- * Get latLng object by index
- */
-trackdirect.models.DashedTailPolyline.prototype.getPathItem = function (index) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    return path.getAt(index);
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    if (typeof list[index] !== "undefined") {
-      return list[index];
-    } else {
-      return null;
-    }
-  }
-  return null;
-};
-
-/**
- * Push latLng object to path
- */
-trackdirect.models.DashedTailPolyline.prototype.pushPathItem = function (
-  latLng
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    path.push(latLng);
-  } else if (typeof L === "object") {
-    this.addLatLng(latLng);
-  }
-};
-
-/**
- * Remove latLng object by index
- */
-trackdirect.models.DashedTailPolyline.prototype.removePathItem = function (
-  index
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    path.removeAt(index);
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    if (typeof list[index] !== "undefined") {
-      list.splice(index, 1);
-      this.setLatLngs(list);
-    }
-  }
-};
-
-/**
- * Get Path length
- */
-trackdirect.models.DashedTailPolyline.prototype.getPathLength = function (
-  index
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    return path.getLength();
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    return list.length;
-  }
-};
-
-/**
- * Get latLng array
- */
-trackdirect.models.DashedTailPolyline.prototype.getPath = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    return google.maps.Polyline.prototype.getPath.call(this).getArray();
-  } else if (typeof L === "object") {
-    return this.getLatLngs();
-  }
-  return [];
-};
-
-/**
- * Get Polyline currently active Map
- * @return {google.maps.Map}
- */
-trackdirect.models.DashedTailPolyline.prototype.getMap = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var map = google.maps.Polyline.prototype.getMap.call(this);
-    if (typeof map !== "undefined") {
-      return map;
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      return this._defaultMap;
-    }
-  }
-  return null;
-};
-
-/**
- * Set markerIdKey
- * @param {int} markerIdKey
- */
-trackdirect.models.DashedTailPolyline.prototype.setMarkerIdKey = function (
-  markerIdKey
-) {
-  // Two names for the same thing...
-  this.markerIdKey = markerIdKey;
-  this.ownerMarkerIdKey = markerIdKey;
-  this._addInfoWindowListener(markerIdKey);
-};
-
-/**
- * Set related markerIdKey
- * @param {int} markerIdKey
- */
-trackdirect.models.DashedTailPolyline.prototype.setRelatedMarkerIdKey =
-  function (markerIdKey) {
-    this.relatedMarkerIdKey = markerIdKey;
-  };
-
-/**
- * Show polyline on default map
- */
-trackdirect.models.DashedTailPolyline.prototype.show = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-      this.setMap(this._defaultMap);
-    }
-  } else if (typeof L === "object") {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  }
-};
-
-/**
- * Hide polyline
- */
-trackdirect.models.DashedTailPolyline.prototype.hide = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  }
-};
-
-/**
- * Add packet to polyline
- * @param {trackdirect.models.Packet} packet
- */
-trackdirect.models.DashedTailPolyline.prototype.addPacket = function (packet) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var latLng = new google.maps.LatLng(
-      parseFloat(packet.latitude),
-      parseFloat(packet.longitude)
-    );
-    this.pushPathItem(latLng);
-  } else if (typeof L === "object") {
-    var latLng = new L.latLng(
-      parseFloat(packet.latitude),
-      parseFloat(packet.longitude)
-    );
-    this.addLatLng(latLng);
-  }
-};
-
-/**
- * Add infowindow listener
- * @param {int} markerIdKey
- */
-trackdirect.models.DashedTailPolyline.prototype._addInfoWindowListener =
-  function (markerIdKey) {
-    var me = this;
-    if (typeof google === "object" && typeof google.maps === "object") {
-      google.maps.event.addListener(this, "click", function (event) {
-        var marker = me._defaultMap.markerCollection.getMarker(markerIdKey);
-        me._defaultMap.openPolylineInfoWindow(marker, event.latLng);
-      });
-    } else if (typeof L === "object") {
-      this.on("click", function (event) {
-        var marker = me._defaultMap.markerCollection.getMarker(markerIdKey);
-        me._defaultMap.openPolylineInfoWindow(marker, event.latlng);
-      });
-    }
-  };
-
-/**
- * Get a suitable google polyline options object
- * @param {string} color
- * @return {object}
- */
-trackdirect.models.DashedTailPolyline.prototype._getGooglePolylineOptions =
-  function (color) {
-    var lineSymbol = {
-      path: "M 0,-1 0,1",
-      strokeOpacity: 0.4,
-      scale: 3,
-    };
-
-    var options = {
-      geodesic: false,
-      strokeOpacity: 0,
-      strokeColor: color,
-      icons: [
-        {
-          icon: lineSymbol,
-          offset: "20px",
-          repeat: "15px",
-        },
-      ],
-      map: null,
-      zIndex: 100,
-    };
-
-    return options;
-  };
-
-/**
- * Get a suitable leaflet polyline options object
- * @param {string} color
- * @return {object}
- */
-trackdirect.models.DashedTailPolyline.prototype._getLeafletPolylineOptions =
-  function (color) {
-    return {
-      opacity: 0.6,
-      weight: 3,
-      dashArray: "6,8",
-      lineJoin: "round",
-      color: color,
-    };
-  };
diff --git a/jslib/src/trackdirect/models/DirectionPolyline.js b/jslib/src/trackdirect/models/DirectionPolyline.js
deleted file mode 100755
index fb2af923ccb9391f9115d8e213c29bda99f6f484..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/DirectionPolyline.js
+++ /dev/null
@@ -1,245 +0,0 @@
-/**
- * Class trackdirect.models.DirectionPolyline
- * @see https://developers.google.com/maps/documentation/javascript/reference#Polyline
- * @param {trackdirect.models.Marker} marker
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.DirectionPolyline = function (marker, map) {
-  this._marker = marker;
-  this._defaultMap = map;
-
-  this.startTimestamp = this._marker.packet.timestamp;
-  this.speed = this._marker.packet.speed;
-  this.course = this._marker.packet.course;
-  this.stopped = false;
-  this.timerId = null;
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Polyline.call(this, this._getGooglePolylineOptions());
-  } else if (typeof L === "object") {
-    L.Polyline.call(this, {}, this._getLeafletPolylineOptions());
-    this.setLatLngs([
-      this._getFirstCoordinate(),
-      this._getExpectedCoordinate(),
-    ]);
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.DirectionPolyline.prototype = Object.create(
-    google.maps.Polyline.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.DirectionPolyline.prototype = Object.create(
-    L.Polyline.prototype
-  );
-}
-trackdirect.models.DirectionPolyline.prototype.constructor =
-  trackdirect.models.DirectionPolyline;
-
-/**
- * Set new path
- */
-trackdirect.models.DirectionPolyline.prototype.setPathItems = function (
-  pathItems
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.setPath(pathItems);
-  } else if (typeof L === "object") {
-    this.setLatLngs(pathItems);
-  }
-};
-
-/**
- * Get Polyline currently active Map
- * @return {google.maps.Map}
- */
-trackdirect.models.DirectionPolyline.prototype.getMap = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var map = google.maps.Polyline.prototype.getMap.call(this);
-    if (typeof map !== "undefined") {
-      return map;
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      return this._defaultMap;
-    }
-  }
-  return null;
-};
-
-/**
- * Show polyline on default map
- */
-trackdirect.models.DirectionPolyline.prototype.show = function () {
-  var timeInSeconds = this._getAgeInSeconds();
-
-  if (
-    this.stopped === false &&
-    timeInSeconds <= 900 &&
-    this._marker.packet.hasConfirmedMapId() &&
-    (this._defaultMap.state.isFilterMode ||
-      this._defaultMap.getZoom() >= trackdirect.settings.minZoomForMarkerTail)
-  ) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-        this.setMap(this._defaultMap);
-      }
-    } else if (typeof L === "object") {
-      if (!this._defaultMap.hasLayer(this)) {
-        this.addTo(this._defaultMap);
-      }
-    }
-
-    this.recalculate();
-  }
-};
-
-/**
- * Hide polyline
- */
-trackdirect.models.DirectionPolyline.prototype.hide = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  }
-};
-
-/**
- * Stop it and hide it
- */
-trackdirect.models.DirectionPolyline.prototype.stop = function () {
-  this.stopped = true;
-  this.hide();
-};
-
-/**
- * Get a suitable google polyline options object
- * @return {object}
- */
-trackdirect.models.DirectionPolyline.prototype._getGooglePolylineOptions =
-  function () {
-    var lineCoordinates = [
-      this._getFirstCoordinate(),
-      this._getExpectedCoordinate(),
-    ];
-
-    var lineSymbol = {
-      path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
-      strokeOpacity: 1,
-      scale: 0.65,
-    };
-
-    var options = {
-      path: lineCoordinates,
-      strokeOpacity: 0,
-      strokeColor: trackdirect.services.stationColorCalculator.getColor(
-        this._marker.packet
-      ),
-      map: null,
-      icons: [
-        {
-          icon: lineSymbol,
-          offset: "0px",
-          repeat: "8px",
-        },
-      ],
-    };
-    return options;
-  };
-
-/**
- * Get a suitable leaflet polyline options object
- * @return {object}
- */
-trackdirect.models.DirectionPolyline.prototype._getLeafletPolylineOptions =
-  function () {
-    return {
-      color: trackdirect.services.stationColorCalculator.getColor(
-        this._marker.packet
-      ),
-      weight: 4,
-      opacity: 0.7,
-
-      dashArray: "2,8",
-      lineJoin: "round",
-    };
-  };
-
-/**
- * Returns coordinates for the transmit polyline
- * @return {array}
- */
-trackdirect.models.DirectionPolyline.prototype._getFirstCoordinate =
-  function () {
-    return this._marker.packet.getLatLngLiteral();
-  };
-
-/**
- * Returns coordinates for the transmit polyline
- * @return {array}
- */
-trackdirect.models.DirectionPolyline.prototype._getExpectedCoordinate =
-  function () {
-    var timeInSeconds = this._getAgeInSeconds();
-    var distance = (this.speed / 3.6) * timeInSeconds;
-    var startPosition = this._getFirstCoordinate();
-    if (startPosition != null) {
-      return trackdirect.services.distanceCalculator.getPositionByDistance(
-        startPosition,
-        this.course,
-        distance
-      );
-    }
-    return null;
-  };
-
-/**
- * Animate direction polyline
- */
-trackdirect.models.DirectionPolyline.prototype.recalculate = function () {
-  var interval = 1000;
-  var me = this;
-  this.timerId = window.setInterval(function () {
-    if (!me._marker.isVisible() || me.stopped || !me._marker.showAsMarker) {
-      me.hide();
-      clearInterval(me.timerId);
-      return;
-    }
-    var timeInSeconds = me._getAgeInSeconds();
-    if (timeInSeconds > 900) {
-      // After 15 minutes we stop drawing directionPolyline
-      me.stop();
-      if (me.timerId !== null) {
-        clearInterval(me.timerId);
-      }
-    } else {
-      var firstPosition = me._getFirstCoordinate();
-      var newPosition = me._getExpectedCoordinate();
-      if (firstPosition != null && newPosition != null) {
-        me.setPathItems([firstPosition, newPosition]);
-      }
-    }
-  }, interval);
-};
-
-/**
- * Returnes the marker age in seconds
- */
-trackdirect.models.DirectionPolyline.prototype._getAgeInSeconds = function () {
-  var timeInSeconds = 0;
-  var startTimestamp = this._defaultMap.state.getClientTimestamp(
-    this.startTimestamp
-  );
-
-  if (startTimestamp < Date.now() / 1000) {
-    timeInSeconds = Date.now() / 1000 - startTimestamp;
-  }
-
-  return timeInSeconds;
-};
diff --git a/jslib/src/trackdirect/models/HeatMap.js b/jslib/src/trackdirect/models/HeatMap.js
deleted file mode 100755
index 25d7c5373a2b1a2db88651308b96f0ab5e8ad226..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/HeatMap.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- * Class trackdirect.models.HeatMap
- * @see https://developers.google.com/maps/documentation/javascript/reference#ImageMapType
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.HeatMap = function (map) {
-  this._defaultMap = map;
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.ImageMapType.call(this, this._getGoogleMapOptions());
-  } else if (typeof L === "object") {
-    L.TileLayer.call(this, this._getUrlTemplate(), this._getLeafletOptions());
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.HeatMap.prototype = Object.create(
-    google.maps.ImageMapType.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.HeatMap.prototype = Object.create(L.TileLayer.prototype);
-}
-trackdirect.models.HeatMap.prototype.constructor = trackdirect.models.HeatMap;
-
-/**
- * Get a suitable leaflet heatmap options object
- * @return {object}
- */
-trackdirect.models.HeatMap.prototype._getLeafletOptions = function () {
-  var options = {
-    errorTileUrl: trackdirect.settings.baseUrl + "/heatmaps/transparent.png",
-    tileSize: 256,
-    maxZoom: 9,
-    minZoom: 0,
-  };
-  return options;
-};
-
-/**
- * Get a suitable google heatmap options object
- * @return {object}
- */
-trackdirect.models.HeatMap.prototype._getGoogleMapOptions = function () {
-  var me = this;
-  var options = {
-    getTileUrl: function (coord, zoom) {
-      if (zoom > trackdirect.settings.minZoomForMarkers - 1) {
-        // It should be possible to return null here, but chrome tries to fetch www.website.com/null
-        return trackdirect.settings.baseUrl + "/heatmaps/transparent.png";
-      }
-
-      var normalizedCoord = me._getNormalizedCoord(coord, zoom);
-      if (!normalizedCoord) {
-        // It should be possible to return null here, but chrome tries to fetch www.website.com/null
-        return trackdirect.settings.baseUrl + "/heatmaps/transparent.png";
-      }
-
-      var xString = String(normalizedCoord.x);
-      var yString = String(normalizedCoord.y);
-
-      return me
-        ._getUrlTemplate()
-        .replace("{z}", zoom)
-        .replace("{y}", yString)
-        .replace("{x}", xString);
-    },
-    tileSize: new google.maps.Size(256, 256),
-    maxZoom: 9,
-    minZoom: 0,
-    radius: 1738000,
-    name: "APRSHEAT",
-  };
-  return options;
-};
-
-/**
- * Get tile url
- * @return {object}
- */
-trackdirect.models.HeatMap.prototype._getUrlTemplate = function () {
-  return (
-    trackdirect.settings.baseUrl +
-    "/heatmaps/latest-heatmap.{z}.{y}.{x}.png?version=" +
-    this._getHeatMapVersion()
-  );
-};
-
-/**
- * Returns the heat map version
- * (This method is just used to force update of heatmap at least once every day)
- * @return String
- */
-trackdirect.models.HeatMap.prototype._getHeatMapVersion = function () {
-  var today = new Date();
-  var dd = today.getDate();
-  var mm = today.getMonth() + 1; //January is 0!
-  var yyyy = today.getFullYear();
-  var hh = today.getHours();
-
-  if (dd < 10) {
-    dd = "0" + dd;
-  }
-
-  if (mm < 10) {
-    mm = "0" + mm;
-  }
-
-  return yyyy + "-" + mm + "-" + dd + "-" + hh;
-};
-
-/**
- * get normalized coords
- * Normalizes the coords that tiles repeat across the x axis (horizontally)
- * like the standard Google map tiles.
- * @param {object} coord
- * @param {int} zoom
- * @return {object}
- */
-trackdirect.models.HeatMap.prototype._getNormalizedCoord = function (
-  coord,
-  zoom
-) {
-  var y = coord.y;
-  var x = coord.x;
-
-  // tile range in one direction range is dependent on zoom level
-  // 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc
-  var tileRange = 1 << zoom;
-
-  // don't repeat across y-axis (vertically)
-  if (y < 0 || y >= tileRange) {
-    return null;
-  }
-
-  // repeat across x-axis
-  if (x < 0 || x >= tileRange) {
-    x = ((x % tileRange) + tileRange) % tileRange;
-  }
-
-  return { x: x, y: y };
-};
diff --git a/jslib/src/trackdirect/models/InfoWindow.js b/jslib/src/trackdirect/models/InfoWindow.js
deleted file mode 100755
index 1ba0d47c862216642d7ec54040836bf6f6a8dd25..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/InfoWindow.js
+++ /dev/null
@@ -1,1757 +0,0 @@
-/**
- * Class trackdirect.models.InfoWindow
- * @see https://developers.google.com/maps/documentation/javascript/reference#InfoWindow
- * @param {trackdirect.models.Marker} marker
- * @param {trackdirect.models.Map} map
- * @param {boolean} disableAutoPan
- */
-trackdirect.models.InfoWindow = function (marker, map, disableAutoPan) {
-  disableAutoPan =
-    typeof disableAutoPan !== "undefined" ? disableAutoPan : true;
-  this._marker = marker;
-  this._defaultMap = map;
-  this._polyline = null;
-  this._tdEventListeners = {};
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.InfoWindow.call(this, {
-      disableAutoPan: disableAutoPan,
-    });
-  } else if (typeof L === "object") {
-    var yOffset = 2;
-    if (!marker.isDotMarker()) {
-      yOffset = -5;
-    }
-    L.Popup.call(this, {
-      autoPan: !disableAutoPan,
-      offset: [0, yOffset],
-      maxWidth: 440,
-      className: "leaflet-infowindow-content",
-    });
-  }
-
-  // Handle close click
-  var me = this;
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.event.addListener(this, "closeclick", function () {
-      me._hideRelatedMarkerTail();
-    });
-  } else if (typeof L === "object") {
-    this.on("popupclose", function () {
-      me._hideRelatedMarkerTail();
-    });
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.InfoWindow.prototype = Object.create(
-    google.maps.InfoWindow.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.InfoWindow.prototype = Object.create(L.Popup.prototype);
-}
-trackdirect.models.InfoWindow.prototype.constructor =
-  trackdirect.models.InfoWindow;
-
-/**
- * set new info window marker
- * @param {trackdirect.models.Marker} marker
- */
-trackdirect.models.InfoWindow.prototype.setMarker = function (marker) {
-  this._marker = marker;
-};
-
-/**
- * get info window marker
- * @return trackdirect.models.Marker
- */
-trackdirect.models.InfoWindow.prototype.getMarker = function () {
-  return this._marker;
-};
-
-/**
- * get info window marker polyline
- * @return trackdirect.models.Marker
- */
-trackdirect.models.InfoWindow.prototype.getPolyline = function () {
-  return this._polyline;
-};
-
-/**
- * Is info window open
- */
-trackdirect.models.InfoWindow.prototype.isInfoWindowOpen = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this.getMap() !== null) {
-      return true;
-    }
-  } else if (typeof L === "object" && typeof windyInit === "function") {
-    return this._defaultMap.hasLayer(this);
-  } else if (typeof L === "object") {
-    return this.isOpen();
-  }
-
-  return false;
-};
-
-/**
- * show info window
- * @param {boolean} compactVersion
- * @param {LatLngLiteral} position
- */
-trackdirect.models.InfoWindow.prototype.show = function (
-  compactVersion,
-  position
-) {
-  compactVersion =
-    typeof compactVersion !== "undefined" ? compactVersion : false;
-  position = typeof position !== "undefined" ? position : null;
-  this._create(compactVersion);
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (position !== null) {
-      this.setPosition(position);
-      this.open(this._defaultMap);
-    } else {
-      this.open(this._defaultMap, this._marker);
-    }
-
-    this.addListener("domready", function () {
-      this._addPhgLinkListeners();
-      this._addRngLinkListeners();
-    });
-  } else if (typeof L === "object") {
-    if (this.isOpen()) {
-      this._addPhgLinkListeners();
-      this._addRngLinkListeners();
-    } else {
-      this.on("add", function () {
-        this._addPhgLinkListeners();
-        this._addRngLinkListeners();
-      });
-    }
-
-    if (position !== null) {
-      this.setLatLng(position);
-      this.openOn(this._defaultMap);
-    } else {
-      this.setLatLng(this._marker.packet.getLatLngLiteral());
-      this.openOn(this._defaultMap);
-    }
-  }
-
-  // Show tail related to station related to this info-window
-  if (this._defaultMap.getZoom() < trackdirect.settings.minZoomForMarkerTail) {
-    if (this._marker.overwrite) {
-      this._emitTdEventListeners(
-        "station-tail-needed",
-        this._marker.packet.station_id
-      );
-    }
-    this._marker.showMarkerTail(true);
-  }
-};
-
-/**
- * hide info window
- */
-trackdirect.models.InfoWindow.prototype.hide = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.close();
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    this._defaultMap.removeLayer(this);
-  }
-
-  this._hideRelatedMarkerTail();
-
-  if (
-    this._defaultMap.state.openInfoWindow !== null &&
-    this._defaultMap.state.openInfoWindow === this
-  ) {
-    this._defaultMap.state.openInfoWindow = null;
-  }
-};
-
-/**
- * Add listener to events
- * @param {string} event
- * @param {string} handler
- */
-(trackdirect.models.InfoWindow.prototype.addTdListener = function (
-  event,
-  handler
-) {
-  if (!(event in this._tdEventListeners)) {
-    this._tdEventListeners[event] = [];
-  }
-  this._tdEventListeners[event].push(handler);
-}),
-  /**
-   * Emit all event listeners for a specified event
-   * @param {string} event
-   * @param {object} arg
-   */
-  (trackdirect.models.InfoWindow.prototype._emitTdEventListeners = function (
-    event,
-    arg
-  ) {
-    if (event in this._tdEventListeners) {
-      for (var i = 0; i < this._tdEventListeners[event].length; i++) {
-        this._tdEventListeners[event][i](arg);
-      }
-    }
-  });
-
-/**
- * Create marker info window
- * @param {boolean} compactVersion
- */
-trackdirect.models.InfoWindow.prototype._create = function (compactVersion) {
-  if (compactVersion) {
-    var mainDiv = this._getCompactMainDiv();
-    var menuwrapper = this._getMenuDiv(false);
-
-    this._polyline = this._defaultMap.markerCollection.getMarkerPolyline(
-      this._marker.markerIdKey
-    );
-  } else {
-    var mainDiv = this._getMainDiv();
-    if (!trackdirect.isMobile) {
-      mainDiv.append(this._getIconDiv());
-    }
-
-    mainDiv.append(this._getCompletePacketDiv());
-    var menuwrapper = this._getMenuDiv(true);
-  }
-
-  mainDiv.append(menuwrapper);
-  var wrapperDiv = $(document.createElement("div"));
-  wrapperDiv.append(mainDiv);
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.setContent(wrapperDiv.html());
-  } else if (typeof L === "object") {
-    this.setContent(wrapperDiv.html());
-  }
-};
-
-/**
- * Hide tail for marker related to the current open info-window
- */
-trackdirect.models.InfoWindow.prototype._hideRelatedMarkerTail = function () {
-  if (this._polyline !== null) {
-    if (
-      !this._defaultMap.state.isFilterMode &&
-      this._defaultMap.getZoom() < trackdirect.settings.minZoomForMarkerTail
-    ) {
-      var markerIdKey = this._polyline.markerIdKey;
-      if (this._defaultMap.markerCollection.isExistingMarker(markerIdKey)) {
-        var stationId =
-          this._defaultMap.markerCollection.getMarker(markerIdKey).packet
-            .station_id;
-        var stationLatestMarker =
-          this._defaultMap.markerCollection.getStationLatestMarker(stationId);
-        if (stationLatestMarker !== null) {
-          stationLatestMarker.hideMarkerTail();
-        }
-      }
-    }
-  } else if (this._marker !== null) {
-    if (
-      !this._defaultMap.state.isFilterMode &&
-      this._defaultMap.getZoom() < trackdirect.settings.minZoomForMarkerTail
-    ) {
-      this._marker.hideMarkerTail();
-    }
-  }
-};
-
-/**
- * Get info window main div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMainDiv = function () {
-  var mainDiv = $(document.createElement("div"));
-  mainDiv.css("font-family", "Verdana,Arial,sans-serif");
-  if (!trackdirect.isMobile) {
-    mainDiv.css("font-size", "11px");
-  } else {
-    mainDiv.css("font-size", "10px");
-  }
-  mainDiv.css("line-height", "1.42857143");
-  mainDiv.css("color", "#333");
-  mainDiv.css("text-align", "left");
-  return mainDiv;
-};
-
-/**
- * Get info window main div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getIconDiv = function () {
-  var iconUrl64 = trackdirect.services.symbolPathFinder.getFilePath(
-    this._marker.packet.symbol_table,
-    this._marker.packet.symbol,
-    null,
-    null,
-    null,
-    64,
-    64
-  );
-  var iconImg = $(document.createElement("img"));
-  iconImg.css("width", "64px");
-  iconImg.css("height", "64px");
-  iconImg.attr("src", iconUrl64);
-  iconImg.attr("alt", ""); // Set the icon description
-  iconImg.attr("title", ""); // Set the icon description
-
-  var leftIconDiv = $(document.createElement("div"));
-  leftIconDiv.css("display", "inline-block");
-  leftIconDiv.css("vertical-align", "top");
-  leftIconDiv.css("padding-right", "15px");
-  leftIconDiv.css("padding-bottom", "5px");
-  leftIconDiv.append(iconImg);
-  return leftIconDiv;
-};
-
-/**
- * Get info window packet div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getPacketDiv = function () {
-  var packetDiv = $(document.createElement("div"));
-  packetDiv.css("display", "inline-block");
-  packetDiv.css("vertical-align", "top");
-  packetDiv.css("max-width", "350px");
-  return packetDiv;
-};
-
-/**
- * Get info window name div icon
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getNameIconDiv = function () {
-  var iconUrl24 = trackdirect.services.symbolPathFinder.getFilePath(
-    this._marker.packet.symbol_table,
-    this._marker.packet.symbol,
-    null,
-    null,
-    null,
-    24,
-    24
-  );
-  var iconImg = $(document.createElement("img"));
-  iconImg.css("width", "24px");
-  iconImg.css("height", "24px");
-  iconImg.css("vertical-align", "middle");
-  iconImg.attr("src", iconUrl24);
-  iconImg.attr("alt", "symbol");
-  iconImg.attr("title", ""); // Set the icon description?
-  return iconImg;
-};
-
-/**
- * Get info window name link element
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getNameLink = function () {
-  var nameLink = $(document.createElement("a"));
-  nameLink.css("color", "#337ab7");
-  if (trackdirect.isMobile) {
-    nameLink.css("vertical-align", "-2px");
-  }
-
-  nameLink.attr("href", "");
-  nameLink.attr(
-    "onclick",
-    "trackdirect.openStationInformationDialog(" +
-      this._marker.packet.station_id +
-      "); return false;"
-  );
-
-  nameLink.html(escapeHtml(this._marker.packet.station_name));
-  return nameLink;
-};
-
-/**
- * Get info window sender name link element
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getSenderNameLink = function () {
-  var nameLink = $(document.createElement("span"));
-  if (trackdirect.isMobile) {
-    nameLink.css("vertical-align", "-2px");
-  }
-
-  nameLink.html(escapeHtml(this._marker.packet.sender_name));
-  return nameLink;
-};
-
-/**
- * Get info window name div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getNameDiv = function () {
-  var nameDiv = $(document.createElement("div"));
-  nameDiv.css("clear", "both");
-  nameDiv.css("font-size", "12px");
-  nameDiv.css("font-weight", "bold");
-  if (trackdirect.isMobile) {
-    nameDiv.append(this._getNameIconDiv());
-    nameDiv.append("&nbsp;");
-    nameDiv.append("&nbsp;");
-  }
-  nameDiv.append(this._getNameLink());
-  if (this._marker.packet.getOgnRegistration() != null) {
-    var name = escapeHtml(this._marker.packet.getOgnRegistration());
-    if (this._marker.packet.getOgnCN() !== null) {
-      name += " [" + escapeHtml(this._marker.packet.getOgnCN()) + "]";
-    }
-    nameDiv.append(", ");
-    nameDiv.append(name);
-  }
-
-  if (this._marker.packet.sender_name != this._marker.packet.station_name) {
-    nameDiv.append("&nbsp;(");
-    nameDiv.append(this._getSenderNameLink());
-    nameDiv.append(")");
-  }
-  return nameDiv;
-};
-
-/**
- * Get info window packet div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getCompletePacketDiv = function () {
-  var packetDiv = this._getPacketDiv();
-  packetDiv.append(this._getNameDiv());
-  packetDiv.append(this._getPacketTimeDiv());
-  if (this._marker.packet.timestamp > 0) {
-    if ($(window).height() >= 300) {
-      packetDiv.append(this._getPacketPathDiv());
-    }
-    var phgRange = this._marker.packet.getPHGRange();
-    var rngRange = this._marker.packet.getRNGRange();
-    if (phgRange !== null || rngRange !== null) {
-      packetDiv.append(this._getSpaceDiv());
-      packetDiv.append(this._getPhgDiv(phgRange));
-      packetDiv.append(this._getRngDiv(rngRange));
-    }
-    if ($(window).height() >= 300) {
-      var transmitDistance = this._getTransmitDistance(this._marker.packet);
-      var tailDistance = this._getTailDistance(
-        this._defaultMap.markerCollection.getMarkerMasterMarkerKeyId(
-          this._marker.markerIdKey
-        )
-      );
-      if (
-        (transmitDistance !== null &&
-          Math.round(transmitDistance / 100) != 0) ||
-        (tailDistance !== null && Math.round(tailDistance) > 0)
-      ) {
-        packetDiv.append(this._getSpaceDiv());
-        packetDiv.append(this._getTransmitDistanceDiv(transmitDistance));
-        packetDiv.append(this._getTailDistanceDiv(tailDistance));
-      }
-    }
-    if (
-      this._marker.packet.speed !== null ||
-      this._marker.packet.course !== null ||
-      this._marker.packet.altitude !== null
-    ) {
-      packetDiv.append(this._getSpaceDiv());
-      packetDiv.append(this._getPacketSpeedAltitudeCourseDiv());
-    }
-    if (
-      typeof this._marker.packet.weather !== "undefined" &&
-      this._marker.packet.weather !== null
-    ) {
-      packetDiv.append(this._getSpaceDiv());
-      packetDiv.append(this._getWeatherDiv());
-    }
-    if (
-      typeof this._marker.packet.latest_telemetry_packet_timestamp !==
-        "undefined" &&
-      this._marker.packet.latest_telemetry_packet_timestamp !== null
-    ) {
-      packetDiv.append(this._getSpaceDiv());
-      packetDiv.append(this._getTelemetryDiv());
-    }
-
-    var commentDiv = this._getPacketCommentDiv();
-    if (commentDiv != null) {
-      packetDiv.append(this._getSpaceDiv());
-      packetDiv.append(commentDiv);
-    }
-  }
-  return packetDiv;
-};
-
-/**
- * Get info window packet time div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getPacketTimeDiv = function () {
-  if (this._marker.packet.timestamp == 0) {
-    dateString =
-      '<span style="color: grey;">No known packet for specified limits.</span>';
-  } else {
-    var date = new Date(this._marker.packet.timestamp * 1000);
-    var dateString = moment(date).format(
-      trackdirect.settings.dateFormatNoTimeZone
-    );
-    if (
-      this._marker.packet.timestamp > this._marker.packet.position_timestamp &&
-      !trackdirect.isMobile
-    ) {
-      var positionDate = new Date(
-        this._marker.packet.position_timestamp * 1000
-      );
-      dateString =
-        moment(positionDate).format(trackdirect.settings.dateFormatNoTimeZone) +
-        " - " +
-        moment(date).format(trackdirect.settings.dateFormatNoTimeZone);
-    }
-    if (
-      this._defaultMap.state.endTimeTravelTimestamp !== null &&
-      this._marker.packet.map_id == 12
-    ) {
-      dateString +=
-        '<br/><span style="color: grey;">(exact time for this is not known)</span>';
-    }
-  }
-  var timeDiv = $(document.createElement("div"));
-  timeDiv.css("clear", "both");
-  timeDiv.html(dateString);
-  return timeDiv;
-};
-
-/**
- * Get info window packet path div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getPacketPathDiv = function () {
-  var rawPath = this._marker.packet.getLinkifiedRawPath(); // Html allready escaped
-  if (rawPath !== null) {
-    var rawPathDiv = $(document.createElement("div"));
-    rawPathDiv.css("clear", "both");
-    rawPathDiv.html("[" + rawPath + "]");
-    return rawPathDiv;
-  }
-  return null;
-};
-
-/**
- * Get info window space div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getSpaceDiv = function () {
-  var spaceDiv = $(document.createElement("div"));
-  spaceDiv.css("clear", "both");
-  spaceDiv.css("line-height", "4px");
-  spaceDiv.html("&nbsp;");
-  return spaceDiv;
-};
-
-/**
- * Get info window phg div
- * @param {float} phgRange
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getPhgDiv = function (phgRange) {
-  if (phgRange !== null) {
-    if (this._defaultMap.state.useImperialUnit) {
-      var phgRange =
-        Math.round(
-          trackdirect.services.imperialConverter.convertKilometerToMile(
-            phgRange / 1000
-          ) * 10
-        ) / 10; // converted to miles
-      var phgRangeUnit = "miles";
-    } else {
-      var phgRange = Math.round(phgRange / 10) / 100; // converted to km
-      var phgRangeUnit = "km";
-    }
-    var phgDiv = $(document.createElement("div"));
-    phgDiv.attr(
-      "id",
-      "phglinks-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id
-    );
-    var halfPhgLink = $(
-      "<a style='color: #337ab7;' id='half-phg-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id +
-        "' href='#'>Half</a>"
-    );
-    var fullPhgLink = $(
-      "<a style='color: #337ab7;' id='full-phg-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id +
-        "' href='#'>Full</a>"
-    );
-    var nonePhgLink = $(
-      "<a style='color: #337ab7;' id='none-phg-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id +
-        "' href='#'>None</a>"
-    );
-    phgDiv.css("clear", "both");
-    phgDiv.css("display", "none");
-    phgDiv.css("color", "#440B2A");
-    phgDiv.append("PHG calculated range: " + phgRange + " " + phgRangeUnit);
-
-    if (typeof L === "object" && L.version <= "0.7.7") {
-      // Skip PHG links for older Leaflet version
-      return phgDiv;
-    }
-
-    if (phgRange > 0) {
-      phgDiv.append("<br/>");
-      phgDiv.append("PHG circle: ");
-      phgDiv.append(fullPhgLink);
-      phgDiv.append('<span style="color:#000"> - </span>');
-      phgDiv.append(halfPhgLink);
-      phgDiv.append('<span style="color:#000"> - </span>');
-      phgDiv.append(nonePhgLink);
-    }
-    return phgDiv;
-  }
-  return null;
-};
-
-/**
- * Get info window rng div
- * @param {float} rngRange
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getRngDiv = function (rngRange) {
-  if (rngRange !== null) {
-    if (this._defaultMap.state.useImperialUnit) {
-      var rngRange =
-        Math.round(
-          trackdirect.services.imperialConverter.convertKilometerToMile(
-            rngRange / 1000
-          ) * 10
-        ) / 10; // converted to miles
-      var rngRangeUnit = "miles";
-    } else {
-      var rngRange = Math.round(rngRange * 100) / 100; // converted to km
-      var rngRangeUnit = "km";
-    }
-    var rngDiv = $(document.createElement("div"));
-    rngDiv.attr(
-      "id",
-      "rnglinks-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id
-    );
-    var halfRngLink = $(
-      "<a style='color: #337ab7;' id='half-rng-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id +
-        "' href='#'>Half</a>"
-    );
-    var fullRngLink = $(
-      "<a style='color: #337ab7;' id='full-rng-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id +
-        "' href='#'>Full</a>"
-    );
-    var noneRngLink = $(
-      "<a style='color: #337ab7;' id='none-rng-" +
-        this._marker.packet.station_id +
-        "-" +
-        this._marker.packet.id +
-        "' href='#'>None</a>"
-    );
-    rngDiv.css("clear", "both");
-    rngDiv.css("display", "none");
-    rngDiv.css("color", "#440B2A");
-    rngDiv.append("RNG precalculated range: " + rngRange + " " + rngRangeUnit);
-
-    if (typeof L === "object" && L.version <= "0.7.7") {
-      // Skip RNG links for older Leaflet version
-      return rngDiv;
-    }
-
-    if (rngRange > 0) {
-      rngDiv.append("<br/>");
-      rngDiv.append("RNG circle: ");
-      rngDiv.append(fullRngLink);
-      rngDiv.append('<span style="color:#000"> - </span>');
-      rngDiv.append(halfRngLink);
-      rngDiv.append('<span style="color:#000"> - </span>');
-      rngDiv.append(noneRngLink);
-    }
-    return rngDiv;
-  }
-  return null;
-};
-
-/**
- * Get info window transmit distance div
- * @param {float} transmitDistance
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getTransmitDistanceDiv = function (
-  transmitDistance
-) {
-  if (transmitDistance !== null && Math.round(transmitDistance / 100) != 0) {
-    var transmitDistanceDiv = $(document.createElement("div"));
-    transmitDistanceDiv.css("clear", "both");
-    transmitDistanceDiv.css("color", "#273c20");
-    if (this._defaultMap.state.useImperialUnit) {
-      transmitDistance =
-        Math.round(
-          trackdirect.services.imperialConverter.convertKilometerToMile(
-            transmitDistance / 1000
-          ) * 10
-        ) / 10;
-      transmitDistanceUnit = "miles";
-    } else {
-      transmitDistance = Math.round(transmitDistance / 100) / 10;
-      transmitDistanceUnit = "km";
-    }
-    transmitDistanceDiv.append(
-      '<span title="Transmit distance to receiving digipeater/igate">Transmit distance: ' +
-        transmitDistance +
-        " " +
-        transmitDistanceUnit +
-        "</span>"
-    );
-    return transmitDistanceDiv;
-  }
-  return null;
-};
-
-/**
- * Get info window tail distance div
- * @param {float} tailDistance
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getTailDistanceDiv = function (
-  tailDistance
-) {
-  if (tailDistance !== null && Math.round(tailDistance) > 0) {
-    var distanceDiv = $(document.createElement("div"));
-    distanceDiv.css("clear", "both");
-    distanceDiv.css("color", "#273c20");
-    if (tailDistance < 1000) {
-      if (this._defaultMap.state.useImperialUnit) {
-        tailDistance = Math.round(
-          trackdirect.services.imperialConverter.convertMeterToYard(
-            tailDistance
-          )
-        );
-        tailDistanceUnit = "yd";
-      } else {
-        tailDistance = Math.round(tailDistance);
-        tailDistanceUnit = "m";
-      }
-    } else {
-      if (this._defaultMap.state.useImperialUnit) {
-        tailDistance =
-          Math.round(
-            trackdirect.services.imperialConverter.convertKilometerToMile(
-              tailDistance / 1000
-            ) * 10
-          ) / 10;
-        tailDistanceUnit = "miles";
-      } else {
-        tailDistance = Math.round(tailDistance / 100) / 10;
-        tailDistanceUnit = "km";
-      }
-    }
-    distanceDiv.append(
-      '<span title="Current shown tail distance (depends on the time settings)">Current tail distance: ' +
-        tailDistance +
-        " " +
-        tailDistanceUnit +
-        "</span>"
-    );
-    return distanceDiv;
-  }
-  return null;
-};
-
-/**
- * Get info window packet speed altitude and course div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getPacketSpeedAltitudeCourseDiv =
-  function () {
-    if (
-      Math.round(this._marker.packet.speed) != 0 ||
-      Math.round(this._marker.packet.course) != 0 ||
-      Math.round(this._marker.packet.altitude) != 0
-    ) {
-      var speedDiv = $(document.createElement("div"));
-      speedDiv.css("clear", "both");
-      speedDiv.css("font-weight", "bold");
-
-      if (this._marker.packet.speed !== null) {
-        if (this._defaultMap.state.useImperialUnit) {
-          speedDiv.append(
-            Math.round(
-              trackdirect.services.imperialConverter.convertKilometerToMile(
-                this._marker.packet.speed
-              )
-            ) + " mph "
-          );
-        } else {
-          speedDiv.append(Math.round(this._marker.packet.speed) + " km/h ");
-        }
-      }
-
-      if (this._marker.packet.course !== null) {
-        speedDiv.append(Math.round(this._marker.packet.course) + "&deg; ");
-      }
-
-      if (this._marker.packet.altitude !== null) {
-        if (this._defaultMap.state.useImperialUnit) {
-          speedDiv.append(
-            " alt " +
-              Math.round(
-                trackdirect.services.imperialConverter.convertMeterToFeet(
-                  this._marker.packet.altitude
-                )
-              ) +
-              " ft "
-          );
-        } else {
-          speedDiv.append(
-            " alt " + Math.round(this._marker.packet.altitude) + " m "
-          );
-        }
-      }
-
-      return speedDiv;
-    }
-    return null;
-  };
-
-/**
- * Get info window weather div rain string
- * @return {string}
- */
-trackdirect.models.InfoWindow.prototype._getWeatherDivRainString = function () {
-  if (isNumeric(this._marker.packet.weather.rain_1h)) {
-    if (this._defaultMap.state.useImperialUnit) {
-      var rain1h = "-";
-      if (isNumeric(this._marker.packet.weather.rain_1h)) {
-        rain1h =
-          Math.round(
-            trackdirect.services.imperialConverter.convertMmToInch(
-              this._marker.packet.weather.rain_1h
-            )
-          ) + "in";
-      }
-      var rain24h = "-";
-      if (isNumeric(this._marker.packet.weather.rain_24h)) {
-        rain24h =
-          Math.round(
-            trackdirect.services.imperialConverter.convertMmToInch(
-              this._marker.packet.weather.rain_24h
-            )
-          ) + "in";
-      }
-      var rainSinceMidnight = "-";
-      if (isNumeric(this._marker.packet.weather.rain_since_midnight)) {
-        rainSinceMidnight =
-          Math.round(
-            trackdirect.services.imperialConverter.convertMmToInch(
-              this._marker.packet.weather.rain_since_midnight
-            )
-          ) + "in";
-      }
-    } else {
-      var rain1h = "-";
-      if (isNumeric(this._marker.packet.weather.rain_1h)) {
-        rain1h = Math.round(this._marker.packet.weather.rain_1h) + "mm";
-      }
-      var rain24h = "-";
-      if (isNumeric(this._marker.packet.weather.rain_24h)) {
-        rain24h = Math.round(this._marker.packet.weather.rain_24h) + "mm";
-      }
-      var rainSinceMidnight = "-";
-      if (isNumeric(this._marker.packet.weather.rain_since_midnight)) {
-        rainSinceMidnight =
-          Math.round(this._marker.packet.weather.rain_since_midnight) + "mm";
-      }
-    }
-    return (
-      "<b>Rain</b> " +
-      rain1h +
-      "/" +
-      rain24h +
-      "/" +
-      rainSinceMidnight +
-      " (1h/24h/midnight)<br/>"
-    );
-  }
-  return null;
-};
-
-/**
- * Get info window weather div temperature string
- * @return {string}
- */
-trackdirect.models.InfoWindow.prototype._getWeatherDivTemperatureString =
-  function () {
-    if (isNumeric(this._marker.packet.weather.temperature)) {
-      if (this._defaultMap.state.useImperialUnit) {
-        return (
-          "<b>Temperature</b> " +
-          Math.round(
-            trackdirect.services.imperialConverter.convertCelciusToFahrenheit(
-              this._marker.packet.weather.temperature
-            )
-          ) +
-          "&deg;F" +
-          "<br/>"
-        );
-      } else {
-        return (
-          "<b>Temperature</b> " +
-          Math.round(this._marker.packet.weather.temperature) +
-          "&deg;C" +
-          "<br/>"
-        );
-      }
-    }
-    return null;
-  };
-
-/**
- * Get info window weather div humidity string
- * @return {string}
- */
-trackdirect.models.InfoWindow.prototype._getWeatherDivHumidityString =
-  function () {
-    if (isNumeric(this._marker.packet.weather.humidity)) {
-      return (
-        "<b>Humidity</b> " +
-        Math.round(this._marker.packet.weather.humidity) +
-        "%<br/>"
-      );
-    }
-    return null;
-  };
-
-/**
- * Get info window weather div pressure string
- * @return {string}
- */
-trackdirect.models.InfoWindow.prototype._getWeatherDivPressureString =
-  function () {
-    if (isNumeric(this._marker.packet.weather.pressure)) {
-      if (this._defaultMap.state.useImperialUnit) {
-        return (
-          "<b>Pressure</b> " +
-          Math.round(
-            trackdirect.services.imperialConverter.convertMbarToMmhg(
-              this._marker.packet.weather.pressure
-            )
-          ) +
-          " mmHg<br/>"
-        );
-      } else {
-        return (
-          "<b>Pressure</b> " +
-          Math.round(this._marker.packet.weather.pressure) +
-          " hPa<br/>"
-        );
-      }
-    }
-    return null;
-  };
-
-/**
- * Get info window weather div wind string
- * @return {string}
- */
-trackdirect.models.InfoWindow.prototype._getWeatherDivWindString = function () {
-  if (isNumeric(this._marker.packet.weather.wind_speed)) {
-    var windDir = "";
-    if (
-      typeof this._marker.packet.weather.wind_direction !== "undefined" &&
-      isNumeric(this._marker.packet.weather.wind_direction)
-    ) {
-      windDir =
-        this._marker.packet.weather.wind_direction.toString() + "&deg; ";
-    }
-
-    if (this._defaultMap.state.useImperialUnit) {
-      if (isNumeric(this._marker.packet.weather.wind_gust)) {
-        return (
-          "<b>Wind</b> " +
-          windDir +
-          Math.round(
-            trackdirect.services.imperialConverter.convertMpsToMph(
-              this._marker.packet.weather.wind_speed
-            ) * 10
-          ) /
-            10 +
-          " mph" +
-          " (" +
-          Math.round(
-            trackdirect.services.imperialConverter.convertMpsToMph(
-              this._marker.packet.weather.wind_gust
-            ) * 10
-          ) /
-            10 +
-          " mph)<br/>"
-        );
-      } else {
-        return (
-          "<b>Wind</b> " +
-          windDir +
-          Math.round(
-            trackdirect.services.imperialConverter.convertMpsToMph(
-              this._marker.packet.weather.wind_speed
-            ) * 10
-          ) /
-            10 +
-          " mph<br/>"
-        );
-      }
-    } else {
-      if (isNumeric(this._marker.packet.weather.wind_gust)) {
-        return (
-          "<b>Wind</b> " +
-          windDir +
-          Math.round(this._marker.packet.weather.wind_speed * 10) / 10 +
-          " m/s" +
-          " (" +
-          Math.round(this._marker.packet.weather.wind_gust * 10) / 10 +
-          " m/s)<br/>"
-        );
-      } else {
-        return (
-          "<b>Wind</b> " +
-          windDir +
-          Math.round(this._marker.packet.weather.wind_speed * 10) / 10 +
-          " m/s <br/>"
-        );
-      }
-    }
-  }
-  return null;
-};
-
-/**
- * Get info window weather div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getWeatherDiv = function () {
-  var weatherDiv = $(document.createElement("div"));
-  weatherDiv.css("clear", "both");
-  weatherDiv.css("color", "#227152");
-
-  var weatherDate = new Date(this._marker.packet.timestamp * 1000);
-  if (
-    typeof this._marker.packet.weather.timestamp !== "undefined" &&
-    this._marker.packet.weather.timestamp !== null
-  ) {
-    weatherDate = new Date(this._marker.packet.weather.timestamp * 1000);
-  }
-  weatherDateString = moment(weatherDate).format(
-    trackdirect.settings.dateFormatNoTimeZone
-  );
-  weatherDiv.append("<b>Latest Weather</b>  " + weatherDateString + "<br/>");
-
-  if (!trackdirect.isMobile && $(window).height() >= 300) {
-    weatherDiv.append(this._getWeatherDivTemperatureString());
-    weatherDiv.append(this._getWeatherDivHumidityString());
-    weatherDiv.append(this._getWeatherDivPressureString());
-    weatherDiv.append(this._getWeatherDivRainString());
-    weatherDiv.append(this._getWeatherDivWindString());
-  }
-  return weatherDiv;
-};
-
-/**
- * Get info window telemetry div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getTelemetryDiv = function () {
-  var telemetryDiv = $(document.createElement("div"));
-  telemetryDiv.css("clear", "both");
-  telemetryDiv.css("color", "#823030");
-
-  var telemetryDate = new Date(
-    this._marker.packet.latest_telemetry_packet_timestamp * 1000
-  );
-  telemetryDateString = moment(telemetryDate).format(
-    trackdirect.settings.dateFormatNoTimeZone
-  );
-  telemetryDiv.append("Latest Telemetry  " + telemetryDateString + "<br/>");
-
-  return telemetryDiv;
-};
-
-/**
- * Get info window comment div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getPacketCommentDiv = function () {
-  var comment = "";
-  var ognSummary = escapeHtml(this._marker.packet.getOgnSummary());
-  if (ognSummary != "") {
-    comment = ognSummary;
-  } else if (
-    typeof this._marker.packet.comment !== "undefined" &&
-    this._marker.packet.comment !== null
-  ) {
-    comment = Autolinker.link(escapeHtml(this._marker.packet.comment), {
-      newWindow: true,
-    });
-  }
-  if (comment == "") {
-    return null;
-  }
-  var commentDiv = $(document.createElement("div"));
-  commentDiv.css("clear", "both");
-  commentDiv.css("font-weight", "bold");
-  if (!trackdirect.isMobile) {
-    commentDiv.css("font-size", "11px");
-  } else {
-    commentDiv.css("font-size", "10px");
-  }
-  commentDiv.html(comment);
-  return commentDiv;
-};
-
-/**
- * Add info window PHG link listeners
- * @return none
- */
-trackdirect.models.InfoWindow.prototype._addPhgLinkListeners = function () {
-  var marker = this._marker;
-  $("#half-phg-" + marker.packet.station_id + "-" + marker.packet.id).click(
-    function (e) {
-      marker.showPHGCircle(true);
-      return false;
-    }
-  );
-
-  $("#full-phg-" + marker.packet.station_id + "-" + marker.packet.id).click(
-    function (e) {
-      marker.showPHGCircle(false);
-      return false;
-    }
-  );
-
-  $(
-    "#none-phg-" + this._marker.packet.station_id + "-" + marker.packet.id
-  ).click(function (e) {
-    marker.hidePHGCircle();
-    return false;
-  });
-
-  if (
-    $("#phglinks-" + marker.packet.station_id + "-" + marker.packet.id).length
-  ) {
-    $("#phglinks-" + marker.packet.station_id + "-" + marker.packet.id).show();
-  }
-};
-
-/**
- * Add info window RNG link listeners
- * @return none
- */
-trackdirect.models.InfoWindow.prototype._addRngLinkListeners = function () {
-  var marker = this._marker;
-  $("#half-rng-" + marker.packet.station_id + "-" + marker.packet.id).click(
-    function (e) {
-      marker.showRNGCircle(true);
-      return false;
-    }
-  );
-
-  $("#full-rng-" + marker.packet.station_id + "-" + marker.packet.id).click(
-    function (e) {
-      marker.showRNGCircle(false);
-      return false;
-    }
-  );
-
-  $("#none-rng-" + marker.packet.station_id + "-" + marker.packet.id).click(
-    function (e) {
-      marker.hideRNGCircle();
-      return false;
-    }
-  );
-
-  if (
-    $("#rnglinks-" + marker.packet.station_id + "-" + marker.packet.id).length
-  ) {
-    $("#rnglinks-" + marker.packet.station_id + "-" + marker.packet.id).show();
-  }
-};
-
-/**
- * Returns html element that contains the info window menu
- * @param {boolean} isInfoWindowOpen
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDiv = function (
-  isInfoWindowOpen
-) {
-  var menuWrapperDiv = this._getMenuDivWrapperDiv();
-
-  var menuDiv = this._getMenuDivMainDiv();
-  menuWrapperDiv.append(menuDiv);
-
-  var menuUl = this._getMenuDivUlDiv();
-  menuDiv.append(menuUl);
-
-  menuUl.append(this._getMenuDivTrackLink());
-  menuUl.append(this._getMenuDivFilterLink());
-  if (!trackdirect.isMobile) {
-    menuUl.append(this._getMenuDivCenterLink(isInfoWindowOpen));
-  }
-  menuUl.append(this._getMenuDivZoomLink(isInfoWindowOpen));
-  if (
-    !trackdirect.isEmbedded &&
-    !inIframe() &&
-    !this._marker.isMovingStation() &&
-    this._marker.packet.source_id != 2
-  ) {
-    menuUl.append(this._getMenuDivCoverageLink());
-  }
-  return menuWrapperDiv;
-};
-
-/**
- * Get the info window menu wrapper div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivWrapperDiv = function () {
-  var menuWrapperDiv = $(document.createElement("div"));
-  menuWrapperDiv.addClass("infowindow-menu-wrapper");
-  menuWrapperDiv.css("clear", "both");
-  menuWrapperDiv.css("width", "100%");
-  menuWrapperDiv.css("padding-top", "8px");
-  return menuWrapperDiv;
-};
-
-/**
- * Get the info window menu main div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivMainDiv = function () {
-  var menuDiv = $(document.createElement("div"));
-  menuDiv.addClass("infowindow-menu");
-  menuDiv.css("width", "100%");
-  menuDiv.css("border-top", "1px solid #cecece");
-  return menuDiv;
-};
-
-/**
- * Get the info window menu ul div
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivUlDiv = function () {
-  var menuUl = $(document.createElement("ul"));
-  menuUl.css("list-style-type", "none");
-  menuUl.css("list-style", "none");
-  menuUl.css("text-align", "center");
-  menuUl.css("margin", "0");
-  menuUl.css("padding", "0");
-  menuUl.css("display", "table");
-  return menuUl;
-};
-
-/**
- * Get the info window menu link CSS
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivLinkCss = function () {
-  var liLinkCss = {
-    "list-style": "none",
-    display: "table-cell",
-    "text-align": "center",
-    "padding-right": "10px",
-    width: "auto",
-  };
-  return liLinkCss;
-};
-
-/**
- * Get the info window menu track link
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivTrackLink = function () {
-  var trackLinkElementClass =
-    "trackStationLink" + this._marker.packet.station_id;
-  var menuLi = $(document.createElement("li"));
-  menuLi.css(this._getMenuDivLinkCss());
-  var menuLink = $(document.createElement("a"));
-  menuLink.css("color", "#337ab7");
-  menuLink.attr("href", "#");
-  menuLink.addClass(trackLinkElementClass);
-  menuLink.attr(
-    "onclick",
-    "trackdirect.handleTrackStationRequest(" +
-      this._marker.packet.station_id +
-      ', "' +
-      trackLinkElementClass +
-      '"); return false;'
-  );
-  if (
-    this._defaultMap.state.getTrackStationId() !== null &&
-    this._defaultMap.state.getTrackStationId() == this._marker.packet.station_id
-  ) {
-    menuLink.html("Untrack");
-  } else {
-    menuLink.html("Track");
-  }
-  menuLi.append(menuLink);
-  return menuLi;
-};
-
-/**
- * Get the info window menu filter link
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivFilterLink = function () {
-  var filterLinkElementClass =
-    "filterStationLink" + this._marker.packet.station_id;
-  var menuLi = $(document.createElement("li"));
-  menuLi.css(this._getMenuDivLinkCss());
-  var menuLink = $(document.createElement("a"));
-  menuLink.css("color", "#337ab7");
-  menuLink.addClass(filterLinkElementClass);
-  menuLink.attr(
-    "onclick",
-    "trackdirect.handleFilterStationRequest(" +
-      this._marker.packet.station_id +
-      ', "' +
-      filterLinkElementClass +
-      '"); return false;'
-  );
-  if (
-    this._defaultMap.state.filterStationIds.length > 0 &&
-    this._defaultMap.state.filterStationIds.indexOf(
-      this._marker.packet.station_id
-    ) > -1
-  ) {
-    menuLink.html("Unfilter");
-    var center = this._defaultMap.getCenterLiteral();
-    menuLink.attr(
-      "href",
-      "/center/" +
-        Number.parseFloat(center.lat).toFixed(5) +
-        "," +
-        Number.parseFloat(center.lng).toFixed(5) +
-        "/zoom/" +
-        this._defaultMap.getZoom()
-    );
-  } else {
-    menuLink.html("Filter");
-    menuLink.attr("href", "/sid/" + this._marker.packet.station_id);
-  }
-  menuLi.append(menuLink);
-  return menuLi;
-};
-
-/**
- * Get the info window menu coverage link
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivCoverageLink = function () {
-  var coverageLinkElementClass =
-    "stationCoverageLink" + this._marker.packet.station_id;
-  var menuLi = $(document.createElement("li"));
-  menuLi.css(this._getMenuDivLinkCss());
-  var menuLink = $(document.createElement("a"));
-  menuLink.css("color", "#337ab7");
-  menuLink.css("white-space", "nowrap");
-  menuLink.attr("href", "#");
-  menuLink.addClass(coverageLinkElementClass);
-  menuLink.attr(
-    "onclick",
-    "trackdirect.toggleStationCoverage(" +
-      this._marker.packet.station_id +
-      ', "' +
-      coverageLinkElementClass +
-      '"); return false;'
-  );
-
-  var coveragePolygon = this._defaultMap.markerCollection.getStationCoverage(
-    this._marker.packet.station_id
-  );
-  if (coveragePolygon !== null && coveragePolygon.isRequestedToBeVisible()) {
-    menuLink.html("Hide Coverage");
-  } else {
-    menuLink.html("Coverage");
-  }
-  menuLi.append(menuLink);
-  return menuLi;
-};
-
-/**
- * Get the info window menu center link
- * @param {boolean} isInfoWindowOpen
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivCenterLink = function (
-  isInfoWindowOpen
-) {
-  var menuLi = $(document.createElement("li"));
-  menuLi.css(this._getMenuDivLinkCss());
-  var menuLink = $(document.createElement("a"));
-  menuLink.css("color", "#337ab7");
-  if (isInfoWindowOpen) {
-    menuLink.attr(
-      "href",
-      "/center/" +
-        this._marker.packet.latitude.toFixed(5) +
-        "," +
-        this._marker.packet.longitude.toFixed(5) +
-        "/zoom/" +
-        this._defaultMap.getZoom()
-    );
-    menuLink.attr(
-      "onclick",
-      "trackdirect.setCenter(" +
-        this._marker.packet.latitude +
-        "," +
-        this._marker.packet.longitude +
-        "); return false;"
-    );
-    menuLink.html("Center");
-  } else {
-    menuLink.attr(
-      "href",
-      "/center/" +
-        this._marker.packet.latitude.toFixed(5) +
-        "," +
-        this._marker.packet.longitude.toFixed(5) +
-        "/zoom/" +
-        this._defaultMap.getZoom()
-    );
-    menuLink.attr(
-      "onclick",
-      "trackdirect.focusOnMarkerId(" +
-        this._marker.packet.marker_id +
-        "); return false;"
-    );
-    menuLink.html("Focus");
-  }
-  menuLi.append(menuLink);
-  return menuLi;
-};
-
-/**
- * Get the info window menu zoom link
- * @param {boolean} isInfoWindowOpen
- * @return {object}
- */
-trackdirect.models.InfoWindow.prototype._getMenuDivZoomLink = function (
-  isInfoWindowOpen
-) {
-  var menuLi = $(document.createElement("li"));
-  menuLi.css(this._getMenuDivLinkCss());
-  var menuLink = $(document.createElement("a"));
-  menuLink.css("color", "#337ab7");
-  if (isInfoWindowOpen) {
-    menuLink.attr(
-      "href",
-      "/center/" +
-        this._marker.packet.latitude.toFixed(5) +
-        "," +
-        this._marker.packet.longitude.toFixed(5) +
-        "/zoom/14"
-    );
-    menuLink.attr(
-      "onclick",
-      "trackdirect.setCenter(" +
-        this._marker.packet.latitude +
-        "," +
-        this._marker.packet.longitude +
-        ", 14); return false;"
-    );
-    menuLink.html("Zoom");
-  } else {
-    menuLink.attr(
-      "href",
-      "/center/" +
-        this._marker.packet.latitude.toFixed(5) +
-        "," +
-        this._marker.packet.longitude.toFixed(5) +
-        "/zoom/14"
-    );
-    menuLink.attr(
-      "onclick",
-      "trackdirect.focusOnMarkerId(" +
-        this._marker.packet.marker_id +
-        ", 14); return false;"
-    );
-    menuLink.html("Zoom");
-  }
-  menuLi.append(menuLink);
-  return menuLi;
-};
-
-/**
- * Create infowindow content (compact version))
- * @return string
- */
-trackdirect.models.InfoWindow.prototype._getCompactMainDiv = function () {
-  var packet = this._marker.packet;
-
-  // Init main div
-  var mainDiv = $(document.createElement("div"));
-  mainDiv.css("font-family", "Verdana,Arial,sans-serif");
-  if (!trackdirect.isMobile) {
-    mainDiv.css("font-size", "11px");
-  } else {
-    mainDiv.css("font-size", "10px");
-  }
-  mainDiv.css("line-height", "1.42857143");
-  mainDiv.css("color", "#333");
-  mainDiv.css("text-align", "left");
-
-  // Init polyline div
-  var polylineDiv = $(document.createElement("div"));
-  polylineDiv.css("float", "left");
-
-  // Name
-  var nameDiv = $(document.createElement("div"));
-  nameDiv.css("clear", "both");
-  nameDiv.css("font-size", "12px");
-  nameDiv.css("font-weight", "bold");
-
-  // Init img
-  var iconUrl24 = trackdirect.services.symbolPathFinder.getFilePath(
-    packet.symbol_table,
-    packet.symbol,
-    null,
-    null,
-    null,
-    24,
-    24
-  );
-  var iconImg = $(document.createElement("img"));
-  iconImg.css("vertical-align", "middle");
-  iconImg.css("width", "24px");
-  iconImg.css("height", "24px");
-  iconImg.attr("src", iconUrl24);
-  iconImg.attr("alt", ""); // Set the icon description
-  iconImg.attr("title", ""); // Set the icon description
-  nameDiv.append(iconImg);
-  nameDiv.append("&nbsp;");
-  nameDiv.append("&nbsp;");
-
-  var nameLink = $(document.createElement("a"));
-  nameLink.css("color", "#337ab7");
-  if (trackdirect.isMobile) {
-    nameLink.css("vertical-align", "-2px");
-  }
-
-  nameLink.attr("href", "");
-  nameLink.attr(
-    "onclick",
-    "trackdirect.openStationInformationDialog(" +
-      packet.station_id +
-      "); return false;"
-  );
-
-  nameLink.html(escapeHtml(packet.station_name));
-  nameDiv.append(nameLink);
-
-  if (packet.sender_name != packet.station_name) {
-    nameDiv.append("&nbsp;(");
-    var nameLink2 = $(document.createElement("span"));
-    if (trackdirect.isMobile) {
-      nameLink2.css("vertical-align", "-2px");
-    }
-
-    nameLink2.html(escapeHtml(packet.sender_name));
-    nameDiv.append(nameLink2);
-    nameDiv.append(")");
-  }
-  polylineDiv.append(nameDiv);
-
-  var tailDistance = this._getTailDistance(
-    this._defaultMap.markerCollection.getMarkerMasterMarkerKeyId(
-      this._marker.markerIdKey
-    )
-  );
-  if (tailDistance !== null && Math.round(tailDistance) > 0) {
-    var distanceDiv = $(document.createElement("div"));
-    distanceDiv.css("clear", "both");
-    distanceDiv.css("padding-top", "4px");
-    distanceDiv.append("Tail distance: ");
-    if (tailDistance < 1000) {
-      if (this._defaultMap.state.useImperialUnit) {
-        distanceDiv.append(
-          Math.round(
-            trackdirect.services.imperialConverter.convertMeterToYard(
-              tailDistance
-            )
-          ) + " yd "
-        );
-      } else {
-        distanceDiv.append(Math.round(tailDistance) + " m ");
-      }
-    } else {
-      if (this._defaultMap.state.useImperialUnit) {
-        distanceDiv.append(
-          Math.round(
-            trackdirect.services.imperialConverter.convertKilometerToMile(
-              tailDistance / 1000
-            ) * 10
-          ) /
-            10 +
-            " miles "
-        );
-      } else {
-        distanceDiv.append(Math.round(tailDistance / 100) / 10 + " km ");
-      }
-    }
-
-    polylineDiv.append(distanceDiv);
-  }
-
-  mainDiv.append(polylineDiv);
-  return mainDiv;
-};
-
-/**
- * Returns the tail distance in meters for specified marker
- * @param {int} markerIdKey
- * @return int
- */
-trackdirect.models.InfoWindow.prototype._getTailDistance = function (
-  markerIdKey
-) {
-  if (this._defaultMap.markerCollection.isExistingMarker(markerIdKey)) {
-    var marker = this._defaultMap.markerCollection.getMarker(markerIdKey);
-    if (
-      marker.packet.hasConfirmedMapId() &&
-      marker.packet.is_moving == 1 &&
-      marker.overwrite !== true
-    ) {
-      var distance = 0;
-      if (this._defaultMap.markerCollection.hasDotMarkers(markerIdKey)) {
-        var prevLatLng = null;
-        var dotMarkers =
-          this._defaultMap.markerCollection.getDotMarkers(markerIdKey);
-        for (var i = 0; i < dotMarkers.length; i++) {
-          var dotMarker = dotMarkers[i];
-          var latLng = dotMarker.packet.getLatLngLiteral();
-
-          if (prevLatLng !== null) {
-            distance += trackdirect.services.distanceCalculator.getDistance(
-              prevLatLng,
-              latLng
-            );
-          }
-          prevLatLng = latLng;
-        }
-
-        if (prevLatLng !== null) {
-          var latLng = marker.packet.getLatLngLiteral();
-          if (prevLatLng !== latLng) {
-            distance += trackdirect.services.distanceCalculator.getDistance(
-              prevLatLng,
-              latLng
-            );
-          }
-        }
-      }
-
-      var dashedPolyline =
-        this._defaultMap.markerCollection.getMarkerDashedPolyline(markerIdKey);
-      if (dashedPolyline !== null) {
-        // We are connected to a previous marker
-        if (dashedPolyline.getPathLength() == 2) {
-          distance += trackdirect.services.distanceCalculator.getDistance(
-            dashedPolyline.getPathItem(0),
-            dashedPolyline.getPathItem(1)
-          );
-
-          // Add previous markers distance
-          distance += this._getTailDistance(dashedPolyline.relatedMarkerIdKey);
-        }
-      }
-      return distance;
-    }
-  }
-  return null;
-};
-
-/**
- * Returns the transmit distance in meters for specified packet
- * @param {trackdirect.models.Packet} packet
- * @return int
- */
-trackdirect.models.InfoWindow.prototype._getTransmitDistance = function (
-  packet
-) {
-  if (
-    typeof packet.station_location_path !== "undefined" &&
-    packet.station_location_path !== null &&
-    packet.station_location_path.length >= 1
-  ) {
-    var relatedStationLatLng = {
-      lat: parseFloat(packet.station_location_path[0][0]),
-      lng: parseFloat(packet.station_location_path[0][1]),
-    };
-    var distance = trackdirect.services.distanceCalculator.getDistance(
-      packet.getLatLngLiteral(),
-      relatedStationLatLng
-    );
-    if (distance !== null) {
-      return distance;
-    }
-  }
-
-  if (
-    typeof packet.station_id_path !== "undefined" &&
-    packet.station_id_path !== null &&
-    packet.station_id_path.length >= 1
-  ) {
-    for (var i = 0; i < packet.station_id_path.length; i++) {
-      var relatedStationId = packet.station_id_path[i];
-      var relatedStationPacket =
-        this._defaultMap.markerCollection.getStationLatestPacket(
-          relatedStationId
-        );
-      if (relatedStationPacket !== null) {
-        // found first station!
-        break;
-      }
-    }
-
-    if (relatedStationPacket !== null) {
-      var relatedStationLatLng = {
-        lat: parseFloat(relatedStationPacket.latitude),
-        lng: parseFloat(relatedStationPacket.longitude),
-      };
-      var distance = trackdirect.services.distanceCalculator.getDistance(
-        packet.getLatLngLiteral(),
-        relatedStationLatLng
-      );
-      if (distance !== null) {
-        return distance;
-      }
-    }
-  }
-  return null;
-};
diff --git a/jslib/src/trackdirect/models/Label.js b/jslib/src/trackdirect/models/Label.js
deleted file mode 100755
index 31a6be4726295d4f843780b45f4347072f4f9dce..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/Label.js
+++ /dev/null
@@ -1,239 +0,0 @@
-if (typeof google === "object" && typeof google.maps === "object") {
-  /**
-   * Class trackdirect.models.Label inherit google.maps.OverlayView
-   * @see https://developers.google.com/maps/documentation/javascript/reference#OverlayView
-   * @param {array} options
-   * @param {trackdirect.models.Map} map
-   */
-  trackdirect.models.Label = function (options, map) {
-    this._defaultMap = map;
-    options.map = null;
-    this.setValues(options);
-    this.div_ = null;
-  };
-  trackdirect.models.Label.prototype = new google.maps.OverlayView();
-
-  /**
-   * show if it is not shown
-   */
-  trackdirect.models.Label.prototype.show = function () {
-    if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-      this.setMap(this._defaultMap);
-    }
-  };
-
-  /**
-   * hide if it is visible
-   */
-  trackdirect.models.Label.prototype.hide = function () {
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  };
-
-  /**
-   * Override onAdd
-   */
-  trackdirect.models.Label.prototype.onAdd = function () {
-    if (this.div_ === null) {
-      var jqSpan = $(document.createElement("span"));
-      jqSpan.css("color", "#101010");
-      jqSpan.css(
-        "text-shadow",
-        "1px 1px 1px #FFF, -1px -1px 1px #FFF, 1px -1px 1px #FFF, -1px 1px 1px #FFF, 1px 1px 1px #FFF"
-      );
-      jqSpan.css("position", "relative");
-      jqSpan.css("top", "10px");
-      jqSpan.css("white-space", "nowrap");
-      jqSpan.css("font-family", "Helvetica");
-      jqSpan.css("font-weight", "bold");
-      jqSpan.css("font-size", "10px");
-      jqSpan.css("padding", "0px");
-      jqSpan.css("z-index", "1000");
-      jqSpan.css("margin", "0");
-      jqSpan.css("line-height", "10px");
-      var span = (this.span_ = jqSpan[0]);
-      span.innerHTML = this.get("text").toString();
-
-      var div = (this.div_ = document.createElement("div"));
-      div.appendChild(span);
-      div.style.cssText = "position: absolute; display: none";
-    }
-
-    var pane = this.getPanes().overlayLayer;
-    pane.appendChild(this.div_);
-
-    // Ensures the label is redrawn if the text or position is changed.
-    var me = this;
-    this.listeners_ = [
-      google.maps.event.addListener(this, "position_changed", function () {
-        me.draw();
-      }),
-      google.maps.event.addListener(this, "text_changed", function () {
-        me.draw();
-      }),
-    ];
-  };
-
-  /**
-   * Override onRemove
-   */
-  trackdirect.models.Label.prototype.onRemove = function () {
-    if (this.div_ !== null && this.div_.parentNode !== null) {
-      this.div_.parentNode.removeChild(this.div_);
-
-      // Label is removed from the map, stop updating its position/text.
-      for (var i = 0, I = this.listeners_.length; i < I; ++i) {
-        google.maps.event.removeListener(this.listeners_[i]);
-      }
-    }
-  };
-
-  /**
-   * Draw the label
-   */
-  trackdirect.models.Label.prototype.draw = function () {
-    var projection = this.getProjection();
-    if (typeof this.get("position").lat === "function") {
-      var latLng = new google.maps.LatLng({
-        lat: this.get("position").lat(),
-        lng: this.get("position").lng(),
-      });
-    } else {
-      var latLng = new google.maps.LatLng({
-        lat: this.get("position").lat,
-        lng: this.get("position").lng,
-      });
-    }
-    var position = projection.fromLatLngToDivPixel(latLng);
-
-    var div = this.div_;
-    var span = this.span_;
-    span.innerHTML = this.get("text").toString();
-    div.style.left = position.x + "px";
-    div.style.top = position.y + "px";
-
-    div.style.display = "block";
-  };
-} else if (typeof L === "object" && typeof L.Tooltip !== "undefined") {
-  /**
-   * Class trackdirect.models.Label
-   * @param {array} options
-   * @param {trackdirect.models.Map} map
-   */
-  trackdirect.models.Label = function (options, map) {
-    this._defaultMap = map;
-
-    // Call the parent constructor
-    L.Tooltip.call(this, this._getBasicOptions(options));
-
-    this.setContent(options.text);
-    if (
-      typeof options.position !== "undefined" &&
-      typeof options.position.lat !== "undefined" &&
-      typeof options.position.lng !== "undefined"
-    ) {
-      this.setLatLng(new L.LatLng(options.position.lat, options.position.lng));
-    }
-  };
-  trackdirect.models.Label.prototype = new L.Tooltip();
-
-  /**
-   * show if it is not shown
-   */
-  trackdirect.models.Label.prototype.show = function () {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  };
-
-  /**
-   * hide if it is visible
-   */
-  trackdirect.models.Label.prototype.hide = function () {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  };
-
-  /**
-   * Get a suitable leaflet options object
-   * @return {object}
-   */
-  trackdirect.models.Label.prototype._getBasicOptions = function (options) {
-    return {
-      direction: "right",
-      noWrap: true,
-      offset: L.point(2, 10),
-      className: "leaflet-marker-labeltext",
-      permanent: true,
-    };
-  };
-} else if (typeof L === "object") {
-  /**
-   * Class trackdirect.models.Label
-   * @param {array} options
-   * @param {trackdirect.models.Map} map
-   */
-  trackdirect.models.Label = function (options, map) {
-    this._defaultMap = map;
-
-    var position = null;
-    if (
-      typeof options.position !== "undefined" &&
-      typeof options.position.lat !== "undefined" &&
-      typeof options.position.lng !== "undefined"
-    ) {
-      position = [options.position.lat, options.position.lng];
-    }
-
-    // Call the parent constructor
-    L.Marker.call(this, position, this._getBasicOptions(options));
-  };
-  trackdirect.models.Label.prototype = Object.create(L.Marker.prototype);
-  trackdirect.models.Label.prototype.constructor = trackdirect.models.Label;
-
-  /**
-   * show if it is not shown
-   */
-  trackdirect.models.Label.prototype.show = function () {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  };
-
-  /**
-   * hide if it is visible
-   */
-  trackdirect.models.Label.prototype.hide = function () {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  };
-
-  /**
-   * Get a suitable leaflet options object
-   * @return {object}
-   */
-  trackdirect.models.Label.prototype._getBasicOptions = function (options) {
-    var strlen = options.text.length;
-
-    var myIcon = L.divIcon({
-      iconSize: new L.Point(strlen * 10, 20),
-      className: "leaflet-marker-labeltext",
-      html: options.text,
-      iconAnchor: new L.Point(-2, -10),
-    });
-
-    return {
-      icon: myIcon,
-      clickable: false,
-      keyboard: false,
-    };
-  };
-} else {
-  // If no Label is supported we use a dummy class
-  trackdirect.models.Label = function (options, map) {};
-  trackdirect.models.Label.prototype.show = function () {};
-  trackdirect.models.Label.prototype.hide = function () {};
-}
diff --git a/jslib/src/trackdirect/models/Map.js b/jslib/src/trackdirect/models/Map.js
deleted file mode 100755
index 47d022192584832bf7ead8fb5a715ebf0c7e849f..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/Map.js
+++ /dev/null
@@ -1,1568 +0,0 @@
-/**
- * Class trackdirect.models.Map
- * @see https://developers.google.com/maps/documentation/javascript/reference#Map
- * @param {string} mapElementId
- * @param {object} options
- */
-trackdirect.models.Map = function (mapElementId, options) {
-  this._init(mapElementId, options);
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Map.call(
-      this,
-      document.getElementById(mapElementId),
-      this._getGoolgeMapOptions()
-    );
-  } else if (typeof L === "object") {
-    L.Map.call(
-      this,
-      document.getElementById(mapElementId),
-      this._getLeafletMapOptions()
-    );
-    this._updateLeafletTileLayer();
-    L.control
-      .zoom({
-        position: "bottomright",
-      })
-      .addTo(this);
-  }
-
-  this._initMap();
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.Map.prototype = Object.create(google.maps.Map.prototype);
-} else if (typeof L === "object") {
-  trackdirect.models.Map.prototype = Object.create(L.Map.prototype);
-}
-trackdirect.models.Map.prototype.constructor = trackdirect.models.Map;
-
-/**
- * Init
- */
-trackdirect.models.Map.prototype._init = function (mapElementId, options) {
-  this._mapElementId = mapElementId;
-  this._tdMapOptions = options;
-  this._initBasic();
-  this._initMapTypes();
-};
-
-/**
- * Init basic stuff
- */
-trackdirect.models.Map.prototype._initBasic = function () {
-  this._tdEventListeners = {};
-  this._tdEventTimeout = null;
-  this._currentContentZoom = null;
-  this._visibleMapSectors = [];
-  this._newMarkersToShow = [];
-
-  this._leafletTileLayer = null;
-  this._heatMap = null;
-
-  // Init public variables
-  this.markerCollection = new trackdirect.models.MarkerCollection();
-  this.state = new trackdirect.models.MapState();
-};
-
-/**
- * Init map types
- */
-trackdirect.models.Map.prototype._initMapTypes = function () {
-  this._supportedMapTypes = {};
-  if (
-    typeof this._tdMapOptions.supportedMapTypes !== "undefined" &&
-    this._tdMapOptions.supportedMapTypes !== null &&
-    Object.keys(this._tdMapOptions.supportedMapTypes).length > 0
-  ) {
-    this._supportedMapTypes = this._tdMapOptions.supportedMapTypes;
-  } else if (typeof google === "object" && typeof google.maps === "object") {
-    this._supportedMapTypes["roadmap"] = google.maps.MapTypeId.ROADMAP;
-    this._supportedMapTypes["terrain"] = google.maps.MapTypeId.TERRAIN;
-    this._supportedMapTypes["satellite"] = google.maps.MapTypeId.SATELLITE;
-    this._supportedMapTypes["hybrid"] = google.maps.MapTypeId.HYBRID;
-  } else if (typeof L === "object") {
-    this._supportedMapTypes["roadmap"] = "OpenStreetMap.Mapnik";
-    this._supportedMapTypes["terrain"] = "OpenTopoMap";
-  }
-
-  if (
-    typeof this._tdMapOptions.maptype !== "undefined" &&
-    this._tdMapOptions.maptype !== null &&
-    this._tdMapOptions.maptype in this._supportedMapTypes
-  ) {
-    this._mapType = this._tdMapOptions.maptype;
-  } else {
-    this._mapType = Object.keys(this._supportedMapTypes)[0];
-  }
-};
-
-/**
- * Init the map
- */
-trackdirect.models.Map.prototype._initMap = function () {
-  this._heatMap = new trackdirect.models.HeatMap(this);
-  this._setMapInitialLocation();
-  this._initOms();
-  this._initInfoWindowEvent();
-  this._updateMapContent();
-  this._initMapEvents();
-
-  // create kmlLayer object from URL
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this._tdMapOptions.mid !== "undefined") {
-      var kmlUrl =
-        "https://www.google.com/maps/d/u/0/kml?mid=" + this._tdMapOptions.mid;
-      var kmlLayer = new google.maps.KmlLayer(kmlUrl, { map: this });
-    }
-  }
-};
-
-/**
- * Trigger a resize event
- */
-trackdirect.models.Map.prototype.triggerResize = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.event.trigger(this, "resize");
-  } else if (typeof L === "object") {
-    L.Map.prototype._onResize.call(this);
-  }
-};
-
-/**
- * Set Map center
- * @param {LatLngLiteral} pos
- * @param {int} zoom
- */
-trackdirect.models.Map.prototype.setCenter = function (pos, zoom) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Map.prototype.setCenter.call(this, pos);
-    if (typeof zoom !== "undefined") {
-      google.maps.Map.prototype.setZoom.call(this, zoom);
-    }
-  } else if (typeof L === "object") {
-    zoom = typeof zoom !== "undefined" ? zoom : this.getZoom();
-    L.Map.prototype.setView.call(this, pos, zoom);
-  }
-  this._renderCordinatesContainer(pos);
-};
-
-/**
- * Get Map center literal
- * @return LatLngLiteral
- */
-trackdirect.models.Map.prototype.getCenterLiteral = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var latLng = google.maps.Map.prototype.getCenter.call(this);
-    if (typeof latLng !== "undefined" && typeof latLng.lat === "function") {
-      return { lat: latLng.lat(), lng: latLng.lng() };
-    } else {
-      return latLng;
-    }
-  } else if (typeof L === "object") {
-    var latLng = L.Map.prototype.getCenter.call(this);
-    if (typeof latLng !== "undefined") {
-      return { lat: latLng.lat, lng: latLng.lng };
-    } else {
-      return latLng;
-    }
-  }
-  return null;
-};
-
-/**
- * Fit bounds
- * @param {Array} bounds
- */
-trackdirect.models.Map.prototype.fitBounds = function (bounds) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var latLngBounds = new google.maps.LatLngBounds();
-    for (var i = 0; i < bounds.length; i++) {
-      latLngBounds.extend(bounds[i]);
-    }
-    google.maps.Map.prototype.fitBounds.call(this, latLngBounds);
-  } else if (typeof L === "object") {
-    L.Map.prototype.fitBounds.call(this, bounds);
-  }
-};
-
-/**
- * set Map center by station position
- * @param {LatLngLiteral} pos
- */
-trackdirect.models.Map.prototype.setCenterByStationId = function (stationId) {
-  var latestVisibleMarker =
-    this.markerCollection.getStationLatestVisibleMarker(stationId);
-  if (latestVisibleMarker !== null) {
-    this.setCenter(latestVisibleMarker.packet.getLatLngLiteral());
-  }
-};
-
-/**
- * Get map DOM element id
- * @return {string}
- */
-trackdirect.models.Map.prototype.getMapElementId = function () {
-  return this._mapElementId;
-};
-
-/**
- * Get map options
- * @return {object}
- */
-trackdirect.models.Map.prototype.getTdMapOptions = function () {
-  return this._tdMapOptions;
-};
-
-/**
- * Returns true if specified map sector is visible
- * If we are filtering we consider all mapsectors visible
- * @param {int} mapSector
- * @return {boolean}
- */
-trackdirect.models.Map.prototype.isMapSectorVisible = function (mapSector) {
-  if (
-    this._visibleMapSectors.indexOf(mapSector) >= 0 ||
-    this.state.isFilterMode
-  ) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returnes the number of new markers in queue
- * @return {int}
- */
-trackdirect.models.Map.prototype.getNumberOfNewMarkersToShow = function () {
-  return this._newMarkersToShow;
-};
-
-/**
- * Show all markers that has recently been added
- * @param {boolean} track
- */
-trackdirect.models.Map.prototype.showNewMarkersInQueue = function (track) {
-  track = typeof track !== "undefined" ? track : true;
-
-  var oldestAllowedTrackingTimestamp = 0;
-  if (this.state.onlyTrackRecentPackets) {
-    oldestAllowedTrackingTimestamp = Math.floor(Date.now() / 1000) - 60;
-  }
-
-  while ((markerIdKey = this._newMarkersToShow.pop()) != null) {
-    if (!this.markerCollection.isExistingMarker(markerIdKey)) {
-      continue;
-    }
-    var marker = this.markerCollection.getMarker(markerIdKey);
-    trackdirect.services.callbackExecutor.addWithPriority(
-      marker,
-      marker.showCompleteMarker,
-      []
-    );
-
-    // Track
-    if (track && marker.packet.packet_order_id == 1) {
-      if (
-        marker.shouldMarkerBeVisible() &&
-        marker.showAsMarker &&
-        this.state.trackStationId !== null &&
-        this.state.trackStationId == marker.packet.station_id &&
-        this.state.getClientTimestamp(marker.packet.timestamp) >
-          oldestAllowedTrackingTimestamp
-      ) {
-        trackdirect.services.callbackExecutor.addWithPriority(
-          this,
-          this.setCenterByStationId,
-          [marker.packet.station_id]
-        );
-      }
-    }
-
-    // Open previoulsy open info window
-    if (
-      this.state.openInfoWindowForMarkerIdKey !== null &&
-      this.state.openInfoWindowForMarkerIdKey == markerIdKey &&
-      marker.packet.packet_order_id == 1 &&
-      marker.shouldMarkerBeVisible() &&
-      marker.showAsMarker
-    ) {
-      trackdirect.services.callbackExecutor.addWithPriority(
-        this,
-        this.openLatestStationInfoWindow,
-        [marker.packet.station_id]
-      );
-    }
-  }
-  this.state.openInfoWindowForMarkerIdKey = null;
-};
-
-/**
- * Activate filtered mode
- */
-trackdirect.models.Map.prototype.activateFilteredMode = function () {
-  this.state.isFilterMode = true;
-  this._deactivateHeatMap();
-  this._updateMapContent();
-};
-
-/**
- * Deactivate filtered mode
- */
-trackdirect.models.Map.prototype.deactivateFilteredMode = function () {
-  if (this.state.isFilterMode) {
-    this._activateHeatMap();
-    this.state.isFilterMode = false;
-    this.state.filterStationIds = [];
-    this._updateMapContent();
-  }
-};
-
-/**
- * Get the north east latitude of the current map view
- * @return {float}
- */
-trackdirect.models.Map.prototype.getNorthEastLat = function () {
-  if (this.getBounds() != null) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      return this.getBounds().getNorthEast().lat();
-    } else if (typeof L === "object") {
-      return this.getBounds().getNorthEast().lat;
-    }
-  }
-  return 0;
-};
-
-/**
- * Get the north east longtitue of the current map view
- * @return {float}
- */
-trackdirect.models.Map.prototype.getNorthEastLng = function () {
-  if (this.getBounds() != null) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      return this.getBounds().getNorthEast().lng();
-    } else if (typeof L === "object") {
-      return this.getBounds().getNorthEast().lng;
-    }
-  }
-  return 0;
-};
-
-/**
- * Get the south west latitude of the current map view
- * @return {float}
- */
-trackdirect.models.Map.prototype.getSouthWestLat = function () {
-  if (this.getBounds() != null) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      return this.getBounds().getSouthWest().lat();
-    } else if (typeof L === "object") {
-      return this.getBounds().getSouthWest().lat;
-    }
-  }
-  return 0;
-};
-
-/**
- * Get the south west longitude of the current map view
- * @return {float}
- */
-trackdirect.models.Map.prototype.getSouthWestLng = function () {
-  if (this.getBounds() != null) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      return this.getBounds().getSouthWest().lng();
-    } else if (typeof L === "object") {
-      return this.getBounds().getSouthWest().lng;
-    }
-  }
-  return 0;
-};
-
-/**
- * Returns true if map is ready
- * @return {boolean}
- */
-trackdirect.models.Map.prototype.isMapReady = function () {
-  if (this.getBounds() != null) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Set map type
- * @param {string} mapType
- */
-trackdirect.models.Map.prototype.setMapType = function (mapType) {
-  if (mapType in this._supportedMapTypes) {
-    this._mapType = mapType;
-    if (typeof google === "object" && typeof google.maps === "object") {
-      this._updateGoogleMapTileLayer();
-    } else if (typeof L === "object") {
-      this._updateLeafletTileLayer();
-    }
-    this._emitTdEventListeners("change");
-  }
-};
-
-/**
- * Get map type
- * @return {string}
- */
-trackdirect.models.Map.prototype.getMapType = function () {
-  return this._mapType;
-};
-
-/**
- * Get leaflet tile layer
- * @return {string}
- */
-trackdirect.models.Map.prototype.getLeafletTileLayer = function () {
-  return this._leafletTileLayer;
-};
-
-/**
- * Returns current mid
- * @return {String}
- */
-trackdirect.models.Map.prototype.getMid = function () {
-  if (typeof this._tdMapOptions.mid !== "undefined") {
-    return this._tdMapOptions.mid;
-  }
-  return null;
-};
-
-/**
- * Reset all markers, this will remove everything from map and memory
- */
-trackdirect.models.Map.prototype.resetAllMarkers = function () {
-  while (this.markerCollection.getNumberOfMarkers() > 0) {
-    var i = this.markerCollection.getNumberOfMarkers();
-    while (i--) {
-      var marker = this.markerCollection.getMarker(i);
-      if (marker !== null) {
-        marker.stopToOldTimeout();
-        marker.stopDirectionPolyline();
-        marker.hide();
-        marker.hideMarkerPrevPosition();
-        marker.hideMarkerTail();
-
-        var stationCoverage = this.markerCollection.getStationCoverage(marker.packet.station_id);
-        if (stationCoverage) {
-          stationCoverage.hide();
-        }
-      }
-      this.markerCollection.removeMarker(i);
-    }
-  }
-  if (this.state.openInfoWindow !== null) {
-    this.state.openInfoWindow.hide();
-  }
-  if (this.oms) {
-    this.oms.clearMarkers();
-  }
-  this.markerCollection.resetAllMarkers();
-};
-
-/**
- * Open marker info window
- * @param {trackdirect.models.Marker} marker
- * @param {boolean} disableAutoPan
- */
-trackdirect.models.Map.prototype.openMarkerInfoWindow = function (
-  marker,
-  disableAutoPan
-) {
-  disableAutoPan =
-    typeof disableAutoPan !== "undefined" ? disableAutoPan : true;
-  if (marker.getMap() !== null) {
-    if (
-      this.state.openInfoWindow !== null &&
-      this.state.openInfoWindow.getMarker().packet.id != marker.packet.id
-    ) {
-      this.state.openInfoWindow.hide();
-    }
-
-    if (
-      this.state.openInfoWindow !== null &&
-      this.state.openInfoWindow.getMarker().packet.id == marker.packet.id
-    ) {
-      // Just update existing infoWindow
-      this.state.openInfoWindow.setMarker(marker);
-    } else {
-      this.state.openInfoWindow = new trackdirect.models.InfoWindow(
-        marker,
-        this,
-        disableAutoPan
-      );
-    }
-    this._addInfoWindowListeners(this.state.openInfoWindow);
-    this.state.openInfoWindow.show();
-  }
-};
-
-/**
- * Open latest station info window
- * @param {int} stationId
- */
-trackdirect.models.Map.prototype.openLatestStationInfoWindow = function (
-  stationId
-) {
-  var latestVisibleMarker =
-    this.markerCollection.getStationLatestVisibleMarker(stationId);
-  if (latestVisibleMarker !== null) {
-    // open marker info-window since this marker replaced a previous one
-    this.openMarkerInfoWindow(latestVisibleMarker);
-  }
-};
-
-/**
- * Open polyline info window
- * @param {trackdirect.models.Marker} marker
- * @param {LatLng} position
- */
-trackdirect.models.Map.prototype.openPolylineInfoWindow = function (
-  marker,
-  position
-) {
-  if (this.state.openInfoWindow !== null) {
-    this.state.openInfoWindow.hide();
-  }
-  this.state.openInfoWindow = new trackdirect.models.InfoWindow(marker, this);
-  this._addInfoWindowListeners(this.state.openInfoWindow);
-  this.state.openInfoWindow.show(true, position);
-};
-
-/**
- * Add some trackdirect.models.InfoWindow listeners
- * @param {trackdirect.models.InfoWindow} infoWindow
- */
-trackdirect.models.Map.prototype._addInfoWindowListeners = function (
-  infoWindow
-) {
-  var me = this;
-  infoWindow.addTdListener("station-tail-needed", function (stationId) {
-    me._emitTdEventListeners("station-tail-needed", stationId);
-  });
-};
-
-/**
- * Add listener to events
- * @param {string} event
- * @param {string} handler
- */
-(trackdirect.models.Map.prototype.addTdListener = function (event, handler) {
-  if (!(event in this._tdEventListeners)) {
-    this._tdEventListeners[event] = [];
-  }
-  this._tdEventListeners[event].push(handler);
-}),
-  /**
-   * Emit all event listeners for a specified event
-   * @param {string} event
-   * @param {object} arg
-   */
-  (trackdirect.models.Map.prototype._emitTdEventListeners = function (
-    event,
-    arg
-  ) {
-    if (event in this._tdEventListeners) {
-      for (var i = 0; i < this._tdEventListeners[event].length; i++) {
-        this._tdEventListeners[event][i](arg);
-      }
-    }
-  });
-
-/**
- * Make sure all listener that are waiting for a map change event gets called
- */
-(trackdirect.models.Map.prototype._triggerMapChangeEvent = function () {
-  // Execute event "change", but wait some to avoid to many events
-  if (this._tdEventTimeout != null) {
-    clearTimeout(this._tdEventTimeout);
-  }
-  var me = this;
-  this._tdEventTimeout = window.setTimeout(function () {
-    me._emitTdEventListeners("change");
-    me._tdEventTimeout = null;
-  }, 5);
-}),
-  /**
-   * Deactivate heatmap
-   */
-  (trackdirect.models.Map.prototype._deactivateHeatMap = function () {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      if (
-        typeof this.overlayMapTypes !== "undefined" &&
-        this.overlayMapTypes.length > 0
-      ) {
-        this.overlayMapTypes.clear();
-      }
-    } else if (typeof L === "object") {
-      if (this._heatMap !== null) {
-        this.removeLayer(this._heatMap);
-      }
-    }
-  });
-
-/**
- * Activate heatmap
- */
-trackdirect.models.Map.prototype._activateHeatMap = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (
-      typeof this.overlayMapTypes !== "undefined" &&
-      this.overlayMapTypes.length == 0
-    ) {
-      this.overlayMapTypes.setAt(0, this._heatMap);
-    }
-  } else if (typeof L === "object") {
-    if (this._heatMap !== null) {
-      this._heatMap.addTo(this);
-      this._heatMap.bringToFront();
-      this._heatMap.setZIndex(1000);
-    }
-  }
-};
-
-/**
- * Update google map tile layer
- */
-trackdirect.models.Map.prototype._updateGoogleMapTileLayer = function () {
-  this.setMapTypeId(this._supportedMapTypes[this._mapType]);
-};
-
-/**
- * Update Leaflet Map Tile Layer
- */
-trackdirect.models.Map.prototype._updateLeafletTileLayer = function () {
-  // Skip this part if we are running the Windy API or if embedded
-  if (typeof windyInit !== "function") {
-    if (this._leafletTileLayer !== null) {
-      this._leafletTileLayer.remove();
-    }
-
-    if (typeof L.mapboxGL === "function") {
-      var attribution = "";
-      var accessToken = "no-token";
-      var style = "";
-
-      if ("mapboxGLStyle" in this._tdMapOptions) {
-        style = this._tdMapOptions["mapboxGLStyle"];
-      }
-      if ("mapboxGLAccessToken" in this._tdMapOptions) {
-        accessToken = this._tdMapOptions["mapboxGLAccessToken"];
-      }
-      if ("mapboxGLAttribution" in this._tdMapOptions) {
-        attribution = this._tdMapOptions["mapboxGLAttribution"];
-      }
-
-      this._leafletTileLayer = L.mapboxGL({
-        accessToken: accessToken,
-        style: style,
-      });
-      this.addLayer(this._leafletTileLayer);
-      this.attributionControl.addAttribution(attribution);
-    } else {
-      var options = {};
-      if (isHighDensity()) {
-        options["ppi"] = "320";
-        options["size"] = "512";
-      } else if (trackdirect.isMobile) {
-        options["ppi"] = "250";
-      }
-
-      this._leafletTileLayer = L.tileLayer.provider(
-        this._supportedMapTypes[this._mapType],
-        options
-      );
-      this.addLayer(this._leafletTileLayer);
-      this._leafletTileLayer.bringToBack();
-    }
-  }
-};
-
-/**
- * Handle map change event, show markers in new map sectors and hide markers in previous map sectors
- */
-trackdirect.models.Map.prototype._updateMapContent = function () {
-  if (this.getBounds() != null) {
-    var previousVisibleMapSectors = [];
-    for (var i = 0; i < this._visibleMapSectors.length; i++) {
-      previousVisibleMapSectors.push(this._visibleMapSectors[i]);
-    }
-
-    this._visibleMapSectors =
-      trackdirect.services.MapSectorCalculator.getMapSectors(this.getBounds());
-    this._triggerMapChangeEvent();
-    if (!this.state.isFilterMode) {
-      if (this.getZoom() < trackdirect.settings.minZoomForMarkers) {
-        // When all markers should be hidden we also make sure that markers in current visible map-sectors are removed
-        this.hideAllMarkers();
-        this._activateHeatMap();
-      } else {
-        this._deactivateHeatMap();
-
-        this._hideMarkersInPreviousVisibleMapSectors(previousVisibleMapSectors);
-        this._showMarkersInNewVisibleMapSectors(previousVisibleMapSectors);
-        if (this._isAnyMarkerDetailsVisible()) {
-          this._showVisibleMarkerDetails();
-        }
-        if (this._isAnyMarkerDetailsHidden()) {
-          this._hideVisibleMarkerDetails();
-        }
-      }
-    }
-  }
-  this._currentContentZoom = this.getZoom();
-};
-
-/**
- * Returns true if any marker details should be visible
- * @return {boolean}
- */
-trackdirect.models.Map.prototype._isAnyMarkerDetailsVisible = function () {
-  // This is only needed when zooming (when moving the regular show-marker will also show the details)
-  var showPrevPosition =
-    this.getZoom() >= trackdirect.settings.minZoomForMarkerPrevPosition &&
-    this._currentContentZoom <
-      trackdirect.settings.minZoomForMarkerPrevPosition;
-  var showMarkerTail =
-    this.getZoom() >= trackdirect.settings.minZoomForMarkerTail &&
-    this._currentContentZoom < trackdirect.settings.minZoomForMarkerTail;
-  var showMarkerLabel =
-    this.getZoom() >= trackdirect.settings.minZoomForMarkerLabel &&
-    this._currentContentZoom < trackdirect.settings.minZoomForMarkerLabel;
-
-  if (showPrevPosition || showMarkerTail || showMarkerLabel) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returns true if any marker details should be hidden
- * @return {boolean}
- */
-trackdirect.models.Map.prototype._isAnyMarkerDetailsHidden = function () {
-  // This is only needed when zooming (when moving the regular show-marker will also show the details)
-  var hidePrevPosition =
-    this.getZoom() < trackdirect.settings.minZoomForMarkerPrevPosition &&
-    this._currentContentZoom >=
-      trackdirect.settings.minZoomForMarkerPrevPosition;
-  var hideMarkerTail =
-    this.getZoom() < trackdirect.settings.minZoomForMarkerTail &&
-    this._currentContentZoom >= trackdirect.settings.minZoomForMarkerTail;
-  var hideMarkerLabel =
-    this.getZoom() < trackdirect.settings.minZoomForMarkerLabel &&
-    this._currentContentZoom >= trackdirect.settings.minZoomForMarkerLabel;
-
-  if (hidePrevPosition || hideMarkerTail || hideMarkerLabel) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Show markers details that should be visible in visible map sectors
- */
-trackdirect.models.Map.prototype._showVisibleMarkerDetails = function () {
-  for (var i = 0; i < this._visibleMapSectors.length; i++) {
-    var mapSector = this._visibleMapSectors[i];
-    var mapSectorMarkerKeys =
-      this.markerCollection.getMapSectorMarkerKeys(mapSector);
-    // Array with markers fo this sector exists, we have something to show
-    for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-      var markerIdKey = mapSectorMarkerKeys[j];
-      var marker = this.markerCollection.getMarker(markerIdKey);
-      if (marker === null) {
-        continue;
-      }
-      trackdirect.services.callbackExecutor.addWithPriority(
-        marker,
-        marker.showMarkerDetails,
-        []
-      );
-    }
-  }
-};
-
-/**
- * Hide markers details that should not be visible in visible map sectors
- */
-trackdirect.models.Map.prototype._hideVisibleMarkerDetails = function () {
-  for (var i = 0; i < this._visibleMapSectors.length; i++) {
-    var mapSector = this._visibleMapSectors[i];
-    var mapSectorMarkerKeys =
-      this.markerCollection.getMapSectorMarkerKeys(mapSector);
-    // Array with markers fo this sector exists, we have something to hide
-    for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-      var markerIdKey = mapSectorMarkerKeys[j];
-      var marker = this.markerCollection.getMarker(markerIdKey);
-      if (marker === null) {
-        continue;
-      }
-      trackdirect.services.callbackExecutor.addWithPriority(
-        marker,
-        marker.hideMarkerDetails,
-        []
-      );
-    }
-  }
-};
-
-/**
- * Show all markers that should be visible and hide alla markers that should not be visible
- * This is used to show or hide markers when user activate/deactivate filters
- */
-trackdirect.models.Map.prototype.showHideMarkers = function () {
-  if (this.oms) {
-    this.oms.unspiderfy();
-  }
-  if (this.state.isFilterMode) {
-    for (var markerIdKey in this.markerCollection.getAllMarkers()) {
-      if (this.markerCollection.isExistingMarker(markerIdKey)) {
-        var marker = this.markerCollection.getMarker(markerIdKey);
-
-        if (marker) {
-          if (marker.shouldMarkerBeVisible()) {
-            marker.showCompleteMarker();
-          } else {
-            marker.hideCompleteMarker();
-          }
-        }
-        if (marker.packet) {
-          this.showTopLabelOnPosition(
-            marker.packet.latitude,
-            marker.packet.longitude
-          );
-        }
-      }
-    }
-  } else {
-    for (var i = 0; i < this._visibleMapSectors.length; i++) {
-      var mapSector = this._visibleMapSectors[i];
-      var mapSectorMarkerKeys =
-        this.markerCollection.getMapSectorMarkerKeys(mapSector);
-
-      // Array with markers for this sector exists, we have something to show/hide
-      for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-        var markerIdKey = mapSectorMarkerKeys[j];
-
-        if (this.markerCollection.isExistingMarker(markerIdKey)) {
-          var marker = this.markerCollection.getMarker(markerIdKey);
-          if (marker.shouldMarkerBeVisible()) {
-            marker.showCompleteMarker();
-          } else {
-            marker.hideCompleteMarker();
-          }
-          this.showTopLabelOnPosition(
-            marker.packet.latitude,
-            marker.packet.longitude
-          );
-        }
-      }
-    }
-  }
-};
-
-/**
- * Show or hide ALL PHG Circles
- * This is used to show or hide circles when user activate/deactivate PHG circles
- */
-trackdirect.models.Map.prototype.showHidePHGCircles = function () {
-  if (this.getZoom() >= trackdirect.settings.minZoomForMarkers) {
-    if (this.state.isFilterMode) {
-      for (var markerIdKey in this.markerCollection.getAllMarkers()) {
-        if (this.markerCollection.isExistingMarker(markerIdKey)) {
-          var marker = this.markerCollection.getMarker(markerIdKey);
-
-          if (
-            marker.showAsMarker &&
-            marker.packet.phg != null &&
-            marker.getMap() !== null &&
-            marker.shouldMarkerBeVisible()
-          ) {
-            if (this.state.showPHGCircles == 0) {
-              marker.hidePHGCircle();
-            } else if (this.state.showPHGCircles == 1) {
-              marker.showPHGCircle(true);
-            } else if (this.state.showPHGCircles == 2) {
-              marker.showPHGCircle(false);
-            }
-          }
-        }
-      }
-    } else {
-      for (var i = 0; i < this._visibleMapSectors.length; i++) {
-        var mapSector = this._visibleMapSectors[i];
-        var mapSectorMarkerKeys =
-          this.markerCollection.getMapSectorMarkerKeys(mapSector);
-        // Array with markers for this sector exists, we have something to show/hide
-        for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-          var markerIdKey = mapSectorMarkerKeys[j];
-
-          if (this.markerCollection.isExistingMarker(markerIdKey)) {
-            var marker = this.markerCollection.getMarker(markerIdKey);
-
-            if (
-              marker.showAsMarker &&
-              marker.packet.phg != null &&
-              marker.getMap() !== null &&
-              marker.shouldMarkerBeVisible()
-            ) {
-              if (this.state.showPHGCircles == 0) {
-                marker.hidePHGCircle();
-              } else if (this.state.showPHGCircles == 1) {
-                marker.showPHGCircle(true);
-              } else if (this.state.showPHGCircles == 2) {
-                marker.showPHGCircle(false);
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-};
-
-/**
- * Show or hide ALL RNG Circles
- * This is used to show or hide circles when user activate/deactivate PHG circles
- */
-trackdirect.models.Map.prototype.showHideRNGCircles = function () {
-  if (this.getZoom() >= trackdirect.settings.minZoomForMarkers) {
-    if (this.state.isFilterMode) {
-      for (var markerIdKey in this.markerCollection.getAllMarkers()) {
-        if (this.markerCollection.isExistingMarker(markerIdKey)) {
-          var marker = this.markerCollection.getMarker(markerIdKey);
-          if (
-            marker.showAsMarker &&
-            marker.packet.rng != null &&
-            marker.getMap() !== null &&
-            marker.shouldMarkerBeVisible()
-          ) {
-            if (this.state.showRNGCircles == 0) {
-              marker.hideRNGCircle();
-            } else if (this.state.showRNGCircles == 1) {
-              marker.showRNGCircle(true);
-            } else if (this.state.showRNGCircles == 2) {
-              marker.showRNGCircle(false);
-            }
-          }
-        }
-      }
-    } else {
-      for (var i = 0; i < this._visibleMapSectors.length; i++) {
-        var mapSector = this._visibleMapSectors[i];
-        var mapSectorMarkerKeys =
-          this.markerCollection.getMapSectorMarkerKeys(mapSector);
-        // Array with markers for this sector exists, we have something to show/hide
-        for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-          var markerIdKey = mapSectorMarkerKeys[j];
-
-          if (this.markerCollection.isExistingMarker(markerIdKey)) {
-            var marker = this.markerCollection.getMarker(markerIdKey);
-            if (
-              marker.showAsMarker &&
-              marker.packet.rng != null &&
-              marker.getMap() !== null &&
-              marker.shouldMarkerBeVisible()
-            ) {
-              if (this.state.showRNGCircles == 0) {
-                marker.hideRNGCircle();
-              } else if (this.state.showRNGCircles == 1) {
-                marker.showRNGCircle(true);
-              } else if (this.state.showRNGCircles == 2) {
-                marker.showRNGCircle(false);
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-};
-
-/**
- * Make sure that all markers that we know is hidden
- */
-trackdirect.models.Map.prototype.hideAllMarkers = function () {
-  for (var markerIdKey in this.markerCollection.getAllMarkers()) {
-    var marker = this.markerCollection.getMarker(markerIdKey);
-    if (marker !== null) {
-      // hide this marker
-      marker.hideCompleteMarker();
-    }
-  }
-};
-
-/**
- * Make the label of the latest received marker show on specified position
- * @param {number} latitude
- * @param {number} longitude
- */
-trackdirect.models.Map.prototype.showTopLabelOnPosition = function (
-  latitude,
-  longitude
-) {
-  var topMarkerIdKey = -1;
-  var topMarkerZindex = 0;
-
-  if (
-    Object.keys(
-      this.markerCollection.getPositionMarkerIdKeys(latitude, longitude)
-    ).length > 1
-  ) {
-    for (var markerIdKey in this.markerCollection.getPositionMarkerIdKeys(
-      latitude,
-      longitude
-    )) {
-      var marker = this.markerCollection.getMarker(markerIdKey);
-      if (marker !== null && marker.shouldMarkerBeVisible()) {
-        if (marker.getZIndex() > topMarkerZindex) {
-          topMarkerZindex = marker.getZIndex();
-          topMarkerIdKey = markerIdKey;
-        }
-        marker.hideLabel();
-        marker.hasLabel = false;
-      }
-    }
-
-    if (topMarkerIdKey != -1) {
-      var topMarker = this.markerCollection.getMarker(topMarkerIdKey);
-      topMarker.hasLabel = true;
-      var topMarkerMapSector =
-        trackdirect.services.MapSectorCalculator.getMapSector(
-          topMarker.getPositionLiteral().lat,
-          topMarker.getPositionLiteral().lng
-        );
-      if (this.state.isFilterMode) {
-        topMarker.showLabel();
-      } else if (
-        this.isMapSectorVisible(topMarkerMapSector) &&
-        this.getZoom() >= trackdirect.settings.minZoomForMarkerLabel
-      ) {
-        topMarker.showLabel();
-      }
-    }
-  }
-};
-
-/**
- * Hide markers in previously visible map sectors
- * (This should handle both zooming and moving)
- * @param {array} previousVisibleMapSectors
- */
-trackdirect.models.Map.prototype._hideMarkersInPreviousVisibleMapSectors =
-  function (previousVisibleMapSectors) {
-    // IMPORTANT: Do this before showing marker since marker may exist in both previus shown sectors and visible sectors
-    // (if we show first we may hide something that should be visible)
-
-    if (this._currentContentZoom >= trackdirect.settings.minZoomForMarkers) {
-      var markerIdKeyListToMaybeHide = {};
-      var markerIdKeyListNotToHide = {};
-      for (var i = 0; i < previousVisibleMapSectors.length; i++) {
-        var mapSector = previousVisibleMapSectors[i];
-        if (
-          !this.isMapSectorVisible(mapSector) ||
-          this.getZoom() < trackdirect.settings.minZoomForMarkers
-        ) {
-          // Seems like this sector is not visible any more (or we have zoomed out), hide markers
-          var mapSectorMarkerKeys =
-            this.markerCollection.getMapSectorMarkerKeys(mapSector);
-          for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-            var markerIdKey = mapSectorMarkerKeys[j];
-            markerIdKeyListToMaybeHide[markerIdKey] = markerIdKey;
-          }
-        } else if (this.getZoom() >= trackdirect.settings.minZoomForMarkers) {
-          // Seems like this map sector is still visible (and we have not zoomed out)
-          var mapSectorMarkerKeys =
-            this.markerCollection.getMapSectorMarkerKeys(mapSector);
-          for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-            var markerIdKey = mapSectorMarkerKeys[j];
-            // Marker exists in map sector that is still visible, do not hide it
-            markerIdKeyListNotToHide[markerIdKey] = markerIdKey;
-          }
-        }
-      }
-      for (var markerIdKey in markerIdKeyListToMaybeHide) {
-        if (markerIdKey in markerIdKeyListNotToHide) {
-          continue;
-        }
-        var marker = this.markerCollection.getMarker(markerIdKey);
-        if (marker !== null) {
-          // hide this marker
-          trackdirect.services.callbackExecutor.addWithPriority(
-            marker,
-            marker.hideCompleteMarker,
-            []
-          );
-        }
-      }
-    }
-  };
-
-/**
- * Show markers in new visible map sectors
- * @param {array} previousVisibleMapSectors
- */
-trackdirect.models.Map.prototype._showMarkersInNewVisibleMapSectors = function (
-  previousVisibleMapSectors
-) {
-  // Show new markers that is visible in new map sectors
-  // This should handle both zooming and moving
-
-  if (this.getZoom() >= trackdirect.settings.minZoomForMarkers) {
-    for (var i = 0; i < this._visibleMapSectors.length; i++) {
-      var mapSector = this._visibleMapSectors[i];
-      if (
-        previousVisibleMapSectors.indexOf(mapSector) == -1 ||
-        this._currentContentZoom < trackdirect.settings.minZoomForMarkers
-      ) {
-        // Seems like this sector is new (or we have zoomed in now), show markers
-        var mapSectorMarkerKeys =
-          this.markerCollection.getMapSectorMarkerKeys(mapSector);
-        for (var j = 0; j < mapSectorMarkerKeys.length; j++) {
-          var markerIdKey = mapSectorMarkerKeys[j];
-          var marker = this.markerCollection.getMarker(markerIdKey);
-          if (marker !== null) {
-            trackdirect.services.callbackExecutor.addWithPriority(
-              marker,
-              marker.showCompleteMarker,
-              []
-            );
-          }
-        }
-      }
-    }
-
-    // Also make sure all stations with a visible coverage is shown
-    var stationIdList =
-      this.markerCollection.getStationIdListWithVisibleCoverage();
-    for (var i = 0; i < stationIdList.length; i++) {
-      var latestMarker = this.markerCollection.getStationLatestMarker(
-        stationIdList[i]
-      );
-      if (latestMarker !== null) {
-        if (latestMarker.shouldMarkerBeVisible() && latestMarker.showAsMarker) {
-          latestMarker.show();
-        }
-      }
-    }
-  }
-};
-
-/**
- * Set map initial position
- */
-trackdirect.models.Map.prototype._setMapInitialLocation = function () {
-  var zoom = this._getInitialZoom();
-  if (
-    typeof this._tdMapOptions.initCenter !== "undefined" &&
-    this._tdMapOptions.initCenter !== null
-  ) {
-    var pos = this._tdMapOptions.initCenter;
-    this.setCenter(pos, zoom);
-  } else {
-    this.setMapDefaultLocation();
-    this.setZoom(zoom);
-  }
-  this._emitTdEventListeners("change");
-};
-
-/**
- * Set map default location
- */
-trackdirect.models.Map.prototype.setMapDefaultLocation = function (
-  setDefaultZoom
-) {
-  setDefaultZoom =
-    typeof setDefaultZoom !== "undefined" ? setDefaultZoom : false;
-
-  var defaultLatitude =
-    typeof this._tdMapOptions.defaultLatitude !== "undefined"
-      ? this._tdMapOptions.defaultLatitude
-      : 59.35;
-  var defaultLongitude =
-    typeof this._tdMapOptions.defaultLongitude !== "undefined"
-      ? this._tdMapOptions.defaultLongitude
-      : 18.05;
-
-  var pos = {
-    lat: parseFloat(defaultLatitude),
-    lng: parseFloat(defaultLongitude),
-  };
-
-  if (setDefaultZoom) {
-    if (trackdirect.isMobile) {
-      this.setCenter(pos, trackdirect.settings.defaultCurrentZoomMobile);
-    } else {
-      this.setCenter(pos, trackdirect.settings.defaultCurrentZoom);
-    }
-  } else {
-    this.setCenter(pos);
-  }
-};
-
-/**
- * Add marker to multiple Map-Sectors, useful for very long polylines related to a marker
- * @param {int} markerIdKey
- * @param {LatLngLiteral} startLatLng
- * @param {LatLngLiteral} endLatLng
- */
-trackdirect.models.Map.prototype.addMarkerToMapSectorInterval = function (
-  markerIdKey,
-  startLatLng,
-  endLatLng
-) {
-  var minLat = startLatLng.lat;
-  var maxLat = endLatLng.lat;
-  var minLng = startLatLng.lng;
-  var maxLng = endLatLng.lng;
-  if (endLatLng.lat < minLat) {
-    minLat = endLatLng.lat;
-    maxLat = startLatLng.lat;
-  }
-  if (endLatLng.lng < minLng) {
-    minLng = endLatLng.lng;
-    maxLng = startLatLng.lng;
-  }
-  for (var lat = Math.floor(minLat); lat <= Math.ceil(maxLat); lat++) {
-    for (var lng = Math.floor(minLng); lng <= Math.ceil(maxLng); lng++) {
-      var markerMapSector =
-        trackdirect.services.MapSectorCalculator.getMapSector(lat, lng);
-
-      this.markerCollection.addMarkerToMapSector(markerIdKey, markerMapSector);
-
-      if (this.isMapSectorVisible(markerMapSector)) {
-        if (this._newMarkersToShow.indexOf(markerIdKey) < 0) {
-          this._newMarkersToShow.push(markerIdKey);
-        }
-      }
-    }
-  }
-};
-
-/**
- * Add marker the related map sector based in latest packet
- * @param {int} markerIdKey
- * @param {object} packet
- * @param {boolean} tryToShowPacket
- */
-trackdirect.models.Map.prototype.addMarkerToMapSectors = function (
-  markerIdKey,
-  packet,
-  tryToShowPacket
-) {
-  var markerMapSectors = [];
-
-  markerMapSectors.push(packet.map_sector);
-  if (
-    typeof packet.related_map_sectors !== "undefined" &&
-    packet.related_map_sectors !== null
-  ) {
-    for (var i = 0; i < packet.related_map_sectors.length; i++) {
-      markerMapSectors.push(packet.related_map_sectors[i]);
-    }
-  }
-
-  for (var i = 0; i < markerMapSectors.length; i++) {
-    var markerMapSector = markerMapSectors[i];
-    this.markerCollection.addMarkerToMapSector(markerIdKey, markerMapSector);
-
-    if (tryToShowPacket) {
-      if (this.isMapSectorVisible(markerMapSector)) {
-        if (this._newMarkersToShow.indexOf(markerIdKey) < 0) {
-          this._newMarkersToShow.push(markerIdKey);
-        }
-      }
-    }
-  }
-};
-
-/**
- * Initialize map basic events
- */
-trackdirect.models.Map.prototype._initMapEvents = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this._initGoogleMapEvents();
-  } else if (typeof L === "object") {
-    this._initLeafletMapEvents();
-  }
-};
-
-/**
- * Initialize google map basic events
- */
-trackdirect.models.Map.prototype._initGoogleMapEvents = function () {
-  var me = this;
-  google.maps.event.addListener(this, "mousemove", function (event) {
-    me._renderCordinatesContainer(event.latLng);
-  });
-
-  google.maps.event.addListener(this, "idle", function () {
-    me._updateMapContent();
-  });
-
-  google.maps.event.addListener(this, "maptypeid_changed", function () {
-    me._updateMapContent();
-  });
-
-  google.maps.event.addListener(this, "bounds_changed", function () {
-    if (me.isMapReady()) {
-      me._emitTdEventListeners("moving");
-    }
-  });
-};
-
-/**
- * Initialize leaflet map basic events
- */
-trackdirect.models.Map.prototype._initLeafletMapEvents = function () {
-  var me = this;
-  this.on("mousemove", function (event) {
-    me._renderCordinatesContainer(event.latlng);
-  });
-
-  this.on("moveend", function () {
-    me._updateMapContent();
-  });
-  /*
-    this.on('maptypeid_changed', function() {
-        me._updateMapContent();
-    });
-*/
-  this.on("move", function () {
-    if (me.isMapReady()) {
-      me._emitTdEventListeners("moving");
-    }
-  });
-};
-
-/**
- * Initialize OMS
- */
-trackdirect.models.Map.prototype._initOms = function () {
-  var options = {};
-  options["nearbyDistance"] = 12;
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var mti = google.maps.MapTypeId;
-    this.oms = new OverlappingMarkerSpiderfier(this, options);
-    this.oms.legColors.usual[mti.HYBRID] = this.oms.legColors.usual[
-      mti.SATELLITE
-    ] = "#fff";
-    this.oms.legColors.usual[mti.TERRAIN] = this.oms.legColors.usual[
-      mti.ROADMAP
-    ] = "#222";
-    this.oms.legColors.highlighted[mti.HYBRID] = this.oms.legColors.highlighted[
-      mti.SATELLITE
-    ] = "#f00";
-    this.oms.legColors.highlighted[mti.TERRAIN] =
-      this.oms.legColors.highlighted[mti.ROADMAP] = "#f00";
-  } else if (typeof L === "object") {
-    this.oms = new OverlappingMarkerSpiderfier(this, options);
-  }
-};
-
-/**
- * Initialize info window for markers
- */
-trackdirect.models.Map.prototype._initInfoWindowEvent = function () {
-  var me = this;
-  if (this.oms) {
-    this.oms.addListener("click", function (marker, event) {
-      me.openMarkerInfoWindow(marker, false);
-    });
-  } else {
-  }
-};
-
-/**
- * Get default google "map options", used for initializing google map
- * @return {object}
- */
-trackdirect.models.Map.prototype._getGoolgeMapOptions = function () {
-  var zoom = this._getInitialZoom();
-  var mapOptions = {
-    zoom: zoom,
-    panControl: false,
-    zoomControl: true,
-    zoomControlOptions: {
-      position: google.maps.ControlPosition.RIGHT_BOTTOM,
-    },
-    mapTypeControl: false,
-    scaleControl: false,
-    streetViewControl: false,
-    overviewMapControl: false,
-    fullscreenControl: false,
-    mapTypeId: google.maps.MapTypeId.ROADMAP,
-    gestureHandling: "greedy",
-  };
-
-  mapOptions.mapTypeId = this._supportedMapTypes[this._mapType];
-  return mapOptions;
-};
-
-/**
- * Get default leaflet "map options", used for initializing google map
- * @return {object}
- */
-trackdirect.models.Map.prototype._getLeafletMapOptions = function () {
-  var zoom = this._getInitialZoom();
-  var mapOptions = {
-    zoom: zoom,
-    zoomControl: true,
-    attributionControl: true,
-    zoomControl: false,
-    minZoom: 3,
-    maxZoom: 16,
-    closePopupOnClick: false,
-  };
-
-  return mapOptions;
-};
-
-/**
- * Get initial zoom
- * @return {int}
- */
-trackdirect.models.Map.prototype._getInitialZoom = function () {
-  var zoom = trackdirect.settings.defaultCurrentZoom;
-  if (
-    typeof this._tdMapOptions.zoom !== "undefined" &&
-    this._tdMapOptions.zoom !== null
-  ) {
-    zoom = parseInt(this._tdMapOptions.zoom);
-  } else if (trackdirect.isMobile) {
-    zoom = trackdirect.settings.defaultCurrentZoomMobile;
-  }
-
-  return zoom;
-};
-
-/**
- * Get radius in Km (radius is from center of current map view to the most north east position)
- * @return {int}
- */
-trackdirect.models.Map.prototype.getCurrentRadiusInKm = function () {
-  if (this.getBounds() != null) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      var latLng = this.getBounds().getNorthEast();
-      var latLngLiteral = { lat: latLng.lat(), lng: latLng.lng() };
-    } else if (typeof L === "object") {
-      var latLng = this.getBounds().getNorthEast();
-      var latLngLiteral = { lat: latLng.lat, lng: latLng.lng };
-    }
-    return (
-      trackdirect.services.distanceCalculator.getDistance(
-        this.getCenterLiteral(),
-        latLngLiteral
-      ) / 1000
-    );
-  }
-  return 0;
-};
-
-/**
- * Print position in the cordinates container
- * @return {google.maps.LatLng/L.LatLng/LatLngLiteral} mouseLatLng
- */
-trackdirect.models.Map.prototype._renderCordinatesContainer = function (
-  mouseLatLng
-) {
-  var options = this.getTdMapOptions();
-  if (typeof options.cordinatesContainer === "undefined") {
-    return;
-  }
-  if (options.cordinatesContainer == null) {
-    return;
-  }
-
-  var lat = null;
-  var lng = null;
-  if (typeof mouseLatLng.lat == "function") {
-    lat = mouseLatLng.lat();
-    lng = mouseLatLng.lng();
-  } else {
-    lat = mouseLatLng.lat;
-    lng = mouseLatLng.lng;
-  }
-
-  if (lat <= 90 && lat >= -90 && lng <= 180 && lng >= -180) {
-    var content = "";
-    content += this._getGpsDegreeFromGpsDecimal(lat.toFixed(5), "lat");
-    content += " " + this._getGpsDegreeFromGpsDecimal(lng.toFixed(5), "lon");
-    content += "<br>" + lat.toFixed(5) + ", " + lng.toFixed(5);
-    content += "<br>" + this._getMaidenheadLocatorFromGpsDecimal(lat, lng);
-
-    $("#" + options.cordinatesContainer).html(content);
-  }
-};
-
-/**
- * Convert decimal gps position to degree format
- * @param {float} dms
- * @param {string} type
- * @return {string}
- */
-trackdirect.models.Map.prototype._getGpsDegreeFromGpsDecimal = function (
-  dms,
-  type
-) {
-  var sign = 1,
-    Abs = 0;
-  var days, minutes, secounds, direction;
-
-  if (dms < 0) {
-    sign = -1;
-  }
-  Abs = Math.abs(Math.round(dms * 1000000));
-  //Math.round is used to eliminate the small error caused by rounding in the computer:
-  //e.g. 0.2 is not the same as 0.20000000000284
-  //Error checks
-  if (type == "lat" && Abs > 90 * 1000000) {
-    //alert(" Degrees Latitude must be in the range of -90. to 90. ");
-    return false;
-  } else if (type == "lon" && Abs > 180 * 1000000) {
-    //alert(" Degrees Longitude must be in the range of -180 to 180. ");
-    return false;
-  }
-
-  days = Math.floor(Abs / 1000000);
-  minutes = Math.floor((Abs / 1000000 - days) * 60);
-  secounds = (
-    (Math.floor(((Abs / 1000000 - days) * 60 - minutes) * 100000) * 60) /
-    100000
-  ).toFixed();
-  days = days * sign;
-  if (type == "lat") direction = days < 0 ? "S" : "N";
-  if (type == "lon") direction = days < 0 ? "W" : "E";
-  //else return value
-  return days * sign + "º " + minutes + "' " + secounds + "'' " + direction;
-};
-
-/**
- * Convert decimal gps position to maidenhead locator
- * @param {float} lat
- * @param {float} lng
- * @return {string}
- */
-trackdirect.models.Map.prototype._getMaidenheadLocatorFromGpsDecimal = function (
-  lat,
-  lng,
-) {
-  const chars = 'ABCDEFGHIJKLMNOPQRSTUVX';
-  var result = '';
-  lng = lng + 180;
-  lat = lat + 90;
-  result  = chars.charAt(parseInt(lng / 20));
-  result += chars.charAt(parseInt(lat / 10));
-  result += parseInt(lng / 2 % 10);
-  result += parseInt(lat % 10);
-  lng_r = (lng - parseInt(lng/2)*2) * 60;
-  lat_r = (lat - parseInt(lat)) * 60;
-  result += chars.charAt(parseInt(lng_r/5));
-  result += chars.charAt(parseInt(lat_r/2.5));
-  return result;
-};
diff --git a/jslib/src/trackdirect/models/MapState.js b/jslib/src/trackdirect/models/MapState.js
deleted file mode 100755
index 418cbd5760d143d1d703556553f062eb7bfb2205..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/MapState.js
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * Class trackdirect.models.MapState
- */
-trackdirect.models.MapState = function () {
-  this._init();
-};
-
-/**
- * Init object
- */
-trackdirect.models.MapState.prototype._init = function () {
-  // Filtering on stations
-  this.isFilterMode = false;
-  this.filterStationIds = [];
-
-  // Booleans that controls what is visible
-  this.isGhostMarkersVisible = false;
-  this.isCwopMarkersVisible = true;
-  this.isStationaryMarkersVisible = true;
-  this.isInternetMarkersVisible = true;
-  this.isUnknownMarkersVisible = true;
-  this.isOgflymMarkersVisible = true;
-
-  // Array of vissible symbols (each value is an array with two values)
-  this.visibleSymbols = [];
-
-  /// Imperial och Metric
-  this.useImperialUnit = false;
-
-  // Show PHG and RNG circles?
-  this.showPHGCircles = 0;
-  this.showRNGCircles = 0;
-
-  // Tracking
-  this.trackStationId = null;
-  this.onlyTrackRecentPackets = false;
-
-  this.timeLengthInSeconds = 3600;
-  this.endTimeTravelTimestamp = null;
-
-  // Z-index counter
-  this.currentMarkerZindex = 200;
-
-  // Diff between client and server unix timestamp
-  this.serverClientTimestampDiff = 0;
-
-  // Currently open trackdirect.models.InfoWindow
-  this.openInfoWindow = null;
-
-  // markerIdKey to open info window for as soon as possible
-  this.openInfoWindowForMarkerIdKey = null;
-};
-
-/**
- * Returns the currently oldest allowed packet timestamp
- * @return int
- */
-trackdirect.models.MapState.prototype.getOldestAllowedPacketTimestamp =
-  function () {
-    var oldestAllowedTimestamp =
-      Math.floor(Date.now() / 1000) - this.timeLengthInSeconds;
-    if (this.endTimeTravelTimestamp !== null) {
-      oldestAllowedTimestamp =
-        this.endTimeTravelTimestamp - this.timeLengthInSeconds;
-    }
-    return oldestAllowedTimestamp;
-  };
-
-/**
- * Set the time length currently used, how old a packet may be (in seconds)
- * @param {int} seconds
- */
-trackdirect.models.MapState.prototype.setTimeLength = function (seconds) {
-  this.timeLengthInSeconds = seconds;
-};
-
-/**
- * Returns the time length currently used, how old a packet may be (in seconds)
- * @return {int}
- */
-trackdirect.models.MapState.prototype.getTimeLength = function () {
-  return this.timeLengthInSeconds;
-};
-
-/**
- * Get client timestamp based on server timestamp
- * @param {int} serverTimestamp
- * @return {int}
- */
-trackdirect.models.MapState.prototype.getClientTimestamp = function (
-  serverTimestamp
-) {
-  return serverTimestamp - this.serverClientTimestampDiff;
-};
-
-/**
- * Set normal performance by not forcing user to zoom more for details
- * @param {int} serverTimestamp
- */
-trackdirect.models.MapState.prototype.setServerCurrentTimestamp = function (
-  serverTimestamp
-) {
-  this.serverClientTimestampDiff =
-    serverTimestamp - Math.floor(Date.now() / 1000);
-};
-
-/**
- * Is info window open
- */
-trackdirect.models.MapState.prototype.isInfoWindowOpen = function () {
-  if (this.openInfoWindow === null) {
-    return false;
-  }
-  return this.openInfoWindow.isInfoWindowOpen();
-};
-
-/**
- * Is info window open for specified marker
- * @param {trackdirect.models.Marker} marker
- */
-trackdirect.models.MapState.prototype.isMarkerInfoWindowOpen = function (
-  marker
-) {
-  if (!this.isInfoWindowOpen()) {
-    return false;
-  }
-
-  if (this.openInfoWindow.getPolyline() !== null) {
-    return false;
-  }
-
-  if (this.openInfoWindow.getMarker() === marker) {
-    return true;
-  }
-
-  return false;
-};
-
-/**
- * Is info window open for specified polyline
- * @param {google.maps.Polyline} polyline
- */
-trackdirect.models.MapState.prototype.isPolylineInfoWindowOpen = function (
-  polyline
-) {
-  if (!this.isInfoWindowOpen()) {
-    return false;
-  }
-
-  if (this.openInfoWindow.getPolyline() === null) {
-    return false;
-  }
-
-  if (this.openInfoWindow.getPolyline() === polyline) {
-    return true;
-  }
-
-  return false;
-};
-
-/**
- * Returns an array of stationIds that we are fitlering on
- * @return {array}
- */
-trackdirect.models.MapState.prototype.getFilterStationIds = function () {
-  return this.filterStationIds;
-};
-
-/**
- * get track station
- * @return {int}
- */
-trackdirect.models.MapState.prototype.getTrackStationId = function () {
-  return this.trackStationId;
-};
diff --git a/jslib/src/trackdirect/models/Marker.js b/jslib/src/trackdirect/models/Marker.js
deleted file mode 100755
index 1b2c254d58d224dd166a2d3f2d2d3793bd019844..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/Marker.js
+++ /dev/null
@@ -1,1471 +0,0 @@
-/**
- * Class trackdirect.models.Marker
- * @see https://developers.google.com/maps/documentation/javascript/reference#Marker
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isDotMarker
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.Marker = function (packet, isDotMarker, map) {
-  this.packet = packet;
-  this._isDotMarker = isDotMarker;
-  this._defaultMap = map;
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Marker.call(this, this._getGoogleMarkerOptions());
-  } else if (typeof L === "object") {
-    L.Marker.call(
-      this,
-      this.packet.getLatLngLiteral(),
-      this._getLeafletMarkerOptions()
-    );
-  }
-
-  this._init();
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.setMap(null);
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.Marker.prototype = Object.create(
-    google.maps.Marker.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.Marker.prototype = Object.create(L.Marker.prototype);
-}
-trackdirect.models.Marker.prototype.constructor = trackdirect.models.Marker;
-
-/**
- * Init object
- */
-trackdirect.models.Marker.prototype._init = function () {
-  // Init variables
-  this._tdEventListeners = {};
-
-  this.hasLabel = false;
-  this.showAsMarker = false;
-  this.overwrite = false;
-
-  this.markerIdKey = null;
-  this.label = null;
-
-  this.transmitPolyLine = null;
-  this.directionPolyLine = null;
-
-  this.phgCircle = null;
-  this.rngCircle = null;
-
-  this.hideTimerId = null;
-  this.toOldTimerId = null;
-
-  if (!this._isDotMarker) {
-    this.showAsMarker = true;
-    if (
-      this.packet.map_id != 1 &&
-      this.packet.map_id != 2 &&
-      this.packet.map_id != 12
-    ) {
-      // Ghost marker!
-      this.setOpacity(0.5);
-    } else {
-      this.hasLabel = true;
-    }
-  }
-
-  if (this._defaultMap.state.endTimeTravelTimestamp === null) {
-    this._addMarkerToOldTimeout(0);
-  }
-  this._addMarkerTooltip();
-};
-
-/**
- * Add listener to events
- * @param {string} event
- * @param {string} handler
- */
-trackdirect.models.Marker.prototype.addTdListener = function (event, handler) {
-  if (!(event in this._tdEventListeners)) {
-    this._tdEventListeners[event] = [];
-  }
-  this._tdEventListeners[event].push(handler);
-};
-
-/**
- * Returns true if marker is of type "dot-marker"
- */
-trackdirect.models.Marker.prototype.isDotMarker = function () {
-  return this._isDotMarker;
-};
-
-/**
- * Returns true if marker is visible
- * @return {boolean}
- */
-trackdirect.models.Marker.prototype.isVisible = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() !== "undefined" && this.getMap() !== null) {
-      return true;
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      return true;
-    }
-  }
-  return false;
-};
-
-/**
- * Get position literal
- * @return {LatLngLiteral}
- */
-trackdirect.models.Marker.prototype.getPositionLiteral = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var latLng = this.getPosition();
-    if (typeof latLng !== "undefined" && typeof latLng.lat === "function") {
-      return { lat: latLng.lat(), lng: latLng.lng() };
-    } else {
-      return latLng;
-    }
-  } else if (typeof L === "object") {
-    var latLng = this.getLatLng();
-    if (typeof latLng !== "undefined") {
-      return { lat: latLng.lat, lng: latLng.lng };
-    } else {
-      return latLng;
-    }
-  }
-  return {};
-};
-
-/**
- * Show marker on default map
- */
-trackdirect.models.Marker.prototype.show = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-      this.setMap(this._defaultMap);
-    }
-  } else if (typeof L === "object") {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  }
-
-  if (this.hideTimerId !== null) {
-    clearTimeout(this.hideTimerId);
-  }
-
-  this._emitTdEventListeners("onshow");
-};
-
-/**
- * Hide marker
- * @param {int} delayInMilliSeconds
- * @param {boolean} onlyHideIfNeeded
- */
-trackdirect.models.Marker.prototype.hide = function (
-  delayInMilliSeconds,
-  onlyHideIfNeeded,
-  hideOpenInfoWindow
-) {
-  delayInMilliSeconds =
-    typeof delayInMilliSeconds !== "undefined" ? delayInMilliSeconds : 0;
-  onlyHideIfNeeded =
-    typeof onlyHideIfNeeded !== "undefined" ? onlyHideIfNeeded : false;
-  hideOpenInfoWindow =
-    typeof hideOpenInfoWindow !== "undefined" ? hideOpenInfoWindow : true;
-
-  if (delayInMilliSeconds > 0) {
-    this._hideLater(delayInMilliSeconds, onlyHideIfNeeded);
-    return;
-  }
-
-  if (onlyHideIfNeeded && this.shouldMarkerBeVisible()) {
-    return;
-  }
-
-  if (
-    hideOpenInfoWindow &&
-    this._defaultMap.state.isMarkerInfoWindowOpen(this)
-  ) {
-    this._defaultMap.state.openInfoWindow.hide();
-  }
-
-  if (this.isVisible()) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      this.setMap(null);
-    } else if (typeof L === "object") {
-      this._defaultMap.removeLayer(this);
-    }
-  }
-
-  if (this.showAsMarker) {
-    this.hideLabel();
-  }
-
-  this.hidePHGCircle();
-  this.hideRNGCircle();
-
-  if (this.hideTimerId !== null) {
-    clearTimeout(this.hideTimerId);
-  }
-
-  this._emitTdEventListeners("onhide");
-};
-
-/**
- * get Marker default Map
- * @return {trackdirect.models}
- */
-trackdirect.models.Marker.prototype.getDefaultMap = function () {
-  return this._defaultMap;
-};
-
-/**
- * get Marker currently active Map
- * @return {trackdirect.models}
- */
-trackdirect.models.Marker.prototype.getMap = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var map = google.maps.Marker.prototype.getMap.call(this);
-    if (typeof map !== "undefined") {
-      return map;
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      return this._defaultMap;
-    }
-  }
-  return null;
-};
-
-/**
- * get Marker Map State
- * @return {trackdirect.models.MapState}
- */
-trackdirect.models.Marker.prototype.getState = function () {
-  return this._defaultMap.state;
-};
-
-/**
- * get Marker zIndex
- * @return {int}
- */
-trackdirect.models.Marker.prototype.getZIndex = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    return this.zIndex;
-  } else if (typeof L === "object") {
-    return this.options.zIndexOffset;
-  }
-  return 0;
-};
-
-/**
- * Show marker including all realted that should be visible at current zoom level
- */
-trackdirect.models.Marker.prototype.showCompleteMarker = function () {
-  // In filter-mode we only show stations that we filter on
-  if (
-    this._defaultMap.state.isFilterMode &&
-    this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id) == -1
-  ) {
-    return;
-  }
-
-  // We check that marker is not to old (if we are filtering we show station latest marker even if it is to old)
-  if (this.shouldMarkerBeVisible()) {
-    if (this.showAsMarker) {
-      this.show();
-    }
-
-    if (this._defaultMap.state.isFilterMode) {
-      this.showMarkerPrevPosition();
-      this.showMarkerTail();
-      this.showLabel();
-    } else {
-      if (
-        this._defaultMap.getZoom() >=
-        trackdirect.settings.minZoomForMarkerPrevPosition
-      ) {
-        // If we also should show details, do it
-        this.showMarkerPrevPosition();
-      }
-      if (
-        this._defaultMap.getZoom() >= trackdirect.settings.minZoomForMarkerTail
-      ) {
-        // If we also should show tail, do it
-        this.showMarkerTail();
-      }
-      if (
-        this._defaultMap.getZoom() >= trackdirect.settings.minZoomForMarkerLabel
-      ) {
-        // If we also should show label, do it
-        this.showLabel();
-      }
-    }
-
-    if (this._defaultMap.state.showPHGCircles == 1) {
-      this.showPHGCircle(true);
-    } else if (this._defaultMap.state.showPHGCircles == 2) {
-      this.showPHGCircle(false);
-    }
-
-    if (this._defaultMap.state.showRNGCircles == 1) {
-      this._showRNGCircle(true);
-    } else if (this._defaultMap.state.showRNGCircles == 2) {
-      this._showRNGCircle(false);
-    }
-  }
-};
-
-/**
- * Hide marker including all related
- */
-trackdirect.models.Marker.prototype.hideCompleteMarker = function () {
-  this.hide();
-
-  // If markers is hidden also the details should be
-  this.hideMarkerPrevPosition();
-  this.hideMarkerTail();
-};
-
-/**
- * Show markers details that should be visible
- */
-trackdirect.models.Marker.prototype.showMarkerDetails = function () {
-  if (
-    this._defaultMap.getZoom() >=
-    trackdirect.settings.minZoomForMarkerPrevPosition
-  ) {
-    // If we also should show details, do it
-    this.showMarkerPrevPosition();
-  }
-
-  if (this._defaultMap.getZoom() >= trackdirect.settings.minZoomForMarkerTail) {
-    // If we also should show details, do it
-    this.showMarkerTail();
-  }
-
-  if (
-    this._defaultMap.getZoom() >= trackdirect.settings.minZoomForMarkerLabel
-  ) {
-    // If we also should show label, do it
-    this.showLabel();
-  }
-};
-
-/**
- * Hide markers details that should not be visible
- */
-trackdirect.models.Marker.prototype.hideMarkerDetails = function () {
-  if (
-    this._defaultMap.getZoom() <
-    trackdirect.settings.minZoomForMarkerPrevPosition
-  ) {
-    this.hideMarkerPrevPosition();
-  }
-
-  if (this._defaultMap.getZoom() < trackdirect.settings.minZoomForMarkerTail) {
-    this.hideMarkerTail();
-  }
-
-  if (this._defaultMap.getZoom() < trackdirect.settings.minZoomForMarkerLabel) {
-    this.hideLabel();
-  }
-};
-
-/**
- * Show marker label
- */
-trackdirect.models.Marker.prototype.showLabel = function () {
-  if (
-    !this._defaultMap.state.isFilterMode ||
-    this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id) > -1
-  ) {
-    if (
-      this.isVisible() &&
-      this.label !== null &&
-      (this._defaultMap.getZoom() >=
-        trackdirect.settings.minZoomForMarkerLabel ||
-        this._defaultMap.state.filterStationIds.indexOf(
-          this.packet.station_id
-        ) > -1) &&
-      this.hasLabel &&
-      this.packet.hasConfirmedMapId()
-    ) {
-      this.label.show();
-    }
-  }
-};
-
-/**
- * Hide marker label
- */
-trackdirect.models.Marker.prototype.hideLabel = function () {
-  if (this.label !== null && this.hasLabel) {
-    this.label.hide();
-  }
-};
-
-/**
- * Show marker previous positions (the dot markers)
- */
-trackdirect.models.Marker.prototype.showMarkerPrevPosition = function () {
-  if (this.shouldMarkerBeVisible() && this.packet.hasConfirmedMapId()) {
-    // Handle the history dots
-
-    var oldestAllowedPacketTimestamp =
-      this._defaultMap.state.getOldestAllowedPacketTimestamp();
-    var dotMarkers = this._defaultMap.markerCollection.getDotMarkers(
-      this.markerIdKey
-    );
-    for (var i = 0; i < dotMarkers.length; i++) {
-      var dotMarker = dotMarkers[i];
-
-      // Only show prev positions that is not to old (not even prev positions for filtered stations)
-      if (
-        this._defaultMap.state.getClientTimestamp(dotMarker.packet.timestamp) >
-        oldestAllowedPacketTimestamp
-      ) {
-        dotMarker.show();
-      }
-    }
-
-    // Handle markers that still is marker but shown as dotmarker (this happens when a newer marker exists)
-    if (!this.showAsMarker) {
-      this.show();
-    }
-  }
-};
-
-/**
- * Hide marker previous positions (the dot markers)
- */
-trackdirect.models.Marker.prototype.hideMarkerPrevPosition = function () {
-  if (this.packet.hasConfirmedMapId()) {
-    // Handle the history dots
-    var dotMarkers = this._defaultMap.markerCollection.getDotMarkers(
-      this.markerIdKey
-    );
-    for (var i = 0; i < dotMarkers.length; i++) {
-      var dotMarker = dotMarkers[i];
-      dotMarker.hide();
-    }
-
-    if (!this.showAsMarker) {
-      // Handle markers that still is marker but shown as dotmarker (this happens when a newer packet with another markerId exists)
-      this.hide();
-    }
-  }
-};
-
-/**
- * Show marker tail (the polyline)
- */
-trackdirect.models.Marker.prototype.showMarkerTail = function () {
-  if (this.shouldMarkerBeVisible()) {
-    if (
-      this.packet.hasConfirmedMapId() === false &&
-      this._defaultMap.state.showGhostPosition
-    ) {
-      // Ghost markers is calculated as tail
-      this.show();
-    }
-
-    // Handle polylines
-    if (
-      this._defaultMap.markerCollection.hasPolyline(this.markerIdKey) &&
-      this.packet.hasConfirmedMapId()
-    ) {
-      var polyline = this._defaultMap.markerCollection.getMarkerPolyline(
-        this.markerIdKey
-      );
-      // Before we show polyline we remove all points that is to old
-      while (
-        this._defaultMap.state.getClientTimestamp(
-          polyline.getPathItem(0).marker.packet.timestamp
-        ) < this._defaultMap.state.getOldestAllowedPacketTimestamp()
-      ) {
-        var relatedMarker = polyline.getPathItem(0).marker;
-        if (relatedMarker.getMap() === null) {
-          // related marker is to old and is not visible, it will never be shown.
-          // We let the regular remove-functionality remove the marker
-          polyline.removePathItem(0);
-        } else {
-          break;
-        }
-      }
-      polyline.show();
-    }
-
-    // Handle dashed polylines
-    var dashedPolyline =
-      this._defaultMap.markerCollection.getMarkerDashedPolyline(
-        this.markerIdKey
-      );
-    if (dashedPolyline !== null && this.packet.hasConfirmedMapId()) {
-      // The related marker is the marker where the dashed polyline STARTS
-      var dashedPolyLineRelatedMarker =
-        this._defaultMap.markerCollection.getMarker(
-          dashedPolyline.relatedMarkerIdKey
-        );
-
-      // Validate that the related marker is shown or will be shown before showing dashed polyline
-      // Since related marker is older than current we never need to show it if it is to old (not even when we are filtering)
-      if (
-        this._defaultMap.state.getClientTimestamp(
-          dashedPolyLineRelatedMarker.packet.timestamp
-        ) > this._defaultMap.state.getOldestAllowedPacketTimestamp()
-      ) {
-        dashedPolyline.show();
-
-        if (typeof dashedPolyline.relatedMarkerIdKey !== "undefined") {
-          var relatedMarker = this._defaultMap.markerCollection.getMarker(
-            dashedPolyline.relatedMarkerIdKey
-          );
-          if (
-            relatedMarker !== null &&
-            relatedMarker.markerIdKey !== this.markerIdKey
-          ) {
-            relatedMarker.showMarkerTail();
-          }
-        }
-      }
-    }
-
-    // Handle direction polyline
-    if (this.directionPolyLine !== null) {
-      this.directionPolyLine.show();
-    }
-  }
-};
-
-/**
- * Hide marker tail (the polyline)
- * @param {int} markerIdKey
- */
-trackdirect.models.Marker.prototype.hideMarkerTail = function (markerIdKey) {
-  var latestMarker = this._defaultMap.markerCollection.getStationLatestMarker(
-    this.packet.station_id
-  );
-  if (
-    this._defaultMap.state.isMarkerInfoWindowOpen(this) ||
-    this._defaultMap.state.isMarkerInfoWindowOpen(latestMarker)
-  ) {
-    // do not hide if info window is open
-    return;
-  }
-
-  if (
-    this.packet.map_id != 1 &&
-    this.packet.map_id != 2 &&
-    this.packet.map_id != 12
-  ) {
-    // Ghost markers is calculated as tail
-    this.hide();
-    if (this.showAsMarker) {
-      this.hideLabel();
-    }
-  }
-
-  // Handle polylines
-  var polyline = this._defaultMap.markerCollection.getMarkerPolyline(
-    this.markerIdKey
-  );
-  if (polyline !== null) {
-    if (this._defaultMap.state.isPolylineInfoWindowOpen(polyline)) {
-      this._defaultMap.state.openInfoWindow.hide();
-    }
-
-    polyline.hide();
-  }
-
-  // TODO: NEEDED?
-  // Handle dashed polylines that STARTS at this marker
-  /*
-    if (this._defaultMap.markerCollection.hasRelatedDashedPolyline(this)) {
-        if (this._defaultMap.state.isPolylineInfoWindowOpen(this._relatedMarkerOriginDashedPolyLine)) {
-            this._defaultMap.state.openInfoWindow.hide();
-        }
-        this._relatedMarkerOriginDashedPolyLine.hide();
-    }
-    */
-
-  // Handle dashed polylines that ENDS at this marker
-  // Since tail for this marker is hidden also the dashed tail should be hidden
-  var dashedPolyline =
-    this._defaultMap.markerCollection.getMarkerDashedPolyline(this.markerIdKey);
-  if (dashedPolyline !== null) {
-    dashedPolyline.hide();
-
-    if (typeof dashedPolyline.relatedMarkerIdKey !== "undefined") {
-      var relatedMarker = this._defaultMap.markerCollection.getMarker(
-        dashedPolyline.relatedMarkerIdKey
-      );
-      if (
-        relatedMarker !== null &&
-        relatedMarker.markerIdKey !== this.markerIdKey
-      ) {
-        relatedMarker.hideMarkerTail();
-      }
-    }
-  }
-
-  // Handle direction polyline
-  if (this.directionPolyLine !== null) {
-    this.directionPolyLine.hide();
-  }
-};
-
-/**
- * Hide RNG Cirlce
- */
-trackdirect.models.Marker.prototype.hideRNGCircle = function () {
-  if (this.rngCircle !== null) {
-    this.rngCircle.hide();
-  }
-};
-
-/**
- * Show marker RNG Cirlce
- * @param {boolean} isHalf
- */
-trackdirect.models.Marker.prototype.showRNGCircle = function (isHalf) {
-  this.hideRNGCircle();
-  this.rngCircle = new trackdirect.models.RngCircle(
-    this.packet,
-    this._defaultMap,
-    isHalf
-  );
-  this.rngCircle.show();
-};
-
-/**
- * Hide RNG Cirlce
- */
-trackdirect.models.Marker.prototype.hidePHGCircle = function () {
-  if (this.phgCircle !== null) {
-    this.phgCircle.hide();
-  }
-};
-
-/**
- * Show marker RNG Cirlce
- * @param {boolean} isHalf
- */
-trackdirect.models.Marker.prototype.showPHGCircle = function (isHalf) {
-  this.hidePHGCircle();
-  this.phgCircle = new trackdirect.models.PhgCircle(
-    this.packet,
-    this._defaultMap,
-    isHalf
-  );
-  this.phgCircle.show();
-};
-
-/**
- * Set this marker to be overwritten by next packet from this station
- */
-trackdirect.models.Marker.prototype.markToBeOverWritten = function () {
-  this.overwrite = true;
-};
-
-/**
- * Returns true if marker is moving and is based on only one single packet
- * @return boolean
- */
-trackdirect.models.Marker.prototype.isSingleMovingMarker = function () {
-  var markerCounter = 0;
-  if (
-    typeof this.packet.marker_counter !== "undefined" &&
-    this.packet.marker_counter !== null
-  ) {
-    markerCounter = this.packet.marker_counter;
-  }
-
-  if (
-    this.packet.position_timestamp == this.packet.timestamp &&
-    this.packet.is_moving == 1 &&
-    [1, 2, 7, 12].indexOf(this.packet.map_id) >= 0 &&
-    markerCounter <= 1 &&
-    !this._defaultMap.markerCollection.hasDotMarkers(this.markerIdKey)
-  ) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returns true if marker should be visible, otherwise false
- * @return {boolean}
- */
-trackdirect.models.Marker.prototype.shouldMarkerBeVisible = function () {
-  if (this.packet.map_id == 14) {
-    // A kill-packet should never be visible
-    return false;
-  }
-
-  if (
-    this.packet.source_id == 2 &&
-    !this._defaultMap.state.isCwopMarkersVisible
-  ) {
-    // CWOP weather stations should not be visible
-    return false;
-  }
-
-  if (!this._defaultMap.state.isStationaryMarkersVisible) {
-    if (!this.isMovingStation()) {
-      return false;
-    }
-  }
-
-  if (!this._defaultMap.state.isUnknownMarkersVisible) {
-    if (this.packet.station_name.substring(0, 7) == "UNKNOWN") {
-      return false;
-    }
-  }
-
-  if (!this._defaultMap.state.isOgflymMarkersVisible) {
-    if (this.packet.raw_path.indexOf("OGFLYM") >= 0) {
-      return false;
-    }
-  }
-
-  if (!this._defaultMap.state.isInternetMarkersVisible) {
-    if (
-      this.packet.raw_path.indexOf("TCPIP") >= 0 ||
-      this.packet.raw_path.indexOf("qAC") >= 0 ||
-      this.packet.raw_path.indexOf("qAX") >= 0 ||
-      this.packet.raw_path.indexOf("qAU") >= 0 ||
-      this.packet.raw_path.indexOf("qAS") >= 0
-    ) {
-      if (this.packet.station_id_path.length == 0) {
-        // Internet stations should not be visible
-        return false;
-      }
-    }
-  }
-
-  if (this._defaultMap.state.visibleSymbols.length > 0) {
-    var symbolFound = false;
-    for (var key in this._defaultMap.state.visibleSymbols) {
-      var visibleSymbol = this._defaultMap.state.visibleSymbols[key];
-      if (
-        this.packet.symbol.charCodeAt(0) == visibleSymbol[0] &&
-        this.packet.symbol_table.charCodeAt(0) == visibleSymbol[1]
-      ) {
-        symbolFound = true;
-      }
-    }
-    if (!symbolFound) {
-      return false;
-    }
-  }
-
-  if (
-    this.packet.map_id != 1 &&
-    this.packet.map_id != 2 &&
-    this.packet.map_id != 12 &&
-    !this._defaultMap.state.isGhostMarkersVisible
-  ) {
-    // Ghost positions should not be visible
-    return false;
-  }
-
-  if (
-    this._defaultMap.state.isFilterMode &&
-    this._defaultMap.state.filterStationIds.indexOf(this.packet.station_id) > -1
-  ) {
-    // We are filtering and we are filtering on this station
-    var latestStationMarker =
-      this._defaultMap.markerCollection.getStationLatestMarker(
-        this.packet.station_id
-      );
-    if (
-      this._defaultMap.state.getClientTimestamp(this.packet.timestamp) <=
-        this._defaultMap.state.getOldestAllowedPacketTimestamp() &&
-      typeof latestStationMarker !== "undefined" &&
-      latestStationMarker !== null &&
-      !this._isMarkersEqual(latestStationMarker)
-    ) {
-      // Is to old (and later confirmed markers exists)
-      return false;
-    }
-
-    return true;
-  } else {
-    if (
-      this._defaultMap.state.isFilterMode &&
-      this._defaultMap.state.filterStationIds.indexOf(
-        this.packet.station_id
-      ) === -1
-    ) {
-      // We are filtering and we are not filtering on this station
-      return false;
-    }
-
-    if (
-      this.packet.map_id != 1 &&
-      this.packet.map_id != 2 &&
-      this.packet.map_id != 12 &&
-      this._defaultMap.getZoom() < trackdirect.settings.minZoomForMarkerTail
-    ) {
-      // Ghost markers is only visible when tail is visible (when we are not in filtering mode)
-      return false;
-    }
-
-    if (
-      this._defaultMap.state.getClientTimestamp(this.packet.timestamp) <=
-      this._defaultMap.state.getOldestAllowedPacketTimestamp()
-    ) {
-      // Is to old
-      return false;
-    }
-
-    if (
-      this._defaultMap.getZoom() < trackdirect.settings.minZoomForMarkers
-    ) {
-      // We are to much zoomed out
-      return false;
-    }
-
-    return true;
-  }
-};
-
-/**
- * Returnes true if it looks like it is a moving marker
- * @return {boolean}
- */
-trackdirect.models.Marker.prototype.isMovingStation = function () {
-  if (this.packet.is_moving == 0) {
-    return false;
-  }
-
-  if (
-    this._defaultMap.state.getClientTimestamp(this.packet.position_timestamp) <
-    this._defaultMap.state.getOldestAllowedPacketTimestamp()
-  ) {
-    // This marker is supposed to be moving but has not moved for a long time
-    // Check that we have no later marker for this station that is considered moving
-    var stationLatestMovingMarkerIdKey =
-      this._defaultMap.markerCollection.getStationLatestMovingMarkerIdKey(
-        this.packet.station_id
-      );
-    if (stationLatestMovingMarkerIdKey == this.markerIdKey) {
-      // Stationary stations should not be visible
-      return false;
-    }
-  }
-
-  return true;
-};
-
-/**
- * Stop existing direction polyline is exists and is active
- */
-trackdirect.models.Marker.prototype.stopDirectionPolyline = function () {
-  if (this.directionPolyLine !== null) {
-    this.directionPolyLine.stop();
-  }
-};
-
-/**
- * Stop the marker to old timeout that removes marker
- */
-trackdirect.models.Marker.prototype.stopToOldTimeout = function () {
-  clearTimeout(this.toOldTimerId);
-  var dotMarkers = this._defaultMap.markerCollection.getDotMarkers(
-    this.markerIdKey
-  );
-  for (var j = 0; j < dotMarkers.length; j++) {
-    clearTimeout(dotMarkers[j].toOldTimerId);
-  }
-};
-
-/**
- * Get tooltip content for this marker
- * @return {string}
- */
-trackdirect.models.Marker.prototype.getToolTipContent = function () {
-  var iconUrl = trackdirect.services.symbolPathFinder.getFilePath(
-    this.packet.symbol_table,
-    this.packet.symbol,
-    null,
-    null,
-    null,
-    20,
-    20
-  );
-  var date = new Date(this.packet.timestamp * 1000);
-  var positionDate = new Date(this.packet.position_timestamp * 1000);
-
-  var dateString = moment(date).format(
-    trackdirect.settings.dateFormatNoTimeZone
-  );
-  if (this.packet.timestamp > this.packet.position_timestamp) {
-    dateString =
-      moment(positionDate).format(trackdirect.settings.dateFormatNoTimeZone) +
-      " - " +
-      moment(date).format(trackdirect.settings.dateFormatNoTimeZone);
-  }
-
-  if (this.packet.getOgnRegistration() != null) {
-    var name = escapeHtml(this.packet.station_name);
-    name += ", ";
-    name += escapeHtml(this.packet.getOgnRegistration());
-    if (this.packet.getOgnCN() !== null) {
-      name += " [" + escapeHtml(this.packet.getOgnCN()) + "]";
-    }
-    return (
-      '<div><img style="float: left; width:20px; height:20px;" src="' +
-      iconUrl +
-      '" />' +
-      '<span style="font-weight: bold; font-family: Helvetica; font-size: 10px; line-height: 22px; margin-left: 5px; margin-right: 25px">' +
-      name +
-      "</span></div>" +
-      '<div style="clear:both; font-family: Helvetica; font-size: 9px;">' +
-      dateString +
-      "</div>"
-    );
-  } else if (this.packet.station_name == this.packet.sender_name) {
-    return (
-      '<div><img style="float: left; width:20px; height:20px;" src="' +
-      iconUrl +
-      '" />' +
-      '<span style="font-weight: bold; font-family: Helvetica; font-size: 10px; line-height: 22px; margin-left: 5px; margin-right: 25px">' +
-      escapeHtml(this.packet.station_name) +
-      "</span></div>" +
-      '<div style="clear:both; font-family: Helvetica; font-size: 9px;">' +
-      dateString +
-      "</div>"
-    );
-  } else {
-    return (
-      '<div><img style="float: left; width:20px; height:20px;" src="' +
-      iconUrl +
-      '" />' +
-      '<span style="font-weight: bold; font-family: Helvetica; font-size: 10px; line-height: 22px; margin-left: 5px; margin-right: 25px">' +
-      escapeHtml(this.packet.station_name) +
-      "</span></div>" +
-      '<div style="clear:both; font-family: Helvetica; font-size: 9px;">Sent by ' +
-      escapeHtml(this.packet.sender_name) +
-      "</div>" +
-      '<div style="clear:both; font-family: Helvetica; font-size: 9px;">' +
-      dateString +
-      "</div>"
-    );
-  }
-};
-
-/**
- * Get a suitable google marker options object
- * @return {object}
- */
-trackdirect.models.Marker.prototype._getGoogleMarkerOptions = function () {
-  var anchorPoint = null;
-  if (this._isDotMarker) {
-    var colorId = trackdirect.services.stationColorCalculator.getColorId(
-      this.packet
-    );
-    var iconUrl =
-      trackdirect.settings.baseUrl +
-      trackdirect.settings.imagesBaseDir +
-      "dotColor" +
-      colorId +
-      ".png";
-    var scaledImageSize = new google.maps.Size(12, 12);
-    var imageSize = new google.maps.Size(12, 12);
-    var imageAnchor = new google.maps.Point(6, 6);
-    var opacity = 1.0;
-  } else {
-    var scalePx = 24;
-    var sizePx = 24;
-    if (this._shouldMarkerSymbolBeScaled()) {
-      scalePx = 48;
-    }
-    if (this.packet.course !== null) {
-      sizePx = sizePx + 7;
-      if (scalePx < sizePx) {
-        scalePx = sizePx;
-      }
-    }
-
-    var imageSize = new google.maps.Size(scalePx, scalePx);
-    var imageAnchor = new google.maps.Point(
-      Math.floor(scalePx / 2),
-      Math.floor(scalePx / 2)
-    );
-    var scaledImageSize = new google.maps.Size(scalePx, scalePx);
-    var iconUrl = trackdirect.services.symbolPathFinder.getFilePath(
-      this.packet.symbol_table,
-      this.packet.symbol,
-      this.packet.course,
-      sizePx,
-      sizePx,
-      scalePx,
-      scalePx
-    );
-    if (isHighDensity()) {
-      imageSize = new google.maps.Size(scalePx * 2, scalePx * 2);
-      anchorPoint = new google.maps.Point(0, -Math.floor(scalePx / 2));
-      iconUrl = trackdirect.services.symbolPathFinder.getFilePath(
-        this.packet.symbol_table,
-        this.packet.symbol,
-        this.packet.course,
-        sizePx,
-        sizePx,
-        scalePx * 2,
-        scalePx * 2
-      );
-    }
-
-    var opacity = 1.0;
-  }
-
-  return {
-    position: this.packet.getLatLngLiteral(),
-    zIndex: this._defaultMap.state.currentMarkerZindex,
-    icon: {
-      url: iconUrl,
-      size: imageSize,
-      scaledSize: scaledImageSize,
-      origin: new google.maps.Point(0, 0),
-      anchor: imageAnchor,
-    },
-    opacity: opacity,
-    anchorPoint: anchorPoint,
-  };
-};
-
-/**
- * Get a suitable leaflet marker options object
- * @return {object}
- */
-trackdirect.models.Marker.prototype._getLeafletMarkerOptions = function () {
-  if (this._isDotMarker) {
-    var colorId = trackdirect.services.stationColorCalculator.getColorId(
-      this.packet
-    );
-    var iconUrl =
-      trackdirect.settings.baseUrl +
-      trackdirect.settings.imagesBaseDir +
-      "dotColor" +
-      colorId +
-      ".png";
-    var icon = L.icon({
-      iconUrl: iconUrl,
-      iconSize: [12, 12],
-      iconAnchor: [6, 6],
-    });
-    var opacity = 0.8;
-  } else {
-    var scalePx = 24;
-    var sizePx = 24;
-    if (this._shouldMarkerSymbolBeScaled()) {
-      scalePx = 48;
-    }
-    if (this.packet.course !== null) {
-      sizePx = sizePx + 7;
-      if (scalePx < sizePx) {
-        scalePx = sizePx;
-      }
-    }
-
-    var iconUrl = trackdirect.services.symbolPathFinder.getFilePath(
-      this.packet.symbol_table,
-      this.packet.symbol,
-      this.packet.course,
-      sizePx,
-      sizePx,
-      scalePx,
-      scalePx
-    );
-    var iconRetinaUrl = trackdirect.services.symbolPathFinder.getFilePath(
-      this.packet.symbol_table,
-      this.packet.symbol,
-      this.packet.course,
-      sizePx,
-      sizePx,
-      scalePx * 2,
-      scalePx * 2
-    );
-    var icon = L.icon({
-      iconUrl: iconUrl,
-      iconRetinaUrl: iconRetinaUrl,
-      iconSize: [scalePx, scalePx],
-      iconAnchor: [Math.floor(scalePx / 2), Math.floor(scalePx / 2)],
-    });
-
-    var opacity = 1.0;
-  }
-
-  var tooltipTitle = "";
-  if (typeof L.tooltip == "undefined") {
-    tooltipTitle = this.packet.station_name;
-  }
-
-  return {
-    zIndexOffset: this._defaultMap.state.currentMarkerZindex,
-    icon: icon,
-    opacity: opacity,
-    title: tooltipTitle,
-  };
-};
-
-/**
- * Returnes ture for symbols that that look better if they are scaled to twice the size
- * @param {boolean}
- */
-trackdirect.models.Marker.prototype._shouldMarkerSymbolBeScaled = function () {
-  if (typeof trackdirect.settings.symbolsToScale === "undefined") {
-    return false;
-  }
-
-  for (var i = 0; i < trackdirect.settings.symbolsToScale.length; i++) {
-    var symbol = trackdirect.settings.symbolsToScale[i][0];
-    var symbolTable = trackdirect.settings.symbolsToScale[i][1];
-
-    if (symbolTable == null && this.packet.symbol.charCodeAt() == symbol) {
-      return true;
-    } else if (
-      this.packet.symbol.charCodeAt() == symbol &&
-      this.packet.symbol_table.charCodeAt() == symbolTable
-    ) {
-      return true;
-    }
-  }
-
-  return false;
-};
-
-/**
- * Hide marker
- * @param {int} delayInMilliSeconds
- * @param {boolean} hideIfNeeded
- */
-trackdirect.models.Marker.prototype._hideLater = function (
-  delayInMilliSeconds,
-  onlyHideIfNeeded
-) {
-  var me = this;
-  this.hideTimerId = window.setTimeout(function () {
-    if (me._defaultMap.state.isMarkerInfoWindowOpen(me)) {
-      // User is looking at this marker, try to hide it later
-      me.hide(500);
-    } else {
-      // Only hide it if we are not filtering or if station has newer markers
-      if (!me.shouldMarkerBeVisible()) {
-        me.hide(0, onlyHideIfNeeded);
-      }
-    }
-  }, delayInMilliSeconds);
-};
-
-/**
- * Create marker tooltip
- */
-trackdirect.models.Marker.prototype._addMarkerTooltip = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this._addMarkerGoogleMapTooltip();
-  } else if (typeof L === "object") {
-    this._addMarkerLeafletMapTooltip();
-  }
-};
-
-/**
- * Create Leaflet map tooltip on marker
- */
-trackdirect.models.Marker.prototype._addMarkerLeafletMapTooltip = function () {
-  if (!trackdirect.isMobile) {
-    if (typeof L.tooltip != "undefined") {
-      var tooltip = L.tooltip({
-        direction: "right",
-        noWrap: true,
-        offset: [6, 30],
-        className: "leaflet-marker-tooltiptext",
-      });
-    }
-
-    var me = this;
-    var isMyTooltipVisible = false;
-    this.on("mouseover", function (e) {
-      if (typeof tooltip !== "undefined") {
-        tooltip.setContent(me.getToolTipContent());
-        tooltip.setLatLng(
-          new L.LatLng(me.packet.latitude, me.packet.longitude)
-        );
-        tooltip.addTo(me._defaultMap);
-        isMyTooltipVisible = true;
-      }
-
-      if (me.transmitPolyLine == null) {
-        me.transmitPolyLine = new trackdirect.models.TransmitPolyline(
-          me.packet,
-          me._defaultMap
-        );
-      }
-      me.transmitPolyLine.show();
-    });
-
-    this.on("mouseout", function (e) {
-      if (me.transmitPolyLine != null && me.transmitPolyLine.isVisible()) {
-        me.transmitPolyLine.hide(2000);
-      }
-
-      if (
-        typeof tooltip !== "undefined" &&
-        isMyTooltipVisible &&
-        me._defaultMap.hasLayer(tooltip)
-      ) {
-        tooltip.remove();
-        isMyTooltipVisible = false;
-      }
-    });
-
-    this.on("remove", function (e) {
-      if (me.transmitPolyLine != null && me.transmitPolyLine.isVisible()) {
-        me.transmitPolyLine.hide(0);
-      }
-
-      if (
-        typeof tooltip !== "undefined" &&
-        isMyTooltipVisible &&
-        me._defaultMap.hasLayer(tooltip)
-      ) {
-        tooltip.remove();
-        isMyTooltipVisible = false;
-      }
-    });
-  }
-};
-
-/**
- * Create Google map tooltip on marker
- */
-trackdirect.models.Marker.prototype._addMarkerGoogleMapTooltip = function () {
-  if (!trackdirect.isMobile) {
-    if (!$("#marker-tooltip").length) {
-      // Does not exists, create it
-      var tooltip = $(document.createElement("div"));
-      tooltip.attr("id", "marker-tooltip");
-      tooltip.css("display", "none");
-      tooltip.css("position", "absolute");
-
-      tooltip.css("margin", "15px");
-      tooltip.css("z-index", "90");
-      tooltip.css("padding", "3px");
-
-      // opacity
-      tooltip.css("opacity", "0.95");
-      tooltip.css("filter", "alpha(opacity=95)"); // For IE8 and earlier
-
-      // Radius
-      tooltip.css("-webkit-border-radius", "1px");
-      tooltip.css("-moz-border-radius", "1px");
-      tooltip.css("border-radius", "1px");
-
-      // Shadow
-      tooltip.css("-webkit-box-shadow", "0px 0px 3px 0px rgba(0,0,0,0.3)");
-      tooltip.css("-moz-box-shadow", "0px 0px 3px 0px rgba(0,0,0,0.3)");
-      tooltip.css("box-shadow", "0px 0px 3px 0px rgba(0,0,0,0.3)");
-
-      tooltip.css("background-color", "#fff");
-      tooltip.css("background", "#ffffff");
-
-      $("body").append(tooltip);
-    }
-
-    var me = this;
-    var isMyTooltipVisible = false;
-    google.maps.event.addListener(this, "mouseover", function () {
-      var point = this._fromGoogleLatLngToPoint(me.getPosition());
-      var mapElementId = this._defaultMap.getMapElementId();
-      $("#marker-tooltip")
-        .html(me.getToolTipContent())
-        .css({
-          left: point.x + $("#" + mapElementId).offset().left,
-          top: point.y + $("#" + mapElementId).offset().top,
-        })
-        .show();
-      isMyTooltipVisible = true;
-
-      if (me.transmitPolyLine == null) {
-        me.transmitPolyLine = new trackdirect.models.TransmitPolyline(
-          me.packet,
-          me._defaultMap
-        );
-      }
-      me.transmitPolyLine.show();
-    });
-
-    google.maps.event.addListener(this, "mouseout", function () {
-      if (me.transmitPolyLine != null && me.transmitPolyLine.isVisible()) {
-        me.transmitPolyLine.hide(2000);
-      }
-
-      if (isMyTooltipVisible) {
-        $("#marker-tooltip").hide();
-        isMyTooltipVisible = false;
-      }
-    });
-
-    this.addTdListener("onhide", function () {
-      if (me.transmitPolyLine != null && me.transmitPolyLine.isVisible()) {
-        me.transmitPolyLine.hide(0);
-      }
-
-      if (isMyTooltipVisible) {
-        $("#marker-tooltip").hide();
-        isMyTooltipVisible = false;
-      }
-    });
-  }
-};
-
-/**
- * Convert Google latlng to Point
- * @param {object} LatLng
- * @return {object} Point
- */
-trackdirect.models.Marker.prototype._fromGoogleLatLngToPoint = function (
-  latLng
-) {
-  var topRight = this._defaultMap
-    .getProjection()
-    .fromLatLngToPoint(this._defaultMap.getBounds().getNorthEast());
-  var bottomLeft = this._defaultMap
-    .getProjection()
-    .fromLatLngToPoint(this._defaultMap.getBounds().getSouthWest());
-  var scale = Math.pow(2, this._defaultMap.getZoom());
-  var worldPoint = this._defaultMap.getProjection().fromLatLngToPoint(latLng);
-  return new google.maps.Point(
-    (worldPoint.x - bottomLeft.x) * scale,
-    (worldPoint.y - topRight.y) * scale
-  );
-};
-
-/**
- * Returns true if markers are equal
- * @param {object} marker2
- * @return {boolean}
- */
-trackdirect.models.Marker.prototype._isMarkersEqual = function (marker2) {
-  var marker1 = this;
-  if (
-    typeof marker2 !== "undefined" &&
-    marker2 !== null &&
-    typeof marker1.packet !== "undefined" &&
-    typeof marker2.packet !== "undefined" &&
-    marker1.packet.station_id === marker2.packet.station_id &&
-    marker1.packet.timestamp === marker2.packet.timestamp &&
-    Math.round(marker1.packet.latitude * 100000) ===
-      Math.round(marker2.packet.latitude * 100000) &&
-    Math.round(marker1.packet.longitude * 100000) ===
-      Math.round(marker2.packet.longitude * 100000) &&
-    marker1.packet.map_id === marker2.packet.map_id
-  ) {
-    return true;
-  } else {
-    return false;
-  }
-};
-
-/**
- * Create timeout that removes marker when it it to old
- * @param {int} altDelayMilliSeconds
- */
-(trackdirect.models.Marker.prototype._addMarkerToOldTimeout = function (
-  altDelayMilliSeconds
-) {
-  var markerCollection = this._defaultMap.markerCollection;
-  var state = this._defaultMap.state;
-  var delay =
-    (this._defaultMap.state.getClientTimestamp(this.packet.timestamp) -
-      state.getOldestAllowedPacketTimestamp()) *
-    1000;
-  if (altDelayMilliSeconds !== 0) {
-    delay = altDelayMilliSeconds;
-  }
-
-  if (delay < 0) {
-    // Looks like this marker should be hidden allready, make sure it is soon
-    delay = 10;
-  }
-
-  if (typeof this.toOldTimerId !== "undefined" && this.toOldTimerId !== null) {
-    clearTimeout(this.toOldTimerId);
-  }
-
-  var me = this;
-  this.toOldTimerId = window.setTimeout(function () {
-    if (me._defaultMap.state.isMarkerInfoWindowOpen(me)) {
-      // User is looking at this marker, try again later...
-      me._addMarkerToOldTimeout(500);
-    } else {
-      var latestStationMarker = markerCollection.getStationLatestMarker(
-        me.packet.station_id
-      );
-      var latestMarker = markerCollection.getMarker(me.markerIdKey);
-
-      // Only hide it if we are not filtering or if station has newer markers
-      if (
-        !me._isMarkersEqual(latestStationMarker) ||
-        state.filterStationIds.indexOf(me.packet.station_id) == -1
-      ) {
-        if (latestMarker === me) {
-          // This is the latest marker for this markerId, hide all of it!
-          var callback = function () {
-            me.hideCompleteMarker();
-            markerCollection.resetMarkerPolyline(me.markerIdKey);
-            markerCollection.resetDotMarkers(me.markerIdKey);
-          };
-          trackdirect.services.callbackExecutor.add(me, callback, []);
-        } else if (markerCollection.hasDotMarkers(me.markerIdKey)) {
-          // We should hide a dotmarker that we know exists
-          var index = markerCollection.getDotMarkerIndex(me.markerIdKey, me);
-          if (index == 0) {
-            var callback = function () {
-              if (markerCollection.hasDotMarkers(me.markerIdKey)) {
-                var success = markerCollection.removeOldestDotMarker(
-                  me.markerIdKey
-                );
-                if (!success) {
-                  // Failed (should not happen), we try again later
-                  me._addMarkerToOldTimeout(500);
-                }
-              }
-            };
-
-            trackdirect.services.callbackExecutor.add(me, callback, []);
-          } else if (index > 0) {
-            // Reschedule first marker removal (just to be sure)
-            var dotMarkers = markerCollection.getDotMarkers(me.markerIdKey);
-            dotMarkers[0]._addMarkerToOldTimeout(0);
-
-            // Try again later
-            me._addMarkerToOldTimeout(100);
-          }
-        }
-      } else {
-        // Check again in a while if station has got a new marker
-        me._addMarkerToOldTimeout(1000);
-      }
-    }
-  }, delay);
-}),
-  /**
-   * Emit all event listeners for a specified event
-   * @param {string} event
-   * @param {object} arg
-   */
-  (trackdirect.models.Marker.prototype._emitTdEventListeners = function (
-    event,
-    arg
-  ) {
-    if (event in this._tdEventListeners) {
-      for (var i = 0; i < this._tdEventListeners[event].length; i++) {
-        this._tdEventListeners[event][i](arg);
-      }
-    }
-  });
diff --git a/jslib/src/trackdirect/models/MarkerCollection.js b/jslib/src/trackdirect/models/MarkerCollection.js
deleted file mode 100755
index 2f8b5b5b0943a8d88688e23ead87eafbaec8d535..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/MarkerCollection.js
+++ /dev/null
@@ -1,960 +0,0 @@
-/**
- * Class trackdirect.models.MarkerCollection
- */
-trackdirect.models.MarkerCollection = function () {
-  // Contains markerKeys and is indexed by markerId
-  this._markerKeys = {};
-
-  // Array of all markers
-  this._markers = [];
-
-  // Contains markerKeys indexed by stationId
-  this._stationMarkers = {};
-
-  // Contains markerIdKey indexed by stationId
-  this._stationLastMovingMarkerIdKey = {};
-
-  // Contains markerIdKey indexed by stationId
-  this._stationLastMarker = {};
-
-  // Contains markerIdKey indexed by senderId
-  this._senderLastMarker = {};
-
-  // Contains markerKeys indexed by latitude:longitude
-  this._positionMarkersIdKeys = {};
-
-  // Array of all marker dot markers, using the same index as in the array _markers
-  this._dotMarkers = [];
-
-  // Array of all marker polylines, using the same index as in the array _markers
-  this._markerPolyLines = [];
-
-  //Array of all marker dashed polylines, using the same index as in the array _markers
-  this._markerOriginDashedPolyLines = [];
-
-  // Contains arrays of markerKeys and is indexed by mapSectorId
-  this._mapSectorMarkerIdKeys = {};
-
-  // Contains coverage values indexed by stationId
-  this._stationCoverage = {};
-
-  this.resetAllMarkers();
-};
-
-/**
- * Returns markerIdKey based on specified markerId
- * @param {int} markerId
- * @return {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.getMarkerIdKey = function (
-  markerId
-) {
-  if (!(markerId in this._markerKeys)) {
-    this._markers.push(null);
-    this._markerPolyLines.push(null);
-    this._dotMarkers.push(null);
-    this._markerOriginDashedPolyLines.push(null);
-
-    var markerIdKey = this._markers.length - 1;
-    this._markerKeys[markerId] = markerIdKey;
-
-    return markerIdKey;
-  } else {
-    return this._markerKeys[markerId];
-  }
-};
-
-/**
- * Returns true if marker exists
- * @param {int} markerIdKey
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.isExistingMarker = function (
-  markerIdKey
-) {
-  if (markerIdKey in this._markers && this._markers[markerIdKey] !== null) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Set marker for specified markerIdKey
- * @param {int} markerIdKey
- * @param {trackdirect.models.Marker} marker
- */
-trackdirect.models.MarkerCollection.prototype.setMarker = function (
-  markerIdKey,
-  marker
-) {
-  if (marker !== null && typeof marker.packet !== "undefined") {
-    var packet = marker.packet;
-
-    this._markers[markerIdKey] = marker;
-    this._addStationMarkerId(markerIdKey, packet);
-    this._addStationLastMarker(packet, marker);
-    this.addPostionMarkerId(markerIdKey, packet);
-  }
-};
-
-/**
- * Returns the marker that has the specified markerIdKey
- * @param {int} markerIdKey
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getMarker = function (
-  markerIdKey
-) {
-  if (markerIdKey !== null && markerIdKey in this._markers) {
-    return this._markers[markerIdKey];
-  }
-  return null;
-};
-
-/**
- * Returns all markers
- * @return {array}
- */
-trackdirect.models.MarkerCollection.prototype.getAllMarkers = function () {
-  return this._markers;
-};
-
-/**
- * Remove marker with specified markerIdKey
- * @param {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.removeMarker = function (
-  markerIdKey
-) {
-  if (markerIdKey !== null && markerIdKey in this._markers) {
-    this._markers.splice(markerIdKey, 1);
-  }
-};
-
-/**
- * Returns the number of markers
- * @return {int}
- */
-trackdirect.models.MarkerCollection.prototype.getNumberOfMarkers = function () {
-  return this._markers.length;
-};
-
-/*
- * Set marker label for specified markerIdKey
- * @param {int} markerIdKey
- * @param {object} label
- */
-trackdirect.models.MarkerCollection.prototype.setMarkerLabel = function (
-  markerIdKey,
-  label
-) {
-  if (markerIdKey in this._markers && this._markers[markerIdKey] !== null) {
-    this._markers[markerIdKey].label = label;
-  }
-};
-
-/**
- * Returns the marker label that has the specified markerIdKey
- * @param {int} markerIdKey
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getMarkerLabel = function (
-  markerIdKey
-) {
-  if (markerIdKey in this._markers && this._markers[markerIdKey] !== null) {
-    return this._markers[markerIdKey].label;
-  }
-  return null;
-};
-
-/**
- * Returns true if specified marker has a label
- * @param {int} markerIdKey
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.hasMarkerLabel = function (
-  markerIdKey
-) {
-  if (
-    markerIdKey in this._markers &&
-    this._markers[markerIdKey] !== null &&
-    this._markers[markerIdKey].label !== null
-  ) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Set a new position for the marker label
- * @param {int} markerIdKey
- * @param {object} position
- */
-trackdirect.models.MarkerCollection.prototype.setMarkerLabelPosition =
-  function (markerIdKey, position) {
-    if (
-      markerIdKey in this._markers &&
-      this._markers[markerIdKey] !== null &&
-      this._markers[markerIdKey].label !== null
-    ) {
-      this._markers[markerIdKey].label.position = position;
-    }
-  };
-
-/**
- * Returns true if packet is a duplicate,
- * this method should be used on realtime-packet since they will not be checked on server
- * @param {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.isDuplicate = function (packet) {
-  if (packet.is_moving == 0) {
-    // We don't care for duplicates for stationary stations
-    return false;
-  }
-
-  for (var markerIdKey in this.getPositionMarkerIdKeys(
-    packet.latitude,
-    packet.longitude
-  )) {
-    var marker = this.getMarker(markerIdKey);
-    if (
-      marker !== null &&
-      marker.packet.station_id == packet.station_id &&
-      marker.packet.symbol == packet.symbol &&
-      marker.packet.symbol_table == packet.symbol_table &&
-      marker.packet.course == packet.course
-    ) {
-      // My guess is that this is a duplicate
-      return true;
-    }
-  }
-  return false;
-};
-
-/*
- * Add dot marker for specified markerIdKey
- * @param {int} markerIdKey
- * @param {object} dotMarker
- */
-trackdirect.models.MarkerCollection.prototype.addDotMarker = function (
-  markerIdKey,
-  dotMarker
-) {
-  if (markerIdKey in this._dotMarkers) {
-    if (this._dotMarkers[markerIdKey] === null) {
-      this._dotMarkers[markerIdKey] = [];
-    }
-    this._dotMarkers[markerIdKey].push(dotMarker);
-  }
-};
-
-/**
- * Returns the marker dot markers
- * @param {int} markerIdKey
- * @return {array}
- */
-trackdirect.models.MarkerCollection.prototype.getDotMarkers = function (
-  markerIdKey
-) {
-  if (
-    markerIdKey in this._dotMarkers &&
-    this._dotMarkers[markerIdKey] !== null
-  ) {
-    return this._dotMarkers[markerIdKey];
-  }
-  return [];
-};
-
-/**
- * Returns true if specified marker has dot markers
- * @param {int} markerIdKey
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.hasDotMarkers = function (
-  markerIdKey
-) {
-  if (
-    markerIdKey in this._dotMarkers &&
-    this._dotMarkers[markerIdKey] !== null &&
-    this._dotMarkers[markerIdKey].length > 0
-  ) {
-    return true;
-  }
-  return false;
-};
-
-/*
- * Add dot marker for specified markerIdKey
- * @param {int} markerIdKey
- * @param {object} dotMarker
- */
-trackdirect.models.MarkerCollection.prototype.addStationCoverage = function (
-  stationId,
-  stationCoveragePolygon
-) {
-  this._stationCoverage[stationId] = stationCoveragePolygon;
-};
-
-/**
- * Returns the station coverage
- * @param {int} stationId
- * @return {StationCoveragePolygon}
- */
-trackdirect.models.MarkerCollection.prototype.getStationCoverage = function (
-  stationId
-) {
-  if (
-    stationId in this._stationCoverage &&
-    this._stationCoverage[stationId] !== null
-  ) {
-    return this._stationCoverage[stationId];
-  }
-  return null;
-};
-
-/**
- * Returns an array of stations the has a visible coverage
- * @return {array}
- */
-trackdirect.models.MarkerCollection.prototype.getStationIdListWithVisibleCoverage =
-  function () {
-    var result = [];
-    for (var stationId in this._stationCoverage) {
-      if (this._stationCoverage[stationId].isRequestedToBeVisible()) {
-        result.push(stationId);
-      }
-    }
-    return result;
-  };
-
-/**
- * Returns true if specified station has a coverage polygon
- * @param {int} stationId
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.hasCoveragePolygon = function (
-  stationId
-) {
-  if (
-    stationId in this._stationCoverage &&
-    this._stationCoverage[stationId] !== null
-  ) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Reset the dot markers for a specified marker
- * @param {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.resetDotMarkers = function (
-  markerIdKey
-) {
-  if (
-    markerIdKey in this._dotMarkers &&
-    this._dotMarkers[markerIdKey] !== null
-  ) {
-    this._dotMarkers[markerIdKey] = [];
-  }
-};
-
-/**
- * Remove the oldest dot markers for a specified marker
- * @param {int} markerIdKey
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.removeOldestDotMarker = function (
-  markerIdKey
-) {
-  if (this.hasDotMarkers(markerIdKey)) {
-    latestMarker = this.getMarker(markerIdKey);
-    var latestMarkerIndex = this.getDotMarkerIndex(markerIdKey, latestMarker);
-    var dotMarkers = this.getDotMarkers(markerIdKey);
-    var maxNumberOfPolyLinePoints = dotMarkers.length;
-    if (latestMarkerIndex > -1) {
-      // Seems like the latest marker also is a dotmarker, this may happen if it is a moving object
-      maxNumberOfPolyLinePoints = maxNumberOfPolyLinePoints - 1;
-    }
-
-    var removedItems = this._dotMarkers[markerIdKey].splice(0, 1);
-    if (removedItems.length == 1) {
-      var removedMarker = removedItems[0];
-      removedMarker.hide();
-      if (this.hasPolyline(removedMarker.markerIdKey)) {
-        var polyline = this.getMarkerPolyline(removedMarker.markerIdKey);
-        while (polyline.getPathLength() > maxNumberOfPolyLinePoints) {
-          polyline.removePathItem(0);
-        }
-      }
-      removedMarker = null;
-
-      return true;
-    }
-  }
-  return false;
-};
-
-/**
- * Get dot marker index
- * @param {int} markerIdKey
- * @param {trackdirect.models.Marker} marker
- * @return int
- */
-trackdirect.models.MarkerCollection.prototype.getDotMarkerIndex = function (
-  markerIdKey,
-  marker
-) {
-  if (!this.hasDotMarkers(markerIdKey)) {
-    return -1;
-  }
-  for (var i = 0, len = this._dotMarkers[markerIdKey].length; i < len; i++) {
-    var foundMarker = this._dotMarkers[markerIdKey][i];
-    if (foundMarker === null) {
-      continue;
-    }
-
-    if (
-      typeof marker.packet.id !== "undefined" &&
-      marker.packet.id !== null &&
-      foundMarker.packet.id === marker.packet.id &&
-      foundMarker.packet.map_id === marker.packet.map_id
-    ) {
-      return i;
-    }
-
-    if (
-      foundMarker.packet.station_id === marker.packet.station_id &&
-      foundMarker.packet.timestamp === marker.packet.timestamp &&
-      Math.round(foundMarker.packet.latitude * 100000) ===
-        Math.round(marker.packet.latitude * 100000) &&
-      Math.round(foundMarker.packet.longitude * 100000) ===
-        Math.round(marker.packet.longitude * 100000) &&
-      foundMarker.packet.map_id === marker.packet.map_id
-    ) {
-      return i;
-    }
-  }
-  return -1;
-};
-
-/*
- * Add marker polyline for specified markerIdKey
- * @param {int} markerIdKey
- * @param {object} polyline
- */
-trackdirect.models.MarkerCollection.prototype.setMarkerPolyline = function (
-  markerIdKey,
-  polyline
-) {
-  if (markerIdKey in this._markerPolyLines) {
-    this._markerPolyLines[markerIdKey] = polyline;
-  }
-};
-
-/**
- * Returns the marker polyline
- * @param {int} markerIdKey
- * @return {array}
- */
-trackdirect.models.MarkerCollection.prototype.getMarkerPolyline = function (
-  markerIdKey
-) {
-  if (this.hasPolyline(markerIdKey)) {
-    return this._markerPolyLines[markerIdKey];
-  }
-  return null;
-};
-
-/**
- * Returns true if specified marker has a polyline
- * @param {int} markerIdKey
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.hasPolyline = function (
-  markerIdKey
-) {
-  if (
-    markerIdKey in this._markerPolyLines &&
-    this._markerPolyLines[markerIdKey] !== null
-  ) {
-    if (this._markerPolyLines[markerIdKey].getPathLength() > 1) {
-      return true;
-    } else {
-      // We only consider polyline to exists if it has a path length of 2 or more
-      this._markerPolyLines[markerIdKey].hide();
-      this._markerPolyLines[markerIdKey] = null;
-      return false;
-    }
-  }
-  return false;
-};
-
-/**
- * Reset the marker polyline
- * @param {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.resetMarkerPolyline = function (
-  markerIdKey
-) {
-  if (markerIdKey in this._markerPolyLines) {
-    this._markerPolyLines[markerIdKey] = null;
-  }
-};
-
-/*
- * Add marker dashed polyline for specified markerIdKey
- * @param {int} markerIdKey
- * @param {object} polyline
- */
-trackdirect.models.MarkerCollection.prototype.setMarkerDashedPolyline =
-  function (markerIdKey, polyline) {
-    if (markerIdKey in this._markerOriginDashedPolyLines) {
-      this._markerOriginDashedPolyLines[markerIdKey] = polyline;
-    }
-  };
-
-/**
- * Returns the marker dashed polyline
- * @param {int} markerIdKey
- * @return {array}
- */
-trackdirect.models.MarkerCollection.prototype.getMarkerDashedPolyline =
-  function (markerIdKey) {
-    if (this.hasDashedPolyline(markerIdKey)) {
-      return this._markerOriginDashedPolyLines[markerIdKey];
-    }
-    return null;
-  };
-
-/**
- * Returns true if specified marker has a dashed polyline
- * @param {int} markerIdKey
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.hasDashedPolyline = function (
-  markerIdKey
-) {
-  if (
-    markerIdKey in this._markerOriginDashedPolyLines &&
-    this._markerOriginDashedPolyLines[markerIdKey] !== null
-  ) {
-    if (this._markerOriginDashedPolyLines[markerIdKey].getPathLength() > 1) {
-      return true;
-    } else {
-      // We only consider polyline to exists if it has a path length of 2 or more
-      this._markerOriginDashedPolyLines[markerIdKey].hide();
-      this._markerOriginDashedPolyLines[markerIdKey] = null;
-      return false;
-    }
-  }
-  return false;
-};
-
-/**
- * Reset the marker dashed polyline
- * @param {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.resetMarkerDashedPolyline =
-  function (markerIdKey) {
-    if (markerIdKey in this._markerOriginDashedPolyLines) {
-      this._markerOriginDashedPolyLines[markerIdKey] = null;
-    }
-  };
-
-/**
- * returnes the latest packet of the specified station
- * @param {int} stationId
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getStationLatestPacket =
-  function (stationId) {
-    if (
-      typeof this._stationLastMarker[stationId] !== "undefined" &&
-      this._stationLastMarker[stationId] !== null &&
-      typeof this._stationLastMarker[stationId].packet !== "undefined"
-    ) {
-      return this._stationLastMarker[stationId].packet;
-    } else {
-      return null;
-    }
-  };
-
-/**
- * returnes the latest marker of the specified station
- * @param {int} stationId
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getStationLatestMarker =
-  function (stationId) {
-    if (
-      typeof this._stationLastMarker[stationId] !== "undefined" &&
-      this._stationLastMarker[stationId] !== null
-    ) {
-      return this._stationLastMarker[stationId];
-    } else {
-      return null;
-    }
-  };
-
-/**
- * returnes the latest packet of the specified sender
- * @param {int} senderId
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getSenderLatestPacket = function (
-  senderId
-) {
-  if (
-    typeof this._senderLastMarker[senderId] !== "undefined" &&
-    this._senderLastMarker[senderId] !== null &&
-    typeof this._senderLastMarker[senderId].packet !== "undefined"
-  ) {
-    return this._senderLastMarker[senderId].packet;
-  } else {
-    return null;
-  }
-};
-
-/**
- * Returns the latest moving marker for station with specified id
- * @param {int} stationId
- * @return {int}
- */
-trackdirect.models.MarkerCollection.prototype.getStationLatestMovingMarkerIdKey =
-  function (stationId) {
-    if (
-      this._stationLastMovingMarkerIdKey !== null &&
-      typeof this._stationLastMovingMarkerIdKey[stationId] !== "undefined" &&
-      this._stationLastMovingMarkerIdKey[stationId] !== null &&
-      this.isExistingMarker(this._stationLastMovingMarkerIdKey[stationId])
-    ) {
-      return this._stationLastMovingMarkerIdKey[stationId];
-    }
-    return null;
-  };
-
-/**
- * Get the latest markerIdKey connected to specified markerIdKey
- * @param {int} markerIdKey
- * @return int
- */
-trackdirect.models.MarkerCollection.prototype.getMarkerMasterMarkerKeyId =
-  function (markerIdKey) {
-    if (this.isExistingMarker(markerIdKey)) {
-      var marker = this._markers[markerIdKey];
-      if (this.hasRelatedDashedPolyline(marker)) {
-        return this.getMarkerMasterMarkerKeyId(
-          marker._relatedMarkerOriginDashedPolyLine.ownerMarkerIdKey
-        );
-      }
-    }
-    return markerIdKey;
-  };
-
-/**
- * Get latest visible marker for a stationId
- * @param {int} stationId
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getStationLatestVisibleMarker =
-  function (stationId) {
-    var latestVisibleMarker = null;
-    var latestVisibleMarkerTimestamp = null;
-    for (var markerIdKey in this._stationMarkers[stationId]) {
-      var marker = this._markers[markerIdKey];
-      if (
-        typeof marker !== "undefined" &&
-        marker !== null &&
-        typeof marker.getMap() !== "undefined" &&
-        marker.getMap() !== null
-      ) {
-        if (
-          latestVisibleMarkerTimestamp === null ||
-          marker.packet.timestamp > latestVisibleMarkerTimestamp
-        ) {
-          latestVisibleMarker = marker;
-          latestVisibleMarkerTimestamp = marker.packet.timestamp;
-        }
-      }
-    }
-    return latestVisibleMarker;
-  };
-
-/**
- * Get an object with all station markerKeyIds as keys
- * @param {int} stationId
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getStationMarkerIdKeys =
-  function (stationId) {
-    if (stationId in this._stationMarkers) {
-      return this._stationMarkers[stationId];
-    }
-    return {};
-  };
-
-/**
- * Get  an object with all markerKeyIds at a specified position as keys
- * @param {number} latitude
- * @param {number} longitude
- * @return {object}
- */
-trackdirect.models.MarkerCollection.prototype.getPositionMarkerIdKeys =
-  function (latitude, longitude) {
-    var key = this._getCompareablePosition(latitude, longitude);
-    if (key in this._positionMarkersIdKeys) {
-      return this._positionMarkersIdKeys[key];
-    }
-    return {};
-  };
-
-/**
- * Add marker to postition
- * @param {int} markerIdKey
- * @param {trackdirect.models.Packet} packet
- */
-trackdirect.models.MarkerCollection.prototype.addPostionMarkerId = function (
-  markerIdKey,
-  packet
-) {
-  var key = this._getCompareablePosition(packet.latitude, packet.longitude);
-  if (!(key in this._positionMarkersIdKeys)) {
-    this._positionMarkersIdKeys[key] = {};
-  }
-  this._positionMarkersIdKeys[key][markerIdKey] = true;
-};
-
-/**
- * Remove marker from postition
- * @param {number} latitude
- * @param {number} longitude
- * @param {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.removePostionMarkerId = function (
-  latitude,
-  longitude,
-  markerIdKey
-) {
-  var key = this._getCompareablePosition(latitude, longitude);
-  if (key in this._positionMarkersIdKeys) {
-    if (markerIdKey in this._positionMarkersIdKeys[key]) {
-      this._positionMarkersIdKeys[key][markerIdKey] = false;
-    }
-  }
-};
-
-/**
- * Add marker specified map sector
- * @param {int} markerIdKey
- * @param {int} markerMapSector
- */
-trackdirect.models.MarkerCollection.prototype.addMarkerToMapSector = function (
-  markerIdKey,
-  markerMapSector
-) {
-  if (!(markerMapSector in this._mapSectorMarkerIdKeys)) {
-    this._mapSectorMarkerIdKeys[markerMapSector] = [];
-  }
-
-  if (this._mapSectorMarkerIdKeys[markerMapSector].indexOf(markerIdKey) < 0) {
-    // only add markerIdKey to map-sector if it is not allready there
-    this._mapSectorMarkerIdKeys[markerMapSector].push(markerIdKey);
-  }
-};
-
-/**
- * Add marker specified map sector
- * @param {int} markerIdKey
- * @param {int} markerMapSector
- */
-trackdirect.models.MarkerCollection.prototype.getMapSectorMarkerKeys =
-  function (mapSector) {
-    if (mapSector in this._mapSectorMarkerIdKeys) {
-      return this._mapSectorMarkerIdKeys[mapSector];
-    }
-    return [];
-  };
-
-/**
- * Reset all markers, this will remove everything from memory
- */
-trackdirect.models.MarkerCollection.prototype.resetAllMarkers = function () {
-  this._markerKeys = {};
-  this._markers = [];
-  this._markerPolyLines = [];
-  this._dotMarkers = [];
-  this._markerOriginDashedPolyLines = [];
-  this._stationMarkers = {};
-  this._stationLastMovingMarkerIdKey = {};
-  this._stationLastMarker = {};
-  this._senderLastMarker = {};
-  this._positionMarkersIdKeys = {};
-  this._mapSectorMarkerIdKeys = {};
-  this._stationCoverage = {};
-};
-
-/**
- * Remove marker from memory
- * @param {int} markerIdKey
- */
-trackdirect.models.MarkerCollection.prototype.resetMarker = function (
-  markerIdKey
-) {
-  if (this.isExistingMarker(markerIdKey)) {
-    var marker = this._markers[markerIdKey];
-
-    this._markers[markerIdKey] = null;
-    this._markerPolyLines[markerIdKey] = null;
-    this._dotMarkers[markerIdKey] = null;
-    this._markerOriginDashedPolyLines[markerIdKey] = null;
-
-    if (
-      typeof marker.packet.latitude != "undefined" &&
-      typeof marker.packet.longitude != "undefined"
-    ) {
-      this.removePostionMarkerId(
-        marker.packet.latitude,
-        marker.packet.longitude,
-        markerIdKey
-      );
-    }
-  }
-};
-
-/**
- * Returns true if marker has a related marker origin dashed polyline.
- * A related dashed poly line is a dashed polyline ending at this marker.
- * @param {trackdirect.models.Marker} marker
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.hasRelatedDashedPolyline =
-  function (marker) {
-    if (
-      typeof marker._relatedMarkerOriginDashedPolyLine !== "undefined" &&
-      marker._relatedMarkerOriginDashedPolyLine !== null
-    ) {
-      return true;
-    }
-    return false;
-  };
-
-/**
- * Returns true if this station has a marker id not equal to this that is moving
- * @param {trackdirect.models.Packet} packet
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.hasNonRelatedMovingMarkerId =
-  function (packet) {
-    // If latest marker is related we will have no non related that is visible,
-    // since we only allow one moving marker per station.
-    // So we only need to compare latest moving marker...
-    var latestStationMovingMarkerIdKey = this.getStationLatestMovingMarkerIdKey(
-      packet.station_id
-    );
-    var newMarkerIdKey = this.getMarkerIdKey(packet.marker_id);
-    if (
-      latestStationMovingMarkerIdKey !== null &&
-      latestStationMovingMarkerIdKey !== newMarkerIdKey
-    ) {
-      var latestStationMovingMarker = this.getMarker(
-        latestStationMovingMarkerIdKey
-      );
-      if (latestStationMovingMarker.packet.hasConfirmedMapId()) {
-        return true;
-      }
-    }
-    return false;
-  };
-
-/**
- * Returns true if new packet should replace current marker
- * @param {trackdirect.models.Packet} packet
- * @return {boolean}
- */
-trackdirect.models.MarkerCollection.prototype.isPacketReplacingMarker =
-  function (packet) {
-    var markerIdKey = this.getMarkerIdKey(packet.marker_id);
-    if (this.isExistingMarker(markerIdKey)) {
-      var marker = this.getMarker(markerIdKey);
-      if (marker !== null) {
-        if (packet.map_id == 14) {
-          // Packets that kill other packets should allways replace previous packet
-          return true;
-        }
-
-        if (packet.is_moving == 0) {
-          // Stationary allways replace previous marker if they have the same marker_id
-          return true;
-        }
-
-        if ([1, 2, 7, 12].indexOf(packet.map_id) < 0) {
-          // For ghost packets we allways replace markers with the same marker_id
-          return true;
-        }
-      }
-    }
-    return false;
-  };
-
-/**
- * Add markerId to station
- * @param {int} markerIdKey
- * @param {trackdirect.models.Packet} packet
- */
-trackdirect.models.MarkerCollection.prototype._addStationMarkerId = function (
-  markerIdKey,
-  packet
-) {
-  if (!(packet.station_id in this._stationMarkers)) {
-    this._stationMarkers[packet.station_id] = {};
-  }
-  this._stationMarkers[packet.station_id][markerIdKey] = true;
-
-  if (packet.is_moving == 1 && packet.hasConfirmedMapId()) {
-    this._stationLastMovingMarkerIdKey[packet.station_id] = markerIdKey;
-  }
-};
-
-/**
- * Add station latest marker
- * @param {trackdirect.models.Packet} packet
- * @param {trackdirect.models.Marker} marker
- */
-trackdirect.models.MarkerCollection.prototype._addStationLastMarker = function (
-  packet,
-  marker
-) {
-  if (packet.hasConfirmedMapId()) {
-    if (
-      typeof this._stationLastMarker[packet.station_id] === "undefined" ||
-      this._stationLastMarker[packet.station_id] === null
-    ) {
-      this._stationLastMarker[packet.station_id] = marker;
-      if (packet.station_name == packet.sender_name) {
-        this._senderLastMarker[packet.sender_id] = marker;
-      }
-    } else if (
-      this._stationLastMarker[packet.station_id].packet.timestamp <=
-      packet.timestamp
-    ) {
-      this._stationLastMarker[packet.station_id] = marker;
-      if (packet.station_name == packet.sender_name) {
-        this._senderLastMarker[packet.sender_id] = marker;
-      }
-    }
-  }
-};
-
-/**
- * Get string representation of a position that may be used for comparison
- * @param {number} latitude
- * @param {number} longitude
- * @return {string}
- */
-trackdirect.models.MarkerCollection.prototype._getCompareablePosition =
-  function (latitude, longitude) {
-    var latCmp = Math.round(latitude * 100000);
-    var lngCmp = Math.round(longitude * 100000);
-    return String(latCmp) + ":" + String(lngCmp);
-  };
diff --git a/jslib/src/trackdirect/models/Packet.js b/jslib/src/trackdirect/models/Packet.js
deleted file mode 100755
index c1227c067edc066d96b1f3ada497d7282e19a7b7..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/Packet.js
+++ /dev/null
@@ -1,628 +0,0 @@
-/**
- * Class trackdirect.models.Packet
- * @param {object} data
- */
-trackdirect.models.Packet = function (data) {
-  this.init();
-  for (var key in data) {
-    this[key] = data[key];
-  }
-};
-
-trackdirect.models.Packet.prototype.init = function () {
-  this["altitude"] = null;
-  this["comment"] = "";
-  this["course"] = null;
-  this["db"] = null;
-  this["id"] = null;
-  this["latest_phg_timestamp"] = null;
-  this["latest_rng_timestamp"] = null;
-  this["latitude"] = null;
-  this["longitude"] = null;
-  this["map_id"] = null;
-  this["map_sector"] = null;
-  this["marker_counter"] = null;
-  this["marker_id"] = null;
-  this["ogn"] = null;
-  this["overwrite"] = null; // 1 if it should be overwritten by next packet from station
-  this["is_moving"] = 1;
-  this["packet_order_id"] = null;
-  this["packet_tail_timestamp"] = null;
-  this["packet_type_id"] = null;
-  this["phg"] = null;
-  this["posambiguity"] = 0;
-  this["position_timestamp"] = null;
-  this["raw"] = "";
-  this["raw_path"] = "";
-  this["realtime"] = 0; // 1 if not fetched from database
-  this["related_map_sectors"] = [];
-  this["reported_timestamp"] = null;
-  this["rng"] = null;
-  this["sender_id"] = null;
-  this["sender_name"] = null;
-  this["source_id"] = null;
-  this["speed"] = null;
-  this["station_id"] = null;
-  this["station_id_path"] = [];
-  this["station_location_path"] = [];
-  this["station_name"] = null;
-  this["station_name_path"] = [];
-  this["symbol"] = null;
-  this["symbol_table"] = null;
-  this["telemetry"] = null;
-  this["timestamp"] = null;
-  this["weather"] = null;
-};
-
-/**
- * Returns the packet station name (including sender if needed)
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getStationName = function () {
-  if (this.station_name == this.sender_name) {
-    return escapeHtml(this.station_name);
-  } else {
-    return escapeHtml(this.station_name + " (" + this.sender_name + ")");
-  }
-};
-
-/**
- * Returns the packet position
- * @return {LatLngLiteral}
- */
-trackdirect.models.Packet.prototype.getLatLngLiteral = function () {
-  return { lat: parseFloat(this.latitude), lng: parseFloat(this.longitude) };
-};
-
-/**
- * Returns true if packet map ID is considered to be visible
- * @return boolean
- */
-trackdirect.models.Packet.prototype.hasConfirmedMapId = function () {
-  if ([1, 2, 12].indexOf(this.map_id) >= 0) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returns OGN aircraft type name
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getOgnAircraftType = function () {
-  if (typeof this.ogn !== "undefined" && this.ogn !== null) {
-    if (
-      typeof this.ogn.ogn_aircraft_type_id !== "undefined" &&
-      this.ogn.ogn_aircraft_type_id != ""
-    ) {
-      if (this.ogn.ogn_aircraft_type_id == 1) {
-        return "Glider";
-      } else if (this.ogn.ogn_aircraft_type_id == 2) {
-        return "Tow Plane";
-      } else if (this.ogn.ogn_aircraft_type_id == 3) {
-        return "Helicopter";
-      } else if (this.ogn.ogn_aircraft_type_id == 4) {
-        return "Parachute";
-      } else if (this.ogn.ogn_aircraft_type_id == 5) {
-        return "Drop Plane";
-      } else if (this.ogn.ogn_aircraft_type_id == 6) {
-        return "Hang Glider";
-      } else if (this.ogn.ogn_aircraft_type_id == 7) {
-        return "Para Glider";
-      } else if (this.ogn.ogn_aircraft_type_id == 8) {
-        return "Powered Aircraft";
-      } else if (this.ogn.ogn_aircraft_type_id == 9) {
-        return "Jet Aircraft";
-      } else if (this.ogn.ogn_aircraft_type_id == 10) {
-        return "UFO";
-      } else if (this.ogn.ogn_aircraft_type_id == 11) {
-        return "Balloon";
-      } else if (this.ogn.ogn_aircraft_type_id == 12) {
-        return "Airship";
-      } else if (this.ogn.ogn_aircraft_type_id == 13) {
-        return "UAV";
-      } else if (this.ogn.ogn_aircraft_type_id == 14) {
-        return "";
-      } else if (this.ogn.ogn_aircraft_type_id == 15) {
-        return "Static Object";
-      }
-    }
-  }
-  return null;
-};
-
-/**
- * Returns OGN device DB aircraft type name
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getOgnDdbAircraftType = function () {
-  if (typeof this.ogn_device !== "undefined" && this.ogn_device !== null) {
-    if (
-      typeof this.ogn_device.ddb_aircraft_type !== "undefined" &&
-      this.ogn_device.ddb_aircraft_type != ""
-    ) {
-      if (this.ogn_device.ddb_aircraft_type == 1) {
-        return "Glider/Motoglider";
-      } else if (this.ogn_device.ddb_aircraft_type == 2) {
-        return "Plane";
-      } else if (this.ogn_device.ddb_aircraft_type == 3) {
-        return "Ultralight";
-      } else if (this.ogn_device.ddb_aircraft_type == 4) {
-        return "Helicopter";
-      } else if (this.ogn_device.ddb_aircraft_type == 5) {
-        return "Drone/UAV";
-      } else if (this.ogn_device.ddb_aircraft_type == 6) {
-        return "Other";
-      }
-    }
-  }
-  return null;
-};
-
-/**
- * Returns OGN address type name
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getOgnAddressType = function () {
-  if (typeof this.ogn !== "undefined" && this.ogn !== null) {
-    if (
-      typeof this.ogn.ogn_address_type_id !== "undefined" &&
-      this.ogn.ogn_address_type_id != ""
-    ) {
-      if (this.ogn.ogn_address_type_id == 1) {
-        return "ICAO";
-      } else if (this.ogn.ogn_address_type_id == 2) {
-        return "FLARM";
-      } else if (this.ogn.ogn_address_type_id == 3) {
-        return "OGN";
-      }
-    }
-  }
-  return null;
-};
-
-/**
- * Returns OGN sender address
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getOgnSenderAddress = function () {
-  if (typeof this.ogn !== "undefined" && this.ogn !== null) {
-    if (
-      typeof this.ogn.ogn_sender_address !== "undefined" &&
-      this.ogn.ogn_sender_address != ""
-    ) {
-      return this.ogn.ogn_sender_address;
-    }
-  }
-  return null;
-};
-
-/**
- * Returns OGN registration
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getOgnRegistration = function () {
-  if (typeof this.ogn_device !== "undefined" && this.ogn_device !== null) {
-    if (
-      typeof this.ogn_device.registration !== "undefined" &&
-      this.ogn_device.registration != ""
-    ) {
-      return this.ogn_device.registration;
-    }
-  }
-  return null;
-};
-
-/**
- * Returns OGN CN
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getOgnCN = function () {
-  if (typeof this.ogn_device !== "undefined" && this.ogn_device !== null) {
-    if (typeof this.ogn_device.cn !== "undefined" && this.ogn_device.cn != "") {
-      return this.ogn_device.cn;
-    }
-  }
-  return null;
-};
-
-/**
- * Returns OGN summary
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getOgnSummary = function () {
-  var senderAddress = this.getOgnSenderAddress();
-  var aircraftType = this.getOgnAircraftType();
-  var ddbAircraftType = this.getOgnDdbAircraftType();
-  var addressType = this.getOgnAddressType();
-
-  var summary = "";
-  if (ddbAircraftType !== null) {
-    summary += ddbAircraftType;
-  } else if (aircraftType !== null) {
-    summary += aircraftType;
-  }
-  if (senderAddress !== null) {
-    if (summary != "") {
-      summary += " ";
-    }
-    summary += senderAddress;
-
-    if (addressType !== null) {
-      summary += " (" + addressType + ")";
-    }
-  }
-  return summary;
-};
-
-/**
- * Returns true if packet has direction support
- * @return boolean
- */
-trackdirect.models.Packet.prototype.hasDirectionSupport = function () {
-  if (
-    this.course !== null &&
-    this.speed !== null &&
-    this.speed > 0 &&
-    this.source_id == 1 &&
-    this.packet_order_id == 1 &&
-    this.is_moving == 1 &&
-    this.hasConfirmedMapId()
-  ) {
-    var symbolCategory = 1;
-    if (this.symbol_table.charCodeAt(0) == "92") {
-      symbolCategory = 2;
-    }
-
-    if (
-      symbolCategory == 1 &&
-      trackdirect.settings.primarySymbolWithNoDirectionPolyline.indexOf(
-        parseInt(this.symbol.charCodeAt(0))
-      ) > -1
-    ) {
-      // This icon does not support direction polyline, avoid drawing anything since speed could be windspeed
-      return false;
-    }
-
-    if (
-      symbolCategory == 2 &&
-      trackdirect.settings.alternativeSymbolWithNoDirectionPolyline.indexOf(
-        parseInt(this.symbol.charCodeAt(0))
-      ) > -1
-    ) {
-      // This icon does not support direction polyline, avoid drawing anything since speed could be windspeed
-      return false;
-    }
-    return true;
-  }
-  return false;
-};
-
-/**
- * Get PGH string
- * @return string
- */
-trackdirect.models.Packet.prototype.getPhg = function () {
-  if (this.phg !== null) {
-    if (this.phg == 0) {
-      return null; // 0000 is considered not to be used (power == 0!)
-    } else if (this.phg < 10) {
-      return "000" + String(this.phg);
-    } else if (this.phg < 100) {
-      return "00" + String(this.phg);
-    } else if (this.phg < 1000) {
-      return "0" + String(this.phg);
-    } else {
-      return String(this.phg);
-    }
-  }
-  return null;
-};
-
-/**
- * Get RNG range in meters
- * @return float
- */
-trackdirect.models.Packet.prototype.getRNGRange = function () {
-  if (this.rng !== null) {
-    return this.rng;
-  }
-  return null;
-};
-
-/**
- * Get PGH range in meters
- * @return float
- */
-trackdirect.models.Packet.prototype.getPHGRange = function () {
-  if (this.getPhg() !== null) {
-    var p = this.getPhgPower();
-    var h = this.getPhgHaat(false);
-    var g = this.getPhgGain();
-
-    var gain = Math.pow(10, g / 10); //converts from DB to decimal
-    var range = Math.sqrt(2 * h * Math.sqrt((p / 10) * (gain / 2)));
-    return range / 0.000621371192; // convert to m and return
-  }
-  return null;
-};
-
-/**
- * Get PGH description
- * @return String
- */
-trackdirect.models.Packet.prototype.getPHGDescription = function () {
-  if (this.getPhg() !== null) {
-    var power = this.getPhgPower();
-    var haat = this.getPhgHaat();
-    var gain = this.getPhgGain();
-    var direction = this.getPhgDirection();
-
-    var description = "";
-    if (power !== null) {
-      description += "Power " + power + "W";
-    }
-
-    if (haat !== null) {
-      if (description.length > 0) {
-        description += ", ";
-      }
-      description += "Height " + haat + "m";
-    }
-
-    if (gain !== null && direction !== null) {
-      if (description.length > 0) {
-        description += ", ";
-      }
-      description += "Gain " + gain + "dB " + direction;
-    }
-    return description;
-  }
-  return null;
-};
-
-/**
- * Get PGH power
- * @return int
- */
-trackdirect.models.Packet.prototype.getPhgPower = function () {
-  if (this.getPhg() !== null) {
-    return Math.pow(parseInt(this.getPhg().substring(0, 1)), 2);
-  }
-  return null;
-};
-
-/**
- * Get PGH hight (above averange terrain)
- * @param {boolean} inMeters
- * @return int
- */
-trackdirect.models.Packet.prototype.getPhgHaat = function (inMeters) {
-  inMeters = typeof inMeters !== "undefined" ? inMeters : true;
-  if (this.getPhg() != null) {
-    value = parseInt(this.getPhg().substring(1, 2));
-
-    var haat = 10;
-    if (value == 1) {
-      haat = 20;
-    } else if (value > 1) {
-      haat = 10 * Math.pow(value, 2);
-    }
-
-    if (inMeters) {
-      return Math.round(haat * 0.3048, 0);
-    } else {
-      return haat;
-    }
-  }
-  return null;
-};
-
-/**
- * Get PGH Gain
- * @return int
- */
-trackdirect.models.Packet.prototype.getPhgGain = function () {
-  if (this.getPhg() != null) {
-    return parseInt(this.getPhg().substring(2, 3));
-  }
-  return null;
-};
-
-/**
- * Get PGH Direction
- * @return String
- */
-trackdirect.models.Packet.prototype.getPhgDirection = function () {
-  if (this.getPhg() != null) {
-    switch (parseInt(this.getPhg().substring(3, 4))) {
-      case 0:
-        return "omni";
-        break;
-      case 1:
-        return "North East";
-        break;
-      case 2:
-        return "East";
-        break;
-      case 3:
-        return "South East";
-        break;
-      case 4:
-        return "South";
-        break;
-      case 5:
-        return "South West";
-        break;
-      case 6:
-        return "West";
-        break;
-      case 7:
-        return "North West";
-        break;
-      case 8:
-        return "North";
-        break;
-    }
-  }
-  return null;
-};
-
-/**
- * Get PGH Direction Degree
- * @return int
- */
-trackdirect.models.Packet.prototype.getPhgDirectionDegree = function () {
-  if (this.getPhg() != null) {
-    switch (parseInt(this.getPhg().substring(3, 4))) {
-      case 0:
-        return null;
-        break;
-      case 1:
-        return 45;
-        break;
-      case 2:
-        return 90;
-        break;
-      case 3:
-        return 135;
-        break;
-      case 4:
-        return 180;
-        break;
-      case 5:
-        return 225;
-        break;
-      case 6:
-        return 270;
-        break;
-      case 7:
-        return 315;
-        break;
-      case 8:
-        return 360;
-        break;
-    }
-  }
-  return null;
-};
-
-/**
- * Get distance between packet latest position for specified marker
- * @param {trackdirect.models.Marker} marker
- * @return {float}
- */
-trackdirect.models.Packet.prototype.getMarkerDistance = function (marker) {
-  var packetLatLng = {
-    lat: parseFloat(this.latitude),
-    lng: parseFloat(this.longitude),
-  };
-  var markerPacketLatLng = {
-    lat: parseFloat(marker.packet.latitude),
-    lng: parseFloat(marker.packet.longitude),
-  };
-  return trackdirect.services.distanceCalculator.getDistance(
-    packetLatLng,
-    markerPacketLatLng
-  );
-};
-
-/**
- * Returns true if both packet has same symbol as marker latest packet
- * @param {trackdirect.models.Marker} marker
- * @return {boolean}
- */
-trackdirect.models.Packet.prototype.hasSameSymbol = function (marker) {
-  if (
-    marker.packet.symbol == this.symbol &&
-    marker.packet.symbol_table == this.symbol_table
-  ) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returns linkified packet.raw_path
- * @return {string}
- */
-trackdirect.models.Packet.prototype.getLinkifiedRawPath = function () {
-  if (
-    typeof this.raw_path !== "undefined" &&
-    this.raw_path !== null &&
-    this.raw_path !== ""
-  ) {
-    var rawPath = escapeHtml(this.raw_path);
-    rawPath = "#" + rawPath + "#";
-    for (var i = 0; i < this.station_id_path.length; i++) {
-      var relatedStationId = this.station_id_path[i];
-      if (
-        typeof this.station_name_path !== "undefined" &&
-        this.station_name_path !== null
-      ) {
-        var relatedStationName = escapeHtml(this.station_name_path[i]);
-        var relatedStationNameReplacement =
-          '<a href="#" onclick="' +
-          " var relatedStationLatestPacket = trackdirect._map.markerCollection.getStationLatestPacket(" +
-          relatedStationId +
-          ");" +
-          " if (relatedStationLatestPacket !== null) {" +
-          "     trackdirect.focusOnStation(" +
-          relatedStationId +
-          ", true);" +
-          " } else {" +
-          "     alert('Can not go to " +
-          relatedStationName +
-          ", station has not been heard for a long time.');" +
-          " }" +
-          ' return false;">' +
-          relatedStationName +
-          "</a>";
-
-        rawPath = rawPath.replaceAll(
-          "#" + relatedStationName + ",",
-          "#" + relatedStationNameReplacement + ","
-        );
-        rawPath = rawPath.replaceAll(
-          "#" + relatedStationName + "*",
-          "#" + relatedStationNameReplacement + "*"
-        );
-        rawPath = rawPath.replaceAll(
-          "#" + relatedStationName + ":",
-          "#" + relatedStationNameReplacement + ":"
-        );
-        rawPath = rawPath.replaceAll(
-          "#" + relatedStationName + "#",
-          "#" + relatedStationNameReplacement + "#"
-        );
-        rawPath = rawPath.replaceAll(
-          "," + relatedStationName + ",",
-          "," + relatedStationNameReplacement + ","
-        );
-        rawPath = rawPath.replaceAll(
-          "," + relatedStationName + "*",
-          "," + relatedStationNameReplacement + "*"
-        );
-        rawPath = rawPath.replaceAll(
-          "," + relatedStationName + ":",
-          "," + relatedStationNameReplacement + ":"
-        );
-        rawPath = rawPath.replaceAll(
-          "," + relatedStationName + "#",
-          "," + relatedStationNameReplacement + "#"
-        );
-      }
-    }
-    rawPath = rawPath.replace(/#+$/, "");
-    rawPath = rawPath.replace(/^#+/, "");
-    var rawPathArray = rawPath.split(",");
-    if (rawPathArray.length > 0) {
-      var rawPath =
-        rawPathArray[0] +
-        " via " +
-        rawPathArray.join(",").replace(rawPathArray[0] + ",", "");
-    }
-    return rawPath;
-  }
-  return null;
-};
diff --git a/jslib/src/trackdirect/models/PhgCircle.js b/jslib/src/trackdirect/models/PhgCircle.js
deleted file mode 100755
index 702923fa50d389e03208eda3a038ee8b0648d5c2..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/PhgCircle.js
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * Class trackdirect.models.PhgCircle
- * @see https://developers.google.com/maps/documentation/javascript/reference#Circle
- * @param {trackdirect.models.Packet} packet
- * @param {trackdirect.models.Map} map
- * @param {boolean} isHalf
- */
-trackdirect.models.PhgCircle = function (packet, map, isHalf) {
-  this._defaultMap = map;
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Circle.call(this, this._getGoogleCircleOptions(packet, isHalf));
-  } else if (typeof L === "object") {
-    if (L.version <= "0.7.7") {
-      var range = this._getCircleRadius(packet, isHalf);
-      var center = this._getCircleCenter(packet, isHalf);
-      L.Circle.call(
-        this,
-        [center.lat, center.lng],
-        range,
-        this._getLeafletCircleOptions(packet, isHalf)
-      );
-    } else {
-      L.Circle.call(
-        this,
-        this._getCircleCenter(packet, isHalf),
-        this._getLeafletCircleOptions(packet, isHalf)
-      );
-    }
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.PhgCircle.prototype = Object.create(
-    google.maps.Circle.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.PhgCircle.prototype = Object.create(L.Circle.prototype);
-}
-trackdirect.models.PhgCircle.prototype.constructor =
-  trackdirect.models.PhgCircle;
-
-/**
- * show the circle if it is not shown
- */
-trackdirect.models.PhgCircle.prototype.show = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-      this.setMap(this._defaultMap);
-    }
-  } else if (typeof L === "object") {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  }
-};
-
-/**
- * hide circle if it is visible
- */
-trackdirect.models.PhgCircle.prototype.hide = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  }
-};
-
-/**
- * Get default options used for initializing circle
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isHalf
- * @return {object}
- */
-trackdirect.models.PhgCircle.prototype._getGoogleCircleOptions = function (
-  packet,
-  isHalf
-) {
-  var color = trackdirect.services.stationColorCalculator.getColor(packet);
-  var range = this._getCircleRadius(packet, isHalf);
-  var center = this._getCircleCenter(packet, isHalf);
-
-  var options = {
-    strokeColor: color,
-    strokeOpacity: 0.6,
-    strokeWeight: 1,
-    fillColor: color,
-    fillOpacity: 0.3,
-    map: null,
-    center: center,
-    radius: range,
-  };
-
-  return options;
-};
-
-/**
- * Get default options used for initializing circle
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isHalf
- * @return {object}
- */
-trackdirect.models.PhgCircle.prototype._getLeafletCircleOptions = function (
-  packet,
-  isHalf
-) {
-  var color = trackdirect.services.stationColorCalculator.getColor(packet);
-  var range = this._getCircleRadius(packet, isHalf);
-  var options = {
-    color: color,
-    opacity: 0.6,
-    weight: 1,
-    fillColor: color,
-    fillOpacity: 0.3,
-    radius: range,
-  };
-
-  return options;
-};
-
-/**
- * Get circle radius based on packet
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isHalf
- * @return {float}
- */
-trackdirect.models.PhgCircle.prototype._getCircleRadius = function (
-  packet,
-  isHalf
-) {
-  var range = packet.getPHGRange();
-  if (range === null) {
-    range = 0;
-  }
-  if (isHalf) {
-    range = range / 2;
-  }
-  return range;
-};
-
-/**
- * Get circle center based on packet
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isHalf
- * @return {object}
- */
-trackdirect.models.PhgCircle.prototype._getCircleCenter = function (
-  packet,
-  isHalf
-) {
-  var direction = packet.getPhgDirectionDegree();
-  var center = packet.getLatLngLiteral();
-  if (direction != null) {
-    var range = packet.getPHGRange();
-    if (range === null) {
-      range = 0;
-    }
-
-    if (isHalf) {
-      range = range / 2;
-    }
-
-    var distance = (range * 2) / 3 / 2;
-    center = trackdirect.services.distanceCalculator.getPositionByDistance(
-      center,
-      direction,
-      distance
-    );
-  }
-
-  return center;
-};
diff --git a/jslib/src/trackdirect/models/RngCircle.js b/jslib/src/trackdirect/models/RngCircle.js
deleted file mode 100755
index c236d3391d6b18828cb8c756d12d7e7929d0b7f1..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/RngCircle.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- * Class trackdirect.models.RngCircle inherits google.maps.Circle
- * @see https://developers.google.com/maps/documentation/javascript/reference#Circle
- * @param {trackdirect.models.Packet} packet
- * @param {trackdirect.models.Map} map
- * @param {boolean} isHalf
- */
-trackdirect.models.RngCircle = function (packet, map, isHalf) {
-  this._defaultMap = map;
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Circle.call(this, this._getGoogleCircleOptions(packet, isHalf));
-  } else if (typeof L === "object") {
-    var center = packet.getLatLngLiteral();
-    if (L.version <= "0.7.7") {
-      var range = this._getCircleRadius(packet, isHalf);
-      L.Circle.call(
-        this,
-        [center.lat, center.lng],
-        range,
-        this._getLeafletCircleOptions(packet, isHalf)
-      );
-    } else {
-      L.Circle.call(
-        this,
-        center,
-        this._getLeafletCircleOptions(packet, isHalf)
-      );
-    }
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.RngCircle.prototype = Object.create(
-    google.maps.Circle.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.RngCircle.prototype = Object.create(L.Circle.prototype);
-}
-trackdirect.models.RngCircle.prototype.constructor =
-  trackdirect.models.RngCircle;
-
-/**
- * show the circle if it is not shown
- */
-trackdirect.models.RngCircle.prototype.show = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-      this.setMap(this._defaultMap);
-    }
-  } else if (typeof L === "object") {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  }
-};
-
-/**
- * hide circle if it is visible
- */
-trackdirect.models.RngCircle.prototype.hide = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  }
-};
-
-/**
- * Get default options used for initializing circle
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isHalf
- * @return {object}
- */
-trackdirect.models.RngCircle.prototype._getGoogleCircleOptions = function (
-  packet,
-  isHalf
-) {
-  var color = trackdirect.services.stationColorCalculator.getColor(packet);
-  var range = this._getCircleRadius(packet, isHalf);
-
-  var options = {
-    strokeColor: color,
-    strokeOpacity: 0.6,
-    strokeWeight: 1,
-    fillColor: color,
-    fillOpacity: 0.3,
-    map: null,
-    center: packet.getLatLngLiteral(),
-    radius: range * 1000,
-  };
-
-  return options;
-};
-
-/**
- * Get default options used for initializing circle
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isHalf
- * @return {object}
- */
-trackdirect.models.RngCircle.prototype._getLeafletCircleOptions = function (
-  packet,
-  isHalf
-) {
-  var color = trackdirect.services.stationColorCalculator.getColor(packet);
-  var range = this._getCircleRadius(packet, isHalf);
-
-  var options = {
-    color: color,
-    opacity: 0.6,
-    weight: 1,
-    fillColor: color,
-    fillOpacity: 0.3,
-    radius: range * 1000,
-  };
-
-  return options;
-};
-
-/**
- * Get circle radius based on packet
- * @param {trackdirect.models.Packet} packet
- * @param {boolean} isHalf
- * @return {float}
- */
-trackdirect.models.RngCircle.prototype._getCircleRadius = function (
-  packet,
-  isHalf
-) {
-  var range = packet.getRNGRange();
-  if (range === null) {
-    range = 0;
-  }
-  if (isHalf) {
-    range = range / 2;
-  }
-
-  return range;
-};
diff --git a/jslib/src/trackdirect/models/Ruler.js b/jslib/src/trackdirect/models/Ruler.js
deleted file mode 100755
index 85b47a001fc086952f1d610159a36351406bc553..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/Ruler.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- * Class trackdirect.models.Ruler
- * @param {int} defaultLength
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.Ruler = function (defaultLength, map) {
-  this._map = map;
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this._googleMapsInit(defaultLength);
-    this._addGoolgeMapsListeners();
-  } else if (typeof L === "object") {
-    this.leafletInit(defaultLength);
-    this._addLeafletListeners();
-  }
-};
-
-/**
- * Init ruler for Gogle Maps
- * @param {int} defaultLength
- */
-trackdirect.models.Ruler.prototype._googleMapsInit = function (defaultLength) {
-  this.marker1 = new google.maps.Marker({
-    position: trackdirect.services.distanceCalculator.getPositionByDistance(
-      this._map.getCenterLiteral(),
-      270,
-      defaultLength / 2
-    ),
-    draggable: true,
-    map: this._map,
-  });
-
-  this.marker2 = new google.maps.Marker({
-    position: trackdirect.services.distanceCalculator.getPositionByDistance(
-      this._map.getCenterLiteral(),
-      90,
-      defaultLength / 2
-    ),
-    draggable: true,
-    map: this._map,
-  });
-
-  this.marker1.markerLabel = new trackdirect.models.Label(
-    {
-      position: this.marker1.getPosition(),
-      text: this._getDistance(this.marker1, this.marker2),
-    },
-    this._map
-  );
-  this.marker1.markerLabel.show();
-
-  this.marker2.markerLabel = new trackdirect.models.Label(
-    {
-      position: this.marker2.getPosition(),
-      text: this._getDistance(this.marker2, this.marker1),
-    },
-    this._map
-  );
-  this.marker2.markerLabel.show();
-
-  this.line = new google.maps.Polyline({
-    path: [this.marker1.getPosition(), this.marker2.getPosition()],
-    strokeColor: "#ffff00",
-    strokeOpacity: 0.7,
-    strokeWeight: 6,
-  });
-  this.line.setMap(this._map);
-};
-
-/**
- * Init ruler for Leaflet
- * @param {int} defaultLength
- */
-trackdirect.models.Ruler.prototype.leafletInit = function (defaultLength) {
-  this.marker1 = new L.Marker(
-    trackdirect.services.distanceCalculator.getPositionByDistance(
-      this._map.getCenterLiteral(),
-      270,
-      defaultLength / 2
-    ),
-    { draggable: true }
-  );
-  this.marker1.addTo(this._map);
-
-  this.marker2 = new L.Marker(
-    trackdirect.services.distanceCalculator.getPositionByDistance(
-      this._map.getCenterLiteral(),
-      90,
-      defaultLength / 2
-    ),
-    { draggable: true }
-  );
-  this.marker2.addTo(this._map);
-
-  this.marker1.markerLabel = new trackdirect.models.Label(
-    {
-      position: this.marker1.getLatLng(),
-      text: this._getDistance(this.marker1, this.marker2),
-    },
-    this._map
-  );
-  this.marker1.markerLabel.show();
-
-  this.marker2.markerLabel = new trackdirect.models.Label(
-    {
-      position: this.marker2.getLatLng(),
-      text: this._getDistance(this.marker2, this.marker1),
-    },
-    this._map
-  );
-  this.marker2.markerLabel.show();
-
-  this.line = new L.Polyline(
-    [this.marker1.getLatLng(), this.marker2.getLatLng()],
-    {
-      color: "#ffff00",
-      opacity: 0.8,
-      weight: 6,
-    }
-  );
-  this.line.addTo(this._map);
-};
-
-/**
- * Show ruler
- */
-trackdirect.models.Ruler.prototype.show = function () {
-  this.marker1.markerLabel.show();
-  this.marker2.markerLabel.show();
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.marker1.setMap(this._map);
-    this.marker2.setMap(this._map);
-    this.line.setMap(this._map);
-  } else if (typeof L === "object") {
-    this.marker1.addTo(this._map);
-    this.marker2.addTo(this._map);
-    this.line.addTo(this._map);
-  }
-};
-
-/**
- * Hide ruler
- */
-trackdirect.models.Ruler.prototype.hide = function () {
-  this.marker1.markerLabel.hide();
-  this.marker2.markerLabel.hide();
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.marker1.setMap(null);
-    this.marker2.setMap(null);
-    this.line.setMap(null);
-  } else if (typeof L === "object") {
-    this._map.removeLayer(this.marker1);
-    this._map.removeLayer(this.marker2);
-    this._map.removeLayer(this.line);
-  }
-};
-
-/**
- * Add listerners
- */
-trackdirect.models.Ruler.prototype._addGoolgeMapsListeners = function () {
-  var me = this;
-  google.maps.event.addListener(this.marker1, "drag", function () {
-    me.line.setPath([me.marker1.getPosition(), me.marker2.getPosition()]);
-    me._updateLabels();
-  });
-  google.maps.event.addListener(this.marker2, "drag", function () {
-    me.line.setPath([me.marker1.getPosition(), me.marker2.getPosition()]);
-    me._updateLabels();
-  });
-};
-
-/**
- * Add listerners
- */
-trackdirect.models.Ruler.prototype._addLeafletListeners = function () {
-  var me = this;
-  this.marker1.on("drag", function (e) {
-    me.line.setLatLngs([me.marker1.getLatLng(), me.marker2.getLatLng()]);
-    me._updateLabels();
-  });
-  this.marker2.on("drag", function (e) {
-    me.line.setLatLngs([me.marker1.getLatLng(), me.marker2.getLatLng()]);
-    me._updateLabels();
-  });
-};
-
-/**
- * Update labels with new text and new position
- */
-trackdirect.models.Ruler.prototype._updateLabels = function () {
-  this.marker1.markerLabel.hide();
-  this.marker2.markerLabel.hide();
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.marker1.markerLabel = new trackdirect.models.Label(
-      {
-        position: this.marker1.getPosition(),
-        text: this._getDistance(this.marker1, this.marker2),
-      },
-      this._map
-    );
-    this.marker2.markerLabel = new trackdirect.models.Label(
-      {
-        position: this.marker2.getPosition(),
-        text: this._getDistance(this.marker2, this.marker1),
-      },
-      this._map
-    );
-  } else if (typeof L === "object") {
-    this.marker1.markerLabel = new trackdirect.models.Label(
-      {
-        position: this.marker1.getLatLng(),
-        text: this._getDistance(this.marker1, this.marker2),
-      },
-      this._map
-    );
-    this.marker2.markerLabel = new trackdirect.models.Label(
-      {
-        position: this.marker2.getLatLng(),
-        text: this._getDistance(this.marker2, this.marker1),
-      },
-      this._map
-    );
-  }
-
-  this.marker1.markerLabel.show();
-  this.marker2.markerLabel.show();
-};
-
-/**
- * Get distance string for ruler
- * @param {Marker} marker1
- * @param {Marker} marker2
- * @return {string}
- */
-trackdirect.models.Ruler.prototype._getDistance = function (marker1, marker2) {
-  var p1 = this._getPositionLiteral(marker1);
-  var p2 = this._getPositionLiteral(marker2);
-  var distance = Math.round(
-    trackdirect.services.distanceCalculator.getDistance(p1, p2),
-    0
-  );
-  if (distance > 99999) {
-    if (this._map.state.useImperialUnit) {
-      distance =
-        Math.round(
-          trackdirect.services.imperialConverter.convertKilometerToMile(
-            distance / 1000
-          )
-        ).toString() + " miles";
-    } else {
-      distance = Math.round(distance / 1000).toString() + " km";
-    }
-  } else if (distance > 999) {
-    if (this._map.state.useImperialUnit) {
-      distance =
-        (
-          Math.round(
-            trackdirect.services.imperialConverter.convertKilometerToMile(
-              distance / 1000
-            ) * 10
-          ) / 10
-        ).toString() + " miles";
-    } else {
-      distance = (Math.round(distance / 100) / 10).toString() + " km";
-    }
-  } else {
-    distance = distance.toString() + " m";
-  }
-  var bearing = Math.round(
-    trackdirect.services.distanceCalculator.getBearing(p2, p1),
-    0
-  ).toString();
-  return bearing + "&ordm; " + distance;
-};
-
-/**
- * Get position literal
- * @param {Marker} marker
- * @return LatLngLiteral
- */
-trackdirect.models.Ruler.prototype._getPositionLiteral = function (marker) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var latLng = marker.getPosition();
-    if (typeof latLng !== "undefined" && typeof latLng.lat === "function") {
-      return { lat: latLng.lat(), lng: latLng.lng() };
-    } else {
-      return latLng;
-    }
-  } else if (typeof L === "object") {
-    var latLng = marker.getLatLng();
-    if (typeof latLng !== "undefined") {
-      return { lat: latLng.lat, lng: latLng.lng };
-    } else {
-      return latLng;
-    }
-  }
-  return null;
-};
diff --git a/jslib/src/trackdirect/models/StationCoveragePolygon.js b/jslib/src/trackdirect/models/StationCoveragePolygon.js
deleted file mode 100755
index 14e5c833240d3382686372394e068016bbc5b2fd..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/StationCoveragePolygon.js
+++ /dev/null
@@ -1,505 +0,0 @@
-/**
- * Class trackdirect.models.StationCoveragePolygon
- * @param {LatLngLiteral} center
- * @param {trackdirect.models.Map} map
- * @param {boolean} tryToShowCoveragePolygon
- */
-trackdirect.models.StationCoveragePolygon = function (
-  center,
-  map,
-  tryToShowCoveragePolygon
-) {
-  tryToShowCoveragePolygon =
-    typeof tryToShowCoveragePolygon !== "undefined"
-      ? tryToShowCoveragePolygon
-      : true;
-  this._showPolygon = tryToShowCoveragePolygon;
-
-  this._map = map;
-  this._center = center;
-  this._isRequestedToBeVisible = false;
-
-  this._polygon = null;
-  this._polygonCoordinates = null;
-
-  this._heatmapCoordinates = null;
-  this._heatmap = null;
-
-  this._tdEventListeners = {};
-  this._tdEventListenersOnce = {};
-
-  // I recommend ignoring positions with a very long distance.
-  // Ignoring everything with a distance longer than 1000km is reasonable.
-  this._upperMaxRangeInMeters = 1000 * 1000;
-
-  // To get a smooth ploygon we add som padding to the convex hull positions.
-  this._paddingInPercentOfMaxRange = 10;
-  this._paddingMinInMeters = 1000;
-};
-
-/**
- * Set coverage data
- * @param {array} data
- * @param {int} percentile
- */
-trackdirect.models.StationCoveragePolygon.prototype.setData = function (data, percentile) {
-  this._addParametersToData(data);
-  this._heatmapCoordinates = this._getCoordinates(data);
-
-  if (this._showPolygon) {
-    var maxRange = this._getCoveragePolygonMaxRange(data, percentile);
-    if (maxRange <= 0) {
-      this._showPolygon = false;
-    } else {
-      this._polygonCoordinates = this._getConvexHullCoordinates(data, maxRange);
-    }
-  }
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this._googleMapsInit();
-  } else if (typeof L === "object") {
-    this._leafletInit();
-  }
-};
-
-/**
- * Add listener to events
- * @param {string} event
- * @param {string} handler
- */
-trackdirect.models.StationCoveragePolygon.prototype.addTdListener = function (
-  event,
-  handler,
-  execOnce
-) {
-  execOnce = typeof execOnce !== "undefined" ? execOnce : false;
-
-  if (execOnce) {
-    if (!(event in this._tdEventListenersOnce)) {
-      this._tdEventListenersOnce[event] = [];
-    }
-    this._tdEventListenersOnce[event].push(handler);
-  } else {
-    if (!(event in this._tdEventListeners)) {
-      this._tdEventListeners[event] = [];
-    }
-    this._tdEventListeners[event].push(handler);
-  }
-};
-
-/**
- * Returns true if polygon has an area
- * @return {boolean}
- */
-trackdirect.models.StationCoveragePolygon.prototype.hasContent = function () {
-  if (
-    this._heatmapCoordinates !== null &&
-    this._heatmapCoordinates.length > 0
-  ) {
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returns true if polygon is visible
- * @return {boolean}
- */
-trackdirect.models.StationCoveragePolygon.prototype.isRequestedToBeVisible =
-  function () {
-    return this._isRequestedToBeVisible;
-  };
-
-/**
- * Request polygon to be shown when complete
- */
-trackdirect.models.StationCoveragePolygon.prototype.showWhenDone = function () {
-  this._isRequestedToBeVisible = true;
-};
-
-/**
- * Show coverage
- */
-trackdirect.models.StationCoveragePolygon.prototype.show = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this._polygon !== null) {
-      this._polygon.setMap(this._map);
-    }
-    if (this._heatmap !== null) {
-      this._heatmap.setMap(this._map);
-    }
-  } else if (typeof L === "object") {
-    if (this._polygon !== null) {
-      this._polygon.addTo(this._map);
-    }
-    if (this._heatmap !== null) {
-      this._heatmap.addTo(this._map);
-    }
-  }
-  this._isRequestedToBeVisible = true;
-
-  // show will be called again when data has been updated
-  if (this._showPolygon && this._polygonCoordinates !== null) {
-    this._emitTdEventListeners("visible");
-  } else if (this._heatmapCoordinates !== null) {
-    this._emitTdEventListeners("visible");
-  }
-};
-
-/**
- * Hide coverage
- * @param {boolean} stillMarkAsVisible
- */
-trackdirect.models.StationCoveragePolygon.prototype.hide = function (
-  stillMarkAsVisible
-) {
-  stillMarkAsVisible =
-    typeof stillMarkAsVisible !== "undefined" ? stillMarkAsVisible : false;
-
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this._polygon !== null) {
-      this._polygon.setMap(null);
-    }
-    if (this._heatmap !== null) {
-      this._heatmap.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    if (this._polygon !== null) {
-      this._map.removeLayer(this._polygon);
-    }
-    if (this._heatmap !== null) {
-      this._map.removeLayer(this._heatmap);
-    }
-  }
-  if (!stillMarkAsVisible) {
-    this._isRequestedToBeVisible = false;
-  }
-  this._emitTdEventListeners("hidden");
-};
-
-/**
- * Init function for Gogle Maps
- */
-trackdirect.models.StationCoveragePolygon.prototype._googleMapsInit =
-  function () {
-    if (
-      this._polygonCoordinates !== null &&
-      this._polygonCoordinates.length > 0
-    ) {
-      this._polygon = new google.maps.Polygon({
-        paths: this._polygonCoordinates,
-        strokeColor: "#0000FF",
-        strokeOpacity: 0,
-        strokeWeight: 0,
-        fillColor: "#0000FF",
-        fillOpacity: 0.2,
-      });
-    }
-
-    if (
-      this._heatmapCoordinates !== null &&
-      this._heatmapCoordinates.length > 0
-    ) {
-      var data = [];
-      for (var i = 0; i < this._heatmapCoordinates.length; i++) {
-        data.push({ location: this._heatmapCoordinates[i], weight: 1 });
-      }
-
-      this._heatmap = new google.maps.visualization.HeatmapLayer({
-        data: data,
-        radius: 8,
-        maxIntensity: 5,
-        gradient: [
-          "rgba(0, 255, 255, 0)",
-          "rgba(0, 255, 255, 1)",
-          "rgba(0, 191, 255, 1)",
-          "rgba(0, 127, 255, 1)",
-          "rgba(0, 63, 255, 1)",
-          "rgba(0, 0, 255, 1)",
-          "rgba(0, 0, 223, 1)",
-          "rgba(0, 0, 191, 1)",
-          "rgba(0, 0, 159, 1)",
-          "rgba(0, 0, 127, 1)",
-          "rgba(63, 0, 91, 1)",
-          "rgba(127, 0, 63, 1)",
-          "rgba(191, 0, 31, 1)",
-          "rgba(255, 0, 0, 1)",
-        ],
-        map: null,
-      });
-    }
-  };
-
-/**
- * Init function for Leaflet
- */
-trackdirect.models.StationCoveragePolygon.prototype._leafletInit = function () {
-  if (
-    this._polygonCoordinates !== null &&
-    this._polygonCoordinates.length > 0
-  ) {
-    this._polygon = new L.polygon(this._polygonCoordinates, {
-      color: "#0000FF",
-      opacity: 0,
-      weight: 0,
-      fillColor: "#0000FF",
-      fillOpacity: 0.2,
-    });
-  }
-
-  if (
-    this._heatmapCoordinates !== null &&
-    this._heatmapCoordinates.length > 0
-  ) {
-    var data = [];
-    for (var i = 0; i < this._heatmapCoordinates.length; i++) {
-      data.push([
-        this._heatmapCoordinates[i].lat,
-        this._heatmapCoordinates[i].lng,
-        10,
-      ]);
-    }
-    this._heatmap = L.heatLayer(this._heatmapCoordinates, {
-      minOpacity: 0.35,
-      radius: 6,
-      blur: 4,
-    });
-  }
-};
-
-/**
- * Get convex hull coordinates
- * @param {array} data
- * @param {int} maxRange
- * @return {array}
- */
-trackdirect.models.StationCoveragePolygon.prototype._getConvexHullCoordinates =
-  function (data, maxRange) {
-    var positions = this._getFilteredPositions(data, maxRange);
-    positions.push(this._center);
-
-    var xyPositions = this._convertToXYPos(positions);
-    var convexHullXYPositions = convexhull.makeHull(xyPositions);
-
-    // Calc padding
-    var latLngPadding =
-      this._paddingInPercentOfMaxRange * 0.01 * maxRange * 0.000009;
-    var latLngPaddingMin = this._paddingMinInMeters * 0.000009;
-    if (isNaN(latLngPadding) || latLngPadding < latLngPaddingMin) {
-      latLngPadding = latLngPaddingMin;
-    }
-
-    // Add padding
-    var xyPositionsWithPadding = [];
-    for (var i = 0; i < convexHullXYPositions.length; i++) {
-      xyPositionsWithPadding.push(convexHullXYPositions[i]);
-
-      for (var angle = 0; angle < 360; angle += 10) {
-        var x =
-          convexHullXYPositions[i]["x"] +
-          latLngPadding * Math.cos((angle * Math.PI) / 180);
-        var y =
-          convexHullXYPositions[i]["y"] +
-          latLngPadding * Math.sin((angle * Math.PI) / 180) * 2;
-        if (!isNaN(x) && !isNaN(y)) {
-          xyPositionsWithPadding.push({ x: x, y: y });
-        }
-      }
-    }
-    var convexHullXYPositionsWithPadding = convexhull.makeHull(
-      xyPositionsWithPadding
-    );
-
-    // Convert to LatLng and return
-    return this._convertToLatLngPos(convexHullXYPositionsWithPadding);
-  };
-
-/**
- * Get an array with valid positions
- * @param {array} data
- * @param {int} maxRange
- * @return {array}
- */
-trackdirect.models.StationCoveragePolygon.prototype._getFilteredPositions =
-  function (data, maxRange) {
-    var result = [];
-
-    for (var i = 0; i < data.length; i++) {
-      if (typeof maxRange !== "undefined" && data[i].distance > maxRange) {
-        continue;
-      }
-
-      result.push(data[i].latLngLiteral);
-    }
-
-    return result;
-  };
-
-/**
- * Calculate coverage polygon max range
- * @param {array} data
- * @param {int} percentile
- * @return {int}
- */
-trackdirect.models.StationCoveragePolygon.prototype._getCoveragePolygonMaxRange =
-  function (data, percentile) {
-    var maxRange = this._getDistancePercentile(
-      data,
-      percentile,
-      this._upperMaxRangeInMeters
-    );
-    if (isNaN(maxRange)) {
-      maxRange = 0;
-    }
-
-    return maxRange;
-  };
-
-/**
- * Calculate the specified percentile
- * @param {array} data
- * @param {int} percentile
- * @param {int} upperMaxRange
- * @return {int}
- */
-trackdirect.models.StationCoveragePolygon.prototype._getDistancePercentile =
-  function (data, percentile, upperMaxRange) {
-    var values = [];
-    for (var i = 0; i < data.length; i++) {
-      if (data[i].distance + 0 < upperMaxRange) {
-        values.push(data[i].distance);
-      }
-    }
-
-    values.sort(function (a, b) {
-      return a - b;
-    });
-
-    var index = (percentile / 100) * values.length;
-    var result;
-    if (Math.floor(index) == index) {
-      result = (values[index - 1] + values[index]) / 2;
-    } else {
-      result = values[Math.floor(index)];
-    }
-
-    return result;
-  };
-
-/**
- * Calculate number of values
- * @param {array} data
- * @param {int} maxRange
- * @return {int}
- */
-trackdirect.models.StationCoveragePolygon.prototype._getNumberOfValues =
-  function (data, maxRange) {
-    var counter = 0;
-    for (var i = 0; i < data.length; i++) {
-      if (data[i].distance > maxRange) {
-        continue;
-      }
-
-      counter++;
-    }
-
-    return counter;
-  };
-
-/**
- * Convert to xy positions
- * @param {array} data
- * @return {array}
- */
-trackdirect.models.StationCoveragePolygon.prototype._convertToXYPos = function (
-  positions
-) {
-  var result = [];
-  for (var i = 0; i < positions.length; i++) {
-    result.push({ x: positions[i].lat, y: positions[i].lng });
-  }
-  return result;
-};
-
-/**
- * Convert to lat/lng positions
- * @param {array} data
- * @return {array}
- */
-trackdirect.models.StationCoveragePolygon.prototype._convertToLatLngPos =
-  function (positions) {
-    var result = [];
-    for (var i = 0; i < positions.length; i++) {
-      result.push({ lat: positions[i].x, lng: positions[i].y });
-    }
-    return result;
-  };
-
-/**
- * Get an array of all coordinates for the specified move type
- * @param {array} data
- * @return {array}
- */
-trackdirect.models.StationCoveragePolygon.prototype._getCoordinates = function (
-  data
-) {
-  var result = [];
-
-  for (var j = 0; j < data.length; j++) {
-    if (typeof google === "object" && typeof google.maps === "object") {
-      var position = new google.maps.LatLng(
-        parseFloat(data[j]["latitude"]),
-        parseFloat(data[j]["longitude"])
-      );
-    } else {
-      var position = {
-        lat: parseFloat(data[j]["latitude"]),
-        lng: parseFloat(data[j]["longitude"]),
-      };
-    }
-    result.push(position);
-  }
-
-  return result;
-};
-
-/**
- * Add the angle paramter for each coverage position
- * @param {array} data
- */
-trackdirect.models.StationCoveragePolygon.prototype._addParametersToData =
-  function (data) {
-    for (var j = 0; j < data.length; j++) {
-      var latLngLiteral = {
-        lat: parseFloat(data[j].latitude),
-        lng: parseFloat(data[j].longitude),
-      };
-      data[j].latLngLiteral = latLngLiteral;
-      data[j].angle = trackdirect.services.distanceCalculator.getBearing(
-        this._center,
-        latLngLiteral
-      );
-    }
-  };
-
-/**
- * Emit all event listeners for a specified event
- * @param {string} event
- * @param {object} arg
- */
-trackdirect.models.StationCoveragePolygon.prototype._emitTdEventListeners =
-  function (event, arg) {
-    if (event in this._tdEventListeners) {
-      for (var i = 0; i < this._tdEventListeners[event].length; i++) {
-        this._tdEventListeners[event][i](arg);
-      }
-    }
-
-    if (event in this._tdEventListenersOnce) {
-      var eventListenersOnce = this._tdEventListenersOnce[event].splice(0);
-      this._tdEventListenersOnce[event] = [];
-      for (var i = 0; i < eventListenersOnce.length; i++) {
-        eventListenersOnce[i](arg);
-      }
-    }
-  };
diff --git a/jslib/src/trackdirect/models/TailPolyline.js b/jslib/src/trackdirect/models/TailPolyline.js
deleted file mode 100755
index 4b85238bada136bd1bfbeec38dea9d9edfcf6be7..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/TailPolyline.js
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
- * Class trackdirect.models.TailPolyline
- * @see https://developers.google.com/maps/documentation/javascript/reference#Polyline
- * @param {string} color
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.TailPolyline = function (color, map) {
-  this._defaultMap = map;
-  this.markerIdKey = null;
-  this.ownerMarkerIdKey = null;
-  this.relatedMarkerIdKey = null;
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Polyline.call(this, this._getGooglePolylineOptions(color));
-  } else if (typeof L === "object") {
-    L.Polyline.call(this, {}, this._getLeafletPolylineOptions(color));
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.TailPolyline.prototype = Object.create(
-    google.maps.Polyline.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.TailPolyline.prototype = Object.create(
-    L.Polyline.prototype
-  );
-}
-trackdirect.models.TailPolyline.prototype.constructor =
-  trackdirect.models.TailPolyline;
-
-/**
- * Get latLng object by index
- */
-trackdirect.models.TailPolyline.prototype.getPathItem = function (index) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    return path.getAt(index);
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    if (typeof list[index] !== "undefined") {
-      return list[index];
-    } else {
-      return null;
-    }
-  }
-  return null;
-};
-
-/**
- * Push latLng object to path
- */
-trackdirect.models.TailPolyline.prototype.pushPathItem = function (latLng) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    path.push(latLng);
-  } else if (typeof L === "object") {
-    this.addLatLng(latLng);
-  }
-};
-
-/**
- * Remove latLng object by index
- */
-trackdirect.models.TailPolyline.prototype.removePathItem = function (index) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    path.removeAt(index);
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    if (typeof list[index] !== "undefined") {
-      list.splice(index, 1);
-      this.setLatLngs(list);
-    }
-  }
-};
-
-/**
- * Get Path length
- */
-trackdirect.models.TailPolyline.prototype.getPathLength = function (index) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    return path.getLength();
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    return list.length;
-  }
-};
-
-/**
- * Get latLng array
- */
-trackdirect.models.TailPolyline.prototype.getPath = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    return google.maps.Polyline.prototype.getPath.call(this);
-  } else if (typeof L === "object") {
-    return this.getLatLngs();
-  }
-  return [];
-};
-
-/**
- * get polyline currently active Map
- * @return {google.maps.Map}
- */
-trackdirect.models.TailPolyline.prototype.getMap = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var map = google.maps.Polyline.prototype.getMap.call(this);
-    if (typeof map !== "undefined") {
-      return map;
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      return this._defaultMap;
-    }
-  }
-  return null;
-};
-
-/**
- * Set markerIdKey
- * @param {int} markerIdKey
- */
-trackdirect.models.TailPolyline.prototype.setMarkerIdKey = function (
-  markerIdKey
-) {
-  // Two names for the same thing...
-  this.markerIdKey = markerIdKey;
-  this.ownerMarkerIdKey = markerIdKey;
-  this._addInfoWindowListener(markerIdKey);
-};
-
-/**
- * Set related markerIdKey
- * @param {int} markerIdKey
- */
-trackdirect.models.TailPolyline.prototype.setRelatedMarkerIdKey = function (
-  markerIdKey
-) {
-  this.relatedMarkerIdKey = markerIdKey;
-};
-
-/**
- * Show polylne on default map
- */
-trackdirect.models.TailPolyline.prototype.show = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-      this.setMap(this._defaultMap);
-    }
-  } else if (typeof L === "object") {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  }
-};
-
-/**
- * Hide polylne transmit polyline
- */
-trackdirect.models.TailPolyline.prototype.hide = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  }
-};
-
-/**
- * Add marker to polyline
- * @param {trackdirect.models.Marker} marker
- */
-trackdirect.models.TailPolyline.prototype.addMarker = function (marker) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var latLng = new google.maps.LatLng(
-      parseFloat(marker.packet.latitude),
-      parseFloat(marker.packet.longitude)
-    );
-    latLng.marker = marker;
-    this.pushPathItem(latLng);
-  } else if (typeof L === "object") {
-    var latLng = new L.latLng(
-      parseFloat(marker.packet.latitude),
-      parseFloat(marker.packet.longitude)
-    );
-    latLng.marker = marker;
-    this.addLatLng(latLng);
-  }
-};
-
-/**
- * Add infowindow listener
- * @param {int} markerIdKey
- */
-trackdirect.models.TailPolyline.prototype._addInfoWindowListener = function (
-  markerIdKey
-) {
-  var me = this;
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.event.addListener(this, "click", function (event) {
-      var marker = me._defaultMap.markerCollection.getMarker(markerIdKey);
-      me._defaultMap.openPolylineInfoWindow(marker, event.latLng);
-    });
-  } else if (typeof L === "object") {
-    this.on("click", function (event) {
-      var marker = me._defaultMap.markerCollection.getMarker(markerIdKey);
-      me._defaultMap.openPolylineInfoWindow(marker, event.latlng);
-    });
-  }
-};
-
-/**
- * Get a suitable google polyline options object
- * @param {string} color
- * @return {object}
- */
-trackdirect.models.TailPolyline.prototype._getGooglePolylineOptions = function (
-  color
-) {
-  return {
-    geodesic: false,
-    strokeOpacity: 0.6,
-    strokeWeight: 4,
-    strokeColor: color,
-    map: null,
-    zIndex: 100,
-  };
-};
-
-/**
- * Get a suitable leaflet polyline options object
- * @param {string} color
- * @return {object}
- */
-trackdirect.models.TailPolyline.prototype._getLeafletPolylineOptions =
-  function (color) {
-    return {
-      opacity: 0.7,
-      weight: 4,
-      color: color,
-    };
-  };
diff --git a/jslib/src/trackdirect/models/TransmitAnimation.js b/jslib/src/trackdirect/models/TransmitAnimation.js
deleted file mode 100755
index a37e6bae8df8fc03b4b12ba8fc13fad9d4e418da..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/TransmitAnimation.js
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- * Class trackdirect.models.TransmitAnimation inherits google.maps.Marker
- * @see https://developers.google.com/maps/documentation/javascript/reference#Marker
- * @param {trackdirect.models.Marker} marker
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.TransmitAnimation = function (marker, map) {
-  this._map = map;
-  this._marker = marker;
-  this.init();
-};
-
-/**
- * Show transmit animation
- */
-trackdirect.models.TransmitAnimation.prototype.show = function () {
-  this._startAnimation();
-};
-
-/**
- * Hide transmit animation
- */
-trackdirect.models.TransmitAnimation.prototype.hide = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.iconMarkers[1].setMap(null);
-    this.iconMarkers[2].setMap(null);
-    this.iconMarkers[3].setMap(null);
-  } else if (typeof L === "object") {
-    this._map.removeLayer(this.iconMarkers[1]);
-    this._map.removeLayer(this.iconMarkers[2]);
-    this._map.removeLayer(this.iconMarkers[3]);
-  }
-  this.marker.transmitPolyLine.hide();
-};
-
-/**
- * Show packet send animation
- */
-trackdirect.models.TransmitAnimation.prototype.init = function () {
-  var newLatLng = this._marker.packet.getLatLngLiteral();
-  this._marker.transmitPolyLine = new trackdirect.models.TransmitPolyline(
-    this._marker.packet,
-    this._map
-  );
-  this.iconMarkers = [];
-  for (var i = 1; i <= 3; i++) {
-    var icon = this._getIcon(i);
-    if (typeof google === "object" && typeof google.maps === "object") {
-      var iconMarker = new google.maps.Marker({
-        position: newLatLng,
-        zIndex: this._map.state.currentMarkerZindex,
-        icon: icon,
-        opacity: 0.6,
-      });
-    } else if (typeof L === "object") {
-      var iconMarker = new L.Marker(newLatLng, {
-        zIndexOffset: this._map.state.currentMarkerZindex,
-        icon: icon,
-        opacity: 0.6,
-      });
-    }
-    this.iconMarkers[i] = iconMarker;
-  }
-};
-
-/**
- * Get transmit icon
- * @param {int} index
- * @return {object}
- */
-trackdirect.models.TransmitAnimation.prototype._getIcon = function (index) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var icon = {
-      url:
-        trackdirect.settings.baseUrl +
-        trackdirect.settings.imagesBaseDir +
-        "transmit" +
-        index +
-        ".png",
-      size: new google.maps.Size(60, 60),
-      origin: new google.maps.Point(0, 0),
-      anchor: new google.maps.Point(30, 30),
-    };
-  } else if (typeof L === "object") {
-    var icon = L.icon({
-      iconUrl:
-        trackdirect.settings.baseUrl +
-        trackdirect.settings.imagesBaseDir +
-        "transmit" +
-        index +
-        ".png",
-      iconSize: [60, 60],
-      iconAnchor: [30, 30],
-    });
-  }
-  return icon;
-};
-
-/**
- * Start the previously created activity animation
- * @param {object} marker
- * @param {array} iconMarkers
- */
-trackdirect.models.TransmitAnimation.prototype._startAnimation = function () {
-  var me = this;
-  me._showIconMarker(1);
-
-  window.setTimeout(function () {
-    me._showIconMarker(2);
-  }, 150);
-
-  window.setTimeout(function () {
-    me._showIconMarker(3);
-
-    if (me._marker.transmitPolyLine !== null) {
-      me._marker.transmitPolyLine.show();
-    }
-  }, 300);
-
-  window.setTimeout(function () {
-    me._hideIconMarker(1);
-  }, 800);
-
-  window.setTimeout(function () {
-    me._hideIconMarker(2);
-  }, 900);
-
-  window.setTimeout(function () {
-    me._hideIconMarker(3);
-
-    if (me._marker.transmitPolyLine != null) {
-      me._marker.transmitPolyLine.hide(4000);
-    }
-  }, 1000);
-};
-
-/**
- * Show icon marker with specified index
- * @param {int} index
- */
-trackdirect.models.TransmitAnimation.prototype._showIconMarker = function (
-  index
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.iconMarkers[index].setMap(this._map);
-  } else if (typeof L === "object") {
-    this.iconMarkers[index].addTo(this._map);
-  }
-};
-
-/**
- * Hide icon marker with specified index
- * @param {int} index
- */
-trackdirect.models.TransmitAnimation.prototype._hideIconMarker = function (
-  index
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    this.iconMarkers[index].setMap(null);
-  } else if (typeof L === "object") {
-    this._map.removeLayer(this.iconMarkers[index]);
-  }
-};
diff --git a/jslib/src/trackdirect/models/TransmitPolyline.js b/jslib/src/trackdirect/models/TransmitPolyline.js
deleted file mode 100755
index 31abeacd6d075f810e1acb45c66e77189e649d01..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/models/TransmitPolyline.js
+++ /dev/null
@@ -1,334 +0,0 @@
-/**
- * Class trackdirect.models.TransmitPolyline inherits google.maps.Polyline
- * @see https://developers.google.com/maps/documentation/javascript/reference#Polyline
- * @param {trackdirect.models.Marker} marker
- * @param {trackdirect.models.Map} map
- */
-trackdirect.models.TransmitPolyline = function (packet, map) {
-  this._packet = packet;
-  this._defaultMap = map;
-  this._relatedMarkerIdKeys = [];
-
-  // Call the parent constructor
-  if (typeof google === "object" && typeof google.maps === "object") {
-    google.maps.Polyline.call(this, this._getGoolgePolylineOptions());
-  } else if (typeof L === "object") {
-    L.Polyline.call(this, {}, this._getLeafletPolylineOptions());
-    this.setLatLngs(this.getCoordinates());
-  }
-};
-if (typeof google === "object" && typeof google.maps === "object") {
-  trackdirect.models.TransmitPolyline.prototype = Object.create(
-    google.maps.Polyline.prototype
-  );
-} else if (typeof L === "object") {
-  trackdirect.models.TransmitPolyline.prototype = Object.create(
-    L.Polyline.prototype
-  );
-}
-trackdirect.models.TransmitPolyline.prototype.constructor =
-  trackdirect.models.TransmitPolyline;
-
-/**
- * Get latLng object by index
- */
-trackdirect.models.TransmitPolyline.prototype.getPathItem = function (index) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    return path.getAt(index);
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    if (typeof list[index] !== "undefined") {
-      return list[index];
-    } else {
-      return null;
-    }
-  }
-  return null;
-};
-
-/**
- * Push latLng object to path
- */
-trackdirect.models.TransmitPolyline.prototype.pushPathItem = function (latLng) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    path.push(latLng);
-  } else if (typeof L === "object") {
-    this.addLatLng(latLng);
-  }
-};
-
-/**
- * Remove latLng object by index
- */
-trackdirect.models.TransmitPolyline.prototype.removePathItem = function (
-  index
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    path.removeAt(index);
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    if (typeof list[index] !== "undefined") {
-      list.splice(index, 1);
-      this.setLatLngs(list);
-    }
-  }
-};
-
-/**
- * Get Path length
- */
-trackdirect.models.TransmitPolyline.prototype.getPathLength = function (index) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var path = google.maps.Polyline.prototype.getPath.call(this);
-    return path.getLength();
-  } else if (typeof L === "object") {
-    var list = this.getLatLngs();
-    return list.length;
-  }
-};
-
-/**
- * Get latLng array
- */
-trackdirect.models.TransmitPolyline.prototype.getPath = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    return google.maps.Polyline.prototype.getPath.call(this);
-  } else if (typeof L === "object") {
-    return this.getLatLngs();
-  }
-  return [];
-};
-
-/**
- * Get Polyline currently active Map
- * @return {google.maps.Map}
- */
-trackdirect.models.TransmitPolyline.prototype.getMap = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    var map = google.maps.Polyline.prototype.getMap.call(this);
-    if (typeof map !== "undefined") {
-      return map;
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      return this._defaultMap;
-    }
-  }
-  return null;
-};
-
-/**
- * Show Polyline on default map
- */
-trackdirect.models.TransmitPolyline.prototype.show = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() === "undefined" || this.getMap() === null) {
-      this.setMap(this._defaultMap);
-    }
-  } else if (typeof L === "object") {
-    if (!this._defaultMap.hasLayer(this)) {
-      this.addTo(this._defaultMap);
-    }
-  }
-
-  for (var i = 0; i < this._relatedMarkerIdKeys.length; i++) {
-    var relatedMarkerIdKey = this._relatedMarkerIdKeys[i];
-    if (
-      this._defaultMap.markerCollection.isExistingMarker(relatedMarkerIdKey)
-    ) {
-      var relatedMarker =
-        this._defaultMap.markerCollection.getMarker(relatedMarkerIdKey);
-      relatedMarker.show();
-      relatedMarker.showLabel();
-    }
-  }
-};
-
-/**
- * Hide transmit polyline
- * @param {int} delayInMilliSeconds
- */
-trackdirect.models.TransmitPolyline.prototype.hide = function (
-  delayInMilliSeconds
-) {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (this.getMap() !== null) {
-      this.setMap(null);
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      this._defaultMap.removeLayer(this);
-    }
-  }
-
-  for (var i = 0; i < this._relatedMarkerIdKeys.length; i++) {
-    var relatedMarkerIdKey = this._relatedMarkerIdKeys[i];
-
-    if (
-      this._defaultMap.markerCollection.isExistingMarker(relatedMarkerIdKey)
-    ) {
-      var relatedMarker =
-        this._defaultMap.markerCollection.getMarker(relatedMarkerIdKey);
-      if (relatedMarker !== null && relatedMarker.getMap() !== null) {
-        relatedMarker.hide(delayInMilliSeconds, true);
-      }
-    }
-  }
-};
-
-/**
- * Returns true if marker is visible
- * @return {boolean}
- */
-trackdirect.models.TransmitPolyline.prototype.isVisible = function () {
-  if (typeof google === "object" && typeof google.maps === "object") {
-    if (typeof this.getMap() !== "undefined" && this.getMap() !== null) {
-      return true;
-    }
-  } else if (typeof L === "object") {
-    if (this._defaultMap.hasLayer(this)) {
-      return true;
-    }
-  }
-  return false;
-};
-
-/**
- * Get a suitable google polyline options object
- * @return {object}
- */
-trackdirect.models.TransmitPolyline.prototype._getGoolgePolylineOptions =
-  function () {
-    var lineCoordinates = this.getCoordinates();
-    if (lineCoordinates.length <= 1) {
-      lineCoordinates = [];
-    }
-
-    var lineSymbol = {
-      path: "M 0,-0.1 0,0",
-      strokeOpacity: 0.7,
-      scale: 3,
-    };
-
-    return {
-      path: lineCoordinates,
-      strokeOpacity: 0,
-      strokeColor: "#0000ff",
-      icons: [
-        {
-          icon: lineSymbol,
-          offset: "0px",
-          repeat: "5px",
-        },
-      ],
-      map: null,
-      zIndex: 100,
-    };
-  };
-
-/**
- * Get a suitable leaflet polyline options object
- * @return {object}
- */
-trackdirect.models.TransmitPolyline.prototype._getLeafletPolylineOptions =
-  function () {
-    return {
-      opacity: 0.6,
-      weight: 3,
-      color: "#0000ff",
-      dashArray: "1,5",
-      lineCap: "round",
-      lineJoin: "round",
-    };
-  };
-
-/**
- * Returns coordinates for the transmit polyline
- * @return {array}
- */
-(trackdirect.models.TransmitPolyline.prototype.getCoordinates = function () {
-  // First we try to find other position by looking at station markers on map
-  // This is better if the receiving stations has moved
-  var lineCoordinates = this.getCoordinatesByStationMarkers();
-  if (lineCoordinates.length < this._packet.station_location_path.length + 1) {
-    lineCoordinates = this.getCoordinatesByPositions();
-  }
-  return lineCoordinates;
-}),
-  /**
-   * Returns coordinates for the transmit polyline by looking at station markers
-   * @return {array}
-   */
-  (trackdirect.models.TransmitPolyline.prototype.getCoordinatesByStationMarkers =
-    function () {
-      var lineCoordinates = [];
-      var startLatLng = this._packet.getLatLngLiteral();
-      lineCoordinates.push(startLatLng);
-
-      for (var i = 0; i < this._packet.station_id_path.length; i++) {
-        var stationId = this._packet.station_id_path[i];
-        var stationMarkerIdKey = null;
-        var stationMarker = null;
-        var stationDistance = null;
-        var stationLatLng = null;
-
-        for (var pointMarkerIdKey in this._defaultMap.markerCollection.getStationMarkerIdKeys(
-          stationId
-        )) {
-          var pointMarker =
-            this._defaultMap.markerCollection.getMarker(pointMarkerIdKey);
-          if (pointMarker !== null) {
-            var pointLatLng = pointMarker.packet.getLatLngLiteral();
-            var distance = trackdirect.services.distanceCalculator.getDistance(
-              startLatLng,
-              pointLatLng
-            );
-
-            if (stationMarker === null || distance < stationDistance) {
-              stationMarkerIdKey = pointMarkerIdKey;
-              stationMarker = pointMarker;
-              stationDistance = distance;
-              stationLatLng = pointLatLng;
-            }
-          }
-        }
-
-        if (stationLatLng !== null) {
-          lineCoordinates.push(stationLatLng);
-          this._relatedMarkerIdKeys.push(stationMarkerIdKey);
-        }
-      }
-      return lineCoordinates;
-    }),
-  /**
-   * Returns coordinates for the transmit polyline by looking at received positions
-   * @return {array}
-   */
-  (trackdirect.models.TransmitPolyline.prototype.getCoordinatesByPositions =
-    function () {
-      var lineCoordinates = [];
-      var startLatLng = this._packet.getLatLngLiteral();
-      lineCoordinates.push(startLatLng);
-
-      if (
-        lineCoordinates.length <
-        this._packet.station_location_path.length + 1
-      ) {
-        // If we do not have stations on map we use the lat/lng positions
-        for (var i = 0; i < this._packet.station_location_path.length; i++) {
-          if (
-            this._packet.station_location_path[i][0] !== null &&
-            this._packet.station_location_path[i][1] !== null
-          ) {
-            lineCoordinates.push({
-              lat: parseFloat(this._packet.station_location_path[i][0]),
-              lng: parseFloat(this._packet.station_location_path[i][1]),
-            });
-          }
-        }
-      }
-      return lineCoordinates;
-    });
diff --git a/jslib/src/trackdirect/services/callbackExecutor.js b/jslib/src/trackdirect/services/callbackExecutor.js
deleted file mode 100755
index 70ec3679015828419460ad775875f623fdebb4ad..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/callbackExecutor.js
+++ /dev/null
@@ -1,154 +0,0 @@
-trackdirect.services.callbackExecutor = {
-  /** @type {object} */
-  settings: {
-    minTimeBeforeSleep: 30, // in ms
-  },
-
-  /** @type {boolean} */
-  _running: false,
-
-  /** @type {int} */
-  _lastSleepTimestamp: 0,
-
-  /** @type {object} */
-  _lastAddedUniqueCallback: null,
-
-  /** @type {array} */
-  _lowPriorityQueue: [],
-  _normalPriorityQueue: [],
-  _highPriorityQueue: [],
-
-  /**
-   * Add a call to the execution queue
-   * @param {object} thisObj
-   * @param {function} callback
-   * @param {array} argsArray
-   * @return {trackdirect.services.callbackExecutor}
-   */
-  add: function (thisObj, callback, argsArray) {
-    var callBackString = callback.toString() + ":" + argsArray.toString();
-    this._lastAddedUniqueCallback = callBackString;
-
-    this._normalPriorityQueue.push(function () {
-      callback.apply(thisObj, argsArray);
-      trackdirect.services.callbackExecutor._next();
-    });
-
-    this.start();
-    return this;
-  },
-
-  /**
-   * Add a call to the execution queue if it is unique
-   * @param {object} thisObj
-   * @param {function} callback
-   * @param {array} argsArray
-   * @return {trackdirect.services.callbackExecutor}
-   */
-  addIfUnique: function (thisObj, callback, argsArray) {
-    var callBackString = callback.toString() + ":" + argsArray.toString();
-    if (this._lastAddedUniqueCallback == callBackString) {
-      return this;
-    }
-    this._lastAddedUniqueCallback = callBackString;
-
-    this._normalPriorityQueue.push(function () {
-      callback.apply(thisObj, argsArray);
-      trackdirect.services.callbackExecutor._next();
-    });
-
-    this.start();
-    return this;
-  },
-
-  /**
-   * Add a call to the execution queue, and give it priority over regular calls
-   * @param {object} thisObj
-   * @param {function} callback
-   * @param {array} argsArray
-   * @return {trackdirect.services.callbackExecutor}
-   */
-  addWithPriority: function (thisObj, callback, argsArray) {
-    this._highPriorityQueue.push(function () {
-      callback.apply(thisObj, argsArray);
-      trackdirect.services.callbackExecutor._next();
-    });
-
-    this.start();
-    return this;
-  },
-
-  /**
-   * Add a call to the execution queue, and give it lower priority than regular calls
-   * @param {object} thisObj
-   * @param {function} callback
-   * @param {array} argsArray
-   * @return {trackdirect.services.callbackExecutor}
-   */
-  addWithLowPriority: function (thisObj, callback, argsArray) {
-    this._lowPriorityQueue.push(function () {
-      callback.apply(thisObj, argsArray);
-      trackdirect.services.callbackExecutor._next();
-    });
-
-    this.start();
-    return this;
-  },
-
-  /**
-   * Start the execution
-   * @return {trackdirect.services.callbackExecutor}
-   */
-  start: function () {
-    if (!this._running) {
-      this._next();
-    }
-    return this;
-  },
-
-  /**
-   * Execute the first call in queue when ready
-   */
-  _next: function () {
-    var secondsSinceLastSleep = Date.now() - this._lastSleepTimestamp;
-    if (secondsSinceLastSleep > this.settings.minTimeBeforeSleep) {
-      // Sleep 1ms after some ms, to avoid browser freeze
-      // We also count recursive calls since last sleep to avoid the error: Maximum call stack size exceeded
-      this._lastSleepTimestamp = Date.now();
-      var me = this;
-      setTimeout(function () {
-        me._dequeue();
-      }, 1);
-    } else {
-      this._dequeue();
-    }
-  },
-
-  /**
-   * Execute the first call in queue
-   */
-  _dequeue: function () {
-    var shift = this._highPriorityQueue.shift();
-    if (shift) {
-      this._running = true;
-      shift();
-      return;
-    }
-
-    shift = this._normalPriorityQueue.shift();
-    if (shift) {
-      this._running = true;
-      shift();
-      return;
-    }
-
-    shift = this._lowPriorityQueue.shift();
-    if (shift) {
-      this._running = true;
-      shift();
-      return;
-    }
-
-    this._running = false;
-  },
-};
diff --git a/jslib/src/trackdirect/services/dateFormatter.js b/jslib/src/trackdirect/services/dateFormatter.js
deleted file mode 100755
index c8b7f14e6bfad1fe181bbc9c719692cfa0aa32d1..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/dateFormatter.js
+++ /dev/null
@@ -1,100 +0,0 @@
-trackdirect.services.dateFormatter = {
-  /**
-   * Returns the timestamp in a humen readable form (based on browser locale settings)
-   * @param {int} timestamp
-   * @param {boolean} includeTimeZone
-   * @param {boolean} includeTime
-   * @param {boolean} useLocalTimeZone
-   * @return {string}
-   */
-  getDateString: function (
-    timestamp,
-    includeTimeZone,
-    includeTime,
-    useLocalTimeZone
-  ) {
-    includeTimeZone =
-      typeof includeTimeZone !== "undefined" ? includeTimeZone : true;
-    includeTime = typeof includeTime !== "undefined" ? includeTime : true;
-    useLocalTimeZone =
-      typeof useLocalTimeZone !== "undefined" ? useLocalTimeZone : true;
-    var date = new Date(timestamp * 1000);
-
-    if (useLocalTimeZone) {
-      var theMoment = moment(date);
-    } else {
-      var theMoment = moment.utc(date);
-    }
-
-    if (!theMoment.isValid()) {
-      return timestamp;
-    }
-
-    if (includeTime) {
-      if (includeTimeZone) {
-        return theMoment.format("L LTSZ");
-      } else {
-        return theMoment.format("L LTS");
-      }
-    } else {
-      return theMoment.format("L");
-    }
-  },
-
-  /**
-   * Get timestamp age as human readable string
-   * @param {int} timestamp
-   * @return {string}
-   */
-  getAgeString: function (timestamp) {
-    // get total seconds between the times
-    var delta = Math.abs(Math.floor(Date.now() / 1000) - timestamp);
-
-    // calculate (and subtract) whole days
-    var days = Math.floor(delta / 86400);
-    delta -= days * 86400;
-
-    // calculate (and subtract) whole hours
-    var hours = Math.floor(delta / 3600) % 24;
-    delta -= hours * 3600;
-
-    // calculate (and subtract) whole minutes
-    var minutes = Math.floor(delta / 60) % 60;
-    delta -= minutes * 60;
-
-    // what's left is seconds
-    var seconds = Math.floor(delta % 60);
-
-    var timeAgoList = [];
-    if (days > 1) {
-      timeAgoList.push(days + " days");
-    } else if (days > 0) {
-      timeAgoList.push(days + " day");
-    }
-    if (hours > 1) {
-      timeAgoList.push(hours + " hours");
-    } else if (hours > 0) {
-      timeAgoList.push(hours + " hour");
-    }
-    if (minutes > 1) {
-      timeAgoList.push(minutes + " minutes");
-    } else if (minutes > 0) {
-      timeAgoList.push(minutes + " minute");
-    }
-    if (seconds == 1) {
-      timeAgoList.push(seconds + " second");
-    } else {
-      timeAgoList.push(seconds + " seconds");
-    }
-
-    if (timeAgoList.length > 1) {
-      return (
-        timeAgoList.slice(0, timeAgoList.length - 1).join(", ") +
-        " and " +
-        timeAgoList[timeAgoList.length - 1]
-      );
-    } else {
-      return timeAgoList[timeAgoList.length - 1];
-    }
-  },
-};
diff --git a/jslib/src/trackdirect/services/distanceCalculator.js b/jslib/src/trackdirect/services/distanceCalculator.js
deleted file mode 100755
index 93f32364401c4eaa782e81c3cf2fd3fd861517f3..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/distanceCalculator.js
+++ /dev/null
@@ -1,133 +0,0 @@
-trackdirect.services.distanceCalculator = {
-  /**
-   * Get distance in meters between to positions
-   * @param {LatLngLiteral} p1
-   * @param {LatLngLiteral} p2
-   * @return {float}
-   */
-  getDistance: function (p1, p2) {
-    var R = 6378137; // Earth’s mean radius in meter
-    var dLat = this._radians(p2.lat - p1.lat);
-    var dLong = this._radians(p2.lng - p1.lng);
-    var a =
-      Math.sin(dLat / 2) * Math.sin(dLat / 2) +
-      Math.cos(this._radians(p1.lat)) *
-        Math.cos(this._radians(p2.lat)) *
-        Math.sin(dLong / 2) *
-        Math.sin(dLong / 2);
-    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
-    var d = R * c;
-    if (isNaN(d)) {
-      return null;
-    } else {
-      return d; // returns the distance in meter
-    }
-  },
-
-  /**
-   * Get center of specified coordinates
-   * @param {array} coords
-   * @return {LatLngLiteral}
-   */
-  getCenter: function (coords) {
-    var x = coords.map(function (a) {
-      return a.lat;
-    });
-    var y = coords.map(function (a) {
-      return a.lng;
-    });
-    var minX = Math.min.apply(null, x);
-    var maxX = Math.max.apply(null, x);
-    var minY = Math.min.apply(null, y);
-    var maxY = Math.max.apply(null, y);
-    return { lat: (minX + maxX) / 2, lng: (minY + maxY) / 2 };
-  },
-
-  /**
-   * Get position by course and distance
-   * @param {LatLngLiteral} latLng
-   * @param {int} course
-   * @param {int} distanceInMeters
-   * @return {LatLngLiteral}
-   */
-  getPositionByDistance: function (latLng, course, distanceInMeters) {
-    var dist = distanceInMeters / 1000; // Convert to km
-    dist = dist / 6371; // Divide by Earth radius
-    var brng = (course * Math.PI) / 180; // Convert to Rad
-
-    var lat1 = (latLng.lat * Math.PI) / 180,
-      lon1 = (latLng.lng * Math.PI) / 180;
-
-    var lat2 = Math.asin(
-      Math.sin(lat1) * Math.cos(dist) +
-        Math.cos(lat1) * Math.sin(dist) * Math.cos(brng)
-    );
-
-    var lon2 =
-      lon1 +
-      Math.atan2(
-        Math.sin(brng) * Math.sin(dist) * Math.cos(lat1),
-        Math.cos(dist) - Math.sin(lat1) * Math.sin(lat2)
-      );
-
-    if (isNaN(lat2) || isNaN(lon2)) return null;
-
-    // Convert to deg and return
-    var latitude = (lat2 * 180) / Math.PI;
-    var longitude = (lon2 * 180) / Math.PI;
-    return {
-      lat: Math.round(latitude * 100000) / 100000,
-      lng: Math.round(longitude * 100000) / 100000,
-    };
-  },
-
-  /**
-   * Get bearing between two points
-   * @param {object} p1
-   * @param {object} p2
-   * @return {float}
-   */
-  getBearing: function (p1, p2) {
-    startLat = this._radians(p1.lat);
-    startLong = this._radians(p1.lng);
-    endLat = this._radians(p2.lat);
-    endLong = this._radians(p2.lng);
-
-    var dLong = endLong - startLong;
-    var dPhi = Math.log(
-      Math.tan(endLat / 2.0 + Math.PI / 4.0) /
-        Math.tan(startLat / 2.0 + Math.PI / 4.0)
-    );
-
-    //var dLong = Math.sin(endLong - startLong) * Math.cos(endLat);
-    //var dPhi = Math.cos(startLat)*Math.sin(endLat) - Math.sin(startLat)*Math.cos(endLat)*Math.cos(endLong-startLong);
-
-    if (Math.abs(dLong) > Math.PI) {
-      if (dLong > 0.0) {
-        dLong = -(2.0 * Math.PI - dLong);
-      } else {
-        dLong = 2.0 * Math.PI + dLong;
-      }
-    }
-
-    return (this._degrees(Math.atan2(dLong, dPhi)) + 360.0) % 360.0;
-  },
-
-  /**
-   * Convert degrees to radians
-   * @param {float} n
-   * @return {float}
-   */
-  _radians: function (n) {
-    return n * (Math.PI / 180);
-  },
-
-  /**
-   * Convert radians to degrees
-   * @param {float} n
-   * @return {float}
-   */
-  _degrees: function (n) {
-    return n * (180 / Math.PI);
-  },
-};
diff --git a/jslib/src/trackdirect/services/imperialConverter.js b/jslib/src/trackdirect/services/imperialConverter.js
deleted file mode 100755
index c4622ad9561bf6e9f58262894b9cb76c409a1aef..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/imperialConverter.js
+++ /dev/null
@@ -1,64 +0,0 @@
-trackdirect.services.imperialConverter = {
-  /**
-   * Convert km to miles (or km/h to mph)
-   * @param {float} value
-   * @return float
-   */
-  convertKilometerToMile: function (value) {
-    return value * 0.621371192;
-  },
-
-  /**
-   * Convert meter per second to miles per second
-   * @param {float} value
-   * @return float
-   */
-  convertMpsToMph: function (value) {
-    return value * 2.23693629;
-  },
-
-  /**
-   * Convert meter to feet
-   * @param {float} value
-   * @return float
-   */
-  convertMeterToFeet: function (value) {
-    return value * 3.2808399;
-  },
-
-  /**
-   * Convert meter to yard
-   * @param {float} value
-   * @return float
-   */
-  convertMeterToYard: function (value) {
-    return value * 1.0936133;
-  },
-
-  /**
-   * Convert mm to inches
-   * @param {float} value
-   * @return float
-   */
-  convertMmToInch: function (value) {
-    return value * 0.0393700787;
-  },
-
-  /**
-   * Convert celcius to fahrenheit
-   * @param {float} value
-   * @return float
-   */
-  convertCelciusToFahrenheit: function (value) {
-    return value * (9 / 5) + 32;
-  },
-
-  /**
-   * Convert hPa/mbar to mmhg
-   * @param {float} value
-   * @return float
-   */
-  convertMbarToMmhg: function (value) {
-    return value * 0.75006375541921;
-  },
-};
diff --git a/jslib/src/trackdirect/services/mapAttributionModifier.js b/jslib/src/trackdirect/services/mapAttributionModifier.js
deleted file mode 100755
index a4a1d8fa6a4328542efe7c12c59875cc8a8a2643..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/mapAttributionModifier.js
+++ /dev/null
@@ -1,297 +0,0 @@
-trackdirect.services.mapAttributionModifier = {
-  _hereBaseAttributionData: null,
-  _hereAerialAttributionData: null,
-  _latestAttribution: null,
-  _isHereInitialized: false,
-  _eventListeners: {},
-  _eventListenersOnce: {},
-
-  /**
-   * Update the map attribution
-   * @param {trackdirect.models.Map} map
-   */
-  update: function (map) {
-    if (this._isHereTileProvider(map)) {
-      this.updateHereAttribution(map);
-    } else if (this._latestAttribution != null) {
-      // Just reset attribution to default
-      this.setMapAttribution(map, "");
-    }
-  },
-
-  /**
-   * Update the HERE map attribution
-   * @param {trackdirect.models.Map} map
-   */
-  updateHereAttribution: function (map) {
-    this._loadHereAttributionData(map);
-    var me = this;
-    var base = this._getMapTileBase(map);
-    if (base == "base") {
-      this.addListener(
-        "init-here-base",
-        function () {
-          var attribution = me._getHereAttributionString(map);
-          me.setMapAttribution(map, attribution);
-        },
-        true
-      );
-    } else if (base == "aerial") {
-      this.addListener(
-        "init-here-aerial",
-        function () {
-          var attribution = me._getHereAttributionString(map);
-          me.setMapAttribution(map, attribution);
-        },
-        true
-      );
-    }
-  },
-
-  /**
-   * Set map attribution to specified string
-   * @param {trackdirect.models.Map} map
-   * @param {string} attribution
-   */
-  setMapAttribution: function (map, attribution) {
-    if (this._latestAttribution != attribution) {
-      map.attributionControl.removeAttribution(this._latestAttribution);
-      if (attribution != "") {
-        map.attributionControl.addAttribution(attribution);
-      }
-    }
-
-    this._latestAttribution = attribution;
-  },
-
-  /**
-   * Add new event listener
-   * @param {string} event
-   * @param {string} handler
-   * @param {boolean} execOnce
-   */
-  addListener: function (event, handler, execOnce) {
-    execOnce = typeof execOnce !== "undefined" ? execOnce : false;
-
-    if (execOnce) {
-      if (!(event in this._eventListenersOnce)) {
-        this._eventListenersOnce[event] = [];
-      }
-      this._eventListenersOnce[event].push(handler);
-    } else {
-      if (!(event in this._eventListeners)) {
-        this._eventListeners[event] = [];
-      }
-      this._eventListeners[event].push(handler);
-    }
-
-    if (event == "init-here-base" && this._isHereBaseInitialized) {
-      this._emitEventListeners("init-here-base");
-    }
-
-    if (event == "init-here-aerial" && this._isHereAerialInitialized) {
-      this._emitEventListeners("init-here-aerial");
-    }
-  },
-
-  /**
-   * Returnes true if the map tile provider is here.com
-   * @param {trackdirect.models.Map} map
-   * @return {Boolean}
-   */
-  _isHereTileProvider: function (map) {
-    var tileLayer = map.getLeafletTileLayer();
-    if (
-      tileLayer !== null &&
-      typeof tileLayer._url !== "undefined" &&
-      tileLayer._url.indexOf("here.com") >= 0
-    ) {
-      return true;
-    }
-
-    return false;
-  },
-
-  /**
-   * Get map tile variant
-   * @param {trackdirect.models.Map} map
-   */
-  _getMapTileOptions: function (map) {
-    var tileLayer = map.getLeafletTileLayer();
-    if (tileLayer !== null && typeof tileLayer.options !== "undefined") {
-      return tileLayer.options;
-    }
-
-    return null;
-  },
-
-  /**
-   * Get map tile variant
-   * @param {trackdirect.models.Map} map
-   */
-  _getMapTileVariant: function (map) {
-    var options = this._getMapTileOptions(map);
-    if (options.variant !== "undefined") {
-      return options.variant;
-    }
-
-    return null;
-  },
-
-  /**
-   * Get map tile initial variant
-   * @param {trackdirect.models.Map} map
-   */
-  _getMapTileInitialVariant: function (map) {
-    var mapVariant = this._getMapTileVariant(map);
-    var dotIndex = mapVariant.indexOf(".");
-    if (dotIndex >= 0) {
-      return mapVariant.substring(0, dotIndex);
-    }
-    return mapVariant;
-  },
-
-  /**
-   * Get map tile base variant
-   * @param {trackdirect.models.Map} map
-   */
-  _getMapTileBase: function (map) {
-    var options = this._getMapTileOptions(map);
-    if (options.base !== "undefined") {
-      return options.base;
-    }
-
-    return null;
-  },
-
-  /**
-   * Get HERE copyright string for the currnet map bounds
-   * @param {trackdirect.models.Map} map
-   */
-  _getHereAttributionString: function (map) {
-    var result = [];
-    var mapBaseVariant = this._getMapTileInitialVariant(map);
-
-    if (this._getMapTileBase(map) == "base") {
-      var data = this._hereBaseAttributionData;
-    } else if (this._getMapTileBase(map) == "aerial") {
-      var data = this._hereAerialAttributionData;
-    }
-
-    if (data !== null && typeof data[mapBaseVariant] !== "undefined") {
-      for (var i = 0, len = data[mapBaseVariant].length; i < len; i++) {
-        var attributionArea = data[mapBaseVariant][i];
-
-        if (
-          parseInt(map.getZoom()) >= parseInt(attributionArea.minLevel) &&
-          parseInt(map.getZoom()) <= parseInt(attributionArea.maxLevel)
-        ) {
-          if (
-            typeof attributionArea.boxes === "undefined" ||
-            this._isAnyBoxVisible(attributionArea.boxes, map)
-          ) {
-            var attributionText =
-              '<span title="' +
-              attributionArea.alt +
-              '">' +
-              attributionArea.label +
-              "</span>";
-            if (result.indexOf(attributionText) < 0) {
-              result.push(attributionText);
-            }
-          }
-        }
-      }
-    }
-    return result.join(", ");
-  },
-
-  /**
-   * Returnes true if any lat/lng box intersects with current map bounds
-   * @param {Array} boxes
-   * @param {trackdirect.models.Map} map
-   */
-  _isAnyBoxVisible: function (boxes, map) {
-    if (typeof boxes !== "undefined" && Array.isArray(boxes)) {
-      for (var i = 0, len = boxes.length; i < len; i++) {
-        var box = boxes[i];
-        if (Array.isArray(box) && box.length >= 4) {
-          var boxBounds = L.latLngBounds(
-            L.latLng(parseFloat(box[0]), parseFloat(box[1])),
-            L.latLng(parseFloat(box[2]), parseFloat(box[3]))
-          );
-          if (boxBounds.isValid() && boxBounds.intersects(map.getBounds())) {
-            return true;
-          }
-        }
-      }
-    }
-    return false;
-  },
-
-  /**
-   * Download HERE copyright data
-   * @param {trackdirect.models.Map} map
-   */
-  _loadHereAttributionData: function (map) {
-    var options = this._getMapTileOptions(map);
-    var base = this._getMapTileBase(map);
-
-    if (
-      (this._hereBaseAttributionData === null && base == "base") ||
-      (this._hereAerialAttributionData === null && base == "aerial")
-    ) {
-      var me = this;
-
-      jQuery.ajax({
-        url:
-          "https://1." +
-          base +
-          ".maps.api.here.com/maptile/2.1/copyright/" +
-          options.mapID +
-          "?app_id=" +
-          options.app_id +
-          "&app_code=" +
-          options.app_code,
-        type: "GET",
-        dataType: "json",
-        timeout: 5000, // sets timeout to 5 seconds
-        success: function (result) {
-          if (base == "base") {
-            me._hereBaseAttributionData = result;
-            me._isHereBaseInitialized = true;
-            me._emitEventListeners("init-here-base");
-          } else if (base == "aerial") {
-            me._hereAerialAttributionData = result;
-            me._isHereAerialInitialized = true;
-            me._emitEventListeners("init-here-aerial");
-          }
-        },
-        error: function (xhr) {
-          console.log("Failed to load map copyright data");
-        },
-      });
-    }
-  },
-
-  /**
-   * Call all listeners that are listening on specified event
-   * @param {string} event
-   * @param {string} arg
-   */
-  _emitEventListeners: function (event, arg) {
-    if (event in this._eventListeners) {
-      for (var i = 0; i < this._eventListeners[event].length; i++) {
-        this._eventListeners[event][i](arg);
-      }
-    }
-
-    if (event in this._eventListenersOnce) {
-      var eventListenersOnce = this._eventListenersOnce[event].splice(0);
-      this._eventListenersOnce[event] = [];
-      for (var i = 0; i < eventListenersOnce.length; i++) {
-        eventListenersOnce[i](arg);
-      }
-    }
-  },
-};
diff --git a/jslib/src/trackdirect/services/mapSectorCalculator.js b/jslib/src/trackdirect/services/mapSectorCalculator.js
deleted file mode 100755
index 153b667b297cb726c634ec088296327e912e959b..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/mapSectorCalculator.js
+++ /dev/null
@@ -1,148 +0,0 @@
-trackdirect.services.MapSectorCalculator = {
-  /**
-   * Get all visible map sectors
-   * @param {LatLngBounds} bounds
-   * @return {array}
-   */
-  getMapSectors: function (bounds) {
-    var result = [];
-    // We include some border map sectors so that markers appear before user enter those map-sectors (if they are loaded from server)
-    if (typeof google === "object" && typeof google.maps === "object") {
-      var maxLat = Math.ceil(bounds.getNorthEast().lat()) + 1;
-      var minLat = Math.floor(bounds.getSouthWest().lat()) - 1;
-      var maxLng = Math.ceil(bounds.getNorthEast().lng()) + 1;
-      var minLng = Math.floor(bounds.getSouthWest().lng()) - 1;
-    } else if (typeof L === "object") {
-      var maxLat = Math.ceil(bounds.getNorthEast().lat) + 1;
-      var minLat = Math.floor(bounds.getSouthWest().lat) - 1;
-      var maxLng = Math.ceil(bounds.getNorthEast().lng) + 1;
-      var minLng = Math.floor(bounds.getSouthWest().lng) - 1;
-    }
-
-    if (maxLng < minLng) {
-      result = result.concat(
-        trackdirect.services.MapSectorCalculator.getMapSectorsByInterval(
-          minLat,
-          maxLat,
-          minLng,
-          180.0
-        )
-      );
-      minLng = -180.0;
-    }
-
-    result = result.concat(
-      trackdirect.services.MapSectorCalculator.getMapSectorsByInterval(
-        minLat,
-        maxLat,
-        minLng,
-        maxLng
-      )
-    );
-
-    // Add the world wide area code
-    // This seems to result in very bad performance... so we skip it
-    //result.push(99999999);
-    return result;
-  },
-
-  /**
-   * Get all visible map sectors
-   * @param {float} minLat
-   * @param {float} maxLat
-   * @param {float} minLng
-   * @param {float} maxLng
-   * @return {array}
-   */
-  getMapSectorsByInterval: function (minLat, maxLat, minLng, maxLng) {
-    var result = [];
-
-    var minAreaCode = this.getMapSector(minLat, minLng);
-    var maxAreaCode = this.getMapSector(maxLat, maxLng);
-
-    lngDiff = parseInt(Math.ceil(maxLng)) - parseInt(Math.ceil(minLng));
-
-    var areaCode = minAreaCode;
-    while (areaCode <= maxAreaCode) {
-      if (areaCode % 10 == 5) {
-        result.push(areaCode);
-      } else {
-        result.push(areaCode);
-        result.push(areaCode + 5);
-      }
-
-      for (var i = 1; i <= lngDiff; i++) {
-        if (areaCode % 10 == 5) {
-          result.push(areaCode + 10 * i - 5);
-          result.push(areaCode + 10 * i);
-        } else {
-          result.push(areaCode + 10 * i);
-          result.push(areaCode + 10 * i + 5);
-        }
-      }
-
-      // Lat takes 0.2 jumps
-      areaCode = areaCode + 20000;
-    }
-    return result;
-  },
-
-  /**
-   * Get map sector based on latitude and longitude
-   * @param {float} latitude
-   * @param {float} longitude
-   */
-  getMapSector: function (latitude, longitude) {
-    var lat = this._getMapSectorLatRepresentation(latitude);
-    var lng = this._getMapSectorLngRepresentation(longitude);
-
-    // lat interval: 0 - 18000000
-    // lng interval: 0 - 00003600
-    return lat + lng;
-  },
-
-  /**
-   * Get map sector latitude part
-   * @param {float} latitude
-   * @return int
-   */
-  _getMapSectorLatRepresentation: function (latitude) {
-    var lat = parseInt(Math.floor(latitude)) + 90; // Positive representation of lat;
-    var latDecimalPart = latitude - Math.floor(latitude);
-
-    if (latDecimalPart < 0.2) {
-      lat = lat * 10 + 0;
-    } else if (latDecimalPart < 0.4) {
-      lat = lat * 10 + 2;
-    } else if (latDecimalPart < 0.6) {
-      lat = lat * 10 + 4;
-    } else if (latDecimalPart < 0.8) {
-      lat = lat * 10 + 6;
-    } else {
-      lat = lat * 10 + 8;
-    }
-    lat = lat * 10000;
-
-    // lat interval: 0 - 18000000
-    return lat;
-  },
-
-  /**
-   * Get map sector longitude part
-   * @param {float} longitude
-   * @return int
-   */
-  _getMapSectorLngRepresentation: function (longitude) {
-    lng = parseInt(Math.floor(longitude)) + 180; // Positive representation of lng;
-    lngDecimalPart = longitude - Math.floor(longitude);
-
-    if (lngDecimalPart < 0.5) {
-      lng = lng * 10 + 0;
-    } else {
-      lng = lng * 10 + 5;
-    }
-
-    // lng interval: 0 - 00003600
-    return lng;
-  },
-};
diff --git a/jslib/src/trackdirect/services/stationColorCalculator.js b/jslib/src/trackdirect/services/stationColorCalculator.js
deleted file mode 100755
index 547ed097b184e7beb474897096dfc2f425d03b77..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/stationColorCalculator.js
+++ /dev/null
@@ -1,67 +0,0 @@
-trackdirect.services.stationColorCalculator = {
-  _colors: [
-    "#3333ff", // blue       (#2A2AFF)
-    "#9900cc", // purple     (#7002A7)
-    "#006600", // green      (#005500)
-    "#cc0000", // red        (#A70202)
-  ],
-  _stationColorId: {},
-
-  /**
-   * Get html (hex) color for specified packet
-   * @param {object} packet
-   * @return {string}
-   */
-  getColor: function (packet) {
-    var colorId = this.getColorId(packet);
-    return this._colors[colorId];
-  },
-
-  /**
-   * Get kml color for specified packet
-   * @param {object} packet
-   * @return {string}
-   */
-  getKmlColor(packet) {
-    var hex = this.getColor(packet);
-    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
-    if (result) {
-      return "FF" + result[3] + result[2] + result[1];
-    }
-    return null;
-  },
-
-  /**
-   * Get color ID for specified packet
-   * Color will be selected by station/object name (this make sures that object with different senders still get the same color)
-   * @param {object} packet
-   * @return {int}
-   */
-  getColorId: function (packet) {
-    if (packet.station_name in this._stationColorId) {
-      // This station has allready got a color, use it
-      colorId = this._stationColorId[packet.station_name];
-      return colorId;
-    } else {
-      var hash = this._simplehashStr(packet.station_name);
-      var colorId = hash % this._colors.length;
-      this._stationColorId[packet.station_name] = colorId;
-    }
-
-    return colorId;
-  },
-
-  /**
-   * Get simple hash from string (bad hash, but good for our usage)
-   * @param {string} str
-   * @return int
-   */
-  _simplehashStr: function (str) {
-    var hash = 0;
-    for (var i = 0; i < str.length; i++) {
-      var charCode = str.charCodeAt(i);
-      hash += charCode;
-    }
-    return hash;
-  },
-};
diff --git a/jslib/src/trackdirect/services/symbolPathFinder.js b/jslib/src/trackdirect/services/symbolPathFinder.js
deleted file mode 100755
index 017fba808d9b08b7c26a71674d4a8745b1e2f29a..0000000000000000000000000000000000000000
--- a/jslib/src/trackdirect/services/symbolPathFinder.js
+++ /dev/null
@@ -1,102 +0,0 @@
-trackdirect.services.symbolPathFinder = {
-  /**
-   * Returns icon http path
-   *
-   * - The default width and height is 24x24, if anything bigger is specified more space round the symbol will be added
-   * - The deafult scale is 24x24, if anything else is specified the image will be scaled to that size
-   *
-   * @param {string} symbolTable
-   * @param {string} symbol
-   * @param {int} course
-   * @param {int} width
-   * @param {int} height
-   * @param {int} scaleWidth
-   * @param {int} scaleHeight
-   * @return {string}
-   */
-  getFilePath: function (
-    symbolTable,
-    symbol,
-    course,
-    width,
-    height,
-    scaleWidth,
-    scaleHeight
-  ) {
-    if (
-      typeof symbol !== "undefined" &&
-      typeof symbolTable !== "undefined" &&
-      symbol !== null &&
-      symbolTable !== null &&
-      symbol.length >= 1 &&
-      symbolTable.length >= 1
-    ) {
-      var symbolAsciiValue = symbol.charCodeAt(0);
-      var symbolTableAsciiValue = symbolTable.charCodeAt(0);
-    } else {
-      var symbolAsciiValue = 125;
-      var symbolTableAsciiValue = 47;
-    }
-
-    var sizeStrValue = "";
-    if (width !== null && height !== null) {
-      sizeStrValue = "-" + width + "x" + height;
-    }
-
-    var scaleStrValue = this._getIconFilePathScalePart(scaleWidth, scaleHeight);
-    var courseStrValue = this._getIconFilePathCoursePart(course);
-    var url =
-      trackdirect.settings.markerSymbolBaseDir +
-      "symbol-" +
-      symbolAsciiValue +
-      "-" +
-      symbolTableAsciiValue +
-      courseStrValue +
-      sizeStrValue +
-      scaleStrValue +
-      ".png";
-
-    return trackdirect.settings.baseUrl + url;
-  },
-
-  /**
-   * Returns the course part of the icon http path
-   *
-   * @param {int} course
-   * @return {string}
-   */
-  _getIconFilePathCoursePart: function (course) {
-    var courseStrValue = "";
-    if (course !== null) {
-      var courseValue = Math.round(parseInt(course) / 10) * 10;
-      while (courseValue > 360) {
-        courseValue = courseValue - 360;
-      }
-      while (courseValue < 0) {
-        courseValue = courseValue + 360;
-      }
-      courseStrValue = "-" + courseValue;
-    }
-    return courseStrValue;
-  },
-
-  /**
-   * Returns the scale part of the icon http path
-   * - The default scale is 24x24, if anything else is specified the image will be scaled to that size
-   *
-   * @param {int} scaleWidth
-   * @param {int} scaleHeight
-   * @return {string}
-   */
-  _getIconFilePathScalePart: function (scaleWidth, scaleHeight) {
-    var scaleStrValue = "";
-    if (scaleWidth !== null && scaleHeight !== null) {
-      if (isHighDensity()) {
-        scaleStrValue = "-scale" + scaleWidth * 2 + "x" + scaleHeight * 2;
-      } else {
-        scaleStrValue = "-scale" + scaleWidth + "x" + scaleHeight;
-      }
-    }
-    return scaleStrValue;
-  },
-};
diff --git a/trackdirect-apache.dockerfile b/trackdirect-apache.dockerfile
deleted file mode 100644
index 44d045222378bbc71dca97e56354d60d5ee8f5c9..0000000000000000000000000000000000000000
--- a/trackdirect-apache.dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM php:7.2-apache
-
-RUN apt-get update && apt-get install -y \
-  git \
-  libpq-dev \
-  postgresql-client-common \
-  postgresql-client \
-  libevent-dev \
-  libmagickwand-dev \
-  imagemagick \
-  inkscape \
-  && rm -rf /var/lib/apt/lists/*
-
-RUN pecl install imagick && docker-php-ext-enable imagick && docker-php-ext-install pdo pdo_pgsql && docker-php-ext-install gd && docker-php-ext-enable gd
-
-COPY . /root/trackdirect
-COPY config/000-default.conf /etc/apache2/sites-enabled/
-
-RUN a2enmod rewrite
-RUN chmod a+rx / && chmod a+rx -R /root
-RUN chmod 777 /root/trackdirect/htdocs/public/symbols
-RUN chmod 777 /root/trackdirect/htdocs/public/heatmaps
-
diff --git a/trackdirect-python.dockerfile b/trackdirect-python.dockerfile
deleted file mode 100644
index fb1dae36c0fdf20bc30ba5faf580fdea2c7a1cdc..0000000000000000000000000000000000000000
--- a/trackdirect-python.dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-
-FROM ubuntu:20.04
-RUN apt-get update && apt-get install -y \
-  python3 \
-  python3-dev \
-  python3-pip \
-  python-is-python3 \
-  git \
-  && rm -rf /var/lib/apt/lists/*
-
-COPY . /root/trackdirect
-
-RUN pip install -r /root/trackdirect/requirements.txt