# Tryton Release 7.0

**URL:** https://discuss.tryton.org/t/tryton-release-7-0/6634
**Category:** News
**Created:** [October 31, 2023, 9:00am UTC](https://discuss.tryton.org/t/tryton-release-7-0/6634 "2023-10-31T09:00:25Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![udono](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/udono/32/2114_2.png) [@udono](https://discuss.tryton.org/u/udono)
#### Post date: [October 31, 2023, 9:00am UTC](https://discuss.tryton.org/t/tryton-release-7-0/6634/1 "2023-10-31T09:00:25Z")

</div>

![Woman in black costume holding a basket of pumpkins](https://discuss-cdn.tryton.org/uploads/default/original/2X/8/8266855071bbddf394b95f4db4be48ac6088bf2f.jpeg "Photo: Pexels, Monstera Production")

We are proud to announce the 7.0 [Long Term Support](https://discuss.tryton.org/t/release-process/395) release of Tryton which will remain supported until November 2028. As usual migration from previous series is fully supported. The [Migration Category](https://discuss.tryton.org/c/migration) lists any manual operations that may be required during the migration process.

While developing the 7.0 release we [fixed various bugs](https://foss.heptapod.net/tryton/tryton/-/merge_requests?scope=all&state=merged&label_name%5B%5D=type%3A%3Acrash) and [incorrect behaviour](https://foss.heptapod.net/tryton/tryton/-/merge_requests?scope=all&state=merged&label_name%5B%5D=type%3A%3Abehavior), sped-up [performance issues](https://foss.heptapod.net/tryton/tryton/-/merge_requests?scope=all&state=merged&label_name%5B%5D=type%3A%3Aperformance) and [added many new features](https://foss.heptapod.net/tryton/tryton/-/merge_requests?scope=all&state=merged&label_name%5B%5D=type%3A%3Afeature) some in form of new modules.

During this time we also released bug fixes for the maintained series - [5.0](https://foss.heptapod.net/tryton/tryton/-/commits/branch/5.0), [6.0](https://foss.heptapod.net/tryton/tryton/-/commits/branch/6.0), [6.6](https://foss.heptapod.net/tryton/tryton/-/commits/branch/6.6) and [6.8](https://foss.heptapod.net/tryton/tryton/-/commits/branch/6.8). But now with the 7.0 release, we’ll be merging the last of the changes to the [6.6](https://foss.heptapod.net/tryton/tryton/-/commits/branch/6.6) series and closing it afterwards. Then series 6.6 will no longer be maintained by the Tryton project.

## Changes for the User

### New Modules
Our modules collection is growing up to 204 functional modules:
- The _[Document Incoming Module Series](https://docs.tryton.org/projects/modules-document-incoming/en/latest/)_ collects and processes incoming documents like invoices. It is also able to utilize OCR services like _typeless_.
- The _[Inbound Email Module](https://docs.tryton.org/projects/modules-inbound-email/en/latest/)_ defines rules to apply to inbound emails.
- The _[Product Price List Cache Module](https://docs.tryton.org/projects/modules-product-price-list-cache/en/latest/)_ can be used to pre-compute the prices for each product and price list. This improves the performance of price lists with a large number of lines.

Video: Screencast of the brand new document incoming module series.

### Sales, Purchase and Project

Tryton now warns the user when [receiving more quantity of a product than ordered](https://foss.heptapod.net/tryton/tryton/-/issues/12521). This should avoid mistakes like putting or forgetting the decimal delimiter or typos. The same applies to receiving returned products sold.

Now the [price is only required on purchase confirmation](https://foss.heptapod.net/tryton/tryton/-/issues/12498). This way users can send requests for quotation without prices and when receiving a quotation, they edit the draft purchase to set the received prices.

With the use of the `account_stock_landed_cost` module Tryton now [uses the _price of the last purchase from the same supplier_ as _product price_](https://foss.heptapod.net/tryton/tryton/-/issues/12494). With this module activated, the _cost price_ of a product is no longer the best guess for the price of a new purchase. Also the _cost price_ of a product is not really relevant as price for new purchases, because it may include extra costs like the landed cost.

For [purchases and sales we’ve added actions to trigger the creation of draft documents](https://foss.heptapod.net/tryton/tryton/-/issues/12412) to make following-up manual invoice and shipment methods easier for the users. As the user may need to manually create those documents anyway, we provide an action that creates those documents as if the method _On Order_ had been used.

The [sale and purchase amendment fields are now displayed when an order transitions into the _processing_ state](https://foss.heptapod.net/tryton/tryton/-/merge_requests/583), to allow the creation of amendments directly.

 ![2023-06-27-100511_899x768_scrot](https://discuss-cdn.tryton.org/uploads/default/original/2X/b/bf123ec0c26ae6c04a59cdd6470d6277a3115f3c.png)

Depending on the complexity of an order, users sometimes wanted to have a [different delay for the state change to processing for sales and purchases, which is now possible.](https://foss.heptapod.net/tryton/tryton/-/merge_requests/455)

> **Read More…**
>
> On [purchase requests we’ve added new domains to filter for quoted and received records](https://foss.heptapod.net/tryton/tryton/-/merge_requests/599).
> 
> Tryton now [uses the shipping date instead of sale date to check the stock quantities](https://foss.heptapod.net/tryton/tryton/-/issues/12388) used by the planned quantity and stock forecast.
> 
> In the _stock\_package\*_ modules we [renamed the _code_ field to _number_.](https://foss.heptapod.net/tryton/tryton/-/issues/1479)
> 
> In the sale product view [we now show the sum of product quantities of the stock in all selected warehouses](https://foss.heptapod.net/tryton/tryton/-/merge_requests/630).
> 
> The invoiced amount of a project work is calculated with the quantity from timesheet lines or the invoiced progress of the involved works. [It is now required, that the quantity of the invoice line is equal to the quantity on the project works](https://foss.heptapod.net/tryton/tryton/-/merge_requests/516) and it is no longer possible to change the quantity of an invoiced project.

### Accounting, Invoicing and Payment

On account moves Tryton now [displays the description of the _origin_-field when no other description is filled](https://foss.heptapod.net/tryton/tryton/-/issues/12571). Usually we let the user relay on the origin record name to understand the ledger. But it is not always enough, the origin may have a description content which could be useful for the accountant.

Tryton now [warns when a move line with payment is going to be _cancelled, grouped, rescheduled or delegated_](https://foss.heptapod.net/tryton/tryton/-/commit/55ec756bb83c703b7616a25ec5b18dac405c3afb). And vice versa now Tryton warns when a [payment with reconciled line is going to be _submitted, approved or proceeded_](https://foss.heptapod.net/tryton/tryton/-/commit/028f9a6b3bfd977b6fa83bc4147184997a19e88d).

Now we allow an _account admin_ user to [print a posted or paid invoice to refresh data without using the cached invoice document](https://foss.heptapod.net/tryton/tryton/-/issues/12091). This way, some data (like layout, addresses, etc.) can be updated on the invoice report. The previous printed report revisions are stored in an invoice cache.

The account [moves generated from currency exchange values are now automatically posted](https://foss.heptapod.net/tryton/tryton/-/issues/12439) by the system. This prevents the need to handle forgotten unposted currency exchange moves and avoids having to deal with them manually.

To correctly consider payable and receivable lines, we [also post cancelled, grouped, rescheduled and delegated accounting moves when an origin accounting move is posted](https://foss.heptapod.net/tryton/tryton/-/merge_requests/581).

The [supplier invoice’s reference can now be changed in non draft states](https://foss.heptapod.net/tryton/tryton/-/merge_requests/554).

 ![2023-06-27-100853_904x710_scrot](https://discuss-cdn.tryton.org/uploads/default/original/2X/c/ce3cfc66357ebaadf0ea99f77847e78bf18848eb.png)

When deferring an invoice with an analytic setup [the analytic account is now also deferred](https://foss.heptapod.net/tryton/tryton/-/merge_requests/556).

Tryton now [asks for a date when creating an account move from a template](https://foss.heptapod.net/tryton/tryton/-/merge_requests/398).

We now [show the reconciliation lines of an invoice that is in a _cancelled_ state](https://foss.heptapod.net/tryton/tryton/-/merge_requests/537), because when it is _refunded_ with a _credit note_, it is cancelled instead of paid.

As it is very useful to get the total of waiting balances, we [added the sum to the aged balance terms and balance.](https://foss.heptapod.net/tryton/tryton/-/merge_requests/425)

 ![Screenshot of aged balance with total sums](https://discuss-cdn.tryton.org/uploads/default/original/2X/2/20f8ac7d21d1f71ed51f257cbd8c1af907c09d43.png)

In the `project_invoice` module we now [show the invoice line field on the time sheet line form](https://foss.heptapod.net/tryton/tryton/-/merge_requests/436). This is useful to get an understanding of the invoiced hours. The field is not shown if the user doesn’t have read access to invoice lines.

To have a clearer picture of the debts of a company, we’ve [added receivables and payables to it](https://foss.heptapod.net/tryton/tryton/-/merge_requests/426).

 ![Screenshot of receivables and payables in company](https://discuss-cdn.tryton.org/uploads/default/original/2X/3/3f38a8475dc68a63173a6988f6271daff34ac387.png)

Invoice lines now have [pay, block and unblock payment buttons](https://foss.heptapod.net/tryton/tryton/-/merge_requests/423) to be able to directly create payments from within the invoice form.

> **Read More…**
>
> Now Tryton sets the [employee who _validates_ or _posts_ an invoice.](https://foss.heptapod.net/tryton/tryton/-/issues/9678)
> 
> In Tryton you are now able to [collect and process checks](https://foss.heptapod.net/tryton/tryton/-/merge_requests/696) using the `account_payment` module.
> 
> Tryton now includes the new [PISTE API for france](https://foss.heptapod.net/tryton/tryton/-/issues/9009), which is based on Oauth 2.0.
> 
> A [selection widget is now used for the journal](https://foss.heptapod.net/tryton/tryton/-/merge_requests/698) field. This prevents the creation of journals directly from documents and makes it simpler for users to select them.
> 
> For consistency Tryton now [no longer considers the party field](https://foss.heptapod.net/tryton/tryton/-/merge_requests/300) when searching in the invoice record name.

### Stock, Production, Quality and Shipment

We defined [a new menu entry _Inventory & Stock / Warehouses_](https://foss.heptapod.net/tryton/tryton/-/issues/12608) which opens a view to list all warehouses to get the knowledge of product quantities for selected warehouses.

The [shipment state is now printed on several stock reports](https://foss.heptapod.net/tryton/tryton/-/issues/12501) and [warehouse country is printed on the delivery note](https://foss.heptapod.net/tryton/tryton/-/issues/5224)

Now we check [all quantities in shipments for products and lots](https://foss.heptapod.net/tryton/tryton/-/issues/4545).

Tryton now [displays the delay for stock moves and shipments](https://foss.heptapod.net/tryton/tryton/-/merge_requests/584). It stores the original planned date from the sale and purchase. As moves and shipments are rescheduled by a cron task, Tryton now computes the delay with the actual planned date or the effective date. This provides a visual hint about the delay and can be used as a trigger for delay-notifications.

We now [reschedule and update the _planned date_ for late productions](https://foss.heptapod.net/tryton/tryton/-/merge_requests/186) and allow it to be changed while running the production. This avoids generating new production requests if there is already one running.

On production works [we now store the employee who set a cycle](https://foss.heptapod.net/tryton/tryton/-/merge_requests/515) to _running_, _done_ or _cancelled_.

We’ve [updated the UPS shipping to use the new OAuth 2.0](https://foss.heptapod.net/tryton/tryton/-/merge_requests/561) security model for all APIs.  
The existing [access-key-based authorisation is now deprecated](https://developer.ups.com/oauth-developer-guide) by UPS.

> **Read More…**
>
> You can now [deactivate a quality control](https://foss.heptapod.net/tryton/tryton/-/merge_requests/662) if it is no longer needed, if, for example, the product is discontinued.
> 
> We now [store the actual product _cost price_ on the stock move](https://foss.heptapod.net/tryton/tryton/-/merge_requests/588). It is used when the cost price of the move isn’t the same as the cost price of the product. The product cost price is filled in for outgoing stock moves and used to preserve the cost history.
> 
> The [shipments now support locations of type _view_ as a storage location in their warehouses](https://foss.heptapod.net/tryton/tryton/-/merge_requests/566).
> 
> We now [display the cost of production works](https://foss.heptapod.net/tryton/tryton/-/merge_requests/500).
> 
> We now also allow [searching for an _inventory_ by _location_](https://foss.heptapod.net/tryton/tryton/-/merge_requests/417). This is useful when the warehouse has a lot of locations.

### User Interface

Following the [Google Materials Icon](https://fonts.google.com/icons) convention we [now distinguish the icons for save and download](https://foss.heptapod.net/tryton/tryton/-/issues/12627). Because _save_ is used to store on the server and _download_ is used to retrieve data from the server and store it locally.

Tryton is now able to [auto-complete values on demand from external sources](https://discuss.tryton.org/t/record-creation-helper/817).

Video: Screencast of the new autocomplete feature showing a party completed with a given VAT Number, only.

Now we use the [grid layout](https://foss.heptapod.net/tryton/tryton/-/commit/e5446fb8d4ce3a2e3ae8caa12e2c49d9dfb614e2?merge_request_iid=502) instead of _table-layout_ to implement the form-container in sao.

Now it is possible to [directly copy the link from the URL-widget, without the need to open it before.](https://foss.heptapod.net/tryton/tryton/-/issues/1340)

The Tryton client does [no longer set automatically the value if only one record was found](https://foss.heptapod.net/tryton/tryton/-/issues/11840). As the search is _fuzzy_ we need to ensure that the user always validates the resulting value by manually selecting it.

User applications that are created from the user’s preferences are [now put directly in the _validated_ state](https://foss.heptapod.net/tryton/tryton/-/issues/12376) to improve the user experience.

We added [several](https://foss.heptapod.net/tryton/tryton/-/merge_requests/755)[new](https://foss.heptapod.net/tryton/tryton/-/merge_requests/548) identifiers in Tryton according to the [`stdnum` release of version 1.19](https://arthurdejong.org/python-stdnum/doc/1.19/changes#changes-from-1-18-to-1-19):

> **Read More…**
>
> - Algerian Tax Number identifier
> - Belgian BIS Number identifier
> - Belgian National Number identifier
> - Egyptian Tax Registration Number identifier
> - European VAT on e-Commerce - One Stop Shop identifier
> - Faroese Tax Number identifier
> - Ghanaian Taxpayer Identification Number identifier
> - Guinean Tax Number identifier
> - Indian VAT number identifier
> - Indian Voter ID identifier
> - Macedonian Tax Number identifier
> - Moroccan Tax Number identifier
> - Pakistani Computerised National Identity Card Number identifier
> - Portuguese Identity Number identifier
> - Slovenian Corporate Registration Number identifier
> - Slovenian Unique Master Citizen Number identifier
> - Thai Memorandum of Association Number identifier
> - Thai Personal Identification Number identifier
> - Thai Taxpayer Identification Number identifier
> - Tunisian Tax Number identifier

The [search offset is now reset when the filter is changed](https://foss.heptapod.net/tryton/tryton/-/merge_requests/585). This is an improvement on the old behaviour because if a user moved to a later page (updating the offset), then changed the filter, it resulted in no records being shown. This was because not enough records were found to show any at that offset. With the new behaviour, the first page of the records will be always shown after the filter is updated.

It is now possible to [copy selected records on the web-client](https://foss.heptapod.net/tryton/tryton/-/issues/12399). A new contextual menu item has been added to mimic the feature which is available on the desktop client using the keyboard shortcut.

 ![image](https://discuss-cdn.tryton.org/uploads/default/original/2X/7/73c204289f4e1a5b92c76249516c76cbc5e1c502.png)

All the [number fields are now first sorted by length](https://foss.heptapod.net/tryton/tryton/-/merge_requests/694). This provides a more _natural_ order for the most common cases where the content is just a number or a number with a prefix.

We now [validate and normalize email addresses and convert them to ASCII](https://foss.heptapod.net/tryton/tryton/-/merge_requests/494) to help avoid user input mistakes.

 ![Screenshot of the error message following a wrong email address](https://discuss-cdn.tryton.org/uploads/default/original/2X/5/5896e7f6b30150dd586d6d2ea65ce912616377a7.png)

In CSV exports with the option selected to _use locale format_, we now [use the local time zone for date-time fields](https://foss.heptapod.net/tryton/tryton/-/merge_requests/471).

### Master Data and Configuration

Now Tryton [displays a preview of sequence to be generated](https://foss.heptapod.net/tryton/tryton/-/issues/12609), because users may have difficulties to realize how the generated sequence will look like when they configure it.

We now [allow the use of the current date as a substitution in the sequence fields _prefix_ and _suffix_, formatted using strftime-format](https://foss.heptapod.net/tryton/tryton/-/merge_requests/104). Instead of prefixing the strftime-format code with `(%)` we use an underscore `(_)`. E.g. the formatting code `${date_Y}` will be replaced by the year of the actual date.

## Changes for the System Administrator

Now [Tryton also supports Python 3.12](https://foss.heptapod.net/tryton/tryton/-/commit/51985fbb90e6e918b5f933fa9106e3c50af418d9).

The account [dunning email logs have been merged](https://foss.heptapod.net/tryton/tryton/-/merge_requests/677) into the general email archives.

The Tryton client [configuration, profiles and plug-ins are now transferred from the previous version to the new version](https://foss.heptapod.net/tryton/tryton/-/issues/11016) on first use of a new client.

Now, when saving a CSV export definition, the [options to export _listed records_ or _selected records_ and to _ignore search limit_ are also saved](https://foss.heptapod.net/tryton/tryton/-/merge_requests/456). Printing an export as a report will also make use of the new saved options.

We removed [migrations prior to 5.0](https://foss.heptapod.net/tryton/tryton/-/merge_requests/188).

## Changes for Implementers and Developers

Now it is possible to specify [a database statement timeout on RPC calls](https://foss.heptapod.net/tryton/tryton/-/issues/11293). It should avoid evaluating huge queries that can take up to some hours and more importantly eat up all the memory and CPU dedicated to the database. Thankfully postgres has an option available on the sessions: [`statement_timeout`](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-STATEMENT-TIMEOUT) that allows to limit the time spent on each statement of the session. The default timeout is set to 60

We [added new attributes to buttons](https://foss.heptapod.net/tryton/tryton/-/issues/12617): `xexpand, xfill, yexpand, yfill`

We [removed the `user` and `employee` keys from the rule context](https://foss.heptapod.net/tryton/tryton/-/issues/12581) because of performance reasons. Rules based on user or employee keys are now solved by `groups`.

Tryton now supports `add, update, remove` and `delete` as a result of `on_change_with` of [`One2Many`](https://foss.heptapod.net/tryton/tryton/-/issues/12473) and [`Many2Many`](https://foss.heptapod.net/tryton/tryton/-/issues/12474) fields.

Tryton has now [support for scanning codes like bar-codes or QR-codes](https://foss.heptapod.net/tryton/tryton/-/merge_requests/615).

Video: Screencast demonstrating a scan of an unknown bar-code first and then scanning a known one.

The PostgreSQL backend now supports [`BTREE_GIN` indexing](https://foss.heptapod.net/tryton/tryton/-/issues/12480) . Also support for [similarity expressions](https://foss.heptapod.net/tryton/tryton/-/issues/12479) have been improved. Last but not least, the [expressions are now filtered](https://foss.heptapod.net/tryton/tryton/-/issues/12478).

At the start of a transaction we check if a used table is locked. [Otherwise we raise a TransactionError and the transaction will be restarted with the table added to the list of tables to lock.](https://foss.heptapod.net/tryton/tryton/-/merge_requests/51) This ensures that we always read the last committed values when a table is locked.

It is now [possible to use the `width` attribute in button columns](https://foss.heptapod.net/tryton/tryton/-/merge_requests/624) of tree views. See also our [documentation about views](https://docs.tryton.org/projects/server/en/latest/topics/views/index.html#id4).

[Tryton now supports encoding `TimeDelta` values](https://foss.heptapod.net/tryton/tryton/-/merge_requests/586) into [PYSON](https://docs.tryton.org/projects/server/en/latest/topics/pyson.html). The comparison of timedeltas is also supported in PYSON.

We added a [`sum_tree` helper method which is a common pattern](https://foss.heptapod.net/tryton/tryton/-/merge_requests/529) which can be unified and reused.

We moved the representation of `sum` in XML from the bottom row of the Tryton client [into the column header](https://foss.heptapod.net/tryton/tryton/-/merge_requests/439). And the `sum` attribute is now converted into a boolean type.

 ![Screenshot of general ledger with several amount sums of selected lines](https://discuss-cdn.tryton.org/uploads/default/original/2X/f/f1b416bf70bb347d2a52ddcd35225b7c7880bbc6.png) ![Screenshot of timesheet lines with the sum of selected lines for duration](https://discuss-cdn.tryton.org/uploads/default/original/2X/b/b6300fa0f4cbf01e45ec5406984ec48784f0c9cc.png)

Our [base documentation](https://docs.tryton.org/projects/server/en/latest/modules/res/index.html) has been greatly improved with a new chapter about the [internal _res_ource module](https://foss.heptapod.net/tryton/tryton/-/issues/9793).

> **Read More…**
>
> Now the [`MatchMixin` matches `None` and `False`](https://foss.heptapod.net/tryton/tryton/-/issues/12504). If the value is `False` and the pattern is `None`, we have a match. The behaviour is similar to the search functionality.
> 
> Tests can now [execute the same scenario with a list of different global variables](https://foss.heptapod.net/tryton/tryton/-/issues/12441) defined in a JSON list.
> 
> For consistency, we have [renamed the _close_ state to _closed_ in state fields that had that option](https://foss.heptapod.net/tryton/tryton/-/merge_requests/595).
> 
> We changed the logging process of the dispatcher by [using a lazily evaluated object, which will shorten huge structures that could appear in the log](https://foss.heptapod.net/tryton/tryton/-/merge_requests/387).
> 
> For your convenience [we’ve added a database completion](https://foss.heptapod.net/tryton/tryton/-/merge_requests/594) for the database option of the `trytond-console` command.
> 
> To ease containerized deployments we’ve [added some more environment variables to the command line](https://foss.heptapod.net/tryton/tryton/-/merge_requests/634).  
> Now you can use `TRYTOND_LOGGING_CONFIG` to set the default for the `--logconf` command line option.  
> Use `TRYTOND_COROUTINE` as default for `--coroutine` and `TRYTOND_LOGGING_LEVEL` to set a logging level via environment variable.
> 
> Tryton [no longer fails with a `ValueError`](https://foss.heptapod.net/tryton/tryton/-/merge_requests/648) when a message is malformed.

Authors: @dave @pokoli @udono

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [November 2, 2023, 8:57pm UTC](https://discuss.tryton.org/t/tryton-release-7-0/6634/2 "2023-11-02T20:57:23Z")

</div>

3 posts were split to a new topic: [Can the update from Tryton 6.0 LTS to 7.0 LTS be done in one step?](https://discuss.tryton.org/t/can-the-update-from-tryton-6-0-lts-to-7-0-lts-be-done-in-one-step/6652)

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [November 3, 2023, 2:59pm UTC](https://discuss.tryton.org/t/tryton-release-7-0/6634/3 "2023-11-03T14:59:24Z")

</div>



---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [November 26, 2023, 10:25am UTC](https://discuss.tryton.org/t/tryton-release-7-0/6634/4 "2023-11-26T10:25:17Z")

</div>

A post was split to a new topic: [Removal of egg modules](https://discuss.tryton.org/t/removal-of-egg-modules/6729)

---

<div class="post-metadata">

### Author: ![system](https://discuss-cdn.tryton.org/uploads/default/original/1X/c6f8ec0a40525cdcd50058c734283450a4b3d38b.png) [@system](https://discuss.tryton.org/u/system)
#### Post date: [November 30, 2023, 9:00am UTC](https://discuss.tryton.org/t/tryton-release-7-0/6634/5 "2023-11-30T09:00:28Z")

</div>

This topic was automatically closed after 30 days. New replies are no longer allowed.
