velbus-aio 2024.7.0__tar.gz → 2024.7.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of velbus-aio might be problematic. Click here for more details.
- {velbus_aio-2024.7.0/velbus_aio.egg-info → velbus_aio-2024.7.4}/PKG-INFO +2 -1
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/pyproject.toml +3 -2
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4/velbus_aio.egg-info}/PKG-INFO +2 -1
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbus_aio.egg-info/requires.txt +1 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/controller.py +3 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/handler.py +5 -4
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/LICENSE +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/MANIFEST.in +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/README.md +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/requirements.txt +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/setup.cfg +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/setup.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbus_aio.egg-info/SOURCES.txt +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbus_aio.egg-info/dependency_links.txt +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbus_aio.egg-info/not-zip-safe +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbus_aio.egg-info/top_level.txt +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/__init__.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/channels.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/command_registry.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/const.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/discovery.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/exceptions.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/helpers.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/message.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/__init__.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/blind_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/bus_active.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/bus_error_counter_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/bus_error_counter_status_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/bus_off.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/channel_name_part1.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/channel_name_part2.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/channel_name_part3.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/channel_name_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/clear_led.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/counter_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/counter_status_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/cover_down.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/cover_off.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/cover_position.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/cover_up.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/dali_device_settings.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/dali_device_settings_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/dali_dim_value_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/dimmer_channel_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/dimmer_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/edge_set_color.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/edge_set_custom_color.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/fast_blinking_led.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/forced_off.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/forced_on.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/interface_status_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/ir_receiver_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/kwh_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/light_value_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/memo_text.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/memory_data.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/memory_data_block.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/memory_dump_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/module_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/module_status_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/module_subtype.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/module_type.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/module_type_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/push_button_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/raw.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/read_data_block_from_memory.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/read_data_from_memory.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/realtime_clock_status_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/receive_buffer_full.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/receive_ready.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/relay_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/restore_dimmer.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/select_program.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/sensor_settings_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/sensor_temp_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/sensor_temperature.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/set_date.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/set_daylight_saving.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/set_dimmer.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/set_led.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/set_realtime_clock.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/set_temperature.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/slider_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/slow_blinking_led.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/start_relay_blinking_timer.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/start_relay_timer.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/switch_relay_off.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/switch_relay_on.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/switch_to_comfort.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/switch_to_day.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/switch_to_night.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/switch_to_safe.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part1.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part2.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part3.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part4.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_request.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_set_cooling.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_set_heating.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/update_led_status.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/very_fast_blinking_led.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/write_data_to_memory.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/write_memory_block.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/write_module_address_and_serial_number.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/module.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/protocol.json +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/protocol.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/py.typed +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/raw_message.py +0 -0
- {velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: velbus-aio
|
|
3
|
-
Version: 2024.7.
|
|
3
|
+
Version: 2024.7.4
|
|
4
4
|
Summary: Open-source home automation platform running on Python 3.
|
|
5
5
|
Author-email: Maikel Punie <maikel.punie@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -28,6 +28,7 @@ License-File: LICENSE
|
|
|
28
28
|
Requires-Dist: pyserial>=3.5.0
|
|
29
29
|
Requires-Dist: pyserial-asyncio_fast>=0.11
|
|
30
30
|
Requires-Dist: backoff>=1.10.0
|
|
31
|
+
Requires-Dist: aiofile
|
|
31
32
|
|
|
32
33
|

|
|
33
34
|
[](https://results.pre-commit.ci/latest/github/Cereal2nd/velbus-aio/master)
|
|
@@ -4,7 +4,7 @@ requires = ["setuptools", "wheel"]
|
|
|
4
4
|
[project]
|
|
5
5
|
name = "velbus-aio"
|
|
6
6
|
license = {text = "MIT"}
|
|
7
|
-
version = "2024.7.
|
|
7
|
+
version = "2024.7.4"
|
|
8
8
|
description = "Open-source home automation platform running on Python 3."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -32,6 +32,7 @@ dependencies = [
|
|
|
32
32
|
"pyserial>=3.5.0",
|
|
33
33
|
"pyserial-asyncio_fast>=0.11",
|
|
34
34
|
"backoff>=1.10.0",
|
|
35
|
+
"aiofile",
|
|
35
36
|
]
|
|
36
37
|
|
|
37
38
|
[project.urls]
|
|
@@ -51,7 +52,7 @@ exclude_dirs = ["tests"]
|
|
|
51
52
|
skips = ["B301", "B403", "B323", "B104", "B110"]
|
|
52
53
|
|
|
53
54
|
[tool.bumpver]
|
|
54
|
-
current_version = "2024.7.
|
|
55
|
+
current_version = "2024.7.4"
|
|
55
56
|
version_pattern = "YYYY.MM.INC0"
|
|
56
57
|
commit_message = "bump version {old_version} -> {new_version}"
|
|
57
58
|
commit = true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: velbus-aio
|
|
3
|
-
Version: 2024.7.
|
|
3
|
+
Version: 2024.7.4
|
|
4
4
|
Summary: Open-source home automation platform running on Python 3.
|
|
5
5
|
Author-email: Maikel Punie <maikel.punie@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -28,6 +28,7 @@ License-File: LICENSE
|
|
|
28
28
|
Requires-Dist: pyserial>=3.5.0
|
|
29
29
|
Requires-Dist: pyserial-asyncio_fast>=0.11
|
|
30
30
|
Requires-Dist: backoff>=1.10.0
|
|
31
|
+
Requires-Dist: aiofile
|
|
31
32
|
|
|
32
33
|

|
|
33
34
|
[](https://results.pre-commit.ci/latest/github/Cereal2nd/velbus-aio/master)
|
|
@@ -54,6 +54,9 @@ class Velbus:
|
|
|
54
54
|
# make sure the cachedir exists
|
|
55
55
|
pathlib.Path(self._cache_dir).mkdir(parents=True, exist_ok=True)
|
|
56
56
|
|
|
57
|
+
def get_cache_dir(self) -> str:
|
|
58
|
+
return self._cache_dir
|
|
59
|
+
|
|
57
60
|
async def _on_message_received(self, msg: RawMessage) -> None:
|
|
58
61
|
"""On message received function."""
|
|
59
62
|
await self._handler.handle(msg)
|
|
@@ -27,7 +27,6 @@ from velbusaio.message import Message
|
|
|
27
27
|
from velbusaio.messages.module_subtype import ModuleSubTypeMessage
|
|
28
28
|
from velbusaio.messages.module_type import ModuleTypeMessage, ModuleType2Message
|
|
29
29
|
from velbusaio.raw_message import RawMessage
|
|
30
|
-
from velbusaio.helpers import get_cache_dir
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|
if TYPE_CHECKING:
|
|
@@ -63,8 +62,8 @@ class PacketHandler:
|
|
|
63
62
|
len(
|
|
64
63
|
[
|
|
65
64
|
name
|
|
66
|
-
for name in os.listdir(f"{get_cache_dir()}")
|
|
67
|
-
if os.path.isfile(f"{get_cache_dir()}/{name}")
|
|
65
|
+
for name in os.listdir(f"{self._velbus.get_cache_dir()}")
|
|
66
|
+
if os.path.isfile(f"{self._velbus.get_cache_dir()}/{name}")
|
|
68
67
|
]
|
|
69
68
|
)
|
|
70
69
|
== 0
|
|
@@ -78,6 +77,8 @@ class PacketHandler:
|
|
|
78
77
|
self._scan_complete = False
|
|
79
78
|
# non-blocking check to see if the cache_dir is empty
|
|
80
79
|
loop = asyncio.get_running_loop()
|
|
80
|
+
print(self._velbus.get_cache_dir())
|
|
81
|
+
print(await loop.run_in_executor(None, self.empty_cache))
|
|
81
82
|
if not reload_cache and await loop.run_in_executor(None, self.empty_cache):
|
|
82
83
|
self._log.info("No cache yet, so forcing a bus scan")
|
|
83
84
|
reload_cache = True
|
|
@@ -92,7 +93,7 @@ class PacketHandler:
|
|
|
92
93
|
|
|
93
94
|
self._log.info(f"Starting handling scan {address}")
|
|
94
95
|
|
|
95
|
-
cfile = pathlib.Path(f"{get_cache_dir()}/{address}.json")
|
|
96
|
+
cfile = pathlib.Path(f"{self._velbus.get_cache_dir()}/{address}.json")
|
|
96
97
|
# cleanup the old module cache if needed
|
|
97
98
|
scanModule = reload_cache
|
|
98
99
|
if scanModule and os.path.isfile(cfile):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/bus_error_counter_status_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/dali_device_settings_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/read_data_block_from_memory.py
RENAMED
|
File without changes
|
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/realtime_clock_status_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/start_relay_blinking_timer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part1.py
RENAMED
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part2.py
RENAMED
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part3.py
RENAMED
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_part4.py
RENAMED
|
File without changes
|
{velbus_aio-2024.7.0 → velbus_aio-2024.7.4}/velbusaio/messages/temp_sensor_settings_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|