SPDXVersion: SPDX-2.1
DataLicense: CC0-1.0
SPDXID: SPDXRef-DOCUMENT
DocumentName: project
DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-73e3c717-33b4-4ff0-b258-a8ab9bbf634c
Creator: Person: Anonymous ()
Creator: Organization: Anonymous ()
Creator: Tool: reuse-6.1.0
Created: 2026-03-29T21:20:44Z
CreatorComment: This document was created automatically using available reuse information consistent with REUSE.
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c31c2ecb3a9fe6646336a5876078c68f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8a37abf5014b9f91255c3c00639a5398
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b18e07ead968152d9b91dba27573edfc
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-eb4a680efaee39e1fd17c96feebff9c5
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5364cdd44555dde1adb446f9227b83bb
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-229309b083c5636957b9999b777d8f18
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-858d012b4d69e5a4d92e919c075c500c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a35453355cee09cfa9fb63c2465300e4
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-66e230fe4309aeb30f6146b5a812e9b2
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-717c75c6fbd233c03497cb22c5909b24
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d1ec038257e5046acfb71569bfd9b242
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-015fe95f70255ce9e7cbc51439f39e7d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8a472771a7f4b86412ebe72b3f3b2db3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8bb6f41ea9c65891caa8aba898af5218
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e808284aebfba5dc691cdb66070f1ae7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e751a52c7fa0d6226b143fe13f3a55f6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a6fb6f80e81361315fdd02f068e7c59d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c8ea3bfd81ee4f3bb5de9b93b002f8b5
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-15a7ba649d6ff5744c11193a57e5ad13
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e97692f6e9e6485170ecf92982003353
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1ec4b3563199ae9e3574aa15b60547df
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-90c9e844f009336a7fa8b3e76ba15462
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7ade28f84544972a305d8c75e4bf3a5c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c889d6b40189fc56284791c067cc6337
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-684edb8434732c8184670307ec8bd7a7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f8267b472f11e6a506d778602d24cce1
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-de108a10270ac5596c8fc6c836bb567a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a097649eb4c9423ac3a6acf10cfeb9bd
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d6ea9f0dc52b2c024ba3b7eac1eb4dbe
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-053937185f6a42d946016cb91125245c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-509bed3314becf648d9a53c3fb0f3356
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cb1a74fe0a18dfdce3d23f23474a77d9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6f6ab3f63e0befc056abdf5c41ef4ae0
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-086a8d75e591a499671324f4fc1034ba
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-868b6ed19011bb662b4854312bfcbdaa
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-85d515eceee1e0b28aba10b5533a2bc8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d3d87ffab79db3b9fcf04ccede400eb8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-744a5d8f5a36097429ab14912f134904
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a980c91e7fe07799d392a341d317db23
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4dec3a1e061ee89ea43f2370f87c4d8f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-69c5bbea8cf721c41d05d3e119a54cde
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-06dcda2eb452e5e09f7904c85c52d1c6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7decec8b2979f057184423b185902e0d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4c65687e48fd9b40092e90a445335208
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-51cae60f800f3d5efe11e16908e7c6d4
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f7a1a35723b569b1d5c7a73a9ac12a63
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6195bd9fde25cc8446b17f9330acd8ce
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6f9c41f79624488ec4c56cd8cb491a5f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-701762d6a883c07ed34436d41023f364
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b68329ba72b03915ee8b10ac06881fa3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ec4f3ab91cc95c29e2f0a8f905a25247
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d6d2ca0099ec0a2a59139b3f5217946d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ec306e8b4fa9c06b5eb23bdb59ec7135
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-be77d82c548cccb25a1cfcc21d93fedb
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9676a15b132f5d8f18551bece5afa4fa
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-351ca8398b51f525d2f6d4ac282fc548
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-eeee80cf7a661fac4cdb7773acf80631
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9d777485d3d10284270a2c8395e599a3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-dfa8f7af7b2c0d0625dd33a6af69ce33
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9a560b2ef03c75838b19cf585a886b02
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-323f59b9c117499c45fa490b3937c926
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-89e5301f61a711a9c0c2d6016bb78ffd
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ea4dcab3d16be90aea4655d953f95205
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b70fa971a64121015dce77daa69ebe90
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-81769bb043d74303ab81eab433110e10
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2fcca833f29d15c71e3fe33f6c5b2515
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ab07d28ddffb314e0b3386847968fd43
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5e85e276afdc74748655f7c7a81a05e9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-43d4bab4c6aa720504352e6766c3c99c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e38fb742784ed9f7d079979d687328f8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4802688815ac0df3dd454ef1296d26bd
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b5749349e793cd6c312cabb3e2cde1fa
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-eec96b234a6fea30417d4cb3ebab9017
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e7155471f523b7991721ba8a54970f5c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-56cd0f309bd138c14c3255578a17fd0d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5a45d7fb30103deb5b0d93abb597b128
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cc6153dddcf4d846139df838a5735bc6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2251e59ab4bef07e93f34d1624f4dce2
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-be9b04c17989469db74c0657d36c9d7c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a75ef8a7de597b3180128c203ab400f8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f2c227d2eb71132b360bf40fabdc15c6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2f2b9c115b1bce61cfd00c255805eeb8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-767f386b639d20348e4c835709cc8774
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-352a2426f943f3fa583103e65dd1f488
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-dad0076532e26e42d5a85b93d01b076f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d8252ef3aabe94066fbf3e7152610e12
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ce33555cfc59f5fde73958c2372e3bf4
FileName: ./.ansible-lint
SPDXID: SPDXRef-c31c2ecb3a9fe6646336a5876078c68f
FileChecksum: SHA1: 3e6276020859f0e9c38fbe65013904236c81be72
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/ci.yml
SPDXID: SPDXRef-8a37abf5014b9f91255c3c00639a5398
FileChecksum: SHA1: 3447c4d912c9c0346556c945f794aa4be6beac6e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/deploy-backend.yml
SPDXID: SPDXRef-b18e07ead968152d9b91dba27573edfc
FileChecksum: SHA1: e6c85965d6d0aee68529b431ab69f2b677881390
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/deploy-env.yml
SPDXID: SPDXRef-eb4a680efaee39e1fd17c96feebff9c5
FileChecksum: SHA1: 7e5e4f3eb8fb8e2c5e5ffc2030d4005d4cd3c1df
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/deploy-frontend.yml
SPDXID: SPDXRef-5364cdd44555dde1adb446f9227b83bb
FileChecksum: SHA1: eef8823d6a920e6832f3331054fef16785627d99
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/deploy-monitoring.yml
SPDXID: SPDXRef-229309b083c5636957b9999b777d8f18
FileChecksum: SHA1: 8b76da68da9589721c992bf41fecd915feee23c1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.gitignore
SPDXID: SPDXRef-858d012b4d69e5a4d92e919c075c500c
FileChecksum: SHA1: 4692bd23fa2ed1104406bfc5059731129b11ecdb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.yamllint.yml
SPDXID: SPDXRef-a35453355cee09cfa9fb63c2465300e4
FileChecksum: SHA1: 16c6b67bb796a89940a14c8162c635ef33c352ed
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./Makefile
SPDXID: SPDXRef-66e230fe4309aeb30f6146b5a812e9b2
FileChecksum: SHA1: 44b858c4b1bcb060813dfe85429002d62ade963c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./README.md
SPDXID: SPDXRef-717c75c6fbd233c03497cb22c5909b24
FileChecksum: SHA1: ea0d54d646a969f8dc94791245a69c8a5550c22a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/ansible.cfg
SPDXID: SPDXRef-d1ec038257e5046acfb71569bfd9b242
FileChecksum: SHA1: 8304b8564dd7e3a432a86648a2adc0b265ca1fc0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/inventory/group_vars/all.yml
SPDXID: SPDXRef-015fe95f70255ce9e7cbc51439f39e7d
FileChecksum: SHA1: 1365fd2958e530b56fd30694cbc647584e3f169d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/inventory/group_vars/production/vars.yml
SPDXID: SPDXRef-8a472771a7f4b86412ebe72b3f3b2db3
FileChecksum: SHA1: 2141e1a31a52557813cef4b71220c3d2f0ed8bce
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/inventory/group_vars/production/vault.yml
SPDXID: SPDXRef-8bb6f41ea9c65891caa8aba898af5218
FileChecksum: SHA1: 06db5367e0cd79139527690c7b8ab03e8f7e683f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/inventory/group_vars/staging/vars.yml
SPDXID: SPDXRef-e808284aebfba5dc691cdb66070f1ae7
FileChecksum: SHA1: c0dbce8bf67acec377232597ed929e1bfe508e8c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/inventory/group_vars/staging/vault.yml
SPDXID: SPDXRef-e751a52c7fa0d6226b143fe13f3a55f6
FileChecksum: SHA1: accf462de1aadfcd343819e8a0269b14874b0665
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/inventory/production.yml
SPDXID: SPDXRef-a6fb6f80e81361315fdd02f068e7c59d
FileChecksum: SHA1: 4d55100d3a7b86074ce408c1cc5ca4122b4fc03c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/inventory/staging.yml
SPDXID: SPDXRef-c8ea3bfd81ee4f3bb5de9b93b002f8b5
FileChecksum: SHA1: c50106462a806c92001d19c5ff878254d0c77f08
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/playbooks/backup-backend.yml
SPDXID: SPDXRef-15a7ba649d6ff5744c11193a57e5ad13
FileChecksum: SHA1: 856ff7a155c0c43cd835efb94f5a268e6e651f7c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/playbooks/deploy-backend.yml
SPDXID: SPDXRef-e97692f6e9e6485170ecf92982003353
FileChecksum: SHA1: b77255ad005a5a46f25ab921cd0ea380cd85d15a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/playbooks/deploy-frontend.yml
SPDXID: SPDXRef-1ec4b3563199ae9e3574aa15b60547df
FileChecksum: SHA1: 5d91a4614ce08ab36faf72a34bc3ef735028f466
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/playbooks/monitoring.yml
SPDXID: SPDXRef-90c9e844f009336a7fa8b3e76ba15462
FileChecksum: SHA1: 4c193adeed73a3adb4cf88c0dd90fdd461e62947
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/playbooks/rollback-backend.yml
SPDXID: SPDXRef-7ade28f84544972a305d8c75e4bf3a5c
FileChecksum: SHA1: a3fd5a5c5e875d1fc46922ae1f77da26d0d043a8
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/playbooks/rollback-frontend.yml
SPDXID: SPDXRef-c889d6b40189fc56284791c067cc6337
FileChecksum: SHA1: a57fa293d55dcb385a7faed28ede9437e29a4c60
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/playbooks/setup.yml
SPDXID: SPDXRef-684edb8434732c8184670307ec8bd7a7
FileChecksum: SHA1: 7c12426f906a180b409101883d56adf9df9badab
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/requirements.txt
SPDXID: SPDXRef-f8267b472f11e6a506d778602d24cce1
FileChecksum: SHA1: 98baf0ea5b3357092582c28c6883bcdafcb0cd74
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/requirements.yml
SPDXID: SPDXRef-de108a10270ac5596c8fc6c836bb567a
FileChecksum: SHA1: 43f7c1670bcf0e446948fa5217467b01af4f104b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/defaults/main.yml
SPDXID: SPDXRef-a097649eb4c9423ac3a6acf10cfeb9bd
FileChecksum: SHA1: b78055d047b8970b71a6e3a4d8e9d82878df29bd
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/handlers/main.yml
SPDXID: SPDXRef-d6ea9f0dc52b2c024ba3b7eac1eb4dbe
FileChecksum: SHA1: 8f3826f14d2f507596aeb31019d0e95209800a46
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/meta/main.yml
SPDXID: SPDXRef-053937185f6a42d946016cb91125245c
FileChecksum: SHA1: ca31ca4c3b300077cdb6bc77696df5018f30d794
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/tasks/backup.yml
SPDXID: SPDXRef-509bed3314becf648d9a53c3fb0f3356
FileChecksum: SHA1: 2e7431399c2f88a67c84625e5cb95817a89462b3
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/tasks/deploy.yml
SPDXID: SPDXRef-cb1a74fe0a18dfdce3d23f23474a77d9
FileChecksum: SHA1: 83e1c242bd42bc166757f211649f4bf093928550
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/tasks/directories.yml
SPDXID: SPDXRef-6f6ab3f63e0befc056abdf5c41ef4ae0
FileChecksum: SHA1: a9bfa0401311345b27a1116a66b76655a3b1d0ac
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/tasks/main.yml
SPDXID: SPDXRef-086a8d75e591a499671324f4fc1034ba
FileChecksum: SHA1: 231098b0d90afa9521b980417afffa8327764d57
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/tasks/nginx.yml
SPDXID: SPDXRef-868b6ed19011bb662b4854312bfcbdaa
FileChecksum: SHA1: 8984e28f68997098f63d1ac053cd89aaf8fc5356
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/tasks/rollback.yml
SPDXID: SPDXRef-85d515eceee1e0b28aba10b5533a2bc8
FileChecksum: SHA1: e8f6ea8d09d087736f9880b81b0d0ce3b3ab7c69
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/templates/docker-compose.prod.j2
SPDXID: SPDXRef-d3d87ffab79db3b9fcf04ccede400eb8
FileChecksum: SHA1: 98ec0f751a4a4bc9cea86a96eaa25c94aa42f454
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/templates/env.j2
SPDXID: SPDXRef-744a5d8f5a36097429ab14912f134904
FileChecksum: SHA1: 2214cbdaa39ea995d794086519bcba225e1c75e1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/backend/templates/nginx-site.j2
SPDXID: SPDXRef-a980c91e7fe07799d392a341d317db23
FileChecksum: SHA1: 3286455d9b0788b2bdfccf824890888b0d30cdf0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/defaults/main.yml
SPDXID: SPDXRef-4dec3a1e061ee89ea43f2370f87c4d8f
FileChecksum: SHA1: 196a97584c2c53bf010b97e93ef673b209e2c566
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/handlers/main.yml
SPDXID: SPDXRef-69c5bbea8cf721c41d05d3e119a54cde
FileChecksum: SHA1: 556b2a39f5595893a5fbf1f089c0eaafd5ce2031
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/meta/main.yml
SPDXID: SPDXRef-06dcda2eb452e5e09f7904c85c52d1c6
FileChecksum: SHA1: 90494b08e7bd8ed72162df21e5f86d533a78df58
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/certbot.yml
SPDXID: SPDXRef-7decec8b2979f057184423b185902e0d
FileChecksum: SHA1: e4523269b001242c8c152f05e29b70d5cfa69417
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/docker_network.yml
SPDXID: SPDXRef-4c65687e48fd9b40092e90a445335208
FileChecksum: SHA1: 8da793ea707703b6cb09b6b4b16b1fdf688f64e6
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/fail2ban.yml
SPDXID: SPDXRef-51cae60f800f3d5efe11e16908e7c6d4
FileChecksum: SHA1: 49fe6380a44146c0a5cdd9b2dc409c89ae8ef73d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/firewall.yml
SPDXID: SPDXRef-f7a1a35723b569b1d5c7a73a9ac12a63
FileChecksum: SHA1: b634e8f9abc66270bb779b5d09d3229fd80f5968
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/main.yml
SPDXID: SPDXRef-6195bd9fde25cc8446b17f9330acd8ce
FileChecksum: SHA1: 98812d4fc74b562793c92563c97df80ff2664b90
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/nginx.yml
SPDXID: SPDXRef-6f9c41f79624488ec4c56cd8cb491a5f
FileChecksum: SHA1: 8f959f0dcd8dc1df0649010175e9ad65abb9786f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/packages.yml
SPDXID: SPDXRef-701762d6a883c07ed34436d41023f364
FileChecksum: SHA1: 0612a508a8375e8b3075a9f147551c3ce766af63
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/sysctl.yml
SPDXID: SPDXRef-b68329ba72b03915ee8b10ac06881fa3
FileChecksum: SHA1: 915ad1a9b90e9425df3311d50615aa0fce7d89e1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/tasks/user.yml
SPDXID: SPDXRef-ec4f3ab91cc95c29e2f0a8f905a25247
FileChecksum: SHA1: 750b9498a1a386c9f42143a2c020d1f40db099db
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/common/templates/jail.local.j2
SPDXID: SPDXRef-d6d2ca0099ec0a2a59139b3f5217946d
FileChecksum: SHA1: b17608271281512b3de356fe4ccbb6ac145d42c9
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/defaults/main.yml
SPDXID: SPDXRef-ec306e8b4fa9c06b5eb23bdb59ec7135
FileChecksum: SHA1: d6342c5213382aa1747ffe810bd663a9e0e041ba
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/handlers/main.yml
SPDXID: SPDXRef-be77d82c548cccb25a1cfcc21d93fedb
FileChecksum: SHA1: 8f3826f14d2f507596aeb31019d0e95209800a46
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/meta/main.yml
SPDXID: SPDXRef-9676a15b132f5d8f18551bece5afa4fa
FileChecksum: SHA1: 4c5d604b08e71642f344d6e96dce76376f362714
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/tasks/deploy.yml
SPDXID: SPDXRef-351ca8398b51f525d2f6d4ac282fc548
FileChecksum: SHA1: b30f205183c2e1d6f0a34f7c598a751f7a83aa61
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/tasks/directories.yml
SPDXID: SPDXRef-eeee80cf7a661fac4cdb7773acf80631
FileChecksum: SHA1: c0be689ebfe20f6ea14aa98c8828cdf6014d65fa
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/tasks/main.yml
SPDXID: SPDXRef-9d777485d3d10284270a2c8395e599a3
FileChecksum: SHA1: 5beeb8f1c11237f3d37f12420facf33b00184054
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/tasks/nginx.yml
SPDXID: SPDXRef-dfa8f7af7b2c0d0625dd33a6af69ce33
FileChecksum: SHA1: ef7d2deda820b9ec1c5f015f6d9ad5dd51fde00e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/tasks/rollback.yml
SPDXID: SPDXRef-9a560b2ef03c75838b19cf585a886b02
FileChecksum: SHA1: e1bfacb39342ae8a91aee1ac77ce1762db95e3f5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/templates/docker-compose.prod.j2
SPDXID: SPDXRef-323f59b9c117499c45fa490b3937c926
FileChecksum: SHA1: e83c9f279617349894e31f211c31d3991cc90d49
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/templates/env.j2
SPDXID: SPDXRef-89e5301f61a711a9c0c2d6016bb78ffd
FileChecksum: SHA1: 908b3d4c869fa634255cd5f542b4ed62842d3368
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/frontend/templates/nginx-site.j2
SPDXID: SPDXRef-ea4dcab3d16be90aea4655d953f95205
FileChecksum: SHA1: 5b3be10ef3eb989d3b39f15d956ab4a3b936a194
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/defaults/main.yml
SPDXID: SPDXRef-b70fa971a64121015dce77daa69ebe90
FileChecksum: SHA1: 6efb3c086ee772599a34bc00d34c1d0aeb127b1e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/handlers/main.yml
SPDXID: SPDXRef-81769bb043d74303ab81eab433110e10
FileChecksum: SHA1: 964eb17a9a4cc5e5d0e3665ee07c7e35cb7f521a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/meta/main.yml
SPDXID: SPDXRef-2fcca833f29d15c71e3fe33f6c5b2515
FileChecksum: SHA1: 2d422e4f9093b4516f6f58c5dae63dcb959fb4c4
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/tasks/configs.yml
SPDXID: SPDXRef-ab07d28ddffb314e0b3386847968fd43
FileChecksum: SHA1: 48be2c390134f93c6024f74c662ff344c277220e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/tasks/deploy.yml
SPDXID: SPDXRef-5e85e276afdc74748655f7c7a81a05e9
FileChecksum: SHA1: 96e4a173aceba38b545178d5252e6f44d7e161fb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/tasks/directories.yml
SPDXID: SPDXRef-43d4bab4c6aa720504352e6766c3c99c
FileChecksum: SHA1: 36eb38ea817f9e0f086e9da2757f7987292e2cbb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/tasks/firewall.yml
SPDXID: SPDXRef-e38fb742784ed9f7d079979d687328f8
FileChecksum: SHA1: fa42d17f2579f0798b63a26fbf8aa606cbbb570e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/tasks/main.yml
SPDXID: SPDXRef-4802688815ac0df3dd454ef1296d26bd
FileChecksum: SHA1: 1889df0bc5938cb7532f37ae5584025f1380cb21
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/tasks/nginx.yml
SPDXID: SPDXRef-b5749349e793cd6c312cabb3e2cde1fa
FileChecksum: SHA1: 975237318ac9baa1d14956c312f8bc7bdbadb1d9
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/templates/alertmanager-config.j2
SPDXID: SPDXRef-eec96b234a6fea30417d4cb3ebab9017
FileChecksum: SHA1: be1fabb1477dc47c0ed49f7e929e4fa0fb02f0fc
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/templates/docker-compose.yml.j2
SPDXID: SPDXRef-e7155471f523b7991721ba8a54970f5c
FileChecksum: SHA1: ade02f4fac021a9c54c09fbacc41917620e06ffd
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./ansible/roles/monitoring/templates/nginx-grafana.j2
SPDXID: SPDXRef-56cd0f309bd138c14c3255578a17fd0d
FileChecksum: SHA1: 7748e71d8e78aaf944d5823045b65a4e056e1309
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/.env.example
SPDXID: SPDXRef-5a45d7fb30103deb5b0d93abb597b128
FileChecksum: SHA1: f22df199ba7fc69aea06c317eb3754a20f5566d6
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/alertmanager/config.yml
SPDXID: SPDXRef-cc6153dddcf4d846139df838a5735bc6
FileChecksum: SHA1: 27168b3e1c8f66a62e7541a5327743eb3a1e4d29
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/alloy/config.alloy
SPDXID: SPDXRef-2251e59ab4bef07e93f34d1624f4dce2
FileChecksum: SHA1: 3866352b3e357322721bbf7a4959d6ed74bdd671
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/docker-compose.monitoring.yml
SPDXID: SPDXRef-be9b04c17989469db74c0657d36c9d7c
FileChecksum: SHA1: fb688b85e7ac76d7f4e8cfde0459fb4a2c415016
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/grafana/provisioning/dashboards/dashboards.yml
SPDXID: SPDXRef-a75ef8a7de597b3180128c203ab400f8
FileChecksum: SHA1: 89918720a89413f78d2ba31a3f8ac85db7a8cb89
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/grafana/provisioning/dashboards/guitar0-backend.json
SPDXID: SPDXRef-f2c227d2eb71132b360bf40fabdc15c6
FileChecksum: SHA1: f76c9875920aa6f7f8afb9808d3808bb1a624b6f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/grafana/provisioning/dashboards/node-exporter.json
SPDXID: SPDXRef-2f2b9c115b1bce61cfd00c255805eeb8
FileChecksum: SHA1: 46515d812798447c4a12fd8927a90017e3ea9565
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/grafana/provisioning/datasources/datasources.yml
SPDXID: SPDXRef-767f386b639d20348e4c835709cc8774
FileChecksum: SHA1: 8a4441751943cc5ff898b832d44e63affdcfe0c4
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/loki/config.yml
SPDXID: SPDXRef-352a2426f943f3fa583103e65dd1f488
FileChecksum: SHA1: bc7987086df0d370ee36662af39d5984fbdd36e5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/prometheus/prometheus.yml
SPDXID: SPDXRef-dad0076532e26e42d5a85b93d01b076f
FileChecksum: SHA1: 55fb4a59264e04b4aeb55fb1a4f559aaa8b35fa4
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/prometheus/rules/alerts.yml
SPDXID: SPDXRef-d8252ef3aabe94066fbf3e7152610e12
FileChecksum: SHA1: d33befc742c5a864e09ddf95a6c9a6276dac3609
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./observability/prometheus/rules/recording.yml
SPDXID: SPDXRef-ce33555cfc59f5fde73958c2372e3bf4
FileChecksum: SHA1: 23227ca78f59e064f2394be19792eeeca314e8a3
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar