pyxcp 0.22.32__tar.gz → 0.22.34__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 pyxcp might be problematic. Click here for more details.
- {pyxcp-0.22.32 → pyxcp-0.22.34}/PKG-INFO +6 -6
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyproject.toml +11 -20
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/__init__.py +1 -1
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/converter/__init__.py +4 -5
- {pyxcp-0.22.32 → pyxcp-0.22.34}/CMakeLists.txt +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/LICENSE +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/README.md +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/build_ext.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/EtasCANMonitoring.a2l +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/EtasCANMonitoring.aml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/XCP_Common.aml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/XCPonCAN.aml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/XCPonEth.aml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/XCPonFlx.aml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/XCPonSxI.aml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/XCPonUSB.aml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/ifdata_CAN.a2l +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/ifdata_Eth.a2l +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/ifdata_Flx.a2l +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/ifdata_SxI.a2l +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/aml/ifdata_USB.a2l +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/asam/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/asam/types.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/asamkeydll.c +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/asamkeydll.sh +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/checksum.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cmdline.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/config/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/config/legacy.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/constants.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/bin.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/blockmem.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/daqlist.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/event.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/extension_wrapper.cpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/helper.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/mcobject.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/cpp_ext/tsqueue.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/optimize/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/optimize/binpacking.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/scheduler.cpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/scheduler.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/stim.cpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/stim.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/daq_stim/stim_wrapper.cpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/dllif.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/errormatrix.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_can.toml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_can_user.toml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_can_vector.json +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_can_vector.toml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_eth.toml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_nixnet.json +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_socket_can.toml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_sxi.json +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/conf_sxi.toml +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/run_daq.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/xcp_policy.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/xcp_read_benchmark.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/xcp_skel.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/xcp_unlock.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/xcp_user_supplied_driver.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/xcphello.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/examples/xcphello_recorder.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/master/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/master/errorhandler.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/master/master.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/py.typed +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/build_clang.cmd +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/build_clang.sh +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/build_gcc.cmd +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/build_gcc.sh +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/build_gcc_arm.sh +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/lz4.c +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/lz4.h +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/lz4hc.c +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/lz4hc.h +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/mio.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/reader.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/reco.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/recorder.rst +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/rekorder.cpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/rekorder.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/setup.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/test_reko.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/unfolder.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/wrap.cpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/recorder/writer.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/pyxcp_probe_can_drivers.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/xcp_examples.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/xcp_fetch_a2l.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/xcp_id_scanner.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/xcp_info.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/xcp_profile.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/scripts/xmraw_converter.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/stim/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_asam_types.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_binpacking.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_can.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_checksum.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_daq.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_daq_opt.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_frame_padding.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_master.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_transport.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/tests/test_utils.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/timing.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/base.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/base_transport.hpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/can.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/eth.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/sxi.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/transport_wrapper.cpp +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/transport/usb_transport.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/types.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/utils.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/vector/__init__.py +0 -0
- {pyxcp-0.22.32 → pyxcp-0.22.34}/pyxcp/vector/map.py +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pyxcp
|
|
3
|
-
Version: 0.22.
|
|
3
|
+
Version: 0.22.34
|
|
4
4
|
Summary: Universal Calibration Protocol for Python
|
|
5
5
|
License: LGPLv3
|
|
6
6
|
Keywords: automotive,ecu,xcp,asam,autosar
|
|
7
7
|
Author: Christoph Schueler
|
|
8
8
|
Author-email: cpu.gems@googlemail.com
|
|
9
|
-
Requires-Python: >=3.
|
|
9
|
+
Requires-Python: >=3.10,<4.0
|
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
11
|
Classifier: Intended Audience :: Developers
|
|
12
12
|
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
|
|
13
13
|
Classifier: License :: Other/Proprietary License
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.8
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
21
|
Classifier: Topic :: Scientific/Engineering
|
|
22
22
|
Classifier: Topic :: Software Development
|
|
23
23
|
Requires-Dist: bandit (>=1.7.8,<2.0.0)
|
|
@@ -27,11 +27,11 @@ Requires-Dist: line-profiler-pycharm (>=1.1.0,<2.0.0)
|
|
|
27
27
|
Requires-Dist: mako (>=1.2.4,<2.0.0)
|
|
28
28
|
Requires-Dist: pyserial (>=3.5,<4.0)
|
|
29
29
|
Requires-Dist: python-can (>=4.2.2,<5.0.0)
|
|
30
|
-
Requires-Dist: pytz (>=
|
|
30
|
+
Requires-Dist: pytz (>=2025.2,<2026.0)
|
|
31
31
|
Requires-Dist: pyusb (>=1.2.1,<2.0.0)
|
|
32
|
-
Requires-Dist: rich (>=
|
|
32
|
+
Requires-Dist: rich (>=14.0.0,<15.0.0)
|
|
33
33
|
Requires-Dist: toml (>=0.10.2,<0.11.0)
|
|
34
|
-
Requires-Dist: tomlkit (>=0.
|
|
34
|
+
Requires-Dist: tomlkit (>=0.13.3,<0.14.0)
|
|
35
35
|
Requires-Dist: traitlets (<=5.11.2)
|
|
36
36
|
Requires-Dist: uptime (>=3.0.1,<4.0.0)
|
|
37
37
|
Project-URL: Homepage, https://github.com/christoph2/pyxcp
|
|
@@ -27,8 +27,8 @@ sphinx-click = ">=3.0.2"
|
|
|
27
27
|
typeguard = ">=2.13.3"
|
|
28
28
|
xdoctest = {extras = ["colors"], version = ">=0.15.10"}
|
|
29
29
|
myst-parser = {version = ">=0.16.1"}
|
|
30
|
-
ruff = "^0.
|
|
31
|
-
pre-commit-hooks = "^
|
|
30
|
+
ruff = "^0.12.0"
|
|
31
|
+
pre-commit-hooks = "^5.0.0"
|
|
32
32
|
|
|
33
33
|
[project]
|
|
34
34
|
name = "pyxcp"
|
|
@@ -37,7 +37,7 @@ dynamic = ["license", "readme", "authors", "requires-python", "description", "cl
|
|
|
37
37
|
[tool.poetry]
|
|
38
38
|
authors = ["Christoph Schueler <cpu.gems@googlemail.com>"]
|
|
39
39
|
name = "pyxcp"
|
|
40
|
-
version = "0.22.
|
|
40
|
+
version = "0.22.34"
|
|
41
41
|
readme = "README.md"
|
|
42
42
|
description = "Universal Calibration Protocol for Python"
|
|
43
43
|
keywords = ["automotive", "ecu", "xcp", "asam", "autosar"]
|
|
@@ -75,21 +75,21 @@ include = [
|
|
|
75
75
|
]
|
|
76
76
|
|
|
77
77
|
[tool.poetry.dependencies]
|
|
78
|
-
python = "^3.
|
|
78
|
+
python = "^3.10"
|
|
79
79
|
construct = "^2.10.68"
|
|
80
80
|
mako = "^1.2.4"
|
|
81
81
|
pyserial = "^3.5"
|
|
82
82
|
pyusb = "^1.2.1"
|
|
83
83
|
python-can = "^4.2.2"
|
|
84
84
|
uptime = "^3.0.1"
|
|
85
|
-
rich = "^
|
|
85
|
+
rich = "^14.0.0"
|
|
86
86
|
chardet = "^5.2.0"
|
|
87
87
|
traitlets = "<=5.11.2"
|
|
88
88
|
line-profiler-pycharm = "^1.1.0"
|
|
89
89
|
toml = "^0.10.2"
|
|
90
90
|
bandit = "^1.7.8"
|
|
91
|
-
tomlkit = "^0.
|
|
92
|
-
pytz = "^
|
|
91
|
+
tomlkit = "^0.13.3"
|
|
92
|
+
pytz = "^2025.2"
|
|
93
93
|
|
|
94
94
|
[tool.poetry.scripts]
|
|
95
95
|
pyxcp-probe-can-drivers = "pyxcp.scripts.pyxcp_probe_can_drivers:main"
|
|
@@ -167,23 +167,14 @@ exclude = '''
|
|
|
167
167
|
|
|
168
168
|
[tool.cibuildwheel]
|
|
169
169
|
build-verbosity = 3
|
|
170
|
-
#test-command = "
|
|
170
|
+
#test-command = "pya2l {package}/tests"
|
|
171
171
|
|
|
172
|
-
build = "cp3{
|
|
173
|
-
skip = ["
|
|
172
|
+
build = "cp3{10,11,12,13,14}-*"
|
|
173
|
+
skip = ["*_i686", "*-musllinux*"]
|
|
174
174
|
build-frontend = "build"
|
|
175
175
|
|
|
176
|
-
[tool.cibuildwheel.macos]
|
|
177
|
-
archs = ["x86_64", "universal2", "arm64"]
|
|
178
|
-
|
|
179
176
|
[tool.cibuildwheel.windows]
|
|
180
|
-
archs = ["AMD64"]
|
|
181
|
-
|
|
182
|
-
[tool.cibuildwheel.linux]
|
|
183
|
-
# archs = ["auto", "aarch64"]
|
|
184
|
-
archs = ["x86_64", "aarch64"]
|
|
185
|
-
# before-all = "yum install -y libffi openssl openssl-devel gcc libpython3-dev"
|
|
186
|
-
manylinux-x86_64-image = "manylinux_2_28"
|
|
177
|
+
archs = ["AMD64"]
|
|
187
178
|
|
|
188
179
|
[tool.pyright]
|
|
189
180
|
include = ["pyxcp", "build_ext.py"]
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""Convert pyXCPs .xmraw files to common data formats.
|
|
2
|
-
"""
|
|
1
|
+
"""Convert pyXCPs .xmraw files to common data formats."""
|
|
3
2
|
|
|
4
3
|
import csv
|
|
5
4
|
import logging
|
|
@@ -318,8 +317,7 @@ class MdfConverter(CollectRows, XcpLogFileDecoder):
|
|
|
318
317
|
time_flags=FLAG_HD_TIME_OFFSET_VALID,
|
|
319
318
|
)
|
|
320
319
|
hdr.comment = f"""<HDcomment><TX>Timezone: {timestamp_info.timezone}</TX></HDcomment>""" # Test-Comment.
|
|
321
|
-
mdf4 = MDF(version="4.10")
|
|
322
|
-
mdf4.header = hdr
|
|
320
|
+
mdf4 = MDF(version="4.10", header=hdr)
|
|
323
321
|
for idx, arr in enumerate(self.tables):
|
|
324
322
|
signals = []
|
|
325
323
|
timestamps = arr.timestamp0
|
|
@@ -369,7 +367,8 @@ class SqliteConverter(XcpLogFileDecoder):
|
|
|
369
367
|
self.create_table(sc)
|
|
370
368
|
self.logger.info(f"Creating table {sc.name!r}.")
|
|
371
369
|
self.insert_stmt[sc.name] = (
|
|
372
|
-
f"""INSERT INTO {sc.name}({', '.join(['timestamp0', 'timestamp1'] + [r.name for r in sc.arr])})
|
|
370
|
+
f"""INSERT INTO {sc.name}({', '.join(['timestamp0', 'timestamp1'] + [r.name for r in sc.arr])})"""
|
|
371
|
+
f""" VALUES({', '.join(["?" for _ in range(len(sc.arr) + 2)])})"""
|
|
373
372
|
)
|
|
374
373
|
|
|
375
374
|
def on_finalize(self) -> None:
|
|
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
|
|
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
|