mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Merge origin/2.7.10 into firmware-updates - resolve conflicts (CarPlay, onboarding, map cache, DM crash fix)
Co-authored-by: garthvh <1795163+garthvh@users.noreply.github.com>
This commit is contained in:
commit
7718132c6f
49 changed files with 6415 additions and 427 deletions
|
|
@ -229,6 +229,22 @@
|
|||
"comment": "A button that initiates",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"\"Disconnect Meshtastic\" — disconnect from the connected BLE node.": {
|
||||
"comment": "A description of how to use the \"Disconnect Node\" Siri shortcut.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"\"Send a Meshtastic direct message\" — send a private message to a node.": {
|
||||
"comment": "A description of how to send a direct message to a node using Siri.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"\"Send a Meshtastic group message\" — send a message to a mesh channel.": {
|
||||
"comment": "A description of how to send a group message using Siri.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"\"Shut down my Meshtastic node\" or \"Restart my Meshtastic node\".": {
|
||||
"comment": "A description of how to use Siri to restart or shut down a node.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"%@": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -4031,7 +4047,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Additional Help": {
|
||||
"comment": "A button that opens a link to the Meshtastic FAQ.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Additional help": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -7105,6 +7126,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Background Activity": {
|
||||
"comment": "A title for a screen that describes the benefits of enabling background location tracking.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Background Mesh Tracking": {
|
||||
"comment": "A description of the background mesh tracking feature.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Backup": {
|
||||
"localizations": {
|
||||
"ja": {
|
||||
|
|
@ -7814,6 +7843,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Battery Usage": {
|
||||
"comment": "A description of the battery usage of enabling background activity.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Baud": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -9450,6 +9483,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"CarPlay Messaging": {
|
||||
"comment": "A description of how to send a message to a mesh channel using CarPlay.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Carousel Interval": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -12060,7 +12097,6 @@
|
|||
}
|
||||
},
|
||||
"Community Support": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -12407,6 +12443,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Configure Siri & Shortcuts": {
|
||||
"comment": "A button that will open the app's settings to configure Siri and Shortcuts.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Configure notification permissions": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
|
|
@ -12641,6 +12681,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Connect to nodes on your local Wi-Fi network.": {
|
||||
"comment": "A description of how to connect to nodes on your local Wi-Fi network.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Connect to your Meshtastic node via Bluetooth Low Energy for the best messaging experience.": {
|
||||
"comment": "A description of the Bluetooth connectivity feature.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Connected": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -12815,6 +12863,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Connected firmware: **%@**": {
|
||||
"comment": "A label displaying the firmware version of a device. The argument is the firmware version.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Connecting . .": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -13001,6 +13053,64 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Connection Attempt %lld of 10": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Tilslutningsforsøg %lld af 10"
|
||||
}
|
||||
},
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Verbindungsversuch %lld von 10"
|
||||
}
|
||||
},
|
||||
"es": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Intento de conexión %lld de 10"
|
||||
}
|
||||
},
|
||||
"it": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Tentativo di connessione %lld di 10"
|
||||
}
|
||||
},
|
||||
"ja": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "接続試行 %lld / 10"
|
||||
}
|
||||
},
|
||||
"ru": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Количество попыток подключения, %lld из 10"
|
||||
}
|
||||
},
|
||||
"sr": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Покушај повезивања %lld од 10"
|
||||
}
|
||||
},
|
||||
"zh-Hans": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "连接尝试 %lld,共 10 次"
|
||||
}
|
||||
},
|
||||
"zh-Hant-TW": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "嘗試連接 %lld / 10"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Connection Name": {
|
||||
"localizations": {
|
||||
"es": {
|
||||
|
|
@ -13209,6 +13319,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Continue": {
|
||||
"comment": "A button that will continue to the next step in the onboarding process.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Continuous Location Updates": {
|
||||
"comment": "A description of the continuous location updates feature.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Control Type": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -13926,7 +14044,6 @@
|
|||
},
|
||||
"Current Firmware Version": {},
|
||||
"Current Firmware Version: %@": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -14043,6 +14160,16 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Current Firmware Version: %@, Minimum Required Version: %@": {
|
||||
"localizations": {
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "new",
|
||||
"value": "Current Firmware Version: %1$@, Minimum Required Version: %2$@"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Current: %lld": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -14096,7 +14223,6 @@
|
|||
}
|
||||
},
|
||||
"Currently the recommended way to update ESP32 devices is using the web flasher on a desktop computer from a chrome based browser. It does not work on mobile devices or over BLE.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -18194,7 +18320,6 @@
|
|||
},
|
||||
"Download TAK Server Data Package": {},
|
||||
"Drag & Drop Firmware Update": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -18247,7 +18372,6 @@
|
|||
}
|
||||
},
|
||||
"Drag & Drop Firmware Update Documentation": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -18300,7 +18424,6 @@
|
|||
}
|
||||
},
|
||||
"Drag & Drop is the recommended way to update firmware for NRF devices. If your iPhone or iPad is USB-C it will work with your regular USB-C charging cable, for lightning devices you need the Apple Lightning to USB camera adaptor.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -18458,7 +18581,6 @@
|
|||
}
|
||||
},
|
||||
"ESP 32 OTA update is a work in progress, click the button below to send your device a reboot into ota admin message.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -18515,7 +18637,6 @@
|
|||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"ESP32 Device Firmware Update": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -18958,6 +19079,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Enable Background Activity": {
|
||||
"comment": "A toggle to enable or disable background activity.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Enable Location Sharing": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
|
|
@ -19558,6 +19683,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Enabling background activity may increase battery usage. You can toggle this at any time in the app settings.": {
|
||||
"comment": "A description of the battery usage of enabling background activity.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Encoder Press Event": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -19786,7 +19915,6 @@
|
|||
}
|
||||
},
|
||||
"Enter DFU Mode": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -22107,6 +22235,14 @@
|
|||
"comment": "A section header that lists available firmware releases.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Firmware Update Docs": {
|
||||
"comment": "A link to the firmware update documentation.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Firmware Update Required": {
|
||||
"comment": "A title for a screen that displays a firmware update is required message.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Firmware Updates": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -22252,6 +22388,7 @@
|
|||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Firmware update docs": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -23724,7 +23861,6 @@
|
|||
}
|
||||
},
|
||||
"Full Support": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -24320,7 +24456,6 @@
|
|||
}
|
||||
},
|
||||
"Get NRF DFU from the App Store": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -24505,7 +24640,6 @@
|
|||
}
|
||||
},
|
||||
"Get the latest stable firmware": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -26192,8 +26326,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"How to Update": {
|
||||
"comment": "A label displayed above the list of available firmware update options.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"How to update Firmware": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -26893,7 +27030,6 @@
|
|||
}
|
||||
},
|
||||
"If it is hard to access your device's reset button enter DFU mode here.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -28101,6 +28237,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Keep the mesh map updated and send your position to the mesh even while using other apps.": {
|
||||
"comment": "A description of the benefits of continuous location updates.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Key": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -31760,7 +31900,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Meshtastic does not collect any personal information. We do anonymously collect usage and crash data to improve the app.": {
|
||||
"comment": "A description of how user data is used by Meshtastic.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Meshtastic does not collect any personal information. We do anonymously collect usage and crash data to improve the app. You can opt out under app settings.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"es": {
|
||||
"stringUnit": {
|
||||
|
|
@ -31984,6 +32129,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Message Notifications": {
|
||||
"comment": "A description of the message notifications feature.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Message Size": {
|
||||
"comment": "VoiceOver label for message size",
|
||||
"localizations": {
|
||||
|
|
@ -32559,6 +32708,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Minimum required: **%@**": {
|
||||
"comment": "A label displaying the minimum required firmware version.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Minimum time between detection broadcasts": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
|
|
@ -34109,7 +34262,6 @@
|
|||
}
|
||||
},
|
||||
"Newer firmware is available": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -36415,7 +36567,6 @@
|
|||
}
|
||||
},
|
||||
"OTA Updates are not supported on this NRF Device.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -36468,7 +36619,6 @@
|
|||
}
|
||||
},
|
||||
"OTA Updates are not supported on your platform.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -37193,7 +37343,7 @@
|
|||
}
|
||||
},
|
||||
"Open Web Flasher": {
|
||||
"comment": "A link label that says \"Open Web Flasher\" and has an arrow icon pointing to it.",
|
||||
"comment": "A button that opens the Web Flasher app.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Optimized for 2 color displays": {
|
||||
|
|
@ -42276,6 +42426,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Read and reply to Meshtastic channel and direct messages directly from your car's display using CarPlay.": {
|
||||
"comment": "A description of how to use CarPlay with Meshtastic.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Read-Only Mode": {
|
||||
"comment": "A toggle that allows the user to enable or disable read-only mode for the TAK server.",
|
||||
"isCommentAutoGenerated": true
|
||||
|
|
@ -42587,6 +42741,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Receive notifications for incoming messages and critical alerts even when the app is in the background.": {
|
||||
"comment": "A description of the notification feature.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Receive position updates from other nodes and maintain an accurate picture of the mesh while in the background.": {
|
||||
"comment": "A description of the benefits of enabling background mesh tracking.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Received Ack": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
|
|
@ -42856,6 +43018,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Recommended secure version: **%@**": {
|
||||
"comment": "A label displaying the recommended secure version of the connected device.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Recording route": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -46863,6 +47029,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Security Advisory": {
|
||||
"comment": "A title for a security advisory displayed in a card.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Security Config": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -46979,6 +47149,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Security Update Recommended": {
|
||||
"comment": "A title for a view that warns the user that their device is running an outdated firmware version.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Select": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
|
|
@ -47797,7 +47971,6 @@
|
|||
}
|
||||
},
|
||||
"Send Reboot OTA": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -48205,6 +48378,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Send and receive Meshtastic messages hands-free using Siri and CarPlay.": {
|
||||
"comment": "A description of how to use Siri and CarPlay with Meshtastic.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Sender Interval": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
|
|
@ -50960,6 +51137,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Shut Down / Restart Node": {
|
||||
"comment": "A Siri shortcut to restart or shut down a node.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Shut Down Node?": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -51316,6 +51497,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Siri & CarPlay": {
|
||||
"comment": "A description of how to use Siri and CarPlay with Meshtastic.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Siri, Shortcuts & CarPlay": {
|
||||
"comment": "A label displayed above the Siri, Shortcuts & CarPlay onboarding view.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Six Hours": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
|
|
@ -53867,7 +54056,12 @@
|
|||
"comment": "A footnote explaining that the Web Flasher does not support updating on this device or over USB or BLE.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"The Meshtastic Apple app requires firmware version %@ or later. Older firmware versions are no longer supported and may have compatibility issues or missing features.": {
|
||||
"comment": "A body text that explains that the app requires a certain version of the firmware.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"The Meshtastic Apple apps support firmware version %@ and above.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -60229,6 +60423,7 @@
|
|||
}
|
||||
},
|
||||
"Version %@ includes substantial network optimizations and extensive changes to devices and client apps. Only nodes version %@ and above are supported.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -61214,7 +61409,6 @@
|
|||
}
|
||||
},
|
||||
"Web Flasher": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -61359,6 +61553,7 @@
|
|||
}
|
||||
},
|
||||
"Welcome to": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
|
|
@ -61386,6 +61581,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Welcome to Meshtastic": {
|
||||
"comment": "The title of the onboarding screen.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"What does the lock mean?": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -62354,7 +62553,6 @@
|
|||
}
|
||||
},
|
||||
"You can also update your Meshtastic device over bluetooth using the Nordic DFU app.": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -62493,7 +62691,6 @@
|
|||
}
|
||||
},
|
||||
"Your Firmware is up to date": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
@ -62601,6 +62798,10 @@
|
|||
"comment": "A message displayed when a user successfully configures their primary channel for TAK. It instructs the user to share the QR code to invite TAK buddies.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Your connected device is running firmware older than **%@**, which contains known security vulnerabilities. Updating your firmware is strongly recommended to protect your device and mesh network.": {
|
||||
"comment": "A body text that describes the security advisory.",
|
||||
"isCommentAutoGenerated": true
|
||||
},
|
||||
"Your current location will be set as the fixed position and broadcast over the mesh on the position interval.": {
|
||||
"localizations": {
|
||||
"da": {
|
||||
|
|
@ -63284,6 +63485,7 @@
|
|||
}
|
||||
},
|
||||
"🦕 End of life Version 🦖 ☄️": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"da": {
|
||||
"stringUnit": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue