Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6beab9433b | ||
|
|
e59e051961 | ||
|
|
6b3f703f94 | ||
|
|
d44a6756c1 | ||
|
|
6d10d92af2 | ||
|
|
a8aeb63c91 | ||
|
|
6f1feed265 | ||
|
|
e026c1e91f | ||
|
|
40e565d968 | ||
|
|
5162ef2e22 | ||
|
|
1923c37092 | ||
|
|
611570a863 | ||
|
|
99d7d0c769 | ||
|
|
e42b8cb97c | ||
|
|
ed336da304 | ||
|
|
bcf34d0ec8 | ||
|
|
21e9f38437 | ||
|
|
a55c9a5c6a | ||
|
|
041d2bd2d6 | ||
|
|
51c6f3fa31 | ||
|
|
83cbcac01b | ||
|
|
b1224ce9f6 | ||
|
|
a2367d3c04 | ||
|
|
45e0cbeca2 | ||
|
|
1eaabd6b25 | ||
|
|
4eb8491cfa | ||
|
|
b843f94068 | ||
|
|
f71e7aac9f | ||
|
|
945e3e3e8e | ||
|
|
59a89c5f88 | ||
|
|
78c2ded2aa | ||
|
|
6ba40bd5fb | ||
|
|
6005e89181 | ||
|
|
27bcb60580 | ||
|
|
93711fe060 | ||
|
|
363fdb7d10 | ||
|
|
92150fba71 | ||
|
|
c4c71cc838 | ||
|
|
8aada49414 | ||
|
|
496170b4e5 | ||
|
|
731152c75a | ||
|
|
2897325f36 | ||
|
|
8c0899d086 | ||
|
|
d5c73f4ba4 | ||
|
|
77487e4fc3 | ||
|
|
754f55b01b | ||
|
|
b68f7a78a7 | ||
|
|
6c36beb97f | ||
|
|
c231ae77e5 | ||
|
|
e5a76fcf44 | ||
|
|
d926a713b9 | ||
|
|
1a24ebfc19 | ||
|
|
6cf268ca93 | ||
|
|
214bef9d06 | ||
|
|
4646ce684f | ||
|
|
d2534d6fa0 | ||
|
|
3b7dc21ef0 | ||
|
|
0ecea8ffbb | ||
|
|
6741d6d7a9 | ||
|
|
feace0c7dc | ||
|
|
1ee3e14bd3 | ||
|
|
cdedd53339 | ||
|
|
e78b5fa6d6 | ||
|
|
3524e22761 | ||
|
|
10daab21a3 | ||
|
|
22eb6f7d8c | ||
|
|
d556c08def | ||
|
|
8acb2fe37e | ||
|
|
94acf60aef | ||
|
|
c892cf371b | ||
|
|
bfd30f3547 | ||
|
|
095a022033 | ||
|
|
4e34ab8e4f | ||
|
|
8825831106 | ||
|
|
5da5cbd6d8 | ||
|
|
08f540f417 | ||
|
|
1db1a892b4 | ||
|
|
7ff72879dd | ||
|
|
48d0c6b183 | ||
|
|
c051367d4b | ||
|
|
150526b1ff | ||
|
|
971e86d254 | ||
|
|
6847e19847 | ||
|
|
3a479d7ea6 | ||
|
|
9a6978902d | ||
|
|
6294ad9e76 | ||
|
|
2c938b2c19 | ||
|
|
03b7d9191b | ||
|
|
87c87ca3cb | ||
|
|
dfba40fee2 | ||
|
|
f576bedfaf | ||
|
|
4e61cc811e | ||
|
|
c9c6a5a762 | ||
|
|
e797ad1b9f | ||
|
|
a50141fcbf | ||
|
|
852151f836 | ||
|
|
e5807e5a8c | ||
|
|
87a26d5da0 | ||
|
|
30cbfe2154 | ||
|
|
4bbf7c2ed2 | ||
|
|
7a8c1e8f5d | ||
|
|
7bb5202bdb | ||
|
|
082206a7db | ||
|
|
360a819e91 | ||
|
|
adbef787c3 | ||
|
|
685963b85d | ||
|
|
e614ed79f4 | ||
|
|
bb47cc87e7 | ||
|
|
6120736c91 | ||
|
|
7542b28793 | ||
|
|
4d0cb32bd0 | ||
|
|
055a78bade | ||
|
|
fad52ea2fc |
No files matched your search
@@ -12,7 +12,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6, 3.7, 3.8]
|
||||
python-version: [3.6, 3.7, 3.8, 3.9]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
@@ -1,5 +1,62 @@
|
||||
# Change Log
|
||||
|
||||
## 2.2.25 14/09/2021
|
||||
|
||||
* Release web UI 2.2.25
|
||||
* Fix issue preventing to use custom nested symbols. Fixes #1969
|
||||
* Updated affinity symbols
|
||||
* Fix qemu-img rebase code to support Qemu 6.1. Ref https://github.com/GNS3/gns3-server/pull/1962
|
||||
* Reinstate qemu-img rebase
|
||||
* Return disk usage for partition that contains the default project directory. Fixes #1947
|
||||
* Explicitly require setuptools, utils/get_resource.py imports pkg_resources
|
||||
|
||||
## 2.2.24 25/08/2021
|
||||
|
||||
* Release web UI 2.2.24
|
||||
* Fix issue when searching for image with relative path. Fixes #1925
|
||||
* Fix wrong error when NAT interface is not allowed. Fixes #1943
|
||||
* Fix incorrect Qemu binary selected when importing template. Fixes https://github.com/GNS3/gns3-gui/issues/3216
|
||||
* Fix error when updating a link style. Fixes https://github.com/GNS3/gns3-gui/issues/2461
|
||||
* Some fixes for early support for Python3.10 The loop parameter has been removed from most of asyncio‘s high-level API following deprecation in Python 3.8.
|
||||
* Early support for Python3.10 Fixes #1940
|
||||
* Bump pywin32 from 300 to 301
|
||||
|
||||
## 2.2.23 05/08/2021
|
||||
|
||||
* Release web UI 2.2.23
|
||||
* Fix hostname inconsistencies during script execution
|
||||
* Add option `--without-kvm`
|
||||
* Add a `reload` server endpoint. Fixes #1926
|
||||
* Handle -no-kvm param deprecated in Qemu >= v5.2
|
||||
* Fix binary websocket access to the console
|
||||
* Change how to generate random MAC addresses
|
||||
* setup.py: prevent installing tests directory
|
||||
* Support cloning of encrypted qcow2 base image files
|
||||
* Fix VMware VM support on Linux and Windows. Fixes #1919
|
||||
|
||||
## 2.2.22 10/06/2021
|
||||
|
||||
* Fix VMware support on macOS BigSur
|
||||
* Link style support. Fixes https://github.com/GNS3/gns3-gui/issues/2461
|
||||
* Release web UI version 2.2.22
|
||||
* Preserve auto_start/auto_open/auto_close when restoring snapshot
|
||||
* Fix uBridge errors for cloud nodes not visible in logs. Fixes #1895
|
||||
* Prevent directory traversal. Fixes #1894
|
||||
|
||||
## 2.2.21 10/05/2021
|
||||
|
||||
* Release Web-Ui v2.2.21
|
||||
* Improvements for get symbol dimensions endpoint. Ref #1885
|
||||
|
||||
## 2.2.20 09/04/2021
|
||||
|
||||
* Release Web UI version 2.2.20
|
||||
* Fix packet capture with HTTPS remote server. Fixes #1882
|
||||
* Sync appliance files and remove old ones after sync with online repo. Fixes #1876
|
||||
* Upgrade dependencies
|
||||
* Fix export for missing files
|
||||
* Fix issue when trying to export temporary Dynamips files.
|
||||
|
||||
## 2.2.19 05/03/2021
|
||||
|
||||
* Launch projects marked for auto open after SIGHUP is received
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
-rrequirements.txt
|
||||
|
||||
pytest==5.4.3
|
||||
flake8==3.8.3
|
||||
pytest-timeout==1.4.1
|
||||
pytest==6.2.4
|
||||
flake8==3.9.2
|
||||
pytest-timeout==1.4.2
|
||||
pytest-aiohttp==0.3.0
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"name": "6WIND Turbo Router",
|
||||
"category": "router",
|
||||
"description": "6WIND Turbo Router is a high performance, ready-to-use software virtual router. It can be deployed bare metal or in virtual machines on commercial-off-the-shelf (COTS) servers. It is a carrier-grade solution for Service Prodivers aiming at using white boxes to deploy network functions. Typical use-cases are transit/peering router, IPsec VPN gateway and CGNAT.",
|
||||
"vendor_name": "6WIND",
|
||||
"vendor_url": "https://www.6wind.com/",
|
||||
"documentation_url": "https://doc.6wind.com/turbo-router-3/latest/turbo-router/",
|
||||
"product_name": "6WIND Turbo Router",
|
||||
"product_url": "https://www.6wind.com/vrouter-solutions/turbo-router/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Default username / password is admin / admin.",
|
||||
"symbol": "6wind.svg",
|
||||
"port_name_format": "eth{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 8,
|
||||
"ram": 4096,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "c",
|
||||
"kvm": "require",
|
||||
"options": "-cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "6wind-vrouter-tr-ae-x86_64-v3.1.4.m1.qcow2",
|
||||
"version": "3.1.4.m1",
|
||||
"md5sum": "bc84b81fba4f2f01eda6a338469e37a5",
|
||||
"filesize": 693829632,
|
||||
"download_url": "https://portal.6wind.com/register.php?utm_campaign=GNS3-2021-EVAL"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "3.1.4.m1",
|
||||
"images": {
|
||||
"hda_disk_image": "6wind-vrouter-tr-ae-x86_64-v3.1.4.m1.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
{
|
||||
"name": "Raspian",
|
||||
"category": "guest",
|
||||
"description": "Raspberry Pi Desktop comes pre-installed with plenty of software for education, programming and general use; including Python, Scratch, Sonic Pi, Java, and more. Appliance created to demonstrate new_appliance.py - read more at https://nextpertise.net.",
|
||||
"vendor_name": "Raspberry Pi Foundation",
|
||||
"vendor_url": "https://www.raspberrypi.org",
|
||||
"product_name": "Raspberry Pi Desktop",
|
||||
"product_url": "https://www.raspberrypi.org/downloads/raspberry-pi-desktop/",
|
||||
"registry_version": 3,
|
||||
"status": "stable",
|
||||
"availability": "free",
|
||||
"maintainer": "Brent Stewart",
|
||||
"maintainer_email": "brent@stewart.tc",
|
||||
"usage": "Default password is raspberry",
|
||||
"symbol": "rpi.png",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio",
|
||||
"adapters": 1,
|
||||
"ram": 1024,
|
||||
"hda_disk_interface": "sata",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"kvm": "disable"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "2020-02-12-rpd-x86-buster.iso",
|
||||
"version": "2020-02-12",
|
||||
"md5sum": "98f34fb53086752b4c9c452094f30740",
|
||||
"filesize": 3128147968,
|
||||
"download_url": "https://www.raspberrypi.org/downloads/raspberry-pi-desktop/"
|
||||
},
|
||||
{
|
||||
"filename": "empty8G.qcow2",
|
||||
"version": "1",
|
||||
"md5sum": "f1d2c25b6990f99bd05b433ab603bdb4",
|
||||
"filesize": 197120,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty8G.qcow2/download"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2020-02-12",
|
||||
"images": {
|
||||
"hda_disk_image": "empty8G.qcow2",
|
||||
"cdrom_image": "2020-02-12-rpd-x86-buster.iso"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -27,10 +27,10 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vEOS-lab-4.25.0F.vmdk",
|
||||
"version": "4.25.0F",
|
||||
"md5sum": "d420763fdf3bc50e7e5b88418bd9d1fd",
|
||||
"filesize": 468779008,
|
||||
"filename": "vEOS-lab-4.25.3M.vmdk",
|
||||
"version": "4.25.3M",
|
||||
"md5sum": "2f196969036b4d283e86f15118d59c26",
|
||||
"filesize": 451543040,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
@@ -211,10 +211,10 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "4.25.0F",
|
||||
"name": "4.25.3M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.25.0F.vmdk"
|
||||
"hdb_disk_image": "vEOS-lab-4.25.3M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -23,12 +23,19 @@
|
||||
"hdb_disk_interface": "ide",
|
||||
"hdc_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-nographic",
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20201110192651.vmdk",
|
||||
"version": "10.06.0001",
|
||||
"md5sum": "f8b45bc52f6bad79b5ff563e0c1ea73b",
|
||||
"filesize": 380304896,
|
||||
"download_url": "https://asp.arubanetworks.com/"
|
||||
},
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20200311173823.vmdk",
|
||||
"version": "10.04.1000",
|
||||
@@ -45,6 +52,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "10.06.0001",
|
||||
"images": {
|
||||
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20201110192651.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.04.1000",
|
||||
"images": {
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"vendor_name": "HPE Aruba",
|
||||
"vendor_url": "arubanetworks.com",
|
||||
"documentation_url": "https://asp.arubanetworks.com/downloads;products=Aruba%20SD-WAN",
|
||||
"product_url": "https://www.arubanetworks.com/products/networking/gateways-and-controllers/",
|
||||
"product_name": "Aruba SD-WAN Virtual Gateway",
|
||||
"product_url": "https://www.arubanetworks.com/products/networking/gateways-and-controllers/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"console_type": "telnet",
|
||||
"kernel_command_line": "ide_generic.probe_mask=0x01 ide_core.chs=0.0:980,16,32 auto nousb console=ttyS0,9600 bigphysarea=65536 ide1=noprobe no-hlt",
|
||||
"kvm": "disable",
|
||||
"options": "-no-kvm -icount auto -hdachs 980,16,32",
|
||||
"options": "-machine accel=tcg -icount auto -hdachs 980,16,32",
|
||||
"cpu_throttling": 80,
|
||||
"process_priority": "low"
|
||||
},
|
||||
|
||||
@@ -25,6 +25,20 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "asav9-15-1.qcow2",
|
||||
"version": "9.15.1",
|
||||
"md5sum": "4e8747667f52e9046979f126128a61d1",
|
||||
"filesize": 252444672,
|
||||
"download_url": "https://software.cisco.com/download/home/286119613/type/280775065/release/9.15.1"
|
||||
},
|
||||
{
|
||||
"filename": "asav9-14-1.qcow2",
|
||||
"version": "9.14.1",
|
||||
"md5sum": "03d89e18e7f8ad00fe8e979c4790587d",
|
||||
"filesize": 211877888,
|
||||
"download_url": "https://software.cisco.com/download/home/286119613/type/280775065/release/9.14.1"
|
||||
},
|
||||
{
|
||||
"filename": "asav9-12-2-9.qcow2",
|
||||
"version": "9.12.2-9",
|
||||
@@ -90,6 +104,18 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.15.1",
|
||||
"images": {
|
||||
"hda_disk_image": "asav9-15-1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.14.1",
|
||||
"images": {
|
||||
"hda_disk_image": "asav9-14-1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.12.2-9",
|
||||
"images": {
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "Cisco Catalyst 8000V",
|
||||
"category": "router",
|
||||
"description": "The Cisco Catalyst 8000V Edge Software is a virtual, form-factor router deployed on a virtual machine (VM) running on an x86 server hardware.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://www.cisco.com/c/en/us/td/docs/routers/C8000V/Configuration/c8000v-installation-configuration-guide.html",
|
||||
"product_name": "c8000v",
|
||||
"product_url": "https://www.cisco.com/c/en/us/support/routers/catalyst-8000v-edge-software/series.html",
|
||||
"registry_version": 3,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "There is no default password and enable password. A default configuration is present.",
|
||||
"port_name_format": "Gi{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "vmxnet3",
|
||||
"adapters": 4,
|
||||
"ram": 4096,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.04.01a.qcow2",
|
||||
"version": "17.04.01a 8G",
|
||||
"md5sum": "5c1dd1d3757ea43b5b02e0af7a010525",
|
||||
"filesize": 1623130112,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Bengaluru-17.4.1a"
|
||||
},
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.04.01b.qcow2",
|
||||
"version": "17.04.01b 8G",
|
||||
"md5sum": "84aebb7f5f38bdd4df8e7607643027be",
|
||||
"filesize": 1623130112,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Bengaluru-17.4.1b"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.04.01a 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.04.01a.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.04.01b 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.04.01b.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -31,6 +31,20 @@
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m3.qcow2",
|
||||
"version": "15.9(3)M3",
|
||||
"md5sum": "12893843af18e4c62f13d07266755653",
|
||||
"filesize": 57296384,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m2.qcow2",
|
||||
"version": "15.9(3)M2",
|
||||
"md5sum": "a19e998bc3086825c751d125af722329",
|
||||
"filesize": 57308672,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.158-3.m2.qcow2",
|
||||
"version": "15.8(3)M2",
|
||||
@@ -68,6 +82,20 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "15.9(3)M3",
|
||||
"images": {
|
||||
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m3.qcow2",
|
||||
"hdb_disk_image": "IOSv_startup_config.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.9(3)M2",
|
||||
"images": {
|
||||
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m2.qcow2",
|
||||
"hdb_disk_image": "IOSv_startup_config.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.8(3)M2",
|
||||
"images": {
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vios_l2-adventerprisek9-m.ssa.high_iron_20200929.qcow2",
|
||||
"version": "15.2(20200924:215240)",
|
||||
"md5sum": "99ecab32de12410c533e6abd4e9710aa",
|
||||
"filesize": 90409984,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "vios_l2-adventerprisek9-m.ssa.high_iron_20190423.qcow2",
|
||||
"version": "15.2(6.0.81)E",
|
||||
"md5sum": "71cacb678f98a106f99e889b97b34686",
|
||||
"filesize": 44950016,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "vios_l2-adventerprisek9-m.SSA.high_iron_20180619.qcow2",
|
||||
"version": "15.2.1",
|
||||
@@ -46,6 +60,18 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "15.2(20200924:215240)",
|
||||
"images": {
|
||||
"hda_disk_image": "vios_l2-adventerprisek9-m.ssa.high_iron_20200929.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.2(6.0.81)E",
|
||||
"images": {
|
||||
"hda_disk_image": "vios_l2-adventerprisek9-m.ssa.high_iron_20190423.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.2.1",
|
||||
"images": {
|
||||
|
||||
@@ -25,6 +25,20 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "nexus9500v64.10.1.1.qcow2",
|
||||
"version": "9500v 10.1.1",
|
||||
"md5sum": "35672370b0f43e725d5b2d92488524f0",
|
||||
"filesize": 1592000512,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.7.qcow2",
|
||||
"version": "9500v 9.3.7",
|
||||
"md5sum": "65f669e0dd379a05a8cdbb9d7592a064",
|
||||
"filesize": 1986068480,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(7)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.3.qcow2",
|
||||
"version": "9500v 9.3.3",
|
||||
@@ -148,6 +162,20 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9500v 10.1.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-20160813.fd",
|
||||
"hda_disk_image": "nexus9500v64.10.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.7",
|
||||
"images": {
|
||||
"bios_image": "OVMF-20160813.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.7.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.3",
|
||||
"images": {
|
||||
|
||||
@@ -11,19 +11,27 @@
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Default username is cumulus and password is CumulusLinux!",
|
||||
"usage": "Default username is cumulus and password is CumulusLinux! in version 4.1 and earlier, and cumulus in version 4.2 and later.",
|
||||
"first_port_name": "eth0",
|
||||
"port_name_format": "swp{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 7,
|
||||
"ram": 512,
|
||||
"ram": 768,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "cumulus-linux-4.3.0-vx-amd64-qemu.qcow2",
|
||||
"version": "4.3.0",
|
||||
"md5sum": "aba2f0bb462b26a208afb6202bc97d51",
|
||||
"filesize": 2819325952,
|
||||
"download_url": "https://cumulusnetworks.com/cumulus-vx/download/",
|
||||
"direct_download_url": "https://d2cd9e7ca6hntp.cloudfront.net/public/CumulusLinux-4.3.0/cumulus-linux-4.3.0-vx-amd64-qemu.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "cumulus-linux-4.2.0-vx-amd64-qemu.qcow2",
|
||||
"version": "4.2.0",
|
||||
@@ -222,6 +230,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "4.3.0",
|
||||
"images": {
|
||||
"hda_disk_image": "cumulus-linux-4.3.0-vx-amd64-qemu.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.2.0",
|
||||
"images": {
|
||||
|
||||
@@ -11,29 +11,29 @@
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Default username/password is vyatta/vyatta. DANOS will live boot and drop into a shell. DANOS can then be installed inside the VM by typing install image. Defaults to using a telnet console, but the vnc console can provide additional help if it's not booting.",
|
||||
"usage": "Default username / password is tmpuser / tmppwd. DANOS will live boot and drop into a shell. DANOS can then be installed inside the VM by typing install image. Defaults to using a telnet console, but the vnc console can provide additional help if it's not booting.",
|
||||
"symbol": ":/symbols/affinity/circle/gray/router_cloud.svg",
|
||||
"port_name_format": "dp0p{1}s{0}",
|
||||
"port_name_format": "dp0s{3}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 3,
|
||||
"adapters": 8,
|
||||
"ram": 4096,
|
||||
"cpus": 2,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "dc",
|
||||
"kvm": "allow",
|
||||
"boot_priority": "cd",
|
||||
"kvm": "require",
|
||||
"options": "-cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "danos-1908-amd64-vrouter.iso",
|
||||
"version": "1908",
|
||||
"md5sum": "e850b6aa2859de1075c11b9149fa50f4",
|
||||
"filesize": 409993216,
|
||||
"download_url": "https://danosproject.atlassian.net/wiki/spaces/DAN/pages/753667/DANOS+1908",
|
||||
"direct_download_url": "http://repos.danosproject.org.s3-website-us-west-1.amazonaws.com/images/danos-1908-amd64-vrouter.iso"
|
||||
"filename": "danos-2012-base-amd64.iso",
|
||||
"version": "2012",
|
||||
"md5sum": "fb7a60dc9afecdb274464832b3ab1ccb",
|
||||
"filesize": 441450496,
|
||||
"download_url": "https://danosproject.atlassian.net/wiki/spaces/DAN/pages/892141595/DANOS+2012",
|
||||
"direct_download_url": "https://s3-us-west-1.amazonaws.com/2012.repos.danosproject.org/2012/iso/danos-2012-base-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "empty8G.qcow2",
|
||||
@@ -46,10 +46,10 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "1908",
|
||||
"name": "2012",
|
||||
"images": {
|
||||
"hda_disk_image": "empty8G.qcow2",
|
||||
"cdrom_image": "danos-1908-amd64-vrouter.iso"
|
||||
"cdrom_image": "danos-2012-base-amd64.iso"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"options": "-cpu core2duo"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
{
|
||||
"filename": "EXOS-VM_v31.1.1.3.qcow2",
|
||||
"version": "31.1.1.3",
|
||||
"md5sum": "e4936ad94a5304bfeeca8dfc6f285cc0",
|
||||
|
||||
@@ -26,19 +26,26 @@
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "VOSSGNS3.8.4.0.0.qcow2",
|
||||
"version": "v8.4.0.0",
|
||||
"md5sum": "f457e7da3c1dec50670624c421333ef3",
|
||||
"filesize": 386203648,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/VOSSGNS3.8.4.0.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "VOSSGNS3.8.3.0.0.qcow2",
|
||||
"version": "v8.3.0.0",
|
||||
"md5sum": "e1c789e439c5951728e349cf44690230",
|
||||
"filesize": 384696320,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/VOSSGNS3.8.3.0.0.qcow2"
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/VOSSGNS3.8.3.0.0.qcow2"
|
||||
},
|
||||
{
|
||||
{
|
||||
"filename": "VOSSGNS3.8.2.0.0.qcow2",
|
||||
"version": "v8.2.0.0",
|
||||
"md5sum": "9a0cd77c08644abbf3a69771c125c011",
|
||||
"filesize": 331808768,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/VOSSGNS3.8.2.0.0.qcow2"
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/VOSSGNS3.8.2.0.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "VOSSGNS3.8.1.5.0.qcow2",
|
||||
@@ -70,18 +77,24 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "v8.4.0.0",
|
||||
"images": {
|
||||
"hda_disk_image": "VOSSGNS3.8.4.0.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v8.3.0.0",
|
||||
"images": {
|
||||
"hda_disk_image": "VOSSGNS3.8.3.0.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
},
|
||||
{
|
||||
"name": "v8.2.0.0",
|
||||
"images": {
|
||||
"hda_disk_image": "VOSSGNS3.8.2.0.0.qcow2"
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "8.1.5.0",
|
||||
"images": {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 4,
|
||||
"ram": 1024,
|
||||
"ram": 4096,
|
||||
"hda_disk_interface": "virtio",
|
||||
"hdb_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
@@ -26,6 +26,13 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.5",
|
||||
"md5sum": "e220b48c6e86f8ddc660d578295051a9",
|
||||
"filesize": 152698880,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.2.2",
|
||||
@@ -169,6 +176,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "6.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.2",
|
||||
"images": {
|
||||
|
||||
@@ -26,6 +26,13 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v6-build1828-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.5",
|
||||
"md5sum": "dc064e16fa65461183544d8ddb5d19d9",
|
||||
"filesize": 36175872,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v6-build1010-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.2.2",
|
||||
@@ -246,6 +253,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "6.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v6-build1828-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.2",
|
||||
"images": {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 4,
|
||||
"ram": 1024,
|
||||
"ram": 2048,
|
||||
"hda_disk_interface": "virtio",
|
||||
"hdb_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
@@ -26,6 +26,20 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.5",
|
||||
"md5sum": "bd2791984b03f55a6825297e83c6576a",
|
||||
"filesize": 117014528,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build2253-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.4",
|
||||
"md5sum": "3554a47fde2dc91d17eec16fd0dc10a3",
|
||||
"filesize": 116621312,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.2.2",
|
||||
@@ -162,6 +176,20 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "6.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build2253-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.2",
|
||||
"images": {
|
||||
|
||||
@@ -21,6 +21,14 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "frr-7.5.1.qcow2",
|
||||
"version": "7.5.1",
|
||||
"md5sum": "4b3ca0932a396b282ba35f102be1ed3b",
|
||||
"filesize": 51169280,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/frr-7.5.1.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "frr-7.3.1.qcow2",
|
||||
"version": "7.3.1",
|
||||
@@ -31,6 +39,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.5.1",
|
||||
"images": {
|
||||
"hda_disk_image": "frr-7.5.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.3.1",
|
||||
"images": {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"vendor_url": "https://www.huawei.com",
|
||||
"product_name": "HuaWei AR1000v",
|
||||
"product_url": "https://support.huawei.com/enterprise/en/routers/ar1000v-pid-21768212",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "none",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"vendor_name": "HuaWei",
|
||||
"vendor_url": "https://www.huawei.com",
|
||||
"product_name": "HuaWei CE12800",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "none",
|
||||
@@ -33,10 +33,10 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "V200R005C10SPC607B607",
|
||||
"images": {
|
||||
"hda_disk_image": "ce12800-V200R005C10SPC607B607.qcow2"
|
||||
},
|
||||
"name": "V200R005C10SPC607B607"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
"vendor_url": "https://www.huawei.com",
|
||||
"product_name": "HuaWei NE40E",
|
||||
"product_url": "https://e.huawei.com/en/products/enterprise-networking/routers/ne/ne40e",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "none",
|
||||
@@ -35,10 +35,10 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "V800R011C00SPC607B607",
|
||||
"images": {
|
||||
"hda_disk_image": "ne40e-V800R011C00SPC607B607.qcow2"
|
||||
},
|
||||
"name": "V800R011C00SPC607B607"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
"vendor_url": "https://www.huawei.com",
|
||||
"product_name": "HuaWei USG6000v",
|
||||
"product_url": "https://e.huawei.com/en/products/enterprise-networking/security/firewall-gateway/usg6000v",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "none",
|
||||
|
||||
@@ -23,101 +23,109 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "kali-linux-2021.1-live-amd64.iso",
|
||||
"version": "2021.1",
|
||||
"md5sum": "3a3716fef866e5c29a1c1ccfc94264b5",
|
||||
"filesize": 3591385088,
|
||||
"download_url": "http://cdimage.kali.org/kali-2021.1/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2021.1/kali-linux-2021.1-live-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2019.3-amd64.iso",
|
||||
"version": "2019.3",
|
||||
"md5sum": "9c6fb00558f78ed06992d89f745ef975",
|
||||
"filesize": 3037736960,
|
||||
"download_url": "https://www.kali.org/downloads/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2019.3/kali-linux-2019.3-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.3",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.3/kali-linux-2019.3-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2019.2-amd64.iso",
|
||||
"version": "2019.2",
|
||||
"md5sum": "0f89b6225d7ea9c18682f7cc541c1179",
|
||||
"filesize": 3353227264,
|
||||
"download_url": "https://www.kali.org/downloads/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2019.2/kali-linux-2019.2-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.2",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.2/kali-linux-2019.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-mate-2019.2-amd64.iso",
|
||||
"version": "2019.2 (MATE)",
|
||||
"md5sum": "fec8dd7009f932c51a74323df965a709",
|
||||
"filesize": 3313217536,
|
||||
"download_url": "https://www.kali.org/downloads/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2019.2/kali-linux-mate-2019.2-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.2",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.2/kali-linux-mate-2019.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2019.1a-amd64.iso",
|
||||
"version": "2019.1a",
|
||||
"md5sum": "58c6111ed0be1919ea87267e7e65ab0f",
|
||||
"filesize": 3483873280,
|
||||
"download_url": "https://www.kali.org/downloads/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2019.1a/kali-linux-2019.1a-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.1a",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.1a/kali-linux-2019.1a-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2018.4-amd64.iso",
|
||||
"version": "2018.4",
|
||||
"md5sum": "1b2d598bb8d2003e6207c119c0ba42fe",
|
||||
"filesize": 3139436544,
|
||||
"download_url": "https://www.kali.org/downloads/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2018.4/kali-linux-2018.4-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2018.4",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.4/kali-linux-2018.4-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2018.3a-amd64.iso",
|
||||
"version": "2018.3a",
|
||||
"md5sum": "2da675d016bd690c05e180e33aa98b94",
|
||||
"filesize": 3192651776,
|
||||
"download_url": "https://www.kali.org/downloads/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2018.3a/kali-linux-2018.3a-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2018.3a",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.3a/kali-linux-2018.3a-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2018.1-amd64.iso",
|
||||
"version": "2018.1",
|
||||
"md5sum": "a3feb90df5b71b3c7f4a02bdddf221d7",
|
||||
"filesize": 3028500480,
|
||||
"download_url": "https://www.kali.org/downloads/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2018.1/kali-linux-2018.1-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2018.1",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.1/kali-linux-2018.1-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2017.3-amd64.iso",
|
||||
"version": "2017.3",
|
||||
"md5sum": "b465580c897e94675ac1daf031fa66b9",
|
||||
"filesize": 2886402048,
|
||||
"download_url": "http://cdimage.kali.org/kali-2017.3/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2017.3/kali-linux-2017.3-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2017.3/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.3/kali-linux-2017.3-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2017.2-amd64.iso",
|
||||
"version": "2017.2",
|
||||
"md5sum": "541654f8f818450dc0db866a0a0f6eec",
|
||||
"filesize": 3020619776,
|
||||
"download_url": "http://cdimage.kali.org/kali-2017.2/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2017.2/kali-linux-2017.2-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2017.2/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.2/kali-linux-2017.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2017.1-amd64.iso",
|
||||
"version": "2017.1",
|
||||
"md5sum": "c8e742283929d7a12dbe7c58e398ff08",
|
||||
"filesize": 2794307584,
|
||||
"download_url": "http://cdimage.kali.org/kali-2017.1/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2017.1/kali-linux-2017.1-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2017.1/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.1/kali-linux-2017.1-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2016.2-amd64.iso",
|
||||
"version": "2016.2",
|
||||
"md5sum": "3d163746bc5148e61ad689d94bc263f9",
|
||||
"filesize": 3076767744,
|
||||
"download_url": "http://cdimage.kali.org/kali-2016.2/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2016.2/kali-linux-2016.2-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2016.2/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2016.2/kali-linux-2016.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2016.1-amd64.iso",
|
||||
"version": "2016.1",
|
||||
"md5sum": "2e1230dc14036935b3279dfe3e49ad39",
|
||||
"filesize": 2945482752,
|
||||
"download_url": "http://cdimage.kali.org/kali-2016.1/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2016.1/kali-linux-2016.1-amd64.iso"
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2016.1/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2016.1/kali-linux-2016.1-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2.0-amd64.iso",
|
||||
@@ -137,6 +145,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2021.1",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2021.1-live-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2019.3",
|
||||
"images": {
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "mcjoin",
|
||||
"category": "guest",
|
||||
"description": "mcjoin is a very simple and easy-to-use tool to test IPv4 and IPv6 multicast.",
|
||||
"vendor_name": "Joachim Nilsson",
|
||||
"vendor_url": "https://github.com/troglobit",
|
||||
"product_name": "mcjoin",
|
||||
"registry_version": 3,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"symbol": "linux_guest.svg",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
"image": "troglobit/mcjoin:latest",
|
||||
"console_type": "telnet"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"name": "Nokia vSIM",
|
||||
"category": "router",
|
||||
"description": "The Nokia Virtualized 7750 SR and 7950 XRS Simulator (vSIM) is a Virtualized Network Function (VNF) that simulates the control, management, and forwarding functions of a 7750 SR or 7950 XRS router. The vSIM runs the same Service Router Operating System (SR OS) as 7750 SR and 7950 XRS hardware-based routers and, therefore, has the same feature set and operational behavior as those platforms.",
|
||||
"vendor_name": "Nokia",
|
||||
"vendor_url": "https://www.nokia.com/networks/",
|
||||
"documentation_url": "https://documentation.nokia.com/",
|
||||
"product_name": "Nokia vSIM",
|
||||
"product_url": "https://www.nokia.com/networks/products/virtualized-service-router/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "Vinicius Rocha",
|
||||
"maintainer_email": "viniciusatr@gmail.com",
|
||||
"usage": "Login is admin and password is admin. \n\nWe are using one IOM with one MDA 12x100G (w/ breakout).\n\nYou must add your license: file vi cf3:license.txt",
|
||||
"first_port_name": "A/1",
|
||||
"port_name_format": "1/1/{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 13,
|
||||
"ram": 4096,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-nographic -smbios type=1,product=TIMOS:license-file=cf3:license.txt\\ slot=A\\ chassis=SR-1\\ card=cpm-1\\ mda/1=me12-100gb-qsfp28"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "sros-vsr-21.7.R1.qcow2",
|
||||
"version": "21.7.R1",
|
||||
"md5sum": "7eed38c01350ebaf9c6105e26ce5307e",
|
||||
"filesize": 568655872,
|
||||
"download_url": "https://customer.nokia.com/support/s/",
|
||||
"compression": "zip"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "21.7.R1",
|
||||
"images": {
|
||||
"hda_disk_image": "sros-vsr-21.7.R1.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -3,16 +3,18 @@
|
||||
"category": "guest",
|
||||
"description": "ntopng is the next generation version of the original ntop, a network traffic probe that shows the network usage, similar to what the popular top Unix command does. ntopng is based on libpcap and it has been written in a portable way in order to virtually run on every Unix platform, MacOSX and on Windows as well. ntopng users can use a a web browser to navigate through ntop (that acts as a web server) traffic information and get a dump of the network status. In the latter case, ntopng can be seen as a simple RMON-like agent with an embedded web interface.",
|
||||
"vendor_name": "ntop",
|
||||
"vendor_url": "http://www.ntop.org/",
|
||||
"vendor_url": "https://www.ntop.org/",
|
||||
"documentation_url": "https://www.ntop.org/guides/ntopng/",
|
||||
"product_name": "ntopng",
|
||||
"registry_version": 3,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "In the web interface login as admin/admin",
|
||||
"usage": "In the web interface login as admin/admin\n\nPersistent configuration:\n- Add \"/var/lib/redis\" as an additional persistent directory.\n- Use \"redis-cli save\" in an auxiliary console to save the configuration.",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
"image": "lucaderi/ntopng-docker:latest",
|
||||
"image": "ntop/ntopng:stable",
|
||||
"start_command": "--dns-mode 2 --interface eth0",
|
||||
"console_type": "http",
|
||||
"console_http_port": 3000,
|
||||
"console_http_path": "/"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"documentation_url": "hhttps://docs.openmediavault.org",
|
||||
"product_name": "OpenMediaVault",
|
||||
"product_url": "https://www.openmediavault.org/",
|
||||
"registry_version": 3,
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "Savio D'souza",
|
||||
"maintainer_email": "savio2002@yahoo.in",
|
||||
@@ -17,21 +17,29 @@
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"ram": 2048,
|
||||
"hda_disk_interface": "ide",
|
||||
"hdb_disk_interface": "ide",
|
||||
"hda_disk_interface": "sata",
|
||||
"hdb_disk_interface": "sata",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"boot_priority": "dc",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "openmediavault_5.6.13-amd64.iso",
|
||||
"version": "5.6.13",
|
||||
"md5sum": "f08b41a5111fffca0355d53e26ec47ab",
|
||||
"filesize": 652214272,
|
||||
"download_url": "https://www.openmediavault.org/download.html",
|
||||
"direct_download_url": "https://sourceforge.net/projects/openmediavault/files/5.6.13/openmediavault_5.6.13-amd64.iso/download"
|
||||
},
|
||||
{
|
||||
"filename": "openmediavault_5.5.11-amd64.iso",
|
||||
"version": "5.5.11",
|
||||
"md5sum": "76baad8e13dd49bee9b4b4a6936b7296",
|
||||
"filesize": 608174080,
|
||||
"download_url": "https://www.openmediavault.org/download.html",
|
||||
"direct_download_url": "https://sourceforge.net/projects/openmediavault/files/latest/download"
|
||||
"direct_download_url": "https://sourceforge.net/projects/openmediavault/files/5.5.11/openmediavault_5.5.11-amd64.iso/download"
|
||||
},
|
||||
{
|
||||
"filename": "empty30G.qcow2",
|
||||
@@ -44,12 +52,20 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "5.5.11",
|
||||
"name": "5.6.13",
|
||||
"images": {
|
||||
"hda_disk_image": "empty30G.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2",
|
||||
"cdrom_image": "openmediavault_5.5.11-amd64.iso"
|
||||
"cdrom_image": "openmediavault_5.6.13-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.5.11",
|
||||
"images": {
|
||||
"hda_disk_image": "empty30G.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2",
|
||||
"cdrom_image": "openmediavault_5.5.11-amd64.iso"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "User root, password gns3",
|
||||
"first_port_name": "fxp0",
|
||||
"first_port_name": "em0",
|
||||
"port_name_format": "em{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
|
||||
@@ -22,7 +22,25 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
{
|
||||
"filename": "openwrt-21.02.0-x86-64-generic-ext4-combined.img",
|
||||
"version": "21.02.0",
|
||||
"md5sum": "1ba2a5c5c05e592c36a469a8ecd3bcf5",
|
||||
"filesize": 126353408,
|
||||
"download_url": "https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/",
|
||||
"direct_download_url": "https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-ext4-combined.img.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "openwrt-19.07.8-x86-64-combined-ext4.img",
|
||||
"version": "19.07.8",
|
||||
"md5sum": "a9d9776a96968a2042484330f285cae3",
|
||||
"filesize": 285736960,
|
||||
"download_url": "https://downloads.openwrt.org/releases/19.07.8/targets/x86/64/",
|
||||
"direct_download_url": "https://downloads.openwrt.org/releases/19.07.8/targets/x86/64/openwrt-19.07.8-x86-64-combined-ext4.img",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "openwrt-19.07.7-x86-64-combined-ext4.img",
|
||||
"version": "19.07.7",
|
||||
"md5sum": "0cfa752fab87014419ab00b18a6cc5a6",
|
||||
@@ -168,6 +186,18 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "21.02.0",
|
||||
"images": {
|
||||
"hda_disk_image": "openwrt-21.02.0-x86-64-generic-ext4-combined.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "19.07.8",
|
||||
"images": {
|
||||
"hda_disk_image": "openwrt-19.07.8-x86-64-combined-ext4.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "19.07.7",
|
||||
"images": {
|
||||
|
||||
@@ -1,24 +1,27 @@
|
||||
{
|
||||
"name": "Ostinato",
|
||||
"category": "guest",
|
||||
"description": "Ostinato is an open-source, cross-platform network packet crafter/traffic generator and analyzer with a friendly GUI. Craft and send packets of several streams with different protocols at different rates.",
|
||||
"description": "Packet crafter and traffic generator for network engineers",
|
||||
"vendor_name": "Ostinato",
|
||||
"vendor_url": "http://ostinato.org/",
|
||||
"documentation_url": "http://ostinato.org/docs.html",
|
||||
"vendor_url": "https://ostinato.org/",
|
||||
"documentation_url": "https://ostinato.org/docs",
|
||||
"product_name": "Ostinato",
|
||||
"product_url": "http://ostinato.org/",
|
||||
"registry_version": 3,
|
||||
"status": "experimental",
|
||||
"maintainer": "Bernhard Ehlers",
|
||||
"maintainer_email": "be@bernhard-ehlers.de",
|
||||
"usage": "Use interfaces starting with eth1 as traffic interfaces, eth0 is only for the (optional) management of the server/drone.",
|
||||
"symbol": "ostinato-3d-icon.svg",
|
||||
"port_name_format": "eth{0}",
|
||||
"product_url": "https://ostinato.org/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "Srivats P",
|
||||
"maintainer_email": "support@ostinato.org",
|
||||
"symbol": ":/symbols/affinity/circle/gray/cog.svg",
|
||||
"first_port_name": "eth0/mgmt",
|
||||
"port_name_format": "eth{port1}",
|
||||
"linked_clone": true,
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 4,
|
||||
"ram": 256,
|
||||
"hda_disk_interface": "ide",
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "sata",
|
||||
"arch": "i386",
|
||||
"console_type": "vnc",
|
||||
"kvm": "allow",
|
||||
@@ -26,33 +29,18 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "ostinato-0.9-1.qcow2",
|
||||
"version": "0.9",
|
||||
"md5sum": "00b4856ec9fffbcbcab7a8f757355d69",
|
||||
"filesize": 101646336,
|
||||
"download_url": "http://www.bernhard-ehlers.de/projects/ostinato4gns3/index.html",
|
||||
"direct_download_url": "http://www.bernhard-ehlers.de/projects/ostinato4gns3/ostinato-0.9-1.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "ostinato-0.8-1.qcow2",
|
||||
"version": "0.8",
|
||||
"md5sum": "12e990ba695103cfac82f8771b8015d4",
|
||||
"filesize": 57344000,
|
||||
"download_url": "http://www.bernhard-ehlers.de/projects/ostinato4gns3/index.html",
|
||||
"direct_download_url": "http://www.bernhard-ehlers.de/projects/ostinato4gns3/ostinato-0.8-1.qcow2"
|
||||
"version": "1.1",
|
||||
"filename": "ostinatostd-1.1-1.qcow2",
|
||||
"filesize": 134217728,
|
||||
"md5sum": "aa027e83cefea1c38d0102eb2f28956e",
|
||||
"download_url": "https://ostinato.org/pricing/gns3"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "0.9",
|
||||
"name": "1.1",
|
||||
"images": {
|
||||
"hda_disk_image": "ostinato-0.9-1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "0.8",
|
||||
"images": {
|
||||
"hda_disk_image": "ostinato-0.8-1.qcow2"
|
||||
"hda_disk_image": "ostinatostd-1.1-1.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"filename": "fossapup64-9.5.iso",
|
||||
"version": "9.5",
|
||||
"md5sum": "6a45e7a305b7d3172ebd9eab5ca460e4",
|
||||
"filesize": 428867584,
|
||||
"filesize": 428867584,
|
||||
"download_url": "http://puppylinux.com/index.html",
|
||||
"direct_download_url": "http://distro.ibiblio.org/puppylinux/puppy-fossa/fossapup64-9.5.iso"
|
||||
},
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"documentation_url": "https://access.redhat.com/solutions/641193",
|
||||
"product_name": "Red Hat Enterprise Linux KVM Guest Image",
|
||||
"product_url": "https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "Neyder Achahuanco",
|
||||
@@ -56,25 +56,25 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "8.3",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-8.3-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
},
|
||||
"name": "8.3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.9",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-server-7.9-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
},
|
||||
"name": "7.9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.10",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-server-6.10-update-11-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
},
|
||||
"name": "6.10"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"name": "RockyLinux",
|
||||
"category": "guest",
|
||||
"description": "Rocky Linux is a community enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux (RHEL).",
|
||||
"vendor_name": "Rocky Enterprise Software Foundation",
|
||||
"vendor_url": "https://rockylinux.org",
|
||||
"documentation_url": "https://docs.rockylinux.org",
|
||||
"product_name": "Rocky Linux",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "Bernhard Ehlers",
|
||||
"maintainer_email": "none@b-ehlers.de",
|
||||
"usage": "Username:\trockylinux\nPassword:\trockylinux\nTo become root, use \"sudo su\".\n\nTo improve performance, increase RAM and vCPUs in the VM settings.",
|
||||
"symbol": "linux_guest.svg",
|
||||
"port_name_format": "ens{port4}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 1,
|
||||
"ram": 1536,
|
||||
"hda_disk_interface": "sata",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"kvm": "require",
|
||||
"options": "-usbdevice tablet"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "RockyLinux_8.4_VMG_LinuxVMImages.COM.vmdk",
|
||||
"version": "8.4",
|
||||
"md5sum": "3452d5b0fbb4cdcf3ac6fe8de8d0ac08",
|
||||
"filesize": 5273878528,
|
||||
"download_url": "https://www.linuxvmimages.com/images/rockylinux-8",
|
||||
"direct_download_url": "https://sourceforge.net/projects/linuxvmimages/files/VMware/R/rockylinux/8/RockyLinux_8.4_VMM.7z/download",
|
||||
"compression": "7z"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "8.4",
|
||||
"images": {
|
||||
"hda_disk_image": "RockyLinux_8.4_VMG_LinuxVMImages.COM.vmdk"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "StoneWork",
|
||||
"category": "router",
|
||||
"description": "StoneWork is VPP and Ligato based routing platform",
|
||||
"vendor_name": "Pantheon.tech StoneWork router",
|
||||
"vendor_url": "https://pantheon.tech/",
|
||||
"documentation_url": "https://pantheon.tech/documentation-stonework-gns3/",
|
||||
"product_name": "StoneWork",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "free",
|
||||
"maintainer": "Julius Milan",
|
||||
"maintainer_email": "julius.milan@pantheon.tech",
|
||||
"docker": {
|
||||
"adapters": 5,
|
||||
"image": "ghcr.io/pantheontech/stonework",
|
||||
"start_command": "/root/stonework-gns3-startup.sh",
|
||||
"environment": "INITIAL_LOGLVL=debug,\nMICROSERVICE_LABEL=stonework,\nETCD_CONFIG=,\nCNF_MGMT_SUBNET=127.0.0.1/8"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Tiny Core Linux",
|
||||
"category": "guest",
|
||||
"description": "Core Linux is a smaller variant of Tiny Core without a graphical desktop.\n\nIt provides a complete Linux system using only a few MiB." ,
|
||||
"description": "Core Linux is a smaller variant of Tiny Core without a graphical desktop.\n\nIt provides a complete Linux system using only a few MiB.",
|
||||
"vendor_name": "Team Tiny Core",
|
||||
"vendor_url": "http://distro.ibiblio.org/tinycorelinux",
|
||||
"documentation_url": "http://wiki.tinycorelinux.net/",
|
||||
|
||||
@@ -25,6 +25,20 @@
|
||||
"options": "-vga virtio"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "Ubuntu 20.10 (64bit).vmdk",
|
||||
"version": "20.10",
|
||||
"md5sum": "d7fb9d7b5f6e55349204d493d00507d2",
|
||||
"filesize": 7512915968,
|
||||
"download_url": "http://www.osboxes.org/ubuntu/"
|
||||
},
|
||||
{
|
||||
"filename": "Ubuntu 20.04.2 (64bit).vmdk",
|
||||
"version": "20.04.2",
|
||||
"md5sum": "e995e5768c1dbee94bc02072d841bb50",
|
||||
"filesize": 7625179136,
|
||||
"download_url": "http://www.osboxes.org/ubuntu/"
|
||||
},
|
||||
{
|
||||
"filename": "Ubuntu 20.04 (64bit).vmdk",
|
||||
"version": "20.04",
|
||||
@@ -62,6 +76,18 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "20.10",
|
||||
"images": {
|
||||
"hda_disk_image": "Ubuntu 20.10 (64bit).vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "20.04.2",
|
||||
"images": {
|
||||
"hda_disk_image": "Ubuntu 20.04.2 (64bit).vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "20.04",
|
||||
"images": {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Default username/password is vyos/vyos.\n\nAt first boot of versions 1.1.x/1.2.x the router will start from the cdrom. Login and then type \"install image\" and follow the instructions.",
|
||||
"usage": "Default username/password is vyos/vyos.\n\nAt first boot the router will start from the cdrom. Login and then type \"install image\" and follow the instructions.",
|
||||
"symbol": "vyos.svg",
|
||||
"port_name_format": "eth{0}",
|
||||
"qemu": {
|
||||
@@ -26,19 +26,26 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vyos-1.3-rolling-202101-qemu.qcow2",
|
||||
"version": "1.3-snapshot-202101",
|
||||
"md5sum": "b05a1f8a879c42342ea90f65ebe62f05",
|
||||
"filesize": 315359232,
|
||||
"filename": "vyos-1.3.0-rc6-amd64.iso",
|
||||
"version": "1.3.0-rc6",
|
||||
"md5sum": "b3939f82a35b23d428ee0ad4ac8be087",
|
||||
"filesize": 331350016,
|
||||
"download_url": "https://vyos.net/get/snapshots/",
|
||||
"direct_download_url": "https://s3.amazonaws.com/s3-us.vyos.io/snapshot/vyos-1.3-rolling-202101/qemu/vyos-1.3-rolling-202101-qemu.qcow2"
|
||||
"direct_download_url": "https://s3.amazonaws.com/s3-us.vyos.io/snapshot/vyos-1.3.0-rc6/vyos-1.3.0-rc6-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.2.6-S1-amd64.iso",
|
||||
"version": "1.2.6-S1",
|
||||
"md5sum": "449873ae455d5f3f509db7a614e86984",
|
||||
"filename": "vyos-1.2.8-amd64.iso",
|
||||
"version": "1.2.8",
|
||||
"md5sum": "0ad879db903efdbf1c39dc945e165931",
|
||||
"filesize": 429916160,
|
||||
"download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-8-generic-iso-image"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.2.7-amd64.iso",
|
||||
"version": "1.2.7",
|
||||
"md5sum": "1a06255edfac63fa3ea89353317130bf",
|
||||
"filesize": 428867584,
|
||||
"download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-6-s1-generic-iso-image"
|
||||
"download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-7-generic-iso-image"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.1.8-amd64.iso",
|
||||
@@ -59,16 +66,24 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.3-snapshot-202101",
|
||||
"name": "1.3.0-rc6",
|
||||
"images": {
|
||||
"hda_disk_image": "vyos-1.3-rolling-202101-qemu.qcow2"
|
||||
"hda_disk_image": "empty8G.qcow2",
|
||||
"cdrom_image": "vyos-1.3.0-rc6-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.2.6-S1",
|
||||
"name": "1.2.8",
|
||||
"images": {
|
||||
"hda_disk_image": "empty8G.qcow2",
|
||||
"cdrom_image": "vyos-1.2.6-S1-amd64.iso"
|
||||
"cdrom_image": "vyos-1.2.8-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.2.7",
|
||||
"images": {
|
||||
"hda_disk_image": "empty8G.qcow2",
|
||||
"cdrom_image": "vyos-1.2.7-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -48,4 +48,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -481,7 +481,7 @@ class BaseManager:
|
||||
|
||||
if not path:
|
||||
return ""
|
||||
orig_path = path
|
||||
orig_path = os.path.normpath(path)
|
||||
|
||||
server_config = self.config.get_section_config("Server")
|
||||
img_directory = self.get_images_directory()
|
||||
@@ -494,7 +494,8 @@ class BaseManager:
|
||||
if re.match(r"^[A-Z]:", path) is not None:
|
||||
raise NodeError("{} is not allowed on this remote server. Please only use a file from '{}'".format(path, img_directory))
|
||||
|
||||
if not os.path.isabs(path):
|
||||
if not os.path.isabs(orig_path):
|
||||
|
||||
for directory in valid_directory_prefices:
|
||||
log.debug("Searching for image '{}' in '{}'".format(orig_path, directory))
|
||||
path = self._recursive_search_file_in_directory(directory, orig_path)
|
||||
@@ -503,6 +504,12 @@ class BaseManager:
|
||||
|
||||
# Not found we try the default directory
|
||||
log.debug("Searching for image '{}' in default directory".format(orig_path))
|
||||
|
||||
# check that the image path is in the default image directory
|
||||
#common_prefix = os.path.commonprefix([orig_path, img_directory])
|
||||
#if common_prefix != img_directory:
|
||||
# raise NodeError("{} is not allowed. Please only use a file from '{}'".format(orig_path, img_directory))
|
||||
|
||||
s = os.path.split(orig_path)
|
||||
path = force_unix_path(os.path.join(img_directory, *s))
|
||||
if os.path.exists(path):
|
||||
@@ -517,7 +524,6 @@ class BaseManager:
|
||||
return path
|
||||
raise ImageMissingError(orig_path)
|
||||
|
||||
# Check to see if path is an absolute path to a valid directory
|
||||
path = force_unix_path(path)
|
||||
for directory in valid_directory_prefices:
|
||||
log.debug("Searching for image '{}' in '{}'".format(orig_path, directory))
|
||||
@@ -525,7 +531,8 @@ class BaseManager:
|
||||
if os.path.exists(path):
|
||||
return path
|
||||
raise ImageMissingError(orig_path)
|
||||
raise NodeError("{} is not allowed on this remote server. Please only use a file from '{}'".format(path, img_directory))
|
||||
raise NodeError("{} is not allowed on this remote server. Please only use a file from '{}'"
|
||||
.format(path, img_directory))
|
||||
|
||||
def _recursive_search_file_in_directory(self, directory, searched_file):
|
||||
"""
|
||||
@@ -533,12 +540,11 @@ class BaseManager:
|
||||
|
||||
:returns: Path or None if not found
|
||||
"""
|
||||
s = os.path.split(searched_file)
|
||||
|
||||
s = os.path.split(searched_file)
|
||||
for root, dirs, files in os.walk(directory):
|
||||
for file in files:
|
||||
# If filename is the same
|
||||
if s[1] == file and (s[0] == '' or s[0] == os.path.basename(root)):
|
||||
if s[1] == file and (s[0] == '' or root == os.path.join(directory, s[0])):
|
||||
path = os.path.normpath(os.path.join(root, s[1]))
|
||||
if os.path.exists(path):
|
||||
return path
|
||||
|
||||
@@ -430,7 +430,7 @@ class BaseNode:
|
||||
telnet_writer.write(msg.data.encode())
|
||||
await telnet_writer.drain()
|
||||
elif msg.type == aiohttp.WSMsgType.BINARY:
|
||||
await telnet_writer.write(msg.data)
|
||||
telnet_writer.write(msg.data)
|
||||
await telnet_writer.drain()
|
||||
elif msg.type == aiohttp.WSMsgType.ERROR:
|
||||
log.debug("Websocket connection closed with exception {}".format(ws.exception()))
|
||||
|
||||
@@ -362,12 +362,12 @@ class Cloud(BaseNode):
|
||||
"""
|
||||
|
||||
# Wireless adapters are not well supported by the libpcap on OSX
|
||||
if (await self._is_wifi_adapter_osx(port_info["interface"])):
|
||||
if await self._is_wifi_adapter_osx(port_info["interface"]):
|
||||
raise NodeError("Connecting to a Wireless adapter is not supported on Mac OS")
|
||||
if port_info["interface"].startswith("vmnet"):
|
||||
# Use a special NIO to connect to VMware vmnet interfaces on OSX (libpcap doesn't support them)
|
||||
await self._ubridge_send('bridge add_nio_fusion_vmnet {name} "{interface}"'.format(name=bridge_name,
|
||||
interface=port_info["interface"]))
|
||||
interface=port_info["interface"]))
|
||||
return
|
||||
if not gns3server.utils.interfaces.has_netmask(port_info["interface"]):
|
||||
raise NodeError("Interface {} has no netmask, interface down?".format(port_info["interface"]))
|
||||
@@ -402,6 +402,7 @@ class Cloud(BaseNode):
|
||||
await self._add_ubridge_connection(nio, port_number)
|
||||
self._nios[port_number] = nio
|
||||
except (NodeError, UbridgeError) as e:
|
||||
log.error('Cannot add NIO on cloud "{name}": {error}'.format(name=self._name, error=e))
|
||||
await self._stop_ubridge()
|
||||
self.status = "stopped"
|
||||
self._nios[port_number] = nio
|
||||
|
||||
@@ -35,13 +35,22 @@ class Nat(Cloud):
|
||||
|
||||
def __init__(self, name, node_id, project, manager, ports=None):
|
||||
|
||||
allowed_interfaces = Config.instance().get_section_config("Server").get("allowed_interfaces", None)
|
||||
if allowed_interfaces:
|
||||
allowed_interfaces = allowed_interfaces.split(',')
|
||||
if sys.platform.startswith("linux"):
|
||||
nat_interface = Config.instance().get_section_config("Server").get("default_nat_interface", "virbr0")
|
||||
if allowed_interfaces and nat_interface not in allowed_interfaces:
|
||||
raise NodeError("NAT interface {} is not allowed be used on this server. "
|
||||
"Please check the server configuration file.".format(nat_interface))
|
||||
if nat_interface not in [interface["name"] for interface in gns3server.utils.interfaces.interfaces()]:
|
||||
raise NodeError("NAT interface {} is missing, please install libvirt".format(nat_interface))
|
||||
interface = nat_interface
|
||||
else:
|
||||
nat_interface = Config.instance().get_section_config("Server").get("default_nat_interface", "vmnet8")
|
||||
if allowed_interfaces and nat_interface not in allowed_interfaces:
|
||||
raise NodeError("NAT interface {} is not allowed be used on this server. "
|
||||
"Please check the server configuration file.".format(nat_interface))
|
||||
interfaces = list(filter(lambda x: nat_interface in x.lower(),
|
||||
[interface["name"] for interface in gns3server.utils.interfaces.interfaces()]))
|
||||
if not len(interfaces):
|
||||
|
||||
@@ -152,8 +152,6 @@ class Qemu(BaseManager):
|
||||
log.debug("Searching for Qemu binaries in '{}'".format(path))
|
||||
try:
|
||||
for f in os.listdir(path):
|
||||
if f.endswith("-spice"):
|
||||
continue
|
||||
if (f.startswith("qemu-system") or f.startswith("qemu-kvm") or f == "qemu" or f == "qemu.exe") and \
|
||||
os.access(os.path.join(path, f), os.X_OK) and \
|
||||
os.path.isfile(os.path.join(path, f)):
|
||||
|
||||
@@ -615,7 +615,7 @@ class QemuVM(BaseNode):
|
||||
|
||||
if not mac_address:
|
||||
# use the node UUID to generate a random MAC address
|
||||
self._mac_address = "0c:%s:%s:%s:%s:00" % (self.project.id[-4:-2], self.project.id[-2:], self.id[-4:-2], self.id[-2:])
|
||||
self._mac_address = "0c:%s:%s:%s:00:00" % (self.id[2:4], self.id[4:6], self.id[6:8])
|
||||
else:
|
||||
self._mac_address = mac_address
|
||||
|
||||
@@ -829,20 +829,26 @@ class QemuVM(BaseNode):
|
||||
id=self._id,
|
||||
options=options))
|
||||
|
||||
if not sys.platform.startswith("linux"):
|
||||
if "-no-kvm" in options:
|
||||
options = options.replace("-no-kvm", "")
|
||||
if "-enable-kvm" in options:
|
||||
# "-no-kvm" and "-no-hax' are deprecated since Qemu v5.2
|
||||
if "-no-kvm" in options:
|
||||
options = options.replace("-no-kvm", "-machine accel=tcg")
|
||||
if "-no-hax" in options:
|
||||
options = options.replace("-no-hax", "-machine accel=tcg")
|
||||
|
||||
if "-enable-kvm" in options:
|
||||
if not sys.platform.startswith("linux"):
|
||||
# KVM can only be enabled on Linux
|
||||
options = options.replace("-enable-kvm", "")
|
||||
else:
|
||||
if "-no-hax" in options:
|
||||
options = options.replace("-no-hax", "")
|
||||
if "-enable-hax" in options:
|
||||
else:
|
||||
options = options.replace("-enable-kvm", "-machine accel=kvm")
|
||||
|
||||
if "-enable-hax" in options:
|
||||
if not sys.platform.startswith("win"):
|
||||
# HAXM is only available on Windows
|
||||
options = options.replace("-enable-hax", "")
|
||||
if "-icount" in options and ("-no-kvm" not in options):
|
||||
# automatically add the -no-kvm option if -icount is detected
|
||||
# to help with the migration of ASA VMs created before version 1.4
|
||||
options = "-no-kvm " + options
|
||||
else:
|
||||
options = options.replace("-enable-hax", "-machine accel=hax")
|
||||
|
||||
self._options = options.strip()
|
||||
|
||||
@property
|
||||
@@ -1641,23 +1647,16 @@ class QemuVM(BaseNode):
|
||||
def _get_qemu_img(self):
|
||||
"""
|
||||
Search the qemu-img binary in the same binary of the qemu binary
|
||||
for avoiding version incompatibility.
|
||||
to avoid version incompatibility.
|
||||
|
||||
:returns: qemu-img path or raise an error
|
||||
"""
|
||||
qemu_img_path = ""
|
||||
|
||||
qemu_path_dir = os.path.dirname(self.qemu_path)
|
||||
try:
|
||||
for f in os.listdir(qemu_path_dir):
|
||||
if f.startswith("qemu-img"):
|
||||
qemu_img_path = os.path.join(qemu_path_dir, f)
|
||||
except OSError as e:
|
||||
raise QemuError("Error while looking for qemu-img in {}: {}".format(qemu_path_dir, e))
|
||||
|
||||
if not qemu_img_path:
|
||||
raise QemuError("Could not find qemu-img in {}".format(qemu_path_dir))
|
||||
|
||||
return qemu_img_path
|
||||
qemu_image_path = shutil.which("qemu-img", path=qemu_path_dir)
|
||||
if qemu_image_path:
|
||||
return qemu_image_path
|
||||
raise QemuError("Could not find qemu-img in {}".format(qemu_path_dir))
|
||||
|
||||
async def _qemu_img_exec(self, command):
|
||||
|
||||
@@ -1671,10 +1670,37 @@ class QemuVM(BaseNode):
|
||||
log.info("{} returned with {}".format(self._get_qemu_img(), retcode))
|
||||
return retcode
|
||||
|
||||
async def _find_disk_file_format(self, disk):
|
||||
|
||||
qemu_img_path = self._get_qemu_img()
|
||||
try:
|
||||
output = await subprocess_check_output(qemu_img_path, "info", "--output=json", disk)
|
||||
except subprocess.SubprocessError as e:
|
||||
raise QemuError("Error received while checking Qemu disk format: {}".format(e))
|
||||
if output:
|
||||
try:
|
||||
json_data = json.loads(output)
|
||||
except ValueError as e:
|
||||
raise QemuError("Invalid JSON data returned by qemu-img: {}".format(e))
|
||||
return json_data.get("format")
|
||||
|
||||
async def _create_linked_clone(self, disk_name, disk_image, disk):
|
||||
|
||||
try:
|
||||
qemu_img_path = self._get_qemu_img()
|
||||
command = [qemu_img_path, "create", "-o", "backing_file={}".format(disk_image), "-f", "qcow2", disk]
|
||||
backing_file_format = await self._find_disk_file_format(disk_image)
|
||||
if not backing_file_format:
|
||||
raise QemuError("Could not detect format for disk image: {}".format(disk_image))
|
||||
backing_options, base_qcow2 = Qcow2.backing_options(disk_image)
|
||||
if base_qcow2 and base_qcow2.crypt_method:
|
||||
# Workaround for https://gitlab.com/qemu-project/qemu/-/issues/441
|
||||
# (we have to pass -u and the size). Also embed secret name.
|
||||
command = [qemu_img_path, "create", "-b", backing_options,
|
||||
"-F", backing_file_format, "-f", "qcow2", "-u", disk, str(base_qcow2.size)]
|
||||
else:
|
||||
command = [qemu_img_path, "create", "-o", "backing_file={}".format(disk_image),
|
||||
"-F", backing_file_format, "-f", "qcow2", disk]
|
||||
|
||||
retcode = await self._qemu_img_exec(command)
|
||||
if retcode:
|
||||
stdout = self.read_qemu_img_stdout()
|
||||
@@ -1838,13 +1864,14 @@ class QemuVM(BaseNode):
|
||||
if retcode == 3:
|
||||
# image has leaked clusters, but is not corrupted, let's try to fix it
|
||||
log.warning("Qemu image {} has leaked clusters".format(disk_image))
|
||||
if (await self._qemu_img_exec([qemu_img_path, "check", "-r", "leaks", "{}".format(disk_image)])) == 3:
|
||||
if await self._qemu_img_exec([qemu_img_path, "check", "-r", "leaks", "{}".format(disk_image)]) == 3:
|
||||
self.project.emit("log.warning", {"message": "Qemu image '{}' has leaked clusters and could not be fixed".format(disk_image)})
|
||||
elif retcode == 2:
|
||||
# image is corrupted, let's try to fix it
|
||||
log.warning("Qemu image {} is corrupted".format(disk_image))
|
||||
if (await self._qemu_img_exec([qemu_img_path, "check", "-r", "all", "{}".format(disk_image)])) == 2:
|
||||
if await self._qemu_img_exec([qemu_img_path, "check", "-r", "all", "{}".format(disk_image)]) == 2:
|
||||
self.project.emit("log.warning", {"message": "Qemu image '{}' is corrupted and could not be fixed".format(disk_image)})
|
||||
# ignore retcode == 1. One reason is that the image is encrypted and there is no encrypt.key-secret available
|
||||
except (OSError, subprocess.SubprocessError) as e:
|
||||
stdout = self.read_qemu_img_stdout()
|
||||
raise QemuError("Could not check '{}' disk image: {}\n{}".format(disk_name, e, stdout))
|
||||
@@ -1855,12 +1882,18 @@ class QemuVM(BaseNode):
|
||||
# create the disk
|
||||
await self._create_linked_clone(disk_name, disk_image, disk)
|
||||
else:
|
||||
# The disk exists we check if the clone works
|
||||
backing_file_format = await self._find_disk_file_format(disk_image)
|
||||
if not backing_file_format:
|
||||
raise QemuError("Could not detect format for disk image: {}".format(disk_image))
|
||||
# Rebase the image. This is in case the base image moved to a different directory,
|
||||
# which will be the case if we imported a portable project. This uses
|
||||
# get_abs_image_path(hdX_disk_image) and ignores the old base path embedded
|
||||
# in the qcow2 file itself.
|
||||
try:
|
||||
qcow2 = Qcow2(disk)
|
||||
await qcow2.rebase(qemu_img_path, disk_image)
|
||||
await qcow2.rebase(qemu_img_path, disk_image, backing_file_format)
|
||||
except (Qcow2Error, OSError) as e:
|
||||
raise QemuError("Could not use qcow2 disk image '{}' for {} {}".format(disk_image, disk_name, e))
|
||||
raise QemuError("Could not use qcow2 disk image '{}' for {}: {}".format(disk_image, disk_name, e))
|
||||
|
||||
else:
|
||||
disk = disk_image
|
||||
@@ -2078,7 +2111,7 @@ class QemuVM(BaseNode):
|
||||
if require_kvm is not None:
|
||||
require_hardware_accel = require_kvm
|
||||
|
||||
if enable_hardware_accel and "-no-kvm" not in options and "-no-hax" not in options:
|
||||
if enable_hardware_accel and "-machine accel=tcg" not in options:
|
||||
# Turn OFF hardware acceleration for non x86 architectures
|
||||
if sys.platform.startswith("win"):
|
||||
supported_binaries = ["qemu-system-x86_64.exe", "qemu-system-x86_64w.exe", "qemu-system-i386.exe", "qemu-system-i386w.exe"]
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import json
|
||||
import os
|
||||
import asyncio
|
||||
import struct
|
||||
@@ -58,11 +59,12 @@ class Qcow2:
|
||||
# uint64_t snapshots_offset;
|
||||
# } QCowHeader;
|
||||
|
||||
struct_format = ">IIQi"
|
||||
struct_format = ">IIQiiQi"
|
||||
with open(self._path, 'rb') as f:
|
||||
content = f.read(struct.calcsize(struct_format))
|
||||
try:
|
||||
self.magic, self.version, self.backing_file_offset, self.backing_file_size = struct.unpack_from(struct_format, content)
|
||||
(self.magic, self.version, self.backing_file_offset, self.backing_file_size,
|
||||
self.cluster_bits, self.size, self.crypt_method) = struct.unpack_from(struct_format, content)
|
||||
|
||||
except struct.error:
|
||||
raise Qcow2Error("Invalid file header for {}".format(self._path))
|
||||
@@ -87,17 +89,48 @@ class Qcow2:
|
||||
return None
|
||||
return path
|
||||
|
||||
async def rebase(self, qemu_img, base_image):
|
||||
@staticmethod
|
||||
def backing_options(base_image):
|
||||
"""
|
||||
If the base_image is encrypted qcow2, return options for the upper layer
|
||||
which include a secret name (equal to the basename)
|
||||
|
||||
:param base_image: Path to the base file (which may or may not be qcow2)
|
||||
|
||||
:returns: (base image string, Qcow2 object representing base image or None)
|
||||
"""
|
||||
|
||||
try:
|
||||
base_qcow2 = Qcow2(base_image)
|
||||
if base_qcow2.crypt_method:
|
||||
# Embed a secret name so it doesn't have to be passed to qemu -drive ...
|
||||
options = {
|
||||
"encrypt.key-secret": os.path.basename(base_image),
|
||||
"driver": "qcow2",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": base_image,
|
||||
},
|
||||
}
|
||||
return ("json:"+json.dumps(options, separators=(',', ':')), base_qcow2)
|
||||
else:
|
||||
return (base_image, base_qcow2)
|
||||
except Qcow2Error:
|
||||
return (base_image, None) # non-qcow2 base images are acceptable (e.g. vmdk, raw image)
|
||||
|
||||
async def rebase(self, qemu_img, base_image, backing_file_format):
|
||||
"""
|
||||
Rebase a linked clone in order to use the correct disk
|
||||
|
||||
:param qemu_img: Path to the qemu-img binary
|
||||
:param base_image: Path to the base image
|
||||
:param backing_file_format: File format of the base image
|
||||
"""
|
||||
|
||||
if not os.path.exists(base_image):
|
||||
raise FileNotFoundError(base_image)
|
||||
command = [qemu_img, "rebase", "-u", "-b", base_image, self._path]
|
||||
backing_options, _ = Qcow2.backing_options(base_image)
|
||||
command = [qemu_img, "rebase", "-u", "-b", backing_options, "-F", backing_file_format, self._path]
|
||||
process = await asyncio.create_subprocess_exec(*command)
|
||||
retcode = await process.wait()
|
||||
if retcode != 0:
|
||||
|
||||
@@ -27,6 +27,7 @@ import asyncio
|
||||
import subprocess
|
||||
import logging
|
||||
import codecs
|
||||
import ipaddress
|
||||
|
||||
from collections import OrderedDict
|
||||
from gns3server.utils.interfaces import interfaces
|
||||
@@ -51,6 +52,7 @@ class VMware(BaseManager):
|
||||
self._vmrun_path = None
|
||||
self._host_type = None
|
||||
self._vmnets = []
|
||||
self._vmnets_info = {}
|
||||
self._vmnet_start_range = 2
|
||||
if sys.platform.startswith("win"):
|
||||
self._vmnet_end_range = 19
|
||||
@@ -273,7 +275,7 @@ class VMware(BaseManager):
|
||||
else:
|
||||
# location on Linux
|
||||
vmware_networking_file = "/etc/vmware/networking"
|
||||
vmnet_interfaces = []
|
||||
vmnet_interfaces = {}
|
||||
try:
|
||||
with open(vmware_networking_file, "r", encoding="utf-8") as f:
|
||||
for line in f.read().splitlines():
|
||||
@@ -281,7 +283,20 @@ class VMware(BaseManager):
|
||||
if match:
|
||||
vmnet = "vmnet{}".format(match.group(1))
|
||||
if vmnet not in ("vmnet0", "vmnet1", "vmnet8"):
|
||||
vmnet_interfaces.append(vmnet)
|
||||
vmnet_interfaces[vmnet] = {}
|
||||
with open(vmware_networking_file, "r", encoding="utf-8") as f:
|
||||
for line in f.read().splitlines():
|
||||
match = re.search(r"VNET_([0-9]+)_HOSTONLY_SUBNET\s+(.*)", line)
|
||||
if match:
|
||||
vmnet = "vmnet{}".format(match.group(1))
|
||||
if vmnet in vmnet_interfaces.keys():
|
||||
vmnet_interfaces[vmnet]["subnet"] = match.group(2)
|
||||
match = re.search(r"VNET_([0-9]+)_HOSTONLY_NETMASK\s+(.*)", line)
|
||||
if match:
|
||||
vmnet = "vmnet{}".format(match.group(1))
|
||||
if vmnet in vmnet_interfaces.keys():
|
||||
vmnet_interfaces[vmnet]["netmask"] = match.group(2)
|
||||
|
||||
except OSError as e:
|
||||
raise VMwareError("Cannot open {}: {}".format(vmware_networking_file, e))
|
||||
return vmnet_interfaces
|
||||
@@ -324,6 +339,25 @@ class VMware(BaseManager):
|
||||
raise VMwareError("No VMnet interface available between vmnet{} and vmnet{}. Go to preferences VMware / Network / Configure to add more interfaces.".format(self._vmnet_start_range, self._vmnet_end_range))
|
||||
return self._vmnets.pop(0)
|
||||
|
||||
def find_bridge_interface(self, vmnet_interface):
|
||||
"""
|
||||
Find the bridge interface that is used for the vmnet interface in VMware.
|
||||
"""
|
||||
|
||||
if vmnet_interface in self._vmnets_info.keys():
|
||||
subnet = self._vmnets_info[vmnet_interface].get("subnet", None)
|
||||
netmask = self._vmnets_info[vmnet_interface].get("netmask", None)
|
||||
if subnet and netmask:
|
||||
for interface in interfaces():
|
||||
try:
|
||||
network = ipaddress.ip_network(f"{subnet}/{netmask}")
|
||||
ip = ipaddress.ip_address(interface["ip_address"])
|
||||
except ValueError:
|
||||
continue
|
||||
if ip in network:
|
||||
return interface["name"]
|
||||
return None
|
||||
|
||||
def refresh_vmnet_list(self, ubridge=True):
|
||||
|
||||
if ubridge:
|
||||
@@ -331,6 +365,8 @@ class VMware(BaseManager):
|
||||
vmnet_interfaces = self._get_vmnet_interfaces_ubridge()
|
||||
else:
|
||||
vmnet_interfaces = self._get_vmnet_interfaces()
|
||||
vmnet_interfaces = list(vmnet_interfaces.keys())
|
||||
self._vmnets_info = vmnet_interfaces.copy()
|
||||
|
||||
# remove vmnets already in use
|
||||
for vmware_vm in self._nodes.values():
|
||||
@@ -734,5 +770,4 @@ class VMware(BaseManager):
|
||||
if __name__ == '__main__':
|
||||
loop = asyncio.get_event_loop()
|
||||
vmware = VMware.instance()
|
||||
print("=> Check version")
|
||||
loop.run_until_complete(asyncio.ensure_future(vmware.check_vmware_version()))
|
||||
@@ -23,9 +23,11 @@ import sys
|
||||
import os
|
||||
import asyncio
|
||||
import tempfile
|
||||
import platform
|
||||
|
||||
from gns3server.utils.asyncio.telnet_server import AsyncioTelnetServer
|
||||
from gns3server.utils.asyncio.serial import asyncio_open_serial
|
||||
from gns3server.utils import parse_version
|
||||
from gns3server.utils.asyncio import locking
|
||||
from collections import OrderedDict
|
||||
from .vmware_error import VMwareError
|
||||
@@ -252,8 +254,13 @@ class VMwareVM(BaseNode):
|
||||
if self._get_vmx_setting(connected):
|
||||
del self._vmx_pairs[connected]
|
||||
|
||||
use_ubridge = True
|
||||
# use alternative method to find vmnet interfaces on macOS >= 11.0 (BigSur)
|
||||
# because "bridge" interfaces are used instead and they are only created on the VM starts
|
||||
if sys.platform.startswith("darwin") and parse_version(platform.mac_ver()[0]) >= parse_version("11.0.0"):
|
||||
use_ubridge = False
|
||||
self.manager.refresh_vmnet_list(ubridge=use_ubridge)
|
||||
# then configure VMware network adapters
|
||||
self.manager.refresh_vmnet_list()
|
||||
for adapter_number in range(0, self._adapters):
|
||||
|
||||
custom_adapter = self._get_custom_adapter_settings(adapter_number)
|
||||
@@ -333,8 +340,17 @@ class VMwareVM(BaseNode):
|
||||
vmnet_interface = os.path.basename(self._vmx_pairs[vnet])
|
||||
|
||||
if sys.platform.startswith("darwin"):
|
||||
# special case on OSX, we cannot bind VMnet interfaces using the libpcap
|
||||
await self._ubridge_send('bridge add_nio_fusion_vmnet {name} "{interface}"'.format(name=vnet, interface=vmnet_interface))
|
||||
if parse_version(platform.mac_ver()[0]) >= parse_version("11.0.0"):
|
||||
# a bridge interface (bridge100, bridge101 etc.) is used instead of a vmnet interface
|
||||
# on macOS >= 11.0 (Big Sur)
|
||||
vmnet_interface = self.manager.find_bridge_interface(vmnet_interface)
|
||||
if not vmnet_interface:
|
||||
raise VMwareError(f"Could not find bridge interface linked with {vmnet_interface}")
|
||||
block_host_traffic = self.manager.config.get_section_config("VMware").getboolean("block_host_traffic", False)
|
||||
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
|
||||
else:
|
||||
# special case on macOS, we cannot bind VMnet interfaces using the libpcap
|
||||
await self._ubridge_send('bridge add_nio_fusion_vmnet {name} "{interface}"'.format(name=vnet, interface=vmnet_interface))
|
||||
else:
|
||||
block_host_traffic = self.manager.config.get_section_config("VMware").getboolean("block_host_traffic", False)
|
||||
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
|
||||
@@ -426,7 +442,7 @@ class VMwareVM(BaseNode):
|
||||
if self.status == "started":
|
||||
return
|
||||
|
||||
if (await self.is_running()):
|
||||
if await self.is_running():
|
||||
raise VMwareError("The VM is already running in VMware")
|
||||
|
||||
ubridge_path = self.ubridge_path
|
||||
@@ -476,7 +492,7 @@ class VMwareVM(BaseNode):
|
||||
await self._stop_ubridge()
|
||||
|
||||
try:
|
||||
if (await self.is_running()):
|
||||
if await self.is_running():
|
||||
if self.on_close == "save_vm_state":
|
||||
await self._control_vm("suspend")
|
||||
elif self.on_close == "shutdown_signal":
|
||||
@@ -728,7 +744,7 @@ class VMwareVM(BaseNode):
|
||||
# check for the connection type
|
||||
connection_type = "ethernet{}.connectiontype".format(adapter_number)
|
||||
if not self._use_any_adapter and connection_type in self._vmx_pairs and self._vmx_pairs[connection_type] in ("nat", "bridged", "hostonly"):
|
||||
if (await self.is_running()):
|
||||
if await self.is_running():
|
||||
raise VMwareError("Attachment '{attachment}' is configured on network adapter {adapter_number}. "
|
||||
"Please stop VMware VM '{name}' to link to this adapter and allow GNS3 to change the attachment type.".format(attachment=self._vmx_pairs[connection_type],
|
||||
adapter_number=adapter_number,
|
||||
|
||||
@@ -53,6 +53,7 @@ class Controller:
|
||||
self._notification = Notification(self)
|
||||
self.gns3vm = GNS3VM(self)
|
||||
self.symbols = Symbols()
|
||||
self._ssl_context = None
|
||||
self._appliance_manager = ApplianceManager()
|
||||
self._template_manager = TemplateManager()
|
||||
self._iou_license_settings = {"iourc_content": "",
|
||||
@@ -82,9 +83,9 @@ class Controller:
|
||||
|
||||
computes = self._load_controller_settings()
|
||||
from gns3server.web.web_server import WebServer
|
||||
ssl_context = WebServer.instance(host=host, port=port).ssl_context()
|
||||
self._ssl_context = WebServer.instance(host=host, port=port).ssl_context()
|
||||
protocol = server_config.get("protocol", "http")
|
||||
if ssl_context and protocol != "https":
|
||||
if self._ssl_context and protocol != "https":
|
||||
log.warning("Protocol changed to 'https' for local compute because SSL is enabled".format(port))
|
||||
protocol = "https"
|
||||
try:
|
||||
@@ -97,7 +98,7 @@ class Controller:
|
||||
user=server_config.get("user", ""),
|
||||
password=server_config.get("password", ""),
|
||||
force=True,
|
||||
ssl_context=ssl_context)
|
||||
ssl_context=self._ssl_context)
|
||||
except aiohttp.web.HTTPConflict:
|
||||
log.fatal("Cannot access to the local server, make sure something else is not running on the TCP port {}".format(port))
|
||||
sys.exit(1)
|
||||
@@ -115,6 +116,13 @@ class Controller:
|
||||
await self.load_projects()
|
||||
await self._project_auto_open()
|
||||
|
||||
def ssl_context(self):
|
||||
"""
|
||||
Returns the SSL context for the server.
|
||||
"""
|
||||
|
||||
return self._ssl_context
|
||||
|
||||
def _update_config(self):
|
||||
"""
|
||||
Call this when the server configuration file changes.
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import json
|
||||
import uuid
|
||||
import asyncio
|
||||
@@ -181,6 +182,7 @@ class ApplianceManager:
|
||||
Controller.instance().save()
|
||||
json_data = await response.json()
|
||||
appliances_dir = get_resource('appliances')
|
||||
downloaded_appliance_files = []
|
||||
for appliance in json_data:
|
||||
if appliance["type"] == "file":
|
||||
appliance_name = appliance["name"]
|
||||
@@ -201,6 +203,21 @@ class ApplianceManager:
|
||||
f.write(appliance_data)
|
||||
except OSError as e:
|
||||
raise aiohttp.web.HTTPConflict(text="Could not write appliance file '{}': {}".format(path, e))
|
||||
downloaded_appliance_files.append(appliance_name)
|
||||
|
||||
# delete old appliance files
|
||||
for filename in os.listdir(appliances_dir):
|
||||
file_path = os.path.join(appliances_dir, filename)
|
||||
if filename in downloaded_appliance_files:
|
||||
continue
|
||||
try:
|
||||
if os.path.isfile(file_path) or os.path.islink(file_path):
|
||||
log.info("Deleting old appliance file {}".format(file_path))
|
||||
os.unlink(file_path)
|
||||
except OSError as e:
|
||||
log.warning("Could not delete old appliance file '{}': {}".format(file_path, e))
|
||||
continue
|
||||
|
||||
except ValueError as e:
|
||||
raise aiohttp.web.HTTPConflict(text="Could not read appliances information from GitHub: {}".format(e))
|
||||
|
||||
|
||||
@@ -312,7 +312,7 @@ class Compute:
|
||||
url = self._getUrl("/projects/{}/files/{}".format(project.id, path))
|
||||
response = await self._session().request("GET", url, auth=self._auth)
|
||||
if response.status == 404:
|
||||
raise aiohttp.web.HTTPNotFound(text="{} not found on compute".format(path))
|
||||
raise aiohttp.web.HTTPNotFound(text="File '{}' not found on compute".format(path))
|
||||
return response
|
||||
|
||||
async def download_image(self, image_type, image):
|
||||
@@ -327,7 +327,7 @@ class Compute:
|
||||
url = self._getUrl("/{}/images/{}".format(image_type, image))
|
||||
response = await self._session().request("GET", url, auth=self._auth)
|
||||
if response.status == 404:
|
||||
raise aiohttp.web.HTTPNotFound(text="{} not found on compute".format(image))
|
||||
raise aiohttp.web.HTTPNotFound(text="Image '{}' not found on compute".format(image))
|
||||
return response
|
||||
|
||||
async def http_query(self, method, path, data=None, dont_connect=False, **kwargs):
|
||||
|
||||
@@ -66,22 +66,26 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
|
||||
# Export the local files
|
||||
for root, dirs, files in os.walk(project._path, topdown=True, followlinks=False):
|
||||
files = [f for f in files if _is_exportable(os.path.join(root, f), include_snapshots)]
|
||||
for file in files:
|
||||
path = os.path.join(root, file)
|
||||
# check if we can export the file
|
||||
try:
|
||||
open(path).close()
|
||||
except OSError as e:
|
||||
msg = "Could not export file {}: {}".format(path, e)
|
||||
log.warning(msg)
|
||||
project.emit_notification("log.warning", {"message": msg})
|
||||
continue
|
||||
# ignore the .gns3 file
|
||||
if file.endswith(".gns3"):
|
||||
continue
|
||||
_patch_mtime(path)
|
||||
zstream.write(path, os.path.relpath(path, project._path))
|
||||
try:
|
||||
files = [f for f in files if _is_exportable(os.path.join(root, f), include_snapshots)]
|
||||
for file in files:
|
||||
path = os.path.join(root, file)
|
||||
# check if we can export the file
|
||||
try:
|
||||
open(path).close()
|
||||
except OSError as e:
|
||||
msg = "Could not export file {}: {}".format(path, e)
|
||||
log.warning(msg)
|
||||
project.emit_notification("log.warning", {"message": msg})
|
||||
continue
|
||||
# ignore the .gns3 file
|
||||
if file.endswith(".gns3"):
|
||||
continue
|
||||
_patch_mtime(path)
|
||||
zstream.write(path, os.path.relpath(path, project._path))
|
||||
except FileNotFoundError as e:
|
||||
log.warning("Cannot export local file: {}".format(e))
|
||||
continue
|
||||
|
||||
# Export files from remote computes
|
||||
for compute in project.computes:
|
||||
@@ -91,8 +95,9 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
if _is_exportable(compute_file["path"], include_snapshots):
|
||||
log.debug("Downloading file '{}' from compute '{}'".format(compute_file["path"], compute.id))
|
||||
response = await compute.download_file(project, compute_file["path"])
|
||||
#if response.status != 200:
|
||||
# raise aiohttp.web.HTTPConflict(text="Cannot export file from compute '{}'. Compute returned status code {}.".format(compute.id, response.status))
|
||||
if response.status != 200:
|
||||
log.warning("Cannot export file from compute '{}'. Compute returned status code {}.".format(compute.id, response.status))
|
||||
continue
|
||||
(fd, temp_path) = tempfile.mkstemp(dir=temporary_dir)
|
||||
async with aiofiles.open(fd, 'wb') as f:
|
||||
while True:
|
||||
|
||||
@@ -38,7 +38,8 @@ Handle the import of project from a .gns3project
|
||||
"""
|
||||
|
||||
|
||||
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_id=False):
|
||||
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_id=False,
|
||||
auto_start=False, auto_open=False, auto_close=True):
|
||||
"""
|
||||
Import a project contain in a zip file
|
||||
|
||||
@@ -98,9 +99,9 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
topology = load_topology(os.path.join(path, "project.gns3"))
|
||||
topology["name"] = project_name
|
||||
# To avoid unexpected behavior (project start without manual operations just after import)
|
||||
topology["auto_start"] = False
|
||||
topology["auto_open"] = False
|
||||
topology["auto_close"] = True
|
||||
topology["auto_start"] = auto_start
|
||||
topology["auto_open"] = auto_open
|
||||
topology["auto_close"] = auto_close
|
||||
|
||||
# Generate a new node id
|
||||
node_old_to_new = {}
|
||||
|
||||
@@ -124,6 +124,7 @@ class Link:
|
||||
self._link_type = "ethernet"
|
||||
self._suspended = False
|
||||
self._filters = {}
|
||||
self._link_style = {}
|
||||
|
||||
@property
|
||||
def filters(self):
|
||||
@@ -209,6 +210,12 @@ class Link:
|
||||
self._project.emit_notification("link.updated", self.__json__())
|
||||
self._project.dump()
|
||||
|
||||
async def update_link_style(self, link_style):
|
||||
if link_style != self._link_style:
|
||||
self._link_style = link_style
|
||||
self._project.emit_notification("link.updated", self.__json__())
|
||||
self._project.dump()
|
||||
|
||||
@property
|
||||
def created(self):
|
||||
"""
|
||||
@@ -454,6 +461,7 @@ class Link:
|
||||
"nodes": res,
|
||||
"link_id": self._id,
|
||||
"filters": self._filters,
|
||||
"link_style": self._link_style,
|
||||
"suspend": self._suspended
|
||||
}
|
||||
return {
|
||||
@@ -466,5 +474,6 @@ class Link:
|
||||
"capture_compute_id": self.capture_compute_id,
|
||||
"link_type": self._link_type,
|
||||
"filters": self._filters,
|
||||
"link_style": self._link_style,
|
||||
"suspend": self._suspended
|
||||
}
|
||||
@@ -25,6 +25,7 @@ import os
|
||||
from .compute import ComputeConflict, ComputeError
|
||||
from .ports.port_factory import PortFactory, StandardPortFactory, DynamipsPortFactory
|
||||
from ..utils.images import images_directories
|
||||
from ..config import Config
|
||||
from ..utils.qt import qt_font_to_style
|
||||
|
||||
|
||||
@@ -263,10 +264,12 @@ class Node:
|
||||
if val is None:
|
||||
val = ":/symbols/computer.svg"
|
||||
|
||||
# No abs path, fix them (bug of 1.X)
|
||||
try:
|
||||
if not val.startswith(":") and os.path.abspath(val):
|
||||
val = os.path.basename(val)
|
||||
if not val.startswith(":") and os.path.isabs(val):
|
||||
server_config = Config.instance().get_section_config("Server")
|
||||
default_symbol_directory = os.path.expanduser(server_config.get("symbols_path", "~/GNS3/symbols"))
|
||||
if os.path.commonprefix([default_symbol_directory, val]) != default_symbol_directory:
|
||||
val = os.path.basename(val)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
|
||||
@@ -957,6 +957,8 @@ class Project:
|
||||
link = await self.add_link(link_id=link_data["link_id"])
|
||||
if "filters" in link_data:
|
||||
await link.update_filters(link_data["filters"])
|
||||
if "link_style" in link_data:
|
||||
await link.update_link_style(link_data["link_style"])
|
||||
for node_link in link_data.get("nodes", []):
|
||||
node = self.get_node(node_link["node_id"])
|
||||
port = node.get_port(node_link["adapter_number"], node_link["port_number"])
|
||||
|
||||
@@ -121,7 +121,9 @@ class Snapshot:
|
||||
if os.path.exists(project_files_path):
|
||||
await wait_run_in_executor(shutil.rmtree, project_files_path)
|
||||
with open(self._path, "rb") as f:
|
||||
project = await import_project(self._project.controller, self._project.id, f, location=self._project.path)
|
||||
project = await import_project(self._project.controller, self._project.id, f, location=self._project.path,
|
||||
auto_start=self._project.auto_start, auto_open=self._project.auto_open,
|
||||
auto_close=self._project.auto_close)
|
||||
except (OSError, PermissionError) as e:
|
||||
raise aiohttp.web.HTTPConflict(text=str(e))
|
||||
await project.open()
|
||||
|
||||
@@ -63,13 +63,13 @@ def _check_topology_schema(topo):
|
||||
error = "Invalid data in topology file: {} in schema: {}".format(
|
||||
e.message,
|
||||
json.dumps(e.schema))
|
||||
log.critical(error)
|
||||
log.debug(error)
|
||||
raise aiohttp.web.HTTPConflict(text=error)
|
||||
|
||||
|
||||
def project_to_topology(project):
|
||||
"""
|
||||
:return: A dictionnary with the topology ready to dump to a .gns3
|
||||
:return: A dictionary with the topology ready to dump to a .gns3
|
||||
"""
|
||||
data = {
|
||||
"project_id": project.id,
|
||||
|
||||
@@ -58,7 +58,7 @@ class CrashReport:
|
||||
Report crash to a third party service
|
||||
"""
|
||||
|
||||
DSN = "https://289e75a5996944f9af6de8b071c99cf0:b1caf92ea47a4b489b569e70cd85c02b@o19455.ingest.sentry.io/38482"
|
||||
DSN = "https://54d3363bab36489fb0f7cbbdda6ca7c5:9f1012f8aa1547f683e00c0aac9b99f6@o19455.ingest.sentry.io/38482"
|
||||
_instance = None
|
||||
|
||||
def __init__(self):
|
||||
|
||||
@@ -470,7 +470,8 @@ class DynamipsVMHandler:
|
||||
async def upload_image(request, response):
|
||||
|
||||
dynamips_manager = Dynamips.instance()
|
||||
await dynamips_manager.write_image(request.match_info["filename"], request.content)
|
||||
filename = os.path.normpath(request.match_info["filename"])
|
||||
await dynamips_manager.write_image(filename, request.content)
|
||||
response.set_status(204)
|
||||
|
||||
@Route.get(
|
||||
@@ -484,15 +485,15 @@ class DynamipsVMHandler:
|
||||
raw=True,
|
||||
description="Download a Dynamips IOS image")
|
||||
async def download_image(request, response):
|
||||
filename = request.match_info["filename"]
|
||||
|
||||
filename = os.path.normpath(request.match_info["filename"])
|
||||
|
||||
# Raise error if user try to escape
|
||||
if filename[0] == "." or os.path.sep in filename:
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
dynamips_manager = Dynamips.instance()
|
||||
image_path = dynamips_manager.get_abs_image_path(filename)
|
||||
|
||||
# Raise error if user try to escape
|
||||
if filename[0] == ".":
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
await response.stream_file(image_path)
|
||||
|
||||
@Route.post(
|
||||
|
||||
@@ -428,7 +428,8 @@ class IOUHandler:
|
||||
async def upload_image(request, response):
|
||||
|
||||
iou_manager = IOU.instance()
|
||||
await iou_manager.write_image(request.match_info["filename"], request.content)
|
||||
filename = os.path.normpath(request.match_info["filename"])
|
||||
await iou_manager.write_image(filename, request.content)
|
||||
response.set_status(204)
|
||||
|
||||
|
||||
@@ -443,15 +444,15 @@ class IOUHandler:
|
||||
raw=True,
|
||||
description="Download an IOU image")
|
||||
async def download_image(request, response):
|
||||
filename = request.match_info["filename"]
|
||||
|
||||
filename = os.path.normpath(request.match_info["filename"])
|
||||
|
||||
# Raise error if user try to escape
|
||||
if filename[0] == "." or os.path.sep in filename:
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
iou_manager = IOU.instance()
|
||||
image_path = iou_manager.get_abs_image_path(filename)
|
||||
|
||||
# Raise error if user try to escape
|
||||
if filename[0] == ".":
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
await response.stream_file(image_path)
|
||||
|
||||
@Route.get(
|
||||
|
||||
@@ -20,12 +20,12 @@ import asyncio
|
||||
import json
|
||||
import os
|
||||
import psutil
|
||||
import tempfile
|
||||
|
||||
from gns3server.web.route import Route
|
||||
from gns3server.compute.project_manager import ProjectManager
|
||||
from gns3server.compute import MODULES
|
||||
from gns3server.utils.cpu_percent import CpuPercent
|
||||
from gns3server.utils.path import is_safe_path
|
||||
|
||||
from gns3server.schemas.project import (
|
||||
PROJECT_OBJECT_SCHEMA,
|
||||
@@ -247,14 +247,13 @@ class ProjectHandler:
|
||||
|
||||
pm = ProjectManager.instance()
|
||||
project = pm.get_project(request.match_info["project_id"])
|
||||
path = request.match_info["path"]
|
||||
path = os.path.normpath(path)
|
||||
path = os.path.normpath(request.match_info["path"])
|
||||
|
||||
# Raise error if user try to escape
|
||||
if path[0] == ".":
|
||||
if not is_safe_path(path, project.path):
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
path = os.path.join(project.path, path)
|
||||
|
||||
path = os.path.join(project.path, path)
|
||||
await response.stream_file(path)
|
||||
|
||||
@Route.post(
|
||||
@@ -273,15 +272,14 @@ class ProjectHandler:
|
||||
|
||||
pm = ProjectManager.instance()
|
||||
project = pm.get_project(request.match_info["project_id"])
|
||||
path = request.match_info["path"]
|
||||
path = os.path.normpath(path)
|
||||
path = os.path.normpath(request.match_info["path"])
|
||||
|
||||
# Raise error if user try to escape
|
||||
if path[0] == ".":
|
||||
if not is_safe_path(path, project.path):
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
path = os.path.join(project.path, path)
|
||||
|
||||
response.set_status(200)
|
||||
path = os.path.join(project.path, path)
|
||||
response.set_status(201)
|
||||
|
||||
try:
|
||||
os.makedirs(os.path.dirname(path), exist_ok=True)
|
||||
|
||||
@@ -207,7 +207,7 @@ class QEMUHandler:
|
||||
enable_kvm = qemu_manager.config.get_section_config("Qemu").getboolean("enable_kvm")
|
||||
if enable_kvm is not None:
|
||||
hardware_accel = enable_kvm
|
||||
if hardware_accel and "-no-kvm" not in vm.options and "-no-hax" not in vm.options:
|
||||
if hardware_accel and "-machine accel=tcg" not in vm.options:
|
||||
pm = ProjectManager.instance()
|
||||
if pm.check_hardware_virtualization(vm) is False:
|
||||
raise aiohttp.web.HTTPConflict(text="Cannot start VM with hardware acceleration (KVM/HAX) enabled because hardware virtualization (VT-x/AMD-V) is already used by another software like VMware or VirtualBox")
|
||||
@@ -552,7 +552,8 @@ class QEMUHandler:
|
||||
async def upload_image(request, response):
|
||||
|
||||
qemu_manager = Qemu.instance()
|
||||
await qemu_manager.write_image(request.match_info["filename"], request.content)
|
||||
filename = os.path.normpath(request.match_info["filename"])
|
||||
await qemu_manager.write_image(filename, request.content)
|
||||
response.set_status(204)
|
||||
|
||||
@Route.get(
|
||||
@@ -566,15 +567,15 @@ class QEMUHandler:
|
||||
raw=True,
|
||||
description="Download Qemu image")
|
||||
async def download_image(request, response):
|
||||
filename = request.match_info["filename"]
|
||||
|
||||
filename = os.path.normpath(request.match_info["filename"])
|
||||
|
||||
# Raise error if user try to escape
|
||||
if filename[0] == "." or os.path.sep in filename:
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
qemu_manager = Qemu.instance()
|
||||
image_path = qemu_manager.get_abs_image_path(filename)
|
||||
|
||||
# Raise error if user try to escape
|
||||
if filename[0] == ".":
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
await response.stream_file(image_path)
|
||||
|
||||
@Route.get(
|
||||
|
||||
@@ -24,6 +24,7 @@ from gns3server.schemas.version import VERSION_SCHEMA
|
||||
from gns3server.schemas.server_statistics import SERVER_STATISTICS_SCHEMA
|
||||
from gns3server.compute.port_manager import PortManager
|
||||
from gns3server.utils.cpu_percent import CpuPercent
|
||||
from gns3server.utils.path import get_default_project_directory
|
||||
from gns3server.version import __version__
|
||||
from aiohttp.web import HTTPConflict
|
||||
|
||||
@@ -61,7 +62,7 @@ class ServerHandler:
|
||||
load_average_percent = [int(x / psutil.cpu_count() * 100) for x in psutil.getloadavg()]
|
||||
memory_percent = int(psutil.virtual_memory().percent)
|
||||
swap_percent = int(psutil.swap_memory().percent)
|
||||
disk_usage_percent = int(psutil.disk_usage('/').percent)
|
||||
disk_usage_percent = int(psutil.disk_usage(get_default_project_directory()).percent)
|
||||
except psutil.Error as e:
|
||||
raise HTTPConflict(text="Psutil error detected: {}".format(e))
|
||||
response.json({"memory_total": memory_total,
|
||||
|
||||
@@ -64,6 +64,8 @@ class LinkHandler:
|
||||
link = await project.add_link()
|
||||
if "filters" in request.json:
|
||||
await link.update_filters(request.json["filters"])
|
||||
if "link_style" in request.json:
|
||||
await link.update_link_style(request.json["link_style"])
|
||||
if "suspend" in request.json:
|
||||
await link.update_suspend(request.json["suspend"])
|
||||
try:
|
||||
@@ -135,6 +137,8 @@ class LinkHandler:
|
||||
link = project.get_link(request.match_info["link_id"])
|
||||
if "filters" in request.json:
|
||||
await link.update_filters(request.json["filters"])
|
||||
if "link_style" in request.json:
|
||||
await link.update_link_style(request.json["link_style"])
|
||||
if "suspend" in request.json:
|
||||
await link.update_suspend(request.json["suspend"])
|
||||
if "nodes" in request.json:
|
||||
@@ -215,6 +219,7 @@ class LinkHandler:
|
||||
async def pcap(request, response):
|
||||
|
||||
project = await Controller.instance().get_loaded_project(request.match_info["project_id"])
|
||||
ssl_context = Controller.instance().ssl_context()
|
||||
link = project.get_link(request.match_info["link_id"])
|
||||
if not link.capturing:
|
||||
raise aiohttp.web.HTTPConflict(text="This link has no active packet capture")
|
||||
@@ -226,7 +231,7 @@ class LinkHandler:
|
||||
headers['Router-Host'] = request.host
|
||||
body = await request.read()
|
||||
|
||||
connector = aiohttp.TCPConnector(limit=None, force_close=True)
|
||||
connector = aiohttp.TCPConnector(limit=None, force_close=True, ssl_context=ssl_context)
|
||||
async with aiohttp.ClientSession(connector=connector, headers=headers) as session:
|
||||
async with session.request(request.method, pcap_streaming_url, timeout=None, data=body) as response:
|
||||
proxied_response = aiohttp.web.Response(headers=response.headers, status=response.status)
|
||||
|
||||
@@ -409,21 +409,19 @@ class NodeHandler:
|
||||
path = request.match_info["path"]
|
||||
path = force_unix_path(path)
|
||||
|
||||
|
||||
# Raise error if user try to escape
|
||||
if path[0] == ".":
|
||||
if path[0] == "." or "/../" in path:
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
node_type = node.node_type
|
||||
path = "/project-files/{}/{}/{}".format(node_type, node.id, path)
|
||||
|
||||
res = await node.compute.http_query("GET", "/projects/{project_id}/files{path}".format(project_id=project.id, path=path), timeout=None, raw=True)
|
||||
response.set_status(200)
|
||||
response.content_type = "application/octet-stream"
|
||||
response.enable_chunked_encoding()
|
||||
await response.prepare(request)
|
||||
await response.write(res.body)
|
||||
# await response.write_eof() #FIXME: shound't be needed anymore
|
||||
response.set_status(res.status)
|
||||
if res.status == 200:
|
||||
response.content_type = "application/octet-stream"
|
||||
response.enable_chunked_encoding()
|
||||
await response.prepare(request)
|
||||
await response.write(res.body)
|
||||
|
||||
@Route.post(
|
||||
r"/projects/{project_id}/nodes/{node_id}/files/{path:.+}",
|
||||
@@ -446,14 +444,14 @@ class NodeHandler:
|
||||
path = force_unix_path(path)
|
||||
|
||||
# Raise error if user try to escape
|
||||
if path[0] == ".":
|
||||
if path[0] == "." or "/../" in path:
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
node_type = node.node_type
|
||||
path = "/project-files/{}/{}/{}".format(node_type, node.id, path)
|
||||
data = await request.content.read() #FIXME: are we handling timeout or large files correctly?
|
||||
await node.compute.http_query("POST", "/projects/{project_id}/files{path}".format(project_id=project.id, path=path), data=data, timeout=None, raw=True)
|
||||
response.set_status(201)
|
||||
res = await node.compute.http_query("POST", "/projects/{project_id}/files{path}".format(project_id=project.id, path=path), data=data, timeout=None, raw=True)
|
||||
response.set_status(res.status)
|
||||
|
||||
@Route.get(
|
||||
r"/projects/{project_id}/nodes/{node_id}/console/ws",
|
||||
|
||||
@@ -28,6 +28,7 @@ from gns3server.controller import Controller
|
||||
from gns3server.controller.import_project import import_project
|
||||
from gns3server.controller.export_project import export_project
|
||||
from gns3server.utils.asyncio import aiozipstream
|
||||
from gns3server.utils.path import is_safe_path
|
||||
from gns3server.config import Config
|
||||
|
||||
|
||||
@@ -454,14 +455,12 @@ class ProjectHandler:
|
||||
|
||||
controller = Controller.instance()
|
||||
project = await controller.get_loaded_project(request.match_info["project_id"])
|
||||
path = request.match_info["path"]
|
||||
path = os.path.normpath(path).strip('/')
|
||||
path = os.path.normpath(request.match_info["path"])
|
||||
|
||||
# Raise error if user try to escape
|
||||
if path[0] == ".":
|
||||
if not is_safe_path(path, project.path):
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
path = os.path.join(project.path, path)
|
||||
|
||||
await response.stream_file(path)
|
||||
|
||||
@Route.post(
|
||||
@@ -480,15 +479,13 @@ class ProjectHandler:
|
||||
|
||||
controller = Controller.instance()
|
||||
project = await controller.get_loaded_project(request.match_info["project_id"])
|
||||
path = request.match_info["path"]
|
||||
path = os.path.normpath(path).strip("/")
|
||||
path = os.path.normpath(request.match_info["path"])
|
||||
|
||||
# Raise error if user try to escape
|
||||
if path[0] == ".":
|
||||
if not is_safe_path(path, project.path):
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
path = os.path.join(project.path, path)
|
||||
|
||||
response.set_status(200)
|
||||
response.set_status(201)
|
||||
|
||||
try:
|
||||
async with aiofiles.open(path, 'wb+') as f:
|
||||
|
||||
@@ -78,6 +78,22 @@ class ServerHandler:
|
||||
pass
|
||||
response.set_status(201)
|
||||
|
||||
@classmethod
|
||||
@Route.post(
|
||||
r"/reload",
|
||||
description="Reload the local server",
|
||||
status_codes={
|
||||
200: "Server has reloaded"
|
||||
})
|
||||
async def reload(request, response):
|
||||
|
||||
from gns3server.web.web_server import WebServer
|
||||
server = WebServer.instance()
|
||||
try:
|
||||
asyncio.ensure_future(server.reload_server())
|
||||
except asyncio.CancelledError:
|
||||
pass
|
||||
|
||||
@Route.get(
|
||||
r"/version",
|
||||
description="Retrieve the server version number",
|
||||
|
||||
@@ -23,7 +23,6 @@ import urllib.parse
|
||||
from gns3server.web.route import Route
|
||||
from gns3server.controller import Controller
|
||||
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -44,6 +43,24 @@ class SymbolHandler:
|
||||
controller = Controller.instance()
|
||||
response.json(controller.symbols.list())
|
||||
|
||||
@Route.get(
|
||||
r"/symbols/{symbol_id:.+}/dimensions",
|
||||
description="Get the symbol dimensions",
|
||||
status_codes={
|
||||
200: "Symbol dimensions returned"
|
||||
})
|
||||
async def get_dimensions(request, response):
|
||||
|
||||
controller = Controller.instance()
|
||||
symbol_id = urllib.parse.unquote(request.match_info["symbol_id"])
|
||||
try:
|
||||
width, height, _ = controller.symbols.get_size(symbol_id)
|
||||
symbol_dimensions = {'width': width, 'height': height}
|
||||
response.json(symbol_dimensions)
|
||||
except (KeyError, OSError, ValueError) as e:
|
||||
log.warning("Could not get symbol dimensions: {}".format(e))
|
||||
response.set_status(404)
|
||||
|
||||
@Route.get(
|
||||
r"/symbols/{symbol_id:.+}/raw",
|
||||
description="Get the symbol file",
|
||||
|
||||
@@ -92,7 +92,7 @@ class IndexHandler:
|
||||
filename = os.path.join('static', 'web-ui', filename)
|
||||
|
||||
# Raise error if user try to escape
|
||||
if filename[0] == ".":
|
||||
if filename[0] == "." or '/../' in filename:
|
||||
raise aiohttp.web.HTTPForbidden()
|
||||
|
||||
static = get_resource(filename)
|
||||
|
||||
@@ -68,6 +68,27 @@ LINK_OBJECT_SCHEMA = {
|
||||
"type": "boolean",
|
||||
"description": "Suspend the link"
|
||||
},
|
||||
"link_style": {
|
||||
"type": "object",
|
||||
"description": "Link line style",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "Link line color",
|
||||
"type": "string"
|
||||
},
|
||||
"width": {
|
||||
"description": "Link line width",
|
||||
"type": "integer"
|
||||
},
|
||||
"type": {
|
||||
"description": "Link line type",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"filters": FILTER_OBJECT_SCHEMA,
|
||||
"capturing": {
|
||||
"description": "Read only property. True if a capture running on the link",
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
"use strict";(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[26],{91026:function(q,c,a){a.r(c),a.d(c,{TopologySummaryComponent:function(){return N}});var t=a(65508),d=a(96852),_=a(14200),m=a(36889),h=a(3941),f=a(15132),p=a(40098),v=a(39095),u=a(88802),y=a(73044),g=a(59412),x=a(93386);function T(i,e){if(1&i){var o=t.EpF();t.TgZ(0,"div",2),t.NdJ("mousemove",function(r){return t.CHM(o),t.oxw().dragWidget(r)},!1,t.evT)("mouseup",function(){return t.CHM(o),t.oxw().toggleDragging(!1)},!1,t.evT),t.qZA()}}function C(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",29),t.qZA())}function S(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",30),t.qZA())}function b(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",31),t.qZA())}function E(i,e){if(1&i&&(t.TgZ(0,"div"),t._uU(1),t.qZA()),2&i){var o=t.oxw().$implicit;t.xp6(1),t.lnq(" ",o.console_type," ",o.console_host,":",o.console," ")}}function Z(i,e){1&i&&(t.TgZ(0,"div"),t._uU(1," none "),t.qZA())}function O(i,e){if(1&i&&(t.TgZ(0,"div",25),t.TgZ(1,"div"),t.YNc(2,C,2,0,"svg",26),t.YNc(3,S,2,0,"svg",26),t.YNc(4,b,2,0,"svg",26),t._uU(5),t.qZA(),t.YNc(6,E,2,3,"div",27),t.YNc(7,Z,2,0,"div",27),t.qZA()),2&i){var o=e.$implicit;t.xp6(2),t.Q6J("ngIf","started"===o.status),t.xp6(1),t.Q6J("ngIf","suspended"===o.status),t.xp6(1),t.Q6J("ngIf","stopped"===o.status),t.xp6(1),t.hij(" ",o.name," "),t.xp6(1),t.Q6J("ngIf",null!=o.console&&null!=o.console&&"none"!=o.console_type),t.xp6(1),t.Q6J("ngIf",null==o.console||"none"===o.console_type)}}function M(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",29),t.qZA())}function w(i,e){1&i&&(t.O4$(),t.TgZ(0,"svg",28),t._UZ(1,"rect",31),t.qZA())}function A(i,e){if(1&i&&(t.TgZ(0,"div",25),t.TgZ(1,"div"),t.YNc(2,M,2,0,"svg",26),t.YNc(3,w,2,0,"svg",26),t._uU(4),t.qZA(),t.TgZ(5,"div"),t._uU(6),t.qZA(),t.TgZ(7,"div"),t._uU(8),t.qZA(),t.qZA()),2&i){var o=e.$implicit,s=t.oxw(2);t.xp6(2),t.Q6J("ngIf",o.connected),t.xp6(1),t.Q6J("ngIf",!o.connected),t.xp6(1),t.hij(" ",o.name," "),t.xp6(2),t.hij(" ",o.host," "),t.xp6(2),t.hij(" ",s.server.location," ")}}var P=function(i){return{lightTheme:i}},F=function(){return{right:!0,left:!0,bottom:!0,top:!0}};function D(i,e){if(1&i){var o=t.EpF();t.TgZ(0,"div",3),t.NdJ("mousedown",function(){return t.CHM(o),t.oxw().toggleDragging(!0)})("resizeStart",function(){return t.CHM(o),t.oxw().toggleDragging(!1)})("resizeEnd",function(n){return t.CHM(o),t.oxw().onResizeEnd(n)}),t.TgZ(1,"div",4),t.TgZ(2,"mat-tab-group"),t.TgZ(3,"mat-tab",5),t.NdJ("click",function(){return t.CHM(o),t.oxw().toggleTopologyVisibility(!0)}),t.TgZ(4,"div",6),t.TgZ(5,"div",7),t.TgZ(6,"mat-select",8),t.TgZ(7,"mat-optgroup",9),t.TgZ(8,"mat-option",10),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyStatusFilter("started")}),t._uU(9,"started"),t.qZA(),t.TgZ(10,"mat-option",11),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyStatusFilter("suspended")}),t._uU(11,"suspended"),t.qZA(),t.TgZ(12,"mat-option",12),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyStatusFilter("stopped")}),t._uU(13,"stopped"),t.qZA(),t.qZA(),t.TgZ(14,"mat-optgroup",13),t.TgZ(15,"mat-option",14),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyCaptureFilter("capture")}),t._uU(16,"active capture(s)"),t.qZA(),t.TgZ(17,"mat-option",15),t.NdJ("onSelectionChange",function(){return t.CHM(o),t.oxw().applyCaptureFilter("packet")}),t._uU(18,"active packet captures"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(19,"div",16),t.TgZ(20,"mat-select",17),t.NdJ("selectionChange",function(){return t.CHM(o),t.oxw().setSortingOrder()})("valueChange",function(n){return t.CHM(o),t.oxw().sortingOrder=n}),t.TgZ(21,"mat-option",18),t._uU(22,"sort by name ascending"),t.qZA(),t.TgZ(23,"mat-option",19),t._uU(24,"sort by name descending"),t.qZA(),t.qZA(),t.qZA(),t._UZ(25,"mat-divider",20),t.TgZ(26,"div",21),t.YNc(27,O,8,6,"div",22),t.qZA(),t.qZA(),t.qZA(),t.TgZ(28,"mat-tab",23),t.NdJ("click",function(){return t.CHM(o),t.oxw().toggleTopologyVisibility(!1)}),t.TgZ(29,"div",6),t.TgZ(30,"div",24),t.YNc(31,A,9,5,"div",22),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&i){var s=t.oxw();t.Q6J("ngStyle",s.style)("ngClass",t.VKq(9,P,s.isLightThemeEnabled))("validateResize",s.validate)("resizeEdges",t.DdM(11,F))("enableGhostResize",!0),t.xp6(20),t.Q6J("value",s.sortingOrder),t.xp6(6),t.Q6J("ngStyle",s.styleInside),t.xp6(1),t.Q6J("ngForOf",s.filteredNodes),t.xp6(4),t.Q6J("ngForOf",s.computes)}}var N=function(){function i(e,o,s,r,n){this.nodesDataSource=e,this.projectService=o,this.computeService=s,this.linksDataSource=r,this.themeService=n,this.closeTopologySummary=new t.vpe,this.style={},this.styleInside={height:"280px"},this.subscriptions=[],this.nodes=[],this.filteredNodes=[],this.sortingOrder="asc",this.startedStatusFilterEnabled=!1,this.suspendedStatusFilterEnabled=!1,this.stoppedStatusFilterEnabled=!1,this.captureFilterEnabled=!1,this.packetFilterEnabled=!1,this.computes=[],this.isTopologyVisible=!0,this.isDragginLine truncated
|
||||
@@ -23,9 +23,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
@angular-react/core
|
||||
MIT
|
||||
|
||||
@angular/animations
|
||||
MIT
|
||||
|
||||
@@ -371,31 +368,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
angular-persistence
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Scott O'Bryan
|
||||
|
||||
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.
|
||||
|
||||
|
||||
angular-resizable-element
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
@@ -421,30 +393,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
angular2-indexeddb
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Gil Fink and contributors
|
||||
|
||||
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.
|
||||
|
||||
bootstrap
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
@@ -471,34 +419,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
classnames
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Jed Watson
|
||||
|
||||
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.
|
||||
|
||||
|
||||
core-js
|
||||
MIT
|
||||
Copyright (c) 2014-2020 Denis Pushkarev
|
||||
Copyright (c) 2014-2021 Denis Pushkarev
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -519,55 +442,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
css-loader
|
||||
MIT
|
||||
Copyright JS Foundation and other contributors
|
||||
|
||||
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.
|
||||
|
||||
|
||||
css-to-style
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2020 Jacob Buck
|
||||
|
||||
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.
|
||||
|
||||
|
||||
css-tree
|
||||
MIT
|
||||
Copyright (C) 2016-2019 by Roman Dvornov
|
||||
@@ -591,25 +465,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
d
|
||||
ISC
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
d3-array
|
||||
BSD-3-Clause
|
||||
Copyright 2010-2016 Mike Bostock
|
||||
@@ -1687,88 +1542,124 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
dom-helpers
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
mdn-data
|
||||
CC0-1.0
|
||||
CC0 1.0 Universal
|
||||
|
||||
Copyright (c) 2015 Jason Quense
|
||||
Statement of Purpose
|
||||
|
||||
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 laws of most jurisdictions throughout the world automatically confer
|
||||
exclusive Copyright and Related Rights (defined below) upon the creator and
|
||||
subsequent owner(s) (each and all, an "owner") of an original work of
|
||||
authorship and/or a database (each, a "Work").
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
Certain owners wish to permanently relinquish those rights to a Work for the
|
||||
purpose of contributing to a commons of creative, cultural and scientific
|
||||
works ("Commons") that the public can reliably and without fear of later
|
||||
claims of infringement build upon, modify, incorporate in other works, reuse
|
||||
and redistribute as freely as possible in any form whatsoever and for any
|
||||
purposes, including without limitation commercial purposes. These owners may
|
||||
contribute to the Commons to promote the ideal of a free culture and the
|
||||
further production of creative, cultural and scientific works, or to gain
|
||||
reputation or greater distribution for their Work in part through the use and
|
||||
efforts of others.
|
||||
|
||||
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.
|
||||
For these and/or other purposes and motivations, and without any expectation
|
||||
of additional consideration or compensation, the person associating CC0 with a
|
||||
Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
|
||||
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
|
||||
and publicly distribute the Work under its terms, with knowledge of his or her
|
||||
Copyright and Related Rights in the Work and the meaning and intended legal
|
||||
effect of CC0 on those rights.
|
||||
|
||||
eev
|
||||
MIT
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||
protected by copyright and related or neighboring rights ("Copyright and
|
||||
Related Rights"). Copyright and Related Rights include, but are not limited
|
||||
to, the following:
|
||||
|
||||
es5-ext
|
||||
ISC
|
||||
ISC License
|
||||
i. the right to reproduce, adapt, distribute, perform, display, communicate,
|
||||
and translate a Work;
|
||||
|
||||
Copyright (c) 2011-2019, Mariusz Nowak, @medikoo, medikoo.com
|
||||
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
iii. publicity and privacy rights pertaining to a person's image or likeness
|
||||
depicted in a Work;
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
iv. rights protecting against unfair competition in regards to a Work,
|
||||
subject to the limitations in paragraph 4(a), below;
|
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data in
|
||||
a Work;
|
||||
|
||||
es6-symbol
|
||||
ISC
|
||||
ISC License
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||
European Parliament and of the Council of 11 March 1996 on the legal
|
||||
protection of databases, and under any national implementation thereof,
|
||||
including any amended or successor version of such directive); and
|
||||
|
||||
Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
|
||||
vii. other similar, equivalent or corresponding rights throughout the world
|
||||
based on applicable law or treaty, and any national implementations thereof.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention of,
|
||||
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
|
||||
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
|
||||
and Related Rights and associated claims and causes of action, whether now
|
||||
known or unknown (including existing as well as future claims and causes of
|
||||
action), in the Work (i) in all territories worldwide, (ii) for the maximum
|
||||
duration provided by applicable law or treaty (including future time
|
||||
extensions), (iii) in any current or future medium and for any number of
|
||||
copies, and (iv) for any purpose whatsoever, including without limitation
|
||||
commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
|
||||
the Waiver for the benefit of each member of the public at large and to the
|
||||
detriment of Affirmer's heirs and successors, fully intending that such Waiver
|
||||
shall not be subject to revocation, rescission, cancellation, termination, or
|
||||
any other legal or equitable action to disrupt the quiet enjoyment of the Work
|
||||
by the public as contemplated by Affirmer's express Statement of Purpose.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason be
|
||||
judged legally invalid or ineffective under applicable law, then the Waiver
|
||||
shall be preserved to the maximum extent permitted taking into account
|
||||
Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
|
||||
is so judged Affirmer hereby grants to each affected person a royalty-free,
|
||||
non transferable, non sublicensable, non exclusive, irrevocable and
|
||||
unconditional license to exercise Affirmer's Copyright and Related Rights in
|
||||
the Work (i) in all territories worldwide, (ii) for the maximum duration
|
||||
provided by applicable law or treaty (including future time extensions), (iii)
|
||||
in any current or future medium and for any number of copies, and (iv) for any
|
||||
purpose whatsoever, including without limitation commercial, advertising or
|
||||
promotional purposes (the "License"). The License shall be deemed effective as
|
||||
of the date CC0 was applied by Affirmer to the Work. Should any part of the
|
||||
License for any reason be judged legally invalid or ineffective under
|
||||
applicable law, such partial invalidity or ineffectiveness shall not
|
||||
invalidate the remainder of the License, and in such case Affirmer hereby
|
||||
affirms that he or she will not (i) exercise any of his or her remaining
|
||||
Copyright and Related Rights in the Work or (ii) assert any associated claims
|
||||
and causes of action with respect to the Work, in either case contrary to
|
||||
Affirmer's express Statement of Purpose.
|
||||
|
||||
4. Limitations and Disclaimers.
|
||||
|
||||
ext
|
||||
ISC
|
||||
ISC License
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||
surrendered, licensed or otherwise affected by this document.
|
||||
|
||||
Copyright (c) 2011-2019, Mariusz Nowak, @medikoo, medikoo.com
|
||||
b. Affirmer offers the Work as-is and makes no representations or warranties
|
||||
of any kind concerning the Work, express, implied, statutory or otherwise,
|
||||
including without limitation warranties of title, merchantability, fitness
|
||||
for a particular purpose, non infringement, or the absence of latent or
|
||||
other defects, accuracy, or the present or absence of errors, whether or not
|
||||
discoverable, all to the greatest extent permissible under applicable law.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||
that may apply to the Work or any use thereof, including without limitation
|
||||
any person's Copyright and Related Rights in the Work. Further, Affirmer
|
||||
disclaims responsibility for obtaining any necessary consents, permissions
|
||||
or other rights required for any use of the Work.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||
party to this document and has no duty or obligation with respect to this
|
||||
CC0 or use of the Work.
|
||||
|
||||
For more information, please see
|
||||
<http://creativecommons.org/publicdomain/zero/1.0/>
|
||||
|
||||
|
||||
mousetrap
|
||||
@@ -1977,6 +1868,7 @@ ngx-childprocess
|
||||
MIT
|
||||
|
||||
ngx-device-detector
|
||||
MIT
|
||||
|
||||
ngx-electron
|
||||
MIT
|
||||
@@ -2187,157 +2079,6 @@ Apache-2.0
|
||||
limitations under the License.
|
||||
|
||||
|
||||
object-assign
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
||||
|
||||
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.
|
||||
|
||||
|
||||
prop-types
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2013-present, Facebook, Inc.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
prop-types-extra
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 react-bootstrap
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||
react
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) Facebook, Inc. and its affiliates.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
react-bootstrap
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff
|
||||
|
||||
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.
|
||||
|
||||
|
||||
react-dom
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) Facebook, Inc. and its affiliates.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
regenerator-runtime
|
||||
MIT
|
||||
MIT License
|
||||
@@ -2801,31 +2542,6 @@ THE SOFTWARE.
|
||||
|
||||
|
||||
|
||||
scheduler
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) Facebook, Inc. and its affiliates.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
source-map
|
||||
BSD-3-Clause
|
||||
|
||||
@@ -2859,7 +2575,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
spark-md5
|
||||
WTFPL
|
||||
(WTFPL OR MIT)
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
@@ -2875,31 +2591,6 @@ WTFPL
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
|
||||
|
||||
stylenames
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016 Kevin
|
||||
|
||||
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.
|
||||
|
||||
|
||||
svg-crowbar
|
||||
MIT
|
||||
Copyright (c) 2013 The New York Times
|
||||
@@ -2926,25 +2617,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
type
|
||||
ISC
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2019, Mariusz Nowak, @medikoo, medikoo.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
uuid
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
@@ -2970,55 +2642,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
warning
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2013-present, Facebook, Inc.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
webpack
|
||||
MIT
|
||||
Copyright JS Foundation and other contributors
|
||||
|
||||
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.
|
||||
|
||||
|
||||
xterm
|
||||
MIT
|
||||
Copyright (c) 2017-2019, The xterm.js authors (https://github.com/xtermjs/xterm.js)
|
||||
@@ -3094,7 +2717,7 @@ zone.js
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2020 Google LLC. http://angular.io/license
|
||||
Copyright (c) 2010-2020 Google LLC. https://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
GNS3 WebUI is web implementation of user interface for GNS3 software.
|
||||
|
||||
Current version: 2.2.19
|
||||
Current version: 2.2.24
|
||||
|
||||
Bug Fixes & enhancements
|
||||
- security fixes
|
||||
|
||||
Current version: 2020.4.0-beta.1
|
||||
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<!DOCTYPE html><html lang="en"><head>
|
||||
<meta charset="utf-8">
|
||||
<title>GNS3 Web UI</title>
|
||||
<!-- It's important to have base here because of the script below //-->
|
||||
<base href="/static/web-ui/"/>
|
||||
<base href="/static/web-ui/">
|
||||
|
||||
<script>
|
||||
var userAgent = navigator.userAgent.toLowerCase();
|
||||
@@ -20,12 +18,12 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<link rel="icon" type="image/x-icon" href="assets/favicon.ico"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="assets/favicon.ico">
|
||||
|
||||
<script type="application/javascript">
|
||||
// Github Pages redirection
|
||||
(function() {
|
||||
(function () {
|
||||
var redirect = sessionStorage.redirect;
|
||||
delete sessionStorage.redirect;
|
||||
if (redirect && redirect != location.href) {
|
||||
@@ -33,7 +31,7 @@
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<link rel="stylesheet" href="styles.0942250f369e8f2d5439.css"></head>
|
||||
<style>@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,0.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;}*,:after,:before{box-sizing:border-box;}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth;}}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-family:var(--bs-body-font-family);font-size:1rem;font-size:var(--bs-body-font-size);font-weight:400;font-weight:var(--bs-body-font-weight);line-height:1.5;line-height:var(--bs-body-line-height);color:#212529;color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:#fff;background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;}@font-face{font-family:Noto Sans;src:url(NotoSans-Regular.f55982ed9f2bc3af6185.eot);src:local("Noto Sans Regular"),local("NotoSans-Regular"),url(NotoSans-Regular.f55982ed9f2bc3af6185.eot?#iefix) format("embedded-opentype"),url(NotoSans-Regular.730e73a4d4556fa0efe8.woff2) format("woff2"),url(NotoSans-Regular.22c53c8686edcaecdf66.woff) format("woff"),url(NotoSans-Regular.e962f548522aa99bb8f9.ttf) format("truetype"),url(NotoSans-Regular.8142e5b2e99a1cccafb7.svg#NotoSans-Regular) format("svg");font-weight:400;font-style:normal;}@font-face{font-family:Noto Sans;src:url(NotoSans-Italic.1506cb93f574152bda3d.eot);src:local("Noto Sans Italic"),local("NotoSans-Italic"),url(NotoSans-Italic.1506cb93f574152bda3d.eot?#iefix) format("embedded-opentype"),url(NotoSans-Italic.ca985d172a576d01c77e.woff2) format("woff2"),url(NotoSans-Italic.8a08f0f08e448e4f522e.woff) format("woff"),url(NotoSans-Italic.08690ed789a5532ed7be.ttf) format("truetype"),url(NotoSans-Italic.cecaa17f122ac96a50f8.svg#NotoSans-Italic) format("svg");font-weight:400;font-style:italic;}@font-face{font-family:Noto Sans;src:url(NotoSans-Bold.fe2c3263802c4469728b.eot);src:local("Noto Sans Bold"),local("NotoSans-Bold"),url(NotoSans-Bold.fe2c3263802c4469728b.eot?#iefix) format("embedded-opentype"),url(NotoSans-Bold.3ea2282022a16bb2827b.woff2) format("woff2"),url(NotoSans-Bold.364158e7b3016f83790a.woff) format("woff"),url(NotoSans-Bold.82b1a58ddf26951345dc.ttf) format("truetype"),url(NotoSans-Bold.18ef6a21171328dc11a9.svg#NotoSans-Bold) format("svg");font-weight:700;font-style:normal;}@font-face{font-family:Noto Sans;src:url(NotoSans-BoldItalic.b40d78b2f9e2490108d0.eot);src:local("Noto Sans BoldItalic"),local("NotoSans-BoldItalic"),url(NotoSans-BoldItalic.b40d78b2f9e2490108d0.eot?#iefix) format("embedded-opentype"),url(NotoSans-BoldItalic.f2639d17cfb5c6e74edd.woff2) format("woff2"),url(NotoSans-BoldItalic.ed8d2295c0b2e0a854d8.woff) format("woff"),url(NotoSans-BoldItalic.9e49c91c40231a024afb.ttf) format("truetype"),url(NotoSans-BoldItalic.7930d6e32b12448fc0ae.svg#NotoSans-BoldItalic) format("svg");font-weight:700;font-style:italic;}body{background-color:#e8ecef;}app-root{width:100%;}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:100;src:local("Roboto Thin "),local("Roboto-Thin"),url(roboto-latin-100.c2aa4ab115bf9c6057cb.woff2) format("woff2"),url(roboto-latin-100.a45108d3b34af91f9113.woff) format("woff");}@font-face{font-family:Roboto;font-style:italic;font-display:swap;font-weight:100;src:local("Roboto Thin italic"),local("Roboto-Thinitalic"),url(roboto-latin-100italic.7f839a8652da29745ce4.woff2) format("woff2"),url(roboto-latin-100italic.451d4e559d6f57cdf6a1.woff) format("woff");}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:300;sLine truncated
|
||||
<!-- <body class="mat-app-background" oncontextmenu="return false;"> -->
|
||||
<body class="mat-app-background" oncontextmenu="return false;">
|
||||
<app-root></app-root>
|
||||
@@ -41,12 +39,13 @@
|
||||
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-5D6FZL9923"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag()
|
||||
|
||||
{dataLayer.push(arguments);}
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-5D6FZL9923');
|
||||
</script>
|
||||
<script src="runtime.7425f237727658da0a30.js" defer></script><script src="polyfills-es5.b186ac526f152db6b6ba.js" nomodule defer></script><script src="polyfills.4fe1bb939733274d40c5.js" defer></script><script src="main.490039d90f88a1275b1d.js" defer></script></body>
|
||||
</html>
|
||||
<script src="runtime.001148a9d0f7b37d03b4.js" defer></script><script src="polyfills-es5.300b3ac245f51be06907.js" nomodule defer></script><script src="polyfills.519e27ac94450b1b7e67.js" defer></script><script src="main.99bd505aa7e5588a7375.js" defer></script>
|
||||
|
||||
</body></html>
|
||||
@@ -1 +0,0 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{"+/L5":function(e,t,n){var r=n("t1UP").isCustomProperty,i=n("vd7W").TYPE,o=n("4njK").mode,a=i.Ident,s=i.Hash,c=i.Colon,l=i.Semicolon,u=i.Delim;function h(e){return this.Raw(e,o.exclamationMarkOrSemicolon,!0)}function d(e){return this.Raw(e,o.exclamationMarkOrSemicolon,!1)}function f(){var e=this.scanner.tokenIndex,t=this.Value();return"Raw"!==t.type&&!1===this.scanner.eof&&this.scanner.tokenType!==l&&!1===this.scanner.isDelim(33)&&!1===this.scanner.isBalanceEdge(e)&&this.error(),t}function p(){var e=this.scanner.tokenStart;if(this.scanner.tokenType===u)switch(this.scanner.source.charCodeAt(this.scanner.tokenStart)){case 42:case 36:case 43:case 35:case 38:this.scanner.next();break;case 47:this.scanner.next(),this.scanner.isDelim(47)&&this.scanner.next()}return this.eat(this.scanner.tokenType===s?s:a),this.scanner.substrToCursor(e)}function m(){this.eat(u),this.scanner.skipSC();var e=this.consume(a);return"important"===e||e}e.exports={name:"Declaration",structure:{important:[Boolean,String],property:String,value:["Value","Raw"]},parse:function(){var e,t=this.scanner.tokenStart,n=this.scanner.tokenIndex,i=p.call(this),o=r(i),a=o?this.parseCustomProperty:this.parseValue,s=o?d:h,u=!1;return this.scanner.skipSC(),this.eat(c),o||this.scanner.skipSC(),e=a?this.parseWithFallback(f,s):s.call(this,this.scanner.tokenIndex),this.scanner.isDelim(33)&&(u=m.call(this),this.scanner.skipSC()),!1===this.scanner.eof&&this.scanner.tokenType!==l&&!1===this.scanner.isBalanceEdge(n)&&this.error(),{type:"Declaration",loc:this.getLocation(t,this.scanner.tokenStart),important:u,property:i,value:e}},generate:function(e){this.chunk(e.property),this.chunk(":"),this.node(e.value),e.important&&this.chunk(!0===e.important?"!important":"!"+e.important)},walkContext:"declaration"}},"+4/i":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("qCKp"),i=n("odkN");r.Observable.prototype.let=i.letProto,r.Observable.prototype.letBind=i.letProto},"+EXs":function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,"a",function(){return o});var i=n("JL25");function o(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?Object(i.a)(e):t}},"+Kd2":function(e,t,n){var r=n("vd7W").TYPE,i=n("4njK").mode,o=r.Comma;e.exports=function(){var e=this.createList();return this.scanner.skipSC(),e.push(this.Identifier()),this.scanner.skipSC(),this.scanner.tokenType===o&&(e.push(this.Operator()),e.push(this.parseCustomProperty?this.Value(null):this.Raw(this.scanner.tokenIndex,i.exclamationMarkOrSemicolon,!1))),e}},"+Wds":function(e,t,n){"use strict";var r=String.prototype.indexOf;e.exports=function(e){return r.call(this,e,arguments[1])>-1}},"+XMV":function(e,t,n){"use strict";e.exports=n("GOzd")()?String.prototype.contains:n("+Wds")},"+oeQ":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("qCKp"),i=n("H+DX");r.Observable.prototype.observeOn=i.observeOn},"+psR":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("qCKp"),i=n("16Oq");r.Observable.prototype.retry=i.retry},"+qxJ":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("qCKp"),i=n("GsYY");r.Observable.prototype.distinctUntilChanged=i.distinctUntilChanged},"+v8i":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("qCKp");r.Observable.concat=r.concat},"+wdc":function(e,t,n){"use strict";var r,i,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var c=Date,l=c.now();t.unstable_now=function(){return c.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,h=null,d=function e(){if(null!==u)try{var n=t.unstable_now();u(!0,n),u=null}catch(r){throw setTimeout(e,0),r}};r=function(e){null!==u?setTimeout(r,0,e):(u=e,setTimeout(d,0))},i=function(e,t){h=setTimeout(e,t)},o=function(){clearTimeout(h)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var g=!1,v=null,b=-1,y=5,_=0;t.unstable_shouldYield=function(){return t.unstable_now()>=_},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a posiLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[179],{98255:function(ce){function q(f){return Promise.resolve().then(function(){var U=new Error("Cannot find module '"+f+"'");throw U.code="MODULE_NOT_FOUND",U})}q.keys=function(){return[]},q.resolve=q,q.id=98255,ce.exports=q},82908:function(ce){ce.exports=function(f,U){(null==U||U>f.length)&&(U=f.length);for(var B=0,V=new Array(U);B<U;B++)V[B]=f[B];return V},ce.exports.default=ce.exports,ce.exports.__esModule=!0},36457:function(ce){ce.exports=function(f){if(Array.isArray(f))return f},ce.exports.default=ce.exports,ce.exports.__esModule=!0},35036:function(ce){ce.exports=function(f,U){var B=null==f?null:"undefined"!=typeof Symbol&&f[Symbol.iterator]||f["@@iterator"];if(null!=B){var I,C,V=[],Z=!0,T=!1;try{for(B=B.call(f);!(Z=(I=B.next()).done)&&(V.push(I.value),!U||V.length!==U);Z=!0);}catch(v){T=!0,C=v}finally{try{!Z&&null!=B.return&&B.return()}finally{if(T)throw C}}return V}},ce.exports.default=ce.exports,ce.exports.__esModule=!0},13969:function(ce){ce.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},ce.exports.default=ce.exports,ce.exports.__esModule=!0},6326:function(ce,q,f){var U=f(36457),B=f(35036),V=f(54850),Z=f(13969);ce.exports=function(I,C){return U(I)||B(I,C)||V(I,C)||Z()},ce.exports.default=ce.exports,ce.exports.__esModule=!0},54850:function(ce,q,f){var U=f(82908);ce.exports=function(V,Z){if(V){if("string"==typeof V)return U(V,Z);var T=Object.prototype.toString.call(V).slice(8,-1);if("Object"===T&&V.constructor&&(T=V.constructor.name),"Map"===T||"Set"===T)return Array.from(V);if("Arguments"===T||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(T))return U(V,Z)}},ce.exports.default=ce.exports,ce.exports.__esModule=!0},26552:function(ce,q,f){ce.exports=f(55590)},61855:function(ce,q,f){"use strict";f.d(q,{ZT:function(){return B},mG:function(){return v},Jh:function(){return P},ev:function(){return N}});var U=function(te,se){return(U=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(le,de){le.__proto__=de}||function(le,de){for(var ue in de)Object.prototype.hasOwnProperty.call(de,ue)&&(le[ue]=de[ue])})(te,se)};function B(te,se){if("function"!=typeof se&&null!==se)throw new TypeError("Class extends value "+String(se)+" is not a constructor or null");function le(){this.constructor=te}U(te,se),te.prototype=null===se?Object.create(se):(le.prototype=se.prototype,new le)}function v(te,se,le,de){return new(le||(le=Promise))(function(ae,Me){function ye(_t){try{He(de.next(_t))}catch(yt){Me(yt)}}function ot(_t){try{He(de.throw(_t))}catch(yt){Me(yt)}}function He(_t){_t.done?ae(_t.value):function(ae){return ae instanceof le?ae:new le(function(Me){Me(ae)})}(_t.value).then(ye,ot)}He((de=de.apply(te,se||[])).next())})}function P(te,se){var de,ue,ae,Me,le={label:0,sent:function(){if(1&ae[0])throw ae[1];return ae[1]},trys:[],ops:[]};return Me={next:ye(0),throw:ye(1),return:ye(2)},"function"==typeof Symbol&&(Me[Symbol.iterator]=function(){return this}),Me;function ye(He){return function(_t){return function(He){if(de)throw new TypeError("Generator is already executing.");for(;le;)try{if(de=1,ue&&(ae=2&He[0]?ue.return:He[0]?ue.throw||((ae=ue.return)&&ae.call(ue),0):ue.next)&&!(ae=ae.call(ue,He[1])).done)return ae;switch(ue=0,ae&&(He=[2&He[0],ae.value]),He[0]){case 0:case 1:ae=He;break;case 4:return le.label++,{value:He[1],done:!1};case 5:le.label++,ue=He[1],He=[0];continue;case 7:He=le.ops.pop(),le.trys.pop();continue;default:if(!(ae=(ae=le.trys).length>0&&ae[ae.length-1])&&(6===He[0]||2===He[0])){le=0;continue}if(3===He[0]&&(!ae||He[1]>ae[0]&&He[1]<ae[3])){le.label=He[1];break}if(6===He[0]&&le.label<ae[1]){le.label=ae[1],ae=He;break}if(ae&&le.label<ae[2]){le.label=ae[2],le.ops.push(He);break}ae[2]&&le.ops.pop(),le.trys.pop();continue}He=se.call(te,le)}catch(_t){He=[6,_t],ue=0}finally{de=ae=0}if(5&He[0])throw He[1];return{value:He[0]?He[1]:void 0,done:!0}}([He,_t])}}}function N(te,se,le){if(le||2===arguments.length)for(var ae,de=0,ue=se.length;de<ue;de++)(ae||!(de in se))&&(ae||(ae=Array.prototype.slice.call(se,0,de)),ae[de]=se[de]);return te.concat(ae||Array.prototype.slice.call(se))}},739:function(ce,q,f){"use strict";f.d(q,{l3:function(){return T},_j:function(){return V},LC:function(){return Z},ZN:function(){return O},jt:function(){return C},pV:function(){return k},F4:function(){return A},IO:function(){return E},vP:function(){return P},SB:function(){return M},oB:function(){return D},eR:function(){return y},X$:function(){return I},ZE:function(){return L},k1:function(){return j}});var U=f(14105),B=f(18967),V=function K(){(0,B.Z)(this,K)},Z=function K(){(0,B.Z)(this,K)},T="*";function I(K,W){return{type:7,name:K,definitions:W,options:{}}}function C(K){var W=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{type:4,styles:W,timings:K}}function P(K){var W=arguments.length>1&&void 0!==arguments[1]?Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[698,429],{92137:function(o,c,t){t(59889),t(8963),t(60145),t(24943),t(8040),t(22665),t(4209),t(82972);var e=t(41071);o.exports=e.Date},16488:function(o,c,t){t(2310),t(56942),t(17500),t(76743),t(38651),t(31070),t(45929),t(98267),t(50346),t(32973),t(42017),t(46895),t(64031),t(93237),t(51641),t(60329),t(38145),t(11821);var e=t(41071);o.exports=e.Math},26596:function(o,c,t){t(7587),t(13961),t(47316),t(82196),t(93011),t(44693),t(5531),t(66389),t(22917),t(90543),t(28327),t(77197);var e=t(41071);o.exports=e.Number},73846:function(o,c,t){t(96886),t(10887),t(29982),t(93241),t(62099),t(48087),t(1853),t(46692),t(7211),t(75418),t(45015),t(86052),t(4569),t(52209),t(90573),t(35212),t(15695),t(80774),t(38145),t(75458);var e=t(41071);o.exports=e.Symbol},69566:function(o){o.exports=function(c){if("function"!=typeof c)throw TypeError(String(c)+" is not a function");return c}},12222:function(o,c,t){var e=t(80285);o.exports=function(r){if(!e(r)&&null!==r)throw TypeError("Can't set "+String(r)+" as a prototype");return r}},68756:function(o,c,t){var e=t(93636),r=t(64121),n=t(29017),a=e("unscopables"),s=Array.prototype;null==s[a]&&n.f(s,a,{configurable:!0,value:r(null)}),o.exports=function(i){s[a][i]=!0}},28565:function(o,c,t){"use strict";var e=t(8271).charAt;o.exports=function(r,n,a){return n+(a?e(r,n).length:1)}},48883:function(o){o.exports=function(c,t,e){if(!(c instanceof t))throw TypeError("Incorrect "+(e?e+" ":"")+"invocation");return c}},68485:function(o,c,t){var e=t(80285);o.exports=function(r){if(!e(r))throw TypeError(String(r)+" is not an object");return r}},61969:function(o,c,t){"use strict";var e=t(64132),r=t(30581),n=t(46681),a=Math.min;o.exports=[].copyWithin||function(i,u){var f=e(this),l=n(f.length),d=r(i,l),h=r(u,l),m=arguments.length>2?arguments[2]:void 0,I=a((void 0===m?l:r(m,l))-h,l-d),v=1;for(h<d&&d<h+I&&(v=-1,h+=I-1,d+=I-1);I-- >0;)h in f?f[d]=f[h]:delete f[d],d+=v,h+=v;return f}},25771:function(o,c,t){"use strict";var e=t(64132),r=t(30581),n=t(46681);o.exports=function(s){for(var i=e(this),u=n(i.length),f=arguments.length,l=r(f>1?arguments[1]:void 0,u),d=f>2?arguments[2]:void 0,h=void 0===d?u:r(d,u);h>l;)i[l++]=s;return i}},84875:function(o,c,t){"use strict";var e=t(43887).forEach,n=t(48561)("forEach");o.exports=n?[].forEach:function(s){return e(this,s,arguments.length>1?arguments[1]:void 0)}},81690:function(o,c,t){"use strict";var e=t(96935),r=t(64132),n=t(62873),a=t(86778),s=t(46681),i=t(51823),u=t(45149);o.exports=function(l){var P,y,p,S,O,T,d=r(l),h="function"==typeof this?this:Array,m=arguments.length,I=m>1?arguments[1]:void 0,v=void 0!==I,E=u(d),g=0;if(v&&(I=e(I,m>2?arguments[2]:void 0,2)),null==E||h==Array&&a(E))for(y=new h(P=s(d.length));P>g;g++)T=v?I(d[g],g):d[g],i(y,g,T);else for(O=(S=E.call(d)).next,y=new h;!(p=O.call(S)).done;g++)T=v?n(S,I,[p.value,g],!0):p.value,i(y,g,T);return y.length=g,y}},8069:function(o,c,t){var e=t(32580),r=t(46681),n=t(30581),a=function(s){return function(i,u,f){var m,l=e(i),d=r(l.length),h=n(f,d);if(s&&u!=u){for(;d>h;)if((m=l[h++])!=m)return!0}else for(;d>h;h++)if((s||h in l)&&l[h]===u)return s||h||0;return!s&&-1}};o.exports={includes:a(!0),indexOf:a(!1)}},43887:function(o,c,t){var e=t(96935),r=t(36994),n=t(64132),a=t(46681),s=t(77192),i=[].push,u=function(f){var l=1==f,d=2==f,h=3==f,m=4==f,I=6==f,v=7==f,E=5==f||I;return function(g,P,y,p){for(var w,V,S=n(g),O=r(S),T=e(P,y,3),j=a(O.length),x=0,M=p||s,C=l?M(g,j):d||v?M(g,0):void 0;j>x;x++)if((E||x in O)&&(V=T(w=O[x],x,S),f))if(l)C[x]=V;else if(V)switch(f){case 3:return!0;case 5:return w;case 6:return x;case 2:i.call(C,w)}else switch(f){case 4:return!1;case 7:i.call(C,w)}return I?-1:h||m?m:C}};o.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},63715:function(o,c,t){"use strict";var e=t(32580),r=t(27543),n=t(46681),a=t(48561),s=Math.min,i=[].lastIndexOf,u=!!i&&1/[1].lastIndexOf(1,-0)<0,f=a("lastIndexOf");o.exports=u||!f?function(h){if(u)return i.apply(this,arguments)||0;var m=e(this),I=n(m.length),v=I-1;for(arguments.length>1&&(v=s(v,r(arguments[1]))),v<0&&(v=I+v);v>=0;v--)if(v in m&&m[v]===h)return v||0;return-1}:i},60551:function(o,c,t){var e=t(58889),r=t(93636),n=t(32046),a=r("species");o.exports=function(s){return n>=51||!e(function(){var i=[];return(i.constructor={})[a]=function(){return{foo:1}},1!==i[s](Boolean).foo})}},48561:function(o,c,t){"use strict";var e=t(58889);o.exports=function(r,n){var a=[][r];return!!a&&e(function(){a.call(null,n||function(){throw 1},1)})}},11241:function(o,c,t){var e=t(69566),r=t(64132),n=t(36994),a=t(46681),s=function(i){return function(u,f,l,d){e(f);var h=r(u),m=n(h),I=a(h.length),v=i?I-1:0,E=i?-1:1;if(l<2)for(;;){if(v in m){d=m[v],v+=E;break}if(v+=E,i?v<0:I<=v)throw TypeError("Reduce of empty array with no initial value")}for(;i?v>=0:I>v;v+=E)v in m&&(d=f(d,m[v],v,h));return d}};o.exports={left:s(!1),right:s(!0)}},93483:function(o){var c=Math.floor,t=functLine truncated
|
||||
@@ -1 +0,0 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"+5Eg":function(t,e,n){var r=n("wA6s"),o=n("6XUM"),i=n("M7Xk").onFreeze,a=n("cZY6"),c=n("rG8t"),u=Object.seal;r({target:"Object",stat:!0,forced:c(function(){u(1)}),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},"+IJR":function(t,e,n){n("wA6s")({target:"Number",stat:!0},{isNaN:function(t){return t!=t}})},"/AsP":function(t,e,n){var r=n("yIiL"),o=n("SDMg"),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},"/Ybd":function(t,e,n){var r=n("T69T"),o=n("XdSI"),i=n("F26l"),a=n("LdO1"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"0Ds2":function(t,e,n){var r=n("m41k")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(o){}}return!1}},"0TWp":function(t,e,n){var r,o;void 0===(o="function"==typeof(r=function(){"use strict";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");var o=t.__Zone_symbol_prefix||"__zone_symbol__";function i(t){return o+t}var a=!0===t[i("forceDuplicateZoneCheck")];if(t.Zone){if(a||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}var c=function(){function e(t,e){this._parent=t,this._name=e?e.name||"unnamed":"<root>",this._properties=e&&e.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,e)}return e.assertZonePatched=function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(e,"root",{get:function(){for(var t=e.current;t.parent;)t=t.parent;return t},enumerable:!1,configurable:!0}),Object.defineProperty(e,"current",{get:function(){return P.zone},enumerable:!1,configurable:!0}),Object.defineProperty(e,"currentTask",{get:function(){return I},enumerable:!1,configurable:!0}),e.__load_patch=function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error("Already loaded patch: "+o)}else if(!t["__Zone_disable_"+o]){var c="Zone:"+o;n(c),M[o]=i(t,e,j),r(c,c)}},Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!1,configurable:!0}),e.prototype.get=function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]},e.prototype.getZoneWith=function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null},e.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},e.prototype.wrap=function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}},e.prototype.run=function(t,e,n,r){P={parent:P,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{P=P.parent}},e.prototype.runGuarded=function(t,e,n,r){void 0===e&&(e=null),P={parent:P,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{P=P.parent}},e.prototype.runTask=function(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");if(t.state!==w||t.type!==A&&t.type!==O){var r=t.state!=x;r&&t._transitionTo(x,E),t.runCount++;var o=I;I=t,P={parent:P,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==w&&t.state!==_&&(t.type==A||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,x):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(w,x,w))),P=P.parent,I=o}}},e.prototype.scheduleTask=function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+t.zone.name);e=e.parent}t._transitionTo(k,w);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,k,w),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==k&&t._transitionTo(E,k),t},e.prototype.scheduleMicroTask=function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))},e.prototype.scheduleMacroTask=function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))},e.prototype.scheduleEventTask=function(t,e,n,r,o){return this.scheduleTask(new l(A,t,e,n,r,o))},e.protoLine truncated
|
||||
@@ -1 +0,0 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"0TWp":function(e,t,n){var r,o;void 0===(o="function"==typeof(r=function(){"use strict";!function(e){var t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function r(e,n){t&&t.measure&&t.measure(e,n)}n("Zone");var o=e.__Zone_symbol_prefix||"__zone_symbol__";function a(e){return o+e}var i=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(i||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}var c=function(){function t(e,t){this._parent=e,this._name=t?t.name||"unnamed":"<root>",this._properties=t&&t.properties||{},this._zoneDelegate=new u(this,this._parent&&this._parent._zoneDelegate,t)}return t.assertZonePatched=function(){if(e.Promise!==D.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(t,"root",{get:function(){for(var e=t.current;e.parent;)e=e.parent;return e},enumerable:!1,configurable:!0}),Object.defineProperty(t,"current",{get:function(){return j.zone},enumerable:!1,configurable:!0}),Object.defineProperty(t,"currentTask",{get:function(){return z},enumerable:!1,configurable:!0}),t.__load_patch=function(o,a){if(D.hasOwnProperty(o)){if(i)throw Error("Already loaded patch: "+o)}else if(!e["__Zone_disable_"+o]){var c="Zone:"+o;n(c),D[o]=a(e,t,C),r(c,c)}},Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},enumerable:!1,configurable:!0}),t.prototype.get=function(e){var t=this.getZoneWith(e);if(t)return t._properties[e]},t.prototype.getZoneWith=function(e){for(var t=this;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null},t.prototype.fork=function(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)},t.prototype.wrap=function(e,t){if("function"!=typeof e)throw new Error("Expecting function got: "+e);var n=this._zoneDelegate.intercept(this,e,t),r=this;return function(){return r.runGuarded(n,this,arguments,t)}},t.prototype.run=function(e,t,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,r)}finally{j=j.parent}},t.prototype.runGuarded=function(e,t,n,r){void 0===t&&(t=null),j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}},t.prototype.runTask=function(e,t,n){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||m).name+"; Execution: "+this.name+")");if(e.state!==b||e.type!==Z&&e.type!==P){var r=e.state!=E;r&&e._transitionTo(E,T),e.runCount++;var o=z;z=e,j={parent:j,zone:this};try{e.type==P&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(a){if(this._zoneDelegate.handleError(this,a))throw a}}finally{e.state!==b&&e.state!==S&&(e.type==Z||e.data&&e.data.isPeriodic?r&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),r&&e._transitionTo(b,E,b))),j=j.parent,z=o}}},t.prototype.scheduleTask=function(e){if(e.zone&&e.zone!==this)for(var t=this;t;){if(t===e.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+e.zone.name);t=t.parent}e._transitionTo(k,b);var n=[];e._zoneDelegates=n,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(r){throw e._transitionTo(S,k,b),this._zoneDelegate.handleError(this,r),r}return e._zoneDelegates===n&&this._updateTaskCount(e,1),e.state==k&&e._transitionTo(T,k),e},t.prototype.scheduleMicroTask=function(e,t,n,r){return this.scheduleTask(new p(O,e,t,n,r,void 0))},t.prototype.scheduleMacroTask=function(e,t,n,r,o){return this.scheduleTask(new p(P,e,t,n,r,o))},t.prototype.scheduleEventTask=function(e,t,n,r,o){return this.scheduleTask(new p(Z,e,t,n,r,o))},t.prototype.cancelTask=function(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||m).name+"; Execution: "+this.name+")");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(S,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(b,w),e.runCount=0,e},t.prototype._updateTaskCount=function(e,t){var n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(e.type,t)},t}();c.__symbol__=a;var s,l={name:"",onHasTask:function(e,t,n,r){return e.hasTask(n,r)},onScheduleTask:function(e,t,n,r){return e.scheduleTask(n,r)},onInvokeTask:function(e,t,n,r,o,a){return e.invokeTask(n,r,o,a)},onCancelTask:function(e,t,n,r){return e.cancelTask(n,r)}},u=function(){function e(e,t,n){this._taskCounts=Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[429],{82908:function(H){H.exports=function(re,X){(null==X||X>re.length)&&(X=re.length);for(var ee=0,M=new Array(X);ee<X;ee++)M[ee]=re[ee];return M},H.exports.default=H.exports,H.exports.__esModule=!0},45478:function(H){H.exports=function(re,X){if(!(re instanceof X))throw new TypeError("Cannot call a class as a function")},H.exports.default=H.exports,H.exports.__esModule=!0},29545:function(H){function de(X,ee){for(var M=0;M<ee.length;M++){var fe=ee[M];fe.enumerable=fe.enumerable||!1,fe.configurable=!0,"value"in fe&&(fe.writable=!0),Object.defineProperty(X,fe.key,fe)}}H.exports=function(X,ee,M){return ee&&de(X.prototype,ee),M&&de(X,M),X},H.exports.default=H.exports,H.exports.__esModule=!0},76567:function(H,de,re){var X=re(54850);H.exports=function(M,fe){var K="undefined"!=typeof Symbol&&M[Symbol.iterator]||M["@@iterator"];if(!K){if(Array.isArray(M)||(K=X(M))||fe&&M&&"number"==typeof M.length){K&&(M=K);var Ze=0,De=function(){};return{s:De,n:function(){return Ze>=M.length?{done:!0}:{done:!1,value:M[Ze++]}},e:function(me){throw me},f:De}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var Ne,Fe=!0,Ve=!1;return{s:function(){K=K.call(M)},n:function(){var me=K.next();return Fe=me.done,me},e:function(me){Ve=!0,Ne=me},f:function(){try{!Fe&&null!=K.return&&K.return()}finally{if(Ve)throw Ne}}}},H.exports.default=H.exports,H.exports.__esModule=!0},54850:function(H,de,re){var X=re(82908);H.exports=function(M,fe){if(M){if("string"==typeof M)return X(M,fe);var K=Object.prototype.toString.call(M).slice(8,-1);if("Object"===K&&M.constructor&&(K=M.constructor.name),"Map"===K||"Set"===K)return Array.from(M);if("Arguments"===K||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(K))return X(M,fe)}},H.exports.default=H.exports,H.exports.__esModule=!0},18787:function(H,de,re){"use strict";var X=re(76567).default,ee=re(45478).default,M=re(29545).default,K=(function(r){var t=r.performance;function o(p){t&&t.mark&&t.mark(p)}function a(p,d){t&&t.measure&&t.measure(p,d)}o("Zone");var i=r.__Zone_symbol_prefix||"__zone_symbol__";function l(p){return i+p}var v=!0===r[l("forceDuplicateZoneCheck")];if(r.Zone){if(v||"function"!=typeof r.Zone.__symbol__)throw new Error("Zone already loaded.");return r.Zone}var y=function(){function p(d,e){ee(this,p),this._parent=d,this._name=e?e.name||"unnamed":"<root>",this._properties=e&&e.properties||{},this._zoneDelegate=new E(this,this._parent&&this._parent._zoneDelegate,e)}return M(p,[{key:"parent",get:function(){return this._parent}},{key:"name",get:function(){return this._name}},{key:"get",value:function(e){var n=this.getZoneWith(e);if(n)return n._properties[e]}},{key:"getZoneWith",value:function(e){for(var n=this;n;){if(n._properties.hasOwnProperty(e))return n;n=n._parent}return null}},{key:"fork",value:function(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)}},{key:"wrap",value:function(e,n){if("function"!=typeof e)throw new Error("Expecting function got: "+e);var h=this._zoneDelegate.intercept(this,e,n),b=this;return function(){return b.runGuarded(h,this,arguments,n)}}},{key:"run",value:function(e,n,h,b){A={parent:A,zone:this};try{return this._zoneDelegate.invoke(this,e,n,h,b)}finally{A=A.parent}}},{key:"runGuarded",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,h=arguments.length>2?arguments[2]:void 0,b=arguments.length>3?arguments[3]:void 0;A={parent:A,zone:this};try{try{return this._zoneDelegate.invoke(this,e,n,h,b)}catch(J){if(this._zoneDelegate.handleError(this,J))throw J}}finally{A=A.parent}}},{key:"runTask",value:function(e,n,h){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||B).name+"; Execution: "+this.name+")");if(e.state!==j||e.type!==Z&&e.type!==ae){var b=e.state!=P;b&&e._transitionTo(P,W),e.runCount++;var J=ge;ge=e,A={parent:A,zone:this};try{e.type==ae&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,n,h)}catch(c){if(this._zoneDelegate.handleError(this,c))throw c}}finally{e.state!==j&&e.state!==L&&(e.type==Z||e.data&&e.data.isPeriodic?b&&e._transitionTo(W,P):(e.runCount=0,this._updateTaskCount(e,-1),b&&e._transitionTo(j,P,j))),A=A.parent,ge=J}}}},{key:"scheduleTask",value:function(e){if(e.zone&&e.zone!==this)for(var n=this;n;){if(n===e.zone)throw Error("can not reschedule task to ".concat(this.name," which is descendants of the original zone ").concat(e.zone.name));n=n.parent}e._transitionTo(Y,j);var h=[];e._zoneDelegates=h,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(b){throw e._transitionTo(L,Y,j),this._zoneDelegate.handleError(this,b),b}return e._zoneDelegates===h&&this._updateTaskCount(e,1),e.state==Y&&e._transitionTo(W,Y),e}},{key:"scheduleMicroTask",value:function(e,n,h,b){return this.scheduleTask(new k(le,e,n,hLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
!function(){"use strict";var e,v={},g={};function n(e){var u=g[e];if(void 0!==u)return u.exports;var t=g[e]={id:e,loaded:!1,exports:{}};return v[e](t,t.exports,n),t.loaded=!0,t.exports}n.m=v,e=[],n.O=function(u,t,a,o){if(!t){var r=1/0;for(i=0;i<e.length;i++){t=e[i][0],a=e[i][1],o=e[i][2];for(var l=!0,f=0;f<t.length;f++)(!1&o||r>=o)&&Object.keys(n.O).every(function(b){return n.O[b](t[f])})?t.splice(f--,1):(l=!1,o<r&&(r=o));if(l){e.splice(i--,1);var s=a();void 0!==s&&(u=s)}}return u}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[t,a,o]},n.n=function(e){var u=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(u,{a:u}),u},n.d=function(e,u){for(var t in u)n.o(u,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:u[t]})},n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce(function(u,t){return n.f[t](e,u),u},[]))},n.u=function(e){return e+".30249f0e3aeb3f791226.js"},n.miniCssF=function(e){return"styles.bc7659e2cee2695de64b.css"},n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,u){return Object.prototype.hasOwnProperty.call(e,u)},function(){var e={},u="gns3-web-ui:";n.l=function(t,a,o,i){if(e[t])e[t].push(a);else{var r,l;if(void 0!==o)for(var f=document.getElementsByTagName("script"),s=0;s<f.length;s++){var c=f[s];if(c.getAttribute("src")==t||c.getAttribute("data-webpack")==u+o){r=c;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,n.nc&&r.setAttribute("nonce",n.nc),r.setAttribute("data-webpack",u+o),r.src=n.tu(t)),e[t]=[a];var d=function(h,b){r.onerror=r.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],r.parentNode&&r.parentNode.removeChild(r),_&&_.forEach(function(m){return m(b)}),h)return h(b)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=d.bind(null,r.onerror),r.onload=d.bind(null,r.onload),l&&document.head.appendChild(r)}}}(),n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;n.tu=function(u){return void 0===e&&(e={createScriptURL:function(t){return t}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e.createScriptURL(u)}}(),n.p="",function(){var e={666:0};n.f.j=function(a,o){var i=n.o(e,a)?e[a]:void 0;if(0!==i)if(i)o.push(i[2]);else if(666!=a){var r=new Promise(function(c,d){i=e[a]=[c,d]});o.push(i[2]=r);var l=n.p+n.u(a),f=new Error;n.l(l,function(c){if(n.o(e,a)&&(0!==(i=e[a])&&(e[a]=void 0),i)){var d=c&&("load"===c.type?"missing":c.type),p=c&&c.target&&c.target.src;f.message="Loading chunk "+a+" failed.\n("+d+": "+p+")",f.name="ChunkLoadError",f.type=d,f.request=p,i[1](f)}},"chunk-"+a,a)}else e[a]=0},n.O.j=function(a){return 0===e[a]};var u=function(a,o){var f,s,i=o[0],r=o[1],l=o[2],c=0;for(f in r)n.o(r,f)&&(n.m[f]=r[f]);if(l)var d=l(n);for(a&&a(o);c<i.length;c++)n.o(e,s=i[c])&&e[s]&&e[s][0](),e[i[c]]=0;return n.O(d)},t=self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[];t.forEach(u.bind(null,0)),t.push=u.bind(null,t.push.bind(t))}()}();
|
||||
@@ -1 +0,0 @@
|
||||
!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);
|
||||
@@ -1,10 +0,0 @@
|
||||
/*!
|
||||
* Bootstrap v4.6.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inLine truncated
|
||||
/*!*/}@keyframes cdk-text-field-autofill-start{
|
||||
/*!*/}@-webkit-keyframes cdk-text-field-autofill-end{
|
||||
/*!*/}@keyframes cdk-text-field-autofill-end{
|
||||
/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{-webkit-animation:cdk-text-field-autofill-start 0s 1ms;animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){-webkit-animation:cdk-text-field-autofill-end 0s 1ms;animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.dark-theme{color:#fff!important}.dark-theme .mat-badge-content{color:#fff;background:#0097a7}.cdk-high-contrast-active .dark-theme .mat-badge-content{outline:1px solid;border-radius:0}.dark-theme .mat-badge-accent .mat-badge-content{background:#b0bec5;color:rgba(0,0,0,.87)}.dark-theme .mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.dark-theme .mat-badge{position:relative}.dark-theme .mat-badge-hidden .mat-badge-content{display:none}.dark-theme .mat-badge-disabled .mat-badge-content{background:#677074;color:hsla(0,0%,100%,.5)}.dark-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.dark-theme .mat-badge-content._mat-animation-noopable,.dark-theme .ng-animate-disabled .mat-badge-content{transition:none}.dark-theme .mat-badge-content.mat-badge-active{transform:none}.dark-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.dark-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.dark-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.dark-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.dark-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.dark-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.dark-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.dark-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.dark-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.dark-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.dark-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.dark-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.dark-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.dark-theme .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);background:#263238;color:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.dark-theme .mat-divider{border-top-color:hsla(0,0%,10Line truncated
|
||||
@@ -0,0 +1,11 @@
|
||||
@charset "UTF-8";
|
||||
/*!
|
||||
* Bootstrap v5.1.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,0.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-family:var(--bs-body-font-family);font-size:1rem;font-size:var(--bs-body-font-size);font-weight:400;font-weight:var(--bs-body-font-weight);line-height:1.5;line-height:var(--bs-body-line-height);color:#212529;color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:#fff;background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=Line truncated
|
||||
/*!*/}@keyframes cdk-text-field-autofill-start{
|
||||
/*!*/}@-webkit-keyframes cdk-text-field-autofill-end{
|
||||
/*!*/}@keyframes cdk-text-field-autofill-end{
|
||||
/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{-webkit-animation:cdk-text-field-autofill-start 0s 1ms;animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){-webkit-animation:cdk-text-field-autofill-end 0s 1ms;animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.dark-theme{color:#fff!important}.dark-theme .mat-badge{position:relative}.dark-theme .mat-badge-hidden .mat-badge-content{display:none}.dark-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.dark-theme .mat-badge-content._mat-animation-noopable,.dark-theme .ng-animate-disabled .mat-badge-content{transition:none}.dark-theme .mat-badge-content.mat-badge-active{transform:none}.dark-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.dark-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.dark-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.dark-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.dark-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.dark-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.dark-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.dark-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.dark-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.dark-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.dark-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.dark-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.dark-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.dark-theme .mat-badge-content{color:#fff;background:#0097a7}.cdk-high-contrast-active .dark-theme .mat-badge-content{outline:1px solid;border-radius:0}.dark-theme .mat-badge-accent .mat-badge-content{background:#b0bec5;color:rgba(0,0,0,.87)}.dark-theme .mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.dark-theme .mat-badge-disabled .mat-badge-content{background:#677074;color:hsla(0,0%,100%,.5)}.dark-theme .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);background:#263238;color:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.dark-theme .mat-divider{border-top-color:hsla(0,0%,100%,.12)}.dark-theme .mat-divider-vertical{border-right-color:hsla(0,0%,100%,.12)}.mat-expansion-panel-header{height:48px}.mat-expansion-panel-header.mat-expanded{height:64px}.mat-paginator-container{min-height:56px}.mat-horizontal-stepper-header{height:72px}.mat-stepper-label-position-bottom .mat-horizontal-steppLine truncated
|
||||
@@ -1,60 +1,5 @@
|
||||
<?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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="atm.svg"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1649"
|
||||
inkscape:window-height="1069"
|
||||
id="namedview19"
|
||||
showgrid="false"
|
||||
inkscape:zoom="5.5625733"
|
||||
inkscape:cx="10.639262"
|
||||
inkscape:cy="37.744295"
|
||||
inkscape:window-x="1442"
|
||||
inkscape:window-y="405"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g2348" /><metadata
|
||||
id="metadata35"><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="defs33" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g5"><g
|
||||
id="g7"><g
|
||||
id="g9"><circle
|
||||
id="circle11"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path13"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g></g></g><g
|
||||
id="g2348"
|
||||
transform="matrix(20.299892,0,0,20.757616,28.738101,29.359515)"><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path2341"
|
||||
d="m -0.57518956,-0.83795069 0,0.21003421 0.42006839,0 0.22976117,0.47460762 0.22860076,-0.47460762 0.41890798,0 0,-0.21003421 0.26805471,0.26689429 -0.26805471,0.26689428 0,-0.19030722 -0.3040274,0 -0.24832773,0.53262812 0.24832773,0.53262819 0.3040274,0 0,-0.19030726 0.26805471,0.2657339 -0.26805471,0.26689429 0,-0.19030723 -0.41890798,0 L 0.07464,0.2273056 l -0.22976117,0.49549507 -0.42006839,0 0,0.19030723 -0.26689423,-0.26689429 0.26689423,-0.2657339 0,0.19030726 0.28662125,0 0.26689429,-0.53262819 -0.26689429,-0.53262812 -0.28662125,0 0,0.19030722 -0.26689423,-0.26689428 0.26689423,-0.26689429"
|
||||
style="fill:#2d67b9;fill-opacity:1;stroke:none;stroke-width:0.001" /></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" xml:space="preserve" viewBox="0 0 300 300" height="60" width="60">
|
||||
<circle style="fill:#fffefe" r="150" cy="150" cx="150" transform="matrix(.9552 0 0 .9552 6.721 6.721)"/>
|
||||
<path style="fill:#2d67b9" d="m150.485.001.484.002.485.004.483.005.484.007.483.009.483.01.482.011.482.013.482.015.481.016.481.017.48.019.48.021.48.022.479.023.479.025.478.027.479.028.477.03.478.031.476.032.477.034.476.036.476.037.475.038.475.04.474.042.474.043.474.044.473.046.472.047.473.049.472.05.471.052.471.053.471.055.47.056.469.057.469.059.469.06.469.062.467.064.468.064.467.067.466.067.466.069.466.071.465.072.464.073.465.075.463.076.463.077.463.079.462.081.462.082.461.083.461.084.92.174.459.089.459.09.459.092.457.093.458.094.456.096.457.097.455.099.456.1.454.101.455.103.453.104.453.105.453.107.452.108.452.11.451.111.45.112.45.114.45.115.449.116.448.118.448.119.447.12.447.122.446.123.446.125.445.125.888.256.444.13.442.131.443.132.441.134.441.135.441.136.44.138.439.139.439.141.438.141.438.143.437.144.436.146.436.147.435.148.435.149.434.151.433.152.433.153.432.155.432.156.431.157.86.318.429.161.429.163.427.163.428.165.426.166.426.167.426.169.424.17.425.171.846.346.422.175.422.176.42.178.421.178.419.18.419.181.418.182.418.184.417.185.416.186.416.187.415.189.414.189.413.191.413.192.824.388.411.196.41.197.41.198.816.4.408.202.406.203.406.204.406.206.404.206.404.208.403.209.403.21.402.211.401.213.4.214.399.214.399.216.796.436.397.219.395.221.396.222.394.223.394.224.393.225.784.454.39.229.39.23.39.231.388.232.388.233.387.235.386.235.385.237.385.238.384.239.383.24.383.241.762.486.38.244.379.246.379.247.377.248.377.249.376.25.376.251.374.252.374.254.373.254.372.256.371.256.37.258.37.259.369.26.368.261.367.262.367.263.365.264.365.265.364.267.363.267.362.268.362.27.72.542.359.273.358.274.357.274.356.276.356.277.355.278.353.279.353.28.352.281.352.282.35.283.35.284.348.285.348.287.347.287.346.288.345.289.344.29.344.292.342.292.342.293.68.59.339.296.338.297.337.299.336.299.336.3.334.301.334.303.332.303.332.304.331.305.329.306.329.308.328.308.327.309.327.31.325.311.324.312.324.313.322.314.642.63.32.317.636.636.317.32.63.642.314.322.313.324.312.324.311.325.31.327.309.327.308.328.308.329.306.329.305.331.304.332.303.332.303.334.301.334.3.336.299.336.299.337.297.338.296.339.59.68.293.342.292.342.292.344.29.344.289.345.288.346.287.347.287.348.285.348.284.35.283.35.282.352.281.352.28.353.279.353.278.355.277.356.276.356.274.357.274.358.273.359.542.72.27.362.268.362.267.363.267.364.265.365.264.365.263.367.262.367.261.368.26.369.259.37.258.37.256.371.256.372.254.373.254.374.252.374.251.376.25.376.249.377.248.377.247.379.246.379.244.38.486.762.241.383.24.383.239.384.238.385.237.385.235.386.235.387.233.388.232.388.231.39.23.39.229.39.454.784.225.393.224.394.223.394.222.396.221.395.219.397.436.796.216.399.214.399.214.4.213.401.211.402.21.403.209.403.208.404.206.404.206.406.204.406.203.406.202.408.4.816.198.41.197.41.196.411.388.824.192.413.191.413.189.414.189.415.187.416.186.416.185.417.184.418.182.418.181.419.18.419.178.421.178.42.176.422.175.422.346.846.171.425.17.424.169.426.167.426.166.426.165.428.163.427.163.429.161.429.318.86.157.431.156.432.155.432.153.433.152.433.151.434.149.435.148.435.147.436.146.436.144.437.143.438.141.438.141.439.139.439.138.44.136.441.135.441.134.441.132.443.131.442.13.444.256.888.125.445.125.446.123.446.122.447.12.447.119.448.118.448.116.449.115.45.114.45.112.45.111.451.11.452.108.452.107.453.105.453.104.453.103.455.101.454.1.456.099.455.097.457.096.456.094.458.093.457.092.459.09.459.089.459.174.92.084.461.083.461.082.462.081.462.079.463.077.463.076.463.075.465.073.464.072.465.071.466.069.466.067.466.067.467.064.468.064.467.062.469.06.469.059.469.057.469.056.47.055.471.053.471.052.471.05.472.049.473.047.472.046.473.044.474.043.474.042.474.04.475.038.475.037.476.036.476.034.477.032.476.031.478.03.477.028.479.027.478.025.479.023.479.022.48.021.48.019.48.017.481.016.481.015.482.013.482.011.482.01.483.009.483.007.484.005.483.004.485.002.484.001.485-.001.485-.002.484-.004.485-.005.483-.007.484-.009.483-.01.483-.011.482-.013.482-.015.482-.016.481-.017.481-.019.48-.021.48-.022.48-.023.479-.025.479-.027.478-.028.479-.03.477-.031.478-.032.476-.034.477-.036.476-.037.476-.038.475-.04.475-.042.474-.043.474-.044.474-.046.473-.047.472-.049.473-.05.472-.052.471-.053.471-.055.471-.056.47-.057.469-.059.469-.06.469-.062.469-.064.467-.064.468-.067.467-.067.466-.069.466-.071.466-.072.465-.073.464-.075.465-.076.463-.077.463-.079.463-.081.462-.082.462-.083.461-.084.461-.174.92-.089.459-.09.459-.092.459-.093.457-.094.458-.096.456-.097.457-.099.455-.1.456-.101.454-.103.455-.104.453-.105.453-.107.453-.108.452-.11.452-.111.451-.112.45-.114.45-.115.45-.116.449-.118.448-.119.448-.12.447-.122.447-.123.446-.125.446-.125.445-.256.888-.13.444-.131.442-.132.443-.134.441-.135.441-.136.441-.138.44-.139.439-.141.439-.141.438-.143.438-.144.437-.146.436-.147.436-.148.435-.149.435-.151.434-.152.433-.153.433-.155.432-.156.432-.157.431-.318.86-.161.429-.163.429-.163.427-.165.428-.166.426-.167.426-.169.426-.17.424-.171.425-.346.846-.175.422-.176.422-.178.42-.178.421-.18.419-.181.419-.182.418-.184.418-.185.417-.186.416-.187.416-.189.415Line truncated
|
||||
<path style="clip-rule:evenodd;fill:#2d67b9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:.1023686;stroke-linejoin:round;stroke-miterlimit:1.41420996" d="M85.421 61.91v21.743h42.525l23.26 49.13 23.142-49.13h42.407V61.91l27.136 27.628-27.136 27.628v-19.7h-30.778l-25.139 55.135 25.14 55.136h30.777v-19.7l27.136 27.508-27.136 27.628v-19.7h-42.407l-23.142-51.292-23.26 51.292H85.421v19.7l-27.019-27.628 27.019-27.508v19.7h29.016l27.018-55.136-27.018-55.135H85.42v19.7L58.402 89.539 85.421 61.91"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,8 @@
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="m150.485.001.484.002.485.004.483.005.484.007.483.009.483.01.482.011.482.013.482.015.481.016.481.017.48.019.48.021.48.022.479.023.479.025.478.027.479.028.477.03.478.031.476.032.477.034.476.036.476.037.475.038.475.04.474.042.474.043.474.044.473.046.472.047.473.049.472.05.471.052.471.053.471.055.47.056.469.057.469.059.469.06.469.062.467.064.468.064.467.067.466.067.466.069.466.071.465.072.464.073.465.075.463.076.463.077.463.079.462.081.462.082.461.083.461.084.46.087.46.087.459.089.459.09.459.092.457.093.458.094.456.096.457.097.455.099.456.1.454.101.455.103.453.104.453.105.453.107.452.108.452.11.451.111.45.112.45.114.45.115.449.116.448.118.448.119.447.12.447.122.446.123.446.125.445.125.444.128.444.128.444.13.442.131.443.132.441.134.441.135.441.136.44.138.439.139.439.141.438.141.438.143.437.144.436.146.436.147.435.148.435.149.434.151.433.152.433.153.432.155.432.156.431.157.43.159.43.159.429.161.429.163.427.163.428.165.426.166.426.167.426.169.424.17.425.171.423.173.423.173.422.175.422.176.42.178.421.178.419.18.419.181.418.182.418.184.417.185.416.186.416.187.415.189.414.189.413.191.413.192.412.194.412.194.411.196.41.197.41.198.408.2.408.2.408.202.406.203.406.204.406.206.404.206.404.208.403.209.403.21.402.211.401.213.4.214.399.214.399.216.398.218.398.218.397.219.395.221.396.222.394.223.394.224.393.225.392.227.392.227.39.229.39.23.39.231.388.232.388.233.387.235.386.235.385.237.385.238.384.239.383.24.383.241.381.243.381.243.38.244.379.246.379.247.377.248.377.249.376.25.376.251.374.252.374.254.373.254.372.256.371.256.37.258.37.259.369.26.368.261.367.262.367.263.365.264.365.265.364.267.363.267.362.268.362.27.36.271.36.271.359.273.358.274.357.274.356.276.356.277.355.278.353.279.353.28.352.281.352.282.35.283.35.284.348.285.348.287.347.287.346.288.345.289.344.29.344.292.342.292.342.293.34.295.34.295.339.296.338.297.337.299.336.299.336.3.334.301.334.303.332.303.332.304.331.305.329.306.329.308.328.308.327.309.327.31.325.311.324.312.324.313.322.314.321.315.321.315.32.317.318.318.318.318.317.32.315.321.315.321.314.322.313.324.312.324.311.325.31.327.309.327.308.328.308.329.306.329.305.331.304.332.303.332.303.334.301.334.3.336.299.336.299.337.297.338.296.339.295.34.295.34.293.342.292.342.292.344.29.344.289.345.288.346.287.347.287.348.285.348.284.35.283.35.282.352.281.352.28.353.279.353.278.355.277.356.276.356.274.357.274.358.273.359.271.36.271.36.27.362.268.362.267.363.267.364.265.365.264.365.263.367.262.367.261.368.26.369.259.37.258.37.256.371.256.372.254.373.254.374.252.374.251.376.25.376.249.377.248.377.247.379.246.379.244.38.243.381.243.381.241.383.24.383.239.384.238.385.237.385.235.386.235.387.233.388.232.388.231.39.23.39.229.39.227.392.227.392.225.393.224.394.223.394.222.396.221.395.219.397.218.398.218.398.216.399.214.399.214.4.213.401.211.402.21.403.209.403.208.404.206.404.206.406.204.406.203.406.202.408.2.408.2.408.198.41.197.41.196.411.194.412.194.412.192.413.191.413.189.414.189.415.187.416.186.416.185.417.184.418.182.418.181.419.18.419.178.421.178.42.176.422.175.422.173.423.173.423.171.425.17.424.169.426.167.426.166.426.165.428.163.427.163.429.161.429.159.43.159.43.157.431.156.432.155.432.153.433.152.433.151.434.149.435.148.435.147.436.146.436.144.437.143.438.141.438.141.439.139.439.138.44.136.441.135.441.134.441.132.443.131.442.13.444.128.444.128.444.125.445.125.446.123.446.122.447.12.447.119.448.118.448.116.449.115.45.114.45.112.45.111.451.11.452.108.452.107.453.105.453.104.453.103.455.101.454.1.456.099.455.097.457.096.456.094.458.093.457.092.459.09.459.089.459.087.46.087.46.084.461.083.461.082.462.081.462.079.463.077.463.076.463.075.465.073.464.072.465.071.466.069.466.067.466.067.467.064.468.064.467.062.469.06.469.059.469.057.469.056.47.055.471.053.471.052.471.05.472.049.473.047.472.046.473.044.474.043.474.042.474.04.475.038.475.037.476.036.476.034.477.032.476.031.478.03.477.028.479.027.478.025.479.023.479.022.48.021.48.019.48.017.481.016.481.015.482.013.482.011.482.01.483.009.483.007.484.005.483.004.485.002.484.001.485-.001.485-.002.484-.004.485-.005.483-.007.484-.009.483-.01.483-.011.482-.013.482-.015.482-.016.481-.017.481-.019.48-.021.48-.022.48-.023.479-.025.479-.027.478-.028.479-.03.477-.031.478-.032.476-.034.477-.036.476-.037.476-.038.475-.04.475-.042.474-.043.474-.044.474-.046.473-.047.472-.049.473-.05.472-.052.471-.053.471-.055.471-.056.47-.057.469-.059.469-.06.469-.062.469-.064.467-.064.468-.067.467-.067.466-.069.466-.071.466-.072.465-.073.464-.075.465-.076.463-.077.463-.079.463-.081.462-.082.462-.083.461-.084.461-.087.46-.087.46-.089.459-.09.459-.092.459-.093.457-.094.458-.096.456-.097.457-.099.455-.1.456-.101.454-.103.455-.104.453-.105.453-.107.453-.108.452-.11.452-.111.451-.112.45-.114.45-.115.45-.116.449-.118.448-.119.448-.12.447-.122.447-.123.446-.125.446-.125.445-.128.444-.128.444-.13.444-.131.442-.132.443-.134.441-.135.441-.136.441-.138.44-.139.439-.141.439-.141.438-.143.438-.144.437-.146.436-.147.436-.148.435-.149.435-.151.434-.152.433-.153.433-.155.432-.156.432-.157.431-.159.43-.159.4Line truncated
|
||||
<g>
|
||||
<path d="m184.921 173.594.001 7.215 16.426 9.484a.931.931 0 0 1 .465.853.706.706 0 0 1 .001.046v22.604l12.476 7.203c.129.059.255.124.38.196l12.238 7.065a4.506 4.506 0 0 1-4.506 7.803l-5.503-3.177a.93.93 0 0 1-.177-.079l-23.452-13.54a.932.932 0 0 1-.461-.902.97.97 0 0 1-.005-.094v-22.507l-7.889-4.555c-.006 4.032-.015 7.809-.03 11.016-.035 7.701-.018 15.538-11 25.727-7.084 6.572-15.907 8.184-20.596 8.559v-58.25a3.29 3.29 0 0 0-6.578 0v58.25c-4.689-.375-13.512-1.987-20.596-8.559-10.982-10.189-10.965-18.026-11-25.727-.014-3.124-.024-6.79-.029-10.706l-7.353 4.245v22.507a.97.97 0 0 1-.005.094.932.932 0 0 1-.461.902l-23.451 13.54a.967.967 0 0 1-.178.079l-5.503 3.177a4.507 4.507 0 0 1-6.154-1.649 4.507 4.507 0 0 1 1.649-6.154l12.237-7.065c.125-.072.252-.137.38-.196l12.476-7.203v-22.604l.001-.046a.933.933 0 0 1 .465-.853l15.889-9.173.001-7.526h-9.676l-12.679 12.679a.96.96 0 0 1-.248.178 4.51 4.51 0 0 1-5.223.513l-12.238-7.065a4.506 4.506 0 0 1 4.506-7.803l9.28 5.358 12.597-12.597a.932.932 0 0 1 .882-.246.908.908 0 0 1 .223-.027h12.583l.003-2.662.004-2.912h-8.959a.932.932 0 0 1-.932-.932v-19.143l-8.671-8.672a4.507 4.507 0 0 1 0-6.371 4.507 4.507 0 0 1 6.371 0l9.992 9.992a4.487 4.487 0 0 1 1.292 2.696.948.948 0 0 1 .026.221V150h72.282v-13.199c0-.076.009-.15.026-.221a4.487 4.487 0 0 1 1.292-2.696l9.992-9.992a4.507 4.507 0 0 1 6.371 0 4.507 4.507 0 0 1 0 6.371l-8.671 8.672v19.143a.932.932 0 0 1-.932.932h-9.665l.004 2.884.003 2.69h12.989c.077 0 .151.009.223.027a.932.932 0 0 1 .882.246l12.597 12.597 9.28-5.358a4.506 4.506 0 0 1 4.505 7.803l-12.237 7.065a4.51 4.51 0 0 1-5.223-.513.928.928 0 0 1-.248-.178l-12.679-12.679h-10.082Z" style="fill:#2d67b9" transform="rotate(45 176.22 160.626)"/>
|
||||
<path d="M130.534 145.925a18.108 18.108 0 0 1-.506-4.259c0-5.171 2.184-9.865 5.729-13.304a70.747 70.747 0 0 0-5.352-7.71c-9.866-12.379-23.022-20.481-36.939-23.936l.002-.005a4.78 4.78 0 0 1-3.378-5.852 4.78 4.78 0 0 1 5.851-3.378v-.001c15.739 4.078 30.585 13.332 41.762 27.356a81.517 81.517 0 0 1 6.08 8.74 21.304 21.304 0 0 1 6.217-1.001l.203.004c2.099.045 4.12.392 6.014.997a81.517 81.517 0 0 1 6.08-8.74c11.177-14.024 26.023-23.278 41.762-27.356v.001a4.78 4.78 0 0 1 5.851 3.378 4.78 4.78 0 0 1-3.378 5.852l.002.005c-13.917 3.455-27.073 11.557-36.939 23.936a70.747 70.747 0 0 0-5.352 7.71c3.545 3.439 5.729 8.133 5.729 13.304 0 1.464-.175 2.889-.506 4.259h-38.932Z" style="fill:#2d67b9" transform="rotate(45 176.22 160.626)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 38 KiB |
@@ -1,53 +1,5 @@
|
||||
<?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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata37"><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="defs35" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g5"><g
|
||||
id="g7"><g
|
||||
id="g9"><circle
|
||||
id="circle11"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path13"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g><g
|
||||
id="g15"><g
|
||||
id="g17"><g
|
||||
id="g19"
|
||||
transform="matrix(0,-1.75127,1.42064,0,22.4725,513.322)"><path
|
||||
id="path21"
|
||||
style="fill:#2d67b9"
|
||||
d="M 207.484,99.968 236.031,150 178.937,150 207.484,99.968 Z" /></g><g
|
||||
id="g23"
|
||||
transform="matrix(0,-0.656744,0.532754,0,139.382,286.225)"><path
|
||||
id="path25"
|
||||
style="fill:#ffffff"
|
||||
d="M 207.484,99.968 236.031,150 178.937,150 207.484,99.968 Z" /></g></g><g
|
||||
id="g27"><path
|
||||
id="path29"
|
||||
style="fill:#2d67b9"
|
||||
d="m 178.937,109.509 c 0,-5.266 -4.275,-9.541 -9.541,-9.541 l -94.458,0 c -5.265,0 -9.54,4.275 -9.54,9.541 l 0,80.905 c 0,5.266 4.275,9.541 9.54,9.541 l 94.458,0 c 5.266,0 9.541,-4.275 9.541,-9.541 l 0,-80.905 z" /><rect
|
||||
id="rect31"
|
||||
style="fill:#ffffff"
|
||||
height="68.193001"
|
||||
width="84.647003"
|
||||
y="115.903"
|
||||
x="79.844002" /></g></g></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z" style="fill:#2d67b9"/>
|
||||
<path d="M178.937 160.122v30.292c0 5.266-4.275 9.541-9.541 9.541H74.938c-5.265 0-9.54-4.275-9.54-9.541v-80.905c0-5.266 4.275-9.541 9.54-9.541h94.458c5.266 0 9.541 4.275 9.541 9.541V139.8l56.631-39.832v99.987l-56.631-39.833Zm-14.446-44.219H79.844v68.194h84.647v-68.194Zm28.149 34.058 26.655-18.748v37.496l-26.655-18.748Z" style="fill:#2d67b9"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 822 B |
@@ -1,38 +1,8 @@
|
||||
<?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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata23"><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="defs21" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g5"><g
|
||||
id="g7"><circle
|
||||
id="circle9"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path11"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g><g
|
||||
id="g13"
|
||||
transform="translate(0,-15.9782)"><path
|
||||
id="path15"
|
||||
style="fill:#ffffff"
|
||||
d="m 241.138,156.703 -29.669,0 c -3.93,30.435 -29.971,53.981 -61.469,53.981 -31.498,0 -57.539,-23.546 -61.469,-53.981 l -29.669,0 0,-16 182.276,0 0,16 z" /><path
|
||||
id="path17"
|
||||
d="m 241.138,156.703 c -9.88967,0 -19.77933,0 -29.669,0 -2.75936,23.30276 -20.04169,43.99957 -42.421,50.994 -21.18426,7.05062 -45.9144,1.40736 -61.884,-14.214 -10.154998,-9.66534 -16.879935,-22.86289 -18.633,-36.78 -9.889667,0 -19.779333,0 -29.669,0 0,-5.33333 0,-10.66667 0,-16 60.75867,0 121.51733,0 182.276,0 0,5.33333 0,10.66667 0,16 z m -136.426,0 c 3.04452,18.68365 18.80759,34.37167 37.506,37.326 17.01994,3.11844 35.3316,-4.45645 45.221,-18.643 3.96655,-5.53804 6.67997,-11.97058 7.849,-18.683 -30.192,0 -60.384,0 -90.576,0 z"
|
||||
style="fill:#2d67b9" /></g></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="m150.485.001.484.002.485.004.483.005.484.007.483.009.483.01.482.011.482.013.482.015.481.016.481.017.48.019.48.021.48.022.479.023.479.025.478.027.479.028.477.03.478.031.476.032.477.034.476.036.476.037.475.038.475.04.474.042.474.043.474.044.473.046.472.047.473.049.472.05.471.052.471.053.471.055.47.056.469.057.469.059.469.06.469.062.467.064.468.064.467.067.466.067.466.069.466.071.465.072.464.073.465.075.463.076.463.077.463.079.462.081.462.082.461.083.461.084.46.087.46.087.459.089.459.09.459.092.457.093.458.094.456.096.457.097.455.099.456.1.454.101.455.103.453.104.453.105.453.107.452.108.452.11.451.111.45.112.45.114.45.115.449.116.448.118.448.119.447.12.447.122.446.123.446.125.445.125.444.128.444.128.444.13.442.131.443.132.441.134.441.135.441.136.44.138.439.139.439.141.438.141.438.143.437.144.436.146.436.147.435.148.435.149.434.151.433.152.433.153.432.155.432.156.431.157.43.159.43.159.429.161.429.163.427.163.428.165.426.166.426.167.426.169.424.17.425.171.423.173.423.173.422.175.422.176.42.178.421.178.419.18.419.181.418.182.418.184.417.185.416.186.416.187.415.189.414.189.413.191.413.192.412.194.412.194.411.196.41.197.41.198.408.2.408.2.408.202.406.203.406.204.406.206.404.206.404.208.403.209.403.21.402.211.401.213.4.214.399.214.399.216.398.218.398.218.397.219.395.221.396.222.394.223.394.224.393.225.392.227.392.227.39.229.39.23.39.231.388.232.388.233.387.235.386.235.385.237.385.238.384.239.383.24.383.241.381.243.381.243.38.244.379.246.379.247.377.248.377.249.376.25.376.251.374.252.374.254.373.254.372.256.371.256.37.258.37.259.369.26.368.261.367.262.367.263.365.264.365.265.364.267.363.267.362.268.362.27.36.271.36.271.359.273.358.274.357.274.356.276.356.277.355.278.353.279.353.28.352.281.352.282.35.283.35.284.348.285.348.287.347.287.346.288.345.289.344.29.344.292.342.292.342.293.34.295.34.295.339.296.338.297.337.299.336.299.336.3.334.301.334.303.332.303.332.304.331.305.329.306.329.308.328.308.327.309.327.31.325.311.324.312.324.313.322.314.321.315.321.315.32.317.318.318.318.318.317.32.315.321.315.321.314.322.313.324.312.324.311.325.31.327.309.327.308.328.308.329.306.329.305.331.304.332.303.332.303.334.301.334.3.336.299.336.299.337.297.338.296.339.295.34.295.34.293.342.292.342.292.344.29.344.289.345.288.346.287.347.287.348.285.348.284.35.283.35.282.352.281.352.28.353.279.353.278.355.277.356.276.356.274.357.274.358.273.359.271.36.271.36.27.362.268.362.267.363.267.364.265.365.264.365.263.367.262.367.261.368.26.369.259.37.258.37.256.371.256.372.254.373.254.374.252.374.251.376.25.376.249.377.248.377.247.379.246.379.244.38.243.381.243.381.241.383.24.383.239.384.238.385.237.385.235.386.235.387.233.388.232.388.231.39.23.39.229.39.227.392.227.392.225.393.224.394.223.394.222.396.221.395.219.397.218.398.218.398.216.399.214.399.214.4.213.401.211.402.21.403.209.403.208.404.206.404.206.406.204.406.203.406.202.408.2.408.2.408.198.41.197.41.196.411.194.412.194.412.192.413.191.413.189.414.189.415.187.416.186.416.185.417.184.418.182.418.181.419.18.419.178.421.178.42.176.422.175.422.173.423.173.423.171.425.17.424.169.426.167.426.166.426.165.428.163.427.163.429.161.429.159.43.159.43.157.431.156.432.155.432.153.433.152.433.151.434.149.435.148.435.147.436.146.436.144.437.143.438.141.438.141.439.139.439.138.44.136.441.135.441.134.441.132.443.131.442.13.444.128.444.128.444.125.445.125.446.123.446.122.447.12.447.119.448.118.448.116.449.115.45.114.45.112.45.111.451.11.452.108.452.107.453.105.453.104.453.103.455.101.454.1.456.099.455.097.457.096.456.094.458.093.457.092.459.09.459.089.459.087.46.087.46.084.461.083.461.082.462.081.462.079.463.077.463.076.463.075.465.073.464.072.465.071.466.069.466.067.466.067.467.064.468.064.467.062.469.06.469.059.469.057.469.056.47.055.471.053.471.052.471.05.472.049.473.047.472.046.473.044.474.043.474.042.474.04.475.038.475.037.476.036.476.034.477.032.476.031.478.03.477.028.479.027.478.025.479.023.479.022.48.021.48.019.48.017.481.016.481.015.482.013.482.011.482.01.483.009.483.007.484.005.483.004.485.002.484.001.485-.001.485-.002.484-.004.485-.005.483-.007.484-.009.483-.01.483-.011.482-.013.482-.015.482-.016.481-.017.481-.019.48-.021.48-.022.48-.023.479-.025.479-.027.478-.028.479-.03.477-.031.478-.032.476-.034.477-.036.476-.037.476-.038.475-.04.475-.042.474-.043.474-.044.474-.046.473-.047.472-.049.473-.05.472-.052.471-.053.471-.055.471-.056.47-.057.469-.059.469-.06.469-.062.469-.064.467-.064.468-.067.467-.067.466-.069.466-.071.466-.072.465-.073.464-.075.465-.076.463-.077.463-.079.463-.081.462-.082.462-.083.461-.084.461-.087.46-.087.46-.089.459-.09.459-.092.459-.093.457-.094.458-.096.456-.097.457-.099.455-.1.456-.101.454-.103.455-.104.453-.105.453-.107.453-.108.452-.11.452-.111.451-.112.45-.114.45-.115.45-.116.449-.118.448-.119.448-.12.447-.122.447-.123.446-.125.446-.125.445-.128.444-.128.444-.13.444-.131.442-.132.443-.134.441-.135.441-.136.441-.138.44-.139.439-.141.439-.141.438-.143.438-.144.437-.146.436-.147.436-.148.435-.149.435-.151.434-.152.433-.153.433-.155.432-.156.432-.157.431-.159.43-.159.4Line truncated
|
||||
<g>
|
||||
<path d="M241.138 156.703h-29.669c-3.93 30.435-29.971 53.981-61.469 53.981s-57.539-23.546-61.469-53.981H58.862v-16h182.276v16Z" style="fill:#fff" transform="translate(0 -15.978)"/>
|
||||
<path d="M241.138 156.703h-29.669l-.048.356-.049.356-.051.355-.053.354-.055.354-.057.353-.059.352-.061.352-.063.351-.065.351-.067.349-.069.349-.071.349-.073.347-.075.347-.076.346-.079.346-.08.344-.083.344-.084.344-.087.342-.088.342-.09.341-.092.34-.094.339-.095.339-.098.338-.1.337-.101.336-.103.336-.105.334-.107.334-.109.333-.11.332-.112.332-.115.33-.116.33-.117.329-.12.328-.121.327-.123.326-.125.326-.127.324-.129.324-.13.322-.132.322-.134.321-.135.32-.137.319-.139.318-.141.317-.142.317-.144.315-.146.314-.148.314-.149.312-.151.312-.153.31-.154.31-.156.309-.157.307-.16.307-.161.305-.162.305-.164.304-.166.302-.168.302-.169.3-.171.3-.172.298-.174.297-.176.297-.177.295-.178.294-.181.293-.182.293-.183.291-.185.289-.187.289-.188.288-.19.286-.191.286-.193.284-.194.284-.196.282-.197.281-.199.279-.201.279-.201.278-.204.276-.205.275-.206.274-.208.273-.209.272-.211.27-.212.269-.214.268-.215.267-.216.266-.218.264-.22.264-.221.261-.222.261-.224.26-.225.258-.226.257-.228.256-.229.254-.231.253-.232.252-.233.251-.235.249-.236.248-.238.247-.238.245-.241.244-.241.243-.243.241-.244.24-.245.239-.247.238-.248.236-.25.234-.25.234-.252.232-.253.23-.255.229-.256.228-.257.227-.258.225-.259.223-.261.223-.262.22-.263.22-.265.218-.265.216-.267.215-.268.214-.27.212-.27.211-.272.209-.273.208-.274.206-.275.205-.276.203-.278.202-.279.2-.28.199-.281.198-.282.195-.283.195-.284.192-.286.192-.286.189-.288.188-.289.187-.29.185-.291.183-.292.182-.293.181-.294.178-.296.177-.296.176-.298.174-.298.172-.3.171-.3.169-.302.167-.302.166-.304.164-.305.163-.305.161-.307.159-.307.158-.309.156-.31.154-.31.152-.312.151-.312.149-.314.148-.314.146-.316.144-.316.142-.317.141-.318.139-.319.137-.32.135-.321.134-.322.132-.323.13-.323.128-.325.127-.325.125-.327.123-.327.121-.328.12-.329.118-.329.115-.331.115-.331.112-.332.11-.333.109-.334.107-.335.105-.336.103-.336.101-.337.1-.338.097-.338.096-.34.094-.34.091-.341.09-.342.089-.342.086-.344.084-.344.083-.344.08-.346.079-.346.076-.347.075-.348.073-.348.071-.349.069-.35.066-.35.065-.351.063-.352.061-.352.059-.354.057-.353.055-.355.053-.355.052-.356.049-.356.047-.357.044-.358.043-.358.041-.359.039-.359.037-.36.035-.361.032-.361.031-.362.029-.362.026-.363.025-.364.022-.364.02-.365.018-.365.016-.366.014-.366.012-.367.009-.367.008-.368.005-.368.004-.369.001-.369-.001-.368-.004-.368-.005-.367-.008-.367-.009-.366-.012-.366-.014-.365-.016-.365-.018-.364-.02-.364-.022-.363-.025-.362-.026-.362-.029-.361-.031-.361-.032-.36-.035-.359-.037-.359-.039-.358-.041-.358-.043-.357-.044-.356-.047-.356-.049-.355-.052-.355-.053-.353-.055-.354-.057-.352-.059-.352-.061-.351-.063-.35-.065-.35-.066-.349-.069-.348-.071-.348-.073-.347-.075-.346-.076-.346-.079-.344-.08-.344-.083-.344-.084-.342-.086-.342-.089-.341-.09-.34-.091-.34-.094-.338-.096-.338-.097-.337-.1-.336-.101-.336-.103-.335-.105-.334-.107-.333-.109-.332-.11-.331-.112-.331-.115-.329-.115-.329-.118-.328-.12-.327-.121-.327-.123-.325-.125-.325-.127-.323-.128-.323-.13-.322-.132-.321-.134-.32-.135-.319-.137-.318-.139-.317-.141-.316-.142-.316-.144-.314-.146-.314-.148-.312-.149-.312-.151-.31-.152-.31-.154-.309-.156-.307-.158-.307-.159-.305-.161-.305-.163-.304-.164-.302-.166-.302-.167-.3-.169-.3-.171-.298-.172-.298-.174-.296-.176-.296-.177-.294-.178-.293-.181-.292-.182-.291-.183-.29-.185-.289-.187-.288-.188-.286-.189-.286-.192-.284-.192-.283-.195-.282-.195-.281-.198-.28-.199-.279-.2-.278-.202-.276-.203-.275-.205-.274-.206-.273-.208-.272-.209-.27-.211-.27-.212-.268-.214-.267-.215-.265-.216-.265-.218-.263-.22-.262-.22-.261-.223-.259-.223-.258-.225-.257-.227-.256-.228-.255-.229-.253-.23-.252-.232-.25-.234-.25-.234-.248-.236-.247-.238-.245-.239-.244-.24-.243-.241-.241-.243-.241-.244-.238-.245-.238-.247-.236-.248-.235-.249-.233-.251-.232-.252-.231-.253-.229-.254-.228-.256-.226-.257-.225-.258-.224-.26-.222-.261-.221-.261-.22-.264-.218-.264-.216-.266-.215-.267-.214-.268-.212-.269-.211-.27-.209-.272-.208-.273-.206-.274-.205-.275-.204-.276-.201-.278-.201-.279-.199-.279-.197-.281-.196-.282-.194-.284-.193-.284-.191-.286-.19-.286-.188-.288-.187-.289-.185-.289-.183-.291-.182-.293-.181-.293-.178-.294-.177-.295-.176-.297-.174-.297-.172-.298-.171-.3-.169-.3-.168-.302-.166-.302-.164-.304-.162-.305-.161-.305-.16-.307-.157-.307-.156-.309-.154-.31-.153-.31-.151-.312-.149-.312-.148-.314-.146-.314-.144-.315-.142-.317-.141-.317-.139-.318-.137-.319-.135-.32-.134-.321-.132-.322-.13-.322-.129-.324-.127-.324-.125-.326-.123-.326-.121-.327-.12-.328-.117-.329-.116-.33-.115-.33-.112-.332-.11-.332-.109-.333-.107-.334-.105-.334-.103-.336-.101-.336-.1-.337-.098-.338-.095-.339-.094-.339-.092-.34-.09-.341-.088-.342-.087-.342-.084-.344-.083-.344-.08-.344-.079-.346-.076-.346-.075-.347-.073-.347-.071-.349-.069-.349-.067-.349-.065-.351-.063-.351-.061-.352-.059-.352-.057-.353-.055-.354-.053-.354-.051-.355-.049-.356-.048-.356H58.862v-16h182.276v16Zm-136.426 0 .008.05.047.26.048.26.05.258.051.259.052.258.054.257.056.257.056.256.059.255.059.256.061.254.063.254.063.253.066.253.066.252.068.252.07.251.071.25.072.25.073.25.075.2Line truncated
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 44 KiB |
@@ -1,53 +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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="circle.svg"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="866"
|
||||
inkscape:window-height="480"
|
||||
id="namedview12"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.9333333"
|
||||
inkscape:cx="30"
|
||||
inkscape:cy="30"
|
||||
inkscape:window-x="150"
|
||||
inkscape:window-y="68"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g5" /><metadata
|
||||
id="metadata21"><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="defs19" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g5"><g
|
||||
id="g7"><circle
|
||||
id="circle9"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path11"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.6 KiB |
@@ -1,60 +1,5 @@
|
||||
<?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"
|
||||
id="svg128"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.5"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata134"><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="defs132" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995117,0.00612242,3.3261915e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g105"><circle
|
||||
id="circle101"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path103"
|
||||
d="m 150.485,0.001 c 49.52443,-0.30811961 97.99009,26.139159 124.885,67.66 29.14955,43.41666 32.66867,102.35471 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.16927,120.37286 9.3281329,175.39447 33.956,217.011 c 22.83544,40.17536 67.60985,66.70688 113.877,66.972 44.98421,1.17284 89.41924,-22.44652 113.952,-60.106 26.866,-39.70944 29.54259,-94.08821 6.807,-136.282 -21.26707,-41.053691 -65.00625,-69.348254 -111.261,-71.398 -2.58582,-0.137959 -5.17549,-0.2052 -7.765,-0.196 z"
|
||||
style="fill:#2d67b9" /></g><g
|
||||
id="g125"><g
|
||||
id="g119"><g
|
||||
id="g109"
|
||||
transform="matrix(1,0,0,1.01748,0,-12.4555)"><rect
|
||||
id="rect107"
|
||||
style="fill:#2d67b9;fill-opacity:0;stroke:#2d67b9;stroke-width:11.89999962px"
|
||||
height="93.275002"
|
||||
width="142.27901"
|
||||
y="103.363"
|
||||
x="78.860001" /></g><g
|
||||
id="g113"
|
||||
transform="matrix(1.70092,0,0,1.08662,-105.138,-15.1201)"><rect
|
||||
id="rect111"
|
||||
style="fill:#ffffff"
|
||||
height="77.197998"
|
||||
width="77.197998"
|
||||
y="104.31"
|
||||
x="111.401" /></g><g
|
||||
id="g117"
|
||||
transform="translate(-4.85646,-7.97745)"><path
|
||||
id="path115"
|
||||
style="fill:#2d67b9"
|
||||
d="m 202.868,225.508 c 0,-3.287 -2.668,-5.955 -5.954,-5.955 h -84.115 c -3.286,0 -5.954,2.668 -5.954,5.955 0,3.286 2.668,5.954 5.954,5.954 h 84.115 c 3.286,0 5.954,-2.668 5.954,-5.954 z" /></g></g><g
|
||||
id="g123"
|
||||
transform="matrix(1.66872,0,0,1.06605,-100.308,-7.71468)"><rect
|
||||
id="rect121"
|
||||
style="fill:#ffffff"
|
||||
height="78.688004"
|
||||
width="78.688004"
|
||||
y="99.375999"
|
||||
x="110.656" /></g></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z" style="fill:#2d67b9"/>
|
||||
<path d="M216.943 234.5a7.246 7.246 0 0 0-7.243-7.243H90.3a7.246 7.246 0 0 0-7.243 7.243 7.247 7.247 0 0 0 7.243 7.243h119.4a7.247 7.247 0 0 0 7.243-7.243Zm33.072-162.59c0-8.46-6.869-15.329-15.329-15.329H65.308c-8.46 0-15.328 6.869-15.328 15.329v113.343c0 8.46 6.868 15.328 15.328 15.328h169.378c8.46 0 15.329-6.868 15.329-15.328V71.91Zm-14.411-.508h-170v114h170v-114Z" style="fill:#2d67b9" transform="translate(30.473 37.188) scale(.79686)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 922 B |
@@ -1,46 +1,6 @@
|
||||
<?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"
|
||||
id="svg1072"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata1078"><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="defs1076" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="g1070"><g
|
||||
id="Background_circle"><g
|
||||
id="g1054"><circle
|
||||
id="circle1050"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path1052"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g><g
|
||||
id="Layer1"><g
|
||||
id="g1067"><path
|
||||
id="path1057"
|
||||
style="fill:#2d67b9;fill-opacity:0;stroke:#2d67b9;stroke-width:12px"
|
||||
d="m 193.656,225.178 h -87.312 v -0.433 h 87.312 z M 221.14,92.714 V 193.016 H 78.86 V 92.714 Z" /><g
|
||||
id="g1065"
|
||||
transform="matrix(0.314025,0,0,0.314025,101.684,100.157)"><path
|
||||
id="path1059"
|
||||
style="fill:#2d67b9"
|
||||
d="M 68.751,82.244 153.879,131.92 238.287,82.244 153.879,31.058 Z" /><path
|
||||
id="path1061"
|
||||
style="fill:#2d67b9"
|
||||
d="m 59.634,99.464 84.96,49.02 v 98.076 l -84.96,-48.641 z" /><path
|
||||
id="path1063"
|
||||
style="fill:#2d67b9"
|
||||
d="m 162.579,149.166 85.504,-49.702 v 98.214 l -85.504,48.882 z" /></g></g></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z" style="fill:#2d67b9"/>
|
||||
<path d="M216.943 234.5a7.246 7.246 0 0 0-7.243-7.243H90.3a7.246 7.246 0 0 0-7.243 7.243 7.247 7.247 0 0 0 7.243 7.243h119.4a7.247 7.247 0 0 0 7.243-7.243Zm33.072-162.59c0-8.46-6.869-15.329-15.329-15.329H65.308c-8.46 0-15.328 6.869-15.328 15.329v113.343c0 8.46 6.868 15.328 15.328 15.328h169.378c8.46 0 15.329-6.868 15.329-15.328V71.91Zm-14.411-.508h-170v114h170v-114Z" style="fill:#2d67b9" transform="translate(30.473 37.188) scale(.79686)"/>
|
||||
<path d="m68.751 82.244 85.128 49.676 84.408-49.676-84.408-51.186-85.128 51.186ZM59.634 99.464l84.96 49.02v98.076l-84.96-48.641V99.464ZM162.579 149.166l85.504-49.702v98.214l-85.504 48.882v-97.394Z" style="fill:#2d67b9" transform="matrix(.30646 0 0 .30646 102.851 96.967)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,35 +1,5 @@
|
||||
<?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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata21"><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="defs19" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="g4"><g
|
||||
id="Background_circle"><g
|
||||
id="g7"><circle
|
||||
id="circle9"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path11"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g><g
|
||||
id="g13"
|
||||
transform="translate(0,-6.69727)"><path
|
||||
id="path15"
|
||||
style="fill:#2d67b9"
|
||||
d="m 210.025,221.534 -118.119,0 0,0 c -21.734,-0.004 -39.378,-17.65 -39.378,-39.385 0,-19.275 13.877,-35.335 32.177,-38.725 0.182,-35.883 29.37,-64.958 65.295,-64.958 35.925,0 65.113,29.075 65.295,64.958 18.3,3.39 32.177,19.45 32.177,38.725 0,21.087 -16.609,38.326 -37.447,39.338 l 0,0.047 z m -2.802,-15.929 c 0.287,0.01 0.575,0.015 0.865,0.015 12.954,0 23.471,-10.517 23.471,-23.471 0,-11.115 -7.742,-20.435 -18.124,-22.858 l -0.006,0.026 c -0.884,-0.215 -1.787,-0.38 -2.707,-0.492 -0.865,-0.098 -1.744,-0.147 -2.634,-0.147 -4.025,0 -7.814,1.015 -11.126,2.803 1.984,-5.385 3.068,-11.204 3.068,-17.274 0,-16.41 -7.917,-30.984 -20.137,-40.11 -8.32,-6.282 -18.675,-10.009 -29.893,-10.009 -11.218,0 -21.573,3.727 -29.893,10.009 -12.22,9.126 -20.137,23.7 -20.137,40.11 0,6.07 1.084,11.889 3.068,17.274 -3.312,-1.788 -7.101,-2.803 -11.126,-2.803 -0.825,0 -1.64,0.042 -2.444,0.126 -0.985,0.113 -1.952,0.287 -2.896,0.517 l -0.007,-0.03 c -10.382,2.423 -18.124,11.743 -18.124,22.858 0,12.954 10.517,23.471 23.471,23.471 0.29,0 0.578,-0.005 0.865,-0.015 0.248,0.024 0.499,0.037 0.753,0.037 l 29.987,0 -0.018,0.024 53.002,0 -0.018,-0.024 29.987,0 c 0.254,0 0.505,-0.013 0.753,-0.037 z" /></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z" style="fill:#2d67b9"/>
|
||||
<path d="M93.524 228.429c-.175.003-.349.004-.524.004-21.764 0-39.433-17.669-39.433-39.433 0-19.528 14.227-35.76 32.872-38.888.478-34.678 28.775-62.679 63.561-62.679s63.083 28.001 63.561 62.679c18.645 3.128 32.872 19.36 32.872 38.888 0 21.764-17.669 39.433-39.433 39.433-.273 0-.545-.003-.815-.009v.005H93.524ZM93 215h114c14.037 0 25.433-11.396 25.433-25.433 0-12.32-8.779-22.606-20.417-24.937l-.223-.044-.086-.015-.225-.042-.087-.015-.225-.039-.091-.014-.223-.035-.095-.014-.22-.032-.102-.014-.214-.028-.11-.014-.207-.025-.12-.013-.198-.021-.13-.012-.19-.018-.14-.012-.181-.015-.151-.01-.171-.012-.162-.009-.161-.01-.174-.007-.15-.007-.19-.006-.136-.004-.215-.004-.111-.002-.328-.003-.318.002-.106.002-.212.004-.126.004-.19.006-.134.006-.182.008-.138.007-.176.01-.141.009-.173.013-.142.011-.17.014-.143.012-.169.016-.143.015-.168.018-.143.016-.166.02-.143.018-.166.022-.142.02-.167.024-.14.021-.168.027-.137.022-.178.031-.126.021-.295.055-.144.029-.157.031-.153.032-.146.031-.156.034-.141.032-.159.037-.138.033-.159.039-.135.034-.16.042-.134.035-.16.043-.131.037-.161.045-.13.038-.161.048-.127.039-.162.05-.125.039-.163.053-.122.04-.163.055-.119.041-.166.058-.113.04-.169.062-.087.032-.188.07-.147.057-.075.03A49.912 49.912 0 0 0 200 151c0-27.596-22.404-50-50-50s-50 22.404-50 50c0 5.18.789 10.177 2.253 14.874l-.075-.03-.147-.057-.188-.07-.087-.032-.169-.062-.113-.04-.166-.058-.119-.041-.163-.055-.122-.04-.163-.053-.125-.039-.162-.05-.127-.039-.161-.048-.13-.038-.161-.045-.131-.037-.16-.043-.134-.035-.16-.042-.135-.034-.159-.039-.138-.033-.159-.037-.141-.032-.156-.034-.146-.031-.153-.032-.157-.031-.144-.029-.295-.055-.126-.021-.178-.031-.137-.022-.168-.027-.14-.021-.167-.024-.142-.02-.166-.022-.143-.018-.166-.02-.143-.016-.168-.018-.143-.015-.169-.016-.143-.012-.17-.014-.142-.011-.173-.013-.141-.009-.176-.01-.138-.007-.182-.008-.134-.006-.19-.006-.126-.004-.212-.004-.106-.002-.318-.002-.328.003-.111.002-.215.004-.136.004-.19.006-.15.007-.174.007-.161.01-.162.009-.171.012-.151.01-.181.015-.14.012-.19.018-.13.012-.198.021-.12.013-.207.025-.11.014-.214.028-.102.014-.22.032-.095.014-.223.035-.091.014-.225.039-.087.015-.225.042-.086.015-.223.044c-11.638 2.331-20.417 12.617-20.417 24.937C67.567 203.604 78.963 215 93 215Z" style="fill:#2d67b9" transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z" style="fill:#2d67b9"/>
|
||||
<path d="M180.131 174.282v1.14c0 11.084-2.724 24.533-25.105 24.533H123.37c-22.409 0-25.136-13.449-25.136-24.533v-52.604a.42.42 0 0 1 .421-.419l40.553.174 40.503-.174a.42.42 0 0 1 .42.419v8.193c11.941 0 21.635 9.695 21.635 21.635 0 11.941-9.694 21.636-21.635 21.636Zm0-35.399v27.526c7.596 0 13.763-6.167 13.763-13.763s-6.167-13.763-13.763-13.763Zm-61.629-81.191s7.108 11.839 1.996 24.91c-9.984 25.532 9.726 28.484 9.726 28.484s-9.621-5.38-1.347-25.031c8.371-19.884-10.375-28.363-10.375-28.363Zm23.499-15.79s9.978 10.824 2.742 34.763c-9.696 32.077 12.307 34.58 14.443 34.414 2.137-.166-13.228-2.669-1.622-35.408 8.544-24.102-15.563-33.769-15.563-33.769Z" style="fill:#2d67b9" transform="translate(-39.85 -20.556) scale(1.34621)"/>
|
||||
<path d="M180.131 174.282v1.14c0 11.084-2.724 24.533-25.105 24.533H123.37c-22.409 0-25.136-13.449-25.136-24.533v-52.604a.42.42 0 0 1 .421-.419l40.553.174 40.503-.174a.42.42 0 0 1 .42.419v8.193c11.941 0 21.635 9.695 21.635 21.635 0 11.941-9.694 21.636-21.635 21.636ZM102.319 126.5v48.922c0 5.546.526 11.901 5.217 16.019 3.194 2.802 8.203 4.428 15.834 4.428h31.656c7.619 0 12.621-1.625 15.809-4.427 4.686-4.118 5.211-10.473 5.211-16.02v-1.14a4.085 4.085 0 0 1 2.991-3.936 4.086 4.086 0 0 1-2.991-3.937v-27.526a4.085 4.085 0 0 1 2.991-3.936 4.085 4.085 0 0 1-2.991-3.936V126.5l-36.82.158h-.036l-36.871-.158Zm77.812 12.383v27.526c7.596 0 13.763-6.167 13.763-13.763s-6.167-13.763-13.763-13.763Zm-81.476-12.399Zm81.055 0h.001-.001Zm-61.208-68.792s7.108 11.839 1.996 24.91c-9.984 25.532 9.726 28.484 9.726 28.484s-9.621-5.38-1.347-25.031c8.371-19.884-10.375-28.363-10.375-28.363Zm23.499-15.79s9.978 10.824 2.742 34.763c-9.696 32.077 12.307 34.58 14.443 34.414 2.137-.166-13.228-2.669-1.622-35.408 8.544-24.102-15.563-33.769-15.563-33.769Zm9.031 11.878c.893 6.033.662 14.008-2.378 24.067-3.396 11.233-2.697 18.324-.101 22.78.308.528.641 1.015.993 1.462-.499-2.816-.641-6.314-.122-10.664.548-4.587 1.842-10.218 4.289-17.119 3.263-9.206.901-15.924-2.681-20.526Zm-24.62 18.55c.049 3.647-.502 7.65-2.109 11.76-1.91 4.884-2.643 8.774-2.552 11.873.464-3.253 1.493-7.059 3.36-11.494 2.047-4.86 2.211-8.878 1.301-12.139Z" style="fill:#2d67b9" transform="translate(-39.85 -20.556) scale(1.34621)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -1,42 +1,5 @@
|
||||
<?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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata27"><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="defs25" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g5"><g
|
||||
id="g7"><g
|
||||
id="g9"><circle
|
||||
id="circle11"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path13"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g><g
|
||||
id="g15"><path
|
||||
id="path17"
|
||||
style="fill:#2d67b9"
|
||||
d="m 182.537,71.431 c 6.916,2.87 13.373,6.628 19.228,11.13 l -10.827,26.822 14.706,25.472 28.662,4.038 c 0.475,3.635 0.721,7.343 0.721,11.107 0,3.764 -0.246,7.472 -0.721,11.107 l -28.662,4.038 -14.706,25.472 10.827,26.822 c -5.855,4.502 -12.312,8.26 -19.228,11.13 l -17.831,-22.807 -29.412,0 -17.831,22.807 c -6.916,-2.87 -13.373,-6.628 -19.228,-11.13 l 10.827,-26.822 -14.706,-25.472 -28.662,-4.038 c -0.475,-3.635 -0.721,-7.343 -0.721,-11.107 0,-3.764 0.246,-7.472 0.721,-11.107 l 28.662,-4.038 14.706,-25.472 -10.827,-26.822 c 5.855,-4.502 12.312,-8.26 19.228,-11.13 l 17.831,22.807 29.412,0 17.831,-22.807 z m 41.377,120.599 c -0.149,0.262 -0.3,0.523 -0.452,0.782 l 0.452,-0.782 z m -147.828,0 0.452,0.782 c -0.152,-0.259 -0.303,-0.52 -0.452,-0.782 z M 150,118.87 c 17.181,0 31.13,13.949 31.13,31.13 0,17.181 -13.949,31.13 -31.13,31.13 -17.181,0 -31.13,-13.949 -31.13,-31.13 0,-17.181 13.949,-31.13 31.13,-31.13 z m 73.462,-11.682 c 0.152,0.259 0.303,0.52 0.452,0.782 l -0.452,-0.782 z m -146.924,0 -0.452,0.782 c 0.149,-0.262 0.3,-0.523 0.452,-0.782 z M 150,64.973 c 0,0 0,0 0,0 z" /><g
|
||||
id="g19"
|
||||
transform="matrix(1.13747,0,0,1.13747,-20.62,-20.62)"><circle
|
||||
id="circle21"
|
||||
style="fill:#ffffff"
|
||||
r="28.177"
|
||||
cy="150"
|
||||
cx="150" /></g></g></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z" style="fill:#2d67b9"/>
|
||||
<path d="M182.537 71.431a85 85 0 0 1 19.228 11.13l-10.827 26.822 14.706 25.472 28.662 4.038c.475 3.635.721 7.343.721 11.107 0 3.764-.246 7.472-.721 11.107l-28.662 4.038-14.706 25.472 10.827 26.822a85 85 0 0 1-19.228 11.13l-17.831-22.807h-29.412l-17.831 22.807a85 85 0 0 1-19.228-11.13l10.827-26.822-14.706-25.472-28.662-4.038A85.697 85.697 0 0 1 64.973 150c0-3.764.246-7.472.721-11.107l28.662-4.038 14.706-25.472-10.827-26.822a85 85 0 0 1 19.228-11.13l17.831 22.807h29.412l17.831-22.807Zm41.377 120.599c-.149.262-.3.523-.452.782l.452-.782Zm-147.828 0 .452.782a66.35 66.35 0 0 1-.452-.782ZM150 118.87c17.181 0 31.13 13.949 31.13 31.13 0 17.181-13.949 31.13-31.13 31.13-17.181 0-31.13-13.949-31.13-31.13 0-17.181 13.949-31.13 31.13-31.13Zm73.462-11.682c.152.259.303.52.452.782l-.452-.782Zm-146.924 0-.452.782c.149-.262.3-.523.452-.782ZM150 64.973Z" style="fill:#2d67b9"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1,42 +1,5 @@
|
||||
<?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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata27"><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="defs25" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g5"><g
|
||||
id="g7"><g
|
||||
id="g9"><circle
|
||||
id="circle11"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path13"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g><g
|
||||
id="g15"><path
|
||||
id="path17"
|
||||
style="fill:#2d67b9"
|
||||
d="m 109.7,179.509 c -6.069,-8.27 -9.655,-18.474 -9.655,-29.509 0,-1.07 0.034,-2.131 0.1,-3.184 l 0,-66.371 -18.912,18.912 0,-29.291 29.096,-29.096 29.096,29.096 0,29.207 -18.934,-18.934 0,29.361 c 8.27,-6.069 18.474,-9.655 29.509,-9.655 1.07,0 2.131,0.034 3.184,0.1 l 66.371,0 -18.912,-18.912 29.291,0 29.096,29.096 -29.096,29.096 -29.207,0 18.934,-18.934 -29.361,0 c 6.069,8.271 9.655,18.475 9.655,29.509 0,1.07 -0.034,2.131 -0.1,3.184 l 0,66.371 18.912,-18.912 0,29.291 -29.096,29.096 -29.096,-29.096 0,-29.207 18.934,18.934 0,-29.361 c -8.27,6.069 -18.474,9.655 -29.509,9.655 -1.07,0 -2.131,-0.034 -3.184,-0.1 l -66.371,0 18.912,18.912 -29.291,0 -29.096,-29.096 29.096,-29.096 29.207,0 -18.934,18.934 29.361,0 z m 40.004,-58.805 c 16.005,0 29,12.994 29,29 0,16.005 -12.995,29 -29,29 -16.006,0 -29,-12.995 -29,-29 0,-16.006 12.994,-29 29,-29 z" /><g
|
||||
id="g19"
|
||||
transform="matrix(1.06678,0,0,1.06678,-10.0171,-10.0171)"><circle
|
||||
id="circle21"
|
||||
style="fill:#ffffff"
|
||||
r="28.177"
|
||||
cy="150"
|
||||
cx="150" /></g></g></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z" style="fill:#2d67b9"/>
|
||||
<path d="M109.7 179.509A49.71 49.71 0 0 1 100.045 150c0-1.07.034-2.131.1-3.184V80.445L81.233 99.357V70.066l29.096-29.096 29.096 29.096v29.207l-18.934-18.934V109.7A49.71 49.71 0 0 1 150 100.045c1.07 0 2.131.034 3.184.1h66.371l-18.912-18.912h29.291l29.096 29.096-29.096 29.096h-29.207l18.934-18.934H190.3A49.714 49.714 0 0 1 199.955 150c0 1.07-.034 2.131-.1 3.184v66.371l18.912-18.912v29.291l-29.096 29.096-29.096-29.096v-29.207l18.934 18.934V190.3A49.71 49.71 0 0 1 150 199.955c-1.07 0-2.131-.034-3.184-.1H80.445l18.912 18.912H70.066L40.97 189.671l29.096-29.096h29.207l-18.934 18.934H109.7Zm40.004-58.805c16.005 0 29 12.994 29 29 0 16.005-12.995 29-29 29-16.006 0-29-12.995-29-29 0-16.006 12.994-29 29-29Z" style="fill:#2d67b9" transform="matrix(.91685 0 0 .91685 12.473 12.473)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,48 +1,12 @@
|
||||
<?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"
|
||||
id="svg2"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
viewBox="0 0 60 60"
|
||||
height="60"
|
||||
width="60"><metadata
|
||||
id="metadata33"><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="defs31" /><g
|
||||
transform="matrix(0.19997959,0,0,0.19995118,0.00612242,3.3238395e-4)"
|
||||
id="Background_circle"><g
|
||||
id="g5"><g
|
||||
id="g7"><g
|
||||
id="g9"><circle
|
||||
id="circle11"
|
||||
style="fill:#ffffff"
|
||||
r="150"
|
||||
cy="150"
|
||||
cx="150" /><path
|
||||
id="path13"
|
||||
d="m 150.485,0.001 c 49.5244,-0.30805092 97.99005,26.13918 124.885,67.66 29.14949,43.41669 32.66869,102.35469 9.029,148.98 -22.3226,45.72399 -69.26524,78.27982 -120.017,82.677 C 116.79963,304.27157 67.626954,284.53159 36.597,248.141 4.2284143,211.43134 -7.8772602,158.34647 5.079,111.186 18.20087,60.591626 59.782145,18.758853 110.292,5.321 c 13.07378,-3.5887368 26.6371,-5.36778112 40.193,-5.32 z m -0.919,16 C 104.07954,15.682674 59.676029,40.73106 36.035,79.522 10.237529,120.258 9.3382219,175.08668 33.754,216.66 c 22.507056,39.83833 66.53845,66.428 112.351,67.284 44.86675,1.74378 89.5149,-21.18229 114.552,-58.394 27.38615,-39.18451 30.93913,-93.31402 9.052,-135.793 C 249.0838,48.105271 205.50868,18.954337 159.041,16.3 c -3.15359,-0.209033 -6.31449,-0.309606 -9.475,-0.299 z"
|
||||
style="fill:#2d67b9" /></g></g><g
|
||||
id="g15"><g
|
||||
id="g17"
|
||||
transform="matrix(0.724619,0,0,0.592282,68.8494,40.4095)"><path
|
||||
id="path19"
|
||||
style="fill:#ffffff"
|
||||
d="m 250.015,109.41 c 0,-13.541 -8.986,-24.535 -20.055,-24.535 l -121.05,0 c -11.068,0 -20.054,10.994 -20.054,24.535 l 0,85.388 c 0,13.541 8.986,24.535 20.054,24.535 l 32.322,0 0.188,23.576 22.7,-23.576 65.84,0 c 11.069,0 20.055,-10.994 20.055,-24.535 l 0,-85.388 z" /><path
|
||||
id="path21"
|
||||
d="m 230.219,84.877 c 10.62021,0.166079 18.27714,10.321519 19.482,20.192 0.72662,11.01108 0.10958,22.08912 0.314,33.12558 -0.10937,19.90686 0.2179,39.8289 -0.162,59.72642 -0.8228,10.0534 -8.1203,20.67233 -18.861,21.38 -22.28936,0.0748 -44.58155,0.0106 -66.872,0.032 -7.56667,7.85867 -15.13333,15.71733 -22.7,23.576 -0.0627,-7.85867 -0.12533,-15.71733 -0.188,-23.576 -11.62111,-0.13842 -23.27092,0.27257 -34.875,-0.197 -11.14669,-1.85602 -17.716056,-13.73769 -17.501,-24.338 0.0873,-29.39996 -0.174196,-58.81075 0.13,-88.204 0.723062,-10.158313 8.036282,-20.966931 18.892,-21.687 40.77892,-0.07337 81.56107,-0.01331 122.341,-0.03 z m -121.257,20.259 c -2.99592,0.0323 -4.01711,3.72875 -3.546,6.16559 0.0684,28.17148 -0.13522,56.36075 0.099,84.52141 0.34326,2.43767 2.92626,3.90211 5.27459,3.249 10.95356,0.15278 21.94605,-0.30571 32.87567,0.22918 3.52056,0.61947 6.68932,2.6651 8.98474,5.36782 3.62388,-4.49524 9.5308,-6.21771 15.12518,-5.597 20.99059,-0.0761 42.00906,0.14992 62.98282,-0.109 3.20394,-1.04189 2.87801,-5.28755 2.696,-7.88418 -0.0685,-27.56261 0.13537,-55.14304 -0.099,-82.69482 -0.34391,-2.43732 -2.92622,-3.90165 -5.27459,-3.248 -39.70614,0 -79.41227,0 -119.11841,0 z"
|
||||
style="fill:#2d67b9" /></g><g
|
||||
id="g23"
|
||||
transform="matrix(-0.724619,0,0,0.592282,231.145,78.43)"><path
|
||||
id="path25"
|
||||
style="fill:#ffffff"
|
||||
d="m 250.015,109.322 c 0,-13.493 -8.954,-24.447 -19.983,-24.447 l -121.194,0 c -11.029,0 -19.982,10.954 -19.982,24.447 l 0,85.082 c 0,13.493 8.953,24.447 19.982,24.447 l 32.394,0 -0.186,24.058 23.074,-24.058 65.912,0 c 11.029,0 19.983,-10.954 19.983,-24.447 l 0,-85.082 z" /><path
|
||||
id="path27"
|
||||
d="m 108.58,84.877 c -10.582213,0.165562 -18.211559,10.284882 -19.412,20.12 -0.722889,11.00584 -0.108246,22.07844 -0.312,33.10958 0.109546,19.80117 -0.217318,39.61747 0.16,59.40942 0.821111,10.01692 8.091235,20.59913 18.794,21.303 11.13935,0.0751 22.28156,0.0104 33.422,0.032 -0.062,8.01933 -0.124,16.03867 -0.186,24.058 7.69133,-8.01933 15.38267,-16.03867 23.074,-24.058 22.64951,-0.086 45.31314,0.17072 67.954,-0.126 11.02037,-1.46718 17.81825,-12.95652 17.926,-23.377 -0.0352,-29.50672 0.14485,-59.02182 -0.089,-88.524 C 249.28959,96.677894 242.12877,85.819765 231.315,84.925 190.40609,84.809575 149.49091,84.90573 108.58,84.877 Z m 121.4,20.259 c 2.95175,0.0321 3.93938,3.68419 3.474,6.07759 -0.0669,28.06285 0.1323,56.14322 -0.097,84.19541 -0.33826,2.40471 -2.89541,3.82753 -5.20459,3.182 -21.98965,0.0942 -43.99627,-0.18783 -65.97541,0.14 -3.73465,0.51886 -7.06423,2.66539 -9.526,5.459 -3.65569,-4.71328 -9.83275,-6.20018 -15.53108,-5.599 -9.70759,-0.10759 -19.45824,0.20204 -29.14292,-0.131 -3.10043,-1.10256 -2.70931,-5.22805 -2.561,-7.77518 0.067,-27.45366 -0.13242,-54.92478 0.097,-82.36782 0.33869,-2.40503 2.89603,-3.82804 5.20559,-3.181 39.7538,0 79.50761,0 119.26141,0 z"
|
||||
style="fill:#2d67b9" /></g></g></g></g></svg>
|
||||
<svg width="60" height="60" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421">
|
||||
<circle cx="150" cy="150" r="150" style="fill:#fffefe"/>
|
||||
<path d="m150.485.001.484.002.485.004.483.005.484.007.483.009.483.01.482.011.482.013.482.015.481.016.481.017.48.019.48.021.48.022.479.023.479.025.478.027.479.028.477.03.478.031.476.032.477.034.476.036.476.037.475.038.475.04.474.042.474.043.474.044.473.046.472.047.473.049.472.05.471.052.471.053.471.055.47.056.469.057.469.059.469.06.469.062.467.064.468.064.467.067.466.067.466.069.466.071.465.072.464.073.465.075.463.076.463.077.463.079.462.081.462.082.461.083.461.084.46.087.46.087.459.089.459.09.459.092.457.093.458.094.456.096.457.097.455.099.456.1.454.101.455.103.453.104.453.105.453.107.452.108.452.11.451.111.45.112.45.114.45.115.449.116.448.118.448.119.447.12.447.122.446.123.446.125.445.125.444.128.444.128.444.13.442.131.443.132.441.134.441.135.441.136.44.138.439.139.439.141.438.141.438.143.437.144.436.146.436.147.435.148.435.149.434.151.433.152.433.153.432.155.432.156.431.157.43.159.43.159.429.161.429.163.427.163.428.165.426.166.426.167.426.169.424.17.425.171.423.173.423.173.422.175.422.176.42.178.421.178.419.18.419.181.418.182.418.184.417.185.416.186.416.187.415.189.414.189.413.191.413.192.412.194.412.194.411.196.41.197.41.198.408.2.408.2.408.202.406.203.406.204.406.206.404.206.404.208.403.209.403.21.402.211.401.213.4.214.399.214.399.216.398.218.398.218.397.219.395.221.396.222.394.223.394.224.393.225.392.227.392.227.39.229.39.23.39.231.388.232.388.233.387.235.386.235.385.237.385.238.384.239.383.24.383.241.381.243.381.243.38.244.379.246.379.247.377.248.377.249.376.25.376.251.374.252.374.254.373.254.372.256.371.256.37.258.37.259.369.26.368.261.367.262.367.263.365.264.365.265.364.267.363.267.362.268.362.27.36.271.36.271.359.273.358.274.357.274.356.276.356.277.355.278.353.279.353.28.352.281.352.282.35.283.35.284.348.285.348.287.347.287.346.288.345.289.344.29.344.292.342.292.342.293.34.295.34.295.339.296.338.297.337.299.336.299.336.3.334.301.334.303.332.303.332.304.331.305.329.306.329.308.328.308.327.309.327.31.325.311.324.312.324.313.322.314.321.315.321.315.32.317.318.318.318.318.317.32.315.321.315.321.314.322.313.324.312.324.311.325.31.327.309.327.308.328.308.329.306.329.305.331.304.332.303.332.303.334.301.334.3.336.299.336.299.337.297.338.296.339.295.34.295.34.293.342.292.342.292.344.29.344.289.345.288.346.287.347.287.348.285.348.284.35.283.35.282.352.281.352.28.353.279.353.278.355.277.356.276.356.274.357.274.358.273.359.271.36.271.36.27.362.268.362.267.363.267.364.265.365.264.365.263.367.262.367.261.368.26.369.259.37.258.37.256.371.256.372.254.373.254.374.252.374.251.376.25.376.249.377.248.377.247.379.246.379.244.38.243.381.243.381.241.383.24.383.239.384.238.385.237.385.235.386.235.387.233.388.232.388.231.39.23.39.229.39.227.392.227.392.225.393.224.394.223.394.222.396.221.395.219.397.218.398.218.398.216.399.214.399.214.4.213.401.211.402.21.403.209.403.208.404.206.404.206.406.204.406.203.406.202.408.2.408.2.408.198.41.197.41.196.411.194.412.194.412.192.413.191.413.189.414.189.415.187.416.186.416.185.417.184.418.182.418.181.419.18.419.178.421.178.42.176.422.175.422.173.423.173.423.171.425.17.424.169.426.167.426.166.426.165.428.163.427.163.429.161.429.159.43.159.43.157.431.156.432.155.432.153.433.152.433.151.434.149.435.148.435.147.436.146.436.144.437.143.438.141.438.141.439.139.439.138.44.136.441.135.441.134.441.132.443.131.442.13.444.128.444.128.444.125.445.125.446.123.446.122.447.12.447.119.448.118.448.116.449.115.45.114.45.112.45.111.451.11.452.108.452.107.453.105.453.104.453.103.455.101.454.1.456.099.455.097.457.096.456.094.458.093.457.092.459.09.459.089.459.087.46.087.46.084.461.083.461.082.462.081.462.079.463.077.463.076.463.075.465.073.464.072.465.071.466.069.466.067.466.067.467.064.468.064.467.062.469.06.469.059.469.057.469.056.47.055.471.053.471.052.471.05.472.049.473.047.472.046.473.044.474.043.474.042.474.04.475.038.475.037.476.036.476.034.477.032.476.031.478.03.477.028.479.027.478.025.479.023.479.022.48.021.48.019.48.017.481.016.481.015.482.013.482.011.482.01.483.009.483.007.484.005.483.004.485.002.484.001.485-.001.485-.002.484-.004.485-.005.483-.007.484-.009.483-.01.483-.011.482-.013.482-.015.482-.016.481-.017.481-.019.48-.021.48-.022.48-.023.479-.025.479-.027.478-.028.479-.03.477-.031.478-.032.476-.034.477-.036.476-.037.476-.038.475-.04.475-.042.474-.043.474-.044.474-.046.473-.047.472-.049.473-.05.472-.052.471-.053.471-.055.471-.056.47-.057.469-.059.469-.06.469-.062.469-.064.467-.064.468-.067.467-.067.466-.069.466-.071.466-.072.465-.073.464-.075.465-.076.463-.077.463-.079.463-.081.462-.082.462-.083.461-.084.461-.087.46-.087.46-.089.459-.09.459-.092.459-.093.457-.094.458-.096.456-.097.457-.099.455-.1.456-.101.454-.103.455-.104.453-.105.453-.107.453-.108.452-.11.452-.111.451-.112.45-.114.45-.115.45-.116.449-.118.448-.119.448-.12.447-.122.447-.123.446-.125.446-.125.445-.128.444-.128.444-.13.444-.131.442-.132.443-.134.441-.135.441-.136.441-.138.44-.139.439-.141.439-.141.438-.143.438-.144.437-.146.436-.147.436-.148.435-.149.435-.151.434-.152.433-.153.433-.155.432-.156.432-.157.431-.159.43-.159.4Line truncated
|
||||
<g>
|
||||
<path d="M250.015 109.41c0-13.541-8.986-24.535-20.055-24.535H108.91c-11.068 0-20.054 10.994-20.054 24.535v85.388c0 13.541 8.986 24.535 20.054 24.535h32.322l.188 23.576 22.7-23.576h65.84c11.069 0 20.055-10.994 20.055-24.535V109.41Z" style="fill:#fffefe" transform="matrix(.72462 0 0 .59228 68.85 40.41)"/>
|
||||
<path d="m230.219 84.877.259.006.257.01.257.014.255.018.255.022.254.025.253.03.253.033.251.037.25.041.25.045.248.048.247.052.247.056.245.06.244.063.243.067.242.07.241.074.239.077.239.081.237.085.236.088.235.091.233.095.233.098.231.102.229.105.229.108.227.111.225.115.224.118.223.122.222.124.219.128.219.131.217.134.215.137.214.14.212.143.211.147.209.149.208.152.206.155.204.158.203.162.201.164.199.166.197.17.196.173.194.175.192.178.19.181.189.183.187.187.184.188.183.192.181.194.179.197.178.199.175.202.173.205.171.207.169.209.167.212.165.214.163.217.161.219.159.221.156.224.155.226.152.229.15.23.148.233.145.235.144.237.141.24.138.242.137.243.134.246.131.248.13.25.127.252.124.254.122.256.12.257.117.26.114.262.112.263.11.266.107.267.104.269.102.271.099.272.097.275.093.276.092.277.088.28.086.281.083.282.08.284.078.286.074.287.072.289.069.29.066.292.064.293.06.295.058.296.054.297.052.299.048.3.046.301.043.303.039.304.037.305.033.306.031.307.027.309.024.31.021.31.018.312.014.313.012.314.008.315.005.316.002.317v85.388l-.002.317-.005.316-.008.314-.012.314-.014.313-.018.312-.021.311-.024.31-.027.308-.031.308-.033.306-.037.305-.039.304-.043.302-.046.302-.048.3-.052.298-.054.298-.058.296-.06.294-.064.294-.066.291-.069.291-.072.288-.074.288-.078.285-.08.284-.083.283-.086.281-.088.279-.092.278-.093.276-.097.274-.099.273-.102.271-.104.269-.107.267-.11.265-.112.264-.114.262-.117.259-.12.258-.122.256-.124.254-.127.252-.13.25-.131.248-.134.245-.137.244-.138.242-.141.239-.144.238-.145.235-.148.232-.15.231-.152.229-.155.226-.156.223-.159.222-.161.219-.163.217-.165.214-.167.212-.169.209-.171.207-.173.205-.175.201-.178.2-.179.197-.181.194-.183.191-.184.189-.187.186-.189.184-.19.181-.192.178-.194.175-.196.173-.197.169-.199.167-.201.164-.203.161-.204.158-.206.156-.208.152-.209.149-.211.146-.212.144-.214.14-.215.137-.217.134-.219.131-.219.128-.222.124-.223.121-.224.118-.225.115-.227.112-.229.108-.229.105-.231.102-.233.098-.233.095-.235.091-.236.088-.237.084-.239.081-.239.078-.241.074-.242.07-.243.067-.244.063-.245.059-.247.056-.247.052-.248.049-.25.045-.25.041-.251.037-.253.033-.253.03-.254.025-.255.022-.255.018-.257.014-.257.01-.259.006-.259.002h-65.84l-22.7 23.576-.188-23.576H108.91l-.259-.002-.258-.006-.258-.01-.257-.014-.255-.018-.255-.022-.254-.025-.253-.03-.253-.033-.251-.037-.25-.041-.25-.045-.248-.049-.247-.052-.246-.056-.246-.059-.244-.063-.243-.067-.242-.07-.241-.074-.239-.078-.239-.081-.237-.084-.236-.088-.235-.091-.233-.095-.233-.098-.231-.102-.229-.105-.229-.108-.226-.112-.226-.115-.224-.118-.223-.121-.221-.124-.22-.128-.219-.131-.217-.134-.215-.137-.214-.14-.212-.144-.211-.146-.209-.149-.208-.152-.206-.156-.204-.158-.203-.161-.2-.164-.2-.167-.197-.169-.196-.173-.194-.175-.192-.178-.19-.181-.189-.184-.186-.186-.185-.189-.183-.191-.181-.194-.179-.197-.177-.2-.176-.201-.173-.205-.171-.207-.169-.209-.167-.212-.165-.214-.163-.217-.161-.219-.159-.222-.156-.223-.155-.226-.152-.229-.15-.231-.148-.232-.145-.235-.143-.238-.141-.239-.139-.242-.137-.244-.134-.245-.131-.248-.13-.25-.126-.252-.125-.254-.122-.256-.119-.258-.118-.259-.114-.262-.112-.264-.11-.265-.107-.267-.104-.269-.102-.271-.099-.273-.096-.274-.094-.276-.092-.278-.088-.279-.086-.281-.083-.283-.08-.284-.078-.285-.074-.288-.072-.288-.069-.291-.066-.291-.064-.294-.06-.294-.058-.296-.054-.298-.052-.298-.048-.3-.046-.302-.043-.302-.039-.304-.037-.305-.033-.306-.031-.308-.027-.308-.024-.31-.021-.311-.018-.312-.014-.313-.012-.314-.008-.314-.005-.316-.001-.317V109.41l.001-.317.005-.316.008-.315.012-.314.014-.313.018-.312.021-.31.024-.31.027-.309.031-.307.033-.306.037-.305.039-.304.043-.303.046-.301.048-.3.052-.299.054-.297.058-.296.06-.295.064-.293.066-.292.069-.29.072-.289.074-.287.078-.286.08-.284.083-.282.086-.281.088-.28.092-.277.094-.276.096-.275.099-.272.102-.271.104-.269.107-.267.11-.266.112-.263.114-.262.118-.26.119-.257.122-.256.125-.254.126-.252.13-.25.131-.248.134-.246.137-.243.139-.242.141-.24.143-.237.145-.235.148-.233.15-.23.152-.229.155-.226.156-.224.159-.221.161-.219.163-.217.165-.214.167-.212.169-.209.171-.207.173-.205.176-.202.177-.199.179-.197.181-.194.183-.192.185-.188.186-.187.189-.183.19-.181.192-.178.194-.175.196-.173.197-.17.2-.166.2-.164.203-.162.204-.158.206-.155.208-.152.209-.149.211-.147.212-.143.214-.14.215-.137.217-.134.219-.131.22-.128.221-.124.223-.122.224-.118.226-.115.226-.111.229-.108.229-.105.231-.102.233-.098.233-.095.235-.091.236-.088.237-.085.239-.081.239-.077.241-.074.242-.07.243-.067.244-.063.246-.06.246-.056.247-.052.248-.048.25-.045.25-.041.251-.037.253-.033.253-.03.254-.025.255-.022.255-.018.257-.014.258-.01.258-.006.259-.002h121.05l.259.002Zm-121.257 20.259h-.101l-.048.001-.048.002-.047.003-.046.003-.046.004-.045.005-.045.005-.044.006-.044.006-.044.007-.042.008-.043.008-.042.009-.042.01-.041.01-.042.01-.04.011-.041.012-.041.013-.039.013-.04.013-.04.014-.039.015-.04.015-.039.016-.039.017-.038.017-.039.017-.039.019-.038.018-.038.02-.038.02-.038.02-.037.022-.038.021-.037.023-.038.023-.037.023-.037.025-.036.024-.037.026-.036.02Line truncated
|
||||
<g>
|
||||
<path d="M250.015 109.322c0-13.493-8.954-24.447-19.983-24.447H108.838c-11.029 0-19.982 10.954-19.982 24.447v85.082c0 13.493 8.953 24.447 19.982 24.447h32.394l-.186 24.058 23.074-24.058h65.912c11.029 0 19.983-10.954 19.983-24.447v-85.082Z" style="fill:#fffefe" transform="matrix(-.72462 0 0 .59228 231.145 78.43)"/>
|
||||
<path d="m108.58 84.877-.257.006-.257.01-.256.014-.255.018-.254.021-.253.026-.252.029-.251.033-.251.038-.249.04-.248.045-.248.048-.246.052-.246.056-.244.059-.243.063-.242.066-.242.071-.239.073-.239.077-.238.081-.236.084-.235.088-.234.091-.233.094-.232.098-.23.101-.229.105-.227.108-.226.111-.225.114-.223.118-.222.121-.221.124-.219.127-.218.131-.216.133-.214.137-.214.139-.211.143-.21.146-.209.149-.206.151-.206.155-.203.158-.202.16-.2.164-.199.166-.196.169-.195.172-.194.174-.191.178-.19.18-.188.183-.186.185-.184.189-.182.191-.18.193-.179.196-.176.199-.175.201-.172.204-.171.206-.169.208-.166.212-.164.213-.163.216-.16.218-.158.221-.156.223-.154.225-.152.228-.149.23-.147.232-.145.234-.143.236-.141.239-.138.241-.136.242-.133.245-.132.247-.128.249-.127.251-.124.253-.121.255-.12.257-.116.259-.114.261-.112.263-.109.264-.107.266-.104.268-.101.27-.099.272-.096.273-.094.275-.09.277-.089.278-.085.28-.083.282-.08.283-.077.284-.074.287-.072.287-.069.29-.066.29-.063.292-.06.294-.057.295-.055.296-.051.298-.049.299-.045.3-.043.301-.039.303-.036.304-.034.305-.03.307-.027.307-.024.309-.021.309-.018.311-.014.312-.012.313-.008.314-.005.314-.001.316v85.082l.001.316.005.315.008.313.012.313.014.312.018.311.021.309.024.309.027.308.03.306.034.305.036.304.039.303.043.301.045.3.049.299.051.298.055.296.057.295.06.294.063.292.066.29.069.29.072.287.074.287.077.284.08.284.083.281.085.28.089.278.09.277.094.275.096.273.099.272.101.27.104.268.107.266.109.265.112.262.114.261.116.259.12.257.121.255.124.253.127.251.128.249.132.247.133.245.136.243.138.24.141.239.143.236.145.235.147.232.149.229.152.228.154.225.156.223.158.221.16.218.163.216.164.214.166.211.169.208.171.207.172.203.175.201.176.199.179.196.18.194.182.191.184.188.186.185.188.183.19.18.191.178.194.174.195.172.196.169.199.167.2.163.202.161.203.157.206.155.206.152.209.148.21.146.211.143.214.139.214.137.216.134.218.13.219.127.221.124.222.121.223.118.225.114.226.111.227.108.229.105.23.101.232.098.233.094.234.091.235.088.236.084.238.081.239.077.239.074.242.07.242.066.243.063.244.059.246.056.246.052.248.048.248.045.249.041.251.037.251.033.252.029.253.026.254.022.255.017.256.014.257.01.257.006.258.002h32.394l-.186 24.058 23.074-24.058h65.912l.258-.002.258-.006.256-.01.256-.014.255-.017.254-.022.253-.026.252-.029.251-.033.251-.037.249-.041.249-.045.247-.048.246-.052.246-.056.244-.059.243-.063.243-.066.241-.07.24-.074.238-.077.238-.081.236-.084.236-.088.233-.091.233-.094.232-.098.23-.101.229-.105.227-.108.226-.111.225-.114.223-.118.222-.121.221-.124.219-.127.218-.13.216-.134.215-.137.213-.139.211-.143.21-.146.209-.148.206-.152.206-.155.203-.157.202-.161.2-.163.199-.167.196-.169.196-.172.193-.174.191-.178.19-.18.188-.183.186-.185.184-.188.182-.191.18-.194.179-.196.176-.199.175-.201.173-.203.17-.207.169-.208.166-.211.165-.214.162-.216.16-.218.158-.221.156-.223.154-.225.152-.228.149-.229.148-.232.145-.235.142-.236.141-.239.138-.24.136-.243.133-.245.132-.247.128-.249.127-.251.124-.253.122-.255.119-.257.116-.259.114-.261.112-.262.109-.265.107-.266.104-.268.101-.27.099-.272.096-.273.094-.275.091-.277.088-.278.085-.28.083-.281.08-.284.077-.284.075-.287.071-.287.069-.29.066-.29.063-.292.06-.294.058-.295.054-.296.051-.298.049-.299.045-.3.043-.301.039-.303.037-.304.033-.305.03-.306.027-.308.024-.309.021-.309.018-.311.015-.312.011-.313.008-.313.005-.315.002-.316v-85.082l-.002-.316-.005-.314-.008-.314-.011-.313-.015-.312-.018-.311-.021-.309-.024-.309-.027-.307-.03-.307-.033-.305-.037-.304-.039-.303-.043-.301-.045-.3-.049-.299-.051-.298-.054-.296-.058-.295-.06-.294-.063-.292-.066-.29-.069-.29-.071-.287-.075-.287-.077-.284-.08-.283-.083-.282-.085-.28-.088-.278-.091-.277-.094-.275-.096-.273-.099-.272-.101-.27-.104-.268-.107-.266-.109-.264-.112-.263-.114-.261-.116-.259-.119-.257-.122-.255-.124-.253-.127-.251-.128-.249-.132-.247-.133-.245-.136-.242-.138-.241-.141-.239-.142-.236-.145-.234-.148-.232-.149-.23-.152-.228-.154-.225-.156-.223-.158-.221-.16-.218-.162-.216-.165-.213-.166-.212-.169-.208-.17-.206-.173-.204-.175-.201-.176-.199-.179-.196-.18-.193-.182-.191-.184-.189-.186-.185-.188-.183-.19-.18-.191-.178-.193-.174-.196-.172-.196-.169-.199-.166-.2-.164-.202-.16-.203-.158-.206-.155-.206-.151-.209-.149-.21-.146-.211-.143-.213-.139-.215-.137-.216-.133-.218-.131-.219-.127-.221-.124-.222-.121-.223-.118-.225-.114-.226-.111-.227-.108-.229-.105-.23-.101-.232-.098-.233-.094-.233-.091-.236-.088-.236-.084-.238-.081-.238-.077-.24-.073-.241-.071-.243-.066-.243-.063-.244-.059-.246-.056-.246-.052-.247-.048-.249-.045-.249-.04-.251-.038-.251-.033-.252-.029-.253-.026-.254-.021-.255-.018-.256-.014-.256-.01-.258-.006-.258-.002H108.838l-.258.002Zm121.4 20.259h.1l.048.001.046.002.046.003.046.003.044.004.045.004.044.005.043.006.043.006.043.007.041.008.042.008.041.009.041.009.04.01.041.01.04.011.039.012.04.012.04.013.039.013.038.014.039.014.038.015.038.015.039.017.038.016.037.018.038.017.037.019.038.019.037.02.037.019.037.021.037.022.036.022.037.022.036.023.036.024.036.024.036.025.036.026.035.026.036.026.035.027.034.028.Line truncated
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 55 KiB |