bec-lib 3.151.2__tar.gz → 3.151.3__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.
- {bec_lib-3.151.2 → bec_lib-3.151.3}/PKG-INFO +1 -1
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/redis_connector/managed_redis_connection.py +13 -4
- {bec_lib-3.151.2 → bec_lib-3.151.3}/pyproject.toml +1 -1
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_redis_connector_fakeredis.py +29 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/.gitignore +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/README.md +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/_print_versions.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/acl_login.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/actors.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/alarm_handler.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/atlas_models.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/bec_errors.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/bec_service.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/bec_yaml_loader.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/bl_state_manager.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/bl_states.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/builtin_actor_hli.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/callback_handler.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/channel_monitor.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/client.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/codecs.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/config_helper.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/config_values.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/configs/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/configs/demo_config.yaml +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/configs/openapi_schema.json +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/connector.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/dap_plugin_objects.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/dap_plugins.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/device.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/devicemanager.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/endpoints.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/file_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/live_scan_data.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/lmfit_serializer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/logger.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/macro_update_handler.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/messages.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/messaging_hooks.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/messaging_services.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/metadata_schema.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/numpy_encoder.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/observer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/pdf_writer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/plugin_helper.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/procedures/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/procedures/helper.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/procedures/hli.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/procedures/status.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/queue_items.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/redis_connector/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/redis_connector/constants.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/redis_connector/hli.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/redis_connector/streams.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/redis_connector/validation.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/request_context.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/request_items.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_args.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_data_container.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_history.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_input_validator.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_items.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_manager.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_number_container.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_repeat.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scan_report.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scans.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/scibec_validator.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/script_executor.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/serialization.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/serialization_registry.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/service_config.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/signature_serializer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/tests/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/tests/fixtures.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/tests/test_config.yaml +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/tests/test_service_config.yaml +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/tests/utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/user_macros.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/copier_jinja_filters.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/import_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/json_extended.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/_constants.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/_util.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/create/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/create/device.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/create/scan.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/create/templates/v4_scan.py.jinja +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/main.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/proxy.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/pydantic_pretty_print.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/rpc_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/scan_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/threading_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/user_acls_test.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/__init__.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/_additional_for_signature_serializer_test.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/conftest.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_acl_login.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_alarm_handler.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_atlas_models.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_beamline_states.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_bec_logger.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_bec_messages.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_bec_service.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_callback_handler.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_channel_monitor.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_client.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_config_helper.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_core_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_dap_plugins.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_data_container.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_device_hashing.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_device_manager.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_devices.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_file_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_hli_connector_fakeredis.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_hli_redis_connector.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_import_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_jinja_plugins.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_lmfit_serializer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_managed_config_values.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_managed_redis_connection.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_messaging_hooks.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_messaging_service.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_metadata_schema.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_observer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_pdf_writer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_plugin_helper.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_plugin_manager.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_plugin_system.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_pydantic_pretty_print.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_queue_items.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_context.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_data.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_history.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_items.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_manager.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_object.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_repeat.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scan_report.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_scibec_validator.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_script_executor.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_serializer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_signature_serializer.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_signature_serializer_with_future_import.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_stream_subs.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_user_macros.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_utils.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/tests/test_yaml_loader.py +0 -0
- {bec_lib-3.151.2 → bec_lib-3.151.3}/util_scripts/init_config.py +0 -0
|
@@ -595,7 +595,9 @@ class ManagedRedisConnection:
|
|
|
595
595
|
unsubscribe_list = []
|
|
596
596
|
with self._topics_cb_lock:
|
|
597
597
|
for topic in topics:
|
|
598
|
-
topics_cb = self._topics_cb
|
|
598
|
+
topics_cb = self._topics_cb.get(topic)
|
|
599
|
+
if topics_cb is None:
|
|
600
|
+
continue
|
|
599
601
|
# remove callback from list
|
|
600
602
|
self._topics_cb[topic] = list(
|
|
601
603
|
filter(lambda item: cb and item[0]() != cb, topics_cb)
|
|
@@ -631,9 +633,16 @@ class ManagedRedisConnection:
|
|
|
631
633
|
self._pubsub_conn.unsubscribe(unsubscribe_list)
|
|
632
634
|
else:
|
|
633
635
|
with self._topics_cb_lock:
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
636
|
+
registered_topics = list(self._topics_cb.keys())
|
|
637
|
+
direct_topics = [
|
|
638
|
+
topic for topic in registered_topics if not set("*?[]").intersection(topic)
|
|
639
|
+
]
|
|
640
|
+
pattern_topics = [topic for topic in registered_topics if topic not in direct_topics]
|
|
641
|
+
if direct_topics:
|
|
642
|
+
self.unregister(topics=direct_topics, cb=cb)
|
|
643
|
+
if pattern_topics:
|
|
644
|
+
self.unregister(patterns=pattern_topics, cb=cb)
|
|
645
|
+
self.unregister(topics=self._stream_subs.all_topics, cb=cb)
|
|
637
646
|
|
|
638
647
|
def _unregister_stream(self, topics: list[str], cb: Callable | None = None) -> bool:
|
|
639
648
|
"""Unregister callbacks from a list of topics. Returns true if any were removed"""
|
|
@@ -148,6 +148,35 @@ def test_redis_connector_unregister(connected_connector):
|
|
|
148
148
|
assert len(connector._topics_cb) == 0
|
|
149
149
|
|
|
150
150
|
|
|
151
|
+
def test_redis_connector_unregister_all_for_callback(connected_connector):
|
|
152
|
+
connector = connected_connector
|
|
153
|
+
cb_mock = mock.Mock(spec=[])
|
|
154
|
+
|
|
155
|
+
connector.register(topics=["topic1"], cb=cb_mock, start_thread=False)
|
|
156
|
+
connector.register(patterns=["topic2:*"], cb=cb_mock, start_thread=False)
|
|
157
|
+
connector.register(TestStreamEndpoint, cb=cb_mock, start_thread=False)
|
|
158
|
+
|
|
159
|
+
connector.send("topic1", TestMessage(msg="topic1"))
|
|
160
|
+
connector.poll_messages(timeout=1)
|
|
161
|
+
connector.send("topic2:a", TestMessage(msg="topic2"))
|
|
162
|
+
connector.poll_messages(timeout=1)
|
|
163
|
+
connector.xadd("test", {"data": 1})
|
|
164
|
+
connector.poll_messages(timeout=1)
|
|
165
|
+
assert cb_mock.call_count == 3
|
|
166
|
+
|
|
167
|
+
cb_mock.reset_mock()
|
|
168
|
+
connector.unregister(cb=cb_mock)
|
|
169
|
+
|
|
170
|
+
connector.send("topic1", TestMessage(msg="topic1"))
|
|
171
|
+
connector.send("topic2:a", TestMessage(msg="topic2"))
|
|
172
|
+
connector.xadd("test", {"data": 2})
|
|
173
|
+
with pytest.raises(TimeoutError):
|
|
174
|
+
connector.poll_messages(timeout=1)
|
|
175
|
+
assert cb_mock.call_count == 0
|
|
176
|
+
assert len(connector._topics_cb) == 0
|
|
177
|
+
assert connector._stream_subs.all_topics == []
|
|
178
|
+
|
|
179
|
+
|
|
151
180
|
def test_redis_connector_register_identical(connected_connector):
|
|
152
181
|
connector = connected_connector
|
|
153
182
|
|
|
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
|
|
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
|
|
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
|
|
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
|
{bec_lib-3.151.2 → bec_lib-3.151.3}/bec_lib/utils/plugin_manager/create/templates/v4_scan.py.jinja
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
|
|
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
|
|
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
|