lstosa 0.10.5__tar.gz → 0.10.6__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.
- {lstosa-0.10.5 → lstosa-0.10.6}/PKG-INFO +1 -1
- {lstosa-0.10.5 → lstosa-0.10.6}/src/lstosa.egg-info/PKG-INFO +1 -1
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/_version.py +2 -2
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/paths.py +3 -4
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/closer.py +7 -2
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/gain_selection.py +2 -2
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/provprocess.py +8 -6
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/cliopts.py +7 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/.coveragerc +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/.gitignore +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/.mailmap +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/.pre-commit-config.yaml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/.readthedocs.yml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/LICENSE +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/MANIFEST.in +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/README.md +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/codemeta.json +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/dev/mysql.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/Makefile +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/_static/logo_lstosa.png +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/authors.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/components/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/conf.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/configuration.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/contribute.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/documents/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/howto/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/introduction/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/introduction/reduction_steps_lstchain.png +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/jobs.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/make.bat +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/nightsummary.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/provenance.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/references.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/reports.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/scripts/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/troubleshooting/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/utils.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/veto.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/workflow/LSTOSA_flow.png +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/docs/workflow/index.rst +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/environment.yml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/extra/example_sequencer.txt +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/extra/history_files/sequence_LST1_04183.history +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/extra/history_files/sequence_LST1_04183_failed.history +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/extra/history_files/sequence_LST1_04183_oneline.history +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/extra/history_files/sequence_LST1_04185.0010.history +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/extra/sacct_output.csv +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/extra/squeue_output.csv +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/pyproject.toml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/setup.cfg +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/lstosa.egg-info/SOURCES.txt +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/lstosa.egg-info/dependency_links.txt +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/lstosa.egg-info/entry_points.txt +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/lstosa.egg-info/requires.txt +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/lstosa.egg-info/top_level.txt +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/configs/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/configs/config.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/configs/datamodel.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/configs/options.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/configs/sequencer.cfg +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/conftest.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/high_level/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/high_level/selection_cuts.toml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/high_level/significance.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/high_level/tests/test_significance.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/job.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/database.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/extract.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/nightsummary.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/set_source_coordinates.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/tests/test_database.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/tests/test_extract.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/tests/test_nightsummary.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/nightsummary/tests/test_source_coordinates.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/osadb.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/provenance/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/provenance/capture.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/provenance/config/definition.yaml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/provenance/config/environment.yaml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/provenance/config/logger.yaml +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/provenance/io.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/provenance/utils.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/raw.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/report.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/autocloser.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/calibration_pipeline.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/copy_datacheck.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/datasequence.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/reprocess_longterm.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/reprocessing.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/sequencer.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/sequencer_webmaker.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/show_run_summary.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/show_run_summary_tcu.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/simulate_processing.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/tests/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/tests/test_osa_scripts.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/scripts/update_source_catalog.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/test_jobs.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/test_osa.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/test_osadb.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/test_paths.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/test_raw.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/test_report.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/tests/test_veto.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/iofile.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/logging.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/mail.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/register.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/tests/test_iofile.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/tests/test_utils.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/utils/utils.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/version.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/veto.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/webserver/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/webserver/utils.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/workflow/__init__.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/workflow/dl3.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/workflow/stages.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/workflow/tests/test_dl3.py +0 -0
- {lstosa-0.10.5 → lstosa-0.10.6}/src/osa/workflow/tests/test_stages.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lstosa
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.6
|
|
4
4
|
Summary: Onsite analysis pipeline for the CTA LST-1
|
|
5
5
|
Author: María Láinez, José Enrique Ruiz, Lab Saha, Andrés Baquero, José Luis Contreras, Maximilian Linhoff
|
|
6
6
|
Author-email: Daniel Morcuende <dmorcuen@ucm.es>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lstosa
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.6
|
|
4
4
|
Summary: Onsite analysis pipeline for the CTA LST-1
|
|
5
5
|
Author: María Láinez, José Enrique Ruiz, Lab Saha, Andrés Baquero, José Luis Contreras, Maximilian Linhoff
|
|
6
6
|
Author-email: Daniel Morcuende <dmorcuen@ucm.es>
|
|
@@ -9,9 +9,8 @@ from typing import List
|
|
|
9
9
|
import lstchain
|
|
10
10
|
from astropy.table import Table
|
|
11
11
|
from lstchain.onsite import (find_systematics_correction_file,
|
|
12
|
-
find_time_calibration_file
|
|
13
|
-
|
|
14
|
-
search_filter
|
|
12
|
+
find_time_calibration_file,
|
|
13
|
+
find_filter_wheels)
|
|
15
14
|
|
|
16
15
|
from osa.configs import options
|
|
17
16
|
from osa.configs.config import DEFAULT_CFG, cfg
|
|
@@ -142,7 +141,7 @@ def get_calibration_filename(run_id: int, prod_id: str) -> Path:
|
|
|
142
141
|
mongodb = cfg.get("database", "caco_db")
|
|
143
142
|
try:
|
|
144
143
|
# Cast run_id to int to avoid problems with numpy int64 encoding in MongoDB
|
|
145
|
-
options.filters =
|
|
144
|
+
options.filters = find_filter_wheels(int(run_id), mongodb)
|
|
146
145
|
except IOError:
|
|
147
146
|
log.warning("No filter information found in database. Assuming positions 52.")
|
|
148
147
|
options.filters = 52
|
|
@@ -193,7 +193,6 @@ def post_process_files(seq_list: list):
|
|
|
193
193
|
output_files_set = set(Path(options.directory).rglob("*Run*"))
|
|
194
194
|
|
|
195
195
|
DL1AB_RE = re.compile(rf"{options.dl1_prod_id}/dl1.*.(?:h5|hdf5|hdf)")
|
|
196
|
-
DL2_RE = re.compile(f"{options.dl2_prod_id}/dl2.*.(?:h5|hdf5|hdf)")
|
|
197
196
|
MUONS_RE = re.compile(r"muons.*.fits")
|
|
198
197
|
DATACHECK_RE = re.compile(r"datacheck_dl1.*.(?:h5|hdf5|hdf)")
|
|
199
198
|
INTERLEAVED_RE = re.compile(r"interleaved.*.(?:h5|hdf5|hdf)")
|
|
@@ -201,13 +200,16 @@ def post_process_files(seq_list: list):
|
|
|
201
200
|
pattern_files = dict(
|
|
202
201
|
[
|
|
203
202
|
("DL1AB", DL1AB_RE),
|
|
204
|
-
("DL2", DL2_RE),
|
|
205
203
|
("MUON", MUONS_RE),
|
|
206
204
|
("DATACHECK", DATACHECK_RE),
|
|
207
205
|
("INTERLEAVED", INTERLEAVED_RE),
|
|
208
206
|
]
|
|
209
207
|
)
|
|
210
208
|
|
|
209
|
+
if not options.no_dl2:
|
|
210
|
+
DL2_RE = re.compile(f"{options.dl2_prod_id}/dl2.*.(?:h5|hdf5|hdf)")
|
|
211
|
+
pattern_files["DL2"] = DL2_RE
|
|
212
|
+
|
|
211
213
|
for concept, pattern_re in pattern_files.items():
|
|
212
214
|
log.info(f"Post processing {concept} files, {len(output_files_set)} files left")
|
|
213
215
|
|
|
@@ -368,6 +370,9 @@ def extract_provenance(seq_list):
|
|
|
368
370
|
nightdir,
|
|
369
371
|
options.prod_id,
|
|
370
372
|
]
|
|
373
|
+
if options.no_dl2:
|
|
374
|
+
cmd.append("--no-dl2")
|
|
375
|
+
|
|
371
376
|
if not options.simulate and not options.test and shutil.which("sbatch") is not None:
|
|
372
377
|
subprocess.run(cmd, check=True)
|
|
373
378
|
else:
|
|
@@ -206,8 +206,8 @@ def check_failed_jobs(date: str, output_basedir: Path = None):
|
|
|
206
206
|
@click.option("--check", is_flag=True, default=False, help="Check for failed jobs.")
|
|
207
207
|
@click.argument("dates-file", type=click.Path(exists=True, path_type=Path))
|
|
208
208
|
@click.argument("output-basedir", type=click.Path(path_type=Path))
|
|
209
|
-
@click.option("-s", "--start-time", type=int, default=10)
|
|
210
|
-
@click.option("-e", "--end-time", type=int, default=18)
|
|
209
|
+
@click.option("-s", "--start-time", type=int, default=10, help="Time to (re)start gain selection in HH format.")
|
|
210
|
+
@click.option("-e", "--end-time", type=int, default=18, help="Time to stop gain selection in HH format.")
|
|
211
211
|
def main(
|
|
212
212
|
dates_file: Path = None,
|
|
213
213
|
output_basedir: Path = None,
|
|
@@ -442,15 +442,17 @@ def produce_provenance(session_log_filename, base_filename):
|
|
|
442
442
|
calibration_to_dl1 = define_paths(
|
|
443
443
|
"calibration_to_dl1", PATH_DL1, options.dl1_prod_id, base_filename
|
|
444
444
|
)
|
|
445
|
-
calibration_to_dl2 = define_paths(
|
|
446
|
-
"calibration_to_dl2", PATH_DL2, options.dl2_prod_id, base_filename
|
|
447
|
-
)
|
|
448
445
|
calibration_to_dl1_lines = calibration_lines + dl1_lines[1:]
|
|
449
446
|
lines_dl1 = copy.deepcopy(calibration_to_dl1_lines)
|
|
450
|
-
calibration_to_dl2_lines = calibration_to_dl1_lines + dl1_dl2_lines[1:]
|
|
451
|
-
lines_dl2 = copy.deepcopy(calibration_to_dl2_lines)
|
|
452
447
|
produce_provenance_files(lines_dl1, calibration_to_dl1)
|
|
453
|
-
|
|
448
|
+
|
|
449
|
+
if not options.no_dl2:
|
|
450
|
+
calibration_to_dl2 = define_paths(
|
|
451
|
+
"calibration_to_dl2", PATH_DL2, options.dl2_prod_id, base_filename
|
|
452
|
+
)
|
|
453
|
+
calibration_to_dl2_lines = calibration_to_dl1_lines + dl1_dl2_lines[1:]
|
|
454
|
+
lines_dl2 = copy.deepcopy(calibration_to_dl2_lines)
|
|
455
|
+
produce_provenance_files(lines_dl2, calibration_to_dl2)
|
|
454
456
|
|
|
455
457
|
|
|
456
458
|
def main():
|
|
@@ -326,6 +326,12 @@ def provprocess_argparser():
|
|
|
326
326
|
dest="quit",
|
|
327
327
|
help="use this flag to reset session and remove log file",
|
|
328
328
|
)
|
|
329
|
+
parser.add_argument(
|
|
330
|
+
"--no-dl2",
|
|
331
|
+
action="store_true",
|
|
332
|
+
default=False,
|
|
333
|
+
help="Do not produce DL2 files (default False)",
|
|
334
|
+
)
|
|
329
335
|
parser.add_argument(
|
|
330
336
|
"drs4_pedestal_run_id", help="Number of the drs4_pedestal used in the calibration"
|
|
331
337
|
)
|
|
@@ -354,6 +360,7 @@ def provprocessparsing():
|
|
|
354
360
|
options.configfile = opts.config.resolve()
|
|
355
361
|
options.filter = opts.filter
|
|
356
362
|
options.quit = opts.quit
|
|
363
|
+
options.no_dl2 = opts.no_dl2
|
|
357
364
|
set_prod_ids()
|
|
358
365
|
|
|
359
366
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|