feat(protobufs): sync to firmware-current and consume workspace package (#1097)
* feat(protobufs): sync to firmware-current and consume workspace package Sync the vendored .proto sources to firmware-current (v2.7.25+48), regenerate the v2 TS bindings, and consume the workspace @meshtastic/protobufs (workspace:*) in place of the stale JSR 2.7.20 — finishing the monorepo migration (core was already workspace:*). Includes the one required breaking-change fix: admin nodedb_reset changed int32 to bool, so resetNodes() now sends value: true. * build(protobufs): vendor generated bindings for workspace consumers The package is consumed via workspace:* — its exports point at the TS source, which imports ./dist/meshtastic/*_pb.ts — so the generated output must exist at build time. CI builds web/core with no codegen step and the runners have no buf CLI, so the bindings are vendored here (kept gitignored; lint/format skip them). Regenerate with: pnpm --filter @meshtastic/protobufs gen * fix(protobufs): clean script removes the actual generated output dir buf writes bindings to packages/ts/dist, but clean was removing a non-existent root dist — so it never cleaned stale output. Addresses Copilot review feedback. * refactor: move web app packages/web -> apps/web Aligns the web app with the apps/web layout (matching the Vercel web-test Root Directory and the SDK-migration direction). Pure directory move plus root config: pnpm-workspace (adds apps/*), vitest projects, root tsconfig reference, and the pr/release-web/nightly workflows. vercel.json moved with the app. Build + 36 validation tests green. * feat: config fields, module pages, key verification, telemetry capture Incorporates the firmware-current feature work onto the protobuf foundation: new config fields (Display message bubbles; LoRa fem_lna_mode + serial_hal_only; Telemetry air_quality_screen_enabled); 4 new ModuleConfig pages (TrafficManagement, StatusMessage, TAK, RemoteHardware); the manual Key Verification flow (sendKeyVerification + ClientNotificationDialog stages + Verify Key button); live telemetry capture (nodeDB addDeviceMetrics) and admin hardening (toggleMutedNode, graceful PortNum default); plus the sdk-preview ConfigEditor demo and store/config tests. Build + lint + format + 131 tests green. * chore: drop #1062 (unsaved-change-detection) to match upstream revert #1062 was merged to main by accident (per @danditomaso) and is being reverted. Reverse-applied its diff here via 3-way so #1097 stays consistent with where main is headed, while keeping the feature changes layered on the same files (deviceStore/changeRegistry). Build + 131 tests + lint + format green. * fix(nodes): clean up SNR display in node table and map popup SNR is a ratio measured in dB, not dBm (which is absolute power); the node table and map popup both mislabeled it and crammed three values together: '0dBm/50%/50raw'. The trailing '%/raw' pair was the same heuristic ((snr+10)*5) shown twice — once clamped, once not. Render SNR in dB rounded to one decimal, color-coded by a 0-100% signal-quality heuristic (green/yellow/red), with the quality percentage as a muted secondary. Drop the redundant raw value. Adds unit.db; this matches the existing SNRTooltip, which already renders dB.
@@ -45,6 +45,7 @@
|
||||
"publish:jsr": "pnpm run prepack && pnpm prepare:jsr && deno publish --allow-dirty --no-check"
|
||||
},
|
||||
"dependencies": {
|
||||
"@meshtastic/protobufs": "workspace:*",
|
||||
"crc": "npm:crc@^4.3.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,6 +312,61 @@ export class MeshDevice {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a key verification admin message to the connected node, driving the
|
||||
* manual public-key verification handshake (see firmware KeyVerificationModule).
|
||||
* The node correlates each exchange by nonce, so a response message only needs
|
||||
* to echo the nonce supplied by the matching ClientNotification; remoteNodenum
|
||||
* is only meaningful for the initial INITIATE_VERIFICATION request.
|
||||
*/
|
||||
public async sendKeyVerification(
|
||||
messageType: Protobuf.Admin.KeyVerificationAdmin_MessageType,
|
||||
remoteNodenum: number,
|
||||
nonce: bigint,
|
||||
securityNumber?: number,
|
||||
): Promise<number> {
|
||||
this.log.debug("sendKeyVerification", "🔑 Sending key verification message");
|
||||
|
||||
const keyVerificationMessage = create(Protobuf.Admin.AdminMessageSchema, {
|
||||
payloadVariant: {
|
||||
case: "keyVerification",
|
||||
value: create(Protobuf.Admin.KeyVerificationAdminSchema, {
|
||||
messageType,
|
||||
remoteNodenum,
|
||||
nonce,
|
||||
securityNumber,
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
||||
return await this.sendPacket(
|
||||
toBinary(Protobuf.Admin.AdminMessageSchema, keyVerificationMessage),
|
||||
Protobuf.Portnums.PortNum.ADMIN_APP,
|
||||
"self",
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggles the muted state of a node (by node number) on the connected device.
|
||||
* Muted nodes are silenced for notification purposes.
|
||||
*/
|
||||
public async toggleMutedNode(nodeNum: number): Promise<number> {
|
||||
this.log.debug("toggleMutedNode", "🔇 Toggling muted node");
|
||||
|
||||
const toggleMutedMessage = create(Protobuf.Admin.AdminMessageSchema, {
|
||||
payloadVariant: {
|
||||
case: "toggleMutedNode",
|
||||
value: nodeNum,
|
||||
},
|
||||
});
|
||||
|
||||
return await this.sendPacket(
|
||||
toBinary(Protobuf.Admin.AdminMessageSchema, toggleMutedMessage),
|
||||
Protobuf.Portnums.PortNum.ADMIN_APP,
|
||||
"self",
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets devices ChannelSettings
|
||||
*/
|
||||
@@ -575,7 +630,9 @@ export class MeshDevice {
|
||||
const resetNodes = create(Protobuf.Admin.AdminMessageSchema, {
|
||||
payloadVariant: {
|
||||
case: "nodedbReset",
|
||||
value: 1,
|
||||
// nodedb_reset is now a bool (proto >= 2.7): setting the oneof case
|
||||
// triggers the reset; `true` preserves favorites through it.
|
||||
value: true,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1154,7 +1211,16 @@ export class MeshDevice {
|
||||
}
|
||||
|
||||
default:
|
||||
throw new Error(`Unhandled case ${dataPacket.portnum}`);
|
||||
// Unknown / newer portnums (e.g. firmware modules this client predates)
|
||||
// are ignored rather than throwing, so a single unsupported packet can't
|
||||
// break decoding of the rest of the stream.
|
||||
this.log.debug(
|
||||
Emitter[Emitter.HandleMeshPacket],
|
||||
`📦 Ignoring unhandled ${
|
||||
Protobuf.Portnums.PortNum[dataPacket.portnum] ?? dataPacket.portnum
|
||||
} packet`,
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
/* trunk-ignore(buf-lint/COMPILE) */
|
||||
import "meshtastic/channel.proto";
|
||||
import "meshtastic/config.proto";
|
||||
import "meshtastic/connection_status.proto";
|
||||
@@ -12,7 +13,7 @@ import "meshtastic/module_config.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "AdminProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -151,6 +152,21 @@ message AdminMessage {
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
PAXCOUNTER_CONFIG = 12;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
STATUSMESSAGE_CONFIG = 13;
|
||||
|
||||
/*
|
||||
* Traffic management module config
|
||||
*/
|
||||
TRAFFICMANAGEMENT_CONFIG = 14;
|
||||
|
||||
/*
|
||||
* TAK module config
|
||||
*/
|
||||
TAK_CONFIG = 15;
|
||||
}
|
||||
|
||||
enum BackupLocation {
|
||||
@@ -187,6 +203,23 @@ message AdminMessage {
|
||||
uint32 touch_y = 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* User is requesting an over the air update.
|
||||
* Node will reboot into the OTA loader
|
||||
*/
|
||||
message OTAEvent {
|
||||
/*
|
||||
* Tell the node to reboot into OTA mode for firmware update via BLE or WiFi (ESP32 only for now)
|
||||
*/
|
||||
OTAMode reboot_ota_mode = 1;
|
||||
|
||||
/*
|
||||
* A 32 byte hash of the OTA firmware.
|
||||
* Used to verify the integrity of the firmware before applying an update.
|
||||
*/
|
||||
bytes ota_hash = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
@@ -414,6 +447,11 @@ message AdminMessage {
|
||||
*/
|
||||
uint32 remove_ignored_node = 48;
|
||||
|
||||
/*
|
||||
* Set specified node-num to be muted
|
||||
*/
|
||||
uint32 toggle_muted_node = 49;
|
||||
|
||||
/*
|
||||
* Begins an edit transaction for config, module config, owner, and channel settings changes
|
||||
* This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings)
|
||||
@@ -443,8 +481,9 @@ message AdminMessage {
|
||||
/*
|
||||
* Tell the node to reboot into the OTA Firmware in this many seconds (or <0 to cancel reboot)
|
||||
* Only Implemented for ESP32 Devices. This needs to be issued to send a new main firmware via bluetooth.
|
||||
* Deprecated in favor of reboot_ota_mode in 2.7.17
|
||||
*/
|
||||
int32 reboot_ota_seconds = 95;
|
||||
int32 reboot_ota_seconds = 95 [deprecated = true];
|
||||
|
||||
/*
|
||||
* This message is only supported for the simulator Portduino build.
|
||||
@@ -469,11 +508,164 @@ message AdminMessage {
|
||||
|
||||
/*
|
||||
* Tell the node to reset the nodedb.
|
||||
* When true, favorites are preserved through reset.
|
||||
*/
|
||||
int32 nodedb_reset = 100;
|
||||
bool nodedb_reset = 100;
|
||||
|
||||
/*
|
||||
* Tell the node to reset into the OTA Loader
|
||||
*/
|
||||
OTAEvent ota_request = 102;
|
||||
|
||||
/*
|
||||
* Parameters and sensor configuration
|
||||
*/
|
||||
SensorConfig sensor_config = 103;
|
||||
|
||||
/*
|
||||
* Lockdown passphrase delivery / unlock / lock-now command for hardened
|
||||
* firmware builds (see MESHTASTIC_LOCKDOWN). Used to provision the
|
||||
* passphrase on first boot, unlock encrypted storage on subsequent
|
||||
* reboots, re-verify on already-unlocked devices to authorize a new
|
||||
* client connection, or immediately re-lock the device.
|
||||
*
|
||||
* Replaces the earlier scheme that repurposed SecurityConfig.private_key
|
||||
* to carry passphrase bytes; that hack is retired.
|
||||
*/
|
||||
LockdownAuth lockdown_auth = 104;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Lockdown passphrase delivery payload.
|
||||
*
|
||||
* One message handles three operations distinguished by content:
|
||||
* - Provision (first-time): passphrase set, lock_now=false. Firmware
|
||||
* generates DEK, wraps with passphrase-derived KEK, persists.
|
||||
* - Unlock: passphrase set, lock_now=false. Firmware verifies
|
||||
* passphrase against stored DEK, unlocks storage, authorizes the
|
||||
* connection that delivered this packet.
|
||||
* - Lock now: lock_now=true, passphrase ignored. Firmware revokes
|
||||
* all client auth and reboots into the locked state.
|
||||
*
|
||||
* Firmware decides between provision and unlock based on its own state
|
||||
* (whether a DEK file already exists). Clients do not need to track
|
||||
* which case applies.
|
||||
*/
|
||||
message LockdownAuth {
|
||||
/*
|
||||
* Passphrase bytes (1-32). Empty when lock_now is true.
|
||||
* Capped to 32 to match the proto cap on related security fields.
|
||||
*/
|
||||
bytes passphrase = 1;
|
||||
|
||||
/*
|
||||
* Optional override of the boot-count token TTL granted on success.
|
||||
* 0 = use firmware default (TOKEN_DEFAULT_BOOTS).
|
||||
* On reboot the firmware decrements this; when it reaches 0 the
|
||||
* device boots fully locked and requires a fresh passphrase.
|
||||
*/
|
||||
uint32 boots_remaining = 2;
|
||||
|
||||
/*
|
||||
* Optional wall-clock expiry for the unlock token, as absolute
|
||||
* Unix-epoch seconds. 0 = no time limit (only the boot-count TTL
|
||||
* applies). On boot, if the device RTC is set and now > this value,
|
||||
* the token is treated as expired.
|
||||
*/
|
||||
uint32 valid_until_epoch = 3;
|
||||
|
||||
/*
|
||||
* If true, ignore passphrase fields, immediately revoke all
|
||||
* connection-level admin authorization, and reboot the device into
|
||||
* the locked state. Always honoured regardless of current lock state.
|
||||
*/
|
||||
bool lock_now = 4;
|
||||
|
||||
/*
|
||||
* Optional per-boot uptime cap on the unlocked session, in seconds.
|
||||
* 0 = unlimited (token-only enforcement, suitable for unattended
|
||||
* tower / infrastructure nodes).
|
||||
*
|
||||
* When non-zero, the firmware arms an uptime timer at unlock. On
|
||||
* each expiry, while there is still boot-count budget, the firmware
|
||||
* decrements the on-flash boot count in place, revokes per-
|
||||
* connection admin auth (clients must re-authenticate to see
|
||||
* content), re-engages the screen lock, and re-arms the timer
|
||||
* without rebooting. Mesh routing keeps running across session
|
||||
* boundaries; only when the boot-count budget reaches zero does
|
||||
* the device hard-lock and reboot.
|
||||
*
|
||||
* Total exposure ceiling = ((resolved boot count) + 1) * max_session_seconds.
|
||||
* The +1 accounts for the initial passphrase-unlocked session
|
||||
* itself, since boots_remaining is the number of subsequent
|
||||
* session rolls (each consuming one boot from the rollback ledger).
|
||||
* The resolved boot count is the value the firmware writes into the
|
||||
* token at unlock time: the client-supplied boots_remaining when
|
||||
* non-zero, otherwise the firmware default (TOKEN_DEFAULT_BOOTS).
|
||||
* Note that boots_remaining == 0 in this message means "use firmware
|
||||
* default", NOT "zero boots" — a client computing the ceiling for
|
||||
* display should mirror that resolution rather than multiplying the
|
||||
* raw request value.
|
||||
*
|
||||
* The cap is persisted in the token, so it survives token-based
|
||||
* auto-unlock across reboots. Explicit operator Lock Now still
|
||||
* deletes the token and forces passphrase re-entry.
|
||||
*
|
||||
* Uses millis() (CPU uptime), not wall-clock time, so the cap is
|
||||
* immune to GPS spoofing, RTC backup-battery removal, and Faraday
|
||||
* cage isolation — none of those move the uptime counter. The only
|
||||
* way to reset the session clock is a reboot, which costs a boot
|
||||
* from the on-flash, HMAC-bound counter.
|
||||
*/
|
||||
uint32 max_session_seconds = 5;
|
||||
|
||||
/*
|
||||
* Disable lockdown mode. Requires a valid passphrase in the same
|
||||
* message (the device must prove the operator owns it before
|
||||
* reverting at-rest encryption). On success the firmware decrypts
|
||||
* every stored config / channel / nodedb file back to plaintext,
|
||||
* removes the wrapped DEK, unlock token, monotonic-counter, and
|
||||
* backoff files, and reboots out of lockdown.
|
||||
*
|
||||
* This is the inverse of the provision/unlock path: it is how the
|
||||
* client app's "lockdown mode" toggle returns a device to normal
|
||||
* operation.
|
||||
*
|
||||
* NOT reversed by this operation: APPROTECT. Once the debug port
|
||||
* lockout has been burned (on silicon where it is effective) it is
|
||||
* permanent — disabling lockdown decrypts your data and removes the
|
||||
* access gates, but the SWD/JTAG port stays locked for the life of
|
||||
* the device (recoverable only via a full chip erase over a debug
|
||||
* probe, which destroys all data). Clients should make this
|
||||
* irreversibility clear at the moment lockdown is first enabled.
|
||||
*
|
||||
* When true the passphrase field is still required; boots_remaining,
|
||||
* valid_until_epoch, max_session_seconds, and lock_now are ignored.
|
||||
*/
|
||||
bool disable = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
* Firmware update mode for OTA updates
|
||||
*/
|
||||
enum OTAMode {
|
||||
/*
|
||||
* Do not reboot into OTA mode
|
||||
*/
|
||||
NO_REBOOT_OTA = 0;
|
||||
|
||||
/*
|
||||
* Reboot into OTA mode for BLE firmware update
|
||||
*/
|
||||
OTA_BLE = 1;
|
||||
|
||||
/*
|
||||
* Reboot into OTA mode for WiFi firmware update
|
||||
*/
|
||||
OTA_WIFI = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* Parameters for setting up Meshtastic for ameteur radio usage
|
||||
*/
|
||||
@@ -499,6 +691,12 @@ message HamParameters {
|
||||
* Optional short name of user
|
||||
*/
|
||||
string short_name = 4;
|
||||
|
||||
/*
|
||||
* Optional long name of user
|
||||
* Appended to callsign
|
||||
*/
|
||||
string long_name = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -580,3 +778,113 @@ message KeyVerificationAdmin {
|
||||
*/
|
||||
optional uint32 security_number = 4;
|
||||
}
|
||||
|
||||
message SensorConfig {
|
||||
/*
|
||||
* SCD4X CO2 Sensor configuration
|
||||
*/
|
||||
SCD4X_config scd4x_config = 1;
|
||||
|
||||
/*
|
||||
* SEN5X PM Sensor configuration
|
||||
*/
|
||||
SEN5X_config sen5x_config = 2;
|
||||
|
||||
/*
|
||||
* SCD30 CO2 Sensor configuration
|
||||
*/
|
||||
SCD30_config scd30_config = 3;
|
||||
|
||||
/*
|
||||
* SHTXX temperature and relative humidity sensor configuration
|
||||
*/
|
||||
SHTXX_config shtxx_config = 4;
|
||||
}
|
||||
|
||||
message SCD4X_config {
|
||||
/*
|
||||
* Set Automatic self-calibration enabled
|
||||
*/
|
||||
optional bool set_asc = 1;
|
||||
|
||||
/*
|
||||
* Recalibration target CO2 concentration in ppm (FRC or ASC)
|
||||
*/
|
||||
optional uint32 set_target_co2_conc = 2;
|
||||
|
||||
/*
|
||||
* Reference temperature in degC
|
||||
*/
|
||||
optional float set_temperature = 3;
|
||||
|
||||
/*
|
||||
* Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
|
||||
*/
|
||||
optional uint32 set_altitude = 4;
|
||||
|
||||
/*
|
||||
* Sensor ambient pressure in Pa. 70000 - 120000 Pa (overrides altitude)
|
||||
*/
|
||||
optional uint32 set_ambient_pressure = 5;
|
||||
|
||||
/*
|
||||
* Perform a factory reset of the sensor
|
||||
*/
|
||||
optional bool factory_reset = 6;
|
||||
|
||||
/*
|
||||
* Power mode for sensor (true for low power, false for normal)
|
||||
*/
|
||||
optional bool set_power_mode = 7;
|
||||
}
|
||||
|
||||
message SEN5X_config {
|
||||
/*
|
||||
* Reference temperature in degC
|
||||
*/
|
||||
optional float set_temperature = 1;
|
||||
|
||||
/*
|
||||
* One-shot mode (true for low power - one-shot mode, false for normal - continuous mode)
|
||||
*/
|
||||
optional bool set_one_shot_mode = 2;
|
||||
}
|
||||
|
||||
message SCD30_config {
|
||||
/*
|
||||
* Set Automatic self-calibration enabled
|
||||
*/
|
||||
optional bool set_asc = 1;
|
||||
|
||||
/*
|
||||
* Recalibration target CO2 concentration in ppm (FRC or ASC)
|
||||
*/
|
||||
optional uint32 set_target_co2_conc = 2;
|
||||
|
||||
/*
|
||||
* Reference temperature in degC
|
||||
*/
|
||||
optional float set_temperature = 3;
|
||||
|
||||
/*
|
||||
* Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
|
||||
*/
|
||||
optional uint32 set_altitude = 4;
|
||||
|
||||
/*
|
||||
* Power mode for sensor (true for low power, false for normal)
|
||||
*/
|
||||
optional uint32 set_measurement_interval = 5;
|
||||
|
||||
/*
|
||||
* Perform a factory reset of the sensor
|
||||
*/
|
||||
optional bool soft_reset = 6;
|
||||
}
|
||||
|
||||
message SHTXX_config {
|
||||
/*
|
||||
* Accuracy mode (0 = low, 1 = medium, 2 = high)
|
||||
*/
|
||||
optional uint32 set_accuracy = 1;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/config.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "AppOnlyProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "CannedMessageConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
syntax = "proto3";
|
||||
|
||||
/* trunk-ignore(buf-lint/PACKAGE_DIRECTORY_MATCH) */
|
||||
package meshtastic;
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ChannelProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -86,11 +87,6 @@ message ChannelSettings {
|
||||
* Per-channel module settings.
|
||||
*/
|
||||
ModuleSettings module_settings = 7;
|
||||
|
||||
/*
|
||||
* Whether or not we should receive notifactions / alerts through this channel
|
||||
*/
|
||||
bool mute = 8;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -103,10 +99,10 @@ message ModuleSettings {
|
||||
uint32 position_precision = 1;
|
||||
|
||||
/*
|
||||
* Controls whether or not the phone / clients should mute the current channel
|
||||
* Controls whether or not the client / device should mute the current channel
|
||||
* Useful for noisy public channels you don't necessarily want to disable
|
||||
*/
|
||||
bool is_client_muted = 2;
|
||||
bool is_muted = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/mesh.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ClientOnlyProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -7,7 +7,7 @@ import "meshtastic/device_ui.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
message Config {
|
||||
@@ -111,7 +111,7 @@ message Config {
|
||||
ROUTER_LATE = 11;
|
||||
|
||||
/*
|
||||
* Description: Treats packets from or to favorited nodes as ROUTER, and all other packets as CLIENT.
|
||||
* Description: Treats packets from or to favorited nodes as ROUTER_LATE, and all other packets as CLIENT.
|
||||
* Technical Details: Used for stronger attic/roof nodes to distribute messages more widely
|
||||
* from weaker, indoor, or less-well-positioned nodes. Recommended for users with multiple nodes
|
||||
* where one CLIENT_BASE acts as a more powerful base station, such as an attic/roof node.
|
||||
@@ -648,6 +648,11 @@ message Config {
|
||||
* Can not be auto detected but set by proto. Used for 128x128 screens
|
||||
*/
|
||||
OLED_SH1107_128_128 = 4;
|
||||
|
||||
/*
|
||||
* Can not be auto detected but set by proto. Used for 64x128 rotated screens
|
||||
*/
|
||||
OLED_SH1107_ROTATED = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -783,6 +788,11 @@ message Config {
|
||||
* If true, node names will show in long format
|
||||
*/
|
||||
bool use_long_node_name = 13;
|
||||
|
||||
/*
|
||||
* If true, the device will display message bubbles on screen.
|
||||
*/
|
||||
bool enable_message_bubbles = 14;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -924,6 +934,62 @@ message Config {
|
||||
* Brazil 902MHz
|
||||
*/
|
||||
BR_902 = 26;
|
||||
|
||||
/*
|
||||
* ITU Region 1 Amateur Radio 2m band (144-146 MHz)
|
||||
*/
|
||||
ITU1_2M = 27;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 2m band (144-148 MHz)
|
||||
*/
|
||||
ITU2_2M = 28;
|
||||
|
||||
/*
|
||||
* EU 866MHz band (Band no. 47b of 2006/771/EC and subsequent amendments) for Non-specific short-range devices (SRD)
|
||||
*/
|
||||
EU_866 = 29;
|
||||
|
||||
/*
|
||||
* EU 874MHz and 917MHz bands (Band no. 1 and 4 of 2022/172/EC and subsequent amendments) for Non-specific short-range devices (SRD)
|
||||
*/
|
||||
EU_874 = 30;
|
||||
EU_917 = 31;
|
||||
|
||||
/*
|
||||
* EU 868MHz band, with narrow presets
|
||||
*/
|
||||
EU_N_868 = 32;
|
||||
|
||||
/*
|
||||
* ITU Region 3 Amateur Radio 2m band (144-148 MHz)
|
||||
*/
|
||||
ITU3_2M = 33;
|
||||
|
||||
/*
|
||||
* ITU Region 1 Amateur Radio 70cm band (430-440 MHz)
|
||||
*/
|
||||
ITU1_70CM = 34;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 70cm band (420-450 MHz)
|
||||
* Note: Some countries do not allocate 420-430 MHz or 440-450 MHz.
|
||||
* Check local law!
|
||||
*/
|
||||
ITU2_70CM = 35;
|
||||
|
||||
/*
|
||||
* ITU Region 3 Amateur Radio 70cm band (430-450 MHz)
|
||||
* Note: Some countries do not allocate 440-450 MHz. Check local law!
|
||||
*/
|
||||
ITU3_70CM = 36;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 1.25m '125cm' band (220-225 MHz)
|
||||
* Note: Some countries do not allocate 220-222 MHz (Ex: USA/Canada).
|
||||
* Check local law!
|
||||
*/
|
||||
ITU2_125CM = 37;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -938,8 +1004,9 @@ message Config {
|
||||
|
||||
/*
|
||||
* Long Range - Slow
|
||||
* Deprecated in 2.7: Unpopular slow preset.
|
||||
*/
|
||||
LONG_SLOW = 1;
|
||||
LONG_SLOW = 1 [deprecated = true];
|
||||
|
||||
/*
|
||||
* Very Long Range - Slow
|
||||
@@ -978,6 +1045,78 @@ message Config {
|
||||
* It is not legal to use in all regions due to this wider bandwidth.
|
||||
*/
|
||||
SHORT_TURBO = 8;
|
||||
|
||||
/*
|
||||
* Long Range - Turbo
|
||||
* This preset performs similarly to LongFast, but with 500Khz bandwidth.
|
||||
*/
|
||||
LONG_TURBO = 9;
|
||||
|
||||
/*
|
||||
* Lite Fast
|
||||
* Medium range preset optimized for EU 866MHz SRD band with 125kHz bandwidth.
|
||||
* Comparable link budget to MEDIUM_FAST but compliant with Band no. 47b of 2006/771/EC.
|
||||
*/
|
||||
LITE_FAST = 10;
|
||||
|
||||
/*
|
||||
* Lite Slow
|
||||
* Medium-to-moderate range preset optimized for EU 866MHz SRD band with 125kHz bandwidth.
|
||||
* Comparable link budget to LONG_FAST but compliant with Band no. 47b of 2006/771/EC.
|
||||
*/
|
||||
LITE_SLOW = 11;
|
||||
|
||||
/*
|
||||
* Narrow Fast
|
||||
* Medium-to-moderate range preset optimized for EU 868MHz band with 62.5kHz bandwidth.
|
||||
* Comparable link budget to SHORT_SLOW, but with half the data rate.
|
||||
* Intended to avoid interference with other devices.
|
||||
*/
|
||||
NARROW_FAST = 12;
|
||||
|
||||
/*
|
||||
* Narrow Slow
|
||||
* Moderate range preset optimized for EU 868MHz band with 62.5kHz bandwidth.
|
||||
* Comparable link budget and data rate to LONG_FAST.
|
||||
*/
|
||||
NARROW_SLOW = 13;
|
||||
|
||||
/*
|
||||
* Tiny Fast
|
||||
* Preset optimized for compliance with Amateur Radio restrictions with 20kHz bandwidth.
|
||||
* Many regions limit data transmission bandwidth in lower amateur bands (2 Meter).
|
||||
* Note: TCXO with tight tolerances (±5 ppm or better) is *absolutely required* at these narrow bandwidths.
|
||||
* Only compatible with SX127x and SX126x chipsets.
|
||||
* Comparable link budget and data rate to LONG_FAST.
|
||||
*/
|
||||
TINY_FAST = 14;
|
||||
|
||||
/*
|
||||
* Tiny Slow
|
||||
* Preset optimized for compliance with Amateur Radio restrictions with 20kHz bandwidth.
|
||||
* Many regions limit data transmission bandwidth in lower amateur bands (2 Meter).
|
||||
* Note: TCXO with tight tolerances (±5 ppm or better) is *absolutely required* at these narrow bandwidths.
|
||||
* Only compatible with SX127x and SX126x chipsets.
|
||||
* Comparable link budget and data rate to LONG_MODERATE.
|
||||
*/
|
||||
TINY_SLOW = 15;
|
||||
}
|
||||
|
||||
enum FEM_LNA_Mode {
|
||||
/*
|
||||
* FEM_LNA is present but disabled
|
||||
*/
|
||||
DISABLED = 0;
|
||||
|
||||
/*
|
||||
* FEM_LNA is present and enabled
|
||||
*/
|
||||
ENABLED = 1;
|
||||
|
||||
/*
|
||||
* FEM_LNA is not present on the device
|
||||
*/
|
||||
NOT_PRESENT = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1100,6 +1239,16 @@ message Config {
|
||||
* Sets the ok_to_mqtt bit on outgoing packets
|
||||
*/
|
||||
bool config_ok_to_mqtt = 105;
|
||||
|
||||
/*
|
||||
* Set where LORA FEM is enabled, disabled, or not present
|
||||
*/
|
||||
FEM_LNA_Mode fem_lna_mode = 106;
|
||||
|
||||
/*
|
||||
* Don't use radiolib to initialize the radio, instead listen for a serialHal connection
|
||||
*/
|
||||
bool serial_hal_only = 107;
|
||||
}
|
||||
|
||||
message BluetoothConfig {
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ConnStatusProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
message DeviceConnectionStatus {
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "DeviceUIProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -2,6 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
/* trunk-ignore(buf-lint/COMPILE) */
|
||||
import "meshtastic/channel.proto";
|
||||
import "meshtastic/config.proto";
|
||||
import "meshtastic/localonly.proto";
|
||||
@@ -12,7 +13,7 @@ import "nanopb.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "DeviceOnly";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
option (nanopb_fileopt).include = "<vector>";
|
||||
|
||||
@@ -49,6 +50,11 @@ message PositionLite {
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Position.LocSource location_source = 5;
|
||||
|
||||
/*
|
||||
* Indicates the bits of precision set by the sending node
|
||||
*/
|
||||
uint32 precision_bits = 6;
|
||||
}
|
||||
|
||||
message UserLite {
|
||||
@@ -106,20 +112,15 @@ message NodeInfoLite {
|
||||
*/
|
||||
uint32 num = 1;
|
||||
|
||||
/*
|
||||
* The user info for this node
|
||||
*/
|
||||
UserLite user = 2;
|
||||
// Tag 2 was UserLite user; flattened into tags 14..18 (presence via
|
||||
// NODEINFO_BITFIELD_HAS_USER).
|
||||
// Tag 3 was PositionLite position; moved to NodeDatabase.positions.
|
||||
reserved 2, 3;
|
||||
reserved "user", "position";
|
||||
|
||||
/*
|
||||
* This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true.
|
||||
* Position.time now indicates the last time we received a POSITION from that node.
|
||||
*/
|
||||
PositionLite position = 3;
|
||||
|
||||
/*
|
||||
* Returns the Signal-to-noise ratio (SNR) of the last received message,
|
||||
* as measured by the receiver. Return SNR of the last received message in dB
|
||||
* In-memory SNR of the last received message in dB. Not serialised directly:
|
||||
* always zeroed before encode; persisted as snr_q4 = 19 below.
|
||||
*/
|
||||
float snr = 4;
|
||||
|
||||
@@ -127,48 +128,69 @@ message NodeInfoLite {
|
||||
* Set to indicate the last time we received a packet from this node
|
||||
*/
|
||||
fixed32 last_heard = 5;
|
||||
/*
|
||||
* The latest device metrics for the node.
|
||||
*/
|
||||
DeviceMetrics device_metrics = 6;
|
||||
|
||||
// Tag 6 was DeviceMetrics device_metrics; moved to NodeDatabase.telemetry.
|
||||
reserved 6;
|
||||
reserved "device_metrics";
|
||||
|
||||
/*
|
||||
* local channel index we heard that node on. Only populated if its not the default channel.
|
||||
*/
|
||||
uint32 channel = 7;
|
||||
|
||||
/*
|
||||
* True if we witnessed the node over MQTT instead of LoRA transport
|
||||
*/
|
||||
bool via_mqtt = 8;
|
||||
// Tags 8/10/11 were via_mqtt/is_favorite/is_ignored bools; packed into bitfield.
|
||||
reserved 8, 10, 11;
|
||||
reserved "via_mqtt", "is_favorite", "is_ignored";
|
||||
|
||||
/*
|
||||
* Number of hops away from us this node is (0 if direct neighbor)
|
||||
*/
|
||||
optional uint32 hops_away = 9;
|
||||
|
||||
/*
|
||||
* True if node is in our favorites list
|
||||
* Persists between NodeDB internal clean ups
|
||||
*/
|
||||
bool is_favorite = 10;
|
||||
|
||||
/*
|
||||
* True if node is in our ignored list
|
||||
* Persists between NodeDB internal clean ups
|
||||
*/
|
||||
bool is_ignored = 11;
|
||||
|
||||
/*
|
||||
* Last byte of the node number of the node that should be used as the next hop to reach this node.
|
||||
*/
|
||||
uint32 next_hop = 12;
|
||||
|
||||
/*
|
||||
* Bitfield for storing booleans.
|
||||
* LSB 0 is_key_manually_verified
|
||||
* Bitfield for storing booleans. See NODEINFO_BITFIELD_* in src/mesh/NodeDB.h.
|
||||
*/
|
||||
uint32 bitfield = 13;
|
||||
|
||||
// Flattened user fields (formerly UserLite). macaddr dropped (deprecated 1.2.11).
|
||||
|
||||
/*
|
||||
* A full name for this user, i.e. "Kevin Hester".
|
||||
*/
|
||||
string long_name = 14;
|
||||
|
||||
/*
|
||||
* A VERY short name, ideally two characters or an emoji.
|
||||
* Suitable for a tiny OLED screen.
|
||||
*/
|
||||
string short_name = 15;
|
||||
|
||||
/*
|
||||
* Hardware model the user's device is running.
|
||||
*/
|
||||
HardwareModel hw_model = 16;
|
||||
|
||||
/*
|
||||
* The user's role in the mesh.
|
||||
*/
|
||||
Config.DeviceConfig.Role role = 17;
|
||||
|
||||
/*
|
||||
* The public key of the user's device, for PKI-based encrypted DMs.
|
||||
*/
|
||||
bytes public_key = 18;
|
||||
|
||||
/*
|
||||
* Q4-encoded SNR: dB × 4, sint32 zigzag. Matches RouteDiscovery convention.
|
||||
* Encode: snr_q4 = (int32_t)(snr * 4.0f). Decode: snr = snr_q4 / 4.0f.
|
||||
* float snr is always zeroed on disk; this field carries all persisted SNR.
|
||||
*/
|
||||
sint32 snr_q4 = 19;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -234,6 +256,29 @@ message DeviceState {
|
||||
repeated NodeRemoteHardwarePin node_remote_hardware_pins = 13;
|
||||
}
|
||||
|
||||
// Satellite per-node entries; stored alongside the slim NodeInfoLite so nodes
|
||||
// that never report don't pay the embedded cost.
|
||||
|
||||
message NodePositionEntry {
|
||||
uint32 num = 1;
|
||||
PositionLite position = 2;
|
||||
}
|
||||
|
||||
message NodeTelemetryEntry {
|
||||
uint32 num = 1;
|
||||
DeviceMetrics device_metrics = 2;
|
||||
}
|
||||
|
||||
message NodeEnvironmentEntry {
|
||||
uint32 num = 1;
|
||||
EnvironmentMetrics environment_metrics = 2;
|
||||
}
|
||||
|
||||
message NodeStatusEntry {
|
||||
uint32 num = 1;
|
||||
StatusMessage status = 2;
|
||||
}
|
||||
|
||||
message NodeDatabase {
|
||||
/*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
@@ -246,6 +291,13 @@ message NodeDatabase {
|
||||
* New lite version of NodeDB to decrease memory footprint
|
||||
*/
|
||||
repeated NodeInfoLite nodes = 2 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeInfoLite>"];
|
||||
|
||||
// Per-NodeNum satellite arrays. Constrained platforms (e.g. STM32WL) omit
|
||||
// these via MESHTASTIC_EXCLUDE_*DB build flags.
|
||||
repeated NodePositionEntry positions = 3 [(nanopb).callback_datatype = "std::vector<meshtastic_NodePositionEntry>"];
|
||||
repeated NodeTelemetryEntry telemetry = 4 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeTelemetryEntry>"];
|
||||
repeated NodeStatusEntry status = 5 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeStatusEntry>"];
|
||||
repeated NodeEnvironmentEntry environment = 6 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeEnvironmentEntry>"];
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
/* trunk-ignore(buf-lint/COMPILE) */
|
||||
import "meshtastic/deviceonly.proto";
|
||||
import "meshtastic/telemetry.proto";
|
||||
import "nanopb.proto";
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "DeviceOnlyLegacy";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
option (nanopb_fileopt).include = "<vector>";
|
||||
|
||||
/*
|
||||
* Legacy NodeInfoLite descriptor used only to decode pre-split
|
||||
* /prefs/nodes.proto saves during the v24 -> v25 migration boot.
|
||||
* This preserves the original NodeInfoLite-compatible field numbers needed
|
||||
* to parse old wire bytes cleanly, including user (2), position (3),
|
||||
* device_metrics (6), and the legacy-only compatibility fields via_mqtt (8),
|
||||
* is_favorite (10), and is_ignored (11). Steady-state code does not use
|
||||
* this struct; it is dropped after migration completes. This file should be
|
||||
* removed once DEVICESTATE_MIN_VER advances past 24.
|
||||
*/
|
||||
message NodeInfoLite_Legacy {
|
||||
uint32 num = 1;
|
||||
UserLite user = 2;
|
||||
PositionLite position = 3;
|
||||
float snr = 4;
|
||||
fixed32 last_heard = 5;
|
||||
DeviceMetrics device_metrics = 6;
|
||||
uint32 channel = 7;
|
||||
bool via_mqtt = 8;
|
||||
optional uint32 hops_away = 9;
|
||||
bool is_favorite = 10;
|
||||
bool is_ignored = 11;
|
||||
uint32 next_hop = 12;
|
||||
uint32 bitfield = 13;
|
||||
}
|
||||
|
||||
/*
|
||||
* Legacy NodeDatabase shape: one repeated array of fat NodeInfoLite_Legacy
|
||||
* with no satellite position/telemetry arrays.
|
||||
*/
|
||||
message NodeDatabase_Legacy {
|
||||
uint32 version = 1;
|
||||
repeated NodeInfoLite_Legacy nodes = 2 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeInfoLite_Legacy>"];
|
||||
}
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "InterdeviceProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
// encapsulate up to 1k of NMEA string data
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/module_config.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "LocalOnlyProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -131,6 +131,21 @@ message LocalModuleConfig {
|
||||
*/
|
||||
ModuleConfig.PaxcounterConfig paxcounter = 14;
|
||||
|
||||
/*
|
||||
* StatusMessage Config
|
||||
*/
|
||||
ModuleConfig.StatusMessageConfig statusmessage = 15;
|
||||
|
||||
/*
|
||||
* The part of the config that is specific to the Traffic Management module
|
||||
*/
|
||||
ModuleConfig.TrafficManagementConfig traffic_management = 16;
|
||||
|
||||
/*
|
||||
* TAK Config
|
||||
*/
|
||||
ModuleConfig.TAKConfig tak = 17;
|
||||
|
||||
/*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
|
||||
@@ -13,7 +13,7 @@ import "meshtastic/xmodem.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "MeshProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -388,9 +388,9 @@ enum HardwareModel {
|
||||
LORA_RELAY_V1 = 32;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
* T-Echo Plus device from LilyGo
|
||||
*/
|
||||
NRF52840DK = 33;
|
||||
T_ECHO_PLUS = 33;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
@@ -700,9 +700,9 @@ enum HardwareModel {
|
||||
HELTEC_SENSOR_HUB = 92;
|
||||
|
||||
/*
|
||||
* Reserved Fried Chicken ID for future use
|
||||
* Muzi Works Muzi-Base device
|
||||
*/
|
||||
RESERVED_FRIED_CHICKEN = 93;
|
||||
MUZI_BASE = 93;
|
||||
|
||||
/*
|
||||
* Heltec Magnetic Power Bank with Meshtastic compatible
|
||||
@@ -810,6 +810,129 @@ enum HardwareModel {
|
||||
*/
|
||||
T_WATCH_ULTRA = 114;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M3
|
||||
*/
|
||||
THINKNODE_M3 = 115;
|
||||
|
||||
/*
|
||||
* RAK WISMESH_TAP_V2 with ESP32-S3 CPU
|
||||
*/
|
||||
WISMESH_TAP_V2 = 116;
|
||||
|
||||
/*
|
||||
* RAK3401
|
||||
*/
|
||||
RAK3401 = 117;
|
||||
|
||||
/*
|
||||
* RAK6421 Hat+
|
||||
*/
|
||||
RAK6421 = 118;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M4
|
||||
*/
|
||||
THINKNODE_M4 = 119;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M6
|
||||
*/
|
||||
THINKNODE_M6 = 120;
|
||||
|
||||
/*
|
||||
* Elecrow Meshstick 1262
|
||||
*/
|
||||
MESHSTICK_1262 = 121;
|
||||
|
||||
/*
|
||||
* LilyGo T-Beam 1W
|
||||
*/
|
||||
TBEAM_1_WATT = 122;
|
||||
|
||||
/*
|
||||
* LilyGo T5 S3 ePaper Pro (V1 and V2)
|
||||
*/
|
||||
T5_S3_EPAPER_PRO = 123;
|
||||
|
||||
/*
|
||||
* LilyGo T-Beam BPF (144-148Mhz)
|
||||
*/
|
||||
TBEAM_BPF = 124;
|
||||
|
||||
/*
|
||||
* LilyGo T-Mini E-paper S3 Kit
|
||||
*/
|
||||
MINI_EPAPER_S3 = 125;
|
||||
|
||||
/*
|
||||
* LilyGo T-Display S3 Pro LR1121
|
||||
*/
|
||||
TDISPLAY_S3_PRO = 126;
|
||||
|
||||
/*
|
||||
* Heltec Mesh Node T096 board features an nRF52840 CPU and a TFT screen.
|
||||
*/
|
||||
HELTEC_MESH_NODE_T096 = 127;
|
||||
|
||||
/*
|
||||
* Seeed studio T1000-E Pro tracker card. NRF52840 w/ LR2021 radio,
|
||||
* GPS, button, buzzer, and sensors.
|
||||
*/
|
||||
TRACKER_T1000_E_PRO = 128;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M7, M8 and M9
|
||||
*/
|
||||
THINKNODE_M7 = 129;
|
||||
THINKNODE_M8 = 130;
|
||||
THINKNODE_M9 = 131;
|
||||
|
||||
/*
|
||||
* The Heltec-V4-R8 uses an ESP32S3R8 chip, plus an SX1262.
|
||||
*/
|
||||
HELTEC_V4_R8 = 132;
|
||||
|
||||
/*
|
||||
* The HELTEC_MESH_NODE_T1 uses an NRF52840 chip, plus an SX1262.
|
||||
*/
|
||||
HELTEC_MESH_NODE_T1 = 133;
|
||||
|
||||
/*
|
||||
* B&Q Consulting Station G3: TBD
|
||||
*/
|
||||
STATION_G3 = 134;
|
||||
|
||||
/*
|
||||
* Lilygo T-Impulse-Plus
|
||||
*/
|
||||
T_IMPULSE_PLUS = 135;
|
||||
|
||||
/*
|
||||
* Lilygo T-Echo Card
|
||||
*/
|
||||
T_ECHO_CARD = 136;
|
||||
|
||||
/*
|
||||
* Seeed Tracker L2
|
||||
*/
|
||||
SEEED_WIO_TRACKER_L2 = 137;
|
||||
|
||||
/*
|
||||
* Elecrow CrowPanel Advance P4 models, ESP32-P4 and TFT with SX1262 radio plugin
|
||||
*/
|
||||
CROWPANEL_P4 = 138;
|
||||
|
||||
/*
|
||||
* Heltec Mesh Tower V2
|
||||
*/
|
||||
HELTEC_MESH_TOWER_V2 = 139;
|
||||
|
||||
/*
|
||||
* Meshnology W10
|
||||
*/
|
||||
MESHNOLOGY_W10 = 140;
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------------------------------------------------------------------------
|
||||
* Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits.
|
||||
@@ -851,6 +974,9 @@ message User {
|
||||
|
||||
/*
|
||||
* A full name for this user, i.e. "Kevin Hester"
|
||||
* Limited to 24 bytes of UTF-8: longer names are accepted from senders
|
||||
* built against the older 39-byte limit, but devices truncate them before
|
||||
* storing or rebroadcasting. Clients should enforce 24 bytes in their UI.
|
||||
*/
|
||||
string long_name = 2;
|
||||
|
||||
@@ -1020,6 +1146,12 @@ message Routing {
|
||||
* This typically enforced per portnum and is used to prevent a single node from monopolizing airtime
|
||||
*/
|
||||
RATE_LIMIT_EXCEEDED = 38;
|
||||
|
||||
/*
|
||||
* PKI encryption failed, due to no public key for the remote node
|
||||
* This is different from PKI_UNKNOWN_PUBKEY which indicates a failure upon receiving a packet
|
||||
*/
|
||||
PKI_SEND_FAIL_PUBLIC_KEY = 39;
|
||||
}
|
||||
|
||||
oneof variant {
|
||||
@@ -1101,6 +1233,11 @@ message Data {
|
||||
* Bitfield for extra flags. First use is to indicate that user approves the packet being uploaded to MQTT.
|
||||
*/
|
||||
optional uint32 bitfield = 9;
|
||||
|
||||
/*
|
||||
* XEdDSA signature for the payload
|
||||
*/
|
||||
bytes xeddsa_signature = 10;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1124,6 +1261,176 @@ message KeyVerification {
|
||||
bytes hash2 = 3;
|
||||
}
|
||||
|
||||
/*
|
||||
* The actual over-the-mesh message doing store and forward++
|
||||
*/
|
||||
message StoreForwardPlusPlus {
|
||||
/*
|
||||
* Enum of message types
|
||||
*/
|
||||
enum SFPP_message_type {
|
||||
/*
|
||||
* Send an announcement of the canonical tip of a chain
|
||||
*/
|
||||
CANON_ANNOUNCE = 0;
|
||||
|
||||
/*
|
||||
* Query whether a specific link is on the chain
|
||||
*/
|
||||
CHAIN_QUERY = 1;
|
||||
|
||||
/*
|
||||
* Request the next link in the chain
|
||||
*/
|
||||
LINK_REQUEST = 3;
|
||||
|
||||
/*
|
||||
* Provide a link to add to the chain
|
||||
*/
|
||||
LINK_PROVIDE = 4;
|
||||
|
||||
/*
|
||||
* If we must fragment, send the first half
|
||||
*/
|
||||
LINK_PROVIDE_FIRSTHALF = 5;
|
||||
|
||||
/*
|
||||
* If we must fragment, send the second half
|
||||
*/
|
||||
LINK_PROVIDE_SECONDHALF = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
* Which message type is this
|
||||
*/
|
||||
SFPP_message_type sfpp_message_type = 1;
|
||||
|
||||
/*
|
||||
* The hash of the specific message
|
||||
*/
|
||||
bytes message_hash = 2;
|
||||
|
||||
/*
|
||||
* The hash of a link on a chain
|
||||
*/
|
||||
bytes commit_hash = 3;
|
||||
|
||||
/*
|
||||
* the root hash of a chain
|
||||
*/
|
||||
bytes root_hash = 4;
|
||||
|
||||
/*
|
||||
* The encrypted bytes from a message
|
||||
*/
|
||||
bytes message = 5;
|
||||
|
||||
/*
|
||||
* Message ID of the contained message
|
||||
*/
|
||||
uint32 encapsulated_id = 6;
|
||||
|
||||
/*
|
||||
* Destination of the contained message
|
||||
*/
|
||||
uint32 encapsulated_to = 7;
|
||||
|
||||
/*
|
||||
* Sender of the contained message
|
||||
*/
|
||||
uint32 encapsulated_from = 8;
|
||||
|
||||
/*
|
||||
* The receive time of the message in question
|
||||
*/
|
||||
uint32 encapsulated_rxtime = 9;
|
||||
|
||||
/*
|
||||
* Used in a LINK_REQUEST to specify the message X spots back from head
|
||||
*/
|
||||
uint32 chain_count = 10;
|
||||
}
|
||||
|
||||
/*
|
||||
* The actual over-the-mesh message doing RemoteShell
|
||||
*/
|
||||
message RemoteShell {
|
||||
/*
|
||||
* Frame op code for PTY session control and stream transport.
|
||||
*
|
||||
* Values 1-63 are client->server requests.
|
||||
* Values 64-127 are server->client responses/events.
|
||||
*/
|
||||
enum OpCode {
|
||||
OP_UNSET = 0;
|
||||
|
||||
// Client -> server
|
||||
OPEN = 1;
|
||||
INPUT = 2;
|
||||
RESIZE = 3;
|
||||
CLOSE = 4;
|
||||
PING = 5;
|
||||
ACK = 6;
|
||||
|
||||
// Server -> client
|
||||
OPEN_OK = 64;
|
||||
OUTPUT = 65;
|
||||
CLOSED = 66;
|
||||
ERROR = 67;
|
||||
PONG = 68;
|
||||
}
|
||||
|
||||
/*
|
||||
* Structured frame operation.
|
||||
*/
|
||||
OpCode op = 1;
|
||||
|
||||
/*
|
||||
* Logical PTY session identifier.
|
||||
*/
|
||||
uint32 session_id = 2;
|
||||
|
||||
/*
|
||||
* Monotonic sequence number for this frame.
|
||||
*/
|
||||
uint32 seq = 3;
|
||||
|
||||
/*
|
||||
* Cumulative ack sequence number.
|
||||
*/
|
||||
uint32 ack_seq = 4;
|
||||
|
||||
/*
|
||||
* Opaque bytes payload for INPUT/OUTPUT/ERROR and other frame bodies.
|
||||
*/
|
||||
bytes payload = 5;
|
||||
|
||||
/*
|
||||
* Terminal size columns used for OPEN/RESIZE signaling.
|
||||
*/
|
||||
uint32 cols = 6;
|
||||
|
||||
/*
|
||||
* Terminal size rows used for OPEN/RESIZE signaling.
|
||||
*/
|
||||
uint32 rows = 7;
|
||||
|
||||
/*
|
||||
* Bit flags for protocol extensions.
|
||||
*/
|
||||
uint32 flags = 8;
|
||||
|
||||
/*
|
||||
* The last sequence number TX'd.
|
||||
*/
|
||||
uint32 last_tx_seq = 9;
|
||||
|
||||
/*
|
||||
* The last sequence number RX'd.
|
||||
*/
|
||||
uint32 last_rx_seq = 10;
|
||||
}
|
||||
|
||||
/*
|
||||
* Waypoint message, used to share arbitrary locations across the mesh
|
||||
*/
|
||||
@@ -1170,6 +1477,13 @@ message Waypoint {
|
||||
fixed32 icon = 8;
|
||||
}
|
||||
|
||||
/*
|
||||
* Message for node status
|
||||
*/
|
||||
message StatusMessage {
|
||||
string status = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* This message will be proxied over the PhoneAPI for the client to deliver to the MQTT server
|
||||
*/
|
||||
@@ -1345,6 +1659,11 @@ message MeshPacket {
|
||||
* Arrived via API connection
|
||||
*/
|
||||
TRANSPORT_API = 7;
|
||||
|
||||
/*
|
||||
* Arrived via Unicast UDP
|
||||
*/
|
||||
TRANSPORT_UNICAST_UDP = 8;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1356,6 +1675,10 @@ message MeshPacket {
|
||||
|
||||
/*
|
||||
* The (immediate) destination for this packet
|
||||
* If the value is 4,294,967,295 (maximum value of an unsigned 32bit integer), this indicates that the packet was
|
||||
* not destined for a specific node, but for a channel as indicated by the value of `channel` below.
|
||||
* If the value is another, this indicates that the packet was destined for a specific
|
||||
* node (i.e. a kind of "Direct Message" to this node) and not broadcast on a channel.
|
||||
*/
|
||||
fixed32 to = 2;
|
||||
|
||||
@@ -1499,6 +1822,11 @@ message MeshPacket {
|
||||
* Indicates which transport mechanism this packet arrived over
|
||||
*/
|
||||
TransportMechanism transport_mechanism = 21;
|
||||
|
||||
/*
|
||||
* Indicates whether the packet has a valid signature
|
||||
*/
|
||||
bool xeddsa_signed = 22;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1629,6 +1957,19 @@ message NodeInfo {
|
||||
* LSB 0 of the bitfield
|
||||
*/
|
||||
bool is_key_manually_verified = 12;
|
||||
|
||||
/*
|
||||
* True if node has been muted
|
||||
* Persistes between NodeDB internal clean ups
|
||||
*/
|
||||
bool is_muted = 13;
|
||||
|
||||
/*
|
||||
* True if node is signing its packets via XEdDSA
|
||||
* Persists between NodeDB internal clean ups
|
||||
* LSB 1 of the bitfield
|
||||
*/
|
||||
bool has_xeddsa_signed = 14;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1987,9 +2328,105 @@ message FromRadio {
|
||||
* Persistent data for device-ui
|
||||
*/
|
||||
DeviceUIConfig deviceuiConfig = 17;
|
||||
|
||||
/*
|
||||
* Lockdown state notification for hardened firmware builds.
|
||||
* Sent post-config (so unauthorized clients learn they must
|
||||
* provision/unlock) and after each LockdownAuth admin command
|
||||
* to report success or failure. Replaces the earlier scheme of
|
||||
* encoding state as magic-string prefixes inside ClientNotification.
|
||||
*/
|
||||
LockdownStatus lockdown_status = 18;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Lockdown state report from firmware to client (for hardened builds
|
||||
* with MESHTASTIC_LOCKDOWN). Sent immediately after config_complete_id
|
||||
* to inform a freshly-connected unauthorized client what it must do,
|
||||
* and again in response to each LockdownAuth admin command.
|
||||
*/
|
||||
message LockdownStatus {
|
||||
enum State {
|
||||
/* Default; should not be sent. */
|
||||
STATE_UNSPECIFIED = 0;
|
||||
|
||||
/*
|
||||
* No passphrase has ever been provisioned on this device.
|
||||
* Client should prompt the operator to set one.
|
||||
*/
|
||||
NEEDS_PROVISION = 1;
|
||||
|
||||
/*
|
||||
* Storage is locked or this client has not authenticated yet.
|
||||
* lock_reason carries a machine-readable detail string.
|
||||
* Client should present (or auto-replay) a passphrase via
|
||||
* AdminMessage.lockdown_auth.
|
||||
*/
|
||||
LOCKED = 2;
|
||||
|
||||
/*
|
||||
* Passphrase accepted; client is now authorized for this connection.
|
||||
* boots_remaining and valid_until_epoch describe the active session
|
||||
* token's TTL.
|
||||
*/
|
||||
UNLOCKED = 3;
|
||||
|
||||
/*
|
||||
* Passphrase rejected. backoff_seconds is non-zero when rate-limited.
|
||||
*/
|
||||
UNLOCK_FAILED = 4;
|
||||
|
||||
/*
|
||||
* Lockdown is supported by this firmware but not currently active
|
||||
* (no passphrase has been provisioned, or it was disabled via
|
||||
* AdminMessage.lockdown_auth.disable). The device is operating in
|
||||
* normal, non-encrypted mode. Clients render the lockdown-mode
|
||||
* toggle as OFF on receiving this. Distinct from NEEDS_PROVISION,
|
||||
* which is only used during an in-progress enable flow.
|
||||
*/
|
||||
DISABLED = 5;
|
||||
}
|
||||
|
||||
/* Current lockdown state being reported. */
|
||||
State state = 1;
|
||||
|
||||
/*
|
||||
* For LOCKED: machine-readable reason. Known values:
|
||||
* "needs_auth" — storage already unlocked, client must auth
|
||||
* "token_missing" — no boot token on flash
|
||||
* "token_expired" — boot token wall-clock TTL elapsed
|
||||
* "token_boots_zero" — boot token boot-count TTL exhausted
|
||||
* "token_hmac_fail" — token tampered or wrong device
|
||||
* "token_dek_fail" — token DEK decrypt failed
|
||||
* "token_wrong_size" — token file corrupted
|
||||
* "token_bad_magic" — token file corrupted
|
||||
* "not_provisioned" — should generally use NEEDS_PROVISION state instead
|
||||
* Other values may be added; clients should treat unknown values as
|
||||
* "locked, ask for passphrase".
|
||||
*/
|
||||
string lock_reason = 2;
|
||||
|
||||
/*
|
||||
* For UNLOCKED: remaining boots on the issued session token.
|
||||
* Decrements by 1 on each subsequent boot.
|
||||
*/
|
||||
uint32 boots_remaining = 3;
|
||||
|
||||
/*
|
||||
* For UNLOCKED: wall-clock expiry of the issued session token,
|
||||
* absolute Unix-epoch seconds. 0 = no time limit.
|
||||
*/
|
||||
uint32 valid_until_epoch = 4;
|
||||
|
||||
/*
|
||||
* For UNLOCK_FAILED: seconds the client must wait before another
|
||||
* passphrase attempt will be accepted. 0 = wrong passphrase, no
|
||||
* backoff (immediate retry allowed but advisable to prompt user).
|
||||
*/
|
||||
uint32 backoff_seconds = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
* A notification message from the device to the client
|
||||
* To be used for important messages that should to be displayed to the user
|
||||
|
||||
@@ -2,10 +2,12 @@ syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
import "meshtastic/atak.proto";
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ModuleConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -51,9 +53,9 @@ message ModuleConfig {
|
||||
bool encryption_enabled = 5;
|
||||
|
||||
/*
|
||||
* Whether to send / consume json packets on MQTT
|
||||
* Deprecated: JSON packet support on MQTT was removed, and this field is ignored.
|
||||
*/
|
||||
bool json_enabled = 6;
|
||||
bool json_enabled = 6 [deprecated = true];
|
||||
|
||||
/*
|
||||
* If true, we attempt to establish a secure connection using TLS
|
||||
@@ -295,6 +297,82 @@ message ModuleConfig {
|
||||
int32 ble_threshold = 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* Config for the Traffic Management module.
|
||||
* Provides packet inspection and traffic shaping to help reduce channel utilization
|
||||
*/
|
||||
message TrafficManagementConfig {
|
||||
/*
|
||||
* Master enable for traffic management module
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
/*
|
||||
* Enable position deduplication to drop redundant position broadcasts
|
||||
*/
|
||||
bool position_dedup_enabled = 2;
|
||||
|
||||
/*
|
||||
* Number of bits of precision for position deduplication (0-32)
|
||||
*/
|
||||
uint32 position_precision_bits = 3;
|
||||
|
||||
/*
|
||||
* Minimum interval in seconds between position updates from the same node
|
||||
*/
|
||||
uint32 position_min_interval_secs = 4;
|
||||
|
||||
/*
|
||||
* Enable direct response to NodeInfo requests from local cache
|
||||
*/
|
||||
bool nodeinfo_direct_response = 5;
|
||||
|
||||
/*
|
||||
* Minimum hop distance from requestor before responding to NodeInfo requests
|
||||
*/
|
||||
uint32 nodeinfo_direct_response_max_hops = 6;
|
||||
|
||||
/*
|
||||
* Enable per-node rate limiting to throttle chatty nodes
|
||||
*/
|
||||
bool rate_limit_enabled = 7;
|
||||
|
||||
/*
|
||||
* Time window in seconds for rate limiting calculations
|
||||
*/
|
||||
uint32 rate_limit_window_secs = 8;
|
||||
|
||||
/*
|
||||
* Maximum packets allowed per node within the rate limit window
|
||||
*/
|
||||
uint32 rate_limit_max_packets = 9;
|
||||
|
||||
/*
|
||||
* Enable dropping of unknown/undecryptable packets per rate_limit_window_secs
|
||||
*/
|
||||
bool drop_unknown_enabled = 10;
|
||||
|
||||
/*
|
||||
* Number of unknown packets before dropping from a node
|
||||
*/
|
||||
uint32 unknown_packet_threshold = 11;
|
||||
|
||||
/*
|
||||
* Set hop_limit to 0 for relayed telemetry broadcasts (own packets unaffected)
|
||||
*/
|
||||
bool exhaust_hop_telemetry = 12;
|
||||
|
||||
/*
|
||||
* Set hop_limit to 0 for relayed position broadcasts (own packets unaffected)
|
||||
*/
|
||||
bool exhaust_hop_position = 13;
|
||||
|
||||
/*
|
||||
* Preserve hop_limit for router-to-router traffic
|
||||
*/
|
||||
bool router_preserve_hops = 14;
|
||||
}
|
||||
|
||||
/*
|
||||
* Serial Config
|
||||
*/
|
||||
@@ -337,9 +415,12 @@ message ModuleConfig {
|
||||
// VE.Direct is a serial protocol used by Victron Energy products
|
||||
// https://beta.ivc.no/wiki/index.php/Victron_VE_Direct_DIY_Cable
|
||||
VE_DIRECT = 7;
|
||||
//Used to configure and view some parameters of MeshSolar.
|
||||
//https://heltec.org/project/meshsolar/
|
||||
// Used to configure and view some parameters of MeshSolar.
|
||||
// https://heltec.org/project/meshsolar/
|
||||
MS_CONFIG = 8;
|
||||
// Logs mesh traffic to the serial pins, ideal for logging via openLog or similar.
|
||||
LOG = 9; // includes other packets
|
||||
LOGTEXT = 10; // only text (channel & DM)
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -621,6 +702,11 @@ message ModuleConfig {
|
||||
* Note: We will still send telemtry to the connected phone / client every minute over the API
|
||||
*/
|
||||
bool device_telemetry_enabled = 14;
|
||||
|
||||
/*
|
||||
* Enable/Disable the air quality telemetry measurement module on-device display
|
||||
*/
|
||||
bool air_quality_screen_enabled = 15;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -761,6 +847,16 @@ message ModuleConfig {
|
||||
uint32 blue = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
* StatusMessage config - Allows setting a status message for a node to periodically rebroadcast
|
||||
*/
|
||||
message StatusMessageConfig {
|
||||
/*
|
||||
* The actual status string
|
||||
*/
|
||||
string node_status = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
@@ -829,6 +925,37 @@ message ModuleConfig {
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
PaxcounterConfig paxcounter = 13;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
StatusMessageConfig statusmessage = 14;
|
||||
|
||||
/*
|
||||
* Traffic management module config for mesh network optimization
|
||||
*/
|
||||
TrafficManagementConfig traffic_management = 15;
|
||||
|
||||
/*
|
||||
* TAK team/role configuration for TAK_TRACKER
|
||||
*/
|
||||
TAKConfig tak = 16;
|
||||
}
|
||||
|
||||
/*
|
||||
* TAK team/role configuration
|
||||
*/
|
||||
message TAKConfig {
|
||||
/*
|
||||
* Team color.
|
||||
* Default Unspecifed_Color -> firmware uses Cyan
|
||||
*/
|
||||
Team team = 1;
|
||||
/*
|
||||
* Member role.
|
||||
* Default Unspecifed -> firmware uses TeamMember
|
||||
*/
|
||||
MemberRole role = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/mesh.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "MQTTProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "PaxcountProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "Portnums";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -115,6 +115,11 @@ enum PortNum {
|
||||
*/
|
||||
KEY_VERIFICATION_APP = 12;
|
||||
|
||||
/*
|
||||
* Module/port for handling primitive remote shell access.
|
||||
*/
|
||||
REMOTE_SHELL_APP = 13;
|
||||
|
||||
/*
|
||||
* Provides a 'ping' service that replies to any packet it receives.
|
||||
* Also serves as a small example module.
|
||||
@@ -134,6 +139,22 @@ enum PortNum {
|
||||
*/
|
||||
PAXCOUNTER_APP = 34;
|
||||
|
||||
/*
|
||||
* Store and Forward++ module included in the firmware
|
||||
* ENCODING: protobuf
|
||||
* This module is specifically for Native Linux nodes, and provides a Git-style
|
||||
* chain of messages.
|
||||
*/
|
||||
STORE_FORWARD_PLUSPLUS_APP = 35;
|
||||
|
||||
/*
|
||||
* Node Status module
|
||||
* ENCODING: protobuf
|
||||
* This module allows setting an extra string of status for a node.
|
||||
* Broadcasts on change and on a timer, possibly once a day.
|
||||
*/
|
||||
NODE_STATUS_APP = 36;
|
||||
|
||||
/*
|
||||
* Provides a hardware serial interface to send and receive from the Meshtastic network.
|
||||
* Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
|
||||
@@ -211,6 +232,12 @@ enum PortNum {
|
||||
*/
|
||||
POWERSTRESS_APP = 74;
|
||||
|
||||
/*
|
||||
* LoraWAN Payload Transport
|
||||
* ENCODING: compact binary LoRaWAN uplink (10-byte RF metadata + PHY payload) - see LoRaWANBridgeModule
|
||||
*/
|
||||
LORAWAN_BRIDGE = 75;
|
||||
|
||||
/*
|
||||
* Reticulum Network Stack Tunnel App
|
||||
* ENCODING: Fragmented RNS Packet. Handled by Meshtastic RNS interface
|
||||
@@ -224,6 +251,20 @@ enum PortNum {
|
||||
*/
|
||||
CAYENNE_APP = 77;
|
||||
|
||||
/*
|
||||
* ATAK Plugin V2
|
||||
* Portnum for payloads from the official Meshtastic ATAK plugin using
|
||||
* TAKPacketV2 with zstd dictionary compression.
|
||||
*/
|
||||
ATAK_PLUGIN_V2 = 78;
|
||||
|
||||
/*
|
||||
* GroupAlarm integration
|
||||
* Used for transporting GroupAlarm-related messages between Meshtastic nodes
|
||||
* and companion applications/services.
|
||||
*/
|
||||
GROUPALARM_APP = 112;
|
||||
|
||||
/*
|
||||
* Private applications should use portnums >= 256.
|
||||
* To simplify initial development and testing you can use "PRIVATE_APP"
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "PowerMonProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/* Note: There are no 'PowerMon' messages normally in use (PowerMons are sent only as structured logs - slogs).
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "RemoteHardware";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "RTTTLConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "SerialHal";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
// SerialHalCommand messages are sent from host to device over the SerialHal
|
||||
// framing stream. Responses normally come back as SerialHalResponse with the
|
||||
// same transaction_id.
|
||||
//
|
||||
// Interrupt notifications are the one asynchronous exception: the device emits
|
||||
// an unsolicited SerialHalResponse with transaction_id == 0 and value == pin.
|
||||
// Host implementations should treat those frames as interrupt events rather
|
||||
// than replies to an outstanding request.
|
||||
|
||||
message SerialHalCommand {
|
||||
enum Type {
|
||||
UNSET = 0;
|
||||
PIN_MODE = 1;
|
||||
DIGITAL_WRITE = 2;
|
||||
DIGITAL_READ = 3;
|
||||
ATTACH_INTERRUPT = 4;
|
||||
DETACH_INTERRUPT = 5;
|
||||
SPI_TRANSFER = 6;
|
||||
NOOP = 7;
|
||||
}
|
||||
|
||||
// Host-assigned request id. Replies echo this id back in
|
||||
// SerialHalResponse.transaction_id.
|
||||
uint32 transaction_id = 1;
|
||||
Type type = 2;
|
||||
uint32 pin = 3;
|
||||
uint32 value = 4;
|
||||
uint32 mode = 5;
|
||||
bytes data = 6;
|
||||
}
|
||||
|
||||
message SerialHalResponse {
|
||||
enum Result {
|
||||
OK = 0;
|
||||
ERROR = 1;
|
||||
BAD_REQUEST = 2;
|
||||
UNSUPPORTED = 3;
|
||||
}
|
||||
|
||||
// Matches the originating SerialHalCommand.transaction_id for normal
|
||||
// request/response traffic.
|
||||
//
|
||||
// A value of 0 indicates an unsolicited interrupt notification generated by
|
||||
// the device. In that case, the host should interpret value as the GPIO pin
|
||||
// that triggered.
|
||||
uint32 transaction_id = 1;
|
||||
Result result = 2;
|
||||
// Used by DIGITAL_READ replies and interrupt notifications. For interrupt
|
||||
// notifications (transaction_id == 0), this carries the pin number.
|
||||
uint32 value = 3;
|
||||
bytes data = 4;
|
||||
string error = 5;
|
||||
}
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "StoreAndForwardProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "TelemetryProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -153,6 +153,11 @@ message EnvironmentMetrics {
|
||||
* Soil temperature measured (*C)
|
||||
*/
|
||||
optional float soil_temperature = 22;
|
||||
|
||||
/*
|
||||
* One-wire temperature (*C)
|
||||
*/
|
||||
repeated float one_wire_temperature = 23;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -443,6 +448,51 @@ message LocalStats {
|
||||
* Number of packets that were dropped because the transmit queue was full.
|
||||
*/
|
||||
uint32 num_tx_dropped = 14;
|
||||
|
||||
/*
|
||||
* Noise floor value measured in dBm
|
||||
*/
|
||||
int32 noise_floor = 15;
|
||||
}
|
||||
|
||||
/*
|
||||
* Traffic management statistics for mesh network optimization
|
||||
*/
|
||||
message TrafficManagementStats {
|
||||
/*
|
||||
* Total number of packets inspected by traffic management
|
||||
*/
|
||||
uint32 packets_inspected = 1;
|
||||
|
||||
/*
|
||||
* Number of position packets dropped due to deduplication
|
||||
*/
|
||||
uint32 position_dedup_drops = 2;
|
||||
|
||||
/*
|
||||
* Number of NodeInfo requests answered from cache
|
||||
*/
|
||||
uint32 nodeinfo_cache_hits = 3;
|
||||
|
||||
/*
|
||||
* Number of packets dropped due to rate limiting
|
||||
*/
|
||||
uint32 rate_limit_drops = 4;
|
||||
|
||||
/*
|
||||
* Number of unknown/undecryptable packets dropped
|
||||
*/
|
||||
uint32 unknown_packet_drops = 5;
|
||||
|
||||
/*
|
||||
* Number of packets with hop_limit exhausted for local-only broadcast
|
||||
*/
|
||||
uint32 hop_exhausted_packets = 6;
|
||||
|
||||
/*
|
||||
* Number of times router hop preservation was applied
|
||||
*/
|
||||
uint32 router_hops_preserved = 7;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -560,6 +610,11 @@ message Telemetry {
|
||||
* Linux host metrics
|
||||
*/
|
||||
HostMetrics host_metrics = 8;
|
||||
|
||||
/*
|
||||
* Traffic management statistics
|
||||
*/
|
||||
TrafficManagementStats traffic_management_stats = 9;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -603,7 +658,7 @@ enum TelemetrySensorType {
|
||||
BMP280 = 6;
|
||||
|
||||
/*
|
||||
* High accuracy temperature and humidity
|
||||
* TODO - REMOVE High accuracy temperature and humidity
|
||||
*/
|
||||
SHTC3 = 7;
|
||||
|
||||
@@ -628,7 +683,7 @@ enum TelemetrySensorType {
|
||||
QMC5883L = 11;
|
||||
|
||||
/*
|
||||
* High accuracy temperature and humidity
|
||||
* TODO - REMOVE High accuracy temperature and humidity
|
||||
*/
|
||||
SHT31 = 12;
|
||||
|
||||
@@ -653,7 +708,7 @@ enum TelemetrySensorType {
|
||||
RCWL9620 = 16;
|
||||
|
||||
/*
|
||||
* Sensirion High accuracy temperature and humidity
|
||||
* TODO - REMOVE Sensirion High accuracy temperature and humidity
|
||||
*/
|
||||
SHT4X = 17;
|
||||
|
||||
@@ -786,10 +841,56 @@ enum TelemetrySensorType {
|
||||
* SEN5X PM SENSORS
|
||||
*/
|
||||
SEN5X = 43;
|
||||
|
||||
/*
|
||||
* TSL2561 light sensor
|
||||
*/
|
||||
TSL2561 = 44;
|
||||
|
||||
/*
|
||||
* BH1750 light sensor
|
||||
*/
|
||||
BH1750 = 45;
|
||||
|
||||
/*
|
||||
* HDC1080 Temperature and Humidity Sensor
|
||||
*/
|
||||
HDC1080 = 46;
|
||||
|
||||
/*
|
||||
* TODO - REMOVE STH21 Temperature and R. Humidity sensor
|
||||
*/
|
||||
SHT21 = 47;
|
||||
|
||||
/*
|
||||
* Sensirion STC31 CO2 sensor
|
||||
*/
|
||||
STC31 = 48;
|
||||
|
||||
/*
|
||||
* SCD30 CO2, humidity, temperature sensor
|
||||
*/
|
||||
SCD30 = 49;
|
||||
|
||||
/*
|
||||
* SHT family of sensors for temperature and humidity
|
||||
*/
|
||||
SHTXX = 50;
|
||||
|
||||
/*
|
||||
* DS248X Bridge for one-wire temperature sensors
|
||||
*/
|
||||
DS248X = 51;
|
||||
|
||||
/*
|
||||
* MMC5983MA 3-Axis Digital Magnetic Sensor
|
||||
*/
|
||||
MMC5983MA = 52;
|
||||
|
||||
/*
|
||||
* ICM-42607-P 6‑Axis IMU
|
||||
*/
|
||||
ICM42607P = 53;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -806,3 +907,38 @@ message Nau7802Config {
|
||||
*/
|
||||
float calibrationFactor = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* SEN5X State, for saving to flash
|
||||
*/
|
||||
message SEN5XState {
|
||||
/*
|
||||
* Last cleaning time for SEN5X
|
||||
*/
|
||||
uint32 last_cleaning_time = 1;
|
||||
|
||||
/*
|
||||
* Last cleaning time for SEN5X - valid flag
|
||||
*/
|
||||
bool last_cleaning_valid = 2;
|
||||
|
||||
/*
|
||||
* Config flag for one-shot mode (see admin.proto)
|
||||
*/
|
||||
bool one_shot_mode = 3;
|
||||
|
||||
/*
|
||||
* Last VOC state time for SEN55
|
||||
*/
|
||||
optional uint32 voc_state_time = 4;
|
||||
|
||||
/*
|
||||
* Last VOC state validity flag for SEN55
|
||||
*/
|
||||
optional bool voc_state_valid = 5;
|
||||
|
||||
/*
|
||||
* VOC state array (8x uint8t) for SEN55
|
||||
*/
|
||||
optional fixed64 voc_state_array = 6;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "XmodemProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
message XModem {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@meshtastic/protobufs-ws",
|
||||
"name": "@meshtastic/protobufs",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
@@ -9,20 +9,18 @@
|
||||
"./packages/ts/dist/"
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./packages/ts/dist/mod.d.ts",
|
||||
"default": "./packages/ts/dist/mod.js"
|
||||
},
|
||||
"./*": "./packages/ts/dist/*"
|
||||
".": "./packages/ts/mod.ts"
|
||||
},
|
||||
"types": "./packages/ts/dist/mod.d.ts",
|
||||
"types": "./packages/ts/mod.ts",
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"gen": "buf generate",
|
||||
"clean": "rimraf dist",
|
||||
"clean": "rimraf packages/ts/dist",
|
||||
"build": "pnpm run clean && pnpm run gen"
|
||||
},
|
||||
"dependencies": {},
|
||||
"dependencies": {
|
||||
"@bufbuild/protobuf": "^2.9.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@bufbuild/protoc-gen-es": "^1.9.0",
|
||||
"rimraf": "^6.0.0"
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/apponly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { ChannelSettings } from "./channel_pb";
|
||||
import { file_meshtastic_channel } from "./channel_pb";
|
||||
import type { Config_LoRaConfig } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/apponly.proto.
|
||||
*/
|
||||
export const file_meshtastic_apponly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChhtZXNodGFzdGljL2FwcG9ubHkucHJvdG8SCm1lc2h0YXN0aWMibwoKQ2hhbm5lbFNldBItCghzZXR0aW5ncxgBIAMoCzIbLm1lc2h0YXN0aWMuQ2hhbm5lbFNldHRpbmdzEjIKC2xvcmFfY29uZmlnGAIgASgLMh0ubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZ0JjChRvcmcubWVzaHRhc3RpYy5wcm90b0INQXBwT25seVByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM", [file_meshtastic_channel, file_meshtastic_config]);
|
||||
|
||||
/**
|
||||
*
|
||||
* This is the most compact possible representation for a set of channels.
|
||||
* It includes only one PRIMARY channel (which must be first) and
|
||||
* any SECONDARY channels.
|
||||
* No DISABLED channels are included.
|
||||
* This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL
|
||||
*
|
||||
* @generated from message meshtastic.ChannelSet
|
||||
*/
|
||||
export type ChannelSet = Message<"meshtastic.ChannelSet"> & {
|
||||
/**
|
||||
*
|
||||
* Channel list with settings
|
||||
*
|
||||
* @generated from field: repeated meshtastic.ChannelSettings settings = 1;
|
||||
*/
|
||||
settings: ChannelSettings[];
|
||||
|
||||
/**
|
||||
*
|
||||
* LoRa config
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig lora_config = 2;
|
||||
*/
|
||||
loraConfig?: Config_LoRaConfig | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ChannelSet.
|
||||
* Use `create(ChannelSetSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelSetSchema: GenMessage<ChannelSet> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_apponly, 0);
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/cannedmessages.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/cannedmessages.proto.
|
||||
*/
|
||||
export const file_meshtastic_cannedmessages: GenFile = /*@__PURE__*/
|
||||
fileDesc("Ch9tZXNodGFzdGljL2Nhbm5lZG1lc3NhZ2VzLnByb3RvEgptZXNodGFzdGljIi0KGUNhbm5lZE1lc3NhZ2VNb2R1bGVDb25maWcSEAoIbWVzc2FnZXMYASABKAlCbwoUb3JnLm1lc2h0YXN0aWMucHJvdG9CGUNhbm5lZE1lc3NhZ2VDb25maWdQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
*
|
||||
* Canned message module configuration.
|
||||
*
|
||||
* @generated from message meshtastic.CannedMessageModuleConfig
|
||||
*/
|
||||
export type CannedMessageModuleConfig = Message<"meshtastic.CannedMessageModuleConfig"> & {
|
||||
/**
|
||||
*
|
||||
* Predefined messages for canned message module separated by '|' characters.
|
||||
*
|
||||
* @generated from field: string messages = 1;
|
||||
*/
|
||||
messages: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.CannedMessageModuleConfig.
|
||||
* Use `create(CannedMessageModuleConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const CannedMessageModuleConfigSchema: GenMessage<CannedMessageModuleConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_cannedmessages, 0);
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/channel.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
// trunk-ignore(buf-lint/PACKAGE_DIRECTORY_MATCH)
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/channel.proto.
|
||||
*/
|
||||
export const file_meshtastic_channel: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChhtZXNodGFzdGljL2NoYW5uZWwucHJvdG8SCm1lc2h0YXN0aWMiuAEKD0NoYW5uZWxTZXR0aW5ncxIXCgtjaGFubmVsX251bRgBIAEoDUICGAESCwoDcHNrGAIgASgMEgwKBG5hbWUYAyABKAkSCgoCaWQYBCABKAcSFgoOdXBsaW5rX2VuYWJsZWQYBSABKAgSGAoQZG93bmxpbmtfZW5hYmxlZBgGIAEoCBIzCg9tb2R1bGVfc2V0dGluZ3MYByABKAsyGi5tZXNodGFzdGljLk1vZHVsZVNldHRpbmdzIj4KDk1vZHVsZVNldHRpbmdzEhoKEnBvc2l0aW9uX3ByZWNpc2lvbhgBIAEoDRIQCghpc19tdXRlZBgCIAEoCCKhAQoHQ2hhbm5lbBINCgVpbmRleBgBIAEoBRItCghzZXR0aW5ncxgCIAEoCzIbLm1lc2h0YXN0aWMuQ2hhbm5lbFNldHRpbmdzEiYKBHJvbGUYAyABKA4yGC5tZXNodGFzdGljLkNoYW5uZWwuUm9sZSIwCgRSb2xlEgwKCERJU0FCTEVEEAASCwoHUFJJTUFSWRABEg0KCVNFQ09OREFSWRACQmMKFG9yZy5tZXNodGFzdGljLnByb3RvQg1DaGFubmVsUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
*
|
||||
* This information can be encoded as a QRcode/url so that other users can configure
|
||||
* their radio to join the same channel.
|
||||
* A note about how channel names are shown to users: channelname-X
|
||||
* poundsymbol is a prefix used to indicate this is a channel name (idea from @professr).
|
||||
* Where X is a letter from A-Z (base 26) representing a hash of the PSK for this
|
||||
* channel - so that if the user changes anything about the channel (which does
|
||||
* force a new PSK) this letter will also change. Thus preventing user confusion if
|
||||
* two friends try to type in a channel name of "BobsChan" and then can't talk
|
||||
* because their PSKs will be different.
|
||||
* The PSK is hashed into this letter by "0x41 + [xor all bytes of the psk ] modulo 26"
|
||||
* This also allows the option of someday if people have the PSK off (zero), the
|
||||
* users COULD type in a channel name and be able to talk.
|
||||
* FIXME: Add description of multi-channel support and how primary vs secondary channels are used.
|
||||
* FIXME: explain how apps use channels for security.
|
||||
* explain how remote settings and remote gpio are managed as an example
|
||||
*
|
||||
* @generated from message meshtastic.ChannelSettings
|
||||
*/
|
||||
export type ChannelSettings = Message<"meshtastic.ChannelSettings"> & {
|
||||
/**
|
||||
*
|
||||
* Deprecated in favor of LoraConfig.channel_num
|
||||
*
|
||||
* @generated from field: uint32 channel_num = 1 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
channelNum: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* A simple pre-shared key for now for crypto.
|
||||
* Must be either 0 bytes (no crypto), 16 bytes (AES128), or 32 bytes (AES256).
|
||||
* A special shorthand is used for 1 byte long psks.
|
||||
* These psks should be treated as only minimally secure,
|
||||
* because they are listed in this source code.
|
||||
* Those bytes are mapped using the following scheme:
|
||||
* `0` = No crypto
|
||||
* `1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0x01}
|
||||
* `2` through 10 = The default channel key, except with 1 through 9 added to the last byte.
|
||||
* Shown to user as simple1 through 10
|
||||
*
|
||||
* @generated from field: bytes psk = 2;
|
||||
*/
|
||||
psk: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* A SHORT name that will be packed into the URL.
|
||||
* Less than 12 bytes.
|
||||
* Something for end users to call the channel
|
||||
* If this is the empty string it is assumed that this channel
|
||||
* is the special (minimally secure) "Default"channel.
|
||||
* In user interfaces it should be rendered as a local language translation of "X".
|
||||
* For channel_num hashing empty string will be treated as "X".
|
||||
* Where "X" is selected based on the English words listed above for ModemPreset
|
||||
*
|
||||
* @generated from field: string name = 3;
|
||||
*/
|
||||
name: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Used to construct a globally unique channel ID.
|
||||
* The full globally unique ID will be: "name.id" where ID is shown as base36.
|
||||
* Assuming that the number of meshtastic users is below 20K (true for a long time)
|
||||
* the chance of this 64 bit random number colliding with anyone else is super low.
|
||||
* And the penalty for collision is low as well, it just means that anyone trying to decrypt channel messages might need to
|
||||
* try multiple candidate channels.
|
||||
* Any time a non wire compatible change is made to a channel, this field should be regenerated.
|
||||
* There are a small number of 'special' globally known (and fairly) insecure standard channels.
|
||||
* Those channels do not have a numeric id included in the settings, but instead it is pulled from
|
||||
* a table of well known IDs.
|
||||
* (see Well Known Channels FIXME)
|
||||
*
|
||||
* @generated from field: fixed32 id = 4;
|
||||
*/
|
||||
id: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* If true, messages on the mesh will be sent to the *public* internet by any gateway ndoe
|
||||
*
|
||||
* @generated from field: bool uplink_enabled = 5;
|
||||
*/
|
||||
uplinkEnabled: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* If true, messages seen on the internet will be forwarded to the local mesh.
|
||||
*
|
||||
* @generated from field: bool downlink_enabled = 6;
|
||||
*/
|
||||
downlinkEnabled: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Per-channel module settings.
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleSettings module_settings = 7;
|
||||
*/
|
||||
moduleSettings?: ModuleSettings | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ChannelSettings.
|
||||
* Use `create(ChannelSettingsSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelSettingsSchema: GenMessage<ChannelSettings> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_channel, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* This message is specifically for modules to store per-channel configuration data.
|
||||
*
|
||||
* @generated from message meshtastic.ModuleSettings
|
||||
*/
|
||||
export type ModuleSettings = Message<"meshtastic.ModuleSettings"> & {
|
||||
/**
|
||||
*
|
||||
* Bits of precision for the location sent in position packets.
|
||||
*
|
||||
* @generated from field: uint32 position_precision = 1;
|
||||
*/
|
||||
positionPrecision: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Controls whether or not the client / device should mute the current channel
|
||||
* Useful for noisy public channels you don't necessarily want to disable
|
||||
*
|
||||
* @generated from field: bool is_muted = 2;
|
||||
*/
|
||||
isMuted: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ModuleSettings.
|
||||
* Use `create(ModuleSettingsSchema)` to create a new message.
|
||||
*/
|
||||
export const ModuleSettingsSchema: GenMessage<ModuleSettings> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_channel, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* A pair of a channel number, mode and the (sharable) settings for that channel
|
||||
*
|
||||
* @generated from message meshtastic.Channel
|
||||
*/
|
||||
export type Channel = Message<"meshtastic.Channel"> & {
|
||||
/**
|
||||
*
|
||||
* The index of this channel in the channel table (from 0 to MAX_NUM_CHANNELS-1)
|
||||
* (Someday - not currently implemented) An index of -1 could be used to mean "set by name",
|
||||
* in which case the target node will find and set the channel by settings.name.
|
||||
*
|
||||
* @generated from field: int32 index = 1;
|
||||
*/
|
||||
index: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The new settings, or NULL to disable that channel
|
||||
*
|
||||
* @generated from field: meshtastic.ChannelSettings settings = 2;
|
||||
*/
|
||||
settings?: ChannelSettings | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.Channel.Role role = 3;
|
||||
*/
|
||||
role: Channel_Role;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.Channel.
|
||||
* Use `create(ChannelSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelSchema: GenMessage<Channel> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_channel, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* How this channel is being used (or not).
|
||||
* Note: this field is an enum to give us options for the future.
|
||||
* In particular, someday we might make a 'SCANNING' option.
|
||||
* SCANNING channels could have different frequencies and the radio would
|
||||
* occasionally check that freq to see if anything is being transmitted.
|
||||
* For devices that have multiple physical radios attached, we could keep multiple PRIMARY/SCANNING channels active at once to allow
|
||||
* cross band routing as needed.
|
||||
* If a device has only a single radio (the common case) only one channel can be PRIMARY at a time
|
||||
* (but any number of SECONDARY channels can't be sent received on that common frequency)
|
||||
*
|
||||
* @generated from enum meshtastic.Channel.Role
|
||||
*/
|
||||
export enum Channel_Role {
|
||||
/**
|
||||
*
|
||||
* This channel is not in use right now
|
||||
*
|
||||
* @generated from enum value: DISABLED = 0;
|
||||
*/
|
||||
DISABLED = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY
|
||||
*
|
||||
* @generated from enum value: PRIMARY = 1;
|
||||
*/
|
||||
PRIMARY = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Secondary channels are only used for encryption/decryption/authentication purposes.
|
||||
* Their radio settings (freq etc) are ignored, only psk is used.
|
||||
*
|
||||
* @generated from enum value: SECONDARY = 2;
|
||||
*/
|
||||
SECONDARY = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.Channel.Role.
|
||||
*/
|
||||
export const Channel_RoleSchema: GenEnum<Channel_Role> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_channel, 2, 0);
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/clientonly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { LocalConfig, LocalModuleConfig } from "./localonly_pb";
|
||||
import { file_meshtastic_localonly } from "./localonly_pb";
|
||||
import type { Position } from "./mesh_pb";
|
||||
import { file_meshtastic_mesh } from "./mesh_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/clientonly.proto.
|
||||
*/
|
||||
export const file_meshtastic_clientonly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChttZXNodGFzdGljL2NsaWVudG9ubHkucHJvdG8SCm1lc2h0YXN0aWMiqQMKDURldmljZVByb2ZpbGUSFgoJbG9uZ19uYW1lGAEgASgJSACIAQESFwoKc2hvcnRfbmFtZRgCIAEoCUgBiAEBEhgKC2NoYW5uZWxfdXJsGAMgASgJSAKIAQESLAoGY29uZmlnGAQgASgLMhcubWVzaHRhc3RpYy5Mb2NhbENvbmZpZ0gDiAEBEjkKDW1vZHVsZV9jb25maWcYBSABKAsyHS5tZXNodGFzdGljLkxvY2FsTW9kdWxlQ29uZmlnSASIAQESMQoOZml4ZWRfcG9zaXRpb24YBiABKAsyFC5tZXNodGFzdGljLlBvc2l0aW9uSAWIAQESFQoIcmluZ3RvbmUYByABKAlIBogBARIcCg9jYW5uZWRfbWVzc2FnZXMYCCABKAlIB4gBAUIMCgpfbG9uZ19uYW1lQg0KC19zaG9ydF9uYW1lQg4KDF9jaGFubmVsX3VybEIJCgdfY29uZmlnQhAKDl9tb2R1bGVfY29uZmlnQhEKD19maXhlZF9wb3NpdGlvbkILCglfcmluZ3RvbmVCEgoQX2Nhbm5lZF9tZXNzYWdlc0JmChRvcmcubWVzaHRhc3RpYy5wcm90b0IQQ2xpZW50T25seVByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM", [file_meshtastic_localonly, file_meshtastic_mesh]);
|
||||
|
||||
/**
|
||||
*
|
||||
* This abstraction is used to contain any configuration for provisioning a node on any client.
|
||||
* It is useful for importing and exporting configurations.
|
||||
*
|
||||
* @generated from message meshtastic.DeviceProfile
|
||||
*/
|
||||
export type DeviceProfile = Message<"meshtastic.DeviceProfile"> & {
|
||||
/**
|
||||
*
|
||||
* Long name for the node
|
||||
*
|
||||
* @generated from field: optional string long_name = 1;
|
||||
*/
|
||||
longName?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Short name of the node
|
||||
*
|
||||
* @generated from field: optional string short_name = 2;
|
||||
*/
|
||||
shortName?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The url of the channels from our node
|
||||
*
|
||||
* @generated from field: optional string channel_url = 3;
|
||||
*/
|
||||
channelUrl?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The Config of the node
|
||||
*
|
||||
* @generated from field: optional meshtastic.LocalConfig config = 4;
|
||||
*/
|
||||
config?: LocalConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The ModuleConfig of the node
|
||||
*
|
||||
* @generated from field: optional meshtastic.LocalModuleConfig module_config = 5;
|
||||
*/
|
||||
moduleConfig?: LocalModuleConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Fixed position data
|
||||
*
|
||||
* @generated from field: optional meshtastic.Position fixed_position = 6;
|
||||
*/
|
||||
fixedPosition?: Position | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Ringtone for ExternalNotification
|
||||
*
|
||||
* @generated from field: optional string ringtone = 7;
|
||||
*/
|
||||
ringtone?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Predefined messages for CannedMessage
|
||||
*
|
||||
* @generated from field: optional string canned_messages = 8;
|
||||
*/
|
||||
cannedMessages?: string | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceProfile.
|
||||
* Use `create(DeviceProfileSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceProfileSchema: GenMessage<DeviceProfile> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_clientonly, 0);
|
||||
|
||||
@@ -0,0 +1,237 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/connection_status.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/connection_status.proto.
|
||||
*/
|
||||
export const file_meshtastic_connection_status: GenFile = /*@__PURE__*/
|
||||
fileDesc("CiJtZXNodGFzdGljL2Nvbm5lY3Rpb25fc3RhdHVzLnByb3RvEgptZXNodGFzdGljIrECChZEZXZpY2VDb25uZWN0aW9uU3RhdHVzEjMKBHdpZmkYASABKAsyIC5tZXNodGFzdGljLldpZmlDb25uZWN0aW9uU3RhdHVzSACIAQESOwoIZXRoZXJuZXQYAiABKAsyJC5tZXNodGFzdGljLkV0aGVybmV0Q29ubmVjdGlvblN0YXR1c0gBiAEBEj0KCWJsdWV0b290aBgDIAEoCzIlLm1lc2h0YXN0aWMuQmx1ZXRvb3RoQ29ubmVjdGlvblN0YXR1c0gCiAEBEjcKBnNlcmlhbBgEIAEoCzIiLm1lc2h0YXN0aWMuU2VyaWFsQ29ubmVjdGlvblN0YXR1c0gDiAEBQgcKBV93aWZpQgsKCV9ldGhlcm5ldEIMCgpfYmx1ZXRvb3RoQgkKB19zZXJpYWwiZwoUV2lmaUNvbm5lY3Rpb25TdGF0dXMSMwoGc3RhdHVzGAEgASgLMiMubWVzaHRhc3RpYy5OZXR3b3JrQ29ubmVjdGlvblN0YXR1cxIMCgRzc2lkGAIgASgJEgwKBHJzc2kYAyABKAUiTwoYRXRoZXJuZXRDb25uZWN0aW9uU3RhdHVzEjMKBnN0YXR1cxgBIAEoCzIjLm1lc2h0YXN0aWMuTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMiewoXTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMSEgoKaXBfYWRkcmVzcxgBIAEoBxIUCgxpc19jb25uZWN0ZWQYAiABKAgSGQoRaXNfbXF0dF9jb25uZWN0ZWQYAyABKAgSGwoTaXNfc3lzbG9nX2Nvbm5lY3RlZBgEIAEoCCJMChlCbHVldG9vdGhDb25uZWN0aW9uU3RhdHVzEgsKA3BpbhgBIAEoDRIMCgRyc3NpGAIgASgFEhQKDGlzX2Nvbm5lY3RlZBgDIAEoCCI8ChZTZXJpYWxDb25uZWN0aW9uU3RhdHVzEgwKBGJhdWQYASABKA0SFAoMaXNfY29ubmVjdGVkGAIgASgIQmYKFG9yZy5tZXNodGFzdGljLnByb3RvQhBDb25uU3RhdHVzUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.DeviceConnectionStatus
|
||||
*/
|
||||
export type DeviceConnectionStatus = Message<"meshtastic.DeviceConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* WiFi Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.WifiConnectionStatus wifi = 1;
|
||||
*/
|
||||
wifi?: WifiConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* WiFi Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.EthernetConnectionStatus ethernet = 2;
|
||||
*/
|
||||
ethernet?: EthernetConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Bluetooth Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.BluetoothConnectionStatus bluetooth = 3;
|
||||
*/
|
||||
bluetooth?: BluetoothConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Serial Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.SerialConnectionStatus serial = 4;
|
||||
*/
|
||||
serial?: SerialConnectionStatus | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceConnectionStatus.
|
||||
* Use `create(DeviceConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceConnectionStatusSchema: GenMessage<DeviceConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* WiFi connection status
|
||||
*
|
||||
* @generated from message meshtastic.WifiConnectionStatus
|
||||
*/
|
||||
export type WifiConnectionStatus = Message<"meshtastic.WifiConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* Connection status
|
||||
*
|
||||
* @generated from field: meshtastic.NetworkConnectionStatus status = 1;
|
||||
*/
|
||||
status?: NetworkConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* WiFi access point SSID
|
||||
*
|
||||
* @generated from field: string ssid = 2;
|
||||
*/
|
||||
ssid: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* RSSI of wireless connection
|
||||
*
|
||||
* @generated from field: int32 rssi = 3;
|
||||
*/
|
||||
rssi: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.WifiConnectionStatus.
|
||||
* Use `create(WifiConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const WifiConnectionStatusSchema: GenMessage<WifiConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* Ethernet connection status
|
||||
*
|
||||
* @generated from message meshtastic.EthernetConnectionStatus
|
||||
*/
|
||||
export type EthernetConnectionStatus = Message<"meshtastic.EthernetConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* Connection status
|
||||
*
|
||||
* @generated from field: meshtastic.NetworkConnectionStatus status = 1;
|
||||
*/
|
||||
status?: NetworkConnectionStatus | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.EthernetConnectionStatus.
|
||||
* Use `create(EthernetConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const EthernetConnectionStatusSchema: GenMessage<EthernetConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* Ethernet or WiFi connection status
|
||||
*
|
||||
* @generated from message meshtastic.NetworkConnectionStatus
|
||||
*/
|
||||
export type NetworkConnectionStatus = Message<"meshtastic.NetworkConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* IP address of device
|
||||
*
|
||||
* @generated from field: fixed32 ip_address = 1;
|
||||
*/
|
||||
ipAddress: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection or not
|
||||
*
|
||||
* @generated from field: bool is_connected = 2;
|
||||
*/
|
||||
isConnected: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection to an MQTT broker or not
|
||||
*
|
||||
* @generated from field: bool is_mqtt_connected = 3;
|
||||
*/
|
||||
isMqttConnected: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device is actively remote syslogging or not
|
||||
*
|
||||
* @generated from field: bool is_syslog_connected = 4;
|
||||
*/
|
||||
isSyslogConnected: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NetworkConnectionStatus.
|
||||
* Use `create(NetworkConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const NetworkConnectionStatusSchema: GenMessage<NetworkConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 3);
|
||||
|
||||
/**
|
||||
*
|
||||
* Bluetooth connection status
|
||||
*
|
||||
* @generated from message meshtastic.BluetoothConnectionStatus
|
||||
*/
|
||||
export type BluetoothConnectionStatus = Message<"meshtastic.BluetoothConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* The pairing PIN for bluetooth
|
||||
*
|
||||
* @generated from field: uint32 pin = 1;
|
||||
*/
|
||||
pin: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* RSSI of bluetooth connection
|
||||
*
|
||||
* @generated from field: int32 rssi = 2;
|
||||
*/
|
||||
rssi: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection or not
|
||||
*
|
||||
* @generated from field: bool is_connected = 3;
|
||||
*/
|
||||
isConnected: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.BluetoothConnectionStatus.
|
||||
* Use `create(BluetoothConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const BluetoothConnectionStatusSchema: GenMessage<BluetoothConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 4);
|
||||
|
||||
/**
|
||||
*
|
||||
* Serial connection status
|
||||
*
|
||||
* @generated from message meshtastic.SerialConnectionStatus
|
||||
*/
|
||||
export type SerialConnectionStatus = Message<"meshtastic.SerialConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* Serial baud rate
|
||||
*
|
||||
* @generated from field: uint32 baud = 1;
|
||||
*/
|
||||
baud: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection or not
|
||||
*
|
||||
* @generated from field: bool is_connected = 2;
|
||||
*/
|
||||
isConnected: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SerialConnectionStatus.
|
||||
* Use `create(SerialConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const SerialConnectionStatusSchema: GenMessage<SerialConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 5);
|
||||
|
||||
@@ -0,0 +1,698 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/device_ui.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/device_ui.proto.
|
||||
*/
|
||||
export const file_meshtastic_device_ui: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChptZXNodGFzdGljL2RldmljZV91aS5wcm90bxIKbWVzaHRhc3RpYyLABQoORGV2aWNlVUlDb25maWcSDwoHdmVyc2lvbhgBIAEoDRIZChFzY3JlZW5fYnJpZ2h0bmVzcxgCIAEoDRIWCg5zY3JlZW5fdGltZW91dBgDIAEoDRITCgtzY3JlZW5fbG9jaxgEIAEoCBIVCg1zZXR0aW5nc19sb2NrGAUgASgIEhAKCHBpbl9jb2RlGAYgASgNEiAKBXRoZW1lGAcgASgOMhEubWVzaHRhc3RpYy5UaGVtZRIVCg1hbGVydF9lbmFibGVkGAggASgIEhYKDmJhbm5lcl9lbmFibGVkGAkgASgIEhQKDHJpbmdfdG9uZV9pZBgKIAEoDRImCghsYW5ndWFnZRgLIAEoDjIULm1lc2h0YXN0aWMuTGFuZ3VhZ2USKwoLbm9kZV9maWx0ZXIYDCABKAsyFi5tZXNodGFzdGljLk5vZGVGaWx0ZXISMQoObm9kZV9oaWdobGlnaHQYDSABKAsyGS5tZXNodGFzdGljLk5vZGVIaWdobGlnaHQSGAoQY2FsaWJyYXRpb25fZGF0YRgOIAEoDBIhCghtYXBfZGF0YRgPIAEoCzIPLm1lc2h0YXN0aWMuTWFwEi0KDGNvbXBhc3NfbW9kZRgQIAEoDjIXLm1lc2h0YXN0aWMuQ29tcGFzc01vZGUSGAoQc2NyZWVuX3JnYl9jb2xvchgRIAEoDRIbChNpc19jbG9ja2ZhY2VfYW5hbG9nGBIgASgIEkIKCmdwc19mb3JtYXQYEyABKA4yLi5tZXNodGFzdGljLkRldmljZVVJQ29uZmlnLkdwc0Nvb3JkaW5hdGVGb3JtYXQiVgoTR3BzQ29vcmRpbmF0ZUZvcm1hdBIHCgNERUMQABIHCgNETVMQARIHCgNVVE0QAhIICgRNR1JTEAMSBwoDT0xDEAQSCAoET1NHUhAFEgcKA01MUxAGIqcBCgpOb2RlRmlsdGVyEhYKDnVua25vd25fc3dpdGNoGAEgASgIEhYKDm9mZmxpbmVfc3dpdGNoGAIgASgIEhkKEXB1YmxpY19rZXlfc3dpdGNoGAMgASgIEhEKCWhvcHNfYXdheRgEIAEoBRIXCg9wb3NpdGlvbl9zd2l0Y2gYBSABKAgSEQoJbm9kZV9uYW1lGAYgASgJEg8KB2NoYW5uZWwYByABKAUifgoNTm9kZUhpZ2hsaWdodBITCgtjaGF0X3N3aXRjaBgBIAEoCBIXCg9wb3NpdGlvbl9zd2l0Y2gYAiABKAgSGAoQdGVsZW1ldHJ5X3N3aXRjaBgDIAEoCBISCgppYXFfc3dpdGNoGAQgASgIEhEKCW5vZGVfbmFtZRgFIAEoCSI9CghHZW9Qb2ludBIMCgR6b29tGAEgASgFEhAKCGxhdGl0dWRlGAIgASgFEhEKCWxvbmdpdHVkZRgDIAEoBSJMCgNNYXASIgoEaG9tZRgBIAEoCzIULm1lc2h0YXN0aWMuR2VvUG9pbnQSDQoFc3R5bGUYAiABKAkSEgoKZm9sbG93X2dwcxgDIAEoCCo+CgtDb21wYXNzTW9kZRILCgdEWU5BTUlDEAASDgoKRklYRURfUklORxABEhIKDkZSRUVaRV9IRUFESU5HEAIqJQoFVGhlbWUSCAoEREFSSxAAEgkKBUxJR0hUEAESBwoDUkVEEAIqwAIKCExhbmd1YWdlEgsKB0VOR0xJU0gQABIKCgZGUkVOQ0gQARIKCgZHRVJNQU4QAhILCgdJVEFMSUFOEAMSDgoKUE9SVFVHVUVTRRAEEgsKB1NQQU5JU0gQBRILCgdTV0VESVNIEAYSCwoHRklOTklTSBAHEgoKBlBPTElTSBAIEgsKB1RVUktJU0gQCRILCgdTRVJCSUFOEAoSCwoHUlVTU0lBThALEgkKBURVVENIEAwSCQoFR1JFRUsQDRINCglOT1JXRUdJQU4QDhINCglTTE9WRU5JQU4QDxINCglVS1JBSU5JQU4QEBINCglCVUxHQVJJQU4QERIJCgVDWkVDSBASEgoKBkRBTklTSBATEhYKElNJTVBMSUZJRURfQ0hJTkVTRRAeEhcKE1RSQURJVElPTkFMX0NISU5FU0UQH0JkChRvcmcubWVzaHRhc3RpYy5wcm90b0IORGV2aWNlVUlQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.DeviceUIConfig
|
||||
*/
|
||||
export type DeviceUIConfig = Message<"meshtastic.DeviceUIConfig"> & {
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate saved files when we make incompatible changes.
|
||||
*
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* TFT display brightness 1..255
|
||||
*
|
||||
* @generated from field: uint32 screen_brightness = 2;
|
||||
*/
|
||||
screenBrightness: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Screen timeout 0..900
|
||||
*
|
||||
* @generated from field: uint32 screen_timeout = 3;
|
||||
*/
|
||||
screenTimeout: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Screen/Settings lock enabled
|
||||
*
|
||||
* @generated from field: bool screen_lock = 4;
|
||||
*/
|
||||
screenLock: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: bool settings_lock = 5;
|
||||
*/
|
||||
settingsLock: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 pin_code = 6;
|
||||
*/
|
||||
pinCode: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Color theme
|
||||
*
|
||||
* @generated from field: meshtastic.Theme theme = 7;
|
||||
*/
|
||||
theme: Theme;
|
||||
|
||||
/**
|
||||
*
|
||||
* Audible message, banner and ring tone
|
||||
*
|
||||
* @generated from field: bool alert_enabled = 8;
|
||||
*/
|
||||
alertEnabled: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: bool banner_enabled = 9;
|
||||
*/
|
||||
bannerEnabled: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 ring_tone_id = 10;
|
||||
*/
|
||||
ringToneId: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Localization
|
||||
*
|
||||
* @generated from field: meshtastic.Language language = 11;
|
||||
*/
|
||||
language: Language;
|
||||
|
||||
/**
|
||||
*
|
||||
* Node list filter
|
||||
*
|
||||
* @generated from field: meshtastic.NodeFilter node_filter = 12;
|
||||
*/
|
||||
nodeFilter?: NodeFilter | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Node list highlightening
|
||||
*
|
||||
* @generated from field: meshtastic.NodeHighlight node_highlight = 13;
|
||||
*/
|
||||
nodeHighlight?: NodeHighlight | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* 8 integers for screen calibration data
|
||||
*
|
||||
* @generated from field: bytes calibration_data = 14;
|
||||
*/
|
||||
calibrationData: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* Map related data
|
||||
*
|
||||
* @generated from field: meshtastic.Map map_data = 15;
|
||||
*/
|
||||
mapData?: Map | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Compass mode
|
||||
*
|
||||
* @generated from field: meshtastic.CompassMode compass_mode = 16;
|
||||
*/
|
||||
compassMode: CompassMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* RGB color for BaseUI
|
||||
* 0xRRGGBB format, e.g. 0xFF0000 for red
|
||||
*
|
||||
* @generated from field: uint32 screen_rgb_color = 17;
|
||||
*/
|
||||
screenRgbColor: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Clockface analog style
|
||||
* true for analog clockface, false for digital clockface
|
||||
*
|
||||
* @generated from field: bool is_clockface_analog = 18;
|
||||
*/
|
||||
isClockfaceAnalog: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* How the GPS coordinates are formatted on the OLED screen.
|
||||
*
|
||||
* @generated from field: meshtastic.DeviceUIConfig.GpsCoordinateFormat gps_format = 19;
|
||||
*/
|
||||
gpsFormat: DeviceUIConfig_GpsCoordinateFormat;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceUIConfig.
|
||||
* Use `create(DeviceUIConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceUIConfigSchema: GenMessage<DeviceUIConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* How the GPS coordinates are displayed on the OLED screen.
|
||||
*
|
||||
* @generated from enum meshtastic.DeviceUIConfig.GpsCoordinateFormat
|
||||
*/
|
||||
export enum DeviceUIConfig_GpsCoordinateFormat {
|
||||
/**
|
||||
*
|
||||
* GPS coordinates are displayed in the normal decimal degrees format:
|
||||
* DD.DDDDDD DDD.DDDDDD
|
||||
*
|
||||
* @generated from enum value: DEC = 0;
|
||||
*/
|
||||
DEC = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* GPS coordinates are displayed in the degrees minutes seconds format:
|
||||
* DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
|
||||
*
|
||||
* @generated from enum value: DMS = 1;
|
||||
*/
|
||||
DMS = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Universal Transverse Mercator format:
|
||||
* ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
|
||||
*
|
||||
* @generated from enum value: UTM = 2;
|
||||
*/
|
||||
UTM = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* Military Grid Reference System format:
|
||||
* ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
|
||||
* E is easting, N is northing
|
||||
*
|
||||
* @generated from enum value: MGRS = 3;
|
||||
*/
|
||||
MGRS = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* Open Location Code (aka Plus Codes).
|
||||
*
|
||||
* @generated from enum value: OLC = 4;
|
||||
*/
|
||||
OLC = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Ordnance Survey Grid Reference (the National Grid System of the UK).
|
||||
* Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
|
||||
* E is the easting, N is the northing
|
||||
*
|
||||
* @generated from enum value: OSGR = 5;
|
||||
*/
|
||||
OSGR = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Maidenhead Locator System
|
||||
* Described here: https://en.wikipedia.org/wiki/Maidenhead_Locator_System
|
||||
*
|
||||
* @generated from enum value: MLS = 6;
|
||||
*/
|
||||
MLS = 6,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.DeviceUIConfig.GpsCoordinateFormat.
|
||||
*/
|
||||
export const DeviceUIConfig_GpsCoordinateFormatSchema: GenEnum<DeviceUIConfig_GpsCoordinateFormat> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 0, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeFilter
|
||||
*/
|
||||
export type NodeFilter = Message<"meshtastic.NodeFilter"> & {
|
||||
/**
|
||||
*
|
||||
* Filter unknown nodes
|
||||
*
|
||||
* @generated from field: bool unknown_switch = 1;
|
||||
*/
|
||||
unknownSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter offline nodes
|
||||
*
|
||||
* @generated from field: bool offline_switch = 2;
|
||||
*/
|
||||
offlineSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter nodes w/o public key
|
||||
*
|
||||
* @generated from field: bool public_key_switch = 3;
|
||||
*/
|
||||
publicKeySwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter based on hops away
|
||||
*
|
||||
* @generated from field: int32 hops_away = 4;
|
||||
*/
|
||||
hopsAway: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter nodes w/o position
|
||||
*
|
||||
* @generated from field: bool position_switch = 5;
|
||||
*/
|
||||
positionSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter nodes by matching name string
|
||||
*
|
||||
* @generated from field: string node_name = 6;
|
||||
*/
|
||||
nodeName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter based on channel
|
||||
*
|
||||
* @generated from field: int32 channel = 7;
|
||||
*/
|
||||
channel: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeFilter.
|
||||
* Use `create(NodeFilterSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeFilterSchema: GenMessage<NodeFilter> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 1);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeHighlight
|
||||
*/
|
||||
export type NodeHighlight = Message<"meshtastic.NodeHighlight"> & {
|
||||
/**
|
||||
*
|
||||
* Hightlight nodes w/ active chat
|
||||
*
|
||||
* @generated from field: bool chat_switch = 1;
|
||||
*/
|
||||
chatSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes w/ position
|
||||
*
|
||||
* @generated from field: bool position_switch = 2;
|
||||
*/
|
||||
positionSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes w/ telemetry data
|
||||
*
|
||||
* @generated from field: bool telemetry_switch = 3;
|
||||
*/
|
||||
telemetrySwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes w/ iaq data
|
||||
*
|
||||
* @generated from field: bool iaq_switch = 4;
|
||||
*/
|
||||
iaqSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes by matching name string
|
||||
*
|
||||
* @generated from field: string node_name = 5;
|
||||
*/
|
||||
nodeName: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeHighlight.
|
||||
* Use `create(NodeHighlightSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeHighlightSchema: GenMessage<NodeHighlight> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 2);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.GeoPoint
|
||||
*/
|
||||
export type GeoPoint = Message<"meshtastic.GeoPoint"> & {
|
||||
/**
|
||||
*
|
||||
* Zoom level
|
||||
*
|
||||
* @generated from field: int32 zoom = 1;
|
||||
*/
|
||||
zoom: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Coordinate: latitude
|
||||
*
|
||||
* @generated from field: int32 latitude = 2;
|
||||
*/
|
||||
latitude: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Coordinate: longitude
|
||||
*
|
||||
* @generated from field: int32 longitude = 3;
|
||||
*/
|
||||
longitude: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.GeoPoint.
|
||||
* Use `create(GeoPointSchema)` to create a new message.
|
||||
*/
|
||||
export const GeoPointSchema: GenMessage<GeoPoint> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 3);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.Map
|
||||
*/
|
||||
export type Map = Message<"meshtastic.Map"> & {
|
||||
/**
|
||||
*
|
||||
* Home coordinates
|
||||
*
|
||||
* @generated from field: meshtastic.GeoPoint home = 1;
|
||||
*/
|
||||
home?: GeoPoint | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Map tile style
|
||||
*
|
||||
* @generated from field: string style = 2;
|
||||
*/
|
||||
style: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Map scroll follows GPS
|
||||
*
|
||||
* @generated from field: bool follow_gps = 3;
|
||||
*/
|
||||
followGps: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.Map.
|
||||
* Use `create(MapSchema)` to create a new message.
|
||||
*/
|
||||
export const MapSchema: GenMessage<Map> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 4);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.CompassMode
|
||||
*/
|
||||
export enum CompassMode {
|
||||
/**
|
||||
*
|
||||
* Compass with dynamic ring and heading
|
||||
*
|
||||
* @generated from enum value: DYNAMIC = 0;
|
||||
*/
|
||||
DYNAMIC = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Compass with fixed ring and heading
|
||||
*
|
||||
* @generated from enum value: FIXED_RING = 1;
|
||||
*/
|
||||
FIXED_RING = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Compass with heading and freeze option
|
||||
*
|
||||
* @generated from enum value: FREEZE_HEADING = 2;
|
||||
*/
|
||||
FREEZE_HEADING = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.CompassMode.
|
||||
*/
|
||||
export const CompassModeSchema: GenEnum<CompassMode> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.Theme
|
||||
*/
|
||||
export enum Theme {
|
||||
/**
|
||||
*
|
||||
* Dark
|
||||
*
|
||||
* @generated from enum value: DARK = 0;
|
||||
*/
|
||||
DARK = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Light
|
||||
*
|
||||
* @generated from enum value: LIGHT = 1;
|
||||
*/
|
||||
LIGHT = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Red
|
||||
*
|
||||
* @generated from enum value: RED = 2;
|
||||
*/
|
||||
RED = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.Theme.
|
||||
*/
|
||||
export const ThemeSchema: GenEnum<Theme> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* Localization
|
||||
*
|
||||
* @generated from enum meshtastic.Language
|
||||
*/
|
||||
export enum Language {
|
||||
/**
|
||||
*
|
||||
* English
|
||||
*
|
||||
* @generated from enum value: ENGLISH = 0;
|
||||
*/
|
||||
ENGLISH = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* French
|
||||
*
|
||||
* @generated from enum value: FRENCH = 1;
|
||||
*/
|
||||
FRENCH = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* German
|
||||
*
|
||||
* @generated from enum value: GERMAN = 2;
|
||||
*/
|
||||
GERMAN = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* Italian
|
||||
*
|
||||
* @generated from enum value: ITALIAN = 3;
|
||||
*/
|
||||
ITALIAN = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* Portuguese
|
||||
*
|
||||
* @generated from enum value: PORTUGUESE = 4;
|
||||
*/
|
||||
PORTUGUESE = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Spanish
|
||||
*
|
||||
* @generated from enum value: SPANISH = 5;
|
||||
*/
|
||||
SPANISH = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Swedish
|
||||
*
|
||||
* @generated from enum value: SWEDISH = 6;
|
||||
*/
|
||||
SWEDISH = 6,
|
||||
|
||||
/**
|
||||
*
|
||||
* Finnish
|
||||
*
|
||||
* @generated from enum value: FINNISH = 7;
|
||||
*/
|
||||
FINNISH = 7,
|
||||
|
||||
/**
|
||||
*
|
||||
* Polish
|
||||
*
|
||||
* @generated from enum value: POLISH = 8;
|
||||
*/
|
||||
POLISH = 8,
|
||||
|
||||
/**
|
||||
*
|
||||
* Turkish
|
||||
*
|
||||
* @generated from enum value: TURKISH = 9;
|
||||
*/
|
||||
TURKISH = 9,
|
||||
|
||||
/**
|
||||
*
|
||||
* Serbian
|
||||
*
|
||||
* @generated from enum value: SERBIAN = 10;
|
||||
*/
|
||||
SERBIAN = 10,
|
||||
|
||||
/**
|
||||
*
|
||||
* Russian
|
||||
*
|
||||
* @generated from enum value: RUSSIAN = 11;
|
||||
*/
|
||||
RUSSIAN = 11,
|
||||
|
||||
/**
|
||||
*
|
||||
* Dutch
|
||||
*
|
||||
* @generated from enum value: DUTCH = 12;
|
||||
*/
|
||||
DUTCH = 12,
|
||||
|
||||
/**
|
||||
*
|
||||
* Greek
|
||||
*
|
||||
* @generated from enum value: GREEK = 13;
|
||||
*/
|
||||
GREEK = 13,
|
||||
|
||||
/**
|
||||
*
|
||||
* Norwegian
|
||||
*
|
||||
* @generated from enum value: NORWEGIAN = 14;
|
||||
*/
|
||||
NORWEGIAN = 14,
|
||||
|
||||
/**
|
||||
*
|
||||
* Slovenian
|
||||
*
|
||||
* @generated from enum value: SLOVENIAN = 15;
|
||||
*/
|
||||
SLOVENIAN = 15,
|
||||
|
||||
/**
|
||||
*
|
||||
* Ukrainian
|
||||
*
|
||||
* @generated from enum value: UKRAINIAN = 16;
|
||||
*/
|
||||
UKRAINIAN = 16,
|
||||
|
||||
/**
|
||||
*
|
||||
* Bulgarian
|
||||
*
|
||||
* @generated from enum value: BULGARIAN = 17;
|
||||
*/
|
||||
BULGARIAN = 17,
|
||||
|
||||
/**
|
||||
*
|
||||
* Czech
|
||||
*
|
||||
* @generated from enum value: CZECH = 18;
|
||||
*/
|
||||
CZECH = 18,
|
||||
|
||||
/**
|
||||
*
|
||||
* Danish
|
||||
*
|
||||
* @generated from enum value: DANISH = 19;
|
||||
*/
|
||||
DANISH = 19,
|
||||
|
||||
/**
|
||||
*
|
||||
* Simplified Chinese (experimental)
|
||||
*
|
||||
* @generated from enum value: SIMPLIFIED_CHINESE = 30;
|
||||
*/
|
||||
SIMPLIFIED_CHINESE = 30,
|
||||
|
||||
/**
|
||||
*
|
||||
* Traditional Chinese (experimental)
|
||||
*
|
||||
* @generated from enum value: TRADITIONAL_CHINESE = 31;
|
||||
*/
|
||||
TRADITIONAL_CHINESE = 31,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.Language.
|
||||
*/
|
||||
export const LanguageSchema: GenEnum<Language> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 2);
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/deviceonly_legacy.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { PositionLite, UserLite } from "./deviceonly_pb";
|
||||
import { file_meshtastic_deviceonly } from "./deviceonly_pb";
|
||||
import type { DeviceMetrics } from "./telemetry_pb";
|
||||
import { file_meshtastic_telemetry } from "./telemetry_pb";
|
||||
import { file_nanopb } from "../nanopb_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/deviceonly_legacy.proto.
|
||||
*/
|
||||
export const file_meshtastic_deviceonly_legacy: GenFile = /*@__PURE__*/
|
||||
fileDesc("CiJtZXNodGFzdGljL2RldmljZW9ubHlfbGVnYWN5LnByb3RvEgptZXNodGFzdGljItwCChNOb2RlSW5mb0xpdGVfTGVnYWN5EgsKA251bRgBIAEoDRIiCgR1c2VyGAIgASgLMhQubWVzaHRhc3RpYy5Vc2VyTGl0ZRIqCghwb3NpdGlvbhgDIAEoCzIYLm1lc2h0YXN0aWMuUG9zaXRpb25MaXRlEgsKA3NuchgEIAEoAhISCgpsYXN0X2hlYXJkGAUgASgHEjEKDmRldmljZV9tZXRyaWNzGAYgASgLMhkubWVzaHRhc3RpYy5EZXZpY2VNZXRyaWNzEg8KB2NoYW5uZWwYByABKA0SEAoIdmlhX21xdHQYCCABKAgSFgoJaG9wc19hd2F5GAkgASgNSACIAQESEwoLaXNfZmF2b3JpdGUYCiABKAgSEgoKaXNfaWdub3JlZBgLIAEoCBIQCghuZXh0X2hvcBgMIAEoDRIQCghiaXRmaWVsZBgNIAEoDUIMCgpfaG9wc19hd2F5IokBChNOb2RlRGF0YWJhc2VfTGVnYWN5Eg8KB3ZlcnNpb24YASABKA0SYQoFbm9kZXMYAiADKAsyHy5tZXNodGFzdGljLk5vZGVJbmZvTGl0ZV9MZWdhY3lCMZI/LpIBK3N0ZDo6dmVjdG9yPG1lc2h0YXN0aWNfTm9kZUluZm9MaXRlX0xlZ2FjeT5CdAoUb3JnLm1lc2h0YXN0aWMucHJvdG9CEERldmljZU9ubHlMZWdhY3laImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAJI/C8IBCDx2ZWN0b3I+YgZwcm90bzM", [file_meshtastic_deviceonly, file_meshtastic_telemetry, file_nanopb]);
|
||||
|
||||
/**
|
||||
*
|
||||
* Legacy NodeInfoLite descriptor used only to decode pre-split
|
||||
* /prefs/nodes.proto saves during the v24 -> v25 migration boot.
|
||||
* This preserves the original NodeInfoLite-compatible field numbers needed
|
||||
* to parse old wire bytes cleanly, including user (2), position (3),
|
||||
* device_metrics (6), and the legacy-only compatibility fields via_mqtt (8),
|
||||
* is_favorite (10), and is_ignored (11). Steady-state code does not use
|
||||
* this struct; it is dropped after migration completes. This file should be
|
||||
* removed once DEVICESTATE_MIN_VER advances past 24.
|
||||
*
|
||||
* @generated from message meshtastic.NodeInfoLite_Legacy
|
||||
*/
|
||||
export type NodeInfoLite_Legacy = Message<"meshtastic.NodeInfoLite_Legacy"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.UserLite user = 2;
|
||||
*/
|
||||
user?: UserLite | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.PositionLite position = 3;
|
||||
*/
|
||||
position?: PositionLite | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: float snr = 4;
|
||||
*/
|
||||
snr: number;
|
||||
|
||||
/**
|
||||
* @generated from field: fixed32 last_heard = 5;
|
||||
*/
|
||||
lastHeard: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.DeviceMetrics device_metrics = 6;
|
||||
*/
|
||||
deviceMetrics?: DeviceMetrics | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 channel = 7;
|
||||
*/
|
||||
channel: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bool via_mqtt = 8;
|
||||
*/
|
||||
viaMqtt: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: optional uint32 hops_away = 9;
|
||||
*/
|
||||
hopsAway?: number | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: bool is_favorite = 10;
|
||||
*/
|
||||
isFavorite: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: bool is_ignored = 11;
|
||||
*/
|
||||
isIgnored: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 next_hop = 12;
|
||||
*/
|
||||
nextHop: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 bitfield = 13;
|
||||
*/
|
||||
bitfield: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeInfoLite_Legacy.
|
||||
* Use `create(NodeInfoLite_LegacySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeInfoLite_LegacySchema: GenMessage<NodeInfoLite_Legacy> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly_legacy, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* Legacy NodeDatabase shape: one repeated array of fat NodeInfoLite_Legacy
|
||||
* with no satellite position/telemetry arrays.
|
||||
*
|
||||
* @generated from message meshtastic.NodeDatabase_Legacy
|
||||
*/
|
||||
export type NodeDatabase_Legacy = Message<"meshtastic.NodeDatabase_Legacy"> & {
|
||||
/**
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeInfoLite_Legacy nodes = 2;
|
||||
*/
|
||||
nodes: NodeInfoLite_Legacy[];
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeDatabase_Legacy.
|
||||
* Use `create(NodeDatabase_LegacySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeDatabase_LegacySchema: GenMessage<NodeDatabase_Legacy> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly_legacy, 1);
|
||||
|
||||
@@ -0,0 +1,636 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/deviceonly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Channel } from "./channel_pb";
|
||||
import { file_meshtastic_channel } from "./channel_pb";
|
||||
import type { Config_DeviceConfig_Role } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { LocalConfig, LocalModuleConfig } from "./localonly_pb";
|
||||
import { file_meshtastic_localonly } from "./localonly_pb";
|
||||
import type { HardwareModel, MeshPacket, MyNodeInfo, NodeRemoteHardwarePin, Position_LocSource, StatusMessage, User } from "./mesh_pb";
|
||||
import { file_meshtastic_mesh } from "./mesh_pb";
|
||||
import type { DeviceMetrics, EnvironmentMetrics } from "./telemetry_pb";
|
||||
import { file_meshtastic_telemetry } from "./telemetry_pb";
|
||||
import { file_nanopb } from "../nanopb_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/deviceonly.proto.
|
||||
*/
|
||||
export const file_meshtastic_deviceonly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChttZXNodGFzdGljL2RldmljZW9ubHkucHJvdG8SCm1lc2h0YXN0aWMiqAEKDFBvc2l0aW9uTGl0ZRISCgpsYXRpdHVkZV9pGAEgASgPEhMKC2xvbmdpdHVkZV9pGAIgASgPEhAKCGFsdGl0dWRlGAMgASgFEgwKBHRpbWUYBCABKAcSNwoPbG9jYXRpb25fc291cmNlGAUgASgOMh4ubWVzaHRhc3RpYy5Qb3NpdGlvbi5Mb2NTb3VyY2USFgoOcHJlY2lzaW9uX2JpdHMYBiABKA0iggIKCFVzZXJMaXRlEhMKB21hY2FkZHIYASABKAxCAhgBEhEKCWxvbmdfbmFtZRgCIAEoCRISCgpzaG9ydF9uYW1lGAMgASgJEisKCGh3X21vZGVsGAQgASgOMhkubWVzaHRhc3RpYy5IYXJkd2FyZU1vZGVsEhMKC2lzX2xpY2Vuc2VkGAUgASgIEjIKBHJvbGUYBiABKA4yJC5tZXNodGFzdGljLkNvbmZpZy5EZXZpY2VDb25maWcuUm9sZRISCgpwdWJsaWNfa2V5GAcgASgMEhwKD2lzX3VubWVzc2FnYWJsZRgJIAEoCEgAiAEBQhIKEF9pc191bm1lc3NhZ2FibGUiqgMKDE5vZGVJbmZvTGl0ZRILCgNudW0YASABKA0SCwoDc25yGAQgASgCEhIKCmxhc3RfaGVhcmQYBSABKAcSDwoHY2hhbm5lbBgHIAEoDRIWCglob3BzX2F3YXkYCSABKA1IAIgBARIQCghuZXh0X2hvcBgMIAEoDRIQCghiaXRmaWVsZBgNIAEoDRIRCglsb25nX25hbWUYDiABKAkSEgoKc2hvcnRfbmFtZRgPIAEoCRIrCghod19tb2RlbBgQIAEoDjIZLm1lc2h0YXN0aWMuSGFyZHdhcmVNb2RlbBIyCgRyb2xlGBEgASgOMiQubWVzaHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnLlJvbGUSEgoKcHVibGljX2tleRgSIAEoDBIOCgZzbnJfcTQYEyABKBFCDAoKX2hvcHNfYXdheUoECAIQA0oECAMQBEoECAYQB0oECAgQCUoECAoQC0oECAsQDFIEdXNlclIIcG9zaXRpb25SDmRldmljZV9tZXRyaWNzUgh2aWFfbXF0dFILaXNfZmF2b3JpdGVSCmlzX2lnbm9yZWQi6wIKC0RldmljZVN0YXRlEicKB215X25vZGUYAiABKAsyFi5tZXNodGFzdGljLk15Tm9kZUluZm8SHwoFb3duZXIYAyABKAsyEC5tZXNodGFzdGljLlVzZXISLQoNcmVjZWl2ZV9xdWV1ZRgFIAMoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBIPCgd2ZXJzaW9uGAggASgNEi8KD3J4X3RleHRfbWVzc2FnZRgHIAEoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBITCgdub19zYXZlGAkgASgIQgIYARIZCg1kaWRfZ3BzX3Jlc2V0GAsgASgIQgIYARIrCgtyeF93YXlwb2ludBgMIAEoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBJEChlub2RlX3JlbW90ZV9oYXJkd2FyZV9waW5zGA0gAygLMiEubWVzaHRhc3RpYy5Ob2RlUmVtb3RlSGFyZHdhcmVQaW4iTAoRTm9kZVBvc2l0aW9uRW50cnkSCwoDbnVtGAEgASgNEioKCHBvc2l0aW9uGAIgASgLMhgubWVzaHRhc3RpYy5Qb3NpdGlvbkxpdGUiVAoSTm9kZVRlbGVtZXRyeUVudHJ5EgsKA251bRgBIAEoDRIxCg5kZXZpY2VfbWV0cmljcxgCIAEoCzIZLm1lc2h0YXN0aWMuRGV2aWNlTWV0cmljcyJgChROb2RlRW52aXJvbm1lbnRFbnRyeRILCgNudW0YASABKA0SOwoTZW52aXJvbm1lbnRfbWV0cmljcxgCIAEoCzIeLm1lc2h0YXN0aWMuRW52aXJvbm1lbnRNZXRyaWNzIkkKD05vZGVTdGF0dXNFbnRyeRILCgNudW0YASABKA0SKQoGc3RhdHVzGAIgASgLMhkubWVzaHRhc3RpYy5TdGF0dXNNZXNzYWdlIoMECgxOb2RlRGF0YWJhc2USDwoHdmVyc2lvbhgBIAEoDRJTCgVub2RlcxgCIAMoCzIYLm1lc2h0YXN0aWMuTm9kZUluZm9MaXRlQiqSPyeSASRzdGQ6OnZlY3RvcjxtZXNodGFzdGljX05vZGVJbmZvTGl0ZT4SYQoJcG9zaXRpb25zGAMgAygLMh0ubWVzaHRhc3RpYy5Ob2RlUG9zaXRpb25FbnRyeUIvkj8skgEpc3RkOjp2ZWN0b3I8bWVzaHRhc3RpY19Ob2RlUG9zaXRpb25FbnRyeT4SYwoJdGVsZW1ldHJ5GAQgAygLMh4ubWVzaHRhc3RpYy5Ob2RlVGVsZW1ldHJ5RW50cnlCMJI/LZIBKnN0ZDo6dmVjdG9yPG1lc2h0YXN0aWNfTm9kZVRlbGVtZXRyeUVudHJ5PhJaCgZzdGF0dXMYBSADKAsyGy5tZXNodGFzdGljLk5vZGVTdGF0dXNFbnRyeUItkj8qkgEnc3RkOjp2ZWN0b3I8bWVzaHRhc3RpY19Ob2RlU3RhdHVzRW50cnk+EmkKC2Vudmlyb25tZW50GAYgAygLMiAubWVzaHRhc3RpYy5Ob2RlRW52aXJvbm1lbnRFbnRyeUIykj8vkgEsc3RkOjp2ZWN0b3I8bWVzaHRhc3RpY19Ob2RlRW52aXJvbm1lbnRFbnRyeT4iRQoLQ2hhbm5lbEZpbGUSJQoIY2hhbm5lbHMYASADKAsyEy5tZXNodGFzdGljLkNoYW5uZWwSDwoHdmVyc2lvbhgCIAEoDSLiAQoRQmFja3VwUHJlZmVyZW5jZXMSDwoHdmVyc2lvbhgBIAEoDRIRCgl0aW1lc3RhbXAYAiABKAcSJwoGY29uZmlnGAMgASgLMhcubWVzaHRhc3RpYy5Mb2NhbENvbmZpZxI0Cg1tb2R1bGVfY29uZmlnGAQgASgLMh0ubWVzaHRhc3RpYy5Mb2NhbE1vZHVsZUNvbmZpZxIpCghjaGFubmVscxgFIAEoCzIXLm1lc2h0YXN0aWMuQ2hhbm5lbEZpbGUSHwoFb3duZXIYBiABKAsyEC5tZXNodGFzdGljLlVzZXJCbgoUb3JnLm1lc2h0YXN0aWMucHJvdG9CCkRldmljZU9ubHlaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAJI/C8IBCDx2ZWN0b3I+YgZwcm90bzM", [file_meshtastic_channel, file_meshtastic_config, file_meshtastic_localonly, file_meshtastic_mesh, file_meshtastic_telemetry, file_nanopb]);
|
||||
|
||||
/**
|
||||
*
|
||||
* Position with static location information only for NodeDBLite
|
||||
*
|
||||
* @generated from message meshtastic.PositionLite
|
||||
*/
|
||||
export type PositionLite = Message<"meshtastic.PositionLite"> & {
|
||||
/**
|
||||
*
|
||||
* The new preferred location encoding, multiply by 1e-7 to get degrees
|
||||
* in floating point
|
||||
*
|
||||
* @generated from field: sfixed32 latitude_i = 1;
|
||||
*/
|
||||
latitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: sfixed32 longitude_i = 2;
|
||||
*/
|
||||
longitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* In meters above MSL (but see issue #359)
|
||||
*
|
||||
* @generated from field: int32 altitude = 3;
|
||||
*/
|
||||
altitude: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* This is usually not sent over the mesh (to save space), but it is sent
|
||||
* from the phone so that the local device can set its RTC If it is sent over
|
||||
* the mesh (because there are devices on the mesh without GPS), it will only
|
||||
* be sent by devices which has a hardware GPS clock.
|
||||
* seconds since 1970
|
||||
*
|
||||
* @generated from field: fixed32 time = 4;
|
||||
*/
|
||||
time: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.Position.LocSource location_source = 5;
|
||||
*/
|
||||
locationSource: Position_LocSource;
|
||||
|
||||
/**
|
||||
*
|
||||
* Indicates the bits of precision set by the sending node
|
||||
*
|
||||
* @generated from field: uint32 precision_bits = 6;
|
||||
*/
|
||||
precisionBits: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.PositionLite.
|
||||
* Use `create(PositionLiteSchema)` to create a new message.
|
||||
*/
|
||||
export const PositionLiteSchema: GenMessage<PositionLite> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.UserLite
|
||||
*/
|
||||
export type UserLite = Message<"meshtastic.UserLite"> & {
|
||||
/**
|
||||
*
|
||||
* This is the addr of the radio.
|
||||
*
|
||||
* @generated from field: bytes macaddr = 1 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
macaddr: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* A full name for this user, i.e. "Kevin Hester"
|
||||
*
|
||||
* @generated from field: string long_name = 2;
|
||||
*/
|
||||
longName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* A VERY short name, ideally two characters.
|
||||
* Suitable for a tiny OLED screen
|
||||
*
|
||||
* @generated from field: string short_name = 3;
|
||||
*/
|
||||
shortName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* TBEAM, HELTEC, etc...
|
||||
* Starting in 1.2.11 moved to hw_model enum in the NodeInfo object.
|
||||
* Apps will still need the string here for older builds
|
||||
* (so OTA update can find the right image), but if the enum is available it will be used instead.
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareModel hw_model = 4;
|
||||
*/
|
||||
hwModel: HardwareModel;
|
||||
|
||||
/**
|
||||
*
|
||||
* In some regions Ham radio operators have different bandwidth limitations than others.
|
||||
* If this user is a licensed operator, set this flag.
|
||||
* Also, "long_name" should be their licence number.
|
||||
*
|
||||
* @generated from field: bool is_licensed = 5;
|
||||
*/
|
||||
isLicensed: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Indicates that the user's role in the mesh
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig.Role role = 6;
|
||||
*/
|
||||
role: Config_DeviceConfig_Role;
|
||||
|
||||
/**
|
||||
*
|
||||
* The public key of the user's device.
|
||||
* This is sent out to other nodes on the mesh to allow them to compute a shared secret key.
|
||||
*
|
||||
* @generated from field: bytes public_key = 7;
|
||||
*/
|
||||
publicKey: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether or not the node can be messaged
|
||||
*
|
||||
* @generated from field: optional bool is_unmessagable = 9;
|
||||
*/
|
||||
isUnmessagable?: boolean | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.UserLite.
|
||||
* Use `create(UserLiteSchema)` to create a new message.
|
||||
*/
|
||||
export const UserLiteSchema: GenMessage<UserLite> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 1);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeInfoLite
|
||||
*/
|
||||
export type NodeInfoLite = Message<"meshtastic.NodeInfoLite"> & {
|
||||
/**
|
||||
*
|
||||
* The node number
|
||||
*
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* In-memory SNR of the last received message in dB. Not serialised directly:
|
||||
* always zeroed before encode; persisted as snr_q4 = 19 below.
|
||||
*
|
||||
* @generated from field: float snr = 4;
|
||||
*/
|
||||
snr: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Set to indicate the last time we received a packet from this node
|
||||
*
|
||||
* @generated from field: fixed32 last_heard = 5;
|
||||
*/
|
||||
lastHeard: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* local channel index we heard that node on. Only populated if its not the default channel.
|
||||
*
|
||||
* @generated from field: uint32 channel = 7;
|
||||
*/
|
||||
channel: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of hops away from us this node is (0 if direct neighbor)
|
||||
*
|
||||
* @generated from field: optional uint32 hops_away = 9;
|
||||
*/
|
||||
hopsAway?: number | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Last byte of the node number of the node that should be used as the next hop to reach this node.
|
||||
*
|
||||
* @generated from field: uint32 next_hop = 12;
|
||||
*/
|
||||
nextHop: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Bitfield for storing booleans. See NODEINFO_BITFIELD_* in src/mesh/NodeDB.h.
|
||||
*
|
||||
* @generated from field: uint32 bitfield = 13;
|
||||
*/
|
||||
bitfield: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* A full name for this user, i.e. "Kevin Hester".
|
||||
*
|
||||
* @generated from field: string long_name = 14;
|
||||
*/
|
||||
longName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* A VERY short name, ideally two characters or an emoji.
|
||||
* Suitable for a tiny OLED screen.
|
||||
*
|
||||
* @generated from field: string short_name = 15;
|
||||
*/
|
||||
shortName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Hardware model the user's device is running.
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareModel hw_model = 16;
|
||||
*/
|
||||
hwModel: HardwareModel;
|
||||
|
||||
/**
|
||||
*
|
||||
* The user's role in the mesh.
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig.Role role = 17;
|
||||
*/
|
||||
role: Config_DeviceConfig_Role;
|
||||
|
||||
/**
|
||||
*
|
||||
* The public key of the user's device, for PKI-based encrypted DMs.
|
||||
*
|
||||
* @generated from field: bytes public_key = 18;
|
||||
*/
|
||||
publicKey: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* Q4-encoded SNR: dB × 4, sint32 zigzag. Matches RouteDiscovery convention.
|
||||
* Encode: snr_q4 = (int32_t)(snr * 4.0f). Decode: snr = snr_q4 / 4.0f.
|
||||
* float snr is always zeroed on disk; this field carries all persisted SNR.
|
||||
*
|
||||
* @generated from field: sint32 snr_q4 = 19;
|
||||
*/
|
||||
snrQ4: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeInfoLite.
|
||||
* Use `create(NodeInfoLiteSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeInfoLiteSchema: GenMessage<NodeInfoLite> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* This message is never sent over the wire, but it is used for serializing DB
|
||||
* state to flash in the device code
|
||||
* FIXME, since we write this each time we enter deep sleep (and have infinite
|
||||
* flash) it would be better to use some sort of append only data structure for
|
||||
* the receive queue and use the preferences store for the other stuff
|
||||
*
|
||||
* @generated from message meshtastic.DeviceState
|
||||
*/
|
||||
export type DeviceState = Message<"meshtastic.DeviceState"> & {
|
||||
/**
|
||||
*
|
||||
* Read only settings/info about this node
|
||||
*
|
||||
* @generated from field: meshtastic.MyNodeInfo my_node = 2;
|
||||
*/
|
||||
myNode?: MyNodeInfo | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* My owner info
|
||||
*
|
||||
* @generated from field: meshtastic.User owner = 3;
|
||||
*/
|
||||
owner?: User | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Received packets saved for delivery to the phone
|
||||
*
|
||||
* @generated from field: repeated meshtastic.MeshPacket receive_queue = 5;
|
||||
*/
|
||||
receiveQueue: MeshPacket[];
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 8;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* We keep the last received text message (only) stored in the device flash,
|
||||
* so we can show it on the screen.
|
||||
* Might be null
|
||||
*
|
||||
* @generated from field: meshtastic.MeshPacket rx_text_message = 7;
|
||||
*/
|
||||
rxTextMessage?: MeshPacket | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Used only during development.
|
||||
* Indicates developer is testing and changes should never be saved to flash.
|
||||
* Deprecated in 2.3.1
|
||||
*
|
||||
* @generated from field: bool no_save = 9 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
noSave: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Previously used to manage GPS factory resets.
|
||||
* Deprecated in 2.5.23
|
||||
*
|
||||
* @generated from field: bool did_gps_reset = 11 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
didGpsReset: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* We keep the last received waypoint stored in the device flash,
|
||||
* so we can show it on the screen.
|
||||
* Might be null
|
||||
*
|
||||
* @generated from field: meshtastic.MeshPacket rx_waypoint = 12;
|
||||
*/
|
||||
rxWaypoint?: MeshPacket | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The mesh's nodes with their available gpio pins for RemoteHardware module
|
||||
*
|
||||
* @generated from field: repeated meshtastic.NodeRemoteHardwarePin node_remote_hardware_pins = 13;
|
||||
*/
|
||||
nodeRemoteHardwarePins: NodeRemoteHardwarePin[];
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceState.
|
||||
* Use `create(DeviceStateSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceStateSchema: GenMessage<DeviceState> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 3);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodePositionEntry
|
||||
*/
|
||||
export type NodePositionEntry = Message<"meshtastic.NodePositionEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.PositionLite position = 2;
|
||||
*/
|
||||
position?: PositionLite | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodePositionEntry.
|
||||
* Use `create(NodePositionEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodePositionEntrySchema: GenMessage<NodePositionEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 4);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeTelemetryEntry
|
||||
*/
|
||||
export type NodeTelemetryEntry = Message<"meshtastic.NodeTelemetryEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.DeviceMetrics device_metrics = 2;
|
||||
*/
|
||||
deviceMetrics?: DeviceMetrics | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeTelemetryEntry.
|
||||
* Use `create(NodeTelemetryEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeTelemetryEntrySchema: GenMessage<NodeTelemetryEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 5);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeEnvironmentEntry
|
||||
*/
|
||||
export type NodeEnvironmentEntry = Message<"meshtastic.NodeEnvironmentEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.EnvironmentMetrics environment_metrics = 2;
|
||||
*/
|
||||
environmentMetrics?: EnvironmentMetrics | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeEnvironmentEntry.
|
||||
* Use `create(NodeEnvironmentEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeEnvironmentEntrySchema: GenMessage<NodeEnvironmentEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 6);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeStatusEntry
|
||||
*/
|
||||
export type NodeStatusEntry = Message<"meshtastic.NodeStatusEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.StatusMessage status = 2;
|
||||
*/
|
||||
status?: StatusMessage | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeStatusEntry.
|
||||
* Use `create(NodeStatusEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeStatusEntrySchema: GenMessage<NodeStatusEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 7);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeDatabase
|
||||
*/
|
||||
export type NodeDatabase = Message<"meshtastic.NodeDatabase"> & {
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* New lite version of NodeDB to decrease memory footprint
|
||||
*
|
||||
* @generated from field: repeated meshtastic.NodeInfoLite nodes = 2;
|
||||
*/
|
||||
nodes: NodeInfoLite[];
|
||||
|
||||
/**
|
||||
* Per-NodeNum satellite arrays. Constrained platforms (e.g. STM32WL) omit
|
||||
* these via MESHTASTIC_EXCLUDE_*DB build flags.
|
||||
*
|
||||
* @generated from field: repeated meshtastic.NodePositionEntry positions = 3;
|
||||
*/
|
||||
positions: NodePositionEntry[];
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeTelemetryEntry telemetry = 4;
|
||||
*/
|
||||
telemetry: NodeTelemetryEntry[];
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeStatusEntry status = 5;
|
||||
*/
|
||||
status: NodeStatusEntry[];
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeEnvironmentEntry environment = 6;
|
||||
*/
|
||||
environment: NodeEnvironmentEntry[];
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeDatabase.
|
||||
* Use `create(NodeDatabaseSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeDatabaseSchema: GenMessage<NodeDatabase> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 8);
|
||||
|
||||
/**
|
||||
*
|
||||
* The on-disk saved channels
|
||||
*
|
||||
* @generated from message meshtastic.ChannelFile
|
||||
*/
|
||||
export type ChannelFile = Message<"meshtastic.ChannelFile"> & {
|
||||
/**
|
||||
*
|
||||
* The channels our node knows about
|
||||
*
|
||||
* @generated from field: repeated meshtastic.Channel channels = 1;
|
||||
*/
|
||||
channels: Channel[];
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 2;
|
||||
*/
|
||||
version: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ChannelFile.
|
||||
* Use `create(ChannelFileSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelFileSchema: GenMessage<ChannelFile> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 9);
|
||||
|
||||
/**
|
||||
*
|
||||
* The on-disk backup of the node's preferences
|
||||
*
|
||||
* @generated from message meshtastic.BackupPreferences
|
||||
*/
|
||||
export type BackupPreferences = Message<"meshtastic.BackupPreferences"> & {
|
||||
/**
|
||||
*
|
||||
* The version of the backup
|
||||
*
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The timestamp of the backup (if node has time)
|
||||
*
|
||||
* @generated from field: fixed32 timestamp = 2;
|
||||
*/
|
||||
timestamp: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's configuration
|
||||
*
|
||||
* @generated from field: meshtastic.LocalConfig config = 3;
|
||||
*/
|
||||
config?: LocalConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's module configuration
|
||||
*
|
||||
* @generated from field: meshtastic.LocalModuleConfig module_config = 4;
|
||||
*/
|
||||
moduleConfig?: LocalModuleConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's channels
|
||||
*
|
||||
* @generated from field: meshtastic.ChannelFile channels = 5;
|
||||
*/
|
||||
channels?: ChannelFile | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's user (owner) information
|
||||
*
|
||||
* @generated from field: meshtastic.User owner = 6;
|
||||
*/
|
||||
owner?: User | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.BackupPreferences.
|
||||
* Use `create(BackupPreferencesSchema)` to create a new message.
|
||||
*/
|
||||
export const BackupPreferencesSchema: GenMessage<BackupPreferences> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 10);
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/interdevice.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/interdevice.proto.
|
||||
*/
|
||||
export const file_meshtastic_interdevice: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChxtZXNodGFzdGljL2ludGVyZGV2aWNlLnByb3RvEgptZXNodGFzdGljImoKClNlbnNvckRhdGESJQoEdHlwZRgBIAEoDjIXLm1lc2h0YXN0aWMuTWVzc2FnZVR5cGUSFQoLZmxvYXRfdmFsdWUYAiABKAJIABIWCgx1aW50MzJfdmFsdWUYAyABKA1IAEIGCgRkYXRhIlYKEkludGVyZGV2aWNlTWVzc2FnZRIOCgRubWVhGAEgASgJSAASKAoGc2Vuc29yGAIgASgLMhYubWVzaHRhc3RpYy5TZW5zb3JEYXRhSABCBgoEZGF0YSrVAQoLTWVzc2FnZVR5cGUSBwoDQUNLEAASFQoQQ09MTEVDVF9JTlRFUlZBTBCgARIMCgdCRUVQX09OEKEBEg0KCEJFRVBfT0ZGEKIBEg0KCFNIVVRET1dOEKMBEg0KCFBPV0VSX09OEKQBEg8KClNDRDQxX1RFTVAQsAESEwoOU0NENDFfSFVNSURJVFkQsQESDgoJU0NENDFfQ08yELIBEg8KCkFIVDIwX1RFTVAQswESEwoOQUhUMjBfSFVNSURJVFkQtAESDwoKVFZPQ19JTkRFWBC1AUJnChRvcmcubWVzaHRhc3RpYy5wcm90b0IRSW50ZXJkZXZpY2VQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.SensorData
|
||||
*/
|
||||
export type SensorData = Message<"meshtastic.SensorData"> & {
|
||||
/**
|
||||
* The message type
|
||||
*
|
||||
* @generated from field: meshtastic.MessageType type = 1;
|
||||
*/
|
||||
type: MessageType;
|
||||
|
||||
/**
|
||||
* The sensor data, either as a float or an uint32
|
||||
*
|
||||
* @generated from oneof meshtastic.SensorData.data
|
||||
*/
|
||||
data: {
|
||||
/**
|
||||
* @generated from field: float float_value = 2;
|
||||
*/
|
||||
value: number;
|
||||
case: "floatValue";
|
||||
} | {
|
||||
/**
|
||||
* @generated from field: uint32 uint32_value = 3;
|
||||
*/
|
||||
value: number;
|
||||
case: "uint32Value";
|
||||
} | { case: undefined; value?: undefined };
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SensorData.
|
||||
* Use `create(SensorDataSchema)` to create a new message.
|
||||
*/
|
||||
export const SensorDataSchema: GenMessage<SensorData> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_interdevice, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.InterdeviceMessage
|
||||
*/
|
||||
export type InterdeviceMessage = Message<"meshtastic.InterdeviceMessage"> & {
|
||||
/**
|
||||
* The message data
|
||||
*
|
||||
* @generated from oneof meshtastic.InterdeviceMessage.data
|
||||
*/
|
||||
data: {
|
||||
/**
|
||||
* @generated from field: string nmea = 1;
|
||||
*/
|
||||
value: string;
|
||||
case: "nmea";
|
||||
} | {
|
||||
/**
|
||||
* @generated from field: meshtastic.SensorData sensor = 2;
|
||||
*/
|
||||
value: SensorData;
|
||||
case: "sensor";
|
||||
} | { case: undefined; value?: undefined };
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.InterdeviceMessage.
|
||||
* Use `create(InterdeviceMessageSchema)` to create a new message.
|
||||
*/
|
||||
export const InterdeviceMessageSchema: GenMessage<InterdeviceMessage> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_interdevice, 1);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.MessageType
|
||||
*/
|
||||
export enum MessageType {
|
||||
/**
|
||||
* @generated from enum value: ACK = 0;
|
||||
*/
|
||||
ACK = 0,
|
||||
|
||||
/**
|
||||
* in ms
|
||||
*
|
||||
* @generated from enum value: COLLECT_INTERVAL = 160;
|
||||
*/
|
||||
COLLECT_INTERVAL = 160,
|
||||
|
||||
/**
|
||||
* duration ms
|
||||
*
|
||||
* @generated from enum value: BEEP_ON = 161;
|
||||
*/
|
||||
BEEP_ON = 161,
|
||||
|
||||
/**
|
||||
* cancel prematurely
|
||||
*
|
||||
* @generated from enum value: BEEP_OFF = 162;
|
||||
*/
|
||||
BEEP_OFF = 162,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SHUTDOWN = 163;
|
||||
*/
|
||||
SHUTDOWN = 163,
|
||||
|
||||
/**
|
||||
* @generated from enum value: POWER_ON = 164;
|
||||
*/
|
||||
POWER_ON = 164,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SCD41_TEMP = 176;
|
||||
*/
|
||||
SCD41_TEMP = 176,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SCD41_HUMIDITY = 177;
|
||||
*/
|
||||
SCD41_HUMIDITY = 177,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SCD41_CO2 = 178;
|
||||
*/
|
||||
SCD41_CO2 = 178,
|
||||
|
||||
/**
|
||||
* @generated from enum value: AHT20_TEMP = 179;
|
||||
*/
|
||||
AHT20_TEMP = 179,
|
||||
|
||||
/**
|
||||
* @generated from enum value: AHT20_HUMIDITY = 180;
|
||||
*/
|
||||
AHT20_HUMIDITY = 180,
|
||||
|
||||
/**
|
||||
* @generated from enum value: TVOC_INDEX = 181;
|
||||
*/
|
||||
TVOC_INDEX = 181,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.MessageType.
|
||||
*/
|
||||
export const MessageTypeSchema: GenEnum<MessageType> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_interdevice, 0);
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/localonly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Config_BluetoothConfig, Config_DeviceConfig, Config_DisplayConfig, Config_LoRaConfig, Config_NetworkConfig, Config_PositionConfig, Config_PowerConfig, Config_SecurityConfig } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { ModuleConfig_AmbientLightingConfig, ModuleConfig_AudioConfig, ModuleConfig_CannedMessageConfig, ModuleConfig_DetectionSensorConfig, ModuleConfig_ExternalNotificationConfig, ModuleConfig_MQTTConfig, ModuleConfig_NeighborInfoConfig, ModuleConfig_PaxcounterConfig, ModuleConfig_RangeTestConfig, ModuleConfig_RemoteHardwareConfig, ModuleConfig_SerialConfig, ModuleConfig_StatusMessageConfig, ModuleConfig_StoreForwardConfig, ModuleConfig_TAKConfig, ModuleConfig_TelemetryConfig, ModuleConfig_TrafficManagementConfig } from "./module_config_pb";
|
||||
import { file_meshtastic_module_config } from "./module_config_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/localonly.proto.
|
||||
*/
|
||||
export const file_meshtastic_localonly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChptZXNodGFzdGljL2xvY2Fsb25seS5wcm90bxIKbWVzaHRhc3RpYyKyAwoLTG9jYWxDb25maWcSLwoGZGV2aWNlGAEgASgLMh8ubWVzaHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnEjMKCHBvc2l0aW9uGAIgASgLMiEubWVzaHRhc3RpYy5Db25maWcuUG9zaXRpb25Db25maWcSLQoFcG93ZXIYAyABKAsyHi5tZXNodGFzdGljLkNvbmZpZy5Qb3dlckNvbmZpZxIxCgduZXR3b3JrGAQgASgLMiAubWVzaHRhc3RpYy5Db25maWcuTmV0d29ya0NvbmZpZxIxCgdkaXNwbGF5GAUgASgLMiAubWVzaHRhc3RpYy5Db25maWcuRGlzcGxheUNvbmZpZxIrCgRsb3JhGAYgASgLMh0ubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZxI1CglibHVldG9vdGgYByABKAsyIi5tZXNodGFzdGljLkNvbmZpZy5CbHVldG9vdGhDb25maWcSDwoHdmVyc2lvbhgIIAEoDRIzCghzZWN1cml0eRgJIAEoCzIhLm1lc2h0YXN0aWMuQ29uZmlnLlNlY3VyaXR5Q29uZmlnIr8IChFMb2NhbE1vZHVsZUNvbmZpZxIxCgRtcXR0GAEgASgLMiMubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuTVFUVENvbmZpZxI1CgZzZXJpYWwYAiABKAsyJS5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5TZXJpYWxDb25maWcSUgoVZXh0ZXJuYWxfbm90aWZpY2F0aW9uGAMgASgLMjMubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuRXh0ZXJuYWxOb3RpZmljYXRpb25Db25maWcSQgoNc3RvcmVfZm9yd2FyZBgEIAEoCzIrLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLlN0b3JlRm9yd2FyZENvbmZpZxI8CgpyYW5nZV90ZXN0GAUgASgLMigubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuUmFuZ2VUZXN0Q29uZmlnEjsKCXRlbGVtZXRyeRgGIAEoCzIoLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLlRlbGVtZXRyeUNvbmZpZxJECg5jYW5uZWRfbWVzc2FnZRgHIAEoCzIsLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLkNhbm5lZE1lc3NhZ2VDb25maWcSMwoFYXVkaW8YCSABKAsyJC5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5BdWRpb0NvbmZpZxJGCg9yZW1vdGVfaGFyZHdhcmUYCiABKAsyLS5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5SZW1vdGVIYXJkd2FyZUNvbmZpZxJCCg1uZWlnaGJvcl9pbmZvGAsgASgLMisubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuTmVpZ2hib3JJbmZvQ29uZmlnEkgKEGFtYmllbnRfbGlnaHRpbmcYDCABKAsyLi5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5BbWJpZW50TGlnaHRpbmdDb25maWcSSAoQZGV0ZWN0aW9uX3NlbnNvchgNIAEoCzIuLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLkRldGVjdGlvblNlbnNvckNvbmZpZxI9CgpwYXhjb3VudGVyGA4gASgLMikubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuUGF4Y291bnRlckNvbmZpZxJDCg1zdGF0dXNtZXNzYWdlGA8gASgLMiwubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuU3RhdHVzTWVzc2FnZUNvbmZpZxJMChJ0cmFmZmljX21hbmFnZW1lbnQYECABKAsyMC5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5UcmFmZmljTWFuYWdlbWVudENvbmZpZxIvCgN0YWsYESABKAsyIi5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5UQUtDb25maWcSDwoHdmVyc2lvbhgIIAEoDUJlChRvcmcubWVzaHRhc3RpYy5wcm90b0IPTG9jYWxPbmx5UHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw", [file_meshtastic_config, file_meshtastic_module_config]);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.LocalConfig
|
||||
*/
|
||||
export type LocalConfig = Message<"meshtastic.LocalConfig"> & {
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Device
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig device = 1;
|
||||
*/
|
||||
device?: Config_DeviceConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the GPS Position
|
||||
*
|
||||
* @generated from field: meshtastic.Config.PositionConfig position = 2;
|
||||
*/
|
||||
position?: Config_PositionConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Power settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.PowerConfig power = 3;
|
||||
*/
|
||||
power?: Config_PowerConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Wifi Settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.NetworkConfig network = 4;
|
||||
*/
|
||||
network?: Config_NetworkConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Display
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DisplayConfig display = 5;
|
||||
*/
|
||||
display?: Config_DisplayConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Lora Radio
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig lora = 6;
|
||||
*/
|
||||
lora?: Config_LoRaConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Bluetooth settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.BluetoothConfig bluetooth = 7;
|
||||
*/
|
||||
bluetooth?: Config_BluetoothConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 8;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to Security settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.SecurityConfig security = 9;
|
||||
*/
|
||||
security?: Config_SecurityConfig | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.LocalConfig.
|
||||
* Use `create(LocalConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const LocalConfigSchema: GenMessage<LocalConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_localonly, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.LocalModuleConfig
|
||||
*/
|
||||
export type LocalModuleConfig = Message<"meshtastic.LocalModuleConfig"> & {
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the MQTT module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.MQTTConfig mqtt = 1;
|
||||
*/
|
||||
mqtt?: ModuleConfig_MQTTConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Serial module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.SerialConfig serial = 2;
|
||||
*/
|
||||
serial?: ModuleConfig_SerialConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the ExternalNotification module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.ExternalNotificationConfig external_notification = 3;
|
||||
*/
|
||||
externalNotification?: ModuleConfig_ExternalNotificationConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Store & Forward module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.StoreForwardConfig store_forward = 4;
|
||||
*/
|
||||
storeForward?: ModuleConfig_StoreForwardConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the RangeTest module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.RangeTestConfig range_test = 5;
|
||||
*/
|
||||
rangeTest?: ModuleConfig_RangeTestConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Telemetry module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.TelemetryConfig telemetry = 6;
|
||||
*/
|
||||
telemetry?: ModuleConfig_TelemetryConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Canned Message module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.CannedMessageConfig canned_message = 7;
|
||||
*/
|
||||
cannedMessage?: ModuleConfig_CannedMessageConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Audio module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.AudioConfig audio = 9;
|
||||
*/
|
||||
audio?: ModuleConfig_AudioConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Remote Hardware module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.RemoteHardwareConfig remote_hardware = 10;
|
||||
*/
|
||||
remoteHardware?: ModuleConfig_RemoteHardwareConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Neighbor Info module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.NeighborInfoConfig neighbor_info = 11;
|
||||
*/
|
||||
neighborInfo?: ModuleConfig_NeighborInfoConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Ambient Lighting module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.AmbientLightingConfig ambient_lighting = 12;
|
||||
*/
|
||||
ambientLighting?: ModuleConfig_AmbientLightingConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Detection Sensor module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.DetectionSensorConfig detection_sensor = 13;
|
||||
*/
|
||||
detectionSensor?: ModuleConfig_DetectionSensorConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Paxcounter Config
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.PaxcounterConfig paxcounter = 14;
|
||||
*/
|
||||
paxcounter?: ModuleConfig_PaxcounterConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* StatusMessage Config
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.StatusMessageConfig statusmessage = 15;
|
||||
*/
|
||||
statusmessage?: ModuleConfig_StatusMessageConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Traffic Management module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.TrafficManagementConfig traffic_management = 16;
|
||||
*/
|
||||
trafficManagement?: ModuleConfig_TrafficManagementConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* TAK Config
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.TAKConfig tak = 17;
|
||||
*/
|
||||
tak?: ModuleConfig_TAKConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 8;
|
||||
*/
|
||||
version: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.LocalModuleConfig.
|
||||
* Use `create(LocalModuleConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const LocalModuleConfigSchema: GenMessage<LocalModuleConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_localonly, 1);
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/mqtt.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Config_DeviceConfig_Role, Config_LoRaConfig_ModemPreset, Config_LoRaConfig_RegionCode } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { HardwareModel, MeshPacket } from "./mesh_pb";
|
||||
import { file_meshtastic_mesh } from "./mesh_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/mqtt.proto.
|
||||
*/
|
||||
export const file_meshtastic_mqtt: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChVtZXNodGFzdGljL21xdHQucHJvdG8SCm1lc2h0YXN0aWMiYQoPU2VydmljZUVudmVsb3BlEiYKBnBhY2tldBgBIAEoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBISCgpjaGFubmVsX2lkGAIgASgJEhIKCmdhdGV3YXlfaWQYAyABKAki3wMKCU1hcFJlcG9ydBIRCglsb25nX25hbWUYASABKAkSEgoKc2hvcnRfbmFtZRgCIAEoCRIyCgRyb2xlGAMgASgOMiQubWVzaHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnLlJvbGUSKwoIaHdfbW9kZWwYBCABKA4yGS5tZXNodGFzdGljLkhhcmR3YXJlTW9kZWwSGAoQZmlybXdhcmVfdmVyc2lvbhgFIAEoCRI4CgZyZWdpb24YBiABKA4yKC5tZXNodGFzdGljLkNvbmZpZy5Mb1JhQ29uZmlnLlJlZ2lvbkNvZGUSPwoMbW9kZW1fcHJlc2V0GAcgASgOMikubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZy5Nb2RlbVByZXNldBIbChNoYXNfZGVmYXVsdF9jaGFubmVsGAggASgIEhIKCmxhdGl0dWRlX2kYCSABKA8SEwoLbG9uZ2l0dWRlX2kYCiABKA8SEAoIYWx0aXR1ZGUYCyABKAUSGgoScG9zaXRpb25fcHJlY2lzaW9uGAwgASgNEh4KFm51bV9vbmxpbmVfbG9jYWxfbm9kZXMYDSABKA0SIQoZaGFzX29wdGVkX3JlcG9ydF9sb2NhdGlvbhgOIAEoCEJgChRvcmcubWVzaHRhc3RpYy5wcm90b0IKTVFUVFByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM", [file_meshtastic_config, file_meshtastic_mesh]);
|
||||
|
||||
/**
|
||||
*
|
||||
* This message wraps a MeshPacket with extra metadata about the sender and how it arrived.
|
||||
*
|
||||
* @generated from message meshtastic.ServiceEnvelope
|
||||
*/
|
||||
export type ServiceEnvelope = Message<"meshtastic.ServiceEnvelope"> & {
|
||||
/**
|
||||
*
|
||||
* The (probably encrypted) packet
|
||||
*
|
||||
* @generated from field: meshtastic.MeshPacket packet = 1;
|
||||
*/
|
||||
packet?: MeshPacket | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The global channel ID it was sent on
|
||||
*
|
||||
* @generated from field: string channel_id = 2;
|
||||
*/
|
||||
channelId: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* The sending gateway node ID. Can we use this to authenticate/prevent fake
|
||||
* nodeid impersonation for senders? - i.e. use gateway/mesh id (which is authenticated) + local node id as
|
||||
* the globally trusted nodenum
|
||||
*
|
||||
* @generated from field: string gateway_id = 3;
|
||||
*/
|
||||
gatewayId: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ServiceEnvelope.
|
||||
* Use `create(ServiceEnvelopeSchema)` to create a new message.
|
||||
*/
|
||||
export const ServiceEnvelopeSchema: GenMessage<ServiceEnvelope> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_mqtt, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* Information about a node intended to be reported unencrypted to a map using MQTT.
|
||||
*
|
||||
* @generated from message meshtastic.MapReport
|
||||
*/
|
||||
export type MapReport = Message<"meshtastic.MapReport"> & {
|
||||
/**
|
||||
*
|
||||
* A full name for this user, i.e. "Kevin Hester"
|
||||
*
|
||||
* @generated from field: string long_name = 1;
|
||||
*/
|
||||
longName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* A VERY short name, ideally two characters.
|
||||
* Suitable for a tiny OLED screen
|
||||
*
|
||||
* @generated from field: string short_name = 2;
|
||||
*/
|
||||
shortName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Role of the node that applies specific settings for a particular use-case
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig.Role role = 3;
|
||||
*/
|
||||
role: Config_DeviceConfig_Role;
|
||||
|
||||
/**
|
||||
*
|
||||
* Hardware model of the node, i.e. T-Beam, Heltec V3, etc...
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareModel hw_model = 4;
|
||||
*/
|
||||
hwModel: HardwareModel;
|
||||
|
||||
/**
|
||||
*
|
||||
* Device firmware version string
|
||||
*
|
||||
* @generated from field: string firmware_version = 5;
|
||||
*/
|
||||
firmwareVersion: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* The region code for the radio (US, CN, EU433, etc...)
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig.RegionCode region = 6;
|
||||
*/
|
||||
region: Config_LoRaConfig_RegionCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* Modem preset used by the radio (LongFast, MediumSlow, etc...)
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig.ModemPreset modem_preset = 7;
|
||||
*/
|
||||
modemPreset: Config_LoRaConfig_ModemPreset;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the node has a channel with default PSK and name (LongFast, MediumSlow, etc...)
|
||||
* and it uses the default frequency slot given the region and modem preset.
|
||||
*
|
||||
* @generated from field: bool has_default_channel = 8;
|
||||
*/
|
||||
hasDefaultChannel: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Latitude: multiply by 1e-7 to get degrees in floating point
|
||||
*
|
||||
* @generated from field: sfixed32 latitude_i = 9;
|
||||
*/
|
||||
latitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Longitude: multiply by 1e-7 to get degrees in floating point
|
||||
*
|
||||
* @generated from field: sfixed32 longitude_i = 10;
|
||||
*/
|
||||
longitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Altitude in meters above MSL
|
||||
*
|
||||
* @generated from field: int32 altitude = 11;
|
||||
*/
|
||||
altitude: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Indicates the bits of precision for latitude and longitude set by the sending node
|
||||
*
|
||||
* @generated from field: uint32 position_precision = 12;
|
||||
*/
|
||||
positionPrecision: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of online nodes (heard in the last 2 hours) this node has in its list that were received locally (not via MQTT)
|
||||
*
|
||||
* @generated from field: uint32 num_online_local_nodes = 13;
|
||||
*/
|
||||
numOnlineLocalNodes: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* User has opted in to share their location (map report) with the mqtt server
|
||||
* Controlled by map_report.should_report_location
|
||||
*
|
||||
* @generated from field: bool has_opted_report_location = 14;
|
||||
*/
|
||||
hasOptedReportLocation: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.MapReport.
|
||||
* Use `create(MapReportSchema)` to create a new message.
|
||||
*/
|
||||
export const MapReportSchema: GenMessage<MapReport> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_mqtt, 1);
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/paxcount.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/paxcount.proto.
|
||||
*/
|
||||
export const file_meshtastic_paxcount: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChltZXNodGFzdGljL3BheGNvdW50LnByb3RvEgptZXNodGFzdGljIjUKCFBheGNvdW50EgwKBHdpZmkYASABKA0SCwoDYmxlGAIgASgNEg4KBnVwdGltZRgDIAEoDUJkChRvcmcubWVzaHRhc3RpYy5wcm90b0IOUGF4Y291bnRQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.Paxcount
|
||||
*/
|
||||
export type Paxcount = Message<"meshtastic.Paxcount"> & {
|
||||
/**
|
||||
*
|
||||
* seen Wifi devices
|
||||
*
|
||||
* @generated from field: uint32 wifi = 1;
|
||||
*/
|
||||
wifi: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Seen BLE devices
|
||||
*
|
||||
* @generated from field: uint32 ble = 2;
|
||||
*/
|
||||
ble: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Uptime in seconds
|
||||
*
|
||||
* @generated from field: uint32 uptime = 3;
|
||||
*/
|
||||
uptime: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.Paxcount.
|
||||
* Use `create(PaxcountSchema)` to create a new message.
|
||||
*/
|
||||
export const PaxcountSchema: GenMessage<Paxcount> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_paxcount, 0);
|
||||
|
||||
@@ -0,0 +1,412 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/portnums.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/portnums.proto.
|
||||
*/
|
||||
export const file_meshtastic_portnums: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChltZXNodGFzdGljL3BvcnRudW1zLnByb3RvEgptZXNodGFzdGljKv0FCgdQb3J0TnVtEg8KC1VOS05PV05fQVBQEAASFAoQVEVYVF9NRVNTQUdFX0FQUBABEhcKE1JFTU9URV9IQVJEV0FSRV9BUFAQAhIQCgxQT1NJVElPTl9BUFAQAxIQCgxOT0RFSU5GT19BUFAQBBIPCgtST1VUSU5HX0FQUBAFEg0KCUFETUlOX0FQUBAGEh8KG1RFWFRfTUVTU0FHRV9DT01QUkVTU0VEX0FQUBAHEhAKDFdBWVBPSU5UX0FQUBAIEg0KCUFVRElPX0FQUBAJEhgKFERFVEVDVElPTl9TRU5TT1JfQVBQEAoSDQoJQUxFUlRfQVBQEAsSGAoUS0VZX1ZFUklGSUNBVElPTl9BUFAQDBIUChBSRU1PVEVfU0hFTExfQVBQEA0SDQoJUkVQTFlfQVBQECASEQoNSVBfVFVOTkVMX0FQUBAhEhIKDlBBWENPVU5URVJfQVBQECISHgoaU1RPUkVfRk9SV0FSRF9QTFVTUExVU19BUFAQIxITCg9OT0RFX1NUQVRVU19BUFAQJBIOCgpTRVJJQUxfQVBQEEASFQoRU1RPUkVfRk9SV0FSRF9BUFAQQRISCg5SQU5HRV9URVNUX0FQUBBCEhEKDVRFTEVNRVRSWV9BUFAQQxILCgdaUFNfQVBQEEQSEQoNU0lNVUxBVE9SX0FQUBBFEhIKDlRSQUNFUk9VVEVfQVBQEEYSFAoQTkVJR0hCT1JJTkZPX0FQUBBHEg8KC0FUQUtfUExVR0lOEEgSEgoOTUFQX1JFUE9SVF9BUFAQSRITCg9QT1dFUlNUUkVTU19BUFAQShISCg5MT1JBV0FOX0JSSURHRRBLEhgKFFJFVElDVUxVTV9UVU5ORUxfQVBQEEwSDwoLQ0FZRU5ORV9BUFAQTRISCg5BVEFLX1BMVUdJTl9WMhBOEhIKDkdST1VQQUxBUk1fQVBQEHASEAoLUFJJVkFURV9BUFAQgAISEwoOQVRBS19GT1JXQVJERVIQgQISCAoDTUFYEP8DQl4KFG9yZy5tZXNodGFzdGljLnByb3RvQghQb3J0bnVtc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM");
|
||||
|
||||
/**
|
||||
*
|
||||
* For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a
|
||||
* unique 'portnum' for their application.
|
||||
* If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this
|
||||
* master table.
|
||||
* PortNums should be assigned in the following range:
|
||||
* 0-63 Core Meshtastic use, do not use for third party apps
|
||||
* 64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application
|
||||
* 256-511 Use one of these portnums for your private applications that you don't want to register publically
|
||||
* All other values are reserved.
|
||||
* Note: This was formerly a Type enum named 'typ' with the same id #
|
||||
* We have change to this 'portnum' based scheme for specifying app handlers for particular payloads.
|
||||
* This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically.
|
||||
*
|
||||
* @generated from enum meshtastic.PortNum
|
||||
*/
|
||||
export enum PortNum {
|
||||
/**
|
||||
*
|
||||
* Deprecated: do not use in new code (formerly called OPAQUE)
|
||||
* A message sent from a device outside of the mesh, in a form the mesh does not understand
|
||||
* NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
|
||||
* ENCODING: binary undefined
|
||||
*
|
||||
* @generated from enum value: UNKNOWN_APP = 0;
|
||||
*/
|
||||
UNKNOWN_APP = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* A simple UTF-8 text message, which even the little micros in the mesh
|
||||
* can understand and show on their screen eventually in some circumstances
|
||||
* even signal might send messages in this form (see below)
|
||||
* ENCODING: UTF-8 Plaintext (?)
|
||||
*
|
||||
* @generated from enum value: TEXT_MESSAGE_APP = 1;
|
||||
*/
|
||||
TEXT_MESSAGE_APP = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Reserved for built-in GPIO/example app.
|
||||
* See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: REMOTE_HARDWARE_APP = 2;
|
||||
*/
|
||||
REMOTE_HARDWARE_APP = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* The built-in position messaging app.
|
||||
* Payload is a Position message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: POSITION_APP = 3;
|
||||
*/
|
||||
POSITION_APP = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* The built-in user info app.
|
||||
* Payload is a User message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: NODEINFO_APP = 4;
|
||||
*/
|
||||
NODEINFO_APP = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Protocol control packets for mesh protocol use.
|
||||
* Payload is a Routing message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: ROUTING_APP = 5;
|
||||
*/
|
||||
ROUTING_APP = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Admin control packets.
|
||||
* Payload is a AdminMessage message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: ADMIN_APP = 6;
|
||||
*/
|
||||
ADMIN_APP = 6,
|
||||
|
||||
/**
|
||||
*
|
||||
* Compressed TEXT_MESSAGE payloads.
|
||||
* ENCODING: UTF-8 Plaintext (?) with Unishox2 Compression
|
||||
* NOTE: The Device Firmware converts a TEXT_MESSAGE_APP to TEXT_MESSAGE_COMPRESSED_APP if the compressed
|
||||
* payload is shorter. There's no need for app developers to do this themselves. Also the firmware will decompress
|
||||
* any incoming TEXT_MESSAGE_COMPRESSED_APP payload and convert to TEXT_MESSAGE_APP.
|
||||
*
|
||||
* @generated from enum value: TEXT_MESSAGE_COMPRESSED_APP = 7;
|
||||
*/
|
||||
TEXT_MESSAGE_COMPRESSED_APP = 7,
|
||||
|
||||
/**
|
||||
*
|
||||
* Waypoint payloads.
|
||||
* Payload is a Waypoint message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: WAYPOINT_APP = 8;
|
||||
*/
|
||||
WAYPOINT_APP = 8,
|
||||
|
||||
/**
|
||||
*
|
||||
* Audio Payloads.
|
||||
* Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now
|
||||
* ENCODING: codec2 audio frames
|
||||
* NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
|
||||
* This marker comes from the 'moduleConfig.audio.bitrate' enum minus one.
|
||||
*
|
||||
* @generated from enum value: AUDIO_APP = 9;
|
||||
*/
|
||||
AUDIO_APP = 9,
|
||||
|
||||
/**
|
||||
*
|
||||
* Same as Text Message but originating from Detection Sensor Module.
|
||||
* NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
|
||||
*
|
||||
* @generated from enum value: DETECTION_SENSOR_APP = 10;
|
||||
*/
|
||||
DETECTION_SENSOR_APP = 10,
|
||||
|
||||
/**
|
||||
*
|
||||
* Same as Text Message but used for critical alerts.
|
||||
*
|
||||
* @generated from enum value: ALERT_APP = 11;
|
||||
*/
|
||||
ALERT_APP = 11,
|
||||
|
||||
/**
|
||||
*
|
||||
* Module/port for handling key verification requests.
|
||||
*
|
||||
* @generated from enum value: KEY_VERIFICATION_APP = 12;
|
||||
*/
|
||||
KEY_VERIFICATION_APP = 12,
|
||||
|
||||
/**
|
||||
*
|
||||
* Module/port for handling primitive remote shell access.
|
||||
*
|
||||
* @generated from enum value: REMOTE_SHELL_APP = 13;
|
||||
*/
|
||||
REMOTE_SHELL_APP = 13,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a 'ping' service that replies to any packet it receives.
|
||||
* Also serves as a small example module.
|
||||
* ENCODING: ASCII Plaintext
|
||||
*
|
||||
* @generated from enum value: REPLY_APP = 32;
|
||||
*/
|
||||
REPLY_APP = 32,
|
||||
|
||||
/**
|
||||
*
|
||||
* Used for the python IP tunnel feature
|
||||
* ENCODING: IP Packet. Handled by the python API, firmware ignores this one and pases on.
|
||||
*
|
||||
* @generated from enum value: IP_TUNNEL_APP = 33;
|
||||
*/
|
||||
IP_TUNNEL_APP = 33,
|
||||
|
||||
/**
|
||||
*
|
||||
* Paxcounter lib included in the firmware
|
||||
* ENCODING: protobuf
|
||||
*
|
||||
* @generated from enum value: PAXCOUNTER_APP = 34;
|
||||
*/
|
||||
PAXCOUNTER_APP = 34,
|
||||
|
||||
/**
|
||||
*
|
||||
* Store and Forward++ module included in the firmware
|
||||
* ENCODING: protobuf
|
||||
* This module is specifically for Native Linux nodes, and provides a Git-style
|
||||
* chain of messages.
|
||||
*
|
||||
* @generated from enum value: STORE_FORWARD_PLUSPLUS_APP = 35;
|
||||
*/
|
||||
STORE_FORWARD_PLUSPLUS_APP = 35,
|
||||
|
||||
/**
|
||||
*
|
||||
* Node Status module
|
||||
* ENCODING: protobuf
|
||||
* This module allows setting an extra string of status for a node.
|
||||
* Broadcasts on change and on a timer, possibly once a day.
|
||||
*
|
||||
* @generated from enum value: NODE_STATUS_APP = 36;
|
||||
*/
|
||||
NODE_STATUS_APP = 36,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a hardware serial interface to send and receive from the Meshtastic network.
|
||||
* Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
|
||||
* network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network.
|
||||
* Maximum packet size of 240 bytes.
|
||||
* Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp.
|
||||
* ENCODING: binary undefined
|
||||
*
|
||||
* @generated from enum value: SERIAL_APP = 64;
|
||||
*/
|
||||
SERIAL_APP = 64,
|
||||
|
||||
/**
|
||||
*
|
||||
* STORE_FORWARD_APP (Work in Progress)
|
||||
* Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: STORE_FORWARD_APP = 65;
|
||||
*/
|
||||
STORE_FORWARD_APP = 65,
|
||||
|
||||
/**
|
||||
*
|
||||
* Optional port for messages for the range test module.
|
||||
* ENCODING: ASCII Plaintext
|
||||
* NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
|
||||
*
|
||||
* @generated from enum value: RANGE_TEST_APP = 66;
|
||||
*/
|
||||
RANGE_TEST_APP = 66,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a format to send and receive telemetry data from the Meshtastic network.
|
||||
* Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: TELEMETRY_APP = 67;
|
||||
*/
|
||||
TELEMETRY_APP = 67,
|
||||
|
||||
/**
|
||||
*
|
||||
* Experimental tools for estimating node position without a GPS
|
||||
* Maintained by Github user a-f-G-U-C (a Meshtastic contributor)
|
||||
* Project files at https://github.com/a-f-G-U-C/Meshtastic-ZPS
|
||||
* ENCODING: arrays of int64 fields
|
||||
*
|
||||
* @generated from enum value: ZPS_APP = 68;
|
||||
*/
|
||||
ZPS_APP = 68,
|
||||
|
||||
/**
|
||||
*
|
||||
* Used to let multiple instances of Linux native applications communicate
|
||||
* as if they did using their LoRa chip.
|
||||
* Maintained by GitHub user GUVWAF.
|
||||
* Project files at https://github.com/GUVWAF/Meshtasticator
|
||||
* ENCODING: Protobuf (?)
|
||||
*
|
||||
* @generated from enum value: SIMULATOR_APP = 69;
|
||||
*/
|
||||
SIMULATOR_APP = 69,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a traceroute functionality to show the route a packet towards
|
||||
* a certain destination would take on the mesh. Contains a RouteDiscovery message as payload.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: TRACEROUTE_APP = 70;
|
||||
*/
|
||||
TRACEROUTE_APP = 70,
|
||||
|
||||
/**
|
||||
*
|
||||
* Aggregates edge info for the network by sending out a list of each node's neighbors
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: NEIGHBORINFO_APP = 71;
|
||||
*/
|
||||
NEIGHBORINFO_APP = 71,
|
||||
|
||||
/**
|
||||
*
|
||||
* ATAK Plugin
|
||||
* Portnum for payloads from the official Meshtastic ATAK plugin
|
||||
*
|
||||
* @generated from enum value: ATAK_PLUGIN = 72;
|
||||
*/
|
||||
ATAK_PLUGIN = 72,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides unencrypted information about a node for consumption by a map via MQTT
|
||||
*
|
||||
* @generated from enum value: MAP_REPORT_APP = 73;
|
||||
*/
|
||||
MAP_REPORT_APP = 73,
|
||||
|
||||
/**
|
||||
*
|
||||
* PowerStress based monitoring support (for automated power consumption testing)
|
||||
*
|
||||
* @generated from enum value: POWERSTRESS_APP = 74;
|
||||
*/
|
||||
POWERSTRESS_APP = 74,
|
||||
|
||||
/**
|
||||
*
|
||||
* LoraWAN Payload Transport
|
||||
* ENCODING: compact binary LoRaWAN uplink (10-byte RF metadata + PHY payload) - see LoRaWANBridgeModule
|
||||
*
|
||||
* @generated from enum value: LORAWAN_BRIDGE = 75;
|
||||
*/
|
||||
LORAWAN_BRIDGE = 75,
|
||||
|
||||
/**
|
||||
*
|
||||
* Reticulum Network Stack Tunnel App
|
||||
* ENCODING: Fragmented RNS Packet. Handled by Meshtastic RNS interface
|
||||
*
|
||||
* @generated from enum value: RETICULUM_TUNNEL_APP = 76;
|
||||
*/
|
||||
RETICULUM_TUNNEL_APP = 76,
|
||||
|
||||
/**
|
||||
*
|
||||
* App for transporting Cayenne Low Power Payload, popular for LoRaWAN sensor nodes. Offers ability to send
|
||||
* arbitrary telemetry over meshtastic that is not covered by telemetry.proto
|
||||
* ENCODING: CayenneLLP
|
||||
*
|
||||
* @generated from enum value: CAYENNE_APP = 77;
|
||||
*/
|
||||
CAYENNE_APP = 77,
|
||||
|
||||
/**
|
||||
*
|
||||
* ATAK Plugin V2
|
||||
* Portnum for payloads from the official Meshtastic ATAK plugin using
|
||||
* TAKPacketV2 with zstd dictionary compression.
|
||||
*
|
||||
* @generated from enum value: ATAK_PLUGIN_V2 = 78;
|
||||
*/
|
||||
ATAK_PLUGIN_V2 = 78,
|
||||
|
||||
/**
|
||||
*
|
||||
* GroupAlarm integration
|
||||
* Used for transporting GroupAlarm-related messages between Meshtastic nodes
|
||||
* and companion applications/services.
|
||||
*
|
||||
* @generated from enum value: GROUPALARM_APP = 112;
|
||||
*/
|
||||
GROUPALARM_APP = 112,
|
||||
|
||||
/**
|
||||
*
|
||||
* Private applications should use portnums >= 256.
|
||||
* To simplify initial development and testing you can use "PRIVATE_APP"
|
||||
* in your code without needing to rebuild protobuf files (via [regen-protos.sh](https://github.com/meshtastic/firmware/blob/master/bin/regen-protos.sh))
|
||||
*
|
||||
* @generated from enum value: PRIVATE_APP = 256;
|
||||
*/
|
||||
PRIVATE_APP = 256,
|
||||
|
||||
/**
|
||||
*
|
||||
* ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder
|
||||
* ENCODING: libcotshrink
|
||||
*
|
||||
* @generated from enum value: ATAK_FORWARDER = 257;
|
||||
*/
|
||||
ATAK_FORWARDER = 257,
|
||||
|
||||
/**
|
||||
*
|
||||
* Currently we limit port nums to no higher than this value
|
||||
*
|
||||
* @generated from enum value: MAX = 511;
|
||||
*/
|
||||
MAX = 511,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.PortNum.
|
||||
*/
|
||||
export const PortNumSchema: GenEnum<PortNum> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_portnums, 0);
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/powermon.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/powermon.proto.
|
||||
*/
|
||||
export const file_meshtastic_powermon: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChltZXNodGFzdGljL3Bvd2VybW9uLnByb3RvEgptZXNodGFzdGljIuABCghQb3dlck1vbiLTAQoFU3RhdGUSCAoETm9uZRAAEhEKDUNQVV9EZWVwU2xlZXAQARISCg5DUFVfTGlnaHRTbGVlcBACEgwKCFZleHQxX09uEAQSDQoJTG9yYV9SWE9uEAgSDQoJTG9yYV9UWE9uEBASEQoNTG9yYV9SWEFjdGl2ZRAgEgkKBUJUX09uEEASCwoGTEVEX09uEIABEg4KCVNjcmVlbl9PbhCAAhITCg5TY3JlZW5fRHJhd2luZxCABBIMCgdXaWZpX09uEIAIEg8KCkdQU19BY3RpdmUQgBAi/wIKElBvd2VyU3RyZXNzTWVzc2FnZRIyCgNjbWQYASABKA4yJS5tZXNodGFzdGljLlBvd2VyU3RyZXNzTWVzc2FnZS5PcGNvZGUSEwoLbnVtX3NlY29uZHMYAiABKAIinwIKBk9wY29kZRIJCgVVTlNFVBAAEg4KClBSSU5UX0lORk8QARIPCgtGT1JDRV9RVUlFVBACEg0KCUVORF9RVUlFVBADEg0KCVNDUkVFTl9PThAQEg4KClNDUkVFTl9PRkYQERIMCghDUFVfSURMRRAgEhEKDUNQVV9ERUVQU0xFRVAQIRIOCgpDUFVfRlVMTE9OECISCgoGTEVEX09OEDASCwoHTEVEX09GRhAxEgwKCExPUkFfT0ZGEEASCwoHTE9SQV9UWBBBEgsKB0xPUkFfUlgQQhIKCgZCVF9PRkYQUBIJCgVCVF9PThBREgwKCFdJRklfT0ZGEGASCwoHV0lGSV9PThBhEgsKB0dQU19PRkYQcBIKCgZHUFNfT04QcUJkChRvcmcubWVzaHRhc3RpYy5wcm90b0IOUG93ZXJNb25Qcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* Note: There are no 'PowerMon' messages normally in use (PowerMons are sent only as structured logs - slogs).
|
||||
* But we wrap our State enum in this message to effectively nest a namespace (without our linter yelling at us)
|
||||
*
|
||||
* @generated from message meshtastic.PowerMon
|
||||
*/
|
||||
export type PowerMon = Message<"meshtastic.PowerMon"> & {
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.PowerMon.
|
||||
* Use `create(PowerMonSchema)` to create a new message.
|
||||
*/
|
||||
export const PowerMonSchema: GenMessage<PowerMon> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_powermon, 0);
|
||||
|
||||
/**
|
||||
* Any significant power changing event in meshtastic should be tagged with a powermon state transition.
|
||||
* If you are making new meshtastic features feel free to add new entries at the end of this definition.
|
||||
*
|
||||
* @generated from enum meshtastic.PowerMon.State
|
||||
*/
|
||||
export enum PowerMon_State {
|
||||
/**
|
||||
* @generated from enum value: None = 0;
|
||||
*/
|
||||
None = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CPU_DeepSleep = 1;
|
||||
*/
|
||||
CPU_DeepSleep = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CPU_LightSleep = 2;
|
||||
*/
|
||||
CPU_LightSleep = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* The external Vext1 power is on. Many boards have auxillary power rails that the CPU turns on only
|
||||
* occasionally. In cases where that rail has multiple devices on it we usually want to have logging on
|
||||
* the state of that rail as an independent record.
|
||||
* For instance on the Heltec Tracker 1.1 board, this rail is the power source for the GPS and screen.
|
||||
*
|
||||
* The log messages will be short and complete (see PowerMon.Event in the protobufs for details).
|
||||
* something like "S:PM:C,0x00001234,REASON" where the hex number is the bitmask of all current states.
|
||||
* (We use a bitmask for states so that if a log message gets lost it won't be fatal)
|
||||
*
|
||||
* @generated from enum value: Vext1_On = 4;
|
||||
*/
|
||||
Vext1_On = 4,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Lora_RXOn = 8;
|
||||
*/
|
||||
Lora_RXOn = 8,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Lora_TXOn = 16;
|
||||
*/
|
||||
Lora_TXOn = 16,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Lora_RXActive = 32;
|
||||
*/
|
||||
Lora_RXActive = 32,
|
||||
|
||||
/**
|
||||
* @generated from enum value: BT_On = 64;
|
||||
*/
|
||||
BT_On = 64,
|
||||
|
||||
/**
|
||||
* @generated from enum value: LED_On = 128;
|
||||
*/
|
||||
LED_On = 128,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Screen_On = 256;
|
||||
*/
|
||||
Screen_On = 256,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Screen_Drawing = 512;
|
||||
*/
|
||||
Screen_Drawing = 512,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Wifi_On = 1024;
|
||||
*/
|
||||
Wifi_On = 1024,
|
||||
|
||||
/**
|
||||
*
|
||||
* GPS is actively trying to find our location
|
||||
* See GPSPowerState for more details
|
||||
*
|
||||
* @generated from enum value: GPS_Active = 2048;
|
||||
*/
|
||||
GPS_Active = 2048,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.PowerMon.State.
|
||||
*/
|
||||
export const PowerMon_StateSchema: GenEnum<PowerMon_State> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_powermon, 0, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* PowerStress testing support via the C++ PowerStress module
|
||||
*
|
||||
* @generated from message meshtastic.PowerStressMessage
|
||||
*/
|
||||
export type PowerStressMessage = Message<"meshtastic.PowerStressMessage"> & {
|
||||
/**
|
||||
*
|
||||
* What type of HardwareMessage is this?
|
||||
*
|
||||
* @generated from field: meshtastic.PowerStressMessage.Opcode cmd = 1;
|
||||
*/
|
||||
cmd: PowerStressMessage_Opcode;
|
||||
|
||||
/**
|
||||
* @generated from field: float num_seconds = 2;
|
||||
*/
|
||||
numSeconds: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.PowerStressMessage.
|
||||
* Use `create(PowerStressMessageSchema)` to create a new message.
|
||||
*/
|
||||
export const PowerStressMessageSchema: GenMessage<PowerStressMessage> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_powermon, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* What operation would we like the UUT to perform.
|
||||
* note: senders should probably set want_response in their request packets, so that they can know when the state
|
||||
* machine has started processing their request
|
||||
*
|
||||
* @generated from enum meshtastic.PowerStressMessage.Opcode
|
||||
*/
|
||||
export enum PowerStressMessage_Opcode {
|
||||
/**
|
||||
*
|
||||
* Unset/unused
|
||||
*
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
* Print board version slog and send an ack that we are alive and ready to process commands
|
||||
*
|
||||
* @generated from enum value: PRINT_INFO = 1;
|
||||
*/
|
||||
PRINT_INFO = 1,
|
||||
|
||||
/**
|
||||
* Try to turn off all automatic processing of packets, screen, sleeping, etc (to make it easier to measure in isolation)
|
||||
*
|
||||
* @generated from enum value: FORCE_QUIET = 2;
|
||||
*/
|
||||
FORCE_QUIET = 2,
|
||||
|
||||
/**
|
||||
* Stop powerstress processing - probably by just rebooting the board
|
||||
*
|
||||
* @generated from enum value: END_QUIET = 3;
|
||||
*/
|
||||
END_QUIET = 3,
|
||||
|
||||
/**
|
||||
* Turn the screen on
|
||||
*
|
||||
* @generated from enum value: SCREEN_ON = 16;
|
||||
*/
|
||||
SCREEN_ON = 16,
|
||||
|
||||
/**
|
||||
* Turn the screen off
|
||||
*
|
||||
* @generated from enum value: SCREEN_OFF = 17;
|
||||
*/
|
||||
SCREEN_OFF = 17,
|
||||
|
||||
/**
|
||||
* Let the CPU run but we assume mostly idling for num_seconds
|
||||
*
|
||||
* @generated from enum value: CPU_IDLE = 32;
|
||||
*/
|
||||
CPU_IDLE = 32,
|
||||
|
||||
/**
|
||||
* Force deep sleep for FIXME seconds
|
||||
*
|
||||
* @generated from enum value: CPU_DEEPSLEEP = 33;
|
||||
*/
|
||||
CPU_DEEPSLEEP = 33,
|
||||
|
||||
/**
|
||||
* Spin the CPU as fast as possible for num_seconds
|
||||
*
|
||||
* @generated from enum value: CPU_FULLON = 34;
|
||||
*/
|
||||
CPU_FULLON = 34,
|
||||
|
||||
/**
|
||||
* Turn the LED on for num_seconds (and leave it on - for baseline power measurement purposes)
|
||||
*
|
||||
* @generated from enum value: LED_ON = 48;
|
||||
*/
|
||||
LED_ON = 48,
|
||||
|
||||
/**
|
||||
* Force the LED off for num_seconds
|
||||
*
|
||||
* @generated from enum value: LED_OFF = 49;
|
||||
*/
|
||||
LED_OFF = 49,
|
||||
|
||||
/**
|
||||
* Completely turn off the LORA radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: LORA_OFF = 64;
|
||||
*/
|
||||
LORA_OFF = 64,
|
||||
|
||||
/**
|
||||
* Send Lora packets for num_seconds
|
||||
*
|
||||
* @generated from enum value: LORA_TX = 65;
|
||||
*/
|
||||
LORA_TX = 65,
|
||||
|
||||
/**
|
||||
* Receive Lora packets for num_seconds (node will be mostly just listening, unless an external agent is helping stress this by sending packets on the current channel)
|
||||
*
|
||||
* @generated from enum value: LORA_RX = 66;
|
||||
*/
|
||||
LORA_RX = 66,
|
||||
|
||||
/**
|
||||
* Turn off the BT radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: BT_OFF = 80;
|
||||
*/
|
||||
BT_OFF = 80,
|
||||
|
||||
/**
|
||||
* Turn on the BT radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: BT_ON = 81;
|
||||
*/
|
||||
BT_ON = 81,
|
||||
|
||||
/**
|
||||
* Turn off the WIFI radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: WIFI_OFF = 96;
|
||||
*/
|
||||
WIFI_OFF = 96,
|
||||
|
||||
/**
|
||||
* Turn on the WIFI radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: WIFI_ON = 97;
|
||||
*/
|
||||
WIFI_ON = 97,
|
||||
|
||||
/**
|
||||
* Turn off the GPS radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: GPS_OFF = 112;
|
||||
*/
|
||||
GPS_OFF = 112,
|
||||
|
||||
/**
|
||||
* Turn on the GPS radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: GPS_ON = 113;
|
||||
*/
|
||||
GPS_ON = 113,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.PowerStressMessage.Opcode.
|
||||
*/
|
||||
export const PowerStressMessage_OpcodeSchema: GenEnum<PowerStressMessage_Opcode> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_powermon, 1, 0);
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/remote_hardware.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/remote_hardware.proto.
|
||||
*/
|
||||
export const file_meshtastic_remote_hardware: GenFile = /*@__PURE__*/
|
||||
fileDesc("CiBtZXNodGFzdGljL3JlbW90ZV9oYXJkd2FyZS5wcm90bxIKbWVzaHRhc3RpYyLWAQoPSGFyZHdhcmVNZXNzYWdlEi4KBHR5cGUYASABKA4yIC5tZXNodGFzdGljLkhhcmR3YXJlTWVzc2FnZS5UeXBlEhEKCWdwaW9fbWFzaxgCIAEoBBISCgpncGlvX3ZhbHVlGAMgASgEImwKBFR5cGUSCQoFVU5TRVQQABIPCgtXUklURV9HUElPUxABEg8KC1dBVENIX0dQSU9TEAISEQoNR1BJT1NfQ0hBTkdFRBADEg4KClJFQURfR1BJT1MQBBIUChBSRUFEX0dQSU9TX1JFUExZEAVCZAoUb3JnLm1lc2h0YXN0aWMucHJvdG9CDlJlbW90ZUhhcmR3YXJlWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
*
|
||||
* An example app to show off the module system. This message is used for
|
||||
* REMOTE_HARDWARE_APP PortNums.
|
||||
* Also provides easy remote access to any GPIO.
|
||||
* In the future other remote hardware operations can be added based on user interest
|
||||
* (i.e. serial output, spi/i2c input/output).
|
||||
* FIXME - currently this feature is turned on by default which is dangerous
|
||||
* because no security yet (beyond the channel mechanism).
|
||||
* It should be off by default and then protected based on some TBD mechanism
|
||||
* (a special channel once multichannel support is included?)
|
||||
*
|
||||
* @generated from message meshtastic.HardwareMessage
|
||||
*/
|
||||
export type HardwareMessage = Message<"meshtastic.HardwareMessage"> & {
|
||||
/**
|
||||
*
|
||||
* What type of HardwareMessage is this?
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareMessage.Type type = 1;
|
||||
*/
|
||||
type: HardwareMessage_Type;
|
||||
|
||||
/**
|
||||
*
|
||||
* What gpios are we changing. Not used for all MessageTypes, see MessageType for details
|
||||
*
|
||||
* @generated from field: uint64 gpio_mask = 2;
|
||||
*/
|
||||
gpioMask: bigint;
|
||||
|
||||
/**
|
||||
*
|
||||
* For gpios that were listed in gpio_mask as valid, what are the signal levels for those gpios.
|
||||
* Not used for all MessageTypes, see MessageType for details
|
||||
*
|
||||
* @generated from field: uint64 gpio_value = 3;
|
||||
*/
|
||||
gpioValue: bigint;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.HardwareMessage.
|
||||
* Use `create(HardwareMessageSchema)` to create a new message.
|
||||
*/
|
||||
export const HardwareMessageSchema: GenMessage<HardwareMessage> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_remote_hardware, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from enum meshtastic.HardwareMessage.Type
|
||||
*/
|
||||
export enum HardwareMessage_Type {
|
||||
/**
|
||||
*
|
||||
* Unset/unused
|
||||
*
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Set gpio gpios based on gpio_mask/gpio_value
|
||||
*
|
||||
* @generated from enum value: WRITE_GPIOS = 1;
|
||||
*/
|
||||
WRITE_GPIOS = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* We are now interested in watching the gpio_mask gpios.
|
||||
* If the selected gpios change, please broadcast GPIOS_CHANGED.
|
||||
* Will implicitly change the gpios requested to be INPUT gpios.
|
||||
*
|
||||
* @generated from enum value: WATCH_GPIOS = 2;
|
||||
*/
|
||||
WATCH_GPIOS = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* The gpios listed in gpio_mask have changed, the new values are listed in gpio_value
|
||||
*
|
||||
* @generated from enum value: GPIOS_CHANGED = 3;
|
||||
*/
|
||||
GPIOS_CHANGED = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated
|
||||
*
|
||||
* @generated from enum value: READ_GPIOS = 4;
|
||||
*/
|
||||
READ_GPIOS = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* A reply to READ_GPIOS. gpio_mask and gpio_value will be populated
|
||||
*
|
||||
* @generated from enum value: READ_GPIOS_REPLY = 5;
|
||||
*/
|
||||
READ_GPIOS_REPLY = 5,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.HardwareMessage.Type.
|
||||
*/
|
||||
export const HardwareMessage_TypeSchema: GenEnum<HardwareMessage_Type> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_remote_hardware, 0, 0);
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/rtttl.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/rtttl.proto.
|
||||
*/
|
||||
export const file_meshtastic_rtttl: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChZtZXNodGFzdGljL3J0dHRsLnByb3RvEgptZXNodGFzdGljIh8KC1JUVFRMQ29uZmlnEhAKCHJpbmd0b25lGAEgASgJQmcKFG9yZy5tZXNodGFzdGljLnByb3RvQhFSVFRUTENvbmZpZ1Byb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM");
|
||||
|
||||
/**
|
||||
*
|
||||
* Canned message module configuration.
|
||||
*
|
||||
* @generated from message meshtastic.RTTTLConfig
|
||||
*/
|
||||
export type RTTTLConfig = Message<"meshtastic.RTTTLConfig"> & {
|
||||
/**
|
||||
*
|
||||
* Ringtone for PWM Buzzer in RTTTL Format.
|
||||
*
|
||||
* @generated from field: string ringtone = 1;
|
||||
*/
|
||||
ringtone: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.RTTTLConfig.
|
||||
* Use `create(RTTTLConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const RTTTLConfigSchema: GenMessage<RTTTLConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_rtttl, 0);
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/serial_hal.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/serial_hal.proto.
|
||||
*/
|
||||
export const file_meshtastic_serial_hal: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChttZXNodGFzdGljL3NlcmlhbF9oYWwucHJvdG8SCm1lc2h0YXN0aWMiogIKEFNlcmlhbEhhbENvbW1hbmQSFgoOdHJhbnNhY3Rpb25faWQYASABKA0SLwoEdHlwZRgCIAEoDjIhLm1lc2h0YXN0aWMuU2VyaWFsSGFsQ29tbWFuZC5UeXBlEgsKA3BpbhgDIAEoDRINCgV2YWx1ZRgEIAEoDRIMCgRtb2RlGAUgASgNEgwKBGRhdGEYBiABKAwijAEKBFR5cGUSCQoFVU5TRVQQABIMCghQSU5fTU9ERRABEhEKDURJR0lUQUxfV1JJVEUQAhIQCgxESUdJVEFMX1JFQUQQAxIUChBBVFRBQ0hfSU5URVJSVVBUEAQSFAoQREVUQUNIX0lOVEVSUlVQVBAFEhAKDFNQSV9UUkFOU0ZFUhAGEggKBE5PT1AQByLMAQoRU2VyaWFsSGFsUmVzcG9uc2USFgoOdHJhbnNhY3Rpb25faWQYASABKA0SNAoGcmVzdWx0GAIgASgOMiQubWVzaHRhc3RpYy5TZXJpYWxIYWxSZXNwb25zZS5SZXN1bHQSDQoFdmFsdWUYAyABKA0SDAoEZGF0YRgEIAEoDBINCgVlcnJvchgFIAEoCSI9CgZSZXN1bHQSBgoCT0sQABIJCgVFUlJPUhABEg8KC0JBRF9SRVFVRVNUEAISDwoLVU5TVVBQT1JURUQQA0JfChRvcmcubWVzaHRhc3RpYy5wcm90b0IJU2VyaWFsSGFsWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.SerialHalCommand
|
||||
*/
|
||||
export type SerialHalCommand = Message<"meshtastic.SerialHalCommand"> & {
|
||||
/**
|
||||
* Host-assigned request id. Replies echo this id back in
|
||||
* SerialHalResponse.transaction_id.
|
||||
*
|
||||
* @generated from field: uint32 transaction_id = 1;
|
||||
*/
|
||||
transactionId: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.SerialHalCommand.Type type = 2;
|
||||
*/
|
||||
type: SerialHalCommand_Type;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 pin = 3;
|
||||
*/
|
||||
pin: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 value = 4;
|
||||
*/
|
||||
value: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 mode = 5;
|
||||
*/
|
||||
mode: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bytes data = 6;
|
||||
*/
|
||||
data: Uint8Array;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SerialHalCommand.
|
||||
* Use `create(SerialHalCommandSchema)` to create a new message.
|
||||
*/
|
||||
export const SerialHalCommandSchema: GenMessage<SerialHalCommand> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_serial_hal, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.SerialHalCommand.Type
|
||||
*/
|
||||
export enum SerialHalCommand_Type {
|
||||
/**
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: PIN_MODE = 1;
|
||||
*/
|
||||
PIN_MODE = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: DIGITAL_WRITE = 2;
|
||||
*/
|
||||
DIGITAL_WRITE = 2,
|
||||
|
||||
/**
|
||||
* @generated from enum value: DIGITAL_READ = 3;
|
||||
*/
|
||||
DIGITAL_READ = 3,
|
||||
|
||||
/**
|
||||
* @generated from enum value: ATTACH_INTERRUPT = 4;
|
||||
*/
|
||||
ATTACH_INTERRUPT = 4,
|
||||
|
||||
/**
|
||||
* @generated from enum value: DETACH_INTERRUPT = 5;
|
||||
*/
|
||||
DETACH_INTERRUPT = 5,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SPI_TRANSFER = 6;
|
||||
*/
|
||||
SPI_TRANSFER = 6,
|
||||
|
||||
/**
|
||||
* @generated from enum value: NOOP = 7;
|
||||
*/
|
||||
NOOP = 7,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.SerialHalCommand.Type.
|
||||
*/
|
||||
export const SerialHalCommand_TypeSchema: GenEnum<SerialHalCommand_Type> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_serial_hal, 0, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.SerialHalResponse
|
||||
*/
|
||||
export type SerialHalResponse = Message<"meshtastic.SerialHalResponse"> & {
|
||||
/**
|
||||
* Matches the originating SerialHalCommand.transaction_id for normal
|
||||
* request/response traffic.
|
||||
*
|
||||
* A value of 0 indicates an unsolicited interrupt notification generated by
|
||||
* the device. In that case, the host should interpret value as the GPIO pin
|
||||
* that triggered.
|
||||
*
|
||||
* @generated from field: uint32 transaction_id = 1;
|
||||
*/
|
||||
transactionId: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.SerialHalResponse.Result result = 2;
|
||||
*/
|
||||
result: SerialHalResponse_Result;
|
||||
|
||||
/**
|
||||
* Used by DIGITAL_READ replies and interrupt notifications. For interrupt
|
||||
* notifications (transaction_id == 0), this carries the pin number.
|
||||
*
|
||||
* @generated from field: uint32 value = 3;
|
||||
*/
|
||||
value: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bytes data = 4;
|
||||
*/
|
||||
data: Uint8Array;
|
||||
|
||||
/**
|
||||
* @generated from field: string error = 5;
|
||||
*/
|
||||
error: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SerialHalResponse.
|
||||
* Use `create(SerialHalResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const SerialHalResponseSchema: GenMessage<SerialHalResponse> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_serial_hal, 1);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.SerialHalResponse.Result
|
||||
*/
|
||||
export enum SerialHalResponse_Result {
|
||||
/**
|
||||
* @generated from enum value: OK = 0;
|
||||
*/
|
||||
OK = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: ERROR = 1;
|
||||
*/
|
||||
ERROR = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: BAD_REQUEST = 2;
|
||||
*/
|
||||
BAD_REQUEST = 2,
|
||||
|
||||
/**
|
||||
* @generated from enum value: UNSUPPORTED = 3;
|
||||
*/
|
||||
UNSUPPORTED = 3,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.SerialHalResponse.Result.
|
||||
*/
|
||||
export const SerialHalResponse_ResultSchema: GenEnum<SerialHalResponse_Result> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_serial_hal, 1, 0);
|
||||
|
||||
@@ -0,0 +1,384 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/storeforward.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/storeforward.proto.
|
||||
*/
|
||||
export const file_meshtastic_storeforward: GenFile = /*@__PURE__*/
|
||||
fileDesc("Ch1tZXNodGFzdGljL3N0b3JlZm9yd2FyZC5wcm90bxIKbWVzaHRhc3RpYyKcBwoPU3RvcmVBbmRGb3J3YXJkEjcKAnJyGAEgASgOMisubWVzaHRhc3RpYy5TdG9yZUFuZEZvcndhcmQuUmVxdWVzdFJlc3BvbnNlEjcKBXN0YXRzGAIgASgLMiYubWVzaHRhc3RpYy5TdG9yZUFuZEZvcndhcmQuU3RhdGlzdGljc0gAEjYKB2hpc3RvcnkYAyABKAsyIy5tZXNodGFzdGljLlN0b3JlQW5kRm9yd2FyZC5IaXN0b3J5SAASOgoJaGVhcnRiZWF0GAQgASgLMiUubWVzaHRhc3RpYy5TdG9yZUFuZEZvcndhcmQuSGVhcnRiZWF0SAASDgoEdGV4dBgFIAEoDEgAGs0BCgpTdGF0aXN0aWNzEhYKDm1lc3NhZ2VzX3RvdGFsGAEgASgNEhYKDm1lc3NhZ2VzX3NhdmVkGAIgASgNEhQKDG1lc3NhZ2VzX21heBgDIAEoDRIPCgd1cF90aW1lGAQgASgNEhAKCHJlcXVlc3RzGAUgASgNEhgKEHJlcXVlc3RzX2hpc3RvcnkYBiABKA0SEQoJaGVhcnRiZWF0GAcgASgIEhIKCnJldHVybl9tYXgYCCABKA0SFQoNcmV0dXJuX3dpbmRvdxgJIAEoDRpJCgdIaXN0b3J5EhgKEGhpc3RvcnlfbWVzc2FnZXMYASABKA0SDgoGd2luZG93GAIgASgNEhQKDGxhc3RfcmVxdWVzdBgDIAEoDRouCglIZWFydGJlYXQSDgoGcGVyaW9kGAEgASgNEhEKCXNlY29uZGFyeRgCIAEoDSK8AgoPUmVxdWVzdFJlc3BvbnNlEgkKBVVOU0VUEAASEAoMUk9VVEVSX0VSUk9SEAESFAoQUk9VVEVSX0hFQVJUQkVBVBACEg8KC1JPVVRFUl9QSU5HEAMSDwoLUk9VVEVSX1BPTkcQBBIPCgtST1VURVJfQlVTWRAFEhIKDlJPVVRFUl9ISVNUT1JZEAYSEAoMUk9VVEVSX1NUQVRTEAcSFgoSUk9VVEVSX1RFWFRfRElSRUNUEAgSGQoVUk9VVEVSX1RFWFRfQlJPQURDQVNUEAkSEAoMQ0xJRU5UX0VSUk9SEEASEgoOQ0xJRU5UX0hJU1RPUlkQQRIQCgxDTElFTlRfU1RBVFMQQhIPCgtDTElFTlRfUElORxBDEg8KC0NMSUVOVF9QT05HEEQSEAoMQ0xJRU5UX0FCT1JUEGpCCQoHdmFyaWFudEJrChRvcmcubWVzaHRhc3RpYy5wcm90b0IVU3RvcmVBbmRGb3J3YXJkUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward
|
||||
*/
|
||||
export type StoreAndForward = Message<"meshtastic.StoreAndForward"> & {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.RequestResponse rr = 1;
|
||||
*/
|
||||
rr: StoreAndForward_RequestResponse;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from oneof meshtastic.StoreAndForward.variant
|
||||
*/
|
||||
variant: {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.Statistics stats = 2;
|
||||
*/
|
||||
value: StoreAndForward_Statistics;
|
||||
case: "stats";
|
||||
} | {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.History history = 3;
|
||||
*/
|
||||
value: StoreAndForward_History;
|
||||
case: "history";
|
||||
} | {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.Heartbeat heartbeat = 4;
|
||||
*/
|
||||
value: StoreAndForward_Heartbeat;
|
||||
case: "heartbeat";
|
||||
} | {
|
||||
/**
|
||||
*
|
||||
* Text from history message.
|
||||
*
|
||||
* @generated from field: bytes text = 5;
|
||||
*/
|
||||
value: Uint8Array;
|
||||
case: "text";
|
||||
} | { case: undefined; value?: undefined };
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.
|
||||
* Use `create(StoreAndForwardSchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForwardSchema: GenMessage<StoreAndForward> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward.Statistics
|
||||
*/
|
||||
export type StoreAndForward_Statistics = Message<"meshtastic.StoreAndForward.Statistics"> & {
|
||||
/**
|
||||
*
|
||||
* Number of messages we have ever seen
|
||||
*
|
||||
* @generated from field: uint32 messages_total = 1;
|
||||
*/
|
||||
messagesTotal: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of messages we have currently saved our history.
|
||||
*
|
||||
* @generated from field: uint32 messages_saved = 2;
|
||||
*/
|
||||
messagesSaved: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Maximum number of messages we will save
|
||||
*
|
||||
* @generated from field: uint32 messages_max = 3;
|
||||
*/
|
||||
messagesMax: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Router uptime in seconds
|
||||
*
|
||||
* @generated from field: uint32 up_time = 4;
|
||||
*/
|
||||
upTime: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of times any client sent a request to the S&F.
|
||||
*
|
||||
* @generated from field: uint32 requests = 5;
|
||||
*/
|
||||
requests: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of times the history was requested.
|
||||
*
|
||||
* @generated from field: uint32 requests_history = 6;
|
||||
*/
|
||||
requestsHistory: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Is the heartbeat enabled on the server?
|
||||
*
|
||||
* @generated from field: bool heartbeat = 7;
|
||||
*/
|
||||
heartbeat: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Maximum number of messages the server will return.
|
||||
*
|
||||
* @generated from field: uint32 return_max = 8;
|
||||
*/
|
||||
returnMax: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Maximum history window in minutes the server will return messages from.
|
||||
*
|
||||
* @generated from field: uint32 return_window = 9;
|
||||
*/
|
||||
returnWindow: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.Statistics.
|
||||
* Use `create(StoreAndForward_StatisticsSchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForward_StatisticsSchema: GenMessage<StoreAndForward_Statistics> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward.History
|
||||
*/
|
||||
export type StoreAndForward_History = Message<"meshtastic.StoreAndForward.History"> & {
|
||||
/**
|
||||
*
|
||||
* Number of that will be sent to the client
|
||||
*
|
||||
* @generated from field: uint32 history_messages = 1;
|
||||
*/
|
||||
historyMessages: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The window of messages that was used to filter the history client requested
|
||||
*
|
||||
* @generated from field: uint32 window = 2;
|
||||
*/
|
||||
window: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Index in the packet history of the last message sent in a previous request to the server.
|
||||
* Will be sent to the client before sending the history and can be set in a subsequent request to avoid getting packets the server already sent to the client.
|
||||
*
|
||||
* @generated from field: uint32 last_request = 3;
|
||||
*/
|
||||
lastRequest: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.History.
|
||||
* Use `create(StoreAndForward_HistorySchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForward_HistorySchema: GenMessage<StoreAndForward_History> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward.Heartbeat
|
||||
*/
|
||||
export type StoreAndForward_Heartbeat = Message<"meshtastic.StoreAndForward.Heartbeat"> & {
|
||||
/**
|
||||
*
|
||||
* Period in seconds that the heartbeat is sent out that will be sent to the client
|
||||
*
|
||||
* @generated from field: uint32 period = 1;
|
||||
*/
|
||||
period: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* If set, this is not the primary Store & Forward router on the mesh
|
||||
*
|
||||
* @generated from field: uint32 secondary = 2;
|
||||
*/
|
||||
secondary: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.Heartbeat.
|
||||
* Use `create(StoreAndForward_HeartbeatSchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForward_HeartbeatSchema: GenMessage<StoreAndForward_Heartbeat> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* 001 - 063 = From Router
|
||||
* 064 - 127 = From Client
|
||||
*
|
||||
* @generated from enum meshtastic.StoreAndForward.RequestResponse
|
||||
*/
|
||||
export enum StoreAndForward_RequestResponse {
|
||||
/**
|
||||
*
|
||||
* Unset/unused
|
||||
*
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is an in error state.
|
||||
*
|
||||
* @generated from enum value: ROUTER_ERROR = 1;
|
||||
*/
|
||||
ROUTER_ERROR = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router heartbeat
|
||||
*
|
||||
* @generated from enum value: ROUTER_HEARTBEAT = 2;
|
||||
*/
|
||||
ROUTER_HEARTBEAT = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router has requested the client respond. This can work as a
|
||||
* "are you there" message.
|
||||
*
|
||||
* @generated from enum value: ROUTER_PING = 3;
|
||||
*/
|
||||
ROUTER_PING = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* The response to a "Ping"
|
||||
*
|
||||
* @generated from enum value: ROUTER_PONG = 4;
|
||||
*/
|
||||
ROUTER_PONG = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is currently busy. Please try again later.
|
||||
*
|
||||
* @generated from enum value: ROUTER_BUSY = 5;
|
||||
*/
|
||||
ROUTER_BUSY = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is responding to a request for history.
|
||||
*
|
||||
* @generated from enum value: ROUTER_HISTORY = 6;
|
||||
*/
|
||||
ROUTER_HISTORY = 6,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is responding to a request for stats.
|
||||
*
|
||||
* @generated from enum value: ROUTER_STATS = 7;
|
||||
*/
|
||||
ROUTER_STATS = 7,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router sends a text message from its history that was a direct message.
|
||||
*
|
||||
* @generated from enum value: ROUTER_TEXT_DIRECT = 8;
|
||||
*/
|
||||
ROUTER_TEXT_DIRECT = 8,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router sends a text message from its history that was a broadcast.
|
||||
*
|
||||
* @generated from enum value: ROUTER_TEXT_BROADCAST = 9;
|
||||
*/
|
||||
ROUTER_TEXT_BROADCAST = 9,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client is an in error state.
|
||||
*
|
||||
* @generated from enum value: CLIENT_ERROR = 64;
|
||||
*/
|
||||
CLIENT_ERROR = 64,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested a replay from the router.
|
||||
*
|
||||
* @generated from enum value: CLIENT_HISTORY = 65;
|
||||
*/
|
||||
CLIENT_HISTORY = 65,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested stats from the router.
|
||||
*
|
||||
* @generated from enum value: CLIENT_STATS = 66;
|
||||
*/
|
||||
CLIENT_STATS = 66,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested the router respond. This can work as a
|
||||
* "are you there" message.
|
||||
*
|
||||
* @generated from enum value: CLIENT_PING = 67;
|
||||
*/
|
||||
CLIENT_PING = 67,
|
||||
|
||||
/**
|
||||
*
|
||||
* The response to a "Ping"
|
||||
*
|
||||
* @generated from enum value: CLIENT_PONG = 68;
|
||||
*/
|
||||
CLIENT_PONG = 68,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested that the router abort processing the client's request
|
||||
*
|
||||
* @generated from enum value: CLIENT_ABORT = 106;
|
||||
*/
|
||||
CLIENT_ABORT = 106,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.StoreAndForward.RequestResponse.
|
||||
*/
|
||||
export const StoreAndForward_RequestResponseSchema: GenEnum<StoreAndForward_RequestResponse> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_storeforward, 0, 0);
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/xmodem.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/xmodem.proto.
|
||||
*/
|
||||
export const file_meshtastic_xmodem: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChdtZXNodGFzdGljL3htb2RlbS5wcm90bxIKbWVzaHRhc3RpYyK2AQoGWE1vZGVtEisKB2NvbnRyb2wYASABKA4yGi5tZXNodGFzdGljLlhNb2RlbS5Db250cm9sEgsKA3NlcRgCIAEoDRINCgVjcmMxNhgDIAEoDRIOCgZidWZmZXIYBCABKAwiUwoHQ29udHJvbBIHCgNOVUwQABIHCgNTT0gQARIHCgNTVFgQAhIHCgNFT1QQBBIHCgNBQ0sQBhIHCgNOQUsQFRIHCgNDQU4QGBIJCgVDVFJMWhAaQmIKFG9yZy5tZXNodGFzdGljLnByb3RvQgxYbW9kZW1Qcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.XModem
|
||||
*/
|
||||
export type XModem = Message<"meshtastic.XModem"> & {
|
||||
/**
|
||||
* @generated from field: meshtastic.XModem.Control control = 1;
|
||||
*/
|
||||
control: XModem_Control;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 seq = 2;
|
||||
*/
|
||||
seq: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 crc16 = 3;
|
||||
*/
|
||||
crc16: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bytes buffer = 4;
|
||||
*/
|
||||
buffer: Uint8Array;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.XModem.
|
||||
* Use `create(XModemSchema)` to create a new message.
|
||||
*/
|
||||
export const XModemSchema: GenMessage<XModem> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_xmodem, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.XModem.Control
|
||||
*/
|
||||
export enum XModem_Control {
|
||||
/**
|
||||
* @generated from enum value: NUL = 0;
|
||||
*/
|
||||
NUL = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SOH = 1;
|
||||
*/
|
||||
SOH = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: STX = 2;
|
||||
*/
|
||||
STX = 2,
|
||||
|
||||
/**
|
||||
* @generated from enum value: EOT = 4;
|
||||
*/
|
||||
EOT = 4,
|
||||
|
||||
/**
|
||||
* @generated from enum value: ACK = 6;
|
||||
*/
|
||||
ACK = 6,
|
||||
|
||||
/**
|
||||
* @generated from enum value: NAK = 21;
|
||||
*/
|
||||
NAK = 21,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CAN = 24;
|
||||
*/
|
||||
CAN = 24,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CTRLZ = 26;
|
||||
*/
|
||||
CTRLZ = 26,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.XModem.Control.
|
||||
*/
|
||||
export const XModem_ControlSchema: GenEnum<XModem_Control> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_xmodem, 0, 0);
|
||||
|
||||
@@ -0,0 +1,463 @@
|
||||
// Custom options for defining:
|
||||
// - Maximum size of string/bytes
|
||||
// - Maximum number of elements in array
|
||||
//
|
||||
// These are used by nanopb to generate statically allocable structures
|
||||
// for memory-limited environments.
|
||||
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file nanopb.proto (syntax proto2)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenExtension, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { EnumOptions, FieldDescriptorProto_Type, FieldOptions, FileOptions, MessageOptions } from "@bufbuild/protobuf/wkt";
|
||||
import { file_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file nanopb.proto.
|
||||
*/
|
||||
export const file_nanopb: GenFile = /*@__PURE__*/
|
||||
fileDesc("CgxuYW5vcGIucHJvdG8ipAcKDU5hbm9QQk9wdGlvbnMSEAoIbWF4X3NpemUYASABKAUSEgoKbWF4X2xlbmd0aBgOIAEoBRIRCgltYXhfY291bnQYAiABKAUSJgoIaW50X3NpemUYByABKA4yCC5JbnRTaXplOgpJU19ERUZBVUxUEiQKBHR5cGUYAyABKA4yCi5GaWVsZFR5cGU6CkZUX0RFRkFVTFQSGAoKbG9uZ19uYW1lcxgEIAEoCDoEdHJ1ZRIcCg1wYWNrZWRfc3RydWN0GAUgASgIOgVmYWxzZRIaCgtwYWNrZWRfZW51bRgKIAEoCDoFZmFsc2USGwoMc2tpcF9tZXNzYWdlGAYgASgIOgVmYWxzZRIYCglub191bmlvbnMYCCABKAg6BWZhbHNlEg0KBW1zZ2lkGAkgASgNEh4KD2Fub255bW91c19vbmVvZhgLIAEoCDoFZmFsc2USFQoGcHJvdG8zGAwgASgIOgVmYWxzZRIjChRwcm90bzNfc2luZ3VsYXJfbXNncxgVIAEoCDoFZmFsc2USHQoOZW51bV90b19zdHJpbmcYDSABKAg6BWZhbHNlEhsKDGZpeGVkX2xlbmd0aBgPIAEoCDoFZmFsc2USGgoLZml4ZWRfY291bnQYECABKAg6BWZhbHNlEh4KD3N1Ym1zZ19jYWxsYmFjaxgWIAEoCDoFZmFsc2USLwoMbWFuZ2xlX25hbWVzGBEgASgOMhEuVHlwZW5hbWVNYW5nbGluZzoGTV9OT05FEigKEWNhbGxiYWNrX2RhdGF0eXBlGBIgASgJOg1wYl9jYWxsYmFja190EjQKEWNhbGxiYWNrX2Z1bmN0aW9uGBMgASgJOhlwYl9kZWZhdWx0X2ZpZWxkX2NhbGxiYWNrEjAKDmRlc2NyaXB0b3JzaXplGBQgASgOMg8uRGVzY3JpcHRvclNpemU6B0RTX0FVVE8SGgoLZGVmYXVsdF9oYXMYFyABKAg6BWZhbHNlEg8KB2luY2x1ZGUYGCADKAkSDwoHZXhjbHVkZRgaIAMoCRIPCgdwYWNrYWdlGBkgASgJEkEKDXR5cGVfb3ZlcnJpZGUYGyABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRIZCgtzb3J0X2J5X3RhZxgcIAEoCDoEdHJ1ZRIuCg1mYWxsYmFja190eXBlGB0gASgOMgouRmllbGRUeXBlOgtGVF9DQUxMQkFDSyppCglGaWVsZFR5cGUSDgoKRlRfREVGQVVMVBAAEg8KC0ZUX0NBTExCQUNLEAESDgoKRlRfUE9JTlRFUhAEEg0KCUZUX1NUQVRJQxACEg0KCUZUX0lHTk9SRRADEg0KCUZUX0lOTElORRAFKkQKB0ludFNpemUSDgoKSVNfREVGQVVMVBAAEggKBElTXzgQCBIJCgVJU18xNhAQEgkKBUlTXzMyECASCQoFSVNfNjQQQCpaChBUeXBlbmFtZU1hbmdsaW5nEgoKBk1fTk9ORRAAEhMKD01fU1RSSVBfUEFDS0FHRRABEg0KCU1fRkxBVFRFThACEhYKEk1fUEFDS0FHRV9JTklUSUFMUxADKkUKDkRlc2NyaXB0b3JTaXplEgsKB0RTX0FVVE8QABIICgREU18xEAESCAoERFNfMhACEggKBERTXzQQBBIICgREU184EAg6VAoObmFub3BiX2ZpbGVvcHQSHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMY8gcgASgLMg4uTmFub1BCT3B0aW9uc1INbmFub3BiRmlsZW9wdDpVCg1uYW5vcGJfbXNnb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGPIHIAEoCzIOLk5hbm9QQk9wdGlvbnNSDG5hbm9wYk1zZ29wdDpUCg5uYW5vcGJfZW51bW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjyByABKAsyDi5OYW5vUEJPcHRpb25zUg1uYW5vcGJFbnVtb3B0OkYKBm5hbm9wYhIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY8gcgASgLMg4uTmFub1BCT3B0aW9uc1IGbmFub3BiQj4KGGZpLmthcHNpLmtvdGkuanBhLm5hbm9wYloiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZA", [file_google_protobuf_descriptor]);
|
||||
|
||||
/**
|
||||
* This is the inner options message, which basically defines options for
|
||||
* a field. When it is used in message or file scope, it applies to all
|
||||
* fields.
|
||||
*
|
||||
* @generated from message NanoPBOptions
|
||||
*/
|
||||
export type NanoPBOptions = Message<"NanoPBOptions"> & {
|
||||
/**
|
||||
* Allocated size for 'bytes' and 'string' fields.
|
||||
* For string fields, this should include the space for null terminator.
|
||||
*
|
||||
* @generated from field: optional int32 max_size = 1;
|
||||
*/
|
||||
maxSize: number;
|
||||
|
||||
/**
|
||||
* Maximum length for 'string' fields. Setting this is equivalent
|
||||
* to setting max_size to a value of length+1.
|
||||
*
|
||||
* @generated from field: optional int32 max_length = 14;
|
||||
*/
|
||||
maxLength: number;
|
||||
|
||||
/**
|
||||
* Allocated number of entries in arrays ('repeated' fields)
|
||||
*
|
||||
* @generated from field: optional int32 max_count = 2;
|
||||
*/
|
||||
maxCount: number;
|
||||
|
||||
/**
|
||||
* Size of integer fields. Can save some memory if you don't need
|
||||
* full 32 bits for the value.
|
||||
*
|
||||
* @generated from field: optional IntSize int_size = 7 [default = IS_DEFAULT];
|
||||
*/
|
||||
intSize: IntSize;
|
||||
|
||||
/**
|
||||
* Force type of field (callback or static allocation)
|
||||
*
|
||||
* @generated from field: optional FieldType type = 3 [default = FT_DEFAULT];
|
||||
*/
|
||||
type: FieldType;
|
||||
|
||||
/**
|
||||
* Use long names for enums, i.e. EnumName_EnumValue.
|
||||
*
|
||||
* @generated from field: optional bool long_names = 4 [default = true];
|
||||
*/
|
||||
longNames: boolean;
|
||||
|
||||
/**
|
||||
* Add 'packed' attribute to generated structs.
|
||||
* Note: this cannot be used on CPUs that break on unaligned
|
||||
* accesses to variables.
|
||||
*
|
||||
* @generated from field: optional bool packed_struct = 5 [default = false];
|
||||
*/
|
||||
packedStruct: boolean;
|
||||
|
||||
/**
|
||||
* Add 'packed' attribute to generated enums.
|
||||
*
|
||||
* @generated from field: optional bool packed_enum = 10 [default = false];
|
||||
*/
|
||||
packedEnum: boolean;
|
||||
|
||||
/**
|
||||
* Skip this message
|
||||
*
|
||||
* @generated from field: optional bool skip_message = 6 [default = false];
|
||||
*/
|
||||
skipMessage: boolean;
|
||||
|
||||
/**
|
||||
* Generate oneof fields as normal optional fields instead of union.
|
||||
*
|
||||
* @generated from field: optional bool no_unions = 8 [default = false];
|
||||
*/
|
||||
noUnions: boolean;
|
||||
|
||||
/**
|
||||
* integer type tag for a message
|
||||
*
|
||||
* @generated from field: optional uint32 msgid = 9;
|
||||
*/
|
||||
msgid: number;
|
||||
|
||||
/**
|
||||
* decode oneof as anonymous union
|
||||
*
|
||||
* @generated from field: optional bool anonymous_oneof = 11 [default = false];
|
||||
*/
|
||||
anonymousOneof: boolean;
|
||||
|
||||
/**
|
||||
* Proto3 singular field does not generate a "has_" flag
|
||||
*
|
||||
* @generated from field: optional bool proto3 = 12 [default = false];
|
||||
*/
|
||||
proto3: boolean;
|
||||
|
||||
/**
|
||||
* Force proto3 messages to have no "has_" flag.
|
||||
* This was default behavior until nanopb-0.4.0.
|
||||
*
|
||||
* @generated from field: optional bool proto3_singular_msgs = 21 [default = false];
|
||||
*/
|
||||
proto3SingularMsgs: boolean;
|
||||
|
||||
/**
|
||||
* Generate an enum->string mapping function (can take up lots of space).
|
||||
*
|
||||
* @generated from field: optional bool enum_to_string = 13 [default = false];
|
||||
*/
|
||||
enumToString: boolean;
|
||||
|
||||
/**
|
||||
* Generate bytes arrays with fixed length
|
||||
*
|
||||
* @generated from field: optional bool fixed_length = 15 [default = false];
|
||||
*/
|
||||
fixedLength: boolean;
|
||||
|
||||
/**
|
||||
* Generate repeated field with fixed count
|
||||
*
|
||||
* @generated from field: optional bool fixed_count = 16 [default = false];
|
||||
*/
|
||||
fixedCount: boolean;
|
||||
|
||||
/**
|
||||
* Generate message-level callback that is called before decoding submessages.
|
||||
* This can be used to set callback fields for submsgs inside oneofs.
|
||||
*
|
||||
* @generated from field: optional bool submsg_callback = 22 [default = false];
|
||||
*/
|
||||
submsgCallback: boolean;
|
||||
|
||||
/**
|
||||
* Shorten or remove package names from type names.
|
||||
* This option applies only on the file level.
|
||||
*
|
||||
* @generated from field: optional TypenameMangling mangle_names = 17 [default = M_NONE];
|
||||
*/
|
||||
mangleNames: TypenameMangling;
|
||||
|
||||
/**
|
||||
* Data type for storage associated with callback fields.
|
||||
*
|
||||
* @generated from field: optional string callback_datatype = 18 [default = "pb_callback_t"];
|
||||
*/
|
||||
callbackDatatype: string;
|
||||
|
||||
/**
|
||||
* Callback function used for encoding and decoding.
|
||||
* Prior to nanopb-0.4.0, the callback was specified in per-field pb_callback_t
|
||||
* structure. This is still supported, but does not work inside e.g. oneof or pointer
|
||||
* fields. Instead, a new method allows specifying a per-message callback that
|
||||
* will be called for all callback fields in a message type.
|
||||
*
|
||||
* @generated from field: optional string callback_function = 19 [default = "pb_default_field_callback"];
|
||||
*/
|
||||
callbackFunction: string;
|
||||
|
||||
/**
|
||||
* Select the size of field descriptors. This option has to be defined
|
||||
* for the whole message, not per-field. Usually automatic selection is
|
||||
* ok, but if it results in compilation errors you can increase the field
|
||||
* size here.
|
||||
*
|
||||
* @generated from field: optional DescriptorSize descriptorsize = 20 [default = DS_AUTO];
|
||||
*/
|
||||
descriptorsize: DescriptorSize;
|
||||
|
||||
/**
|
||||
* Set default value for has_ fields.
|
||||
*
|
||||
* @generated from field: optional bool default_has = 23 [default = false];
|
||||
*/
|
||||
defaultHas: boolean;
|
||||
|
||||
/**
|
||||
* Extra files to include in generated `.pb.h`
|
||||
*
|
||||
* @generated from field: repeated string include = 24;
|
||||
*/
|
||||
include: string[];
|
||||
|
||||
/**
|
||||
* Automatic includes to exclude from generated `.pb.h`
|
||||
* Same as nanopb_generator.py command line flag -x.
|
||||
*
|
||||
* @generated from field: repeated string exclude = 26;
|
||||
*/
|
||||
exclude: string[];
|
||||
|
||||
/**
|
||||
* Package name that applies only for nanopb.
|
||||
*
|
||||
* @generated from field: optional string package = 25;
|
||||
*/
|
||||
package: string;
|
||||
|
||||
/**
|
||||
* Override type of the field in generated C code. Only to be used with related field types
|
||||
*
|
||||
* @generated from field: optional google.protobuf.FieldDescriptorProto.Type type_override = 27;
|
||||
*/
|
||||
typeOverride: FieldDescriptorProto_Type;
|
||||
|
||||
/**
|
||||
* Due to historical reasons, nanopb orders fields in structs by their tag number
|
||||
* instead of the order in .proto. Set this to false to keep the .proto order.
|
||||
* The default value will probably change to false in nanopb-0.5.0.
|
||||
*
|
||||
* @generated from field: optional bool sort_by_tag = 28 [default = true];
|
||||
*/
|
||||
sortByTag: boolean;
|
||||
|
||||
/**
|
||||
* Set the FT_DEFAULT field conversion strategy.
|
||||
* A field that can become a static member of a c struct (e.g. int, bool, etc)
|
||||
* will be a a static field.
|
||||
* Fields with dynamic length are converted to either a pointer or a callback.
|
||||
*
|
||||
* @generated from field: optional FieldType fallback_type = 29 [default = FT_CALLBACK];
|
||||
*/
|
||||
fallbackType: FieldType;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message NanoPBOptions.
|
||||
* Use `create(NanoPBOptionsSchema)` to create a new message.
|
||||
*/
|
||||
export const NanoPBOptionsSchema: GenMessage<NanoPBOptions> = /*@__PURE__*/
|
||||
messageDesc(file_nanopb, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum FieldType
|
||||
*/
|
||||
export enum FieldType {
|
||||
/**
|
||||
* Automatically decide field type, generate static field if possible.
|
||||
*
|
||||
* @generated from enum value: FT_DEFAULT = 0;
|
||||
*/
|
||||
FT_DEFAULT = 0,
|
||||
|
||||
/**
|
||||
* Always generate a callback field.
|
||||
*
|
||||
* @generated from enum value: FT_CALLBACK = 1;
|
||||
*/
|
||||
FT_CALLBACK = 1,
|
||||
|
||||
/**
|
||||
* Always generate a dynamically allocated field.
|
||||
*
|
||||
* @generated from enum value: FT_POINTER = 4;
|
||||
*/
|
||||
FT_POINTER = 4,
|
||||
|
||||
/**
|
||||
* Generate a static field or raise an exception if not possible.
|
||||
*
|
||||
* @generated from enum value: FT_STATIC = 2;
|
||||
*/
|
||||
FT_STATIC = 2,
|
||||
|
||||
/**
|
||||
* Ignore the field completely.
|
||||
*
|
||||
* @generated from enum value: FT_IGNORE = 3;
|
||||
*/
|
||||
FT_IGNORE = 3,
|
||||
|
||||
/**
|
||||
* Legacy option, use the separate 'fixed_length' option instead
|
||||
*
|
||||
* @generated from enum value: FT_INLINE = 5;
|
||||
*/
|
||||
FT_INLINE = 5,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum FieldType.
|
||||
*/
|
||||
export const FieldTypeSchema: GenEnum<FieldType> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum IntSize
|
||||
*/
|
||||
export enum IntSize {
|
||||
/**
|
||||
* Default, 32/64bit based on type in .proto
|
||||
*
|
||||
* @generated from enum value: IS_DEFAULT = 0;
|
||||
*/
|
||||
IS_DEFAULT = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_8 = 8;
|
||||
*/
|
||||
IS_8 = 8,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_16 = 16;
|
||||
*/
|
||||
IS_16 = 16,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_32 = 32;
|
||||
*/
|
||||
IS_32 = 32,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_64 = 64;
|
||||
*/
|
||||
IS_64 = 64,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum IntSize.
|
||||
*/
|
||||
export const IntSizeSchema: GenEnum<IntSize> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 1);
|
||||
|
||||
/**
|
||||
* @generated from enum TypenameMangling
|
||||
*/
|
||||
export enum TypenameMangling {
|
||||
/**
|
||||
* Default, no typename mangling
|
||||
*
|
||||
* @generated from enum value: M_NONE = 0;
|
||||
*/
|
||||
M_NONE = 0,
|
||||
|
||||
/**
|
||||
* Strip current package name
|
||||
*
|
||||
* @generated from enum value: M_STRIP_PACKAGE = 1;
|
||||
*/
|
||||
M_STRIP_PACKAGE = 1,
|
||||
|
||||
/**
|
||||
* Only use last path component
|
||||
*
|
||||
* @generated from enum value: M_FLATTEN = 2;
|
||||
*/
|
||||
M_FLATTEN = 2,
|
||||
|
||||
/**
|
||||
* Replace the package name by the initials
|
||||
*
|
||||
* @generated from enum value: M_PACKAGE_INITIALS = 3;
|
||||
*/
|
||||
M_PACKAGE_INITIALS = 3,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum TypenameMangling.
|
||||
*/
|
||||
export const TypenameManglingSchema: GenEnum<TypenameMangling> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 2);
|
||||
|
||||
/**
|
||||
* @generated from enum DescriptorSize
|
||||
*/
|
||||
export enum DescriptorSize {
|
||||
/**
|
||||
* Select minimal size based on field type
|
||||
*
|
||||
* @generated from enum value: DS_AUTO = 0;
|
||||
*/
|
||||
DS_AUTO = 0,
|
||||
|
||||
/**
|
||||
* 1 word; up to 15 byte fields, no arrays
|
||||
*
|
||||
* @generated from enum value: DS_1 = 1;
|
||||
*/
|
||||
DS_1 = 1,
|
||||
|
||||
/**
|
||||
* 2 words; up to 4095 byte fields, 4095 entry arrays
|
||||
*
|
||||
* @generated from enum value: DS_2 = 2;
|
||||
*/
|
||||
DS_2 = 2,
|
||||
|
||||
/**
|
||||
* 4 words; up to 2^32-1 byte fields, 2^16-1 entry arrays
|
||||
*
|
||||
* @generated from enum value: DS_4 = 4;
|
||||
*/
|
||||
DS_4 = 4,
|
||||
|
||||
/**
|
||||
* 8 words; up to 2^32-1 entry arrays
|
||||
*
|
||||
* @generated from enum value: DS_8 = 8;
|
||||
*/
|
||||
DS_8 = 8,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum DescriptorSize.
|
||||
*/
|
||||
export const DescriptorSizeSchema: GenEnum<DescriptorSize> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 3);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb_fileopt = 1010;
|
||||
*/
|
||||
export const nanopb_fileopt: GenExtension<FileOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 0);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb_msgopt = 1010;
|
||||
*/
|
||||
export const nanopb_msgopt: GenExtension<MessageOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 1);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb_enumopt = 1010;
|
||||
*/
|
||||
export const nanopb_enumopt: GenExtension<EnumOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 2);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb = 1010;
|
||||
*/
|
||||
export const nanopb: GenExtension<FieldOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 3);
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
export * as Admin from "./dist/admin_pb.ts";
|
||||
export * as AppOnly from "./dist/apponly_pb.ts";
|
||||
export * as ATAK from "./dist/atak_pb.ts";
|
||||
export * as CannedMessages from "./dist/cannedmessages_pb.ts";
|
||||
export * as Channel from "./dist/channel_pb.ts";
|
||||
export * as ClientOnly from "./dist/clientonly_pb.ts";
|
||||
export * as Config from "./dist/config_pb.ts";
|
||||
export * as ConnectionStatus from "./dist/connection_status_pb.ts";
|
||||
export * as LocalOnly from "./dist/localonly_pb.ts";
|
||||
export * as Mesh from "./dist/mesh_pb.ts";
|
||||
export * as ModuleConfig from "./dist/module_config_pb.ts";
|
||||
export * as Mqtt from "./dist/mqtt_pb.ts";
|
||||
export * as PaxCount from "./dist/paxcount_pb.ts";
|
||||
export * as Portnums from "./dist/portnums_pb.ts";
|
||||
export * as PowerMon from "./dist/powermon_pb.ts";
|
||||
export * as RemoteHardware from "./dist/remote_hardware_pb.ts";
|
||||
export * as Rtttl from "./dist/rtttl_pb.ts";
|
||||
export * as StoreForward from "./dist/storeforward_pb.ts";
|
||||
export * as Telemetry from "./dist/telemetry_pb.ts";
|
||||
export * as Xmodem from "./dist/xmodem_pb.ts";
|
||||
export * as Admin from "./dist/meshtastic/admin_pb.ts";
|
||||
export * as AppOnly from "./dist/meshtastic/apponly_pb.ts";
|
||||
export * as ATAK from "./dist/meshtastic/atak_pb.ts";
|
||||
export * as CannedMessages from "./dist/meshtastic/cannedmessages_pb.ts";
|
||||
export * as Channel from "./dist/meshtastic/channel_pb.ts";
|
||||
export * as ClientOnly from "./dist/meshtastic/clientonly_pb.ts";
|
||||
export * as Config from "./dist/meshtastic/config_pb.ts";
|
||||
export * as ConnectionStatus from "./dist/meshtastic/connection_status_pb.ts";
|
||||
export * as LocalOnly from "./dist/meshtastic/localonly_pb.ts";
|
||||
export * as Mesh from "./dist/meshtastic/mesh_pb.ts";
|
||||
export * as ModuleConfig from "./dist/meshtastic/module_config_pb.ts";
|
||||
export * as Mqtt from "./dist/meshtastic/mqtt_pb.ts";
|
||||
export * as PaxCount from "./dist/meshtastic/paxcount_pb.ts";
|
||||
export * as Portnums from "./dist/meshtastic/portnums_pb.ts";
|
||||
export * as PowerMon from "./dist/meshtastic/powermon_pb.ts";
|
||||
export * as RemoteHardware from "./dist/meshtastic/remote_hardware_pb.ts";
|
||||
export * as Rtttl from "./dist/meshtastic/rtttl_pb.ts";
|
||||
export * as StoreForward from "./dist/meshtastic/storeforward_pb.ts";
|
||||
export * as Telemetry from "./dist/meshtastic/telemetry_pb.ts";
|
||||
export * as Xmodem from "./dist/meshtastic/xmodem_pb.ts";
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/oxc-project/oxc/main/npm/oxfmt/configuration_schema.json",
|
||||
"useTabs": false,
|
||||
"tabWidth": 2,
|
||||
"printWidth": 80,
|
||||
"ignorePatterns": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"protobufs",
|
||||
"**/locales/*-*/*.json",
|
||||
"**/packages/ui/"
|
||||
]
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/oxc-project/oxc/main/npm/oxlint/configuration_schema.json",
|
||||
"plugins": ["react", "react-perf", "jsx-a11y", "typescript", "import"],
|
||||
"rules": {
|
||||
"no-debugger": "error",
|
||||
"@typescript-eslint/no-explicit-any": "error",
|
||||
"@typescript-eslint/no-unused-vars": "error",
|
||||
"import/no-unused-modules": "error"
|
||||
},
|
||||
"ignorePatterns": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"protobufs",
|
||||
"**/locales/*-*/*.json",
|
||||
"**/packages/ui/"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["**/*.test.ts", "**/*.test.tsx", "**/__tests__/**/*.{ts,tsx}"],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"@typescript-eslint/no-non-null-assertion": "off"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
# Contributing to Meshtastic Web
|
||||
|
||||
Thank you for your interest in contributing to **Meshtastic Web**! 🎉
|
||||
We welcome all contributions—whether it’s fixing a typo, improving documentation, adding new features, or reporting bugs. This document outlines how to get started and the conventions we follow.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Code of Conduct
|
||||
We follow the [Meshtastic Code of Conduct](https://meshtastic.org/docs/legal/conduct/).
|
||||
Please make sure you are familiar with it before contributing.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Getting Started
|
||||
Before making changes, please take some time to explore the repository and its monorepo structure.
|
||||
Understanding how the packages are organized will make it much easier to contribute effectively.
|
||||
|
||||
[Meshtastic Web](https://github.com/meshtastic/web/)
|
||||
|
||||
### Prerequisites
|
||||
- [Node.js](https://nodejs.org/) (v22 or later)
|
||||
- [pnpm](https://pnpm.io/) (v10.14.x or later)
|
||||
- Git
|
||||
|
||||
### Installation
|
||||
Clone the repo and install dependencies:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/web.git meshtastic-web
|
||||
cd meshtastic-web
|
||||
pnpm install
|
||||
```
|
||||
|
||||
### Development
|
||||
Start the development server:
|
||||
|
||||
```bash
|
||||
pnpm --filter @meshtastic/web dev
|
||||
```
|
||||
|
||||
Once running, the site will be available at:
|
||||
👉 **http://localhost:3000**
|
||||
|
||||
---
|
||||
|
||||
## 🗂 Repository Structure
|
||||
Meshtastic Web uses a **monorepo** setup managed with **pnpm workspaces**:
|
||||
|
||||
```
|
||||
/packages
|
||||
├─ web # React frontend
|
||||
├─ core # Shared types & logic
|
||||
├─ transport-* # Transport layer packages
|
||||
└─ ...other packages
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Contribution Workflow
|
||||
|
||||
1. **Fork the repo** and create your branch from `main`.
|
||||
|
||||
### Branch Naming
|
||||
- Use [Conventional Commit](https://www.conventionalcommits.org/) style for your branch names:
|
||||
```
|
||||
feat/add-project-filter
|
||||
fix/storage-service
|
||||
chore/update-ci-cache
|
||||
```
|
||||
|
||||
2. **Make your changes locally** and verify that the app runs as expected at `http://localhost:3000`.
|
||||
|
||||
3. **Commit your changes** with a descriptive commit message that follows the [Conventional Commits](https://www.conventionalcommits.org/) style.
|
||||
|
||||
4. **Open a Pull Request (PR)** from your fork's branch to the main repository's `main` branch on GitHub:
|
||||
- Clearly describe the problem and solution.
|
||||
- Reference related issues (e.g., `Fixes #123`).
|
||||
- Keep PRs focused on a single feature or fix.
|
||||
- Complete all fields in the PR template.
|
||||
- Tag a **Meshtastic Web developer** in the PR for review.
|
||||
|
||||
5. **CI/CD**:
|
||||
- Our GitHub Actions workflows handle builds, linting, and packaging automatically.
|
||||
- All checks must pass before merge.
|
||||
|
||||
---
|
||||
|
||||
## 🌍 Internationalization (i18n)
|
||||
|
||||
Meshtastic Web supports multiple languages. If your changes introduce **new user-facing strings**:
|
||||
|
||||
- Add them to the **`en.json`** file.
|
||||
- Do **not** hardcode English strings directly in components.
|
||||
- This ensures they can be translated into other languages.
|
||||
|
||||
🔗 See these guides for more details:
|
||||
- [i18n Developer Guide](https://github.com/meshtastic/web/blob/main/packages/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md)
|
||||
- [Translation Contribution Guide](https://github.com/meshtastic/web/blob/main/packages/web/CONTRIBUTING_TRANSLATIONS.md)
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Testing
|
||||
Tests are written with [Vitest](https://vitest.dev/).
|
||||
|
||||
Run all tests locally with:
|
||||
|
||||
```bash
|
||||
pnpm --filter @meshtastic/web test
|
||||
```
|
||||
|
||||
Please include tests for new features and bug fixes whenever possible.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Commit Messages
|
||||
We use **Conventional Commits**:
|
||||
|
||||
- `feat:` – a new feature
|
||||
- `fix:` – a bug fix
|
||||
- `docs:` – documentation changes
|
||||
- `chore:` – maintenance, dependencies, build scripts
|
||||
- `refactor:` – code restructuring without feature changes
|
||||
- `test:` – adding or updating tests
|
||||
- `ci:` – CI/CD changes
|
||||
|
||||
Example:
|
||||
```
|
||||
feat: add toast notification system
|
||||
fix: correct caching issue in storage service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Tips for Contributors
|
||||
- Keep PRs **small, focused, and atomic**.
|
||||
- Discuss larger changes with the team on [Discord](https://discord.gg/meshtastic) before starting work.
|
||||
- If unsure, open a draft PR for early feedback.
|
||||
|
||||
---
|
||||
|
||||
## 🙌 Community
|
||||
Contributors are the heart of Meshtastic ❤️.
|
||||
Join the conversation:
|
||||
- [Discord](https://discord.gg/meshtastic)
|
||||
- [GitHub Discussions](https://github.com/meshtastic/web/discussions)
|
||||
|
||||
---
|
||||
|
||||
## 📜 License
|
||||
By contributing, you agree that your contributions will be licensed under the [GPL-3.0-only License](../../LICENSE).
|
||||
@@ -1,111 +0,0 @@
|
||||
# i18n Developer Guide
|
||||
|
||||
When developing new components, all user-facing text must be added as an i18n
|
||||
key and rendered using our translation functions. This ensures your UI can be
|
||||
translated into multiple languages.
|
||||
|
||||
## Adding New i18n Keys
|
||||
|
||||
### Search Before Creating
|
||||
|
||||
Before adding a new key, please perform a quick search to see if one that fits
|
||||
your needs already exists. Many common labels like "Save," "Cancel," "Name,"
|
||||
"Description," "Loading...," or "Error" are likely already present, especially
|
||||
in the common.json namespace. Reusing existing keys prevents duplication and
|
||||
ensures consistency across the application. Using your code editor's search
|
||||
function across the /i18n/locales/en/ directory is an effective way to do this.
|
||||
|
||||
### Key Naming and Structure Rules
|
||||
|
||||
To maintain consistency and ease of use, please adhere to the following rules
|
||||
when creating new keys in the JSON files.
|
||||
|
||||
- **Keys are camelCase:** `exampleKey`, `anotherExampleKey`.
|
||||
- **Avoid Deep Nesting:** One or two levels of nesting are acceptable for
|
||||
grouping related keys (e.g., all labels for a specific menu). However, nesting
|
||||
deeper than two levels should be avoided to maintain readability and ease of
|
||||
use.
|
||||
- **Good (1 level):**
|
||||
```json
|
||||
"buttons": {
|
||||
"save": "Save",
|
||||
"cancel": "Cancel"
|
||||
}
|
||||
```
|
||||
- **Acceptable (2 levels):**
|
||||
```json
|
||||
"userMenu": {
|
||||
"items": {
|
||||
"profile": "Profile",
|
||||
"settings": "Settings"
|
||||
}
|
||||
}
|
||||
```
|
||||
- **Avoid (3+ levels):**
|
||||
```json
|
||||
"userMenu": {
|
||||
"items": {
|
||||
"actions": {
|
||||
"viewProfile": "View Profile"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
- **Organize for Retrieval, Not UI Layout:** Keys should be named logically for
|
||||
easy retrieval, not to mirror the layout of your component.
|
||||
|
||||
### Namespace Rules
|
||||
|
||||
We use namespaces to organize keys. All source keys are added to the English
|
||||
(`en`) files located at `/packages/web/public/i18n/locales/en/`. Place your new keys in the
|
||||
appropriate file based on these rules:
|
||||
|
||||
- `common.json`:
|
||||
- All button labels (`save`, `cancel`, `submit`, etc.).
|
||||
- Any text that is repeated and used throughout the application (e.g.,
|
||||
"Loading...", "Error").
|
||||
- `ui.json`:
|
||||
- Labels and text specific to a distinct UI element or view that isn't a
|
||||
dialog or a config page.
|
||||
- `dialog.json`:
|
||||
- All text specific to modal dialogs (titles, body text, prompts).
|
||||
- `messages.json`:
|
||||
- Text specifically related to the messaging interface.
|
||||
- `deviceConfig.json` & `moduleConfig.json`:
|
||||
- Labels and descriptions for the settings on the Device and Module
|
||||
configuration pages.
|
||||
|
||||
## Using i18n Keys in Components
|
||||
|
||||
We use the `useTranslation` hook from `react-i18next` to access the translation
|
||||
function, `t`.
|
||||
|
||||
### Default Namespaces
|
||||
|
||||
Our i18next configuration has fallback namespaces configured which includes
|
||||
`common`, `ui`, and `dialog`. This means you **do not** need to explicitly
|
||||
specify these namespaces when calling the hook. The system will automatically
|
||||
check these files for your key.
|
||||
|
||||
For any keys in `common.json`, `ui.json`, or `dialog.json`, you can instantiate
|
||||
the hook simply:
|
||||
|
||||
```typescript
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
// In your component
|
||||
const { t } = useTranslation(["messages"]);
|
||||
|
||||
// Usage
|
||||
return <p>{t("someMessageLabel")}</p>;
|
||||
```
|
||||
|
||||
You can also specify the namespace on a per-call basis using the options object.
|
||||
This is useful if a component primarily uses a default namespace but needs a
|
||||
single key from another.
|
||||
|
||||
```typescript
|
||||
const { t } = useTranslation();
|
||||
|
||||
return <p>{t("someMessageLabel", { ns: "messages" })}</p>;
|
||||
```
|
||||
@@ -1,31 +0,0 @@
|
||||
# Contributing Translations
|
||||
|
||||
Thank you for your interest in making the Meshtastic Web Client accessible to a
|
||||
global audience! Your translation efforts are greatly appreciated.
|
||||
|
||||
## Our Translation Platform: Crowdin
|
||||
|
||||
We manage all our translations through a platform called
|
||||
[Crowdin](https://crowdin.com/). This allows for a collaborative and streamlined
|
||||
translation process. All translation work should be done on our Crowdin project,
|
||||
not directly in the code repository via Pull Requests.
|
||||
|
||||
### How to Get Started
|
||||
|
||||
1. **Create a Crowdin Account:** If you don't already have one, sign up for a
|
||||
free account on Crowdin.
|
||||
2. **Join Our Project:** Please ask for a link to our specific Crowdin project
|
||||
on the Meshtastic Discord.
|
||||
3. **Request Translator Role:** Once you have an account, join the Meshtastic
|
||||
Discord and notify an admin in the `#web` channel. They will grant you the
|
||||
necessary permissions to start translating.
|
||||
4. **Start Translating:** Once you have your role, you can begin translating the
|
||||
source labels into your native language directly on the Crowdin platform.
|
||||
|
||||
### Language Activation
|
||||
|
||||
A new language will only be added to the web client and appear in the language
|
||||
picker once its translation is 100% complete on Crowdin. The repository
|
||||
maintainers will handle this process once the milestone is reached.
|
||||
|
||||
Thank you for helping us bring Meshtastic to more users around the world!
|
||||
@@ -1,156 +0,0 @@
|
||||
# Meshtastic Web
|
||||
|
||||
<!--Project specific badges here-->
|
||||
|
||||
[](https://github.com/meshtastic/web/actions/workflows/ci.yml)
|
||||
[](https://cla-assistant.io/meshtastic/web)
|
||||
[](https://opencollective.com/meshtastic/)
|
||||
[](https://vercel.com?utm_source=meshtastic&utm_campaign=oss)
|
||||
|
||||
## Overview
|
||||
|
||||
Official [Meshtastic](https://meshtastic.org) web interface, that can be hosted
|
||||
or served from a node
|
||||
|
||||
**[Hosted version](https://client.meshtastic.org)**
|
||||
|
||||
## Stats
|
||||
|
||||

|
||||
|
||||
## Self-host
|
||||
|
||||
The client can be self hosted using the precompiled container images with an OCI
|
||||
compatible runtime such as [Docker](https://www.docker.com/) or
|
||||
[Podman](https://podman.io/). The base image used is
|
||||
[Nginx 1.27](https://hub.docker.com/_/nginx)
|
||||
|
||||
```bash
|
||||
# With Docker
|
||||
docker run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web
|
||||
|
||||
#With Podman
|
||||
podman run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web
|
||||
```
|
||||
|
||||
## Release Schedule
|
||||
|
||||
Our release process follows these guidelines:
|
||||
|
||||
- **Versioning:** We use Semantic Versioning (`Major.Minor.Patch`).
|
||||
- **Stable Releases:** Published around the beginning of each month (e.g.,
|
||||
`v2.6.1`).
|
||||
- **Pre-releases:** A pre-release is typically issued mid-month for testing and
|
||||
early adoption.
|
||||
- **Nightly Builds:** An experimental Docker image containing the latest
|
||||
cutting-edge features and fixes is automatically built nightly from the `main`
|
||||
branch.
|
||||
|
||||
### Nightly Builds
|
||||
|
||||
```bash
|
||||
# With Docker
|
||||
docker run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web:nightly
|
||||
#With Podman
|
||||
podman run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web:nightly
|
||||
```
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> - Nightly builds represent the latest development state and may contain
|
||||
> breaking changes
|
||||
> - These builds undergo automated testing but may be less stable than tagged
|
||||
> release versions
|
||||
> - Not recommended for production environments unless you are actively testing
|
||||
> new features
|
||||
> - No guarantee of backward compatibility between nightly builds
|
||||
|
||||
#### Version Information
|
||||
|
||||
Each nightly build is tagged with:
|
||||
|
||||
- The nightly tag for the latest build
|
||||
- A specific SHA for build reproducibility
|
||||
|
||||
### Feedback
|
||||
|
||||
If you encounter any issues with nightly builds, please report them in our
|
||||
[issues tracker](https://github.com/meshtastic/web/issues). Your feedback helps
|
||||
improve the stability of future releases
|
||||
|
||||
## Development & Building
|
||||
|
||||
You'll need to download the package manager used with this repo. You can install
|
||||
it by visiting [pnpm.io](https://pnpm.io/) and following the installation
|
||||
instructions listed on the home page.
|
||||
|
||||
### Development
|
||||
|
||||
Install the dependencies.
|
||||
|
||||
```bash
|
||||
cd packages/web &&
|
||||
pnpm install
|
||||
```
|
||||
|
||||
Start the development server:
|
||||
|
||||
```bash
|
||||
pnpm run dev
|
||||
```
|
||||
|
||||
### Building and Packaging
|
||||
|
||||
Build the project:
|
||||
|
||||
```bash
|
||||
pnpm run build
|
||||
```
|
||||
|
||||
GZip the output:
|
||||
|
||||
```bash
|
||||
pnpm run package
|
||||
```
|
||||
|
||||
### Why pnpm?
|
||||
|
||||
Meshtastic Web uses pnpm as its package manager for several compelling
|
||||
reasons:
|
||||
|
||||
- **Efficient Storage**: pnpm uses content-addressable storage, avoiding duplication
|
||||
of packages across projects and saving significant disk space.
|
||||
- **Fast Performance**: Faster package installation compared to other package
|
||||
managers through symlinks and efficient dependency resolution.
|
||||
- **Strict Dependency Management**: Prevents access to unlisted dependencies,
|
||||
ensuring better project reliability and security.
|
||||
- **Workspace Support**: Excellent monorepo support with workspaces for managing
|
||||
multiple packages efficiently.
|
||||
- **Reproducible Builds**: Lockfile ensures consistent builds across all
|
||||
environments.
|
||||
|
||||
### Contributing
|
||||
|
||||
We welcome contributions! Here’s how the deployment flow works for pull
|
||||
requests:
|
||||
|
||||
- **Preview Deployments:**\
|
||||
Every pull request automatically generates a preview deployment on Vercel.
|
||||
This allows you and reviewers to easily preview changes before merging.
|
||||
|
||||
- **Staging Environment (`client-test`):**\
|
||||
Once your PR is merged, your changes will be available on our staging site:
|
||||
[client-test.meshtastic.org](https://client-test.meshtastic.org/).\
|
||||
This environment supports rapid feature iteration and testing without
|
||||
impacting the production site.
|
||||
|
||||
- **Production Releases:**\
|
||||
At regular intervals, stable and fully tested releases are promoted to our
|
||||
production site: [client.meshtastic.org](https://client.meshtastic.org/).\
|
||||
This is the primary interface used by the public to connect with their
|
||||
Meshtastic nodes.
|
||||
|
||||
Please review our
|
||||
[Contribution Guidelines](https://github.com/meshtastic/web/blob/main/packages/web/CONTRIBUTING.md)
|
||||
before submitting a pull request. We appreciate your help in making the project
|
||||
better!
|
||||
@@ -1,10 +0,0 @@
|
||||
project_id_env: CROWDIN_PROJECT_ID
|
||||
api_token_env: CROWDIN_PERSONAL_TOKEN
|
||||
base_path: "."
|
||||
base_url: "https://meshtastic.crowdin.com/api/v2"
|
||||
|
||||
preserve_hierarchy: true
|
||||
|
||||
files:
|
||||
- source: "/public/i18n/locales/en/*.json"
|
||||
translation: "/public/i18n/locales/%locale%/%original_file_name%"
|
||||
@@ -1,29 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="system">
|
||||
<head>
|
||||
<!-- CookieYes banner -->
|
||||
<%- cookieYesScript %>
|
||||
<!-- End of CookieYes banner -->
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" />
|
||||
|
||||
<link rel="manifest" href="site.webmanifest" />
|
||||
<link rel="mask-icon" href="logo_black.svg" color="#67ea94" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="src/index.css"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
<meta name="theme-color" content="#67ea94" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="description" content="Meshtastic Web Client" />
|
||||
<title><%- title %></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<script type="module" src="src/index.tsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,2 +0,0 @@
|
||||
../dist/build.tar
|
||||
../dist/output
|
||||
@@ -1,15 +0,0 @@
|
||||
FROM nginx:1.29.1-alpine-slim
|
||||
|
||||
RUN rm -r /usr/share/nginx/html \
|
||||
&& mkdir -p /usr/share/nginx/html \
|
||||
&& mkdir -p /etc/nginx/conf.d
|
||||
|
||||
WORKDIR /usr/share/nginx/html
|
||||
|
||||
ADD ./packages/web/dist .
|
||||
|
||||
COPY ./packages/web/infra/default.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
@@ -1,51 +0,0 @@
|
||||
server {
|
||||
listen 8080;
|
||||
server_name localhost;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
location ~* \.(?:js|jsx|mjs|ts|tsx|css|png|jpg|jpeg|gif|ico|webp|avif|svg|ttf|otf|woff|woff2|map)$ {
|
||||
access_log off;
|
||||
etag on;
|
||||
|
||||
expires 3M;
|
||||
add_header Cache-Control "public, immutable";
|
||||
try_files $uri =404;
|
||||
}
|
||||
|
||||
location = /index.html {
|
||||
etag on;
|
||||
add_header Cache-Control "no-cache";
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html { internal; }
|
||||
|
||||
location ~ /\.ht { deny all; }
|
||||
|
||||
gzip on;
|
||||
gzip_disable "msie6";
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_buffers 16 8k;
|
||||
gzip_http_version 1.1;
|
||||
gzip_types
|
||||
text/plain
|
||||
text/css
|
||||
text/xml
|
||||
text/javascript
|
||||
application/javascript
|
||||
application/x-javascript
|
||||
application/json
|
||||
application/xml
|
||||
application/xml+rss
|
||||
font/ttf
|
||||
font/otf
|
||||
image/svg+xml;
|
||||
}
|
||||
@@ -1,121 +0,0 @@
|
||||
{
|
||||
"name": "meshtastic-web",
|
||||
"version": "2.6.6-0",
|
||||
"type": "module",
|
||||
"description": "Meshtastic web client",
|
||||
"license": "GPL-3.0-only",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/meshtastic/web.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/meshtastic/web/issues"
|
||||
},
|
||||
"homepage": "https://meshtastic.org",
|
||||
"scripts": {
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
"setup:certs": "mkcert localhost 127.0.0.1 ::1",
|
||||
"build": "vite build",
|
||||
"build:analyze": "BUNDLE_ANALYZE=true pnpm run build",
|
||||
"lint": "oxlint",
|
||||
"lint:fix": "oxlint --fix",
|
||||
"format": "oxfmt --check .",
|
||||
"format:fix": "oxfmt .",
|
||||
"check": "pnpm lint && pnpm format",
|
||||
"check:fix": "pnpm lint:fix && pnpm format:fix",
|
||||
"dev": "vite",
|
||||
"dev:https": "USE_HTTPS=true vite",
|
||||
"test": "vitest",
|
||||
"typecheck": "pnpm run tsc --noEmit",
|
||||
"preview": "vite preview",
|
||||
"docker:build": "docker build -t meshtastic-web:latest -f ./infra/Containerfile .",
|
||||
"package": "gzipper c -i html,js,css,png,ico,svg,json,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
"@meshtastic/core": "workspace:*",
|
||||
"@meshtastic/transport-http": "workspace:*",
|
||||
"@meshtastic/transport-web-bluetooth": "workspace:*",
|
||||
"@meshtastic/transport-web-serial": "workspace:*",
|
||||
"@noble/curves": "^1.9.2",
|
||||
"@radix-ui/react-accordion": "^1.2.12",
|
||||
"@radix-ui/react-alert-dialog": "^1.1.15",
|
||||
"@radix-ui/react-checkbox": "^1.3.3",
|
||||
"@radix-ui/react-dialog": "^1.1.15",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||
"@radix-ui/react-label": "^2.1.7",
|
||||
"@radix-ui/react-menubar": "^1.1.16",
|
||||
"@radix-ui/react-popover": "^1.1.15",
|
||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
||||
"@radix-ui/react-select": "^2.2.6",
|
||||
"@radix-ui/react-separator": "^1.1.7",
|
||||
"@radix-ui/react-slider": "^1.3.6",
|
||||
"@radix-ui/react-switch": "^1.2.6",
|
||||
"@radix-ui/react-tabs": "^1.1.13",
|
||||
"@radix-ui/react-toast": "^1.2.15",
|
||||
"@radix-ui/react-toggle-group": "^1.1.11",
|
||||
"@radix-ui/react-tooltip": "^1.2.8",
|
||||
"@radix-ui/react-visually-hidden": "^1.2.3",
|
||||
"@tailwindcss/vite": "^4.1.14",
|
||||
"@tanstack/react-router": "^1.170.15",
|
||||
"@tanstack/react-router-devtools": "^1.167.0",
|
||||
"@tanstack/router-cli": "^1.167.17",
|
||||
"@tanstack/router-devtools": "^1.167.0",
|
||||
"@turf/turf": "^7.2.0",
|
||||
"@types/node": "^24.7.0",
|
||||
"@types/web-bluetooth": "^0.0.21",
|
||||
"base64-js": "^1.5.1",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "^1.1.1",
|
||||
"crypto-random-string": "^5.0.0",
|
||||
"i18next": "^25.5.3",
|
||||
"i18next-browser-languagedetector": "^8.2.0",
|
||||
"i18next-http-backend": "^4.0.0",
|
||||
"idb-keyval": "^6.2.2",
|
||||
"immer": "^11.1.8",
|
||||
"js-cookie": "^3.0.7",
|
||||
"lucide-react": "^1.17.0",
|
||||
"maplibre-gl": "5.8.0",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
"react-error-boundary": "^6.0.0",
|
||||
"react-hook-form": "^7.78.0",
|
||||
"react-i18next": "^17.0.8",
|
||||
"react-map-gl": "8.1.0",
|
||||
"react-qrcode-logo": "^4.0.0",
|
||||
"rfc4648": "^1.5.4",
|
||||
"vite": "^7.3.2",
|
||||
"vite-plugin-html": "^3.2.2",
|
||||
"vite-plugin-pwa": "^1.3.0",
|
||||
"zod": "^4.1.12",
|
||||
"zustand": "5.0.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tanstack/router-plugin": "^1.168.18",
|
||||
"@testing-library/jest-dom": "^6.9.1",
|
||||
"@testing-library/react": "^16.3.0",
|
||||
"@testing-library/user-event": "^14.6.1",
|
||||
"@types/chrome": "^0.1.22",
|
||||
"@types/geojson": "^7946.0.16",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/react": "^19.2.1",
|
||||
"@types/react-dom": "^19.2.0",
|
||||
"@types/serviceworker": "^0.0.158",
|
||||
"@types/w3c-web-serial": "^1.0.8",
|
||||
"@vitejs/plugin-basic-ssl": "^2.1.0",
|
||||
"@vitejs/plugin-react": "^5.0.4",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"gzipper": "^8.2.1",
|
||||
"happy-dom": "^20.8.9",
|
||||
"oxfmt": "^0.16.0",
|
||||
"oxlint": "^1.41.0",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"tailwindcss": "^4.1.14",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"tar": "^7.5.11",
|
||||
"testing-library": "^0.0.2",
|
||||
"typescript": "^5.9.3",
|
||||
"vitest": "^4.1.8"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,64 +0,0 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="Layer_1"
|
||||
data-name="Layer 1"
|
||||
viewBox="0 0 1871.69 2607.94"
|
||||
>
|
||||
<defs><style>
|
||||
.cls-1, .cls-4 {
|
||||
fill: #2c2d3c;
|
||||
stroke-width: 0;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #fff;
|
||||
}
|
||||
</style></defs><path
|
||||
id="Body_background"
|
||||
fill="#67ea94"
|
||||
stroke-width="0"
|
||||
d="M1349.07 573.19h-855.5c-11.05 0-20.01 8.96-20.01 20.01v1219.19c0 10.12 8.21 18.33 18.33 18.33h854.27c8.7 0 15.75-7.05 15.75-15.75V586.04c0-7.1-5.75-12.85-12.85-12.85Zm-220.55 569.8h-411V787h411v355.99Z"
|
||||
data-name="Body background"
|
||||
/><path
|
||||
id="Body"
|
||||
d="M1166.62 5.54c-21.2 13.2-31.7 24.3-34.1 36-2.2 10.6-1.8 11.4 13.6 26.9 7.7 7.6 15.3 15.7 17.1 18l3.2 4.1-13.7 5.8c-26.6 11.4-109.5 54-125.2 64.4-4.6 3-5.5 4.1-5.5 6.5 0 3.5 2.7 5.6 5.1 4.1 1.3-.8 2.9-.5 6.4 1.2 9.4 4.5 34.3 10.5 59 14.3 6.9 1.1 27.6 3.3 46 5 49.1 4.5 71 8 71 11.5 0 2.2-21.1 23.5-37.5 38-8.2 7.2-24.4 20.9-36 30.5-29 24-42.2 35.9-62 56.1-27.2 27.7-54.4 60.8-60.9 74.1-2.5 5-2.7 6.1-1.7 9.1.7 1.9 8.9 12.6 18.4 23.9 9.5 11.2 24.2 29.2 32.8 39.9 30.8 38.2 48.3 56.9 75.2 80.4l13.7 12-118.2.6c-65.1.3-203.8.7-308.4.8-182.2.3-221.1.8-237.2 3.1-11.6 1.6-16.2 4.8-18.1 12.7-.9 3.3-1.3 130.7-1.6 479.6-.3 261.4-.7 530.3-.9 597.7-.5 142.7-.1 152.6 6.6 163.8 2.6 4.2 6.9 6.4 13.7 6.8 3.1.2 55 .6 115.4 1 99.7.6 109.7.8 109.7 2.3.2 11.7-9.3 741.7-9.6 742-.2.3-75.5-1.9-167.2-4.8-158.1-4.9-167.1-5.1-171-3.5-11.6 4.6-12.2 20.8-1 26.3 4.1 1.9 10.2 2.2 165.3 7.1 88.6 2.8 168.2 5.1 177 5.1h16l4.7-5.3c2.6-2.9 5.2-6.2 5.7-7.3.7-1.5 10.4-722.4 10.1-757.4v-4.4l159.2.7c87.6.4 159.3.8 159.4.9 0 .1 2.7 169.2 5.9 375.7l5.7 375.5 3 6c1.6 3.3 4.2 7.6 5.8 9.5l2.9 3.5 167.8-.3c158.5-.4 168-.5 171.9-2.2 11.2-4.9 12.1-19.9 1.5-25.8l-3.9-2.2h-318.7l-.3-7.7c-.3-10.8-11.2-710.5-11.2-722.6v-9.7h121.8c85.3.1 123.8-.2 128.7-1 12.4-2 18.1-6.1 21.9-15.8 1.5-4 1.6-46.7 1.6-608.5 0-332.3-.3-610.5-.6-618.2-.7-15.7-1.6-20-4.7-21.8-1.7-.9-24.6-1.3-101.2-1.5l-99-.2-3-3.4c-1.6-1.9-9.1-8.8-16.5-15.4-24.3-21.5-43.4-42.2-71.5-77.2-8.2-10.2-21.9-26.8-30.5-37-8.5-10.2-16.8-20-18.3-21.9-3.4-4.1-3.2-5.1 3.8-15.6 11.1-16.9 35.8-45.8 59-69 16.8-16.9 30.6-29.2 57-51 36-29.7 54.9-46.8 67.7-60.9 8.5-9.4 8.9-10.1 8.6-14-.3-3.8-.7-4.3-5-6.4-8-4-29.7-7.2-76.3-11.2-36.5-3.1-62.7-7.4-84.3-13.6-8.9-2.6-17.8-6.1-17.1-6.8 1.4-1.3 31.8-17.6 56.9-30.4 31.9-16.3 56.3-27.9 73.3-34.8l10.7-4.5 6.3 5.2c11.6 9.7 23.7 13.6 38.1 12.1 8.3-.8 10-2.6 11.7-11.7 2.1-11.2-.9-22.9-12-47.4-9.8-21.7-19.8-36.9-31.4-47.9-7.3-6.8-8.8-6.8-20.6.5Zm190.1 570.1c1.1 1.1 1.3 114 1.6 619.5l.2 618.3-2.2 4.4c-3.2 6.3-8.1 8.7-19.8 10-9.2.9-48.7.8-618.5-.9-254.3-.8-236.4-.3-239.4-6.6-3.2-6.6-4.2-16-4.7-44-.2-15.4 0-283.4.4-595.5.5-312.1.5-569.2 0-571.3-.9-4.2.5-18.4 2.5-24.5 1-3.2 1.9-3.9 6.3-5.4 10.9-3.6 32.3-3.9 396.9-4.7 448.7-1 475-1 476.7.7Z"
|
||||
class="cls-1"
|
||||
/><path d="M717.52 787h411v355.99h-411z" class="cls-4" /><path
|
||||
id="Dot"
|
||||
fill="#454656"
|
||||
stroke="#2c2d3c"
|
||||
stroke-miterlimit="10"
|
||||
stroke-width="7"
|
||||
d="M1246.61 622.56c-10.79 3.78-18.53 10.79-23.69 21.39-2.77 5.62-2.95 6.45-2.95 16.59s.18 10.97 2.95 16.87c7.56 15.86 22.03 24.34 40.29 23.51 7.38-.28 9.31-.74 15.58-3.69 8.67-4.15 15.4-10.6 18.99-18.25 9.96-21.02 1.94-43.79-19.18-54.21-6.55-3.23-7.47-3.41-17.06-3.69-8.02-.18-11.25.18-14.94 1.48Z"
|
||||
/><path
|
||||
id="Eyes"
|
||||
d="M651.62 705.94c-8 1.6-10.3 5.2-12 19.4-1.4 12-1.8 452.5-.4 459.2 1.4 6.4 2.7 8.9 5.7 10.8 2.1 1.4 31.7 1.6 275.1 1.5 150 0 275.3-.3 278.4-.6 6.8-.7 9.6-1.9 10.7-4.8.5-1.1.7-106.1.4-235.6-.6-263.8.3-239.2-8.5-243.1-5.2-2.3-17.1-5-23-5.1-8-.3-489.4-2.8-505.5-2.7-9.1.1-18.5.5-20.9 1Zm186.5 82c6.5 1.2 8.4 2.3 8.4 4.9s-2.3 3.1-11.3 1.8c-12.3-1.6-35.6-.4-50.4 2.7-14.5 3-33.7 9.1-43.7 13.9-7.3 3.5-16.6 10-16.6 11.6 0 .5 1.7 1 3.8 1.2 3.2.3 3.7.6 3.7 2.8s-.4 2.5-5.8 2.8c-7 .4-8.7-.8-8.7-5.6 0-10.9 30.8-26.7 65.5-33.7 6.6-1.3 13.6-2.6 15.5-2.8 7.9-.9 34-.6 39.6.4Zm224.9 3.3c35.7 7.5 65.5 22.9 65.5 33.8 0 4.8-1.7 6-8.7 5.6-5.4-.3-5.8-.5-5.8-2.8s.5-2.5 3.8-2.8c2-.2 3.7-.7 3.7-1.2 0-1.6-9.3-8.1-16.6-11.6-10-4.8-29.2-10.9-43.7-13.9-14.8-3.1-38.1-4.3-50.4-2.7-9 1.3-11.3.9-11.3-1.8 0-4.7 7.5-6 32-5.5 16.1.3 21.6.8 31.5 2.9Zm-238.5 58.4c4.6 2.3 5.9 3.6 8.4 8.4 3.2 6.3 3.7 10.2 5.6 42.3.6 9.9 1.5 26.3 2.1 36.5 1.2 20.5.5 96.3-1.1 122.6-3.3 53.9-5 74.5-6.1 76.6-.5 1-1.6 1.8-2.5 1.8-.8 0-4.1.9-7.3 2-17.1 5.7-43.2-.5-50.3-12-6-9.7-7.6-27-8.8-97-.5-27.2-1.4-56.5-2.2-65-.7-8.5-1.3-29-1.3-45.5 0-40.5 1.5-46.7 14.4-59.6 5.3-5.2 8.2-7.2 14.6-9.9 10.4-4.3 13.6-5 22-4.4 4.9.3 8.6 1.3 12.5 3.2Zm230.7 1.9c7.3 3 10 4.8 15.4 10.2 12.9 12.9 14.4 19.1 14.4 59.6 0 16.5-.6 37-1.3 45.5-.8 8.5-1.7 37.8-2.2 65-1.2 70-2.8 87.3-8.8 97-7.1 11.5-33.2 17.7-50.3 12-3.2-1.1-6.5-2-7.3-2-.9 0-2-.8-2.5-1.8-1.1-2.1-2.8-22.7-6.1-76.6-1.6-26.3-2.3-102.1-1.1-122.6 4.3-73.4 4.1-71.4 7.5-78.5 6.2-12.6 23.2-15.8 42.3-7.8Z"
|
||||
class="cls-1"
|
||||
/><path
|
||||
id="Meshtastic_M"
|
||||
fill="#2c2d3c"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="0"
|
||||
d="m1034.49 1359.63-215.84 316.53-45.53-31.04 238.56-349.85c5.12-7.52 13.64-12.02 22.74-12.03 9.1 0 17.62 4.48 22.76 11.99l239.11 349.3-45.47 31.13-216.33-316.02Zm-452.9 316.2 252.13-369.74-45.53-31.05-252.13 369.73 45.53 31.05Z"
|
||||
data-name="Meshtastic M"
|
||||
/><path
|
||||
id="Left_hand_background"
|
||||
d="M407.1 1220.22v-6.7h-23.16v-8.98c0-11.12-1.6-21.87-4.56-32.04-3.4-45.86-33.88-84.17-75.5-99.01v-2.21c0-10.27-5.04-19.37-12.77-24.96v-2.05c0-10.55-5.65-19.77-14.08-24.82v-5.24c0-6.87-2.64-13.12-6.95-17.81l-39.54-206.2c-1.2-6.26-4.31-11.66-8.6-15.74-.62-15.68-13.52-28.2-29.35-28.2-15.68 0-28.49 12.29-29.33 27.76-5.01 5.27-8.1 12.39-8.1 20.24v3.47c-5.03 6.13-8.05 13.97-8.05 22.52v146.27c0 8.02 2.66 15.43 7.15 21.38h-10.15c-6.08-10.25-17.26-17.12-30.04-17.12h-10.13c-13.97 0-25.55 10.26-27.61 23.65-16.09 8.06-28.16 22.94-32.44 40.85-9.36 8.59-16.53 19.51-20.63 31.83-11.66 13.48-18.74 31.05-18.74 50.28v32.99c0 18.66 10.95 34.76 26.77 42.23 6.87 11.27 18.91 19.02 32.83 19.97 8.64 8.63 20.58 13.97 33.76 13.97h.65c.06 18.39 10.27 34.39 25.32 42.7v2.98l-31.54 15.79c-3.23 1.62-4.54 5.54-2.92 8.77l27.13 54.21c2.71 5.41 8.24 8.47 13.91 8.31 7.05 12.52 19.2 21.77 33.64 24.94 4.35 8.18 12.87 13.82 22.79 14.02l45.97.91c12.54.25 23.88-5.09 31.68-13.72h2.9c19.87 0 38.76-4.16 55.88-11.64 57.39-6.54 101.98-55.26 101.98-114.4v-12.05c0-12.25-7.5-22.75-18.16-27.16Z"
|
||||
class="cls-4"
|
||||
data-name="Left hand background"
|
||||
/><path
|
||||
id="Left_Hand"
|
||||
d="M180.02 744.24c-2.7 1.3-7.1 4.6-9.7 7.3-9.1 9.9-19.7 35.8-25.5 63l-2.8 12.8.1 49.5c0 52.1 1.1 75.2 4.5 94.8 1 6.3 1.9 11.9 1.9 12.4 0 .6-3.7-2.5-8.3-6.9-11.1-10.6-15.7-12.8-26.7-12.7-9.8.1-14.6 1.8-24.4 8.8-13 9.3-34.8 35.8-54.7 66.6-19 29.4-26.9 47.1-32 71.5-3.4 16.1-3.2 36.1.5 50 3.2 12.1 8.1 22.9 13.1 28.3 2 2.3 7.1 6.3 11.3 9 10.8 6.9 43 22.9 53.6 26.6l8.8 3.1 7.2 12.8c9 16.1 14.1 22.7 21.1 27.4l5.6 3.7-4.3 1.6c-26.9 10.4-28.9 11.3-30.8 14-1.1 1.6-2 3.7-2 4.7 0 2.4 13.9 34.6 18.7 43.3 7.2 13.2 15.8 23.2 29.7 34.7 16.4 13.7 26.1 20.2 39 26.4 13.9 6.6 25.5 9.3 36.6 8.4 12.4-1 22.4-3.1 38.5-8.1 7.9-2.4 19.1-5.5 24.9-6.9 5.8-1.4 14.7-3.8 19.9-5.5 5.1-1.6 18-5.2 28.5-8 30.2-7.9 59.5-19.7 70.7-28.7 6.4-5.1 16.6-19.3 22.2-31 2.7-5.6 6-15.4 8.6-25 4.1-15.4 4.2-16.2 4.2-31.8 0-17.1-1.1-23.6-5.1-31.6-5.5-11-13.1-16.3-23.4-16.4-3.6 0-8 .3-9.8.7-3.1.7-3.2.7-2.5-2 .5-1.5.8-7.7.7-13.7 0-9.7-.4-12.4-3.8-23.5-11.8-39.3-19.9-57.4-34.4-76.7-5.3-7.1-7.6-8.8-10.3-7.8-.8.3-2.6-.3-4-1.2-17.5-11.7-23-17.7-35.4-38.4-22.6-38.2-34.7-77-44.4-143.4-1.7-11.6-4.2-28.7-5.6-38-1.4-9.4-3.2-21.6-4-27.2-1.5-10.9-3-17.4-10.1-43.3-4.9-17.7-6.8-22.3-14.2-33.4-12.9-19.5-16.9-22.6-29.3-22.6-5.7 0-8.6.6-12.4 2.4Zm20.1 5.5c4.4 2 8.2 6.5 16.6 19.7 6.8 10.5 7.4 12.1 11.7 27.1 7 24.4 10.2 38.5 12.1 52.8 1 7.7 2.5 18 3.4 23 .8 4.9 1.8 11.7 2.1 15 1.1 10.6 7.4 49 10.1 61.7 6.9 33.1 15.3 59.9 24.9 79.7 6.6 13.4 16.5 31.1 19.3 34.3 1.9 2.2 1.8 2.2-4.6-.2-7.7-3-21-2.8-27.7.4-9.8 4.6-18.9 16.8-23.6 31.6-3.8 12.3-4.7 20.2-3.7 32.3 1 12.7 3 21.2 7.2 30.2 7.3 15.7 16.1 25.9 30.2 35.2 22.4 14.5 47.8 22.4 82.1 25.5l13.7 1.2-4.3 1.8c-2.3 1-9.9 2.9-16.9 4.4-7 1.5-20.3 5.3-29.5 8.5-29.2 10.1-50.1 14.5-99.7 20.9-28.9 3.7-62.9 9.1-78.5 12.4-8.3 1.7-11.4 1.2-19.9-3.3-8.1-4.3-16.2-14.3-23.5-28.9l-3.1-6.2h8.2c4.6 0 12.8-.7 18.2-1.5 5.5-.8 11.6-1.5 13.7-1.5 6.1 0 18.1-4.3 26.1-9.4 4.2-2.7 13.4-10.5 21.5-18.4 15.9-15.4 18.4-19.4 23.9-38.2 3.9-13.5 3.8-22.5-.3-35-1.7-5.2-4.8-15.1-6.8-22-11.3-38.1-20.2-61.5-30.5-80.3-3.7-6.8-7-13.5-7.3-14.9-.4-1.4-2.2-5.1-4.1-8.2-8.9-14.9-12.5-50.6-12.9-128.4-.1-34.8.1-38.6 2-49.2 5.5-28.9 16.4-57.2 26-66.7 6.7-6.7 16.2-8.9 23.9-5.4Zm-75.9 223.2c2.5 1.2 9.2 6.6 15.1 12 9 8.4 11.4 11.3 15.2 18.4 2.5 4.6 6.1 11.2 8.1 14.7 7.3 12.8 9.2 16.5 13.5 26.9 8.3 20.2 30.1 88.8 29 91.4-.7 1.9-3.2 1.9-13.9 0-19.4-3.4-34.8-11.1-53.2-26.5-22.6-19.1-38.4-35.1-53.4-54.5-8.7-11.1-23.7-33.2-25-36.7-1.6-4.3 23.2-33.2 35.5-41.3 10.2-6.8 20.9-8.4 29.1-4.4Zm-59.7 65.4c18.6 28 33.5 45.1 59.5 68.3 17.3 15.5 25.2 21.1 38 27.3 12.8 6.1 22.5 8.8 34.8 9.6 8.2.5 9.7.9 9.7 2.3 0 2.5-5.9 21.7-8.5 27.5-2.4 5.6-10.9 15.2-19.9 22.7l-5.8 4.9-8.2-.6c-14.7-1.2-43.1-12.1-64-24.5-33.2-19.8-62.4-49.6-77.6-79.3-2.7-5.4-5-10.5-5-11.3 0-5.6 35-63.9 37.1-61.7.3.5 4.8 7.1 9.9 14.8Zm231.1 31.7c5.3 2.4 22.2 13.2 33.5 21.3 3.1 2.2 6.6 3.8 8.5 4 3.1.2 4.1 1.2 10.2 10.1 11.9 17.3 19 34.1 29.6 69.9 4 13.7 5.2 21.9 4.2 28.2-1.3 8.5-1.6 8.7-16.1 8-40.6-1.9-82-17.7-99.4-37.8-5-5.9-11.1-16.4-14.2-24.6-3.3-8.8-5.7-24.9-5-33.8.6-8.7 5.8-25.5 9.7-31.6 3.9-6.2 13-14.7 16.5-15.4 1.6-.4 3.4-.8 3.9-1.1 3-1.1 13.5.4 18.6 2.8Zm-268.6 46.6c16.2 24.3 40.8 47.5 67.1 63.5 22.1 13.5 49.9 24.7 65.5 26.5l6.4.8-4.5 2.9c-6.7 4.3-15.9 7.8-21.5 8.1-2.7.2-9.2 1.1-14.2 2-6.8 1.2-12.9 1.5-23 1.2-16.4-.6-20.1-1.7-44.8-14-29.6-14.8-38-21-42.9-31.8-10-22-11.1-45.9-3.4-74.3l2.1-7.9 4.3 8.2c2.4 4.5 6.4 11.1 8.9 14.8Zm378.2 103.3c1.5.5 4.3 2.5 6.1 4.2 7.3 6.9 10.2 17.1 10.2 35.8 0 10.9-.4 14.3-3.4 26.5-1.9 7.7-4.7 17.2-6.1 21-5.1 13.4-16.7 30.6-24.8 36.5-11.8 8.6-40.4 19.8-69 26.9-6.7 1.7-17.8 4.9-24.7 7-6.9 2.2-17.4 5.1-23.5 6.5-6 1.4-15.7 4.1-21.5 6-14.3 4.8-26.7 7.4-38 8.1-8 .6-10.8.3-17.5-1.5-15.3-4.2-33.7-14.7-51.3-29.3-16.7-14-22.8-21.2-31.4-36.8-5.1-9.3-17.1-37.9-16.5-39.4s30.2-12.6 39.7-15c17-4.1 61-11.4 95.5-15.6 43.6-5.4 62.3-9.3 93.5-19.6 12.4-4 27.7-8.4 34-9.8 6.3-1.3 14.4-3.6 18-5.1 18.2-7.7 24.1-8.9 30.7-6.4Z"
|
||||
class="cls-1"
|
||||
data-name="Left Hand"
|
||||
/><path
|
||||
id="Right_hand_background"
|
||||
d="M1819.8 966.37c-25.94-6.6-55.37 12.34-80.21 47.23-7.22 2.11-13.85 6.48-18.71 12.96l-62.66 83.5c-3.95 5.27-6.58 11.11-7.97 17.13l-5.41 1.59c-13.38 3.92-23.69 13.25-29.27 24.9-5.72 2.53-10.71 6.15-14.76 10.55-3.12-3.5-6.87-6.34-11.02-8.41l-8.6-29.33c-2.43-8.29-7.39-15.15-13.8-19.98-1.3-3.05-2.95-5.86-4.89-8.42l-1.83-6.25c-5.53-18.87-25.32-29.69-44.19-24.16l-1.17.34c-17.05 5-27.52 21.63-25.3 38.71-2.25 3.8-4 7.88-5.2 12.14-6.93 11-9.29 24.81-5.34 38.27l4.28 14.6c-2.84 8.7-3.18 18.32-.41 27.76l43.82 149.44-4.59-1.51c-5.42-1.79-11.01-1.75-16.1-.23l-5.24-1.73c-6.73-2.22-14 1.43-16.22 8.17-1.95 5.9-1.07 12.05 1.87 17.01-2.25 10.55-.41 21.21 4.6 30.14 1.2 12.02 7.42 23.12 17.2 30.4 5.03 12.25 15.17 22.32 28.74 26.8l6.25 2.06c4.14 7.04 10.75 12.68 19.12 15.44l20.53 6.78 1.08 3.7 5.36-1.57 15.54 5.13 1.09 3.73 5.4-1.58 78.79 26.01c6.91 2.28 14.02 2.19 20.48.2l18.24 6.02c18.8 6.21 39.08-4 45.29-22.81 6.21-18.8-4-39.08-22.81-45.29l-4.43-1.46c-1.72-4.44-4.32-8.51-7.65-11.96l13.47-3.95-.5-1.72c10.19-4.24 17.61-12.72 20.8-22.72l4.6 3.75 41.26-50.64c3.18-3.9 5.25-8.34 6.27-12.94 25.27-12.22 42.7-38.1 42.7-68.05v-186.05c5.89-69.09-12.51-124.56-48.47-133.71Z"
|
||||
class="cls-4"
|
||||
data-name="Right hand background"
|
||||
/><path
|
||||
id="Right_Hand"
|
||||
d="M1797.02 960.24c-13.1 3.3-25.8 12.9-52.1 39.1-30.1 30-54.1 58.2-80.5 94.5-15.4 21.1-16.2 22.5-15.6 25.7.5 2.7.2 2.9-5.5 4.7-3.3 1-7.2 2.9-8.7 4-1.4 1.2-3.9 3-5.6 4-7.2 4.5-16.8 13.3-22.5 20.7-5.2 6.7-6.5 7.8-7.6 6.7-2.9-3-12.7-23.3-17.8-37.1-3-8.1-7.4-18.3-9.7-22.7-7.7-14.4-23.3-30.5-34.8-35.8-7.3-3.4-18-2.9-26.1 1.3-7.9 4-17.1 13.8-21.3 22.7-8.5 17.7-11.2 34-11.1 66.8 0 24.7 1.1 36.1 6 62.9 5.7 31.1 21.6 85.9 33.3 114.6 2.2 5.4 3.8 10.1 3.6 10.3s-5.8-.1-12.4-.7c-14.8-1.5-18.2-.9-22 3.5-6.6 7.5-6.7 17.7-.6 51.3 1.2 6.6 2.8 10.9 7.1 19 3.1 5.8 6.4 11.7 7.3 13.1s2.3 3.8 3.1 5.4 4.9 6.3 9 10.5c6.7 6.8 10.1 9.1 32.5 21.8 32.7 18.6 41.4 22.6 69.5 32.1 41.9 14.1 68.2 21 94.5 24.6 6.1.8 16.3 2.4 22.8 3.6 20.4 3.5 26.1 2.6 34.3-5.1 2.8-2.8 6.3-6.7 7.7-8.7 3.8-5.5 6.8-15.6 7-23.3.2-5.7-.2-7.2-2.1-9.6-1.2-1.5-4.4-5.7-7-9.3-8.5-11.8-35.6-37.2-44.4-41.6-7.5-3.8-22.4-9-33.6-11.8-10.4-2.6-27.5-9.1-46.7-17.9-43.6-19.9-57.9-26.8-76.7-36.6-11.6-6.2-23.4-11.9-26.2-12.8s-5.5-2-6-2.4c-.6-.5-1.8-.9-2.8-.9s-1.8-.5-1.8-1.1-1.6-2.5-3.5-4.4c-4-3.7-8-13.2-16.3-38.5-25.9-79.2-34.5-139.3-26.7-185 4-23.4 13.7-40 27.2-46.7 11.6-5.6 20.3-3.1 33.6 9.6s18.2 20.7 26.2 42.6c5.2 14.3 17.1 38.5 21.8 44.3 4 5 16.6 30.8 21.1 43.4 9.7 26.8 16.6 65.4 16.6 92.4v13.4h2.4c1.9 0 2.7-.8 3.7-3.7 2.5-7.8-.7-41.8-6.8-70.8-4.5-21.7-12.8-44.4-23.8-65l-5.4-10 2.7-3.1c1.5-1.7 3.9-4.7 5.4-6.6 1.5-1.9 6-6.1 10.2-9.2 4.1-3.1 7.7-6.4 8-7.4.9-2.6 10.3-8 19.3-11 12.9-4.2 20.3-3.7 39.3 2.8 8.5 2.9 18.3 6.6 21.8 8.2 6.9 3.3 9.6 3.3 10 .2.4-2.6-5-6.9-11.3-9.1-2.5-.8-4.7-1.9-5.1-2.4-.3-.5-1.6-.9-2.9-.9s-4.8-.9-7.7-2c-11.8-4.3-21.7-6.2-30.8-5.8l-8.8.3 1-2.4c1.1-3.1 26.2-37 39.2-53 16.1-19.8 40.9-47.2 59.2-65.2 34.3-33.6 47-39.6 65.4-30.8 10.3 4.9 16.8 11.2 25.6 24.6 13.3 20.1 15.3 26.3 19.9 61.4l.5 3.5-14.3 3.9c-26.3 7-48.8 16-84.2 33.6-24.9 12.4-33 17.4-33 20.4 0 3.5 4.1 2.9 12.3-1.8 20.3-11.7 60.9-30.7 81.9-38.3 13.4-4.9 36.3-11.5 37.4-10.8 1 .6 1.2 89.5.3 93.1-.4 1.6-1.7 2.3-4.7 2.8-14.3 2.5-43.6 18.3-57.9 31.4-6.7 6.1-8.6 9.4-6.8 11.6.7.8 1.6 1.5 2.1 1.5s3.7-2.7 7-6c11.7-11.3 37.2-26.7 51.7-31 4-1.2 7.5-2.1 7.6-1.9.4.4 1 78.5.8 89.4l-.2 7-5.2 1.9c-7.2 2.5-19.6 9.4-20.7 11.4-2 4 2.3 5.7 6.8 2.6 1.2-.9 5.7-3.4 9.9-5.5l7.7-3.9.3 12.3c.1 6.7-.1 17.2-.7 23.3-.7 9.4-1.3 12-3.7 16-6 10.6-16.7 21.8-24.9 26.1-2 1.1-2 .7-2.3-13.5-.3-15.1-1.1-18-4.4-16.7-1.4.5-1.7 3.1-2 15.3-.4 13.5-.6 15.3-3.3 21.7-3.7 8.8-18.4 28.6-28.4 38-4 3.8-9.4 9.2-11.9 12-9.2 10-16 16.1-25 22.5-6.8 4.7-9.2 7-9.2 8.6 0 2.9 2.5 3.7 5.9 1.9 6.1-3.1 23.6-17.7 29.6-24.6 3.5-4.1 9.4-10.1 13.1-13.4 8.2-7.2 24.8-27.9 28.9-35.8 2.8-5.4 3.6-6.1 10.5-9.6 4.1-2 8.7-4.5 10.2-5.5 4.3-2.9 16.4-18 19.7-24.8 2.9-5.9 3.2-7.6 4.3-22.8.6-9.1 1.2-44.9 1.3-79.5.1-34.7.4-84.4.6-110.5.3-50.6-.2-59.6-5.2-84.4-2.9-14.5-11.3-31-23.8-46.9-11.9-15.3-31.5-24-45.6-20.3Zm-287 388.6c6.1.6 13.3 1.7 16 2.5 2.8.8 7.5 2.1 10.5 3 3 .8 16.3 7.1 29.5 14 13.2 7 30.1 15.3 37.5 18.7 7.4 3.3 20.9 9.5 30 13.8 22.9 10.8 46.9 20.5 57 22.8 9.6 2.3 27.5 8.4 33.1 11.3 7.5 3.8 36.6 30.4 39.5 36.2.8 1.5 3.7 5.2 6.4 8.3 6 6.5 6.4 9.6 2.5 21.3-2.1 6.3-3.6 8.6-8.2 13.5-6.5 6.7-8.4 7.6-15.6 7.6-12.4 0-68.1-10.2-90.2-16.6-28.9-8.3-65.5-21.3-79-27.9-13.3-6.5-40.2-21.3-51-28-7.7-4.8-16.5-15.2-24.2-28.5-10.7-18.5-10.8-18.9-14.9-47.9-1.7-11.8-.8-18.9 2.8-22.8 2.4-2.6 3.3-2.7 18.3-1.3Z"
|
||||
class="cls-1"
|
||||
data-name="Right Hand"
|
||||
/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 77 KiB |
@@ -1,271 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="795.27 277.13 409.46 1319.35">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #1e1e1d;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #b1a368;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-4, .cls-6, .cls-8, .cls-9 {
|
||||
fill: none;
|
||||
}
|
||||
.cls-4, .cls-6 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-4, .cls-6, .cls-8 {
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-4 {
|
||||
stroke-width: 2.41px;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #30c2db;
|
||||
}
|
||||
.cls-6 {
|
||||
stroke-width: 3.91px;
|
||||
}
|
||||
.cls-7 {
|
||||
fill: #dcf0f2;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-8 {
|
||||
stroke: #dcf0f2;
|
||||
}
|
||||
.cls-8 {
|
||||
stroke-width: 1.81px;
|
||||
}
|
||||
.cls-9 {
|
||||
stroke: #17afbf;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
stroke-width: 7.23px;
|
||||
}
|
||||
.cls-10 {
|
||||
stroke-width: 1.78px;
|
||||
}
|
||||
.cls-11 {
|
||||
stroke-width: 1.81px;
|
||||
}
|
||||
</style></defs><g id="Layer_7" data-name="Layer 7"><path
|
||||
class="cls-1"
|
||||
d="M915.62,278.34h22.61a35,35,0,0,1,35,35V715.74a0,0,0,0,1,0,0H880.6a0,0,0,0,1,0,0V313.36A35,35,0,0,1,915.62,278.34Z"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="880.6"
|
||||
y="340.15"
|
||||
width="92.65"
|
||||
height="7.54"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="880.6"
|
||||
y="356.68"
|
||||
width="92.65"
|
||||
height="7.54"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="885.8"
|
||||
y="844.3"
|
||||
width="84.14"
|
||||
height="19.02"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="880.6"
|
||||
y="819.07"
|
||||
width="92.65"
|
||||
height="25.23"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="885.8"
|
||||
y="790.65"
|
||||
width="84.14"
|
||||
height="28.41"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="880.6"
|
||||
y="723.02"
|
||||
width="92.65"
|
||||
height="67.63"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="885.8"
|
||||
y="715.74"
|
||||
width="84.14"
|
||||
height="7.28"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="885.8"
|
||||
y="844.3"
|
||||
width="84.14"
|
||||
height="19.02"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="880.6"
|
||||
y="819.07"
|
||||
width="92.65"
|
||||
height="25.23"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="885.8"
|
||||
y="790.65"
|
||||
width="84.14"
|
||||
height="28.41"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="880.6"
|
||||
y="723.02"
|
||||
width="92.65"
|
||||
height="67.63"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="885.8"
|
||||
y="715.74"
|
||||
width="84.14"
|
||||
height="7.28"
|
||||
></rect><path
|
||||
class="cls-4"
|
||||
d="M915.62,278.34h22.61a35,35,0,0,1,35,35V715.74a0,0,0,0,1,0,0H880.6a0,0,0,0,1,0,0V313.36A35,35,0,0,1,915.62,278.34Z"
|
||||
></path><rect
|
||||
class="cls-4"
|
||||
x="880.6"
|
||||
y="340.15"
|
||||
width="92.65"
|
||||
height="7.54"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="880.6"
|
||||
y="356.68"
|
||||
width="92.65"
|
||||
height="7.54"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="796.48"
|
||||
y="856.3"
|
||||
width="407.05"
|
||||
height="738.98"
|
||||
rx="47.74"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="900.05"
|
||||
y="973.19"
|
||||
width="202.03"
|
||||
height="354.65"
|
||||
rx="16.4"
|
||||
></rect><rect
|
||||
class="cls-6"
|
||||
x="900.05"
|
||||
y="973.19"
|
||||
width="202.03"
|
||||
height="354.65"
|
||||
rx="16.4"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="871.51"
|
||||
y="890.41"
|
||||
width="55.42"
|
||||
height="31.12"
|
||||
rx="15.56"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="1070.16"
|
||||
y="890.41"
|
||||
width="55.42"
|
||||
height="31.12"
|
||||
rx="15.56"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="871.51"
|
||||
y="890.41"
|
||||
width="55.42"
|
||||
height="31.12"
|
||||
rx="15.56"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="1070.16"
|
||||
y="890.41"
|
||||
width="55.42"
|
||||
height="31.12"
|
||||
rx="15.56"
|
||||
></rect><circle
|
||||
class="cls-8"
|
||||
cx="841.7"
|
||||
cy="1537.01"
|
||||
r="16.25"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="841.7"
|
||||
cy="913.26"
|
||||
r="16.25"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="1157.32"
|
||||
cy="913.26"
|
||||
r="16.25"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="1157.32"
|
||||
cy="1504.51"
|
||||
r="16.25"
|
||||
></circle><line
|
||||
class="cls-9"
|
||||
x1="942.51"
|
||||
y1="1592.42"
|
||||
x2="942.51"
|
||||
y2="1381.55"
|
||||
></line><line
|
||||
class="cls-9"
|
||||
x1="966.52"
|
||||
y1="1592.42"
|
||||
x2="966.52"
|
||||
y2="1381.55"
|
||||
></line><line
|
||||
class="cls-9"
|
||||
x1="990.57"
|
||||
y1="1592.42"
|
||||
x2="990.57"
|
||||
y2="1381.55"
|
||||
></line><line
|
||||
class="cls-9"
|
||||
x1="1014.59"
|
||||
y1="1592.42"
|
||||
x2="1014.59"
|
||||
y2="1381.55"
|
||||
></line><line
|
||||
class="cls-9"
|
||||
x1="1038.63"
|
||||
y1="1592.42"
|
||||
x2="1038.63"
|
||||
y2="1381.55"
|
||||
></line><line
|
||||
class="cls-9"
|
||||
x1="1062.65"
|
||||
y1="1592.42"
|
||||
x2="1062.65"
|
||||
y2="1381.55"
|
||||
></line><rect
|
||||
class="cls-4"
|
||||
x="796.48"
|
||||
y="856.3"
|
||||
width="407.05"
|
||||
height="738.98"
|
||||
rx="47.74"
|
||||
></rect><path
|
||||
class="cls-10"
|
||||
d="M1040.1,947.74H960.65A13.93,13.93,0,0,1,947,936.64l-10.23-49.2a13.93,13.93,0,0,1,13.64-16.77h97.72a13.93,13.93,0,0,1,13.75,16.18l-8,49.2A13.94,13.94,0,0,1,1040.1,947.74Z"
|
||||
></path><rect
|
||||
class="cls-11"
|
||||
x="816.35"
|
||||
y="870.67"
|
||||
width="365.51"
|
||||
height="703.12"
|
||||
rx="32.37"
|
||||
></rect><rect
|
||||
class="cls-11"
|
||||
x="888.77"
|
||||
y="963.84"
|
||||
width="223.2"
|
||||
height="374.66"
|
||||
rx="25.21"
|
||||
></rect></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.3 KiB |
@@ -1,398 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="502.65 765.65 1000.06 433.43">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #8e8d8e;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #cccccb;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #ddd;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #2b2b2b;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #383839;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #599cbd;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-14, .cls-7, .cls-9 {
|
||||
fill: none;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke: #fff;
|
||||
}
|
||||
.cls-10, .cls-14, .cls-7 {
|
||||
stroke-width: 1.65px;
|
||||
}
|
||||
.cls-8 {
|
||||
fill: #cbcccb;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-9 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-9 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
.cls-11 {
|
||||
stroke-width: 1.67px;
|
||||
}
|
||||
.cls-12 {
|
||||
fill: #fff;
|
||||
}
|
||||
.cls-13 {
|
||||
fill: #eecc42;
|
||||
}
|
||||
.cls-14 {
|
||||
stroke: #eecc42;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M554.23,774h907.26a0,0,0,0,1,0,0v415.1a0,0,0,0,1,0,0H554.23a32.53,32.53,0,0,1-32.53-32.53v-350A32.53,32.53,0,0,1,554.23,774Z"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M1363,985.65v82.44a8.42,8.42,0,0,0,8.42,8.42h75.41a18.61,18.61,0,0,1,18.61,18.62v82.15a20.79,20.79,0,0,1-20.79,20.79h-37.14a15,15,0,0,1-15-15v-40.46a23.46,23.46,0,0,0-23.46-23.47h-22.26a4.57,4.57,0,0,0-4.57,4.58h0a4.57,4.57,0,0,0,4.57,4.57h22.31a15.19,15.19,0,0,1,15.19,15.19V1181a17.08,17.08,0,0,1-17.08,17.08H549a45.49,45.49,0,0,1-45.35-42h37.39a57.24,57.24,0,0,0,57.24-57.23V864.62a57.24,57.24,0,0,0-57.24-57.23H503.79A45.49,45.49,0,0,1,549,766.65h818.24a17.08,17.08,0,0,1,17.08,17.08v37.46a15.19,15.19,0,0,1-15.19,15.18h-22.31a4.57,4.57,0,0,0-4.57,4.58h0a4.57,4.57,0,0,0,4.57,4.57h22.26a23.46,23.46,0,0,0,23.46-23.46V781.6a15,15,0,0,1,15-15h37.14a20.79,20.79,0,0,1,20.79,20.79v82.15a18.62,18.62,0,0,1-18.61,18.62h-75.41a8.41,8.41,0,0,0-8.42,8.41v89Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M1363,897.36h130.87a8,8,0,0,1,8,8v155.38a8,8,0,0,1-8,8H1363a0,0,0,0,1,0,0V897.36A0,0,0,0,1,1363,897.36Z"
|
||||
></path><rect
|
||||
class="cls-4"
|
||||
x="1404.64"
|
||||
y="937.34"
|
||||
width="10.03"
|
||||
height="22.38"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="1404.64"
|
||||
y="1003.72"
|
||||
width="10.03"
|
||||
height="22.38"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="1363.01"
|
||||
y="1001.56"
|
||||
width="23.63"
|
||||
height="34.15"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="1363.01"
|
||||
y="930.05"
|
||||
width="23.63"
|
||||
height="34.15"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M598.31,864.62v234.21a57.24,57.24,0,0,1-57.24,57.23H521.7V807.39h19.37A57.24,57.24,0,0,1,598.31,864.62Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="728.25"
|
||||
y="817.13"
|
||||
width="158.2"
|
||||
height="330.36"
|
||||
></rect><path
|
||||
class="cls-6"
|
||||
d="M572.27,1146.81v-26.49a1.33,1.33,0,0,0-1.33-1.33H540.27a1.33,1.33,0,0,0-1.33,1.33v35.74a43.86,43.86,0,0,0,15.13-1.49C561.47,1152.31,572.27,1146.81,572.27,1146.81Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M538.94,1156.06v-35.74a1.33,1.33,0,0,1,1.33-1.33h30.67a1.33,1.33,0,0,1,1.33,1.33v26.49"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M528.57,837.41h3.59a0,0,0,0,1,0,0v38.22a0,0,0,0,1,0,0h-3.59a3,3,0,0,1-3-3V840.39A3,3,0,0,1,528.57,837.41Z"
|
||||
></path><path
|
||||
class="cls-9"
|
||||
d="M503.68,1156.06h37.39a57.24,57.24,0,0,0,57.24-57.23V864.62a57.24,57.24,0,0,0-57.24-57.23H503.79"
|
||||
></path><line
|
||||
class="cls-10"
|
||||
x1="521.7"
|
||||
y1="807.39"
|
||||
x2="521.7"
|
||||
y2="1156.06"
|
||||
></line><path
|
||||
class="cls-9"
|
||||
d="M1363,979.06V896.62a8.41,8.41,0,0,1,8.42-8.41h75.41a18.62,18.62,0,0,0,18.61-18.62V787.44a20.79,20.79,0,0,0-20.79-20.79h-37.14a15,15,0,0,0-15,15v40.46a23.46,23.46,0,0,1-23.46,23.46h-22.26a4.57,4.57,0,0,1-4.57-4.57h0a4.57,4.57,0,0,1,4.57-4.58h22.31a15.19,15.19,0,0,0,15.19-15.18V783.73a17.08,17.08,0,0,0-17.08-17.08H549a45.49,45.49,0,0,0-45.24,40.74"
|
||||
></path><path
|
||||
class="cls-9"
|
||||
d="M1363,985.65v82.44a8.42,8.42,0,0,0,8.42,8.42h75.41a18.61,18.61,0,0,1,18.61,18.62v82.15a20.79,20.79,0,0,1-20.79,20.79h-37.14a15,15,0,0,1-15-15v-40.46a23.46,23.46,0,0,0-23.46-23.47h-22.26a4.57,4.57,0,0,0-4.57,4.58h0a4.57,4.57,0,0,0,4.57,4.57h22.31a15.19,15.19,0,0,1,15.19,15.19V1181a17.08,17.08,0,0,1-17.08,17.08H549a45.49,45.49,0,0,1-45.35-42"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M618.9,981.73V862.12a6.16,6.16,0,0,1,6.16-6.17h87.49A10.48,10.48,0,0,0,723,845.48v-28a7.08,7.08,0,0,1,7.08-7.08H833.83A14.5,14.5,0,0,0,844,806.25l23.23-22.52a15.93,15.93,0,0,1,11.11-4.5h273.84a16,16,0,0,1,11.73,5.13l19.69,21.32a14.55,14.55,0,0,0,10.69,4.68h122.44a5.85,5.85,0,0,1,5.86,5.85v331.55a5.86,5.86,0,0,1-5.86,5.86H730.11a7.08,7.08,0,0,1-7.08-7.08v-74A10.48,10.48,0,0,0,712.55,1062H625.06a6.16,6.16,0,0,1-6.16-6.16V982.25"
|
||||
></path><circle
|
||||
class="cls-7"
|
||||
cx="1012.63"
|
||||
cy="1176.42"
|
||||
r="15.95"
|
||||
></circle><circle
|
||||
class="cls-7"
|
||||
cx="1347.86"
|
||||
cy="1165.18"
|
||||
r="15.95"
|
||||
></circle><circle
|
||||
class="cls-7"
|
||||
cx="1347.86"
|
||||
cy="801.82"
|
||||
r="15.95"
|
||||
></circle><rect
|
||||
class="cls-7"
|
||||
x="1406.28"
|
||||
y="1109.79"
|
||||
width="43.15"
|
||||
height="63.43"
|
||||
rx="21.58"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="1406.28"
|
||||
y="796.41"
|
||||
width="43.15"
|
||||
height="63.43"
|
||||
rx="21.58"
|
||||
></rect><path
|
||||
class="cls-11"
|
||||
d="M1363,897.36h130.87a8,8,0,0,1,8,8v155.38a8,8,0,0,1-8,8H1363a0,0,0,0,1,0,0V897.36A0,0,0,0,1,1363,897.36Z"
|
||||
></path><rect
|
||||
class="cls-11"
|
||||
x="1404.64"
|
||||
y="937.34"
|
||||
width="10.03"
|
||||
height="22.38"
|
||||
></rect><rect
|
||||
class="cls-11"
|
||||
x="1404.64"
|
||||
y="1003.72"
|
||||
width="10.03"
|
||||
height="22.38"
|
||||
></rect><rect
|
||||
class="cls-11"
|
||||
x="1363.01"
|
||||
y="1001.56"
|
||||
width="23.63"
|
||||
height="34.15"
|
||||
></rect><rect
|
||||
class="cls-11"
|
||||
x="1363.01"
|
||||
y="930.05"
|
||||
width="23.63"
|
||||
height="34.15"
|
||||
></rect><line
|
||||
class="cls-11"
|
||||
x1="1461.49"
|
||||
y1="881.06"
|
||||
x2="1461.49"
|
||||
y2="897.36"
|
||||
></line><line
|
||||
class="cls-11"
|
||||
x1="1461.49"
|
||||
y1="1068.83"
|
||||
x2="1461.49"
|
||||
y2="1083.65"
|
||||
></line><line
|
||||
class="cls-11"
|
||||
x1="1381.33"
|
||||
y1="774.04"
|
||||
x2="1394.21"
|
||||
y2="774.04"
|
||||
></line><line
|
||||
class="cls-11"
|
||||
x1="1382.28"
|
||||
y1="1189.14"
|
||||
x2="1394.21"
|
||||
y2="1189.14"
|
||||
></line><rect
|
||||
class="cls-12"
|
||||
x="532.16"
|
||||
y="831.98"
|
||||
width="49.07"
|
||||
height="49.07"
|
||||
rx="2.75"
|
||||
></rect><rect
|
||||
class="cls-10"
|
||||
x="532.16"
|
||||
y="831.98"
|
||||
width="49.07"
|
||||
height="49.07"
|
||||
rx="2.75"
|
||||
></rect><circle
|
||||
class="cls-13"
|
||||
cx="556.69"
|
||||
cy="856.52"
|
||||
r="9.63"
|
||||
></circle><circle
|
||||
class="cls-14"
|
||||
cx="556.69"
|
||||
cy="856.52"
|
||||
r="19.11"
|
||||
></circle><path
|
||||
class="cls-10"
|
||||
d="M528.57,837.41h3.59a0,0,0,0,1,0,0v38.22a0,0,0,0,1,0,0h-3.59a3,3,0,0,1-3-3V840.39A3,3,0,0,1,528.57,837.41Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M584.21,837.41h3.59a0,0,0,0,1,0,0v38.22a0,0,0,0,1,0,0h-3.59a3,3,0,0,1-3-3V840.39A3,3,0,0,1,584.21,837.41Z"
|
||||
transform="translate(1169.02 1713.04) rotate(-180)"
|
||||
></path><path
|
||||
class="cls-10"
|
||||
d="M584.21,837.41h3.59a0,0,0,0,1,0,0v38.22a0,0,0,0,1,0,0h-3.59a3,3,0,0,1-3-3V840.39A3,3,0,0,1,584.21,837.41Z"
|
||||
transform="translate(1169.02 1713.04) rotate(-180)"
|
||||
></path><rect
|
||||
class="cls-7"
|
||||
x="525.59"
|
||||
y="961.1"
|
||||
width="31.1"
|
||||
height="17.96"
|
||||
rx="0.79"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="525.59"
|
||||
y="985.65"
|
||||
width="31.1"
|
||||
height="17.96"
|
||||
rx="0.79"
|
||||
></rect><path
|
||||
class="cls-12"
|
||||
d="M576.68,978.9h-2V962h2Zm8.64-7.59H575.6v-1.93h9.72Zm1.3,7.59h-2V962h2Z"
|
||||
></path><path
|
||||
class="cls-12"
|
||||
d="M569.32,978.9h-9.47V977h9.47Zm0-7.7h-8.19v-1.9h8.19Zm1.16,7.7h-2V962h2Z"
|
||||
></path><path
|
||||
class="cls-12"
|
||||
d="M585.44,988.92h-9.67V987h9.67Zm1.18,15h-2V987h2Z"
|
||||
></path><path
|
||||
class="cls-12"
|
||||
d="M571.82,1003.9h-9.46V1002h9.46Zm0-7.7h-8.19v-1.9h8.19Zm1.17,7.7h-2V987h2Z"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="530.71"
|
||||
y="989.79"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="546"
|
||||
y="989.79"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="530.71"
|
||||
y="965.24"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="556.69"
|
||||
y="913.16"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="583.14"
|
||||
y="913.16"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="546"
|
||||
y="965.24"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M552.28,913.61v-5.5a1.36,1.36,0,0,1,1.36-1.36H590.7a1.36,1.36,0,0,1,1.36,1.36v5.5"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M565.9,922.84v5.63a1.36,1.36,0,0,1-1.37,1.36H553.64a1.36,1.36,0,0,1-1.36-1.36v-5.63"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="541.49"
|
||||
y="1082.41"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
transform="translate(1697.94 1471.19) rotate(135)"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M536.32,1088.36l-4-4a1.36,1.36,0,0,1,0-1.92l7.7-7.7a1.35,1.35,0,0,1,1.93,0l4,4"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="571.96"
|
||||
y="1050.39"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
transform="translate(1727.32 1394.99) rotate(135)"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="583.85"
|
||||
y="1059.62"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
transform="translate(1754.13 1402.34) rotate(135)"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="574.63"
|
||||
y="1068.83"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
transform="translate(1744.92 1424.58) rotate(135)"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="561.03"
|
||||
y="1083.6"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
transform="translate(1732.15 1459.41) rotate(135)"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="551.82"
|
||||
y="1092.82"
|
||||
width="5.58"
|
||||
height="9.68"
|
||||
rx="1.05"
|
||||
transform="translate(1722.93 1481.65) rotate(135)"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M566.79,1056.35l-4-4a1.36,1.36,0,0,1,0-1.92l7.71-7.71a1.36,1.36,0,0,1,1.92,0l4,4"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M592.06,922.84v5.63a1.36,1.36,0,0,1-1.36,1.36H581a1.36,1.36,0,0,1-1.36-1.36v-5.63"
|
||||
></path><line
|
||||
class="cls-7"
|
||||
x1="565.9"
|
||||
y1="918.69"
|
||||
x2="579.63"
|
||||
y2="918.69"
|
||||
></line><path
|
||||
class="cls-7"
|
||||
d="M551,1103.25l3.72,3.21a3.16,3.16,0,0,0,4.33-.19l35.69-36.8a3.15,3.15,0,0,0,0-4.44l-3.79-3.76"
|
||||
></path><line
|
||||
class="cls-7"
|
||||
x1="573.31"
|
||||
y1="1065.02"
|
||||
x2="553.89"
|
||||
y2="1084.25"
|
||||
></line><path
|
||||
class="cls-7"
|
||||
d="M569.42,1116.78V1115a1.89,1.89,0,0,0-1.89-1.89h-23.2a1.88,1.88,0,0,0-1.89,1.89v1.8"
|
||||
></path><rect
|
||||
class="cls-12"
|
||||
x="542.44"
|
||||
y="1121.36"
|
||||
width="26.13"
|
||||
height="7.79"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="790.91"
|
||||
y="817.13"
|
||||
width="522.47"
|
||||
height="330.36"
|
||||
></rect></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB |
@@ -1,74 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="404.68 390.65 1217.15 959.26">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #dfeaf7;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #17907f;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #2b2b2b;
|
||||
}
|
||||
.cls-4, .cls-5 {
|
||||
fill: none;
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-4 {
|
||||
stroke-width: 2.25px;
|
||||
}
|
||||
.cls-5 {
|
||||
stroke-width: 4px;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #050606;
|
||||
}
|
||||
</style></defs><g id="Layer_5" data-name="Layer 5"><path
|
||||
class="cls-1"
|
||||
d="M1517.73,392.65h0a102.1,102.1,0,0,0-102.1,102.1V770.37A40.62,40.62,0,0,1,1375,811H455.16a48.49,48.49,0,0,0-48.48,48.48v126a11.85,11.85,0,0,0,3.46,8.37l15.34,15.34a11.81,11.81,0,0,1,3.47,8.37v137.16a11.81,11.81,0,0,1-3.47,8.37l-15.34,15.34a11.85,11.85,0,0,0-3.46,8.37v112.67a48.49,48.49,0,0,0,48.48,48.49H1571.34a48.51,48.51,0,0,0,48.49-48.5V494.75A102.1,102.1,0,0,0,1517.73,392.65Zm-110.61,815V954a33.14,33.14,0,0,1,66.27,0v253.65a33.14,33.14,0,0,1-66.27,0Z"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M1516,439.16c-30.23.91-53.92,26.54-53.92,56.79V770.37A87.11,87.11,0,0,1,1375,857.48H732.31A27.51,27.51,0,0,0,704.8,885v388.93a27.51,27.51,0,0,0,27.51,27.51h828.38a12.7,12.7,0,0,0,12.65-12.65v-794A55.69,55.69,0,0,0,1516,439.16Zm-108.9,768.47V954a33.14,33.14,0,0,1,66.27,0v253.65a33.14,33.14,0,0,1-66.27,0Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="787.14"
|
||||
y="943.38"
|
||||
width="429.45"
|
||||
height="224.42"
|
||||
></rect><path
|
||||
class="cls-1"
|
||||
d="M1478.6,915.35A54.23,54.23,0,0,0,1386,953.69v254.23a54.23,54.23,0,1,0,108.45,0V953.69A54,54,0,0,0,1478.6,915.35Zm-5.21,292.28a33.14,33.14,0,0,1-66.27,0V954a33.14,33.14,0,0,1,66.27,0Z"
|
||||
></path></g><g id="Layer_2" data-name="Layer 2"><path
|
||||
class="cls-4"
|
||||
d="M1573.34,494.75v794a12.68,12.68,0,0,1-12.65,12.65H732.31a27.51,27.51,0,0,1-27.51-27.51V885a27.51,27.51,0,0,1,27.51-27.51H1375a87.11,87.11,0,0,0,87.11-87.11V496c0-30.25,23.69-55.88,53.92-56.79A55.69,55.69,0,0,1,1573.34,494.75Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M410.14,1178.39,425.49,1163a11.78,11.78,0,0,0,3.46-8.35V1017.5a11.8,11.8,0,0,0-3.46-8.35l-15.35-15.36a11.77,11.77,0,0,1-3.46-8.35v-126A48.47,48.47,0,0,1,455.16,811H1375a40.63,40.63,0,0,0,40.63-40.63V494.75a102.1,102.1,0,0,1,102.1-102.1h0a102.1,102.1,0,0,1,102.1,102.1v804.66a48.51,48.51,0,0,1-48.49,48.5H455.16a48.48,48.48,0,0,1-48.48-48.49V1186.74A11.78,11.78,0,0,1,410.14,1178.39Z"
|
||||
></path><rect
|
||||
class="cls-4"
|
||||
x="1407.12"
|
||||
y="920.85"
|
||||
width="66.26"
|
||||
height="319.9"
|
||||
rx="33.13"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="1386.03"
|
||||
y="899.46"
|
||||
width="108.46"
|
||||
height="362.69"
|
||||
rx="54.23"
|
||||
></rect><path
|
||||
class="cls-6"
|
||||
d="M639.76,1070.55a2.91,2.91,0,0,1-2.91-2.91v-30.53a5.42,5.42,0,0,0-1.6-3.86l-32.44-32.44a11.86,11.86,0,0,1-3.5-8.44V901a12.52,12.52,0,0,0-12.51-12.51H483.92a12.7,12.7,0,0,0-12.68,12.69v76.78a24.13,24.13,0,0,0,7.11,17.18l14.33,14.33a24.13,24.13,0,0,0,17.18,7.11h50.75a11.86,11.86,0,0,1,8.44,3.5l24.26,24.26a12.47,12.47,0,0,1,3.68,8.88v14.46a2.91,2.91,0,1,1-5.81,0v-14.46a6.72,6.72,0,0,0-2-4.77l-24.26-24.26a6.09,6.09,0,0,0-4.33-1.8H509.86a29.91,29.91,0,0,1-21.29-8.81l-14.33-14.33a29.87,29.87,0,0,1-8.81-21.29V901.14a18.51,18.51,0,0,1,18.49-18.5H586.8A18.34,18.34,0,0,1,605.12,901v91.41a6.09,6.09,0,0,0,1.8,4.33l32.44,32.44a11.19,11.19,0,0,1,3.3,8v30.53A2.9,2.9,0,0,1,639.76,1070.55Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M586.8,1289.46H483.92a18.51,18.51,0,0,1-18.49-18.5v-76.78a29.87,29.87,0,0,1,8.81-21.29l14.33-14.34a29.91,29.91,0,0,1,21.29-8.81h50.75a6.09,6.09,0,0,0,4.33-1.8l24.26-24.25a6.74,6.74,0,0,0,2-4.78v-14.46a2.91,2.91,0,0,1,5.81,0v14.46a12.51,12.51,0,0,1-3.68,8.89l-24.26,24.25a11.86,11.86,0,0,1-8.44,3.5H509.86a24.17,24.17,0,0,0-17.18,7.11L478.35,1177a24.09,24.09,0,0,0-7.11,17.18V1271a12.71,12.71,0,0,0,12.68,12.69H586.8a12.53,12.53,0,0,0,12.51-12.52v-91.4a11.83,11.83,0,0,1,3.5-8.44l32.44-32.44a5.46,5.46,0,0,0,1.6-3.87v-30.53a2.91,2.91,0,0,1,5.81,0V1135a11.19,11.19,0,0,1-3.3,8l-32.44,32.45a6.06,6.06,0,0,0-1.8,4.33v91.4A18.35,18.35,0,0,1,586.8,1289.46Z"
|
||||
></path><rect
|
||||
class="cls-4"
|
||||
x="787.14"
|
||||
y="943.38"
|
||||
width="429.45"
|
||||
height="224.42"
|
||||
></rect></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 40 KiB |
@@ -1,149 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="528.89 806.04 942.22 446.84">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #e8eae8;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #dbdddb;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #c6842a;
|
||||
}
|
||||
.cls-4, .cls-5, .cls-7, .cls-9 {
|
||||
fill: none;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-4, .cls-5 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-4, .cls-9 {
|
||||
stroke-width: 2.44px;
|
||||
}
|
||||
.cls-5, .cls-7 {
|
||||
stroke-width: 1.22px;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #b7b7b7;
|
||||
}
|
||||
.cls-7, .cls-9 {
|
||||
stroke: #b7b7b7;
|
||||
}
|
||||
.cls-8 {
|
||||
fill: #cbcccb;
|
||||
}
|
||||
.cls-10 {
|
||||
fill: #434543;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M1469.9,826.68v390.94a19.43,19.43,0,0,1-19.43,19.43H549.53a19.43,19.43,0,0,1-19.43-19.43V826.68a19.42,19.42,0,0,1,19.43-19.42h900.94A19.42,19.42,0,0,1,1469.9,826.68Z"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M574.23,807.26v429.79h-24.7a19.43,19.43,0,0,1-19.43-19.43V826.68a19.42,19.42,0,0,1,19.43-19.42Z"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M1469.9,826.68v390.94a19.43,19.43,0,0,1-19.43,19.43h-37.56V807.26h37.56A19.42,19.42,0,0,1,1469.9,826.68Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M574.23,1129.8h-7.47a4.55,4.55,0,0,1-4.55-4.54V919.05a4.55,4.55,0,0,1,4.55-4.55h7.47"
|
||||
></path><rect
|
||||
class="cls-4"
|
||||
x="530.11"
|
||||
y="807.26"
|
||||
width="939.78"
|
||||
height="429.79"
|
||||
rx="19.42"
|
||||
></rect><line
|
||||
class="cls-5"
|
||||
x1="574.23"
|
||||
y1="807.26"
|
||||
x2="574.23"
|
||||
y2="1237.05"
|
||||
></line><path
|
||||
class="cls-5"
|
||||
d="M574.23,1129.8h-7.47a4.55,4.55,0,0,1-4.55-4.54V919.05a4.55,4.55,0,0,1,4.55-4.55h7.47"
|
||||
></path><rect
|
||||
class="cls-6"
|
||||
x="599.01"
|
||||
y="970.1"
|
||||
width="11.52"
|
||||
height="104.11"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="599.01"
|
||||
y="970.1"
|
||||
width="11.52"
|
||||
height="104.11"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M610.53,816.78V935.32l38.37,11.55a7.85,7.85,0,0,1,5.6,7.53V1107a7.87,7.87,0,0,1-7.87,7.87h-36.1v110.58H1406V816.78Zm775.41,384.75H631.43a3.66,3.66,0,0,1-3.66-3.66V1138a3.65,3.65,0,0,1,3.66-3.65h28.3a14.7,14.7,0,0,0,14.71-14.71V931a14.7,14.7,0,0,0-14.71-14.71h-28.3a3.65,3.65,0,0,1-3.66-3.66V844.11a3.66,3.66,0,0,1,3.66-3.66h754.51Z"
|
||||
></path><path
|
||||
class="cls-1"
|
||||
d="M1385.94,840.45v361.08H631.43a3.66,3.66,0,0,1-3.66-3.66V1138a3.65,3.65,0,0,1,3.66-3.65h28.3a14.7,14.7,0,0,0,14.71-14.71V931a14.7,14.7,0,0,0-14.71-14.71h-28.3a3.65,3.65,0,0,1-3.66-3.66V844.11a3.66,3.66,0,0,1,3.66-3.66Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M610.53,816.78V935.32l38.37,11.55a7.85,7.85,0,0,1,5.6,7.53V1107a7.87,7.87,0,0,1-7.87,7.87h-36.1v110.58H1406V816.78Zm775.41,384.75H631.43a3.66,3.66,0,0,1-3.66-3.66V1138a3.65,3.65,0,0,1,3.66-3.65h28.3a14.7,14.7,0,0,0,14.71-14.71V931a14.7,14.7,0,0,0-14.71-14.71h-28.3a3.65,3.65,0,0,1-3.66-3.66V844.11a3.66,3.66,0,0,1,3.66-3.66h754.51Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M1385.94,840.45v361.08H631.43a3.66,3.66,0,0,1-3.66-3.66V1138a3.65,3.65,0,0,1,3.66-3.65h28.3a14.7,14.7,0,0,0,14.71-14.71V931a14.7,14.7,0,0,0-14.71-14.71h-28.3a3.65,3.65,0,0,1-3.66-3.66V844.11a3.66,3.66,0,0,1,3.66-3.66Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M1385.94,840.45v361.08H631.43a3.66,3.66,0,0,1-3.66-3.66V1138a3.65,3.65,0,0,1,3.66-3.65h28.3a14.7,14.7,0,0,0,14.71-14.71V931a14.7,14.7,0,0,0-14.71-14.71h-28.3a3.65,3.65,0,0,1-3.66-3.66V844.11a3.66,3.66,0,0,1,3.66-3.66Z"
|
||||
></path><line
|
||||
class="cls-7"
|
||||
x1="666.4"
|
||||
y1="1132.79"
|
||||
x2="666.4"
|
||||
y2="1201.53"
|
||||
></line><line
|
||||
class="cls-7"
|
||||
x1="663.66"
|
||||
y1="916.86"
|
||||
x2="663.66"
|
||||
y2="840.45"
|
||||
></line><circle
|
||||
class="cls-8"
|
||||
cx="644.99"
|
||||
cy="878.66"
|
||||
r="10.7"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="644.99"
|
||||
cy="1171.55"
|
||||
r="10.7"
|
||||
></circle><circle
|
||||
class="cls-9"
|
||||
cx="644.99"
|
||||
cy="878.66"
|
||||
r="10.7"
|
||||
></circle><circle
|
||||
class="cls-9"
|
||||
cx="644.99"
|
||||
cy="1171.55"
|
||||
r="10.7"
|
||||
></circle><path
|
||||
class="cls-10"
|
||||
d="M1225,1237.05l2.23,11.19a4.25,4.25,0,0,0,4.17,3.42H1249a4.26,4.26,0,0,0,4.18-3.42l2.22-11.19"
|
||||
></path><path
|
||||
class="cls-10"
|
||||
d="M1306.87,1237.05l2.22,11.19a4.26,4.26,0,0,0,4.18,3.42h17.62a4.25,4.25,0,0,0,4.17-3.42l2.22-11.19"
|
||||
></path><path
|
||||
class="cls-10"
|
||||
d="M1388.77,1237.05l2.23,11.19a4.24,4.24,0,0,0,4.17,3.42h17.62a4.25,4.25,0,0,0,4.17-3.42l2.23-11.19"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M1225,1237.05l2.23,11.19a4.25,4.25,0,0,0,4.17,3.42H1249a4.26,4.26,0,0,0,4.18-3.42l2.22-11.19"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M1306.87,1237.05l2.22,11.19a4.26,4.26,0,0,0,4.18,3.42h17.62a4.25,4.25,0,0,0,4.17-3.42l2.22-11.19"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M1388.77,1237.05l2.23,11.19a4.24,4.24,0,0,0,4.17,3.42h17.62a4.25,4.25,0,0,0,4.17-3.42l2.23-11.19"
|
||||
></path><line
|
||||
class="cls-4"
|
||||
x1="1412.9"
|
||||
y1="807.26"
|
||||
x2="1412.9"
|
||||
y2="1237.05"
|
||||
></line></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.0 KiB |
@@ -1,221 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="479.87 739.66 1073.46 452.36">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #e8eae8;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #2b2b2b;
|
||||
}
|
||||
.cls-3, .cls-5, .cls-7, .cls-8 {
|
||||
fill: none;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-3, .cls-5 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-3, .cls-7 {
|
||||
stroke-width: 2.44px;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #cbcccb;
|
||||
}
|
||||
.cls-5 {
|
||||
stroke-width: 1.73px;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #434543;
|
||||
}
|
||||
.cls-7, .cls-8 {
|
||||
stroke: #b7b7b7;
|
||||
}
|
||||
.cls-8 {
|
||||
stroke-width: 1.22px;
|
||||
}
|
||||
.cls-9 {
|
||||
fill: #dbdddb;
|
||||
}
|
||||
.cls-10 {
|
||||
fill: #b7b7b7;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><rect
|
||||
class="cls-1"
|
||||
x="541.37"
|
||||
y="740.89"
|
||||
width="950.47"
|
||||
height="441.77"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M1511.86,740.89h-20V907.47h13.88a4.83,4.83,0,1,1,0,9.65h-13.88v87h13.88a4.82,4.82,0,0,1,4.82,4.83,4.81,4.81,0,0,1-4.82,4.82h-13.88v168.83h20a40.25,40.25,0,0,0,40.25-40.25V781.15A40.25,40.25,0,0,0,1511.86,740.89Zm22.9,400.64a10.68,10.68,0,0,1-21.36,0v-17.4a10.68,10.68,0,1,1,21.36,0Zm0-343.24a10.68,10.68,0,1,1-21.36,0v-17.4a10.68,10.68,0,0,1,21.36,0Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M1532.09,740.89h20a0,0,0,0,1,0,0v441.77a0,0,0,0,1,0,0h-20a40.25,40.25,0,0,1-40.25-40.25V781.14a40.25,40.25,0,0,1,40.25-40.25Z"
|
||||
transform="translate(3043.95 1923.54) rotate(-180)"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M1508.36,780.88V798.3a15.89,15.89,0,0,0,31.78,0V780.88a15.89,15.89,0,1,0-31.78,0Zm5,0a10.68,10.68,0,0,1,21.36,0v17.4a10.68,10.68,0,1,1-21.36,0Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M1508.36,1124.11v17.42a15.89,15.89,0,1,0,31.78,0v-17.42a15.89,15.89,0,0,0-31.78,0Zm5,0a10.68,10.68,0,1,1,21.36,0v17.4a10.68,10.68,0,0,1-21.36,0Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="1513.41"
|
||||
y="770.21"
|
||||
width="21.36"
|
||||
height="38.76"
|
||||
rx="10.68"
|
||||
transform="translate(3048.18 1579.19) rotate(-180)"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1508.36"
|
||||
y="764.99"
|
||||
width="31.78"
|
||||
height="49.2"
|
||||
rx="15.89"
|
||||
transform="translate(3048.5 1579.18) rotate(-180)"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1513.41"
|
||||
y="1113.44"
|
||||
width="21.36"
|
||||
height="38.76"
|
||||
rx="10.68"
|
||||
transform="translate(3048.18 2265.65) rotate(-180)"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1508.36"
|
||||
y="1108.22"
|
||||
width="31.78"
|
||||
height="49.2"
|
||||
rx="15.89"
|
||||
transform="translate(3048.5 2265.65) rotate(-180)"
|
||||
></rect><path
|
||||
class="cls-4"
|
||||
d="M1513.13,912.3a6.95,6.95,0,0,1-7,7h-14.33v-2.15h13.88a4.83,4.83,0,0,0,0-9.65h-13.88v-2.14h14.33A7,7,0,0,1,1513.13,912.3Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M1513.13,1009a6.95,6.95,0,0,1-7,7h-14.33v-2.15h13.88a4.83,4.83,0,0,0,0-9.65h-13.88V1002h14.33A7,7,0,0,1,1513.13,1009Z"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M521.33,740.89a40.26,40.26,0,0,0-40.25,40.26V1142.4a40.26,40.26,0,0,0,40.25,40.25h20V740.89Zm-1.53,400.64a10.68,10.68,0,0,1-21.36,0v-17.4a10.68,10.68,0,1,1,21.36,0ZM498.44,780.89a10.68,10.68,0,0,1,21.36,0v17.4a10.68,10.68,0,1,1-21.36,0Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="541.37"
|
||||
y="740.89"
|
||||
width="950.47"
|
||||
height="441.77"
|
||||
></rect><path
|
||||
class="cls-3"
|
||||
d="M521.34,740.89h20a0,0,0,0,1,0,0v441.77a0,0,0,0,1,0,0h-20a40.25,40.25,0,0,1-40.25-40.25V781.14A40.25,40.25,0,0,1,521.34,740.89Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M520.19,769.64a15.9,15.9,0,0,0-27.13,11.24V798.3a15.89,15.89,0,0,0,31.78,0V780.88A15.87,15.87,0,0,0,520.19,769.64Zm-.39,28.65a10.68,10.68,0,1,1-21.36,0v-17.4a10.68,10.68,0,0,1,21.36,0Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M520.19,1112.88a15.89,15.89,0,0,0-27.13,11.23v17.42a15.89,15.89,0,1,0,31.78,0v-17.42A15.85,15.85,0,0,0,520.19,1112.88Zm-.39,28.65a10.68,10.68,0,0,1-21.36,0v-17.4a10.68,10.68,0,1,1,21.36,0Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="498.43"
|
||||
y="770.21"
|
||||
width="21.36"
|
||||
height="38.76"
|
||||
rx="10.68"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="493.06"
|
||||
y="764.99"
|
||||
width="31.78"
|
||||
height="49.2"
|
||||
rx="15.89"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="498.43"
|
||||
y="1113.44"
|
||||
width="21.36"
|
||||
height="38.76"
|
||||
rx="10.68"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="493.06"
|
||||
y="1108.22"
|
||||
width="31.78"
|
||||
height="49.2"
|
||||
rx="15.89"
|
||||
></rect><rect
|
||||
class="cls-4"
|
||||
x="501.66"
|
||||
y="859.82"
|
||||
width="14.3"
|
||||
height="198.79"
|
||||
rx="7.15"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="501.66"
|
||||
y="859.82"
|
||||
width="14.3"
|
||||
height="198.79"
|
||||
rx="7.15"
|
||||
></rect><path
|
||||
class="cls-6"
|
||||
d="M528.29,869.68h13.07a0,0,0,0,1,0,0v179.06a0,0,0,0,1,0,0H528.29a3.45,3.45,0,0,1-3.45-3.45V873.13A3.45,3.45,0,0,1,528.29,869.68Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M528.29,869.68h13.07a0,0,0,0,1,0,0v179.06a0,0,0,0,1,0,0H528.29a3.45,3.45,0,0,1-3.45-3.45V873.13A3.45,3.45,0,0,1,528.29,869.68Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1213.75,1182.65h22.83a0,0,0,0,1,0,0v6.15a2,2,0,0,1-2,2h-18.8a2,2,0,0,1-2-2v-6.15A0,0,0,0,1,1213.75,1182.65Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1297.35,1182.65h22.83a0,0,0,0,1,0,0v6.15a2,2,0,0,1-2,2h-18.8a2,2,0,0,1-2-2v-6.15A0,0,0,0,1,1297.35,1182.65Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1381,1182.65h22.83a0,0,0,0,1,0,0v6.15a2,2,0,0,1-2,2H1383a2,2,0,0,1-2-2v-6.15A0,0,0,0,1,1381,1182.65Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M1213.75,1182.65h22.83a0,0,0,0,1,0,0v6.15a2,2,0,0,1-2,2h-18.8a2,2,0,0,1-2-2v-6.15A0,0,0,0,1,1213.75,1182.65Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M1297.35,1182.65h22.83a0,0,0,0,1,0,0v6.15a2,2,0,0,1-2,2h-18.8a2,2,0,0,1-2-2v-6.15A0,0,0,0,1,1297.35,1182.65Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M1381,1182.65h22.83a0,0,0,0,1,0,0v6.15a2,2,0,0,1-2,2H1383a2,2,0,0,1-2-2v-6.15A0,0,0,0,1,1381,1182.65Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M1465.76,777.61v370.21H637.27V831.44a9.18,9.18,0,0,0-9.18-9.18H605.76a4.34,4.34,0,0,1-4.34-4.33V782a4.34,4.34,0,0,1,4.34-4.34Z"
|
||||
></path><line
|
||||
class="cls-8"
|
||||
x1="637.28"
|
||||
y1="831.44"
|
||||
x2="637.28"
|
||||
y2="777.61"
|
||||
></line><path
|
||||
class="cls-9"
|
||||
d="M1472.8,766.19H588.58a2.34,2.34,0,0,0-2.34,2.34v63.55a2.34,2.34,0,0,0,2.34,2.34h29.94a4.74,4.74,0,0,1,4.74,4.74v312.71a5.55,5.55,0,0,0,5.57,5.55h844a4.87,4.87,0,0,0,4.88-4.87V771.07A4.87,4.87,0,0,0,1472.8,766.19Zm-7,381.63H637.27V831.44a9.18,9.18,0,0,0-9.18-9.18H605.76a4.34,4.34,0,0,1-4.34-4.33V782a4.34,4.34,0,0,1,4.34-4.34h860Z"
|
||||
></path><circle
|
||||
class="cls-4"
|
||||
cx="620.54"
|
||||
cy="798.13"
|
||||
r="8.42"
|
||||
></circle><circle
|
||||
class="cls-7"
|
||||
cx="620.54"
|
||||
cy="798.13"
|
||||
r="8.42"
|
||||
></circle><rect
|
||||
class="cls-10"
|
||||
x="564.75"
|
||||
y="905.43"
|
||||
width="11.84"
|
||||
height="114.57"
|
||||
rx="2.32"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="564.75"
|
||||
y="905.43"
|
||||
width="11.84"
|
||||
height="114.57"
|
||||
rx="2.32"
|
||||
></rect><path
|
||||
class="cls-8"
|
||||
d="M1472.8,766.19H588.58a2.34,2.34,0,0,0-2.34,2.34v63.55a2.34,2.34,0,0,0,2.34,2.34h29.94a4.74,4.74,0,0,1,4.74,4.74v312.71a5.55,5.55,0,0,0,5.57,5.55h844a4.87,4.87,0,0,0,4.88-4.87V771.07A4.87,4.87,0,0,0,1472.8,766.19Zm-7,381.63H637.27V831.44a9.18,9.18,0,0,0-9.18-9.18H605.76a4.34,4.34,0,0,1-4.34-4.33V782a4.34,4.34,0,0,1,4.34-4.34h860Z"
|
||||
></path></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 7.4 KiB |
@@ -1,213 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="479.57 786.58 1040.84 433.17">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #cccccb;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #2b2b2b;
|
||||
}
|
||||
.cls-3, .cls-6, .cls-7, .cls-8 {
|
||||
fill: none;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-3, .cls-6, .cls-7 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-3, .cls-8 {
|
||||
stroke-width: 1.65px;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #40403f;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #ddd;
|
||||
}
|
||||
.cls-6 {
|
||||
stroke-width: 1.62px;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 1.64px;
|
||||
}
|
||||
.cls-8 {
|
||||
stroke: #fff;
|
||||
}
|
||||
.cls-9 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-10 {
|
||||
fill: #c08c2d;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M595,923.44H519.6A10.46,10.46,0,0,1,509.14,913V802.7a15.28,15.28,0,0,1,15.28-15.28h979.89a15.29,15.29,0,0,1,15.29,15.29v400.93a15.3,15.3,0,0,1-15.29,15.29H524.42a15.28,15.28,0,0,1-15.28-15.28V1102.1a10.46,10.46,0,0,1,10.46-10.46H595"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="611.37"
|
||||
y="796.48"
|
||||
width="819.83"
|
||||
height="411.47"
|
||||
></rect><line
|
||||
class="cls-3"
|
||||
x1="1441.99"
|
||||
y1="787.41"
|
||||
x2="1441.99"
|
||||
y2="1218.92"
|
||||
></line><path
|
||||
class="cls-4"
|
||||
d="M620.91,851.7v302.78a1.87,1.87,0,0,1-1.87,1.87h-13.8a8.7,8.7,0,0,1-.89,0,10.23,10.23,0,0,1-9.35-10.2v-286a10.24,10.24,0,0,1,9.35-10.2,8.7,8.7,0,0,1,.89,0H619A1.87,1.87,0,0,1,620.91,851.7Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="480.4"
|
||||
y="942.42"
|
||||
width="114.6"
|
||||
height="127.58"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="480.4"
|
||||
y="942.42"
|
||||
width="114.6"
|
||||
height="127.58"
|
||||
></rect><path
|
||||
class="cls-6"
|
||||
d="M595,923.44H519.6A10.46,10.46,0,0,1,509.14,913V802.7a15.28,15.28,0,0,1,15.28-15.28h979.89a15.29,15.29,0,0,1,15.29,15.29v400.93a15.3,15.3,0,0,1-15.29,15.29H524.42a15.28,15.28,0,0,1-15.28-15.28V1102.1a10.46,10.46,0,0,1,10.46-10.46H595"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M584.65,970.14H595a0,0,0,0,1,0,0v24.44a0,0,0,0,1,0,0H584.65a3,3,0,0,1-3-3V973.11A3,3,0,0,1,584.65,970.14Z"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="560.58"
|
||||
y="976.5"
|
||||
width="9.04"
|
||||
height="16.58"
|
||||
rx="2.72"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M584.65,1026.63H595a0,0,0,0,1,0,0v24.44a0,0,0,0,1,0,0H584.65a3,3,0,0,1-3-3v-18.49A3,3,0,0,1,584.65,1026.63Z"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="560.58"
|
||||
y="1028.91"
|
||||
width="9.04"
|
||||
height="16.58"
|
||||
rx="2.72"
|
||||
></rect><path
|
||||
class="cls-3"
|
||||
d="M584.65,970.14H595a0,0,0,0,1,0,0v24.44a0,0,0,0,1,0,0H584.65a3,3,0,0,1-3-3V973.11A3,3,0,0,1,584.65,970.14Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="560.58"
|
||||
y="976.5"
|
||||
width="9.04"
|
||||
height="16.58"
|
||||
rx="2.72"
|
||||
></rect><path
|
||||
class="cls-3"
|
||||
d="M584.65,1026.63H595a0,0,0,0,1,0,0v24.44a0,0,0,0,1,0,0H584.65a3,3,0,0,1-3-3v-18.49A3,3,0,0,1,584.65,1026.63Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="560.58"
|
||||
y="1028.91"
|
||||
width="9.04"
|
||||
height="16.58"
|
||||
rx="2.72"
|
||||
></rect><polyline
|
||||
class="cls-7"
|
||||
points="611.37 1156.35 611.37 1207.95 1431.2 1207.95 1431.2 796.48 611.37 796.48 611.37 849.83"
|
||||
></polyline><line
|
||||
class="cls-3"
|
||||
x1="611.37"
|
||||
y1="1207.95"
|
||||
x2="611.37"
|
||||
y2="1218.93"
|
||||
></line><line
|
||||
class="cls-3"
|
||||
x1="611.37"
|
||||
y1="796.48"
|
||||
x2="611.37"
|
||||
y2="787.42"
|
||||
></line><rect
|
||||
class="cls-8"
|
||||
x="560.58"
|
||||
y="1107.17"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="528.51"
|
||||
y="1107.17"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="560.58"
|
||||
y="1166.28"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="528.51"
|
||||
y="1166.28"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="560.58"
|
||||
y="804.46"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="528.51"
|
||||
y="804.46"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="560.58"
|
||||
y="863.57"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="528.51"
|
||||
y="863.57"
|
||||
width="18.37"
|
||||
height="41.67"
|
||||
rx="4.91"
|
||||
></rect><circle
|
||||
class="cls-8"
|
||||
cx="1476.63"
|
||||
cy="831.74"
|
||||
r="27.15"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="1476.63"
|
||||
cy="1173.49"
|
||||
r="27.15"
|
||||
></circle><rect
|
||||
class="cls-9"
|
||||
x="676.15"
|
||||
y="804.6"
|
||||
width="742.79"
|
||||
height="396.03"
|
||||
></rect><path
|
||||
class="cls-10"
|
||||
d="M604.35,849.87v306.44a10.23,10.23,0,0,1-9.35-10.2v-286A10.24,10.24,0,0,1,604.35,849.87Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M605.24,849.83H619a1.87,1.87,0,0,1,1.87,1.87v302.78a1.87,1.87,0,0,1-1.87,1.87h-13.8A10.24,10.24,0,0,1,595,1146.11v-286A10.24,10.24,0,0,1,605.24,849.83Z"
|
||||
></path><rect
|
||||
class="cls-6"
|
||||
x="676.15"
|
||||
y="804.6"
|
||||
width="742.79"
|
||||
height="396.03"
|
||||
></rect></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.2 KiB |
@@ -1,510 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="505.33 784.55 1040.95 426.95">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #e8eae8;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #c5c9c9;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #d3d3d3;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #c6842a;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #dbdddb;
|
||||
}
|
||||
.cls-11, .cls-12, .cls-13, .cls-15, .cls-7, .cls-8 {
|
||||
fill: none;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-12, .cls-13, .cls-7, .cls-8 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 2.44px;
|
||||
}
|
||||
.cls-11, .cls-15, .cls-8 {
|
||||
stroke-width: 1.22px;
|
||||
}
|
||||
.cls-9 {
|
||||
fill: #ffe091;
|
||||
}
|
||||
.cls-10 {
|
||||
fill: #cbcccb;
|
||||
}
|
||||
.cls-11 {
|
||||
stroke: #b7b7b7;
|
||||
}
|
||||
.cls-12 {
|
||||
stroke-width: 2.36px;
|
||||
}
|
||||
.cls-13 {
|
||||
stroke-width: 1.25px;
|
||||
}
|
||||
.cls-14 {
|
||||
fill: #050606;
|
||||
}
|
||||
.cls-15 {
|
||||
stroke: #ffe091;
|
||||
stroke-linecap: round;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M1421.48,785.78h91.06A22.44,22.44,0,0,1,1535,808.22v379.61a22.45,22.45,0,0,1-22.44,22.45h-91.06"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="1435.08"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1494.51"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1435.08"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1494.51"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="506.55"
|
||||
y="858.91"
|
||||
width="88.59"
|
||||
height="276.51"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="579.58"
|
||||
y="785.78"
|
||||
width="191.61"
|
||||
height="424.5"
|
||||
></rect><path
|
||||
class="cls-1"
|
||||
d="M595.13,1210.27H528.66a22.1,22.1,0,0,1-22.11-22.11v-65.81l52.68-22.79-1.8-192.37L506.55,884V807.9a22.11,22.11,0,0,1,22.11-22.12h66.47Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M595.13,901.4H571.68a20,20,0,0,0-13.93,5.48,58.89,58.89,0,0,1-20,12.61,7,7,0,0,0-4.53,6.57v153a7,7,0,0,0,4.53,6.57,58.89,58.89,0,0,1,20,12.61,20,20,0,0,0,13.93,5.49h23.45"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M1535,1014.12h5.26a4.8,4.8,0,0,1,4.8,4.8v104.72a4.8,4.8,0,0,1-4.8,4.8H1535a0,0,0,0,1,0,0V1014.12A0,0,0,0,1,1535,1014.12Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1429.58,785.78v424.49H632.82V1097.4a4.66,4.66,0,0,1,4.67-4.65h28.16a11.68,11.68,0,0,0,11.67-11.68V916.93a12.75,12.75,0,0,0-12.24-12.74l-27.79-7.41a4.66,4.66,0,0,1-4.47-4.64V785.78Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M557.43,907.19,506.55,884V807.9a22.11,22.11,0,0,1,22.11-22.12h66.47"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M559.23,1099.56l-52.68,22.79v65.81a22.1,22.1,0,0,0,22.11,22.11h66.47"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M529.59,841.87h22.9a5.13,5.13,0,0,0,4.43-2.56l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.83a5.13,5.13,0,0,0-4.43-2.56h-22.9a5.11,5.11,0,0,0-4.42,2.56l-11.45,19.83a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.11,5.11,0,0,0,529.59,841.87Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M529.59,841.87h22.9a5.13,5.13,0,0,0,4.43-2.56l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.83a5.13,5.13,0,0,0-4.43-2.56h-22.9a5.11,5.11,0,0,0-4.42,2.56l-11.45,19.83a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.11,5.11,0,0,0,529.59,841.87Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="541.04"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="541.04"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-2"
|
||||
d="M529.59,1202h22.9a5.12,5.12,0,0,0,4.43-2.55l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.84a5.12,5.12,0,0,0-4.43-2.55h-22.9a5.1,5.1,0,0,0-4.42,2.55l-11.45,19.84a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.1,5.1,0,0,0,529.59,1202Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M529.59,1202h22.9a5.12,5.12,0,0,0,4.43-2.55l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.84a5.12,5.12,0,0,0-4.43-2.55h-22.9a5.1,5.1,0,0,0-4.42,2.55l-11.45,19.84a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.1,5.1,0,0,0,529.59,1202Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="541.04"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="541.04"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-2"
|
||||
d="M1494.14,841.87H1517a5.11,5.11,0,0,0,4.42-2.56l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.83A5.11,5.11,0,0,0,1517,792h-22.9a5.13,5.13,0,0,0-4.43,2.56l-11.45,19.83a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.13,5.13,0,0,0,1494.14,841.87Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1494.14,841.87H1517a5.11,5.11,0,0,0,4.42-2.56l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.83A5.11,5.11,0,0,0,1517,792h-22.9a5.13,5.13,0,0,0-4.43,2.56l-11.45,19.83a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.13,5.13,0,0,0,1494.14,841.87Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="1505.59"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="1505.59"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-2"
|
||||
d="M1494.14,1202H1517a5.1,5.1,0,0,0,4.42-2.55l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.84a5.1,5.1,0,0,0-4.42-2.55h-22.9a5.12,5.12,0,0,0-4.43,2.55l-11.45,19.84a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.12,5.12,0,0,0,1494.14,1202Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1494.14,1202H1517a5.1,5.1,0,0,0,4.42-2.55l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.84a5.1,5.1,0,0,0-4.42-2.55h-22.9a5.12,5.12,0,0,0-4.43,2.55l-11.45,19.84a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.12,5.12,0,0,0,1494.14,1202Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="1505.59"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="1505.59"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-1"
|
||||
d="M1412.61,816.13v360.16h-755a2.5,2.5,0,0,1-2.51-2.5v-64.32a2.5,2.5,0,0,1,2.51-2.5h30.47a12.81,12.81,0,0,0,12.81-12.82V894.25a12.81,12.81,0,0,0-12.81-12.82H657.58a2.5,2.5,0,0,1-2.51-2.5V818.64a2.51,2.51,0,0,1,2.51-2.51Z"
|
||||
></path><circle
|
||||
class="cls-10"
|
||||
cx="672.06"
|
||||
cy="1154.92"
|
||||
r="8.89"
|
||||
></circle><circle
|
||||
class="cls-11"
|
||||
cx="672.06"
|
||||
cy="1154.92"
|
||||
r="8.89"
|
||||
></circle><circle
|
||||
class="cls-10"
|
||||
cx="672.06"
|
||||
cy="838.98"
|
||||
r="8.89"
|
||||
></circle><circle
|
||||
class="cls-11"
|
||||
cx="672.06"
|
||||
cy="838.98"
|
||||
r="8.89"
|
||||
></circle><line
|
||||
class="cls-7"
|
||||
x1="506.55"
|
||||
y1="884.01"
|
||||
x2="506.55"
|
||||
y2="1122.35"
|
||||
></line><path
|
||||
class="cls-12"
|
||||
d="M595.13,901.4H571.68a20,20,0,0,0-13.93,5.48,58.89,58.89,0,0,1-20,12.61,7,7,0,0,0-4.53,6.57v153a7,7,0,0,0,4.53,6.57,58.89,58.89,0,0,1,20,12.61,20,20,0,0,0,13.93,5.49h23.45"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="621.34"
|
||||
y="935.2"
|
||||
width="11.49"
|
||||
height="113.49"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="621.34"
|
||||
y="935.2"
|
||||
width="11.49"
|
||||
height="113.49"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="712.79"
|
||||
y="826.99"
|
||||
width="685.79"
|
||||
height="336.38"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M1421.48,785.78h91.06A22.44,22.44,0,0,1,1535,808.22v379.61a22.45,22.45,0,0,1-22.44,22.45h-91.06"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="1435.08"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="1494.51"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="1435.08"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="1494.51"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M1535,1014.12h5.26a4.8,4.8,0,0,1,4.8,4.8v104.72a4.8,4.8,0,0,1-4.8,4.8H1535a0,0,0,0,1,0,0V1014.12A0,0,0,0,1,1535,1014.12Z"
|
||||
></path><circle
|
||||
class="cls-14"
|
||||
cx="1453.85"
|
||||
cy="1032.4"
|
||||
r="5.56"
|
||||
></circle><circle
|
||||
class="cls-14"
|
||||
cx="1453.85"
|
||||
cy="1114.38"
|
||||
r="5.56"
|
||||
></circle><line
|
||||
class="cls-11"
|
||||
x1="688.05"
|
||||
y1="1106.97"
|
||||
x2="688.05"
|
||||
y2="1176.29"
|
||||
></line><line
|
||||
class="cls-11"
|
||||
x1="688.05"
|
||||
y1="881.43"
|
||||
x2="688.05"
|
||||
y2="816.13"
|
||||
></line><rect
|
||||
class="cls-11"
|
||||
x="712.79"
|
||||
y="826.99"
|
||||
width="685.79"
|
||||
height="336.38"
|
||||
></rect><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="928.91"
|
||||
x2="568.22"
|
||||
y2="928.91"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="933.4"
|
||||
x2="568.22"
|
||||
y2="933.4"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="937.89"
|
||||
x2="568.22"
|
||||
y2="937.89"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="942.37"
|
||||
x2="568.22"
|
||||
y2="942.37"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="946.86"
|
||||
x2="568.22"
|
||||
y2="946.86"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="951.35"
|
||||
x2="568.22"
|
||||
y2="951.35"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="955.83"
|
||||
x2="568.22"
|
||||
y2="955.83"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="960.32"
|
||||
x2="568.22"
|
||||
y2="960.32"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="964.81"
|
||||
x2="568.22"
|
||||
y2="964.81"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="969.29"
|
||||
x2="568.22"
|
||||
y2="969.29"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="973.78"
|
||||
x2="568.22"
|
||||
y2="973.78"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="978.26"
|
||||
x2="568.22"
|
||||
y2="978.26"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="982.75"
|
||||
x2="568.22"
|
||||
y2="982.75"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="987.24"
|
||||
x2="568.22"
|
||||
y2="987.24"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="991.72"
|
||||
x2="568.22"
|
||||
y2="991.72"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="996.21"
|
||||
x2="568.22"
|
||||
y2="996.21"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1000.7"
|
||||
x2="568.22"
|
||||
y2="1000.7"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1005.18"
|
||||
x2="568.22"
|
||||
y2="1005.18"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1009.67"
|
||||
x2="568.22"
|
||||
y2="1009.67"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1014.16"
|
||||
x2="568.22"
|
||||
y2="1014.16"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1018.64"
|
||||
x2="568.22"
|
||||
y2="1018.64"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1023.13"
|
||||
x2="568.22"
|
||||
y2="1023.13"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1027.62"
|
||||
x2="568.22"
|
||||
y2="1027.62"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1032.1"
|
||||
x2="568.22"
|
||||
y2="1032.1"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1036.59"
|
||||
x2="568.22"
|
||||
y2="1036.59"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1041.08"
|
||||
x2="568.22"
|
||||
y2="1041.08"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1045.56"
|
||||
x2="568.22"
|
||||
y2="1045.56"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1050.05"
|
||||
x2="568.22"
|
||||
y2="1050.05"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1054.53"
|
||||
x2="568.22"
|
||||
y2="1054.53"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1059.02"
|
||||
x2="568.22"
|
||||
y2="1059.02"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1063.51"
|
||||
x2="568.22"
|
||||
y2="1063.51"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1067.99"
|
||||
x2="568.22"
|
||||
y2="1067.99"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1072.48"
|
||||
x2="568.22"
|
||||
y2="1072.48"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1076.97"
|
||||
x2="568.22"
|
||||
y2="1076.97"
|
||||
></line><path
|
||||
class="cls-11"
|
||||
d="M632.82,1210.27V1097.4a4.66,4.66,0,0,1,4.67-4.65h28.16a11.68,11.68,0,0,0,11.67-11.68V916.93c0-6.85-5.05-10.17-12.24-12.74l-27.79-7.41a4.66,4.66,0,0,1-4.47-4.64V785.78"
|
||||
></path><path
|
||||
class="cls-11"
|
||||
d="M1412.61,816.13v360.16h-755a2.5,2.5,0,0,1-2.51-2.5v-64.32a2.5,2.5,0,0,1,2.51-2.5h30.47a12.81,12.81,0,0,0,12.81-12.82V894.25a12.81,12.81,0,0,0-12.81-12.82H657.58a2.5,2.5,0,0,1-2.51-2.5V818.64a2.51,2.51,0,0,1,2.51-2.51Z"
|
||||
></path><polyline
|
||||
class="cls-7"
|
||||
points="632.82 785.77 1429.58 785.77 1429.58 1210.27 632.82 1210.27"
|
||||
></polyline><polyline
|
||||
class="cls-7"
|
||||
points="632.82 1210.27 595.13 1210.27 595.13 785.77 632.82 785.77"
|
||||
></polyline></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 13 KiB |
@@ -1,510 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="505.33 784.55 1040.95 426.95">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #e8eae8;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #c5c9c9;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #d3d3d3;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #c6842a;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #dbdddb;
|
||||
}
|
||||
.cls-11, .cls-12, .cls-13, .cls-15, .cls-7, .cls-8 {
|
||||
fill: none;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-12, .cls-13, .cls-7, .cls-8 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 2.44px;
|
||||
}
|
||||
.cls-11, .cls-15, .cls-8 {
|
||||
stroke-width: 1.22px;
|
||||
}
|
||||
.cls-9 {
|
||||
fill: #ffe091;
|
||||
}
|
||||
.cls-10 {
|
||||
fill: #cbcccb;
|
||||
}
|
||||
.cls-11 {
|
||||
stroke: #b7b7b7;
|
||||
}
|
||||
.cls-12 {
|
||||
stroke-width: 2.36px;
|
||||
}
|
||||
.cls-13 {
|
||||
stroke-width: 1.25px;
|
||||
}
|
||||
.cls-14 {
|
||||
fill: #050606;
|
||||
}
|
||||
.cls-15 {
|
||||
stroke: #ffe091;
|
||||
stroke-linecap: round;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M1421.48,785.78h91.06A22.44,22.44,0,0,1,1535,808.22v379.61a22.45,22.45,0,0,1-22.44,22.45h-91.06"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="1435.08"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1494.51"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1435.08"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1494.51"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="506.55"
|
||||
y="858.91"
|
||||
width="88.59"
|
||||
height="276.51"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="579.58"
|
||||
y="785.78"
|
||||
width="191.61"
|
||||
height="424.5"
|
||||
></rect><path
|
||||
class="cls-1"
|
||||
d="M595.13,1210.27H528.66a22.1,22.1,0,0,1-22.11-22.11v-65.81l52.68-22.79-1.8-192.37L506.55,884V807.9a22.11,22.11,0,0,1,22.11-22.12h66.47Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M595.13,901.4H571.68a20,20,0,0,0-13.93,5.48,58.89,58.89,0,0,1-20,12.61,7,7,0,0,0-4.53,6.57v153a7,7,0,0,0,4.53,6.57,58.89,58.89,0,0,1,20,12.61,20,20,0,0,0,13.93,5.49h23.45"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M1535,1014.12h5.26a4.8,4.8,0,0,1,4.8,4.8v104.72a4.8,4.8,0,0,1-4.8,4.8H1535a0,0,0,0,1,0,0V1014.12A0,0,0,0,1,1535,1014.12Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1429.58,785.78v424.49H632.82V1097.4a4.66,4.66,0,0,1,4.67-4.65h28.16a11.68,11.68,0,0,0,11.67-11.68V916.93a12.75,12.75,0,0,0-12.24-12.74l-27.79-7.41a4.66,4.66,0,0,1-4.47-4.64V785.78Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M557.43,907.19,506.55,884V807.9a22.11,22.11,0,0,1,22.11-22.12h66.47"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M559.23,1099.56l-52.68,22.79v65.81a22.1,22.1,0,0,0,22.11,22.11h66.47"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M529.59,841.87h22.9a5.13,5.13,0,0,0,4.43-2.56l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.83a5.13,5.13,0,0,0-4.43-2.56h-22.9a5.11,5.11,0,0,0-4.42,2.56l-11.45,19.83a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.11,5.11,0,0,0,529.59,841.87Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M529.59,841.87h22.9a5.13,5.13,0,0,0,4.43-2.56l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.83a5.13,5.13,0,0,0-4.43-2.56h-22.9a5.11,5.11,0,0,0-4.42,2.56l-11.45,19.83a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.11,5.11,0,0,0,529.59,841.87Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="541.04"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="541.04"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-2"
|
||||
d="M529.59,1202h22.9a5.12,5.12,0,0,0,4.43-2.55l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.84a5.12,5.12,0,0,0-4.43-2.55h-22.9a5.1,5.1,0,0,0-4.42,2.55l-11.45,19.84a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.1,5.1,0,0,0,529.59,1202Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M529.59,1202h22.9a5.12,5.12,0,0,0,4.43-2.55l11.45-19.83a5.12,5.12,0,0,0,0-5.11l-11.45-19.84a5.12,5.12,0,0,0-4.43-2.55h-22.9a5.1,5.1,0,0,0-4.42,2.55l-11.45,19.84a5.08,5.08,0,0,0,0,5.11l11.45,19.83A5.1,5.1,0,0,0,529.59,1202Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="541.04"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="541.04"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-2"
|
||||
d="M1494.14,841.87H1517a5.11,5.11,0,0,0,4.42-2.56l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.83A5.11,5.11,0,0,0,1517,792h-22.9a5.13,5.13,0,0,0-4.43,2.56l-11.45,19.83a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.13,5.13,0,0,0,1494.14,841.87Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1494.14,841.87H1517a5.11,5.11,0,0,0,4.42-2.56l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.83A5.11,5.11,0,0,0,1517,792h-22.9a5.13,5.13,0,0,0-4.43,2.56l-11.45,19.83a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.13,5.13,0,0,0,1494.14,841.87Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="1505.59"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="1505.59"
|
||||
cy="816.93"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-2"
|
||||
d="M1494.14,1202H1517a5.1,5.1,0,0,0,4.42-2.55l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.84a5.1,5.1,0,0,0-4.42-2.55h-22.9a5.12,5.12,0,0,0-4.43,2.55l-11.45,19.84a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.12,5.12,0,0,0,1494.14,1202Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1494.14,1202H1517a5.1,5.1,0,0,0,4.42-2.55l11.45-19.83a5.08,5.08,0,0,0,0-5.11l-11.45-19.84a5.1,5.1,0,0,0-4.42-2.55h-22.9a5.12,5.12,0,0,0-4.43,2.55l-11.45,19.84a5.12,5.12,0,0,0,0,5.11l11.45,19.83A5.12,5.12,0,0,0,1494.14,1202Z"
|
||||
></path><circle
|
||||
class="cls-9"
|
||||
cx="1505.59"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><circle
|
||||
class="cls-8"
|
||||
cx="1505.59"
|
||||
cy="1177.09"
|
||||
r="14.1"
|
||||
></circle><path
|
||||
class="cls-1"
|
||||
d="M1412.61,816.13v360.16h-755a2.5,2.5,0,0,1-2.51-2.5v-64.32a2.5,2.5,0,0,1,2.51-2.5h30.47a12.81,12.81,0,0,0,12.81-12.82V894.25a12.81,12.81,0,0,0-12.81-12.82H657.58a2.5,2.5,0,0,1-2.51-2.5V818.64a2.51,2.51,0,0,1,2.51-2.51Z"
|
||||
></path><circle
|
||||
class="cls-10"
|
||||
cx="672.06"
|
||||
cy="1154.92"
|
||||
r="8.89"
|
||||
></circle><circle
|
||||
class="cls-11"
|
||||
cx="672.06"
|
||||
cy="1154.92"
|
||||
r="8.89"
|
||||
></circle><circle
|
||||
class="cls-10"
|
||||
cx="672.06"
|
||||
cy="838.98"
|
||||
r="8.89"
|
||||
></circle><circle
|
||||
class="cls-11"
|
||||
cx="672.06"
|
||||
cy="838.98"
|
||||
r="8.89"
|
||||
></circle><line
|
||||
class="cls-7"
|
||||
x1="506.55"
|
||||
y1="884.01"
|
||||
x2="506.55"
|
||||
y2="1122.35"
|
||||
></line><path
|
||||
class="cls-12"
|
||||
d="M595.13,901.4H571.68a20,20,0,0,0-13.93,5.48,58.89,58.89,0,0,1-20,12.61,7,7,0,0,0-4.53,6.57v153a7,7,0,0,0,4.53,6.57,58.89,58.89,0,0,1,20,12.61,20,20,0,0,0,13.93,5.49h23.45"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="621.34"
|
||||
y="935.2"
|
||||
width="11.49"
|
||||
height="113.49"
|
||||
></rect><rect
|
||||
class="cls-13"
|
||||
x="621.34"
|
||||
y="935.2"
|
||||
width="11.49"
|
||||
height="113.49"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="712.79"
|
||||
y="826.99"
|
||||
width="685.79"
|
||||
height="336.38"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M1421.48,785.78h91.06A22.44,22.44,0,0,1,1535,808.22v379.61a22.45,22.45,0,0,1-22.44,22.45h-91.06"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="1435.08"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="1494.51"
|
||||
y="1005.05"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="1435.08"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="1494.51"
|
||||
y="1128.44"
|
||||
width="26.44"
|
||||
height="11.33"
|
||||
rx="5.67"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M1535,1014.12h5.26a4.8,4.8,0,0,1,4.8,4.8v104.72a4.8,4.8,0,0,1-4.8,4.8H1535a0,0,0,0,1,0,0V1014.12A0,0,0,0,1,1535,1014.12Z"
|
||||
></path><circle
|
||||
class="cls-14"
|
||||
cx="1453.85"
|
||||
cy="1032.4"
|
||||
r="5.56"
|
||||
></circle><circle
|
||||
class="cls-14"
|
||||
cx="1453.85"
|
||||
cy="1114.38"
|
||||
r="5.56"
|
||||
></circle><line
|
||||
class="cls-11"
|
||||
x1="688.05"
|
||||
y1="1106.97"
|
||||
x2="688.05"
|
||||
y2="1176.29"
|
||||
></line><line
|
||||
class="cls-11"
|
||||
x1="688.05"
|
||||
y1="881.43"
|
||||
x2="688.05"
|
||||
y2="816.13"
|
||||
></line><rect
|
||||
class="cls-11"
|
||||
x="712.79"
|
||||
y="826.99"
|
||||
width="685.79"
|
||||
height="336.38"
|
||||
></rect><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="928.91"
|
||||
x2="568.22"
|
||||
y2="928.91"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="933.4"
|
||||
x2="568.22"
|
||||
y2="933.4"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="937.89"
|
||||
x2="568.22"
|
||||
y2="937.89"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="942.37"
|
||||
x2="568.22"
|
||||
y2="942.37"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="946.86"
|
||||
x2="568.22"
|
||||
y2="946.86"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="951.35"
|
||||
x2="568.22"
|
||||
y2="951.35"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="955.83"
|
||||
x2="568.22"
|
||||
y2="955.83"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="960.32"
|
||||
x2="568.22"
|
||||
y2="960.32"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="964.81"
|
||||
x2="568.22"
|
||||
y2="964.81"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="969.29"
|
||||
x2="568.22"
|
||||
y2="969.29"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="973.78"
|
||||
x2="568.22"
|
||||
y2="973.78"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="978.26"
|
||||
x2="568.22"
|
||||
y2="978.26"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="982.75"
|
||||
x2="568.22"
|
||||
y2="982.75"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="987.24"
|
||||
x2="568.22"
|
||||
y2="987.24"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="991.72"
|
||||
x2="568.22"
|
||||
y2="991.72"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="996.21"
|
||||
x2="568.22"
|
||||
y2="996.21"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1000.7"
|
||||
x2="568.22"
|
||||
y2="1000.7"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1005.18"
|
||||
x2="568.22"
|
||||
y2="1005.18"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1009.67"
|
||||
x2="568.22"
|
||||
y2="1009.67"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1014.16"
|
||||
x2="568.22"
|
||||
y2="1014.16"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1018.64"
|
||||
x2="568.22"
|
||||
y2="1018.64"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1023.13"
|
||||
x2="568.22"
|
||||
y2="1023.13"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1027.62"
|
||||
x2="568.22"
|
||||
y2="1027.62"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1032.1"
|
||||
x2="568.22"
|
||||
y2="1032.1"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1036.59"
|
||||
x2="568.22"
|
||||
y2="1036.59"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1041.08"
|
||||
x2="568.22"
|
||||
y2="1041.08"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1045.56"
|
||||
x2="568.22"
|
||||
y2="1045.56"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1050.05"
|
||||
x2="568.22"
|
||||
y2="1050.05"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1054.53"
|
||||
x2="568.22"
|
||||
y2="1054.53"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1059.02"
|
||||
x2="568.22"
|
||||
y2="1059.02"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1063.51"
|
||||
x2="568.22"
|
||||
y2="1063.51"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1067.99"
|
||||
x2="568.22"
|
||||
y2="1067.99"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1072.48"
|
||||
x2="568.22"
|
||||
y2="1072.48"
|
||||
></line><line
|
||||
class="cls-15"
|
||||
x1="538.46"
|
||||
y1="1076.97"
|
||||
x2="568.22"
|
||||
y2="1076.97"
|
||||
></line><path
|
||||
class="cls-11"
|
||||
d="M632.82,1210.27V1097.4a4.66,4.66,0,0,1,4.67-4.65h28.16a11.68,11.68,0,0,0,11.67-11.68V916.93c0-6.85-5.05-10.17-12.24-12.74l-27.79-7.41a4.66,4.66,0,0,1-4.47-4.64V785.78"
|
||||
></path><path
|
||||
class="cls-11"
|
||||
d="M1412.61,816.13v360.16h-755a2.5,2.5,0,0,1-2.51-2.5v-64.32a2.5,2.5,0,0,1,2.51-2.5h30.47a12.81,12.81,0,0,0,12.81-12.82V894.25a12.81,12.81,0,0,0-12.81-12.82H657.58a2.5,2.5,0,0,1-2.51-2.5V818.64a2.51,2.51,0,0,1,2.51-2.51Z"
|
||||
></path><polyline
|
||||
class="cls-7"
|
||||
points="632.82 785.77 1429.58 785.77 1429.58 1210.27 632.82 1210.27"
|
||||
></polyline><polyline
|
||||
class="cls-7"
|
||||
points="632.82 1210.27 595.13 1210.27 595.13 785.77 632.82 785.77"
|
||||
></polyline></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 47 KiB |
@@ -1,216 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="340.47 241 263.8 451.32">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #434143;
|
||||
}
|
||||
.cls-2, .cls-6, .cls-7 {
|
||||
fill: none;
|
||||
}
|
||||
.cls-2 {
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #2b2b2b;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #181818;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #e8eae8;
|
||||
}
|
||||
.cls-6, .cls-7 {
|
||||
stroke: #e8eae8;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
</style></defs><g id="Layer_2" data-name="Layer 2"><rect
|
||||
class="cls-1"
|
||||
x="340.97"
|
||||
y="241.5"
|
||||
width="262.8"
|
||||
height="450.32"
|
||||
rx="27.43"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="340.97"
|
||||
y="241.5"
|
||||
width="262.8"
|
||||
height="450.32"
|
||||
rx="27.43"
|
||||
></rect><circle
|
||||
class="cls-3"
|
||||
cx="364.66"
|
||||
cy="264.01"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="364.66"
|
||||
cy="264.01"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M372.05,264a2.39,2.39,0,0,1-2.39,2.38h-2.61V269a2.38,2.38,0,1,1-4.76,0v-2.62h-2.63a2.39,2.39,0,1,1,0-4.77h2.63V259a2.38,2.38,0,0,1,2.37-2.38,2.39,2.39,0,0,1,2.39,2.38v2.62h2.61A2.4,2.4,0,0,1,372.05,264Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="579.41"
|
||||
cy="264.01"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="579.41"
|
||||
cy="264.01"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M586.79,264a2.39,2.39,0,0,1-2.38,2.38h-2.62V269a2.38,2.38,0,1,1-4.76,0v-2.62h-2.62a2.39,2.39,0,1,1,0-4.77H577V259a2.38,2.38,0,0,1,4.76,0v2.62h2.62A2.39,2.39,0,0,1,586.79,264Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="364.66"
|
||||
cy="666.6"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="364.66"
|
||||
cy="666.6"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M372.05,666.61a2.39,2.39,0,0,1-2.39,2.38h-2.61v2.62a2.38,2.38,0,1,1-4.76,0V669h-2.63a2.39,2.39,0,1,1,0-4.77h2.63V661.6a2.38,2.38,0,0,1,2.37-2.38,2.39,2.39,0,0,1,2.39,2.38v2.62h2.61A2.4,2.4,0,0,1,372.05,666.61Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="579.41"
|
||||
cy="666.6"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="579.41"
|
||||
cy="666.6"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M586.79,666.61a2.39,2.39,0,0,1-2.38,2.38h-2.62v2.62a2.38,2.38,0,0,1-4.76,0V669h-2.62a2.39,2.39,0,1,1,0-4.77H577V661.6a2.38,2.38,0,0,1,4.76,0v2.62h2.62A2.39,2.39,0,0,1,586.79,666.61Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="579.41"
|
||||
cy="440.79"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="579.41"
|
||||
cy="440.79"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M586.79,440.79a2.39,2.39,0,0,1-2.38,2.38h-2.62v2.62a2.38,2.38,0,1,1-4.76,0v-2.62h-2.62a2.39,2.39,0,1,1,0-4.77H577v-2.62a2.38,2.38,0,0,1,4.76,0v2.62h2.62A2.39,2.39,0,0,1,586.79,440.79Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="361.13"
|
||||
cy="442.81"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="361.13"
|
||||
cy="442.81"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M368.51,442.81a2.39,2.39,0,0,1-2.38,2.38h-2.62v2.62a2.38,2.38,0,1,1-4.76,0v-2.62h-2.62a2.39,2.39,0,1,1,0-4.77h2.62V437.8a2.38,2.38,0,0,1,4.76,0v2.62h2.62A2.39,2.39,0,0,1,368.51,442.81Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="442.52"
|
||||
y="591.7"
|
||||
width="6.5"
|
||||
height="54.62"
|
||||
transform="translate(432.79 -143.7) rotate(34.78)"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M521.39,639.18l-5.34,3.71L489,604.34l-26.94,39-5.34-3.71,28.32-41,1.06-1.53a3.53,3.53,0,0,1,5.8,0l1.06,1.53Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="407.64"
|
||||
y="511.78"
|
||||
width="135.85"
|
||||
height="67.27"
|
||||
rx="3.52"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="407.64"
|
||||
y="511.78"
|
||||
width="135.85"
|
||||
height="67.27"
|
||||
rx="3.52"
|
||||
></rect><circle class="cls-6" cx="586.93" cy="479.19" r="9.9"></circle><rect
|
||||
class="cls-5"
|
||||
x="581.12"
|
||||
y="478.38"
|
||||
width="9.09"
|
||||
height="1.63"
|
||||
rx="0.82"
|
||||
></rect><circle
|
||||
class="cls-5"
|
||||
cx="591.91"
|
||||
cy="479.19"
|
||||
r="0.83"
|
||||
></circle><path
|
||||
class="cls-7"
|
||||
d="M592.84,629.48a7.9,7.9,0,1,1-.29-6.3"
|
||||
></path><line
|
||||
class="cls-7"
|
||||
x1="586.78"
|
||||
y1="626.67"
|
||||
x2="594.43"
|
||||
y2="626.67"
|
||||
></line><path
|
||||
class="cls-5"
|
||||
d="M408.88,655.16h3.51l4.58,7.29v-7.29h3.55v13.18H417l-4.56-7.24v7.24h-3.53Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M425.87,661.88l-3.23-.37a4.06,4.06,0,0,1,.53-1.44,3,3,0,0,1,1-.91,3.82,3.82,0,0,1,1.28-.43,8.86,8.86,0,0,1,1.76-.16,13.09,13.09,0,0,1,2.44.19,3,3,0,0,1,1.54.77,2.86,2.86,0,0,1,.68,1.14,4.67,4.67,0,0,1,.25,1.42v4.22a5.74,5.74,0,0,0,.07,1.05,5.4,5.4,0,0,0,.35,1h-3.17a3.65,3.65,0,0,1-.25-.56,4.32,4.32,0,0,1-.12-.61,4.38,4.38,0,0,1-1.32,1,5.18,5.18,0,0,1-2.08.39,3.32,3.32,0,0,1-2.4-.79,2.61,2.61,0,0,1-.81-2A2.71,2.71,0,0,1,423,664a3.89,3.89,0,0,1,2.18-1c1.27-.28,2.09-.47,2.47-.58a11.09,11.09,0,0,0,1.19-.44,1.35,1.35,0,0,0-.26-.94,1.21,1.21,0,0,0-.9-.27,2.22,2.22,0,0,0-1.25.29A1.6,1.6,0,0,0,425.87,661.88Zm2.93,1.93a12.94,12.94,0,0,1-1.45.47,3.35,3.35,0,0,0-1.31.59,1,1,0,0,0,0,1.38,1.14,1.14,0,0,0,.82.27,2,2,0,0,0,1.05-.3,1.7,1.7,0,0,0,.69-.72,2.66,2.66,0,0,0,.2-1.11Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M434.13,658.79h3.15v1.55A5,5,0,0,1,438.7,659a3.58,3.58,0,0,1,1.76-.41,2.75,2.75,0,0,1,2.2.91,4.13,4.13,0,0,1,.79,2.79v6.07h-3.39v-5.25a2,2,0,0,0-.31-1.27,1,1,0,0,0-.86-.38,1.2,1.2,0,0,0-1,.51,3.12,3.12,0,0,0-.38,1.8v4.59h-3.38Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M445.06,663.59a5,5,0,0,1,1.36-3.6,5.55,5.55,0,0,1,7.68.25,5.08,5.08,0,0,1,1.08,3.3,5,5,0,0,1-1.35,3.61,5.64,5.64,0,0,1-7.16.23A4.81,4.81,0,0,1,445.06,663.59Zm3.38,0a3.06,3.06,0,0,0,.48,1.89,1.49,1.49,0,0,0,2.4,0,3.18,3.18,0,0,0,.47-1.93,3,3,0,0,0-.47-1.85,1.43,1.43,0,0,0-1.17-.61,1.51,1.51,0,0,0-1.23.62A3,3,0,0,0,448.44,663.58Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M468.82,663.56v-2.74h5.81v5.62a11.64,11.64,0,0,1-2.95,1.68,9.47,9.47,0,0,1-3,.44,6.86,6.86,0,0,1-3.53-.8,5.31,5.31,0,0,1-2.12-2.38,8.38,8.38,0,0,1-.75-3.63,8.11,8.11,0,0,1,.82-3.76,5.53,5.53,0,0,1,2.41-2.42,7.36,7.36,0,0,1,3.33-.64,8.56,8.56,0,0,1,3,.4,3.89,3.89,0,0,1,1.66,1.23,5.54,5.54,0,0,1,1,2.1l-3.63.71a2.15,2.15,0,0,0-.76-1.15,2.26,2.26,0,0,0-1.36-.39,2.39,2.39,0,0,0-2,.93,4.74,4.74,0,0,0-.73,2.94,4.94,4.94,0,0,0,.74,3.06,2.53,2.53,0,0,0,2.07.92,3.74,3.74,0,0,0,1.21-.2,6.12,6.12,0,0,0,1.31-.68v-1.24Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M486.22,668.34H476.07a7.23,7.23,0,0,1,1.06-3.06,14.61,14.61,0,0,1,3.32-3.39,10.56,10.56,0,0,0,1.9-1.81,2.21,2.21,0,0,0,.41-1.18,1.4,1.4,0,0,0-.41-1,1.35,1.35,0,0,0-1-.43,1.39,1.39,0,0,0-1.06.44,2.84,2.84,0,0,0-.55,1.56l-3.39-.3a6.13,6.13,0,0,1,.73-2.41,3.41,3.41,0,0,1,1.5-1.33,6.28,6.28,0,0,1,2.68-.47,7.05,7.05,0,0,1,2.77.44,3.44,3.44,0,0,1,1.56,1.36,3.76,3.76,0,0,1,.57,2,4.36,4.36,0,0,1-.65,2.3,9.09,9.09,0,0,1-2.37,2.41c-.68.51-1.13.87-1.36,1.07s-.5.47-.81.8h5.28Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M501.8,655.16h3.75V663a7,7,0,0,1-.34,2.21,4.76,4.76,0,0,1-1,1.81,4.16,4.16,0,0,1-1.51,1.09,6.89,6.89,0,0,1-2.63.44,15.27,15.27,0,0,1-1.94-.13,4.69,4.69,0,0,1-1.75-.54,4.38,4.38,0,0,1-1.29-1.13,4.22,4.22,0,0,1-.8-1.52,8.17,8.17,0,0,1-.35-2.23v-7.85h3.75v8a2.38,2.38,0,0,0,.55,1.68,2,2,0,0,0,1.53.61,2,2,0,0,0,1.53-.6,2.44,2.44,0,0,0,.55-1.69Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M507.93,655.16h3.39v13.18h-3.39Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M517.56,655.16v3.63h1.86v2.68h-1.86v3.38a2,2,0,0,0,.1.81.61.61,0,0,0,.58.3,3.33,3.33,0,0,0,1-.23l.25,2.53a10.1,10.1,0,0,1-2.34.29,3.74,3.74,0,0,1-1.86-.35,2,2,0,0,1-.88-1.06,6.52,6.52,0,0,1-.29-2.31v-3.36h-1.25v-2.68h1.25V657Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M521.06,658.79h3.16v1.56a3.81,3.81,0,0,1,.94-1.39,1.88,1.88,0,0,1,1.2-.39,3.33,3.33,0,0,1,1.64.51l-1,2.6a2.43,2.43,0,0,0-.94-.26,1.12,1.12,0,0,0-1,.59,6.43,6.43,0,0,0-.53,3.13v3.2h-3.39Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M531.94,661.88l-3.23-.37a4.06,4.06,0,0,1,.53-1.44,3,3,0,0,1,1-.91,3.82,3.82,0,0,1,1.28-.43,8.86,8.86,0,0,1,1.76-.16,13.09,13.09,0,0,1,2.44.19,3,3,0,0,1,1.54.77,2.86,2.86,0,0,1,.68,1.14,4.67,4.67,0,0,1,.25,1.42v4.22a4.85,4.85,0,0,0,.08,1.05,4.6,4.6,0,0,0,.34,1h-3.17a3.65,3.65,0,0,1-.25-.56,4.32,4.32,0,0,1-.12-.61,4.38,4.38,0,0,1-1.32,1,5.15,5.15,0,0,1-2.08.39,3.28,3.28,0,0,1-2.39-.79,2.58,2.58,0,0,1-.82-2A2.67,2.67,0,0,1,529,664a3.86,3.86,0,0,1,2.17-1c1.27-.28,2.09-.47,2.47-.58a11.09,11.09,0,0,0,1.19-.44,1.36,1.36,0,0,0-.25-.94,1.25,1.25,0,0,0-.91-.27,2.18,2.18,0,0,0-1.24.29A1.6,1.6,0,0,0,531.94,661.88Zm2.93,1.93a12.94,12.94,0,0,1-1.45.47,3.21,3.21,0,0,0-1.3.59,1,1,0,0,0-.29.67,1,1,0,0,0,.28.71,1.14,1.14,0,0,0,.82.27,1.94,1.94,0,0,0,1.05-.3,1.7,1.7,0,0,0,.69-.72,2.51,2.51,0,0,0,.2-1.11Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M579.88,583.57v16l.41-.47a7.4,7.4,0,0,1,5.54-2.48h.24a8.27,8.27,0,0,0,6.37-3l.18-.21a3.11,3.11,0,0,0,.14-3.78l-.24-.34a8.29,8.29,0,0,0-6.76-3.49h-.57a7.4,7.4,0,0,1-4.87-1.83Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M579.87,594.24a2.68,2.68,0,1,1,0-5.35"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M588.69,547.89a6.85,6.85,0,0,0-3.84,1.17l-.15.11-8,5.63,8,5.63.15.11a6.91,6.91,0,1,0,3.84-12.65Zm0,9.72a2.81,2.81,0,1,1,2.81-2.81A2.81,2.81,0,0,1,588.69,557.61Z"
|
||||
></path><polygon
|
||||
class="cls-6"
|
||||
points="582.55 520.31 588.06 528.85 577.03 528.85 577.03 511.78 588.06 511.78 582.55 520.31"
|
||||
></polygon><polygon
|
||||
class="cls-6"
|
||||
points="594.05 520.03 588.06 528.85 582.55 520.31 588.06 511.78 594.05 520.03"
|
||||
></polygon></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 86 KiB |
@@ -1,264 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="663.59 325.94 640.35 1015.71">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #1d1e1e;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #9f9f9e;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #434343;
|
||||
}
|
||||
.cls-5, .cls-7 {
|
||||
fill: none;
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-5 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #b1a368;
|
||||
}
|
||||
</style></defs><g id="Layer_7" data-name="Layer 7"><rect
|
||||
class="cls-1"
|
||||
x="1079.47"
|
||||
y="834.15"
|
||||
width="56.53"
|
||||
height="9.97"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="1075.53"
|
||||
y="800.89"
|
||||
width="63.83"
|
||||
height="33.26"
|
||||
></rect><path
|
||||
class="cls-1"
|
||||
d="M1079.93,800.89v-5.28a2.81,2.81,0,0,1,2.81-2.81h50.45a2.81,2.81,0,0,1,2.82,2.81v5.28"
|
||||
></path><rect
|
||||
class="cls-1"
|
||||
x="1076.7"
|
||||
y="718.27"
|
||||
width="62.66"
|
||||
height="70.68"
|
||||
rx="3.45"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="1082.84"
|
||||
y="788.94"
|
||||
width="50.73"
|
||||
height="3.86"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M1085.24,695.85s-2.75-3.82-4.5-3.27-3.94.3-1.53,2.72l12.9,13s.75.76.61,3.43.07,5.63.65,5.91,30.43,1.59,30.64-.79.67-6.25-.74-5.68-11.35,4.43-19.55.05S1085.24,695.85,1085.24,695.85Z"
|
||||
></path><path
|
||||
class="cls-1"
|
||||
d="M1282,938.23v321.64a59.85,59.85,0,0,1-59.78,59.78H745.37a59.84,59.84,0,0,1-59.78-59.78V938.23a59.84,59.84,0,0,1,59.78-59.78h476.8A59.84,59.84,0,0,1,1282,938.23Z"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M1222.17,857.45H745.37a80.77,80.77,0,0,0-80.78,80.78v321.64a80.77,80.77,0,0,0,80.78,80.78h476.8a80.78,80.78,0,0,0,80.78-80.78V938.23A80.78,80.78,0,0,0,1222.17,857.45ZM1282,1259.87a59.85,59.85,0,0,1-59.78,59.78H745.37a59.84,59.84,0,0,1-59.78-59.78V938.23a59.84,59.84,0,0,1,59.78-59.78h476.8A59.84,59.84,0,0,1,1282,938.23Z"
|
||||
></path><rect
|
||||
class="cls-4"
|
||||
x="819.33"
|
||||
y="971.15"
|
||||
width="328.86"
|
||||
height="250.93"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M1222.17,878.45a59.83,59.83,0,0,1,59.77,59.77v321.65a59.84,59.84,0,0,1-59.77,59.78H745.36a59.84,59.84,0,0,1-59.77-59.78V938.22a59.83,59.83,0,0,1,59.77-59.77h476.81m0-21H745.36a80.77,80.77,0,0,0-80.77,80.77v321.65a80.78,80.78,0,0,0,80.77,80.78h476.81a80.78,80.78,0,0,0,80.77-80.78V938.22a80.77,80.77,0,0,0-80.77-80.77Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="819.33"
|
||||
y="971.15"
|
||||
width="328.86"
|
||||
height="250.93"
|
||||
></rect><rect
|
||||
class="cls-6"
|
||||
x="1080.45"
|
||||
y="847.88"
|
||||
width="55.55"
|
||||
height="9.57"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1080.45"
|
||||
y="847.88"
|
||||
width="55.55"
|
||||
height="9.57"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1079.47"
|
||||
y="834.15"
|
||||
width="56.53"
|
||||
height="9.97"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1075.53"
|
||||
y="800.89"
|
||||
width="63.83"
|
||||
height="33.26"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M1079.93,800.89v-5.28a2.81,2.81,0,0,1,2.81-2.81h50.45a2.81,2.81,0,0,1,2.82,2.81v5.28"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="1076.7"
|
||||
y="718.27"
|
||||
width="62.66"
|
||||
height="70.68"
|
||||
rx="3.45"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1082.84"
|
||||
y="788.94"
|
||||
width="50.73"
|
||||
height="3.86"
|
||||
></rect><line
|
||||
class="cls-5"
|
||||
x1="1093.01"
|
||||
y1="718.27"
|
||||
x2="1093.01"
|
||||
y2="703.17"
|
||||
></line><line
|
||||
class="cls-5"
|
||||
x1="1124.56"
|
||||
y1="718.27"
|
||||
x2="1124.56"
|
||||
y2="710.55"
|
||||
></line><path
|
||||
class="cls-1"
|
||||
d="M784.41,333.86l363.94,355.78-18.09,16.92a24.62,24.62,0,0,1-33.69,0l-14.9-14a.44.44,0,0,0-.5-.09h0a13.35,13.35,0,0,1-14.85-2.89L750.32,368a24.13,24.13,0,0,1,1.18-35h0A24.13,24.13,0,0,1,784.41,333.86Z"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M818.35,367.13c-2.26-2.12-11.86,3.59-21.07,13.42s-15.34,19.55-13.08,21.67l-2.53-2.8c-2.26-2.12,3.87-11.84,13.08-21.67s18.8-15.54,21.07-13.42l-4.24-3.58c-2.27-2.12-11.86,3.6-21.07,13.42s-15.34,19.56-13.08,21.68l-2.53-2.8c-2.26-2.12,3.87-11.85,13.08-21.68s18.8-15.54,21.07-13.42"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M784.41,333.86l363.94,355.78-18.09,16.92a24.62,24.62,0,0,1-33.69,0l-14.9-14a.44.44,0,0,0-.5-.09h0a13.35,13.35,0,0,1-14.85-2.89L750.32,368a24.13,24.13,0,0,1,1.18-35h0A24.13,24.13,0,0,1,784.41,333.86Z"
|
||||
></path><line
|
||||
class="cls-5"
|
||||
x1="1077.35"
|
||||
y1="693.43"
|
||||
x2="1093.01"
|
||||
y2="709.21"
|
||||
></line><circle
|
||||
class="cls-2"
|
||||
cx="1111.17"
|
||||
cy="687.29"
|
||||
r="6"
|
||||
></circle><circle
|
||||
class="cls-5"
|
||||
cx="1111.17"
|
||||
cy="687.29"
|
||||
r="6"
|
||||
></circle><path
|
||||
class="cls-7"
|
||||
d="M774.9,393.05c-2.26-2.12,3.87-11.85,13.08-21.68s18.8-15.54,21.07-13.42"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M777.43,395.85c-2.26-2.12,3.87-11.85,13.08-21.68s18.8-15.54,21.07-13.42"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M781.67,399.42c-2.26-2.12,3.87-11.84,13.08-21.67s18.8-15.54,21.07-13.42"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M784.2,402.22c-2.26-2.12,3.87-11.84,13.08-21.67s18.81-15.54,21.07-13.42"
|
||||
></path><rect
|
||||
class="cls-6"
|
||||
x="1086.52"
|
||||
y="844.12"
|
||||
width="41.63"
|
||||
height="3.76"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="1086.52"
|
||||
y="844.12"
|
||||
width="41.63"
|
||||
height="3.76"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1079.47"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1083.7"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1087.92"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1092.15"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1096.38"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1100.6"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1104.83"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1109.05"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1113.28"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1117.51"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1121.73"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1125.96"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1130.18"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1134.41"
|
||||
y="805.49"
|
||||
width="1.59"
|
||||
height="25.02"
|
||||
></rect></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 164 KiB |
@@ -1,379 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="281.97 168.43 271.78 510.19">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #1c60ac;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #33353d;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #0e5796;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #fff;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: none;
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-6 {
|
||||
fill: #9e9d9e;
|
||||
}
|
||||
</style></defs><g id="Layer_3" data-name="Layer 3"><rect
|
||||
class="cls-1"
|
||||
x="355.63"
|
||||
y="645.72"
|
||||
width="37.63"
|
||||
height="25.23"
|
||||
rx="3.38"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="352.62"
|
||||
y="581.71"
|
||||
width="44.76"
|
||||
height="25.23"
|
||||
rx="3.69"
|
||||
></rect><path
|
||||
class="cls-1"
|
||||
d="M389.88,671h0a7.12,7.12,0,0,1-7.12,7.12H366.14A7.12,7.12,0,0,1,359,671h0"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="356.31"
|
||||
y="576.3"
|
||||
width="37.38"
|
||||
height="5.41"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M392.3,606.94s-4.84,14.19-4.84,38.78H361.15c0-24.59-4.84-38.78-4.84-38.78Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="355.63"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="364.31"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="372.98"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="381.65"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="390.32"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="357.21"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="364.91"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="372.6"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="380.3"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="388"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="432.13"
|
||||
y="645.72"
|
||||
width="37.63"
|
||||
height="25.23"
|
||||
rx="3.38"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="429.12"
|
||||
y="581.71"
|
||||
width="44.76"
|
||||
height="25.23"
|
||||
rx="3.69"
|
||||
></rect><path
|
||||
class="cls-1"
|
||||
d="M466.38,671h0a7.12,7.12,0,0,1-7.12,7.12H442.63a7.11,7.11,0,0,1-7.11-7.12h0"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="432.81"
|
||||
y="576.3"
|
||||
width="37.38"
|
||||
height="5.41"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M468.79,606.94S464,621.13,464,645.72H437.64c0-24.59-4.83-38.78-4.83-38.78Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="432.13"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="440.8"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="449.48"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="458.15"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="466.82"
|
||||
y="584.04"
|
||||
width="4.39"
|
||||
height="20.14"
|
||||
rx="0.9"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="433.71"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="441.4"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="449.1"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="456.8"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="464.5"
|
||||
y="648.27"
|
||||
width="3.9"
|
||||
height="20.14"
|
||||
rx="0.85"
|
||||
></rect></g><g id="Layer_2" data-name="Layer 2"><path
|
||||
class="cls-4"
|
||||
d="M553.25,218.93V526.3a50,50,0,0,1-50,50H332.47a50,50,0,0,1-50-50V218.93a50,50,0,0,1,50-50H503.24A50,50,0,0,1,553.25,218.93Z"
|
||||
></path><path
|
||||
class="cls-1"
|
||||
d="M553.25,218.93V328.61H282.47V218.93a50,50,0,0,1,50-50H503.24A50,50,0,0,1,553.25,218.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M553.25,218.93V526.3a50,50,0,0,1-50,50H332.47a50,50,0,0,1-50-50V218.93a50,50,0,0,1,50-50H503.24A50,50,0,0,1,553.25,218.93Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M356.47,248.86a8.83,8.83,0,0,0-5.13.45s-1.27-2.38-.86-7.18c.16-1.81.47-4.26,2.63-4.63l.1,0a2.54,2.54,0,0,1,3.26,3.1C355.85,246.23,356.69,248.83,356.47,248.86Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M346.81,236.93a2.33,2.33,0,0,1,2.16,2.94,13,13,0,0,0-.33,4.26c.27,4.34,1.76,5.88,1.76,5.88a4.28,4.28,0,0,0-1.49,2.75,16.14,16.14,0,0,1-4.74-13,3.29,3.29,0,0,1,.94-2.14,2.34,2.34,0,0,1,1.41-.69A1.42,1.42,0,0,1,346.81,236.93Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M348.3,260.57A18.32,18.32,0,0,1,338,249.31a20.24,20.24,0,0,1-1-7.95,4.84,4.84,0,0,1,1-3.08,2.87,2.87,0,0,1,4.25,1,5.05,5.05,0,0,1,.08,2.19,14.84,14.84,0,0,0,.62,5.95c1.39,4.89,6.95,9.07,6.95,9.07A5.94,5.94,0,0,0,348.3,260.57Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M358,242.89a8.93,8.93,0,0,0-.45-5.13s2.38-1.26,7.18-.86c1.81.16,4.26.48,4.63,2.64a.29.29,0,0,0,0,.09,2.55,2.55,0,0,1-3.1,3.27C360.62,242.28,358,243.12,358,242.89Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M369.93,233.24a2.33,2.33,0,0,1-2.94,2.15,13.43,13.43,0,0,0-4.26-.32c-4.34.27-5.88,1.75-5.88,1.75a4.24,4.24,0,0,0-2.75-1.48,16.14,16.14,0,0,1,13-4.74,3.28,3.28,0,0,1,2.14.93,2.36,2.36,0,0,1,.69,1.41A1.51,1.51,0,0,1,369.93,233.24Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M346.29,234.73a18.29,18.29,0,0,1,11.26-10.34,20.05,20.05,0,0,1,7.95-1,4.77,4.77,0,0,1,3.08,1,2.87,2.87,0,0,1-1,4.25,4.77,4.77,0,0,1-2.19.08,15.07,15.07,0,0,0-5.95.63c-4.89,1.39-9.07,7-9.07,7A5.94,5.94,0,0,0,346.29,234.73Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M363.86,244.84a8.93,8.93,0,0,0,5.13-.45s1.26,2.38.86,7.17c-.16,1.82-.48,4.27-2.64,4.63l-.09,0a2.53,2.53,0,0,1-3.26-3.09C364.48,247.46,363.64,244.87,363.86,244.84Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M373.51,256.77a2.33,2.33,0,0,1-2.15-2.94,13.37,13.37,0,0,0,.33-4.26c-.27-4.34-1.76-5.88-1.76-5.88a4.28,4.28,0,0,0,1.49-2.75,16.14,16.14,0,0,1,4.74,13,3.29,3.29,0,0,1-.94,2.14,2.36,2.36,0,0,1-1.41.69Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M372,233.13a18.29,18.29,0,0,1,10.34,11.26,19.87,19.87,0,0,1,1,8,4.77,4.77,0,0,1-1,3.08,2.87,2.87,0,0,1-4.25-1,4.91,4.91,0,0,1-.08-2.19,15.21,15.21,0,0,0-.62-5.95c-1.39-4.89-7-9.07-7-9.07A5.89,5.89,0,0,0,372,233.13Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M362.33,250.81a8.79,8.79,0,0,0,.45,5.12s-2.38,1.27-7.18.87c-1.81-.16-4.26-.48-4.63-2.64a.29.29,0,0,0,0-.09,3,3,0,0,1,.8-2.79,3,3,0,0,1,2.3-.48C359.7,251.42,362.3,250.58,362.33,250.81Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M350.4,260.46a2.32,2.32,0,0,1,2.93-2.15,13.5,13.5,0,0,0,4.27.32c4.34-.27,5.87-1.75,5.87-1.75a4.24,4.24,0,0,0,2.76,1.48,16.14,16.14,0,0,1-13,4.74,3.23,3.23,0,0,1-2.14-.93,2.43,2.43,0,0,1-.7-1.41C350.4,260.66,350.4,260.56,350.4,260.46Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M374,259a18.29,18.29,0,0,1-11.26,10.34,20.26,20.26,0,0,1-7.95,1,4.76,4.76,0,0,1-3.08-1,2.87,2.87,0,0,1,1-4.25,4.86,4.86,0,0,1,2.18-.07,15.11,15.11,0,0,0,6-.63c4.89-1.39,9.06-7,9.06-7A6,6,0,0,0,374,259Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M400.1,250.29v13h-7.47V230.88h15.53c7.7,0,11.84,3.89,11.84,8.88a7.75,7.75,0,0,1-5.13,7.66c1.75.59,4.39,2.26,4.39,8.05v1.6a23.55,23.55,0,0,0,.51,6.17h-7.24c-.62-1.41-.74-3.83-.74-7.27v-.47c0-3.54-1-5.21-6.67-5.21Zm0-5.57h6.4c4.18,0,5.8-1.46,5.8-4.17s-1.88-4.1-5.62-4.1H400.1Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M430.81,255.76l-2.43,7.48h-6.65l10.62-32.36h8.48l11.07,32.36h-7.1l-2.57-7.48Zm10-5.73c-2.22-6.83-3.64-11.19-4.39-14.1h-.05c-.77,3.19-2.33,8.26-4.11,14.1Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M454.41,230.88h6.68v14.44c2.06-2.49,8.49-9.79,12.44-14.44h8.09l-12.56,13.45,13,18.91H474l-9.59-14.38-3.29,3.27v11.11h-6.68Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M487.73,235.1V237h-.79v-4.39h2.15c1.12,0,1.72.5,1.72,1.18a1.06,1.06,0,0,1-.89,1,1,1,0,0,1,.79,1.11v.2a2.79,2.79,0,0,0,.07.86H490a2.67,2.67,0,0,1-.09-.95V236c0-.6-.21-.86-1.15-.86Zm0-.54h1.13c.79,0,1.13-.24,1.13-.71s-.36-.7-1.06-.7h-1.2Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M488.62,239.49a4.7,4.7,0,1,1,4.71-4.7A4.71,4.71,0,0,1,488.62,239.49Zm0-8.74a4,4,0,1,0,4,4A4,4,0,0,0,488.62,230.75Z"
|
||||
></path><path class="cls-4" d="M396.73,277.19v-7.92h1v7.92Z"></path><path
|
||||
class="cls-4"
|
||||
d="M403.93,274.43c0,1.6-.9,2.89-2.54,2.89s-2.48-1.22-2.48-2.87.92-2.89,2.54-2.89S403.93,272.71,403.93,274.43Zm-4,0c0,1.18.56,2,1.47,2s1.44-.79,1.44-2-.52-2-1.46-2S400,273.2,400,274.44Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M405.89,270.63h-2.32v-.94h5.72v.94H407v6.56h-1.08Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M419.12,274.07c0-1.38,0-2.8.05-3.6h0c-.32,1.28-1.41,4.36-2.21,6.72h-1c-.61-1.94-1.74-5.41-2.06-6.73h0c.06.87.09,2.51.09,3.8v2.93h-1v-7.5h1.61c.77,2.26,1.71,5.16,1.95,6.14h0c.17-.77,1.29-3.94,2.09-6.14h1.56v7.5h-1.05Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M425.77,276a9.39,9.39,0,0,0,.08,1.24h-1a2.46,2.46,0,0,1-.09-.68,1.88,1.88,0,0,1-3.41-.88c0-1.23.94-1.8,2.52-1.8h.88v-.44c0-.47-.15-1-1.09-1s-1,.42-1.07.85h-1c.07-.8.55-1.66,2.1-1.66,1.32,0,2,.56,2,1.82Zm-1-1.41H424c-1,0-1.55.3-1.55,1a.9.9,0,0,0,1,.94c1.21,0,1.37-.85,1.37-1.8Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M431.82,269.27v6.38c0,.51,0,1,0,1.54h-1c0-.15,0-.54,0-.74a1.63,1.63,0,0,1-1.64.87c-1.36,0-2.21-1.14-2.21-2.82s.91-2.94,2.39-2.94c.91,0,1.33.37,1.46.67v-3Zm-3.81,5.2c0,1.27.57,2,1.38,2,1.2,0,1.44-.94,1.44-2.06s-.22-1.93-1.37-1.93C428.55,272.45,428,273.19,428,274.47Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M433.73,274.64c0,1,.51,1.81,1.38,1.81a1.15,1.15,0,0,0,1.21-.8h1a2.19,2.19,0,0,1-2.27,1.67c-1.69,0-2.39-1.39-2.39-2.82,0-1.65.81-2.94,2.44-2.94a2.33,2.33,0,0,1,2.32,2.63,3.24,3.24,0,0,1,0,.45Zm2.68-.72c0-.85-.42-1.54-1.29-1.54s-1.28.64-1.36,1.54Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M446,273.74h-3.59v2.51h3.94l-.13.94h-4.86v-7.5h4.81v.94h-3.76v2.16H446Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M451.59,276a9.9,9.9,0,0,0,.07,1.24h-1a2.93,2.93,0,0,1-.09-.68,1.88,1.88,0,0,1-3.41-.88c0-1.23.94-1.8,2.52-1.8h.88v-.44c0-.47-.15-1-1.08-1s-1,.42-1.08.85h-1c.07-.8.55-1.66,2.1-1.66,1.33,0,2.06.56,2.06,1.82Zm-1-1.41h-.81c-1,0-1.55.3-1.55,1a.91.91,0,0,0,1,.94c1.21,0,1.37-.85,1.37-1.8Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M453.63,275.6a1.16,1.16,0,0,0,1.25.9c.74,0,1-.32,1-.78s-.24-.7-1.2-1c-1.57-.39-1.88-.89-1.88-1.64s.56-1.57,2-1.57a1.8,1.8,0,0,1,2,1.6h-1a1,1,0,0,0-1.1-.8c-.69,0-.9.35-.9.68s.21.58,1.16.81c1.65.4,2,1,2,1.79s-.73,1.68-2.11,1.68a2,2,0,0,1-2.23-1.72Z"
|
||||
></path><path
|
||||
class="cls-4"
|
||||
d="M458.65,271.69c.8,2.49,1.28,4,1.41,4.55h0c.16-.61.52-1.87,1.35-4.55h1l-1.89,5.74c-.53,1.6-.94,2-2.07,2a4.38,4.38,0,0,1-.59,0v-.9a2.9,2.9,0,0,0,.43,0c.65,0,.91-.29,1.2-1.15l-2-5.7Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M437,480.69v22.45a6.83,6.83,0,0,1-6.83,6.83h-11.1a8,8,0,0,1-5.42-2.38,9.05,9.05,0,0,1-2.56-6.44V482.62l11.73,11.74v-3.69l-11.73-11.74-3-3v25.17c0,3.22,1.82,8.05,4,8.9h-5.75a6.83,6.83,0,0,1-6.83-6.83V480.69a6.83,6.83,0,0,1,6.83-6.83H418a8,8,0,0,1,5.42,2.38,9.05,9.05,0,0,1,2.56,6.44v18.53l-11.73-11.74v3.69L426,504.9l3,3V482.76c0-3.22-1.82-8.05-4-8.9h5.22A6.83,6.83,0,0,1,437,480.69Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="355.63"
|
||||
y="645.72"
|
||||
width="37.63"
|
||||
height="25.23"
|
||||
rx="3.38"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="352.62"
|
||||
y="581.71"
|
||||
width="44.76"
|
||||
height="25.23"
|
||||
rx="3.69"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M389.88,671h0a7.12,7.12,0,0,1-7.12,7.12H366.14A7.12,7.12,0,0,1,359,671h0"
|
||||
></path><line
|
||||
class="cls-5"
|
||||
x1="356.31"
|
||||
y1="581.71"
|
||||
x2="356.31"
|
||||
y2="576.3"
|
||||
></line><line
|
||||
class="cls-5"
|
||||
x1="393.69"
|
||||
y1="581.71"
|
||||
x2="393.69"
|
||||
y2="576.3"
|
||||
></line><path
|
||||
class="cls-5"
|
||||
d="M356.31,606.94s4.84,14.19,4.84,38.78"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M392.3,606.94s-4.84,14.19-4.84,38.78"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="432.13"
|
||||
y="645.72"
|
||||
width="37.63"
|
||||
height="25.23"
|
||||
rx="3.38"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="429.12"
|
||||
y="581.71"
|
||||
width="44.76"
|
||||
height="25.23"
|
||||
rx="3.69"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M466.38,671h0a7.12,7.12,0,0,1-7.12,7.12H442.63a7.11,7.11,0,0,1-7.11-7.12h0"
|
||||
></path><line
|
||||
class="cls-5"
|
||||
x1="432.81"
|
||||
y1="581.71"
|
||||
x2="432.81"
|
||||
y2="576.3"
|
||||
></line><line
|
||||
class="cls-5"
|
||||
x1="470.19"
|
||||
y1="581.71"
|
||||
x2="470.19"
|
||||
y2="576.3"
|
||||
></line><path
|
||||
class="cls-5"
|
||||
d="M432.81,606.94s4.83,14.19,4.83,38.78"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M468.79,606.94S464,621.13,464,645.72"
|
||||
></path></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 128 KiB |
@@ -1,322 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="754.63 172.39 553.95 1466.51">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #e2d299;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #2d2d2d;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #e6e8e8;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #999;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #c8cccb;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-12, .cls-6, .cls-7, .cls-8, .cls-9 {
|
||||
fill: none;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-6 {
|
||||
stroke: #999;
|
||||
}
|
||||
.cls-6, .cls-8 {
|
||||
stroke-width: 1.35px;
|
||||
}
|
||||
.cls-10, .cls-11, .cls-12, .cls-7, .cls-8, .cls-9 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 4.05px;
|
||||
}
|
||||
.cls-9 {
|
||||
stroke-width: 1.33px;
|
||||
}
|
||||
.cls-10 {
|
||||
stroke-width: 2.66px;
|
||||
}
|
||||
.cls-11 {
|
||||
stroke-width: 1.19px;
|
||||
}
|
||||
.cls-12 {
|
||||
stroke-width: 1.31px;
|
||||
}
|
||||
</style></defs><g id="Layer_3" data-name="Layer 3"><rect
|
||||
class="cls-1"
|
||||
x="880.79"
|
||||
y="713.97"
|
||||
width="84.29"
|
||||
height="27.63"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="887.38"
|
||||
y="684.75"
|
||||
width="71.66"
|
||||
height="29.22"
|
||||
></rect><rect
|
||||
class="cls-1"
|
||||
x="876.01"
|
||||
y="620.75"
|
||||
width="93.9"
|
||||
height="64"
|
||||
rx="15.57"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="891.84"
|
||||
y="608.7"
|
||||
width="62.51"
|
||||
height="12.05"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M922.93,174.42h0a42.15,42.15,0,0,1,42.15,42.15V605.22a3.48,3.48,0,0,1-3.48,3.48H884.26a3.48,3.48,0,0,1-3.48-3.48V216.56a42.15,42.15,0,0,1,42.15-42.15Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="756.66"
|
||||
y="741.6"
|
||||
width="549.89"
|
||||
height="895.27"
|
||||
rx="39.55"
|
||||
></rect><path
|
||||
class="cls-3"
|
||||
d="M1274.64,647.59h-62.29a31.92,31.92,0,0,0-31.91,31.93v62.09l126.12,51.15V679.52A31.93,31.93,0,0,0,1274.64,647.59Zm3.87,59.81a13.86,13.86,0,0,1-13.87,13.86h-43.72a13.85,13.85,0,0,1-13.86-13.86V686.45a13.87,13.87,0,0,1,13.86-13.87h43.72a13.88,13.88,0,0,1,13.87,13.87Z"
|
||||
></path><polygon
|
||||
class="cls-4"
|
||||
points="810.18 770.29 795.58 770.29 788.28 782.93 795.58 795.58 810.18 795.58 817.48 782.93 810.18 770.29"
|
||||
></polygon><polygon
|
||||
class="cls-4"
|
||||
points="1253.04 770.29 1267.64 770.29 1274.94 782.93 1267.64 795.58 1253.04 795.58 1245.74 782.93 1253.04 770.29"
|
||||
></polygon><polygon
|
||||
class="cls-4"
|
||||
points="810.18 1608.19 795.58 1608.19 788.28 1595.55 795.58 1582.9 810.18 1582.9 817.48 1595.55 810.18 1608.19"
|
||||
></polygon><polygon
|
||||
class="cls-4"
|
||||
points="1253.04 1608.19 1267.64 1608.19 1274.94 1595.55 1267.64 1582.9 1253.04 1582.9 1245.74 1595.55 1253.04 1608.19"
|
||||
></polygon><rect
|
||||
class="cls-2"
|
||||
x="872.9"
|
||||
y="1131.27"
|
||||
width="321.03"
|
||||
height="160.93"
|
||||
rx="17.15"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="811.61"
|
||||
y="854.23"
|
||||
width="37.22"
|
||||
height="674.13"
|
||||
rx="18.61"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M930.19,840.33v169.11a18.61,18.61,0,0,1-18.6,18.61h0A18.61,18.61,0,0,1,893,1009.44V840.91c0-10.24,8.37-19.19,18.6-19.19a18.62,18.62,0,0,1,18.61,18.61Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M911.59,1323.24h0a18.61,18.61,0,0,1,18.6,18.61v198.51c0,10.05-7.72,18.72-17.76,19.16A18.59,18.59,0,0,1,893,1540.93V1341.85A18.61,18.61,0,0,1,911.59,1323.24Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M1012,808.86V957.94a18.61,18.61,0,0,1-18.61,18.6h0a18.6,18.6,0,0,1-18.6-18.6V809.44c0-10.24,8.36-19.2,18.6-19.19A18.62,18.62,0,0,1,1012,808.86Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M993.38,1323.24h0a18.61,18.61,0,0,1,18.61,18.61v231.46c0,10-7.73,18.72-17.77,19.16a18.59,18.59,0,0,1-19.44-18.59v-232A18.61,18.61,0,0,1,993.38,1323.24Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="1218.69"
|
||||
y="854.23"
|
||||
width="37.22"
|
||||
height="674.13"
|
||||
rx="18.61"
|
||||
transform="translate(2474.6 2382.59) rotate(180)"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M1137.33,840.33v169.11a18.61,18.61,0,0,0,18.61,18.61h0a18.61,18.61,0,0,0,18.6-18.61V840.91c0-10.24-8.36-19.19-18.6-19.19a18.64,18.64,0,0,0-18.61,18.61Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M1155.94,1323.24h0a18.61,18.61,0,0,0-18.61,18.61v198.51c0,10.05,7.72,18.72,17.77,19.16a18.59,18.59,0,0,0,19.44-18.59V1341.85A18.61,18.61,0,0,0,1155.94,1323.24Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M1055.53,808.86V957.94a18.61,18.61,0,0,0,18.61,18.6h0a18.61,18.61,0,0,0,18.61-18.6V809.44c0-10.24-8.37-19.2-18.61-19.19a18.62,18.62,0,0,0-18.61,18.61Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M1074.14,1323.24h0a18.61,18.61,0,0,0-18.61,18.61v231.46c0,10,7.73,18.72,17.77,19.16a18.6,18.6,0,0,0,19.45-18.59v-232A18.61,18.61,0,0,0,1074.14,1323.24Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1294.4,841.87v694.74a14.87,14.87,0,0,1-14.87,14.87h-27.46a35.75,35.75,0,0,0-35.75,35.75v22.61a14.87,14.87,0,0,1-14.87,14.88H861.76a14.88,14.88,0,0,1-14.87-14.88v-22.61a35.74,35.74,0,0,0-35.75-35.75H783.69a14.87,14.87,0,0,1-14.87-14.87V841.87A14.87,14.87,0,0,1,783.69,827h27.45a35.75,35.75,0,0,0,35.75-35.75V768.63a14.87,14.87,0,0,1,14.87-14.87h339.69a14.87,14.87,0,0,1,14.87,14.87v22.62A35.76,35.76,0,0,0,1252.07,827h27.46A14.87,14.87,0,0,1,1294.4,841.87Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="963.72"
|
||||
y="986.16"
|
||||
width="13.22"
|
||||
height="126.83"
|
||||
rx="1.27"
|
||||
transform="translate(787.46 -368.06) rotate(35.4)"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M1144.31,1098.17l-8.71,6.19a1.28,1.28,0,0,1-1.77-.3l-64.47-90.7-64.46,90.7a1.28,1.28,0,0,1-1.77.3l-8.71-6.19a1.27,1.27,0,0,1-.3-1.77l67.12-94.45,4-5.67a5,5,0,0,1,8.17,0l4,5.67,67.13,94.45A1.28,1.28,0,0,1,1144.31,1098.17Z"
|
||||
></path></g><g id="Layer_2" data-name="Layer 2"><rect
|
||||
class="cls-7"
|
||||
x="756.66"
|
||||
y="741.6"
|
||||
width="549.89"
|
||||
height="895.27"
|
||||
rx="39.55"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M1180.43,741.6V679.52a31.92,31.92,0,0,1,31.92-31.92h62.29a31.92,31.92,0,0,1,31.92,31.92V792.76"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M834.74,741.61v47.3a25.93,25.93,0,0,1-25.94,25.93H756.66"
|
||||
></path><circle
|
||||
class="cls-8"
|
||||
cx="802.88"
|
||||
cy="782.93"
|
||||
r="27.34"
|
||||
></circle><polygon
|
||||
class="cls-8"
|
||||
points="810.18 770.29 795.58 770.29 788.28 782.93 795.58 795.58 810.18 795.58 817.48 782.93 810.18 770.29"
|
||||
></polygon><path
|
||||
class="cls-7"
|
||||
d="M1306.56,814.84h-52.14a25.93,25.93,0,0,1-25.94-25.93v-47.3"
|
||||
></path><circle
|
||||
class="cls-8"
|
||||
cx="1260.34"
|
||||
cy="782.93"
|
||||
r="27.34"
|
||||
></circle><polygon
|
||||
class="cls-8"
|
||||
points="1253.04 770.29 1267.64 770.29 1274.94 782.93 1267.64 795.58 1253.04 795.58 1245.74 782.93 1253.04 770.29"
|
||||
></polygon><path
|
||||
class="cls-7"
|
||||
d="M756.66,1563.63H808.8a25.94,25.94,0,0,1,25.94,25.94v47.3"
|
||||
></path><circle
|
||||
class="cls-8"
|
||||
cx="802.88"
|
||||
cy="1595.55"
|
||||
r="27.34"
|
||||
></circle><polygon
|
||||
class="cls-8"
|
||||
points="810.18 1608.19 795.58 1608.19 788.28 1595.55 795.58 1582.9 810.18 1582.9 817.48 1595.55 810.18 1608.19"
|
||||
></polygon><path
|
||||
class="cls-7"
|
||||
d="M1228.48,1636.87v-47.3a25.94,25.94,0,0,1,25.94-25.94h52.14"
|
||||
></path><circle
|
||||
class="cls-8"
|
||||
cx="1260.34"
|
||||
cy="1595.55"
|
||||
r="27.34"
|
||||
></circle><polygon
|
||||
class="cls-8"
|
||||
points="1253.04 1608.19 1267.64 1608.19 1274.94 1595.55 1267.64 1582.9 1253.04 1582.9 1245.74 1595.55 1253.04 1608.19"
|
||||
></polygon><rect
|
||||
class="cls-8"
|
||||
x="872.9"
|
||||
y="1131.27"
|
||||
width="321.03"
|
||||
height="160.93"
|
||||
rx="17.15"
|
||||
></rect><rect
|
||||
class="cls-8"
|
||||
x="811.61"
|
||||
y="854.23"
|
||||
width="37.22"
|
||||
height="674.13"
|
||||
rx="18.61"
|
||||
></rect><path
|
||||
class="cls-8"
|
||||
d="M930.19,840.33v169.11a18.61,18.61,0,0,1-18.6,18.61h0A18.61,18.61,0,0,1,893,1009.44V840.91c0-10.24,8.37-19.19,18.6-19.19a18.62,18.62,0,0,1,18.61,18.61Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M911.59,1323.24h0a18.61,18.61,0,0,1,18.6,18.61v198.51c0,10.05-7.72,18.72-17.76,19.16A18.59,18.59,0,0,1,893,1540.93V1341.85A18.61,18.61,0,0,1,911.59,1323.24Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1012,808.86V957.94a18.61,18.61,0,0,1-18.61,18.6h0a18.6,18.6,0,0,1-18.6-18.6V809.44c0-10.24,8.36-19.2,18.6-19.19A18.62,18.62,0,0,1,1012,808.86Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M993.38,1323.24h0a18.61,18.61,0,0,1,18.61,18.61v231.46c0,10-7.73,18.72-17.77,19.16a18.59,18.59,0,0,1-19.44-18.59v-232A18.61,18.61,0,0,1,993.38,1323.24Z"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="1218.69"
|
||||
y="854.23"
|
||||
width="37.22"
|
||||
height="674.13"
|
||||
rx="18.61"
|
||||
transform="translate(2474.6 2382.59) rotate(180)"
|
||||
></rect><path
|
||||
class="cls-8"
|
||||
d="M1137.33,840.33v169.11a18.61,18.61,0,0,0,18.61,18.61h0a18.61,18.61,0,0,0,18.6-18.61V840.91c0-10.24-8.36-19.19-18.6-19.19a18.64,18.64,0,0,0-18.61,18.61Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1155.94,1323.24h0a18.61,18.61,0,0,0-18.61,18.61v198.51c0,10.05,7.72,18.72,17.77,19.16a18.59,18.59,0,0,0,19.44-18.59V1341.85A18.61,18.61,0,0,0,1155.94,1323.24Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1055.53,808.86V957.94a18.61,18.61,0,0,0,18.61,18.6h0a18.61,18.61,0,0,0,18.61-18.6V809.44c0-10.24-8.37-19.2-18.61-19.19a18.62,18.62,0,0,0-18.61,18.61Z"
|
||||
></path><path
|
||||
class="cls-8"
|
||||
d="M1074.14,1323.24h0a18.61,18.61,0,0,0-18.61,18.61v231.46c0,10,7.73,18.72,17.77,19.16a18.6,18.6,0,0,0,19.45-18.59v-232A18.61,18.61,0,0,0,1074.14,1323.24Z"
|
||||
></path><rect
|
||||
class="cls-7"
|
||||
x="1207.05"
|
||||
y="672.58"
|
||||
width="71.46"
|
||||
height="48.69"
|
||||
rx="13.87"
|
||||
></rect><rect
|
||||
class="cls-9"
|
||||
x="1200.59"
|
||||
y="665.84"
|
||||
width="84.39"
|
||||
height="61.92"
|
||||
rx="20.35"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="880.79"
|
||||
y="713.97"
|
||||
width="84.29"
|
||||
height="27.63"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="887.38"
|
||||
y="684.75"
|
||||
width="71.66"
|
||||
height="29.22"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="876.01"
|
||||
y="620.75"
|
||||
width="93.9"
|
||||
height="64"
|
||||
rx="15.57"
|
||||
></rect><rect
|
||||
class="cls-7"
|
||||
x="891.84"
|
||||
y="608.7"
|
||||
width="62.51"
|
||||
height="12.05"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M922.93,174.42h0a42.15,42.15,0,0,1,42.15,42.15V605.22a3.48,3.48,0,0,1-3.48,3.48H884.26a3.48,3.48,0,0,1-3.48-3.48V216.56a42.15,42.15,0,0,1,42.15-42.15Z"
|
||||
></path><line
|
||||
class="cls-10"
|
||||
x1="880.79"
|
||||
y1="251.39"
|
||||
x2="965.08"
|
||||
y2="251.39"
|
||||
></line><line
|
||||
class="cls-10"
|
||||
x1="880.79"
|
||||
y1="260.37"
|
||||
x2="965.08"
|
||||
y2="260.37"
|
||||
></line><rect
|
||||
class="cls-11"
|
||||
x="963.72"
|
||||
y="986.16"
|
||||
width="13.22"
|
||||
height="126.83"
|
||||
rx="1.27"
|
||||
transform="translate(787.46 -368.06) rotate(35.4)"
|
||||
></rect><path
|
||||
class="cls-12"
|
||||
d="M1144.31,1098.17l-8.71,6.19a1.28,1.28,0,0,1-1.77-.3l-64.47-90.7-64.46,90.7a1.28,1.28,0,0,1-1.77.3l-8.71-6.19a1.27,1.27,0,0,1-.3-1.77l67.12-94.45,4-5.67a5,5,0,0,1,8.17,0l4,5.67,67.13,94.45A1.28,1.28,0,0,1,1144.31,1098.17Z"
|
||||
></path></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 89 KiB |
@@ -1,546 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="713.62 574.61 677 692.34">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #d3d3d3;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #bfbfbe;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #b0b0af;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #e5e5e3;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #353535;
|
||||
}
|
||||
.cls-6, .cls-7 {
|
||||
fill: none;
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-6 {
|
||||
stroke-width: 1.65px;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 3px;
|
||||
}
|
||||
.cls-8 {
|
||||
fill: #cccccb;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M742.78,1220.62c-19.75-8.13-31.52-23.69-26.5-40.61l69.29-233.38a11,11,0,0,1,2.09,4.35l4.07,19.26"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M790,962.24l-65.73,221.37a30.26,30.26,0,0,0,33.33,38.56L842.4,1210"
|
||||
></path><path
|
||||
class="cls-3"
|
||||
d="M807.29,1043.86l-30.5,104.26-18.71,2.1,30-98.73a3,3,0,0,0-2.87-3.87,6.45,6.45,0,0,1-6.16-8.36l16.23-52.36Z"
|
||||
></path><polygon
|
||||
class="cls-3"
|
||||
points="828.12 1142.37 783.87 1147.34 809.96 1056.49 828.12 1142.37"
|
||||
></polygon><path
|
||||
class="cls-3"
|
||||
d="M775.27,1153.34,761.91,1199a3.68,3.68,0,0,1,0-2.11,5.17,5.17,0,0,0-5-6.53h-2.43a6.34,6.34,0,0,1-6.07-8.19l8.14-26.82Z"
|
||||
></path><polygon
|
||||
class="cls-3"
|
||||
points="839.03 1193.99 768.37 1201.28 782.36 1152.58 829.2 1147.52 839.03 1193.99"
|
||||
></polygon><path
|
||||
class="cls-4"
|
||||
d="M1375,1178.08c-9.54,7.22-39,20.08-59.5,23.23l-414.72,63.57A48.48,48.48,0,0,1,846,1227l-7-33L795.25,986.9,787.66,951a10,10,0,0,0-2.09-4.35l-9.8-11.87a10,10,0,0,1-2.09-4.35L718.39,668.87c-.1-.45-.18-.91-.26-1.36a26.13,26.13,0,0,1,14.41-27.36l36.79-18.33c11.15-5.55,21.79-6.71,34.35-7.73Z"
|
||||
></path><path
|
||||
class="cls-1"
|
||||
d="M1235.26,576.22a28.15,28.15,0,0,1,29.92,21.84l123.06,543.61a35.82,35.82,0,0,1-29.51,43.32L944,1248.56a48.48,48.48,0,0,1-54.77-37.89L770.75,650.17A29.51,29.51,0,0,1,797,614.67Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M802.91,657.25,916.05,1194.5a17,17,0,0,0,19.22,13.33l426-64.41a14.6,14.6,0,0,0,12-17.67L1257.48,615.46a14.27,14.27,0,0,0-15.18-11.05L813.65,642.73A12.07,12.07,0,0,0,802.91,657.25Z"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M802.91,657.25,916.05,1194.5a17,17,0,0,0,19.22,13.33l426-64.41a14.6,14.6,0,0,0,12-17.67L1257.48,615.46a14.27,14.27,0,0,0-15.18-11.05L813.65,642.73A12.07,12.07,0,0,0,802.91,657.25Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M1235.26,576.22a28.15,28.15,0,0,1,29.92,21.84l123.06,543.61a35.82,35.82,0,0,1-29.51,43.32L944,1248.56a48.48,48.48,0,0,1-54.77-37.89L770.75,650.17A29.51,29.51,0,0,1,797,614.67Z"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M803.68,614.09c-12.56,1-23.2,2.18-34.35,7.73l-36.79,18.33a26.12,26.12,0,0,0-14.41,27.36c.08.46.16.91.26,1.36l55.29,261.54a10,10,0,0,0,2.09,4.35l9.8,11.87a10,10,0,0,1,2.09,4.35L846,1227a48.48,48.48,0,0,0,54.77,37.89l414.72-63.57c20.54-3.15,50-16,59.5-23.22"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M742.78,1220.62c-19.75-8.13-31.52-23.69-26.5-40.61l69.29-233.38"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M790,962.24l-65.73,221.37a30.26,30.26,0,0,0,33.33,38.56L842.4,1210"
|
||||
></path><ellipse
|
||||
class="cls-8"
|
||||
cx="837.63"
|
||||
cy="1070.6"
|
||||
rx="2.7"
|
||||
ry="3.34"
|
||||
transform="translate(-119.45 105.29) rotate(-6.72)"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="776.45"
|
||||
cy="893.91"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="783.68"
|
||||
cy="890.78"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="790.92"
|
||||
cy="887.66"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="798.15"
|
||||
cy="884.53"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="805.38"
|
||||
cy="881.4"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="774.39"
|
||||
cy="883.96"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="781.62"
|
||||
cy="880.84"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="788.85"
|
||||
cy="877.71"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="796.08"
|
||||
cy="874.58"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="803.31"
|
||||
cy="871.46"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="772.32"
|
||||
cy="874.01"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="779.56"
|
||||
cy="870.89"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="786.79"
|
||||
cy="867.76"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="794.02"
|
||||
cy="864.64"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="801.25"
|
||||
cy="861.51"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="770.26"
|
||||
cy="864.07"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="777.49"
|
||||
cy="860.94"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="784.72"
|
||||
cy="857.81"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="791.95"
|
||||
cy="854.69"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="799.18"
|
||||
cy="851.56"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="768.2"
|
||||
cy="854.12"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="775.43"
|
||||
cy="850.99"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="782.66"
|
||||
cy="847.87"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="789.89"
|
||||
cy="844.74"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="797.12"
|
||||
cy="841.61"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="766.13"
|
||||
cy="844.17"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="773.36"
|
||||
cy="841.05"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="780.59"
|
||||
cy="837.92"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="787.82"
|
||||
cy="834.79"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="795.05"
|
||||
cy="831.67"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="764.07"
|
||||
cy="834.23"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="771.3"
|
||||
cy="831.1"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="778.53"
|
||||
cy="827.97"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="785.76"
|
||||
cy="824.85"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="792.99"
|
||||
cy="821.72"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="762"
|
||||
cy="824.28"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="769.23"
|
||||
cy="821.15"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="776.46"
|
||||
cy="818.03"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="783.69"
|
||||
cy="814.9"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="790.92"
|
||||
cy="811.77"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="759.94"
|
||||
cy="814.33"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="767.17"
|
||||
cy="811.21"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="774.4"
|
||||
cy="808.08"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="781.63"
|
||||
cy="804.95"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="788.86"
|
||||
cy="801.83"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="757.87"
|
||||
cy="804.38"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="765.1"
|
||||
cy="801.26"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="772.33"
|
||||
cy="798.13"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="779.57"
|
||||
cy="795.01"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="786.8"
|
||||
cy="791.88"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="755.81"
|
||||
cy="794.44"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="763.04"
|
||||
cy="791.31"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="770.27"
|
||||
cy="788.18"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="777.5"
|
||||
cy="785.06"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="784.73"
|
||||
cy="781.93"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="753.74"
|
||||
cy="784.49"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="760.97"
|
||||
cy="781.36"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="768.21"
|
||||
cy="778.24"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="775.44"
|
||||
cy="775.11"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="782.67"
|
||||
cy="771.98"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="751.68"
|
||||
cy="774.54"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="758.91"
|
||||
cy="771.42"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="766.14"
|
||||
cy="768.29"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="773.37"
|
||||
cy="765.16"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="780.6"
|
||||
cy="762.04"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="749.62"
|
||||
cy="764.6"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="756.85"
|
||||
cy="761.47"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="764.08"
|
||||
cy="758.34"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="771.31"
|
||||
cy="755.22"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="778.54"
|
||||
cy="752.09"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="747.55"
|
||||
cy="754.65"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="754.78"
|
||||
cy="751.52"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="762.01"
|
||||
cy="748.4"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="769.24"
|
||||
cy="745.27"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="776.47"
|
||||
cy="742.14"
|
||||
rx="2.21"
|
||||
ry="2.73"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="841.13"
|
||||
cy="1084.42"
|
||||
rx="2.7"
|
||||
ry="3.34"
|
||||
transform="translate(-121.04 105.8) rotate(-6.72)"
|
||||
></ellipse><ellipse
|
||||
class="cls-8"
|
||||
cx="844.62"
|
||||
cy="1098.25"
|
||||
rx="2.7"
|
||||
ry="3.34"
|
||||
transform="translate(-122.63 106.3) rotate(-6.72)"
|
||||
></ellipse></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 34 KiB |
@@ -1,512 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="340.47 223.69 263.8 485.94">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #434143;
|
||||
}
|
||||
.cls-2, .cls-6, .cls-7 {
|
||||
fill: none;
|
||||
}
|
||||
.cls-2 {
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #2b2b2b;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #181818;
|
||||
}
|
||||
.cls-5 {
|
||||
fill: #e8eae8;
|
||||
}
|
||||
.cls-6, .cls-7 {
|
||||
stroke: #e8eae8;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.cls-7 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
.cls-8 {
|
||||
fill: #b1a368;
|
||||
}
|
||||
</style></defs><g id="Layer_2" data-name="Layer 2"><rect
|
||||
class="cls-1"
|
||||
x="340.97"
|
||||
y="258.81"
|
||||
width="262.8"
|
||||
height="450.32"
|
||||
rx="27.43"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="340.97"
|
||||
y="258.81"
|
||||
width="262.8"
|
||||
height="450.32"
|
||||
rx="27.43"
|
||||
></rect><circle
|
||||
class="cls-3"
|
||||
cx="364.66"
|
||||
cy="281.32"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="364.66"
|
||||
cy="281.32"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M372.05,281.32a2.39,2.39,0,0,1-2.39,2.38h-2.61v2.62a2.38,2.38,0,1,1-4.76,0V283.7h-2.63a2.39,2.39,0,1,1,0-4.77h2.63v-2.62a2.38,2.38,0,0,1,2.37-2.38,2.39,2.39,0,0,1,2.39,2.38v2.62h2.61A2.4,2.4,0,0,1,372.05,281.32Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="579.41"
|
||||
cy="281.32"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="579.41"
|
||||
cy="281.32"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M586.79,281.32a2.39,2.39,0,0,1-2.38,2.38h-2.62v2.62a2.38,2.38,0,1,1-4.76,0V283.7h-2.62a2.39,2.39,0,1,1,0-4.77H577v-2.62a2.38,2.38,0,0,1,4.76,0v2.62h2.62A2.39,2.39,0,0,1,586.79,281.32Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="364.66"
|
||||
cy="683.91"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="364.66"
|
||||
cy="683.91"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M372.05,683.92a2.39,2.39,0,0,1-2.39,2.38h-2.61v2.62a2.38,2.38,0,1,1-4.76,0V686.3h-2.63a2.39,2.39,0,1,1,0-4.77h2.63v-2.62a2.38,2.38,0,0,1,2.37-2.38,2.39,2.39,0,0,1,2.39,2.38v2.62h2.61A2.4,2.4,0,0,1,372.05,683.92Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="579.41"
|
||||
cy="683.91"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="579.41"
|
||||
cy="683.91"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M586.79,683.92a2.39,2.39,0,0,1-2.38,2.38h-2.62v2.62a2.38,2.38,0,0,1-4.76,0V686.3h-2.62a2.39,2.39,0,1,1,0-4.77H577v-2.62a2.38,2.38,0,0,1,4.76,0v2.62h2.62A2.39,2.39,0,0,1,586.79,683.92Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="561.1"
|
||||
cy="512.26"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="561.1"
|
||||
cy="512.26"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M568.49,512.26a2.39,2.39,0,0,1-2.38,2.38h-2.62v2.62a2.38,2.38,0,1,1-4.76,0v-2.62h-2.62a2.39,2.39,0,1,1,0-4.77h2.62v-2.62a2.38,2.38,0,0,1,4.76,0v2.62h2.62A2.39,2.39,0,0,1,568.49,512.26Z"
|
||||
></path><circle
|
||||
class="cls-3"
|
||||
cx="478.84"
|
||||
cy="406.37"
|
||||
r="10.92"
|
||||
></circle><circle
|
||||
class="cls-2"
|
||||
cx="478.84"
|
||||
cy="406.37"
|
||||
r="10.92"
|
||||
></circle><path
|
||||
class="cls-4"
|
||||
d="M486.22,406.37a2.39,2.39,0,0,1-2.38,2.38h-2.62v2.62a2.38,2.38,0,1,1-4.76,0v-2.62h-2.62a2.39,2.39,0,1,1,0-4.77h2.62v-2.62a2.38,2.38,0,0,1,4.76,0V404h2.62A2.39,2.39,0,0,1,486.22,406.37Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="380.01"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="399.24"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="418.47"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-5"
|
||||
x="442.52"
|
||||
y="443.28"
|
||||
width="6.5"
|
||||
height="54.62"
|
||||
transform="translate(348.12 -170.22) rotate(34.78)"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M521.39,490.76l-5.34,3.71L489,455.92,462,494.9l-5.34-3.71,28.32-41,1.06-1.53a3.53,3.53,0,0,1,5.8,0l1.06,1.53Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="437.7"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="492.51"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="511.74"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="530.97"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="550.2"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><rect
|
||||
class="cls-3"
|
||||
x="465.19"
|
||||
y="302.06"
|
||||
width="5.45"
|
||||
height="72.48"
|
||||
rx="1.75"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M420.79,519.77l4-.25a3.13,3.13,0,0,0,.53,1.48,2.21,2.21,0,0,0,1.85.82,2,2,0,0,0,1.38-.42,1.24,1.24,0,0,0,.49-1,1.29,1.29,0,0,0-.46-.95,5.44,5.44,0,0,0-2.15-.78,9.1,9.1,0,0,1-3.93-1.65,3.31,3.31,0,0,1-1.19-2.62,3.59,3.59,0,0,1,.61-2,4,4,0,0,1,1.82-1.46,8.43,8.43,0,0,1,3.34-.54,6.85,6.85,0,0,1,4,1,4.17,4.17,0,0,1,1.62,3.08l-3.95.23a2.06,2.06,0,0,0-.66-1.33,2.1,2.1,0,0,0-1.39-.42,1.66,1.66,0,0,0-1.1.31,1,1,0,0,0-.37.75.76.76,0,0,0,.31.59,3.42,3.42,0,0,0,1.4.5,17.67,17.67,0,0,1,3.94,1.19,4.19,4.19,0,0,1,1.73,1.51,3.8,3.8,0,0,1,.54,2,4.31,4.31,0,0,1-.72,2.41,4.57,4.57,0,0,1-2,1.67,8.13,8.13,0,0,1-3.27.57c-2.3,0-3.9-.45-4.79-1.33A5.26,5.26,0,0,1,420.79,519.77Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M439.49,510.7v3.73h2.07v2.76h-2.07v3.48a1.85,1.85,0,0,0,.12.83.69.69,0,0,0,.65.32,4.09,4.09,0,0,0,1.16-.24l.28,2.59a11.86,11.86,0,0,1-2.61.31,4.54,4.54,0,0,1-2.07-.36,2.2,2.2,0,0,1-1-1.1,6.25,6.25,0,0,1-.32-2.37v-3.46h-1.39v-2.76h1.39v-1.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M446.79,517.62l-3.6-.38a4.06,4.06,0,0,1,.59-1.49,3.23,3.23,0,0,1,1.1-.94,4.57,4.57,0,0,1,1.43-.44,11,11,0,0,1,2-.16,15.27,15.27,0,0,1,2.72.19,3.56,3.56,0,0,1,1.71.79,2.84,2.84,0,0,1,.76,1.18,4.43,4.43,0,0,1,.28,1.46v4.34a5.16,5.16,0,0,0,.08,1.08,4.81,4.81,0,0,0,.39,1h-3.54a3.68,3.68,0,0,1-.27-.58,3.18,3.18,0,0,1-.13-.63,4.9,4.9,0,0,1-1.47,1,6.18,6.18,0,0,1-2.33.41,3.86,3.86,0,0,1-2.66-.81,2.76,2.76,0,0,1-.26-3.85,4.52,4.52,0,0,1,2.42-1.08c1.42-.28,2.33-.48,2.75-.59s.86-.27,1.33-.45a1.32,1.32,0,0,0-.28-1,1.42,1.42,0,0,0-1-.28,2.59,2.59,0,0,0-1.39.3A1.6,1.6,0,0,0,446.79,517.62Zm3.26,2c-.51.18-1.05.34-1.62.49a3.72,3.72,0,0,0-1.45.6,1,1,0,0,0,0,1.42,1.34,1.34,0,0,0,.91.28,2.28,2.28,0,0,0,1.17-.31,1.84,1.84,0,0,0,.77-.74,2.49,2.49,0,0,0,.22-1.14Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M460.21,510.7v3.73h2.07v2.76h-2.07v3.48a1.85,1.85,0,0,0,.12.83.69.69,0,0,0,.65.32,4.09,4.09,0,0,0,1.16-.24l.28,2.59a11.86,11.86,0,0,1-2.61.31,4.57,4.57,0,0,1-2.07-.36,2.2,2.2,0,0,1-1-1.1,6.25,6.25,0,0,1-.32-2.37v-3.46h-1.39v-2.76h1.39v-1.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M464.22,510.7H468v2.56h-3.76Zm0,3.73H468v9.83h-3.76Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M469.92,519.37a4.91,4.91,0,0,1,1.52-3.7,6.58,6.58,0,0,1,8.56.25,5.36,5.36,0,0,1-.29,7.11,5.74,5.74,0,0,1-4.16,1.45,5.83,5.83,0,0,1-3.83-1.2A4.84,4.84,0,0,1,469.92,519.37Zm3.78,0a3,3,0,0,0,.53,1.95,1.74,1.74,0,0,0,2.67,0,3.08,3.08,0,0,0,.53-2,2.89,2.89,0,0,0-.53-1.9,1.64,1.64,0,0,0-1.31-.63,1.67,1.67,0,0,0-1.35.64A2.89,2.89,0,0,0,473.7,519.36Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M483,514.43h3.51V516a5.16,5.16,0,0,1,1.59-1.4,4.2,4.2,0,0,1,2-.42,3.23,3.23,0,0,1,2.45.93,4,4,0,0,1,.88,2.87v6.25h-3.78v-5.41a2,2,0,0,0-.34-1.3,1.22,1.22,0,0,0-1-.39,1.37,1.37,0,0,0-1.11.52,3.07,3.07,0,0,0-.42,1.86v4.72H483Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M509,519.35v-2.83h6.48v5.79a13.27,13.27,0,0,1-3.29,1.72,11,11,0,0,1-3.39.46,8.38,8.38,0,0,1-3.94-.82,5.6,5.6,0,0,1-2.35-2.46,8,8,0,0,1-.84-3.73,7.85,7.85,0,0,1,.91-3.87,6,6,0,0,1,2.69-2.49,8.68,8.68,0,0,1,3.71-.66,10.45,10.45,0,0,1,3.36.41,4.37,4.37,0,0,1,1.85,1.26,5.63,5.63,0,0,1,1.1,2.17l-4,.73a2.16,2.16,0,0,0-.84-1.18,2.68,2.68,0,0,0-1.53-.41,2.72,2.72,0,0,0-2.19,1,4.59,4.59,0,0,0-.82,3,4.72,4.72,0,0,0,.83,3.15,2.93,2.93,0,0,0,2.3.94,4.64,4.64,0,0,0,1.35-.2,7.55,7.55,0,0,0,1.46-.7v-1.27Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M528.42,524.26h-11.3a7,7,0,0,1,1.18-3.15,16,16,0,0,1,3.69-3.49,11.11,11.11,0,0,0,2.12-1.86,2.11,2.11,0,0,0,.47-1.22,1.42,1.42,0,0,0-.46-1,1.58,1.58,0,0,0-1.15-.44,1.61,1.61,0,0,0-1.18.45,2.75,2.75,0,0,0-.62,1.6l-3.77-.31a6,6,0,0,1,.81-2.48,3.85,3.85,0,0,1,1.67-1.37,7.49,7.49,0,0,1,3-.48,8.47,8.47,0,0,1,3.1.46,3.71,3.71,0,0,1,2.37,3.5,4.32,4.32,0,0,1-.72,2.36,9.93,9.93,0,0,1-2.65,2.48c-.75.53-1.26.89-1.52,1.1s-.55.49-.9.83h5.88Z"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="407.64"
|
||||
y="558.27"
|
||||
width="135.85"
|
||||
height="67.27"
|
||||
rx="3.52"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="407.64"
|
||||
y="558.27"
|
||||
width="135.85"
|
||||
height="67.27"
|
||||
rx="3.52"
|
||||
></rect><circle class="cls-6" cx="586.93" cy="513.44" r="9.9"></circle><rect
|
||||
class="cls-5"
|
||||
x="581.12"
|
||||
y="512.62"
|
||||
width="9.09"
|
||||
height="1.63"
|
||||
rx="0.82"
|
||||
></rect><circle
|
||||
class="cls-5"
|
||||
cx="591.91"
|
||||
cy="513.44"
|
||||
r="0.83"
|
||||
></circle><path
|
||||
class="cls-5"
|
||||
d="M595.54,604.4v-2a3.26,3.26,0,0,0-3.27-3.27H579.86a3.26,3.26,0,0,0-3.27,3.27v14.63a3.26,3.26,0,0,0,3.27,3.27h12.41a3.26,3.26,0,0,0,3.27-3.27v-1.57h-6.38V604.4ZM584,615.49h-5.05V604.4H584Z"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="592.44"
|
||||
y="610.44"
|
||||
width="4.83"
|
||||
height="3.64"
|
||||
rx="0.91"
|
||||
></rect><path
|
||||
class="cls-7"
|
||||
d="M579,655.86a9.88,9.88,0,0,0,15.29-1"
|
||||
></path><path
|
||||
class="cls-7"
|
||||
d="M595.57,652.31a9.9,9.9,0,1,0-19.26-3.19"
|
||||
></path><polygon
|
||||
class="cls-5"
|
||||
points="571.82 649.11 580.81 649.11 576.5 653.13 571.82 649.11"
|
||||
></polygon><path
|
||||
class="cls-6"
|
||||
d="M513.83,395.84l-10,18.22a1.21,1.21,0,0,0,1.06,1.79H525a1.21,1.21,0,0,0,1.06-1.8L516,395.83A1.21,1.21,0,0,0,513.83,395.84Z"
|
||||
></path><line
|
||||
class="cls-6"
|
||||
x1="508.31"
|
||||
y1="412.99"
|
||||
x2="521.75"
|
||||
y2="412.99"
|
||||
></line><path
|
||||
class="cls-6"
|
||||
d="M511.9,411.29s1.88-2,.68-3.24-2.34-2.69-.68-4.1"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M514.9,411.29s1.88-2,.69-3.24-2.35-2.69-.69-4.1"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M517.91,411.29s1.87-2,.68-3.24-2.35-2.69-.68-4.1"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="497.97"
|
||||
y="253.53"
|
||||
width="25.55"
|
||||
height="5.28"
|
||||
></rect><path
|
||||
class="cls-8"
|
||||
d="M502.42,224.19h17a1.73,1.73,0,0,1,1.73,1.73v27.61a0,0,0,0,1,0,0H500.69a0,0,0,0,1,0,0V225.92A1.73,1.73,0,0,1,502.42,224.19Z"
|
||||
></path><rect
|
||||
class="cls-8"
|
||||
x="497.97"
|
||||
y="230.25"
|
||||
width="25.55"
|
||||
height="19.98"
|
||||
rx="1.55"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="497.97"
|
||||
y="253.53"
|
||||
width="25.55"
|
||||
height="5.28"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M521.11,225.92v4.33H500.68v-4.33a1.73,1.73,0,0,1,1.74-1.73h16.95A1.73,1.73,0,0,1,521.11,225.92Z"
|
||||
></path><rect
|
||||
class="cls-2"
|
||||
x="500.68"
|
||||
y="250.22"
|
||||
width="20.43"
|
||||
height="3.31"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M523.51,231.8v16.87a1.54,1.54,0,0,1-1.55,1.55H499.52a1.55,1.55,0,0,1-1.56-1.55V231.8a1.55,1.55,0,0,1,1.56-1.55H522A1.54,1.54,0,0,1,523.51,231.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M382.68,266.74H383c.17,0,.27.07.28.19l.31,3.68c0,.35.11.53.18.53s.2-.17.31-.5l.34-1a.2.2,0,0,1,.2-.11.23.23,0,0,1,.2.11l.33,1c.11.33.21.5.29.5s.15-.18.18-.53l.32-3.68c0-.12.1-.19.28-.19h.38c.18,0,.28.08.28.21l-.55,6.79c0,.12-.12.19-.29.19h-.45c-.14,0-.26-.06-.28-.16l-.42-1.45c-.09-.28-.19-.43-.28-.43s-.19.15-.27.43l-.41,1.45c0,.1-.14.16-.29.16h-.46c-.17,0-.27-.07-.28-.19l-.55-6.79C382.39,266.82,382.5,266.74,382.68,266.74Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M390.76,273.76l-.28-1.33c0-.11-.14-.17-.28-.17h-1.29a.27.27,0,0,0-.28.17l-.26,1.33a.29.29,0,0,1-.29.17h-.34c-.19,0-.29-.07-.29-.19a1.58,1.58,0,0,1,0-.21l1.42-6.62c0-.11.14-.17.28-.17h.75c.14,0,.26.06.28.17l1.41,6.62a1.58,1.58,0,0,1,0,.21c0,.12-.11.19-.29.19h-.33A.28.28,0,0,1,390.76,273.76Zm-1.21-5c-.1,0-.19.2-.28.6l-.36,1.78a1,1,0,0,0,0,.24c0,.11.1.18.27.18H390c.16,0,.28-.06.28-.18a1,1,0,0,0,0-.24l-.37-1.78C389.75,269,389.66,268.78,389.55,268.78Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M393.2,273.93h-.4c-.16,0-.28-.08-.28-.2v-6.79c0-.12.12-.2.28-.2h1.68c1,0,1.91.52,1.91,1.54v.78a1.42,1.42,0,0,1-.85,1.32.19.19,0,0,0-.13.19.49.49,0,0,0,0,.15l.87,2.69a1.13,1.13,0,0,1,.09.33c0,.12-.09.19-.28.19h-.41c-.15,0-.26-.06-.29-.16l-.93-3c0-.09-.14-.15-.28-.15h-.44c-.17,0-.28.08-.28.2v2.92C393.49,273.85,393.37,273.93,393.2,273.93Zm.57-6.51c-.17,0-.28.08-.28.2v2.1c0,.12.11.21.28.21h.71c.53,0,1-.28,1-.8v-.91c0-.53-.43-.8-1-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M401,273.93h-.46a.3.3,0,0,1-.29-.15L399,270.5c-.16-.41-.29-.61-.4-.61s-.15.22-.15.67v3.17c0,.12-.12.2-.28.2h-.38c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h.54c.13,0,.25.05.27.15l1.24,3.19c.17.42.3.64.4.64s.16-.23.16-.69v-3.09c0-.12.11-.2.28-.2H401c.17,0,.28.08.28.2v6.79C401.3,273.85,401.19,273.93,401,273.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M406.34,273.45v.28c0,.12-.12.2-.29.2h-3.47c-.16,0-.28-.08-.28-.2v-.28c0-.12.12-.2.28-.2h.95c.16,0,.28-.08.28-.2v-5.43c0-.12-.12-.2-.28-.2h-.95c-.16,0-.28-.08-.28-.2v-.28c0-.12.12-.2.28-.2h3.47c.17,0,.29.08.29.2v.28c0,.12-.12.2-.29.2h-1c-.17,0-.28.08-.28.2v5.43c0,.12.11.2.28.2h1C406.22,273.25,406.34,273.33,406.34,273.45Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M410.85,273.93h-.46a.3.3,0,0,1-.29-.15l-1.29-3.28c-.16-.41-.29-.61-.39-.61s-.16.22-.16.67v3.17c0,.12-.12.2-.28.2h-.38c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h.54a.27.27,0,0,1,.28.15l1.23,3.19c.17.42.3.64.4.64s.16-.23.16-.69v-3.09c0-.12.11-.2.28-.2h.36c.17,0,.29.08.29.2v6.79C411.14,273.85,411,273.93,410.85,273.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M415.1,271.54c0-.12-.12-.2-.29-.2h-.33c-.17,0-.29-.08-.29-.2v-.28c0-.12.12-.2.29-.2h1.29c.16,0,.28.08.28.2v1.59a2,2,0,0,1-3.82,0v-4.23a2,2,0,0,1,3.82,0v.19c0,.12-.12.2-.27.2h-.37c-.17,0-.29-.08-.29-.2v-.25c0-.53-.44-.81-1-.81s-1,.28-1,.81v4.36c0,.52.41.8.94.8s1-.28,1-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M418,269.21h-.4c-.17,0-.28-.08-.28-.2v-.38c0-.12.11-.2.28-.2h.4c.17,0,.28.08.28.2V269C418.32,269.13,418.21,269.21,418,269.21Zm0,3.08h-.4c-.17,0-.28-.09-.28-.21v-.37c0-.12.11-.2.28-.2h.4c.17,0,.28.08.28.2v.37C418.32,272.2,418.21,272.29,418,272.29Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M424.5,267.91c0-.78.5-1.17,1.51-1.17h.81c1,0,1.5.39,1.5,1.17v4.85c0,.78-.49,1.17-1.5,1.17H426c-1,0-1.51-.39-1.51-1.17Zm1,4.91c0,.29.18.43.54.43h.81c.36,0,.55-.14.55-.43v-5c0-.29-.19-.43-.55-.43H426c-.36,0-.54.14-.54.43Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M430.1,273.93h-.4c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h1.57c1,0,1.93.52,1.93,1.54v.82c0,1-1,1.54-1.93,1.54h-.6c-.17,0-.29.08-.29.2v2.89C430.38,273.85,430.27,273.93,430.1,273.93Zm.57-6.51c-.17,0-.29.08-.29.2v2.14c0,.12.12.2.29.2h.6c.53,0,1-.27,1-.8v-.94c0-.53-.42-.8-1-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M437.53,270.16v.28c0,.12-.12.2-.28.2h-1.67c-.16,0-.28.08-.28.2v2.21c0,.12.12.2.28.2H438c.17,0,.28.08.28.2v.28c0,.12-.11.2-.28.2h-3.36c-.17,0-.29-.08-.29-.2v-6.79c0-.12.12-.2.29-.2H438c.17,0,.28.08.28.2v.28c0,.12-.11.2-.28.2h-2.4c-.16,0-.28.08-.28.2v2.14c0,.12.12.2.28.2h1.67C437.41,270,437.53,270,437.53,270.16Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M439.88,273.93h-.4c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h1.68c.95,0,1.9.52,1.9,1.54v.78a1.42,1.42,0,0,1-.85,1.32.19.19,0,0,0-.13.19,1.31,1.31,0,0,0,0,.15l.88,2.69a1.65,1.65,0,0,1,.09.33c0,.12-.09.19-.29.19h-.41c-.14,0-.26-.06-.28-.16l-.93-3a.28.28,0,0,0-.29-.15h-.43c-.17,0-.29.08-.29.2v2.92C440.16,273.85,440.05,273.93,439.88,273.93Zm.57-6.51c-.17,0-.29.08-.29.2v2.1c0,.12.12.21.29.21h.71c.52,0,.95-.28.95-.8v-.91c0-.53-.43-.8-.95-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M447.27,273.76l-.28-1.33a.28.28,0,0,0-.29-.17h-1.29a.28.28,0,0,0-.28.17l-.26,1.33a.27.27,0,0,1-.28.17h-.35c-.18,0-.28-.07-.28-.19a1.58,1.58,0,0,1,0-.21l1.41-6.62c0-.11.14-.17.29-.17h.74c.15,0,.26.06.29.17l1.4,6.62a1.58,1.58,0,0,1,0,.21c0,.12-.1.19-.28.19h-.34A.26.26,0,0,1,447.27,273.76Zm-1.21-5c-.1,0-.2.2-.29.6l-.36,1.78a1.66,1.66,0,0,0,0,.24c0,.11.1.18.27.18h.82c.17,0,.28-.06.28-.18a1.66,1.66,0,0,0,0-.24l-.38-1.78C446.25,269,446.16,268.78,446.06,268.78Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M452.56,266.94v.28c0,.12-.12.2-.28.2h-1c-.16,0-.28.08-.28.2v6.11c0,.12-.12.2-.29.2h-.39c-.17,0-.29-.08-.29-.2v-6.11c0-.12-.11-.2-.28-.2h-.94c-.17,0-.29-.08-.29-.2v-.28c0-.12.12-.2.29-.2h3.47C452.44,266.74,452.56,266.82,452.56,266.94Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M457.47,273.45v.28c0,.12-.11.2-.28.2h-3.47c-.17,0-.28-.08-.28-.2v-.28c0-.12.11-.2.28-.2h.94c.17,0,.29-.08.29-.2v-5.43c0-.12-.12-.2-.29-.2h-.94c-.17,0-.28-.08-.28-.2v-.28c0-.12.11-.2.28-.2h3.47c.17,0,.28.08.28.2v.28c0,.12-.11.2-.28.2h-1c-.17,0-.29.08-.29.2v5.43c0,.12.12.2.29.2h1C457.36,273.25,457.47,273.33,457.47,273.45Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M458.35,267.91c0-.78.51-1.17,1.51-1.17h.81c1,0,1.5.39,1.5,1.17v4.85c0,.78-.49,1.17-1.5,1.17h-.81c-1,0-1.51-.39-1.51-1.17Zm1,4.91c0,.29.18.43.54.43h.81c.37,0,.55-.14.55-.43v-5c0-.29-.18-.43-.55-.43h-.81c-.36,0-.54.14-.54.43Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M466.8,273.93h-.46a.3.3,0,0,1-.29-.15l-1.29-3.28c-.16-.41-.29-.61-.39-.61s-.16.22-.16.67v3.17c0,.12-.12.2-.28.2h-.38c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h.54a.27.27,0,0,1,.28.15l1.23,3.19c.17.42.3.64.4.64s.16-.23.16-.69v-3.09c0-.12.11-.2.28-.2h.36c.17,0,.29.08.29.2v6.79C467.09,273.85,467,273.93,466.8,273.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M470.57,266.74h.36c.17,0,.27.07.29.19l.31,3.68c0,.35.1.53.18.53s.19-.17.3-.5l.34-1a.22.22,0,0,1,.21-.11.21.21,0,0,1,.19.11l.33,1c.11.33.21.5.29.5s.15-.18.18-.53l.32-3.68c0-.12.1-.19.29-.19h.37c.18,0,.28.08.28.21l-.55,6.79c0,.12-.12.19-.29.19h-.45a.27.27,0,0,1-.28-.16l-.41-1.45c-.09-.28-.2-.43-.29-.43s-.19.15-.27.43l-.41,1.45a.27.27,0,0,1-.28.16h-.47c-.17,0-.27-.07-.28-.19l-.54-6.79C470.29,266.82,470.39,266.74,470.57,266.74Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M479.48,273.45v.28c0,.12-.11.2-.28.2h-3.47c-.17,0-.28-.08-.28-.2v-.28c0-.12.11-.2.28-.2h.94c.17,0,.29-.08.29-.2v-5.43c0-.12-.12-.2-.29-.2h-.94c-.17,0-.28-.08-.28-.2v-.28c0-.12.11-.2.28-.2h3.47c.17,0,.28.08.28.2v.28c0,.12-.11.2-.28.2h-1c-.17,0-.29.08-.29.2v5.43c0,.12.12.2.29.2h1C479.37,273.25,479.48,273.33,479.48,273.45Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M484.4,266.94v.28c0,.12-.12.2-.29.2h-1c-.17,0-.28.08-.28.2v6.11c0,.12-.12.2-.29.2h-.4c-.16,0-.28-.08-.28-.2v-6.11c0-.12-.12-.2-.28-.2h-.94c-.17,0-.29-.08-.29-.2v-.28c0-.12.12-.2.29-.2h3.46C484.28,266.74,484.4,266.82,484.4,266.94Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M486.35,266.94v2.82c0,.12.11.2.28.2H488c.17,0,.28-.08.28-.2v-2.82c0-.12.12-.2.29-.2h.38c.17,0,.29.08.29.2v6.79c0,.12-.12.2-.29.2h-.38c-.17,0-.29-.08-.29-.2v-2.89c0-.12-.11-.2-.28-.2h-1.33c-.17,0-.28.08-.28.2v2.89c0,.12-.12.2-.29.2h-.4c-.16,0-.28-.08-.28-.2v-6.79c0-.12.12-.2.28-.2h.4C486.23,266.74,486.35,266.82,486.35,266.94Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M490.3,267.91q0-1.17,1.5-1.17h.82c1,0,1.49.39,1.49,1.17v4.85c0,.78-.49,1.17-1.49,1.17h-.82q-1.5,0-1.5-1.17Zm1,4.91c0,.29.18.43.54.43h.82c.36,0,.54-.14.54-.43v-5c0-.29-.18-.43-.54-.43h-.82c-.36,0-.54.14-.54.43Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M495.21,266.94c0-.12.12-.2.29-.2h.39c.17,0,.29.08.29.2v5.58c0,.52.41.8.94.8s.95-.28.95-.8v-5.58c0-.12.12-.2.29-.2h.38c.17,0,.29.08.29.2v5.51a2,2,0,0,1-3.82,0Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M504.06,266.94v.28c0,.12-.12.2-.28.2h-1c-.16,0-.28.08-.28.2v6.11c0,.12-.12.2-.29.2h-.39c-.17,0-.29-.08-.29-.2v-6.11c0-.12-.11-.2-.28-.2h-.94c-.17,0-.29-.08-.29-.2v-.28c0-.12.12-.2.29-.2h3.47C503.94,266.74,504.06,266.82,504.06,266.94Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M510.6,273.76l-.28-1.33a.28.28,0,0,0-.29-.17h-1.29a.28.28,0,0,0-.28.17l-.26,1.33a.27.27,0,0,1-.28.17h-.35c-.18,0-.28-.07-.28-.19a1.58,1.58,0,0,1,0-.21l1.41-6.62c0-.11.14-.17.29-.17h.74c.15,0,.26.06.29.17l1.4,6.62a1.58,1.58,0,0,1,0,.21c0,.12-.1.19-.28.19h-.34A.26.26,0,0,1,510.6,273.76Zm-1.21-5c-.1,0-.2.2-.29.6l-.36,1.78a1.66,1.66,0,0,0,0,.24c0,.11.1.18.27.18h.82c.17,0,.28-.06.28-.18a1.66,1.66,0,0,0,0-.24l-.38-1.78C509.58,269,509.49,268.78,509.39,268.78Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M515.94,273.93h-.46a.3.3,0,0,1-.29-.15l-1.29-3.28c-.16-.41-.29-.61-.4-.61s-.15.22-.15.67v3.17c0,.12-.12.2-.28.2h-.38c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h.54c.13,0,.25.05.27.15l1.24,3.19c.17.42.3.64.4.64s.16-.23.16-.69v-3.09c0-.12.11-.2.28-.2h.36c.17,0,.28.08.28.2v6.79C516.22,273.85,516.11,273.93,515.94,273.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M522.88,273.76l-.28-1.33c0-.11-.14-.17-.29-.17H521a.28.28,0,0,0-.28.17l-.26,1.33a.27.27,0,0,1-.28.17h-.35c-.18,0-.28-.07-.28-.19a1.58,1.58,0,0,1,0-.21l1.41-6.62a.28.28,0,0,1,.29-.17h.75a.26.26,0,0,1,.28.17l1.41,6.62a2.07,2.07,0,0,1,0,.21c0,.12-.1.19-.28.19h-.33C523,273.93,522.91,273.87,522.88,273.76Zm-1.21-5c-.1,0-.19.2-.28.6l-.37,1.78a1.66,1.66,0,0,0,0,.24c0,.11.1.18.27.18h.82c.17,0,.29-.06.29-.18a2.28,2.28,0,0,0,0-.24l-.38-1.78C521.86,269,521.77,268.78,521.67,268.78Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M528.22,273.93h-.46a.3.3,0,0,1-.29-.15l-1.29-3.28c-.16-.41-.29-.61-.39-.61s-.16.22-.16.67v3.17c0,.12-.12.2-.28.2H525c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h.54a.27.27,0,0,1,.28.15l1.23,3.19c.17.42.3.64.4.64s.16-.23.16-.69v-3.09c0-.12.11-.2.28-.2h.36c.17,0,.29.08.29.2v6.79C528.51,273.85,528.39,273.93,528.22,273.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M533.54,266.94v.28c0,.12-.12.2-.29.2h-1c-.17,0-.28.08-.28.2v6.11c0,.12-.12.2-.29.2h-.4c-.16,0-.28-.08-.28-.2v-6.11c0-.12-.12-.2-.28-.2h-1c-.16,0-.28-.08-.28-.2v-.28c0-.12.12-.2.28-.2h3.47C533.42,266.74,533.54,266.82,533.54,266.94Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M537.72,270.16v.28c0,.12-.12.2-.29.2h-1.66c-.17,0-.28.08-.28.2v2.21c0,.12.11.2.28.2h2.4c.17,0,.28.08.28.2v.28c0,.12-.11.2-.28.2H534.8c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h3.37c.17,0,.28.08.28.2v.28c0,.12-.11.2-.28.2h-2.4c-.17,0-.28.08-.28.2v2.14c0,.12.11.2.28.2h1.66C537.6,270,537.72,270,537.72,270.16Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M543,273.93h-.47a.29.29,0,0,1-.28-.15l-1.29-3.28c-.17-.41-.3-.61-.4-.61s-.15.22-.15.67v3.17c0,.12-.12.2-.29.2h-.37c-.17,0-.28-.08-.28-.2v-6.79c0-.12.11-.2.28-.2h.54a.26.26,0,0,1,.27.15l1.24,3.19c.17.42.3.64.4.64s.15-.23.15-.69v-3.09c0-.12.12-.2.29-.2H543c.17,0,.28.08.28.2v6.79C543.25,273.85,543.14,273.93,543,273.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M547.88,273.93h-.46a.3.3,0,0,1-.29-.15l-1.28-3.28c-.17-.41-.3-.61-.4-.61s-.16.22-.16.67v3.17c0,.12-.11.2-.28.2h-.38c-.16,0-.28-.08-.28-.2v-6.79c0-.12.12-.2.28-.2h.55a.27.27,0,0,1,.27.15l1.23,3.19c.17.42.3.64.4.64s.16-.23.16-.69v-3.09c0-.12.11-.2.28-.2h.36c.17,0,.29.08.29.2v6.79C548.17,273.85,548.05,273.93,547.88,273.93Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M552.37,273.76l-.28-1.33a.26.26,0,0,0-.28-.17h-1.29a.28.28,0,0,0-.29.17l-.26,1.33a.27.27,0,0,1-.28.17h-.35c-.18,0-.28-.07-.28-.19a1.58,1.58,0,0,1,0-.21l1.42-6.62c0-.11.14-.17.28-.17h.75c.14,0,.26.06.28.17l1.41,6.62a1.58,1.58,0,0,1,0,.21c0,.12-.11.19-.29.19h-.33C552.51,273.93,552.4,273.87,552.37,273.76Zm-1.21-5c-.1,0-.19.2-.28.6l-.36,1.78a1,1,0,0,0,0,.24c0,.11.1.18.27.18h.82c.17,0,.29-.06.29-.18a2.28,2.28,0,0,0,0-.24l-.38-1.78C551.35,269,551.26,268.78,551.16,268.78Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M395.77,285h-.36c-.17,0-.28-.08-.28-.2v-3.55c0-.36-.06-.54-.13-.54s-.17.16-.3.5l-.37,1a.25.25,0,0,1-.25.13.26.26,0,0,1-.26-.13l-.37-1c-.13-.34-.23-.5-.31-.5s-.12.18-.12.54v3.55c0,.12-.11.2-.28.2h-.36c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h.49a.27.27,0,0,1,.27.15l.66,1.8c.08.23.18.34.27.34s.18-.11.27-.34l.67-1.81a.28.28,0,0,1,.27-.14h.49c.17,0,.28.08.28.2v6.79C396.05,284.88,395.94,285,395.77,285Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M400.18,284.78l-.28-1.32a.26.26,0,0,0-.28-.17h-1.29a.28.28,0,0,0-.29.17l-.26,1.32a.26.26,0,0,1-.28.18h-.35c-.18,0-.28-.07-.28-.19a1.79,1.79,0,0,1,0-.22l1.42-6.61c0-.11.14-.17.28-.17h.75c.14,0,.26.06.28.17l1.41,6.61c0,.2,0,.21,0,.22s-.1.19-.28.19h-.33A.28.28,0,0,1,400.18,284.78Zm-1.21-5c-.1,0-.19.2-.28.6l-.36,1.78a1,1,0,0,0,0,.24c0,.11.1.18.27.18h.82c.17,0,.29-.06.29-.18a1.93,1.93,0,0,0,0-.24l-.38-1.78C399.16,280,399.07,279.81,399,279.81Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M402.69,281.21l-1.33-3.07a.6.6,0,0,1-.08-.22c0-.11.1-.15.3-.15h.4c.14,0,.23,0,.27.14l.72,1.74c.08.2.17.29.27.29s.18-.09.27-.29l.75-1.74c0-.1.13-.14.27-.14h.39c.19,0,.29.05.29.15a.7.7,0,0,1-.07.22l-1.33,3.07a1,1,0,0,0-.08.39v3.16c0,.13-.09.2-.28.2h-.4c-.2,0-.29-.07-.29-.2V281.6A1,1,0,0,0,402.69,281.21Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M409.39,285H409c-.17,0-.29-.08-.29-.2V278c0-.12.12-.2.29-.2h1.57a1.72,1.72,0,0,1,1.92,1.54v.82a1.72,1.72,0,0,1-1.92,1.54H410c-.17,0-.28.08-.28.2v2.89C409.68,284.88,409.56,285,409.39,285Zm.57-6.51c-.17,0-.28.08-.28.2v2.14c0,.12.11.2.28.2h.61c.53,0,.94-.27.94-.8v-.94c0-.53-.41-.8-.94-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M416.82,281.19v.28c0,.12-.11.2-.28.2h-1.66c-.17,0-.29.08-.29.2v2.21c0,.12.12.2.29.2h2.4c.16,0,.28.08.28.2v.28c0,.12-.12.2-.28.2h-3.37c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h3.37c.16,0,.28.08.28.2v.27c0,.12-.12.21-.28.21h-2.4c-.17,0-.29.08-.29.2v2.14c0,.12.12.2.29.2h1.66C416.71,281,416.82,281.07,416.82,281.19Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M419.17,285h-.4c-.16,0-.28-.08-.28-.2V278c0-.12.12-.2.28-.2h1.68c.95,0,1.91.52,1.91,1.54v.78a1.41,1.41,0,0,1-.85,1.31.19.19,0,0,0-.13.2,1,1,0,0,0,0,.15l.88,2.69a1.65,1.65,0,0,1,.09.33c0,.12-.09.19-.28.19h-.42a.28.28,0,0,1-.28-.16l-.93-3a.27.27,0,0,0-.28-.16h-.44c-.17,0-.28.09-.28.21v2.92C419.46,284.88,419.34,285,419.17,285Zm.57-6.51c-.17,0-.28.08-.28.2v2.1c0,.12.11.2.28.2h.71c.53,0,.95-.27.95-.8v-.9c0-.53-.42-.8-.95-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M427.07,285h-.36c-.17,0-.29-.08-.29-.2v-3.55c0-.36-.05-.54-.13-.54s-.16.16-.29.5l-.38,1c0,.08-.13.13-.24.13a.26.26,0,0,1-.26-.13l-.37-1c-.13-.34-.24-.5-.31-.5s-.12.18-.12.54v3.55c0,.12-.12.2-.28.2h-.36c-.17,0-.29-.08-.29-.2V278c0-.12.12-.2.29-.2h.49a.28.28,0,0,1,.27.15l.65,1.8c.08.23.18.34.28.34s.17-.11.27-.34l.67-1.81c0-.08.14-.14.27-.14h.49c.16,0,.28.08.28.2v6.79C427.35,284.88,427.23,285,427.07,285Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M431.48,284.78l-.28-1.32a.28.28,0,0,0-.29-.17h-1.29a.28.28,0,0,0-.28.17l-.26,1.32a.26.26,0,0,1-.28.18h-.35c-.18,0-.28-.07-.28-.19a1.79,1.79,0,0,1,0-.22l1.41-6.61c0-.11.14-.17.29-.17h.74c.15,0,.26.06.29.17l1.4,6.61a1.79,1.79,0,0,1,0,.22c0,.12-.1.19-.28.19h-.34A.27.27,0,0,1,431.48,284.78Zm-1.21-5c-.1,0-.2.2-.29.6l-.36,1.78a1.93,1.93,0,0,0,0,.24c0,.11.11.18.28.18h.82c.17,0,.28-.06.28-.18a1.52,1.52,0,0,0,0-.24l-.38-1.78C430.46,280,430.37,279.81,430.27,279.81Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M436.82,285h-.46a.31.31,0,0,1-.29-.15l-1.29-3.28c-.16-.41-.29-.61-.4-.61s-.15.22-.15.67v3.17c0,.12-.12.2-.28.2h-.38c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h.54c.13,0,.25.05.27.14l1.24,3.2c.17.42.3.63.4.63s.16-.23.16-.68V278c0-.12.11-.2.28-.2h.36c.17,0,.28.08.28.2v6.79C437.1,284.88,437,285,436.82,285Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M441.4,281.19v.28c0,.12-.12.2-.28.2h-1.67c-.16,0-.28.08-.28.2v2.21c0,.12.12.2.28.2h2.4c.17,0,.28.08.28.2v.28c0,.12-.11.2-.28.2h-3.36c-.17,0-.29-.08-.29-.2V278c0-.12.12-.2.29-.2h3.36c.17,0,.28.08.28.2v.27c0,.12-.11.21-.28.21h-2.4c-.16,0-.28.08-.28.2v2.14c0,.12.12.2.28.2h1.67C441.28,281,441.4,281.07,441.4,281.19Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M446.65,285h-.46a.31.31,0,0,1-.29-.15l-1.29-3.28c-.16-.41-.29-.61-.4-.61s-.15.22-.15.67v3.17c0,.12-.12.2-.28.2h-.38c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h.54c.13,0,.25.05.27.14l1.24,3.2c.17.42.3.63.4.63s.16-.23.16-.68V278c0-.12.11-.2.28-.2h.36c.17,0,.28.08.28.2v6.79C446.93,284.88,446.82,285,446.65,285Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M452,278v.27c0,.12-.11.21-.28.21h-1c-.17,0-.28.08-.28.2v6.11c0,.12-.12.2-.29.2h-.4c-.17,0-.28-.08-.28-.2v-6.11c0-.12-.12-.2-.29-.2h-.94c-.16,0-.28-.09-.28-.21V278c0-.12.12-.2.28-.2h3.47C451.85,277.77,452,277.85,452,278Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M456.88,284.48v.28c0,.12-.12.2-.28.2h-3.37c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h.4c.17,0,.29.08.29.2v6.11c0,.12.11.2.28.2h2.4C456.76,284.28,456.88,284.36,456.88,284.48Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M458.3,281.21,457,278.14a.7.7,0,0,1-.07-.22c0-.11.1-.15.29-.15h.4c.14,0,.23,0,.27.14l.72,1.74c.08.2.17.29.28.29s.18-.09.27-.29l.74-1.74c0-.1.13-.14.28-.14h.38q.3,0,.3.15a.6.6,0,0,1-.08.22l-1.33,3.07a1,1,0,0,0-.07.39v3.16c0,.13-.09.2-.29.2h-.4c-.19,0-.28-.07-.28-.2V281.6A1,1,0,0,0,458.3,281.21Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M464.42,285c-.17,0-.29-.08-.29-.2v-.32c0-.24.47-.08.47-.33v-5.5c0-.25-.47-.08-.47-.33V278c0-.12.12-.2.29-.2h2a1.7,1.7,0,0,1,1.9,1.54v4.11a1.7,1.7,0,0,1-1.9,1.54Zm1.41-6.51c-.16,0-.28.08-.28.2v5.43c0,.12.12.2.28.2h.59c.52,0,.94-.28.94-.8v-4.23c0-.53-.42-.8-.94-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M472.09,284.78l-.28-1.32c0-.11-.14-.17-.29-.17h-1.29a.28.28,0,0,0-.28.17l-.26,1.32a.26.26,0,0,1-.28.18h-.35c-.18,0-.28-.07-.28-.19a1.79,1.79,0,0,1,0-.22l1.41-6.61a.28.28,0,0,1,.29-.17h.75a.26.26,0,0,1,.28.17l1.41,6.61c0,.2,0,.21,0,.22s-.1.19-.28.19h-.33A.28.28,0,0,1,472.09,284.78Zm-1.21-5c-.1,0-.19.2-.28.6l-.37,1.78a1.52,1.52,0,0,0,0,.24c0,.11.1.18.27.18h.82c.17,0,.29-.06.29-.18a1.93,1.93,0,0,0,0-.24l-.38-1.78C471.07,280,471,279.81,470.88,279.81Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M477.51,285h-.36c-.17,0-.29-.08-.29-.2v-3.55c0-.36-.05-.54-.12-.54s-.17.16-.3.5l-.37,1a.25.25,0,0,1-.25.13.26.26,0,0,1-.26-.13l-.37-1c-.13-.34-.23-.5-.31-.5s-.12.18-.12.54v3.55c0,.12-.11.2-.28.2h-.36c-.17,0-.29-.08-.29-.2V278c0-.12.12-.2.29-.2h.49a.27.27,0,0,1,.27.15l.66,1.8c.07.23.18.34.27.34s.18-.11.27-.34l.67-1.81c0-.08.14-.14.27-.14h.49c.17,0,.28.08.28.2v6.79C477.79,284.88,477.68,285,477.51,285Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M481.92,284.78l-.28-1.32c0-.11-.14-.17-.29-.17h-1.29a.28.28,0,0,0-.28.17l-.26,1.32a.26.26,0,0,1-.28.18h-.35c-.18,0-.28-.07-.28-.19a1.79,1.79,0,0,1,0-.22l1.41-6.61a.28.28,0,0,1,.29-.17h.75a.26.26,0,0,1,.28.17l1.41,6.61c0,.2,0,.21,0,.22s-.1.19-.28.19h-.33A.28.28,0,0,1,481.92,284.78Zm-1.21-5c-.1,0-.19.2-.28.6l-.37,1.78a1.52,1.52,0,0,0,0,.24c0,.11.1.18.27.18h.82c.17,0,.29-.06.29-.18a1.93,1.93,0,0,0,0-.24l-.38-1.78C480.9,280,480.81,279.81,480.71,279.81Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M486.33,282.57c0-.12-.11-.2-.28-.2h-.34c-.16,0-.28-.08-.28-.2v-.28c0-.12.12-.2.28-.2H487c.17,0,.29.08.29.2v1.59c0,1-1,1.54-1.91,1.54a1.71,1.71,0,0,1-1.91-1.54v-4.23a2,2,0,0,1,3.82,0v.19c0,.12-.12.2-.27.2h-.38c-.16,0-.28-.08-.28-.2v-.25c0-.53-.44-.81-1-.81s-.95.28-.95.81v4.35c0,.53.41.8.94.8s.95-.27.95-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M491.58,281.19v.28c0,.12-.11.2-.28.2h-1.66c-.17,0-.29.08-.29.2v2.21c0,.12.12.2.29.2H492c.16,0,.28.08.28.2v.28c0,.12-.12.2-.28.2h-3.37c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2H492c.16,0,.28.08.28.2v.27c0,.12-.12.21-.28.21h-2.4c-.17,0-.29.08-.29.2v2.14c0,.12.12.2.29.2h1.66C491.47,281,491.58,281.07,491.58,281.19Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M499.68,278v.27c0,.12-.11.21-.28.21h-1c-.17,0-.28.08-.28.2v6.11c0,.12-.12.2-.29.2h-.4c-.17,0-.28-.08-.28-.2v-6.11c0-.12-.12-.2-.29-.2h-.94c-.16,0-.28-.09-.28-.21V278c0-.12.12-.2.28-.2h3.47C499.57,277.77,499.68,277.85,499.68,278Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M501.64,278v2.82c0,.12.11.2.28.2h1.33c.17,0,.28-.08.28-.2V278c0-.12.12-.2.28-.2h.39c.17,0,.29.08.29.2v6.79c0,.12-.12.2-.29.2h-.39c-.16,0-.28-.08-.28-.2v-2.89c0-.12-.11-.2-.28-.2h-1.33c-.17,0-.28.08-.28.2v2.89c0,.12-.12.2-.29.2H501c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h.4C501.52,277.77,501.64,277.85,501.64,278Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M508.78,281.19v.28c0,.12-.11.2-.28.2h-1.67c-.16,0-.28.08-.28.2v2.21c0,.12.12.2.28.2h2.4c.17,0,.29.08.29.2v.28c0,.12-.12.2-.29.2h-3.36c-.17,0-.29-.08-.29-.2V278c0-.12.12-.2.29-.2h3.36c.17,0,.29.08.29.2v.27c0,.12-.12.21-.29.21h-2.4c-.16,0-.28.08-.28.2v2.14c0,.12.12.2.28.2h1.67C508.67,281,508.78,281.07,508.78,281.19Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M513,285c-.17,0-.28-.08-.28-.2v-.32c0-.24.46-.08.46-.33v-5.5c0-.25-.46-.08-.46-.33V278c0-.12.11-.2.28-.2h2a1.71,1.71,0,0,1,1.91,1.54v4.11A1.71,1.71,0,0,1,515,285Zm1.42-6.51c-.17,0-.29.08-.29.2v5.43c0,.12.12.2.29.2H515c.53,0,.94-.28.94-.8v-4.23c0-.53-.41-.8-.94-.8Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M521.06,281.19v.28c0,.12-.11.2-.28.2h-1.66c-.17,0-.29.08-.29.2v2.21c0,.12.12.2.29.2h2.39c.17,0,.29.08.29.2v.28c0,.12-.12.2-.29.2h-3.36c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h3.36c.17,0,.29.08.29.2v.27c0,.12-.12.21-.29.21h-2.39c-.17,0-.29.08-.29.2v2.14c0,.12.12.2.29.2h1.66C521,281,521.06,281.07,521.06,281.19Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M523.51,277.94l.89,4.33c.08.4.17.6.29.6s.19-.2.28-.6l.89-4.33c0-.12.12-.17.29-.17h.36c.19,0,.28.06.28.19a.75.75,0,0,1,0,.17l-1.41,6.65c0,.12-.12.18-.29.18h-.75c-.16,0-.25-.06-.28-.18l-1.43-6.65a1.55,1.55,0,0,1,0-.17c0-.13.09-.19.29-.19h.37C523.4,277.77,523.49,277.82,523.51,277.94Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M531.63,284.48v.28c0,.12-.12.2-.29.2h-3.46c-.17,0-.29-.08-.29-.2v-.28c0-.12.12-.2.29-.2h.94c.16,0,.28-.08.28-.2v-5.43c0-.12-.12-.2-.28-.2h-.94c-.17,0-.29-.09-.29-.21V278c0-.12.12-.2.29-.2h3.46c.17,0,.29.08.29.2v.27c0,.12-.12.21-.29.21h-1c-.17,0-.28.08-.28.2v5.43c0,.12.11.2.28.2h1C531.51,284.28,531.63,284.36,531.63,284.48Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M532.48,279.25a2,2,0,0,1,3.82,0v.19c0,.12-.12.2-.27.2h-.38c-.16,0-.28-.08-.28-.2v-.25a.84.84,0,0,0-1-.81c-.55,0-1,.28-1,.81v4.35c0,.53.42.8,1,.8s1-.27,1-.8v-.35c0-.12.12-.21.28-.21H536c.17,0,.29.09.29.21v.29c0,1-1,1.54-1.91,1.54a1.71,1.71,0,0,1-1.91-1.54Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M540.59,281.19v.28c0,.12-.11.2-.28.2h-1.66c-.17,0-.29.08-.29.2v2.21c0,.12.12.2.29.2h2.4c.16,0,.28.08.28.2v.28c0,.12-.12.2-.28.2h-3.37c-.17,0-.28-.08-.28-.2V278c0-.12.11-.2.28-.2h3.37c.16,0,.28.08.28.2v.27c0,.12-.12.21-.28.21h-2.4c-.17,0-.29.08-.29.2v2.14c0,.12.12.2.29.2h1.66C540.48,281,540.59,281.07,540.59,281.19Z"
|
||||
></path><path
|
||||
class="cls-5"
|
||||
d="M543.2,285h-.4c-.17,0-.28-.08-.28-.2v-.38c0-.12.11-.2.28-.2h.4c.17,0,.29.08.29.2v.38C543.49,284.88,543.37,285,543.2,285Z"
|
||||
></path></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 34 KiB |
@@ -1,697 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="696.3 500.37 622.29 968.69">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #2d2d2d;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #383838;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #474649;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #939696;
|
||||
}
|
||||
.cls-5, .cls-7 {
|
||||
fill: #e6e8e8;
|
||||
}
|
||||
.cls-11,
|
||||
.cls-12,
|
||||
.cls-13,
|
||||
.cls-14,
|
||||
.cls-15,
|
||||
.cls-16,
|
||||
.cls-17,
|
||||
.cls-18,
|
||||
.cls-6 {
|
||||
fill: none;
|
||||
}
|
||||
.cls-16, .cls-6 {
|
||||
stroke: #939696;
|
||||
stroke-width: 2px;
|
||||
}
|
||||
.cls-18, .cls-6 {
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.cls-7 {
|
||||
font-size: 22.85px;
|
||||
font-family: ArialMT, Arial;
|
||||
}
|
||||
.cls-8 {
|
||||
fill: #515153;
|
||||
}
|
||||
.cls-9 {
|
||||
fill: #e2d299;
|
||||
}
|
||||
.cls-10 {
|
||||
fill: #fff;
|
||||
}
|
||||
.cls-11, .cls-13, .cls-14, .cls-15 {
|
||||
stroke: #050606;
|
||||
}
|
||||
.cls-11, .cls-12, .cls-13, .cls-14, .cls-15, .cls-16, .cls-17 {
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-11 {
|
||||
stroke-width: 1.35px;
|
||||
}
|
||||
.cls-12, .cls-17, .cls-18 {
|
||||
stroke: #fff;
|
||||
}
|
||||
.cls-12, .cls-15 {
|
||||
stroke-width: 1.79px;
|
||||
}
|
||||
.cls-13 {
|
||||
stroke-width: 1.8px;
|
||||
}
|
||||
.cls-14 {
|
||||
stroke-width: 4.05px;
|
||||
}
|
||||
.cls-17 {
|
||||
stroke-width: 1.37px;
|
||||
}
|
||||
.cls-18 {
|
||||
stroke-width: 1.37px;
|
||||
}
|
||||
</style></defs><g id="Layer_3" data-name="Layer 3"><path
|
||||
class="cls-1"
|
||||
d="M1292.56,1030.81v287.34c0,51.3-17,98.13-78.62,120.23-33.78,12.13-72.45,17.21-107.88,19.81-23.07,1.7-66.69,2.55-98.62,2.85-31.93-.3-75.55-1.15-98.62-2.85-35.43-2.6-74.1-7.68-107.88-19.81-61.6-22.1-78.62-68.93-78.62-120.23V1030.81Z"
|
||||
/><path
|
||||
class="cls-2"
|
||||
d="M1306.83,1210.35c-3,2.5-2.35,7.42-6.33,11.56-2,2.07-5.21,2.65-7.94,2.72v93.52c0,51.3-17,98.13-78.62,120.23-33.78,12.13-72.45,17.21-107.88,19.81-23.07,1.7-66.69,2.55-98.62,2.85-31.93-.3-75.55-1.15-98.62-2.85-35.43-2.6-74.1-7.68-107.88-19.81-61.6-22.1-78.62-68.93-78.62-120.23v-94.29a17.44,17.44,0,0,1-7.13-1.4c-5.08-2.35-3.9-7.73-7.43-11.92a8.73,8.73,0,0,0-3.92-2.65v110.83c0,52.75,17,100.9,78.62,123.63,33.79,12.47,72.21,18,107.6,21.08,21,1.85,69.3,3.79,117.26,3.59h.24c48,.2,96.28-1.74,117.26-3.59,35.39-3.12,73.81-8.61,107.6-21.08,61.59-22.73,78.62-70.88,78.62-123.63V1208.18A13.09,13.09,0,0,0,1306.83,1210.35Z"
|
||||
/><path
|
||||
class="cls-3"
|
||||
d="M722.79,1332.36h0a25.91,25.91,0,0,0,25.92-25.92V1137.88h530.2v186.39a12.8,12.8,0,0,0,12.81,12.8h0v-29l.84-277.22H722.32Z"
|
||||
/><path
|
||||
class="cls-1"
|
||||
d="M1292.56,590.3v440.51H722.32V590.3a74.74,74.74,0,0,1,74.75-74.75h420.74A74.74,74.74,0,0,1,1292.56,590.3Z"
|
||||
/><rect
|
||||
class="cls-4"
|
||||
x="942.13"
|
||||
y="547.62"
|
||||
width="132.22"
|
||||
height="13.89"
|
||||
rx="6.95"
|
||||
/><rect
|
||||
class="cls-5"
|
||||
x="743.88"
|
||||
y="1199.81"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><rect
|
||||
class="cls-5"
|
||||
x="743.88"
|
||||
y="1133.54"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><rect
|
||||
class="cls-5"
|
||||
x="743.88"
|
||||
y="1266.09"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><rect
|
||||
class="cls-5"
|
||||
x="743.88"
|
||||
y="1332.36"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><path
|
||||
class="cls-6"
|
||||
d="M1021.42,1034.73v9.87a34.52,34.52,0,0,1,27,27.08h9.86"
|
||||
/><path
|
||||
class="cls-6"
|
||||
d="M1007.54,1034.76v9.88a34.5,34.5,0,0,0-26.79,27h-9.86"
|
||||
/><path
|
||||
class="cls-6"
|
||||
d="M971,1085.57h9.89a34.53,34.53,0,0,0,26.69,26.57V1122"
|
||||
/><path
|
||||
class="cls-6"
|
||||
d="M1021.42,1122.05v-9.87a34.53,34.53,0,0,0,26.86-26.61h9.89"
|
||||
/><circle class="cls-5" cx="1014.57" cy="1078.39" r="26.4" /><rect
|
||||
class="cls-2"
|
||||
x="755.65"
|
||||
y="633.64"
|
||||
width="500.52"
|
||||
height="377.46"
|
||||
/><text class="cls-7" transform="translate(762.22 1184.58)">Q</text><text
|
||||
class="cls-7"
|
||||
transform="translate(813.86 1184.58)"
|
||||
>W</text><text class="cls-7" transform="translate(867.23 1184.58)"
|
||||
>E</text><text class="cls-7" transform="translate(920.6 1184.58)"
|
||||
>R</text><text class="cls-7" transform="translate(973.98 1184.58)"
|
||||
>T</text><text class="cls-7" transform="translate(1034.95 1184.58)"
|
||||
>Y</text><text class="cls-7" transform="translate(1142 1184.58)"
|
||||
>I</text><text class="cls-7" transform="translate(1088.49 1184.58)"
|
||||
>U</text><text class="cls-7" transform="translate(1246.93 1184.58)"
|
||||
>P</text><text class="cls-7" transform="translate(1194.11 1184.58)"
|
||||
>O</text><text class="cls-7" transform="translate(762.22 1249.77)"
|
||||
>A</text><text class="cls-7" transform="translate(813.86 1249.77)"
|
||||
>S</text><text class="cls-7" transform="translate(867.23 1249.77)"
|
||||
>D</text><text class="cls-7" transform="translate(920.6 1249.77)"
|
||||
>F</text><text class="cls-7" transform="translate(973.98 1249.77)"
|
||||
>G</text><text class="cls-7" transform="translate(1034.95 1249.77)"
|
||||
>H</text><text class="cls-7" transform="translate(1142 1249.77)"
|
||||
>K</text><text class="cls-7" transform="translate(1088.49 1249.77)"
|
||||
>J</text><text class="cls-7" transform="translate(1194.11 1249.77)"
|
||||
>L</text><text class="cls-7" transform="translate(758.45 1316)"
|
||||
>alt</text><text class="cls-7" transform="translate(813.86 1316)"
|
||||
>Z</text><text class="cls-7" transform="translate(867.23 1316)"
|
||||
>X</text><text class="cls-7" transform="translate(920.6 1316)">C</text><text
|
||||
class="cls-7"
|
||||
transform="translate(973.98 1316)"
|
||||
>V</text><text class="cls-7" transform="translate(1034.95 1316)"
|
||||
>B</text><text class="cls-7" transform="translate(1142 1316)">M</text><text
|
||||
class="cls-7"
|
||||
transform="translate(1088.49 1316)"
|
||||
>N</text><path
|
||||
class="cls-8"
|
||||
d="M1316.56,617.77v408.74a6.22,6.22,0,0,1-1.81,4.39l-3.71,3.71v173.57a13.09,13.09,0,0,0-4.21,2.17c-3,2.5-2.35,7.42-6.33,11.56-2,2.07-5.21,2.65-7.94,2.72V590.3a74.74,74.74,0,0,0-74.75-74.75H797.07a74.74,74.74,0,0,0-74.75,74.75v633.56a17.44,17.44,0,0,1-7.13-1.4c-5.08-2.35-3.9-7.73-7.43-11.92a8.73,8.73,0,0,0-3.92-2.65V1034.61l-3.71-3.71-.08-.09a6.2,6.2,0,0,1-1.73-4.3V617.77a6.23,6.23,0,0,1,1.59-4.15l3.93-4.38V594.81a92.42,92.42,0,0,1,92.42-92.42h422.36A92.38,92.38,0,0,1,1311,594.81v14.43l3.93,4.38A6.23,6.23,0,0,1,1316.56,617.77Z"
|
||||
/></g><g id="Layer_2" data-name="Layer 2"><path
|
||||
class="cls-9"
|
||||
d="M743.88,1061.4a14.6,14.6,0,1,1,14.6-14.6A14.62,14.62,0,0,1,743.88,1061.4Zm0-26a11.36,11.36,0,1,0,11.36,11.36A11.38,11.38,0,0,0,743.88,1035.44Z"
|
||||
/><path class="cls-10" d="M892.79,1438.55v-19.42h4v16.13h9.83v3.29Z" /><path
|
||||
class="cls-10"
|
||||
d="M909.28,1438.55V1419h4v19.58Z"
|
||||
/><path class="cls-10" d="M917.1,1438.55v-19.42h4v16.13h9.83v3.29Z" /><path
|
||||
class="cls-10"
|
||||
d="M936.34,1438.55v-8.24L929.17,1419h4.63l4.61,7.75,4.51-7.75h4.56l-7.2,11.37v8.21Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M958.55,1431.36v-3.3h8.53v7.8a10.79,10.79,0,0,1-3.6,2.11,13.17,13.17,0,0,1-4.78.92,10.74,10.74,0,0,1-5.36-1.29,8.23,8.23,0,0,1-3.43-3.69,11.83,11.83,0,0,1-1.15-5.21,11.35,11.35,0,0,1,1.28-5.44,8.72,8.72,0,0,1,3.76-3.65,10.12,10.12,0,0,1,4.69-1,9.32,9.32,0,0,1,5.69,1.53,6.89,6.89,0,0,1,2.64,4.23l-3.93.73a4.14,4.14,0,0,0-1.55-2.28,4.74,4.74,0,0,0-2.85-.83,5.37,5.37,0,0,0-4.12,1.64,6.93,6.93,0,0,0-1.53,4.88,7.65,7.65,0,0,0,1.55,5.23,5.16,5.16,0,0,0,4.06,1.74,6.77,6.77,0,0,0,2.49-.49,8.55,8.55,0,0,0,2.14-1.18v-2.48Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M969.92,1428.88a12.38,12.38,0,0,1,.9-5,9,9,0,0,1,1.82-2.68,7.61,7.61,0,0,1,2.53-1.77,10.88,10.88,0,0,1,4.22-.77,9.2,9.2,0,0,1,6.93,2.68q2.59,2.68,2.59,7.47a10.24,10.24,0,0,1-2.57,7.42,10.29,10.29,0,0,1-13.84,0A10.09,10.09,0,0,1,969.92,1428.88Zm4.07-.13a7.34,7.34,0,0,0,1.54,5,5.28,5.28,0,0,0,7.78,0,7.5,7.5,0,0,0,1.52-5.11,7.35,7.35,0,0,0-1.48-5,5,5,0,0,0-3.92-1.65,5,5,0,0,0-3.94,1.67A7.41,7.41,0,0,0,974,1428.75Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1004,1438.55v-16.26H998.2V1419h15.56v3.32H1008v16.26Z"
|
||||
/><path class="cls-10" d="M1014.35,1433.33v-3.75h7.37v3.75Z" /><path
|
||||
class="cls-10"
|
||||
d="M1024,1438.55V1419h4v8.7l8-8.7h5.31l-7.37,7.63,7.77,12h-5.11l-5.38-9.19-3.21,3.28v5.91Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1051.86,1434l3.74.63a6.13,6.13,0,0,1-2.28,3.13,6.68,6.68,0,0,1-3.89,1.08,6.35,6.35,0,0,1-5.48-2.42,8.08,8.08,0,0,1-1.4-4.89,7.82,7.82,0,0,1,1.84-5.52,6,6,0,0,1,4.66-2,6.32,6.32,0,0,1,5,2.09c1.22,1.39,1.8,3.53,1.75,6.4h-9.41a3.8,3.8,0,0,0,.91,2.6,2.84,2.84,0,0,0,2.17.93,2.31,2.31,0,0,0,1.48-.48A3,3,0,0,0,1051.86,1434Zm.21-3.79a3.64,3.64,0,0,0-.84-2.48,2.7,2.7,0,0,0-4,0,3.41,3.41,0,0,0-.79,2.43Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1057.08,1424.37h4l3.4,10.07,3.31-10.07h3.89l-5,13.65-.9,2.47a10.12,10.12,0,0,1-.94,1.9,4.17,4.17,0,0,1-1,1.06,4.48,4.48,0,0,1-1.43.63,7,7,0,0,1-1.91.23,9.46,9.46,0,0,1-2.13-.23l-.33-2.93a8.72,8.72,0,0,0,1.59.17,2.34,2.34,0,0,0,1.93-.77,5.37,5.37,0,0,0,1-2Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1073.91,1438.55V1419h3.75V1426a5.32,5.32,0,0,1,4.12-2,5.52,5.52,0,0,1,4.29,1.88,7.75,7.75,0,0,1,1.69,5.38,8.21,8.21,0,0,1-1.73,5.6,5.39,5.39,0,0,1-4.2,2,5.28,5.28,0,0,1-2.4-.61,5.87,5.87,0,0,1-2-1.8v2.08Zm3.73-7.4a6.06,6.06,0,0,0,.69,3.26,3,3,0,0,0,2.59,1.5,2.65,2.65,0,0,0,2.12-1.06,5.27,5.27,0,0,0,.87-3.35,5.49,5.49,0,0,0-.88-3.5,2.77,2.77,0,0,0-2.25-1.08,2.84,2.84,0,0,0-2.25,1A4.79,4.79,0,0,0,1077.64,1431.15Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1089.91,1431.26a7.75,7.75,0,0,1,.92-3.62,6.31,6.31,0,0,1,2.62-2.67,7.76,7.76,0,0,1,3.77-.92,7.09,7.09,0,0,1,5.27,2.09,7.18,7.18,0,0,1,2.06,5.28,7.29,7.29,0,0,1-2.08,5.34,7,7,0,0,1-5.22,2.12,8.22,8.22,0,0,1-3.72-.89,6.07,6.07,0,0,1-2.7-2.58A8.69,8.69,0,0,1,1089.91,1431.26Zm3.85.2a4.66,4.66,0,0,0,1,3.23,3.26,3.26,0,0,0,4.94,0,5.76,5.76,0,0,0,0-6.46,3.28,3.28,0,0,0-4.94,0A4.68,4.68,0,0,0,1093.76,1431.46Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1110.3,1428.7l-3.41-.62a5.26,5.26,0,0,1,2-3,7.19,7.19,0,0,1,4.16-1,9.08,9.08,0,0,1,3.74.59,3.73,3.73,0,0,1,1.73,1.51,7.65,7.65,0,0,1,.5,3.36l0,4.38a14.16,14.16,0,0,0,.19,2.76,7.9,7.9,0,0,0,.67,1.9h-3.71a11,11,0,0,1-.36-1.1c-.07-.23-.11-.37-.14-.44a6.79,6.79,0,0,1-2.06,1.4,5.88,5.88,0,0,1-2.33.47,4.88,4.88,0,0,1-3.46-1.19,4.23,4.23,0,0,1-.68-5.15,3.78,3.78,0,0,1,1.61-1.45,12.77,12.77,0,0,1,3-.87,21,21,0,0,0,3.65-.92v-.38a1.93,1.93,0,0,0-.54-1.54,3.15,3.15,0,0,0-2-.46,2.74,2.74,0,0,0-1.57.39A2.8,2.8,0,0,0,1110.3,1428.7Zm5,3c-.48.16-1.24.35-2.29.58a6.93,6.93,0,0,0-2,.65,1.56,1.56,0,0,0-.73,1.32,1.86,1.86,0,0,0,.58,1.37,2.08,2.08,0,0,0,1.5.57,3.24,3.24,0,0,0,1.94-.67,2.35,2.35,0,0,0,.89-1.24,7.26,7.26,0,0,0,.15-1.83Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1126.3,1438.55h-3.76v-14.18H1126v2a6.1,6.1,0,0,1,1.61-1.89,3,3,0,0,1,1.62-.45,4.67,4.67,0,0,1,2.47.71l-1.16,3.27a3.3,3.3,0,0,0-1.76-.62,2.1,2.1,0,0,0-1.34.44,3,3,0,0,0-.86,1.57,22.25,22.25,0,0,0-.31,4.75Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1146.36,1438.55h-3.48v-2.08a5.69,5.69,0,0,1-2.06,1.81,5.18,5.18,0,0,1-2.38.6,5.39,5.39,0,0,1-4.19-2,8,8,0,0,1-1.74-5.49,7.86,7.86,0,0,1,1.7-5.48,5.5,5.5,0,0,1,4.28-1.88,5.32,5.32,0,0,1,4.12,2V1419h3.75Zm-10-7.4a6.49,6.49,0,0,0,.63,3.29,2.84,2.84,0,0,0,2.54,1.47,2.76,2.76,0,0,0,2.2-1.1,5.06,5.06,0,0,0,.91-3.29,5.54,5.54,0,0,0-.88-3.52,2.79,2.79,0,0,0-2.26-1.08,2.83,2.83,0,0,0-2.24,1.06A4.81,4.81,0,0,0,1136.34,1431.15Z"
|
||||
/><rect
|
||||
class="cls-11"
|
||||
x="755.65"
|
||||
y="633.64"
|
||||
width="500.52"
|
||||
height="377.46"
|
||||
/><path
|
||||
class="cls-12"
|
||||
d="M1084.05,1030.81a84.23,84.23,0,0,1-5.85,102.73"
|
||||
/><path
|
||||
class="cls-12"
|
||||
d="M945.08,1030.81a84.23,84.23,0,0,0,5.85,102.73"
|
||||
/><path
|
||||
class="cls-12"
|
||||
d="M1056.1,1030.81a63.17,63.17,0,0,1-10.75,102.73"
|
||||
/><path
|
||||
class="cls-12"
|
||||
d="M973,1030.81a63.15,63.15,0,0,0,10.75,102.73"
|
||||
/><circle class="cls-12" cx="1014.57" cy="1078.39" r="26.4" /><path
|
||||
class="cls-13"
|
||||
d="M703.84,1208.34a10.08,10.08,0,0,1,7.37,8.09c1.15,6.75,7.53,8.15,11.11,7.13"
|
||||
/><path
|
||||
class="cls-14"
|
||||
d="M1315,613.62l-3.93-4.38V594.81a92.42,92.42,0,0,0-92.42-92.42H796.26a92.42,92.42,0,0,0-92.42,92.42v14.43l-3.93,4.38a6.23,6.23,0,0,0-1.59,4.15v408.74a6.22,6.22,0,0,0,1.81,4.39l3.71,3.71v284.11c0,52.75,17,100.9,78.62,123.63,33.79,12.47,72.21,18,107.6,21.08,21,1.85,69.3,3.79,117.26,3.59h.24c48,.2,96.28-1.74,117.26-3.59,35.39-3.12,73.81-8.61,107.6-21.08,61.59-22.73,78.62-70.88,78.62-123.63V1034.61l3.71-3.71a6.22,6.22,0,0,0,1.81-4.39V617.77A6.23,6.23,0,0,0,1315,613.62Zm-22.41,704.53c0,51.3-17,98.13-78.62,120.23-33.78,12.13-72.45,17.21-107.88,19.81-23.07,1.7-66.69,2.55-98.62,2.85-31.93-.3-75.55-1.15-98.62-2.85-35.43-2.6-74.1-7.68-107.88-19.81-61.6-22.1-78.62-68.93-78.62-120.23V590.3a74.74,74.74,0,0,1,74.75-74.75h420.74a74.74,74.74,0,0,1,74.75,74.75Z"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1311.05,1208.34a10.08,10.08,0,0,0-7.37,8.09c-1.15,6.75-7.53,8.15-11.11,7.13"
|
||||
/><rect
|
||||
class="cls-11"
|
||||
x="942.13"
|
||||
y="547.62"
|
||||
width="132.22"
|
||||
height="13.89"
|
||||
rx="6.95"
|
||||
/><line
|
||||
class="cls-11"
|
||||
x1="722.32"
|
||||
y1="1030.81"
|
||||
x2="1292.57"
|
||||
y2="1030.81"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="748.71"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M748.71,1199.81h45.08V1175a27.9,27.9,0,0,0-28-27.8H748.71"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="801.73"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M801.73,1199.81h45.08V1175a27.9,27.9,0,0,0-28-27.8H801.73"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="854.75"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M854.75,1199.81h45.08V1175a27.9,27.9,0,0,0-28-27.8H854.75"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="907.77"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M907.77,1199.81h45.08V1175a27.9,27.9,0,0,0-28-27.8H907.77"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="960.79"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M960.79,1199.81h45.08V1175a27.9,27.9,0,0,0-28-27.8H960.79"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1225.89"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2504.8 2347) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1278.91,1147.19h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1172.87"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2398.76 2347) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1225.89,1147.19h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1119.85"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2292.72 2347) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1172.87,1147.19H1155.8a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1066.83"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2186.68 2347) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1119.85,1147.19h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1013.81"
|
||||
y="1147.19"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2080.64 2347) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1066.83,1147.19h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="748.71"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M748.71,1266.08h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H748.71"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="801.73"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M801.73,1266.08h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H801.73"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="854.75"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M854.75,1266.08h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H854.75"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="907.77"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M907.77,1266.08h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H907.77"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="960.79"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M960.79,1266.08h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H960.79"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1225.89"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2504.8 2479.54) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1278.91,1213.46h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1172.87"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2398.76 2479.54) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1225.89,1213.46h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1119.85"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2292.72 2479.54) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1172.87,1213.46H1155.8a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1066.83"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2186.68 2479.54) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1119.85,1213.46h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1013.81"
|
||||
y="1213.46"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2080.64 2479.54) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1066.83,1213.46h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="748.71"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M748.71,1332.35h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H748.71"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="801.73"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M801.73,1332.35h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H801.73"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M812.55,1346h17.07a27.9,27.9,0,0,1,28,27.8V1394"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M872.15,1346h17.07a27.9,27.9,0,0,1,28,27.8v24.6"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="854.75"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M854.75,1332.35h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H854.75"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="907.77"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M907.77,1332.35h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H907.77"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="960.79"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M960.79,1332.35h45.08v-24.82a27.9,27.9,0,0,0-28-27.8H960.79"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1225.89"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2504.8 2612.09) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1278.91,1279.73h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1172.87"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2398.76 2612.09) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1225.89,1279.73h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1119.85"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2292.72 2612.09) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1172.87,1279.73H1155.8a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1066.83"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2186.68 2612.09) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1119.85,1279.73h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-13"
|
||||
x="1013.81"
|
||||
y="1279.73"
|
||||
width="53.02"
|
||||
height="52.62"
|
||||
transform="translate(2080.64 2612.09) rotate(-180)"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1066.83,1279.73h-17.07a27.91,27.91,0,0,0-28,27.8v24.82h45.08"
|
||||
/><rect
|
||||
class="cls-15"
|
||||
x="743.88"
|
||||
y="1199.81"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><rect
|
||||
class="cls-15"
|
||||
x="743.88"
|
||||
y="1133.54"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><rect
|
||||
class="cls-15"
|
||||
x="743.88"
|
||||
y="1266.09"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><rect
|
||||
class="cls-15"
|
||||
x="743.88"
|
||||
y="1332.36"
|
||||
width="540.06"
|
||||
height="13.65"
|
||||
rx="6.82"
|
||||
/><path
|
||||
class="cls-15"
|
||||
d="M802.07,1346c0,26.61,14.41,41.86,40.7,46,40.67,6.37,101.92,8.23,181.39,8"
|
||||
/><line
|
||||
class="cls-15"
|
||||
x1="924.85"
|
||||
y1="1398.7"
|
||||
x2="924.85"
|
||||
y2="1346.01"
|
||||
/><line
|
||||
class="cls-15"
|
||||
x1="864.53"
|
||||
y1="1394.78"
|
||||
x2="864.53"
|
||||
y2="1346.01"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1170.33,1394V1373.8a27.9,27.9,0,0,1,28-27.8h17.07"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M1110.73,1398.4v-24.6a27.9,27.9,0,0,1,28-27.8h17.07"
|
||||
/><path
|
||||
class="cls-15"
|
||||
d="M1225.89,1346c0,26.61-14.41,41.86-40.7,46-40.67,6.37-101.92,8.23-181.39,8"
|
||||
/><line
|
||||
class="cls-15"
|
||||
x1="1103.11"
|
||||
y1="1346.01"
|
||||
x2="1103.11"
|
||||
y2="1398.7"
|
||||
/><line
|
||||
class="cls-15"
|
||||
x1="1163.43"
|
||||
y1="1346.01"
|
||||
x2="1163.43"
|
||||
y2="1394.78"
|
||||
/><circle class="cls-1" cx="743.88" cy="1046.8" r="7.19" /><path
|
||||
class="cls-9"
|
||||
d="M736.69,1104a5.93,5.93,0,1,1,5.93-5.93A5.94,5.94,0,0,1,736.69,1104Zm0-10.07a4.14,4.14,0,1,0,4.14,4.14A4.15,4.15,0,0,0,736.69,1094Z"
|
||||
/><path
|
||||
class="cls-9"
|
||||
d="M736.69,1120.19a5.94,5.94,0,1,1,5.93-5.93A5.94,5.94,0,0,1,736.69,1120.19Zm0-10.07a4.14,4.14,0,1,0,4.14,4.14A4.14,4.14,0,0,0,736.69,1110.12Z"
|
||||
/><path
|
||||
class="cls-9"
|
||||
d="M736.69,1136.35a5.93,5.93,0,1,1,5.93-5.93A5.94,5.94,0,0,1,736.69,1136.35Zm0-10.07a4.14,4.14,0,1,0,4.14,4.14A4.15,4.15,0,0,0,736.69,1126.28Z"
|
||||
/><path
|
||||
class="cls-9"
|
||||
d="M736.69,1168.68a5.93,5.93,0,1,1,5.93-5.93A5.94,5.94,0,0,1,736.69,1168.68Zm0-10.07a4.14,4.14,0,1,0,4.14,4.14A4.15,4.15,0,0,0,736.69,1158.61Z"
|
||||
/><path
|
||||
class="cls-9"
|
||||
d="M736.69,1184.85a5.94,5.94,0,1,1,5.93-5.93A5.94,5.94,0,0,1,736.69,1184.85Zm0-10.07a4.14,4.14,0,1,0,4.14,4.14A4.14,4.14,0,0,0,736.69,1174.78Z"
|
||||
/><path
|
||||
class="cls-16"
|
||||
d="M918.05,1077.65a.77.77,0,0,1,0,.95l-8.88,11.19L903,1097.6a.76.76,0,0,1-.6.29H885.84a.76.76,0,0,1-.6-1.24l14.31-18.05a.77.77,0,0,0,0-.95l-14.32-18.05a.76.76,0,0,1,.6-1.24h16.55a.76.76,0,0,1,.6.29l6.19,7.81Z"
|
||||
/><path
|
||||
class="cls-16"
|
||||
d="M885,1077.65a.77.77,0,0,1,0,.95l-8.88,11.19L870,1097.6a.76.76,0,0,1-.6.29H852.81a.76.76,0,0,1-.6-1.24l14.31-18.05a.77.77,0,0,0,0-.95L852.2,1059.6a.76.76,0,0,1,.6-1.24h16.55a.76.76,0,0,1,.6.29l6.19,7.81Z"
|
||||
/><path
|
||||
class="cls-16"
|
||||
d="M852,1077.65a.77.77,0,0,1,0,.95l-8.88,11.19-6.19,7.81a.76.76,0,0,1-.6.29H819.78a.76.76,0,0,1-.6-1.24l14.31-18.05a.77.77,0,0,0,0-.95l-14.32-18.05a.76.76,0,0,1,.6-1.24h16.55a.76.76,0,0,1,.6.29l6.19,7.81Z"
|
||||
/><path
|
||||
class="cls-16"
|
||||
d="M1111.88,1077.65a.77.77,0,0,0,0,.95l8.87,11.19,6.19,7.81a.79.79,0,0,0,.6.29h16.55a.77.77,0,0,0,.6-1.24l-14.31-18.05a.77.77,0,0,1,0-.95l14.32-18.05a.77.77,0,0,0-.6-1.24h-16.56a.79.79,0,0,0-.6.29l-6.19,7.81Z"
|
||||
/><path
|
||||
class="cls-16"
|
||||
d="M1144.91,1077.65a.77.77,0,0,0,0,.95l8.87,11.19,6.19,7.81a.79.79,0,0,0,.6.29h16.55a.77.77,0,0,0,.6-1.24l-14.31-18.05a.77.77,0,0,1,0-.95l14.32-18.05a.77.77,0,0,0-.6-1.24h-16.56a.79.79,0,0,0-.6.29l-6.19,7.81Z"
|
||||
/><path
|
||||
class="cls-16"
|
||||
d="M1177.94,1077.65a.77.77,0,0,0,0,.95l8.87,11.19,6.19,7.81a.79.79,0,0,0,.6.29h16.55a.77.77,0,0,0,.6-1.24l-14.31-18.05a.77.77,0,0,1,0-.95l14.32-18.05a.77.77,0,0,0-.6-1.24H1193.6a.79.79,0,0,0-.6.29l-6.19,7.81Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M944.82,608.91V582.67h3.47v23.14h12.92v3.1Z"
|
||||
/><path class="cls-10" d="M965.94,608.91V582.67h3.47v26.24Z" /><path
|
||||
class="cls-10"
|
||||
d="M975.39,608.91V582.67h3.47v23.14h12.93v3.1Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1000.6,608.91V597.79l-10.12-15.12h4.23l5.17,7.91q1.43,2.22,2.67,4.44c.78-1.37,1.74-2.92,2.86-4.64l5.08-7.71h4l-10.47,15.12v11.12Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1029.93,598.62v-3.08l11.12,0v9.74a19.85,19.85,0,0,1-5.28,3.07,15.79,15.79,0,0,1-5.58,1,14.85,14.85,0,0,1-7-1.66,10.88,10.88,0,0,1-4.77-4.79,15,15,0,0,1-1.61-7,16.24,16.24,0,0,1,1.6-7.15,10.63,10.63,0,0,1,4.61-4.93,14.47,14.47,0,0,1,6.93-1.61,13.8,13.8,0,0,1,5.14.92,8.53,8.53,0,0,1,3.61,2.57,11.52,11.52,0,0,1,2,4.3l-3.14.86a9.81,9.81,0,0,0-1.46-3.16,6.07,6.07,0,0,0-2.51-1.83,9.2,9.2,0,0,0-3.62-.69,10.48,10.48,0,0,0-4.11.73,7.58,7.58,0,0,0-2.8,1.9,9.12,9.12,0,0,0-1.66,2.6,13.68,13.68,0,0,0-1,5.28,12.86,12.86,0,0,0,1.2,5.87,7.72,7.72,0,0,0,3.52,3.51,11,11,0,0,0,4.91,1.14,11.61,11.61,0,0,0,4.4-.86,11.35,11.35,0,0,0,3.26-1.86v-4.88Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1045.11,596.13q0-6.54,3.51-10.23a11.92,11.92,0,0,1,9.06-3.7,12.53,12.53,0,0,1,6.55,1.74,11.32,11.32,0,0,1,4.45,4.84,15.73,15.73,0,0,1,1.53,7,15.52,15.52,0,0,1-1.61,7.15,11,11,0,0,1-4.56,4.77,13.07,13.07,0,0,1-6.38,1.62,12.42,12.42,0,0,1-6.62-1.79,11.48,11.48,0,0,1-4.42-4.89A14.84,14.84,0,0,1,1045.11,596.13Zm3.58,0a10.54,10.54,0,0,0,2.56,7.48,8.89,8.89,0,0,0,12.85,0q2.54-2.76,2.53-7.82a13.51,13.51,0,0,0-1.08-5.6,8.28,8.28,0,0,0-3.17-3.7,8.57,8.57,0,0,0-4.68-1.32,8.93,8.93,0,0,0-6.35,2.53Q1048.7,590.25,1048.69,596.18Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M990.05,1421.1v-4.57h2a2.75,2.75,0,0,1,.93.12,1,1,0,0,1,.51.44,1.23,1.23,0,0,1,.19.69,1.16,1.16,0,0,1-.31.82,1.62,1.62,0,0,1-1,.42,1.32,1.32,0,0,1,.37.23,2.86,2.86,0,0,1,.5.61l.8,1.24h-.76l-.61-.95c-.18-.27-.32-.48-.44-.63a1.27,1.27,0,0,0-.3-.31,1.13,1.13,0,0,0-.28-.12l-.34,0h-.7v2Zm.6-2.55H992a1.84,1.84,0,0,0,.65-.09.72.72,0,0,0,.36-.27.78.78,0,0,0,.12-.41.68.68,0,0,0-.24-.54,1.07,1.07,0,0,0-.74-.21h-1.45Z"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M991.8,1422.71a3.74,3.74,0,1,1,3.74-3.74A3.74,3.74,0,0,1,991.8,1422.71Zm0-6.94A3.21,3.21,0,1,0,995,1419,3.21,3.21,0,0,0,991.8,1415.77Z"
|
||||
/><polyline
|
||||
class="cls-12"
|
||||
points="1101.56 1065.39 1111.5 1065.39 1123.2 1051.99 1217.31 1051.99 1245.51 1093.92 1286.27 1093.92"
|
||||
/><polyline
|
||||
class="cls-12"
|
||||
points="927.7 1065.39 917.75 1065.39 906.06 1051.99 811.95 1051.99 783.75 1093.92 764.44 1093.92"
|
||||
/><polyline
|
||||
class="cls-12"
|
||||
points="985.94 1365.91 985.94 1373.8 1042.55 1373.8 1042.55 1365.91"
|
||||
/><path
|
||||
class="cls-17"
|
||||
d="M1266.42,1247.22H1252.5a1.86,1.86,0,0,1-1.19-.44l-5.61-4.67a3,3,0,0,1,0-4.67l5.61-4.68a1.85,1.85,0,0,1,1.19-.43h13.92a1.72,1.72,0,0,1,1.71,1.72v11.45A1.72,1.72,0,0,1,1266.42,1247.22Z"
|
||||
/><line
|
||||
class="cls-17"
|
||||
x1="1254.51"
|
||||
y1="1235.71"
|
||||
x2="1262.65"
|
||||
y2="1243.84"
|
||||
/><line
|
||||
class="cls-17"
|
||||
x1="1262.65"
|
||||
y1="1235.71"
|
||||
x2="1254.51"
|
||||
y2="1243.84"
|
||||
/><path
|
||||
class="cls-18"
|
||||
d="M1261.8,1296.61v6.25a7.19,7.19,0,0,1-7.19,7.19h-7.39l2.9-3.14v6.23l-2.9-3.09"
|
||||
/><path
|
||||
class="cls-10"
|
||||
d="M1249.84,1308s.34,3.83,0,3.83a9.67,9.67,0,0,1-2-1.42v-.91Z"
|
||||
/></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 27 KiB |
@@ -1,195 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg
|
||||
id="Layer_1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 206.97 481.72"
|
||||
>
|
||||
<defs><style>
|
||||
.cls-1,
|
||||
.cls-2,
|
||||
.cls-3,
|
||||
.cls-4,
|
||||
.cls-5,
|
||||
.cls-6,
|
||||
.cls-7,
|
||||
.cls-8,
|
||||
.cls-9,
|
||||
.cls-10,
|
||||
.cls-11 {
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.cls-1, .cls-2, .cls-3, .cls-6, .cls-8, .cls-10, .cls-11 {
|
||||
fill: #ccc;
|
||||
}
|
||||
.cls-1, .cls-11 {
|
||||
stroke: #999;
|
||||
stroke-width: 2px;
|
||||
}
|
||||
.cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9, .cls-10 {
|
||||
stroke: #000;
|
||||
}
|
||||
.cls-2, .cls-4, .cls-5 {
|
||||
stroke-width: 1.5px;
|
||||
}
|
||||
.cls-2, .cls-4, .cls-8, .cls-9, .cls-12, .cls-13, .cls-11 {
|
||||
fill-rule: evenodd;
|
||||
}
|
||||
.cls-3, .cls-8 {
|
||||
stroke-width: 1px;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #242424;
|
||||
}
|
||||
.cls-6, .cls-7 {
|
||||
stroke-width: 0.5px;
|
||||
}
|
||||
.cls-7 {
|
||||
fill: #999;
|
||||
}
|
||||
.cls-9 {
|
||||
fill: #fff;
|
||||
stroke-width: 0.75px;
|
||||
}
|
||||
.cls-10 {
|
||||
stroke-width: 0.22px;
|
||||
}
|
||||
.cls-12, .cls-13, .cls-14, .cls-15 {
|
||||
stroke-width: 0px;
|
||||
}
|
||||
.cls-12, .cls-15 {
|
||||
fill: #00afef;
|
||||
}
|
||||
.cls-13, .cls-14 {
|
||||
fill: #b7b7b7;
|
||||
}
|
||||
</style></defs><path
|
||||
class="cls-2"
|
||||
d="M97.84,232.81h91.76c9.14,0,16.62,7.48,16.62,16.62v214.92c0,9.14-7.48,16.62-16.62,16.62H17.37c-9.14,0-16.62-7.48-16.62-16.62v-154.84c0-9.14,7.48-16.62,16.62-16.62h51.48c8.68,0,12.45-2.57,12.45-14.56v-28.98c0-9.14,7.4-16.54,16.54-16.54Z"
|
||||
/><path
|
||||
class="cls-4"
|
||||
d="M135.52,201.13h66.32v21.47c0,.38-.31.69-.69.69h-64.94c-.38,0-.69-.31-.69-.69v-21.47Z"
|
||||
/><polygon
|
||||
class="cls-4"
|
||||
points="201.84 201.13 194.29 182.05 143.47 182.05 135.52 201.13 201.84 201.13"
|
||||
/><polygon
|
||||
class="cls-4"
|
||||
points="168.68 182.05 194.33 182.05 194.33 .75 143.03 .75 143.03 182.05 168.68 182.05"
|
||||
/><path
|
||||
class="cls-4"
|
||||
d="M168.68,19.05c-8.57.07-22.61.49-25.65,2.54,0,0-1.61,6.89,0,11.41,0,0,13.59-1.34,25.65-1.34s25.65,1.34,25.65,1.34c1.61-4.52,0-11.41,0-11.41-3.05-2.04-17.08-2.47-25.65-2.54Z"
|
||||
/><rect
|
||||
class="cls-3"
|
||||
x="7.06"
|
||||
y="305.93"
|
||||
width="193.13"
|
||||
height="171.26"
|
||||
rx="22.77"
|
||||
ry="22.77"
|
||||
/><rect
|
||||
class="cls-6"
|
||||
x="50.31"
|
||||
y="330.36"
|
||||
width="122.74"
|
||||
height="121.76"
|
||||
rx="10.5"
|
||||
ry="10.5"
|
||||
/><path
|
||||
class="cls-7"
|
||||
d="M66.49,335.98h90.38c5.2,0,9.41,4.22,9.41,9.41v91.69c0,5.2-4.22,9.41-9.41,9.41h-90.38c-5.2,0-9.41-4.22-9.41-9.41v-91.69c0-5.2,4.22-9.41,9.41-9.41Z"
|
||||
/><path
|
||||
class="cls-2"
|
||||
d="M96.65,232.86h19.83v-2.85c0-.4-.32-.72-.72-.72h-18.38c-.4,0-.72.32-.72.72v2.85Z"
|
||||
/><rect
|
||||
class="cls-10"
|
||||
x="92.66"
|
||||
y="239.37"
|
||||
width="102.73"
|
||||
height="58.83"
|
||||
rx="2.83"
|
||||
ry="2.83"
|
||||
/><rect
|
||||
class="cls-5"
|
||||
x="99.69"
|
||||
y="245.56"
|
||||
width="88.66"
|
||||
height="46.46"
|
||||
/><path
|
||||
class="cls-2"
|
||||
d="M138.06,232.81h51.53c3.1,0,6,.86,8.49,2.35v-7.04c0-2-1.02-3.78-2.56-4.83h-54.9c-1.54,1.06-2.56,2.83-2.56,4.83v4.69Z"
|
||||
/><path
|
||||
class="cls-2"
|
||||
d="M67.74,292.89H29.51v-2.73c0-1.5,1.23-2.73,2.73-2.73h32.76c1.5,0,2.73,1.23,2.73,2.73v2.73Z"
|
||||
/><path
|
||||
class="cls-11"
|
||||
d="M44.05,329.75c3.68,0,6.68-3,6.68-6.68s-3-6.68-6.68-6.68-6.68,3-6.68,6.68,3,6.68,6.68,6.68Z"
|
||||
/><path
|
||||
class="cls-11"
|
||||
d="M181.27,329.75c3.68,0,6.68-3,6.68-6.68s-3-6.68-6.68-6.68-6.68,3-6.68,6.68,3,6.68,6.68,6.68Z"
|
||||
/><path
|
||||
class="cls-11"
|
||||
d="M44.05,466.27c3.68,0,6.68-3,6.68-6.68s-3-6.68-6.68-6.68-6.68,3-6.68,6.68,3,6.68,6.68,6.68Z"
|
||||
/><circle class="cls-1" cx="181.27" cy="459.59" r="6.68" /><polygon
|
||||
class="cls-12"
|
||||
points="108.38 262.94 108.38 274.8 114.94 274.8 114.94 276.94 105.81 276.94 105.81 262.94 108.38 262.94"
|
||||
/><rect
|
||||
class="cls-15"
|
||||
x="117.34"
|
||||
y="262.94"
|
||||
width="2.57"
|
||||
height="14"
|
||||
/><polygon
|
||||
class="cls-12"
|
||||
points="125.83 262.94 125.83 274.8 132.38 274.8 132.38 276.94 123.25 276.94 123.25 262.94 125.83 262.94"
|
||||
/><polygon
|
||||
class="cls-12"
|
||||
points="137.09 268.97 140.83 262.94 143.67 262.94 138.36 271.3 138.36 276.94 135.79 276.94 135.79 271.3 130.48 262.94 133.33 262.94 137.06 268.97 137.09 268.97"
|
||||
/><path
|
||||
class="cls-12"
|
||||
d="M153.84,271.58h-3.14v-2.14h5.71v7.07c-.21.08-.47.16-.8.24-.33.08-.69.16-1.09.23-.4.07-.81.12-1.24.16-.43.04-.85.06-1.26.06-1.26,0-2.35-.17-3.29-.51-.94-.34-1.72-.82-2.34-1.43-.63-.61-1.09-1.35-1.4-2.19-.31-.85-.46-1.79-.46-2.81,0-.73.08-1.42.25-2.08.16-.66.41-1.27.73-1.83.32-.56.71-1.07,1.16-1.52.45-.45.98-.84,1.56-1.16.58-.32,1.22-.56,1.92-.74.69-.17,1.44-.26,2.23-.26.7,0,1.38.05,2.01.15.63.1,1.15.23,1.56.37v2.16c-.54-.17-1.09-.3-1.65-.38-.55-.09-1.11-.13-1.68-.13-.76,0-1.47.11-2.14.34-.66.23-1.24.56-1.72,1.01-.49.44-.87.99-1.15,1.64-.28.65-.42,1.4-.42,2.25,0,1.65.44,2.9,1.29,3.73.86.83,2.07,1.24,3.64,1.24.29,0,.6-.01.91-.05.31-.03.59-.07.83-.12v-3.28Z"
|
||||
/><path
|
||||
class="cls-12"
|
||||
d="M169.93,269.93c0-.85-.1-1.6-.31-2.24-.21-.64-.5-1.17-.87-1.6-.37-.43-.81-.74-1.31-.95s-1.06-.31-1.67-.31-1.16.1-1.67.31-.95.53-1.31.95c-.37.43-.66.96-.87,1.6-.21.64-.31,1.38-.31,2.24s.1,1.6.31,2.24c.21.64.5,1.17.87,1.59.37.42.81.74,1.31.95.51.21,1.06.32,1.67.32s1.17-.11,1.67-.32c.51-.21.95-.53,1.31-.95.37-.43.66-.95.87-1.59.21-.64.31-1.39.31-2.24h0ZM172.58,269.93c0,1.07-.15,2.05-.45,2.94-.3.89-.75,1.66-1.33,2.3-.58.64-1.3,1.14-2.15,1.5-.85.35-1.81.53-2.89.53s-2.05-.18-2.89-.53c-.85-.36-1.57-.86-2.15-1.5-.58-.64-1.03-1.41-1.33-2.3-.3-.89-.46-1.87-.46-2.94s.15-2.05.46-2.94c.3-.89.75-1.66,1.33-2.3.58-.64,1.3-1.14,2.15-1.5.85-.35,1.81-.53,2.89-.53s2.05.18,2.89.53c.85.36,1.57.86,2.15,1.5.58.64,1.03,1.41,1.33,2.3.3.89.45,1.87.45,2.94Z"
|
||||
/><path
|
||||
class="cls-12"
|
||||
d="M180.07,263.91c0,.22-.06.4-.18.55-.12.15-.3.26-.56.33h0s.93,1.28.93,1.28h-.68l-.84-1.2h-.39v1.2h-.57v-3.1h.94c.16,0,.3,0,.44.03.13.02.25.04.34.08.18.07.32.17.42.31.1.14.15.31.15.52h0ZM179.02,261.32c-.89,0-1.69.36-2.27.94-.58.58-.94,1.39-.94,2.27s.35,1.67.92,2.25l.02.02c.58.58,1.39.94,2.27.94s1.69-.36,2.27-.94c.58-.58.94-1.39.94-2.27s-.36-1.69-.94-2.27c-.58-.58-1.39-.94-2.27-.94h0ZM180.75,262.81c-.44-.44-1.05-.71-1.73-.71s-1.29.27-1.73.71c-.44.44-.71,1.05-.71,1.73s.27,1.27.7,1.71l.02.02c.44.44,1.05.71,1.73.71s1.28-.27,1.73-.71c.44-.44.71-1.05.71-1.73s-.27-1.28-.71-1.73h0ZM178.63,264.41c.13,0,.24,0,.33-.02.09-.01.17-.03.23-.05.11-.04.19-.1.24-.18.04-.07.07-.16.07-.26,0-.08-.02-.16-.05-.22-.03-.06-.09-.11-.18-.15-.05-.03-.12-.04-.2-.05-.08-.01-.18-.02-.3-.02h-.4v.95h.28Z"
|
||||
/><polygon
|
||||
class="cls-13"
|
||||
points="22.89 342.21 42.82 342.21 42.82 344.85 25.23 344.85 25.23 354.65 22.89 354.65 22.89 342.21"
|
||||
/><rect
|
||||
class="cls-14"
|
||||
x="22.89"
|
||||
y="359.51"
|
||||
width="19.94"
|
||||
height="2.65"
|
||||
/><polygon
|
||||
class="cls-13"
|
||||
points="22.89 367.95 42.82 367.95 42.82 370.6 25.23 370.6 25.23 380.4 22.89 380.4 22.89 367.95"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M22.89,388.37h8.45l11.49-7.69v3.17l-6.03,3.94c-1.12.73-2.24,1.42-3.36,2.04,1.04.61,2.21,1.35,3.51,2.2l5.88,3.86v3.08l-11.49-7.96h-8.45v-2.65Z"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M30.71,411.91h2.34v8.44h-7.39c-1.03-1.29-1.81-2.63-2.33-4.01-.52-1.38-.78-2.79-.78-4.24,0-1.96.42-3.74,1.26-5.34.84-1.6,2.05-2.81,3.63-3.62,1.59-.82,3.36-1.23,5.31-1.23s3.75.4,5.43,1.22c1.68.81,2.93,1.98,3.74,3.5.82,1.52,1.23,3.28,1.23,5.26,0,1.44-.23,2.74-.7,3.91-.47,1.16-1.12,2.08-1.95,2.74-.83.66-1.93,1.16-3.27,1.51l-.65-2.38c1.01-.3,1.81-.67,2.39-1.11.58-.45,1.04-1.08,1.39-1.9.35-.82.52-1.74.52-2.74,0-1.2-.19-2.24-.55-3.12-.37-.88-.85-1.58-1.45-2.13-.6-.54-1.26-.96-1.97-1.25-1.24-.51-2.58-.76-4.02-.76-1.78,0-3.27.31-4.47.91-1.2.61-2.09,1.5-2.67,2.67-.58,1.17-.87,2.41-.87,3.72,0,1.14.22,2.26.66,3.34.45,1.09.91,1.91,1.42,2.47h3.74v-5.85Z"
|
||||
/><path
|
||||
class="cls-13"
|
||||
d="M32.59,424.69c3.3,0,5.89.89,7.76,2.67,1.87,1.78,2.8,4.07,2.8,6.88,0,1.84-.44,3.5-1.32,4.98-.88,1.48-2.1,2.6-3.68,3.38-1.57.77-3.35,1.16-5.34,1.16s-3.83-.41-5.42-1.23c-1.6-.82-2.8-1.97-3.62-3.47-.82-1.5-1.23-3.11-1.23-4.84,0-1.88.45-3.55,1.36-5.04.91-1.48,2.14-2.6,3.71-3.36,1.56-.76,3.22-1.14,4.97-1.14h0ZM32.55,427.42c-2.4,0-4.29.65-5.67,1.94-1.38,1.29-2.07,2.91-2.07,4.86s.7,3.62,2.09,4.9c1.39,1.28,3.37,1.92,5.93,1.92,1.62,0,3.03-.27,4.24-.82,1.21-.55,2.14-1.35,2.81-2.4.66-1.06,1-2.24,1-3.56,0-1.87-.64-3.47-1.92-4.82-1.28-1.35-3.42-2.02-6.41-2.02Z"
|
||||
/><path
|
||||
class="cls-8"
|
||||
d="M7.06,338.45h-1.67c-.92,0-1.67.75-1.67,1.67v11.46c0,.92.75,1.67,1.67,1.67h1.67v-14.79Z"
|
||||
/><path
|
||||
class="cls-8"
|
||||
d="M7.06,438.01h-1.67c-.92,0-1.67.75-1.67,1.67v11.46c0,.92.75,1.67,1.67,1.67h1.67v-14.79Z"
|
||||
/><path
|
||||
class="cls-8"
|
||||
d="M200.2,338.45h1.67c.92,0,1.67.75,1.67,1.67v11.46c0,.92-.75,1.67-1.67,1.67h-1.67v-14.79Z"
|
||||
/><path
|
||||
class="cls-8"
|
||||
d="M200.2,438.01h1.67c.92,0,1.67.75,1.67,1.67v11.46c0,.92-.75,1.67-1.67,1.67h-1.67v-14.79Z"
|
||||
/><path
|
||||
class="cls-9"
|
||||
d="M181.07,394.74c1.93,0,3.51-1.57,3.51-3.51s-1.57-3.51-3.51-3.51-3.51,1.57-3.51,3.51,1.57,3.51,3.51,3.51Z"
|
||||
/><path
|
||||
class="cls-9"
|
||||
d="M190.07,394.74c1.93,0,3.51-1.57,3.51-3.51s-1.57-3.51-3.51-3.51-3.51,1.57-3.51,3.51,1.57,3.51,3.51,3.51Z"
|
||||
/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.8 KiB |
@@ -1,126 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="733.42 451.82 573.87 931.48">
|
||||
<defs><style>
|
||||
.cls-1 {
|
||||
fill: #8e8d8e;
|
||||
}
|
||||
.cls-2 {
|
||||
fill: #383839;
|
||||
}
|
||||
.cls-3 {
|
||||
fill: #cccccb;
|
||||
}
|
||||
.cls-4 {
|
||||
fill: #222226;
|
||||
}
|
||||
.cls-5, .cls-6 {
|
||||
fill: none;
|
||||
stroke: #050606;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
.cls-5 {
|
||||
stroke-width: 1.87px;
|
||||
}
|
||||
.cls-6 {
|
||||
stroke-width: 3.77px;
|
||||
}
|
||||
.cls-7 {
|
||||
fill: #4c4c4d;
|
||||
}
|
||||
</style></defs><g id="Layer_4" data-name="Layer 4"><path
|
||||
class="cls-1"
|
||||
d="M1277.27,847.59h4.35a8.09,8.09,0,0,1,8.09,8.08v138a8.09,8.09,0,0,1-8.09,8.09h-4.35"
|
||||
></path><path
|
||||
class="cls-1"
|
||||
d="M1277.27,732.73h18a10.14,10.14,0,0,1,10.14,10.14v43A10.14,10.14,0,0,1,1295.26,796h-18a0,0,0,0,1,0,0V732.73A0,0,0,0,1,1277.27,732.73Z"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M1256.49,1200.6h0a14.19,14.19,0,0,1-2.83,12.5c-8.13,9.86-19.94,18.58-46,30.75-19.15,9-28.65,16-38.35,29.6a93.15,93.15,0,0,0-8.7,14.61c-6.95,15.17-11.77,44.44-11.77,65.66v3.61a24.09,24.09,0,0,1-24.1,24.09H887.83a24.09,24.09,0,0,1-24.1-24.09v-3.61c0-21.22-4.82-50.49-11.77-65.66a93.15,93.15,0,0,0-8.7-14.61c-9.7-13.63-19.2-20.65-38.35-29.6-26.06-12.17-37.87-20.89-46-30.75a14.22,14.22,0,0,1-2.82-12.5h0"
|
||||
></path><path
|
||||
class="cls-2"
|
||||
d="M756.09,634.53h0a14.19,14.19,0,0,1,2.83-12.5c8.12-9.86,19.93-18.58,46-30.75,19.15-8.95,28.65-16,38.35-29.6a93.15,93.15,0,0,0,8.7-14.61c6.95-15.17,11.77-44.44,11.77-65.66V477.8a24.09,24.09,0,0,1,24.1-24.09h236.92a24.09,24.09,0,0,1,24.1,24.09v3.61c0,21.22,4.82,50.49,11.77,65.66a93.15,93.15,0,0,0,8.7,14.61c9.7,13.63,19.2,20.65,38.35,29.6,26,12.17,37.86,20.89,46,30.75a14.19,14.19,0,0,1,2.83,12.5h0"
|
||||
></path><rect
|
||||
class="cls-3"
|
||||
x="735.31"
|
||||
y="598.25"
|
||||
width="541.96"
|
||||
height="638.99"
|
||||
rx="96.44"
|
||||
></rect><path
|
||||
class="cls-2"
|
||||
d="M1247.38,694.68v446.11a66.63,66.63,0,0,1-66.54,66.56H831.75a66.62,66.62,0,0,1-66.56-66.56V694.68a66.63,66.63,0,0,1,66.56-66.55h349.09A66.64,66.64,0,0,1,1247.38,694.68Z"
|
||||
></path><rect
|
||||
class="cls-4"
|
||||
x="817.71"
|
||||
y="721.76"
|
||||
width="379.03"
|
||||
height="388.6"
|
||||
></rect><path
|
||||
class="cls-5"
|
||||
d="M1247.38,694.68v446.11a66.63,66.63,0,0,1-66.54,66.56H831.75a66.62,66.62,0,0,1-66.56-66.56V694.68a66.63,66.63,0,0,1,66.56-66.55h349.09A66.64,66.64,0,0,1,1247.38,694.68Z"
|
||||
></path><rect
|
||||
class="cls-6"
|
||||
x="735.31"
|
||||
y="598.25"
|
||||
width="541.96"
|
||||
height="638.99"
|
||||
rx="96.44"
|
||||
></rect><path
|
||||
class="cls-6"
|
||||
d="M1256.49,1200.6h0a14.19,14.19,0,0,1-2.83,12.5c-8.13,9.86-19.94,18.58-46,30.75-19.15,9-28.65,16-38.35,29.6a93.15,93.15,0,0,0-8.7,14.61c-6.95,15.17-11.77,44.44-11.77,65.66v3.61a24.09,24.09,0,0,1-24.1,24.09H887.83a24.09,24.09,0,0,1-24.1-24.09v-3.61c0-21.22-4.82-50.49-11.77-65.66a93.15,93.15,0,0,0-8.7-14.61c-9.7-13.63-19.2-20.65-38.35-29.6-26.06-12.17-37.87-20.89-46-30.75a14.22,14.22,0,0,1-2.82-12.5h0"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M756.09,634.53h0a14.19,14.19,0,0,1,2.83-12.5c8.12-9.86,19.93-18.58,46-30.75,19.15-8.95,28.65-16,38.35-29.6a93.15,93.15,0,0,0,8.7-14.61c6.95-15.17,11.77-44.44,11.77-65.66V477.8a24.09,24.09,0,0,1,24.1-24.09h236.92a24.09,24.09,0,0,1,24.1,24.09v3.61c0,21.22,4.82,50.49,11.77,65.66a93.15,93.15,0,0,0,8.7,14.61c9.7,13.63,19.2,20.65,38.35,29.6,26,12.17,37.86,20.89,46,30.75a14.19,14.19,0,0,1,2.83,12.5h0"
|
||||
></path><rect
|
||||
class="cls-5"
|
||||
x="817.71"
|
||||
y="721.76"
|
||||
width="379.03"
|
||||
height="388.6"
|
||||
></rect><path
|
||||
class="cls-6"
|
||||
d="M1277.27,847.59h4.35a8.09,8.09,0,0,1,8.09,8.08v138a8.09,8.09,0,0,1-8.09,8.09h-4.35"
|
||||
></path><path
|
||||
class="cls-6"
|
||||
d="M1277.27,732.73h18a10.14,10.14,0,0,1,10.14,10.14v43A10.14,10.14,0,0,1,1295.26,796h-18a0,0,0,0,1,0,0V732.73A0,0,0,0,1,1277.27,732.73Z"
|
||||
></path><circle
|
||||
class="cls-7"
|
||||
cx="1083.08"
|
||||
cy="1177.35"
|
||||
r="16.6"
|
||||
></circle><rect
|
||||
class="cls-2"
|
||||
x="1280.24"
|
||||
y="739.77"
|
||||
width="16.77"
|
||||
height="4.59"
|
||||
rx="2.29"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1280.24"
|
||||
y="750.91"
|
||||
width="16.77"
|
||||
height="4.59"
|
||||
rx="2.29"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1280.24"
|
||||
y="762.06"
|
||||
width="16.77"
|
||||
height="4.59"
|
||||
rx="2.29"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1280.24"
|
||||
y="773.2"
|
||||
width="16.77"
|
||||
height="4.59"
|
||||
rx="2.29"
|
||||
></rect><rect
|
||||
class="cls-2"
|
||||
x="1280.24"
|
||||
y="784.34"
|
||||
width="16.77"
|
||||
height="4.59"
|
||||
rx="2.29"
|
||||
></rect></g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 131 KiB |