Merge remote-tracking branch 'origin/3.0' into gh-pages
33
CHANGELOG
@ -1,5 +1,38 @@
|
||||
# Change Log
|
||||
|
||||
## 3.0.0b3 19/05/2024
|
||||
|
||||
* Bundle web-ui v3.0.0b3
|
||||
* Fix to allow duplicating IOS routers
|
||||
* Fix to allow changing the auxiliary console for IOS router nodes.
|
||||
* Replace deprecated method datetime.utcnow()
|
||||
* Upgrade FastAPI to v0.111.0
|
||||
* Fix reset console for non running IOU devices
|
||||
* Do not allow to create a builtin template using the API.
|
||||
* Use cryptography backend for python-jose. Ref #2372
|
||||
|
||||
## 2.2.47 15/05/2024
|
||||
|
||||
* Fix update-bundled-web-ui.sh script
|
||||
* Bundle web-ui v2.2.47
|
||||
* Change sentry-sdk version
|
||||
* Upgrade aiohttp, sentry-sdk and truststore
|
||||
* Upgrade jsonschema and aiohttp
|
||||
* Drop Python 3.7
|
||||
* Remove dev requirements for Python 3.6
|
||||
* Do not run Docker VM tests on Windows
|
||||
* Do not wait for the server to close when shutting down.
|
||||
* Fix test create image with not supported characters by filesystem. Fixes #2375
|
||||
* Allow listing x86_64 IOU images. Fixes #2376
|
||||
* Upgrade Jinja2 to version 3.1.4. Fixes #2378
|
||||
* Fix link capture for ATM switch. Fixes https://github.com/GNS3/gns3-gui/issues/3570
|
||||
* Fix tests after updating error message when busybox is not installed.
|
||||
* Add more details to error message when busybox is not installed. Fixes https://github.com/GNS3/gns3-gui/issues/3569
|
||||
* Fix invalid escape sequences
|
||||
* Add NAT symbols
|
||||
* Fix cannot stop Docker VM while console connection is still active.
|
||||
* Upgrade sentry-sdk to version 1.40.6
|
||||
|
||||
## 3.0.0b2 07/04/2024
|
||||
|
||||
* Bundle web-ui v3.0.0b2
|
||||
|
@ -20,7 +20,7 @@ API routes for Dynamips nodes.
|
||||
|
||||
import os
|
||||
|
||||
from fastapi import APIRouter, WebSocket, Depends, status
|
||||
from fastapi import APIRouter, WebSocket, Body, Depends, status
|
||||
from fastapi.encoders import jsonable_encoder
|
||||
from fastapi.responses import StreamingResponse
|
||||
from typing import List, Union
|
||||
@ -334,7 +334,7 @@ async def get_auto_idlepc(node: Router = Depends(dep_node)) -> dict:
|
||||
status_code=status.HTTP_201_CREATED,
|
||||
dependencies=[Depends(compute_authentication)]
|
||||
)
|
||||
async def duplicate_router(destination_node_id: UUID, node: Router = Depends(dep_node)) -> schemas.Dynamips:
|
||||
async def duplicate_router(destination_node_id: UUID = Body(..., embed=True), node: Router = Depends(dep_node)) -> schemas.Dynamips:
|
||||
"""
|
||||
Duplicate a router.
|
||||
"""
|
||||
|
@ -149,8 +149,10 @@ async def upload_image(
|
||||
if os.path.commonprefix([base_images_directory, full_path]) != base_images_directory:
|
||||
raise ControllerForbiddenError(f"Cannot write image, '{image_path}' is forbidden")
|
||||
|
||||
if await images_repo.get_image(image_path):
|
||||
raise ControllerBadRequestError(f"Image '{image_path}' already exists")
|
||||
image = await images_repo.get_image(image_path)
|
||||
if image:
|
||||
log.warning(f"Image '{image_path}' already exists")
|
||||
return image
|
||||
|
||||
try:
|
||||
allow_raw_image = Config.instance().settings.Server.allow_raw_images
|
||||
|
@ -24,9 +24,101 @@
|
||||
"hdb_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require"
|
||||
"kvm": "require",
|
||||
"options": "-cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vEOS64-lab-4.32.0F.vmdk",
|
||||
"version": "4.32.0F",
|
||||
"md5sum": "851771260bb18ad3e90fa6956f0c6161",
|
||||
"filesize": 591724544,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.31.3M.vmdk",
|
||||
"version": "4.31.3M",
|
||||
"md5sum": "7df107da137f4a4e752014d4f0e94cd3",
|
||||
"filesize": 577961984,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.30.6M.vmdk",
|
||||
"version": "4.30.6M",
|
||||
"md5sum": "19721aace820b9ebf6d7ae6524803cf5",
|
||||
"filesize": 553123840,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.29.8M.vmdk",
|
||||
"version": "4.29.8M",
|
||||
"md5sum": "131888f74cd63a93894521d40eb4d0b6",
|
||||
"filesize": 548405248,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.28.11M.vmdk",
|
||||
"version": "4.28.11M",
|
||||
"md5sum": "6cac0e7b04a74ee0dc358327a00accfd",
|
||||
"filesize": 513343488,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.27.12M.vmdk",
|
||||
"version": "4.27.12M",
|
||||
"md5sum": "34c4f785c7fc054cda8754dd13c0d7c7",
|
||||
"filesize": 496697344,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.32.0F.vmdk",
|
||||
"version": "4.32.0F",
|
||||
"md5sum": "584b901a1249717504050e48f74fb8dd",
|
||||
"filesize": 591396864,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.31.3M.vmdk",
|
||||
"version": "4.31.3M",
|
||||
"md5sum": "a2e130697cdf8547006eebebde6eefca",
|
||||
"filesize": 590086144,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.30.6M.vmdk",
|
||||
"version": "4.30.6M",
|
||||
"md5sum": "a4467648bcfa7b19640af8a4ad3153c6",
|
||||
"filesize": 565968896,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.29.8M.vmdk",
|
||||
"version": "4.29.8M",
|
||||
"md5sum": "1952f6114a4376212c525db9ec8efd5f",
|
||||
"filesize": 558039040,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.28.11M.vmdk",
|
||||
"version": "4.28.11M",
|
||||
"md5sum": "5502df24dfc231c45afb33d6018c16d0",
|
||||
"filesize": 521338880,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.27.12M.vmdk",
|
||||
"version": "4.27.12M",
|
||||
"md5sum": "e08a97e7c1977993f947fedeb4c6ddd5",
|
||||
"filesize": 504299520,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "Aboot-veos-serial-8.0.2.iso",
|
||||
"version": "8.0.2",
|
||||
"md5sum": "8d7e754efebca1930a93a2587ff7606c",
|
||||
"filesize": 6291456,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.26.2F.vmdk",
|
||||
"version": "4.26.2F",
|
||||
@ -218,6 +310,90 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "4.32.0F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.32.0F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.31.3M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.31.3M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.30.6M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.30.6M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.29.8M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.29.8M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.28.11M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.28.11M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.27.12M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.27.12M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.32.0F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.32.0F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.31.3M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.31.3M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.30.6M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.30.6M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.29.8M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.29.8M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.28.11M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.28.11M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.27.12M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.27.12M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.26.2F",
|
||||
"images": {
|
||||
@ -398,4 +574,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -6,7 +6,7 @@
|
||||
"vendor_name": "Asterfusion",
|
||||
"vendor_url": "https://cloudswit.ch/",
|
||||
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/asterfusion.png",
|
||||
"documentation_url": "https://help.cloudswit.ch/portal/en/home",
|
||||
"documentation_url": "https://help.cloudswit.ch/portal/en/kb/articles/vasternos",
|
||||
"product_name": "vAsterNOS",
|
||||
"product_url": "https://cloudswit.ch/product/sonic-enterprise-distribution",
|
||||
"registry_version": 4,
|
||||
@ -34,7 +34,7 @@
|
||||
"version": "V3.1",
|
||||
"md5sum": "c323c9c3f60e1a93eca2acdc5034b85c",
|
||||
"filesize": 2724659200,
|
||||
"download_url": "https://cloudswit.ch/product/sonic-enterprise-distribution/#vAsterNOS"
|
||||
"download_url": "https://drive.cloudswitch.io/external/8ae2e3932ad8bb2ec30dd25be415d288ff3e4a949c557c6bd48ac6e6265bcfc1"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
|
@ -25,11 +25,18 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.09.04a.qcow2",
|
||||
"version": "17.09.04a 8G",
|
||||
"md5sum": "d5dcba52b522f41648538737af80cdf9",
|
||||
"filesize": 1858142208,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Cupertino-17.9.4a"
|
||||
},
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.09.01a.qcow2",
|
||||
"version": "17.09.01a 8G",
|
||||
"md5sum": "a10ae2c4d71f4eb611bc4d83ad7709f0",
|
||||
"filesize": 1856634880,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Bengaluru-17.6.5"
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Cupertino-17.9.1a"
|
||||
},
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.06.05.qcow2",
|
||||
@ -62,6 +69,12 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.09.04a 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.09.04a.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.09.01a 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.09.01a.qcow2"
|
||||
|
@ -16,6 +16,6 @@
|
||||
"docker": {
|
||||
"adapters": 16,
|
||||
"image": "gns3/openvswitch:latest",
|
||||
"environment": "MANAGEMENT_INTERFACE=1"
|
||||
"environment": "MANAGEMENT_INTERFACE=eth0"
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "OPNsense-24.1-OpenSSL-nano-amd64.img",
|
||||
"filename": "OPNsense-24.1-nano-amd64.img",
|
||||
"version": "24.1",
|
||||
"md5sum": "ea8472df2c272419b7834cddaf68048d",
|
||||
"filesize": 3221225472,
|
||||
@ -72,7 +72,7 @@
|
||||
{
|
||||
"name": "24.1",
|
||||
"images": {
|
||||
"hda_disk_image": "OPNsense-24.1-OpenSSL-nano-amd64.img"
|
||||
"hda_disk_image": "OPNsense-24.1-nano-amd64.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ class Docker(BaseManager):
|
||||
f"{stdout.decode('utf-8', errors='ignore').strip()}")
|
||||
except OSError as e:
|
||||
raise DockerError(f"Could not install busybox: {e}")
|
||||
raise DockerError("No busybox executable could be found")
|
||||
raise DockerError("No busybox executable could be found, please install busybox (apt install busybox-static on Debian/Ubuntu) and make sure it is in your PATH")
|
||||
|
||||
@staticmethod
|
||||
def resources_path():
|
||||
|
@ -521,6 +521,10 @@ class Dynamips(BaseManager):
|
||||
if usage is not None and usage != vm.usage:
|
||||
vm.usage = usage
|
||||
|
||||
aux_type = settings.get("aux_type")
|
||||
if aux_type is not None and aux_type != vm.aux_type:
|
||||
vm.aux_type = aux_type
|
||||
|
||||
# update the configs if needed
|
||||
await self.set_vm_configs(vm, settings)
|
||||
|
||||
|
@ -661,7 +661,8 @@ class IOUVM(BaseNode):
|
||||
self._telnet_server.close()
|
||||
await self._telnet_server.wait_closed()
|
||||
self._telnet_server = None
|
||||
await self.start_console()
|
||||
if self.is_running():
|
||||
await self.start_console()
|
||||
|
||||
@locking
|
||||
async def _networking(self):
|
||||
|
@ -51,11 +51,11 @@ class Snapshot:
|
||||
self._project = project
|
||||
if name:
|
||||
self._name = name
|
||||
self._created_at = datetime.now().timestamp()
|
||||
self._created_at = datetime.now(timezone.utc).timestamp()
|
||||
filename = (
|
||||
self._name
|
||||
+ "_"
|
||||
+ datetime.utcfromtimestamp(self._created_at).replace(tzinfo=None).strftime("%d%m%y_%H%M%S")
|
||||
+ datetime.fromtimestamp(self._created_at, tz=timezone.utc).replace(tzinfo=None).strftime("%d%m%y_%H%M%S")
|
||||
+ ".gns3project"
|
||||
)
|
||||
else:
|
||||
@ -66,7 +66,7 @@ class Snapshot:
|
||||
datetime.strptime(datestring, "%d%m%y_%H%M%S").replace(tzinfo=timezone.utc).timestamp()
|
||||
)
|
||||
except ValueError:
|
||||
self._created_at = datetime.utcnow().timestamp()
|
||||
self._created_at = datetime.now(timezone.utc)
|
||||
self._path = os.path.join(project.path, "snapshots", filename)
|
||||
|
||||
@property
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
CLASSIC_SYMBOL_THEME = {
|
||||
"cloud": ":/symbols/classic/cloud.svg",
|
||||
"nat": ":/symbols/classic/nat.svg",
|
||||
"ethernet_switch": ":/symbols/classic/ethernet_switch.svg",
|
||||
"hub": ":/symbols/classic/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/classic/frame_relay_switch.svg",
|
||||
@ -35,6 +36,7 @@ CLASSIC_SYMBOL_THEME = {
|
||||
|
||||
AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {
|
||||
"cloud": ":/symbols/affinity/square/blue/cloud.svg",
|
||||
"nat": ":/symbols/affinity/square/blue/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/square/blue/switch.svg",
|
||||
"hub": ":/symbols/affinity/square/blue/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/square/blue/isdn.svg",
|
||||
@ -52,6 +54,7 @@ AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {
|
||||
|
||||
AFFINITY_SQUARE_RED_SYMBOL_THEME = {
|
||||
"cloud": ":/symbols/affinity/square/red/cloud.svg",
|
||||
"nat": ":/symbols/affinity/square/red/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/square/red/switch.svg",
|
||||
"hub": ":/symbols/affinity/square/red/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/square/red/isdn.svg",
|
||||
@ -69,6 +72,7 @@ AFFINITY_SQUARE_RED_SYMBOL_THEME = {
|
||||
|
||||
AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {
|
||||
"cloud": ":/symbols/affinity/square/gray/cloud.svg",
|
||||
"nat": ":/symbols/affinity/square/gray/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/square/gray/switch.svg",
|
||||
"hub": ":/symbols/affinity/square/gray/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/square/gray/isdn.svg",
|
||||
@ -86,6 +90,7 @@ AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {
|
||||
|
||||
AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {
|
||||
"cloud": ":/symbols/affinity/circle/blue/cloud.svg",
|
||||
"nat": ":/symbols/affinity/circle/blue/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/circle/blue/switch.svg",
|
||||
"hub": ":/symbols/affinity/circle/blue/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/circle/blue/isdn.svg",
|
||||
@ -103,6 +108,7 @@ AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {
|
||||
|
||||
AFFINITY_CIRCLE_RED_SYMBOL_THEME = {
|
||||
"cloud": ":/symbols/affinity/circle/red/cloud.svg",
|
||||
"nat": ":/symbols/affinity/circle/red/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/circle/red/switch.svg",
|
||||
"hub": ":/symbols/affinity/circle/red/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/circle/red/isdn.svg",
|
||||
@ -120,6 +126,7 @@ AFFINITY_CIRCLE_RED_SYMBOL_THEME = {
|
||||
|
||||
AFFINITY_CIRCLE_GRAY_SYMBOL_THEME = {
|
||||
"cloud": ":/symbols/affinity/circle/gray/cloud.svg",
|
||||
"nat": ":/symbols/affinity/circle/gray/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/circle/gray/switch.svg",
|
||||
"hub": ":/symbols/affinity/circle/gray/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/circle/gray/isdn.svg",
|
||||
|
@ -213,7 +213,7 @@ class UDPLink(Link):
|
||||
:returns: Node where the capture should run
|
||||
"""
|
||||
|
||||
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub")
|
||||
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub", "frame_relay_switch", "atm_switch")
|
||||
|
||||
for node in self._nodes:
|
||||
if (
|
||||
|
@ -58,7 +58,7 @@ class CrashReport:
|
||||
Report crash to a third party service
|
||||
"""
|
||||
|
||||
DSN = "https://395af26fb5b2245d4c9810095aa11da9@o19455.ingest.us.sentry.io/38482"
|
||||
DSN = "https://99870c759d1c1d62ceb091d59dbcfa78@o19455.ingest.us.sentry.io/38482"
|
||||
_instance = None
|
||||
|
||||
def __init__(self):
|
||||
|
@ -45,7 +45,6 @@ class TemplateBase(BaseModel):
|
||||
category: Optional[Category] = None
|
||||
default_name_format: Optional[str] = None
|
||||
symbol: Optional[str] = None
|
||||
builtin: Optional[bool] = None
|
||||
template_type: Optional[NodeType] = None
|
||||
compute_id: Optional[str] = None
|
||||
usage: Optional[str] = ""
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
|
||||
from jose import JWTError, jwt
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, timezone
|
||||
import bcrypt
|
||||
|
||||
from typing import Optional
|
||||
@ -48,7 +48,7 @@ class AuthService:
|
||||
|
||||
if not expires_in:
|
||||
expires_in = Config.instance().settings.Controller.jwt_access_token_expire_minutes
|
||||
expire = datetime.utcnow() + timedelta(minutes=expires_in)
|
||||
expire = datetime.now(timezone.utc) + timedelta(minutes=expires_in)
|
||||
to_encode = {"sub": username, "exp": expire}
|
||||
if secret_key is None:
|
||||
secret_key = Config.instance().settings.Controller.jwt_secret_key
|
||||
|
@ -96,7 +96,7 @@ BUILTIN_TEMPLATES = [
|
||||
"name": "NAT",
|
||||
"default_name_format": "NAT{0}",
|
||||
"category": "guest",
|
||||
"symbol": "cloud",
|
||||
"symbol": "nat",
|
||||
"compute_id": None,
|
||||
"builtin": True,
|
||||
},
|
||||
|
@ -46,6 +46,6 @@
|
||||
|
||||
gtag('config', 'G-5D6FZL9923');
|
||||
</script>
|
||||
<script src="runtime.24fa95b7061d7056.js" type="module"></script><script src="polyfills.319c79dd175e50d0.js" type="module"></script><script src="main.8e8e3d55e78d84fc.js" type="module"></script>
|
||||
<script src="runtime.24fa95b7061d7056.js" type="module"></script><script src="polyfills.319c79dd175e50d0.js" type="module"></script><script src="main.f3840f9b1c0240e6.js" type="module"></script>
|
||||
|
||||
</body></html>
|
1
gns3server/static/web-ui/main.f3840f9b1c0240e6.js
Normal file
60
gns3server/symbols/affinity/circle/blue/nat.svg
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958275"
|
||||
inkscape:cy="30"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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"
|
||||
id="path4" />
|
||||
|
||||
<path
|
||||
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
|
||||
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
id="path8" /><path
|
||||
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
|
||||
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
|
||||
id="path8-3" /><path
|
||||
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
|
||||
id="path8-3-5" /><path
|
||||
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
|
||||
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
|
||||
id="path8-3-5-2" /><path
|
||||
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
|
||||
id="path8-3-5-6" /></svg>
|
After Width: | Height: | Size: 3.1 KiB |
55
gns3server/symbols/affinity/circle/blue/nat2.svg
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat2.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958275"
|
||||
inkscape:cy="30"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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"
|
||||
id="path4" />
|
||||
<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)"
|
||||
id="path6" />
|
||||
<path
|
||||
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421"
|
||||
id="path8-7" /><path
|
||||
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421"
|
||||
id="path10-5" /></svg>
|
After Width: | Height: | Size: 4.3 KiB |
60
gns3server/symbols/affinity/circle/gray/nat.svg
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958276"
|
||||
inkscape:cy="30.000001"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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:#4d4d4d;fill-opacity:1"
|
||||
id="path4" />
|
||||
|
||||
<path
|
||||
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
|
||||
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
|
||||
id="path8" /><path
|
||||
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
|
||||
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3" /><path
|
||||
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5" /><path
|
||||
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
|
||||
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5-2" /><path
|
||||
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5-6" /></svg>
|
After Width: | Height: | Size: 3.2 KiB |
55
gns3server/symbols/affinity/circle/gray/nat2.svg
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat2.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958276"
|
||||
inkscape:cy="30.000001"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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:#4d4d4d;fill-opacity:1"
|
||||
id="path4" />
|
||||
<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:#4d4d4d;fill-opacity:1"
|
||||
transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"
|
||||
id="path6" />
|
||||
<path
|
||||
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-7" /><path
|
||||
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path10-5" /></svg>
|
After Width: | Height: | Size: 4.3 KiB |
60
gns3server/symbols/affinity/circle/green/nat.svg
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958276"
|
||||
inkscape:cy="30.000001"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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:#109e00;fill-opacity:1"
|
||||
id="path4" />
|
||||
|
||||
<path
|
||||
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
|
||||
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
|
||||
id="path8" /><path
|
||||
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
|
||||
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3" /><path
|
||||
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5" /><path
|
||||
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
|
||||
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5-2" /><path
|
||||
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5-6" /></svg>
|
After Width: | Height: | Size: 3.2 KiB |
55
gns3server/symbols/affinity/circle/green/nat2.svg
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat2.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958276"
|
||||
inkscape:cy="30.000001"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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:#109e00;fill-opacity:1"
|
||||
id="path4" />
|
||||
<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:#109e00;fill-opacity:1"
|
||||
transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"
|
||||
id="path6" />
|
||||
<path
|
||||
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-7" /><path
|
||||
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path10-5" /></svg>
|
After Width: | Height: | Size: 4.3 KiB |
60
gns3server/symbols/affinity/circle/red/nat.svg
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958276"
|
||||
inkscape:cy="30.000001"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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:#e3292e;fill-opacity:1"
|
||||
id="path4" />
|
||||
|
||||
<path
|
||||
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
|
||||
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
|
||||
id="path8" /><path
|
||||
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
|
||||
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3" /><path
|
||||
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5" /><path
|
||||
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
|
||||
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5-2" /><path
|
||||
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
|
||||
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-3-5-6" /></svg>
|
After Width: | Height: | Size: 3.2 KiB |
55
gns3server/symbols/affinity/circle/red/nat2.svg
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="60"
|
||||
height="60"
|
||||
viewBox="0 0 300 300"
|
||||
xml:space="preserve"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="nat2.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.983333"
|
||||
inkscape:cx="29.958276"
|
||||
inkscape:cy="30.000001"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8" />
|
||||
<circle
|
||||
cx="150"
|
||||
cy="150"
|
||||
r="150"
|
||||
style="fill:#fffefe"
|
||||
id="circle2" />
|
||||
<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:#e3292e;fill-opacity:1"
|
||||
id="path4" />
|
||||
<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:#e3292e;fill-opacity:1"
|
||||
transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"
|
||||
id="path6" />
|
||||
<path
|
||||
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path8-7" /><path
|
||||
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
|
||||
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
|
||||
id="path10-5" /></svg>
|
After Width: | Height: | Size: 4.3 KiB |
58
gns3server/symbols/affinity/square/blue/nat.svg
Normal file
After Width: | Height: | Size: 20 KiB |
74
gns3server/symbols/affinity/square/blue/nat2.svg
Normal file
After Width: | Height: | Size: 78 KiB |
58
gns3server/symbols/affinity/square/gray/nat.svg
Normal file
After Width: | Height: | Size: 20 KiB |
74
gns3server/symbols/affinity/square/gray/nat2.svg
Normal file
After Width: | Height: | Size: 78 KiB |
58
gns3server/symbols/affinity/square/green/nat.svg
Normal file
After Width: | Height: | Size: 20 KiB |
74
gns3server/symbols/affinity/square/green/nat2.svg
Normal file
After Width: | Height: | Size: 78 KiB |
58
gns3server/symbols/affinity/square/red/nat.svg
Normal file
After Width: | Height: | Size: 20 KiB |
74
gns3server/symbols/affinity/square/red/nat2.svg
Normal file
After Width: | Height: | Size: 78 KiB |
207
gns3server/symbols/classic/nat.svg
Normal file
@ -0,0 +1,207 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
width="4.5009999cm"
|
||||
height="2.0009999cm"
|
||||
viewBox="0.2 0.149 4.7 2.151"
|
||||
id="svg2"
|
||||
sodipodi:docname="nat.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<sodipodi:namedview
|
||||
id="namedview30"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="cm"
|
||||
showgrid="false"
|
||||
inkscape:lockguides="true"
|
||||
inkscape:zoom="5.7444245"
|
||||
inkscape:cx="75.725602"
|
||||
inkscape:cy="42.040765"
|
||||
inkscape:window-width="1658"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<metadata
|
||||
id="metadata57">
|
||||
<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:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs55" />
|
||||
<path
|
||||
d="m 3.7599791,0.61531938 -10e-4,-0.021 -0.003,-0.021 -0.007,-0.02 -0.009,-0.02 -0.011,-0.021 -0.013,-0.02 -0.017,-0.02 -0.018,-0.019 -0.021,-0.019 -0.023,-0.019 -0.024,-0.017 -0.028,-0.017 -0.03,-0.017 -0.031,-0.017 -0.033,-0.015 -0.035,-0.015 -0.037,-0.014 -0.038,-0.013 -0.04,-0.012 -0.041,-0.011 -0.043,-0.011 -0.045,-0.01 -0.044,-0.008 -0.046,-0.008 -0.048,-0.007 -0.047,-0.006 -0.048,-0.004 -0.049,-0.004 -0.05,-0.003 -0.049,-0.001 -0.049,-0.001 0,0 -0.05,0.001 -0.049,0.001 -0.05,0.003 -0.048,0.004 -0.049,0.004 -0.047,0.006 -0.047,0.007 -0.046,0.008 -0.045,0.008 -0.043,0.01 -0.043,0.011 -0.042,0.011 -0.04,0.012 -0.039,0.013 -0.036,0.014 -0.035,0.015 -0.033,0.015 -0.032,0.017 -0.029,0.017 -0.027,0.017 -0.026,0.017 -0.023,0.019 -0.02,0.019 -0.019,0.019 -0.016,0.02 -0.014,0.02 -0.01,0.021 -0.009,0.02 -0.006,0.02 -0.005,0.021 -0.001,0.021 0,0 0.001,0.02 0.005,0.022 0.006,0.02 0.009,0.021 0.01,0.02 0.014,0.019 0.016,0.02 0.019,0.02 0.02,0.019 0.023,0.018 0.026,0.018 0.027,0.017 0.029,0.017 0.032,0.016 0.033,0.016 0.035,0.014 0.036,0.014 0.039,0.013 0.04,0.013 0.042,0.011 0.043,0.01 0.043,0.011 0.045,0.008 0.046,0.007 0.047,0.007 0.047,0.006 0.049,0.005 0.048,0.003 0.05,0.003 0.049,10e-4 0.05,0.001 0,0 0.049,-0.001 0.049,-10e-4 0.05,-0.003 0.049,-0.003 0.048,-0.005 0.047,-0.006 0.048,-0.007 0.046,-0.007 0.044,-0.008 0.045,-0.011 0.043,-0.01 0.041,-0.011 0.04,-0.013 0.038,-0.013 0.037,-0.014 0.035,-0.014 0.033,-0.016 0.031,-0.016 0.03,-0.017 0.028,-0.017 0.024,-0.018 0.023,-0.018 0.021,-0.019 0.018,-0.02 0.017,-0.02 0.013,-0.019 0.011,-0.02 0.009,-0.021 0.007,-0.02 0.003,-0.022 10e-4,-0.02"
|
||||
id="path4"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 2.2259791,0.83031938 -10e-4,-0.021 -0.003,-0.02 -0.004,-0.021 -0.007,-0.02 -0.009,-0.021 -0.01,-0.02 -0.012,-0.02 -0.015,-0.018 -0.015,-0.019 -0.018,-0.019 -0.019,-0.018 -0.021,-0.017 -0.022,-0.017 -0.024,-0.016 -0.026,-0.015 -0.026,-0.015 -0.029,-0.014 -0.029,-0.013 -0.031,-0.013 -0.032,-0.011 -0.032,-0.011 -0.034,-0.009 -0.035,-0.009 -0.035,-0.008 -0.036,-0.006 -0.036,-0.006 -0.037,-0.005 -0.038,-0.004 -0.037,-0.002 -0.039,-0.002 -0.038,0 0,0 -0.037,0 -0.038,0.002 -0.038,0.002 -0.038,0.004 -0.037,0.005 -0.036,0.006 -0.036,0.006 -0.035,0.008 -0.035,0.009 -0.033,0.009 -0.033,0.011 -0.032,0.011 -0.03,0.013 -0.03,0.013 -0.028,0.014 -0.027,0.015 -0.025,0.015 -0.024,0.016 -0.023,0.017 -0.021,0.017 -0.018,0.018 -0.019,0.019 -0.015,0.019 -0.015,0.018 -0.012,0.02 -0.011,0.02 -0.008,0.021 -0.007,0.02 -0.005,0.021 -0.002,0.02 -0.001,0.021 0,0 0.001,0.021 0.002,0.021 0.005,0.02 0.007,0.021 0.008,0.02 0.011,0.02 0.012,0.02 0.015,0.019 0.015,0.019 0.019,0.018 0.018,0.018 0.021,0.018 0.023,0.016 0.024,0.016 0.025,0.016 0.027,0.014 0.028,0.015 0.03,0.012 0.03,0.013 0.032,0.012 0.033,0.01 0.033,0.01 0.035,0.008 0.035,0.008 0.036,0.007 0.036,0.005 0.037,0.005 0.038,0.004 0.038,0.002 0.038,0.002 0.037,0 0,0 0.038,0 0.039,-0.002 0.037,-0.002 0.038,-0.004 0.037,-0.005 0.036,-0.005 0.036,-0.007 0.035,-0.008 0.035,-0.008 0.034,-0.01 0.032,-0.01 0.032,-0.012 0.031,-0.013 0.029,-0.012 0.029,-0.015 0.026,-0.014 0.026,-0.016 0.024,-0.016 0.022,-0.016 0.021,-0.018 0.019,-0.018 0.018,-0.018 0.015,-0.019 0.015,-0.019 0.012,-0.02 0.01,-0.02 0.009,-0.02 0.007,-0.021 0.004,-0.02 0.003,-0.021 10e-4,-0.021"
|
||||
id="path6"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 1.2809791,1.2493194 -10e-4,-0.017 -0.001,-0.017 -0.004,-0.017 -0.005,-0.017 -0.005,-0.016 -0.007,-0.016 -0.009,-0.016 -0.009,-0.017 -0.011,-0.015 -0.012,-0.015 -0.012,-0.014 -0.014,-0.015 -0.015,-0.014 -0.017,-0.012 -0.017,-0.013 -0.018,-0.012 -0.019,-0.011 -0.02,-0.011 -0.02,-0.01 -0.022,-0.01 -0.022,-0.008 -0.023,-0.008 -0.023,-0.007 -0.024,-0.006 -0.024,-0.006 -0.025,-0.004 -0.024,-0.005 -0.026,-0.002 -0.025,-0.002 -0.025,-0.002 -0.026,0 0,0 -0.026,0 -0.026,0.002 -0.025,0.002 -0.025,0.002 -0.024,0.005 -0.026,0.004 -0.024,0.006 -0.023,0.006 -0.023,0.007 -0.023,0.008 -0.022,0.008 -0.022,0.01 -0.021,0.01 -0.019,0.011 -0.019,0.011 -0.018,0.012 -0.017,0.013 -0.017,0.012 -0.015,0.014 -0.014,0.015 -0.013,0.014 -0.011,0.015 -0.011,0.015 -0.01,0.017 -0.008,0.016 -0.007,0.016 -0.006,0.016 -0.004,0.017 -0.004,0.017 -0.002,0.017 0,0.017 0,0 0,0.016 0.002,0.018 0.004,0.016 0.004,0.017 0.006,0.017 0.007,0.016 0.008,0.016 0.01,0.015 0.011,0.016 0.011,0.015 0.013,0.015 0.014,0.014 0.015,0.014 0.017,0.013 0.017,0.012 0.018,0.012 0.019,0.012 0.019,0.01 0.021,0.01 0.022,0.01 0.022,0.008 0.023,0.008 0.023,0.007 0.023,0.007 0.024,0.005 0.026,0.005 0.024,0.004 0.025,0.003 0.025,10e-4 0.026,0.002 0.026,0.001 0,0 0.026,-0.001 0.025,-0.002 0.025,-10e-4 0.026,-0.003 0.024,-0.004 0.025,-0.005 0.024,-0.005 0.024,-0.007 0.023,-0.007 0.023,-0.008 0.022,-0.008 0.022,-0.01 0.02,-0.01 0.02,-0.01 0.019,-0.012 0.018,-0.012 0.017,-0.012 0.017,-0.013 0.015,-0.014 0.014,-0.014 0.012,-0.015 0.012,-0.015 0.011,-0.016 0.009,-0.015 0.009,-0.016 0.007,-0.016 0.005,-0.017 0.005,-0.017 0.004,-0.016 0.001,-0.018 10e-4,-0.016"
|
||||
id="path8"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 2.0969791,1.5713194 -0.002,-0.018 -0.003,-0.018 -0.004,-0.019 -0.007,-0.018 -0.009,-0.017 -0.01,-0.018 -0.013,-0.017 -0.015,-0.018 -0.016,-0.016 -0.017,-0.016 -0.019,-0.016 -0.021,-0.016 -0.024,-0.015 -0.024,-0.014 -0.026,-0.013 -0.027,-0.013 -0.028,-0.012 -0.031,-0.012 -0.03,-0.011 -0.032,-0.01 -0.034,-0.009 -0.035,-0.009 -0.034,-0.008 -0.036,-0.007 -0.036,-0.005 -0.038,-0.006 -0.037,-0.004 -0.038,-0.003 -0.038,-0.002 -0.039,-0.002 -0.038,0 0,0 -0.038,0 -0.039,0.002 -0.039,0.002 -0.038,0.003 -0.037,0.004 -0.037,0.006 -0.037,0.005 -0.035,0.007 -0.035,0.008 -0.034,0.009 -0.034,0.009 -0.032,0.01 -0.031,0.011 -0.03,0.012 -0.029,0.012 -0.027,0.013 -0.026,0.013 -0.024,0.014 -0.023,0.015 -0.021,0.016 -0.019,0.016 -0.018,0.016 -0.017,0.016 -0.014,0.018 -0.012,0.017 -0.01,0.018 -0.01,0.017 -0.006,0.018 -0.005,0.019 -0.003,0.018 -0.001,0.018 0,0 0.001,0.019 0.003,0.018 0.005,0.018 0.006,0.018 0.01,0.019 0.01,0.017 0.012,0.017 0.014,0.018 0.017,0.016 0.018,0.016 0.019,0.016 0.021,0.015 0.023,0.015 0.024,0.015 0.026,0.014 0.027,0.012 0.029,0.013 0.03,0.011 0.031,0.011 0.032,0.01 0.034,0.01 0.034,0.008 0.035,0.008 0.035,0.006 0.037,0.007 0.037,0.004 0.037,0.005 0.038,0.003 0.039,0.003 0.039,10e-4 0.038,0 0,0 0.038,0 0.039,-10e-4 0.038,-0.003 0.038,-0.003 0.037,-0.005 0.038,-0.004 0.036,-0.007 0.036,-0.006 0.034,-0.008 0.035,-0.008 0.034,-0.01 0.032,-0.01 0.03,-0.011 0.031,-0.011 0.028,-0.013 0.027,-0.012 0.026,-0.014 0.024,-0.015 0.024,-0.015 0.021,-0.015 0.019,-0.016 0.017,-0.016 0.016,-0.016 0.015,-0.018 0.013,-0.017 0.01,-0.017 0.009,-0.019 0.007,-0.018 0.004,-0.018 0.003,-0.018 0.002,-0.019"
|
||||
id="path10"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 3.9229791,1.7583194 -0.002,-0.021 -0.004,-0.022 -0.007,-0.022 -0.011,-0.021 -0.012,-0.021 -0.016,-0.021 -0.019,-0.021 -0.021,-0.02 -0.024,-0.02 -0.027,-0.02 -0.029,-0.018 -0.032,-0.019 -0.033,-0.017 -0.037,-0.017 -0.039,-0.016 -0.04,-0.016 -0.043,-0.014 -0.045,-0.014 -0.046,-0.013 -0.048,-0.012 -0.05,-0.01 -0.051,-0.011 -0.052,-0.009 -0.054,-0.008 -0.054,-0.007 -0.056,-0.006 -0.055,-0.005 -0.057,-0.004 -0.057,-0.002 -0.058,-0.002 -0.057,0 0,0 -0.057,0 -0.058,0.002 -0.057,0.002 -0.057,0.004 -0.056,0.005 -0.055,0.006 -0.054,0.007 -0.054,0.008 -0.052,0.009 -0.051,0.011 -0.05,0.01 -0.048,0.012 -0.047,0.013 -0.044,0.014 -0.043,0.014 -0.04,0.016 -0.039,0.016 -0.037,0.017 -0.034,0.017 -0.031,0.019 -0.029,0.018 -0.027,0.02 -0.024,0.02 -0.021,0.02 -0.018,0.021 -0.017,0.021 -0.012,0.021 -0.011,0.021 -0.007,0.022 -0.005,0.022 -10e-4,0.021 0,0 10e-4,0.023 0.005,0.021 0.007,0.022 0.011,0.021 0.012,0.022 0.017,0.02 0.018,0.021 0.021,0.02 0.024,0.02 0.027,0.02 0.029,0.018 0.031,0.018 0.034,0.018 0.037,0.017 0.039,0.016 0.04,0.016 0.043,0.015 0.044,0.013 0.047,0.013 0.048,0.012 0.05,0.011 0.051,0.01 0.052,0.009 0.054,0.009 0.054,0.007 0.055,0.005 0.056,0.005 0.057,0.004 0.057,0.003 0.058,0.002 0.057,0 0,0 0.057,0 0.058,-0.002 0.057,-0.003 0.057,-0.004 0.055,-0.005 0.056,-0.005 0.054,-0.007 0.054,-0.009 0.052,-0.009 0.051,-0.01 0.05,-0.011 0.048,-0.012 0.046,-0.013 0.045,-0.013 0.043,-0.015 0.04,-0.016 0.039,-0.016 0.037,-0.017 0.033,-0.018 0.032,-0.018 0.029,-0.018 0.027,-0.02 0.024,-0.02 0.021,-0.02 0.019,-0.021 0.016,-0.02 0.012,-0.022 0.011,-0.021 0.007,-0.022 0.004,-0.021 0.002,-0.023"
|
||||
id="path12"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 4.5529791,0.76631938 0,-0.016 -0.003,-0.016 -0.004,-0.017 -0.008,-0.016 -0.007,-0.016 -0.011,-0.016 -0.012,-0.015 -0.013,-0.015 -0.016,-0.015 -0.017,-0.015 -0.019,-0.013 -0.02,-0.014 -0.022,-0.013 -0.023,-0.013 -0.025,-0.012 -0.026,-0.011 -0.027,-0.012 -0.029,-0.01 -0.03,-0.01 -0.031,-0.009 -0.031,-0.008 -0.033,-0.008 -0.034,-0.007 -0.034,-0.006 -0.035,-0.005 -0.035,-0.005 -0.036,-0.003 -0.037,-0.003 -0.036,-0.002 -0.037,-0.001 -0.037,0 0,0 -0.037,0 -0.036,0.001 -0.038,0.002 -0.035,0.003 -0.036,0.003 -0.036,0.005 -0.034,0.005 -0.035,0.006 -0.034,0.007 -0.032,0.008 -0.032,0.008 -0.031,0.009 -0.03,0.01 -0.028,0.01 -0.028,0.012 -0.026,0.011 -0.025,0.012 -0.023,0.013 -0.022,0.013 -0.02,0.014 -0.019,0.013 -0.016,0.015 -0.016,0.015 -0.014,0.015 -0.012,0.015 -0.01,0.016 -0.009,0.016 -0.006,0.016 -0.005,0.017 -0.002,0.016 -10e-4,0.016 0,0 10e-4,0.016 0.002,0.016 0.005,0.017 0.006,0.016 0.009,0.016 0.01,0.016 0.012,0.016 0.014,0.014 0.016,0.016 0.016,0.014 0.019,0.014 0.02,0.013 0.022,0.014 0.023,0.013 0.025,0.012 0.026,0.011 0.028,0.011 0.028,0.011 0.03,0.009 0.031,0.009 0.032,0.009 0.032,0.007 0.034,0.007 0.035,0.006 0.034,0.006 0.036,0.004 0.036,0.003 0.035,0.003 0.038,0.003 0.036,0 0.037,10e-4 0,0 0.037,-10e-4 0.037,0 0.036,-0.003 0.037,-0.003 0.036,-0.003 0.035,-0.004 0.035,-0.006 0.034,-0.006 0.034,-0.007 0.033,-0.007 0.031,-0.009 0.031,-0.009 0.03,-0.009 0.029,-0.011 0.027,-0.011 0.026,-0.011 0.025,-0.012 0.023,-0.013 0.022,-0.014 0.02,-0.013 0.019,-0.014 0.017,-0.014 0.016,-0.016 0.013,-0.014 0.012,-0.016 0.011,-0.016 0.007,-0.016 0.008,-0.016 0.004,-0.017 0.003,-0.016 0,-0.016"
|
||||
id="path14"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 4.7599791,1.1813194 -10e-4,-0.016 -0.002,-0.016 -0.005,-0.017 -0.007,-0.016 -0.008,-0.016 -0.01,-0.016 -0.012,-0.016 -0.013,-0.014 -0.015,-0.015 -0.018,-0.015 -0.019,-0.014 -0.019,-0.013 -0.022,-0.013 -0.023,-0.014 -0.024,-0.011 -0.027,-0.012 -0.027,-0.011 -0.028,-0.01 -0.03,-0.01 -0.03,-0.009 -0.032,-0.008 -0.033,-0.008 -0.033,-0.007 -0.033,-0.005 -0.035,-0.006 -0.035,-0.004 -0.036,-0.004 -0.036,-0.003 -0.036,-0.002 -0.037,-0.001 -0.036,-0.001 0,0 -0.038,0.001 -0.036,0.001 -0.036,0.002 -0.036,0.003 -0.036,0.004 -0.035,0.004 -0.035,0.006 -0.033,0.005 -0.034,0.007 -0.032,0.008 -0.032,0.008 -0.03,0.009 -0.03,0.01 -0.028,0.01 -0.027,0.011 -0.027,0.012 -0.024,0.011 -0.022,0.014 -0.022,0.013 -0.021,0.013 -0.018,0.014 -0.018,0.015 -0.015,0.015 -0.013,0.014 -0.012,0.016 -0.01,0.016 -0.008,0.016 -0.007,0.016 -0.005,0.017 -0.002,0.016 -10e-4,0.016 0,0 10e-4,0.016 0.002,0.016 0.005,0.016 0.007,0.016 0.008,0.017 0.01,0.016 0.012,0.015 0.013,0.015 0.015,0.015 0.018,0.015 0.018,0.013 0.021,0.014 0.022,0.013 0.022,0.013 0.024,0.012 0.027,0.011 0.027,0.012 0.028,0.01 0.03,0.01 0.03,0.009 0.032,0.008 0.032,0.007 0.034,0.007 0.033,0.006 0.035,0.005 0.035,0.005 0.036,0.004 0.036,0.003 0.036,0.002 0.036,0.001 0.038,0 0,0 0.036,0 0.037,-0.001 0.036,-0.002 0.036,-0.003 0.036,-0.004 0.035,-0.005 0.035,-0.005 0.033,-0.006 0.033,-0.007 0.033,-0.007 0.032,-0.008 0.03,-0.009 0.03,-0.01 0.028,-0.01 0.027,-0.012 0.027,-0.011 0.024,-0.012 0.023,-0.013 0.022,-0.013 0.019,-0.014 0.019,-0.013 0.018,-0.015 0.015,-0.015 0.013,-0.015 0.012,-0.015 0.01,-0.016 0.008,-0.017 0.007,-0.016 0.005,-0.016 0.002,-0.016 10e-4,-0.016"
|
||||
id="path16"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 4.6189791,1.5243194 -10e-4,-0.027 -0.002,-0.027 -0.005,-0.026 -0.006,-0.027 -0.009,-0.026 -0.01,-0.026 -0.012,-0.025 -0.014,-0.025 -0.014,-0.025 -0.017,-0.023 -0.018,-0.024 -0.021,-0.022 -0.021,-0.022 -0.023,-0.02 -0.024,-0.021 -0.027,-0.018 -0.027,-0.018 -0.027,-0.018 -0.029,-0.015 -0.031,-0.015 -0.032,-0.013 -0.031,-0.013 -0.033,-0.011 -0.034,-0.01 -0.035,-0.009 -0.035,-0.007 -0.036,-0.006 -0.035,-0.005 -0.036,-0.003 -0.036,-0.002 -0.036,-0.001 0,0 -0.037,0.001 -0.036,0.002 -0.036,0.003 -0.036,0.005 -0.035,0.006 -0.035,0.007 -0.035,0.009 -0.034,0.01 -0.033,0.011 -0.032,0.013 -0.031,0.013 -0.031,0.015 -0.029,0.015 -0.028,0.018 -0.027,0.018 -0.026,0.018 -0.024,0.021 -0.023,0.02 -0.022,0.022 -0.019,0.022 -0.019,0.024 -0.017,0.023 -0.015,0.025 -0.014,0.025 -0.011,0.025 -0.01,0.026 -0.008,0.026 -0.007,0.027 -0.005,0.026 -0.002,0.027 -10e-4,0.027 0,0 10e-4,0.027 0.002,0.027 0.005,0.026 0.007,0.026 0.008,0.026 0.01,0.026 0.011,0.026 0.014,0.025 0.015,0.024 0.017,0.024 0.019,0.023 0.019,0.022 0.022,0.022 0.023,0.021 0.024,0.02 0.026,0.019 0.027,0.018 0.028,0.017 0.029,0.016 0.031,0.015 0.031,0.013 0.032,0.013 0.033,0.011 0.034,0.01 0.035,0.008 0.035,0.008 0.035,0.006 0.036,0.005 0.036,0.003 0.036,0.002 0.037,10e-4 0,0 0.036,-10e-4 0.036,-0.002 0.036,-0.003 0.035,-0.005 0.036,-0.006 0.035,-0.008 0.035,-0.008 0.034,-0.01 0.033,-0.011 0.031,-0.013 0.032,-0.013 0.031,-0.015 0.029,-0.016 0.027,-0.017 0.027,-0.018 0.027,-0.019 0.024,-0.02 0.023,-0.021 0.021,-0.022 0.021,-0.022 0.018,-0.023 0.017,-0.024 0.014,-0.024 0.014,-0.025 0.012,-0.026 0.01,-0.026 0.009,-0.026 0.006,-0.026 0.005,-0.026 0.002,-0.027 10e-4,-0.027"
|
||||
id="path18"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 2.7919791,0.61131938 0.965,-0.091 -0.013,-0.021 -0.014,-0.019 -0.017,-0.02 -0.019,-0.02 -0.022,-0.019 -0.024,-0.018 -0.026,-0.018 -0.028,-0.017 -0.031,-0.017 -0.032,-0.016 -0.034,-0.015 -0.036,-0.014 -0.038,-0.014 -0.039,-0.013 -0.042,-0.012 -0.042,-0.011 -0.043,-0.011 -0.045,-0.009 -0.046,-0.009 -0.047,-0.007 -0.048,-0.007 -0.048,-0.005 -0.049,-0.004 -0.049,-0.004 -0.049,-0.002 -0.051,-0.001 -0.05,0 -0.05,0 -0.049,0.003 -0.05,0.002 -0.049,0.004 -0.049,0.006 -0.047,0.006 -0.048,0.007 -0.046,0.008 -0.045,0.009 -0.044,0.01 -0.043,0.011 -0.041,0.012 -0.04,0.013 -0.038,0.013 -0.036,0.014 -0.036,0.016 -0.032,0.015 -0.032,0.017 -0.029,0.017 -0.026,0.018 -0.024,0.018 -0.024,0.019 -0.02,0.018 -0.018,0.02 -0.015,0.02 -0.012,0.021 -0.011,0.02 0.971,0.077"
|
||||
id="path22"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 3.7569791,0.51931938 -0.013,-0.021 -0.014,-0.019 -0.017,-0.02 -0.02,-0.019 -0.022,-0.019 -0.024,-0.018 -0.026,-0.018 -0.029,-0.018 -0.03,-0.016 -0.032,-0.016 -0.035,-0.016 -0.035,-0.014 -0.038,-0.014 -0.04,-0.012 -0.04,-0.013 -0.042,-0.011 -0.044,-0.01 -0.045,-0.01 -0.046,-0.008 -0.046,-0.008 -0.048,-0.006 -0.048,-0.005 -0.049,-0.004 -0.05,-0.004 -0.05,-0.002 -0.049,-0.001 -0.051,0 -0.049,0 -0.049,0.003 -0.051,0.002 -0.048,0.004 -0.049,0.006 -0.047,0.006 -0.048,0.007 -0.046,0.008 -0.045,0.009 -0.043,0.01 -0.043,0.011 -0.042,0.012 -0.039,0.013 -0.038,0.013 -0.036,0.014 -0.036,0.015 -0.033,0.015 -0.031,0.017 -0.028,0.018 -0.028,0.017 -0.024,0.018 -0.022,0.019 -0.021,0.019 -0.018,0.019 -0.016,0.02 -0.012,0.021 -0.011,0.02"
|
||||
id="path24"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m 1.4819791,0.82631938 0.486,-0.317 -0.029,-0.013 -0.032,-0.012 -0.032,-0.012 -0.033,-0.01 -0.034,-0.01 -0.035,-0.008 -0.036,-0.008 -0.036,-0.006 -0.037,-0.006 -0.037,-0.005 -0.038,-0.003 -0.038,-0.003 -0.039,-0.001 -0.038,0 -0.038,0 -0.038,0.002 -0.038,0.003 -0.038,0.004 -0.037,0.005 -0.036,0.006 -0.037,0.007 -0.035,0.008 -0.034,0.009 -0.034,0.009 -0.033,0.011 -0.031,0.013 -0.031,0.012 -0.029,0.013 -0.028,0.015 -0.027,0.015 -0.026,0.015 -0.024,0.016 -0.022,0.018 -0.021,0.017 -0.018,0.018 -0.018,0.02 -0.016,0.018 -0.014,0.02 -0.012,0.02 -0.01,0.02 -0.008,0.02 -0.006,0.022 -0.005,0.02 -0.003,0.021 0,0.021 0.001,0.021 0.003,0.021 0.005,0.021 0.74600003,-0.067"
|
||||
id="path26"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 1.9659791,0.50831938 -0.03,-0.014 -0.031,-0.011 -0.033,-0.012 -0.033,-0.01 -0.035,-0.01 -0.034,-0.008 -0.036,-0.008 -0.036,-0.006 -0.037,-0.005 -0.037,-0.005 -0.038,-0.004 -0.038,-0.002 -0.039,-0.001 -0.038,0 -0.038,0 -0.038,0.003 -0.038,0.002 -0.038,0.004 -0.037,0.005 -0.036,0.007 -0.036,0.006 -0.035,0.009 -0.034,0.008 -0.034,0.011 -0.033,0.011 -0.032,0.011 -0.03,0.013 -0.029,0.013 -0.028,0.015 -0.027,0.015 -0.025,0.015 -0.024,0.016 -0.022,0.018 -0.02,0.017 -0.02,0.019 -0.017,0.018 -0.016,0.019 -0.013,0.02 -0.012,0.02 -0.01,0.02 -0.008,0.021 -0.006,0.02 -0.005,0.021 -0.003,0.02 0,0.022 0.002,0.021 0.002,0.02 0.006,0.021"
|
||||
id="path28"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m 1.3459791,1.5683194 -0.78100003,-0.012 0,0.019 0.001,0.019 0.003,0.019 0.006,0.018 0.008,0.019 0.009,0.018 0.012,0.018 0.014,0.018 0.015,0.017 0.017,0.017 0.019,0.017 0.02,0.016 0.023,0.015 0.023,0.015 0.026,0.015 0.027,0.014 0.027,0.012 0.03,0.013 0.031,0.012 0.032,0.01 0.034,0.011 0.033,0.009 0.035,0.008 0.036,0.008 0.037,0.007 0.038,0.006 0.037,0.005 0.039,0.004 0.039,0.003 0.039,0.003 0.04,10e-4 0.039,0 0.039,-10e-4 0.039,-0.002 0.039,-0.002 0.039,-0.003 0.039,-0.005 0.037,-0.006 0.037,-0.005 0.037,-0.008 0.035,-0.008 0.035,-0.009 0.033,-0.009 0.033,-0.01 0.033,-0.011 0.03,-0.013 -0.513,-0.282"
|
||||
id="path30"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 0.56497907,1.5563194 -0.001,0.019 0.002,0.019 0.003,0.018 0.006,0.019 0.008,0.018 0.01,0.019 0.011,0.018 0.014,0.018 0.015,0.017 0.017,0.017 0.018,0.016 0.02,0.016 0.023,0.016 0.024,0.015 0.024,0.014 0.026,0.014 0.029,0.013 0.029,0.013 0.032,0.011 0.032,0.011 0.032,0.01 0.034,0.009 0.035,0.009 0.037,0.008 0.036,0.006 0.037,0.007 0.038,0.005 0.038,0.004 0.039,0.003 0.039,0.002 0.039,0.002 0.04,0 0.039,0 0.039,-0.003 0.039,-0.002 0.038,-0.003 0.038,-0.005 0.038,-0.004 0.038,-0.007 0.036,-0.007 0.036,-0.008 0.034,-0.009 0.034,-0.009 0.034,-0.01 0.031,-0.011 0.03,-0.012"
|
||||
id="path32"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m 3.8359791,0.75931938 0.689,0.104 0.011,-0.016 0.01,-0.015 0.007,-0.016 0.006,-0.016 0.003,-0.016 0.002,-0.017 0,-0.016 -0.002,-0.017 -0.003,-0.016 -0.006,-0.016 -0.007,-0.016 -0.01,-0.016 -0.01,-0.016 -0.013,-0.015 -0.015,-0.015 -0.016,-0.015 -0.018,-0.014 -0.02,-0.014 -0.022,-0.014 -0.021,-0.012 -0.025,-0.013 -0.025,-0.012 -0.027,-0.011 -0.029,-0.011 -0.028,-0.01 -0.03,-0.009 -0.032,-0.009 -0.032,-0.008 -0.034,-0.007 -0.033,-0.006 -0.036,-0.006 -0.034,-0.005 -0.037,-0.004 -0.036,-0.003 -0.037,-0.003 -0.037,-0.001 -0.036,-0.001 -0.037,0 -0.037,0.001 -0.037,0.002 -0.036,0.002 -0.036,0.003 -0.036,0.004 -0.036,0.005 0.238,0.306"
|
||||
id="path34"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 4.4569791,0.92331938 0.067,-0.059 0.011,-0.016 0.009,-0.015 0.009,-0.016 0.005,-0.017 0.004,-0.016 0.002,-0.016 0.001,-0.016 -0.003,-0.017 -0.003,-0.016 -0.006,-0.017 -0.007,-0.015 -0.009,-0.016 -0.011,-0.016 -0.012,-0.015 -0.016,-0.015 -0.016,-0.015 -0.017,-0.014 -0.02,-0.014 -0.021,-0.014 -0.023,-0.013 -0.023,-0.012 -0.026,-0.012 -0.027,-0.011 -0.028,-0.011 -0.029,-0.011 -0.03,-0.009 -0.032,-0.008 -0.031,-0.008 -0.033,-0.008 -0.034,-0.006 -0.035,-0.006 -0.035,-0.005 -0.036,-0.004 -0.036,-0.003 -0.037,-0.002 -0.037,-0.002 -0.037,-0.001 -0.037,0 -0.037,0.001 -0.037,0.002 -0.036,0.002 -0.036,0.003 -0.036,0.004 -0.035,0.005"
|
||||
id="path36"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m 3.9329791,1.1853194 0.775,0.132 0.016,-0.017 0.013,-0.017 0.012,-0.018 0.008,-0.018 0.008,-0.018 0.004,-0.019 10e-4,-0.018 0,-0.018 -0.003,-0.019 -0.004,-0.019 -0.008,-0.018 -0.009,-0.018 -0.012,-0.017 -0.014,-0.018 -0.016,-0.017 -0.018,-0.017 -0.02,-0.016 -0.023,-0.016 -0.024,-0.015 -0.686,0.20100002"
|
||||
id="path38"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 4.6121701,1.38473 0.098479,-0.059128 0.014482,-0.018039 0.013517,-0.018039 0.01062,-0.018039 0.00869,-0.018039 0.00772,-0.018039 0.00386,-0.018039 0.00193,-0.019041 0,-0.018039 -0.00386,-0.020044 -0.00386,-0.018039 -0.00676,-0.018039 -0.00965,-0.018039 -0.011586,-0.018039 -0.013517,-0.018039 -0.015448,-0.017037 -0.018344,-0.017037 -0.021241,-0.016035 -0.020275,-0.016035 -0.024137,-0.0160349 -0.1544773,-0.0591286"
|
||||
id="path40"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.0596842;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m 3.9009791,1.5363194 -0.245,0.503 0.036,0.008 0.036,0.007 0.037,0.006 0.038,0.004 0.038,0.003 0.037,0.002 0.037,0 0.038,-0.002 0.037,-0.002 0.038,-0.004 0.036,-0.005 0.038,-0.007 0.035,-0.008 0.036,-0.009 0.034,-0.011 0.034,-0.012 0.033,-0.013 0.032,-0.014 0.031,-0.016 0.03,-0.016 0.028,-0.018 0.027,-0.019 0.027,-0.02 0.025,-0.02 0.022,-0.022 0.022,-0.021 0.02,-0.024 0.018,-0.024 0.016,-0.024 0.015,-0.025 0.014,-0.026 0.01,-0.025 0.01,-0.027 0.008,-0.027 0.006,-0.026 0.003,-0.028 0.002,-0.027 0,-0.027 -0.002,-0.027 -0.004,-0.027 -0.006,-0.026 -0.008,-0.028 -0.009,-0.025 -0.71,0.149"
|
||||
id="path42"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 3.6589791,2.0403194 0.036,0.008 0.036,0.007 0.037,0.006 0.037,0.004 0.037,0.002 0.038,0.002 0.038,10e-4 0.037,-0.003 0.038,-0.002 0.037,-0.004 0.037,-0.005 0.036,-0.007 0.036,-0.009 0.036,-0.009 0.034,-0.011 0.033,-0.011 0.034,-0.014 0.032,-0.014 0.031,-0.015 0.029,-0.018 0.029,-0.017 0.027,-0.019 0.026,-0.019 0.025,-0.021 0.023,-0.022 0.021,-0.022 0.019,-0.024 0.019,-0.023 0.016,-0.024 0.015,-0.025 0.014,-0.026 0.011,-0.026 0.008,-0.026 0.008,-0.027 0.006,-0.027 0.003,-0.027 0.002,-0.027 0,-0.027 -0.002,-0.027 -0.005,-0.027 -0.005,-0.028 -0.008,-0.026 -0.01,-0.026"
|
||||
id="path44"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m 0.80297907,1.2493194 -0.037,-0.34200002 -0.028,0.002 -0.026,0.002 -0.027,0.004 -0.026,0.004 -0.026,0.005 -0.026,0.006 -0.024,0.007 -0.025,0.008 -0.024,0.008 -0.023,0.009 -0.022,0.01 -0.021,0.01 -0.021,0.012 -0.02,0.012 -0.019,0.013 -0.017,0.013 -0.017,0.014 -0.015,0.014 -0.015,0.015 -0.013,0.015 -0.011,0.016 -0.011,0.016 -0.01,0.016 -0.008,0.017 -0.006,0.017 -0.006,0.016 -0.004,0.018 -0.003,0.018 -0.001,0.017 0,0.017 0.001,0.018 0.003,0.017 0.004,0.017 0.006,0.017 0.007,0.017 0.008,0.017 0.009,0.016 0.011,0.016 0.012,0.016 0.013,0.015 0.016,0.015 0.015,0.014 0.017,0.014 0.018,0.013 0.018,0.013 0.02,0.011 0.021,0.011 0.021,0.012 0.022,0.009 0.024,0.009 0.023,0.009 0.243,-0.305"
|
||||
id="path46"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 0.76697907,0.90731938 -0.027,0.002 -0.027,0.002 -0.026,0.003 -0.026,0.005 -0.025,0.004 -0.026,0.006 -0.025,0.007 -0.023,0.007 -0.023,0.009 -0.023,0.009 -0.023,0.009 -0.021,0.01 -0.02,0.011 -0.02,0.012 -0.018,0.012 -0.018,0.013 -0.017,0.013 -0.016,0.015 -0.015,0.014 -0.012,0.014 -0.012,0.016 -0.012,0.015 -0.009,0.016 -0.009,0.016 -0.007,0.017 -0.006,0.017 -0.005,0.017 -0.003,0.017 -0.002,0.017 0,0.017 0,0.017 0.003,0.017 0.003,0.018 0.004,0.016 0.007,0.017 0.006,0.016 0.009,0.017 0.009,0.016 0.012,0.015 0.012,0.016 0.014,0.014 0.014,0.014 0.016,0.015 0.016,0.013 0.018,0.013 0.019,0.012 0.019,0.011 0.021,0.012 0.021,0.01 0.022,0.009 0.023,0.009 0.024,0.009"
|
||||
id="path48"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m 2.7759791,1.7874896 -1.109,0.040159 0.008,0.020594 0.009,0.019565 0.013,0.020594 0.015,0.020595 0.018,0.019565 0.021,0.018535 0.023,0.018535 0.025,0.018535 0.029,0.018535 0.031,0.017505 0.032,0.015446 0.036,0.016475 0.037,0.015446 0.039,0.015446 0.042,0.013386 0.043,0.013386 0.045,0.011327 0.047,0.012357 0.048,0.010297 0.049,0.00927 0.051,0.00927 0.052,0.00824 0.053,0.00618 0.053,0.00618 0.055,0.00515 0.055,0.00412 0.056,0.00206 0.055,0.00206 0.057,0.00103 0.055,0 0.057,-0.00103 0.055,-0.00309 0.055,-0.00309 0.055,-0.00515 0.054,-0.00515 0.053,-0.00618 0.052,-0.00721 0.052,-0.00824 0.05,-0.010297 0.049,-0.00927 0.047,-0.011327 0.046,-0.011327 0.044,-0.013386 0.042,-0.014416 0.04,-0.013386 0.039,-0.015446 0.036,-0.015446 0.034,-0.016476 0.031,-0.016476 0.03,-0.017505 0.027,-0.019565 0.025,-0.017505 0.022,-0.019565 0.018,-0.018535 -1.056,-0.1307748"
|
||||
id="path50"
|
||||
style="fill:#ffffff;stroke:none" />
|
||||
<path
|
||||
d="m 1.6669791,1.8393194 0.008,0.019 0.01,0.02 0.012,0.02 0.016,0.019 0.017,0.019 0.021,0.018 0.023,0.018 0.025,0.019 0.03,0.017 0.03,0.017 0.032,0.015 0.036,0.016 0.037,0.015 0.039,0.015 0.042,0.013 0.044,0.013 0.043,0.011 0.048,0.012 0.047,0.01 0.049,0.009 0.051,0.009 0.052,0.008 0.053,0.006 0.053,0.005 0.055,0.006 0.054,0.003 0.056,0.003 0.056,0.002 0.056,10e-4 0.056,0 0.056,-10e-4 0.055,-0.003 0.055,-0.003 0.055,-0.005 0.054,-0.005 0.054,-0.006 0.051,-0.007 0.052,-0.008 0.05,-0.009 0.048,-0.01 0.048,-0.011 0.046,-0.011 0.043,-0.013 0.043,-0.012 0.04,-0.015 0.039,-0.014 0.036,-0.016 0.034,-0.015 0.032,-0.017 0.029,-0.016 0.027,-0.018 0.024,-0.018 0.022,-0.019 0.02,-0.018"
|
||||
id="path52"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<rect
|
||||
width="2.7800133"
|
||||
height="0.61515152"
|
||||
rx="0"
|
||||
ry="0.28983101"
|
||||
x="1.2692652"
|
||||
y="0.80605406"
|
||||
transform="matrix(0.999604,0.02812984,-0.02812984,0.999604,0,0)"
|
||||
id="rect1892"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||
<path
|
||||
d="m 2.5029776,1.9073766 0.023,-0.00895 0.020913,-0.00976 0.022119,-0.011947 0.021191,-0.0142 0.021284,-0.015682 0.02031,-0.017195 0.020402,-0.018676 0.020541,-0.020897 0.018455,-0.021702 0.018546,-0.023184 0.018685,-0.025405 0.016552,-0.02547 0.016691,-0.027691 0.014651,-0.029236 0.015717,-0.029204 0.013676,-0.03075 0.012702,-0.032263 0.012748,-0.033004 0.010665,-0.033809 0.010665,-0.033809 0.00863,-0.035354 0.00756,-0.035386 0.00653,-0.036158 0.00658,-0.0369 0.00445,-0.036963 0.00333,-0.036256 0.00236,-0.037768 0.00226,-0.036288 -9.319e-4,-0.036384 2.273e-4,-0.037833 -0.00205,-0.035676 -0.00413,-0.03648 L 2.883076,0.9720976 2.877836,0.9363258 2.871426,0.902003 2.863906,0.8683889 2.855226,0.8362236 2.845476,0.8040261 2.834621,0.7725371 2.82256,0.7432375 2.810453,0.7146786 2.797187,0.6875686 2.782854,0.6604265 2.768383,0.635506 2.751686,0.6120024 2.733784,0.590685 2.716948,0.569403 2.69886,0.5510511 2.679613,0.5341483 2.660319,0.517986 2.640887,0.5040454 2.620296,0.4915538 2.598453,0.4819918 2.577631,0.4732028"
|
||||
id="path24-7"
|
||||
style="fill:none;stroke:#6c8f93;stroke-width:0.107496;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path2057-3"
|
||||
d="M 1.5298421,1.2403194 H 2.3548856 V 1.303797 L 2.577141,1.1602384 2.3548856,1.0313279 v 0.064457 H 1.5298421 v 0.1445348"
|
||||
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.35746e-05;stroke-opacity:0.994961" />
|
||||
<path
|
||||
id="path2057-3-9"
|
||||
d="M 3.1225773,1.2403194 H 3.9476208 V 1.303797 L 4.1698762,1.1602384 3.9476208,1.0313279 v 0.064457 H 3.1225773 v 0.1445348"
|
||||
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.35746e-05;stroke-opacity:0.994961" />
|
||||
<path
|
||||
id="path2057-3-5"
|
||||
d="m 1.5278616,0.86827348 h 0.8319275 v 0.063478 L 2.5838989,0.78819244 2.3597891,0.65928186 v 0.064457 H 1.5278616 v 0.14453482"
|
||||
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.37977e-05;stroke-opacity:0.994961" />
|
||||
<path
|
||||
id="path2057-3-6"
|
||||
d="m 1.527029,1.6225499 h 0.8217599 v 0.063478 L 2.5701597,1.5424689 2.3487889,1.4135585 v 0.064457 H 1.5270291 v 0.1445347"
|
||||
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.34679e-05;stroke-opacity:0.994961" />
|
||||
</svg>
|
After Width: | Height: | Size: 30 KiB |
@ -83,11 +83,9 @@ async def list_images(image_type):
|
||||
with open(os.path.join(root, filename), "rb") as f:
|
||||
# read the first 7 bytes of the file.
|
||||
elf_header_start = f.read(7)
|
||||
# valid IOS images must start with the ELF magic number, be 32-bit, big endian and have an ELF version of 1
|
||||
if (
|
||||
not elf_header_start == b"\x7fELF\x01\x02\x01"
|
||||
and not elf_header_start == b"\x7fELF\x01\x01\x01"
|
||||
):
|
||||
# valid IOU or IOS images must start with the ELF magic number, be 32-bit or 64-bit,
|
||||
# little endian and have an ELF version of 1
|
||||
if elf_header_start != b'\x7fELF\x02\x01\x01' and elf_header_start != b'\x7fELF\x01\x01\x01':
|
||||
continue
|
||||
|
||||
images.append(
|
||||
|
@ -22,7 +22,7 @@
|
||||
# or negative for a release candidate or beta (after the base version
|
||||
# number has been incremented)
|
||||
|
||||
__version__ = "3.0.0b2"
|
||||
__version__ = "3.0.0b3"
|
||||
__version_info__ = (3, 0, 0, -99)
|
||||
|
||||
if "dev" in __version__:
|
||||
|
@ -20,7 +20,7 @@ classifiers = [
|
||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||
"Natural Language :: English",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3 :: Only",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
|
@ -1,12 +1,12 @@
|
||||
uvicorn==0.29.0
|
||||
fastapi==0.110.1
|
||||
fastapi==0.111.0
|
||||
python-multipart==0.0.9
|
||||
websockets==12.0
|
||||
aiohttp==3.9.3
|
||||
async-timeout==4.0.3
|
||||
aiofiles==23.2.1
|
||||
Jinja2>=3.1.3,<3.2
|
||||
sentry-sdk==1.40.6,<1.41
|
||||
Jinja2>=3.1.4,<3.2
|
||||
sentry-sdk==2.1.1,<2.2
|
||||
psutil==5.9.8
|
||||
distro>=1.9.0
|
||||
py-cpuinfo==9.0.0
|
||||
@ -14,10 +14,10 @@ sqlalchemy==2.0.29
|
||||
aiosqlite==0.20.0
|
||||
alembic==1.12.1
|
||||
bcrypt==4.1.2
|
||||
python-jose==3.3.0
|
||||
python-jose[cryptography]==3.3.0
|
||||
email-validator==2.1.1
|
||||
watchfiles==0.21.0
|
||||
zstandard==0.22.0
|
||||
platformdirs==4.2.0
|
||||
platformdirs==4.2.1
|
||||
importlib-resources>=1.3; python_version <= '3.9'
|
||||
truststore>=0.8.0; python_version >= '3.10'
|
||||
truststore>=0.9.1; python_version >= '3.10'
|
||||
|
@ -146,7 +146,7 @@ def fake_image(tmpdir) -> str:
|
||||
|
||||
path = str(tmpdir / "7200.bin")
|
||||
with open(path, "wb+") as f:
|
||||
f.write(b'\x7fELF\x01\x02\x01')
|
||||
f.write(b'\x7fELF\x01\x01\x01')
|
||||
os.chmod(path, stat.S_IREAD)
|
||||
return path
|
||||
|
||||
@ -170,7 +170,7 @@ async def test_images(app: FastAPI, compute_client: AsyncClient, tmpdir, fake_im
|
||||
assert response.json() == [{"filename": "7200.bin",
|
||||
"path": "7200.bin",
|
||||
"filesize": 7,
|
||||
"md5sum": "b0d5aa897d937aced5a6b1046e8f7e2e"}]
|
||||
"md5sum": "e573e8f5c93c6c00783f20c7a170aa6c"}]
|
||||
|
||||
|
||||
async def test_upload_image(app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
|
@ -126,8 +126,7 @@ class TestImageRoutes:
|
||||
("ios", "ios_image", True),
|
||||
("ios", "invalid_image", False),
|
||||
("qemu", "qcow2_image", True),
|
||||
("qemu", "empty_image", False),
|
||||
("wrong_type", "qcow2_image", False),
|
||||
("qemu", "empty_image", False)
|
||||
),
|
||||
)
|
||||
async def test_upload_image(
|
||||
@ -173,7 +172,7 @@ class TestImageRoutes:
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["filename"] == image_name
|
||||
|
||||
async def test_same_image_cannot_be_uploaded(self, app: FastAPI, client: AsyncClient, qcow2_image: str) -> None:
|
||||
async def test_same_image_is_uploaded(self, app: FastAPI, client: AsyncClient, qcow2_image: str) -> None:
|
||||
|
||||
image_name = os.path.basename(qcow2_image)
|
||||
with open(qcow2_image, "rb") as f:
|
||||
@ -181,7 +180,7 @@ class TestImageRoutes:
|
||||
response = await client.post(
|
||||
app.url_path_for("upload_image", image_path=image_name),
|
||||
content=image_data)
|
||||
assert response.status_code == status.HTTP_400_BAD_REQUEST
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
async def test_image_delete(self, app: FastAPI, client: AsyncClient, qcow2_image: str) -> None:
|
||||
|
||||
@ -213,7 +212,7 @@ class TestImageRoutes:
|
||||
"subdir, expected_result",
|
||||
(
|
||||
("subdir", status.HTTP_201_CREATED),
|
||||
("subdir", status.HTTP_400_BAD_REQUEST),
|
||||
("subdir", status.HTTP_201_CREATED),
|
||||
("subdir2", status.HTTP_201_CREATED),
|
||||
),
|
||||
)
|
||||
|
@ -247,7 +247,7 @@ async def test_install_busybox_dynamic_linked():
|
||||
with pytest.raises(DockerError) as e:
|
||||
dst_dir = Docker.resources_path()
|
||||
await Docker.install_busybox(dst_dir)
|
||||
assert str(e.value) == "No busybox executable could be found"
|
||||
assert str(e.value) == "No busybox executable could be found, please install busybox (apt install busybox-static on Debian/Ubuntu) and make sure it is in your PATH"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@ -258,4 +258,4 @@ async def test_install_busybox_no_executables():
|
||||
with pytest.raises(DockerError) as e:
|
||||
dst_dir = Docker.resources_path()
|
||||
await Docker.install_busybox(dst_dir)
|
||||
assert str(e.value) == "No busybox executable could be found"
|
||||
assert str(e.value) == "No busybox executable could be found, please install busybox (apt install busybox-static on Debian/Ubuntu) and make sure it is in your PATH"
|
||||
|
@ -105,5 +105,5 @@ class AsyncioBytesIO(io.BytesIO):
|
||||
async def write(self, data):
|
||||
return super().write(data)
|
||||
|
||||
async def close(self):
|
||||
return super().close()
|
||||
# async def close(self):
|
||||
# return super().close()
|
||||
|
@ -115,11 +115,11 @@ def test_remove_checksum(tmpdir):
|
||||
async def test_list_images(tmpdir, config):
|
||||
|
||||
path1 = tmpdir / "images1" / "IOS" / "test1.image"
|
||||
path1.write(b'\x7fELF\x01\x02\x01', ensure=True)
|
||||
path1.write(b'\x7fELF\x01\x01\x01', ensure=True)
|
||||
path1 = force_unix_path(str(path1))
|
||||
|
||||
path2 = tmpdir / "images2" / "test2.image"
|
||||
path2.write(b'\x7fELF\x01\x02\x01', ensure=True)
|
||||
path2.write(b'\x7fELF\x01\x01\x01', ensure=True)
|
||||
path2 = force_unix_path(str(path2))
|
||||
|
||||
# Invalid image because not a valid elf file
|
||||
@ -128,7 +128,7 @@ async def test_list_images(tmpdir, config):
|
||||
|
||||
if sys.platform.startswith("linux"):
|
||||
path3 = tmpdir / "images1" / "IOU" / "test3.bin"
|
||||
path3.write(b'\x7fELF\x01\x02\x01', ensure=True)
|
||||
path3.write(b'\x7fELF\x02\x01\x01', ensure=True)
|
||||
path3 = force_unix_path(str(path3))
|
||||
|
||||
path4 = tmpdir / "images1" / "QEMU" / "test4.qcow2"
|
||||
@ -146,13 +146,13 @@ async def test_list_images(tmpdir, config):
|
||||
{
|
||||
'filename': 'test1.image',
|
||||
'filesize': 7,
|
||||
'md5sum': 'b0d5aa897d937aced5a6b1046e8f7e2e',
|
||||
'md5sum': 'e573e8f5c93c6c00783f20c7a170aa6c',
|
||||
'path': 'test1.image'
|
||||
},
|
||||
{
|
||||
'filename': 'test2.image',
|
||||
'filesize': 7,
|
||||
'md5sum': 'b0d5aa897d937aced5a6b1046e8f7e2e',
|
||||
'md5sum': 'e573e8f5c93c6c00783f20c7a170aa6c',
|
||||
'path': str(path2)
|
||||
}
|
||||
]
|
||||
@ -162,7 +162,7 @@ async def test_list_images(tmpdir, config):
|
||||
{
|
||||
'filename': 'test3.bin',
|
||||
'filesize': 7,
|
||||
'md5sum': 'b0d5aa897d937aced5a6b1046e8f7e2e',
|
||||
'md5sum': 'c73626d23469519894d58bc98bee9655',
|
||||
'path': 'test3.bin'
|
||||
}
|
||||
]
|
||||
|