@opengis/gis 0.2.162 → 0.2.164
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardIcon-DcriKHRQ.js → CardIcon-BZoV9hHZ.js} +1 -1
- package/dist/{EntityTablePage-44UmAQh0.js → EntityTablePage-BvEgLON7.js} +1 -1
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BAaobvwj.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-D82X-z0q.js} +1 -1
- package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-CLEpHbVL.js → HeaderActions.vue_vue_type_script_setup_true_lang-CmDKSALB.js} +1 -1
- package/dist/{MapSettings-C7qDO9gp.js → MapSettings-WRwB36Dm.js} +1 -1
- package/dist/{RastersTablePage-DmOpbseA.js → RastersTablePage-D71D-oy4.js} +1 -1
- package/dist/{cartocss-DGvNrARb.js → cartocss-DtveuW5e.js} +5 -5
- package/dist/{import-utils-DYDa34GH.js → import-utils-gA0dsRhG.js} +1 -1
- package/dist/{index-DCKH-TcG.js → index-lWiWUrDa.js} +1069 -1070
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +24 -24
- package/dist/{raster-CAi6K97q.js → raster-DVJiO4HK.js} +3 -3
- package/dist/{register-C6IbQrEK.js → register-D1q_RREp.js} +3 -3
- package/dist/{service-B_C_D5nN.js → service-BnT0jfPh.js} +5 -5
- package/dist/{vs-datatable-aAXTRfDg.js → vs-datatable-BmISto2b.js} +3 -2
- package/package.json +4 -2
- package/server/routes/map/controllers/gis.convert.js +36 -17
- package/server/routes/map/controllers/gis.icon.js +189 -0
- package/server/routes/map/controllers/pin/circle1.svg +77 -0
- package/server/routes/map/controllers/pin/circle2.svg +19 -0
- package/server/routes/map/controllers/pin/none.svg +12 -0
- package/server/routes/map/controllers/pin/pin.svg +15 -0
- package/server/routes/map/controllers/pin/pin1.svg +17 -0
- package/server/routes/map/controllers/pin/pin2.svg +8 -0
- package/server/routes/map/controllers/pin/pin3.svg +35 -0
- package/server/routes/map/controllers/pin/pin4.svg +15 -0
- package/server/routes/map/controllers/pin/pin5.svg +8 -0
- package/server/routes/map/controllers/pin/pin6.svg +13 -0
- package/server/routes/map/controllers/pin/pin7.svg +13 -0
- package/server/routes/map/index.mjs +14 -4
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defineComponent as te, resolveDirective as We, openBlock as u, createElementBlock as m, createElementVNode as n, Fragment as W, renderList as X, toDisplayString as d, withDirectives as we, createTextVNode as Xe, normalizeClass as ae, ref as $, watch as S, computed as h, vModelText as Ke, onMounted as Ye, onBeforeUnmount as Ze, createCommentVNode as q, createVNode as B, withCtx as He, createBlock as F, resolveDynamicComponent as Je } from "vue";
|
|
2
2
|
import { useRouter as et, useRoute as tt } from "vue-router";
|
|
3
3
|
import { TooltipDirective as st, notify as M } from "@opengis/core";
|
|
4
|
-
import { _ as nt, u as lt, f as rt, M as ot, i as it, j as be, F as at } from "./index-
|
|
5
|
-
import { _ as ut, a as ct, b as dt, c as ft } from "./HeaderActions.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { _ as he } from "./ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { _ as nt, u as lt, f as rt, M as ot, i as it, j as be, F as at } from "./index-lWiWUrDa.js";
|
|
5
|
+
import { _ as ut, a as ct, b as dt, c as ft } from "./HeaderActions.vue_vue_type_script_setup_true_lang-CmDKSALB.js";
|
|
6
|
+
import { _ as he } from "./ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-D82X-z0q.js";
|
|
7
7
|
const mt = { class: "flex-1 overflow-y-auto p-4 sm:p-6" }, pt = { class: "space-y-3" }, gt = { class: "bg-white p-3 rounded-xl border border-gray-200 shadow-sm" }, yt = { class: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2" }, vt = { class: "text-xs text-gray-500 mb-1" }, xt = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "text-base text-md font-semibold text-gray-900"
|
|
@@ -2,9 +2,9 @@ import { defineComponent as B, mergeModels as j, useModel as S, computed as h, d
|
|
|
2
2
|
import { useRoute as Z, useRouter as ee } from "vue-router";
|
|
3
3
|
import { notify as F } from "@opengis/core";
|
|
4
4
|
import { _ as te } from "./TableFormHeader.vue_vue_type_script_setup_true_lang-Mci_tseM.js";
|
|
5
|
-
import { V as N } from "./vs-datatable-
|
|
6
|
-
import { _ as z, n as R, m as E, r as H } from "./import-utils-
|
|
7
|
-
import { a as ae, b as le, c as se, d as oe, e as ie } from "./index-
|
|
5
|
+
import { V as N } from "./vs-datatable-BmISto2b.js";
|
|
6
|
+
import { _ as z, n as R, m as E, r as H } from "./import-utils-gA0dsRhG.js";
|
|
7
|
+
import { a as ae, b as le, c as se, d as oe, e as ie } from "./index-lWiWUrDa.js";
|
|
8
8
|
import { LucideChevronRight as re } from "lucide-vue-next";
|
|
9
9
|
import { _ as ne } from "./MapSettingsTabs.vue_vue_type_script_setup_true_lang-CKCK3NqY.js";
|
|
10
10
|
const ue = { class: "vs-form" }, de = { class: "vs-form__body auto-rows-max container" }, ce = { class: "flex flex-wrap" }, me = { class: "h-fit w-full mb-6 bg-white border border-gray-200 rounded-lg p-6" }, ve = { class: "h-fit w-full flex flex-wrap" }, pe = { class: "w-full" }, fe = /* @__PURE__ */ B({
|
|
@@ -4,12 +4,12 @@ var L = (e, n, t) => pi(e, typeof n != "symbol" ? n + "" : n, t);
|
|
|
4
4
|
import { openBlock as _, createElementBlock as M, createElementVNode as g, defineComponent as ae, ref as E, watch as $, createTextVNode as mi, createVNode as D, createBlock as P, createCommentVNode as W, defineAsyncComponent as hi, unref as ze, withCtx as bn, withDirectives as fn, vModelText as dn, normalizeClass as _e, Fragment as kt, renderList as At, toDisplayString as fe, getCurrentInstance as Ct, onBeforeUnmount as wt, toRef as gi, computed as ve, onMounted as yi, resolveDynamicComponent as vi } from "vue";
|
|
5
5
|
import { useRoute as bi, useRouter as xi } from "vue-router";
|
|
6
6
|
import { notify as X } from "@opengis/core";
|
|
7
|
-
import { _ as Xe, u as Ge, f as Si, M as ki, g as Ai, h as Ci, i as wi, j as tt, k as Ti, l as _i, m as Ei, s as it, n as Ii } from "./index-
|
|
8
|
-
import { _ as Ni, a as $i, b as Li, c as Fi } from "./HeaderActions.vue_vue_type_script_setup_true_lang-
|
|
9
|
-
import { S as Oi, C as Ri } from "./CardIcon-
|
|
7
|
+
import { _ as Xe, u as Ge, f as Si, M as ki, g as Ai, h as Ci, i as wi, j as tt, k as Ti, l as _i, m as Ei, s as it, n as Ii } from "./index-lWiWUrDa.js";
|
|
8
|
+
import { _ as Ni, a as $i, b as Li, c as Fi } from "./HeaderActions.vue_vue_type_script_setup_true_lang-CmDKSALB.js";
|
|
9
|
+
import { S as Oi, C as Ri } from "./CardIcon-BZoV9hHZ.js";
|
|
10
10
|
import { _ as Tt } from "./MonacoEditor.vue_vue_type_script_setup_true_lang-D3ZPeXMw.js";
|
|
11
|
-
import { V as Ze } from "./vs-datatable-
|
|
12
|
-
import { _ as Nn, m as $n, r as $e } from "./import-utils-
|
|
11
|
+
import { V as Ze } from "./vs-datatable-BmISto2b.js";
|
|
12
|
+
import { _ as Nn, m as $n, r as $e } from "./import-utils-gA0dsRhG.js";
|
|
13
13
|
/*! js-yaml 5.2.1 https://github.com/nodeca/js-yaml @license MIT */
|
|
14
14
|
var T = Symbol("NOT_RESOLVED"), Ln = Symbol("MERGE_KEY");
|
|
15
15
|
function U(e, n) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as F, mergeModels as O, defineAsyncComponent as I, useModel as R, ref as y, watch as K, openBlock as o, createElementBlock as s, createElementVNode as e, createVNode as $, unref as x, withCtx as S, createStaticVNode as V, useSlots as P, computed as H, Fragment as b, createTextVNode as U, createCommentVNode as N, renderList as A, normalizeStyle as Q, toDisplayString as M, normalizeClass as z, withModifiers as X, createBlock as Y, resolveDynamicComponent as ee, withDirectives as te, renderSlot as ne } from "vue";
|
|
2
2
|
import { notify as E } from "@opengis/core";
|
|
3
3
|
import { Edit as le, Trash as oe } from "lucide-vue-next";
|
|
4
|
-
import { _ as u } from "./index-
|
|
4
|
+
import { _ as u } from "./index-lWiWUrDa.js";
|
|
5
5
|
const se = { class: "flex items-center justify-center col-span-3 gap-2" }, re = { class: "flex justify-end p-[20px] gap-[10px] border-t w-full" }, ie = /* @__PURE__ */ F({
|
|
6
6
|
__name: "vs-datatable-controls",
|
|
7
7
|
props: /* @__PURE__ */ O({
|
|
@@ -725,11 +725,12 @@ const kt = /* @__PURE__ */ u(pt, [["render", wt]]), W = {
|
|
|
725
725
|
])
|
|
726
726
|
])) : (o(), s(b, { key: 1 }, [
|
|
727
727
|
a.slot && g(a.slot) ? ne(i.$slots, a.slot, {
|
|
728
|
+
key: 0,
|
|
728
729
|
row: l,
|
|
729
730
|
column: a,
|
|
730
731
|
value: l[a.key],
|
|
731
732
|
rowIndex: f
|
|
732
|
-
}, void 0, !0
|
|
733
|
+
}, void 0, !0) : a.type === "color" ? (o(), s("div", zt, [
|
|
733
734
|
e("div", {
|
|
734
735
|
class: z(["w-4 h-4 rounded-full align-middle", `bg-[${l[a.key]}]`])
|
|
735
736
|
}, null, 2)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengis/gis",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.164",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Softpro",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,8 +42,10 @@
|
|
|
42
42
|
"prepublishOnly": "npm run build"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
+
"@fortawesome/free-solid-svg-icons": "7.3.1",
|
|
45
46
|
"@mapbox/sphericalmercator": "1.2.0",
|
|
46
|
-
"carto": "0.16.3"
|
|
47
|
+
"carto": "0.16.3",
|
|
48
|
+
"sharp": "0.35.3"
|
|
47
49
|
},
|
|
48
50
|
"peerDependencies": {
|
|
49
51
|
"@opengis/fastify-table": "^2.3.4"
|
|
@@ -7,23 +7,49 @@ const { ConvertVector } = mapnik();
|
|
|
7
7
|
|
|
8
8
|
const ALLOWED_FORMAT = new Set(["zip", "shp", "kml", "gml", "geojson", "json"]);
|
|
9
9
|
|
|
10
|
+
function resolveExtension(filename) {
|
|
11
|
+
return path.extname(filename || "").replace(".", "").toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
/**
|
|
11
|
-
* Конвертує векторний файл
|
|
15
|
+
* Конвертує векторний файл у GeoJSON через mapnik ConvertVector.
|
|
12
16
|
*
|
|
13
17
|
* @method POST /gis-convert
|
|
14
|
-
* @body {string}
|
|
18
|
+
* @body {string} [file] - base64 вміст файлу
|
|
19
|
+
* @body {string} [filename] - ім'я файлу (обов'язкове з file)
|
|
20
|
+
* @body {string} [filepath] - шлях до файлу на сервері (legacy)
|
|
15
21
|
* @body {number} [srid=4326] - цільовий EPSG код
|
|
16
22
|
*/
|
|
17
23
|
export default async function gisConvert({ body = {} }, reply) {
|
|
18
|
-
const { filepath, srid = 4326, encoding } = body;
|
|
24
|
+
const { file, filename, filepath, srid = 4326, encoding } = body;
|
|
19
25
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
let data;
|
|
27
|
+
let sourceName;
|
|
28
|
+
|
|
29
|
+
if (typeof file === "string" && file) {
|
|
30
|
+
if (!filename || typeof filename !== "string") {
|
|
31
|
+
return reply
|
|
32
|
+
.status(400)
|
|
33
|
+
.send({ error: "Потрібен параметр filename разом з file", code: 400 });
|
|
34
|
+
}
|
|
35
|
+
data = Buffer.from(file, "base64");
|
|
36
|
+
sourceName = path.basename(filename);
|
|
37
|
+
} else if (typeof filepath === "string" && filepath) {
|
|
38
|
+
data = await downloadFile(filepath, { buffer: true });
|
|
39
|
+
if (!data) {
|
|
40
|
+
return reply
|
|
41
|
+
.status(404)
|
|
42
|
+
.send({ error: `Файл не знайдено: ${filepath}`, code: 404 });
|
|
43
|
+
}
|
|
44
|
+
sourceName = path.basename(filepath);
|
|
45
|
+
} else {
|
|
46
|
+
return reply.status(400).send({
|
|
47
|
+
error: "Потрібен параметр file (base64) або filepath",
|
|
48
|
+
code: 400,
|
|
49
|
+
});
|
|
24
50
|
}
|
|
25
51
|
|
|
26
|
-
const ext =
|
|
52
|
+
const ext = resolveExtension(sourceName);
|
|
27
53
|
if (!ALLOWED_FORMAT.has(ext)) {
|
|
28
54
|
return reply.status(400).send({
|
|
29
55
|
error: `Непідтримуване розширення: .${ext}. Підтримується: ${[...ALLOWED_FORMAT].join(", ")}`,
|
|
@@ -31,19 +57,12 @@ export default async function gisConvert({ body = {} }, reply) {
|
|
|
31
57
|
});
|
|
32
58
|
}
|
|
33
59
|
|
|
34
|
-
const data = await downloadFile(filepath, { buffer: true });
|
|
35
|
-
if (!data) {
|
|
36
|
-
return reply
|
|
37
|
-
.status(404)
|
|
38
|
-
.send({ error: `Файл не знайдено: ${filepath}`, code: 404 });
|
|
39
|
-
}
|
|
40
|
-
|
|
41
60
|
const res = await ConvertVector({
|
|
42
61
|
data,
|
|
43
62
|
format: ext,
|
|
44
|
-
srs: +srid,
|
|
63
|
+
// srs: +srid, // target srs, 4326 by default
|
|
45
64
|
encoding,
|
|
46
|
-
filename:
|
|
65
|
+
filename: sourceName,
|
|
47
66
|
}).catch((err) => ({ err }));
|
|
48
67
|
|
|
49
68
|
if (res?.err) {
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
|
|
5
|
+
import * as solidIcons from '@fortawesome/free-solid-svg-icons';
|
|
6
|
+
import sharp from 'sharp';
|
|
7
|
+
|
|
8
|
+
const iconFilenamePattern = /^([a-z][a-z0-9]*)-(s|m|l|xl)-fa-([a-z0-9-]+)\+([a-f0-9]{3,8})\.(png|svg)$/i;
|
|
9
|
+
const validColorLengths = new Set([3, 4, 6, 8]);
|
|
10
|
+
|
|
11
|
+
const iconSizeByCode = {
|
|
12
|
+
s: 24,
|
|
13
|
+
m: 32,
|
|
14
|
+
l: 48,
|
|
15
|
+
xl: 64,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const contentTypeByFormat = {
|
|
19
|
+
png: 'image/png',
|
|
20
|
+
svg: 'image/svg+xml',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// Templates with a transparent or white center can safely recolor their background.
|
|
24
|
+
const pinConfig = {
|
|
25
|
+
pin: { x: 98, y: 99, iconSize: 110 },
|
|
26
|
+
pin1: { x: 237, y: 205, iconSize: 200 },
|
|
27
|
+
pin2: {
|
|
28
|
+
x: 195, y: 185, iconSize: 210, recolorBackground: true,
|
|
29
|
+
},
|
|
30
|
+
pin3: {
|
|
31
|
+
x: 197, y: 205, iconSize: 215, recolorBackground: true,
|
|
32
|
+
},
|
|
33
|
+
pin4: {
|
|
34
|
+
x: 265, y: 230, iconSize: 250, recolorBackground: true,
|
|
35
|
+
},
|
|
36
|
+
pin5: {
|
|
37
|
+
x: 205, y: 203, iconSize: 245, recolorBackground: true,
|
|
38
|
+
},
|
|
39
|
+
pin6: {
|
|
40
|
+
x: 220, y: 215, iconSize: 281, recolorBackground: true,
|
|
41
|
+
},
|
|
42
|
+
pin7: {
|
|
43
|
+
x: 220, y: 215, iconSize: 281, recolorBackground: true,
|
|
44
|
+
},
|
|
45
|
+
circle1: { x: 321, y: 308, iconSize: 260 },
|
|
46
|
+
circle2: { x: 251, y: 248, iconSize: 300 },
|
|
47
|
+
none: { x: 250, y: 250, iconSize: 300 },
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
51
|
+
const pinDirectory = path.join(dirname, 'pin');
|
|
52
|
+
const iconDirectory = path.join(process.cwd(), 'log', 'icon');
|
|
53
|
+
const iconDirectoryReady = mkdir(iconDirectory, { recursive: true });
|
|
54
|
+
|
|
55
|
+
function parseIconFilename(filename) {
|
|
56
|
+
const match = iconFilenamePattern.exec(filename);
|
|
57
|
+
if (!match) return null;
|
|
58
|
+
|
|
59
|
+
const [, pinName, sizeCode, iconName, hexColor, format] = match;
|
|
60
|
+
if (!validColorLengths.has(hexColor.length)) return null;
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
filename: filename.toLowerCase(),
|
|
64
|
+
pinName: pinName.toLowerCase(),
|
|
65
|
+
size: iconSizeByCode[sizeCode.toLowerCase()],
|
|
66
|
+
iconName: iconName.toLowerCase(),
|
|
67
|
+
color: `#${hexColor}`,
|
|
68
|
+
format: format.toLowerCase(),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function findIcon(iconName) {
|
|
73
|
+
const exportName = `fa${iconName.replace(/(^|-)([a-z0-9])/g, (_, __, char) => char.toUpperCase())}`;
|
|
74
|
+
const exportedIcon = solidIcons[exportName];
|
|
75
|
+
|
|
76
|
+
if (exportedIcon?.prefix === 'fas') return exportedIcon;
|
|
77
|
+
|
|
78
|
+
return Object.values(solidIcons).find(icon => (
|
|
79
|
+
icon?.prefix === 'fas' && icon.iconName === iconName
|
|
80
|
+
));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
async function readFileIfExists(filePath, encoding) {
|
|
84
|
+
try {
|
|
85
|
+
return await readFile(filePath, encoding);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
if (error.code !== 'ENOENT') throw error;
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function getSvgAttribute(svg, attribute, fallback) {
|
|
94
|
+
const match = new RegExp(`\\b${attribute}="([0-9.]+)"`, 'i').exec(svg);
|
|
95
|
+
return match ? Number(match[1]) : fallback;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function getPinPlacement(pinName, width, height) {
|
|
99
|
+
return pinConfig[pinName] || {
|
|
100
|
+
x: width / 2,
|
|
101
|
+
y: height / 2,
|
|
102
|
+
iconSize: Math.min(width, height) * 0.55,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function createForegroundSvg(icon, placement, color) {
|
|
107
|
+
const [width, height, , , pathData] = icon.icon;
|
|
108
|
+
const paths = Array.isArray(pathData) ? pathData : [pathData];
|
|
109
|
+
const x = placement.x - placement.iconSize / 2;
|
|
110
|
+
const y = placement.y - placement.iconSize / 2;
|
|
111
|
+
|
|
112
|
+
return `<svg data-gis-icon-layer="foreground" x="${x}" y="${y}" width="${placement.iconSize}" height="${placement.iconSize}" viewBox="0 0 ${width} ${height}" fill="${color}">
|
|
113
|
+
${paths.map(iconPath => `<path d="${iconPath}"/>`).join('')}
|
|
114
|
+
</svg>`;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function setSvgViewport(svg, size, width, height) {
|
|
118
|
+
return svg.replace(/<svg\b([^>]*)>/i, (_, attributes) => {
|
|
119
|
+
const rootAttributes = attributes
|
|
120
|
+
.replace(/\swidth="[^"]*"/i, '')
|
|
121
|
+
.replace(/\sheight="[^"]*"/i, '')
|
|
122
|
+
.replace(/\sviewBox="[^"]*"/i, '');
|
|
123
|
+
|
|
124
|
+
return `<svg${rootAttributes} width="${size}" height="${size}" viewBox="0 0 ${width} ${height}">`;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
async function createPinSvg({
|
|
129
|
+
pinName,
|
|
130
|
+
size,
|
|
131
|
+
color,
|
|
132
|
+
icon,
|
|
133
|
+
}) {
|
|
134
|
+
const templatePath = path.join(pinDirectory, `${pinName}.svg`);
|
|
135
|
+
const template = await readFileIfExists(templatePath, 'utf8');
|
|
136
|
+
if (!template) return null;
|
|
137
|
+
|
|
138
|
+
const width = getSvgAttribute(template, 'width', 512);
|
|
139
|
+
const height = getSvgAttribute(template, 'height', 512);
|
|
140
|
+
const placement = getPinPlacement(pinName, width, height);
|
|
141
|
+
const coloredTemplate = placement.recolorBackground
|
|
142
|
+
? template.replace(/#ff0000/gi, color)
|
|
143
|
+
: template;
|
|
144
|
+
const svg = setSvgViewport(coloredTemplate, size, width, height);
|
|
145
|
+
const foreground = createForegroundSvg(icon, placement, color);
|
|
146
|
+
|
|
147
|
+
return svg.replace(/<\/svg>\s*$/, `${foreground}</svg>`);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async function createIcon(options) {
|
|
151
|
+
const icon = findIcon(options.iconName);
|
|
152
|
+
if (!icon) return null;
|
|
153
|
+
|
|
154
|
+
const svg = await createPinSvg({
|
|
155
|
+
...options,
|
|
156
|
+
icon,
|
|
157
|
+
});
|
|
158
|
+
if (!svg) return null;
|
|
159
|
+
if (options.format === 'svg') return Buffer.from(svg);
|
|
160
|
+
|
|
161
|
+
return sharp(Buffer.from(svg)).png().toBuffer();
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
async function getOrCreateIcon(options) {
|
|
165
|
+
await iconDirectoryReady;
|
|
166
|
+
|
|
167
|
+
const iconPath = path.join(iconDirectory, options.filename);
|
|
168
|
+
const cachedIcon = await readFileIfExists(iconPath);
|
|
169
|
+
if (cachedIcon) return cachedIcon;
|
|
170
|
+
|
|
171
|
+
const icon = await createIcon(options);
|
|
172
|
+
if (!icon) return null;
|
|
173
|
+
|
|
174
|
+
await writeFile(iconPath, icon);
|
|
175
|
+
return icon;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export default async function gisIconApi(req, reply) {
|
|
179
|
+
const options = parseIconFilename(req.params?.['*'] || '');
|
|
180
|
+
if (!options) return reply.status(400).send('invalid icon name');
|
|
181
|
+
|
|
182
|
+
const image = await getOrCreateIcon(options);
|
|
183
|
+
if (!image) return reply.status(404).send('icon not found');
|
|
184
|
+
|
|
185
|
+
return reply
|
|
186
|
+
.type(contentTypeByFormat[options.format])
|
|
187
|
+
.header('Cache-Control', 'public, max-age=31536000, immutable')
|
|
188
|
+
.send(image);
|
|
189
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
|
|
2
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" width="640" height="640" size="10">
|
|
3
|
+
<defs>
|
|
4
|
+
<path d="M125.89 308.46C125.89 416.69 213.18 504.42 320.87 504.42C428.55 504.42 515.84 416.69 515.84 308.46C515.84 200.23 428.55 112.5 320.87 112.5C213.18 112.5 125.89 200.23 125.89 308.46Z" id="bxnJq9Fms" opacity="1" fill="#176e1c" fill-opacity="0.9"></path>
|
|
5
|
+
|
|
6
|
+
<path d="M471.68 460.7C474.85 463.87 500.19 489.21 503.36 492.38C402.14 593.61 238.02 593.61 136.8 492.38C143.13 486.05 162.14 467.04 168.48 460.7C252.2 544.43 387.96 544.43 471.68 460.7Z" id="d1IP8hejdv" opacity="1" fill="#004b7a" fill-opacity="0.5"></path>
|
|
7
|
+
|
|
8
|
+
<path d="M471.68 460.7C474.85 463.87 500.19 489.21 503.36 492.38C402.14 593.61 238.02 593.61 136.8 492.38C143.13 486.05 162.14 467.04 168.48 460.7C252.2 544.43 387.96 544.43 471.68 460.7Z" id="dszZ9C091" opacity="1" fill="#176e1c" fill-opacity="0.76"></path>
|
|
9
|
+
|
|
10
|
+
<path d="M514.68 503.7C517.84 506.86 543.19 532.21 546.35 535.37C421.39 660.34 218.77 660.34 93.81 535.37C100.14 529.04 119.15 510.03 125.48 503.7C232.96 611.17 407.2 611.17 514.68 503.7Z" id="i3YCqVZbGP" opacity="1" fill="#004b7a" fill-opacity="0.3"></path>
|
|
11
|
+
|
|
12
|
+
<path d="M514.68 503.7C517.84 506.86 543.19 532.21 546.35 535.37C421.39 660.34 218.77 660.34 93.81 535.37C100.14 529.04 119.15 510.03 125.48 503.7C232.96 611.17 407.2 611.17 514.68 503.7Z" id="a1MM8a5ZJx" opacity="1" fill="#176e1c" fill-opacity="0.5"></path>
|
|
13
|
+
|
|
14
|
+
<path d="M112.99 364.59C108.66 365.75 74.04 375.03 69.71 376.19C32.66 237.91 114.72 95.78 252.99 58.73C255.31 67.39 262.27 93.35 264.59 102.01C150.21 132.65 82.34 250.22 112.99 364.59Z" id="f1sfSN9oD7" opacity="1" fill="#004b7a" fill-opacity="0.5"></path>
|
|
15
|
+
|
|
16
|
+
<path d="M112.99 364.59C108.66 365.75 74.04 375.03 69.71 376.19C32.66 237.91 114.72 95.78 252.99 58.73C255.31 67.39 262.27 93.35 264.59 102.01C150.21 132.65 82.34 250.22 112.99 364.59Z" id="a1F8dn6kvD" opacity="1" fill="#176e1c" fill-opacity="0.76"></path>
|
|
17
|
+
|
|
18
|
+
<path d="M54.26 380.33C49.93 381.49 15.31 390.76 10.98 391.92C-34.76 221.21 66.55 45.75 237.26 0C239.58 8.66 246.53 34.62 248.85 43.28C102.04 82.61 14.92 233.52 54.26 380.33Z" id="a2f59SPmXf" opacity="1" fill="#004b7a" fill-opacity="0.3"></path>
|
|
19
|
+
|
|
20
|
+
<path d="M54.26 380.33C49.93 381.49 15.31 390.76 10.98 391.92C-34.76 221.21 66.55 45.75 237.26 0C239.58 8.66 246.53 34.62 248.85 43.28C102.04 82.61 14.92 233.52 54.26 380.33Z" id="d9eVmFbht" opacity="1" fill="#176e1c" fill-opacity="0.5"></path>
|
|
21
|
+
|
|
22
|
+
<path d="M375.57 102.01C376.73 97.68 386.01 63.06 387.17 58.73C525.44 95.78 607.5 237.91 570.45 376.19C561.79 373.87 535.83 366.91 527.17 364.59C557.82 250.22 489.95 132.65 375.57 102.01Z" id="a7ywtzA7V" opacity="1" fill="#004b7a" fill-opacity="0.5"></path>
|
|
23
|
+
|
|
24
|
+
<path d="M375.57 102.01C376.73 97.68 386.01 63.06 387.17 58.73C525.44 95.78 607.5 237.91 570.45 376.19C561.79 373.87 535.83 366.91 527.17 364.59C557.82 250.22 489.95 132.65 375.57 102.01Z" id="bkewpK7Zk" opacity="1" fill="#176e1c" fill-opacity="0.76"></path>
|
|
25
|
+
|
|
26
|
+
<path d="M391.31 43.28C392.47 38.95 401.74 4.33 402.9 0C573.61 45.75 674.92 221.21 629.18 391.92C620.52 389.6 594.56 382.65 585.9 380.33C625.24 233.52 538.12 82.61 391.31 43.28Z" id="a3OGUZIdcL" opacity="1" fill="#004b7a" fill-opacity="0.3"></path>
|
|
27
|
+
|
|
28
|
+
<path d="M391.31 43.28C392.47 38.95 401.74 4.33 402.9 0C573.61 45.75 674.92 221.21 629.18 391.92C620.52 389.6 594.56 382.65 585.9 380.33C625.24 233.52 538.12 82.61 391.31 43.28Z" id="bAIeBkbDY" opacity="1" fill="#176e1c" fill-opacity="0.5"></path>
|
|
29
|
+
|
|
30
|
+
</defs>
|
|
31
|
+
|
|
32
|
+
<g>
|
|
33
|
+
<g>
|
|
34
|
+
<g>
|
|
35
|
+
<use xlink:href="#bxnJq9Fms"></use>
|
|
36
|
+
|
|
37
|
+
</g>
|
|
38
|
+
<g>
|
|
39
|
+
<use xlink:href="#d1IP8hejdv"></use>
|
|
40
|
+
</g>
|
|
41
|
+
<g>
|
|
42
|
+
<use xlink:href="#dszZ9C091"></use>
|
|
43
|
+
</g>
|
|
44
|
+
<g>
|
|
45
|
+
<use xlink:href="#i3YCqVZbGP"></use>
|
|
46
|
+
</g>
|
|
47
|
+
<g>
|
|
48
|
+
<use xlink:href="#a1MM8a5ZJx"></use>
|
|
49
|
+
</g>
|
|
50
|
+
<g>
|
|
51
|
+
<use xlink:href="#f1sfSN9oD7"></use>
|
|
52
|
+
</g>
|
|
53
|
+
<g>
|
|
54
|
+
<use xlink:href="#a1F8dn6kvD"></use>
|
|
55
|
+
</g>
|
|
56
|
+
<g>
|
|
57
|
+
<use xlink:href="#a2f59SPmXf"></use>
|
|
58
|
+
</g>
|
|
59
|
+
<g>
|
|
60
|
+
<use xlink:href="#d9eVmFbht"></use>
|
|
61
|
+
</g>
|
|
62
|
+
<g>
|
|
63
|
+
<use xlink:href="#a7ywtzA7V"></use>
|
|
64
|
+
</g>
|
|
65
|
+
<g>
|
|
66
|
+
<use xlink:href="#bkewpK7Zk"></use>
|
|
67
|
+
</g>
|
|
68
|
+
<g>
|
|
69
|
+
<use xlink:href="#a3OGUZIdcL"></use>
|
|
70
|
+
|
|
71
|
+
</g>
|
|
72
|
+
<g>
|
|
73
|
+
<use xlink:href="#bAIeBkbDY"></use>
|
|
74
|
+
</g>
|
|
75
|
+
</g>
|
|
76
|
+
</g>
|
|
77
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" width="508" height="502">
|
|
3
|
+
<defs>
|
|
4
|
+
<path d="M42.88 248.34C42.88 361.41 136.8 454.28 251.14 454.28C367.52 454.28 459.4 361.41 459.4 248.34C459.4 135.28 365.48 42.4 251.14 42.4C136.8 42.4 42.88 135.28 42.88 248.34Z" id="d42A1lAfqG" opacity="1" fill="#ff0000" fill-opacity="0.9"></path>
|
|
5
|
+
|
|
6
|
+
<path d="M271.75 0.82L281.89 1.84L291.91 3.25L301.79 5.04L311.54 7.21L321.13 9.75L330.57 12.65L339.85 15.9L348.95 19.5L357.88 23.43L366.61 27.69L375.15 32.28L383.49 37.17L391.61 42.38L399.52 47.88L407.19 53.66L414.63 59.73L421.83 66.08L428.77 72.69L435.46 79.55L441.87 86.67L448.01 94.02L453.86 101.61L459.42 109.43L464.68 117.46L469.64 125.71L474.27 134.15L478.58 142.79L482.56 151.62L486.2 160.62L489.49 169.79L492.42 179.13L494.99 188.62L497.18 198.25L498.99 208.02L500.42 217.93L501.44 227.95L502.07 238.09L502.28 248.34L502.07 258.59L501.44 268.73L500.42 278.75L498.99 288.66L497.18 298.43L494.99 308.07L492.42 317.55L489.49 326.89L486.2 336.06L482.56 345.07L478.58 353.89L474.27 362.53L469.64 370.97L464.68 379.22L459.42 387.25L453.86 395.07L448.01 402.66L441.87 410.02L435.46 417.13L428.77 424L421.83 430.61L414.63 436.95L407.19 443.02L399.52 448.81L391.61 454.31L383.49 459.51L375.15 464.4L366.61 468.99L357.88 473.25L348.95 477.19L339.85 480.78L330.57 484.03L321.13 486.93L311.54 489.47L301.79 491.64L291.91 493.44L281.89 494.84L271.75 495.86L261.5 496.47L251.14 496.68L240.78 496.47L230.52 495.86L220.38 494.84L210.37 493.44L200.48 491.64L190.74 489.47L181.15 486.93L171.7 484.03L162.43 480.78L153.32 477.19L144.4 473.25L135.66 468.99L127.12 464.4L118.79 459.51L110.66 454.31L102.76 448.81L95.08 443.02L87.64 436.95L80.45 430.61L73.5 424L66.82 417.13L60.41 410.02L54.27 402.66L48.41 395.07L42.85 387.25L37.59 379.22L32.64 370.97L28 362.53L23.69 353.89L19.72 345.07L16.08 336.06L12.79 326.89L9.86 317.55L7.29 308.07L5.1 298.43L3.28 288.66L1.86 278.75L0.83 268.73L0.21 258.59L0 248.34L0.21 238.09L0.83 227.95L1.86 217.93L3.28 208.02L5.1 198.25L7.29 188.62L9.86 179.13L12.79 169.79L16.08 160.62L19.72 151.62L23.69 142.79L28 134.15L32.64 125.71L37.59 117.46L42.85 109.43L48.41 101.61L54.27 94.02L60.41 86.67L66.82 79.55L73.5 72.69L80.45 66.08L87.64 59.73L95.08 53.66L102.76 47.88L110.66 42.38L118.79 37.17L127.12 32.28L135.66 27.69L144.4 23.43L153.32 19.5L162.43 15.9L171.7 12.65L181.15 9.75L190.74 7.21L200.48 5.04L210.37 3.25L220.38 1.84L230.52 0.82L240.78 0.21L251.14 0L261.5 0.21L271.75 0.82ZM232.34 22.96L223.1 23.88L213.97 25.16L204.97 26.8L196.09 28.77L187.35 31.08L178.74 33.73L170.29 36.69L162 39.97L153.87 43.56L145.92 47.45L138.14 51.63L130.55 56.11L123.15 60.86L115.96 65.89L108.97 71.18L102.2 76.73L95.65 82.53L89.33 88.59L83.25 94.87L77.41 101.39L71.82 108.14L66.5 115.1L61.44 122.27L56.65 129.65L52.15 137.22L47.93 144.98L44.01 152.93L40.39 161.05L37.08 169.34L34.09 177.79L31.42 186.39L29.09 195.14L27.09 204.04L25.44 213.06L24.15 222.21L23.22 231.49L22.65 240.87L22.46 250.36L22.65 259.71L23.23 268.96L24.18 278.12L25.5 287.17L27.18 296.1L29.21 304.92L31.59 313.61L34.3 322.16L37.34 330.56L40.71 338.82L44.39 346.92L48.37 354.84L52.65 362.6L57.23 370.17L62.08 377.56L67.22 384.75L72.62 391.73L78.28 398.5L84.19 405.05L90.35 411.38L96.74 417.47L103.37 423.32L110.22 428.91L117.28 434.25L124.55 439.33L132.02 444.13L139.68 448.65L147.52 452.89L155.54 456.83L163.72 460.47L172.07 463.79L180.57 466.8L189.22 469.48L198.01 471.83L206.92 473.84L215.96 475.5L225.11 476.81L234.37 477.75L243.73 478.32L253.18 478.51L262.63 478.32L271.99 477.75L281.25 476.81L290.4 475.5L299.44 473.84L308.35 471.83L317.14 469.48L325.79 466.8L334.29 463.79L342.64 460.47L350.82 456.83L358.84 452.89L366.68 448.65L374.34 444.13L381.81 439.33L389.08 434.25L396.14 428.91L402.99 423.32L409.62 417.47L416.01 411.38L422.17 405.05L428.08 398.5L433.74 391.73L439.14 384.75L444.28 377.56L449.13 370.17L453.71 362.6L457.99 354.84L461.97 346.92L465.65 338.82L469.02 330.56L472.06 322.16L474.77 313.61L477.15 304.92L479.18 296.1L480.86 287.17L482.18 278.12L483.13 268.96L483.71 259.71L483.9 250.36L483.56 240.87L482.85 231.49L481.78 222.21L480.36 213.06L478.59 204.04L476.48 195.14L474.03 186.39L471.26 177.79L468.16 169.34L464.76 161.05L461.05 152.93L457.03 144.98L452.73 137.22L448.14 129.65L443.27 122.27L438.13 115.1L432.73 108.14L427.06 101.39L421.15 94.87L414.99 88.59L408.59 82.53L401.97 76.73L395.12 71.18L388.05 65.89L380.77 60.86L373.3 56.11L365.62 51.63L357.76 47.45L349.71 43.56L341.49 39.97L333.1 36.69L324.54 33.73L315.84 31.08L306.98 28.77L297.99 26.8L288.86 25.16L279.6 23.88L270.22 22.96L260.73 22.4L251.14 22.21L241.69 22.4L232.34 22.96Z" id="aewf5VxHU" opacity="1" fill="#ff0000" fill-opacity="1"></path>
|
|
7
|
+
</defs>
|
|
8
|
+
<g>
|
|
9
|
+
<g>
|
|
10
|
+
<use xlink:href="#d42A1lAfqG" x="3" y="3"></use>
|
|
11
|
+
|
|
12
|
+
</g>
|
|
13
|
+
<g>
|
|
14
|
+
<use xlink:href="#aewf5VxHU" x="3" y="3"></use>
|
|
15
|
+
|
|
16
|
+
</g>
|
|
17
|
+
</g>
|
|
18
|
+
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<svg
|
|
3
|
+
|
|
4
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
5
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
6
|
+
width="500"
|
|
7
|
+
height="500"
|
|
8
|
+
version="1.1"
|
|
9
|
+
>
|
|
10
|
+
<rect width="500" height="500" fill-opacity="0" fill="red"/>
|
|
11
|
+
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg width="196" height="268" dy="-20" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ -->
|
|
3
|
+
|
|
4
|
+
<g>
|
|
5
|
+
<title>background</title>
|
|
6
|
+
</g>
|
|
7
|
+
<g>
|
|
8
|
+
<title>Layer 1</title>
|
|
9
|
+
<g transform="translate(-6,0)" id="svg_6" stroke="none">
|
|
10
|
+
<path d="m186.060243,99.039401c0,-47.528664 -38.526704,-86.048351 -86.05186,-86.048351c-46.855095,0 -84.897672,37.477762 -85.953631,84.083777c-0.031574,-0.014033 -0.070163,-0.014033 -0.098229,-0.014033c-0.021049,0.42098 0.045606,0.845469 0.035082,1.269957c-0.003508,0.235047 -0.035082,0.473603 -0.035082,0.70865c0,0.855993 0.105245,1.680413 0.129802,2.525881c0.968254,55.913186 64.167906,114.91356 85.922057,135.913455c61.09475,-49.531828 78.881164,-95.478308 84.02063,-119.975847c0.185933,-0.859501 0.350817,-1.715494 0.508684,-2.574996c0.494652,-2.638143 0.838452,-5.002648 1.077008,-7.030369c0,-0.024557 0.007016,-0.049114 0.007016,-0.073672c0.641995,-5.662184 0.438521,-8.784453 0.438521,-8.784453l0.000002,0.000001z" fill="#ff0000" id="svg_5" stroke="none"/>
|
|
11
|
+
<path d="m186.060243,99.039401c0,-47.528664 -38.526704,-86.048351 -86.05186,-86.048351c-46.855095,0 -84.897672,37.477762 -85.953631,84.083777c-0.031574,-0.014033 -0.070163,-0.014033 -0.098229,-0.014033c-0.021049,0.42098 0.045606,0.845469 0.035082,1.269957c-0.003508,0.235047 -0.035082,0.473603 -0.035082,0.70865c0,0.855993 0.105245,1.680413 0.129802,2.525881c0.968254,55.913186 64.167906,114.91356 85.922057,135.913455c61.09475,-49.531828 78.881164,-95.478308 84.02063,-119.975847c0.185933,-0.859501 0.350817,-1.715494 0.508684,-2.574996c0.494652,-2.638143 0.838452,-5.002648 1.077008,-7.030369c0,-0.024557 0.007016,-0.049114 0.007016,-0.073672c0.641995,-5.662184 0.438521,-8.784453 0.438521,-8.784453l0.000002,0.000001z" stroke="#ff0000" fill="none" id="svg_5" stroke-width="25" stroke-opacity="0.4"/>
|
|
12
|
+
</g>
|
|
13
|
+
</g>
|
|
14
|
+
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" dy="-25" version="1.1" preserveAspectRatio="xMidYMid meet" width="473.2" height="578.5">
|
|
2
|
+
<defs>
|
|
3
|
+
|
|
4
|
+
<path d="M247.62 0.45L256.99 1.24L266.25 2.39L275.4 3.9L284.42 5.75L293.31 7.94L302.06 10.47L310.66 13.32L319.12 16.49L327.41 19.97L335.54 23.76L343.5 27.84L351.27 32.22L358.86 36.87L366.25 41.8L373.45 47L380.43 52.47L387.2 58.18L393.74 64.15L400.06 70.35L406.13 76.78L411.97 83.44L417.55 90.32L422.88 97.41L427.94 104.7L432.72 112.19L437.23 119.86L441.45 127.72L445.38 135.76L449.01 143.96L452.33 152.32L455.33 160.83L458.02 169.49L460.37 178.29L462.39 187.22L464.07 196.28L465.39 205.45L466.36 214.73L466.97 224.11L467.2 233.59L467.2 241.94L466.98 249.21L466.34 256.69L465.28 264.37L463.84 272.25L462.01 280.3L459.82 288.5L457.29 296.85L454.43 305.33L451.26 313.92L447.79 322.61L444.04 331.38L440.02 340.21L435.76 349.1L431.27 358.02L426.56 366.97L421.65 375.92L416.55 384.86L411.3 393.78L405.88 402.66L400.34 411.48L394.68 420.24L388.91 428.9L383.06 437.47L377.14 445.92L371.16 454.24L365.15 462.42L359.11 470.43L353.07 478.26L347.04 485.91L341.04 493.34L335.08 500.56L329.18 507.53L323.36 514.26L317.63 520.71L312 526.88L306.51 532.75L301.15 538.31L295.94 543.54L290.92 548.43L286.08 552.95L283.82 554.96L281.52 556.86L279.15 558.66L276.74 560.35L274.28 561.94L271.77 563.43L269.22 564.82L266.63 566.1L264 567.28L261.35 568.36L258.66 569.34L255.94 570.21L253.2 570.98L250.44 571.65L247.66 572.21L244.87 572.68L242.06 573.04L239.25 573.29L236.42 573.45L233.6 573.5L230.78 573.45L227.95 573.29L225.14 573.04L222.33 572.68L219.54 572.21L216.76 571.65L214 570.98L211.26 570.21L208.54 569.34L205.85 568.36L203.2 567.28L200.57 566.1L197.98 564.82L195.43 563.43L192.92 561.94L190.46 560.35L188.05 558.66L185.68 556.86L183.38 554.96L181.12 552.95L176.28 548.43L171.26 543.54L166.05 538.31L160.69 532.75L155.2 526.88L149.57 520.71L143.84 514.26L138.02 507.53L132.12 500.56L126.16 493.34L120.16 485.91L114.13 478.26L108.09 470.43L102.05 462.42L96.04 454.24L90.06 445.92L84.14 437.47L78.29 428.9L72.52 420.24L66.86 411.48L61.32 402.66L55.9 393.78L50.65 384.86L45.55 375.92L40.64 366.97L35.93 358.02L31.44 349.1L27.18 340.21L23.16 331.38L19.41 322.61L15.94 313.92L12.77 305.33L9.91 296.85L7.38 288.5L5.19 280.3L3.36 272.25L1.92 264.37L0.86 256.69L0.22 249.21L0 241.94L0 237.82L0.07 233L0.23 228.2L0.48 223.4L0.84 218.62L1.28 213.86L1.82 209.11L2.46 204.38L3.18 199.67L4 194.98L4.91 190.31L5.91 185.66L7 181.04L8.18 176.45L9.45 171.88L10.8 167.34L12.25 162.83L13.79 158.35L15.41 153.91L17.12 149.49L18.91 145.12L20.79 140.77L22.75 136.47L24.8 132.2L26.94 127.98L29.15 123.79L31.45 119.65L33.83 115.55L36.3 111.49L38.84 107.49L41.47 103.53L44.17 99.61L46.96 95.75L49.82 91.94L52.76 88.19L55.78 84.48L58.88 80.84L62.06 77.24L65.31 73.71L68.64 70.24L72.04 66.82L75.37 63.57L78.76 60.39L82.21 57.29L85.71 54.26L89.27 51.31L92.88 48.44L96.54 45.64L100.25 42.92L104.02 40.28L107.83 37.72L111.69 35.24L115.59 32.83L119.54 30.51L123.53 28.27L127.56 26.11L131.63 24.03L135.75 22.03L139.9 20.12L144.08 18.29L148.3 16.54L152.56 14.88L156.85 13.3L161.17 11.81L165.52 10.41L169.89 9.09L174.3 7.85L178.73 6.71L183.19 5.65L187.67 4.69L192.17 3.81L196.7 3.02L201.24 2.32L205.8 1.71L210.38 1.19L214.98 0.77L219.59 0.44L224.21 0.2L228.85 0.05L233.49 0L238.15 0.04L247.62 0.45ZM344.16 416.42L338.46 419.74L332.68 422.88L326.83 425.83L320.92 428.59L314.94 431.15L308.91 433.53L302.82 435.72L296.68 437.72L290.5 439.52L284.28 441.14L278.02 442.56L271.74 443.8L265.42 444.85L259.08 445.7L252.73 446.37L246.36 446.84L239.98 447.13L233.6 447.22L227.22 447.13L220.84 446.84L214.47 446.37L208.12 445.7L201.78 444.85L195.46 443.8L189.18 442.56L182.92 441.14L176.7 439.52L170.52 437.72L164.38 435.72L158.29 433.53L152.26 431.15L146.28 428.59L140.37 425.83L134.52 422.88L128.74 419.74L123.04 416.42L117.42 412.9L111.89 409.19L114.33 412.78L116.79 416.35L119.27 419.9L121.75 423.43L124.24 426.94L126.75 430.43L129.26 433.89L131.77 437.33L134.29 440.73L136.82 444.11L139.34 447.46L141.87 450.77L144.39 454.06L146.91 457.3L149.43 460.51L151.94 463.68L154.45 466.82L156.95 469.91L159.43 472.96L161.91 475.96L164.38 478.92L166.83 481.84L169.27 484.7L171.69 487.52L174.09 490.28L176.47 493L178.84 495.65L181.18 498.26L183.5 500.8L185.79 503.29L188.06 505.72L190.3 508.08L192.51 510.39L194.69 512.63L196.84 514.8L198.95 516.91L201.04 518.94L203.08 520.91L205.09 522.81L207.06 524.63L208.2 525.64L209.37 526.61L210.56 527.52L211.78 528.37L213.03 529.18L214.3 529.93L215.59 530.63L216.9 531.28L218.22 531.88L219.57 532.43L220.93 532.92L222.3 533.36L223.69 533.75L225.08 534.09L226.49 534.38L227.9 534.61L229.32 534.79L230.74 534.92L232.17 535L233.6 535.03L235.03 535L236.46 534.92L237.88 534.79L239.3 534.61L240.71 534.38L242.12 534.09L243.51 533.75L244.9 533.36L246.27 532.92L247.63 532.43L248.98 531.88L250.3 531.28L251.61 530.63L252.9 529.93L254.17 529.18L255.42 528.37L256.64 527.52L257.83 526.61L259 525.64L260.14 524.63L262.11 522.81L264.12 520.91L266.16 518.94L268.25 516.91L270.36 514.8L272.51 512.63L274.69 510.39L276.9 508.08L279.14 505.72L281.41 503.29L283.7 500.8L286.02 498.26L288.36 495.65L290.73 493L293.11 490.28L295.51 487.52L297.93 484.7L300.37 481.84L302.82 478.92L305.29 475.96L307.77 472.96L310.25 469.91L312.75 466.82L315.26 463.68L317.77 460.51L320.29 457.3L322.81 454.06L325.33 450.77L327.86 447.46L330.38 444.11L332.91 440.73L335.43 437.33L337.94 433.89L340.45 430.43L342.95 426.94L345.45 423.43L347.93 419.9L350.41 416.35L352.86 412.78L355.31 409.19L349.78 412.9L344.16 416.42ZM229.95 38.44L226.17 38.56L222.4 38.75L218.65 39.02L214.9 39.36L211.17 39.77L207.45 40.25L203.75 40.81L200.06 41.44L196.39 42.14L192.73 42.91L189.1 43.75L185.48 44.67L181.89 45.65L178.31 46.7L174.76 47.82L171.24 49L167.73 50.26L164.26 51.58L160.81 52.97L157.39 54.43L153.99 55.95L150.63 57.54L147.3 59.19L143.99 60.91L140.72 62.7L137.49 64.54L134.29 66.46L131.12 68.43L127.99 70.47L124.9 72.57L121.85 74.73L118.84 76.96L115.86 79.25L112.93 81.59L110.04 84L107.2 86.47L104.4 89L101.64 91.58L98.93 94.23L96.12 97.05L93.37 99.92L90.68 102.84L88.05 105.8L85.49 108.82L82.99 111.87L80.55 114.97L78.17 118.12L75.86 121.3L73.62 124.53L71.44 127.8L69.32 131.1L67.27 134.45L65.29 137.83L63.37 141.25L61.52 144.7L59.74 148.18L58.03 151.7L56.38 155.25L54.81 158.83L53.3 162.44L51.87 166.08L50.5 169.75L49.21 173.44L47.98 177.16L46.83 180.91L45.75 184.68L44.74 188.47L43.81 192.28L42.94 196.11L42.16 199.96L41.44 203.83L40.81 207.72L40.24 211.63L39.75 215.54L39.34 219.48L39.01 223.43L38.75 227.39L38.57 231.36L38.46 235.34L38.48 236.12L38.49 236.91L38.51 237.69L38.53 238.48L38.55 239.26L38.58 240.04L38.61 240.83L38.64 241.61L38.68 242.39L38.72 243.18L38.76 243.96L38.81 244.74L38.86 245.52L38.91 246.3L38.97 247.09L39.03 247.87L39.09 248.65L39.15 249.43L39.22 250.21L39.29 250.99L39.37 251.77L39.44 252.55L39.53 253.33L39.61 254.11L39.7 254.89L39.88 256.45L39.98 257.22L40.07 258L40.18 258.78L40.28 259.56L40.39 260.33L40.5 261.11L40.62 261.88L40.74 262.66L40.86 263.43L40.98 264.21L41.11 264.98L41.24 265.76L41.37 266.53L41.84 268.37L42.32 270.2L42.8 272.03L43.3 273.86L43.81 275.69L44.87 279.33L45.41 281.14L45.97 282.95L46.54 284.76L47.11 286.56L47.7 288.36L48.3 290.16L49.54 293.74L50.17 295.52L51.47 299.08L52.14 300.85L52.82 302.61L53.51 304.38L54.21 306.14L54.92 307.89L55.64 309.64L56.37 311.39L57.11 313.13L57.87 314.86L58.63 316.6L59.41 318.32L60.2 320.05L60.99 321.76L61.8 323.48L62.62 325.19L63.45 326.89L64.29 328.59L65.14 330.28L66 331.97L66.87 333.65L67.76 335.33L68.65 337L69.82 338.84L71.02 340.67L72.23 342.48L73.47 344.28L74.72 346.06L75.99 347.83L77.28 349.58L78.59 351.31L79.92 353.04L81.27 354.74L82.63 356.43L84.02 358.11L85.42 359.77L86.84 361.41L88.28 363.03L89.73 364.64L91.21 366.24L92.7 367.81L94.21 369.37L95.73 370.92L97.28 372.44L98.84 373.95L100.41 375.44L102.01 376.92L103.62 378.37L105.24 379.81L106.89 381.23L108.54 382.64L110.22 384.02L111.91 385.39L113.62 386.73L115.34 388.06L117.07 389.37L118.83 390.66L120.59 391.93L122.38 393.19L124.17 394.42L125.98 395.63L127.81 396.83L129.65 398L136.54 402.15L143.52 405.98L150.6 409.5L157.77 412.7L165 415.6L172.31 418.19L179.67 420.47L187.09 422.45L194.54 424.12L202.02 425.5L209.53 426.58L217.06 427.36L224.59 427.85L232.11 428.04L239.63 427.95L247.12 427.57L254.59 426.9L262.02 425.94L269.4 424.71L276.73 423.19L284 421.4L291.19 419.33L298.31 416.98L305.33 414.36L312.26 411.47L319.08 408.32L325.79 404.89L332.37 401.2L338.82 397.25L345.13 393.04L351.28 388.57L357.28 383.84L363.12 378.86L368.78 373.62L374.25 368.13L379.53 362.4L384.61 356.41L389.48 350.19L394.13 343.71L398.55 337L399.44 335.33L400.33 333.65L401.2 331.97L402.06 330.28L402.91 328.59L403.75 326.89L404.58 325.19L405.4 323.48L406.21 321.76L407.01 320.05L407.79 318.32L408.57 316.6L409.33 314.86L410.09 313.13L410.83 311.39L411.56 309.64L412.28 307.89L412.99 306.14L413.69 304.38L414.38 302.61L415.06 300.85L415.73 299.08L417.03 295.52L417.66 293.74L418.9 290.16L419.5 288.36L420.09 286.56L420.66 284.76L421.23 282.95L421.79 281.14L422.33 279.33L422.86 277.51L423.39 275.69L423.9 273.86L424.4 272.03L425.36 268.37L425.83 266.53L425.96 265.76L426.09 265L426.22 264.23L426.34 263.47L426.58 261.93L426.7 261.16L426.81 260.4L426.92 259.63L427.02 258.86L427.13 258.09L427.23 257.32L427.32 256.55L427.42 255.78L427.51 255.01L427.6 254.24L427.68 253.47L427.76 252.7L427.84 251.92L427.91 251.15L427.99 250.38L428.06 249.61L428.12 248.83L428.18 248.06L428.24 247.29L428.3 246.51L428.35 245.74L428.4 244.96L428.45 244.19L428.5 243.41L428.54 242.64L428.58 241.86L428.61 241.09L428.64 240.31L428.67 239.54L428.7 238.76L428.72 237.99L428.74 237.21L428.76 236.43L428.77 235.66L428.73 227.65L428.37 219.71L427.69 211.86L426.7 204.1L425.41 196.44L423.83 188.88L421.95 181.43L419.79 174.1L417.35 166.88L414.64 159.8L411.67 152.85L408.43 146.04L404.94 139.38L401.21 132.87L397.23 126.52L393.02 120.34L388.58 114.33L383.91 108.51L379.03 102.86L373.94 97.41L368.64 92.16L363.15 87.11L357.46 82.27L351.59 77.65L345.54 73.25L339.32 69.08L332.93 65.15L326.37 61.46L319.67 58.02L312.81 54.84L305.81 51.91L298.67 49.26L291.41 46.88L284.02 44.78L276.51 42.96L268.89 41.44L261.16 40.22L253.34 39.31L245.42 38.71L237.41 38.42L236.86 38.42L236.77 38.41L236.03 38.41L235.94 38.4L234.75 38.4L234.65 38.39L233.74 38.39L229.95 38.44Z" id="dUwMiIeH"/>
|
|
5
|
+
|
|
6
|
+
<path d="M92.8 232.2C92.8 309.96 155.84 373 233.6 373C311.36 373 374.4 309.96 374.4 232.2C374.4 154.44 311.36 91.4 233.6 91.4C155.84 91.4 92.8 154.44 92.8 232.2Z" id="b2ulsaMbi" opacity="1" fill="#ff0000" fill-opacity="1" stroke="#ff0000" stroke-width="80"/>
|
|
7
|
+
|
|
8
|
+
</defs>
|
|
9
|
+
|
|
10
|
+
<g>
|
|
11
|
+
<g>
|
|
12
|
+
<path d="M247.62 0.45L256.99 1.24L266.25 2.39L275.4 3.9L284.42 5.75L293.31 7.94L302.06 10.47L310.66 13.32L319.12 16.49L327.41 19.97L335.54 23.76L343.5 27.84L351.27 32.22L358.86 36.87L366.25 41.8L373.45 47L380.43 52.47L387.2 58.18L393.74 64.15L400.06 70.35L406.13 76.78L411.97 83.44L417.55 90.32L422.88 97.41L427.94 104.7L432.72 112.19L437.23 119.86L441.45 127.72L445.38 135.76L449.01 143.96L452.33 152.32L455.33 160.83L458.02 169.49L460.37 178.29L462.39 187.22L464.07 196.28L465.39 205.45L466.36 214.73L466.97 224.11L467.2 233.59L467.2 241.94L466.98 249.21L466.34 256.69L465.28 264.37L463.84 272.25L462.01 280.3L459.82 288.5L457.29 296.85L454.43 305.33L451.26 313.92L447.79 322.61L444.04 331.38L440.02 340.21L435.76 349.1L431.27 358.02L426.56 366.97L421.65 375.92L416.55 384.86L411.3 393.78L405.88 402.66L400.34 411.48L394.68 420.24L388.91 428.9L383.06 437.47L377.14 445.92L371.16 454.24L365.15 462.42L359.11 470.43L353.07 478.26L347.04 485.91L341.04 493.34L335.08 500.56L329.18 507.53L323.36 514.26L317.63 520.71L312 526.88L306.51 532.75L301.15 538.31L295.94 543.54L290.92 548.43L286.08 552.95L283.82 554.96L281.52 556.86L279.15 558.66L276.74 560.35L274.28 561.94L271.77 563.43L269.22 564.82L266.63 566.1L264 567.28L261.35 568.36L258.66 569.34L255.94 570.21L253.2 570.98L250.44 571.65L247.66 572.21L244.87 572.68L242.06 573.04L239.25 573.29L236.42 573.45L233.6 573.5L230.78 573.45L227.95 573.29L225.14 573.04L222.33 572.68L219.54 572.21L216.76 571.65L214 570.98L211.26 570.21L208.54 569.34L205.85 568.36L203.2 567.28L200.57 566.1L197.98 564.82L195.43 563.43L192.92 561.94L190.46 560.35L188.05 558.66L185.68 556.86L183.38 554.96L181.12 552.95L176.28 548.43L171.26 543.54L166.05 538.31L160.69 532.75L155.2 526.88L149.57 520.71L143.84 514.26L138.02 507.53L132.12 500.56L126.16 493.34L120.16 485.91L114.13 478.26L108.09 470.43L102.05 462.42L96.04 454.24L90.06 445.92L84.14 437.47L78.29 428.9L72.52 420.24L66.86 411.48L61.32 402.66L55.9 393.78L50.65 384.86L45.55 375.92L40.64 366.97L35.93 358.02L31.44 349.1L27.18 340.21L23.16 331.38L19.41 322.61L15.94 313.92L12.77 305.33L9.91 296.85L7.38 288.5L5.19 280.3L3.36 272.25L1.92 264.37L0.86 256.69L0.22 249.21L0 241.94L0 237.82L0.07 233L0.23 228.2L0.48 223.4L0.84 218.62L1.28 213.86L1.82 209.11L2.46 204.38L3.18 199.67L4 194.98L4.91 190.31L5.91 185.66L7 181.04L8.18 176.45L9.45 171.88L10.8 167.34L12.25 162.83L13.79 158.35L15.41 153.91L17.12 149.49L18.91 145.12L20.79 140.77L22.75 136.47L24.8 132.2L26.94 127.98L29.15 123.79L31.45 119.65L33.83 115.55L36.3 111.49L38.84 107.49L41.47 103.53L44.17 99.61L46.96 95.75L49.82 91.94L52.76 88.19L55.78 84.48L58.88 80.84L62.06 77.24L65.31 73.71L68.64 70.24L72.04 66.82L75.37 63.57L78.76 60.39L82.21 57.29L85.71 54.26L89.27 51.31L92.88 48.44L96.54 45.64L100.25 42.92L104.02 40.28L107.83 37.72L111.69 35.24L115.59 32.83L119.54 30.51L123.53 28.27L127.56 26.11L131.63 24.03L135.75 22.03L139.9 20.12L144.08 18.29L148.3 16.54L152.56 14.88L156.85 13.3L161.17 11.81L165.52 10.41L169.89 9.09L174.3 7.85L178.73 6.71L183.19 5.65L187.67 4.69L192.17 3.81L196.7 3.02L201.24 2.32L205.8 1.71L210.38 1.19L214.98 0.77L219.59 0.44L224.21 0.2L228.85 0.05L233.49 0L238.15 0.04L247.62 0.45ZM344.16 416.42L338.46 419.74L332.68 422.88L326.83 425.83L320.92 428.59L314.94 431.15L308.91 433.53L302.82 435.72L296.68 437.72L290.5 439.52L284.28 441.14L278.02 442.56L271.74 443.8L265.42 444.85L259.08 445.7L252.73 446.37L246.36 446.84L239.98 447.13L233.6 447.22L227.22 447.13L220.84 446.84L214.47 446.37L208.12 445.7L201.78 444.85L195.46 443.8L189.18 442.56L182.92 441.14L176.7 439.52L170.52 437.72L164.38 435.72L158.29 433.53L152.26 431.15L146.28 428.59L140.37 425.83L134.52 422.88L128.74 419.74L123.04 416.42L117.42 412.9L111.89 409.19L114.33 412.78L116.79 416.35L119.27 419.9L121.75 423.43L124.24 426.94L126.75 430.43L129.26 433.89L131.77 437.33L134.29 440.73L136.82 444.11L139.34 447.46L141.87 450.77L144.39 454.06L146.91 457.3L149.43 460.51L151.94 463.68L154.45 466.82L156.95 469.91L159.43 472.96L161.91 475.96L164.38 478.92L166.83 481.84L169.27 484.7L171.69 487.52L174.09 490.28L176.47 493L178.84 495.65L181.18 498.26L183.5 500.8L185.79 503.29L188.06 505.72L190.3 508.08L192.51 510.39L194.69 512.63L196.84 514.8L198.95 516.91L201.04 518.94L203.08 520.91L205.09 522.81L207.06 524.63L208.2 525.64L209.37 526.61L210.56 527.52L211.78 528.37L213.03 529.18L214.3 529.93L215.59 530.63L216.9 531.28L218.22 531.88L219.57 532.43L220.93 532.92L222.3 533.36L223.69 533.75L225.08 534.09L226.49 534.38L227.9 534.61L229.32 534.79L230.74 534.92L232.17 535L233.6 535.03L235.03 535L236.46 534.92L237.88 534.79L239.3 534.61L240.71 534.38L242.12 534.09L243.51 533.75L244.9 533.36L246.27 532.92L247.63 532.43L248.98 531.88L250.3 531.28L251.61 530.63L252.9 529.93L254.17 529.18L255.42 528.37L256.64 527.52L257.83 526.61L259 525.64L260.14 524.63L262.11 522.81L264.12 520.91L266.16 518.94L268.25 516.91L270.36 514.8L272.51 512.63L274.69 510.39L276.9 508.08L279.14 505.72L281.41 503.29L283.7 500.8L286.02 498.26L288.36 495.65L290.73 493L293.11 490.28L295.51 487.52L297.93 484.7L300.37 481.84L302.82 478.92L305.29 475.96L307.77 472.96L310.25 469.91L312.75 466.82L315.26 463.68L317.77 460.51L320.29 457.3L322.81 454.06L325.33 450.77L327.86 447.46L330.38 444.11L332.91 440.73L335.43 437.33L337.94 433.89L340.45 430.43L342.95 426.94L345.45 423.43L347.93 419.9L350.41 416.35L352.86 412.78L355.31 409.19L349.78 412.9L344.16 416.42ZM229.95 38.44L226.17 38.56L222.4 38.75L218.65 39.02L214.9 39.36L211.17 39.77L207.45 40.25L203.75 40.81L200.06 41.44L196.39 42.14L192.73 42.91L189.1 43.75L185.48 44.67L181.89 45.65L178.31 46.7L174.76 47.82L171.24 49L167.73 50.26L164.26 51.58L160.81 52.97L157.39 54.43L153.99 55.95L150.63 57.54L147.3 59.19L143.99 60.91L140.72 62.7L137.49 64.54L134.29 66.46L131.12 68.43L127.99 70.47L124.9 72.57L121.85 74.73L118.84 76.96L115.86 79.25L112.93 81.59L110.04 84L107.2 86.47L104.4 89L101.64 91.58L98.93 94.23L96.12 97.05L93.37 99.92L90.68 102.84L88.05 105.8L85.49 108.82L82.99 111.87L80.55 114.97L78.17 118.12L75.86 121.3L73.62 124.53L71.44 127.8L69.32 131.1L67.27 134.45L65.29 137.83L63.37 141.25L61.52 144.7L59.74 148.18L58.03 151.7L56.38 155.25L54.81 158.83L53.3 162.44L51.87 166.08L50.5 169.75L49.21 173.44L47.98 177.16L46.83 180.91L45.75 184.68L44.74 188.47L43.81 192.28L42.94 196.11L42.16 199.96L41.44 203.83L40.81 207.72L40.24 211.63L39.75 215.54L39.34 219.48L39.01 223.43L38.75 227.39L38.57 231.36L38.46 235.34L38.48 236.12L38.49 236.91L38.51 237.69L38.53 238.48L38.55 239.26L38.58 240.04L38.61 240.83L38.64 241.61L38.68 242.39L38.72 243.18L38.76 243.96L38.81 244.74L38.86 245.52L38.91 246.3L38.97 247.09L39.03 247.87L39.09 248.65L39.15 249.43L39.22 250.21L39.29 250.99L39.37 251.77L39.44 252.55L39.53 253.33L39.61 254.11L39.7 254.89L39.88 256.45L39.98 257.22L40.07 258L40.18 258.78L40.28 259.56L40.39 260.33L40.5 261.11L40.62 261.88L40.74 262.66L40.86 263.43L40.98 264.21L41.11 264.98L41.24 265.76L41.37 266.53L41.84 268.37L42.32 270.2L42.8 272.03L43.3 273.86L43.81 275.69L44.87 279.33L45.41 281.14L45.97 282.95L46.54 284.76L47.11 286.56L47.7 288.36L48.3 290.16L49.54 293.74L50.17 295.52L51.47 299.08L52.14 300.85L52.82 302.61L53.51 304.38L54.21 306.14L54.92 307.89L55.64 309.64L56.37 311.39L57.11 313.13L57.87 314.86L58.63 316.6L59.41 318.32L60.2 320.05L60.99 321.76L61.8 323.48L62.62 325.19L63.45 326.89L64.29 328.59L65.14 330.28L66 331.97L66.87 333.65L67.76 335.33L68.65 337L69.82 338.84L71.02 340.67L72.23 342.48L73.47 344.28L74.72 346.06L75.99 347.83L77.28 349.58L78.59 351.31L79.92 353.04L81.27 354.74L82.63 356.43L84.02 358.11L85.42 359.77L86.84 361.41L88.28 363.03L89.73 364.64L91.21 366.24L92.7 367.81L94.21 369.37L95.73 370.92L97.28 372.44L98.84 373.95L100.41 375.44L102.01 376.92L103.62 378.37L105.24 379.81L106.89 381.23L108.54 382.64L110.22 384.02L111.91 385.39L113.62 386.73L115.34 388.06L117.07 389.37L118.83 390.66L120.59 391.93L122.38 393.19L124.17 394.42L125.98 395.63L127.81 396.83L129.65 398L136.54 402.15L143.52 405.98L150.6 409.5L157.77 412.7L165 415.6L172.31 418.19L179.67 420.47L187.09 422.45L194.54 424.12L202.02 425.5L209.53 426.58L217.06 427.36L224.59 427.85L232.11 428.04L239.63 427.95L247.12 427.57L254.59 426.9L262.02 425.94L269.4 424.71L276.73 423.19L284 421.4L291.19 419.33L298.31 416.98L305.33 414.36L312.26 411.47L319.08 408.32L325.79 404.89L332.37 401.2L338.82 397.25L345.13 393.04L351.28 388.57L357.28 383.84L363.12 378.86L368.78 373.62L374.25 368.13L379.53 362.4L384.61 356.41L389.48 350.19L394.13 343.71L398.55 337L399.44 335.33L400.33 333.65L401.2 331.97L402.06 330.28L402.91 328.59L403.75 326.89L404.58 325.19L405.4 323.48L406.21 321.76L407.01 320.05L407.79 318.32L408.57 316.6L409.33 314.86L410.09 313.13L410.83 311.39L411.56 309.64L412.28 307.89L412.99 306.14L413.69 304.38L414.38 302.61L415.06 300.85L415.73 299.08L417.03 295.52L417.66 293.74L418.9 290.16L419.5 288.36L420.09 286.56L420.66 284.76L421.23 282.95L421.79 281.14L422.33 279.33L422.86 277.51L423.39 275.69L423.9 273.86L424.4 272.03L425.36 268.37L425.83 266.53L425.96 265.76L426.09 265L426.22 264.23L426.34 263.47L426.58 261.93L426.7 261.16L426.81 260.4L426.92 259.63L427.02 258.86L427.13 258.09L427.23 257.32L427.32 256.55L427.42 255.78L427.51 255.01L427.6 254.24L427.68 253.47L427.76 252.7L427.84 251.92L427.91 251.15L427.99 250.38L428.06 249.61L428.12 248.83L428.18 248.06L428.24 247.29L428.3 246.51L428.35 245.74L428.4 244.96L428.45 244.19L428.5 243.41L428.54 242.64L428.58 241.86L428.61 241.09L428.64 240.31L428.67 239.54L428.7 238.76L428.72 237.99L428.74 237.21L428.76 236.43L428.77 235.66L428.73 227.65L428.37 219.71L427.69 211.86L426.7 204.1L425.41 196.44L423.83 188.88L421.95 181.43L419.79 174.1L417.35 166.88L414.64 159.8L411.67 152.85L408.43 146.04L404.94 139.38L401.21 132.87L397.23 126.52L393.02 120.34L388.58 114.33L383.91 108.51L379.03 102.86L373.94 97.41L368.64 92.16L363.15 87.11L357.46 82.27L351.59 77.65L345.54 73.25L339.32 69.08L332.93 65.15L326.37 61.46L319.67 58.02L312.81 54.84L305.81 51.91L298.67 49.26L291.41 46.88L284.02 44.78L276.51 42.96L268.89 41.44L261.16 40.22L253.34 39.31L245.42 38.71L237.41 38.42L236.86 38.42L236.77 38.41L236.03 38.41L235.94 38.4L234.75 38.4L234.65 38.39L233.74 38.39L229.95 38.44Z" id="cK3JdSCtb" opacity="1" fill="#ff0000" fill-opacity="0.95"/>
|
|
13
|
+
<use xlink:href="#cK3JdSCtb" x="3" y="3"/>
|
|
14
|
+
</g>
|
|
15
|
+
<g><use xlink:href="#b2ulsaMbi" x="3" y="3"/></g>
|
|
16
|
+
</g>
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" preserveAspectRatio="xMidYMid meet" width="390" height="480" dy="-25">
|
|
2
|
+
<defs>
|
|
3
|
+
<path d="M198.73 15.65L205.56 16.33L212.31 17.27L218.96 18.47L225.53 19.92L232 21.61L238.37 23.55L244.62 25.73L250.76 28.13L256.78 30.76L262.67 33.61L268.44 36.68L274.06 39.95L279.55 43.42L284.88 47.1L290.06 50.96L295.09 55.01L299.95 59.25L304.64 63.66L309.16 68.24L313.49 72.99L317.64 77.91L321.6 82.97L325.35 88.18L328.91 93.54L332.26 99.04L335.4 104.67L338.31 110.43L341 116.32L343.46 122.31L345.69 128.43L347.67 134.64L349.41 140.96L350.89 147.38L352.12 153.89L353.08 160.48L353.78 167.16L354.2 173.9L354.34 180.72L354.25 186.06L354 191.35L353.57 196.61L352.98 201.82L352.23 206.99L351.31 212.12L350.23 217.19L348.99 222.22L347.61 227.19L346.06 232.09L344.37 236.94L342.53 241.72L340.54 246.43L338.4 251.08L336.12 255.65L333.71 260.14L331.15 264.56L328.47 268.89L325.64 273.14L322.69 277.3L319.6 281.37L316.39 285.35L313.05 289.23L309.6 293.01L306.01 296.68L302.31 300.26L298.5 303.72L294.58 307.07L290.54 310.31L286.39 313.43L282.14 316.43L277.77 319.31L273.31 322.06L268.75 324.68L264.08 327.17L259.32 329.52L254.47 331.74L249.52 333.82L244.49 335.76L239.36 337.54L184.85 435.56L130.34 337.54L125.21 335.76L120.18 333.82L115.23 331.75L110.38 329.53L105.62 327.17L100.95 324.68L96.39 322.06L91.93 319.31L87.56 316.44L83.31 313.43L79.16 310.31L75.12 307.07L71.2 303.72L67.39 300.26L63.69 296.69L60.1 293.01L56.65 289.23L53.31 285.36L50.1 281.38L47.02 277.31L44.06 273.14L41.23 268.9L38.55 264.56L35.99 260.15L33.58 255.66L31.3 251.08L29.16 246.44L27.17 241.72L25.33 236.94L23.64 232.09L22.09 227.19L20.71 222.22L19.47 217.19L18.39 212.12L17.47 206.99L16.72 201.82L16.13 196.61L15.7 191.35L15.45 186.06L15.36 180.72L15.5 173.9L15.92 167.16L16.62 160.48L17.58 153.89L18.81 147.38L20.29 140.96L22.03 134.64L24.01 128.43L26.24 122.31L28.7 116.32L31.39 110.43L34.3 104.67L37.44 99.04L40.79 93.54L44.35 88.18L48.1 82.97L52.06 77.91L56.21 72.99L60.54 68.24L65.06 63.66L69.75 59.25L74.61 55.01L79.64 50.96L84.82 47.1L90.15 43.42L95.64 39.95L101.26 36.68L107.03 33.61L112.92 30.76L118.94 28.13L125.08 25.73L131.33 23.55L137.7 21.61L144.17 19.92L150.74 18.47L157.39 17.27L164.14 16.33L170.97 15.65L177.87 15.23L184.85 15.1L191.83 15.23L198.73 15.65ZM172.07 28.74L165.78 29.37L159.57 30.23L153.44 31.34L147.4 32.68L141.44 34.24L135.59 36.02L129.83 38.02L124.17 40.24L118.63 42.66L113.21 45.28L107.9 48.1L102.72 51.12L97.68 54.32L92.76 57.7L87.99 61.26L83.37 64.99L78.9 68.89L74.58 72.95L70.42 77.17L66.43 81.54L62.61 86.06L58.97 90.73L55.51 95.52L52.24 100.46L49.15 105.52L46.27 110.71L43.58 116.01L41.11 121.43L38.84 126.95L36.8 132.58L34.97 138.3L33.37 144.12L32 150.03L30.88 156.02L29.99 162.09L29.35 168.23L28.96 174.45L28.83 180.72L28.91 185.69L29.15 190.63L29.56 195.53L30.11 200.39L30.82 205.2L31.69 209.98L32.71 214.71L33.87 219.39L35.18 224.01L36.63 228.58L38.23 233.09L39.97 237.54L41.85 241.92L43.86 246.24L46 250.49L48.28 254.66L50.69 258.76L53.22 262.78L55.88 266.73L58.66 270.59L61.57 274.36L64.6 278.04L67.74 281.63L71 285.13L74.36 288.52L77.84 291.82L81.43 295.01L85.13 298.1L88.93 301.08L92.83 303.95L96.84 306.71L100.94 309.34L105.13 311.86L109.43 314.25L113.81 316.52L118.29 318.66L122.85 320.67L127.5 322.54L132.23 324.28L137.05 325.88L139.6 326.69L184.85 407.99L230.08 326.69L232.64 325.88L237.46 324.28L242.19 322.54L246.84 320.67L251.4 318.66L255.88 316.52L260.26 314.25L264.56 311.86L268.75 309.34L272.86 306.71L276.86 303.95L280.76 301.08L284.57 298.1L288.26 295.01L291.85 291.82L295.33 288.52L298.7 285.13L301.96 281.63L305.1 278.04L308.12 274.36L311.03 270.59L313.81 266.73L316.47 262.78L319 258.76L321.41 254.66L323.68 250.49L325.83 246.24L327.85 241.92L329.72 237.54L331.46 233.09L333.05 228.58L334.51 224.01L335.82 219.39L336.99 214.71L338 209.98L338.87 205.2L339.58 200.39L340.13 195.53L340.54 190.63L340.78 185.69L340.86 180.72L340.73 174.45L340.34 168.23L339.7 162.09L338.82 156.02L337.69 150.03L336.32 144.12L334.72 138.3L332.9 132.58L330.85 126.95L328.59 121.43L326.11 116.01L323.43 110.71L320.54 105.52L317.46 100.46L314.19 95.52L310.73 90.73L307.08 86.06L303.26 81.54L299.28 77.17L295.12 72.95L290.8 68.89L286.33 64.99L281.71 61.26L276.94 57.7L272.02 54.32L266.98 51.12L261.8 48.1L256.49 45.28L251.07 42.66L245.53 40.24L239.87 38.02L234.11 36.02L228.26 34.24L222.3 32.68L216.26 31.34L210.13 30.23L203.92 29.37L197.63 28.74L191.27 28.36L184.85 28.24L178.43 28.36L172.07 28.74Z" id="hag0Q75ZO" opacity="1" fill-opacity="0" stroke="#ff0000" stroke-width="30" stroke-opacity="1" />
|
|
4
|
+
|
|
5
|
+
</defs>
|
|
6
|
+
|
|
7
|
+
<g><use xlink:href="#hag0Q75ZO" x="9" y="7"/></g>
|
|
8
|
+
</svg>
|