From 320d12fc9cb2fab314e40a267fcfb6f1e9070fd0 Mon Sep 17 00:00:00 2001 From: Brian Gunnarson <49216024+bgunnar5@users.noreply.github.com> Date: Wed, 14 Feb 2024 10:45:04 -0800 Subject: [PATCH] feature/revamped status (#464) * feature/new-status (#442) * add backend functionality for merlin status * add frontend functionality for merlin status * add tests for merlin status * run fix-style and remove import of deprecated function * update CHANGELOG * add more logging statements, make better use of glob * run fix-style * clean up test files a bit * fix test suite after step_name_map mod * add avg/std dev run time calculations to status * modify status tests to accommodate new avg/std dev calculations * fix linter issues * fix lint issue and add test for avg/std dev calc * feature/detailed-status (#451) * Version/1.11.0 (#449) * fix default worker bug with all steps * version bump and requirements fix * Bugfix/filename-special-vars (#425) * fix file naming bug * fix filename bug with variable as study name * add tests for the file name special vars changes * modify changelog * implement Luc's suggestions * remove replace line * Create dependabot-changelog-updater.yml * testing outputs of modifying changelog * delete dependabot-changelog-updater * feature/pdf-docs (#427) * first attempt at adding pdf * fixing build error * modify changelog to show docs changes * fix errors Luc found in the build logs * trying out removal of latex * reverting latex changes back * uncommenting the latex_elements settings * adding epub to see if latex will build * adding a latex engine variable to conf * fix naming error with latex_engine * attempting to add a logo to the pdf build * testing an override to the searchtools file * revert back to not using searchtools override * update changelog * bugfix/openfoam_singularity_issues (#426) * fix openfoam_singularity issues * update requirements and descriptions for openfoam examples * bugfix/output-path-substitution (#430) * fix bug with output_path and variable substitution * add tests for cli substitutions * bugfix/scheduler-permission-error (#436) * Release/1.10.2 (#437) * bump version to 1.10.2 * bump version in CHANGELOG * resolve develop to main merge issues (#439) * fix default worker bug with all steps * version bump and requirements fix * dependabot/certifi-requests-pygments (#441) * Bump certifi from 2022.12.7 to 2023.7.22 in /docs Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.12.7 to 2023.7.22. - [Commits](https://github.com/certifi/python-certifi/compare/2022.12.07...2023.07.22) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production ... Signed-off-by: dependabot[bot] * add all dependabot changes and update CHANGELOG --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bugfix/server-pip-redis-conf (#443) * add *.conf to the MANIFEST file so pip will grab the redis.conf file * add note explaining how to fix a hanging merlin server start * modify CHANGELOG * add second export option to docs and fix typo * bump to version 1.10.3 (#444) * bugfix/sphinx-5.3.0-requirement (#446) * Version/1.10.3 (#445) * fix default worker bug with all steps * version bump and requirements fix * Bugfix/filename-special-vars (#425) * fix file naming bug * fix filename bug with variable as study name * add tests for the file name special vars changes * modify changelog * implement Luc's suggestions * remove replace line * Create dependabot-changelog-updater.yml * testing outputs of modifying changelog * delete dependabot-changelog-updater * feature/pdf-docs (#427) * first attempt at adding pdf * fixing build error * modify changelog to show docs changes * fix errors Luc found in the build logs * trying out removal of latex * reverting latex changes back * uncommenting the latex_elements settings * adding epub to see if latex will build * adding a latex engine variable to conf * fix naming error with latex_engine * attempting to add a logo to the pdf build * testing an override to the searchtools file * revert back to not using searchtools override * update changelog * bugfix/openfoam_singularity_issues (#426) * fix openfoam_singularity issues * update requirements and descriptions for openfoam examples * bugfix/output-path-substitution (#430) * fix bug with output_path and variable substitution * add tests for cli substitutions * bugfix/scheduler-permission-error (#436) * Release/1.10.2 (#437) * bump version to 1.10.2 * bump version in CHANGELOG * resolve develop to main merge issues (#439) * fix default worker bug with all steps * version bump and requirements fix * dependabot/certifi-requests-pygments (#441) * Bump certifi from 2022.12.7 to 2023.7.22 in /docs Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.12.7 to 2023.7.22. - [Commits](https://github.com/certifi/python-certifi/compare/2022.12.07...2023.07.22) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production ... Signed-off-by: dependabot[bot] * add all dependabot changes and update CHANGELOG --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bugfix/server-pip-redis-conf (#443) * add *.conf to the MANIFEST file so pip will grab the redis.conf file * add note explaining how to fix a hanging merlin server start * modify CHANGELOG * add second export option to docs and fix typo * bump to version 1.10.3 (#444) --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * change hardcoded sphinx requirement * update CHANGELOG --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feature/vlauncher (#447) * fix file naming error for iterative workflows * fixed small bug with new filepath naming * add VLAUNCHER functionality * add docs for VLAUNCHER and modify changelog * re-word docs and fix table format * add a test for vlauncher * run fix-style and add a test for vlauncher * Add the find_vlaunch_var and setup_vlaunch functions. The numeric value of the shell variables may not be defined until run time, so replace with variable strings instead of values. Consolidate the commands into one function. * Add variable set for (t)csh. * Run fix-style * make step settings the defaults and ignore commented lines * add some additional tests * remove regex library import --------- Co-authored-by: Joseph M. Koning * release/1.11.0 (#448) * bugfix/skewed-sample-hierarchy (#450) * add patch for skewed sample hierarchy/additional samples * update changelog * catch narrower range of exceptions --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joseph M. Koning * add functionality for the detailed-status command * add tests for detailed-status * fix linter issues * update changelog * general cleanup and add log statements * slightly modify two tests * default status renderer now uses json status format * remove inaccurate comment * bugfix/lsf-gpu-typo (#453) * fix typo in batch.py that causes a bug * change print statements to log statements * release/1.11.1 (#454) * Add Pytest Fixtures to Test Suite (#456) * begin work on integration refactor; create fixtures and initial tests * update CHANGELOG and run fix-style * add pytest fixtures and README explaining them * add tests to demonstrate how to use the fixtures * move/rename some files and modify integration's README * add password change to redis.pass file * fix lint issues * modify redis pwd for test server to be constant for each test * fix lint issue only caught on github ci * Bugfix for WEAVE CI (#457) * begin work on integration refactor; create fixtures and initial tests * update CHANGELOG and run fix-style * add pytest fixtures and README explaining them * add tests to demonstrate how to use the fixtures * move/rename some files and modify integration's README * add password change to redis.pass file * fix lint issues * modify redis pwd for test server to be constant for each test * fix lint issue only caught on github ci * add fix for merlin server startup * update CHANGELOG * bugfix/monitor-shutdown (#452) * add celery query to see if workers still processing tasks * fix merlin status when using redis as broker * fix consumer count bug and run fix-style * fix linter issues * update changelog * update docs for monitor * remove unused exception I previously added * first attempt at using pytest fixtures for monitor tests * (partially) fix launch_workers fixture so it can be used in multiple classes * fix linter issues and typo on pytest decorator * update black's python version and fix style issue * remove print statements from celeryadapter.py * workers manager is now allowed to be used as a context manager * add one thing to changelog and remove print statement * Add the missing restart keyword to the specification docs. (#459) * add Jeremy's suggestion to change vars option to output-path * remove unnecessary lines from CHANGELOG --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joseph M. Koning Co-authored-by: Joe Koning * feature/queue info (#461) * remove a merge conflict statement that was missed * add queue-info functionality * add tests for queue-info * update CHANGELOG * add try/except for forceful termination of test workers * change github workflow to use py38 with black instead of py36 * run fix-style with py 3.12 and fix a typo in a test * add filetype check for dump option * add banner print statement * docs/revamped status (#462) * fix broken image link in README * add new commands to the command line page * add monitoring docs layout and complete status cmds page * fix bug with dumping queue-info to files * add docs for queue-info * add documentation for 'query-workers' * add reference to new query-workers docs and split a paragraph * fix small bug with --steps option of monitor * add documentation for monitor command * update CHANGELOG * fix dump-csv image for queue-info --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joseph M. Koning Co-authored-by: Joe Koning --- .github/workflows/push-pr_workflow.yml | 6 +- CHANGELOG.md | 59 +- README.md | 2 +- .../monitor-flowchart.png | Bin 0 -> 49390 bytes .../status-step-2-incomplete.png | Bin 0 -> 45627 bytes .../monitor_for_allocation/status-success.png | Bin 0 -> 47186 bytes .../monitor_for_allocation/steps-demo.png | Bin 0 -> 47711 bytes .../queues_and_workers/active-queues.png | Bin 0 -> 19662 bytes .../queues_and_workers/connected-workers.png | Bin 0 -> 28087 bytes .../queues_and_workers/dump-csv.png | Bin 0 -> 40059 bytes .../queues_and_workers/dump-json.png | Bin 0 -> 43697 bytes .../queues_and_workers/no-active-queues.png | Bin 0 -> 20105 bytes .../no-connected-workers.png | Bin 0 -> 19790 bytes .../query-workers-spec-all-workers.png | Bin 0 -> 26557 bytes .../query-workers-spec-option.png | Bin 0 -> 29054 bytes .../queues_and_workers/queue-info-no-vars.png | Bin 0 -> 31548 bytes .../queue-info-with-vars.png | Bin 0 -> 33009 bytes .../queues-example-all-workers.png | Bin 0 -> 27058 bytes .../queues-example-filtered-workers.png | Bin 0 -> 24183 bytes .../specific-queues-active.png | Bin 0 -> 21955 bytes .../specific-queues-inactive.png | Bin 0 -> 21874 bytes .../specification-option.png | Bin 0 -> 26768 bytes .../queues_and_workers/steps-option.png | Bin 0 -> 25137 bytes .../workers-option-with-regex.png | Bin 0 -> 24539 bytes .../workers-option-with-worker-names.png | Bin 0 -> 25095 bytes .../monitoring/status_cmds/ascii-error.png | Bin 0 -> 30682 bytes .../images/monitoring/status_cmds/cb-help.png | Bin 0 -> 31247 bytes .../monitoring/status_cmds/disable-pager.png | Bin 0 -> 82645 bytes .../monitoring/status_cmds/disable-theme.png | Bin 0 -> 52574 bytes .../monitoring/status_cmds/dump-csv.png | Bin 0 -> 44922 bytes .../monitoring/status_cmds/dump-json.png | Bin 0 -> 55088 bytes .../status_cmds/filter-max-tasks.png | Bin 0 -> 70916 bytes .../monitoring/status_cmds/filter-prompt.png | Bin 0 -> 46241 bytes .../status_cmds/filter-return-code.png | Bin 0 -> 43465 bytes .../monitoring/status_cmds/filter-steps.png | Bin 0 -> 59783 bytes .../status_cmds/filter-task-queues.png | Bin 0 -> 76736 bytes .../status_cmds/filter-task-status.png | Bin 0 -> 59832 bytes .../monitoring/status_cmds/filter-workers.png | Bin 0 -> 92673 bytes .../monitoring/status_cmds/inside-pager.png | Bin 0 -> 60180 bytes .../monitoring/status_cmds/layout-table.png | Bin 0 -> 103436 bytes .../status_cmds/max-tasks-prompt.png | Bin 0 -> 55625 bytes .../status_cmds/multiple-studies.png | Bin 0 -> 20539 bytes .../monitoring/status_cmds/outside-pager.png | Bin 0 -> 24756 bytes .../images/monitoring/status_cmds/prompt.png | Bin 0 -> 25376 bytes .../images/monitoring/status_cmds/status.png | Bin 0 -> 49713 bytes docs/user_guide/command_line.md | 245 +++- docs/user_guide/monitoring/index.md | 33 + .../monitoring/monitor_for_allocation.md | 661 +++++++++ .../monitoring/queues_and_workers.md | 608 ++++++++ docs/user_guide/monitoring/status_cmds.md | 702 +++++++++ merlin/common/dumper.py | 151 ++ merlin/common/tasks.py | 223 ++- merlin/config/celeryconfig.py | 1 + merlin/display.py | 319 +++- merlin/exceptions/__init__.py | 13 +- merlin/main.py | 312 +++- merlin/router.py | 66 +- merlin/spec/expansion.py | 3 +- merlin/spec/specification.py | 191 ++- merlin/study/celeryadapter.py | 154 +- merlin/study/dag.py | 16 +- merlin/study/status.py | 1056 ++++++++++++++ merlin/study/status_constants.py | 44 + merlin/study/status_renderers.py | 412 ++++++ merlin/study/step.py | 318 +++- merlin/study/study.py | 31 +- merlin/utils.py | 141 +- mkdocs.yml | 15 +- tests/celery_test_workers.py | 7 +- tests/integration/run_tests.py | 5 +- tests/unit/study/__init__.py | 29 + .../status_test_files/combine_status_files.py | 113 ++ .../study/status_test_files/shared_tests.py | 307 ++++ .../status_test_files/status_test_spec.yaml | 79 + .../dummy.txt | 1 + .../cancel_step/MERLIN_STATUS.json | 17 + .../cancel_step/status.lock | 0 .../fail_step/MERLIN_STATUS.json | 17 + .../fail_step/status.lock | 0 .../MERLIN_STATUS.json | 21 + .../GREET.hello.LEAVE.goodbye/status.lock | 0 .../GREET.hola.LEAVE.adios/MERLIN_STATUS.json | 21 + .../GREET.hola.LEAVE.adios/status.lock | 0 .../just_samples/MERLIN_STATUS.json | 45 + .../just_samples/status.lock | 0 .../merlin_info/samples.csv | 5 + .../status_test_spec.expanded.yaml | 112 ++ .../merlin_info/status_test_spec.orig.yaml | 80 + .../merlin_info/status_test_spec.partial.yaml | 118 ++ .../GREET.hello/MERLIN_STATUS.json | 47 + .../GREET.hello/status.lock | 0 .../GREET.hola/MERLIN_STATUS.json | 47 + .../params_and_samples/GREET.hola/status.lock | 0 .../status_test_variables.py | 620 ++++++++ tests/unit/study/test_celeryadapter.py | 265 ++++ tests/unit/study/test_detailed_status.py | 1288 +++++++++++++++++ tests/unit/study/test_status.py | 329 +++++ 97 files changed, 9103 insertions(+), 252 deletions(-) create mode 100644 docs/assets/images/monitoring/monitor_for_allocation/monitor-flowchart.png create mode 100644 docs/assets/images/monitoring/monitor_for_allocation/status-step-2-incomplete.png create mode 100644 docs/assets/images/monitoring/monitor_for_allocation/status-success.png create mode 100644 docs/assets/images/monitoring/monitor_for_allocation/steps-demo.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/active-queues.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/connected-workers.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/dump-csv.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/dump-json.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/no-active-queues.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/no-connected-workers.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/query-workers-spec-all-workers.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/query-workers-spec-option.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/queue-info-no-vars.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/queue-info-with-vars.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/queues-example-all-workers.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/queues-example-filtered-workers.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/specific-queues-active.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/specific-queues-inactive.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/specification-option.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/steps-option.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/workers-option-with-regex.png create mode 100644 docs/assets/images/monitoring/queues_and_workers/workers-option-with-worker-names.png create mode 100644 docs/assets/images/monitoring/status_cmds/ascii-error.png create mode 100644 docs/assets/images/monitoring/status_cmds/cb-help.png create mode 100644 docs/assets/images/monitoring/status_cmds/disable-pager.png create mode 100644 docs/assets/images/monitoring/status_cmds/disable-theme.png create mode 100644 docs/assets/images/monitoring/status_cmds/dump-csv.png create mode 100644 docs/assets/images/monitoring/status_cmds/dump-json.png create mode 100644 docs/assets/images/monitoring/status_cmds/filter-max-tasks.png create mode 100644 docs/assets/images/monitoring/status_cmds/filter-prompt.png create mode 100644 docs/assets/images/monitoring/status_cmds/filter-return-code.png create mode 100644 docs/assets/images/monitoring/status_cmds/filter-steps.png create mode 100644 docs/assets/images/monitoring/status_cmds/filter-task-queues.png create mode 100644 docs/assets/images/monitoring/status_cmds/filter-task-status.png create mode 100644 docs/assets/images/monitoring/status_cmds/filter-workers.png create mode 100644 docs/assets/images/monitoring/status_cmds/inside-pager.png create mode 100644 docs/assets/images/monitoring/status_cmds/layout-table.png create mode 100644 docs/assets/images/monitoring/status_cmds/max-tasks-prompt.png create mode 100644 docs/assets/images/monitoring/status_cmds/multiple-studies.png create mode 100644 docs/assets/images/monitoring/status_cmds/outside-pager.png create mode 100644 docs/assets/images/monitoring/status_cmds/prompt.png create mode 100644 docs/assets/images/monitoring/status_cmds/status.png create mode 100644 docs/user_guide/monitoring/index.md create mode 100644 docs/user_guide/monitoring/monitor_for_allocation.md create mode 100644 docs/user_guide/monitoring/queues_and_workers.md create mode 100644 docs/user_guide/monitoring/status_cmds.md create mode 100644 merlin/common/dumper.py create mode 100644 merlin/study/status.py create mode 100644 merlin/study/status_constants.py create mode 100644 merlin/study/status_renderers.py create mode 100644 tests/unit/study/__init__.py create mode 100644 tests/unit/study/status_test_files/combine_status_files.py create mode 100644 tests/unit/study/status_test_files/shared_tests.py create mode 100644 tests/unit/study/status_test_files/status_test_spec.yaml create mode 100644 tests/unit/study/status_test_files/status_test_study_20230713-000000/dummy.txt create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/cancel_step/MERLIN_STATUS.json create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/cancel_step/status.lock create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/fail_step/MERLIN_STATUS.json create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/fail_step/status.lock create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hello.LEAVE.goodbye/MERLIN_STATUS.json create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hello.LEAVE.goodbye/status.lock create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hola.LEAVE.adios/MERLIN_STATUS.json create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hola.LEAVE.adios/status.lock create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/just_samples/MERLIN_STATUS.json create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/just_samples/status.lock create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/samples.csv create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.expanded.yaml create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.orig.yaml create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.partial.yaml create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hello/MERLIN_STATUS.json create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hello/status.lock create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hola/MERLIN_STATUS.json create mode 100644 tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hola/status.lock create mode 100644 tests/unit/study/status_test_files/status_test_variables.py create mode 100644 tests/unit/study/test_detailed_status.py create mode 100644 tests/unit/study/test_status.py diff --git a/.github/workflows/push-pr_workflow.yml b/.github/workflows/push-pr_workflow.yml index bef6f8608..eecbf3eeb 100644 --- a/.github/workflows/push-pr_workflow.yml +++ b/.github/workflows/push-pr_workflow.yml @@ -56,9 +56,9 @@ jobs: - name: Lint with Black run: | - python3 -m black --check --line-length $MAX_LINE_LENGTH --target-version py36 merlin - python3 -m black --check --line-length $MAX_LINE_LENGTH --target-version py36 tests - python3 -m black --check --line-length $MAX_LINE_LENGTH --target-version py36 *.py + python3 -m black --check --line-length $MAX_LINE_LENGTH --target-version py38 merlin + python3 -m black --check --line-length $MAX_LINE_LENGTH --target-version py38 tests + python3 -m black --check --line-length $MAX_LINE_LENGTH --target-version py38 *.py - name: Lint with PyLint run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 062dd0487..cc808324f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,17 +6,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- A new command `merlin queue-info` that will print the status of your celery queues + - By default this will only pull information from active queues + - There are options to look for specific queues (`--specific-queues`), queues defined in certain spec files (`--spec`; this is the same functionality as the `merlin status` command prior to this update), and queues attached to certain steps (`--steps`) + - Queue info can be dumped to outfiles with `--dump` +- A new command `merlin detailed-status` that displays task-by-task status information about your study + - This has options to filter by return code, task queues, task statuses, and workers + - You can set a limit on the number of tasks to display + - There are 3 options to modify the output display +- Docs for all of the monitoring commands +- New file `merlin/study/status.py` dedicated to work relating to the status command + - Contains the Status and DetailedStatus classes +- New file `merlin/study/status_renderers.py` dedicated to formatting the output for the detailed-status command +- New file `merlin/common/dumper.py` containing a Dumper object to help dump output to outfiles +- Study name and parameter info now stored in the DAG and MerlinStep objects +- Added functions to `merlin/display.py` that help display status information: + - `display_task_by_task_status` handles the display for the `merlin detailed-status` command + - `display_status_summary` handles the display for the `merlin status` command + - `display_progress_bar` generates and displays a progress bar +- Added new methods to the MerlinSpec class: + - get_worker_step_map() + - get_queue_step_relationship() + - get_tasks_per_step() + - get_step_param_map() +- Added methods to the MerlinStepRecord class to mark status changes for tasks as they run (follows Maestro's StepRecord format mostly) +- Added methods to the Step class: + - establish_params() + - name_no_params() +- Added a property paramater_labels to the MerlinStudy class +- Added two new utility functions: + - dict_deep_merge() that deep merges two dicts into one + - ws_time_to_dt() that converts a workspace timestring (YYYYMMDD-HHMMSS) to a datetime object +- A new celery task `condense_status_files` to be called when sets of samples finish +- Added a celery config setting `worker_cancel_long_running_tasks_on_connection_loss` since this functionality is about to change in the next version of celery +- Tests for the Status and DetailedStatus classes + - this required adding a decent amount of test files to help with the tests; these can be found under the tests/unit/study/status_test_files directory - Pytest fixtures in the `conftest.py` file of the integration test suite - NOTE: an export command `export LC_ALL='C'` had to be added to fix a bug in the WEAVE CI. This can be removed when we resolve this issue for the `merlin server` command - Tests for the `celeryadapter.py` module - New CeleryTestWorkersManager context to help with starting/stopping workers for tests -### Fixed -- The `merlin status` command so that it's consistent in its output whether using redis or rabbitmq as the broker -- The `merlin monitor` command will now keep an allocation up if the queues are empty and workers are still processing tasks -- Add the restart keyword to the specification docs - ### Changed +- Reformatted the entire `merlin status` command + - Now accepts both spec files and workspace directories as arguments + - Removed the --steps flag + - Replaced the --csv flag with the --dump flag + - New functionality: + - Shows step_by_step progress bar for tasks + - Displays a summary of task statuses below the progress bar +- Split the `add_chains_to_chord` function in `merlin/common/tasks.py` into two functions: + - `get_1d_chain` which converts a 2D list of chains into a 1D list + - `launch_chain` which launches the 1D chain +- Pulled the needs_merlin_expansion() method out of the Step class and made it a function instead +- Removed `tabulate_info` function; replaced with tabulate from the tabulate library +- Moved `verify_filepath` and `verify_dirpath` from `merlin/main.py` to `merlin/utils.py` - The entire documentation has been ported to MkDocs and re-organized - *Dark Mode* - New "Getting Started" example for a simple setup tutorial @@ -32,6 +75,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - New "Contact" page with info on reaching Merlin devs - The Merlin tutorial defaults to using Singularity rather than Docker for the OpenFoam example. Minor tutorial fixes have also been applied. +### Fixed +- The `merlin status` command so that it's consistent in its output whether using redis or rabbitmq as the broker +- The `merlin monitor` command will now keep an allocation up if the queues are empty and workers are still processing tasks +- Add the restart keyword to the specification docs +- Cyclical imports and config imports that could easily cause ci issues + ## [1.11.1] ### Fixed - Typo in `batch.py` that caused lsf launches to fail (`ALL_SGPUS` changed to `ALL_GPUS`) diff --git a/README.md b/README.md index 909ba869a..e0f1ca4ff 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ HPC batch systems, since it can scale to a very large number of jobs. The integrated system looks a little something like this: -a typical Merlin workflow +![A Typical Merlin Workflow](docs/assets/images/merlin_arch.png) In this example, here's how it all works: diff --git a/docs/assets/images/monitoring/monitor_for_allocation/monitor-flowchart.png b/docs/assets/images/monitoring/monitor_for_allocation/monitor-flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8d596ea1d4b4ef74d647c2f694baffc9ef5e04 GIT binary patch literal 49390 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 a$GH3LX2qquPT=IhZeG{FR-|S9=sy4+Kon>I literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/monitor_for_allocation/status-step-2-incomplete.png b/docs/assets/images/monitoring/monitor_for_allocation/status-step-2-incomplete.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f2725f38b1d9e5296e87a16f549456b48e2b58 GIT binary patch literal 45627 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�jC%D{dv77wmO*EA;lU!Ti>hUaRCS-+=%&ST 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�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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/monitor_for_allocation/steps-demo.png b/docs/assets/images/monitoring/monitor_for_allocation/steps-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..b98b068d3ecb631ff994f20a056c1f665008aa3d GIT binary patch literal 47711 zcmeEtcT|(j)-Q^HQtb!=3W$Xg6r@7{3%&P_N|W9KF+iw_g(e_P2tj(U(yM}W2)#%N zJ%m7_lmrNY8}L2nd(ZcM_uRYgUF-gJvlfe|%*->hXV0Gf`|UmNwKNnNXjy3~C@2_| zm7eHOP@EB=prDLCOHF>VV3L$T{&&h#NAVFwaX%ZHd~?Q5UR|DoqAZH;;5ilf{+yeV zu_pxuW9#wXsSej%YYK|mZRIEOdao?jNv`3-t+gp_k0Q4sE?~OHkSjUJ1K3*AHXv(QfW^a~I|o zH=>3`04`WG8-aXNRHx6i-v^h!hF*{e%yCY_#X4g)lKcQ4ks6ZPq=bVom^c+HzEA- zIZv8T?kHkj$Fu$^8vW0rCTdz4MzIDNToS^yXKPg+n-s;9@~`xnRi}?^ms6p*jkke$ zc}Iw1BVnS?D8as%i{TFZK@Y9Koj3(mX;~A_U|{k*+*EdD%gJI^c@d7>`c4??`_g>r z`jtqo^m)Hi6wllnLRcN6x}bYU_0va)BlwtV^Y|9mU|jbj6G<8y`()#=0RT<~2v2aZ zd$w{5VU#Aq+uNT?QyAz8k?0J4i;7#I{eEA%QjjaRhizsI&$wUK_SSy$!$w6hk zy#H}w*hJtWvtQGM{JZ(hvN!TQD}t*PEJvQE2~bRpfsJI|rC)cI6i9|zIA*gamIe66 z%hgs@K9G z)AOd`(UdcC~z5;sdMSL2!SDsJu8RjN+1lhA8sxF{VY_yR zMA8k8zc)KYHz{}u6TW{vbxM0&7uGuHdWnJ}v7juiy@-fQFoho}axwW&_quCuxscW) zcf^`LfNvG#N7G>6g*M&H)$g5Q-3hTwX`ssl-1WmQiGx?C!A9xRUB6vV7guKqN~TEF z?_bHP^^udr1lzq}x7hmr6_MpSORWo;X!_{jZyDK}5?%EP3|2gqwf}zm7LQ}H?a$mB z-cQQGwmon`0?^%pK?Dgb#?H91Gdn5_xWB6|De^1{kiMYi*rRP|-TJ{{V$U7r`AQp` ztm)_=4Z~=_kb7t~W+ARTC;Ly{M&803K9k8|-Us~HtsixC;#%Xq{X7*e(ZU}`+BN3N z2P>;5$FZ>cOJ3n$-+R2uhK;t>ERAGw$h34O#yHx5%X=ZrOfDgHr-5rqIJ(ZL9L zXD--1@F&l4m=^{|8mnCw3h!h33E%3<=^uZmY4HeAaSi1+KzK5Tk~tvq7*1CBw=!w= z(hFcExuJw!l?_28vN_F0J{aFakJ%6_i;bgxtVN#q7va4zp z+z(C;ERg3tFDYZ|tkAw5KIdCH2jWN(i?>;H3keDL-Fwdag-;W8OIrOb`P{cy zw%IQxGQ+nD*$F939!Ut_VlMB;J@1hTHJFAaa8z{~vRUFlR3qs*4A?wh+g-IEkwRZX zNf8M7yeRiY!r0L3!(nZQAR&#rzwdKU!8zMn^G`);nx9+gZ1v}*uo1{EZTkXS2r-v0 zMAiKKBq(dDsbv7XNwdbv_mfo-4I-JC4`z?+12^h5lb)-aCUil;yzekr3wizSD3q_f zEft#?(Ld99bY~bdAD8{Cu23@jndme9`xzx-tKzQ&w`RxpNV;BFh9}6(aT^Zrr>k&N zq9@^{A}C;G5OUSLzCl)c#bU2vde8WBoH^1@{YLZ0t*81btYboz8s_d74SA4OldJcW z02es+egPRT0IMs81e|rSK$HWFhMmQ_YGf>ULO$I=ag<&79^b@yi5d^}ri2k1F6$fW zbTTE2AEKFideH|_(XB+{&qOa@g96HC+{cd%yD4_R5qs{b$gLnac*?pi-9_X4h}Xk* zNr6-72GcoyjZYhp_-}?2uCFw_MRhWeN)!~O=NIK8z|De$!+kH|2Yn{lhwW3@g;~8* zxrNz__!j?Gx`^MRjf(=ZKW!!>UKu*yQ+wK;KO)YYzVD*GR4?THrngoVTqe_e>NjY3 zBe-b*U)uxnc@U-2o0mHp9!y`$KB*K@cbY$Vys2tud0J1wi-)s1HFEX}=Q~e%7mG2N zLPAdpe1E}s^tJTSEOD1AMKG`MQ)ozLzLyDHVEEckyClPd2Qg>iQ%2OxYvCVq%z+>K zpWTFIV@tlq|kWPB20*q=fVnyr!WmC?WV;)s(Hz zD8iH12%=uy3w2ub`{E22_pv;xOiz=A8q;ce+3HIuyKTUu!_(DvuSqT%bbAb9<{lYT zWbw$ES;`=N@0hWpj_@73&Wi&tDs(zLj}6>`Dy>dE^l)`tcDZl6;Pa%C)np`sYyKo3S%IZ zxa=1kmQlN1kNEM0Ft`*klIF)qh~>r2(%Y1pw7&A{8US+^DXuA$@KEG$RqJ@UN&G4B0vOWtcp+7gEGKC5oku{NKe|12;fp0+?zWCT zZn0RHf99GeBcLd`y$zopfTK>@WiXtYdr(Y4!QW9dRqaXGPOhk^9}8F2X0G*aHXesD z%4kM$G?~WtnW$C?=I1Ze=kaR$oEL+h`T_v4^0-@G$H>ovmW^a>S`LX_VZrE!S7n|p zAKI@9$-GR~g?|OuZU+XWLbKQpA#8(J9{WnaMIZPiS=g1ZEJu3-Z48;y_GUc!m@e&j z5f?_F3C4!`MYq2V;*|E->0|jVTy5YZNZOe$C?-=8MPw^mzu_i)|yLm za@Lx-PL3$QYH~mHT=8)AwBIroFMMxH(0mL?B;<7xdvQG+jWcMS(PZ#q0Vl%ykJ*ofOpu`OuU*PSg$N9`t z<#%YBFqKsh|2s?4VIKXOpOqG``6HrGHhTC{5TF?GRz?;pNg7he3eKc+tH?d~ku~*e z;uc8lnV#AbY<0qnymcKz+$Xz8Z}+H0dZ{`T#%tYb0qY*MeC)&9Z=yZFIM^2D{_5U+ zh?|{wNlL;f65>TVW(~Qy-FijPVW6Cl!0HzqnL(*qK0v0cl%P2 zbHprQQl=Kfy!^UMK~1y8YHE8Xqvh1R?fl@8RCUFd74sM8yU#Y@y-04G4Z6&6?=ir@ znibLe{1j%N{nIa>VxXXix9JxU3D3(eDCp1G%lo1zLa5)$!R?v~#JufuX8(rScC}>_ zGr#OJW9o6yYM}DDgovSW$BOCpwd?LQCUh&!B@Ey#H=bN6CIOKc+XK%FMFm$~vc&~N zuI@ET73g=9mut(KshSq$35t03ZDpEt=Fg?XKLN!*vB&$gWBf%yp>!+wzo3r)U+6zD z+J7sjS9ix)b-I$yok*}W=Bz`_Wk-R$D^E29_pOFc9zNTdu7gT}HJc@*>K*%P(4d_knB>e9FElx5xipxl05;6&-4dL zZ6O?YK_oZBRmkb%_FLBeV~((Yu;$JGK#l+L?*Dd@Ri2RXr=t>&-R+Z6QGAMHbokFh zrKom6_RkEv_V;5=gbgAXtuG7ViSjwT^~+TVWPwLA;n_5BU{kw0*1bPedCXC zqD`w^QCPH?ogKJ{#ZaE+6fFypl%^Xu<1v+5^ZIF_aA$cn*(i}!K)u?-%3&LUx`W7QqXgj!$!UPoBj zKT6v!w~x3jjSUOci0k8i>dZQ;$eNPdzlrXDK3ASbebIfK1^h=2&)f|b(0}nH6(*B^ zkslQD|BbDBAmY-HK4L=Em3Xh(uL)h>JLIV1zhXBI@bwi-I%=xg#Ug5ssUwPKwg0T0 zPW-dX{>8ve%l$A>b$BWqtu_9IKCH$6SmtiAX3AQR4I5bFQj#9U^m*`0VEKwqNS6yy z*&`+*I|0Wn*GTp-IV|y(!_Zyswa&ITyVl;aM@PVZeYoENt;|~-zMGllsTKcHF&FR_ z_VqFsjr?(?XNU0|Bb^&g??8R!#Aq>VHwJR2d-pn=;M-6An~FiRBS2!;&S}X;TR1%S_Dg4FBa9kMcXy`wUM`#JIy0kV_c2-^{lwlE zw_FTim6)7VQpQ;ivY+?RvHzMm>cOOvhZ5;+?lBcjX~1vq((Z>g8uob`cd-9nvX&7T zl8w6V?$86Vyw&J$rQv=2X+CR+Ji~As$!*Zfv=Qd7ySbMS5>vT7PmKVw7F2neA_sTV`2e8}}-^ba{5GNW)z3{u3~*~>?$inzn&|0ip8G9tgD zy2oR>r?cwH2#fKUyP{c+$AkN>RzJ;DlMu&EQ1Flc-5Gl`5EaH>)aC9E&#^2Fd{M+> zdIvHICw#j*mRSkq95vrE8ld7JyouwSUsz{`*%H%v>&vKR2F;69%DsEbj@v8sQ?<|g zas!pL20K4cgI#+&V50u0R$G5zD^4zi6a<8c&8~g z<`>N+u;_#uAyB*K zvC0JUm8JweI=&)%?BV~FM&!zMr@Z1QP!{@BsT89X`t)7BPKi=SMK&j zpj}zG^YJr^V&-7hv-+~@@0`{gU_=B;T88oUwlUrn$qonq=%B)iRC-rT1n^d z-&&^mp#<~#I-h#}j>d2&)1c%YJ{KG70T~@%#^a6$PR{&oD{t8`EUY}AVfFGZ~ zRtaX-nKqf-=Q4~|uvd@VB9;ZqCh)e3Tm?6mo^0Q@E>OOCA-eMz-8=ugc>h6h-t4(3 z_hVk0qD?`IQrH1OevG#=lcLW)8ClJlVAe!)sO4tDn!ip0=>YIoVKZ7QhiSR-=LfG> zZSJZR>3J1uiJmr>-8CT z52@>1u*b$@F2>z>u6UWwxrLF2ddP|aUV`mp5A1rPWp!#FrRoq-dhw?Y5UXrkf6*)^QQBQU_t4(paK+&n3$4jA>60$c-Bz*H%6O$%PRd@| z(nq^|QcHWTJElX*67(cI%){XTMIztx?N97wOdfC6EO;oo)#k^w_(qu@)$2yQk;j_s zwslJ=H`-J)S)SSpdGL3SW-`Lz7EM z|7I!a%>w$b-K_AAKBsP2sO(65lwWTnmHV+kDdX$yjy))H4q>)+@wqRZurZ#mywnQA z?Nax~IC}9|h|eUh-Mze}OQygvgP-@y^7Cf9hECJ>%+4mhFJJuN#zrm@c>PTp^-8Xc z-`DKKj(qQUvBdV6YB75~Z%J7*ow>~+-AAc`11e@0_eDcfhkuo>#>$g!!Ph@7^YlL$vu8t`jC%(#0^`VdhDMC z#l;qMdS~D1Fx*!&K7Lzc{FkHJWuU4u8E&mAFxiyb?LWhR#z5(hJxobGX+`=yt8PX> zzqwmsI+=C<0E!Ynu?WwS44Q~tW6Bo!uvAdKcL75k{MqQA?VCSHB~ziRxXb zf}xqaNrB(Ugx>ypV+GC6j*o6wp*uMroEU1OIIs zfRD?tldA-d#&^cEw(t%_xvTGJy!1M;z=p5WsLzLyu8lK>oNNg#ah$oQ+K#PU8%5Re zhXS*>{xQ>?GhK!QLKuC%p9RNnD9l)>X-}*s#rr3!CxiG`H@qh3LuGs$%SA4ix|;=` z5^7vF4;!#2K4GC~Fl&t{=tre?SJJ)XrdqrdwJ66GNTuB6W!$e%Jo!0WvWj6cptsDs zy4mYkPD(|{kxME4wVS;xI?*dJ3V8-I!JSL!EK%#XxhDwP%-4`@r1Qj!?vZK9NFBd_ zG}~*_s@$fs5M^-DppprE$qwYPDkFUw@r>8HnS2V&O7Hl}KQ_xmO% z%^j(WoB!eLJn*?FX8!Tba+Xo-82*hOxTkzIR8Z_iz<$j?1Vc^xV@FT+6Jr$kShRtT z5oy%Ld7}TgizMHb>^ChX4EzB{ZX(xo7pYlqSf<^rG>{h>yU5g-z0@anChS_mv)_>4 zmUcj7cxCTGassAQHUS2xvvFl2x7y;s{f~I(`+oyf?epX#UKDX&Ni8{dJSd8lXZPe8 zNJ~K`+DqH%vZ8-x{QUS(s((5q3)R;8kAFd!=Ud~#|AsIDcJ?!xRT`T*8{3(>eLY=Q zXHJ$CMawcj&%cG32{y6+z?jo+svG_~NMu~umxq7%H1y`g$exB>5<&fx55AXe@VmC zm7U0qj9rX^ZCqU?P8@lIhq0+2bQ~))M{{$Vo9v6z*2$jAwrJ6~mo#eS2M~Pyxm2fB zzzT1~V8dMO4e}^jf@f;d6v}K3ziS>-7-3{My4S6r`Gxm6RwbohwLo82ALsbUP|nr* zSDW@H6He|%TZ>Hy>1UkB6#wTt1?jTxvxyJ`j!=0D_=ltLAZBQ)57mvUN5-48@Qux4 z5%UfDUgWWE*YJt~PA1?#n@+Pp8&||QIrv1Kf3d2{-uAK$pUlS}hCOTLC48^zZH%9g zd@2QM*K56$RW&t=7Y;t(r#+*W6$_xJyl%kvmK>|rx7!Qqg#D7!b9gli7^K}enebVc zgG5%+*0MomLSy3tQZZ=Q6wi)di0}Mewyj_3Jd>~ev+ws?@W35Y>F^nIc!MXlNlLaZ z1cy|!bX7%uA!vxjCDcwwGMVHAOu`IKW6LL$Lwe3PuVeT6`5Ht*p3)TePPt#ggzGgy z?2l1ej5aE{y94H=;-e0xyIAQbE57RKGk?XWr_1MO159-<#j7Ur4epSB0mh6QyN!p4 zNy5$0?foYj@9$zwh%LG_18T6F5g04FyJGtOdiDASl~h88i%Hc8-b<|&N+W4l%k42& zR}V0r^yGamnfAaNEF)N7?9Y(&y~@m}N3Tv^p-R1O&UXJ^SA4_p6-OR2Ubi*H!w%83 z^G?BIEJofuaRSOG5y_sI$zpL;zvJOhb#1Ew3)l;I`d*!X_OtZ6MQ3ha_~n!jWnSs% zZV&RNkl(1G+Z2PjwatrM##b?U4cP!DH{}CT6^w6m`pa1CwWH-;S42W37^dO!2V3cs z!tzDx9&s|`dwG_`N0b-H6Mu7>mPSMY3{bpcB2)7G5C%<39hs2_5u*A;h@vIJ?BEl| zq1sHs)3l!Ky>A<+S1nl=4vheCQ8O~KYm#yI_2W0f=_P5Ju3)sYreJ^+a9z5Sjn5Dp z_7+hiz`;s!`Bw3q*M7pxHBhF*&>BfhsmK^txtCxr;ORix;MNYi<)rf-?*_>0>idUjAWBkvblf(2B6pIF8 zxnKCsj=_44F>$dA{!|g(%t0bT;{TBN4v(R z6KBe2c_?7bmFxt$;8^%>GMt*$%S(Ugif@w_$YSb4RLr-zV9nnL%_#0A`kZuOlt*hn&T11Bfws&aN02 zp%u2zJrF(F=+yA`b*<|UX5JUyTpa_1iP)}A)Mjq#hTRWUba-4P*5)$mHk;5J&+$qx z>G9sS-Gl?r0|{|#;pxo`brDUXku$Q$nG!?ukG5x?p?^B>u@vzFC)iWf0G3b|6pqde+Qzp6GR ztYdtyc4$%)e%8d!ZF2Fwv3J3c?4Y_rBLLiCLGv@^>JuL*J}}Sl3TU|K!t@NkNs&x+ z>)j$ZotU*`_h+DAH)ErF=N@gK_db<0xl-@YLx*mq+Kl#GF!REZaZYx{UNV} zaMqQqF$d)W?F)oy40opAvCrax8T~j|Y>fA>4PKlx#oy{VcC<|f)c~E_sF!8MMEnBl zvhblhLZ3AQ@vV(EIKGeT9#Oc{>n>%y-5^SJ*Us}ob6$cGiYLHzkFmCC0h>@T4d2># zHly-%&2vA3A4dBf82W1h4-eiaWk}cZ;3U5>?(9FG?G*#Q`gVnWuiLKIjOP~Y$6hi^ z@ZE%;sZ7mYhc9uHgMM2dnr0E5OkS*raw>tXtEtQt8VDQC;K;|}R!h#hsa{mqLQCw# zM$_&3wky_3oT7kRDWCl{Kx_+1sM|xi<9FpAl+B`2A8f^mHFF9!{R(avcx62Mpn_{q z)~Ba%WcJnC>8y{@7Q%vi4gMP{wa!-sS{z7eg4OF`ZZ= zOT)x4mvP4fAMWo@_sV;i$5S>Z0XP$Q&~egU_!)sPr*^;MF+$r1En?}sug27=qIn6N z#kItKw?o@?;R|50f6&f*YGpa;hNe8+6lW7OMK>cjiy1*>qxNs-?FjBmSp(pGS=z)c zq2_8~tY*{W(wANP2UMmigjgng>PH%X3}OA5;-cCt5^4Z^HDr-(3T_~*lr^p!MlN$} zI`!21GMV-S4@m$gh{4l@wWK6k@Z<*MoJo!-{dVHGqN%O?#{=eNq9ybZmN;D9OP`Qt z!|Av6f{LT+DXZ|x@L5U53J&gooXr@<`weclN-$ku3j^Hfwrb9p&eY;&=B3fZ%{n$? z^u~A?@|AAi@TmxP$iWV`uw@bPOHMoG_4nEdP!e~&Y5Wg!f3vK>&E+v30U3$BWb}ic zSwS*A^KA0Mt?CNSAqhQ2CyCqD2_{>IwED-sPpw;(B~jxMMq@tS?6uiz{(3+6 zXhiZO*tqZYp`y>8b(67b&p|o$MtsUu$cHFjU7w`jyaB453UqUqO7pnza8(UvThs3P zE>tw+4AkW@aQLsZzCv8oSX_zsEtyJL=K}YB!38mq6-mK8-yZPUQgPLD4${94R5x4r zY}0r0{hn|{-ymiBl<*GWWPiu|tut9vBy>4$2Il7m>}JjkeG`LyG398ugN&hRvax+# zyM&j1Qz)ED*3W=>hP~YqznMh}Dgn>LtISw~yPUv-EWu7_M4DXakz`2Z<6jRx%fPjz z4?)|3Z5aq@fv6s-O^>N_;VCM_W$+V@{qWK6Ru6h%mrz$ghWDNsb6VN*9rksASfOPL zv$pEXEf1oZG0RYQVHYlVt5>MAE7#1@1}BEg>FaduJ9=l1>e}1)w#Eb=!VviEP5a1@ z3Sc8ncXH@utugo){vgtK0!TNn>y2WJlG4oJ-&=Z$i!%A~$$U9))eAM;6W$@SaQKyK zgSny?GZD&5PRCOsbk=58Zmn9x#Wl}|zZa_6yx35}zBnb-_$$AG9Hb~Znv9MZX^9gP z(_h)3%UdBVclQ1kH3mA9^L-eI5MT zA()D)Hv~2!-v8SASwb&QG})T9sQC@TA{mhlul<>yOxnegV_IG_lg04dwdX2@6RBP_ zzG-W|8eS!UxA{V;KPR*?3`%xOyuLAUk!*FW=Q=Fxp4HWi9Bz`PsRigRezmkUvLl-9 zuWZ!3_XKXI{E{m18oG;&9-a=6Jv3$_7Vg%MNJ9Nxi%2qR85VwTpNLzguL}zTr*z?_ zjfaC?DbQK8&`*2Y2|+6qXd4ub597HDiyA=c!G&IPyv10NF|(!Y-o3qFMTUw&ugOb_ zMwaldlN&B1e41?BWDg{wqu5iP2)5Z&q3kYTK8-JBV6jqG!SO$KSoVIsuU=|GtX;in zDOw`<`NWo`Sb^^0I(r100h
Asmyey{#~ymo|)#jPn^Z%;;&QumJ@msfpE3q2fi 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

P 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 Di<2mC literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/active-queues.png b/docs/assets/images/monitoring/queues_and_workers/active-queues.png new file mode 100644 index 0000000000000000000000000000000000000000..e0ea29ed8d73f511b6a7dc29f24aa3a3fdb09941 GIT binary patch literal 19662 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/dump-csv.png b/docs/assets/images/monitoring/queues_and_workers/dump-csv.png new file mode 100644 index 0000000000000000000000000000000000000000..88cb261737d06fa4d57190e32df6b875d75080cd GIT binary patch literal 40059 zcmeFZcT`j9+b$d%&WMPN3er_ZP|$|xvJ=^YhAhe+=UNQn@N z)DQv$sX{1Hk`O}RY{Ja%_s&`Ku5-TgzUTYr`?3~`on&V}{kgCEy080r{YYDb=@iE) z5D3I{|DKv22*l6~0v)yeg#q~FnSh))@b8GXp2lrZX)o6z@aDMvt%tWjpt4xT-KQsj z_rH4FGxi37&a@u<9YMM0KLdd>&fZtM^*F#{nda*9`(oxLzrCUcqIIN`OifULl8f44o^J#TgWS@!%jCq+7a#hE{>@Hrs@T(q68XGYvLR z{qelTw`EZCl4`g0{mj$Qv*Jb4;-<m5BRm(JTR*c(lbC}?y9NtOLc;6Hk1kE za~}oyUaYrmDy^#-2<`2vdO8OM?R2i-YG$UUE&){sUQ@Zj{QI1T*BviF7Z0y&?t)I! zuR_bNfDSqW1Zp;70Ue`XSrz{hdW3!@Zg9MregV2DbkyqbD(b?KgDwMJ9bI!Ln!5

Sc>Y2BXtICEG#BsHW7$bh>1ybkDaoHi%@}H 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%0A-4?>}EGwzAb2(mUhIcV1U~ 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/queue-info-no-vars.png b/docs/assets/images/monitoring/queues_and_workers/queue-info-no-vars.png new file mode 100644 index 0000000000000000000000000000000000000000..a4edd0283c1e85ba227aa367040a9f1cb22dc7c2 GIT binary patch literal 31548 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

9a;#JfD&*4Y~;!CPx0u@f&7e@ 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/queues-example-filtered-workers.png b/docs/assets/images/monitoring/queues_and_workers/queues-example-filtered-workers.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca463a1d8a13f3619d010eeb1bc5172b501111a GIT binary patch literal 24183 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

85(+HvW7y#pRl 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/specific-queues-active.png b/docs/assets/images/monitoring/queues_and_workers/specific-queues-active.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef2812d145ef9a3337a1aacd184b33eaceaa5ab GIT binary patch literal 21955 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 Pjn>Uj53XCJV;}r?4~Z*+ literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/specific-queues-inactive.png b/docs/assets/images/monitoring/queues_and_workers/specific-queues-inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7852b9fc4074f9e01769d162af18aa8a00a053 GIT binary patch literal 21874 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 F{Tm?b_bLDY literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/specification-option.png b/docs/assets/images/monitoring/queues_and_workers/specification-option.png new file mode 100644 index 0000000000000000000000000000000000000000..438edb2b9230837b78515ad2f9fcce8e31b5c2c2 GIT binary patch literal 26768 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/steps-option.png b/docs/assets/images/monitoring/queues_and_workers/steps-option.png new file mode 100644 index 0000000000000000000000000000000000000000..885ad5a965de8494bc63b3d773e6f2afaa7b11bd GIT binary patch literal 25137 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/queues_and_workers/workers-option-with-worker-names.png b/docs/assets/images/monitoring/queues_and_workers/workers-option-with-worker-names.png new file mode 100644 index 0000000000000000000000000000000000000000..147b29108c249f167d5414e29ff1c0be8ada6ca6 GIT binary patch literal 25095 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 ZWB)bNbD!O4G@gG-UT-5*o literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/ascii-error.png b/docs/assets/images/monitoring/status_cmds/ascii-error.png new file mode 100644 index 0000000000000000000000000000000000000000..2991f55f5d1839e01a347529df2dfa1b203c7e98 GIT binary patch literal 30682 zcmce;2UL?wxGszZP!O?Elqyx}h=6pk(ow3?mEIxL(1i^a1O%jaCG>%dsduJ_|ACSy9lW*po_bG4QJl1|hM{|vaf`WohP4&Jm z1qG!U1;vT-GgPGCz@l0lNdKMi)O~c90@BNhCH-*PPDM+Ff}$dpcKF2ZVs?R(r zC@y)C|DBk&tCkRH6Fl`mr% zlkRdx{+wPN&1n(l)*j_Er(Id8M8q`F0?t|K?hPy!r?YGkceJhN;o!8vZN#Jrl zTCSS5)~Ipr+OFj8Lebm*WQr~Y@d`T}RF5Dy_V)IU&X9&gZk9Le>+9EvM1iB3=~KUc zMIq0*K%OVLv0wBe51!m&&%jRpx(a=C+U&%y%P-tvkY866KQ5{m{k~j%og?`B((ish z!|zLZuK!)PA3Qs+g<+WcJ}weAO;ST zQ>nRhVMR~8ElyCpr)trt(;D3EKoYGb%^VUyUUk)zQ<6grlP9T;P+GOgx?UE-F4l5P zqHatUedRn$ny^Z{^uhBK6t?4qNst5AsdpR21snN$7brsOMp=Nh$zzafOiHY(5LDtw zJVwK!YmL`sX|~I85c+&?zd0fUw$$j;7c}3|S>qY+&1W`N)#E@-K_MZ`=yfo5i;2lY zZ>b>tQ2@5xU~W$k+wd8G*Id>p7q~eDK=J6ioWqMzU-nHqVY&CNMiy3|_^!>6zfc|Y zKH;#8WBrHXv+kc=6~ef?z>5Lq?6{6wf=z)SL6?UJ24Azwsk(3r`jbyE@sQD-q-CX1 zM|kISYL}YnQQEf2Csed%9GX|b;$3g8bJSj5lf-klO|ryV;01Li@8=Y%V308^m?)+D zxugiN03Uie7K`MvIHU(Z|*TBTpGz_=OM9n6EvdE+IL?|v- zkPRB9T4;2?Xwz)2`ySJTmYzaU5h2Vp#X-;n^& zEz~Mb5r88Sr9NTbnj(il6Gqt)HF`x}0!;Uj^R>cz^fgIkmC^%%_@O4-Lqok@?yfU@ zP@yf{kB4`^ZA8#rNq#UsW789`QE(%)}Y+b->+|p>zcT()>V$^U;B^_dl`E{TwpXj0F4WQ$A|!V{lw)%nXAd zec%JiV1(q<+C>aJ82DM^%dQXO<&SjvUgT6a;l zJyU_MY~vXyjJCIndj0ExHuPgna%Y*peM8QC-FdNM8arMQP52Ixr$bL7cI@wby0`erX-5&H6Bi3_Zk?q^a7nq;+FU&B7#G1bMWE%tace{k9ftcGP!MCFde(D zMMq_)ZoCP0dY0z|JKdF96Pt?P+_RL~t{?DMiNAHdj%Nb6i<>Q3)~d|#;NB9oIRs1# zm}lL0<>4`o=|ooD)%M4sBXdin9098(t_Y=~vybDq)}R?J?=X}UKU_+EG?8r~bxdnn zvawwF*tV095`eo8m#B9Dm)xED#L8+=9<^nf|A`Y6qs)2&%=wqDR#QB|H_!gHg!RgL zom^C%Y$Mw6&fm!3Vy3M|rqd=C9bVKxZ-7>P)a0*ItbXN%aq&&X-bXF;fcJw+;<`&i zORNrOOZ#3Cqq3@JjkSr!+Cuegt+0DWf*%*VxpuiF+g>L^Vn3NsO<|oVlM5EFsZa}W z)7Pd+^)>85wA7QS-w=S8A4jkBIr=8ub=mxCF0+wZ7kq02>ynuaxL~Sv8*XE8&5jE- z73gE$I0-zZDXYxja@|m1s;hS_PZ?j0D@EiaN!qj7t#1ldD-vrRb^X{6lcp3ms9S8+ zGnlju2PL1x2kO+s@)k3t%m#U}#C$j_!8_KghCnx;w84L4JP?*MZC!nMw-SB&M7K?w zq-$0mj9s-x5uS94V$@lX7RG+Gt9B4zC3@{=B#j^Tb#xtj9lbojS9Wj8un>@tFu76A zpe#ZV!hJPs$yj!0xj-Q`8g4qdbR+ist;vq5K*^tVl!^8BCFAAPyK7zdQ6E+Gk#wKs zj0K$)Q*%;^gE}e|{^D17+!hE4MhBPoHoN#-sj3SU=6C=6$tkXH-Q=kDr`*^ezMG}1 zT41n(?lO2H!IwLZ3biDmR>np%1PdHvd6wF-(VdF#%<}^4^y^l#oxLD$8Yq2YZeQ*8 zg4M~|@TCII#*ONH$4+1#WhOBXpZfp2DTId zVF|}oIXhK9*+54m4SQ*QxPeMow(3}-9B{FBE1kpKFuml0ks)A!LMGc(TwQM@jE{_0 zYr_m7;p?})0@57m{q5}Hn^iUTADHmzRD73um*ONt%vZT%=F!M^_r=mTiqP6}{r;_a zPj`N)l)LnuvZW~r-;xQ7TRnD!pswIr8W>2!oeN6QaR%iHTuqH<*}5BIG$0FU_c80c6!W_j#lFDZtT1ZMx}^Anif9Io$8^+ZZcn87 zbWqzW>?hd~Ziy2@*3mq|yml@a2cYo>`kI?q)oUDcwdOAyeLGG?R&}Q`jcFmTc%lPT zyA_j4&Bb7Jm?_1xwHqI?X*SqOWNLNB=`B$~tlL20&ueOu3%Vg4rvg1c_fP(ZY5d4{>1Y?jl;w4?CZR;e9%lr+Rokzx`H%c znMGMlfF_<|@f*c^*`vNA!co&takFOAE~Cr-2ld>QoiQ6MS~|R7ymqVsFW=m}$UI>IQ#f2Km}-k>p|N+u>M6_Ezv$;Z^Af}EdiIAeJB zJnx!!n%f`%e6NR^<`0BZ`#UAS0;ncrPAH5l+ADSsb9t?JX_a>aCXafwu5!e}#3=Hb ziD3}&7_ZaY6%wrR6cnL}Rf$y&iHYKT?u@UGj%+iG2>xH*9oY#gC#@neiDtdpTx;;38}$# zw2+rx3`*K$hwNO3y&~)|Cnmrih&Bs*b~5MD4uTs@a|GhMLA4t+unC=8I_9JVZR1)O zfnmk!VdacXB;#an!ZwDdA+d2VDd9V76G+n)EgK+{P`lw?inQKM{2qu+bAE&V44B^A zJw@?jsxu4%E{O?{+(gvHvuqItv)kqmoejn(JO#6Bv%=@V0eyyBKRrmqa3y-u76;=dCk%jK9URyro+8CHrK{y~ognr*Op@ z&+@VnLq%=1^@eswm~C1ro}Ey^Jlwj!6?K0?X68^np{&w3H+0GGK+r*^Ofge7$tfQF zy{9S-;GE^9Rof5nnqC0FrEh(>dzzfyMJa6)2uB`emj}!Ub9Nf)+1@)|8SEJ7M|?Zn zYi@BCDnA~Zsk3-wG`Wc0=CC|T35Km$n)}YIPLAks z4D(<2zC}8zU^MD;9eEU?JradHky^!KFi#cx`BfmdzxhCyeTST66T7Ey%A;6X>DO-9 zq$JFXUIWMZg6V7qGIKxmX*ZA8WaW;_4Db}+Gf2OlkB*Q&TZd+(#a%95ET z>|qS%yF+$GCUgv&)?+l5ZY|^391T)Pv$eC8QPSM2UgzxqTpeXHGS%K`Mjxa}1%YJXIcq$SeQWZAJjW@_@*340E3*a{pF^dS{vCJ9k^tJ#` z7n!p98^@Gc6V;J#rS|j(*Mn?fKOPv?O6>I+k1CJY|F}j%Vl|u##C$6f$a?Qx6SW{v zzr$ds^tfP0d$ZifWA?(Kmkvjr-)a?W2%<)DBQ*nm7C}j03CkP{AweW5N-`KS1dWTC z9s1)8YCZsT8nQf0xOn!&O@swfduVz*?D>j3bz~baAW^oqgjlu%b^DqArMn;)^wHEH=%+?Xo5r4wKq@hIiOM7*bIA-w=?PzsaoSYil2F>8L;T z2QW%qQbAtnr{C+JZCHHs%Jo+t6zS2_4l?s9#!4o-#K2j_H^fbxw!o{E9*sv3Mf0vt z0fOu1@ck`=7~e?~49Jt0qwJMu5vUMV^cQ=cP4+{W^w!y~PdY+4joM%VxAjo_-@RU5 z;{@OI3YDBhTj+#`mYnYnZeZM9H(J;$<3gFZQk8fbT#_^KlVNax2E$}7-7xP2pZ~l) z9-dT=GuNhpn$!uwfWLdnqftT1cpt(q0*@ZRV{SVs92$F+InyGS+IB|D5>+;RY8*kF zb-_l9x#HAm7;o&hr*5IX*<(X$%kYZlE@Cy~?kdw08rP+0fAv?&q=I}Pf7sRdnlJ>s z0t}I7bkEc=h*{@4uu$T;6|W5CipU_QD^=nX!>cX>izY0Wzm9=FfP_IlIy}Cd9IyYt zbEgOW-r8*;!MaD&qbr9V_b3~@zPFmbQW=Q2g6ha3ZtMpz1BA_|JI$Wufln3Bn+WsQ zVfMZRgy@iQs{$O0P)N%H=r6 zPka%kqMPMHzj~l>xZ5w;x)WX3;o~rtKK~j#g8!~|SL!boyL!e~sha83+QL7+tw@0)(yXa57`aM9YOXLW0+(N1S zHIYc9k@4TZ(D}c_+x)-mcHo%4`iz{OoSLdLDlrmBoGkHbcO0*k(TQVcwdnfPtx1o7 zv$J-QKZ6kmUtc403k!$8gOTFD2(4RJyuj+SE4^Mg+Wd#ZL5aX;T6bXFD!uoW=TuT(J;V}M{z87w)74ceOB_aAh{bkzG6`%4)S zC9(^`ZBF0qDwdjq$WH=hCmUWRV3wdRyr0KEC#*d)tP-`o*p_@ZweBJ??euPMMFvRT zOs4j*ZzZtUM1F*(4Krj)@EkzX6Y^aXgWQT_kKxB)z_Xa zD<=NPFb$+gnmI))7^h+k3(FO}KI8Csrk~-m!OUamyMBVj19$Azd%?+$ATV-YJsVr2D z1vB5`_sP4_a8~OT)53lb_xfQ}Ae+O8$3FC@`4}TRGIkBDBoIE{wNGq$jkqF zg#m-!7=l4?N?qB=(V17HR`YgZ#)O7}%bFe7q3jAz!Kt9!l4TN$!(QBJ{lE;$uUdcp z5?_S_&{5zMfAQOoHGKrts%+}IJ7zk9H0exSb$45+fYg)z0n>z<6Kza3^ClQ1iV{JAM59CLD{6Z-CS@IRDI@e6>w;Y^CrM#JsK ziA>L9=EkH$_7`(AwDJb_Gg0NfMP-J0Ib|<49&I=N6vnZ9C^%Ke zre+?og;NPus!x6nY3WqoZglyw2EEeREjjOSX>RX6Yu6yKOOMSjYLjMQWAUh{9#+rJ z!S}=FmFyW~gOU0d{+{R9R}!t+FV98w>gh^ELkDsAjyGvK;LyxRU^mF)sxF6`Zeql# zq@*4vtU?`2iL9Sd!nZ1QH|wBjF$%lhBPl<}u+o{JrI}Zwt&m5KJhB@mtD}7fN2T^!}!WL$iQ2xy( zYrnY6z}u!Xuw++lFCXpjiO9)B@Ryqdm72($gX|-VZs5J7HZ4Aa-=~pys!y9C9kI{1 zub+q!?d*;K%jhIu$aNJxEpLUXYJhT^^Jbil);WBol-yko3qW8If_?Cxo1}c=z z_zNX9M{rlw`1;Iss*e*>SJje5kDu*NLw2vm-BN)oFkSH!NZ!UzxP0mBmEH|>qkquG zSP-fb)fl&W=c$!SxeQ1YSHoi9f-yfB@k8$BIrN!krHPxEbwvk`m4;OBjRmfw-Hjv_ zwA>_f>w_5q#aycgcMTZ6r2!zdDC`2J{|@|ygfuUCo`WBJV$h$x*jB##t{X~pMP=3P zsGJ`X3fkZkIunNDNyB`FsTo$RNb;-CDQ;`9#{<5{Z&wh(Vr5KGPe zYp0zG2SlRJM0Dr7B}Q0D(`)DXBKGECgLhgb`3(-cFx6({+AG6%^1QM}?~U#E5(%5( z(1-J1HCZhjKXy;Pme&dkq}O5Xau{;Px=sUSuHIiZU22I_w)hNn*Y7vJGbSHJ-2I5p zk)>z)$YOK;RFX&zkYlo2{>o)N)=76Z?aS=@_?Dri(?~7})@pwT>f)FTqr&1mnPbRwC{eG+Cgqn2;zo^TT+JQ~ z7MO+9-%U>`$VWR()Npy2O*bIu9nTtt+IPVGSuMsAhRGwwJPoFOCHHYw-+x)N5#sAF zulWR1^&L~rGvU6Ab2he(G+rDJ1uZ$UUlSZA-sCexvcxQ1O`ZO+@5~XIC}EX3jw|J3 zI(x3xSrV&TB+gN%j4KZiG#e9_lY!HuX&waT|aW+0CNA;?lm8< zaji@5;O+vWQE}MpuEUS=JMc>Wl3%AvgE~eF3G=wE%5Yx0j#@ri$v~-^E}?t&yVO7}fPw zr$e6Cg=IugtyRvxe#pW3qd6aq1y%_}r{v@ZeF=j-@)l9-O!xP-2dQ;8 z$%AKasc1NqAEwXDV9Nv0KkZEBzPE8jv~T${nlCNWnO&mS?$BCnyD+%$8L&)raj>X3 zy3%2Qxkt2KeoD70gCnG0|2-Zm4SYZU`lhfUx3EdH==T$_l{EngG8?71mY0`!GFQ7glC{-YTFuiZfBCP?#wk;-dk~6 zA?6@npfuchc89bz^5mz!S0~_EyAn2r4z(wriNs@8j?T4Y=v?l$>P`MC1OuV#Qcy+` z=Y~Ic#gP}?+AmqpJ3<91nObrSO7(XN<^=qZdd-0!$J(_~(R9)Gaz9na zi?CpapJ8r}yeO|Gl>Bj6;0nueT5Kb0lwVi`;1Yewu}k0BfsTRdV=Eg9b^NPR9P4ak zk@Gl16&q`I+X&p9{Q7EPG>Z&~?=cB&TqrOok?LNhY23E21$N(ulSEJG(7<;`G5Oim*{zU?nF?nn6#JS3yM#w~ztCvw@v7}rKOWIw zqgJTvRwaqHtC7Kx=1L*d`bSI+W%v>EJPz+Eu)!^v*FVW)UvIs=qjvBPsHj$k4v# zUGSM0_RIP@&;0u}4F?myOBImjMWM>go<~WVdcW``G@0RXo8*6z4WCj&_csEu?Za(O zKrgok)5nt6T1>!FgBN6OcFSD^dSy$F;qvRM<%D)Zz9KMi(*YfX9ns;%hIbC8i-7!Y z))r2ANP6GU!yqQS%vJ1)W$e9swLnN~pV zJ^ngL7gm1z50HK-e+;CZ+DSkIF=fSRk73MY7jAw7T?ORFUrWWuL5KzxRnf0*L-p z@MeE7%@Iq9nb%AF)S!BVq<^z1OGxGaLonL|$%je&M7AY;7J3rSfe-Q@F)1bbp zG5Ctjy#XZnrgZ)$c^2Vh$@`|yK8Ak_AC0@ljs)+6xTO@O&*cc`?PzZgWn)mytEMCz zvC_%q!WJlja+K*%K+(6J>Op6L6zm_QCS?82N1+B4(D zo5@5#KX38cI9xYxgzqlHV`C1m*=(nvB*7tg$uyE}5In87kZ`CGm>k3#giRB1fW@~v zW|85bY9x7hZqEC;8nd&0?7t4t_>84zx^J)*3RBF5xgN?)aS$)Ck>SP_((9FPk$21} z4w_*Yo_s$W3~l zUn1oY1F*K<@;%})B;Q>oL-KRa$dG*MXtL3QLkT;s`D=Yynp_}l49*tg|0L4$?vf+@ zY@{q$hFBtPVur=g0DNQuO@qjcD}>3vJf34o(`ejUQitqFI7dczKcb_Ryd3V-*r7G& z9Ovp|k<|He{=A#|yT1TBBH}*)bf3~El8GA%4sG&&H{Vp}b;(ztKm~^FMLGb1H?H!- z6B=>}c7Ha){;x1jM}n63shdU~P%jA`D1$1Oy_e$F6oNV(VezB$)np$<`TxqVaBPn- z;bXdns(RwhVXOSF4gD$c9ky6>2WfLBe{8;ear-)|;^rNyrGXiOJnY(T(ekz4rtSLEN9~}L8^?Au_QvJ+!7W`TiLdAq zOH2yKA3HRWU>KPq5i971df|MRY)!=#GNq?pG5>x0f8L7tLiN_I_7<$>*xv9IJglI) z^xq9Up5kuUsMgBmqNx4BC~Cs9*KiZF-g;^6Cc&*i+Bc~t6X?RqLJCN<&=%xZETG5I_*G*U`qBW zK-MJw;AxVa5L5UHIHia5T=oq^zjJQ;2_l`H@wAFM?;+3bP%(5)i>IgI)ymy8AEo9v zKZn!vc0@_CWbExHQ$HCTbS=A_#cztT&KNTy7&aW7pipKc!(U>Uxy9zIg0GZt$eBXg zKyL#M;$cZUAu0XqqG{p~B|PicG-0eX#d`L3pH_tB9VjSSP!+eW`*Q_n#4@AayO?LY zw-6OzR)mF8PZW|PWX;psVwWyLwrCK+u@Zw?d~0U$rM^?ETzd;rh?5^b(4}S$_l9WH zDhZ0}gVc;(cppaVn|gBsQiA0koJ!a@965aeU(WpQhAdx@A;w?=|RU;p- z5(=|{at4m6v_5@#K7D3JXfI9=OajIxX@7k*?D1p@Ez!RWYJ>>rs9B4n67IMazx{CV zQq?K`Rg|7V9Aif^e{||L8E!@MQQq{X)G|rsP!4;Zo4QCV9k$;4sq2nmZXtD)KGP-73$0<&BqOM z0b)90V?aqc^P=GLOwjECY3X}KPbE` zt9GhFNCxc{{za$AGMA7VAIs!)i280d4nes$@)b-ybq|W15SB+RlC48hgA=h>;*KbR zYg!NU#Nc#Ho5-rsBeOf1MQ^ps6e@-%zmC0W7;ZL?p$>q@isoGZ@R0a8{?D zlStl=W_!g9;tGAgQTEj?!YfptV~he&+J)saZY<#1(aZS+i1tGhzgBUu%_CB#Is^zn zWQ|ICihDFkPPy%_X*i2n#xKUH+vsfa`8}2(%xNR|?f4*gp@ zeL9OMmVmX3NJ$)sd;40*)4J7szngaR--^&8X{9O@P6!4#%)S%L`M#c!ba>v|n76h| zZDr>ksR`1gZMJ{kGuc6+Jz?uF;KTcQ3Q@a?oz>Q7Aj@X7y+7p|*<8MObnCF`XWTdI zPhZ2oI4moEIz+=Y1uLr<$=^3TNzX(;ba51czE|C&l^^pC+7a$^oQSS1bm`RV3x;4~ zX?6KW0&gX%VUOZDny2K%V^lh)h0p<)mRSa$@Hsz)*W;KKVsE1Zd(%I(bY1pr7Hbfp zXF_R}`))q8vUXmx)#&+THJ8x)wnR6hzv^LGm2vjzdncmb=4)h|yu#ptHL+)(o}Uj8 zYc#i|)IGIL<*N*OQY*q%HnnUvs zLr+Ni!_X%kxH1ey9Jus@9w}v5&V^}GX9$Qh9e(0s!XG4qU?CvKJ?3pLvSA_EN&bEE zZJbFmJ}#%oB{$E6tH-2goaHvUTSMllok3R(*z4i?z1qT?m|_1A4t?3#xvsB(Fo)`` z2Vp36P2bB?2?-1IcYNy4)qXk;DYia+?;Pt&p}=I-0`tA9;bEaE+(2n*!t(BmtdaaD{wXYjS~k{Z?B9I=K)b%@tqU@Ou33^d zf-f|79wZM4SK8;ejYp3HYjidrhS{1-@-@thA&phalJAXqfZP^JTsOSs1jVWm9fZ2FY_{VR}lnW*Ju}G#l1%kWa)PZIr9c>Q?&mYX7-L-1mWijrldt>ykccPx21X6lZ&hDm^@08-?@LXi;Xyx@XYu8Kv zgHhlui@gzfM>-!qfhkcLh*zj9idLEFtQ*ns<6hMicRkm^EuOJhBtI)u#gd=9^pRn_Ig#2v$We3ppwBsRbp8R z>PkBE1Mni~cJDXR^lxeC#ecLaN734+ZKd2^DLnh4xaqQS&iU5!B|tx#m3Jt0^;%0h zYF&<@v{W9SC9A|s67sp@+EVX-q`UIwuX{z%7yn>3J#SM+O!)ZcXhoOaMtRekF!@Et z_&SB#)h)d0y>;)jrXS~cF?N~@=8Yev>-oI0I*7>nF8k`SyNb4qKK6p=Cu0k@h39X( z$CZwUbnosm5HaOj;9w{=!pn1*VcAkiuy>bwkaFs z7Utb-eqsw<6yKG&ZdoEq6xH66#ef291AllE-FWjj*eiXxWU-Mf#y^ZS^~cVMTNV%M zeKxdc7I(XRtEoh2=d>p|C@M3q|9;R?LZ}kDIyx66@Xm~K=FG!@q|ZOb{$hzyF&~;| zWga<~@B;xgUxX>6RM_gL`|0`hkSuYkhnv;>6${&`*=9)7Tp>yi>EbOqm#qmK1*-Cn zAs|9A_J^?s>H@R56IhhIwJ(#mcI0fh!QY~svAF(S=}E!GgIXQpT_t%p4S|_dTQQvj zw(6Ar1Qu>wGLuKBl$J|}lQBh~=o46&jSkTz z!m3~UL*rOGfoD`Y|C4699^ZN+Py~e*S`SF*t*ha+s*b>MT9$0wr4F`gU3r(~yD8(h zV+Je}+>#k&m{ue@>@I4`nic^4T?(uD8>ds!ws|hOWup(Owao5;UzwG-+lb9CvN~kz z>=<`J{miV!Ny^mx?k{C=oFyo?LWCHGLQK8xszkB{RoWA+z4zYZN3XDkcYRvU6mgk& zb({vGU0%TV^1?w<<%Ak(QsAIi-Tnn#BoF>p62I_~A^NYzZsY3ra&^|v9~a;7)l=2B z^AEoG|6vq@19A1_>;#V?IkE4cAKt9ZsP1rtkwAD2O(fG(HL@$fx^Lq2nxSY3c0B?| zhD|(eDI~;u+{#b>2U(G1MDvUF&5sHYlPq2-i6(glcfW0uw#FA*GT@}pEkl9R*A%xt zfL`6Qku-yslY9vj{aUFH|7|JmeNUy16l!S%z4-#++4U$pcskkjK%cKy zkt-2XB_TJ#t`|$2*17cI~{rX8GLEZMErd{qm zbD2AGamg^cPPU9G^=IR{j)eOF>ha!QKbn6gtktKkIs*O=MkUwCtZv+2)0qh49^tFkrIbWLU2F;ku!c$uX z%>()n?Dubw%nRi&(c=h)0#e2pk+E4Xe74OnD%noAed{jvDw-dsW-Uq9F+(4aDF+JA zdXl$cfc0;01JlZ%%xU3s*1x?C+%MI@ge%0nBd&yp^jZcmO(r0c4Q^{v^^ilrAW>bD z(?=gs%^&w`0R$ee$9btkWzd?qY-|$@52rIx?%gQOo7?=HDJipKkc{}wnB9>lU`EP5 zWY4%J_Q=bZpc3&;fuok0UFp zkAAYtHAAqp4xI_?->OiFhIzSGPZU|_yifo_aL|69Q%!Mj{D--`$F#Mw!cn``k0tPf zH%iC?8^ya{&&koud$J@qxi@jLuqpdcUJ6ey2&0_)WEyfV`s`x${6f^Uvo|PPu>Dy- z#=J<%QG#6rn&O@Bl)+xFPi+tY2wCIo*_bIm)vQ+g*KkEU4A|uQtcS#wQ&?UkukA0B ztsI57S!=5Rd;rPyskWt4gT%^9{x1R_G#+iMQUCb1QImHm%Yjj0#i3E~r?Ky1Q3hU3 zZa!CCEsxi1-eF%v!3SWKERrH(@n^^Ut}h|2G|jwICQBbrc_alt)qS=N+lu2S>?QmO zC=~G%Q&WlmOXmdVRv7>K5~gg~rW<}a0b#XVcyyPA1=_Ez(VJwBSzq(NlWhE!nEAFY zrPizK?LTadD)hQ9x*=e8vtC!J@qJ1iL%sZgl2^-hpHy0P^tO1ULk$rD&Q?d{xp~9e z4z$0w*RXagJ!e@O5hroVlM@5G#nEy%@zHtQPv?g=Tdwx_#+l0%^5{&%9l%p<`nQg37&&w zI+$^Ae_1AYa`B{v+3>4>@zUNe%j{@H3%I}|I?|6$_IT=DXV!MXqG@zVk?&(VZ|V3M zBY+{lP5hv+*4;Spu`hwf9F%qg=WPH~4+|{&Hga80GOc2}u~7Sfz|HZviWeLr@bn*chjY4(=?bxm;nczjpBnXF%mKp1&FPrz zp-D5Tw+$f=KCS(gNy0E;MrE_u!<6&Ix6pdyN1(o;|q zGMH$4oESABSA?4^L0zMtNCt+3Y@l1 zau(#xl&~-91W7L>eZJ5H{?f`33LU*X8YIkrHbzDA$#(HgmOqQ#u~QW;Z2~I^G}jKJ zjB%l?bfbTOlsEe1?~-zp!mEB(1CPuG9sFS{f922GVL zmJ({bNDom6k8AUy^Ar~D1|9y})aisu!w|oogGj1Cb43=3hy%E3NnIj|h7dQK-13I7 zSqV*!=k4@*xmUXx+C;5SRU1BO0=K=S6}apRk&3GgVrxrHD%-x!r6S#WV#}0Du*HS|gP+J&eVXBT*VE@g0w z{8mS`;}evWH>Wt?YkLln+(onSm5As5H%>P8`kx5{o-EUHNGe z>`R{CA3^#Y9ebW6D@W-+dF9*OORzQbC-|ly1QT%vXrg{ZAmrjEuH_+1b(DJp04-b`Apwh&j_GX)uO`!T~$u?ys9Ke&Vzo>(B&Dz^(zNPg&E#jZ$ zJEyUTnxJE1>N$Re2QvKM+G4?53a_JT;w-?FcA!0GANcxj9;J>PR zAoCN>f$ut<-vy=pff;}E7G)g4AHKfY|DPf)5W?&v$_LzqZOOy*OaRwcGF2^LTY9N? z_Fn7fmyC<)RKza$f)v+^_L^OCP9-MP4)6a0NM8h2$v%&AF*bWzSP=Cf=W6~bFOISY z@O_4VDV*PX8O^mH7=yE2V@{KvaLFmR#_gO3*7eB=cX5UyQLb4sd3E^3Y}N(w~t1LMr=g%t>Kahy2C*@W~Y z{C8W@QB z)fHvM?#n?Y8nF2%AG)f-=KOJQtg`$y0xtbVtfblnG8^-|?7|i0Vb*FP`@+ht`N!zp zw|Hxv1K^>;xkd(2H#9^DG4fJ!1Dr(4;0`QH`%G7!jfbDH(e}9{Rc>km`*}qaUHU#D zxR!Tj)NyTHlcvu6hQcS3kVP_@kbJxpxkc*9SS~!Q8R_gavTzSnto!Ed_ZW2&vG@le z|AV^~A7a*w2vfDsY1@HWi61i9YpeLEn-+D`Mt@4A>VuYM?rKwi?TIG~C&(DB;?!4m zTlMQf(XmT?zo;DevC+N+ZLFMjVe;Qc|3CE{2b~&mhB+<1`KMq(RRSgI$kRQZ2RWq~ ztP5XNOXzN5_7Dfb7uk@vwSJ9G`Ir#=GR}roowTwWl?=MB1w`EQ+pb5vz3nB``6@hP z#bjl=EH>M#$8cCDKAyy+%@`Kgh-Wi8&Iety`NjJ@`SqOsvx>pcKyt;PxJu>-YtTSC z7_#X}D(xdq3JyPXX>A5ER`q&C4_YNJ<~Wl1^*o>=tB>U!Y*M)_<1=YIsb27y7!e91 z^ED|GJEsyOXMO%D5izzfysPuBtdM|G#8R00O(*Gplj!-_rU3SRV7jEO@XLOp|I2<7 zjRLi4yDlRr2hke8cMLA};NT!+(uov6-*{O%nR#*cBIq>)NZvrj^||1Xe+8gl-{zsN z@rPVkeM275ar^aE9C_xe_k$Hk3~KW^QjuZc^F7kvEcL|m|9;h%|C)h4?&g2sdp^j| z;JE$IetpP)+U=iu5oLjY3PuDep4Il)(4qxG4RV}GLt(BZ72A}Rl~t2D!Q+Tw+A}QAl2n>cKZn4(c$$DHWS@=T<$%a!&dY3a*7(`i>M8a4_9+NPqM_LVe z+(e^R6e?e&cQJMj+mu#m=Ip1&;1Z-hkb*2HjzmoBKB|5C{=Z90cSpcLf_gS%dQ7Xw z6(a8)@2zwK39VRPP_X}XaZfv4lF7_5A|s$+E6+?e8MG(^137^?`*3p%`Hr*N53BCl zM0zb1TuSy%w`mQ24a%!@7GIWco*F+o)T~=<^OGqASMEQvOD*4bd!p!;?IL1C`h@sq zRE$T@5MP*C^pl(~E%oqrBPRUfTZPR7qd2^t)IJfrDICCuz)iy>94(u7{x;}|b-Z$|7w1LNw;+Ex-gYM_6?{W#pz zaZ@=I?DRm+IYA21*-~9O5d|p`M}+x~1LoBO%46oEZ<%TbF4bM1 ziU54J&^C{WyKQDNN^>LHrfcY6w@w%|A}2~(V8tA9Tb|itR@&ex`L-hQUFM7u&8L;6 zdoo755^U&=?ZmzbQwYhQr+HVy$hvv9X)?-BC-YGpp{;@mU*djTmNBu8CEGQliRNR;avi!bk3MO`-D6SFt)#dX{GECO>+rNF z1D=t48jD~cJ{HW;RWnfRtI0+C+;zHXQVhrw*dZHL689Wis9eY#OXWyq1i<@xUlT?~ zyMQCyGx4lOl6U-0E#re-d0$wiv7(!29Vz*#xujy`Tso_yR21Uo9Ki#b7}I#PytTJ_ zaw7dFD5I!^5M0aPm`Wx!4sv+a$=`FKveA>VtZ9D`=h#C3!V1Ejm@Hm3XijnyA@Q9A zkl?Dv+jUo+18mdlsmo~qMT9zN3~|ETpyFDQS}M(^r5VRuTN&IK%~mm%Xe~o}V}pEL zgKNhX$6j&?hW;i^;@rL4-BlSySONIu#yWqUX7qQEw+R^R?6E6$ZUie2Ppq$0H8I-n zsU0VFlD03<0Q5Yqb&Kat#wE6b=@=CYn<;@Oih7D}zQ@xenRN5Ud+esZam$;jVOoNK zPsOLk;SEM*Zi@AIlkIu~F=5H6ofj}Ut1^X=lQ(qLuIY=_Hdj|?OY>LDujP#ws$EBt zc>0@(h*zjf4$kPm1Z~q?hOey5%W&C}ip*AwX$e^mld#4ixJHdpe+M{PQ!82H9z2lW zO;QMNqG2%hVgXX-t245~L zckT+H+x?z>&i&o@yhn zlJ0d;!cLM}%HG6sI!fw_uRjw1XvH0JCB%*aFgdH}1LMnGF@xu_!=^p`;G>jad)%%a z)~Sh}(d}GAR&%sO06%u&p0JZy*D|Vaw2G&>m$ipy8A}iHCX6p#&1hltu4)#}XGx0D zR4_cr~$25bDSnXHQN6Nu%9Ox8Yp0(YfjX{UQDS5b~js?>XZ z%0W8YcQT$PWW-r+I~7gg3BqL9p-#1VS`;U(xM={Ws$sRzNMn-klkSM3pfjkN7WSe>NU!i7CHX1Gy58JKBHJKrxlPTp?$tA1+X*CA!GlA}=Hbo@ z8tkOg)GD}|b~aBW(p`vG^$HlYc&wh1j4ftsu_)X&G0rr>R4z2bJbAmo*zhr9V=-rB z_R?vFk&7ixPayHP#ZF{Io!V_?v2xuQ_se%&jd5z8UK!ZG+pM`>=Si3T^t(%e+Rcjh z*9~%C`?*;I(a3(I?XB9gWtRjf7Y+lXkH_A)!s?oWsLFi(LXo1PRk|`mqV&#Z?7VNf z#HK8MV!U`k-`Ay}es)Jzc=KMzinDX_N-n-}=O|VKfU%UQcJFbSA*;JKHwNsoER>EU z84Ic0>zG8uOYVB*{`ne1!)`Itr4Evsg?V*DT-|M^qc_jbHBGsxa_FiSR%~L+>6w>4!{h)2;0d~whw2y^hdJrT}nDE0Ru_p zR2Xy7f%X>TE6;idQ0e>Pak2_R8_DXlBTzT4$tJp<{kw>+=eMtNY#A3lK!xIV%w-*} z1^@E3%#VC>V_xX=1-sbjRQ7^0ejlVRCU5{AqL=D!H1 zS=|ONrjoOYQcYe~r#3mGwykAmmx8u#;n3xv%&Tw#E_&FeGe-y^x6y55v0p=I#NI9e zs6M+R8QRmLKY3<6BR6kJcTl7r%5bWCRBtm4xP<`^2yglKvN+c?#p8u7x=L*2Aw2TM z)FT~cH%CX`SB)F6Hx`4USLpY&zqvesjZtnDKM>+KQ&|$V8K8_oRlyZFpXjbVeo@sp z#Uou+&6DRQRUmG+yo)>v=#6&$+$gOpZ_#-5-c);U5lXCBn5DmaZUuDHLne>W(a4jA zwN)oKiJ%5lDp@7Ftxr!5;nO}}aLF0Vp{yQIbT&TE_B%zvWt)IazOI zGk+oNvJAx;*b6kI5==UJ{ImNL2iU%k%|Ft|tv+&k;lyrgA(xr^ZtX?ldJ!PqUL#T( zyFk9Z?=CL)1`g#P9qCT2ckgF*bUea>HPpQ!n!lR_Kb?wbvF2R27N7$u%HZ_E9&qrz za1VEBC4B@*43BNv*46Yr7D}CH@#v@Gm(Dyu5O=9Zh z#F%q+a-fFo*DV^$pu3iLYC7OZ9@P!A^n|&Q!GWZHlVkY;eZYtm8j625sc?d_dQwaE z6%WgG0A#37O@~|L1EWWE3s%!Gu}YiB!h^Vc{uD=EcCDP0^#@TAE$0-45p$e;4^VQX znF7E?j<1zzPDjXEmtq|{*1T=$V8ag2N8;!2I4s$I9V%1&nJ}Lz-cjwBVYzf%$)oL) z;^QfuHpQXh*aaYVz^N$`ygxJq%Q;FI+SSTB2PXRkEKJ?t_5x>)v?WS0uGG@w7m{6` zO@h4(^C+OT7BMM^=dsxxGxZJ9u&00tntJp{S>fC`A(8p(uDnomn!Dna)w;>T{PffP zm5KIMm%j_w%2hdFLG)WoPSM5|0CM!jqG|tE4{o1@^g)oOlRH~3t6~;K&~T=eSSH$A zTVV!=23ikzx5Jju%cF~PQ^jndj>#gwtBj+2hYl;d!3A{*>Yj3mSZswr*O9VpWq;O2 zsWVFwv(?hAv$qRXZ5SWwZ4VzN+t%+d%b=@*Hasg*?3hurfAd6FoFrBS>rz2Og^v-M zV*4dQ$Cg4pzB=l`E^rD9<1%?rDIK_F(2Zs`nAptKgEFHhv9aht^}Dt;^T;y1sDm&6FaJ(TFkLYwIb4W0cjaLC7Ec-geBe0Nhicpg3d>fyR0ptkhnc z4;X52w=07PWFX@yEWx-hQlpiOnIygokEBSUpCa0dKPPeFZt#CB3$l&m&S`|dBY1EN z?j*mr!XZb@zHK8TD##ubi)Z_T<(~jT$Py!QU4|`7*B99A+wC-#%?&&iK^yIkTw6=p z-KEL>R{**SwRFw!tB817jG59pEL_~(Z&WulDI zBB9q;_`_=2mdCct+swi&yfGX`DSPEbTbc8 zzuCE>@l1C|jN=ug-T)SF@XIYv9;2!!1kN$vG7 zXwmhXx<(}rFhWftgxA~xcS*u%7n&;*Tcep5x7{lA&5-PFKcAIJrONddfTF7S_3i=D zfKqU#IBWA^Z{vhtU|Z~kwbVmupR_>p+;$8BwQqF301+nBdUvwjW8!S}H*&1I7R39d ziSZ~h;U9{F3-O}F;-KbTVsVhdwe^Y~3+BjJ+;sA3-`doL)H7V${Wb}JfaZKN^@Me& zq%__&Xedyki6)|+SiaLug^^Kw9(VY`r(S<{cLaKDojDE_=ny4N3(4&|HWjnBnU(s! z9a8%=GhixHFR@CH2O5x~VeRdaa!Eg#v_M=Xn6xN#;qW<#Bt8d{(wBm3?@WRED~o~X z!(1r(@m}2yY0;Ae>1Dl`lOE>WswZP5c2Q=mO%YYz=!J$+SU+^VS1r8~^gJewOS;9y z!^<2@lPyzS`fko$^jtaTo4RE|o~Vam%^w=0*eDpW(|ydPxmECf^+|$4ur|}icHyml z0x!rw()KZp*efxie)6uZ7sRQ&DgqSqMQsJZv8Z)_f3pYtq8z@1rJn26jc>xd&$QzXW(uKLJa5pNaLx= zmDT5X*HxpKR=S;O;tfZ1b=j|1+KJ5Ae`;vqNyy_~ovxW$=vV?2lZSJC|C_mylfmfZ z90qU9`vu*#B5_Ka-Q9T8Uuw6;w~qXij3c#0%qUT{bAG5InUoycBz!v*!Qgsrt*bC6 zYxBm_QJMUFLM^=4;u2|$w)wvL(+7_fDZ8#7)JshC-u@1!8MsUgbmKZih4_HAyKtEr zP_BcNzvmMlP6420P*;2)#0m(yYj7{Hr>!Y~5(knzQT1~M6H2@z6}V=(qJ~QQN)6t1 z%%hya46GM(L($>MDN%)REfm;OaJA3Z$ZJHwI%&la#1&%mR?V0(jx!rGjYrozF6bC~ zHQbnDK&zR5g;Stn2gIy_c=^mh0=huqp9^+Fp&zZ(=xhW14WH%stL>lk0GM5X=g&&B zGN2^aWBXu1MW#P;@sG2W^*^KR-W&|?p1!gs)01HbRThHS=?jBberhvdb;8yF1#mtX zIX)uHmB7B?EE+GzA-SVae>~?7*0lgY?!n{r}71t^kC&W#Am&q{fy%0I9L0k?Fbfhf?DTij{HO-%{gOob)~292AZp zTTfH~Qe(lmb9}?c=Z4$IfhclSa$mz%+NQX8qtZ#om2mT>k4x?0aS-86QR&EZ}S89g=u*EjU!L{ZCN8QW014o@Qf;k)%N*Q;xNxQ`m(G`&`t~G zF-dq49W`+#S>P`8(TR+%ch~;>VJ+^R$06)YCil+F5FA&b@ep`eU{AfocU-JT7}X(G zU!-8Wm+1`97HwVmh(Vkz(bV!W1fguxVU=cU_Wf6Cc?{d}nTAJRYA~YJ|)Oze4 z|5NREK+SRAOY3-XDWRfx2m9YGDDm+t(CMiX3tYjcciZ=cLeP88QN4JWBHNUNLnIMosE9Bj-d< z!Wu?&jh2K&=PjIjjFGbY0d59lwfKLkz7|T>go8DrMIAp0RXV>&@|jV;|EKu+2#Kcd zun_YnqCx&^Lf)lko_2OkrbA0J1KM2fdGYr8`mcbJU$a|0<_L)$bCjcz@v_LmhW7Es z%M7VLK_3;_zS*92rHeONZjw$g>G{C)XE`q-@NY(TGU(2MpyM9=`cV@1fOrR7H$J<= z72jz-n>+DFr|G>TjbmQxVkgk=IntK6FJ>%>MH3JEZ|oQN+81i>9M>x>B<2>7dp8WE zY$xfxaw{}e^F~&Tx9O{!#{x^=rk6lC1j}!lu}(coRTSPl`%x@xkSf&np0R@Uaq}Z2 z+1$dnEv#Si3JN@lW6pARnVSltCA(J$0M%^d6jkfz@3=GEX`Zy%-lXvAFH3KtwoKl5 z?0e;XlvDnAX?ry=<7-Aa_W5K-y`F${M0LJD*5=@$qM0ztj$?ZT=jI0Tht_4k*8eyY zh=^0T)*)zGGvrDojPID=aFaK z`^bg*Emw4-uk>+L$k4`ylcPk5{k}3%2x#$b0KYa7A zA(qcRkXx{;(zXF?GtbUR-Wa#&)iGN`1*d2WO#txyK0Q7pP<#k5V&u0AkxAgw_hBR> zDuNK<-Mtf8K@v5+3z}K0BAUbs+46&FDf%lrV%8iHny*W??k)g>k70eEI*rqG4Zttq zO`MHVzGM*xirv%+f^(nq`^c`0pK|E@bnExZnLz$apWDS_jUfp)*AMsFK3j!lBbHh*C9x?GA`7|((?O=#gpnWAq$m@Z(! z98ywfLW>B{MA&t0{uE3C2!Vk6C#-w_|FTa)MC z=e^zBrq!PYu}WzOhYeb+G0g&9P?MzE>x2DqpQwK!Ur|58O)sHg;)lSPD+qW&9|0J& z`<0&aA|LWStP(MP-p&gRCrR!ftsTg&T>ar|$bHE&((_}~R+TMcEJWPCf(r|$-|B$| zv_GV>=(So=(cj!Ob++#5b0xmcfl#|6NGJ{V>QJoCQWf)e~lVPN~#tSqR z9lWeH4a}>)0FB~yMc(F4Udfcji%)Jg6(5a;*DY5qzQVzitRFRzkyP02k_>i_C5oGd z$4X!W5@VO-5nQ}w*GWh$#xgjEBbhy<9OmOeSMQ#zF(KYv|3F`C>H zep*8W8WM-yJUW43Sf+x+Y~8=cZ2o5$=W4I-aPT9=0LHVom_1zlMbF?aC6qBsCHIA< z(IIgwUB(}?(?}`N+?0rB>Qw$>)?7J*-CMWU7yFTTPb<{1mASj7&`}r)7 zWpk0hw{O=0X>dWK_ha4qMVQ`QN^%%djrsbltR6H*`)+GB{mZ-gvYsB22d&D89y& z0Oj-e=CCkdf=WOfs|AO*rnC+Fl8`uuHoyybDmYKRY4-*mT%JQgPAB!Ou>zmf-G2Xl zLh?&$;=J_m9K_W5AdUyDUVkqjoCF52bUD97GqG`^GmhjX#Yawx^}pu*u_M3ZhZ^!f z;)lNrSBU=!%-R1}cj@`7V)6gNX@9MPGaVq134KZYenqGox3Mu;85?NqBHDO5hi>aK zu(qYhZV-!Rh**5!wVUs?(^7ft{7EbLm%@r#v|^ z@o0BRd=FhowUNKK$px#f7RX;95L!naS)ybKYQiS>@R;}vl1mR=Dn#1t=juzJhy+hg zrg12i({3#-vZV9{IH(-H(*GY}yTEr)5B(u(x;_W7j zW=4)>K6ZI8nwn5z&Pu!{CU8gS7lv0r@f7^10}fylSzp*^6Y1Q@wop`r&o|9P&)f`k zjr1FQI3xo?EwZh{%f8XEo?4xrzm88$Fm@>hBGIYMLAt92DgS;8rq)bilt*YI*CC|c z#iu~?FG+hvFF^_dnaVn1Rj;`2(6LF4E6qwYD=~nBugJ4@pl>y<4fq?ou&BAfCHncT zP`mQ9_ueZf5;?SmRH#KI?Zpyjmn%b@a@LF?yM9}zt#c0jc7feKP19Fg_9nStpb>k< zcaS{Q>px1rkIb$y!93joCNMmr)4Kazq+s#I$;GnUq_eUJObocz1Nk6R2ElpNinM8E zNEuw70~yQHRUwU!Z?5;=U@2^!%p`~zv|~VS-a*MR*ic*@EERuyw1Xx}ea$s|dep&; zt>9Ut-xXzs_UrrDM#4xSaC0dp+76Vq=>WNt&>fevT5UkHplfCqQQ+pq5@x*e3kGnD z-Zy)m(;RwX7DS(M)P==+?#t|`^KF_Ug7WO(IZj(?QN0 z?H)EgMUbEEFAL>^8rpKHg^hJ+qxGMXdR4PKYW%SJE$Q{|*5`^E-ixm<>Hsj}59zwWGBL4D3#CCD zZQr1^c0>8$9H@2yR~sYrxyrLAyQ$^tMzsZ2&6_`$x1)mqzYxGp7F6tYnXSs$othZ) z?$A{X{>Wam@Y8@GiOgtEVUrI=k^8&c>yQJ-j`cMiBqVB`f0c>IUk|@><|6A0U(LEY zJ4Y}OR}H(QoGX1DI9bTNTfNSZ0E;3SkP4YCA>OR_4 zTX`eYZquB|9bogV%x3=*?A;#tjI3;TZ8M{%c(&Kt1U5&6N1~}{-lwlWuVbcW26yAW zhgn&`2SvMVWF&L^Rmb|wbSDM`{cA*|Fh1)`+5!$f$`(a1owhcipk)ZRtXzpF)IW7LU$KxKvzhx3_8~-t_*0(HU}+rEQT*U|_$Rupipb zfXZXc1KN6+1>GWmY@g3{wY&h4Os7BG%_!@8YX;v=y7NLdb0eOUHmHW5U|+r_ z?wR@FJDXK+!?iIwp`Y-boHagqgzWqHB>hKR!jZEUjCKbX%2^HSFjz5*HyC0u$ zwo9ZO>4>0lc8m0jAHP&Kb%0>iubiD-bg_w;LC&{a?Y}Tr13dht-0e?Jg#yq_Z8bVm zwL+DZGU=}B$3R&1(^f3|!F`(J-mH8TOGfp40)JGNMx-Ymad)8L7?NJxPhuE zv*E&L94I4fg#%#Z2m_3qo(3}2IvTQA8`#~V5ckW$lmbo}OW(?8ZcVhL4i;JU|;YX__Cl+sB0yM=%Rn5DIJ!N9tnaxxxCYw||zt5ufjfeEQeBixZGZ z{22*e(#k6hxNUw^%59zY5vjT;w~o zC@NxqC!@cppT93>sYrY`k170_mpYYc&*KRIPVMFl41QcY*El?E$!#eTk+VMlm_ni6 zFqTe5_Yl*2xAzyOck5&COG5uS`hYaRkM^!;zs!N*BK+Z%wHo02V zIZZCajDsinG-rlx54sHIPv$eJ`vNl}09gcn zqN^=-3Q=pLdO~}?b=ANW*9YoOYXC&?ft~^DGHxn~%Te~#?759WWkxjfj+kMQ(pseM z{7b$Th+Y!+%q9guzvQvkCtURB7>@0u5)FYh=omHdPFel*vGD8BzG7vFbc%}3LGsO=af zac7+<6M(-?4x91zbss1Z5w%lKJHHg^xpnQfqb-uM{2ingd5YP`5Y#_4U#?*@W9tg| zQL$&9OpM)M#7)?MJCAEEfx$%?3d>wWt$e>n5}cd9o1{>XPQFV@mea1B$e;B@XfKcb9Q1-U zt(;vFx)7hD<64DKV{RXVM%H?#EjxL38n4e3K5AK&W8O^l0HqHZo-NH==@!u&akRRi z_N^(?vN3&3c8{KQ>tFU z25wv$c?V$VMDgPo4XzXpDYheUmEg2v)s(oSk2#nlDa{05IjjlW>l^B^P#&A*pq!4{ zM_L0tSk@h$A(n3wo)D9p*)NR~PTo~Wvw894Q;hL+Kh_}VYyXAa0&%i#gm?%0e((Zd zo2}Et6nps*`7`Er@t*~{B8HcXQWdQ^~LJB$tL$ES`R3Q>sGC9j{49KobBg?8v z9Bkhmz9x((5Sr)a*y~OogxCOj>TfHens_j&sAqG+hcY~^@Bz;FWxW!E8Rb6AcmOir zaTu$b0Xeh0y`9lLj=i6Z=yBL2SZjA@!3(j!!~o7+FnAgLYwHj7m;c4av48D<6W#x@ z1e80Wm)%`~h(KWESmBC?U)V5?g9ehzAfvz6M&C&G39u9G9|b0zr5m?Icgg{~x5)e7 zAI|=Tu5R<%Tk~r1+D0uq+ro6Cz4o?72}DK-@vtsC$O=zNXdk>lGWO^GtWCsn8WakK zy0MB#{pz>qGjR2gTlsraXD5z5{pDBDygM`G9-g?1*<%uCXk|V;SwZjNie+`GdT*(v!!}($8HTsDeWKpn1ej;AELZJ+%Gp5_m1jMkSW&JW_l7oE+eV%DDQ#c G>;DCpv}!v5 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/cb-help.png b/docs/assets/images/monitoring/status_cmds/cb-help.png new file mode 100644 index 0000000000000000000000000000000000000000..3564f9acb5df3854367e5b0f2e6f3395fa3e2d96 GIT binary patch literal 31247 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

s!pz)37&qxV-NJ^w_g!T8{mBAw^M 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%0AGh@I-prR(B7PA$_9!Z?_#BTdg=vNJGxV~D$jKC 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

S{$K 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 Mn!u0c9JzS=-{2yTumAu6 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/disable-theme.png b/docs/assets/images/monitoring/status_cmds/disable-theme.png new file mode 100644 index 0000000000000000000000000000000000000000..8faf92bfb4e41bbbdc16c0de654bbe61eb5b678c GIT binary patch literal 52574 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/dump-csv.png b/docs/assets/images/monitoring/status_cmds/dump-csv.png new file mode 100644 index 0000000000000000000000000000000000000000..834144a0ab3ba6803066b6fed6dfcfee3b4a469a GIT binary patch literal 44922 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�ViA}`C3p#(YN~z?-{|=5FUd)MuWHIz5rK@ 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/filter-max-tasks.png b/docs/assets/images/monitoring/status_cmds/filter-max-tasks.png new file mode 100644 index 0000000000000000000000000000000000000000..255882352be6b6d60043fa1fc69d0df0cfbc71b5 GIT binary patch literal 70916 zcmeFZ2T+q++ct_D6)UKyhzPi;0s_)|0F~ambVYg<2rUqzqGAK2h8B9SO0S8CN(nvm z77L*SLNpK{2?>9Iz2A3#^S}T1pE+~R%$ajeW->f^%39A_>u%R|--}nqhFWJ&T|LFX zz;ISa`>rVi!%-mpD|zBL{Y=lMxaw#|jcsn(-y@jp0@+PSMtYHsqJNMO7DE;*NijlGq~Ch5rcB*4+Ws96TBEVwN%cJ5+CME;(fo9NBp(2&Q7L`VTYtXJZ#9?qsK{q<}e-{ zy_1}OJm3aM^oJZd_s_v^0oCBY9%sED8=>eIGb~S;pPjmkUKc<<%#R~N6%JE9SZYwSMD->1kw^NcBb_Y zSlm_cI$a|sW$M{`P4I>z;&?7DeP(&#=}{fVm@LeNwE3FZnMIMEHq>U~_;91c&d9@O z6x$|(7+3-tzt*QCTFpDUC%>s2ocW;uDbOpiR9+4uUn|_pR-0*LuLEtB?H;+YBu^D= z1E1LA!n`qkt-Fnp<7tS72lVY?H&bywUAz9uq{IO$=SU-!PM5mK%Xv}Db9)2a9scAy ze2!@4?>LeQ?#fJbi$hXw{U(H{m_}t{Xlne-1f&_E0?}^KWxPnE5uFu6bs~f>dDXkTOL!i~$7ZgnWDoV}?OYl1ulPdxy;7BVh{0O2!RW zsQDu$R;|ms87O}1Yx4=We~CC_m2cYG<2EN-&iVyy@D?q3=`t$^N#kym=LWwtd^0}n z8VgX8dpI*$R?0nFx!9&SxDcBT`CaE$6P#hsX62AC00LC4_4j^?c?2;QUJY)ECt909 ze6{n*zo~9sp%O_GrBGGg?{U)<+tC0I13x?^hzO|VO%z3{4^r}`J^ZkZ!h`Bz=3|bH zcT3QkRpLhmC1Z8{Y}P9=H*#eg!iY!SmbKapSh+!Mm=)6t-N07q*!)ylj_#Y1;<9JO zd!LD&C7|OxDR2BpWb6v6F2YA?&0fb6vbRf~=qg$H+5kC)ol-Usbcdh`y7G<=uXXZ*lC(&XWIlTG?zdc;#)sLw4C*{{I z;O}vZSS#HfGYg#gn1YTil3gwA#`T=t+Y-*>#tO?+b998P1&b24k=pO)-W0&`Qv+HP zS{`MHML4esDhTKZ%sJ;5FBfrTc|=aT2csE zL!)kQM!OG#IT(g)Y3CI~@UM4m``bNoQ8P~!bR%uPx>(8D%FeRaXI~ zy%KV~vFa7qVlnwUg-o6oqx`ge@8Pbc4Q^^Di3m3u^`&L&8-8V3(>^B?)?@!0>hz4j zHa^BejxcF}HWVblDvVTBRm4o;S4j`2b0BAkzf6g|lZnH+VQE~0+CkOL4;r`264v^COz)C%pCVsH~9?BSD_W6 zO>F`QtSa$C8;+`_?=Yve8T*zJYkkWL%e(CWaS%abmAxoLwsGQ<2Y ztt}uy?+dY`?n}!={@*ndN`nGwC>OfvEAw-9(PV0$9=NWh*F|1m^&2L(eaET7BU3lu z)>VTeh?^!?rpG@}$X%GY%PRH=;3&!w?ia?NUG3g3EZDMl4HqIhw4>6S z&7C~maW=6?yfRhsMtOSuslCY3i1Ra@>%AU@iB@J zX^{%@hT~rOg%>V%)xz&q##vh8n5tTUt=yPB*lUM4C&&cP779pPCYKO+w*vJ)<_RLS zdNinjEGwyV)({mZ-NF1BrXk*jh>mNbzLaxw02+oP)%F9m;lAM_Z~!gli8#S9r1t@8 zH%Hy`?w#wjJ+PXae4ZV#d5ZTey9nd61>~s-rq{lA&_J79S7x#(_#TJ-ONL8yg-2`V}?Zz#IBgt$tL8Q150A z3U4i?9#K%WNmdc+9d)-(AsQN-;~S#pjyU0ivRy3>{yNKs#j&@-`EE(vOzSm#2&&39YHBp;i_Mv59VmlW6wQ?? z6+3~qiH*EbBBkN_*Mdll9n`o2nAdMbwIOP+`lDT90^se$|5r;h$O>Oj=wrX zxVzDB(_2WkZ*(a3jSrumMb^Y7xS@6rIm^W@b;;TCji zZcR+f&WxZ9kmNtZJ_C^Q#Kz?KkKjxz4B5i`B(g26?`=b%t$5mAA7Zgx z7k^Ua;;7GZzaIB*me;#s>_Lz!dr@S`{6@bK@|SO;n?z+jXV7(JkOQuPGlpHDJc`>S z{3H2W8`6Xo=i9B`PrJ3s9jX$OAE*CneA*Wj9deI(;YC^Fns09dZTs7c=|=4PjZ6HF zNu*5afr~-cn$H<=yPxsnlzBH~C?2Bn);_!A>>q!EqHj*VQXT;qd?t^~@GrUzs6n9y zN^Zrmp(#G^Cbr-6;bxJMsqewww{CT#ms>m1CSf|QzFk}OT;r<4z~s776cS|wvWOhS zuJ|XR>&MZ&obvq(uKMRX`JPA0)i3S_-_;x4dT*ux18yj-+B)X(WmFH47=4JNPdGdP z?d24$wHr2XERK zzP&-t#pXtJSO%a6MHjOpePMnT_eFQ+>b&eo&K_Qp2c zH95w_kGR9CssR=sta7JnGv`kBo*GtC>a@+3s_b%E&DVMqJ!tqm`Zg1)#;sp5+kSP5 zJTf`}BAX@P>N;^pp_i}q>{D&wt{6FRd*f0yC4gs9u4<2O*Z$3}$_OrpcKUc~pMB35L~dq7F1wP&kL73Y z%2)qLH(vg9@j@h7ZUVLSv)2-dZ(SN8W-YI56>J0#u4#RN0kKXhuUXfMt>O+fjUf3{|%H%RGmVSy5C*fq^u-VqiYPkdG|j>ABRIIefY_d5mS# zLBC~5AU@uv*UIHt$Yftc3?39Ea<(4>gy&|t!7U3(U!T92C!HPmyo?VDM`^(tF`CcF zT^8tNG36t2gILCmm!8SjF#%%^M(gb>u6_OT$&0}#R2xrt?RSuLYHe20pPx|nwJvpI zf)R;`M=kK?{5^q)n3{{=7gZ~+?+m*l#}rgR&5hzrw%J=5JX#HIsQwdC9{PM`ZX1NL zPhffo;Oa~}r=q%Y4;_?}vsV%}vVHNTkDG1t7VYP1G^ky>!7klTb}F^1F)Q9?rZOxn z$Pq$`DcOywYa+$q1y@RoFIhwaRXyyvl?JWq7I3U8i0{E>E_IvS8!+F<34*BHh>RWV z6Ykt5rfGK_2J1=*YN*c?Yh;WGl2$}OXifw{ShX0Idp;$V1XFY`&v0-^REo)gRBLQU z`!-s|xLj!mG$j4>VB#%=`x&t@d5|+Tww*jlcb%D-kVNw8zK*Dq1?iNi=hcR9n3hXO>T5 zsz|1(uPzx{nzjJUnC58mntd7b67Gt(M#B=6FBK?N;#`BJKN(s5_9*8z)VH1KV*0^Q zfXbm(&20cbc3(rwF@>Fbi8k^IyiHMHV8|>290k@rQ*9B{oG8cKjL(mTXpK!}rMaur zeiIiYS9p!=a`G_;KP%=2Frw^=dqMc%wfvd>Q-E4!x6l*InaXpE9rW-9an!W5Yi6km zHV)*N`Sz1qbwto$dzg=sLY*5t!f^lGrqEvy?{VZxgc%*N?tji){Nr!Hc1Mlr;M8@O z6Uzq&3#-l z(894fco7m?aZByQLEmQ*I?gWFrP>bX2cN2WU!?V`Puo(^a@@tpoS7TQi38J95s?31Y4PS zzKpy`dL6cHeW6{rs~C+r6d1n1|BQaO;Mcg|UL#}=UzaK0;o4FW$sD+%S+fWr)z;6_qnh@4;A9eLq!Z8jR2h`Tb z((5^lnTlYk1v=BjylCnCu<)VSezPA{zI|p?BsuBmYJ3&XgtuMP<6o(}anFHT1nqp= zO@0cDcriBpv;uhsd9VPFMvlM~niI-<$445%<50DtdbSqq*|DdY-?x!P9W$YJLG~?R z9@6xu7W2RjPDcOzE*{t7?$W#Xk@PmDI+*L#&i7n`CGzf@trF79Kg`*6#uE@0)w`8tK`0&I-A=E z?T3%`90M*^X;-!Is~|vHsuu1K@5qiK=WRdFa}=Rh76+y7hkNLinRGmf6cxXQj$tfq zKAgMlBGyyO3x)DB>Ayx2*6Cr9PEh;x=TG5{-Fe>LH`CSbB2a^dIS&nj%M_YNfO8gm zDQuwoPWL3oRQ?>_r$!mJt0=U_JyA%bWw_OURLqB{e7i*rOE;+e30$&6gNK(j^(Li4 zPZ|NLgZ5!IFHYW-s-~ zu*6~2RKwnebL=nt$M&kdeVbFHiTpIC6y@Vn%rjNWgIs;)BVMT+2Gq1{dArhA+1KqJ zmi*TPD(lW-&A0J|7*heUX6&cT3UB@1+Yhv;O1#$4>4F-u=P;eA)Yn^`s4p}dtk@CxH`~5wBaz|~+;r)Tcqy_rLi8y8^ z3==G@1Mvsa|FMTBC(!6#VmZbn4co(SO6M5ZrskZ1hn~2YpL&Fonv@fBcFI^h+=wlF zFg3C`L)FZAUmSj-%C@?sLo@=$M8A8A?DxfBXoO`{473U`wHMdUeJ?gPdmsjn?;ubp zwxN58Fi*p(YpX5gZ5N9*3nP->R31DeZ?GK`6Enxj&K^&tf)j5^Z@$b_lH+Og!y~_c zZxuMps2z7Loy{6%pHTHsPm5$Y>7g&>lQ4j9A3rdBkF&mUDQ+jw*IM!G4NfT=k2fC= zOA7r?O&PYse z%f-t!`G&(7j+2BCnYoAd0b?1UtL<6h`!D-Z?ccPvUBKZ2yp#O58G3AJvl3pNbYXT@ z-Xk&_mF{b^*$Q5--#WVg@PD!XErnW|6?8A}rta{%FyW%o8Dck^o+&nIdgL zpjCjylnr(wYM5dYDYx-_eK>2s>sv2RECcHVPCtLTraz!9CdXf6^KJ@$Ox|#k&P)Va zwdKnZz6i04I$DShaf3w=oe>%>{@3fLpUgh;8+_}~H(@f(y5G!@)lr~g%|D!g2rsZs zrrCxoxwM#m5WR@9rSzHsFRsB>_z&VY7FRj%Mh(6hfrU;+9=k<2Aa_fokI zvN=w8+%SIAX+Czyy2;<+YqUm+>)_A{PM1UZ^7OUsvyZn6(j$k|TR@Q818lK}%{=Z% zNPj#qo1AGraoY4og`P~~4GxYs0@sJ|o1l;Calm`a6JNB7J^r#gDh3X(&GJp*(~WN` z$#(F|GLG_!hvPY}rWpO?4*QN7^GJzNfky?cZ?a%2D9`3Y5`MZyv{;+`lX8JN(0k53Rhsyfp}f--Q=1xZ(qsG#9r1 zLU|7uRx;!V-&6!sj^-DTz=psU^2vw$a++>FP6^eq+XND+$%^B}Xk23NUvqo)Us2lk zghPe=XBy@xa6}iaSD5r|u})`$k~t2fh>GG8w|4j6<#86>z3m?`ypxRL7#en?SuM_T zd~+v!Nl1GAmixd|WQx+GuHiV#`FF{$RHjtU38l!&U++5K-;-=-(U6j$`i*1%`N!(A zkB`7)tZ!U&b_>u9Xcmeed)gPE7R%esR_t6CVL`mHe;30*$`j69speWS3?ZdknHTuz z;-Tf?yK)d^$%h{gem3waW+RkB0yM>7MAw&*kA)ek{^UcKb!PoQ zr8706!p#?b~mL$_yxy^2Z@Y+(cZ6L^AzrL*8%@H5p`YsOR0&FBgW}qem+hC z|J!ir*5l0+xnc2RQ~WE!FOsAYgB}KQuk!V!{xNS?X3r~rJfAjfW_$F?!N}a$j&Np* zlJfLpQl6I|S~xfMBb;Y$Q9et7f3EyOLVX?RK~f45a(Mf-?Z3kk_P>MG{{oW|Ey@1F zg?S5eGqDMa+X|H{0zsBDf;iH_ny9G%17m%AhAF%!tP}s|VG8aVz1Ph5KGxG^y*tw9 z56{KEe#~q*f1vZu1MP?QtLNNMhtQ!1_|bAGHn9tvbS+(xKhRSC!25pq$^c7Le|E`? z!*l|6r_S@RwRfYX`*FiUL5st?+Yju^nl+{-?11T9|D<-wY0SWM)CjcwA8f@eQ?gW7iUZmqc{a(Zx^{&H|Q~`F!hD!rwwl zxAgKVGkP^&ZXCYA1>T$}v-$?J_%-wR@cq0hU49v$c7+zGLb1S_8VO$OZIi@(gFX%l z@z8fH;;@f}vzR0Rc>`KJJhCH~@V61jgV1mD-+9abtU3p6{}ZBS+No)&o^^8>Xg^p8 zhL0vNHToHH=zqj%YNmqc{u{)i1DiYn>wyIcK^yNbvgaOZ;-hQ-tzWDZ+*AQpt@W&Z zviV7MGL*y)+JsrVLN_t@Hfrix!i@^|G0Xh}OT)nDA8-VAIZy;NYN&pBeDg#Wdk^+= zZ%YNTPbHa-S?mr+XRlcQS8T!%ySTt*dl&=!(=`0U(fuEU>er`dUweC3bZ3T#yJn7& z4m5SvY#>ri&@pL5mzxDmv5ypCeRo4g!VkUprjYmejYVfn(jOdwA{+q;2EjGJR^Jkr zJjWOe&>Pe&CzEa;*^lyqxzcUGkQ+T4`|5JNer!XgBC&jN%cF|-$wA&Ni~s;5l+_mfmBhob0mQxkl+uaEkv=f|uA=`Id1Xa$$&&&RmP#5@J{ z)1eO~r&_qix5(-prbgQrUNQpAaWGlcEW2HSEXSdzr>Kfuou8Q_!5ffvF zbJ!B}f>F_{CWrZI$iI-Ow^3XbeUx>(B$N0#`}iIOqN~jdmf!_7O-#gmY)MJnSNE&9 zA!SqEYoUsMnmfyz_no8tK7Y=vNP2BrVZe-?oxt_LMAB zGD+f{K-Y)4I~zMwcJAuS1@oDh(FTzFl?x0bYkhJ5Vhi9CyzXRsxMPr?PO!7-YgA{z z`(}Y~iwt#y}<%a+bBdbyhSB7<92v3m7{vXIX) z?VCPy2wG<0W@oHEVa8PIS^#(|kSbo@PV30j=pA_W$7Lzcm3pL6oL*5)KCj>+`ZI4l z5Ny!8q|wC;<+G-C0ufTY&*++Pu3>rW_wTw4X5}%}>WNx`(_UdhhB7G=Ju$KSa`+e} z5qbnRbmJ_?^$)y95{lS1f{*qexSR@R{jrX=lg^v1yR0=uu~UIRnQGY6ozI!y5(h7M z_w_h8@Yu!&dAhdH&qxt`HY%gNe5b zicfbp-;YElr(7HgCNJjK_cIpZ?{%%VaPp4CrvNX;pJ2kg;UBj})$41$|9nG0a$v5{be{6zwox*io?=Zzu#r8fghj)zPUnNNJ z3M~eXT*=Le%QVt8%TaH?fG+>?N>~tLvk`QM*;7_6hml_@-^IF8d{Z6O6m2-PC2&gy zJ+>&ZZEsvu53bGhp~> zT2jw#oqi##Z7!HGOzh2_Cy3~Y$d-ei%F@bh{gp=PZ>c=r6O2h;mF?43Emb@_52n!f}`SZlIJBlmU)x{Ivf-iAL7qCyc5FD|u@DIVAU_d(>5?Q7J}1wF7K_nVxzQWK(Fd>c;hi-s{H@7?EkCS=XW-70IF!%dh^oS>eNXnsCS>l zdZ@8DJ2R?dvllt&H$B73@Yr_~yB&)*U}!4dl+OuN2kekS7F0IKul3AMIr@8GiJuDe z%*70Pv-3v4Bp8e1Q1l--a+)kcV)*u=Wb)Ll>(4fi47;nni!^~4kK0CO^vBcKBM+jzxz ze(!~kQFb?JddDLFjM;!K5B~FL*AmQX!A-pFdZAayXhx%p8I}5J(BVV25R2o0-e_vN z(uA&n_Cp8px%Wr1R|b1#GGu)=aM2jTM0Rj9)6g^>Or5S-oG*$krX5g`&@s1T#PsAs zpKW!-QsW>dd}%dH`hb4G+VTR05dx>>M%Aa@cDGn_ZPn+n!4>XhB*EykruX6rY8Aw^ zt8}p8W6KsYr^&hCN-KMkeP!{V^Se4rNGRIOXrpyRTfCyY)N0#&{e5JGIOjOp zfjZBBbIBbM^M?z76B%{TDsZ+qg10CAQ#1Yv(Yz@cP4N%t#L5c=1>!A zkdz`~@#*Dk+9C&Gcra-G3Y<{Arwev0wtE-XC)hI!HXmE5zhg0ASQF4j67P-{I2VX& z_j7%!vKTla01v3*?xhlvB8<<4J-V}yU(5w%@=czLK98v@8MJ!Cf{^9Qw(%LQG*hr| z4%Av#-c=xtpyGOCyu|t+@<6P);DH8_!JTk~Kh-BK3w~d7rHv44pd<^Hy)UpjZ$3JZ zH+O!7_c*pE7g)>MlA8Ed$4XcU3sD?F+)zlo(pw%Pt+#|x!)Y(-Thn>`R?ecL70=wk zJZTII;cF7weDD$MQ;-GPSSg@Z??)*@Mj|sFYuMxjCynLxqGP>{P8PbzjiSkM`>@G( z2N`GQAb~r_3xd-fVR=IBv9VQdnK_Ox34JV97MR+E(xgJ=vZ8DcpSW8PmBjiuorDcf zGDlH-`jS<)g1x!Y3=LFQt3)gpLzERO37cJ+i($!|@)T2_MqjNilzNY}?*I%E{EtzQR9AJ6ocp zU!-prihae=ozFMM0kHjkd_xs`_mZlm3aQhDvy-!GI9E;-szEkc2y$dWkpu^fi-rCc-ldU+f+3j zKdrwO>DtYi4ggBX)CVr?*#|4ZI)I&S!?!W?vNz_12oruR2+J)GRh4!O6nP^F=g5o^ zX@WgjCa-cEs$8?!Q*(8j9U3i?%EoPQ*hd1xr={&*(ENk4)3`m1NLd({yA6TTdl4S& zJ!i{d8d5RzV$`b7hI0A6lcuZ{E`gG5^*1roC8_tG8+|4ah;k5$yS0T;y;=TVnqupk3Un`V2uEWwK#ko8oIjsmY95YVHpQyeEr?JMv+w1r* zg?uc*5I-ZW?kGi@Y;e@K?XG(8NX$r-*8_%;5>*I(e74CCvXK&mG>i*QBE23j4*;sn zK*SZdv*kh7WsJYteR|51i-L0ogG1t|7@4e zXGYZP1pQD|7T|`3>jEN0n?BPWPqyD|?ILXq+QM}GsD zb8gdX_4VPQr&-hrlL^$?&_k?m>b&z>%& z5K&7Cfw0wh&(m#WtT`wWx63b2xfo{5%3sCZ&}a)LXAw3~ou-w{$hxTyWv>B?XM(%O zUB1?7P=Gu@`#pKOge1cSl#(m-(_2=eGE($dcve|Iv?;H8IML-JzY^e&l&~?P*K+C0 zB^1vQ+JzBN;@jQ!JPN5Mg7gzx%2HQrI_2TJY9lk5+FG6d*Y_2;wM= za5CQ<-4&urPlfB^gJXU{F0$Z>#6d-(EhU%0^-r^50W#*zzkh1li^C$lFryPZjB z{gX+C!dMLnb=5@HOn;xaDL*uqR)>By+tHm3HQ6p^|D$4+t8FvLqPP%`OEdKiBO(xA z{M}euXOSyq+_E0xj`$sy7lNa)Kc3jloi~9rNT5t`?_j60*<&wQ>@BQXnR;0vCCj#N zY@j6DIJoTND^&8wQS;-{Er3@k4_PQ~1lrH<9*y*J$XXC+hZ2|FyrxdXxUhY>wQAz~ z^{9ltX(**ydTD|Qz^-z!vo8+t?lg0iVlt{{Iu^^4zw~edbv^XHzKrP%fc({rFwEhXipVEK`+Y0d%2~!^5$#8!QwedMvl)w^O{#C~ zT{LBJ_RCinOY*#GqhGUJM@g<&)^Z`^o$qSzxJZdPnd2nM{6JbR_3C)lD(VEf}l%4s8NH3BOTw% zP?*ZLrBP5*;6;nbHS#4@NBf!iq`6@oAww3VdgzaNQp`7dBUZwu5h{xl%i4Y|pKLoq zo64s>tV=>`v<9g<{%#Q$bc*~LDIP)Xx>Jo3czJ#u*}^#r>0n4~7HKATzuwyIz{q!$ z`}b(uDa@s2^y&J9)UKl6$6n}%j<`@WRy`>GF6EfUZRv5edgoSw0i;oI+Y`zJZA>Xs@gWP*=Y!elRx_iCO42q+GYli5|0kNqkR4Pbv^d&+in^S zu5;xo=TA3KSs6fy7#Wu60}FG>ifYs0fLNYDMqt4-v)c)?Qc<|0BAsG%Sl>E3cO zn|7lq%wZ$Mn|#-q8dbBYY_#4~o2}^uP6E+N2%T~ozP?5Vd-o@xPXJLrJ&g7UBdE<; zX$ehAL@A5`EQK7~^7@^DT`uzSZ4fM%Y*i55^2(6Jk>D6dhn|@(RfH@ggx-c9W4T2C zBd`rrZ-_<wQr?Hpo;meqXxdEeRMdgzo%VQFr;gj~^SBb#AtzvsS(mum#hyR%i z@7&^xgy)f_i}~B<{gS)M%SP!4)^$_^0Q5|^1g()=8=_IT63*8gCK0Cj1t5LBg&w*f z_b8Ly)r&H1a~pk7Im878$JaV>J5-;_B|?Y!0=ZRsMiOBY%FZA(viF#I$ZhU8@VM@B z^dNr;cZ!gLJE;S!4-wytdVNIhK2neSdKzaY0QWJ|lB8mb_^|@(qL--BNe0s>OKxe8 zRaJTW3i03W*<2iT)J7oAsD^sdNlkEFY}pY|xyQo5jL_-jRPKRADMoV9vmQw5 z2$As&ox5EgBVQ7gKYazD^g7?u(K6_RTYKDUUD4{QYOxh}!AUBgLwbWCS?MS+;m0lvP{pCTNEhLK#g=-HTV)zPwMEJ&u%5 zE4I4?=fU>_eD~l~x_g|BrBX%;c2_7yJz8Y^qZV<*#`n|c`0c@<-xoz4Nkq_miV^i2 zKk0K2bnQX$()_jj%%)xLK~<5xEf=MDCK^eDw293nDcJxOzDt^GD2)pRz(4tLzr1&x zQ-xd?;k8xMsI{8+Cy8|rI)qwefqiWNOEp(J63Yd$l9!62jMlsB zM+WagWQOJ*B5kwOj75+E;#}=hE7nE@ywRUi?JO6Ton( zj<+Pz8Iz5g=|(}BqZq%l;teYEwX|-dVQ|B5@7S-XoTm-H8}$&Y+2;8G){_()dg?`^ z$7K_pJVajA!yAU+q}*3cs(ZN~2TXH0W=l!%e`?Tw`BC}mZ||AHeCIJa@HSt6$C zer)x%WLgK5Wz|L5Trp`I@n8le7yy@z9J|q(w2{)S3FlZT$boTXzhD+KVdCR0R_s-U0WbX|WVcM8%GGL13R#p|;b7~e~& zS#XA@hODU6HRSZ-C!Sme(W|=X1vfP|t}Tw4-nX>4@7ecQxRm>`;>;rrF8h{5NwPj3 z-SBfGCB+P$YO|?n>R3`Zgg?_Uw5C8$Gf4Z(`)j zB^53d6y3|V#BWvkjQpV$bC8B;El$`C{Xh*OzF%0C(l!jX*3$vG_x*u0{?L#*81F_JNpQx;-nUJlifwH-;jv~Bo1Ign~B+Si4NdJ3it zo5dj+8?Qb|Z3wU#T`K<)?Z}Z}M9nj4G{gWg1Dwsg*@@yRl>*ZpcWE`s5liVuqx^jB zAhrwNPmg@DdgzT@^fi#|6f1BJ4v=&1Y`Y58TRDG5wo;*82tuvM2S~BUTj6(7=vgwT zMFN=)F1*;2P-N@VwrpTa84)S<$XZ5Dv%w-les6G)C2>Q4{Phh%5AZI@f>Jj=mCPz* z-&xz%MtZ1!#%`P-@& zXsXvzm&?!xfHn_72W<|;#LKiv&b*&L1+=H_1*De>XEokQt<-KG(J7W)J%}tzM);o zwe(W7OVsC!@i&PpWwT{(MeFZ-O=X_(6V+>$6^1<&Y+-r5=KIxraS6 zx<#Gg^1kGv(;&QlUm@b-jENU%n5tm806GubCjpX&jy!ZQY7+`&l|fjK0c=Gvl!@)T z%G6vFLoe`gAC=dO;;K`iiE@yDxYk51m@?bE_jwpOay)Xwv#^wNx%PA!yzp$=!8SL~ z1v%1UpsBqda~{yjP(;R0z}Tg6=0pEG;}O#9L3D0bpp`j@_X<7V6T3t&1m#viUzNWi z*^v^r_ow2{xdA`%`q#`wlP0|CYJAEdzW*&i&jxar9jhZJ=;9w$U)LI3jh=8cCpF%6 zMWBGCbYJv)gZO=d3u*)(R}Q$L1O8z*0~ZM4g5M+|#X7=v2;Nl9F0|tOt;`c0*7F+d zX!{1Gbh7@#oi)E@#l3Gi2%&aNpL2*X5h>QNUABmJcwJHKO~>h+zr=mDDgG@mG`lta z(W8Pd$*iI+0G+U+RrK&Rwt|Ck z1Q^#c-2z32yVl(-x97Sq{i@XMQ4U`Yiy=Go~Uc`imH-W@{2(G`G zPkyPaD%#oFpC6b|S6scfX$S-#_f^p?8(g)gZ+82RSB)emh|fWxcb;_UAHr!`+uL-b ziv2BbZ=8K{q$5`D6$dC<&zMkiJGYch*vwe%x>)xtmIu<*Y*m7C%q|>-A7N0_61*@p z%Wud@-v6BnuW)JC~)=gesSso^NQI5@gL zemNYS**e+Or;Da6ZHaCRT#*_5qT&U-f8*MT5njlJB$T3~D{w%yPIanml??2dXIc8b zDEOfMeVCZuFY|zKBUpxkQM0Z$t}KbzQ4BwNC);|^Fl=4qf!3{M&Oor`a1*_AScLP%mR^;(y#yHBh{>VvxESHqGB~USnr8XRG8c%idbtZU z8r@L9hfwGx`@x5vHtU`PugwznQ{N}kTo58SD_ef|X!(EPV~*a1IvahaAHD__#o~p_ zH_CP=Y1jS(KpxWATX|iqn!2@Soc-ipoT8`DUiYfKxysKVN5jv%UwyK{bYvX&NJ9PX zBggT7Z-CSCtY7kjt3TQq`Op;5A|aQSJiYD;MX=jzOFQa9iGEeZxUS?%U&t!GAVH4& zYm)Fcgf;uM{7Z4W`*%rKVi%_RO{!s1386oPcq04VWLJRPlAp5aZYbtT{Kl+uwc=xf z-{OjedOG4-hFmCfSWQ4WS8~-1&a07Usj&T8TvJzyW0N)H#~2C?G89vd&~kVbC%WhT zOMc^>RyHjqY_z#BJC$gPdg8tvC(5EiwnQ^_&a&QapO70pgWH+tMJ`HoE>;xiROvL^ z)o+Vf-#cAc4hsZ}pWL`-XM$OkdjDsAjpF+`udJ%9lpaXu8LMj5d5hH_5>=ojki<>` z;NiS^_9GSB)qEB{AZPkaN2J`&&DR6m7O`Vs@S0p6L2jg_6mg-sZS!FnmAE+^+y=s?3xL-L16lk+HA?q@|K~g~N+ z7-y5y=o%B6W$utw5<`T$Eqy37YDoEMjklpZ_{A|c@2mSifl?`^JBuIe%O z{S>(EKEz{){pp+)V6pSMO^(t;rEGZ-h60tg@Op`aV!SFp_X?tuj%5a-#Ur%lRVTif z)kRN!o#3<+j>x6wxG%PDT@NK{k0z`SQVs{3LyUVq+#D+nYM=#>thcVBP#+PvS zin~dt8o}3{*nyk-dGIOZk1TbUxn_aF47R?+(setLoIEOkt6c zCR{sPOD^^FY zFvKwL=tB(W=j%K&{8Vp35wtoaED3OKf3v|&m!6&o3H*rB$LXi(>;6v}=(S!ekBz;k zOU^Fz{~ZDi0;#8jbh-FH_g8DD@0O@-iJ7nvKP&?a;epzLe>7`8TB5Bs;<%r`AuP%D z63_F6a4QK0{LUjONgm{aBWY)$=Q^!uL{8GC9E6``a^dqjpbWb?{(x|p1Xet^v1_mm zPh;L{+uo>d3VB_fxf<>H03gPFacw3p3uMRDG1T{0>U;3!JZguIKuvccqOn0|H-fNiM|z3wy)gZ zdURIz-FW7FlIj(SpM_e%caw4%B?|K{uA*+}L`3K?U3~iZT_xfGNu=Ct{!@XqlRbXT z*II z_$~7WUH^3bj(!0x70pWfry&#M#Wn_>%*IE%?A$v7YtxT&E2zou}}%&@+%xk2T!y>OW{lg~p`DbEaj!<-VB_kb>lC7MXj&>`g5XpGiFO3R_KFe{Vj_JSWC!X{hD!%ws5zvJ3|H`}c;_8w7R?MDCC-ND*@Quaoar8wh3ZPw0&(lu$Z zAlsRET~~QR07A`gk!{~-{158hJE*C)ZTm%0gQB2dL#iU8AVdL0x~Md1f)uGir3gro z5~PHnC{2pg(0i{EdJWhpq4yqCLJI**0TM{E7vA^t-Orx=?&qC7^M14U<{xG#nXHv- zUF%%uc^tokiu-y{R`w3DKn+p?G0jz*^&?@galX8%d_h6~o8PmV#c@H;g`aV(waeTG zm7M8gi1U*Ifvh3*R`&}CIS=B8SKo}!ad=msx++u4@YLk1rqs`(w{N0@oOu6@u) zDx!Jups_Tzoxk}C0h>xIWpyHAyFVPuB!89zc8ZEtF+u}tuX66Df=7>btl(@kGe)g) z=0!L;%-W3@q4`<_7jcSt3hv$?8?i)33ck__YUOzW)V65x^|#09D2j* zUBY)`XPFyl`?*Z`{(69A$Fvzo-5tb?!hM<9Zesa^8>D;5%e%8Yp{?7!4Id)VrKA?P zGsey3t=@f$nJQIK(C0S-3It(gnKGh{>eAl*-Pp3ma@})lG*>=ne-0zolqKXLU7@<| zk%mc9T*=q5@`nuxm54hlr?@At_0vp>k#w%k^-wUM%(J&L zKMJ0#P)is+qtCl%;?0R6apz^NkmluG%aqNYsE5O5g4w*Q*#waNAbwbCc4Dh88@Dp7 zpOKHvn|6JOtYNm7XBS)9Q?1JJk(~wo5s&*6ut$jj-L)XKy5$0i!%=J%?om8ZKJwn? z^u~~t2caSuKjWy)qoJ_tUheeog5RQyBTvcn_Y#YluQF`YEzjgq(3ReSOCNj<1|j6C-czOc2JX^%663yopb$`xk2k?UEPk8hESs zp#rY{zjdXNG~s8s6;23$?CY--r!o|WgQHm_-y|oz;*WK8Ii3#k2vEd{|J6orn;Z<* zEMIGJ^6@lbo6k{OUrrI$h4%^VuN@}WsO8@*f4LQyNYkN;wSQcBOiUeW|K{BI^Ot|z z@wrB>kFAM5(9d~%(f%G=-@|$u>Uf2E*^eKjitWFeE$K%k78tz(_j1Cc%^kvLcY*QEpEq%P;2k3H6Rvwr2A=y*L)@*=L z;H`D@*r8rl317-nvYm$iR=1ou<}hWFwW7PKUt4pSxnvF+btwZVS4xz+S0l|uX<8&> z=2^vBKfqXg#S3suFLHb)y;%?M^m(eBt?0~|1lKXTeZ{6=TH>>ZcdVR#NU6C%@!oT- zDzHwIq7PLv<`#TBw^?3Pb9zzxo#jXkf;b&q>xehj*!4~U{E#1F(90;%j;q2t;Hit| zx+TbUlWp9QGNt`9`kQ*=o*Ky1f9mv0%BJJbA%BsKn1Tge;(ZbFTfa@(2SO(mirq&k(jrTAhuoeKQttLV z$9|Xk`Bvt?)7%|K$OA)d|E9`=GW!O%Tb$0xznVxNjWE?GH6~`@g8$#??N~z}8YbzkOKT=-f+YHT9!Xq|NUg zhfv177KSl<@$y!&oK3rh#lvR7UFhG7C;|S}yFEnd*gU|GeO+7edrH0E zqfahMKC7?1=ZyqU4jbuwp!(J9Y&za26hWj`$BI(RXBq^(7TgJW1)~q-5<4LY!5ikW zR-3&MIF}Fde#(tI4hT}x-igVHfr{^WSNE;cqN4gkE21h0I~6!b5+sT~c|-6%QsTMd z-7H7P6CnG_Pij85y^hgC2gP2G&)DTtpsbD6Q+y7M z^sUOqiYRB@_=3W2&y4t0$mW3O3(=0`^L+q3%l)))xdPsRJ#xBwEdur=dB+E_?wL50$eN=?eT@DG0n++s#>dhPv#fn)nue}MDf0<6A6Y=Hc# zkk54hLEoc{IYtXwyxp4$ChB(4^48y8olU^-!a|1u`7GIoktXKt`bB8_^S{(r-ez=P zCAg7d^Ma!0LcaV?Z$>u_Qib&+nFdEIss>X;{8aL!-#%+`f9#xG-(#b}gYaIuyWaUl zVx}q}68=?Lm6z2;43U@6+qF4{jC0Ic6}T?Tn7a2dAAJ8+&cU9KOrBQFK+jcq3h-&j zwpFeCLUM--Jc;7pme1`CB#dd z8x6a9K}7CRHdED6ct?H-dvSwkMBt*4tbmm`mxFl6A-0h>$ViB_-HfvPosR>T_D|}1 z9$Fe(7)UG{90-Zp8dL(rTrnl(z!t1QF7BgzX(s>ft=P4cgP;gxVxmtF_5LTGUsPR# zCMU3yhLD^IB%QMIDw<%p!ICvs6PQmO&Bn3v64*@t_~aU2Wgke3N_RQIb3Dlk-N87? z>&LQGhcHzEJzgt}77*azQ{aI3i^64YKY1pu9aBWjd#do8pD#A5PeF(ub=LeR@Z{02 z+sHn8&=jVT=T&d~@!!-*82d&8vBuOL3U$*l3M~wAgrIaIEoaf#>jOaHW zsixZ+A}nmT#@&Ik?DpLOK4B#Bmf-4qi(+s6-qD@K@fN4pddRoYDwxdoSs(ev*)i*a zn0SrHP|N&|k_d@d^(i(oQvx83bw|Gbdidre+J5QIB2yU<$=0{GGC019IJ@$Huj-)& zwMC_%$U>^OJLeBx5}z0-+PkWUt@fF(se8cZbm(Cu9zGibaz>4@7&tXw%#hzs^ouI z6euoamh-Z*x2)1!4^;e+xPFQ)FG?70sp<&Y+8A~SzD!U_GA_}ET~>LqU~ohKx!n-o zj5J%1sJ{641J!=%h=aeE_^(@xJ_f68+vV0nn@kh*cn7-x!dE%mLr19$FBPS^I;AkN zf60F2`+v0;c;R}ETkFbIXEl+@qODz&x59NmY`Ics*iwJ*a`a zhrhx+_s@(LKc5-!1b;lrc~IBp7$2|Y5}yno`8A<_&-2u9D2HJyrJU~vC&%uS^~Jpi zwJ`pFGD<8;1d_}j zTUu}??pKntl;`HgwSt?y$#G~ycT@^CuxNcsc;xmV`P8+kgN?0Pg+(Vkrr(PX4mqvD zq+ss~v7=AKBPca^9?SK1kCf?N|GG=>KSv6~n+vI5dtKs|{YOpVLP$pNlBk1BZLZ^b zRcI%)>eemdjn?U9R$d+yZ!(Sxv(25I@5@1J*D;Pd^mA^%HMMNXV3xg`;mJL4V4w^T z`Mp|cQ;oU1@0Jeeqq=s*x72A@h@%hqkve%{#D$gqhC@uuDj>Jpw*hIWRg%@dGiTtr z0^i@Z&;WnA!H$H#ETZ!}|1DW5^pI`^vLfa*ah;i1PXyp43xKElWhoCfWp>b0{Fca+ zd!yg2bNbh7`cOJmP76+T0EOpDF9y1=(I-=v8xdg+;+%%MUCC1!CiMR zA4B>I!abEN-E8>|k#$Y-3FMy5F2T%)Z^SN3aYap?Zj1>L2c8X>`xab=7S$XdJJu5OGVN8d}+u7k0Ac{LArJiL>w%RQF9A; z7(R7ZSg%xwp%T)huwFIkL9dCzX{t=QInp=9-pBE&JnNCDJTj=cS0Zc9GF;(31PEcb5=d1nvBC3^(R8v z=wf|`1rLv)rP9F)#VubpY8I&z0zKYU<`=L}ew+eDkoJ2dBfp`zRO;{-BDc&X!E)G$ zTR1MmiDKvjrn5 zuFlPO^iK+KE1+xe-3x(TRX%y1gc$a2d5lTtLulD__|>KCJsqUP_8PyGd-o2qM3 zEN?7N_@D_e$Ta?Z(q_{|h0j~REi#V*&U~@c4>H2bOF?$QWR|#Q+4Q2Wbz9dR$%|i- ziZ#FqYwd{MCh;>x#r-aw%3>aE*?|{pEQ;U?B347~sR~nGAh|*E;LSs@&Edi*pQ6B< zX_}yC5&&PoFs;1*byPQH;DEzp3VBe(hrafvRB@tsy;P;nEDfAEXvxTj4%;mnHc_S~ zyVad-pVYqH17w&(a@D9I^NdVbkd3fGWV#YBOXAF+Q$ECj(s=4nt@9aseyNl3b91`I z+JX{OIL;cNSg|uuO4Xdm0IHVDE)+Uc^EL!3p%+uDt2>Ti1AOpWR`<%JB+AuliZ+s> z#bf32oy*?t`Ap*c9)r-?b_K2Cp4WvPT84?Xfd(JGn29N$W%yhu6M}yRro8;dx&Tqq zTLBsTf{iKFd;i?c4%@|$+aaUrT`tEvKY`%AfsZbLnuBE8>*)BrCx5!LAxu zO)ML(O8(-*+qls$`vKmls7L-?XO>L~i!SBSMaiyGx$lFJB&7M6Xx&QGrD0$sjxfA- zeda}p*<=4vc8^D2wm2>95OvRGvYI`8cJ~bsu&wo7u#3Jy`0WWTJd6`R3@ZHuIoo-weR z1SnOOBb(hBdk4X~tocecula&(CTXO@Z~dUSTm4H*-N+_74bhOrpAs&NL=5o>iU^h9#x>24%L)`yo!nYg)>&LfaBFU z-5KYlflI@yD>6mz)fM#|W?wRPE*a8Nr+4F)l25wr{$;oDcfM@!Gj>A>A8O z!>y*OYBdYGw;^eS-4(qj<_?FMw%Gt*XMo@*1m_5QeQ&$whk-X4t=4xj**Pmr7DtD0 z&OGW)9{NV*g})N>1vxyKD%d8bHnKRhAz_lHmQIRotJ#XO^GM5Ah=^*QfgqLm3b0a4 zmwj~aEq5z9S#Oo^d9UUjYpVB`jYL`}HTV!&8sWaPSb}Xc8?U$pf84le&(Oi!V}iP0 zAuLsj`gdm@4y#8OdT{dGSSw_HbpWA*AFk%9DWr1^jj=~fWK8GdewFBIHQ58Mu7VP` z#zagllvs|^Bgx{$XOCe=agheKGsw|5O{G31fjoK?Zb8Eyw57D|TT!|jj{-cMY_^1o zacmfLe@SNnmPfC#IsH?D&tk*KF{brf{}HNig2}aF*zV&w6<)cK(Qaz`nf4zl#3iaF z&(@V9YIuXjN6)02+o0bCxI?tbIG*cubF5$e?W*mQ`KS^hMa(8pyGCyL;WP0{eg?(t zES@$VGO=>nAQM$uJ0vYrl}w-wt4-k3XcyW`t%`AAv;{l+kt-P#PypVFL>jIDnI+{tozu`H{nR*=GIq zIaw4f|DB$_--Gm)(-+!@ic1FN)I3dx$>faT5`fIMee564v3B%dqq_f}pdcH97d{A0 zPE34^mq7qU8t|pR@*kN#x^p2o3N^Am2>}SIq0Tacu{>9D zbKF_?p&eBKmtTdf#?NKzfIK{=jmB8_TW6d}l4vUfv4Tm1+ne^I7#->5rpAo^bqo8| z-C{{J&{7*SC0qdL%j(wDKbqa279fI3RjWbMI&&}Cp2Q3B(Ff8E&I%ci63>gbjkC!{ z?M5a$4JT-F=mpW}_ns=`r^ZUwAuj@s|7)cWKX2_@_5)rNNZ$i=i^a^QFo7pmClHFA zbAVh24n{bN#42`TU=d< z+c(%*(zNI3aFqn-1z9X^scfZ{oagns_?F3lO}X*RZUDHY?$Y!{C9z*gVR57KcHawx zz|%-$!MWzOIp;*U1fF<>kVb*1>Wao zYH7J`GRQgbJNoMhbDxvphoE#8KlOmcJzPrgR)8Bri5ZW6T&Kdvxk@)YNo`FeFufxU|#f zYRIRS>UsLHnU8_0Yd@^DZZBq8GCHAm-sW!sy;Vh@X+61*+PvSoj-%f_MB-pZR{~X} ziV{4W##=S6)=S;oLs|?Mh<+{@Aa0sL0h~539z+ppHCY2_9D!QxAT!&#*b4cWY1RCW-`VEHSXo`+9C|- zceuJD*SnG3C2Ak7?L6APMXb4kC9@q`mkA{rAq;{*G%#$%s z?i$4P22E2BIu@CD%B=V#S+SU&z6S`}4A?)sO44V|L^t()=O!wlmT{zZ~UP58epmI22@yJY&Ls_`*wpx4x?$ z{gG!YL2VuUCmu~A(a)yMIiIWPyjQzh_h7sql{xQ7B@6m*S86fi9pnA56^+B_JaPLb?}dVnQT@WsNLII+ z$VAOznE%p)j+Z62Z>DXcYfkZ2-i)^IO3_5Vl{Z2{OEj+5+5-2)X_8SH?)?c@JL{PT z9&7T+0R~Zjed1M1qzpH#>c>RMiFHC~4oly=b3G9@uMDXEmm}_`@Hu6&UH(;m?codi zXWw|@sH)=CNt%h60qMhR)IfjFRZcvG7E{xIf|K?Nad>6^8TvSYipi0ZXrLUZkGo>u zl=gPdo0sl-fX(;0HJ5_R!S?p62vOsof!8Vles|qsLdiAMC9@8eRL_z`OhT`Pm#zTk z*Q2`9hyOa`p>ni<$fw}wWk36eZcu|m+i4;3;O;oSBPVSSI&HwId0^oUNbyb4Cx!YD;s}*nR$jcu0A-@qQ2;Ex4Tu zpaS(fKHKJg`B`ruDl3r{V zzCE41bt?M&QDTMG^{!II&i=l7ZPYBA@nf)2W9lY$CcmViMvY^QMd!_ zoW~_|9ACQS*}T>n$J4K!*S65EoR=fnG=_+ z(y>GKE&B}t*RB6Zxs^&iB^z>EQUr_TtS|VeIPWFxj=eUh&I&{2?}JGK(aAb)X@i2$ zhx=_?;*0(M5EJjI0U2D+0sH3$A+2_r8Csb26B`oIb#4wEE*iCvKx zBM*2k$dhQogck~|dpyZHXN$_dPzQz(;(ooF9LuAkGs{m6`|2e$ltBP*>m)uRE>`eb(AID<7&a^Q*A|e84=gb>f;K( zK@D`YQs;Bs+uen{Ve;0OR9A^=bOA&19AR|-hRej1>05Aiz?(6f?6(M>V!p<%=&i9p zW;m-gUFC1y!(g@b?6obUzeqdAc;`mbO}tI{e79m|e6HD6Yo~0vUE*!MjzZWiR8l|j z*%{>V(pBkC6i#~o3>({84)cLB?9SeAQ{q(~ZBPc?5MD<`&ctYv z+d5EmG^V@NPY=tVux-f*Ek_MwgCEu?nrgH>RF*T3 z6Xx@t%x$4Jc5*_1q1#5+5=!AZ%IR8%K9St%VlD&jMk!KGAm(&Hgz$VUUwDs0MZp;e z-OdhJK|HM!^@slLpnUEwwF?JhA?(36ormtzt%mmA4qnC}I_CD2m+5lnu%W_cfr`l+ z9KsNpo8`27&I-RzP)dCr1C=jrBr(PCtq5u#$WSVl$awuTQ>bkLwXhn9$S|~r)${i( zf3kL_e{az%r>Pd-|FRy@&rP2112KLkbYa1_qZW%WztkTS$t42kNwJaJHG_gxB)4;1 z3A#zAZ$(V_P`m5M4VS^U-|8up{`T{>bw=#fh&nICnPKpwyFVkv38Q!X@ zhH}#3p63RJ1Z~A1%&1+xW|48RW(HHU%}4El`=}~%=5~xpPL&}t;>R(~BlV@l#(%HV zfHcdy9XxFSC~ICe-Ku5T;s1!aNE2jca>E~ze%`I?A)d_N>B7KrcM(u~z>e$lGKHQs_r2>@ohKEz zO#i&~Ck40fEdkd?yfJ(a*m4mrAw2Xcx`on!ziCkVPM|ph%fC=5oKdThqZ9}BvoKfO zrOw{k)l2JkuY7!?BTn*)3%y0`7kRv6K@&sE+8rn`>aT#L1xjiVGmcL$9{P)suin(& zyx>6M@?P7NCUmU6>E!IM|N1&3z5rWk2kt6E0Fs*SKwZn2o?Zkl$6xU^#ioeO0_mdD z)&<$hRm4ci$)4?eG%p1PFw-b>z?jgsfm@XMOTV)VQMuiWb$0Ac zVvDLwvY6=W!=8_TfDn;>$q0M+4=(PW58V~hzgeq*yWDcM$*r`F+lrFPO$mFIbYz+3X!v`WBeu?B1Q#1gnD3bn%aUGU)1 zzxUJAjq>PUkE5(}x7Izkb(+LCcxx@GqauR9wROjejd#KqVAJU;MPnMG?^V!uR8|J$ zyN3xAaEEX!A96>nHsi^$)(Wtmd&VeOns}b7>Ag0~KhccZ3zYv|%6rrX?N$MK_`boGlUUd!&$=D0hAY=Q@Pf}8#Hq5{UT@H_m^)OY0@k|!ax=nFX#r}78rej$??g#xiRi9IGXj8SiqaNaL_W#_fisc z*YM=!p*L5jbz1jo#^D#?BXAzNDP0H%1R4;J8}tH(fJ=dhU-}-m)JY(KVfx$)-KW#Y+8o zXY-}9H601#D=AI%0%qyryO@xzUBZCUEv5E{n1QXR@wpcbsh3}WZIG>Zg1z((R&$@0 zU*`~`y%Uqp&broO*;@8^|GcMRGi{O0z{r{pHz{s70RK2QumuEMfuOk5CM@uEQ#3S z}Rd%1_siFa7mz~8zp z2k)QMBP;;r*>CZ#7a+z4pxyPxh;|;QXLkhSdExXuQoXfDKxbUb-zsiJ1tIrXz}eDy zV*9K`;(0c)4$mU%?>5xJ50%FFj7%QtMc@Skls~iZ@;u)6BXiA(s6Rfg2J$WsS&Lk} zj3`oXkQZq%R~5m@X3!#ia3g;dWa(LK09IDQ^V9Vz@%z789wb!BSj2cw#?1ca+BQ)c z>tzYrS~;8G^?cR7;8v{XB)NTWl-Qdi6|PE~CY0PGvE-JoN}d!{q;}MPDYl4o7X|pj z<-FO`V#{Vfwt#M#)~?!iNg@5w6U7jVNWH%g`Y3SF@)Ub6V^F3O^Gni;@RvG4bqRUq z`yw381ayth4Ld)thMW5Li;+tTK0Rp4VDg%C<8gP<)w?zNN+FRVYEe5~3;7R>X4S){ zUeGdYZlNmDq59ks4LQWdy-AIvY0DTBvVTini)XW^)SB@d8^(Hg$Z3XKxT?~AwSMCX%kuo|9vdmS#kOYc zvg^jsqhq-x6v~G@nAE$G7kFfFnyP*nY0|c2jM>bmH%!vSg2>dVH!@a=O2zDM zfq_IPljJn=qV%QJ2G^Xck4>W2!c)qVKApIG2(%6Qfiowx?g2AAIDqfb4tTD@@08(P z+uKb=%JaT2T%XK*Q#bo_O1PL7O9t(FJ&>^^-QQm~f$sy@B84iVI0TnT-D5E?am+@X zp9Vq2&X@1G-l*u&w#_^1^&kxxoKiVHT9E>{M^Bmbt>;tGd?(c+&xdvLo9V)e9>N-b zXm-C$&(~9#+e@duaAduL>C08z6z{UfMCMg^2nfEY0;II=IjYa5C#MzDw{(a2!$aKs z{{9ew)FK}A)?&HroeT#VmY$Ts!?HR#>;~Fx-+4|pMYBY<7O2q_`4z=LZF>9lPAIp> zsfBR_`s!D;(bRn0peNN&fco&t=}S*&7EMOs?z*6$kB zuqS-^kq+lytNQ?uuhUW0a=FCD-aIVZ5-JtIE0eh~tycq2WPWA>D6*m77lxxm>Wncv z?6JKpM_>Wd-Num{ZE~03ehTNTTasf{q;<6g&uQJgBr3Ts>0T5D2DU+JejB-&TS5?* z6@AVw>Zk#**q}h#pM&amvS7I%{_MD7G(O{#(hEK8>jC!t67l$j^#7G}5dN<{?tc`F zne-p&CqY$qo}Qz$_r6_wd(FGJ*UL)Fsuk2f;tA+K@CMED{iX81FGFhPKcxpr%{cA{ zG^rxj(?+`W6K5SY&C)GmoVqkCtFJbMYZ^OXZS?q6@+-QVuLp5Pgq5Bv zpzc35!24S^7VN#(nlK3AAQHxCbKW&|5|AtEKs-?(5t{3@V)VE9r zn2RZ1uS*(^TdYrgc6%wqj3ekSXd>W(6$zK0GWIX#fEVEd%B5%R#lDNI=PEcw_0RWwaT5d%wj2emI)Nb-1yYHU9gX&YkMS zk9~{fBgj~N_LW5c2HYIUWSB4t9uM|I&m#ENT_C7sjDYBVdn3vs#;iQm z7)}Wio2$PX)dlxjfqxWEr)BLw*Xp-ys%$rO0?!y6-n4V86@27BZZtc#1H7-x#7^ga zGEbPlcP_fLCoyn&-{rwJi^<*9EZ6zYO>pRnwBDJA(5>k4Xh@u%r+@{&#-PNrY{#50 zF%3W+sM@f_UBq^xNjl`*D8Gm6qlNh(x_Q*zP@sp_17VLzL(9IXF>5d4>D_pjhTS1g zcoPLV6V`0Gae{(JS4=43XiLIKI5FFgj@0q{^T^dZT;jh!o|x~sm>GCQn(e1}p4;|- zNrn0qX|V9^`FvyN)`{~PSrGVk-8ysX1z3Y&{>`7Nm>Y7Ot!oaX<^@l_$#@_6f{Jpq zZ!nkl&*|F%ZuZOL5%Zc#;dEb0&yP10Viby6uOxsqMa3I&O z=*2Qp3&M7_zs^{TG5He5PPMm}63#9y!gi{QNQp9RL}Ikp?Ll%0n~;_J&}iVEkJ?Z))Krw!tS|w zASxnZJo=yj09~ofreo6lDo5md{{^_0T{aTy|$Tr20FC#A%_d~5&0mVS0@ zMotvausMJ<9s-AbH+lcrB2~{@MyVKteD~!JFt@!Y_~Q0MeW@={)1kmY`F(d*m=-AG z8!$>CIShpqm3ED~X{+{6zf#uD3G$GkWXF*(k|xo>T%^}7omx-&&XPHHN&(1O>96i7 zSxf>0Z#tK6|4nn<0wh?j0V*Krvo?O?5fg)gFLFg>kHmocf`>-Y5sQFUCd|4+#VGKU zbSzynhcGOWUWq+S3gOiTxnJ=zpH!Ba)|4oj!|6SU&{F`0*1Q(|d3b;eX1MKdV4m7J zNHmR3TU3^t+mC;^OZ{_P+KX;Q7L&&>otK@zWMg9Cb~H;f4FE>ObcxlP^Vz8F7>or9 zpu??2<%T#U?FVwalf~1Jn2g!fgloL#l8>r(_k@&!>)lM%$XC;S7DuHMJWO$Z_UW2m zvX}Pvr@uanNo#S$vDrKI*cLw6^<>4i%Z^HJ ze>&Pd48+Okz#+PI$hq@EIhGO6NK(ma;R+*t8l zxnAnM%B5wjls&t7?7tlD?zpNn3|82AD3^*<5y_}^4{q?DAD*q66) zbNg4komrlKbWP2zZ8oMpzJs#cA^fyuH3=D+mA`&F-Paen*NfSU@C7m1u^&kDeQm%krQvy8>xI0R_wCJ;I5$xlw5jeEW863b=s;R7C=jV3$~yH@_UoJTndY z06njD9nt>PjZ5qLxeri4`!k>4`R9oLM-KU~Dw$ava=q*O_aGqb>yXELD4>D0Ipi_m z?EGzQ?@)#QO@2QCQSA+1A@DbS#|Axni_UX-Un98(loX~FNshj52TiA}07`qWws65M z6x1xaw0vwPtQ#Uy%rW%2_SG=*rqYq#l>+kaK#@XV+kIlmWqWg#WFC9i%3P9Doj-2H zZDn*z>>G-e$@L-2a%K`+NRM?M5=iT5Z?#3#&IZ$vV!npkb{|$PQ3WS59Se}K^X9d@ zV|kZMlDImrBH0$NKh)_)t|b^}eG+h7AFe7kvMk^3|NJ(68c=P(D~w+T9jIxMa$IdT zFE8>sV&26P@S{fp= zC7MoVW4e16BsNwarq~sqR;iTS{%O4C{rqvA<+Y_!MfFEYJs)I>8YQ>THqkRb!zhtd zjfA!3av90e{!|;gy)WJ_^$MXt@JDi6VXBuLJAhEv0W8gJK0=%#5N%}|!DXd!S+ZjC z8p5HsY?+rCR;!Z{ZA3P}zU!a4-8ZH(I-EA>36`AoZVBXg^?myE=~=cl_jxUidRSpp zxNC)#LgSBK{@#~%&A1Kwl#f5clcNH;S6%wIZv5Cg0-T@-e7tsK!@H%uLMmKaYxFaz z-E;(6BQ|Th?X(2)+%-}a$Y=-bG9b{VPvQ(jpkerx?|4E@3cm^m@N7?hK zhsQ6Tt$NOrdNEW&+P*LU5a{&>s)wt(tL^J)^T(qsBRg8hKdh~XEw{^3?_O3?D2FzS zAbx@62s0x0}#R>gw znystu%PX8QZmSm~bi{p^ohcBAe#~|Pca=_Y-4?Eu`10(hsHLpyGp}^KV|$+Pt!uG4 zAY?;>Xiltg&t!H^v4Pe%8$a0{EIWV5YSo|vNYJ)teduf0WT*zzwx)%b+Q84An(SQ1 z?yhDMHHGCYM+vL+BludPyLyA!B#zk0SuvmDIwzo1E?Ex)i0B_E_5Kqjn08C9X6%`k z*5k>(8(z)R_$NcOLQ5wGr|vnX^_z!0P6~pdU+HgNgVZp0J}G@N{^@T{)KBd$c7xgs zyC3<^^V+&9X4I~?c00G2!8SAsi7nr0&@j_clVi1A%5v%$-`s|K-lkh!mcR z6q;h=f3?eR!&Jv$y1@eMbtc0ROJ{`;MV*ZeK_+IgC98-LHebUGoTeCwy)-h_+U^2I zQu<5P+Q->3x4kv;H1u_uQFEnLAJ5_Ya64pes&lE>GQWS#W8@S4jm3M?OT*+M4euI& z?xlclxkvIcr2hQ0maM?i;#kptx=d3jHuhVlJS@L+m~GAV&lR^>re;LivPPGx$}#|* z$!%0a@V#LVJayXM*G*#V0i@FUZ3jmk@3OzYuNvk{wvBI|3%zl1vb-1&d892;cWQ}& zjj)osO8*snm2Bem71Zo4erT)l$liByzW}5@!`ENU5C6-)|EnK)`$^LI1?*^ZE2)N& zQ3PCXebYBF{v(6648>E}4JS&ApZU9{_$%;mh7}l(-oddf&j>CqE-olBmKfI=L^xd+ zaggZ*rQu#Lh8u-uB)M1pMnA)&~`Ukz3lq?$(Gt`?4;0S!e377dXGFKOCzkhb>r#* zhom5YHP|DeGj-$#^&Og=CoB!<4!j7zZx|X6SZhSR~sHVY<6~s{lKurcyje+GF)_{6;oll$FjV zR`7+LZhh9uc>{AMertrAFhG>HaCp>Lk&XM6Z?^s2Xu0WkqXVeL&sNm}evE2tcaiu;I>3blWN~T(QkV@-1vUqe*!>#aXwCDl?9?o)Iswu^>1(_CW22QLPWO zjdlAFbIRi=$e;Q0F8G_l%H}u$i2E$laCV~z6Y|igXk$&KS4U6zVISnfbrl)ofCh=S z<11Su7mbw{i-K+M625-asV+wC74NMl`^G-Vrt({iqXDN!%oIz?N)Q#!IV+t^wK)Wl ziC)owqv9rfj^Nt#;9vZ331>@*HB>0}j!$E2?vrsmP=$YI;eG7{?k#4Hqw}jj(Q(r6tAmQ2@t=ixaCk}lJEsn|#yrZ0~)#ck?H}>PTLvhn_ z-DQ*k<3jmEp=HH6`Y$thPHETMK5kQ89JcUi)NS(YdFs4}>Wl|obp1&KUr$l_I1z`} zRY)9;aaQT6aA`b>i=EkCAYxiC*U{-E`%(mv3Y51-t5k|Wr~Z;CkZHvHy-^~ z237&rU-fbVs6Q4;`{6O);&Z}jqU?XF>s*ii|7NR1Ew4SKw}qa(shES21(_=!C%A6YAD$gA1X6jisWD9*uWBq>TrNQhvbmw&iSe z4L9i0uVDv`qO&tI@upDZO|jwirgiOm+T?NYxGE46k{3KJDfL#_(Fs1AkuoMsv@kZR zNYJckew?8DPzP|D&t<#?`TtIqcm191>*Yrw=3HtjMlH96twO$lA%0xTN;U#8B zp~p_s(dh%YFh1D81)JY_?8!iLaWDmpE-QxZ7O6>GI@kIFvmDI=NW}<3G^&p~{wG-8c;zxiBviX1WT0 z>9cD(SsW#sblzzAL@mmj0quXelw6xOhsxwvIWn zq~fAl?CbChXgT2IDuRbtyCO?0U~9Z%_BytKe_fU@OX-ymAJwoi6V9 zyBe9c$nqYyc9Za*SIsXq7LtZYfiSh#w@uF_74di4UY2hDJCbnn6#?5{2>VusMaq8c z|Jz;f;7sOfcshA(348_{R7W4Alxw z9Zr*Ff)3(3qkvRt7;D-~rVRUi^#ITg{7qTuN8*cpHIag``l);gfxWjT-9aj8ySg}P z%FL9`jj2**&&+zmSIR3B0gaM3uP1fu?7qnZ&xRyIFdngE!dW23GcAV=OJn$oCW5X< zr!}F@Ha$sJyVOiYOKTNJRq((mQ-AvIc=h0MmGqr3cFXLa>e#;gx#^$_?(i(Wan)z}|Y;CK% zZq{*0v;*O+Li1N4jz4b6*pE_CSmvmKyi$aY8W3NOoss(~=3l3-Ee&P-c>QztB9nj^ zF!4;R9eoo%o25jjdw;Wl=KgW%U#IfaDxk4!=ac*9M@MeH{3M;rtOvD2BT#3<-xkH^ z(Qm<2#pRC`V2?jdnb^aVS0)tQjYo7WeuY~l9@SdmRoS-ONSs;`@7`H=d!aVq6&egy zDEgj6!Os`ovTveP^IZ)}@O9H8Ix^eZ^3R5c4+MIU=Ab)BQCNPp5qmK?cUGQ=)pn7Q zoGFF1Bt8}bJW|iOKMoO>#V2v2ZlR-op^uj|v*RKlUBcqn1;Opxea!vA;;~fkt5&BQ z->qi3IClwKAh%;mI5W=%FMMauo%1{nVf-#bseOVPLOYz8nqmdoTEr#ub-y|l^mgX3 zw0em8_``;^^)qrBa@llHV0PNDF}4oO05tO94_=Vl(f!>ePTQ!^s~wwpC_R*LKZrp9 z5nVEO2@qgdbncL0tH?Mz1L=QM3r~i0@{{?4Q3-JShU2&$G8_H@yEvQP}F^pKA^{pm$`FmJDrQRP2k$qyVU9iL}QjHS$^QxSa6S{ zGAgYD)prs2vS;w$ zS8u(rx>MEGpGWF%pZ{SbI5mEx{CqEO?E9j_{?)6}F`dO9+WO64D(=OpSE$Yr@K$9bKh zK4?SiKc7~Oek7hGSSqeS)}&flZYDg{;zhUZP!ehUrgH!`!S_ewUcaFab_AbjHyMh{ zNPkm)?C`8NvIGizwpi!dP3V1jXP_>iz?M)%E&Th}LtVDx(tI@g^85|OiQFASFrSTx zab*c;l&hE(w_dg(ll+cJ>|nGRQX4I!_-tL=34i=X`VW23L412${{Xr$^X&ch9siI3 zO%NK(BGKj%fMtf52hu_r$K`#L)mkhjEvdXMf?ByUiJ=ANDm1G{xkuFHB5BPrHSK_E z&fnXg2~HJWansU|3KiF0B{BkGU;GZ6POptevjx2O;vP9L?1p?kxHv^u|!xvh@Yu81f|xRLmQKVq}58YEBOw({{yi^TVhyWhB; z99aWZ;kTj6FC~f%7c&^NcOnt2U1*S>eHDB{!tYUhyIH~r<6ip0k0SMYTV>{(c;+W1 z!jJNrKyBL=-|HUVZO>*>q1t=*UTLTVQ)j~B%I^am>lIXpvkBRC#~2N4m3S8nB+8)yI9mvB!43+9T1UX#w)WC<;E?TMzbDh$HwF?9 zIo2~c7zw)pM*@L!DO#UFemwLWYfY|2H#Gh z*he(w3XaB%f7xmY2pq!B^@H$Kz^9GrK!^Q!oD43wF2&R(Ky%Mt z6HX`Go`H2c7&TY!-lHX=gu3Q~6j}u@l4dO^^+~2g(m<#nDYP2>l|^FSqXnx>>>~oo zR~Qsq(JmC(N+dtcUsiC$)E<4s9_30AmslhIFlTKwkMRo{V`oGLp-mh7wWR3H483<>gdcE z`oll1=lYm!Kb1s+C7yGoJ0Nqw+h=e~8mn*6a8}LUP7g5H0-Fm?lWrPIRg~eL2c>BP zZnbq2;8G)ijZrOmu>To$$S{8ZrM?W*x-Rj|+vOVduT#?YK&kn2%XyhBIhO4WF9WfP zMmsV|v{Gl(Grz85&)MWf1vSq`aw`K7bgO4~AFZ%_Og>Kra$)74eex>^ei94kpFPvj z8hqu?imCq_f&G70M5J9j-f2HFBp$BFY|fu~_?Rm;+N5lG9@Xsd_E)(5B#W0R?oF+%Lb-*yMst>m{VYCG{9HC%aYt*{*w4Bsv-MS? zE$@_e$9Y0dB#WXZ3AXp$QEAjB!qgsJ1%#nrQlpYr} zszfHW4z0cY!aPbQpprhW#-dlr&0U^(Ia`0Y{^q+34u;C%PKqh8A?CvY|7ruixWL|) z>)zU@sUg!bDA3a7n?BGK4`Ei(xJSD3pdHXI4(a8UE(?f)1bk-_T8mYNG{h!1o0KO! z{N@ELn|IFRFQ3doS$DrP>F>V|7pBY`BS)w*ay>v`G+uO#iHVa3zPERi`48l<>+tjB z#uutI*1zYctH^r|yUf>O8rFgQzKuudZq2QrYr28T1_o=Kys{69IgH&m*ZGXZ#9C{s zM++;6k062OnL54kWo=Kl8XsDWNr@Bu@vPBkOIDJ$|H03tP+g}K0Q;0Dt52k#vwXqi zG5k(BEv)y8)Hoh}&oX_I5$&;dyEVL!xhFs3o6Q^BN1QV|l6197_QK(m5=8QR!7wk}$zYN<7tK#wL)TNOf#sD`Y)I zajS;A?ofL!6h~NpVrPc%Tf530mnp`)Qjl##XdQ~gFr(sa;|(Kk^$xBEhcf;6YGEfg z5io)=L~DhDRfF>JDd{>?-A9Lv+P0|yxgM3Jcrhm-V~@mZ*h7S^Fnhh;Z5&jOBuz}8 z+)sM=Q0@Roh2Zh8FDu~yaN%Iwn!?`tBG%A#-O6(X${sJZo=}^4GVq5w1=XRMzh7ptSF2bbf;F$XYpYnMUtuWpz@rH5O>>tvOurw+cAaW{4MP=C2>9 z6Y*Zsd-l}0xkarWZbB@UfEY~D;}8R>?eLWZPyO9~Rz_xuySdL^9t{TuCDSt#8YWl% zSbwT`4r|y8J3HpuUJ+T5c`zD#K0);skn1t2V3QPF9hMjsP?_^kD~7f$%XQn8*mcf| z4b8rbSS?Ogt?cJCmSy2nK9HMeuVa?@QD<5)#eOmj2d{n2CJ%O{{`X)X<1X#9_C3_g zU#kD$g=WSmWT{7rX;HOEw;0$sTEhZ$jayqxsHFZgSnH{`2_R9OT?vfCTQEf-TaPWQ z#H!4whw`nU`B(BT9fCHY`$Rn;%zz;xuE4i!f5o)X3kGLhZJ<4`rcOqt6Sd6du-_NpnXQ6)m zV2}+-&K?sVE*o5V<+j{inhdIsmm94zzPwtey2R=dl2LFw;qq^wQdUax8|Pgv-;%m+ zeB=7pi*^-K{g@9gIjw8e6-TdoIGgBIm}bZ=8tomHY~bwDj~b1aBJ{4BW?=e*3g^;rlJ?biqdJO)mX22DRGIQtig3rA2(%8 zX3SH4-i5hU-`+wI2rD>{^P&mG#0So4dcBhF{GxfUk#ApV`iWV%-Lh_-R(1tUwOoaMzm~cLzp`_w z$uUS8UAUi_al?D@=1fbdIm4J+hl8Qp0a0%8KzLzh@av8aEP4@jPBJip)Oh`~uxv$> zXY~?&Vv$3J?%wW?I7={<>%WIl13`d{7b;$&3K}r^06oksvp6p7duJBh)SvwOOEt}JSBOCu4w(bAR0DAYg zepk50F@#M<;(Ip4%ufTz}hb8vIsEI?OkD>m!XJ_NcqQA$V2gjGAbh^_>D^jXWBC2|8 z^-1*W_WCmOIDh+NlLUEKJW+{&pio}pfywX=_02O}LX_>5)Yco@dV!(|_853tRBM-= zw1y50Bh<$*Ll<36%jLMTn9hbsln12p&^G+8d=npU86_%aCD~A;xrl45?2QF+xOGhg z;#_F2rV0yz4N^)wKL78B_p{SZA8Kv&0604r+%^&ZQ^V^MXyn zwFc86TS9UNay18H;L>!Qd3e~u7m&ndt>nldhQvP8uMQGFw_!(ayQOn6pSn7_6Ej=6 z9{8#Zpap#xG)f4_?ODtWnco3OsLMc>0d$%6=TB=B&35h?YiG`#luPxWWU;fJlX(LC z?;xayRDK%0FA`@lu^$5X>n!{Q;Q{lpLXk(GVHNr0z6vveG$wXsf(820$BI-IiRFj> zFu~{QcTT^sWMwX6C(<7 z!4BS~nc|OLgzTw>UPalu2#C2{NMHMKZ5JuxEUB3ml{Y)cnZ83&3kgjoU0MA7zDi<& z`uZNydo5eBE$9);xzUmY0HLh`Y+u4xorYq&_+M8>U+;T{*^@j-3l)sN^~JHbcWjrt zwWgw1pM)?dM}(2i5&G!qS$oU&WCW?nt|w~DSa$JJDyRrJY&-8H-OmVUfjpq;D*(4U zf0^fD#VbO+1?F10Rmuo1!F}sRL62G+r8N=ueqm`@YT2^UhSa~=;rWAh;Q=$=S}Y^7 z5~90WkFFB&_xp^~H_E*q9M|q=l&Pxo{F+??E{gW{E2M~sOT8EmuIw_`$hCRYZJ&)L zj?8w~(O+xiu*C1HR^(|hH z-_9klw$3PcXFNxfYQ<0g?_G^L(=}r%h6on*#-a}WrtiBvTZ4gu)rW)B9(>L*auL6l zSuVM1Rw?dGi_!MN?YMv&M;24IP2abs`XPDM0dpc=v(cg1mR9EpP{ZA}LpY?a$p%*W z9jKE(qj@9scumpGX=~cmuck4a$*`?#k$VF}b#m^G*;;yuy}`Cy4D*2+g23G5IIe

zy)rS!SPoHG#X801- z_p&v!|7Z`KxHNcA;yC0Rpr@(-XU zR>jqRZEqH7{`b!Ip=E)bI7S{$W!&v8@7sLHMmk+yJ5#6g7OLhjbm1-<$C#U`8^N^w5XzNo-SSqS5(-OoM}?i^hXK z#pAjj3ovgYhtx3wY`_z=eQ2QPo6``PIe1(-cYb+FV6?c{AmdK>;EC#(Z2G*(-K^YZ z)Aw`t#d}$m1C2kR%3m@aAP70<;%@$79TOiiTIVE{VdrF#STeb}yB&Qf1}4{mtv4GO zs^SB&IX1}I0aK((FGb6vr)n*(-h=^5qvwWg!(aj{!d`Z-nO!r!;Uf=1 z=FtQ(w{L7=cZB%XgYUR~WVaD~we`YkNU$v5!PP7@c3IoerkDF+Q|Q!#Qot#W;(Zql1Pv-M{~|-X7vdp>ph|_?*Iv0>5RJ!hduIba~K8MF^swS&NN8eJd_RvEy|$hyx3o1`rGT>O(!}`#e;Us?cE|R z15Mrr&(FIRCVx*c{nXtWjJ)5osm+Q;0}8)evs1QH6@5XSDl`rUU9b{5l=92WKMchi z;$=)N77LozrOHDSj$R8)CbbLbjt@nNOSBtk62&ye>qjv{J%o?yk{127g}&Ph zoiD6fORK#m1s=C7uCCg?CY*D%ZQi8fzf zNfBT2VuprPOuv)zigmN$)qV$tah6k^`dgs|QgnFzDrk;e#irxX?p{2%85)<$dNQRd zfj(6a?Q2#oDg9)ZV%Nu|F)zwJeZT)6ajEU5`-|%*yO2#f98f~yo;imLAd9n0cNAn3 z&_z2XYT<=0WjZ;{eXggbX{l3}+%JoC_$*T5&p^~=MS-6+nA3xh75@AB`O7lu{p~aWVcsaj<0O^z`&SNeKy#L`3qd`g-YVf1kH=O|h{7 zNA=3&PAZYT+e#H2b9pv)dEn=L>UxPRsR_}$TSr8`Ex~@o&yK?WrrrVJJG3>@)zjkq zJ7pO9@o~~<>H5q=&^X`8u!I$;nM*U9gf|jkKR{T#XN5$_gW2reS2pydt%67&)kjqC z)aDmOgjz-JC3t7L#dNYL(-|y%NS#Z#RQGllkjr01c?6U-!;FzNF9Hfr#oOP)=p~E_ zYQxkcl@5p?p3twWw}zCXVKx=pTp}VenQ`;;uWanL19l~yMgc$SXKPl35XP~Si~_-JU24?OWCuCLuG zF#f&U3q3<$lbqK|q%}YFS(3;fw`)k>Ci(m%&w6pTv_WHaZ2c9cVhc$~@irZ=cDZbe zlPC2~)MV8PI@%30MOBtNS>>97^Za0>!^VCFol#_<#g`T8E-Q__(dR|BZ*4Gd_S{4T z4q_;bC06XNr)i1TCx27-(F4J|G;{Wndh(oowUy|>9(*f%@neEc27dHAEpA78krxKT z`+`$4dRGr{3pJzad&NY3kTzx}aq>)bwwCWWpPe|$yH&x)+uOh{vaIL%og~^i=A22x z7UYzO0%?#$&77m-Oc(bm&kfs z)F^#s;i2z058fOFKJrtvb6x1D`|W*yL8Y}@@C9LjwidS>p63N~ieA?|6;)@#4P`q6&?lRob%v@Xs z9^Z9wIiB6SLVT`WaWZ{AGo4{BRW(8DD-2_kw{k@az|Yh>6wuS~1nSO#c9H4Wm`8Pz z-?u@^I6-zg9oGj@tKR|6;A0fC|?HczH}l-_0NY6I`MmN(Fsv)|(i)sUU5A zgu~oSNOq|RYxLrE##;S$od@fanOrW=MucKULVjmhNskXqK36yH0OiuEf(({TrOowl z<(VFTjt5KXnWB5vXBLhoatJ@NeobS^K+KHe=3)cj9W_J6Wn z|0~PoIKIcxcR7B{?WC<5nb^=j20WS>+r`cNo&h!|oJ25u{&Ed1#2PGca8=Fs_ zSpzToflZ@JHxc(K%{P-J)!@L=CNSWk!pd69`U+xen5c0v(r{qq#mJd7b_UGHTIz4B z*p=6QCzoqAHu8vy&gCw5kz2;W{{EV(qWuNt=Od1Pt+rSSuaJ#p{R&{^z->2;oRO4{ z9r0NeaRWIU+_e_~#hA(jX`r&&xs4NF?hq#4*52G4?CV!EfJfrtqTDM9=VNe;wX94b zqp`e=du;(?BQV{wo+o#y7Qk)ph)=T@eQZ%PX!WfZ|Mq_Ou^W76P5MWh)K=eH+)mq? zI$UndT%iDKxb7wzdFkxdq_~We5^LhdT8^5z@f9pckSovAP5FEg3(p&f8p+gymI=`u z6btT)mEGT>GS6}Ar4z1LE-|#lX8WCnBGmyx!IsirN5@ElTOuvDxvhV&cxpR|RH@WZ ztE6Nn>|huhHGf6C!cU#SbmQl!`0Rn`i36&b-qW6_XXMp>Mda>YD< zN2z-o$|Uo0mavj8Va*Mw_t+s{ueY*Uvjf^WQBbA645coIG7yexxqXE(VUylz6e9Iab~&l5Ase0JnLQ-`B_3r9NzP?5ic#J{$URS+RnfJ#Y0GjO z)HFyf>asD+t32ir&o;GBi?RvqQYX$q1nxuj7)@47-)^{Zetl7YV8;>bz(6YjF|X9f z(A#R<2&7T?d?Zl94H&Rx3C3RIe9Y6vr#7q%UgzX4T9E)H{KvQpkwdE0=x}q9QNDN? zk@Du=Fpa^~P8R{R5jT@0rOM;#ir$IWgVqeGxr*Sv*O~44pkW!$@-ZOpce6GVFRV3w zI91VvH4NmcR-;b8Q4sn$8@RP^^RD78LxtUuJJtMVyR3U z$u!|8Zs~)7&*4s#?zTo+A;06n??+cF0Shn`kbR$TAycct<%>JyFOrCj%^2AC|Lr zG1(Iw-uYf45tw1Y>+gVoMHc4d#j&)^?6;8v7Sd%Xy2HU2U_G(W82-{8I&ovfiBV~{ zR(-G!OekDpif{s8O5U%$Fi?vA9+z4@dJv;yfPqa1o_rF&bwUzNVmxKf zKBh9WvEWiPe^gj9HWyyX;it$8SDc{-B`4qN85Jt(&(Zs=rUG%!s4mytJs@9+KnOE4 z;Al+xwnO_bGzajS0vxJG{)D)KmkGwtF{Av+$my_7pT;c~HJ_s4j!wEU_>TG$Y+8E8 z4KV>DdVfd<=jyJFY3n;>rs^^X?-u|=eL8)X=orEcGYqm65*O8V0x(pV%eF|L=?+ly z*`UcnW&inJ@jZ5rR$u^?Kxxi1WS<|^$-dk%y63l=qT*NiHCgS^EKSk5DI6wD6%VqI zzLC>xNY`CCvbb1CVPp4Z9paHG7icQS%)3I1VYjvx;Ux*_qqaN(Y=_3gy=^0jPr4Z%l!yr#O*av0jINrl84)pBd+Wr( zLjp2vU;|8yq-?~WT9E&gz4%}C5bgdc6nHr(BqSt81vYmLIPq|bNOG8(x_T22SulW@ zx_&Ebn2*WGU=crw3)bd$b;YU+6_D%+cbDJtRM;uur+Fb_iPG>)U=73wYwqpY^302s> zfZS1B6ick5AlZwF6mK)|xbMQ5!fDEy8d@h;rS z33LA-Y!66OOwDGnp`RFG44v+?dLW4q(PB4cCv&foBOgP974sMl)mj z)iSqtW~Mq;(+-~H_VmEDnc0qmod*lFN0FJT{~*COLMVzz|RNMY$I(mY%pmoQ2Zo?(kD^&X&NpX`Ysm`52Tu4oRbD~uptI5X6~qKw2_BYxjIk2|K@JRIpK zcKXk`);}K2(85=F$hYpLb>A>UKiu{$f@DchXUsTLnIe7+{2hAx#)r!j;fXP_%9 z2GT-wV9Li{_fj?wOUpo+sU#+28tDU6jWp8=_(|MleFfbsG1VgFc%#vybf*~-9mt}% zs6FGr6}DbKg8L&9yZvq-y-JkP@(o1#a7koNf{w{MCINLZ-LehjA?d5W;cpV3tpzJX zxCOK+{rh#37Zlv(WDG8y%eXs~4AO@^3?It&j)rkwK^ZBchw~zRN~jyd_~D_!Me@+z zEUKH8WIdz*$+90vQ15Jl++ z6;;f^0}~7GWpb0pZ}eq0#6qPt4mgY4?x{`HaIvfCI7nT%y4L)@8 zI#+5S!#A`t@3%SwnqQw$n_(&!wCURAH$b?Jkm_*Hi=MRZv=m==Z3wS-YJcAFcyZ;c zQ@0_8IAF%MY}aSQ7RbV9i&x00N>#94R^ue)iHszQV;uF*aO~bk1_c9~&lLGoHC^x7dseJHKqhKL}((fp(Hi z^lVL`89&l#LK5!eQ`j_0neMmfl>{mrqKc%B{p%xr{M~Bl=Phl!Ri{JdKp^DLP4MHD zsyBn5oTZKx9Xq#V$Xqyqm8aZ=toaI7-Nxq2_UlPNt*{^Jk~&m8LP{5-5Y5%uJ=5t|cB}JXXw}RkO6v>(V z7+qrx$>n!PiJYFCIp8bXv;~a4fVIWZqbcJ~aG?@38@_r&svNq5{s5v$6Q8gg zLJQ1ivY%n2RSf-xx93r9{pi;=1Cv60OwVO^Dl73)| zivtO*gLKWE07VkZgC@O?_TKjtz=n>25cAsV+FA>GWaM^}*&s)4-Fh^tS#oJGJ#A^L zLH)+J%|Ac4#%5-5hL+F?nA@wwwGXV8`)6ux~kzA(S^cphz{tusm`|d3#U)U~h zvfwZO?lV|DUCm#E3O`r5k?8RoS@B{3kjbn6m-6AiY&(EkcM`U@w|h{{KAf?=je2D6 z2`Vs~|7Z!k{nL6d=l$Dy0KWLa1}Ewb+~bG#sn>7bjAK3e{+2Lwd^jXX(P8jiF=$)y z=G1v$z*Uwev>=s;HO5op;?{r3qq6vASwzW-U(AvXp}qO|skkx5Eey@<<2Xccjy+Y^;pl2z$?O^s*nr{#y-^(iI-DK10 zl37`!Mjl9l4~PUQNSp4bMg1*fQRWV;aa^0#3qQE!WF50p(O%;buAS6$=+=;`#d6fW zw}gy!_1FYQ^tLzO8^}A(H{7@spxE|+gtlEN)j(A&OWu(@1}a+}#`;FLu_kSv?e~#~ zK{t!n_7Tp4_j^`Ya}bLOrjVV0)#izbI_CZ(CHTI!MEA~4`j7Fqk24kr4Q2Qu%)6F6 z7xPTqR76BO54~<0=9j|K`h8$If$OoD7!l(j<|>f z8diq3^|9c579nASJ#WA`enb`MnM;mSuwQhOyK+4)7MD*5xRVsCCvFIZLU&<;mj$50 z#baM=E&Oa9_}53Nag-ASB^I!(&p1f4=ESzz7mI+Dp_Hb`72t!r@*r2GSvvrq3OIzu z$;rJcd+x2S%S&@QvO3aVcZL57nWZ>58DUVo-NVepNv30SZ&ETe`Bs=&Y`UM{zBq0% z=sXNRv)MC+MuO1{zRNOm?Cs1^*7N(eT4*^6M$dQR`f;l{}j3=q)D+V05 z?|*MpK(#z0Ovnq-^VwvUX`e8&dRVqS9VJ02g8!Migs^0`?0&hJld<)<#>D^%xEO4| zNfc%Yn%UXg*8e;Y4_)2Xnz};L<88DW-3;B*3~kF8(X6l^h{eTiQ)TM6YUvU+BYTsG z7Cfw5%EIdHFGW_F=oupcDcoIAfMUE5OHy^ z09&|~0Xv>g$VBFB{m7S$4)Tff+oI`vkY{>>Mkr;dws?wsV{4x77*o6s-fKS2(iMc2E~+nROQMmf@0d5qqOO^ajCrUUU^uZkf~ z!yn&eFqjh7SNqXF%`D=;7Nm%Q=4$zY&Zk|r^8)yCeTxkAC3*f84+~PXle3c+kN;CW zdYIyuhz3Mo6Hn7uw+~KJZ~GR@-E~7{@l`jL6)*u`C}QysG%nStvem4*@jnj0DtzAG zPe3~O-l*OBp}{lPRyvO@S7q&^ZIGdFHtjQIGyAzvti1CBvp8fadB@y;a5mu*HJiE2 z_XbE|hUO!4lmJ55AyPLa?1qV#Z&=lBDLt5v(Qd# z{tiXC`NlhlQ21N8)KB<_pQB9rejjBR=12zfci!wKMh3}<@jA7-SoNEErgFpJ(GhJD zG(OELh&G$->r&2;1G$9uZ@sSS8SD9(+hUu45O_Af={2jyi5$=n!aubV{Kbt2J_Rx2 zxOT*|gS88(C(30ch0u`Rc|k*(;MuiNWGh=&vDHsp$Y!HyNRepuxGVWk-Ptpr8L{GC z$>6UgVK0n(2%& zUq!iUM#_ub_4~v%@yDjT&s0PYK&L7mqTF#n``Wsc_fmH36;x?o`oI@8rpv>VAyPneFe%VDY`In?-mKmfth_18d^=yw(^0yotocXb4-PH!&ii8R3FpFvvMuW< z?}sI|-#FfN*ZlFwFxJqZ*bDot?De<=r{7z#c2y1b$!g0RPv8l0CO21KWYT_hGwg-N zOm6k)bg2iVi@^{3-rQ7F|2~WnBSM+We1GGr6eTec_l|XN5><9@kxS0K2=VPtt9GML zndl<7UJ=_ZMI$Adt<>mE!zMnBQ`fDHSM??MaW20xoN^au{tlaBZ<+hP2gTyE$$8%A z3Z|1M8ZtZ;oF13Bzn=9>N7ph7=Q{AyajIR$jr1v_pR)@=#?$I345}RNgz>l@%I!C znm#!>YHH{iQIMt99?e%oK#=IN6Ofod#dP+4aO^5|WBn2_F;<=Xg6Kv4Ua!twfVa=m zGq7DB$<5YrSKQA6gSI4n1LMN_8LsN5W>v(yzSdC;I_BfEeLA-49<1}4PWYlt%i#fR z1LL>4&$gBQBG1dPAge11|I&+)heaAl8?DGCa_1b{B5&_E-qG#$4h2Ps4Ly$CVnaK- z+)S-#*HsiRlL)xKEgc=ChX7v{-R&~Dk8K?5Zrr{{zs6f%`@UFaU&_(MPyRv=PPJle z*5s(P6BdeFg*$;Y;uV9w*K(Ab>%C1gL4TXRb&^UEhMc_b&V`c4B5`gS@{*;dgKBr)C|E zbt%ZbYf-J){PC%H|D_@(!VLlT8)-rO(wv|CS~9Z2aQZhS*^3V+ zmLtERLHjv({o4p^S{NCSP;VeWiQ4NR`g;rEy^{>%21T|izPrGV<%_U)|L z<(Fbc=;7c|KbLfcz1-OI^&yCEUP~b_W#${rx9)O=I{DUfz5;SOI(s)^8wMui$Zo@< z>TMQd{`$Ee;I}wrS)7GLgjmcG;}4kz8M?Lu|BNb^^4?DbX7Sx{`#@4GMgrA(v@V0O zoeC=Rdb-T`nET%HpkX3PGe_of9quuwHdnR$WpRWQjj}c#rtzn(1xR*CVc$;{TeN)=cGaLbwBHzq2 zLVqaJYFUwH)dbCNE8OQ}Wz{@#M0x0vUVC@LkJPAMs;mSZI2{pNjCUBxD(U{wZ>@g= zlu%;4p(CEVqr<>A=Cs?JZ_#+LN`1@gNn12&qn3F;(QYj~(;xhps9W;g8JP@3XkI?(5L=dEb^9!Iigx0&Uk{3Xq@}UK ze{HOvzVzoIfQ@w(5cCTKs+XMlc>fy#Sw0UUw!}T+Ib4` zI_Ur8ZSHT6X<{mla1}r-J?q9_1toxqb+!#xjjk5kNM zcr7GvR+Bun?S-rH%l*n-uTw?Ktw6Dg*BX9m`3Jho3M~~wZICD{H%LbdYo<_PvWUo2 z5K|>u8#2tD)Gh>}VqFrARaV;Uc?Cx)!mI!csG~dX0$$>7tozvMC|p=m8HOK>vpDIG zN$G~}Q_AohjC%V48WubI0^5Fdu%yH@v62Q^tS#KEX*=s6enw;LskK!c2q>Y zyjqUW=Ro@YP1@*4mALm>CY4~w(b!nM>h#*@SE=?N<2_BdxaRC}`ZWln8Hu;MP#fRV z)4t0b06M3pUqSuOJpl%n7vRGhuZ5h;*gQ$Co>%pV5Hy^eE4*-4AO+_zAW}dsNGhsM z(1ObkjaLTBuuHuCW>22$6qvah@IkeBZhC^kmZksmFYVYn<}k?^XC3Tbax# zS>{UN#qZnAwk3(Y1r<_txRY)PWMpLyivIvYRLZa3G6~XI?tXeNKkCw4qih7@=U-Ca z(BMG>`BrZYXA&&R6 zS8shj@TkRC@2~wC))MVic=Gik;9xw_1hFW(7+15NwGB6#*N(>cSVWl`$6GCL@@pW6 zz{OtAr*tzS=k&~^nM^9IEM4;nq*M8NhrzhD0OUNuaaY}U^sHP)EHzk$o0>YE(2oGa zhrBu-7PQ|+5Nf4-zZoZPZ~z*0t|Z#C4(Gc9wo9%_6-8^p0%TbpT&279{ND%*nACaS zXmc*>JP_Jbx7ulz5YIh$q7$3KZ)L1Lr$2op)6Y}shl!~5mr{hExQBg%xo_p^k7nz= zwKvj9&c^id2FvWdLJS;L1#w4(ZajpKPnvcD<0r*RN(Z@hj!MlEX{#HiOS_eeYyajj zIMxGNbZv;$?=F!Q4f&wj?f?PFi7ZnBpe1t@pRj>X4D+$Vrw+Pyh6Qp|u--H9n}1Ri z9RMzeS*QWxhPL<34>fpLE0$8lGPRCCaDJ+Y#&ZQp1_npBSWzNM@n7YzH4`r$oDylj zD3Woe1$eo*tA z`5$F{;4$Y!dv-wj*KXP4C?s|(pIkX! zz{;iM7K0UUgmIoq)A#a#Z1j>$!cbrRz=Te+ka?VoX)}}+)1w>1@3ulXghE0E%vt45 znYD?xHqC$&b5B=c#$#gl@a?VZJ`(rbBFs0Q_-YEOH4l{}bSIwjB4lNbV?ar5P_rXk z0;+1DHrx^MfOdioQ9oWeH!aR;7XNu9^ELd?EFJ-F=OzR&qkv*Upo!Hi^#aIQ*()ei zaoPB{<<*f_9A*uCi=#!uMj-9Zd@62-_py@J2&dm9{aS8|Ce={iEpi=+TB0Sq^T&Iw zOQ-sLFBbU;sRFHCX*%N5MiML6biAIrmiG}}7K^%SHaZr(Ae>I3;XbjZ*MqvFRV(nh zW{CDu&$;Ns4|4#>aTP}ZUi+auRXvkwn2)V-g9K5wh_j0UZu@$Ja$9G8Ls$L^QO|R8 z&3J6|am`awn=jA0Pc;zZlZ2 z*RDX<$hksRJ@HwIckU)0gjy07zvk?re_S1pzwtEaWlJ?@m!bzAD*Z(jtAK8V^d0dU z2;bFllFhX&=`Q`TvUSI!W3N^tvj6^KMvD$Et;7SX3yIXR-+ z+u)$p%;1U|+whGqeDFUJ3x#Ps$5WIzR9oRjMM`OB!RB?H3Hx}rcAQ5sYX_e&Nu z*Y%EHUj;q+zgc53l0D*=(=mMgU$*|=|NZ-_3p)S{Zw7w+^&R>=lYj9;X$ZAqB-fnY zLb2Ji_8c1-hF_HMePw`ZM2HTtLTK4$Xfk3oh2oF*V~GEWiZl7YLB&mlS;CzX>>neW z^uWIs+)H9*uLpquRAK6O05GO9lqawv_qtLE_OLR1zS+@2{+jfDsk%xVk0waS4QMF2 z9YZQq8t|+%xZAxn#)H_LmZGPZz?_I)S@*Af*uopGFR0~i$z1nN1;=-E15bO!@1Tua zw&nC)3trFpPn?`v)sJ5*xmCmod8}+EY3j0bGIe|Fnd@n3Izl#g^GqiK3KJMxJ_>wz zgc%lyqcp2jY!@0l2E@R{>ylaM_B+ZCjQ07H(A;dS1Iu(RE{xmWz8(v;QjP?u?rz)7 zfc!pUb&6nML0n|wrCI$YfJa%>Pl)tO-YKg_u_Yo`4^MB$_+$*gv_go47Exm7{KKwO!Q9DD|HC&uZQZ?{6W4s*Z_dR zwhBbWl=7lIpf}P_Nu}Tz`U@x68Jo|*z^-D9WrB4>$*s%Jj4kfHh#^;0tM<@>8-#a{ zsSV&gCiYPoC;DF3hsCwfsgIeFuBXi*g`>|?Z}u_ls~$}jn z6XcDJcNx9lhYffn(BwoAoXQ>f)u8fs$JXG84Yvscr>{9w8X9_#W|0@^H03IU1KH3w zB_71}J-LhuRQR$_19i+a?S{3Nk#`;4oWFzY0>97ajgUG@Z?-MvHXf=0t0}<+{Thtw z>wjM>J)ZIc#%qfdV#f(`+Ov=>E#VZet6qRlB~AH93y64wHsFhYSgw}K!zBk*C%W01 z8lD-SKhV5JE^~tM+8k9YdCS9OY-#CY1J`p>KMb!P4u-HkE=bX6U$ehLgsYh zOt{VtB`{!Rt=rqbnQ#{}9Rd{q08a9lf=~M0218=G0Yvp&V6h2`!|=$(H#~E>eydT? zWS^nl4Dqgd+xnMk|66h%>`T16GrAV_PT)eu97 zwAIp9Ra^5IQ_RFXlTOCeP{bT58bi#9AV~7Aw9nqpe$Ls?KJU5S_nhloC;#BOkYuf_ z-@1R_`}6(Y>YC%TJLamy(aVOTx8g9Tu^fshmq-SmuOVgjL*!nfI=fX>SKYH0ey0Q) z3ulAY7*`q~7zruAiFJ0R^9U)VWbzwP$Q^IyPGLpkj$AE@A%)GU!H82pPr7|le#ITD zr*nZU(dP|`{qy{d_VAgWHLp2Di?0vGW#!Pe(2(Z+d;+Z~b$n zupL!Q%X|t>avdHxVpnwa*Rq}4i;z795G{#>tGEG`h@rMexAzi7f7;L-&-{PjZ~K2l zAz{e|_xo5Tw1u_!Ec_+lbUfMuKvV#~Y z+Omgv_R1;4@c9aFu!Qjf&JYgt5pzYJ?j`R*S(!_lL_PRTJKEKBvsp_18e zEkK{AmRF^2e}wJz)~mfXn(01Nuc83Jydj+D{Sw9lvau;aIin<2x##`U$`;eS^ zJR^?&)P*-lk&`O7kM>CudObbIB9?XdCZQpj+rNpjeWr8 z>ukD<_}qt32U&I}^(+yKf;c(pqHTYwN@NHxzE& zRnnc8KhKk%t=J3|NH)a@=eV+jgGX-vi{OAH(G%6#{U^1VSNt*Yn>X#X?Xw8M(mcNR zCm*@%XEtSph-u1-?aiK#q8ER8O5rG<8ebbZ;~o9vOXPg9x$mtwRK@cZ2O^=*X6~Rt zKnI^BhqP{0lMz`+?OX0iEfA;4Bv+J;&PwfvC>c0mK{#zM)(&OR7J4SiY zNx&2OulxZ*?L^+r9SKw}w;8JxtMyfU>wD$ETthp2#n7!A=m+BLM*|9(v-9Zyi=d-MMIbo zc)sq^*WflddNR*;*ckgw3?1lv`J$oudj9@>MY}A5j~S?UE{uD{R-ZnPsI&O`QP|YI z-*?E7b4i8(3z+enKU!#Q79N_rILuw#_OdDRpw>d1_8_P+yx3!WYwDuE5e#<-n=BM# z@}Rm6W|caQ<~TLk%;zB`K)8f=XCsX}ncQiGWM z&yL`CPXFfk;)280-IzV{YGEVSV`H^^Yy{v_NowOo(ra>Mv(mgdyi^pbNv!HuibMao zd|CNIY4HPkiP_jbq_#A1o($uY>S z?=bnot@SZU-|Y=uBfMjLv4j4&Ow$(c@MQMxCYV)%RfQAP&F!ONaAn=Tdj-gt*1T## z7z@KyFkTNW;4mvy)y9>9eGo;;R?em#s%UX-fIux8kr`j?*$k)|Sv3g=rhr}yTw(70 z;i1u}V3~##A=4Vp8J2oM&AJC}FLWltIqTQ7sW%P0u6Lz?-`RHSP<*_KWciFA&Z!An zIEC&Ns-uR~r4{vR2d(uyt#x!?&|#1kOWtlo*pcv%5EnBvu9wrj`_B-x>tt{qFp`J; zc!>pizzm)3^g9Nf5|@agu7lQAd!4K9tD@7#DW;i-!9*y-!@m}|1AGETXB~4YRn@xp zdGrLc<7H!-irJ#Iw3JP&kvQ_4(oDdlgS(Hhn9f{Ig}35w1%v~0B+E!_a7pX5ao=P~ zt*Iq6(|V84RCdxkpcJXdFjA5llowGIQ67$05!EHt7XS_JN&y9Pfo<$_Q#4Gg6H=-Q z{vCsEy6~Za3S6?)2CCV-Cd2mzg&?Y2<{9y^ZWH7RE%@m9N|M88S{Aux-BoCLeaum+ z0n_n1uH-;1JgCY?6CdXls$r#$^@ai5{Z+Ewaj*8`cDfdeBLu9oOoL0yq}QQW#NeSY)`>|prIt;_?6 z6mq|JjC*UJm`vnyjSG%He^OyU2HueSmlU+;A}~LCargp+rYdr%lFSfSw^FEJc;o?# zuQReW2r>943L3cH{?2R_x*0fMRGpQRbA$KzaUu=`f#&hwgw)h)oC3p2KJ!Y=>?J^c zG?FhPD@0!Z?jhQBNl1!SIsgxr#akhCiQIEMBxlZ3Otd7$GnrLG6#Uc6_?LRkk3Zh^ zm-fd0-0KC*P!b7xEvO6=l#$qQrORLy0rD?irzeXg|0o=E0YlaAg#+-sNx-yk;O74q z6m-#2Bx5#m2=X@&^e$5_pr~jAESv{9Icvo#l-J|_rSu2~rl?%?zWCqVFm33y>62Aa zITPZ3^2dRz2>rX9kWT{_{y}NyD+u)P&2@I@5lZxGD_RbAe0GhLET(ODMgvwXz$q}h zkpL|;R%(n0wKZbXo>_aU7rFM*OzVMF%K`1{sI5MiTt5T=^)oDjt4H(9>!>IxJlsp;O9%r*M5GdSa#OU}|f45^3a62#@S2GMcu!yR`n}0KTb7E}iZUlpHvQau&%RlVxG< zj{!Dmx4Ny72jff*TgGWpBt($>qBt+(cM0s%=*+I9vRE%!U`EeC`FVKrvrr2Ape4$5 z05=EUJ9A~eU_jEj7Us#~Wz>*BOGOj{8yR5!=YZx-@}ONHBMrVRflxgu&K$utLP$z7 zb9ILIWX@jl83%tN?DJ3xu_?QAWr-i;c~Gp1vHiNX(uK6jZ3FcHB+xs@&1c`cxcgki zAFjT3A)62I{iGQbb-%K;=-A@yXdf?3R`la0O$W&wG+^I{YzYd}|(%0c{9T=Zf$)mf)ri&m7hwtj&4LBJksCIj39}zA+yXw=lP@0~63^wB9X3mlYI-6KQdaG!-%_vT zl2VP=%IOXuhx94e(}&yq{qH4=k|WoLO$0PHa-!wRMUDlZAVosb9? z$;SDts-S`zzI19_Kr}1!_JL-i1XV=ZX>tnR~+q(eB(-J#m%2bvi zL|f5FB}wD^xG>uW{JrzX895nd)NUL@`9<(_w%ouAX$V!a_b z&ZcsH*gO|HciYxBTef3T*F*kB>bviiLZogG7;4*=#XoirRLDFxv(H`oiR-cl=A)H%)$-6JU3LZ*K>~ z3B-@bvA0VWt6r9^jE`BGf{qR6@qeZ89sgdK)BG{rSI3qYgs*}1MF4=8RP|T#B}X7k z)2Ie+))+XjPc^lMUOI#~8t0w>1bhAbNEsmn<3}dNK$VZ_;km8H7?dV8Xb+Hb1-jO> zvv5`}=1$lrs-IfyM@9}1zcv1b7?h(p+v`umt+7%jhSWSTcN*F~*a!hm9m!m}Qr3Fm z72*TFz3Hk4^bu_Ot$mGmPHC51%+kxw{xNBVz8B-vc*K)jH*)Ap}eHmN1#0E^|fOUof2gl%{uBYc z&+6hu=V4@_edisr2>rFrtr1P>5tF*r8H0n>W7-|%3Sqd;xp^S*uDe~-0X>@aGWM4k zRyR_*@FY`2Sm;w+aOGu@?#6ESM8w_*qKB&TN}Ugp0CZ%A=RSU{CqE00Vw$RXJ3Xex zG0)Q6)PQ~f{5;Sp&dLtIEMrpfJntx;v-&H=D$j1%LX6~mDHd^wNqCmK1M({phjL1& zj$LRC)$tf0)H~-70=}U~7xpNdR(}h9SlY^VeE^oupI`vf3x%P4Ld>ULtcuUUD^$Tk?($Yft&;rXA6-p)?wKEp>U#iS$QR%Cq-rD;nCj9n z@l{3MUN>B;3+&l^6QNckvlOdxa^7IS^%~)L)Y5B3;1Ez+K%c~pd++g+$(?mtCYVHu2tR4L{K&O zg=9?ip0BiA<`XNG5YfO+FJRy=`N~x;{jTsJbg8Fn6XUi3zJj!Z>)Fs^7)oJuz6_mo zk%wwebG*p6R3}{opxmsS()*xNRAZY4>?sfHJ54tcNue=*-i2)YVeL9<7MjLKJSy8mFa&1WL@}P4S(`$ z5-$iV=%y63q&clLfOH#aXzGp`{Gh=0Mzim#xZ+S|Z(LXH)zV}14fm7*78Cn^9q1`S z6W__f8urQ!yk|kNskUrW2Z!Pqd9&7jIc3YaAl!|F)S!+3;8gCSB-R?QgWdjq&w2A(;GJi_$e zHlC=*%jwKmp*8&XrFq~=bFt@5OkRS+t%I(^*8rz zdr?m)d&?^4wT_+Ne;2T9(x9qh0|($CNwYC;+k&!fzxEf4vwhl|KLV4_M5NrpQQB#? zdE=zDG{#!z%__gFwZ^n@?JV$-`FXRYWEniMA~=WG$Mw15!dJAlL>$mOrjKaE0jVj@ zuhOSFTa(7m8>j(huWw(U-W=^~?(Wzl4|S>7$@%_Bw-3#VY7uo<98&F^P?CvB@d&gn zwGVHLP+O*v*^%9raG3$7_S0@k)jVo3!!($oUd5dv$f)l*)tTQ7>?-Srz77uuU@|i` zy=s$n99>4w*8BOjrKl*i&v+zVa^;MQijoCVq_Tg+0myIL8hflLBsP5;P9V3Yo1tPhZ`~@8o`$&HC84k0I6j zNlL)F`6%`VM~d51QJd9|jI#d`V+B&L&4F|d*5faCA^Uv3Rm#w9XmbXL-w4p3KwX;r zh4W;E-r4(4mD4CW24gW2h;2WzOWZ*Gaz|wFR(w#?^s*vot5rQl)R*KZF>jjV1>>i` z*x{lzk8!G=QD^jtewLgZhtftN`!LT?)t}Bd#RYoN<1mL+T~vWhJ%qWE8&rt}DsB2S z53OZKl|~Q0LEMnmmz(oDsqY9hmX6NqXldMK+*zWxDgkkfkf54QvC(yu#h3;^5VZbyc7I5Wr~Tih>&WC#WCD69e8TW*RM` zvqnX4J0jp4H`HTV)tF#fec7+v3!k{7y77XQW4>m!++QF!QWWi^h`=CA@x{_^qDMG~ zRCmr@znD8_nZ4NFqxDVBnOagHhb5MOkkYQmEDxIMQQKboMsROyEMP|JNK+7uJHAU@ z9gQwbr0#Q;2ap~~oJh^u30_@>I>Uo#^JVZ>Hz5dZ{_7puVDS=tQWf%S_D99NNq(UR z`9ydsf&_t9zb~sy59H^y>b}A?3IMw;%P;bK4-;F)WWIYO9o=-??~U06SE_+*oAuEI zKh(^N`ga#urS_x&E}}z*D$BSROrzP5`-I?w8+X{j){6P)Q2P>^c$>-TjO+_Ox+cc=R8?+kM6*rz+#YUt|#n7 z@H@BE@e*9PrG;M^re{DzY97qKPt~uNHfW3N+qQs3L$HLo0Ca9+uE)|xTJHX3SYem1 zYn|GucavV!f_p2U$4ti?jgm17p>o2iUT`?pQZwKrrIoyro)uJiS!!d=<(!zx2D5a# z@W_uFgL-t>-4t1;aBp(VLX?NkPCEUTCSV7NASa_wPGcQHC>|pLILPhojgL*mV@1$l z$Jow%fEhSl%rcYJy{FF^5ObPAJ;Yl%VReu>(drNT>w+Q4%+{ZEHZn0MXVL5YX5qko zxR#oN(#<{@FdKf)RIB>d+qztkllrZsBrqMQw1d}de$rer-rk45KuTXXui*P4C3i&fOOAeOaL{LTJ1wigBz=8;VoJJtl}jn2%ZIwk6|ufa9_tVAMajBG!T(o#A5o5>; zffdlyqsR|~hxMN?4540!D^#aIb)Tm09?pYkaKvA24Hu_}xnEl)8cQLFXQCplTEeB9 z^Ar)Z56!e0R;Y#^NWv^Pkhbd&e+T(7e9LYkt(L~2a=6X<5@~so9Pr^h2f!`g z%!T7Ya0B%|F+A?v=4-bt#yp0j3F5rpuyVMGJ0{W|FzZPOhgsZr%&8k}+acGDxgf4_ zCqO!=fyKz~F46C$A7$`6e#95*I-_ehx7gjT$xiGbT!HjS(H_*2ff}Uhg>u?M^c(qQ zs=ikKLwJh8YyMS48wdfryVU3i!7#a`YhQ+`)r&$9H}I1EWOViSbg-MkatE(`VEs$% zB`mZ(hDgg-v{n))2$YrQX`t%;X1;p|==EB%i%Bxg_3OF%y;3*(zOgOjyfql97aSFn zK%!MIljpmaJ8Ud}R@z@)a(E5=`p~)k>4F6<2zs?A&Rwez?NJ*Mn`1~AI|m`)TAPIu z(^@}~vWEtufJzXP=UD;V;iu7+SVdo{(H(VTFv?svET6Wo-(gXOSTKf(&kO6HSlO0P z{61d=FFUIu3Za8@kq=OzSafz2DVf_9*}S3WT)x=_!YIsqG73M|CtUO^K$3NbEt0i_ zZOEV;kARF;$nt=fRm4{PH;#pS-I%q9n$=G^7(uu#;1oe|tg?`sRTkF!EpmQ`Egyi> zhH~*BvYWNckbpzE{^QbH8}~QB_}AHBGn1 zY}Q%CtZ&;OnO<XJw|26QTtljyNHgpBnV1A7?@LlC|?OY@4%Z1*~5wT`%% zAB}l^i7@J9KI5AFoMLi4Jm%I{{6qMRDg*{p(-B7fI7dmQBLl+`F%5y$Jb2CNcmLA- zategXiuXGVqzKIOjvWqW#5XEg%|COuRom_*iyGXVW2oy&%aw7Q(c2luSrzz6j0uQBN-hO&Sc~q1H5tWp*p5QIBqfbvK}a-z4ylKmQgX z(gXmivHUAd5hx*eKm$-nFD(~mCfyTgTB2*dB@7iyblz`iGA)2GQ!Fsm<<5hV zu(5dT^DFmGie?Em$0`gz8RLk+r?)ydgQ%@l7sCHkO*2zs2nAEZB~#21Q7&S+Fw+;* zB>kF`+)94}^z=Jjo+w4^jNIYDdhAg_;=xn*zX+yMOaLkzo(hp?i;xk5z&NSX zm;nmOoWfkPS@c?_ka_I@Bh!FW5nxc-xtwg*32gbYewZQ|4^!h3SiqM}JT@X>IFG85Ls?UZeGyk8$_6UQe0iZMl9jiMN*Q@`XJt9yA()^PDetkpp`o(&KnyJex&9vn2M>q7AL(yyVv^Q z;kLM~IwVNOlLitqkb)u&uBdOjnK#CZmkKi({BJ!%5mgokv;;BWakusj%Ea3_gaxCV z2urQ}F2rD;%Qyy@Po-(0I~X#Kx%AE>=*IVg0xY@b0~6fTL~5yXx<#wk#Gk;)f}j&G z?`;IXxB}S^HN_Z1H6q1$^9fb2$EDC`Q-d=4pedXJey~(|q7d8)hcP-v_0wp)xO=m5 z8nQFTG{M3jwqoxYvceN~LC>U>M_dXzgYxjgRj$Z9;aD@xt$E;Bb)ZJSW~K5kO5r+- z^yFZ3nz4$)djl#uWhc^}P1>iVnP^EHsW~E&q|3B$FWh6{zfyHomBn}VkR8*@BUWrB zt^TsFew_oT%YetfGhzKtayHu@<)Nz~vR`F)rvo|C-5m>s!SZN5v*h3<=Bj3?h zeKyW7y1qRHyI+SH149&8&isAoI6_4`i{;##vk<7+?KhHLKs$8Gv%Rucf&xN|8e9R} zF}}fPRWuS5-i@~KGz*O0f_fzB0^sF9K1Tt`WgkTC?cBtcX-+5^5)#oR1l~&p#IZ|2 zg+yi z9q*O()w9(`QK>%!);ouHIVTo)O)Spz&$HA}xA&;T9|XTAj4Y{qRQT)$)k3Pk6GLW z7VYx7iQbgKOl_9vkqgAZAIr8Ksu0PmmJfG-{4P3RP!@&uc)w3RJ2Yh3!D9X>^w=c} zcdc2T<2HyL$72$awUJc} z`bzx(LEP!=YE?l!+%AJ{6tcsvcy8O2ZsZfCj_7fehy(s%%HW|}gQ?|Js83IB4sz{C z2@JeLSYz7$LYQPYZ*8ZPopME1L(Y$Xx0%nkVhO?bfVezpVif=I)3w)6TV>2R5NhjA z#V!}WBE9m2pQSx2)DV zCUry{ud@Bb!oOa27vN8u(8Y)!&vtuA8Fx_Z#5}hD{-?C@f#U0bm4~@XSvv zSZFxuEH$M&m{B+3Zm$N8LZ<@PQsIxPrXtO3q4YT3g>yk`I!Z7q-Ab%7I>G7TzT`Ev zykX-rayFDhR(mruJSg;eqWSXEjGM}*-^?y5emKQbl4n}Hq%Z*Z+gGP=cpp^^?K%KD z=egzp_3iAzmn)-eaGe=4_?#dH0biVn9SrTokGv}@PWJ)cTtwgF=+9q|cXsBnUlKvS zxv_AAbCp;gLs8sq2(_4bJrwKSd1zrM?be-c-4Dkgbp{1Q9*53+4?ttt2H+yL-|Ucc zfk1HU5vk)oyKIA+PV1;d@dV`r7f{+?E~2vbibYh$-xOMw_DDC>sUEs{{Z&18S^kx| zDIhOq5(YL?7NQa|z&+pE$ANt)k3G+q;o0}^Sq2Do+@PgynS{|V5sf93&+Ix@^|RT9 zfezh?vD`7hB|br;ZZ9y7D;An)s7`Blhp(*-y^wHLi7$O6sk&sCUox33+;1q<^XOki zzFC;*J#}E>*YEn?;hY`leTN6>z?dv61gI^-8jLN(#ORfihrI?&2>}1~hhmrf_6Xjb z7+?71fRr5@md#L5j6sUxWxR%&xYbRy1KI3d4o{>nXbS66D|*DB34B1lYmxPn9nHP+ zNu`F_wx*HgJkf@Y3*B$F2Xzm)l+8$l$SDhnNmmb@Y^}I(D}L2n`z6h-KjO;|KSg#} zoncp#2S3|q4=-PUObrVf30&Z{@!11&G2^eB$G86-8_W4^rS&j7sQDni(^ z-J?V`%DcKV7w5Qoqa_m?3)f@v)uSlwM({h^p7!_qyLj6{LM00MYC)%)Vg5CXHefCj zdPA_(toY_X6}jAdSb~7x5-O6Q&*ylG%e0*3t{am6`&8ji|7c0)v5+$JPBp#)X;J0F zeP_e@ahI68-J?P`26_LYQw>Ct6WKJ?SAju}x>216EuyPoVu3}_Zz%`d05$D|F)NF7 zS4sO1yy>Ciu8s~Q$qKzz{K(6%YOx>`&(eJDipIBj(M~9 zz@ZwkiaIUfGtaJl(0BXSmcJT(&6rkz*^*#Is1E#dC|%DVk@W{r>%9q|^@w(0_#?z5bnfK&n(Cybu=B%X&JU>$kOvuibz0AG=4d4*&oF literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/filter-prompt.png b/docs/assets/images/monitoring/status_cmds/filter-prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..efbeae2d61c8fc9bcf04e3227d5b2cec7741a678 GIT binary patch literal 46241 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®P_3cQ6==DSbP29w~L=J&9?O1K4Texmen`B^T=-C{gnntw=3@jbI`T;#=d#} zM6)zi713I3((7o~RN_of9`tv-vGah B+m8SM literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/filter-steps.png b/docs/assets/images/monitoring/status_cmds/filter-steps.png new file mode 100644 index 0000000000000000000000000000000000000000..b2775b3c9cdf33c447d592a24c77ff626c9d7ab8 GIT binary patch literal 59783 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


rnfmz;r+rSuo1i`Amtk(eI9%!5{sjkC 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

!>ZrE#J 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

A7B{ezE+UHd<^9q)PkGr{fej$&sI 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/filter-task-status.png b/docs/assets/images/monitoring/status_cmds/filter-task-status.png new file mode 100644 index 0000000000000000000000000000000000000000..c1279e8a00c791a4468ec2e2755b53f8ebadb04a GIT binary patch literal 59832 zcmeFZcT`i|w>Ao*q5@(^q(qb=(xgZrG?Ct=*8oyQB-GG@0*V!oUIWs55Tph|5v3QY zp#@NC5{f1eYTyQV-}8IV9p^juocou{BOxdVW9{f1GLXUG(j}yuuqp@IYTj8tL`7& zuaZONgx@UuuzmgF`i+5ph3iatosU#x;05&I(ad?5pgvP~{YK0JT%25;8l3_(;#byq z?&P4V(NoSPv zXT5llH^SIZe4|`=an`pVT3)a(hs5QU;GIeb^|WvhS^fB{W@=A2!cL}{31{~9Y!Ssj z$fU3ENjUAyO7W?{zypg;DDl-VqBZo`&5~)mPO9vdKYk!B|3*evp{~A&rM}H##JmK( zBf!0c+HLX`ZK{LAd@~_(F5>`w;9|LhN=tYXG*dd41BHQ;y+gD^+Rwn<|2MRA}a_i7lj* zG(e;F% zDzPPoEZ6%>!{g`pplTj$qD-N!A*}Qm`lX%p7&1d$?@HB`(<240oK;dvrfL-#vx;#r zVWE<6!^*{y5|)8zNmG!v5(B1MeMlsS=|V;6u%*(I-r6yz>Xmi147pUkXtcd?TU|vp zO{c6@?g8@38fPrE#NGb%!Qr0!yxysJliGTLm51MD`M*7Hcnw}`K|5Uw3qmMPWqk`| zfAvl^p=w!oo=!l)6C97(CgsRI%=YwILK>OrZMKxKkOSV|ZiX`DeL$sqT6Lw-YAmKs zve&e^cJ7q#n=igs+e{lx5$v3i@sb0ZS7EksH*S5eY@+IYf*j}(+M>~;R_vD& z(McsNJ0X7d6??A;BX4&Li?(}%HjEm_gdCKIf>e#s3#0hu^Cv+m<=b%Vqw~Z=NB@2n^+K8+b|=d2uNQL+QUlk za@5nif5m&cB{kCPo*r?+^Sf+k4oW)JkBL7ARQ1O0uGPdno(uE`vX`T_pvr1rdi!xo zr7f!DF~A>57qbDc9B2!J%aTzCxT8m)z=Glcw3dsvN1PC~YI4Sbn|E$!6W<;>Kos`0 z;*_JIeRDOtu_5A0&L*>{EJs_?FZRZT`(ErP0mO)4dxi9Z*9YBdL6*v}R;BsDlvWrP zinaggr?x8zSKhnNR~Sgs^>8!PoKcOW{~I*8APR!Vw3=5hthJ0JZArY>i_WP{^;(7a zt^VOrq%Eu-9$x&>_lRw5y00tK^Cqo6x+=~_r3xm$@X<@5ZyJ~EhvLF~4VjcZv!nNk zbCF1LiLR%5eQ)xs8g1PETq^v!L;R^zS;e@A^2lAOw974buh=^nKM#nFu~G8z8;|$y zeXG9Pm^A*;Xo}dAk|_jn7Oiurg-n^7uLzq2c5H2^^Nu$#Fk&l z&J@aDXwADxm&O-~pmka+m`J;5z?A(1ldu(#EMO|L47BKB8#A6KEl8H&9F)$jR$pMj z{mNaatWJQxipnG@w3oj@jvQ2NdW8o-w1-~jOhO?-pDU%d1UarF222zOZE0*0wEjV&6q8Rfboo2#$f{db< zHpmqhz2T82j)wDMe-_`Zv2(2~>MBx#D}W394Q5nOmA`6#y0PM1dU|C({!_r-X|PXL z??laR!v132R2nKT{329ag&5SjUCk8N_c=flCHIREz2FH7ufb~=Y)6BAHee+I&#ycO zYX`8U=JvI!=5Qr-RVqyrfWtCD)^2{O5J3LyJ)uR$+WtCx-N4zNIwX&H3FtMR?+#c^ zCGxbnV=`6Ujwazp@aVqNRAZXr;wg#L53~$EnK|$}>hw-be2vu&s7y~ZI%S6?r|Q|J zpc(FQVD(C)Z+-=fx1Xn@6;cgSZ&L#>@(+;O#U$p2!N^`amik~n;-aA}+;#9As;>95 zYe$Iht%JCb3ZKErrdOhXp)};0bFzfy{%2zieIwX&7oau!eoQIwsoY5+Is~48bAc{H zm4J|b`&DRZIn(q!oJ(~7;emt(qPAgtVo`oudh$;Ji+r z2kkuyzk^iWrXtjzOJzZB?%3L`H^Q+AoNq2S4VI+Ry-FIZ2? zsL2U43|w&WGzmI09i;1P(h%^Zj}*qa8gRK@Q` z0i=7(`A*5jWKY=*xi9r!i6>Y`+?ud4(;dbKf6@-8dO_n^aUq;9ARK#smYy&n)d5Y> zVzheCJGdwty5wuL{5oO#rl(N;4ok(i>97LEc1!0321ygIIzP5F$beZtpp|2q8^<00 z`rxL!pabfC!uCkUG|GuJ1UKFvRVV)FQ|L9&czR8M;gwD9k%n$y9{X!a*$u5PNb}A) zU+>0Xk4P@ER{B{G1+GN{mKOX?&h}0iAZc-L)bnbCz-Hi$&y-wTx_Nq1*?Y27WBf5m zw_8}QoSyj0C89Lak0?+Jj^7$jf^NrF_(`6%KXdiVwCHr2NCYKdAB?S?*-P!cYG1NB z%Y;MP;B=oijLmmGLe}5|L!hTM{30*8PbsVGdkctw1DQ4XazDlERHbyP3V+Kl&nrnd z6V22k1Ng0prNvcOrWN)tu&k{1TcT(Bg_TP^(x}%FN%JS8j-K^N65{A&t zZvu0n`Obu<>)P7OZuidAa|NteaAR+UYP=2B8tU_M0vt4IJi!(<7(EzI&ZgX;GQ4h{eI^9*ct(sAp;L zNhB3HKLG1~i!%VWJSZT@FgnBM3U1-I@rZ+-I8MQ?NBH630C z#3mBOA9a>T8Z~?pSsKy8QHy_?k3pcD9^cATjFZtqab5`Qj`W4A25Ks%4raycxVZ9( zq`Pk>+HR%x1|EE0d!6qbe?CNF)`0P3wGBaJ2l_iP5Rv#POO|uFQXADhFZh_Rjz965 zkvsM7XDS3}0k-a_8l?MlamA}Iz8K;Ywpr(V6Wn+;=CvQU9?`{eA;DqJS|u_dZWDTH z?Q9R7n?x`e*MO_%+dODI0Bqx?NlL5FA5$=WQeONkjef1JsbVfHP!>G&$`t%_2Y5?c zf9k6Z_!{wc5X*?ItH0i-o^0hA++KPDx^^1x_#P!l> z{?e{J2Zd{lUUGAO8!w7z8Ha%9aoPE$Z#Q?cZ}03VC^147_E0D)5`CVq7qM%2qO5EE zLGx-$RqfmU&~wVNd#@MEbmS@`2m1Vd;VUbga*OPG-cV{mq3Qd6*O5B?Opa^SvbfM} zNOC&Qws-5rDxvkgW|k~VOybHFxY6Caj1#+_dcsh)N{Ro6ePOKVwo0kBElnQNdk7?!*|4JJW06Gj)1M8>$2zJWWna`4+3?Tc|EU1(W2ANH?5|~xO1Ao8AXeP z*x*_JS!-RRIb@HyFEcAmmka6@fXEvGuIp{DSB&S-d;s38n!iyQ2pOO8y8C!;gC8U$ zPnp&h920bRY?q+79*?y!xbpo0-Ik^K71^gNw@Zug6s!a)SNn>qe))IMP6lEyr;4E!~aBM?9!Y_EP<4q7`o8Nk(W+L3Erg5{6suxEFqhd`tZ zw?CfEa!QAV8>BU~!B1cpwL$&abez5S5n%3^wfwr-e?-o6P00Bh87^$WGiCc#_^B+W zq8V%OwOh{kYj5KW88_z)^Rx90P+#-?lV&Rzz|g-L9NadB;iGZ-g_~|M7fLQ|sPD5T z?c@@E$+i{HVuPJs%sW|VGq9=nPY0kezUq`nOH4pj9(zhA`Yfv@iJB+CW?kqb&ntbw zHJYFIV9`j%BJYt{b)r0LqQg>VL89MI!qrw&#uli|)1-(6hm)_FJOptpZ(pGlfg)5N z;j_fC$n4R)F?A0{wwd--VQMPVjxA$cMeepe@7wE3%h@80$s)n&y)yjd5_yMEReWv< zsf15=dO_h_p|i{={Gdi3_(6YY=*Dc^*v&sw_d;d~W0AT`RuHaF?sE}K?3XFe5Uy}5 z4@>scks`aqBb_SrL)V2;Uc#iZ%sUfD;uU%rv(U^_#bPc<&UGY{UEi*Y?n9Kv)3oxP z1r}r@c?qv`s~%Ajyil$SzT))LYjUgay&Xn}nzdI#E>iivmY=(+y~KMT&7MH#t3ke&I+l zjGCZjn-)8!%A)U{3V5G~~l!&vdVN!g{X+++Ih9-KW94kvduq?>`-4R|Hi>Pi?) zEnPu>k%)<)HVA!QFE~W&xW9wTCSC>RqkI%9PM{>bd|BW}&iSJ&*2!A1CMV}g{vz{R zL{Y!#3e`h;Q0xXn!KU(MG!aLd?hwFh9g~kUTV4edX5eenKeUGV^p>A#)YfzCdOC}r z5fc)v?fsU}-^F;;=BKsM@Sk&c;e8sLGgbcR*o}D?>=kr&f4*u1)b>}GW+>lrr>?jC zGR7Srx&^XMT>Fa@P1OER4fJ0nN^|ed7+{JuO6+(<4xw_=I_daPxjhDl7XCMTGTO4@ zKZsygj_s;h^j9K{j6MIu;9s8fjpKtYT$dXqbJWNSC$TtN3FxW=AfHkQXKDHe9Jf7a z^AtJsProY1>LqOa^Mfd4j+PD{@OJyDsb{7oq8op`opw?I zYfFbAC_Q1d*<}O4i|?8k;6)K%jke`3i z&9krn4tM_`qiyJU?ih|eGsw2itM8m&`C+ddVBT4jbv{KFy8?Ik33Yin;yCVg)Yyf; z+3ME6=heSwu;F^cJz>v`R=x>CFLmBKKSX!(mEmLHO{{)4?u?p4q%E|KahfNbkV9bn~iTwHwxqEw?? zrh*G-=2yUZ{?XCEYQMit`B?mdq8V^#_OABJg@|PhUBovr=;KD6FVRCr@17o5Bkw_^^ve2aTGcgel*ily)QFJuoX`9o>5;U4#?D$ zOx?GK`I&>h-**zb8|{io+$z_U+6Q%Ui! z2n7%#$Kahs%grt4jXQG>V>exZy=jlXqX96d%=acs7b$O}t!BE-D9lz+3$-Nno|dIN z_31|e49rW*!F!D9Xdv3YnMq*Nzx7pao)L$8nFF)Al-yr?*fatd%>!IIa>zNg1JT{{ z<6kd;k8Vf5JfYpI^Q-#$x5X<@I(H!E=icAnNFxV5TYB)=r$)-|lA$BdWrHJkU)Q`d zQ^8dM=qhW#$<&XUo+_lAJI1X;^Mw^+JOfA$bMG6+SFI>lAL)uhiAm; zQ)pTxlFt*&kqw&E9yFcpa9L540`h1utE8$|D)CnMyqY?m&Z+b~VlxKOW+;yEFrN!g zWlA9j@X7M2xwoIW{O{!1Ej=6A0YU!itIbD**Xg- zHmfB~bvU0oT$7|~;#Fxn%PVFNs}^|mJvn>L#5j&mDe77%@aUs%zbIn_GB47THAp}T zmkHI* z9}JIh(p&w9w5+(ZbTXaO4v!}%q$YPX4s(qA-K_g#@vwomtA|gxd4qEQ60IefQZj#< zO_61&f>bCj#B-9|8x3NcWjGlZ|~~G@(EK{4Gg5J;=?ox&A7`^FYO~KvBPB=E}Il56G}d8gR1>J zb)GPG68?xUt>DLTFm=8tpjqgVbEmvfw7@@Uh!h+b#7B>ngnxKBYVRG+ZS-JIF0=zIxQ#To3J|Wni zdA4=qI7{f>2QtS@rCrqX*1Udff!weE=I4{bdCDs!rW6E{H~c%zn2Dv&3E7C zb^VPSiCtnsXRCnXq4sjOY$vKY269Fo{=a!f+EFXKKdV9H2vLnd!r(Y5xFrr0G=*X_A zg7i0zQRoZJ{;z-g{y!JJK{=EOttQH^J?^EO%PSP)eF;a*&O7q>537FxprdkM#3 zxBaQv+xG*LWf zJoCzU-9uN<;YX<=)c*3WwG^Ysts{W<`~1L>?+rE<1K-*rI5j*ao!0u3j^BP|^axjz zs@V%Hqih__JLeh3(#^j#r}`yzKqGoY{AtrJ_yaUFAQxPZde9`{Z7WgxAE#ys@vb*I zsr19ILcBJ8hS-nd7}fZ{{HCl-nf$%60-LF+Z>ells0MRU_UND&HLI-dGj-#f;Wl=zhgHWX)J za5`C^8J~o97&bi`5~|;nD0^fXD!X@oqx^qYK@IX6VxFlcbG#YIeJ`Trr-m0pFRJMr z`Pp?gYM#_Pp!`Rram!bZ8j(16GSw~f8Rp5`Zh^BLM*xZ{;ymRpe#+`vLZ(Fq{`fwX zuosuL6LX8#s&YP?WW^n48I_lmlW8R~PKyh6Z{PfN&gR?+ZLWf0mVqa}v;iZBMbBU@ zWt^^5DKgF*WLq7_VwGP@G}`~J?)fcpSoaiIdRG@r-Kt#ZZSbO_d)R*D$1ggh2ru-p zftEfyTFVj)+Jyc+IsWhFuhOP>E&eDZsRCx5}GH%G5Y#eJ+BSq@0OMFGeBl-d;f zt=)*?_pR{>xLmPojCQtu;8u+FvcZt!o0zmC&$$OW&Cu3yIGOdXgn1nKhIRQFiJvDa z>GKHkWY`|}Jw~DFEYHM9VJy$zb>F%$B}L5x`f~54gulDe9Zj|3!aEV{+A4g$cZ+zb zq1VGtYFOm9m=MJ+c;JGyYOcqz6!b6U3iz+m?LSnrJpDzThjRcw-BXr18ndRi_sd?y z?7zzIDQsT}jc`5oDJq^W#pgNNv`KeKn_d6DfRzxAc=pc%mZx8_?%!2be^(Z6m$dk2 zDk{z5hXtaxlj>c~vNfxw4FzPqJp|A~U8fT^xQ`)e?vHPELoOwP?_HO2aaVc0 zt8y%+K9Xzivsff0Bw4(+=jd7rKXcUK+_9+tWepojxlgm@-qC$8c<=XH{Y?mU_{<6X zrSWkq|F90lJaPmB9UkXuI za2>4I{w17nb#b($&G69!Sp3tC{raWQqe!crqtEPC2mw(?A95z^HI#xiL;Ze15v|=C zO;xW(Rv9nPLX;^jt+u^&mtkCwy8QTrJ#WH>v*}2Rw{E=V1&5iMGNLBCKXvlQPu*|i zg<+|uPldHU7d(Y_^n{IRx>g`bYe(j=%o8~p4AiTz;;VFe7S8Rzn!}1AW3O!QVOL%y zr$<>B%iQeio?tdKZTGR?i|jTpF9eJvpzT@9BC+B>%M*GvEXT`zuC$?F1buW+Fxyra zTCy{vH6#p-yCqmL)m{Q{c5g&XoK4Q$IRvgRW?u@Y#`a=5!sIE*HodoDd66kKo_F|E z6b6jVSHTe%oTjlhL(YC8qk8S=yY`>IzpXaZXq?yZMc+mVV9L29C^W5zQ|qP5-rwbQ zCC>Hs?$OE#9I!DI5n~+4cT<7(>WX<|FqHeQl~Hne!^Ab-{8_E}S#@Ea6&KeozRJM+ zpqoCsH}CM9MHBsY#bXGy_}|O#f9!m?l$tPOWY+7BmP?by2DTl6Y*wMXDhWPoNqnr@k(_PTioJ*~4A^2kLs#Dx8B~y36N9gAc^xYi(uCxZT zSDl%xiS~EF)i>XZgT2sMsaMb;gN8sfg%YTm@Gxtqmn)9sehQDWH}?2`-!x_Heizh~ zQuX+#Jz*Y5K;3#()w8JFRq=pG`y^~5gf}iE`L61B2D3yOEm{#uP3Izkub4L{vc8m` zm$Gnq{fHL)^P@o6`u0$tzp+vEKwO^=?b}Icapy`q<>k_t*u>sH%`q%2@r}?Sn_azO zbU3{v5V_JbLkF#mfM-7rV`zT@Rt@uA%f~4t-91^QX3z=ET*>br5Mx;0BToTK(N?3e zr^bjfKg7|-uo7)=5{A~!F#dapmpNJ?l%4$I4G>&E<7H@ir^3F@SWTNQX>u~UQ_ZX& zPcKwA?9vgYRfI21NfBPFT<$`|*IrCoh{#up_DTNq$|KZ#ex)i|Z{CZtEZawk*xi-( z)y5ADNq7P5wPzYYflq;da(*P1n6eu<5kkFqb+6eSEal@NMK(6ARU&8ZROgdtL(j8b}O32wUze@nion z6l&giNXnQO(Ud4thBqrS^t#{15G3SAbq?CR(a23PJ_-?twunHUkCEgnHVWd*f>`4+GBYHXz2=SOlVenJL?HznahSGY0vaLgfjx zKs%jl*@ZM2X;g6#^3qU}CmYAo;ryAYNybr9NNeNt-LL!O2{2!+I{wb=YGAm3Nuv6F zQ*0%{9T|A_?&TZbM!jzHsd9POr(WbVadaEw(R2yW^&x+0d&J$=Kay6FBc~iY{$}Nt z-%0BJ1!Ur%7Fb(!XP-leaF&N>xde~4^QSsCUj8Nd_Bi^^yuQbS$R}=}_H>ozzC-ux z6GsfH842ZX_R1aerL9T?JTz$}RTj*NIpN&0%}b7|a-4rxzM!_ar*1L?%IZqf?krDv z(ft4|w*j)yU}8H7HJ`$6NQUMC3?CR&|N7(2<}7BU2;p=>#m88*MM&k+NWBWVf}}0X z{lYsvQph$VMPj1PBDok?dR-{E`Ms8=AGO(S^0bg%yQpO!#HfD+3KOp}cK7xM*-z6* zJoV=r(?f0_5=0NEf46;B&Y{Dt(P+>WnJ&A1QE}+y)u$EoyM5h zFiVIf6l>g*jh{b5Qg|{JNg-`<6b^s9Lzr1MvK620DpV3AJGi!~S288Xc-rVf<+Ceo zIkFc&kbOYm0gY`|R;}(d zR(XI724PW`N~O4kvPK-2W!23|H;IHyo~^+Eltk$@)RR0bgXi=B(h2hV^=QY2feNz4h_?wMLD+fHBjzON>Od)2!Mu&{;!X)qpzw`SKuvF8@Kn z8=+X_Sn{*6wx8{|FULd;kKyCAl~-}5eLkxS%PlV#=NskJet#Cm5^~~nWmE873#_A0 zpev~j`Sx$a6ZFEoVTw@SrVE7nP~O7y!m#ZFn7D-J{ngSv#kk z8dlFE#f>8FU{e73exT6`&c&&TGU70@&w@k?j|dkq9R@OX;YAuI3bU^0HVpW6Xqc0# zmMi+Q@%CRQ-t$XkQVQb3S`mtfm*5cS}C^06^T_kJp}RNCcOnM^#>ap z>b%#b4T6l*<(I>y2ydi$t@aE2pF7FRHg07Et~joNy5_)sTM2+pvW9k1)(@|d1U{k8 zJVKT9UKRWzk4FI0+?Ta_p~!=o@D{`Fl7O^zC$ywGlFnn=n7gOyE}?Sjot2{(>~x9f zQvesQ!fy~Gei9f%`##NoKgB~^HabNM_ylU643xVh>DgTI;RfUGiuDZ8V@F^b&xwbxFmiBv#a87t0P|X;^zOL>e zTY6v`U2B1k0SXx|P^h#!rJWJ*%g;UsjyDAXOOeR{LsCABrK~&EoMxBrNm}xa-n?rS zGA`C~^u}K2Xf`hS*3-_5ZY92vL(mRzfdHvu&AaWIrxv(6+qc&t(sluV@E@Wb;90}( zEni1%ZLto;ZrJO*|5zfkv6OcCvXr<0Wq*e0B<#vGWh(??ZXw=4@YaB7&iLWV5>T4$ zWafxd#DpUH#34K)t*BxHZyicX?2yzABJ_owA+9orV4^rlRB$g*#~ThRiKyJL#KMQQq*5L0GL`Y~NbNj{Ui- zUwXwhn0d2ySUXfahzkL?90lL6+9!O|7j+yukc*$jwQ7&hHj+)q2OqjWaLr^3=}pDc zvEWGMcbrMTOpdCfAlpTL^D-u{gX$Ng328oLl7sd;=l34g4PXQO@-@4%>fU!(#=YSz z0{sOO6MuS&dcw$GPxx8E2;F?{=a|v~*JX_I< zj1}tDu*PUmWPMonB_9YVguv{r`HcuaR7Chrh*AcCon*w`u2#ap`@0Fz`a5`y`>VzmtL|LDe)c_ z>(wB#^$M(VVo@cq^*h+=7lJ51ISc$P%lX~0G2Q{*e;9XKs(=D$`PV+vxDCMmK1h8D z1f^3jtg&$aUaO*uFTFBeUP8c~>2n)&O z(3u&y|8s)yq^0*!gI621-Xk-O8+wdWFCInPwkYm}pOH(Fnr?T1Md z8o94Nsl92nbTg_H8bd-z7uMCFL?q-a0%5JCqEDukS!B}7AX6fkmEKdNA}Jn?w6f%1 zA$mI95gfk^P`AFPR<8xUn_7)W>Z3!F{bOv_zWxi@pB zdE=R$(<%`K9KsOo& z6mg$qgklt}Tnu5OV~j6G{ohSlE(NLb*)-OLZ0go1+OJjFwP*uM>0^4d}-2y}rKhMx^!akX!Ph$6AWa-7D-A(SWuB>8p4R!&>_s7F zIdMdxX3%Tw%@BsW2ImH*v@YA-(0y0Vl7WqmZFYi+)~`M6o%q;Sv*8e8D@y>SYp*+6 zfaLKX>K$i5*KKwXp=6lU)GmIs+_eO>dB^yv19`>extq|PbP#wlh*27Ft91UNeWWH6 z*A9`RoSp-nF!<~jH4nxfAM?KP596KvIZwjtg!HP}ODGOTFo@5pQ^sn>_6~Ua)b?CK z^?VtgWA<7tb3B)e`c2#bZ;j#qo)bse=!3E=iu+t+|PM4nv8H|Exq%qIEGqB$a=7hA=D9=SNpV}t?)}`sRfQR+rNomQjhvb9XlGpX?3w-*aWBcpoxbmvn z+{Royu#o{G2#?EMQog2_FTtesWo2&q#X2o!W~r~k~vgLYTK z9pM=^5q)<+Zoih5b()$}2f+u@gZ9M-HvzHQt`jH0leE{#pY8Huibazynte=s@U9N9 z&L{tf%YICS&*~Ag7e3d*x+{;e1Cf=uFu8~O;&7vVl>rIG;lF;1C4TP1GSrJdH> zW}PNmn~X7XtP>yatUBdkzMaq}zj*2R!fAy9n)iOj5U}cv<{eDa+hNjPU09o|@x7Zx zZaant;q9+oQ#PY8wKi1=3@m5-rMjT!Jo+r zCXaUmm)BHY?ucu0vcKRDwH+_U_h+Z_Kj2cXZ2npy&5}GJoOE$7r?c73_DCl-Lvv^Y zN%spPVkp9%Zbibcu{ERIjj^n%EWnTGs=fYY_vtmz3>t5<5W#in$xD`+{FV6yJ9q7F z;5PC-_;JR;*xaI*{iC?+zF*cZSIJ1p;R1DxNV*bQ6LjyPrrnHzqU>J)CzLD|^xjDT zG`%k`dQwmv2r-z(m;^{ypCKt1;`=+(x}V_bixWosdfv>6K9qACSQD{H1a+yoe-}N2 zkd0qf@Hav3x8%UEf;vciyg#72ckY?B!^=zl3!oB6L-@%!&$MtdcY0KLKGvxrv zf-StHrsd^jV-k#ewUMB(y+=l$Mmk_Wea#Gn24;WrJ6qiM z397u7wY73;QFOAt-WRIYJ64dk={+}IqTvC>o~<=KD7bvbALr-iv|XOsPxH3OkANxi z*#5Apw~0gsGA@xza?rrh>E8Wtv!p#SHBNQ#o7c%+I2Ki6&x;^cM83wS9NIsXF1qj( zkR;SH-{JEB%ZR-j!a0k0p+xa0mv}7o^5g=-fyEo{|M}O? zXOM3v(}u#^XGs3`*DV*UtkylAZ)5Cr=fAuXfo8P@{SLa!@=-^iqG8wX?IdGs6H*4s z)`0punNvR?^Q9xKfncJxAx zdaUC_EbTBj7RC(&yYh@)^a@$BAhD5Qv^vd2c^JAxnsnJ1vF*yNGM|DoHw3Nk3(nP4 zp_wZ0RRl&Y2563jZYmI9*|b?3BRX3_l(79ZqH+sw{aXap``J@eHvMti%iBveQywE@ z=}Er>A9d-mr~i3a1yl#~@CVfVbm6jee1gii&qz;MExR5V7{(%DWI@`~PiJqCCY6S| zW2L3hj~#<3u@k4MkLMR!qZe>?ty?tkMP}4*eaoSgtaJ1D1o^UE)GXZbRa$jfx_irn z7x8isoUwq(Gf){E5N#nB`ps3y1J1EYudv%8(|83Dy1xNx`<7iA`gq$dvTbR8e}`Qa zKZ5;n|E3+>r!)~?xEbiRDumP%v;uGdrpWA`%gUBrw>#N4nJ<`m3v3ZND(C~~GSCUb zFZ_jVBHzxsKBVTEIeGp5j2CO-`(k!rv*+Mr3bPnw=f?5Qvwt(ldPYn_a2Gr+{q0m= zxtP)fOV@Uq;-fTfu#gj5Lf|bK(w~kN*`8|~l57!Oun{%?^E0D;U!y2e#TUH7Kjf_V z1bPbm)K1?%6>*zfo-fU6pTZ>)W4JzZ3!7<-E)3 zjAPd|=<;*~$KRgBw7w_+{=lqe#SDE_V_vn%YV&1&<{)#Xr0>>8tasvIa=MJCZ3|2ZVzK1)JypH^Mx<6k$@n| za>IY__nc{b$ApxbrPOkf?+M#y@I*2wT_m-yAB{bu3Vg&P^A^n(lc0+i^#)L?(2st8 ze{j*MU-V_xR@y7g6XtNymV~rrivTdB$VW%!Ae!Im+F{6O_bKhP-^^Pm-WTd+DBjFU z@mR@o9Y5Q(Zw5Cr4Y4Zl49dt@A~O(#_s)eiG+RlJew?3LgN|D@CjKbBOYeGcFBOzB z(f1Svb0Q|WY`1odt(D6tHJ;Hs7B94|(>+m;p3slGSTnu8Z!tOu72D$zcCo^6Nknpk z8!7^~rT2u|mSzUVyCE}`{7+4bFXD+cse=@@ssbSz6PPsn>CUPOWy=ifmc>R;u5#{| z$;Ll$^hLZ_Na-nL@sw2n>y+hq->=VJl(H&Ku!5cjk7ussr=rsQtbt+TW19bId|=6b z5bQtv{C2ufBgL>D@mTAgJis!jE9f&{q=iMSj!|#2y)M?ms#uzbacVmp{*I|qhPUx% z<8Iq~!i3_Wd9A9?SYiOSUkO!kFyTDXSKamBu1Agcl`|El-kEb!+RVW zK7WF+Q|aunG9FQ%#{;!i)oDbuXdpa2oTeJsGDCGiC?erhir0@$@Mcn%$41T~ob&Z3 z*O^XxGG$+LhDfmM^J+Uo*T|HwgNJ*_Dcs&PO<(_Afu6S&5KaE;qBW>V&EHDaPz|{k zhMd#mpBHn9IGImL@iufGKXBvB&4)&9=ZRp1LJ-{@`(ZLd)f0O8>*mfz$4ilm#haq{ z|KAZ?U9eMB)^?ZaBxC|NpnhBN@F$Z|DsyVv1fAhs4LZX1cgA^VIZyNJC_csmf(KfCbO{zoKFqp1g1cK;Ht!2gE&1FLhR51 zt5vL9s~j5&r7IyKLk#xTNu>d)&yzMMI(|b0K;aEhL({29Ct%J2)718=^KS=CA0~b( z2vIYlgPwp8M7D^(<`?*$)f)e6SNr$FUG3PegC>zR^;?7A6VsXZ#m)Mst?{qv*2?;) z=bD0iHlu=;#)`-4^JhPq#UOqBj+9tq)9wJB0ko+Xv&H@jhLrxyNUe8qL+)^m(4Vl7 zgR}edK)kc4+;;IK3xE2xKz5}Bun?UT@OFF>?O^ci?f;0rVm)<8U%5qwVkPrJ!&7zs z=82p}B+XDu(Ccp_`{cDutt{g$X$mN^nIgWFw`>U%`Sp@IK8z*$@Ebh-@3d8YcroQG z0{(N_ii(O8_}^iZ*pXccdjCZ>sq1}4N$Or&azA-lHh$XQzXSGrB69ekuU*rKnuqwY zsPU%P>N)Z>2%^e2eK1mHP`^G=e3lSlfWB7{=>Sg5BX3RTYXA_O{v zx33wLd@=v{eG0^<_oHWd0|Ye7)UU3V0e+^QbiuCppahhjiALp%B(gl$VeSkDKUr5O zoH)nT@Lp^5@T&|2!Lj)SrL|4YjbDqh{Nmj)mhyKSUMsy0dLxEO9Rh8X>6#Q5)b7al zPjt5N?k1-o9*JQPRTH?Hf+dLd#6WLPM|8}v2}NZF%Jse-$x&KUP8-*p5|_V%ePP%L z8tTVPMv)P+fRK5wd#ho6pOAC@BI8Dd5O(nZB;{v+Y}RfAEUz$yj=#^$Vtwh z;QW6ijl%t9XsMd;swcEJt=wCQe+cXiy9R~D8wN*XWb*WX9& z4PSU{!TEgu9%Ir)d$+6ChT>cJH$t>-ho8Ds+iP96t;u&!sDBr8y^MafC396dgOvG< zR)!zv4qWy+)H359D^PZ3BszCNN`K!KLYog5P5=#VY<4ZLwqsHcHKllfzM4{;%qMy> zN~|755gN$88NRf*CFq+L=*)$=^?(+k_|Ca^ThiwQ}c94#VI!stX1 zf~z|JgLYvj|EILeYg!(k{{hnFlp{S4=G{#mPYCgX=u|}B{dcG_yu0i9m9D_slH%IN zjZ>lWc0O4b6=UUT)v6}Q1V-8A#dk`EQd#pH5O_xGBXow}+p)ERt_xXpjf2nM+_Uv8 z2Cdc6K3$6pJ}=UKM7mJsN=Efg{z?HTVWg^pup=Kp*$%;07Ea$IuI1MIR+?)$KKmrZ zRdZ4I@wSa3; zx`pmYcN1a9(-2IfDMRXWa=8PB>fhatw_u#`rEI_VJb~86BPib_plOmv)8-hxnxvdu z?i_{v)n!eott%*c(wlGJo=)|8@QV?7zqiPBRI>BH&x$>okxbOAuHIZxbVKg;!CFp6 z_&2A|@2@-BZ_p~xI8RiZtzx?S3{K5nzmYNd+<%h7l_9Ymnr8anM;t#i!2({&`Vs~F zbb8xsJ!#}Lm}WvlBZm&sFSy#~<~gK4Iyg{0f1b&;e7PF^oiB|=1FHW7LXZ~nj4_Gp zxle}LG&(D|G1V4}DFIJMJ^Ws~eSacii(4XUOJtpv4@2Qn{x9y{JF2O!Ul&DDP!V~> zf{1{Mi1eoPA|fJPy0m~41JaQIp%)cJ1nD3IkQNZ>B@jwLlokOcNDE0&LJ6U0LNT=5 z6@0(D_qqE!d+&4i8RL}v;~0{WWUe*WoWJ?}o-)3PCoX#N8Xmv+{Z-SMhCzp!a`MmC zC(D673oZ&zI=#+Znz{K(HxTyg@N-U}4f=0!loeIA0Z4P@W{ca&Gm=fAGYW~0nHFY- z2tgRU^Xx6shUVI@EZxt(XVZped=23@Xzrc2t0bj+z^8c?d;InqmVfyK&ekDh5M}_?n~rUu4k+cL#oYX#)3l%%V&++Fh!nn2YO`TH$TXB z)CT~?)!t7Xn*XPO*?aB32jz)xZ49}}tNq*UpJJ-Eyl<}!t(5<#&=AW&Yd`c(yj?4Y zSGy>GA9u5@pLhLSu|F-oH^ln|?PQCX2W}xT&C&a#=t*&rshZpoyQ23^gfH0|s@pS; z3WSGBtEQ%8dE8|cU=03Fm>AhuNb^y#uGgKNBfM?iGur1%CvUV4*3;s3$H)@12`^9f zreqx2Zj)>R$vE}gCncUSOP(wU{^^aY#t2W$lo6ixdlQvjo@!{D$`KoULAz=nSR*R7 zRz(Xp%&5GL>Nvd*gsA8;fRL!Aef>VO_!Gws&HSWm7+S9c`4R^ znLl&BV*_?*`xwrrbs_KMR#Zxq?;!)&Y*EvX@T=oaeJr9~!|O2~8?(nP1ObKqlu}Av zRMyGpM*{noe_tt&IZ|=u0Mn75|Jwr?IKD62HhNXw)hO65PlF82&EtwLZv5NW=MHq+ zC5e%N;KF2t{L?|dRoPcw6NUUHux#x>4IAr<*3;{eeZg7}c{eKC+r)WTU)Ek8Ggsoa z&U?!$4Qf+O<*H+EF;p$3I865s=(R@qWiESarFQncl+2TR)l%6U7KmLzuFKam%MYt{ zK_=|s?jxZ{w-`*>6BEn8-wzv+mk9X06kQKm{r6TS2yZq0S^r<17r25$PtXyw!2}7u zC(C+ZhYfsXAOb#C93igb@~Ax{9JE`(=c@Ebec=&_-%`_L)XI$e7GmD39KmN}(SW0@ z#8+)6f8B10bkf0alnxpm6SpTqPn&K`KbGBUg(%FPzpyG6s;)50WE z16lpNzKm@Oea3q#AqrK49#Gnr74k9cIXZ#A27y&CeSd~X3xd5}FGznH&ez=I`12RH z*Ythg393<;(iUZ$o)h=~k;+4%VAre_wN*3lKZ7q=nQk6Cbxh%aP{-W^aHkJbW{bag zRici`8gcmX@!B%&ti>3G-V;$at#1aXiN29MEx?W zXRwztoWGcLxa(Pi#Owo)jM{RoC?CiD7R9tI(e7D`oTc$+PIo@?`Zhv=#H_r8}?QhyQeSXyeDFx~qp_4DZYR zEV4+y$PkHz8BEPXosM&?YoGTK`Bv0!v9x<36rix|{$Nj4F9h6A@a^@atIOB=!3T|G zTmBG{oF6#?)+6_uuW_KZHi4ttNckQQEtIB3`;lCy&+4wW>o8`u5n~4>{wN5o^&1s? zsXM>rII9T#Iq1D))>^u(1GIv0>Y!BC2-;g&*cZ*Jalk&X+#8*N4=u3;yCQ8uD48wd z+rdi-Z|I#jUrXMNZjHCjOWMBXIiZP5AFHxUaUTmHs;ZVTYX)yYctL)!6g}$3@?X61 z!z5US}si1!JD8*MZBG;YLQu!VTdqwn3I-qnh1T@xDy-NU9G zFys?~_`bBn*`_#xL*n}P$@-Z^F94Ie_AR7JDBAG)O0NK=D3k_Y+y$_iogcB3hP-C+ zczjwcFoY?Tf2aP_lDc+VsIgiaV)i>?IbIzOPxCZ1awGZ&mFls6UmCpGaR*BQbzhjL#d4^pgH>C}T+HiR#Y{`q$i;eKN+!g$n?Q9#k{Lb_23NUs`+&UaY10Q#jE!z#{Gx(*QC zGQ8rT{U;yhFUd)I?LnZAKQ-)8KvvOYv3*B3-u<(0c?RGJ2U)aA&sUp4&*Rh=(@I0F zecBiV!;Yp`XPLQU)x)e;B7)%j)z?rLBYuyjTsBhk1mA9|2d;u1(S2+)nd^#Q$ZCIK z>Jw-adZ_GLct&U ztG6W1B62}~{5u;?>vUO}6!VU<`YVqWlLqaCZq0ZfsJ~PZiaLC+EI^Bh^i(X$&@r}H zl8HdpdLRat?gJWO>L!o4{Rp~W#}{yc({~qaX!FuI%YixX7JkPM7dGJ=WBknk{62pw z{^N48iRUNFc0Z`O|9JlZO2Qk_@YUX{CFss-An0y&%aM zR2@g&r%%VvYQ)?kFI69;a<WDpHpUhZmFy4_ zRWMqn5^7#G1XcYFWRy1wtU-TjH9mNW+Ovx8tcLJ~f?(w0p@1CA^ z@~(rQ&XLaXFMpf!S$x9hHmQ|ZeDMq-JLPD9&{lVI)cNhj-Q@AqVH{FKiD`zHN5nF< z0U*oX5O=q5L8mqgG)7ro!#RRma8=nKXVhN39lS;5tfQM`T+-d_I3BHD>l7fiPmWjo zALx?irG4W+&i>vLb9Ee4S`A?d`Z*fwM<@BR<^YXAAz3$rGd6kB2RD~bZcPs$h^mSL z^MmX=Vs?=nCx8th;$Qbk6>MAkYQ-JmELFr!CTo`iBK+*HI+&&nG!#6ChnV@uH<9vV z3=9KQaot}0cP)44v%$y-LAEy@6-Y>}IP8aYbmYMAMKKl02irr^!Q76=1GGoh-3ZT= zK|P$ny^2h6`L{K-OXuKUv>(cZ*RfuTcJDt7)56afq83pnzpA%X;k5(i<0e3I9v2su z#l{pr1I@9~FwgqVrj&2spGumWo|k91uiGO0kS^if5_nd5LRum*-d3VHagAz%4822a zLwwwMZg;lPYpv(bqm|zFVEbR}*O%uL){AUP-#1m5ya_B8IBZqjmy@nFxLx>#Lk`Nq zF{V%RGqLq$EtSymthtEWg@v<~-ezI79;|}75LKN)WBlAdT zrgntBIWW;S^JroVsNWB-4Ug(wK|oG3zhX!a?|$ER_+8r8pNg1`r2r^9yZ^wj##1fY zl;Qe9qbL+0e?DRejuvs(f;YVG-`?2E zG1FIqgFaAYaxCHT$@#~P0UE=7f+qPw1L$Bs96ClGHSo^cC(--;quTqU=`*Ynpr!p? zKIPat9aX^5M>lh#;8p8AItLQ~^$uy#ym@ii?~i`&mJ9xGOA{tI&%dip6QN22iz?7X zB^JPb|MZ0JEat+P5`d&1+?VVh`9ozow0L*DADlz8Q>N z0(Abvk{i>$-%ZMwWHtQ-q06P)LPCRJ=W?TyM_3~G}# zn?Xe0${;V1>uO=%VZIfprNAoN>c?rB{?E4M1$IP0f6BY(WK2{eerv>CA+N9sbMm!U zzF~0HM{+_Rx^$hpB@ux5ds|yeBc#24uK#GYUMqlw8}Fvg07ab%MzW7;^g@L`eDnNz zu#Th@%jotnHK3i+nN7jCj}fhROG2H&f^Yd#d0stRH3!;L!#=?7C!B$<{kk}*7{1kc zqc6B*Lg!l7b-?hjjIT)aFqNqy@t5BOyWCS{oq0_}!}nC>2Y<#?~&CM{R1T%(oU4xn!-G?qwN>*8F1%-J8r%zJe$=8;puX9ZV52G&+D;8fU zHC0w$8plv)#<*Po>t|ZcrAx7Zw6LQ_szw50|K2t=)_ylc=r4fD5Zb;|5bE1!RT6U} zFT9#8w%u8&;^%9uW~Jz!u2uXvtcH@K5;QL#AOafMC;~W)EBuoEF{qs{S%wR5Ej{?w z$=?vOdfsZLm9p1y6{^tBxb!g90PO+#bZ(uB?tfc2LVnKg_h8hKW%zQ^n0Iz@!ehU_ zR|@Pjb6FWAeRe_3QSM*W~Kk z8a-O5fEmQ6h7Jck2ksMY^^kz#Z2O@4I`<7o$x3)FDa1dC`N;(0G2#0-`9bdbP(D^{(NvKKtj_LXyaKs4zrAeC{!b8&g zS|~py)l;`KaxApplHN;Nf>MoUJ)yrnl?4om8vqra0DxBXPM+BEOq)#=5~lKTsy`R8 zy-NR$r#aER?aY7BYgsX%d%EFw?h-#A#>hOn5Gu~qN{H0J7bAX;ap z;zY`3b!hOYqTPDgQ%~>w2+>hJ__Hhktb20o3`eIE(f0Pp0y2{eKA!C@I&X@-jXxoYJ<4}6Z)*F)`slm>E09~)7m#RRqOwwu9Yo`G_{p~d(rFs zdd|G}QwP?~Qm@IHn^WH3sb}oj4(;A+m#cG6Coi8p3v)2^2LT(UO==8aDem=l^C#e* zbhpzptmZ9W$4Ki&fInARlT7L(%iEP$Xro|f94^-_>5FJyctyXDCO7Z#(!2QgSgTwy zoNK|TqQQFE8IcEAHg!-zKUZMRVbb9MfB(D3OnhS$-i;fmf_y3 zSn=sipmK7yjSMX>6U(}IZU9Yt;dMQ0-@msa5wPc(bB=HdLa`K!k`|2TD}|(rudnLD zip zn>yKWml7MgnN zs=)8<{JRx6+G$L)Tl{}Q4St=a+nyUM`;MEZ2jh1erSG2HzOt7PywvEQk*V1*<-^w$ z%yGY@LCbO@@L=ALY38i>w=or;cvSy5%fFoGLYMH`8<)kPU{9Q@j@m`05j;NK z&{wd&e9=J(=jj!cQv%I0o(CtsW0Or!=dRL`q{jaEz!3cT3>#dZE@I}4_)_5u3hNp) z-W%GcybfK+10&noyoI7MxQG>=t3D%adt#gLfvO_*|FL48wBq+wP2melb@NFOkF4sA z?I&AwZ9kvhAdEBAI-#kmhP`9z^zLkU)%qtunCbJh;r!iqBH0gBcUkeB5*9Y)UK4AY zg%MvIck`FxT~rk24E>SywRZCgi?W7mzc@kdI(*>RB(=O51(1x(!Q?HUn$GL%!@ufv z0?K8@-xmo43boA`Shh3an76x!D-Ka#nkak2LmHhSEvJHDQY^#kHqy{chwL}rR2kHD z0aoQ;v5MA1-D$U|j4M+M$ni%w?gp`Bj(RQkb@8hS=T)vn$k1P|h5{$JS^t`2dh^@n z3cG+Nh}eY~*zR4imByl90XoyH*i*oc}6}ffcQK# z{%L!9u7#46lY|!Bv{`}*+o=gq@HUR&AHDiBy{B0D#SFOKN1JtzfrqNhQnYX`eN-v+ z{tiTxOSRIh{~P$6u+Hjj6mMs2zB)q@(?67+8$Sx)OP4GT4W6X zpdY|`*F7A`QoS>v+Tny zI=(>i^8OOROc}TU%Yb?X8m^2U9+~fK^H& zJ2SoHz2m%EPLpHgXW@`_#C-bFxZxulgSykS7f`kyaTt9_ddfn4?tt8*titAS9L>s0 z6@}1O{UWB!ERYS|I75&T2oH$@HbOEfAT=~3VOqwck6ksW4*ST-^Ug+yc+M8hA2b;G zMMER2!rYwWAr5jQO$CkiSaAEBRcKfOIn)QF zlbF%>PD0_pS^G-;*WyBC1H^HW)pz|<(pjM{L(oM%luA@ar*zI1Nu>uY2xMEFL>|d* zEsHpnz{BOKXCZH$yxOo5H?D0HGTc|Dd*q9{m)!CN4kKhTKG%~p=jH81P&TwR^y3}6 zZw)AAS!`_FPC|ilTcPZ4i?X4QyO!bC@=yehX(pj=(;>7TIzx+b62OeFxh4C*e7Y}> zWpjCD;JWk|JTBx2}N$vJ*{cva3jjRdYncoq>O6qj| zmqyot944e*Vi;MeR@%<+;NmGEa|ovX_~mf`ZT8uUFMf&<;#z*f$Gp%RQFC133bwY7 zH+)CHT7kRdQ}k*qYVF+ZSlVn0=GB(UMCi6o$xJ`8YN`?Nz zIO;z*`NU~-MJe?7fB8AHDZ4ai6gjlaKcAOiM3J2fxH*kc@~PkZR=c+_F+6$yEI5#L zOb-Z^X(-rbM{P8wa;tI!15!Bqe*_SHZJHQzuMt_%ci1$UC5I(~*E7}rcE4Qdjj#jo zuW0QK;WwrMM^(BD$e(fm3|jL5e1_{j!>PtF_64MD+i|u)WoMCqo>9LC^a6?0S+3ca zdV?~&?`dl>cHjw)fZ3#%FDZTfR&`<`F!IZ^d19wBs>bwJL8H(t7cr0?WX!iS8$0NK zi=)kvT54a_E^Z%8&GLi2B>@Yf(@NtKxkmZX9xJm(`^BRS{Qb^8{tmGLp#lsl?XXFk zYegrHlSpHbpgxG9!~hnd=`W=V4+OP4q@1vBCaXQRssuEnDMTs%m+^khn{T>fe^h)6 z-|OcQ@3UM4j8dPTivhHZkg)SM@@e~a8eHe%l|QXBj@UUj|94|osnAnlX^OZvg_qbj z&8uFVn)xd3e7@G|#;Ips6JMod*JOB)Q%Z1V?tY4HI7qOKxZr53DDSphTweVRSr`x;&+k?M_ z86&5|h?Qfltz;S6^GO7A&r9g1Lo5b+EQ`JJ-VU%A2^ww3;P3IZzvDPv!td;O?p^r4 z&M6Vj&%R_c6kLdY{X>C)14%j8pX*iFAz}RJUCO(WT0j$`3z2&oN^w&b_yC~#OE#D7 zTiP>PFD79_EcsOZGbD>cjn!5?1(uak;M;(cQXau=9erBlAz|dO%1IM&5pFCSC7As{0T4p^NW=T3OLSlKov$9dy zx*+R^>I#zHd^ypyKALS zLf+v|JU*^;fDh9)kX~H9z<%un`EY>#>H3RjWO?+ZE%(fDAH8s0a&ePo7-lrHh_74!g)C>%UWV}}wW3`D;8X|#XQxNJ|px@-qE z3-qPFGB_jNt_ENT_1=ZAa)<8AduOc#%pctT221%PL;rNRI5$((`D59=U-hZg71#de z^+;L+W_1kvkh4qv_2Kz%g_XB~E=TFD)O{b)jh`I~M}w^W8QLh-(2SC~t#?A_e)Pfh z(r&2K*Nm{qu|qWC^|=bL$vlnL$O@kJX$=oG=CUnou~LW~2m9|sD}{#uE0<3%PEF*< z2i_J>-l3KLmDngK?|-qF%XgSe($%x2m6@c~2S7 zXB|lE)wk$HRem#C02Vk#EwXkO^uM0lpQY2XzampsYS;Td5q`5KhEo)2U1%e$?+g6v zSU@c!Ih!l_Q#!SB2k0n{V7p>cTBagRR@bBL@~@18@=GBi9QNPHk3k&a^Rc_WZ@YWz zy(o?2x}ue8r;bb^v_AyAP~J2U9vHV${ntvWS5eYA!9yq!|i?S#`xtc&K}u)JQZ4o)$cqi&uFROa#&h)*I7jfz#(H`^Ilbp zwr4#+{OWR=zg^7pEf~-SbmlO9Azq)YP_uAEVW2e`32Jn_m_VJua${)DSCxf)%Nd(-JO?v^0_ zsZdL`WLdvvqFVTn9*M%8w29}W3ItfyIgy)YsB0~*0PiGs1+epVuJHQoK-m2iyq2lR z%&x@wuK!Gfs=dSI56dx?sO)5IpmkJsRrIaPkrVhe>#W}_Je&Oz3#ZbCrYVXV&9_`` z#ptx)1XZI_h^T-Ce?d{PQ5R{#skTNdkbeZjdJ3E6 zc-;(^B05(X@0FW?^x3yvYeDyvWADF6eW zE#7bJQ!q8x!ww!?ID5l=YiwO*=1LayaV_d3RS)uP@00p2IZ$WsEMq;cm1dN*Oae#F z*#K^-@HxnpzNXo4191`6`woAZku~)`TL7^B#fgcRCYgR9*4aj`xhpZ^Hk*+CeMp_O z)YS~YGG;5|d$8Nu5MAhk7|;HvCjX~PSO$&4w8*Sn&#CSayxWLFYG@+?q@KsH?@N|I z8@qAT;oE0S@{Y)n$ZSm0{sMqHx zR}+!q&C+Z275wMc5NLOk&o6>s`=C54l{whAc(&hqlb2;=-B4dwD+)!+Z5F?`^R2Nr z3&9+bJ;y)my)&}`%r9H`rC#>I>%`^r7H7k?s;Dl*&FlG~1B6-*Posm@*aZi@K=p#k zGu!zM$YPtN(uODXqv!CsKg!*A;|SVbTvxnlxLwY6v57s*Gm4^mVSo6=M~8s`swK^; zmd{v|f}+BsBA)kN-4^G0&lN#t)4mtR!hcG7KIUvSzayqtRZUZ{7i?w+7Y})2MvgDz zim)R?uAtfvVUxf4sV|JTVry2{N<>UtHxrXgJdKYfr({7@&*ToirL78#-cAdF>>*~l9G9BIhgd>7`BO5zD!MIcvW6=*W{?(dQc!X`zqbPSRA|61_iub zOjU0JdZI0YQiyeRCaXSmw$Z?8^s8|q$l&YH6~$H4*rT_X&}`W4M$iW3RKdr!!}kIFw#~z4@?CCaP`R6H$W~MZ%4;*qiuH|igit}H zs{S5waY*&dk7FVP2Rm=_22+6g?Nr=|@7v1^Hv|9XX2BG~PnW(8`-Sj(E>(v-hDN?k z<}76g2c$!7USzJAAorH)Eyru~gO5If%481xbh&lc$~311?=y)*6NM*J|t9 zB$LhREQ%gYu}Ush#Q8f0!3?%LCh#j`b%^6i6{kXuOdfrJ_HQc{ z^H?Kmx!6uF`fjym|LO?sW>X6Kaq#K?bktZht_Tl=$IeXY4ahQ>W$EI!aKT8|n*W6h@qL z{ZMw!S?;zVoi7_}%-JA>wOnAe==K~>81Ly{Bigs^+}|FE%xBC2vkBPESAn*vdoj=v z89^`l;T2YRc|stpBxfr~n&Ssv!kith6(8mrILx9lef|<~wT?GF`la^MJ&I=Lm~fO( zvlOR1$6Uf2tD+`w$V;-a5|gTG_zuE{TQ4RA_p{WmDZ)hi3v4rLm4}F({9m|r;WhyS z%bU#agH>0cFn`#kvFN$2T1;&@L+btx#42(_3igi8TfYB}Q+`99Osa(E#Hpf}qA?`h zF?I#@0}i?>u56>_~%<@(TPXJiJ@N#5@^-_Wr;%ym#{C(-384joZ?#t zn}WG9>soZbH%B?yM_zbk&9jFtFuhj_3W<=-sdQ#37_+-OHpOK02{t+tEG$hP0fcTK zL#_`RQKYGxfxY2l2QjZ~14K1w7Y+cP0L93+^FmDe%#3F*zF)01>t>{OJAp$uGC0Uy zbP*5Uja5TDjRFHL55)ywkOrz|y+0kQ4J}_5ag3hW^$coXTSG`rdv1K&aH0GtH_-?g>a?`+M&BQMK6}F^I#j;l=kx zWCTL#Pv=L(88H9cZ2TgfwED5trCSyLYvsFZ$=tNyJRTOGNF4 zsi&9{y8m`qW@2)94unvKUwUVR`^}MHRm3+sfS^7Lc9kMHhhP@3x5(6$u#Szo6{eG* z!D)*cTI!L9LeVQ?Y`xm&U?{+T=v?T6^ks_7s(8lSM9ES7Lf$stp#8`O3%Zye2!iQe zX9hdlZ7()ewb`YcbH5G6Zp&EuQh7leFu^oQ)gZ(+(}M7-Cv5(;iGi*A z3=z3otz-+1{8w>J4Tb!Z+cRxXBp*{;@glkFTD+2)+nsfZw(Th2F`kIei8&IBzx6Ns zgq(!HkV_{`s$}1(&5)HAw>X`f3@^;>n2P?COnj#on_X$d58qRHR`IxL@Io+5evre% z2x0L!apt-IUhDDaI>6@l0s}=)uLS-YWR4`=1`x`~GNOvv=cR6yBZ3cX*8P9*y{na( z#maI#Muwp8^N$|fAQX`WD`t|7F5G%H2DI~TF{%oOV_BoXWMMIii7g@fJs1kB4zS+t z&5RLVQrDMFFk&)t-E@gtn2P%HChaWDir)S8~}x}v$%^r z#^X=eHTqVc3l^8c9><+@V>YZT-OBN>V?bpczA}gH7F9TY&eo=`yL)TMm0t#EBw%E# zxaTgs4P_-K%)9kqs01Uqs#zS~J3^JS9v%QPEkUM<&zVjbvD)}o>#&ASQCE?@{Uvsl zP4k3CrI2+R+-NcPIaSWVYNX+!3Ik6E0BR9!e!yfuqjd`o=z+Y&Ya2w$&I>#NqDm^m zbq4?$9gi)?uqd!Ct=c8}WP9;Yi)*WFDAzUJgVDRV-!e=Eo9 zoy##qym9mJnsj-j++aYUeD}w<-ad++zc$O`s>mfQlGh1+Arca*RyZE^y@blUX-qqA z+~#O~xdG93AP+EAt(x5Avk5VLy>J({nM$x}FAdfa4I(gRV27LE+5z|+U{f67_o?Bi zN+yITQE|xxedgt5EYiI1Sv?Yf^%OYfzYQFocx+R+FzRgbI3s z{saT{Z3!p&zXROnv`LF~$b2d$Ee1R2U$hwA7bgFeKT+rHHQAQNrM560b4jU~=Q+m#OQ6<%HnwLZIQc`w@#LC)NQm9WJ{!dz%dV z8W5i7x{|3I#<$>~#z)_Qch2+NOx=OXx)E=0RFQ+d`Ul(b7^otDMkN4I2K4;4Mm76s zNlV9^{5V%`2dRW$_sB{R# zG=>QtaC_l$Mr5#67w_LY&IK@XB_kG0;6vgB}h-;>f;pNA&}Y%?LOD%#5%{ zxn#+nP4v__mF+eDutAtS24ix0`=i9*T)uuy+b|UOUG`OGXi2Z$Uxe@@vg%GOKLe~! zDq;Ouw<^15Ws^@S_zw}-dGG%kp3lJ+xGsbyD0mBGxLhj$4eLgQ%Wp1b!@_$nvluRbU*Fbh;Ce4FLbNx5|Z-j1=4k=Dan4COO z*H-_5lJx*IwfonE`PxR*(Q6PJo`8@QbYrcqah_qmsE}-pP#N}vkOAAflg;84$pQ8+ z%QNB?w)f3|4KoTk6wKv!?H+o_bJ=eqe9x_aKOOdNWlADWA}}=9#M8HERLKp~3>Y_G zb$vZjihVq0f8VD-@Y{fYMN%{cI$j&HsYz@eo;rz3`O2#-syhtu8dl$2w0g^_zB1{+ zo1o|BHdudOcPh;DNwCg4OUaijkYbUCP30S21-{*k!A}<{FrpdWEe)=<)W_p@2h{O; zGxwPHE(77{pGv4~kzR`9=UE$B1b2oLojk1a13UL$$Y{g^Tu2DFYo`(DeNb_F?;uQW2#tx@HKKqC;dn#F%F4vF+{?-y;YiCPlIgT} zJFE7sZu1IjJL=7}3`&*!y5=sL^4Y3o8ec`MpwkeG10A8uxG`eImeEKye_zDzD&Z8Z z*|3Uh9Cb#h0<>Ao794KB$qQqBaUc9-CvkRYZ&C8f{4N%)p5(oUV9vJuw3`ju+opc> zzzU;M5XzKM!tS-pd3#8uKL2Ubg!-P=j+z4Jpzr!xmC@Lrh@FdrX7xV(yT1gt2Zz|@ zNUU3ky%ouCWOG`>&eN(-dh_$a?cr@#VQd684^PShf?mSq;YaFtl`;s0GPCH6D!v!R z)kSy_I6~H}%)0|YrZm(Qqxt2}JMqL7h*t0{J!z-Us)0|rSPR(R883(PynxRvhQ9X9 z(sl^#giQN7yPAE|SiP50(n{Z|Dhj!Dt@^QEc;Ha`dO!WXgxa=^eYJ4&YY59$MJt^= z@p^iM>bH@Vv$IEtxV#xIPFbtVMKuTN;RBh?GrpndJ8ZPJ&l@o&N&b43IuJ!nr#kl2 zKx?ab0!#YtdLnEBnKnjAT&^9PC85>R)yd*xZX>{7yS^wD9`}&cph4VgzK6}cpGSd4 zSKDa!BoW8svPZE4Lprj(cCj`IKSQtD|6#xO44J+9Uc~=ln*(PDT|<42o7$FF_Jr&i zgi8YbV(mRFWz8yyKyLvm4q;}QDDv^mKFRP)sE9diK!4Z!`2-Sva{@)T z@M}lWAFx5Ly{;HZ2M1gx#2wjnNjaQ!I&~4WgFksz<2kb>8uKFP%+QS|P~2 z_ItX2GuS==xluN|+KNfri6FBUT`-h41oIjqn?k#*_U}^U45^pdP>D$ZjFL!PTyf^Q zP085ipxJNF2@W%R##k0&U_RO-VhXCSzkJJMeSOUk3a_ zfhsQHrg-|iGP6eOgE@t|tqPb#-wYUlGLUtF1vbN^8pM*^`X0a|mR{v0tQ^kXBHw*I z)C<|KG<`x1jM(5iV=(E2!M$dc2L}(J*xk|`V-BUu;)lyAKJizXwSf5 zv%a$?sa2!66w*!m{mQJNG+@jmWRyX(0BV)j zQtmIvY6ngJ_U0I>dNp;B&`;l}|Jkp)&6S){*-B4<3))79-l_Qeb}a$nCrW?i@6jgf zWGO9yYv;7l`HrLxti zvTMIoznnhiexn$)l`%h+E@8+f(NIArv0t4f{<`g?U@+PPk^foD43)&@V-ks|N&Csi zF^PL2usq8nLIpr@3dF`=uwjrLFU32HzK4 z`>Vp3=+#z%13gx8f5-J4)YoQ%*JTjNL(fUp#WDI&)u6_Q$UJB_vy77rX}Wu8slI0* zudiy=ZVl1;)obrA9ts|nKjQEBfE-`MY>rBU=lLShim2P0q7h%d^M?!K@CtWgAF!6? z_U3;Fb;Xozb~nq!)WhAr7xhzcFZV3eHT-WHEvMAGgfF2=XO>{{vlx0#nmSZtH9O*Q zg6yvqFeGPJJ}o1EM(lRg;mnX6UYWf8mFoi7bhuao&bOoLbiuCa8WcmhooGy~FY&cz zB}r$s&Jcr|#gq5C4L8F!UedoGKe$Xg!h?DUy|nL}U|2r-R0ebOwX5fn zWSz`D>7)<&^89YN(ZIjvFg_Um`^8QR-_NaA7-fe+;pGCwDB_V2rkW0!9{2nq$ z$ee!V#XfhuW4Y)t=+}Bdj5F747WhO?M+u+29xvFCt?v8Gd;4~xS|zr#dtH(;i<$d- zf~@`#MT9s+``;tEP}u^sZ%FJ%jWL}|BynHAus=d3p@ZT%KDTSVz8Ce>ZRI}M2o2r5 z0WHsc_%mq#?@~ZI=ASqI$9p5^7v@lU%FY-%K<3oU{XdIlCX2SZ>+jjTUU^i=SHmD& z60p~34`TnZkp-?=Qby@JHsD<89keqnk8H2{c%YF-KTd?WsN35O$n<2}qD;YJbO zRdLIO8i~^K0Hn>1g8XedxjWSlayeG@te46Z2F)lk>5hv0~KIA|CPZ;uojRI~b zsdYUtq6}2kU$v^(c@~W1&xfu}=v`iIy^2cLqxefAiYR$U-tk6((HpWPjc5X7+&8Zp`$h|w+hM~$jq zwNPnEM8fse(Df}ce|9sl`a@(ZYb%J_AF@`LOTd&b zfKM|ridOh1eTzw>M19)%pkAOpx_D@B7m*y&%@UymtV*l1#4J=W4zuX?g-Tg_nL*r* zxO?_u5Mu*t-IfgKU);&w0r>^|@JB~%Vks>VKGqL#!J7r_tqTtEh+-?0`8XIA^mT9f zrf4PT=1_|v?!$5c`vt8K#|iAQ0jmhkJ^x1`U{r=gPNn?*@PT;U3fYMbs{ zWGyn-7rJx^%i#_PVPJ*`vqkl#>|c@5)*1eL7Avh7-XrIBZ||+oqtd{8B3AC_FpuV! z;$gM=9U23hEcaV~M2ov&3|fG?X-ek!w=C<21VgS}bnI?NE>w^kD+>9ev@wJWb10DV zyQ_9Mw&*`aNgK#-P{oS3L_BK3jXak~gatkfVYbp9w%hoqobZ~Dc~LS)BJ80U{AKQn z*Q1GumTNeB`Uk_U9{PN(9TdNVqbum$7b+YTT_--;$J* z%!s%=q~@+^|M0V9;8dA|+n>A2g!)Gc?>I1v?8(v@pygMrYac1cOZ0WwT(p`W9pVxxJhqdjvom48tA%=M=nd2TC<7bo?1)_v0aJ42 zVBb>(R|k4NHm`$)(mGToh3#S7%%lN|%|rYQeQNbqX^i&J-Y>}?Xedo+H>_$DqSrpA zZrBP5Teb8fk7W=|ykRG2?`EIaU#5;{6+~kErK2t?_Fv>kK6XNXf5(q3lvzia1e&Q; zq8N28nd7uUhRFW=BX7HYe&9PfRx(4HarR@Ii%gx9M0u=1$v(1(N1i&#` zoh5IMp1pCt&GJpt*ByOBAQx@fEE5n=?Jj4Ion|cqa{kK3bOVktE=VNlR>x6OJy!Ek zKw2S@QS1TY@vFX<^7Vt*pWs{1Nzz{o*#M-t;ky?@huxpb0^v;m6TBus`C~MpDs{sj zeN||@Uc@FKm!ai4Jb^u1W_IlIvgbs4oPsyH_8q+mDa@`~sLh(3?xHH9R)`Vf>+Pl> z6(UM(R4V$W_MVB6pFAL^z8L{D50Zp5(N}SqsD;KY^3l7N606-AZ;M7-EK+k)dIy1? z0ruywR7ojVaN)c*5mV+ZpH@IIlRLV9f6wuX=SV%>&zAHeci*hm5eD$7(?ta_npn@I zTUsKu;#;13p?!x8&z~V7;wD{nER{I19er*x&M^j)t)GcG7PphgIeAGrpZj#30JSl> z6d+{9`4ul7@{Jz;l-7BuY;?|<;OSX>_OwX0iFrfKq>T|4LqW4--@<6ko5HDxE2ffv zg1{p+FHS!pIkg~`SD$FTKn^3@B}(kGPPD$q%Xw#v&CfD|t(L>fOZPjuteo=EDG@n< zxlGyRr(WoKkvMDkQM1|G8?4s%03p?rj0bfl_efi0S?tf$OHKOUdi@{J_P0WZ3r7?l zY-NrrT&hT3t6gbdxSx8IGt1&0@`j0J5%S_;H*_xCH-VPD%WH%#z6c~dJtxMw2Xy$r zMeU$a)d?kROYX%4%rRjRJ7;cvvJh^eOg*UCEo_9m$YoM;h!jn6J1?`(ua-QMoxs1g ze+<5G_JGg@QDkw#DUYwrV64SGrSV~0;9duo0%zo8Bp>L4RNqOA8Cf-X*zM`}v=S4r z%eH;E^|gPJi&ST6y2p5^g5;`##UlmAA~>39Krn|QR!%r(f$B8n4Wgb7-k%c;hIwJG%q$4(;+;pQf;W2i^~ zu8?+V3cH8{Oj$l13jKWF2$V!}q$pkq|18Rw@Jt1N`FuD%nQX2q74UYL%r|;}+>{FI zc;QxB*z$hj>}?>;5fcmsQfiThu{ZQN657N)Ya;kN;hHvNDolTPv$qUZ^g(s9}aQjbT3;sN3U;hCf@Bav<3+Mll zUiVKk{r;JQ#eV@MU;IbG==|zVS3C0wxUB>>knuwzXA=I!E92kw&-gEV`@alk{qOZ6 zGD$_!h`x@d{8pzI?~o0YMc-6?LcS116H~~ zNNLveFhBjWRO#uzKhzCy3yDuVaiZdka;=?&-b8EVOWU%EVx?~4AOUc0yu5DRC*d1? zcTi@&IL4r|!^NgNAXwAdZj}%(@CW^7`T)$M-waaX7x6c(3;?>S61xdP%;vij_>|R? z>01Q4PP-cjKYAB=I91ucEj_|{p8r{(&Eoo)dLwmzwaNs7KBeS}ixvAIn=WvIl(4Ov z&Ya(6Sc}eH5R!=6_5_?Zc8Y-_mr>!`rK)dlP#^A{LQA4$H$kS<<=Q#|SzJ$>wYps> zVr{T|7t(L(D#?c?+bATw0r zUO~En_58eK|2FULiUELGR1)`oCkN97Xen%gDl?L8!mD&DZ=WjFQyKPQb`>oPUhSpt zeaa4aW<5_vC9gbHM_~3Rv_32F$i~kh#mK)>8?gb;y12V^5}Q*~nv3^-8%$0s7~mbu zMrzAm(~&z#wo8Fwn5tD!JsZb&d{o%}n$od$dHP9>8-DpYanAW-!s&cra*Jo*nX2BC za%SgalpD#}fcGMOR6>um6d&d^3;wvR$zc5h)}TPQ^juyAPsyx_Z}HU{X(1}&u+`d* zF0N*j_Ovx()v<9#6t}}gx*HLHO|}HXsG0)9AHx4!{}cbn<#I9xGEs{igzCNY`q9cJ z`GeH^|+Ngh*tasP~H!T$Elx@^BZl{ZViqfyR|BNLlMIC zU`!Tu0b!p3rvK&&Sh@Ul-$ZBsIif}CpZtHjfB!PT z|6UlDgPA;!2_ShMNfiZJMo0R+bsnuh^RQUH0(^eLp##8)Ga(z$d7pn3X=yjy^Ab>c zN)9(;>oG?U6J1grj5ahX8Tq}l(~U6T+dGmj0!*|H-?|2oSwE{bxuS1p+`P$~TMc4l zf$o=E!-pT~D(Qa1H)1WT816ATF^0l1w$=c(_1i`|E1Rv|>uCQg10ukscn$me8Uap2 zz6C956^z8ToB28jrFW;7o{XlY?`E4+NVtE>fmJOyd|gbp8;f5;P)z(YTF{pl&gueb z$L$@7xt1qagJ1seGG^_uKmY;FrO)MK6T;Or(Ncswf+r18o<$j0Mgz6b?~L22j6-Nv zAtS!N=NoW(KyKI0ym-HmuUmMzcDYdjs8_~3f0^P^8yw*%eUwK>F%YAyD16tL)qTqU z>ERb%rKd5sbp9Xe-aD?TbzK+5se(>GR1^>pWTGG-O-iUiWeQ4_-a&dN^d3+VP!v$< zB|)S~ml`012nZ-8D4_}o0wyuE03iejqo;~V2E<9(m+ zeV^xhS(5c`3<4M;=Bw$_%qz1nzLBl(WrF8e#k(ULE;mu5-0)hJ5&-uo<0yJ3Cm$$X zobX8B$Q5wBH@1FGl)qlist*ha|E2?!tq&T(+n)!eJNwdq#Kf;H(sK55t|&;DO4R=eK0;U;IxiT$ zE^Upmv&KETCi0}0ty%4QTs(KaUqm3|Mq8`0Rg#tdLG*jU4;h`!@IccNBGHVcH9sr? zV;HVm>T**7XuG((b`%(Pe)5r4ZVu*{Nh{)vWE0_2dlx9UkU_5EY`ipp#FSQ>yJh5h5#?`A5eV?zK z*Z!z(&TQ`{s^AK3y++so@Fm7U5ER#Ee`uCfn7TIed~g~e+ErL1RHQlZSwoNxyRctYB zqqtU}NO7Vo@+--%Toj>52KGzB5xV1XY{JnPi~a+c~3# zcxk)Jwh1>o8N)jRovu0%!GNLPX7xDfK|nu@Jovb)L{z zjdzm6>+WF2STOS5y=jvj?~r24QJc_1w~fC0%@Z%)dUx7UW4=>Sr0oe>vHl{pvs{jW zAfkxN)3B1@0)!DAIpOO1Aw)z2qlF$nqT~mJAl5zc=W*|@TG*NhUOfehO=H|em0BWQpi{)tDS^4cp`jM*mkj1RSZcr85Fa847r*X8ex&N7D)IEu#vG2s% zF%Rl=pdE>V)Btjq(!=LJsFaVU+=KcN^l#0(vD*=O&CAfaiK>GpZHJ}NCX&uzh*L~& z#F|Wmz`2lpHf!P!mb@0Xi%oBb`6Yie^ecyUW9oqMiqR|P#=5@yNr}j#|D;5?F0jqd6 z7q^7$!&pW^ix!(8y+zIa1cR(X_c~xh?+_1eC>VbtT3FC7-$TPiq>BAkGty^xT88MeNV-N<{JjS*Ta$| zACv=;n1wNb(ZNVgT+OY~_%v@V+&WvTDtRS8&kY-X^-na-m`%N}i`ftMoYtNUbnC6>8@5iMlP@RCYpk5-J)y7d zpFTP(oFBXDZdQFRAm#S*v`YbkGw@f>J_dB|2>5;&PF!>ZFE|a;=Y~^$417Enga0jC z9N2`&+Eg|x`_0tm&VXeEZQEvBqOi;D<}kuhqWh+H;Nj8hPZ;kT-`#tG!G%nDbGtZx z8vOlxm0Y2pZgWWI@8=H@pWulU_Ofq<`ct^;RnJy(-TlD9*3hHZFa4PQ^hAXkQ+HBN zXP$~%N#P9{ER*fp0V(?}2{QE80+b=X;2^nAF{$ETXldT#!944GR46_H<}4hOAeiGE z!FI}4GldmHKL*Ul9qNU!3NYlzPx3fV!D6WflXD)6ZqzXT{v>fHZYU&A^^MK?V$4FF zpv7W$kWs8U*2X>k(YfD!r%Ym7nkF)D8HL3yy&e8!M}25x8H|>#>VITKs>#ur-`WkC zo`6cOS^Ok(5POAQl(9*L`6L+o*3nl??q+}$_g8Ixh*|_ zSMO%CnBbcp!h0an6Iq>yZ(oXDJaQhj#3mjGeHWB>uXbqpYt7vhfL&8*jGn5GyizT9 zKYs*Hk?m{eiiX`IRUc?Z;muu;S(u%86$WDWeDJ}=^NiC%@wdxtj0YoBy{7tHx4$<0 z5$J3ueG(m00gbZLo?mIg{90Kga(9g7v{Asv5D{#%_N_0xA_U$g`_ zOcfPsOpY9TT>9zmRp3}WveIlB2kp__Z`7^t^Spt9br5ZB*bz~||2%HPFK1J4EhR`L z?jIg*t%`g|Su)_EulG7&>+j|J<<A{q08#7W-McbkUDIa-pgX#Si5ptgCo#J1xu2JU~fO}wm@>dM} zv-n>a&-x0mNdiEB<>W_ zBp7bpb(=8_N=Rv43q2d~%BkAo;pub|l%BHb=bbG-q)(VKw}SL+98*m7JX8-%`Kq+Y z^4Sdx>JpDqT8k zUFRIuQcv$(8%Jh!*GWH1wV&D_THCW-S9zS_WS`9r(P$D?O9u~`^;h0;SP$si$aqKp z>VA}j+S?JHD^cHBj&c>7{MIblDDBg^_q`X2w|uC#RhG4Y|Zmp!)7pJl3>a;wYf2tvGy5W)>RAI?A)|f zl5t_kTAqgNW!1PaZfoxc!uSf(`%2R3OJVgn9C(fIClA*e8@-4R-)S%?lbA#c7U|rr zrQU@?e2}NQIwN|x?s{@Ns4D1@a~qpt&m|LO%E*3CjQU&rLVF=8>j;_O(#-*X!muo2 z=N$EgRhvCZh~G9Aw&_05vjEAJ)Xc>kPxG=aTd5XwRqvqT@x_WJ)=Z^0-#;x+0x?5| zF~mb|+>@>N26|~u&MGNjF;q4w_5oF7u1?`b?%|eCSZ5nyK6x<%hs3t~s5T&@h}x(D zT4~9r*TKER+C#GyWhD085v#0B$B5JdP)WmGdu~D?l>4SWd2nSCrqQ%Clb=DU-DHkV zvFpgRH;WFfZrPc>N4MCR%|n+4=9t>yws=h81jaIPJGxyE9-*X$wcvI~KQYQa-4S#6 zQd)v(R>pG|;Wq5zkM?iw>)M80eI2(^>p(F{9_Oz3mkVYMSiniR~X-8xK75 zWAgC5o~50aAIj)_2J(9>quPQWP6>~((#6MKw2^eB z?G!*6q{`Il^G|erj|!aBOocYF~J7r9kT- z;b7l;AluUjk)uF_$c;(9Hy8c(VN|`*-S7lijAA1pH)q4zbGuVw>h_0{?LW(+D>#W= zRCU8x!BdC%cFOyku&@Tgd?b;|`n;Dw6kr44lV^vUscWP;g1iR)N6)jO_MC{;nEpkUqe+VyJELP&WeNuSfwKObT`+&t zE7%`z6*))!;id=t>Kdh}pOw?vl@!G@g>^ z`5pQpBqcYIA@I@W;TW{G9G_U=FrG=DTof-w2L&mWI-z|$PBt@l1B-W0-OHMEhXg-D z8onulv-kTri&pXeG~C7m9x4nQ=MRl8-0a@1 zvKP`Z3Iym4b+%xN&t$<^XPJct*@tQzT02gC+)=L9KydcXSloyYZmwaANk}edYs>D%AwV!#c@AYxVl|AC{rha8* z*Ex*3vzH3D8n@PVRQkU9C*&#f-V{%3(p3_?jp|OKxILR5U}rEu$$R=dE&LWH)}y{| zdE>sKl1w)F4>*@9rZ+C7;asw~e*`3P>!aEX>z>txkC>De4veWbpDRdm1@T4=xN7@| zsCRCS2X>EUV@^`>wPga#cdOYp0<=fAl0+f#js&acW)1w9+P0eplBy%Oo%n6uYKIC< zM|ibWoHwUfilIO?`c!NAVp|c}{sUtR_-%DJ!se*(oECpWX<+9*Njiy=;f(#j6(CgF zT01tnyIXalcu4(h%-W6Jw~f&XA2Oe_MtQfLRg?tX;g|F5t68Jvfw~K@+jmhSmLzN7 z*l>YM_H7xsl6?YoZ<6da8OE2IcvoMTq93A)m$eH$%pZI~9e5leZ4Ij43??k`l4eXi zhd#e44eBh8P0bxw?r(LsP4j~o1FP@D1ShA5&a<{^MCP7vW*e-r>WCuW5z%q8b$OCO zXtyjMKE>IwnD3=hPZ>tDr))g!8h3_aXMK6g$xjC#IXsy=N>}u~?y1=5=~{7&`H58) z=gn^q=n%G&#F}ngFoxguet;k6C-jV6)$gI^b&8LE=^BROfGwjy17(?zu_YHX!P+_4X}{ZFO>3T*)*i zqON5fMH1_uZSl<+^J{pz9~h-}dU_fn*uVpEv6VJ`&r4Sp9IGP)YyDV-NkSK$In>|n z{`tj}QUrGp`4knfXXjwT+W8WLz~D&5l$RF^H(&!V5yYeU_w z7K_a*_7j!#elVo<{wXaDH_3hUH`3AU@BOkW{dKZh3gp0&1_Xo%k}u*7iz4iD8zYi8 zvJkyyS(qjw%99@NM$)q88iQjLd_LS%NliAADq2j} zb(L8-8gcPFs3oqyf&X!9ZstQ!uWC}~-NbQ5v9Wapjdmvn7u^tU@-pmZ750K<1Z1U_ zY?dXlmD+ZRMBDU}y7poHRsA1P>*Ilzlbn5t;!>-X%%!f2y?jN^ynWptBOpZpj35cA z_HH~3Vr<1VAl>A*?>x?$f#g9H&)I%sd*5N!pPZ2=n3{dE+NH-RP$+?)^aW#`~vai9SlWICAb;bIL?V||0vn3>)36VYlQtBf7cbVttLJwg!V!Vk;Njc;{5U) z$YW#hW+6y-SdoZ7iv&evc>_NE9fScds?nE%e0S zhq3k_Ay>=kw2o%DW7|pdH{Qxcb?K5-cZNGsE#YI0rddnnMW~>up;e^1#uUC;je`)A zslQ{W?$Gg)7>e4y`^B{o^K2q1GpbHi6TKMd-krP_JiAp9F`sX%zPP!6 zD-u&(WN%p2`M&Y(^g|IGzO>xtf$#i(K-GLw2Xk9}K?~L1>K_71M~23Vafxpy-*52K z!_hWZxyR%7eHg}oxTEc2!S%QmeOA%eb_I3=ec;nRUQaiGeMs}ABciL3>O*CWvbGvY z??(LeQJ&riAe`S!Htw^OkBUbo{!4p|PL)qA1RRJjrG%c>GX)(x@+d6PVua+|PwnVo z7J&b=?E;{kTMg`!LZ=-rAJ|Bcu7v+|@gc()lP5V+}vG z7D{T6HHJ5f8$Kmf-u(@thYBEGTwu1r4cV*`3BQGj z48{v5BtwN-F-;kiSV9FJO`HA9W>r&#o=1A>L<|oU5fiS)gr$cxSIpR3NyGNrClB85 zM}Azt$FE8ATop?TOj^p9r+BtLU20ZI4%gG}iEIPfs;#6Ouk5(q!Lwvq*$K=8h<=wu zOAiT)j0)vdwXAg{J-RDjjolhgtrwV$gg}h*#3Y$~IsJbtU0fCp5~>2AJ6ey@z*(S_ioJ|(evz#kcIVol-5Q#9NIy$%+bR0 zjVpJ`UW~gb?aEjg$yjaIrE@cAuOm~b32+DI;-LFE&QaQqYxDMttKtiC z1`ZrL&cZ8uwXg3Fz-C(^X1cY9&m#smz!klXjbajqh|Fg<`VLs!x<&%eH1g;U^mWT` zfP-O0#6q@LTPrNm_?9zW%ikh3ROfeGB_j@Lc%C&B??D6PkY9X&u~he!6j}|Ck7c@A zUq{AR(dcjYY;4rC6sj6b#@VO6RsLIHJ5}lq$4btyvip-6xt=k z2K4~5nMJB&2o4@pr@NcG4foZ$c*0P%46yxR%xMk$J&C#M%BhTCb8`)zd!`Zo*P6M= zp2;R?Teg|U{-U@Z5!7XWhKhW1WtnHvlTK}R}0*t`Vek_sgC#@+OYlKirO13b4UM< z+FkohN+cX6lt^$L?*uLd7^}#B)Mz87G$QuEsXmBOJe@acy#ZRMeK?j2ps}UuE3tVc z|A43=W@!X{^#H-RZTAt$Y*>g30CcX7n{&b)>Jxs{Z z)on8bvxX3?@Y%7EA?4Wb=$0c^Cx_Mevr@V1du|8uKTt*vU~HUBV^_R$cd4g)z6G$U zT^pngGydR53KT56c~+6(lW5yIX;fr!Ozt<-!F3BHbJFE#^hY4^sI+L_3ga1R44{-$+j}( zr6Gz#dGfCn|0$R+JCn^kdEz&Ns)FU-4xZCWg6}U|q+I-W|?Fuz*!8Hn$u}BZL7cSg(f-V!*gh?y?U99q3g&P4yptt9BYY(pHXJTp- zl9ld|>SX&}O<{rMY;Mt)YK!KX!|p|7#>rS%LMd741X_>HfTN=!zhFg6OD%79W;q|^d5R}LhcF41+%^P^$uiFX z3ua}S1G5VEt)d5Dq!&gR?-wBas!4TL=3%mace`6(qi4Ji1;&m8K72~Pwmraabbd?g zde2@4K~;hMXY9w<8X=sa@Sf{u_#tBME@7$R2IY3^wb_bL z1RV@yB?In#gm*sm)@woWq;Gq+cN#{-f^Ds$R3=`~ZSB-u`d4}!be@99J(iby*lpOX zzsFgWQNEjaK}SsC5lgxKEv#mB8GSYqxDYN$h?mPw@k71G&YlwZj zdE?A8+=X4UELA?g$7PIWgg8Z_fIF__Kf&>Z(~l$zM%XP{3kV=M0c_TQ3E04E;ZlP1 z`t~ouXDe{lU7}N4^&#?OjJKq$gWyxw8kXG@4}01V>J9pQ9sT!1M$lnEOgYENVs`L- z&`oo*mvK1_Uzf*+FUmo z=fBQ@(17zn?3RR54U!3`uB znHe^B_J0$G|H)JNN4DXAlC4OHBxG20r5S>A@W5qyL=+v*D&4W|6v^TP`g;Q6FMjJk z%X|D=#sRo3)4!NB`9JProScTnp;;tK1ejg&FKt+u++UfieY#~2JTi3ceb2k01*hbSllp=&s7k`8+p~5d;tFmRQ6;QvB zR4e#<83uJ)rSf;(x#VuquAI%E8k5O3#k=ptj$a-@zT4DNik{bV@GtVZ!VlhS=y-7Z zl{8=E1UK!NYWBxMlermImTtX@f-e~~8*WqaqlUi6^S{~)0&U3D=zlJ$8QCSQ&G{=C zP}DCN2y)DIeJbi#2WQi!@-PWOc*xy!sRU1rvrcdxZ)laOQSW+fTKYkG1m zsBRA8PcKC2Qj+<4l{pQ*(}bCR=IO%Xk~x$vM#>Mm9#-2b&-y}xiGT7`9vPD1Hb|K5 zeKIzPU(>q~kW?MQ#ohhpk}0dxXBmkBOt1>$a#D5jBG{qwUxi`AUZlNjGRUkvFjWuIh;y~guXQj#`#%x)3$m^0$V zAL2G8&#`UABd@OHVa6oGf0%9?@PGCsqx`aJSVg?V8AM6p~c=N`U&%G~DWQhwZ2mc~Ag zZ)2VNKAgnlT2?Z4^+-Pyxv^fBlo{L;sLgvea>v|TzaD7sTTO%VZwBYx4T`0Vx3rWE#ELD+zh}ss{g!^avNFft-!iCd0I_jttiQ(s$@mityGo=_ zAtVyYf;)l9e{k0)`aOA@jQ8^|UotVIBRpk1!Yj@F>@bHK!HcRUesiNsT{{xxs%~N- ziL60$U%Yzkl>}>C9P*X7_vaQKkA?hfg-I*)uUCYYpd8ay8-=Y{g{)hA7`gEUCY#lN z^EDM@w^LuZ9b*D&F=`Yq!him@J3*y zDy3?W1v7xWW8VAN`pOC`+0M`G;uf^5L2&e%4bEXiyR{Sw5I>nb8pVDycvok9N$17S zS+=et_x?)n-uK3KJ=HHQowgY>wHET6`}vT*f44J#@f80P`=9*=k~kH+tG}HmIx;O; z{;_)&%vjkJ0Iub6>tBvncQE5U^-M4xy`wRlxK`N`o&U0fFUfVGjZR4^2&=YD@;m`VA7$ui zYY2^Kl|fT90_v$GddTKy)8Be5+&SkHgzv!EES5grGuk1ENYXZa4B;|9MM$+Ud=vIUH9-n zMl}nZKYiZKulDihPlu^p-Kq_=;xHoL4mi?q%D>?tqX4>|6m-V@oZsT(V(kiSDU}@>KiioMUFK0lM7;A#YR#Z(1Wvm znU-=a_KO(GU6YV0FYh{@d)G85b|TH$Nv>8k8V22M#EgMW@n)lIHU)_un=2VhSE*n8 zeop9p)k#xlr5?V`RrVd77J4m7vt_?;6Kr+h+`=hf2oWd3*&9?fTc~9nQg*Y`f_{6^ zT@UnDR9G1EL!fS0A6%azzCnx54wGPP7#2Lvfm8NmXAV5T!}JuNwpKADyyta4b*|IE zyV6g$L3(!2{$Pq_V%OT)tW5|5rBAJ)H4F!EG3}h^z6NZTtWB;=V6RWL!%)?qoS2s0 zPv8eh4sDHRi3c5gmnt~pvWBV&i`09(9Vi|j@d=}A6QO_W!P)~8w)c-=vnS|oASwst zl;i4CKc;UTwL_0H4tFl0BxublxePxqtBr0R%f*Wl9;?VYRXjS8Z-5+^1Rqy|N*d;l zPknD#vu=rCkj<(sox<93yeV7|d@Sf1;y2!#rMY9>D z@!>|_JK554@n-qyow+BHL*_OIV|3$-dr~t8Z`pqD**$poYRd<9NOOe9NTq~j5c{rM zPqj+Ks^965zJeP!V01gI*j|w2NS=;r=JZ*tDcV;9rsRF-y9jHgA!rfLf(OaOQCr~h zw#$uY8Ru@?Nm|cz8pz4P*LdX+98dzQ{M%VyS3UQgh0Wr0^q2UF4Tpy-Yxl2saM`f* ztOgHIvTi<|=o<2dF4@J%%}nlupV$eDJnE%SwzWV&O1LFIEiyXS!VP6sC>_(&fxd(y z5Vmq~1D$YaP@TkV-ErQ$|C{T!%nW&1RqV9FWe)x6Jmt0EY*vZ6-Vz;egy;943%~gx z;52(K-Q1dmvV_JTqR#ax<#KS8nX9=jl?m+V#~`lg3N>9*UP~oI$xUmC4$!j#495%0 z7y4d@oO;QU3aqYJ7{1Ie0%mS9m7W@wZryoKvZda4Ut1wtp7X$~ST=v$D0U!U>03mk za_hEtH157NSYLkJ{4CPOjoeOoTGkbJNR90tS~HzIL(jVYxiLZQ!~5A1-9k49FJ%tk z0pGFvq;MIi(i0(STpNBCvLEHSS%y7o!M*&Gxzc1czyD`Q1|B<9e;oiS1}3)EBQ;5dw}+dEV;7D#xyU>-$_TZgY8GH*%In$UC%W zJ8icU-*`~>axqQ^7m~778E`ivz#hCyd7a`r4#3BI%neKcB>OR+70(H&rHS7*o>OdpIoJ z0CnPx0LJe@HRW%q2;dJU%Z4F252c^KO+Vr?@DU0atRQv2$0twNbD%XqpP1Hx|J=y? zJKsqv(J(OwfR4D@Ov%H=pDsum%(1hyO-6Jt zYoN{vuvp#fI&wS+#Bg4oqWz!DRrogWU9!BTG*h zjj`nGM0_KALx4)%z?-O8w{EwHKQ!9jNAGJYqWHmWcE@az=s2b!6w6kkKbf{>G%4t& z`lW=2ClahSxf3HhcKp^VbjzWaRS_4XUM;O_^2_PyynA~Sw9+H*_1R;DFpir6b;Zqf z%f{({@t)(5g=h}^#I=*Bn&0yn%$`ye%sUx&uxZ`0Z*-!8rNb^-jqa0;Ydz~{%X>CI zhjBN2@4aZzaaH(s-`XUGLqgIwhTCs%W93~vV`?)-_`~>3^abS~3T8pbTZ>E+qRfl+ z^1Z>mKV1b_+FCjU43Xr3P7jo#p^B^AJ)~IbpX=3EXJg!v&;c40d=Lmc$PL(#pnv~S z-P@J9(ubROvm>q@kIkHA1NjXa-O=6Yj4+|W9ay8rIPgH4tr z#14jW_WqAqZJyCK|JjLgF3ViyHDeG@n*JDe{|7xk4=UHG#mBI+57xM z_;r1Uj-4W%3x|M>_P8<_?He08Ti;sn7_wZ`e2Z@k@ayV;kYYF%I>~+?*vkJL5P$mD z??=kssNyylgrNiPIbu@|a4v(MD9;8Jq4@+TArV&gcXOP;bx$EQMi|B8aA>JlloA3o zkf+5ziaIN^w6`(i_9|7w%oBFL>}%&DL$B@UDIzmHiec}?C;v})ru_7>CDCONdd*{M?uLAL>l4&{~ny->@J^Iod)xQ+~aHW_lDO>b(~ z?A{vrwD`>iMdWZ(<%mjUz83Gt=n(>Nk8i7upN<+JyY%+N_7{^6hG$Pn!2CkYZhOD= zX8?A2;~=%GM3<_5)QaOAayh!Yme^bS~q z4;3%_pGGF`uaQ?}=3pUiyu_ZyEf%noMXTCMnpBp=#&rw*KCOuPrmDg2itEpB7WjeM zIJ&j7h~3T(QF6Kzmhu^Fl`%Z4G(vMDr%ZSZy0y>IMaAtGTaN=URWQ0yV|f^RcEW0v zCBUt)Ii=U?=SI~MC`OU5n5B05oZ`(FiG_)l9MQjH^uI?|{w0Fx|Bo)7tWPPhXCoP0 z)S)Q0YL<1i_OxvZ0HFiP1Z*GH2C$0Ez%XWaER=Q6&pQnTOX&$ntDF;nu{!Q7u#)$m zc#T{)cvrT6X`n|8y>#g*Z;b(ccI#Noyu0?T5EP4MYYz{>SqJ0~FNk}38m9`k-KjXuLf?o(1> zq#m*3wx`q^K!cCt{biWF`w3idwjuV6gvNVGH;dFRWj1FZVpL$&R6QjlKjCX;BUtvN zF~Z#Uc+I)dA_}1Z6&Y}4a2YD1d$SgbbnEKRpjJN8*NEqN{B9!rWR$yk{h=WHlsI)g zzrXVXl}jt5#;>XRWdcDc?5bJ=LYmT=5b&0n2n6C3HGp?+{L}i{_gnhFot_l}>n&`z zBWUjX7XwgJt1zMV>-mSd5+uU}hYv;{wfTdQ=pN(XJq8QaFGh&68dmoMK9SQ_o$2)1 zqk_^3?bkpV0s}>R$ztJUO&whRow32)*G=xfkE0p;m!5sw>c8PW zH{XA28*}1I_Ccoh&iy&o+lY4m9dpZ^DL(jx`rKA+?+%%39OX3Axo{=3QU&JLB#YK; zc&B8J7Hb8dk9GTIvB+d87;s~iGPB4~Xa;7kmHXDZrq8+sE`~1@wFdLAq)gy`hoVnd z*jYpuq@vHo8cD_6D{HGRrdZ6H?~B`lZ-kd*n0z%T%%6CXXrNU&TVB&ZpP;CqohBM! zZ(jii7EJy+Y#j(FWc(BG_Fpnve~Xo}Cv$OgV}U~=nxAzia+FyxeHQq45z~>9l$U16 zQO`&eYGx?J8(mreb@~UZ<>>vd|4oc{nYx9!&3PwFwJ>phor3qc9$A^0LjOfubFI4k z4RWx#SKjSBn!AIgMn5mpB=52O?D}9wTZ6Jngf$^~vJvurBs8-5;(1Tiu>LCymr^6d zQWL=60fLsc3bO&cJH3z~0_Aggkot~g$P<}2_4bU?_8ZcV)3iAfyAvJQxh;|)5QTll z-7pnya~Rk?G#*MOG`}ldfJTRfSk)rR$5!MqRGV)QVW!d3{!U3wH|FnHTDJ1otMfxz z>d7ck(6`d9TifBv49M!2udJU4snW$3&;1%kSD39Mi$2o%bf=PMJJ-6n2BO>RpmX2! zGLubXr#A6L)_PS##^FV30`tN1db`oyNdFCwek`BWDLL4}frrwRG8BGNbYs}SrM9^+ zLC}3sj<*q3-vrxC>Ha;BPVB6^W(0d?J$5)cp=$ zv#pH1_B@n>wdKd=tP;w6pi;PuU+W%bmm<9)K+*48>DyVVOC3t7b{JpsMPUfHb4n=0 z+M+jp!y0l^v*=Rq|r*7**z3FOZxpdJl>*RXM}`>7ZWDEtHK1pL0qj6n!2U=hW{pPsl-R=`Hd7-)}_MFtO! zyxOpz5HA5u%C`(!D+J(9VP@YEn8hCP54ozF^%V?CZ(0B`&x4D$9BIT_?=|owE^EFc zZ$)=j(3rvqJr9zL$Ym&8=#l9>^nfe5b)!M)@Rm~S z6{1JYwpy0mC8DA5f=SQ3XOMR2LzT4yryBy8{I^xY$3vaM-iJ4A?{BBeA>ZxY9@e_f z?y3m0NjkZtD0ekh*vuiVv>u)iFT8`D>k$sJLY2Lrm0v3K6kJ}`{q$l(ZPO#?fN58$q`bN>~9dv=LPj?x5J2oFGiu+v;zhUlki!8r?#J11#5y(QoGfj%RA0n z?gKSygp2vjZ1id#4YrYHKf_`<H=}^toR30^1KSuRf7s<`}gw4bC zn8C&EPl(2vA9LYKNe8`-J9=F`;)xyAxPvM}Gj&r7!gh=_chvh+Uu*YD% zpMI$DlxNdDVpIj~^E-|d@-2bZw-do?@&XckbsT;w8RINd^2Ya^o-Y)t8Rn~uz8eOO zc6*T8LhAqOUZuZ}A|KT@CR#E!C_#WyIZPcYd&$20w_f4$m0#vQ=3uzOfJptbGNsU) z5ew#eqDec@t(By#c-*r_6$1NKnxWKVLaJc`J(H^|ZTP$3nE1Hzn~Z03$=P-B!YD~z z@gq4F&z^HE8yFGiT<+LWH(0;5__Uu`HK9LlFC47km?(1v3i}`h6bX>C&gmh@{&5X5 zd4qYP`=handuZ|&pM~&64x1~KyieJEn!~MrpTQc$ouF=?Px~d5@L6&GJYgQHE%?)H zzAv55!IZ%1?-ZF*u*&|vSY*+Wj0%34*Y;!+bOG%T{*d`SVEIvDmfqCynXq}`E{sav zwa4-CC2RIuJ#rMu`1rUwzL~(#>aFR$H;_41g2~dt+^1+5dT2Ize&bU?$vT()+x?Pe zR#NSE?%F2th^rY3ar`PY7>4t+rqwB`$bJY&bs^n~Po#RfSSmK2Na(*my^f8uc_g1n zJC{Cf6MkJ{r;zq;Yp>}K|Zy36<7l`9aEwFUwpvw!e0c2zfdZsw`Fqds-`el^?E0fQ)Bci3G!KZ7} zb~xgXXA0<~5aOR+y$82;4Pxj~LiuXE8kCD1CD~c&&QhaQ4PW}JUpOq5lx2NcU*3`w zO!Xk%4;Pv>55>x0RDw`LUl*(mEwBRE3oNv%ng%HjvD5by7h)YJASPi=T{)b$=}msv z9UtDN!LRb3xKp1TOwooeA?MK9i$Cs!7d6zE7CYA!T-1CNzH!%qPgG0{t#VF8u2wP!Kh`5(0G!mxAOC;Bv3BHjcP zK;9-M?B>lp*rV!@_{$WO5INtd z+Wrd6GWq)=#@n}l0v)9t*%xVyU}CcSj|_?@tFXTWf{oEvmQh<)yZ-X)^N~W=5+`O` zx$N}{fGiH#Mvg`m`Lea!oExyze6@B{WalqopaZei`NevP`Z^H8t_}mJv^{<028?3p zLI!S@ZFra#gEmE=qFZf{T^Xn#a@;M2i$y#V6xC4fX`5DF`;KVgd`UW`u>gGiDy(3p zpu@tbMmTCJo&L~u{8LmITC!h#w5H5qIFgYv43EeNK272{D3ygipm zZSZK*{wfFfYQl~g5U`h*c8GO=rg*(tsqTq{NE;(^&L9w6ODL2_ZV1v&-`I^wMjU_) zZO*EK7)X7VUvlijy%|-?V^o+YlZW?{hbflYJ*Mm%0Ead7IJ%ubvrBIh-7sBT{T3Tm zKPWWofM*yZH}b|` zjI04lLUP4*J_oFdFJ%Af(t0%=kXGc3{Kho>@&PBGIDT?GB=s5hL+lU52_))`x5E^! zHoQxj8!k<<`0a=~x!m@7FAb%xYGXzDfjf>sPF1O8`9aV6RXtw&+^sr6`R$;=dyYm} zK5VtaF8Q?vDzrD*9*fx0km1bCTwv}?FOlO&Z*-Y^DeLzNSR4++2aHYP%4*u)HT7Yr zIX?$$-IXt*xc5V`_Cw+U#JROW=9Ou_X6a}gsEN0__zr2PrH1;z$SD&ayPV#Au@IHbuz{mS5~!E{wVqU;5_EojH|c@9@d zo|W@~q6zLdCU0SYQsu%OwEn1W*{$In$nHkz4Gd7mc)4WTv@W`yCr;fHUpLT0g1CaR zeV=mwP?uCO9(Y#os#RC5Bk^q1_zx+I;3f(1uuYWdBO{KLDb8D7cGU5Hz3uT^gf50( z#u${%dS-hdYi@6dr|PQp(dsM?aB7BfOl5%)Kk~414>{!Q!zVnM$|l<<-RgQ8gg=+`*ZS<#?z~hmom)nx}#gt z_EkCEC=&SEN_KpfmeDe&Y;q4Hn@FPC!*A#G@cme9bx*(H3{Yi#r9lYML3?RL7A%XH z7nX7t@fW?Aj+@`3|C9v=gCQyhcF9Y;3=S;}GbBYvsb?80IrX=w)5(mkTD$HwIbEH*NQzR>nM z_WUAMtUb?U>bquDS%kV;tVn>mcX&Pz#GUs&9vg|EZ!Pzp-(*2R65hERT3U9PVF?XF zu%M`C!*nnYJ`#agn*885+Ybrm4o$ZII7|Sg80C!5NuKP8iQS3cjdaMP;j_M)93#KE zczfx&c0C_;()Bvk_UdoXVCLsS>Z!BX^%=_xs->PVeJY@oQ(6_AwC?$8w9(9i;u>dG=VO}8d}^3suME)%>>7bP;)T3m z-m-K-**E=iA(*F6al7j+@9H_QL>uaFDl?Dl4K3Nc4XGz$>iP$Jw{uee(Jy|w)s8yt zPRqJq=0X2Z*q0=yXnjBgG*Ml&{!0yYC6*KR*W=qjBzLB-g{XR39c4lt%b(;4m`U7T zvL1W*6kAnZK69VDx~86WNXYI?|BYLFJyq9XJ*FBjBGx}NB2-80L@TG2!1v0o7%CDv zKX|5;kGkj5K10P1tiT?$;?7Jb+u|+w_r97!*(Xgh7NwA2X?tBe9e05{AV(DLs6~jn zm2}>H2j1IXHpJngnJT#0{_Ah9(0%F6i99Z zUb6bT+I#jwnQc#B&z-&L>!ydlFRchVz4}$%)9Hp@8o0Hrp>5sc5M35^#`ZKUX81IQ1$9s@QLHW zCzk!-Hd-iiTQ&B=wR6%Br@uM%^wZ0g!0iea2ANOQuOw^t@0oo$_@(t!#xv7@9h?60 z=gGgDzPiSw=WN{SXn%TNsBMPOA4vt>l>xMO%LKqJC;{)S5NtCrF>jktGK=9@l+|L-50I?J8Ykw zaekk4w8W8*b62hHGRxRM@7=yD>u%gyTQ%>+l*q7o_PvgqLgt-s*S3AWOO5%uWeRwg zQ`_9rx6KTITVH{PyKT<|X8(+%wx2(Lj$eA+;0kbP7kmPO`yPvXdg3d}i|^iA|1y34 zjeS?%0+&M`Uw(#Rh8kj^=(d}G@SlGx*Le%)B+q_XQIG>1^1bUm-Rjt)mtVh?nqOc0 zcUIlEPGBP@57yecgwfgpjoK5rOz{ zgN}~woYn(1LpnP8EZR@knNzeYQN}7Iv|q=34K?r6)r@f9Xn)W@tWiANIi_>J9#C%~wWU@cJ>_Wbj1to1 z5Prb;bShbY3p}5BK2)_Q>V(aO^EY0diQoxVp>LD;vo_$Zmd)MJZ)Y>YnqQr?`@qT& zp)&g7I6M7Y`>BiD(w~M=Z7s;cbFUwKb}fHY61LvL`%YVs=^Za>+ZcsF`B$`OA&isB zpqQ3NrImnOS=xowX>85{;ll~0`Af7e(>{-r1KPun9TuPKT_2@CDj8pJK7LqIzH>(6 z=v$sEzwPn+lkmrJy`$2DlP~y=N<|UM%ts|dm3)SyQn~Y4iB6bi02X$u9VRc(e!zY6 zMhLNu|9edT+NUb=0n4@Q)YsJu%j*S1|J}G5BfrFbKNV=ntVjAbMIUH;ysq;nh-O&X zBEHck{KB3+@c@4y+#W~CT_b-8Pq98A9SF2*=1Jf{!I>g4Z-)SVIXYUABY`T`^f*mv z+cU2R%eh{=q>jg&AHoqB#W-zdt#;Ix#HFuqi`{sgmAXhz!fQ%TT6=JMSpT@;LO1Da zbz=e_7t#$n371BK#>L1ZjJCj-XCaKN3&ntCv2nQuliteMEw48Vy(MyKJ2PstOQ2?B zeQ?0s0n23AOHV;33sRtpVz!IYH)7-utO3a44+C5mA@(g%)mG6l+#fi!=P^N844MK! zZ4>b!18gIO)V2$p^IjC+u5;NgOo^c$zR_rSV257EX}@MqH-5S1yklQ?%g#wq2nlO* zfggm;f##)qOQpTMW?AV`eucUNNxHG;2Y>wNsDh?k^JQLbYkFz9erCXhd%HL%rq}v* zR`kR%bI%!3!V9_EVqROBi3O9(;?nm-i|2!)S;yxp2Jr#YiCqa9DP5^-W}4eKZdNZ` zaKDcB{>dd;E%YUGwVnxlVz=W_tY>@ncRA6l98rTInIao;Zs6+$TTbaIk2-hcLozlX zW!c=b0d#HvS{hTrg;6Wx zDwrrhOlKCthB@l}-BS^#_n)pqfw?annh(C0!|e%DvZ5j|SFIfohb?<*l<&9Q{HhV; zx<;ClKBbKZ@x2!U{*u=}3f1R5xX7S{m{}-@(+LCGA#2N;G9B2;=6P z6>DR~K9ukNy3|%ELr|QzF>u(s7Ou&FsJAvlKPqpiTnzQ`tJrWXo7$B@r)F*4E>S3( zzcEn$$2S)x@AbPCIWOKWewXX&@*z)h*jh5V^(LpHVKD0UJ=gYn0_@y?dAlBeSvdNq zcB`#T)K=6i`t7cGqhf0mT(T3ow`MM9gNl2KudMH!4mCAtxdK!=n{MVZqzM-7f@_A< zAV4EM)!fCNloCvR5<=BjMv}<&h&XFtEGI4w(Fnmwq|v~J48`oVJ-T|K}VUdm!J zI7^6v)8sO5;5<0`qD6R+P1wU2z~J~~LDlYg;}$UYDziY|4(Nk9S=BI*V#2LmzOykf z_|R5E+pYOZdy{FBE;<3&!dVe>)12_l6K@;--a;hr89eycs`w3*nU~!O*KGcEJ-fSB z%99}7A>8gmibiXRS#0n8E6eGs+Bty38D+b@i;Xp&H^~tnI(s-WWC$siQ}Fa?pMv%1 zBYa6@;AqZ(&%bhI?-VO|>3t5} zs)^*nw%2y5r*G##D8J^OjC(nT5f%kY<6XU8BDR4+Gd3Mau@)O@E1^)`YuYO$WdaP_ z4B|!CI=f()QJ}d!D@J3b_^s28hBiu0<2woI9|;9_%sYQz(=9~5Q|g*SSIfh62)-?M zaG)=>=%O6EUK8?DYq`nb$~^=*x?FF&6Z~tTc9I%2l3unwwrVo{g5L_-8MhU#uMXC% z2fJOIb^%gWw#xQz*7y#w+LwoN@%nnAtc~#SCyn4>nG9j1=_H%_LKV-##Jt!yR^t@`+f)Z`M|zuaCvZfN_SSkY3|f~u17irz*|FU*xWh0E!F zfLPngq-L#~E+;-pYEFWV=DLT8R2vU~gW8eBIb3;*sQ|$Pi9xnm&>YFC@tRUR84*&t zUM?=%ygXj<3EvCj?!ivnp2fQFkS>)HC=H?b-c%!WD{)}e$NII}DR2R4S5Qo0nQ|)& z#z}_v_TX=CVxu?106)2FSN18Gs0)p#BCuxEs%<~lkPfI!lX7J;nq0LNDq#|^CulRQ6&fO zC|rRKwzSiUGjT?(u#jGU?+Q$8OIGh+72MiS*r{qFSJz5Hsys&N=G&-=0?a%RVSy8Gge^n%KB$B$>n8d>?PttSytf7*^KJOwSY?|qLc z$1Z$q_2RPg+a__P73EF1M>61hPYJvvRC-ANatsdskcX`I5dN~oKUdRWJ%Gcw@Vj8Z z7BUJn>sKDgj~_$ndVZ!i(=}Z2HLA2m@6x>kD!Hct#H&L`$Rp{u`*$lz7r;iz`SoDpHyNCYa$!SLxItW@>l~MOdz2u(m^wwe_58l7+!db;5DZO zfOYvLe^F0-aW6z~GS5VSWiWPK@f(OY3_NQb^1}raN^DBLjd}#9dk$4j_V!Tqq=qkJ zmI01KFyO2kE~V-L_-wNeYXwYeg>$V-E1y##C4Xx;a-nwZxh_+Ae8ns4S^o>gRWI*& z$}mvQCAMV{Li0`A@sN*aeT{=PLC#K?d>IiaGMHT@Us<)YJX#Sowv1B^N|~C6ggm-^TqF7sU?Ko*p;rK+}gK_-j^RI~V(hW9 zZOUnM25!1pcDCFG;`vlP>|Q><)LE|&>y5xq`zf8;2~X?od$U9Mvtu(~nU+^ecMdN$ zNL>@rOeLkw7^?-f`%1;X*?Pr)`g|!~ORsP)-eg#34E+G18?h?kVKzKb7$36eU59bW zIV<0w=*IW$Y|DH8O83s3=3X;KhycH1b|OAm0ZC)9E|k@cgE=%Q0V$Y zFl&F@V3Je&f{#W;Eo5#H0VJ&p7EINad|CGjm77(>G!<;cd-4;ocH5M9X&s;fqO_IQ zop|W3oz27m)&ewl5PZ2NGGDm2dNXZJaVocwKx+D>_)tN!aGJPjJ4A~yD_?I#qIHI- z=WC=>^tfxuQ85#jQCt>bunMm3mF;>FZh*p7147m0q`^yQ=pEAD05gTOfv(xyzAfCc zKReK}_G55v+l+D5+*X{V$X$tzLlNHwlzrYbqj;Bdp`EFO!d2UY73E37hsiSPSmp>M zd86Ek?s*GNIT?CG(rYzUWC^LUep*|Ba%`eM8dl^Nd}?}8(YgD^u3q?qsrkB9|D=6w zfZHm5IJ7S^e7&#qedvtXIe%_$9{M^3eB+3izhqVTuvZG>3;g(nl{JyFS8$Y!^6 z66+BRbnf*eiXIi~1pXgmNS^;$Ncw+Xa~nCzMl>kdXyC{iRyK(_%v$luR|`u>giSIXqDX4s=9Mh*Ul z#}mcuJOI#n5-=ou^nl0hxCrHmj3E)BKKFyHs;X#RR+gf>xqZb>On;fu z;1@Qw-0|+!9*5P>+L{v>dWDLk&diM|yeN?c-bQ`cs-s2gT!5S7mCR;X2OAC9EJY4_ z=uxeN2h*qivSnST-$#zWsFE3m{|1rr&spmpmM@?r{Cf5tq>jM_vp9j99e|ct!@Fs1lC>~7}1cnB( zC&8HSF){kMZ?21C{!e+uto2*DG_r^Iy{SjWdD~3*ZNj&6M<&cu`-cf{OhhWY02h&N z4Raq={plIfUAoYn^? z#6k8|8c{V{;&y22QAt@Y+9YKyx~mr+j}#T1cpV`jcbTJBf1>w^nmy=#7PVx4{?*Xn znchQ3S?A&R=coiII~jBUt~^+0iT=aQycBJpC!lc zAHF|SMe~Fn38&J}0+8Bldr^H4B2+x@y_q2V`!0tvKv9sG);V~8e}M$Ug+r=tlvDPq zbAvQOuyloULcwqJhTzLYl--{;oax+2isp$$CLKq3RQ9NSKgh_*te!ZXnx@<3@t?+F zTg`PmjH^$uHTAws{<5h3wi7~n!rB6NoX5%+Uk}ScL>!3xhaE#zslF)b&}DLDK7Y}5 zc;;tL%5tPb&?C6DxBw$#GN1A|ZYP)dd1f-kP(N-u28^HodH)Y`$Sora=BLkpH}KpO zQdzsXQcc<0Ocpc~>F?=rNbk^snvJ&hMU4q~#!VzS=1yS|{T+c&wY|!a-po|ylOhDs zV{wBFY{l(tznjP(^e@s(#$9O&ilo2RQdlftewN_+J;)=KSEl(!Qsuh-)GI2l^76=` zUEG;)r?a*u#4?2cD6E4b=eH_$&g=Vjw9Jf8G6*UG);^j)Lyqxx>vh6@ zjw>AF5bHNZ_xx&3(md^59_H@BRrE!if4QV7)*&cZndMZPLr}zRp5OH!hx~JS`mOx! z8lRQ^E15bcvSX$E+NHn!OHH%&KxSIeUPvi|>G$1V`G&C7X4n--TGpbrypDeXf` zrHqCTpmh{~X1;e&-L{qN9z-KM8T#7|tucrcVa)Tcfc7 z9)ayEew29^!l4ysrvBBthx!4MetT%c(3}(Y!eJcgXa6GI@gi-;H&YCed&7 zm(T;C_x_WIOEN!4!W&mz*39IN-r@QE{PGv;|A+{F>Ep(VhWq=Unx48zC@O#U3(|Bb4sr)8S}kY*RubqvU7nReU)| zY@_Eyo8rlbV|Hu0`9(=v)RTH|E@Zd!BPHYer4yU;Hn2$jbZ;k z!%LsQ>I9B#$s@4r3}qJ9>wj7Xd51$a&$N-=$>xTuqd-rR|LWg;`mBwIzJrzHa(@Z~ zYbrjv8^}t#)^wAm8Fr&>{>0@U4X4(BhGB*HmHxqAb^RuC^i!>A;_UePs_i~|q7B5@ z&cExWDtjTM61(YYk*7ZmZ>c)8#fRK?|FYX1tv|Y=e@(Txw2%4{E??3e$ngsUBb!nB zND)FK>S*(uH~8nIqy<*v3cQZJ^T$W?Xjzs&CUzi)v+iraN`!JUm0|Z}=DKZis(&Kx z)A1L_n_P6`u-XlOHZP?e*7{(&N(;ksbk8ykZhd&WA3sv@#DkbR?5+)l|ib2t91*87+MHw3`M_qYd&^$;0sB z!@6cZgY{?X@%MSp6!w1*B%1lJLe{=KCq2?}q_?3D9D7N0HKx1}U6#()op=5g=b ze+1te(_;#yJ?i=~`dT{os*3P?MQy02fy)m3lYo@!{M*Q$}hAD^v&syVU^sFlzic{8o?*uHho zbTV#-EWF}(7+^k^`{SPp$@fPa0^R>6Nx5Q`uXP}cSj(_HG#}ju{plC96%n=b&lM4I zxnz6euhq9^+)gIPEzH3V6x)0-N$&1e0sYz1Qtdo9I~@c@Vg@FYbdI)+4{?b4e_ITP z&41M&rCoK5D_L|Clf7qVoj0VVK`|E@>03$RGL;rF;y2wW^OI3wIs(jf;{GC|#+ppU z?2ow8qGV8uE^0vk@2ed{gMFN-G{~`V)MZ-m&-fRjdF+J$@HgaWW&UUI`%h2se;=_; z%~S~q4Gm;i&fg1I1sytq(boYsM*!sfn=3TGsK9(%pwDkXWVw{le8Jmws>T&x+7d%g z_xk~lOJ`MH@P(+#Az^%i_@|zZjO8eTTkZ(D)`|s(n+~T%zNNP+U1j`znQ30&y052q z@5&Dlrt~zgWsU*zs%gAIriBl{Z?a-2d;Q#?uE8y7#p-cCIwwP);$Slt!qwa)`!526 zWErB9_9|Y}II2X0fZldJGPd0C`9CCv`(Hsbt+}oyT6sQP`dk-N0-Q$U_6spgj_RhS zYNvW8Khel%(Lty^=JCR=a`}!;IgZm1*~rUrLCzVdhTF;KkExC9&lqAUaey|&K7_NO zDhDy0I$SIw;)=%QVRZI|~;DcyF-JKd<5zJ zPoxHD?=>jhCJI*T^*5aD+j$sY1+SMlwnk?1}j_vnUoA&ofzjk%5JV*_nRgk8+U+;7d zlM$(1w_Ac=*xFISgaV(RuON|0oS#~0E1|+v)2dE2-RLx2qiB5b_Kav{{r<;1^;J%W zlZG0TV{R$jtI0#F4RI?O;mpMOaf~D(kCk&GC&?beG_gLiQ+6$P+?rZ|@9j16lI1ZC z?lK%{&>g}!0PBDqEj7}I7=UMFok`*~uzBV~?7B>%M3}5s2!~#d-0d)h)i=SDCm+e? z97D|bIoxY-M{tSis5IR%l>`rv?M{qWQrTT*Jn!El zscoj4rhV_{Nhyf$eYGc7kW-&jgLZatouvQMPubOf;iQ}&YU*_8QCrHd&+cZ# zj&aOo+(q#S<5XYWH2dn5#CdzUZSBJqCW~n~O~Yl_B709Yf2Jrc|Lv*}bs;|e+Rr9w zCH4}2sz}^EBqqiS3_^3P&M(usO;=ow#;75^Op0?9ZbU}| z>0MwuWn%d9qKG`N!4ta~7oYuxQqPf_w7%^O7sMiGxKx*y&3SL>5pjOh+!Ac-Pr;~M zDjzN8SAlbL-o>S=Ot4p;@B<_-d>n>HGG_xOLH-$eix1w3F>`DOymZ1&70=5(WV=+# z-@PGR+g^NLOyRkYSl-Hqvwh0&ETQu0fe#540kjD=2$Pb$BQ6*w=JE#8{1IZEn`eTt zvQ3jA1O_~NxVqp;*xs)mkXH~n=nw_-qCvc=&tPf#{qL6S$5V?f zMqU|{0GAtU_8G-81^f3`QbHP%{T?^%w)Uo>=>vf3Y5o`d_0tet*oGS{&pUjVQS_2-4ofSFBrW@6XNW8zYt^P+e}ywPa+i1Z=&1*jvH%{~+p41YV^uI-VGO zzu+dDaPKx=TvzPe@4CvBH2?kPybyxgke&CLEESh^xW_z3{xe>`gWrWD*9k**(ol!9 zx&=5e)bltUbd>LeUgQ!P7OGm4+3RGLCAQC&Ucv=nYE{F0J4P}xhI)lzQKbam_xoX? zB(nk1tB$=oop(g6H9nUvq`2 zUq`38D36^xYs;0$m?$#gQ z@Fw;{ei9mlh>y_4TKnAbTY%sTT9fxu)5^#=-CPWf@K|}wOHb0wjZT&DO}@;L`~� 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

!eb4P<=#9BP667_q%=W8$-+ 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 ALjV8( literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/multiple-studies.png b/docs/assets/images/monitoring/status_cmds/multiple-studies.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1f5aa14dce247ad53d98ce6159681635887d16 GIT binary patch literal 20539 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/outside-pager.png b/docs/assets/images/monitoring/status_cmds/outside-pager.png new file mode 100644 index 0000000000000000000000000000000000000000..99d659645f14f6cda2e9bf99c8dc6fae1e7fdf37 GIT binary patch literal 24756 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/prompt.png b/docs/assets/images/monitoring/status_cmds/prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..f48dfa93968be3574aa74ddad2d47230cb8000d3 GIT binary patch literal 25376 zcmeFZcT`hf_dbZdVgp4)Kt+00gwPSCw;)A|G^H7k-V6|;sHh+yHT2MXlb#TY1w#uh zNQbBpLI@#}&_iGXe%^0e?{8+-%&hrmhP7B+Zq7aD+*9`6&$FMC_eO?VtS7IWWMN@p z)zMZrW??yO#=>&I_V`ie9rg5UmCQc}e2um4u~hV4B{Kgx?4o9%#=`O`=G6A%Bh3F# zcxhYuvap=_y7zkk?OEi=!t$g}M_tYIxh;7L_>|8j^Ut!~4yLy{RX=U%opTf5(0Elq z&9ctpYsb{yK`vi<*?9`HRdskSE1t{FKl#c#2fC4X-@-ZlDL?AoC)k-xV%&zT*Q_}D7;n47ULFh!XS4!g=W|8i0 zP>%_kivOkKo^l6}m$ftTu8W?~gY^bY0{Cl^*2^}z0ulOO9M?XL-C9+W>r0zv^`wkm zxk^m$jZj)rm;movKPR<`586Rwy?b@xHt z)n$Dq4;@Cze_ttF3A0_RnG!vYnE>=Da?^t!%%{C%?IfW}$u&xZUPSq`zLv?oRM#>+bq)7m--JIZp{n<|*72c!+Od z|KYxx^?!>Ijd%wDaJ<6I)d7F>RsQu$Npvv z404EC2<#MAga?ykEViASlMhs^ek?D;)CYzto$GPy97yS?eqZvOc%q;t@bT3&Lz<}4 zRGUd%5gEJN{NP;Y#Zm?+7~If$h}YA*!k=^nR#w~Ow1)Z0rg-gJl7H2?pq$}Y*^eOvZ z@^TXC$6znPXoI z@&kL|>3{0kl_U@`uPWTV>?iwo085PP(V5@tb`gV|>ECzf!9?$6P-oEe;TM+iB1LiC z_}N5r+gOhV(Y{ROn)~e`BVSkK7yxgP(j&x7ZdNVwDGf^n3BBC-_}}3knFAjUdrQ^M zg^qs`B!_H(-nKNBOK_(xBNrSVi*MfOw=px$&qfMx%n{=}bd5gNwNZZ`Da3+>JHl1? zl1~+fl^r!agS?vOdwbj@p{s-)=@J)`VH8j9R^bG3ccyd&N?|O`)&P0-ZpY>Y^^o5b zqYOOr;@y{Gb+CwU`TS8SI5fNYPCB|H8PdZxIk$=%^>saHj<9xCR=2W@v;Kp!9)r0)usMWJ za{Ou8Ue!2L;gFg5Aexr#7G6ep`=L8c9dSAWAs|AoD0Ykfd`xJDpdf*WewDI*F&`>+ zxo_v^rPjUK3&a$TXc=2orvnby59?>=j>k=!t=}O4Z}j?2)o+}=gM2BHrdS?Pc1dAy z-ln#Mt9QnbIYp@febJuW89D%rj^az`!TxSV1yTv=g`e*tu#iIe!6^$h&&LMeGntNV@+2T4vyy}7wif}OueOXO$OR>1Wv*ZMHQK(cXc+6q%;f3uRspH8(Yry=$ zbW`_Wn}I}jzsz6*wO)8KbyCR+K(3@uSO%46kf#-5bP4$SzKEh(XI=AzUxlR1h|n^^ zv$#TuvQ-Tub%mUf`w@%)Q)IydiBU~k4DGH>)y0QD2CY%o5|Q=s_pZBiU0aPJpmXtHLWq0x1a>EKIR0B^acM(Ux>@GzFl$5 zZWe6fUg+d*z{&}UIpHBOS5(~nUad?A_J#r9^}KoJWG72KWI&Y=Z4XV; zS-AmA&>sEC#((@|=q>Ci}mrSo4iP3TgQ?lbB76i*6F0;}oBf zdF7z$<15w|`*x9#`+9p!VD9VLh^yA%K5L2P@AZ}Gw#io440X`&AJ7OC=qI9|HH|-C zBW05&z>@b-q=?$k$}niz_(eA5vC;B8L;sR5+T)LMpEXPs|lzc%Bd=^_J5ZAJQ7cK?UH1mJL?h*-;$qy`sKj zD>o{8(5#0%;uyqb#IaJxE#FTPT7DlGC$A#0>e%@;uYPmB_U3Jl>CeP3=-N~BXnAQe&1gTumLPS6S6N zh&n^rf_!=oyx2@pF;@u2=TVzv?(yimXBD|NZVC5aPGg+@#B_VcyT5xwQD^uZfe?zM zt$W|rL1A*J+*K>vxchfZHr^v@>Nm9wgUU6q<@+MbIpTLd_fp8&aE zn-3YJFJ05Kdsh^%)hzPaH*)Ew5pR*d=dWqp+02LGg}3|&mJ@~VXZ+CMofDJR?8NAr zbU@=WXb}r2u!Zt`B}Uy=>NDiSl-fH`D_5@Lf}p{KoXqfns=@dc+YD=dA-NDEMI5nk-b z+~4-Q4?59_R1$aR8O)3c$6m0uU2yo__>BjqIk`KyD0&`i6AFE2N7BJIM#uKLsh~sR zD`715D*A#&PtF!~yF>>3T%le>ZEzPzR&8_LR(z`IB#+QAWV@Jt>uVDJSq@&xdN_CP zJ=-=aVvJ+;$e#rr%I}M9VtT%YM?z@65EK}E?N{$IwD{~xdFLsqpN zY$}fN7h_k*goy~7uBBDmotJNxJImPPAXr#NM*gRr`6k7!Jtp)V*F;txn*@RXPEcE& zxi>ZWONF{@eC{ zOhnc{h3+2xk6Zr_PIEFTOV_DYqKTh=Xum7=5p%bTjK@5?LN#Vrek-kT{k>~t+X$hr z#cXwB(g1iOw$S;fQvb_@sIc|siRpMuM$-B}PoKP$15Bg|9yZ;7tj!POPJ{o5uU@QE z9Gn*I?i9g5|Mh{BQGUHm5;?V_%UEUQ5!0)z7BG2>;`N}aA72;NaKtDQGTk`|xI z&Y~<5oqg|9$zO|Oq%XSsZTd^C5v_bo08(cJ4QL5Z+8Qc(wBx^}(Gr&=L% zPIV^pzcl0G{7R&bT>WfB{b3R{8+U_$tQ?R(_Dr{VgkH+?uwhp-2CIrz29C(B|I-jE zZF5ewj%;wk|GqIovYi&5&>iekZ(aBK!$r%k3`O*jN7EnNGE@F}jk)Q`mEzx`Qy9JV z-=+{IvUk4U8)*iT1>D4`_(l7go$FNSE9?HdN@$)1xShY3Ql)bh1%G+0HnD%RtmjRR z+!CqAO@0hxTr`ycJVA42gePc)2Cme?0yElSb>|;tS{CkA^`c$@YP^`?=;-e^jNN?$Y`0EDhGcl;Z$Y!}k8xv#OSl6G&N&^lX*Sk<(PrA|OYge&7}htRFc;ogEfy^+-#WWK$p zPI+jCiCjcfE=~1D7nN7ZSylT^#(qgH{eF-HDKJ~odob?vG5b<%aj_{1D1B}J33q`o zk^CtcVZUgtpexbxMvAe99+txnIU;52V-GFGwbvJgoNC|)kOjsK*Gkp*U4>W`=kbyR zM~J*&M!XJyMYz+WSs3G7Wn!va=CPYG-8kL%rjS0;fALbzQdwc$bgY5S(ws&w+%f8T z-E1d9duOR`Y;?~|S>HG3HT`68`ivmNvmE9-{m};u>`f|_?f-N`Pu`yZzOCS7-9H{XW2iQ)Z&d7QMdG&1=+YPo#XNNqc3IyynHKtzlPwUs z76U(rNu#b1O{BeCS4dW+dOp_Eb7V>BtZG~W(-u9833g)ArHFv*!D(xCC^l;fTld%W zZexj{)VfIJv7RAfl*huu#C(V0J?`~IyMMln*$TI$%M9P|vcAd6U4DY@v<-W7|z;RBO@LmsOE zomzzp9(|CnKMqcQU5390-m`yqmBK_i^l@Gz(kPEWcC5u;M`wA?RL!~WYkdb5sV_GB zU_7zzo>nwiMsmOUqvuW40?PU1<8vnAMzoKETh-chBiA*+-iItTud_}{Wb-ScxrNKf zhFSHxOh!wCxuEm+jcu~QVKXoJIyT~Lk`tuoLE_+2D!T&uUibcHYb!%)swKuP4yO%1 zJF2MiAI`w~xXge}DLZ=nXwgklw>&Yu|IfYwm1?R08s+=gMG#npVe7Nc5Uz)~MXM7O z;aiP@rykOC{QU%`zLb0rFU#pR9QV=I-yajHuN4MH`F;S&sYsL6a(=}$R(Z*X`D2qG zL+D-$GnXVD{%fiIoTvV!&x+&r4VHbtUmkxImImxmiAjXDR9>y<>O$OAScCKtxJ2UHBT04ELcqPjd8egScR6M}yB7T?$cb?UZ%ueT zBD7z-GmqNE4?1qAE6vwzb0-U=_wxa5SFaU?Ef>4%Z5m^suGKcvvoc+K)x1F5g^SEv zzTS}@BxK*9V_1bp?bPr-d|0_$>_?y3FEcO~$7GL$+7E@m#AU+gWUuMHwPbJnpUDN< z{(!Um_k4pga`yw{bftQ)LPob(zSDXACMC=LD5Zj#gD^1~tL*kzTR+{$4>7R;rVtnuJ#sS|eN2=-+lf5+BF&+13`s9t|(YGro` z#M@OH;Uv!e##bn3y22s?Ip z#ngugeK#eq*NtjEdj>Ah%+<3ZYC?&#bA- zc>2RK)Q(qXV9JV}Z^G^$lUppaokFErgV8HhJj@DM^n0HiF%wzOfBxSLD1ufTbEJW{Wy#7++Z#mg@GiXOCh&8}eBUQ%CrOE%<{bI@} zGAh;|`939fb?=qzKlMKl7pUAbm!{rR%Pb zK2^$i04t>vg(W?WR4I2<5W0W6G^1s71p8nji8>d(b7KMz3Yb(R<29U&*V{BF6e!k0hU_YW@aj*Cr&rw57d*mQ9wl4Sg9l{%FnA*i%B9+(8%V}Ed4#PXv3IBMa7V)E?%x1AO026)KS(^zh^B_XcGWW_=J^vdi4;^e1 zE9qe5bc~&!5ZwDfEC=DfQ}Zv7U|W7Mb=Q74Az&o0U;dKS&R&VOC#e(vtS)BcJoUZn zuk&^=+IQXz?`C+iFTbT-uMXjLxa!^mRYh~iO`voy~AqVZ&XwQ3EaJ`MQ3yQd)Q{vv@M~?ys(}+ z?oD~fFfaa5l7G(rOT4(1GLWUK6F@Qm$-d(Lu<+QQPFcM=LVthSHK*yJ@Zizod!3LH zs9~<1N!V}j{Vu$+{G*ETpI;)x@V%9*je_E<7gOq@d-EPyT>SF4O7G;(EM209Es~>f z;gMc|ESHaMnQjf@`sUiNIv#VA``#zYx#gGG9WjSX_9|y-Oy}^xwJ>sbd}wn9;H{Nn z&Ud8Ze}zPsn>(5I{@bAO7;KK2pL1X8$P?YMj--D0G>_f0aW6Er>Kbib-ww{LcI{R6 z;ug~>xfQgN68Ao3aZoclG6Hme)MfJYZ(winY^69X(`)y_#W7D0?av?H_k*;@0@QE4 z4;2=GCvAX}x})@GK8)6i-2)p2BUk=`O8x%_zG<&1mTRw4jx+P!r0Qa=M6Y{OwjTg8DC<+LN17_Ai`D`p+@?55V)kCl2^` zur~3)KR8u5d5v0-yXU$W%@_N$nUf{U)Df6LAyd|B)1vgjq3%0yjmf$1?Gphcog?fI zGV`Z`pvl2Ad(OJ*+VK*LM2O^ZuRTz!ER40aEgP&D`e9)IN5Hs{8BCcs?3}uXW3lW0 z8C7|M&P+tz=`xle^%X4EE*5#;ei{Cf{QZnHX#U9cCkM~+9SvOxxN>njdAo((CX=Za zpaoY>)j{{#u^%{Z`sshh1l2Y*e1i7l-H~dujs$ z9WSh}*SL3qC8rWmezUV8^_2%0cfV!U(zu%2B8u^!Vqt5UsylaQLw&A^jZAnHJ`L|; zV>Z|J<3`bine9$L&(%Vvx1veQcUK0Xac;hs6}+5V z!&!Tz&33-$?-`ERu<>bAg(VK(LC|5h{-WiHr7SE_!*ss#W*}{iWI-kL@l{DY>BjOa zh!51cqsSGl%0~)Lx$pIrrQ(X(MLpbPStc{X%uTDc9=X9uF>oBMg%Q@&qkE~AkvBUDcdV&5cJb;!jB%8jOf{q-OL^>E94+cU|#I zWRx&zmHQ0&72j9Z_;9hvK_!hX*b*2fD39>^WP zRmLGTDpX{5WbBV;4<@|8bC`+zr)hH_nmOyU*AF(EtU+iaE}LI*GO8;(L%<;Odbcqu zN5P@%J4*HVA*nrhgG&$X=|gb$?6A|!7nD+*lPVg7`b@ND5AV@J185=~ zDIe_-T2no%JhujQ$tZM74+dk+s$*6kX}QGNO~K6MPfXR;1=QcKI~Lu$opv`7Ru|?s zaqJUdjghwV)2}n9u(ZQ9n=i`tI#`C=r<)|gZ;2pq!UIbul9Uz8C0ac^IzvXj!vke{ zV-#wm)uZB2=7~Z{yluh&g#}nwA=IG)Yt7_CthJ(pIZeT;PxTt?-NZoWH}!fou8n4? z3b35df3n3-tUpVp4Af<&lkORjxZV&sBOha~Lfjdeckw^UiCZ{k$+@Wf_}q zZ7yNh{0k`yG#=dpUTr^;TeBis)NTPi_VCP=#uE)hFRj+RtV0Ce<^3o61QrxraqtE!yJx@t}$rZpr__SPIjp`J}+4)7CC7 zGB(J2L;dTO#4 z=#`h%BEXsiNY_yHh@Uin6Kj-{Vo8R!))u6`=*{SywfVUfH}X4Tjcl!W@ycT1{8#=4 zF}LpDKNg<*NW3wdS}wmGzDS;xO4M{#q*0V z^_g8`k?=DO#+1*?D&1NWm60Ffe!gWOTcYQ4si-{Llez0Qjc6&eh4TyHgKIJlso0G= z$qTRekph^^^()h{NiO&ZV^)1aGo)Px7&u+inHvTX`9yt2mp}`sv(CeYxkcl` z*kO|D4R>xsxQdmY*P*v)DE)sh%>QJ?4@=$m!%6($mp`)xdJ-<)JvRMerE?!>jhvG) zdtu2jz_Aw+vz`hJ+S}?Z$r7$5EWUSJJpkL)d{b!M)Q07~+bjbAndtbJXZ|nZw}0o~ z{$1#|U)BGp_Mq?Lup)Km z)iG*Y=roj&#O=K*LN_R;BrQsoGs%zwCWm|BDpKwO)qD(Az~ianPvpSVcH>VD-+wku zVA8K7gR#m{INNO$ufcGRq-1HRLQUoRpht5n@9Ca484q?^TyJUZad4ZX!B%4eiq-J9 z668JDmU^|`$<*h%0Sz19&N{gw3@SSVBe|THtq0haZycJr1h<8&R%~8Q6 zk-bRtw=eB`j#W-%>wfVI-v#g;_I?6$K}q1E zf|CNA%KKwyKo>3S!QSBEug#<*!7q6>URUxNTekrfp_Wm?8O&I$=Iml!Q-C(y&DxbY zETXcjN=2*2F;hTPTF-PS`<|SVx+_o%muCtpDQQ8tC4*d*uibi|fLdMEs12pp9=3}v zLgnZ2ap|gV`t;cD5VDpl!)ETPN&$7Y@wKI_9*Lrxwj0vA8jjkYz=1y}ZNc$PnDtqD z@U$HFwT-z*2hU09)oxMGvd)o5s(=}5>}CrtNY8eAwr|b+_6Rj^y8^iky>GjXm8Jyh zNg$E?RO(irdH%rU>UA`{g=a*}{3ItS2h< z8HtU_O6V^c<3;4D=6edl4js(SnUny8J{a7K`kG(cA~vXE>h?_GC=B)}LdC*;WQDbl ziJ*h$ZhYB&MrTVcOfB_^_42+&-geSZh|L%`uV?16`<4WwqS5?ID>!yM3j3*5d6{;H&tV-i&P<@~EY|V!THAI(g0#QmJ;EgBnG!=vNuZdnWNQ6gpfxd3#%Rdw}y zXCbv3`3oA_*R&j+(Yy7Sq`axAk_1z&KNKeiTStb_OZ$FccC}!lWoWyj1$_#A=L=4W z_qn*eJ3V~GyGOdXjE|6Fl&L!TTtITC0iYTDi}u;x&{RQ^(kqEQrtZ;9(?jstb>=4V zCd(%d=T@rQLZ*hiQclxNJ9is1U&w!VXJ54EZ?Q_x)U+Et3`0~J|K!q++*G$a{)RQL z2GEy>XVnL62z6UuTSL=1!0&(TJWRUj(t4ENkfR2b?Ki&qvkwS^R9KK>8fXEMk{->1 ziI!o>D7wt`Fwlaauz)yHX)Vxw+ALM%0T7h?p>f(IsSs@@5nw%pG%$^&YsA*@?NUed z9K0S1K$;I60w2$7w;68vLp7Al@yOKm0aWfS}VEQuv+%akGbLu$r`nV~aJ!fm{}6zaGi>d>5haL1Atmp+g|=eChU2ZHQ?$ zL|1!auN;$KIjuBSnNc)>O;3KF4-Uhbt*7mfoej=R*mR0lmh#IN)aW)nGES(!dQ`-= zX$~|DEP4B|2|(I~fT<)eg}g{FWCC4b};q}D!@+xdaH)hJ#IMH9s9ML#PydVv%+a=yvuLStlqc#NykL@$F88;bzpXqP2 z!3tEKObN~32vvcz@6lmnx5kwjwc9i|>h_o*BW;t~L~UsBd^hXEu!3t5rv@Gq zBuW#krwgg^_VM{;U7j6*%}$OP1g5?? zFXq(w0hb$=$y4SZ-JZQm? z53x{;C_0&!Una4z1=I=a#uCLk!ZCJoXGO#}UkWlcxga|5%nui=z)cBg^C?c>JoE15 zvx5QPULS8UNe|@>8rF$7D9(jq+1slcOIp#shJ&FAev?tZQ4$?q z62sL!SjZVd;~fe*e-vCF;AmpAG8^$|deeps<$4o+XDCE@8SIr5=`g`ssL_W#Eo%)9 zG~f{ZH3@f`60n0Bj`SQh%Y;@5;FReWp@X%D5_pGL8;E`PZ6+9|fa|gFvogw@=}Vif zt^Cx&7~{ii;rW)+ML~>+XFK<7H&q?Z*s6O;QcO1Ad-%}Q>RB|06nrq!6-oxu`N-$Q z?Whry5Lrn&cxChsE0S&O=zMh9u`NTLlc?>*wZl1kbWG2YiI#dt!riG!_J;c#U=gUYk=cRy2Luvr)V}QEQteaB6I(3Si3jyRYt4<9x;c0%BntS+=bRC;NdoRum zw?YjA8-Z0H3SOeU24*CWoLu<6Wk3JBt-bZ*fLX&2;~zSmJVk8Xoz1Ax)sKk|&Gej+ z2Pji8rQWG;$Ad}Vo7>zGEYL8RQEgj{w#b)rZ6=iyZ{vv)9FL}gW*IrmycS}o9-ico z79&Cm)qM*a3G(siMo*kQ^-}cXR9t98g=D{m%}p@Jc&^QcCZ6I$Z*o&skD+CTuG8{i zydeq|?Uirm!QXlB-?sDRzZ$Phi!*$i-0HiOb^;w1I{lR%jAF;f$*SJc|0(s+68;T+IaQmCpp+wEe!Mg<>- z7C7~czd<~oOvO%q2raD>rdPSyn_;J`Go>2-hHiSozx~25$Vdj&)1CIfX)3MR4eZ+bkqM>2 zkb#1RZr^1<_q0X>hs}wpNjVJ(N%~G^BBFCyQgbz)^jWYZx8fM#*6fA2wYOj$m(zrL z#a@UsF;1k~Y3!*fLtX$&{4jaVc9F`-}qSe2op?U%54F zJf=O$JI9|PF)*=|ypAyinD6O?V~B0t_g_&TF~g&)&tb@0-j+AcW$yVKF%I zn22zyeX)}Ml9h-;2JAxc61t7?$ry`5{iqSiIQ_NGz7Df@A4%9XpqH0oDWCOTY)qA8rDSgeDO0~BT zdLfe%?YhcJbD#xfIoc_0nYP54<1ukiU5nVkw91H(HM=LaXYP2^mp^Wes=%Gb_wSq; z$`m5jcdrdODnLjL4^}eEz&L3W8o-Qx@R)HcFm~YPVIk9dtM75D9hwcEs}gM|xj^tX zn}<~DjgeRRik#fVUC$y`Rb)(b^z54-If(c1)Ln&m!|RW}b#9=C`s1r?eJ{7dUuyFm zK48<`E#5s|{T%ofUZfmS2Nh$bm4Hj{>9=e|J<8->8pmPr5O!O$-}_4GLqJou;rllU zw{G&GckJU7C5ig(&nNuJX~dQFKo{XCQwiewr%?MmJEv)>?rt4#(f*WN3F)-nM&cI0 zXe~F*W!_m}A$U*;i{<{H37AU$uqR7?H6^g($DF9pL6wiKmSZtKUV#< ztM30`o+=78jSh4zKqQQF@@)aJnoUU&vq-2{zBC4+Wjf7@M%W>?kRf!Ipo z94{`}GvZ8`k`VxZHdOG*)-iDR=};mNT7?Ok#5!GURjP!?d7?B#kaLk+Y3$vnfPz%r zX5LB8KBcc%L=xeGYM-Pu%s&L2*#RU~cG>};;bSO^D zlZO>wiT(5H{1QY#Mcfhw(B<)qO7fAjxCrt>{-h3#o~Fl+G$g=!f05f0vp(16O`)qZ zeJ8uS!)FFVcwtwa7_%+%tt7_R32rh1QR1O#b!?7OZL6nYLK0fr`CMnvSfF>EItdSf za61*^ZK2q;|Cz@}8?0w9PZ1c`j#No`H1knBTZE}a60LCUi%Ftcd_4sQ{#hrhIP1k+ zUIDj_X=g(8&<}tWRgH5_&7@RuWZ-t$#CnnQQ!v{Y4*O0QTieZF3f3XidZ(j>Mq|D+ zlZ5rh(fJw*^%6?~3eujt2c-CJj5nti@)j#h9-4~{Es@2rZJ!pWM63l;WO`p!Zl?zz z9AzYlhn+d;1J561CPM}YJMB_+sUmi*kD=Dc;$u>Wp0QqRh_L}YcHs9 zRQrVyW=_nlehY#ho5A5`R+AD(Umt+w!jG0jn$z7n)JwF0zR=c)?E`AhUgbVonHkLM zf$~&*MLw;UdmQ~QYGX?IB4 zD~hWfl}8g1zsDp@lU+=L>3xClUA54lKl$8GrXD3$LTO1#4XSp@HSzSWr{?nsqebe65&Xoibv#8g*>1jEtIJD43tlJ~gq+1AzUA>7 zSfbxa0-MC>db54hv%AZ&jLh~3)VjUR(x{y>oV)WYdVTgYl82UZRe9TpDV2RhK}n{0 zMktl++Roy5I?{GTL&|p2LXOVSfAE1f=&IwqNsv@LnSKSHlIrdrq(?s;L1x)hF|@6KDzA!vhc#I~#>)r6k06{#2M>@4I6B z=Q7w6irM5ZhT~5q4kfgFVa;~y39?Hx_{spiV7lRzXWbQB+hJdaBz!yJb6G?G8#Q$+ zzAk=wD9Z~FVsK6s=h=K+a(69oA>0bG08OIE;^HY3@QmM!pJ|dqQH?z7yl83{mm76; zxDO*Y;@3iHn2zI6-K=3G_S7i}w~9g;eSq0^Rb^Ue;mY7K*{CgM5QKkguOQuvmC0a= z2%^CS!X%;I)paj}JP$&#iYjB4gF1577BEvSpLmv6CE@Kp$z*a&b%k=)|9E?#)>8Rs z<$b?44Il+_@4!XwzG5(L41vj3Bq}$HM?<$W#0lJ%QUwn2u3MO}#rTUp3gh z^B4@~1LtAl!d@kzsYZvG^EMK_OjS+60y8fzsk&ig8~O}-M>W=bHhlX}-vYhaY;!5f zg&Md!Q91Uf7**!60msoiP!5GPp`$^-me?3PK8F0_W-q>30=Ki^>rdMqz@H>7!(I|= zdVOCL?{(9NS8lZO9Jg;Iq?iuJ()5M;cs-QjId&(wa-08b+Di$FWWWLmFyf&b4bz+X zld+Yv54z9xr0bFf%$e+g#Ecu!SA-**bQ|K}QtEZqY=-ADhiexb4@ZbkKK#XM0cR?_ zg#`t4yvs19b_J?59Dt^RV2+O_ll4`beP)V%VmwE==0@w%}AJ^ISOMW~A62^k+`4du{L*Xp=B9yIBL=0?_b*cu!BZ7^J8QHok4VAM4xqVF1&ty8Xy!=9dn@+=tt;lU)mPQ}PE{$V#*W3wYt#;9uPta%Q zTT|C*)z0zwfR^2xrTZs?p(6R;i}lLH6(y8xEU&zLYsqA$rJqSsLDq&5KV%S6OzK9d z>4+r><9q)kGN?L}VEbrgC`0pSm|R$^So3zjNrUZ0!iG|Ep?&hiO0=%U%jum=*aimS@+l*edz--z-D*$;cc!4dv{hziWwAn zZ{SYzQ@^2rn(Q>kJNq&p$>R6A%yV&R3IQJX)pWoyUH7GgEAYfD{Z_f5;VFf!CKFQ^c4%;A0r@bck zFb$xlw|i5?jQym_+=+@n2EY|(7@OqHYnSeKtsz*TS`DFyJ zUP3Up`gFS>*rGDsYyh0e(RMbXbP~F=jF|c{tgN(JB7yfg1ALfH+EAPFf|k396}k1p z7X)rnY1svWudvFy>kaBVD-R;L|K``$FO=#ae|=&0OJd}jO;@6sU2VaEJsg0#sJ z^NZt6f|dI@_-WQ4y?|)NWs`II(bEL5^?X`;Q4#t)}ZST{!$&?mPs`rraC6HPr{R4gEuG zywu9`JLbrV2}04;2}@{HkDdbelbv30h|VZ_3p{e`P8~FjJjSnq$io0nv&o&#n=m5e zBTp`Ur;B39#v>c1_qY$XCLO4$*oi;EJHE(HI zUG{q0sIn{2y8fw-zm~l_ayGS)NI(44tABI^7efLv{Gi{uTmG;kxYpPp~JP z&mkrAg=O-VYrM3y9m#`rCl@u0W1zR3RbOR{N5MwKiUWP;o?W?hP>aX!TALEMZsw@x zQ{VO+k&J=Ck9Ybk*n~)mxX7|)^?GG_HByq5{cZ>3Kx$;C+O$Z!jUgbdXEmi6lwun6WePbeW;TfhlJDxkrB9J)4}C_=A} z_3T!&R_AY5%B|C{8Y+EL!#vL|Op~jM9t70+?45<4_C^~Py0N7=0F4oj80Pn$EZPov zZl?@Af)4frNKh=sKa}e^y&DRZknF7aBZbYI^`-L#Aqk$0FOxm%2d}0vaJZx&yh6gW;fm9&+x27xq)Lz9qneB>(8K~$7JQO+Z}!{=-cF+_296U zjTvaC3${+OK? z<8>8b8yt^4)I81RcJO%)4e*{J^s<ze)?K-=p-=xpeGOQrP;aGPac)Mh zB&*LcT2evkw-f)lo;!34fKtyL2(eJwRiU}Xp#SsPC-ZGFe<_lYjR>c(+LzRmN1vIT z`mY>G^hZ^ewow}p4Zed3%91uEFTZC}zTqJ?PNf;5xZMQ~>YziVy!NDDb^~rc25HH` zh_GLs+Pw1fH9iVWqB6eG&zy*`nx5xw`(BZo`3@|QZ(zI^ZXXsBFev>}!hqqf}FXm9eP=y~R1J z7+(_?9uBtiLwtxL$LHb#wR8eThA{5*{+-?q4Q~&+ zqR=mRG*iGYgm_GI3ln>~29?g*-?f*yjF<|gQz|27du)eWGQ$2mBdjQbuM$KUS$bEIK{{8zU z-q|#+xl+`MAarY%7_?Fv<}V$eVDK;p#=$eqR);$93fpWQcx#$7M^{h)m=( zV@X98Vwgk7apr88wz1t`bzS%4_qgx-asLO~=keM1`+mP(ujgx2rh9y45(<0r1*}4& zBci+d>3v;h653OV&2nRx>Jj;vtD4~z9K~=;ZX@VO{YDaj$ixs{tK+O%el0UNAc-&b z+OU0BBe8mYYya^6L86&r70xx(3}n9Xn)b9JOsCKvlPeq^nMzCKcXFFQb&7TKYr~%# zdLe})orY#%JtdxZW^SLA&Wl}eEc=pqx|nw7ZglL@m0)&=l&ptPC<=eJtNF(>bmpBs z%uA$FHTsXD^UqDx6SZ;EiiklDVZ(wLbC{JfUb)akR`mvNdlg{GpcXj1)n$L_;jzzy zmA>a@Ai^f4(EeldFe!dMkA`o4n=KIA4ZLH+Q~Rtr4`btA`wb3#ov>~%Z~4kPf{ZIB z_KA4n`ya_=azd5Qx#iRY+`R_EwvjnNcs-q&oW)|N;5NgK4X0sX{)7wxq&7ABdCDg6 z&T1TsAl&C=XbTWU30t4Kf*&thC{CYz%X!yaxfvVVzX%vfP9GVUvx%c^?^mbqD2Iv- z%ZYuQGRBQPo%U*UPcoG&p{troXf@kBawS%ngjh0XOIHyJ^=Ke5m|7*)q{PP%uU@*vXPo24D|p-|5#cQd_?uz z)$FEJ13tpDE*soeNP_p?t~uMc(HfC0lSc&- z$p2RxSCV(kMUT1yyOG<|L!VH-n25h)7oVqe%BH@2XP@QW-P9G^DYKK1bMw~8Sk~e` z+FJi%sQwXOE91RP`D5+yzVzqgAxT;g$U0!(1jp$c0tts>&ZtmZ2E`B&KcI56QhZs{CQF?G z?ef&4uk8Ft%3JSC=<#bmx7b+hS6?R0AjOmCh#+R|0XjxZ=q+nkS`0IKpv_tP+oGIY;}7Yti} zXM(2xBh2wdd+Q0SmwR!{uSs%jZ0$3Rr&-mxSU6B~NjqseL$!Zu{tX%#SWdeSEa>Ou zqv@XP3pqaF=Fw0N3k_>aKt#-Jo6w5*eNSyrYsEpA2pqjO1Z?6H6a&c|u8)6+0N(7|GCuGD9DCC<*S>eHA19b zzS^V6Avi}_h!VI-s$b5}p3$u@)8?fKs1!EYSGtv7Gp>Q#eHJv82B?Mlzj{b+T)~&W zL$TfAxCO(idKu7S`Q|S)dggt`ek))E%qMIOaPCHnX0`pw`D)nlI0PK4hjJMEB>i=Dcm%mp&l3TQtyQZ+$ zF}*;#1G5dpyaW7P9HOAStADrp{j|D%eD>6VMkcRpDS&`G27g2^H|^z$n@mTWbw(;% z?EVF}7_h&InWeXcLV>XCT!UTbKmA?8Y7b+A-qP0BFeGtcfo|QT3pt{eXaui^H{3Z| z{;2%R!hfn-j>ZH^w}aIX&2X$%2_1VQYX`=8aJOKD3?XR~CA!d2J;WTS>I5Q^9ov>j zS>QPU*X1q_izC7U(zJp*r=w)Fg-X0kp3#NrjxZrxs@jK;{OS5<(g+>>`Q<_CD6u~Q z!7-o8d?ToI3`myfq2mZF3;|?se}17q&HuzYh>5<>$D#_MSQbm4(}O#=X#9 zoqPJ&Cul)meGK=-Y^YH_=m&*kI$0=XAL?)qU#SH42zUjMxlDFr+t6QX($l~+vFu@<=JvEHyl2o9^hwD=X7A5jU(YgWi=mN2(~SgVxL zrb~N;we|;tvifMLOP69ZAiyl~zb39N<{feQ%E%f5VK@a5EBZs?h+!4Mj23-^<302L z>}O`vUfvDg?_K!zoeF1K7b!0U(Vnf(zV$j4B3a4%O~e+la#eHy@*i8;16|;d7+ZEC z;4|H+HAGV*HK8>{W81$LwKRM4gUZTRACeOx*tcF;LN+KvK%s(P@}L!l zRgKOH+$m`C;a*kfcw{+hd^kTgq*owJKC;WnW@ESN*{8Byq4y<22XsREIT7r|6edYLwGfACA5K&Zw<06I7q%;Mz{!Yh*Nb zF*+R31WU%~pWMN(jayX4>emdVWe0UM$F;1kIljIA)3AbNu-^$SgJ*>9REKwnu}i|`8pW?*{ag%kev5Hd{W^2GYx;cn zNuXWm`8qQ3y7A`L8|Q2!)9HaOpv$ZE^Kho`W5EwZ-%ukxLgA{IgrI$U%$U6wy!S6Bq{mw zCXco%C6u&9S4$ngTYhZh4mG|S)fVp1kxo8Ld(9n+jKRoa^i4k_xetbFoSk;)S&O~r zC7`HPuQ>Z!RQFoSnc8#ttn>J?MasS4%DkOxtvCg!hTF)EtDeO}lPAKNgS<=+pFX~$ zOb(Qok|i41p)-Lw+_-%c5yJb&{}|MVRi`qNTh$<0#nXwSyL=bGb8*?!Kc>BA5X=L-pX=yoXmHNln+Glmuxjx}x#BJ?Ma>EzcU47SWpHyx|#*xY-i zugj4)C=vs7pQG7VZ|Ybt-oc;kaoLwed;LXUQt}gfTVpoK2SC1&+RFZ<<)80>(xaUc zy^Y<6vs4FGaY@tn^2TreEhP?EO2%261vjIKmr{2FETlg>cJ0UUoX(-RkY1JU4Y9sAJ^%8KI6Q&H!hw8>bt6A0k@DH4^PZEbr6(#|*;Fb^7#O+8G39O7YCD zCoRen5eOd|ledPq5>epc;rwagmHN>)?LC1%7O$|ZJ^)FnWg5qju-eSF8OfQQF(K_W zWT~!*c-5|%JAfJBKb6-iQlFdXGUWR281j7$S&hwdFQ$=(vAQ%R(q5{XeHX?WB ziZ<-67Y#_q4956<1fJ_&-L$|=?6Guykt@X~8|}noq7tjz2QQJs-A|%3$KORTvjoBe z;`FiQ@Sg7}PWS!pq6#t%uXEo0xW8Sg?*IcX+53sQ4}h1&bMw$|=(@l)Q9^{$HEYE-C+ouuRS;I}G2gnm$!Z__Q)Bhs1nQM6 z!z@pCqIOi3-1dSV^>$5XtxDotdN`to*;R+C6wT^^VApDK9N>fb=9-um0m%8&gf#t} zt%K1j)uAfJ_T!DA6uz8T&Zifgb)0OYFy?1Mr!Q!DttlzZNF9;jgqjq9T1WhJUn(j0 zAd28@Ni7<_l!S`WYFp`fQU(?*<|j}{mO_R$b*6TU?c=p=VN;tR;GyX7Kk)*?PD8CWX0z45K!k!+v4 z+VH&gqN10bmIVj{xkHSG^7U0(J^WgsppSUUl-y+OO zcE=4Sj1S=mmqnvA_fn^G5dl`r))bpK_WCps1x3nh@5x^z**nc`%YUj7va>dY4b>4O zg>D%Zf1RlDq0}|yUvBuQpr(~K^!`c_QT9`Ef;~dtU4%HQOi{_+xH2vz)1~CvPRTpa z^@E<)?k>e2!^9`sKAOLK&z^qIz4RtVy`M(FIX)&SY^W4xRZD;xgQI#_YrH0&IqvH< z@$VU4IX(&J)snu3WtaaYtf#%Oi^t`KgtJ8vP@Sl@e9(0MOZ`+PrO&GtSCJ1Xa}Q4Q z2{}}G`}Lc-6KkGpGV)#r3bi=qvY)E-Uaya!Z=#c zzHxvsyNeH+-Ms_5S?1IONz&58B8X@w(XS`aLvi>i={9edlNnZUGqRd~-Q5yEsJ;LS z>${OM_OTVVMgVxjrJU1D%C)&`UmVWN{F?Uo9rj{V-}$?(d48^MCsQ4tM$8Wiqy6y} ztu$aOCL7FkwFX#rVBEX7-DBVxM4!ww+e`ttme@Q13(^x??_XB*FFPZ-;<+Tss|S zZaTdY<~n$g)BJ~d4P~;*TFZK=XD#M$<{=@A%X=e+=TIVlcYTqrZ3YTDz$#)-_MA=H zpeDTN+-phisbR-+j_gae*9*eTfQ&#u<%i3Jj-cZwMJoE~MjROAzk6!zv=Fri*nlbDXwlhp8$8jycsoqpm}HrF&~dRbyr3K%Z;fG)|Zf!AOhxV<}k zyuZO<_2K!&md7E;!>aJrcOg9uJeO6EY&fzH#CwSr%G+#^-^Ai?kw_zjk39s?+NAoX z{z%mjT~MI@eE0*t)2#Kx+OW3-al`s`P<5wg{PEE9}m1uOzWwD=Kj@w9K{y8y#^`s39 zov7v(+0+)aM_h!a)i8?}hg4as;7JABIAg4jJ$|9y+furwxy>z)1CMiq2x#+|tC*d$ z+Rt#vl&E{raX#6$+^dW`k9)T*R8B{h{o7zGQ z!VC#50W$@_`|X6n_{;VmU#cV|^IlwRg_i|I+(um!9ywe;r8)c4NKKY?t!uB;f<;v! zwrVc^Jo9EZ@kb@vW#dlp_>6OzmGxPa#;1eMPbqwTf4?SPBC z;X{Q%P|opoMd-zN{EPG|r@m8NZSy+h;R?j$n|3N8OhK)g0Eu)Ce7@1P<)<2o!UpB@ z9coO7v{>sXzffho4<$Dbc{x{iGGg~IP*o#Pop`)tI#=rzJp$dmOHue1GT$vT7>z1& zD?MJnb9Om*I@ra-1jOlQX%jm)R--d2I1N)R>d|pN$+o0Z4}7MevtF0~fGce>Ya4tf zP`I~Q!OJk-#@S{n#0ebxNWCS^`_XQm06__1O9j=dbFp^|5WDhmV(S(;w=jcke{V*u ze6UEaa>gzl>H%uGAzyuAoK9iZ$HTqx3rH+<`*mCX+}9YHYJ5DbHy!)e8_6J1=-S7< zts!VojId3EzhtmtR*E*D$K&G}PWFX1BGK-Xw}A7QepL&CAIl|Pd49qSRK&U#;TjIb z;G-n6Hf~wgXKQJ>QfZnwmIsb4|9N>`KxHLlkbCE@Q)WCbtGrD9%O^8qfXp5Do~;V` z8nj5RdTw$)nu~mo?|8m>1UL)PgtQr(l<91ZrGL)CoUu3*uGO}wE5@0225r@t9s5Vk|> zqWiw-veiwu$;-I2?=`-(nHp;Zf%WWOWYtT|euJ?~hy6Vxzs=zXOhGx`7%zF>2uKXD z{tL<|;tmDfek13@dDW84Rq*cdA8&-7Bu&n-897Ci7sqsw+$}|E?%Iu4;2v?S>n`^CM4!yjN7ec z>9WRI2pMa7PI(#6*ZYi~YXV=evv?w(XE}1ZxWXHG(IH6lI=)xooCg|p9o*`2m)kIf z7ny(i-JrIEA4Z8PIE||U63?kX(#tSQ18O{xJsre!>k7G^NperN)oh`j#UZj;f55i8 z9Xh;D55Lru+e8Kw38?2$jEXB1wp`9$EU!P#!vpns1>*)b9(4B%?%EP2Nc2E1KJuG` ztFuR|9V@6&aMyBZA1{G3>Ss9VYpZgtaXXSU+o6u3aBc^Z)p{me!A?~cC0^^oP(rO3 z4K((6%|DwN0gE`8I4=u36JsMKU5}FF8RqPClS=21>M)L^23w9LLlE+3DobZ zj>G1d;0$zUaiz&Xxf|t?Dz46LL~6eIk0NsO6k?@Ar5yg;BiwAdr^_v1Xv)p{y4`;I zOh%$s-#U9m|NQ0UrdhvBbtWIo%ZP0>jqwfPw?yRR2_P`W^A#mcFc+Fsyx)9Ti#4IY zIiNkUPbkIUv!Cjm_|TEV#7bea0jy+KwWBlRUI(j1>E5uHcAbzwHLu5roIFuea)0}t zomvEp7aeE$*0FWZ%|=&fwN$97|+Y3sW1Tzj?rf%i5x%zC*}HCwLxQxcVz#cJYXaK>SYD?0wy_|Ng&*e~UYX z2rD=)3y1lq_l~D$UiqKGiK`L+0K8z$Gwuem(@FA`ez AYXATM literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/status.png b/docs/assets/images/monitoring/status_cmds/status.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1a4212ba9e91c7fc69ea6d9980a24810519189 GIT binary patch literal 49713 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 + +Check the status of queues to see if there are any tasks in them and/or any workers watching them. -Check the status of the queues in your spec file to see if there are any tasks in them and any active workers watching them. +If used without the `--spec` option, this will query any active queues. Active queues are queues that have a worker watching them. + +For more information, see the [Queue Information documentation](./monitoring/queues_and_workers.md#queue-information). **Usage:** ```bash -merlin status [OPTIONS] SPECIFICATION +merlin queue-info [OPTIONS] ``` **Options:** @@ -658,27 +783,125 @@ merlin status [OPTIONS] SPECIFICATION | Name | Type | Description | Default | | ------------ | ------- | ----------- | ------- | | `-h`, `--help` | boolean | Show this help message and exit | `False` | +| `--dump` | filename | The name of a csv or json file to dump the queue information to | None | +| `--specific-queues` | List[string] | A space-delimited list of queues to get information on | None | +| `--task_server` | string | Task server type. Currently only "celery" is implemented. | "celery" | + +**Specification Options:** + +These options all *must* be used with the `--spec` option if used. + +| Name | Type | Description | Default | +| ------------ | ------- | ----------- | ------- | +| `--spec` | filename | Query for the queues named in each step of the spec file given here | None | | `--steps` | List[string] | A space-delimited list of steps in the input spec that you want to query. Should be given after the input spec. | `['all']` | | `--vars` | List[string] | A space-delimited list of variables to override in the spec file. This list should be given after the spec file is provided. Ex: `--vars QUEUE_NAME=new_queue_name` | None | + +**Examples:** + +!!! example "Query All Active Queues" + + ```bash + merlin queue-info + ``` + +!!! example "Check the Status of Specific Queues" + + ```bash + merlin queue-info --specific-queues queue_1 queue_3 + ``` + +!!! example "Check the Status of Queues in a Spec File" + + **This is the same as running `merlin status ` prior to Merlin v1.12.0** + + ```bash + merlin queue-info --spec my_specification.yaml + ``` + +!!! example "Check the Status of Queues for Specific Steps" + + ```bash + merlin queue-info --spec my_specification.yaml --steps step_1 step_3 + ``` + +!!! example "Dump the Queue Information to a JSON File" + + ```bash + merlin queue-info --dump queue_report.json + ``` + +### Status (`merlin status`) + +!!! note + + To obtain the same functionality as the `merlin status` command prior to Merlin v1.12.0 use [`merlin queue-info`](#queue-info-merlin-queue-info) with the `--spec` option: + + ```bash + merlin queue-info --spec + ``` + +Display a high-level status summary of a workflow. + +This will display the progress of each step in your workflow using progress bars and brief summaries. In each summary you can find how many tasks there are in total for a step, how many tasks are in each state, the average run time and standard deviation of run times of the tasks in the step, the task queue, and the worker that is watching the step. + +For more information, see the [Status documentation](./monitoring/status_cmds.md#the-status-command). + +**Usage:** + +```bash +merlin status [OPTIONS] WORKSPACE_OR_SPECIFICATION +``` + +**Options:** + +| Name | Type | Description | Default | +| ------------ | ------- | ----------- | ------- | +| `-h`, `--help` | boolean | Show this help message and exit | `False` | +| `--cb-help` | boolean | Colorblind help option. This will utilize different symbols for each state of a task. | `False` | +| `--dump` | filename | The name of a csv or json file to dump the status to | None | +| `--no-prompts` | boolean | Ignore any prompts provided to the command line. This will default to the latest study if you provide a spec file rather than a study workspace. | `False` | | `--task_server` | string | Task server type. Currently only "celery" is implemented. | "celery" | -| `--csv` | filename | The name of a csv file to dump the queue status report to | None | +| `-o`, `--output-path` | dirname | Specify a location to look for output workspaces. Only used when a spec file is passed as the argument to `status`. | None | **Examples:** -!!! example "Basic Status Check" +!!! example "Check the Status Using Workspace as Input" + + ```bash + merlin status study_name_20240129-123452/ + ``` + +!!! example "Check the Status Using a Specification as Input" + + This will look in the `OUTPUT_PATH` [Reserved Variable](./variables.md#reserved-variables) defined within the spec file to try to find existing workspace directories associated with this spec file. If more than one are found, a prompt will be displayed for you to select a workspace directory. ```bash merlin status my_specification.yaml ``` -!!! example "Check the Status of Queues for Certain Steps" +!!! example "Check the Status Using a Specification as Input & Ignore Any Prompts" + + If multiple workspace directories associated with the spec file provided are found, the `--no-prompts` option will ignore the prompt and select the most recent study that was ran based on the timestamps. + + ```bash + merlin status my_specification.yaml --no-prompts + ``` + +!!! example "Dump the Status Report to a CSV File" + + ```bash + merlin status study_name_20240129-123452/ --dump status_report.csv + ``` + +!!! example "Look For Workspaces at a Certain Location" ```bash - merlin status my_specification.yaml --steps step_1 step_3 + merlin status my_specification.yaml -o new_output_path/ ``` -!!! example "Dump the Status to a CSV File" +!!! example "Utilize the Colorblind Functionality" ```bash - merlin status my_specification.yaml --csv status_report.csv + merlin status study_name_20240129-123452/ --cb-help ``` diff --git a/docs/user_guide/monitoring/index.md b/docs/user_guide/monitoring/index.md new file mode 100644 index 000000000..4ba985fb6 --- /dev/null +++ b/docs/user_guide/monitoring/index.md @@ -0,0 +1,33 @@ +# Monitoring Studies + +This section of the documentation is dedicated to guiding you through the intricacies of monitoring studies with Merlin. From utilizing monitoring tools to interpreting their outputs, we'll explore how to leverage Merlin's monitoring features to enhance your study management experience. + +## Key Objectives + +1. **Real-Time Visibility** + + - Gain instant insights into the progress of your studies. + + - Monitor the status of individual tasks and their dependencies. + +2. **Issue Identification and Resolution** + + - Identify and address issues or bottlenecks in study execution promptly. + + - Utilize monitoring data for efficient troubleshooting. + +3. **Performance Optimization** + + - Analyze historical data to identify patterns and optimize study workflows. + + - Fine-tune parameters based on monitoring insights for enhanced efficiency. + +## What is in This Section? + +There are several commands used specifically for monitoring studies (see [Monitoring Commands](../command_line.md#monitoring-commands)). Throughout this section we'll discuss each and every one in further detail: + +- [The Status Commands](./status_cmds.md): As you may have guessed, this module will cover the two status commands that Merlin provides ([`merlin status`](../command_line.md#status-merlin-status) and [`merlin detailed-status`](../command_line.md#detailed-status-merlin-detailed-status)) + +- [Querying Queues and Workers](./queues_and_workers.md): This module will discuss how queues and workers can be queried with the [`merlin queue-info`](../command_line.md#queue-info-merlin-queue-info) and the [`merlin query-workers`](../command_line.md#query-workers-merlin-query-workers) commands. + +- [Monitoring Studies for Persistent Allocations](./monitor_for_allocation.md): Here we'll discuss how allocations can be kept alive using the [`merlin monitor`](../command_line.md#monitor-merlin-monitor) command. diff --git a/docs/user_guide/monitoring/monitor_for_allocation.md b/docs/user_guide/monitoring/monitor_for_allocation.md new file mode 100644 index 000000000..c2e4a17e5 --- /dev/null +++ b/docs/user_guide/monitoring/monitor_for_allocation.md @@ -0,0 +1,661 @@ +# Monitoring Studies for Persistent Allocations + +Merlin's producer-consumer model ensures the longevity of workers until the batch allocation is terminated or the workers are manually killed by the user. In this framework, workers remain active, processing tasks within a workflow until the allocation concludes or they're deliberately terminated. Consequently, sustaining the vitality of the allocation is crucial during the processing phase, as it guarantees the uninterrupted execution of tasks by the workers. + +To preserve an allocation throughout the lifecycle of a worklow, Merlin offers the [`merlin monitor`](../command_line.md#monitor-merlin-monitor) command. This command serves as a blocking process for a batch submission script, preserving the allocation's continuity while the workers process tasks. + +**Usage:** + +```bash +merlin monitor +``` + +## How Does the Monitor Work? + +The `merlin monitor` command takes a spec file as input, using it to identify the task queues and workers it needs to observe. This monitoring process involves two key actions: + +1. Verifying the presence of tasks in the designated queues. +2. Confirming the ongoing processing of tasks by the assigned workers when the queues are empty. + +The monitor comes with a [`--sleep` option](#sleep), which introduces a deliberate delay. Before the monitoring initiates, the monitor waits up to 10 times the specified sleep duration, providing users with a window to populate the task queues with the [`merlin run`](../command_line.md#run-merlin-run) command. Subsequently, it waits for the specified sleep duration between each check to determine if the queues have tasks (step 1 above). If no tasks are found, and no workers are processing tasks, the monitor concludes that the workflow has finished, allowing the allocation to end. This way, the monitor command acts as a blocking process, ensuring the continuous and effective management of tasks within the specified workflow. + +The resulting flowchart of this process can be seen below. + +

+ ![Monitor Flowchart](../../assets/images/monitoring/monitor_for_allocation/monitor-flowchart.png) +
Monitor Flowchart
+
+ +## Using the Monitor + +Adding the `merlin monitor` command to your workflow process is as simple as putting it at the end of your worker-startup script. The below templates showcase how this is done for [Slurm](../../faq.md#what-is-slurm) and [LSF](../../faq.md#what-is-lsf). + +=== "Slurm" + + The below batch script can be submitted with: + + ```bash + sbatch workers.sbatch + ``` + + ```bash title="workers.sbatch" + #!/bin/bash + #SBATCH -N 1 + #SBATCH --ntasks-per-node=36 + #SBATCH -J Merlin + #SBATCH -t 10:00 + #SBATCH -o merlin_workers_%j.out + + # Turn off core files to work aroung flux exec issue. + ulimit -c 0 + + YAML=default.yaml # (1) + + if [[ $# -gt 0 ]] + then + YAML=$1 + fi + + echo "Specification File: $YAML" + + VENV_PATH= + + # Activate the virtual environment + source ${VENV_PATH}/bin/activate + + # Show the workers command + merlin run-workers ${YAML} --echo + + # Start workers to run the tasks in the broker + merlin run-workers ${YAML} + + # Keep the allocation alive until all workers stop + merlin monitor ${YAML} + ``` + + 1. Modifying this value to be the path to your spec file would make it so you didn't have to pass the path in at the command line when submitting this script. In other words, you could submit this script with `sbatch workers.sbatch`. + +=== "LSF" + + The below batch script can be submitted with: + + ```bash + bsub workers.bsub + ``` + + ```bash title="workers.bsub" + #!/bin/bash + #BSUB -nnodes 1 + #BSUB -W 00:10 # hours:minutes + #BSUB -J Merlin + #BSUB -o merlin_workers_%J.out + #BSUB -e merlin_workers_%J.err + #BSUB -N + + # Turn off core files to work aroung flux exec issue. + ulimit -c 0 + + YAML=default.yaml # (1) + + if [[ $# -gt 0 ]] + then + YAML=$1 + fi + + echo "Specification File: $YAML" + + VENV_PATH= + + # Activate the virtual environment + source ${VENV_PATH}/bin/activate + + # Show the workers command + merlin run-workers ${YAML} --echo + + # Start workers to run the tasks in the broker + merlin run-workers ${YAML} + + # Keep the allocation alive until all workers stop + merlin monitor ${YAML} + ``` + + 1. Modifying this value to be the path to your spec file would make it so you didn't have to pass the path in at the command line when submitting this script. In other words, you could submit this script with `bsub workers.bsub`. + +## Options For the Monitor + +There are three useful options that come with the `merlin monitor` command: + +- [`--sleep`](#sleep): The delay between checks on the task queues +- [`--steps`](#steps): Only monitor specific steps in your workflow +- [`--vars`](#vars): Modify environment variables in a spec from the command line + +### Sleep + +The `--sleep` option in the `monitor` command allows users to specify a custom delay duration between consecutive inspections of the task queues. The default value for this option is 60 seconds. + +As detailed in the ["How Does the Monitor Work?"](#how-does-the-monitor-work) section, the monitor periodically examines task queues to determine task presence. If the queues are currently occupied, the monitor will enter a sleep state for a designated duration before conducting the next inspection. Similarly, if the monitor discovers no tasks in the queues but identifies active workers processing tasks, it will initiate a sleep interval before re-evaluating both the queues and the workers. The `--sleep` option allows you to modify this sleep interval. + +The value that you provide for the `--sleep` option will be an integer representing the number of seconds to sleep before the next inspection of the task queues and workers is conducted. + +**Usage:** + +```bash +merlin monitor --sleep +``` + +??? example "Example of Using `--sleep` With Monitor" + + In the below spec file we have one step that will run for 90 seconds: + + ```yaml title="sleep_demo.yaml" + description: + name: sleep_demo + description: a very simple merlin workflow + + study: + - name: step_1 + description: sleep for 90 seconds + run: + cmd: sleep 90 + task_queue: step_1_queue + ``` + + For this example we'll use a Slurm worker-launch script to start the workers. Notice on the last line that we're setting the sleep duration to be 30 seconds instead of the default 60 seconds: + + ```bash title="workers.sbatch" hl_lines="32" + #!/bin/bash + #SBATCH -N 1 + #SBATCH --ntasks-per-node=36 + #SBATCH -J Merlin + #SBATCH -t 10:00 + #SBATCH -o merlin_workers_%j.out + + # Turn off core files to work aroung flux exec issue. + ulimit -c 0 + + YAML=sleep_demo.yaml + + if [[ $# -gt 0 ]] + then + YAML=$1 + fi + + echo "Specification File: $YAML" + + VENV_PATH= + + # Activate the virtual environment + source ${VENV_PATH}/bin/activate + + # Show the workers command + merlin run-workers ${YAML} --echo + + # Start workers to run the tasks in the broker + merlin run-workers ${YAML} + + # Keep the allocation alive until all workers stop + merlin monitor ${YAML} --sleep 30 + ``` + + Now let's run this study by submitting this worker launch script and sending the tasks to the broker with the [`merlin run`](../command_line.md#run-merlin-run) command: + + === "Submitting the Batch Script" + + ```bash + sbatch workers.sbatch + ``` + + === "Sending Tasks to Broker" + + ```bash + merlin run sleep_demo.yaml + ``` + + From the time stamps in our worker logs we can see that the custom 30 second sleep duration was applied: + + ```bash hl_lines="20-25 33-34" + [2024-02-05 09:13:52,891: INFO] Connected to amqps://rabbitmerlin:**@cz-gunny-rabbitmerlin.apps.czapps.llnl.gov:31118/host4gunny + [2024-02-05 09:13:52,911: INFO] mingle: searching for neighbors + [2024-02-05 09:13:53,956: INFO] mingle: all alone + [2024-02-05 09:13:53,996: INFO] celery@default_worker.%quartz1552 ready. + [2024-02-05 09:13:54,028: INFO] Task merlin.common.tasks.expand_tasks_with_samples[78530a48-95f0-4b0e-90ca-7011e81a7808] received + [2024-02-05 09:13:54,211: INFO] Task merlin.common.tasks.merlin_step[117b28c9-eacd-4e77-9771-01b4ebc29e01] received + [2024-02-05 09:13:54,228: INFO] Executing step 'step_1' in '/usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1'... + [2024-02-05 09:13:54,228: INFO] Directory does not exist. Creating directories to /usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1 + [2024-02-05 09:13:54,233: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1/MERLIN_STATUS.json... + [2024-02-05 09:13:54,235: INFO] Status for step_1 successfully written. + [2024-02-05 09:13:54,235: INFO] Generating script for step_1 into /usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1 + [2024-02-05 09:13:54,238: INFO] Script: /usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1/step_1.sh + Restart: None + Scheduled?: True + [2024-02-05 09:13:54,273: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1/MERLIN_STATUS.json... + [2024-02-05 09:13:54,276: INFO] Status for step_1 successfully written. + [2024-02-05 09:13:54,276: INFO] Submitting script for step_1 + [2024-02-05 09:13:54,548: INFO] Task merlin.common.tasks.expand_tasks_with_samples[78530a48-95f0-4b0e-90ca-7011e81a7808] succeeded in 0.40144235407933593s: None + [2024-02-05 09:14:16: INFO] Reading app config from file /g/g20/gunny/.merlin/app.yaml + [2024-02-05 09:14:17: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-05 09:14:18: INFO] Monitor: found tasks in queues and/or tasks being processed + [2024-02-05 09:14:50: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-05 09:14:51: INFO] Monitor: found tasks in queues and/or tasks being processed + [2024-02-05 09:15:22: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-05 09:15:23: INFO] Monitor: found tasks in queues and/or tasks being processed + [2024-02-05 09:15:24,298: INFO] Execution returned status OK. + [2024-02-05 09:15:24,304: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1/MERLIN_STATUS.json... + [2024-02-05 09:15:24,307: INFO] Status for step_1 successfully written. + [2024-02-05 09:15:24,307: INFO] Step 'step_1' in '/usr/WS1/gunny/hello/sleep_demo_20240205-091232/step_1' finished successfully. + [2024-02-05 09:15:24,498: INFO] Task merlin:chordfinisher[f442f13e-0436-4162-86ab-eaa28943f526] received + [2024-02-05 09:15:24,501: INFO] Task merlin.common.tasks.merlin_step[117b28c9-eacd-4e77-9771-01b4ebc29e01] succeeded in 90.27513551106676s: 0 + [2024-02-05 09:15:24,507: INFO] Task merlin:chordfinisher[f442f13e-0436-4162-86ab-eaa28943f526] succeeded in 0.007889348082244396s: 'SYNC' + [2024-02-05 09:15:54: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-05 09:15:55: INFO] Monitor: ... stop condition met + ``` + +### Steps + +!!! warning + + It's essential to note that using this option might lead to the termination of the allocation while your study is still processing. This outcome occurs if any subsequent steps in your study were not included in the steps provided to the `--steps` option. + +The `--steps` option in the `monitor` command allows you to specify particular steps for monitoring instead of the entire study. By providing specific steps, the monitor identifies the associated task queues and exclusively monitors those queues, disregarding others in the study. + +**Usage:** + +```bash +merlin monitor --steps +``` + +??? example "Example of Using `--steps` Option" + + In the spec file below, we have two steps `step_1` and `step_2` that each have thier own respective task queues `step_1_queue` and `step_2_queue`. + + ```yaml title="steps_demo.yaml" + description: + name: steps_demo + description: a very simple merlin workflow + + study: + - name: step_1 + description: say hello + run: + cmd: echo "hello!" + task_queue: step_1_queue + + - name: step_2 + description: sleep for 90 seconds + run: + cmd: sleep 90 + depends: [step_1] + task_queue: step_2_queue + ``` + + Let's say we just want to monitor `step_1` to make sure it finishes but we don't care if `step_2` finishes. We can convey this to our monitor by using the `--steps` option. This is shown in the worker-launch script below (for this example we'll use a Slurm batch script): + + ```bash hl_lines="32" + #!/bin/bash + #SBATCH -N 1 + #SBATCH --ntasks-per-node=36 + #SBATCH -J Merlin + #SBATCH -t 10:00 + #SBATCH -o merlin_workers_%j.out + + # Turn off core files to work aroung flux exec issue. + ulimit -c 0 + + YAML=steps_demo.yaml + + if [[ $# -gt 0 ]] + then + YAML=$1 + fi + + echo "Specification File: $YAML" + + VENV_PATH= + + # Activate the virtual environment + source ${VENV_PATH}/bin/activate + + # Show the workers command + merlin run-workers ${YAML} --echo + + # Start workers to run the tasks in the broker + merlin run-workers ${YAML} + + # Keep the allocation alive until all workers stop + merlin monitor ${YAML} --steps step_1 + ``` + + After submitting this batch script and sending the task queues to the broker with: + + === "Submitting the Batch Script" + + ```bash + sbatch workers.sbatch + ``` + + === "Sending Tasks to Broker" + + ```bash + merlin run steps_demo.yaml + ``` + + ...we'll see from the status command and the logs that the allocation is terminated after `step_1` finishes but prior to `step_2` finishing. + + === "Status" + + Checking our Slurm queues with: + + ```bash + squeue -u + ``` + + We'll see our allocation is either in a cancelled state or just not there at all. This means our workers are no longer processing anything. + + Now if we check the status of our study, we'll see that `step_1` finished just fine but the status of `step_2` was never updated to a completed state since it never finished processing before the allocation was terminated: + +
+ ![Status Showing Only Step 1 Finishing](../../assets/images/monitoring/monitor_for_allocation/steps-demo.png) +
Status Showing Only Step 1 Finishing
+
+ + === "Worker Logs" + + Focusing on the highlighted lines below, we'll see that `step_1` logs that it starts executing and that it finishes executing. For `step_2` we see a similar log for when it starts but we never see a log for when it finishes. Instead, it's execution is cut off by the monitor terminating the allocation since we told it to only monitor `step_1`. + + ```bash hl_lines="7 21 23 37-38" + [2024-02-05 11:53:18,915: INFO] Connected to amqps://rabbitmerlin:**@cz-gunny-rabbitmerlin.apps.czapps.llnl.gov:31118/host4gunny + [2024-02-05 11:53:18,943: INFO] mingle: searching for neighbors + [2024-02-05 11:53:19,986: INFO] mingle: all alone + [2024-02-05 11:53:20,017: INFO] celery@default_worker.%quartz205 ready. + [2024-02-05 11:53:20,051: INFO] Task merlin.common.tasks.expand_tasks_with_samples[36b7c213-735f-443c-a593-21dd6fbdce82] received + [2024-02-05 11:53:20,237: INFO] Task merlin.common.tasks.merlin_step[661180c7-9921-448d-ad4a-510163fe5dd3] received + [2024-02-05 11:53:20,266: INFO] Executing step 'step_1' in '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1'... + [2024-02-05 11:53:20,267: INFO] Directory does not exist. Creating directories to /usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1 + [2024-02-05 11:53:20,274: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1/MERLIN_STATUS.json... + [2024-02-05 11:53:20,276: INFO] Status for step_1 successfully written. + [2024-02-05 11:53:20,277: INFO] Generating script for step_1 into /usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1 + [2024-02-05 11:53:20,281: INFO] Script: /usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1/step_1.sh + Restart: None + Scheduled?: True + [2024-02-05 11:53:20,326: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1/MERLIN_STATUS.json... + [2024-02-05 11:53:20,331: INFO] Status for step_1 successfully written. + [2024-02-05 11:53:20,331: INFO] Submitting script for step_1 + [2024-02-05 11:53:20,347: INFO] Execution returned status OK. + [2024-02-05 11:53:20,357: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1/MERLIN_STATUS.json... + [2024-02-05 11:53:20,362: INFO] Status for step_1 successfully written. + [2024-02-05 11:53:20,362: INFO] Step 'step_1' in '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_1' finished successfully. + [2024-02-05 11:53:20,427: INFO] Task merlin.common.tasks.merlin_step[29c33e4d-c2c4-4211-bd4d-ba0531f23581] received + [2024-02-05 11:53:20,448: INFO] Executing step 'step_2' in '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_2'... + [2024-02-05 11:53:20,448: INFO] Directory does not exist. Creating directories to /usr/WS1/gunny/hello/steps_demo_20240205-115213/step_2 + [2024-02-05 11:53:20,460: INFO] Writing status for step_2 to '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_2/MERLIN_STATUS.json... + [2024-02-05 11:53:20,467: INFO] Status for step_2 successfully written. + [2024-02-05 11:53:20,467: INFO] Generating script for step_2 into /usr/WS1/gunny/hello/steps_demo_20240205-115213/step_2 + [2024-02-05 11:53:20,483: INFO] Script: /usr/WS1/gunny/hello/steps_demo_20240205-115213/step_2/step_2.sh + Restart: None + Scheduled?: True + [2024-02-05 11:53:20,507: INFO] Task merlin.common.tasks.expand_tasks_with_samples[36b7c213-735f-443c-a593-21dd6fbdce82] succeeded in 0.3326189829967916s: None + [2024-02-05 11:53:20,511: INFO] Task merlin.common.tasks.merlin_step[661180c7-9921-448d-ad4a-510163fe5dd3] succeeded in 0.2548455507494509s: 0 + [2024-02-05 11:53:20,535: INFO] Writing status for step_2 to '/usr/WS1/gunny/hello/steps_demo_20240205-115213/step_2/MERLIN_STATUS.json... + [2024-02-05 11:53:20,544: INFO] Status for step_2 successfully written. + [2024-02-05 11:53:20,544: INFO] Submitting script for step_2 + [2024-02-05 11:54:13: INFO] Reading app config from file /g/g20/gunny/.merlin/app.yaml + [2024-02-05 11:54:14: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-05 11:54:15: INFO] Monitor: ... stop condition met + ``` + +### Vars + +The `--vars` option can be used to modify any variables defined in your spec file from the command line interface. This option can take a space-delimited list of variables and their assignments, and should be given after the input yaml file. + +**Usage:** + +```bash +merlin monitor --vars = +``` + +??? example "Example of Using `--vars` With Monitor" + + Say we have the following spec file with a variable `QUEUE_NAME` that's referenced in `step_2`: + + ```yaml title="vars_demo.yaml" hl_lines="7 22" + description: + name: vars_demo + description: a very simple merlin workflow + + env: + variables: + QUEUE_NAME: step_2_queue + + study: + - name: step_1 + description: say hello + run: + cmd: echo "hello!" + task_queue: step_1_queue + + - name: step_2 + description: sleep for 90 seconds + run: + cmd: sleep 90 + depends: [step_1] + task_queue: $(QUEUE_NAME) + ``` + + If we decided we wanted to modify this queue at the command line, we could accomplish this with the `--vars` option of the [`merlin run-workers`](../command_line.md#run-workers-merlin-run-workers) and [`merlin run`](../command_line.md#run-merlin-run) commands: + + === "Run Workers" + + In the below worker-startup script, we're not using the `--vars` option with the `monitor` command. This is for demonstrative purposes and will be modified later in this example. + + ```bash title="workers.sbatch" hl_lines="25-32" + #!/bin/bash + #SBATCH -N 1 + #SBATCH --ntasks-per-node=36 + #SBATCH -J Merlin + #SBATCH -t 10:00 + #SBATCH -o merlin_workers_%j.out + + # Turn off core files to work aroung flux exec issue. + ulimit -c 0 + + YAML=vars_demo.yaml + + if [[ $# -gt 0 ]] + then + YAML=$1 + fi + + echo "Specification File: $YAML" + + VENV_PATH= + + # Activate the virtual environment + source ${VENV_PATH}/bin/activate + + # Show the workers command + merlin run-workers ${YAML} --vars QUEUE_NAME=new_queue_name --echo + + # Start workers to run the tasks in the broker + merlin run-workers ${YAML} --vars QUEUE_NAME=new_queue_name + + # Keep the allocation alive until all workers stop + merlin monitor ${YAML} # ***Purposefully not using the --vars argument yet*** + ``` + + This can be submitted with: + + ```bash + sbatch workers.sbatch + ``` + + === "Run" + + ```bash + merlin run vars_demo.yaml --vars QUEUE_NAME=new_queue_name + ``` + + Using the above worker launch script that *does not* utilize the `--vars` option with the `monitor` our allocation would terminate after `step_1` completes. This is due to the fact that it will be watching the `step_1_queue` and `step_2_queue` task queues, but `step_2`'s tasks will be sent to the `new_queue_name` queue instead. We can see this behavior from the status of our study and the the end of the worker logs. + + === "Status" + + Checking our Slurm queues with: + + ```bash + squeue -u + ``` + + We'll see our allocation is either in a cancelled state or just not there at all. This means our workers are no longer processing anything. + + Now if we check the status of our study, we'll see that the status of `step_2` was never updated to a completed state: + +
+ ![Status Displaying Step 2 Never Finishes](../../assets/images/monitoring/monitor_for_allocation/status-step-2-incomplete.png) +
Status Displaying Step 2 Never Finishes
+
+ + === "Worker Logs" + + Focusing on the highlighted lines below, we'll see that `step_1` logs that it starts executing and that it finishes executing. For `step_2` we see a similar log for when it starts but we never see a log for when it finishes. Instead, it's execution is cut off by the monitor terminating the allocation. + + ```bash hl_lines="7 21 23 37-38" + [2024-02-02 16:16:51,152: INFO] Connected to amqps://rabbitmerlin:**@cz-gunny-rabbitmerlin.apps.czapps.llnl.gov:31118/host4gunny + [2024-02-02 16:16:51,171: INFO] mingle: searching for neighbors + [2024-02-02 16:16:52,211: INFO] mingle: all alone + [2024-02-02 16:16:52,248: INFO] celery@default_worker.%quartz3 ready. + [2024-02-02 16:16:52,275: INFO] Task merlin.common.tasks.expand_tasks_with_samples[6c4ea50a-9fe4-43ca-b2bc-47ef2a477a21] received + [2024-02-02 16:16:52,449: INFO] Task merlin.common.tasks.merlin_step[09c2c700-fe97-4f18-9847-69615f3e4dfc] received + [2024-02-02 16:16:52,467: INFO] Executing step 'step_1' in '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1'... + [2024-02-02 16:16:52,467: INFO] Directory does not exist. Creating directories to /usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1 + [2024-02-02 16:16:52,470: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1/MERLIN_STATUS.json... + [2024-02-02 16:16:52,472: INFO] Status for step_1 successfully written. + [2024-02-02 16:16:52,472: INFO] Generating script for step_1 into /usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1 + [2024-02-02 16:16:52,476: INFO] Script: /usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1/step_1.sh + Restart: None + Scheduled?: True + [2024-02-02 16:16:52,502: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1/MERLIN_STATUS.json... + [2024-02-02 16:16:52,505: INFO] Status for step_1 successfully written. + [2024-02-02 16:16:52,505: INFO] Submitting script for step_1 + [2024-02-02 16:16:52,516: INFO] Execution returned status OK. + [2024-02-02 16:16:52,520: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1/MERLIN_STATUS.json... + [2024-02-02 16:16:52,522: INFO] Status for step_1 successfully written. + [2024-02-02 16:16:52,522: INFO] Step 'step_1' in '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_1' finished successfully. + [2024-02-02 16:16:52,580: INFO] Task merlin.common.tasks.merlin_step[bffc5866-7d85-4e2b-9a20-b3d195183581] received + [2024-02-02 16:16:52,594: INFO] Executing step 'step_2' in '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_2'... + [2024-02-02 16:16:52,594: INFO] Directory does not exist. Creating directories to /usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_2 + [2024-02-02 16:16:52,598: INFO] Writing status for step_2 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_2/MERLIN_STATUS.json... + [2024-02-02 16:16:52,601: INFO] Status for step_2 successfully written. + [2024-02-02 16:16:52,602: INFO] Generating script for step_2 into /usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_2 + [2024-02-02 16:16:52,605: INFO] Script: /usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_2/step_2.sh + Restart: None + Scheduled?: True + [2024-02-02 16:16:52,613: INFO] Writing status for step_2 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-161556/step_2/MERLIN_STATUS.json... + [2024-02-02 16:16:52,616: INFO] Status for step_2 successfully written. + [2024-02-02 16:16:52,616: INFO] Submitting script for step_2 + [2024-02-02 16:16:52,639: INFO] Task merlin.common.tasks.expand_tasks_with_samples[6c4ea50a-9fe4-43ca-b2bc-47ef2a477a21] succeeded in 0.24488114699488506s: None + [2024-02-02 16:16:52,652: INFO] Task merlin.common.tasks.merlin_step[09c2c700-fe97-4f18-9847-69615f3e4dfc] succeeded in 0.18764808497508056s: 0 + [2024-02-02 16:17:46: INFO] Reading app config from file /g/g20/gunny/.merlin/app.yaml + [2024-02-02 16:17:47: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-02 16:17:48: INFO] Monitor: ... stop condition met + ``` + + Now let's modify the worker-startup script to utilize the `--vars` option for the `monitor` so that it can watch the correct queues: + + ```bash title="workers.sbatch" hl_lines="32" + #!/bin/bash + #SBATCH -N 1 + #SBATCH --ntasks-per-node=36 + #SBATCH -J Merlin + #SBATCH -t 10:00 + #SBATCH -o merlin_workers_%j.out + + # Turn off core files to work aroung flux exec issue. + ulimit -c 0 + + YAML=vars_demo.yaml + + if [[ $# -gt 0 ]] + then + YAML=$1 + fi + + echo "Specification File: $YAML" + + VENV_PATH= + + # Activate the virtual environment + source ${VENV_PATH}/bin/activate + + # Show the workers command + merlin run-workers ${YAML} --vars QUEUE_NAME=new_queue_name --echo + + # Start workers to run the tasks in the broker + merlin run-workers ${YAML} --vars QUEUE_NAME=new_queue_name + + # Keep the allocation alive until all workers stop + merlin monitor ${YAML} --vars QUEUE_NAME=new_queue_name + ``` + + Re-submitting this workflow, we'll see that the study runs to completion before terminating. + + === "Status" + + Our status now shows that both steps finished successfully. + +
+ ![Status Displaying Both Steps Finish Successfully](../../assets/images/monitoring/monitor_for_allocation/status-success.png) +
Status Displaying Both Steps Finish Successfully
+
+ + === "Worker Logs" + + Focusing on the highlighted lines below, we'll see that `step_1` and `step_2` both log that execution has started and finished. We'll also notice that prior to `step_2` finishing, the `monitor` checks the task queues/workers and determines it should keep the allocation alive. Once `step_2` is complete, we see that the monitor then terminates the allocation. + + ```bash hl_lines="8 22 24 37-38 42 46-47" + [2024-02-02 16:46:21,634: INFO] Connected to amqps://rabbitmerlin:**@cz-gunny-rabbitmerlin.apps.czapps.llnl.gov:31118/host4gunny + [2024-02-02 16:46:21,660: INFO] mingle: searching for neighbors + [2024-02-02 16:46:22,704: INFO] mingle: all alone + [2024-02-02 16:46:22,737: INFO] celery@default_worker.%quartz8 ready. + [2024-02-02 16:46:22,766: INFO] Task merlin.common.tasks.expand_tasks_with_samples[96a9fe28-cbde-4232-8f42-653646fe032e] received + [2024-02-02 16:46:22,947: INFO] Task merlin.common.tasks.merlin_step[ff620554-6d4d-4981-8488-bec1e718bc68] received + [2024-02-02 16:46:23,156: INFO] Task merlin.common.tasks.expand_tasks_with_samples[96a9fe28-cbde-4232-8f42-653646fe032e] succeeded in 0.27051527600269765s: None + [2024-02-02 16:46:23,240: INFO] Executing step 'step_1' in '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1'... + [2024-02-02 16:46:23,241: INFO] Directory does not exist. Creating directories to /usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1 + [2024-02-02 16:46:23,265: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1/MERLIN_STATUS.json... + [2024-02-02 16:46:23,271: INFO] Status for step_1 successfully written. + [2024-02-02 16:46:23,271: INFO] Generating script for step_1 into /usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1 + [2024-02-02 16:46:23,278: INFO] Script: /usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1/step_1.sh + Restart: None + Scheduled?: True + [2024-02-02 16:46:23,329: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1/MERLIN_STATUS.json... + [2024-02-02 16:46:23,334: INFO] Status for step_1 successfully written. + [2024-02-02 16:46:23,334: INFO] Submitting script for step_1 + [2024-02-02 16:46:23,350: INFO] Execution returned status OK. + [2024-02-02 16:46:23,371: INFO] Writing status for step_1 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1/MERLIN_STATUS.json... + [2024-02-02 16:46:23,379: INFO] Status for step_1 successfully written. + [2024-02-02 16:46:23,379: INFO] Step 'step_1' in '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_1' finished successfully. + [2024-02-02 16:46:23,450: INFO] Task merlin.common.tasks.merlin_step[c1432f25-52c7-4967-9367-cff11b1b769c] received + [2024-02-02 16:46:23,453: INFO] Executing step 'step_2' in '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2'... + [2024-02-02 16:46:23,454: INFO] Directory does not exist. Creating directories to /usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2 + [2024-02-02 16:46:23,497: INFO] Writing status for step_2 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2/MERLIN_STATUS.json... + [2024-02-02 16:46:23,508: INFO] Status for step_2 successfully written. + [2024-02-02 16:46:23,508: INFO] Generating script for step_2 into /usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2 + [2024-02-02 16:46:23,525: INFO] Task merlin.common.tasks.merlin_step[ff620554-6d4d-4981-8488-bec1e718bc68] succeeded in 0.5617350109387189s: 0 + [2024-02-02 16:46:23,545: INFO] Script: /usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2/step_2.sh + Restart: None + Scheduled?: True + [2024-02-02 16:46:23,615: INFO] Writing status for step_2 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2/MERLIN_STATUS.json... + [2024-02-02 16:46:23,647: INFO] Status for step_2 successfully written. + [2024-02-02 16:46:23,647: INFO] Submitting script for step_2 + [2024-02-02 16:47:16: INFO] Reading app config from file /g/g20/gunny/.merlin/app.yaml + [2024-02-02 16:47:18: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-02 16:47:19: INFO] Monitor: found tasks in queues and/or tasks being processed + [2024-02-02 16:47:56,398: INFO] Execution returned status OK. + [2024-02-02 16:47:56,509: INFO] Writing status for step_2 to '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2/MERLIN_STATUS.json... + [2024-02-02 16:47:56,547: INFO] Status for step_2 successfully written. + [2024-02-02 16:47:56,547: INFO] Step 'step_2' in '/usr/WS1/gunny/hello/studies/vars_demo_20240202-164558/step_2' finished successfully. + [2024-02-02 16:47:59,780: INFO] Task merlin:chordfinisher[a338a16a-18ea-46a1-8593-5f9822cef5da] received + [2024-02-02 16:47:59,783: INFO] Task merlin.common.tasks.merlin_step[c1432f25-52c7-4967-9367-cff11b1b769c] succeeded in 96.33197088190354s: 0 + [2024-02-02 16:47:59,787: INFO] Task merlin:chordfinisher[a338a16a-18ea-46a1-8593-5f9822cef5da] succeeded in 0.005227347952313721s: 'SYNC' + [2024-02-02 16:48:20: INFO] Monitor: found 0 jobs in queues and 1 workers alive + [2024-02-02 16:48:21: INFO] Monitor: ... stop condition met + ``` diff --git a/docs/user_guide/monitoring/queues_and_workers.md b/docs/user_guide/monitoring/queues_and_workers.md new file mode 100644 index 000000000..101c37ec5 --- /dev/null +++ b/docs/user_guide/monitoring/queues_and_workers.md @@ -0,0 +1,608 @@ +# Querying Queues and Workers + +Managing task queues and monitoring the associated workers is a common necessity in many applications. To facilitate these interactions, Merlin offers two essential commands – [Queue Information](#queue-information) and [Query Workers](#query-workers). + +This module will delve into the details of these commands, providing insights into how to effectively retrieve information about task queues and query workers. + +## Queue Information + +Merlin provides users with the [`merlin queue-info`](../command_line.md#queue-info-merlin-queue-info) command to help monitor celery queues. This command will list queue statistics in a table format where the columns are as follows: queue name, number of tasks in the queue, number of workers connected to the queue. + +The default functionality of this command is to display queue statistics for active queues. Active queues are any queues that have a worker watching them. + +**Usage:** + +```bash +merlin queue-info +``` + +??? example "Example Queue-Info Output With No Active Queues" + +
+ ![Output of Queue-Info When No Queues Are Active](../../assets/images/monitoring/queues_and_workers/no-active-queues.png) +
Output of Queue-Info When No Queues Are Active
+
+ +??? example "Example Queue-Info Output With Active Queues" + +
+ ![Output of Queue-Info When Queues Are Active](../../assets/images/monitoring/queues_and_workers/active-queues.png) +
Output of Queue-Info When There Are Queues Active
+
+ +### Basic Options + +The `queue-info` command comes equipped with some basic options: + +- [`--dump`](#dump): Dump the queue information to a `.csv` or `.json` file +- [`--specific-queues`](#specific-queues): Only obtain queue information for queues you list here +- [`--task-server`](#task-server): Modify the task server value + +#### Dump + +Much like [the two status commands](./status_cmds.md), the `queue-info` command provides a way to dump the queue statistics to an output file. + +=== "CSV Usage" + + ```bash + merlin queue-info --dump queue_report.csv + ``` + +=== "JSON Usage" + + ```bash + merlin queue-info --dump queue_report.json + ``` + +When dumping to a file that *does not* yet exist, Merlin will create that file for you and populate it with the queue statistics you requested. + +When dumping to a file that *does* exist, Merlin will append the requested queue statistics to that file. You can differentiate between separate dump calls by looking at the timestamps of the dumps. For CSV files this timestamp exists in the `Time` column (see [CSV Dump Format](#csv-dump-format) below) and for JSON files this timestamp will be the top level key to the queue info entry (see [JSON Dump Format](#json-dump-format) below). + +Using any of the `--specific-steps`, `--spec`, or `--steps` options will modify the output that's written to the output file. + +##### CSV Dump Format + +The format of a CSV dump file for queue information is as follows: + +```bash +Time,[merlin]_:tasks,[merlin]_:consumers +``` + +The `:tasks` and `:consumers` columns will be created for each queue that's listed in the queue-info output at the time of your dump. + +The image below shows an example of dumping the queue statistics of active queues to a csv file, and then displaying that csv file using the [rich-cli library](https://github.com/Textualize/rich-cli): + +
+ ![An Example Showcasing How to do a CSV Dump of Active Queue Stats](../../assets/images/monitoring/queues_and_workers/dump-csv.png) +
An Example Showcasing How to do a CSV Dump of Active Queue Stats
+
+ +##### JSON Dump Format + +The format of a JSON dump file for queue information is as follows: + +```json +{ + "YYYY-MM-DD HH:MM:SS": { + "[merlin]_queue_name": { + "tasks": , + "consumers": + } + } +} +``` + +The image below shows an example of dumping the queue info to a json file, and then displaying that json file using the [rich-cli library](https://github.com/Textualize/rich-cli): + +
+ ![An Example Showcasing How to do a JSON Dump of Active Queue Stats](../../assets/images/monitoring/queues_and_workers/dump-json.png) +
An Example Showcasing How to do a JSON Dump of Active Queue Stats
+
+ +#### Specific Queues + +If you know exactly what queues you want to check on, you can use the `--specific-queues` option to list one or more queues to view. + +**Usage:** + +```bash +merlin queue-info --specific-queues +``` + +??? example "Example Queue-Info Output Using Specific-Queues With Active Queues" + + In the example below, we're querying the `train` and `predict` queues which both have a worker watching them currently (in other words, they are _**active**_). + +
+ ![the queue-info output using the specific-queues option with active queues](../../assets/images/monitoring/queues_and_workers/specific-queues-active.png) +
Output of Queue-Info Using the Specific-Queues Option With Active Queues
+
+ +If you ask for queue-info of inactive queues with the `--specific-queues` option, a table format will still be output for you. + +??? example "Example Queue-Info Output Using Specific-Queues With Inactive Queues" + + In the example below, we're querying the `train` and `predict` queues which both *don't* have a worker watching them currently (in other words, they are _**inactive**_). + +
+ ![the queue-info output using the specific-queues option with inactive queues](../../assets/images/monitoring/queues_and_workers/specific-queues-inactive.png) +
Output of Queue-Info Using the Specific-Queues Option With Inactive Queues
+
+ +#### Task Server + +To modify the task server from the command line you can use the `--task-server` option. However, the only currently available option for task server is celery so you most likely will not want to use this option. + +**Usage:** + +```bash +merlin queue-info --task-server +``` + +### Specification Options + +There are three options with the `--queue-info` command that revolve around using a spec file to query queue information: + +- [`--spec`](#spec): Obtain queue information for all queues defined in a spec file +- [`--steps`](#steps): Obtain queue information for queues attached to certain steps in a spec file +- [`--vars`](#vars): Modify environment variables in a spec from the command line + +!!! note + + The `--steps` and `--vars` options *must* be used alongside the `--spec` option. They *cannot* be used by themselves. + +#### Spec + +Using the `--spec` option allows you to query queue statistics for queues that only exist in the spec file you provide. This is the same functionality as the `merlin status` command prior to the release of Merlin v1.12.0. + +**Usage:** + +```bash +merlin queue-info --spec +``` + +!!! example "Example Queue-Info Output Using the `--spec` Option" + + The below example will display queue information for all queues in the `hello.yaml` spec file. + +
+ ![Output of Queue-Info When Using the Specification Option](../../assets/images/monitoring/queues_and_workers/specification-option.png) +
Output of Queue-Info When Using the Specification Option
+
+ +#### Steps + +!!! warning + + This option *must* be used alongside the [`--spec`](#spec) option. + +If you'd like to see queue information for queues that are attached to specific steps in your workflow, use the `--steps` option. + +**Usage:** + +```bash +merlin queue-info --spec --steps +``` + +!!! example "Example Queue-Info Output Using the `--steps` Option" + + Say we have a spec file with steps named `step_1` through `step_4` and each step is attached to a different task queue `step_1_queue` through `step_4_queue` respectively. Using the `--steps` option for these two steps gives us: + +
+ ![Output of Queue-Info When Using the Steps Option](../../assets/images/monitoring/queues_and_workers/steps-option.png) +
Output of Queue-Info When Using the Steps Option
+
+ +#### Vars + +!!! warning + + This option *must* be used alongside the [`--spec`](#spec) option. + +The `--vars` option can be used to modify any variables defined in your spec file from the command line interface. This option can take a space-delimited list of variables and their assignments, and should be given after the input yaml file. + +**Usage:** + +```bash +merlin queue-info --spec --vars = +``` + +??? example "Example of Using `--vars` With Queue-Info" + + Say we have the following spec file with a variable `QUEUE_NAME` that's referenced in `step_2`: + + ```yaml title="vars_demo.yaml" hl_lines="7 22" + description: + name: vars_demo + description: a very simple merlin workflow + + env: + variables: + QUEUE_NAME: step_2_queue + + study: + - name: step_1 + description: say hello + run: + cmd: echo "hello!" + task_queue: step_1_queue + + - name: step_2 + description: print a success message + run: + cmd: print("Hurrah, we did it!") + depends: [step_1_*] + shell: /usr/bin/env python3 + task_queue: $(QUEUE_NAME) + ``` + + If we decided we wanted to modify this queue at the command line, we could accomplish this with the `--vars` option of the [`merlin run`](../command_line.md#run-merlin-run) and [`merlin run-workers`](../command_line.md#run-workers-merlin-run-workers) commands: + + === "Run" + + ```bash + merlin run vars_demo.yaml --vars QUEUE_NAME=new_queue_name + ``` + + === "Run Workers" + + ```bash + merlin run-workers vars_demo.yaml --vars QUEUE_NAME=new_queue_name + ``` + + Now if we were to try to query the queue information without using the same `--vars` argument: + + ```bash + merlin queue-info --spec vars_demo.yaml + ``` + + ...we see `step_1_queue` and `step_2_queue` but we wouldn't see `new_queue_name`: + +
+ ![Demo Output Showing The Missing 'new_queue_name' Queue](../../assets/images/monitoring/queues_and_workers/queue-info-no-vars.png) +
Demo Output Showing The Missing 'new_queue_name' Queue
+
+ + This is due to the fact that when we modify a variable from the command line, the original spec file is not changed. + + With that being said, let's now run this again but this time we'll use the `--vars` option: + + ```bash + merlin queue-info --spec vars_demo.yaml --vars QUEUE_NAME=new_queue_name + ``` + + ...which should show us a worker watching the `new_queue_name` queue: + +
+ ![Demo Output Showcasing 'new_queue_name' Appearing as Expected](../../assets/images/monitoring/queues_and_workers/queue-info-with-vars.png) +
Demo Output Showcasing 'new_queue_name' Appearing as Expected
+
+ +## Query Workers + +Merlin provides users with the [`merlin query-workers`](../command_line.md#query-workers-merlin-query-workers) command to help users see which workers are running and what task queues they're watching. + +This command will output content to a table format with two columns: workers and queues. The workers column will contain one connected worker per row. The queues column will contain a comma-delimited list of queues that the connected worker is watching. + +**Usage:** + +```bash +merlin query-workers +``` + +??? example "Example Query-Workers Output With No Connected Workers" + +
+ ![Output of Query-Workers When No Workers Are Connected](../../assets/images/monitoring/queues_and_workers/no-connected-workers.png) +
Output of Query-Workers When No Workers Are Connected
+
+ +??? example "Example Query-Workers Output With Connected Workers" + +
+ ![Output of Query-Workers When There Are Workers Connected](../../assets/images/monitoring/queues_and_workers/connected-workers.png) +
Output of Query-Workers When There Are Workers Connected
+
+ +### Query Workers by Spec File + +When utilizing the `--spec` option with the `query-workers` command, your query will be adjusted to exclusively search for the workers specified in the provided spec file. If none of the workers defined in the spec file have been started, a message indicating this will be displayed. + +**Usage:** + +```bash +merlin query-workers --spec +``` + +??? example "Example of Using the `--spec` Option With Query-Workers" + + For this example let's start with two spec files `demo_workflow.yaml` and `demo_workflow_2.yaml`. In `demo_workflow.yaml` we'll have two workers `trainer` and `predictor`, and in `demo_workflow_2.yaml` we'll have one worker `worker1`. + + === "demo_workflow.yaml" + + Here, the `trainer` worker is watching the `create_data` and `train` steps which both have task queues of the same name. Therefore, the `trainer` worker will be watching the `create_data` and `train` task queues. Similarly, the `predictor` worker will be watching the `predict` and `verify` task queues. + + ```yaml title="demo_workflow.yaml" hl_lines="10 16 22 28 33-38" + description: + name: demo_workflow + description: a very simple merlin workflow + + study: + - name: create_data + description: create data for our model to train with + run: + cmd: echo "creating data" + task_queue: create_data + + - name: train + description: train a model + run: + cmd: echo "training a model on the data" + task_queue: train + + - name: predict + description: predict on unseen data + run: + cmd: echo "predict on new, unseen data" + task_queue: predict + + - name: verify + description: verify the validity of our study + run: + cmd: echo "verify our study succeeded" + task_queue: verify + + merlin: + resources: + workers: + trainer: + args: -l INFO + steps: [create_data, train] + predictor: + args: -l INFO + steps: [predict, verify] + ``` + + === "demo_workflow_2.yaml" + + In this workflow, the `worker1` worker is assigned to both `step_1` and `step_2`. Therefore, this worker will be connected to both `step_1_queue` and `step_2_queue`. + + ```yaml title="demo_workflow_2.yaml" hl_lines="23 31 36-38" + description: + name: $(NAME) + description: a very simple merlin workflow + + env: + variables: + NAME: hello + OUTPUT_PATH: ./studies + + global.parameters: + GREET: + values : ["hello","hola"] + label : GREET.%% + WORLD: + values : ["world","mundo"] + label : WORLD.%% + + study: + - name: step_1 + description: say hello + run: + cmd: echo "$(GREET), $(WORLD)!" + task_queue: step_1_queue + + - name: step_2 + description: print a success message + run: + cmd: print("Hurrah, we did it!") + depends: [step_1_*] + shell: /usr/bin/env python3 + task_queue: step_2_queue + + merlin: + resources: + workers: + worker1: + args: -l INFO + steps: [all] + ``` + + Let's start these workers with: + + === "Start Workers for `demo_workflow.yaml`" + + ```bash + merlin run-workers demo_workflow.yaml + ``` + + === "Start Workers for `demo_workflow_2.yaml`" + + ```bash + merlin run-workers demo_workflow_2.yaml + ``` + + Now if we used the `query-workers` command without the `--spec` option, we'd see all three workers across both workflows: `trainer`, `predictor`, and `worker1`: + +
+ ![Workers Across Multiple Spec Files](../../assets/images/monitoring/queues_and_workers/query-workers-spec-all-workers.png) +
Example of Workers Queried Across Multiple Spec Files
+
+ + Great, but what if we wanted to see just the workers for `demo_workflow.yaml`? We can accomplish this by using the `--spec` option: + + ```bash + merlin query-workers --spec demo_workflow.yaml + ``` + + Now, we'll notice that the only workers being displayed are `trainer` and `predictor`: + +
+ ![Output of Query-Workers Using the Spec Option](../../assets/images/monitoring/queues_and_workers/query-workers-spec-option.png) +
Output of Query-Workers Using the Spec Option
+
+ +### Query Workers by Queues + +In Merlin, newly spawned workers are linked to task queues either as assigned by you or automatically designated if not specified. Utilizing the `--queues` option in the `query-workers` command enables you to query workers based on the queues to which they are connected. + +**Usage:** + +```bash +merlin query-workers --queues +``` + +??? example "Example of Using the `--queues` Option With Query-Workers" + + Say we have the below spec file with four workers `creator`, `trainer`, `predictor`, and `verifier` that are each attached to their respective steps/task queues. In other words, `creator` will be connected to the `create_data` task queue, `trainer` will be connected to the `train` task queue, etc.: + + ```yaml title="demo_workflow.yaml" hl_lines="33-44" + description: + name: demo_workflow + description: a very simple merlin workflow + + study: + - name: create_data + description: create data for our model to train with + run: + cmd: echo "creating data" + task_queue: create_data + + - name: train + description: train a model + run: + cmd: echo "training a model on the data" + task_queue: train + + - name: predict + description: predict on unseen data + run: + cmd: echo "predict on new, unseen data" + task_queue: predict + + - name: verify + description: verify the validity of our study + run: + cmd: echo "verify our study succeeded" + task_queue: verify + + merlin: + resources: + workers: + creator: + args: -l INFO + steps: [create_data] + trainer: + args: -l INFO + steps: [train] + predictor: + args: -l INFO + steps: [predict] + verifier: + args: -l INFO + steps: [verify] + ``` + + We can start these workers with: + + ```bash + merlin run-workers demo_workflow.yaml + ``` + + Now if we query the workers *without* the `--queues` option, we'll see all four workers alive and connected to their respective queues: + +
+ ![All Four Workers From 'demo_workflow.yaml' Being Queried](../../assets/images/monitoring/queues_and_workers/queues-example-all-workers.png) +
All Four Workers From 'demo_workflow.yaml' Being Queried
+
+ + Let's refine this query to just view the workers connected to the `train` and `predict` queues: + + ```bash + merlin query-workers --queues train predict + ``` + + As we can see in the output below, only the `trainer` and `predictor` workers are now displayed: + +
+ ![Output of Query-Workers Using the Queues Option](../../assets/images/monitoring/queues_and_workers/queues-example-filtered-workers.png) +
Output of Query-Workers Using the Queues Option
+
+ +### Query Workers by Worker Regex + +There will be instances when you know precisely which workers you want to query. In such cases, the `--workers` option in the `query-workers` command proves useful. This option facilitates querying workers using [regular expressions](https://docs.python.org/3/library/re.html). As full strings are accepted as regular expressions, you can also query workers by worker name. + +**Usage:** + +```bash +merlin query-workers --workers +``` + +??? example "Example of Using the `--workers` Option With Query-Workers" + + Say we have the following spec file with 3 workers `step_1_worker`, `step_2_worker`, and `other_worker`: + + ```yaml title="demo_workflow.yaml" hl_lines="27-35" + description: + name: demo_workflow + description: a very simple merlin workflow + + study: + - name: step_1 + description: A step following the `step_*` name pattern + run: + cmd: echo "step 1" + task_queue: step_1_queue + + - name: step_2 + description: A step following the `step_*` name pattern + run: + cmd: echo "step 2" + task_queue: step_2_queue + + - name: other_step + description: A step with a different name + run: + cmd: echo "other step" + task_queue: predict + + merlin: + resources: + workers: + step_1_worker: + args: -l INFO + steps: [step_1] + step_2_worker: + args: -l INFO + steps: [step_2] + other_worker: + args: -l INFO + steps: [other_step] + ``` + + Once the workers are started for this workflow, we can then query for our `step_1_worker` and `step_2_worker` with: + + ```bash + merlin query-workers --workers step_1_worker step_2_worker + ``` + + In our output we see that both workers that we asked for were queried but `other_worker` was ignored: + +
+ ![Output of Query-Workers Using the Workers Option With Worker Names](../../assets/images/monitoring/queues_and_workers/workers-option-with-worker-names.png) +
Output of Query-Workers Using the Workers Option With Worker Names
+
+ + Alternatively, we can do the exact same query using a regular expression: + + ```bash + merlin query-workers --workers ^step + ``` + + The `^` operator for regular expressions will match the beginning of a string. In this example when we say `^step` we're asking Merlin to match any worker starting with the word `step`, which in this case is `step_1_worker` and `step_2_worker`. We can see this in the output below: + +
+ ![Output of Query-Workers Using the Workers Option With RegEx](../../assets/images/monitoring/queues_and_workers/workers-option-with-regex.png) +
Output of Query-Workers Using the Workers Option With RegEx
+
diff --git a/docs/user_guide/monitoring/status_cmds.md b/docs/user_guide/monitoring/status_cmds.md new file mode 100644 index 000000000..cb0088467 --- /dev/null +++ b/docs/user_guide/monitoring/status_cmds.md @@ -0,0 +1,702 @@ +# The Status Commands + +Monitoring the status of your studies is made accessible with two commands in Merlin: [`merlin status`](../command_line.md#status-merlin-status) and [`merlin detailed-status`](../command_line.md#detailed-status-merlin-detailed-status). [The Status Command](#the-status-command) offers a summary of your entire study's status, while [The Detailed-Status Command](#the-detailed-status-command) provides task-specific information that can be further filtered as needed. + +## How They Work + +As your study is progressing, Merlin will create `MERLIN_STATUS.json` files for each step behind the scenes. When states are modified, so are the +`MERLIN_STATUS.json` files. The `merlin status` and `merlin detailed-status` commands will read from these files and format the output in an easy-to-analyze manner. + +For steps that contain samples, a `MERLIN_STATUS.json` file is created for each sample that's ran. As sets of samples finish running, Merlin will condense all of the `MERLIN_STATUS.json` files in that set of samples into one `MERLIN_STATUS.json` file. This helps to save space in the file system for all of the other important outputs that your studies provide. + +The format of a `MERLIN_STATUS.json` file is as follows: + +```json +{ + "step_name": { + "parameters": { + "cmd": { + "TOKEN1": "value1", + "TOKEN2": "value2", + . + . + . + }, + "restart": { + "TOKEN1": "value1", + "TOKEN2": "value2", + . + . + . + } + }, + "task_queue": "name_of_queue", // (1) + "worker_name": "name_of_worker", + "step_workspace": { + "status": "", // (2) + "return_code": "", // (3) + "elapsed_time": "xd:xxh:xxm:xxs", + "run_time": "xd:xxh:xxm:xxs", + "restarts": + } + } +} +``` + +1. If you [run your study locally](../running_studies.md#local-runs), there will not be any entries for `task_queue` and `worker_name`. +2. See [Possible Statuses](#possible-statuses) below for more information. +3. See [Possible Return Codes](#possible-return-codes) below for more information. + +In the `parameters` section here, the `cmd` parameters are parameters used in the `cmd` key of [the `run` property](../specification.md#the-run-property) in a step, and the `restart` parameters are parameters +used in the `restart` key of the `run` property in a step. Both of these values may be null if no parameters are used in either key. + +If your step uses samples, a "step_workspace" entry for each sample will be created. In other words, you will have multiple "step_workspace" entries of the form "step_workspace/00", "step_workspace/01", "step_workspace/02", etc. + +!!! example "`MERLIN_STATUS.json` Format With Samples" + + Say we have a workflow that generates 3 samples and a step named `just_samples` that utilizes them. This would result in a `MERLIN_STATUS.json` file that looks like so: + + ```json + { + "just_samples": { + "parameters": { + "cmd": null, + "restart": null + }, + "task_queue": "just_samples_queue", + "worker_name": "sample_worker", + "just_samples/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0 + }, + "just_samples/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0 + }, + "just_samples/02": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0 + } + } + } + ``` + +## Possible Statuses + +!!! note + + The `INITIALIZED` and `RUNNING` states do not have a colorblind symbol since they do not appear in the progress bar, just in the summary section of a step. + +!!! note + + Colors here are chosen based on [Bang Wong's optimized color palette for color-blind individuals](https://www.nature.com/articles/nmeth.1618). + +During the execution process of your step, there are 7 possible statuses that a task may hold: + +| Status | Description | Color | Colorblind Symbol | +| ------ | ----------- | ----- | ----------------- | +| `INITIALIZED` | Tasks in the `INITIALIZED` state have been queued but have not began processing yet |
light-blue
#56b3e9
| N/A | +| `RUNNING` | Tasks in the `RUNNING` state have began executing but have not yet entered a completed state ("completed states" are any of the states listed below) |
blue
#0072b2
| N/A | +| `FINISHED` | Tasks in the `FINISHED` state have successfully ran to completion |
green
#009e74
| █ | +| `CANCELLED` | Tasks in the `CANCELLED` state have exited with the `$(MERLIN_STOP_WORKERS)` exit code (see [Step Return Variables](../variables.md#step-return-variables)) |
yellow
#f0e442
| / | +| `FAILED` | Tasks in the `FAILED` state have exited with the `$(MERLIN_SOFT_FAIL)` or `$(MERLIN_HARD_FAIL)` exit codes (see [Step Return Variables](../variables.md#step-return-variables)) |
red
#d55e00
| ⣿ | +| `DRY_RUN` | Tasks in the DRY_RUN state have successfully run in the [Dry Run](../running_studies.md#dry-runs) mode |
orange
#e69f00
| \\ | +| `UNKNOWN` | Tasks in the `UNKNOWN` state have exited with an unknown return code |
green
#666666
| ? | + +## Possible Return Codes + +!!! note + + The return codes here follow almost directly from the [Step Return Variables](../variables.md#step-return-variables). Only the `MERLIN_DRY_SUCCESS` nad `MERLIN_UNRECOGNIZED` return codes are unique here. + +Once a task has completed running, there are 8 possible return codes that it could have: + +| Return Code | Description | +| ----------- | ----------- | +| `MERLIN_SUCCESS` | This task finished successfully | +| `MERLIN_SOFT_FAIL` | This task failed but not badly enough to stop the workflow entirely | +| `MERLIN_HARD_FAIL` | This task failed and we now need to stop the entire workflow | +| `MERLIN_RESTART` | This task needs restarted; Next run will run the "restart" command in the step unless it's undefined | +| `MERLIN_RETRY` | This task needs to be retried; Will automatically re-run the "cmd" for the step | +| `MERLIN_STOP_WORKERS` | This task exited with a code to stop the workers | +| `MERLIN_DRY_SUCCESS` | This task successfully completed in the [Dry Run](../running_studies.md#dry-runs) mode | +| `MERLIN_UNRECOGNIZED` | This task finished with an unrecognized return code | + +## Inputs + +Both the [`merlin status`](../command_line.md#status-merlin-status) and the [`merlin detailed-status`](../command_line.md#status-merlin-status) commands can take either a yaml spec file or an output workspace as input. + +=== "Status Usage" + + ```bash + merlin status + ``` + +=== "Detailed-Status Usage" + + ```bash + merlin detailed-status + ``` + +!!! example + + Say we have a spec file `hello_world.yaml` that we've ran which created an output workspace `hello_world_20230503-105137/`. We can check the status of our study with either option. + + === "Using the Spec File" + + ```bash + merlin status hello_world.yaml + ``` + + === "Using the Output Workspace" + + ```bash + merlin status hello_world_20230503-105137/ + ``` + +If you choose to provide an output study directory as input, Merlin will pull information from the expanded spec file located in the +`merlin_info/` directory. + +!!! tip + + If you're not familiar with the `merlin_info/` directory, check out [The Basics of Interpreting Output](../interpreting_output.md#the-basics) to learn more. + +If you choose to provide a spec file as input, Merlin will search the `OUTPUT_PATH` (see [Reserved Variables](../variables.md#reserved-variables) for more info on this variable) for possible studies associated with this spec. If there are multiple output directories associated with your spec file, then you will be prompted to select which study you'd like to view the status of, as is shown in the figure below. + +
+ ![Prompt when multiple studies are found](../../assets/images/monitoring/status_cmds/multiple-studies.png) +
Prompt When Multiple Studies Are Found
+
+ +If you'd like to ignore this prompt, you can use the `--no-prompts` option. This will automatically select the most recent study for you. + +**Usage:** + +```bash +merlin status --no-prompts +``` + +## The Status Command + +The [`merlin status`](../command_line.md#status-merlin-status) command is designed to help you see the overall status of your entire study. It provides you a step-by-step view with progress bars and summary tables that will show you exactly how many tasks are in each state, how many tasks in total there are for a step, the average & standard deviation of the run times for tasks in a step, and which workers & task queues each step is associated with (if applicable). + +This command requires you to select a study to view the status of. For more information on inputs to this command see [Inputs](#inputs) above. + +**Usage:** + +```bash +merlin status +``` + +??? example "Example Status Output" + +
+ ![Output of Status Command](../../assets/images/monitoring/status_cmds/status.png) +
Output of Status Command
+
+ +To help assist with colorblindness, Merlin provides the `--cb-help` option for the status command. This option will add symbols to the progress bar for different task statuses. + +**Usage:** + +```bash +merlin status --cb-help +``` + +??? example "Example Colorblind-Assisted Status Output" + +
+ ![Output of Status Command With Colorblind Assistance Enabled](../../assets/images/monitoring/status_cmds/cb-help.png) +
Output of Status Command With Colorblind Assistance Enabled
+
+ +## The Detailed-Status Command + +The [`merlin detailed-status`](../command_line.md#detailed-status-merlin-detailed-status) command is designed to help you see an in-depth status breakdown of each step in your study. It provides a task-by-task view with each task's workspace, status, return code, elapsed time, run time, and number of restarts available for you to see. + +This command requires you to select a study to view the status of. For more information on inputs to this command see [Inputs](#inputs) above. + +!!! note "Manpager Note" + + If the output of the detailed-status command looks something like this: + +
+ ![ASCII Error With Pager Functionality](../../assets/images/monitoring/status_cmds/ascii-error.png) +
ASCII Error With Pager Functionality
+
+ + Then there are a couple things you can try to fix this problem: + + 1. Set the `MANPAGER` or `PAGER` environment variable to be "less -r" and run again + + ```bash + export MANPAGER="less -r" + ``` + + 2. If the error isn't fixed after 1. above, then: + + a. You can disable the theme with the `--disable-theme` option (see [Disable Theme](#disable-theme) below). + + b. If you'd rather not disable the theme, the error usually stems from using the pager functionality, so you can try disabling that with the `--disable-pager` option (see [Disable Pager](#disable-pager) below). **Caution:** you may end up outputting a lot of information to the shell all at once when using this option. + +By default, the `merlin detailed-status` command will pull up a pager window containing the status information that was requested. Merlin uses this pager functionality to ensure we don't overload the shell by displaying too many task statuses at one time. + +**Usage:** + +```bash +merlin detailed-status +``` + +??? example "Example Detailed-Status Output Inside The Pager" + +
+ ![The output of detailed-status inside the pager](../../assets/images/monitoring/status_cmds/inside-pager.png) +
Output of Detailed-Status Inside the Pager
+
+ +To see all of the options that can be used with the pager, press `h`. To exit the pager, press `q`. + +Once you close the pager, the statuses you requested will not appear and you'll be redirected back to your normal shell view. + +??? example "Example Detailed-Status Output Once Pager Is Closed" + +
+ ![The output of detailed-status outside the pager](../../assets/images/monitoring/status_cmds/outside-pager.png) +
Output of Detailed-Status When the Pager Is Closed
+
+ +### Display Options + +The merlin status command comes equipped with four options to help modify the display output: [`--disable-pager`](#disable-pager), [`--disable-theme`](#disable-theme), [`--layout`](#layout), and [`--no-prompts`](#no-prompts). These options can all be used together or by themselves. + +#### Disable Pager + +!!! warning + + The `--disable-pager` option could cause you to unintentionally output thousands of task statuses to stdout, which may overload the shell with output. Merlin tries to help prevent this with prompts for additional filters but you should still use caution. + +The `--disable-pager` option allows you to turn off the pager functionality that is on by default. This will redirect the detailed-status output to stdout rather than the pager. + +**Usage:** + +```bash +merlin detailed-status --disable-pager +``` + +??? example "Example Detailed-Status Output With Pager Disabled" + +
+ ![The output of detailed-status with the pager disabled](../../assets/images/monitoring/status_cmds/disable-pager.png) +
Output of Detailed-Status With Pager Disabled
+
+ +When using this option you may unintentionally output a lot of information to the shell which could cause problems. To help prevent issues from too much information being printed, Merlin will prompt you to further filter your output if there are more than 250 task statuses to display: + +
+ ![Prompt Displayed When Too Many Tasks Are Found With Disable-Pager](../../assets/images/monitoring/status_cmds/prompt.png) +
Prompt Displayed When Too Many Tasks Are Found With Disable-Pager
+
+ +If you'd like to cancel the filter and the display entirely, press `c`. If you don't wish to filter and just want to display your tasks, press `n` (again, _**be cautious**_ when using this option). If you decide that filtering your tasks would be a better option, press `y` and you'll see the following filter options: + +
+ ![The prompt asking for you to provide filters](../../assets/images/monitoring/status_cmds/filter-prompt.png) +
Prompt Asking For You To Provide Filters
+
+ +!!! note + + If you put `E` or `EXIT` anywhere in the prompt, no filters will be applied and you'll be returned to the original prompt. For example, entering `FAILED, E, CANCELLED` will return you to the original prompt without filtering anything. + + +Here, the filters are equivalent to certain [Filter Options](#filter-options): + +- Limiting the number of tasks to display = [`--max-tasks`](#max-tasks) +- Filtering by status = [`--task-status`](#task-status) +- Filtering by return code = [`--return-code`](#return-code) + +It's possible to combine different filter types here. For example, a valid filter could be `FAILED, STOP_WORKERS` which would show any tasks with a `FAILED` status *and* any tasks with a `STOP_WORKERS` return code. + +If you put `MAX_TASKS` anywhere in your filter, you'll receive another prompt asking you for an integer greater than 0 to set as the limit on the number of tasks to display: + +
+ ![The prompt asking you to provide a max-tasks limit](../../assets/images/monitoring/status_cmds/max-tasks-prompt.png) +
Prompt Asking For You To Provide A Max-Tasks Limit
+
+ +#### Disable Theme + +The `--disable-theme` option allows you to disable the color scheme used in the output of the detailed-status command. + +**Usage:** + +```bash +merlin detailed-status --disable-theme +``` + +!!! example "Example Detailed-Status Output With Theme Disabled" + +
+ ![The output of detailed-status with the theme disabled](../../assets/images/monitoring/status_cmds/disable-theme.png) +
Output of Detailed-Status With Theme Disabled
+
+ +#### Layout + +By default, the `merlin detailed-status` command displays tasks on a step-by-step basis. To change this and group all of the tasks together, you can use the `--layout table` option. + +**Usage:** + +```bash +merlin detailed-status --layout +``` + +!!! example "Example Detailed-Status Output With Table Layout" + +
+ ![The output of detailed-status with the table layout](../../assets/images/monitoring/status_cmds/layout-table.png) +
Output of Detailed-Status With Table Layout
+
+ +#### No Prompts + +!!! warning + + _**Be cautious**_ when using this option with the `--disable-pager` option. You may accidentally output thousands of task statuses to the shell. + +The `--no-prompts` option is an option to disable any prompts that might be displayed while using the `detailed-status` command. There are four possible ways to use this filter, each with a slightly different result: + +- **Used with a workspace as input:** Nothing will happen here as there will be no prompts asking to select a study and no prompts asking you to filter tasks +- **Used with a spec as input:** Instead of prompting you to select a study, the most recent study will automatically be selected +- **Used with a workspace as input and the `--disable-pager` option enabled:** Any prompt that may have been displayed asking you to filter your output will be ignored +- **Used with a spec as input and the `--disable-pager` option enabled:** The most recent study will automatically be selected and any prompt that may have been displayed asking you to filter your output will be ignored + +**Usage:** + +```bash +merlin detailed-status --no-prompts +``` + +### Filter Options + +There are six filter options with the detailed-status command: [`--max-tasks`](#max-tasks), [`--return-code`](#return-code), [`--steps`](#steps), [`--task-queues`](#task-queues), [`--task-status`](#task-status), and [`--workers`](#workers). These filters can be used together or by themselves. + +!!! note + + In the images that are in the sections below, the `--disable-pager` filter is used. This is simply to show all of the output of the detailed-status filters in one place. It is *not* required (nor is it recommended) when using the filter options. + + If you don't use the `--disable-pager` option but you get strange ASCII characters in the output of the pager, see the ["Manpager Note" above](#the-detailed-status-command) above for instructions on how to fix that. + +#### Max Tasks + +The `--max-tasks` filter allows you to limit how many tasks are displayed in the output. This filter takes in an integer as input which represents the maximum number of tasks you'd like to display. + +**Usage:** + +```bash +merlin detailed-status --max-tasks +``` + +!!! example "Example Detailed-Status Output With Max Tasks Filter" + + Here, we're setting the maximum number of tasks that can be displayed to 5: + +
+ ![The output of detailed-status with the max tasks filter](../../assets/images/monitoring/status_cmds/filter-max-tasks.png) +
Output of Detailed-Status With Max-Tasks Set to 5
+
+ +#### Return Code + +The `--return-code` filter allows you to search for tasks with a certain return code. This filter can take one or more [return codes](#possible-return-codes) as input. Valid inputs include: `SUCCESS`, `SOFT_FAIL`, `HARD_FAIL`, `STOP_WORKERS`, `RESTART`, `RETRY`, `DRY_SUCCESS`, and `UNRECOGNIZED`. + +**Usage:** + +```bash +merlin detailed-status --return-code +``` + +!!! example "Example Detailed-Status Output With Return Code Filter" + + Here, we're asking to see all tasks that completed with a `SOFT_FAIL` return code: + +
+ ![The output of detailed-status with the return code filter](../../assets/images/monitoring/status_cmds/filter-return-code.png) +
Output of Detailed-Status With Return-Code Set to 'SOFT_FAIL'
+
+ +#### Steps + +The `--steps` filter allows you to view status information about specific steps. This flag can take one or multiple steps as input. If a step provided cannot be found, that step will be removed from the filter. + +**Usage:** + +```bash +merlin detailed-status --steps +``` + +!!! example "Example Detailed-Status Output With Steps Filter" + + Here, we're asking to see all task statuses from the `just_samples` and `fail_step` steps: + +
+ ![The output of detailed-status with the steps filter](../../assets/images/monitoring/status_cmds/filter-steps.png) +
Output of Detailed-Status With The Steps Filter Set to 'just_samples' and 'fail_step'
+
+ +#### Task Queues + +The `--task-queues` filter allows you to view statuses of tasks in certain task queues. This filter can take one or more queues as input. If a queue provided cannot be found, that queue will be removed from the filter. + +**Usage:** + +```bash +merlin detailed-status --task-queues +``` + +!!! example "Example Detailed-Status Output With Task Queues Filter" + + Here, we're asking to see all task statuses of tasks in the `just_parameters_queue` and `cancel_queue` queues: + +
+ ![The output of detailed-status with the task-queues filter](../../assets/images/monitoring/status_cmds/filter-task-queues.png) +
Output of Detailed-Status With The Task-Queues Filter Set to 'just_parameters_queue' and 'cancel_queue'
+
+ +#### Task Status + +The `--task-status` filter allows you to search for tasks with a certain status. This filter can take one or more statuses as input. Valid inputs include: `INITIALIZED`, `RUNNING`, `FINISHED`, `FAILED`, `CANCELLED`, `DRY_RUN`, and `UNKNOWN`. + +**Usage:** + +```bash +merlin detailed-status --task-status +``` + +!!! example "Example Detailed-Status Output With Task Status Filter" + + Here, we're asking to see all task statuses that have a `FAILED` or `UNKNOWN` status: + +
+ ![The output of detailed-status with the task-status filter](../../assets/images/monitoring/status_cmds/filter-task-status.png) +
Output of Detailed-Status With The Task-Status Filter Set to 'FAILED' and 'UNKNOWN'
+
+ +#### Workers + +The `--workers` filter allows you to search for tasks that are being run or were ran by certain celery workers. This filter can take one or more worker names as input. If a worker provided cannot be found, that worker will be removed from the filter. + +**Usage:** + +```bash +merlin detailed-status --workers +``` + +!!! example "Example Detailed-Status Output With Workers Filter" + + Here, we're asking to see all task statuses for tasks ran by the `sample_worker` worker: + +
+ ![The output of detailed-status with the workers filter](../../assets/images/monitoring/status_cmds/filter-workers.png) +
Output of Detailed-Status With The Workers Filter Set to 'sample_worker'
+
+ +## Dumping Status Info to Output Files + +Both status commands in Merlin allow you to dump to an output file. This output file must be either a `.csv` or a `.json` file. + +=== "JSON Dump" + + ```bash + merlin status --dump status_report.json + ``` + +=== "CSV Dump" + + ```bash + merlin status --dump status_report.csv + ``` + +When dumping to a file that *does not* yet exist, Merlin will create that file for you and populate it with the requested status info. + +When dumping to a file that *does* exist, Merlin will append the requested status information to that file. You can differentiate between separate dump calls by looking at the timestamps of the dumps. For CSV files this timestamp exists in the `time_of_status` column (see [Status CSV Dump Format](#csv-dump-format) below) and for JSON files this timestamp will be the top level key to the status entry (see [Status JSON Dump Format](#json-dump-format) below). + +If you use the `--dump` option with `merlin detailed-status` and *don't* provide any filters, this will provide the same output in the file you're dumping to as it would if you used `--dump` with `merlin status`. + +If you use the `--dump` option with `merlin detailed-status` and you *do* provide filters, only the statuses that match your filters will be written to the dump file. + +### CSV Dump Format + +The format of a CSV dump file for statuses is as follows: + +```bash +time_of_status,step_name,step_workspace,status,return_code,elapsed_time,run_time,restarts,cmd_parameters,restart_parameters,task_queue,worker_name +``` + +The image below shows an example of dumping the status info of tasks with `FAILED` task statuses to a CSV file, and then displaying that CSV file using the [rich-cli library](https://github.com/Textualize/rich-cli): + +
+ ![Example of dumping to a csv file and outputting its contents](../../assets/images/monitoring/status_cmds/dump-csv.png) +
An Example Showcasing How to do a Filtered CSV Dump and View its Contents
+
+ +### JSON Dump Format + +The format of a JSON dump file for statuses is almost exactly the same as the [format of the `MERLIN_STATUS.json` files](#how-they-work). The only difference is that each entry begins with a date: + +```json +{ + "YYYY-MM-DD HH:MM:SS": { + "step_name": { + "parameters": { + "cmd": { + "TOKEN1": "value1", + "TOKEN2": "value2", + "etc": "etc" + }, + "restart": { + "TOKEN1": "value1", + "TOKEN2": "value2", + "etc": "etc" + } + }, + "task_queue": "name_of_queue", + "worker_name": "name_of_worker", + "step_workspace": { + "status": "", + "return_code": "", + "elapsed_time": "xd:xxh:xxm:xxs", + "run_time": "xd:xxh:xxm:xxs", + "restarts": + } + } + } +} +``` + +The image below shows an example of dumping the status info of tasks with `FAILED` task statuses to a JSON file, and then displaying that JSON file using the [rich-cli library](https://github.com/Textualize/rich-cli): + +
+ ![Example of dumping to a json file and outputting its contents](../../assets/images/monitoring/status_cmds/dump-json.png) +
An Example Showcasing How to do a Filtered JSON Dump and View its Contents
+
+ +## Output Path and Task Server Options + +The `--output-path` (or `-o` for short) option allows users to specify a new output path to search for studies in. This option is useful *only* when a spec is provided as the input. If this option is used when an output workspace is passed as input then it will be ignored. + +**Usage:** + +```bash +merlin status --output-path +``` + +??? example "Example Usage of the `--output-path` Option" + + Say we have the following study with an `OUTPUT_PATH` variable defined to be the current working directory: + + ```yaml title="hello_samples.yaml" hl_lines="8" + description: + name: hello_samples + description: a very simple merlin workflow, with samples + + env: + variables: + N_SAMPLES: 3 + OUTPUT_PATH: . + + global.parameters: + GREET: + values : ["hello","hola"] + label : GREET.%% + + study: + - name: step_1 + description: say hello + run: + cmd: | + echo "$(GREET), $(NAME)!" + + - name: step_2 + description: print a success message + run: + cmd: print("Hurrah, we did it!") + depends: [step_1_*] + shell: /usr/bin/env python3 + + merlin: + resources: + workers: + demo_worker: + args: -l INFO --concurrency=1 + steps: [all] + samples: + generate: + cmd: python3 $(SPECROOT)/make_samples.py --filepath=$(MERLIN_INFO)/samples.csv --number=$(N_SAMPLES) + file: $(MERLIN_INFO)/samples.csv + column_labels: [NAME] + ``` + + Running this normally with: + + ```bash + merlin run hello_samples.yaml + ``` + + creates a `hello_samples_/` output workspace in the current working directory. However, if we ran this with: + + ```bash + merlin run hello_samples.yaml --vars OUTPUT_PATH=./studies + ``` + + This would create a `hello_samples_/` output workspace in a directory called `studies/` *without* modifying the original `hello_samples.yaml` file. + + In other words, we'd now have the following directory structure in our current working directory: + + ```bash + current_working_dir/ + ├── hello_samples.yaml + ├── hello_samples_/ + │ │ . + │ │ . + │ └── . + └── studies/ + └── hello_samples_/ + │ . + │ . + └── . + ``` + + Now, let's say we check the status of a study using the `hello_samples.yaml` spec as input: + + ```bash + merlin status hello_samples.yaml + ``` + + Since our original spec file was never modified, the `OUTPUT_PATH` variable there will still point to the current working directory. Therefore, the above command will look in the current working directory for studies. The output workspace located in the `studies/` directory will not be seen. + + If we'd like to see the status of the output workspace in the `studies` directory, we can use the `--output-path` option: + + ```bash + merlin status hello_samples.yaml --output-path ./studies + ``` + + This will tell the status command to look in the `studies/` directory for potential output workspaces associated with the `hello_samples.yaml` script. + +Additionally, to modify the task server from the command line you can use the `--task-server` option. However, the only currently available +option for task server is celery so you most likely will not want to use this option. + +**Usage:** + +```bash +merlin status --task-server +``` diff --git a/merlin/common/dumper.py b/merlin/common/dumper.py new file mode 100644 index 000000000..178153a03 --- /dev/null +++ b/merlin/common/dumper.py @@ -0,0 +1,151 @@ +############################################################################### +# Copyright (c) 2022, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.0 +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +"""This file is meant to help dump information to files""" + +import csv +import json +import logging +import os +from typing import Dict, List + + +LOG = logging.getLogger(__name__) + + +# TODO When we add more public methods we can get rid of this pylint disable +class Dumper: # pylint: disable=R0903 + """ + The dumper class is intended to help write information to files. + Currently, the supported file types to dump to are csv and json. + + Example csv usage: + dumper = Dumper("populations.csv") + # Eugene, OR has a population of 175096 + # Livermore, CA has a population of 86803 + population_data = { + "City": ["Eugene", "Livermore"], + "State": ["OR", "CA"], + "Population": [175096, 86803] + } + dumper.write(population_data, "w") + |---> Output will be written to populations.csv + + Example json usage: + dumper = Dumper("populations.json") + population_data = { + "OR": {"Eugene": 175096, "Portland": 641162}, + "CA": {"Livermore": 86803, "San Francisco": 815201} + } + dumper.write(population_data, "w") + |---> Output will be written to populations.json + """ + + def __init__(self, file_name): + """ + Initialize the class and ensure the file is of a supported type. + :param `file_name`: The name of the file to dump to eventually + """ + supported_types = ["csv", "json"] + + valid_file = False + for stype in supported_types: + if file_name.endswith(stype): + valid_file = True + self.file_type = stype + + if not valid_file: + raise ValueError(f"Invalid file type for {file_name}. Supported file types are: {supported_types}.") + + self.file_name = file_name + + def write(self, info_to_write: Dict, fmode: str): + """ + Write information to an outfile. + :param `info_to_write`: The information you want to write to the output file + :param `fmode`: The file write mode ("w", "a", etc.) + """ + if self.file_type == "csv": + self._csv_write(info_to_write, fmode) + elif self.file_type == "json": + self._json_write(info_to_write, fmode) + + def _csv_write(self, csv_to_dump: Dict[str, List], fmode: str): + """ + Write information to a csv file. + :param `csv_to_dump`: The information to write to the csv file. + Dict keys will be the column headers and values will be the column values. + :param `fmode`: The file write mode ("w", "a", etc.) + """ + # If we have statuses to write, create a csv writer object and write to the csv file + with open(self.file_name, fmode) as outfile: + csv_writer = csv.writer(outfile) + if fmode == "w": + csv_writer.writerow(csv_to_dump.keys()) + csv_writer.writerows(zip(*csv_to_dump.values())) + + def _json_write(self, json_to_dump: Dict[str, Dict], fmode: str): + """ + Write information to a json file. + :param `json_to_dump`: The information to write to the json file. + :param `fmode`: The file write mode ("w", "a", etc.) + """ + # Appending to json requires file mode to be r+ for json.load + if fmode == "a": + fmode = "r+" + + with open(self.file_name, fmode) as outfile: + # If we're appending, read in the existing file data + if fmode == "r+": + file_data = json.load(outfile) + json_to_dump.update(file_data) + outfile.seek(0) + # Write to the outfile + json.dump(json_to_dump, outfile) + + +def dump_handler(dump_file: str, dump_info: Dict): + """ + Help handle the process of creating a Dumper object and writing + to an output file. + + :param `dump_file`: A filepath to the file we're dumping to + :param `dump_info`: A dict of information that we'll be dumping to `dump_file` + """ + # Create a dumper object to help us write to dump_file + dumper = Dumper(dump_file) + + # Get the correct file write mode and log message + fmode = "a" if os.path.exists(dump_file) else "w" + write_type = "Writing" if fmode == "w" else "Appending" + LOG.info(f"{write_type} to {dump_file}...") + + # Write the output + dumper.write(dump_info, fmode) + LOG.info(f"{write_type} complete.") diff --git a/merlin/common/tasks.py b/merlin/common/tasks.py index 8292e559f..893aa10e0 100644 --- a/merlin/common/tasks.py +++ b/merlin/common/tasks.py @@ -31,14 +31,16 @@ """Test tasks.""" from __future__ import absolute_import, unicode_literals +import json import logging import os -from typing import Any, Dict, Optional +from typing import Any, Dict, List, Optional # Need to disable an overwrite warning here since celery has an exception that we need that directly # overwrites a python built-in exception from celery import chain, chord, group, shared_task, signature from celery.exceptions import MaxRetriesExceededError, OperationalError, TimeoutError # pylint: disable=W0622 +from filelock import FileLock, Timeout from merlin.common.abstracts.enums import ReturnCode from merlin.common.sample_index import uniform_directories @@ -47,7 +49,7 @@ from merlin.exceptions import HardFailException, InvalidChainException, RestartException, RetryException from merlin.router import stop_workers from merlin.spec.expansion import parameter_substitutions_for_cmd, parameter_substitutions_for_sample -from merlin.study.step import Step +from merlin.utils import dict_deep_merge retry_exceptions = ( @@ -58,6 +60,7 @@ OperationalError, RetryException, RestartException, + FileNotFoundError, ) LOG = logging.getLogger(__name__) @@ -87,9 +90,11 @@ def merlin_step(self, *args: Any, **kwargs: Any) -> Optional[ReturnCode]: # noq Example kwargs dict: {"adapter_config": {'type':'local'}, - "next_in_chain": } # merlin_step will be added to the current chord - # with next_in_chain as an argument + "next_in_chain": } # merlin_step will be added to the current chord + # with next_in_chain as an argument """ + from merlin.study.step import Step # pylint: disable=C0415 + step: Optional[Step] = None LOG.debug(f"args is {len(args)} long") @@ -109,13 +114,17 @@ def merlin_step(self, *args: Any, **kwargs: Any) -> Optional[ReturnCode]: # noq step_dir: str = step.get_workspace() LOG.debug(f"merlin_step: step_name '{step_name}' step_dir '{step_dir}'") finished_filename: str = os.path.join(step_dir, "MERLIN_FINISHED") + # if we've already finished this task, skip it result: ReturnCode if os.path.exists(finished_filename): LOG.info(f"Skipping step '{step_name}' in '{step_dir}'.") result = ReturnCode.OK else: + LOG.info(f"Executing step '{step_name}' in '{step_dir}'...") result = step.execute(config) + step.mstep.mark_end(result) + if result == ReturnCode.OK: LOG.info(f"Step '{step_name}' in '{step_dir}' finished successfully.") # touch a file indicating we're done with this step @@ -129,6 +138,7 @@ def merlin_step(self, *args: Any, **kwargs: Any) -> Optional[ReturnCode]: # noq LOG.info( f"Step '{step_name}' in '{step_dir}' is being restarted ({self.request.retries + 1}/{self.max_retries})..." ) + step.mstep.mark_restart() self.retry(countdown=step.retry_delay) except MaxRetriesExceededError: LOG.warning( @@ -136,12 +146,15 @@ def merlin_step(self, *args: Any, **kwargs: Any) -> Optional[ReturnCode]: # noq but has already reached its retry limit ({self.max_retries}). Continuing with workflow.""" ) result = ReturnCode.SOFT_FAIL + # Need to call mark_end again since we switched from RESTART to SOFT_FAIL + step.mstep.mark_end(result, max_retries=True) elif result == ReturnCode.RETRY: step.restart = False try: LOG.info( f"Step '{step_name}' in '{step_dir}' is being retried ({self.request.retries + 1}/{self.max_retries})..." ) + step.mstep.mark_restart() self.retry(countdown=step.retry_delay) except MaxRetriesExceededError: LOG.warning( @@ -149,6 +162,8 @@ def merlin_step(self, *args: Any, **kwargs: Any) -> Optional[ReturnCode]: # noq but has already reached its retry limit ({self.max_retries}). Continuing with workflow.""" ) result = ReturnCode.SOFT_FAIL + # Need to call mark_end again since we switched from RETRY to SOFT_FAIL + step.mstep.mark_end(result, max_retries=True) elif result == ReturnCode.SOFT_FAIL: LOG.warning(f"*** Step '{step_name}' in '{step_dir}' soft failed. Continuing with workflow.") elif result == ReturnCode.HARD_FAIL: @@ -159,7 +174,6 @@ def merlin_step(self, *args: Any, **kwargs: Any) -> Optional[ReturnCode]: # noq shutdown = shutdown_workers.s([step_queue]) shutdown.set(queue=step_queue) shutdown.apply_async(countdown=STOP_COUNTDOWN) - raise HardFailException elif result == ReturnCode.STOP_WORKERS: LOG.warning(f"*** Shutting down all workers in {STOP_COUNTDOWN} secs!") @@ -168,6 +182,7 @@ def merlin_step(self, *args: Any, **kwargs: Any) -> Optional[ReturnCode]: # noq shutdown.apply_async(countdown=STOP_COUNTDOWN) else: LOG.warning(f"**** Step '{step_name}' in '{step_dir}' had unhandled exit code {result}. Continuing with workflow.") + # queue off the next task in a chain while adding it to the current chord so that the chordfinisher actually # waits for the next task in the chain if next_in_chain is not None: @@ -194,7 +209,7 @@ def is_chain_expandable(chain_, labels): """ - array_of_bools = [step.needs_merlin_expansion(labels) for step in chain_] + array_of_bools = [step.check_if_expansion_needed(labels) for step in chain_] needs_expansion = all(array_of_bools) @@ -260,14 +275,16 @@ def add_merlin_expanded_chain_to_chord( # pylint: disable=R0913,R0914 :param adapter_config: The adapter config. :param min_sample_id: offset to use for the sample_index. """ + num_samples = len(samples) # Use the index to get a path to each sample - LOG.debug(f"recursing with {len(samples)} samples {samples}") + LOG.debug(f"recursing with {num_samples} samples {samples}") if sample_index.is_grandparent_of_leaf or sample_index.is_parent_of_leaf: all_chains = [] - LOG.debug(f"gathering up {len(samples)} relative paths") + LOG.debug(f"gathering up {num_samples} relative paths") relative_paths = [ - os.path.dirname(sample_index.get_path_to_sample(sample_id + min_sample_id)) for sample_id in range(len(samples)) + os.path.dirname(sample_index.get_path_to_sample(sample_id + min_sample_id)) for sample_id in range(num_samples) ] + top_lvl_workspace = chain_[0].get_workspace() LOG.debug(f"recursing grandparent with relative paths {relative_paths}") for step in chain_: # Make a list of new task objects with modified cmd and workspace @@ -288,13 +305,24 @@ def add_merlin_expanded_chain_to_chord( # pylint: disable=R0913,R0914 ), ), adapter_config=adapter_config, + top_lvl_workspace=top_lvl_workspace, ) new_step.set(queue=step.get_task_queue()) new_chain.append(new_step) all_chains.append(new_chain) + + condense_sig = condense_status_files.s( + sample_index=sample_index, + workspace=top_lvl_workspace, + condensed_workspace=chain_[0].mstep.condensed_workspace, + ).set( + queue=chain_[0].get_task_queue(), + ) + LOG.debug("adding chain to chord") - add_chains_to_chord(self, all_chains) + chain_1d = get_1d_chain(all_chains) + launch_chain(self, chain_1d, condense_sig=condense_sig) LOG.debug("chain added to chord") else: # recurse down the sample_index hierarchy @@ -346,24 +374,52 @@ def add_simple_chain_to_chord(self, task_type, chain_, adapter_config): new_steps = [task_type.s(step, adapter_config=adapter_config).set(queue=step.get_task_queue())] all_chains.append(new_steps) - add_chains_to_chord(self, all_chains) + chain_1d = get_1d_chain(all_chains) + launch_chain(self, chain_1d) -def add_chains_to_chord(self, all_chains): +def launch_chain(self: "Task", chain_1d: List["Signature"], condense_sig: "Signature" = None): # noqa: F821 """ - Adds chains to the current chord. - :param self: The current task whose chord we will add the chains' tasks to. - :param all_chains: Two-dimensional list of chains [chain_length][number_of_chains] + Given a 1D chain, appropriately launch the signatures it contains. + If this is a local run, launch the signatures instantly. + Otherwise, there's two cases: + a. The chain is dealing with samples (i.e. we'll need to condense status files) + so create a new chord and add it to the current chord + b. The chain is NOT dealing with samples so we can just add the signatures to the current chord + + :param `self`: The current task + :param `chain_1d`: A 1-dimensional list of signatures to launch + :param `condense_sig`: A signature for condensing the status files. None if condensing isn't needed. """ - - if len(all_chains) == 1: - # enqueue the steps as a single parallel group - LOG.debug(f"launching group with {signature(all_chains[0][0])}") - for sig in all_chains[0]: - if self.request.is_eager: + # If there's nothing in the chain then we won't have to launch anything so check that first + if chain_1d: + # Case 1: local run; launch signatures instantly + if self.request.is_eager: + for sig in chain_1d: sig.delay() + # Case 2: non-local run; signatures need to be added to the current chord + else: + # Case a: we're dealing with a sample hierarchy and need to condense status files when we're done executing tasks + if condense_sig: + # This chord makes it so we'll process all tasks in chain_1d, then condense the status files when they're done + sample_chord = chord(chain_1d, condense_sig) + self.add_to_chord(sample_chord, lazy=False) + # Case b: no condensing is needed so just add all the signatures to the chord else: - self.add_to_chord(sig, lazy=False) + for sig in chain_1d: + self.add_to_chord(sig, lazy=False) + + +def get_1d_chain(all_chains: List[List["Signature"]]) -> List["Signature"]: # noqa: F821 + """ + Convert a 2D list of chains into a 1D list. + :param all_chains: Two-dimensional list of chains [chain_length][number_of_chains] + :returns: A one-dimensional list representing a chain of tasks + """ + chain_steps = [] + if len(all_chains) == 1: + # Steps will be enqueued in a single parallel group + chain_steps = all_chains[0] if len(all_chains) > 1: # in this case, we need to make a chain. @@ -374,7 +430,6 @@ def add_chains_to_chord(self, all_chains): # during execution of a task belonging to that chord, # so we set up a chain by passing the child member of a chain in as an # argument to the signature of the parent member of a chain. - chain_steps = [] length = len(all_chains[0]) for i in range(length): # Do the following in reverse order because the replace method @@ -391,12 +446,122 @@ def add_chains_to_chord(self, all_chains): all_chains[j][i] = all_chains[j][i].replace(kwargs=new_kwargs) chain_steps.append(all_chains[0][i]) - for sig in chain_steps: - LOG.debug(f"launching chain {signature(sig)}") - if self.request.is_eager: - sig.delay() - else: - self.add_to_chord(sig, lazy=False) + return chain_steps + + +def gather_statuses( + sample_index: "SampleIndex", workspace: str, condensed_workspace: str, files_to_remove: List[str] # noqa: F821 +) -> Dict: + """ + Traverse the sample index and gather all of the statuses into one. + + :param `sample_index`: A SampleIndex object to track this specific sample hierarchy + :param `workspace`: The full workspace path to the step we're condensing for + :param `condensed_workspace`: A shortened version of `workspace` that's saved in the status files + :param `files_to_remove`: An empty list that we'll add filepaths to that need removed + :returns: A dict of condensed statuses + """ + LOG.info(f"Gathering statuses to condense for '{condensed_workspace}'") + condensed_statuses = {} + for path, _ in sample_index.traverse(conditional=lambda c: c.is_parent_of_leaf): + # Read in the status data + sample_workspace = f"{workspace}/{path}" + status_filepath = f"{sample_workspace}/MERLIN_STATUS.json" + lock = FileLock(f"{sample_workspace}/status.lock") # pylint: disable=E0110 + try: + # The status files will need locks when reading to avoid race conditions + with lock.acquire(timeout=10): + with open(status_filepath, "r") as status_file: + status = json.load(status_file) + + # This for loop is just to get the step name that we don't have; it's really not even looping + for step_name in status: + try: + # Make sure the status for this sample workspace is in a finished state (not initialized or running) + if status[step_name][f"{condensed_workspace}/{path}"]["status"] not in ("INITIALIZED", "RUNNING"): + # Add the status data to the statuses we'll write to the condensed file and remove this status file + dict_deep_merge(condensed_statuses, status) + files_to_remove.append(status_filepath) + except KeyError: + LOG.warning(f"Key error when reading from {sample_workspace}") + except Timeout: + # Raising this celery timeout instead will trigger a restart for this task + raise TimeoutError # pylint: disable=W0707 + except FileNotFoundError: + LOG.warning(f"Could not find {status_filepath} while trying to condense. Restarting this task...") + raise FileNotFoundError # pylint: disable=W0707 + + return condensed_statuses + + +@shared_task( + bind=True, + autoretry_for=retry_exceptions, + retry_backoff=True, + priority=get_priority(Priority.LOW), +) +def condense_status_files(self, *args: Any, **kwargs: Any) -> ReturnCode: # pylint: disable=R0914,W0613 + """ + After a section of the sample tree has finished, condense the status files. + + kwargs should look like so: + kwargs = { + "sample_index": SampleIndex Object, + "workspace": str representing the step's workspace + } + """ + # Get the sample index object that we'll use for condensing + sample_index = kwargs.pop("sample_index", None) + if not sample_index: + LOG.warning("Sample index not found. Cannot condense status files.") + return None + + # Get the full step (or step/parameter) workspace + workspace = kwargs.pop("workspace", None) + if not workspace: + LOG.warning("Workspace not found. Cannot condense status files.") + return None + + # Get a condensed version of the workspace + condensed_workspace = kwargs.pop("condensed_workspace", None) + if not condensed_workspace: + LOG.warning("Condensed workspace not provided. Cannot condense status files.") + return None + + # Read in all the statuses from this sample index + files_to_remove = [] + condensed_statuses = gather_statuses(sample_index, workspace, condensed_workspace, files_to_remove) + + # If there are statuses to write to the condensed status file then write them + if condensed_statuses: + condensed_status_filepath = f"{workspace}/MERLIN_STATUS.json" + condensed_lock_file = f"{workspace}/status.lock" + lock = FileLock(condensed_lock_file) # pylint: disable=E0110 + try: + # Lock the file to avoid race conditions + with lock.acquire(timeout=20): + # If the condensed file already exists, grab the statuses from it + LOG.info(f"Condensing statuses for '{condensed_workspace}' to '{condensed_status_filepath}'") + if os.path.exists(condensed_status_filepath): + with open(condensed_status_filepath, "r") as condensed_status_file: + existing_condensed_statuses = json.load(condensed_status_file) + # Merging the statuses we're condensing into the already existing statuses + # because it's faster at scale than vice versa + dict_deep_merge(existing_condensed_statuses, condensed_statuses) + condensed_statuses = existing_condensed_statuses + + # Write the condensed statuses to the condensed status file + with open(condensed_status_filepath, "w") as condensed_status_file: + json.dump(condensed_statuses, condensed_status_file) + + # Remove the status files we just condensed + for file_to_remove in files_to_remove: + LOG.debug(f"Removing '{file_to_remove}'.") + os.remove(file_to_remove) + except Timeout: + # Raising this celery timeout instead will trigger a restart for this task + raise TimeoutError # pylint: disable=W0707 + return ReturnCode.OK diff --git a/merlin/config/celeryconfig.py b/merlin/config/celeryconfig.py index fbbd39064..335c82ed0 100644 --- a/merlin/config/celeryconfig.py +++ b/merlin/config/celeryconfig.py @@ -56,4 +56,5 @@ "worker_log_color": True, "worker_log_format": FORMATS["DEFAULT"], "worker_task_log_format": FORMATS["WORKER"], + "worker_cancel_long_running_tasks_on_connection_loss": True, } diff --git a/merlin/display.py b/merlin/display.py index 78eee5866..bf9e30fdd 100644 --- a/merlin/display.py +++ b/merlin/display.py @@ -31,34 +31,43 @@ """ Manages formatting for displaying information to the console. """ +import logging import pprint +import shutil import subprocess import time import traceback +from datetime import datetime from multiprocessing import Pipe, Process +from typing import Dict from kombu import Connection from tabulate import tabulate from merlin.ascii_art import banner_small -from merlin.config import broker, results_backend -from merlin.config.configfile import default_config_info +from merlin.study.status_renderers import status_renderer_factory -# TODO: make these color blind compliant -# (see https://mikemol.github.io/technique/colorblind/2018/02/11/color-safe-palette.html) +LOG = logging.getLogger("merlin") +DEFAULT_LOG_LEVEL = "INFO" + +# Colors here are chosen based on the Bang Wong color palette (https://www.nature.com/articles/nmeth.1618) +# Another useful link for comparing colors: +# https://davidmathlogic.com/colorblind/#%2356B4E9-%230072B2-%23009E73-%23D55E00-%23F0E442-%23E69F00-%23666666 ANSI_COLORS = { "RESET": "\033[0m", - "GREY": "\033[90m", - "RED": "\033[91m", - "GREEN": "\033[92m", - "YELLOW": "\033[93m", - "BLUE": "\033[94m", - "MAGENTA": "\033[95m", - "CYAN": "\033[96m", - "WHITE": "\033[97m", + "GREY": "\033[38;2;102;102;102m", + "LIGHT_BLUE": "\033[38;2;86;180;233m", + "BLUE": "\033[38;2;0;114;178m", + "GREEN": "\033[38;2;0;158;115m", + "YELLOW": "\033[38;2;240;228;66m", + "ORANGE": "\033[38;2;230;159;0m", + "RED": "\033[38;2;213;94;0m", } +# Inverse of ANSI_COLORS (useful for debugging) +COLOR_TRANSLATOR = {v: k for k, v in ANSI_COLORS.items()} + class ConnProcess(Process): """ @@ -75,7 +84,7 @@ def run(self): try: Process.run(self) self._cconn.send(None) - except Exception as e: # pylint: disable=W0718,C0103 + except Exception as e: # pylint: disable=C0103,W0703 trace_back = traceback.format_exc() self._cconn.send((e, trace_back)) # raise e # You can still rise this exception if you need to @@ -111,6 +120,8 @@ def check_server_access(sconf): def _examine_connection(server, sconf, excpts): + from merlin.config import broker, results_backend # pylint: disable=C0415 + connect_timeout = 60 try: ssl_conf = None @@ -132,7 +143,7 @@ def _examine_connection(server, sconf, excpts): if conn_check.exception: error, _ = conn_check.exception raise error - except Exception as e: # pylint: disable=W0718,C0103 + except Exception as e: # pylint: disable=C0103,W0703 print(f"{server} connection: Error") excpts[server] = e else: @@ -143,6 +154,9 @@ def display_config_info(): """ Prints useful configuration information to the console. """ + from merlin.config import broker, results_backend # pylint: disable=C0415 + from merlin.config.configfile import default_config_info # pylint: disable=C0415 + print("Merlin Configuration") print("-" * 25) print("") @@ -154,7 +168,7 @@ def display_config_info(): conf["broker server"] = broker.get_connection_string(include_password=False) sconf["broker server"] = broker.get_connection_string() conf["broker ssl"] = broker.get_ssl_config() - except Exception as e: # pylint: disable=W0718,C0103 + except Exception as e: # pylint: disable=C0103,W0703 conf["broker server"] = "Broker server error." excpts["broker server"] = e @@ -162,7 +176,7 @@ def display_config_info(): conf["results server"] = results_backend.get_connection_string(include_password=False) sconf["results server"] = results_backend.get_connection_string() conf["results ssl"] = results_backend.get_ssl_config() - except Exception as e: # pylint: disable=W0718,C0103 + except Exception as e: # pylint: disable=C0103,W0703 conf["results server"] = "No results server configured or error." excpts["results server"] = e @@ -221,22 +235,265 @@ def print_info(args): # pylint: disable=W0613 print("") -def tabulate_info(info, headers=None, color=None): +def display_status_task_by_task(status_obj: "DetailedStatus", test_mode: bool = False): # noqa: F821 + """ + Displays a low level overview of the status of a study. This is a task-by-task + status display where each task will show: + step name, worker name, task queue, cmd & restart parameters, + step workspace, step status, return code, elapsed time, run time, and num restarts. + If too many tasks are found and the pager is disabled, prompts will appear for the user to decide + what to do that way we don't overload the terminal (unless the no-prompts flag is provided). + + :param `status_obj`: A DetailedStatus object + :param `test_mode`: If true, run this in testing mode and don't print any output. This will also + decrease the limit on the number of tasks allowed before a prompt is displayed. """ - Display info in a table. Colorize the table if you'd like. - Intended for use for functions outside of this file so they don't - need to import tabulate. - :param `info`: The info you want to tabulate. - :param `headers`: A string or list stating what you'd like the headers to be. - Options: "firstrow", "keys", or List[str] - :param `color`: An ANSI color. + args = status_obj.args + try: + status_renderer = status_renderer_factory.get_renderer(args.layout, args.disable_theme, args.disable_pager) + except ValueError: + LOG.error(f"Layout '{args.layout}' not implemented.") + raise + + cancel_display = False + + # If the pager is disabled then we need to be careful not to overload the terminal with a bazillion tasks + if args.disable_pager and not args.no_prompts: + # Setting the limit by default to be 250 tasks before asking for additional filters + no_prompt_limit = 250 if not test_mode else 15 + while status_obj.num_requested_statuses > no_prompt_limit: + # See if the user wants to apply additional filters + apply_additional_filters = input( + f"About to display {status_obj.num_requested_statuses} tasks without a pager. " + "Would you like to apply additional filters? (y/n/c) " + ).lower() + while apply_additional_filters not in ("y", "n", "c"): + apply_additional_filters = input( + "Invalid input. You must enter either 'y' for yes, 'n' for no, or 'c' for cancel: " + ).lower() + + # Apply filters if necessary or break the loop + if apply_additional_filters == "y": + status_obj.filter_via_prompts() + elif apply_additional_filters == "n": + print(f"Not filtering further. Displaying {status_obj.num_requested_statuses} tasks...") + break + else: + print("Cancelling status display.") + cancel_display = True + break + + # Display the statuses + if not cancel_display and not test_mode: + if status_obj.num_requested_statuses > 0: + # Table layout requires csv format (since it uses Maestro's renderer) + if args.layout == "table": + status_data = status_obj.format_status_for_csv() + else: + status_data = status_obj.requested_statuses + status_renderer.layout(status_data=status_data, study_title=status_obj.workspace) + status_renderer.render() + + for ustep in status_obj.step_tracker["unstarted_steps"]: + print(f"\n{ustep} has not started yet.") + print() + + +def _display_summary(state_info: Dict[str, str], cb_help: bool): """ - # Adds the color at the start of the print - if color: - print(color, end="") + Given a dict of state info for a step, print a summary of the task states. - # \033[0m resets color to white - if headers: - print(tabulate(info, headers=headers), ANSI_COLORS["RESET"]) + :param `state_info`: A dictionary of information related to task states for a step + :param `cb_help`: True if colorblind assistance (using symbols) is needed. False otherwise. + """ + # Build a summary list of task info + print("\nSUMMARY:") + summary = [] + for key, val in state_info.items(): + label = key + # Add colorblind symbols if needed + if cb_help and "fill" in val: + label = f"{key} {val['fill']}" + # Color the label + if "color" in val: + label = f"{val['color']}{label}{ANSI_COLORS['RESET']}" + + # Grab the value associated with the label + value = None + if "count" in val: + if val["count"] > 0: + value = val["count"] + elif "total" in val: + value = val["total"] + elif "name" in val: + value = val["name"] + else: + value = val + + # Add the label and value as an entry to the summary + if value: + summary.append([label, value]) + + # Display the summary + print(tabulate(summary)) + print() + + +def display_status_summary( # pylint: disable=R0912 + status_obj: "Status", non_workspace_keys: set, test_mode=False # noqa: F821 +) -> Dict: + """ + Displays a high level overview of the status of a study. This includes + progress bars for each step and a summary of the number of initialized, + running, finished, cancelled, dry ran, failed, and unknown tasks. + + :param `status_obj`: A Status object + :param `non_workspace_keys`: A set of keys in requested_statuses that are not workspace keys. + This will be set("parameters", "task_queue", "worker_name) + :param `test_mode`: If True, don't print anything and just return a dict of all the state info for each step + :returns: A dict that's empty usually. If ran in test_mode it will be a dict of state_info for every step. + """ + all_state_info = {} + if not test_mode: + print(f"{ANSI_COLORS['YELLOW']}Status for {status_obj.workspace} as of {datetime.now()}:{ANSI_COLORS['RESET']}") + terminal_size = shutil.get_terminal_size() + progress_bar_width = terminal_size.columns // 4 + + LOG.debug(f"step_tracker in display: {status_obj.step_tracker}") + for sstep in status_obj.step_tracker["started_steps"]: + # This dict will keep track of the number of tasks at each status + state_info = { + "FINISHED": {"count": 0, "color": ANSI_COLORS["GREEN"], "fill": "█"}, + "CANCELLED": {"count": 0, "color": ANSI_COLORS["YELLOW"], "fill": "/"}, + "FAILED": {"count": 0, "color": ANSI_COLORS["RED"], "fill": "⣿"}, + "UNKNOWN": {"count": 0, "color": ANSI_COLORS["GREY"], "fill": "?"}, + "INITIALIZED": {"count": 0, "color": ANSI_COLORS["LIGHT_BLUE"]}, + "RUNNING": {"count": 0, "color": ANSI_COLORS["BLUE"]}, + "DRY RUN": {"count": 0, "color": ANSI_COLORS["ORANGE"], "fill": "\\"}, + "TOTAL TASKS": {"total": status_obj.tasks_per_step[sstep]}, + "AVG RUN TIME": status_obj.run_time_info[sstep]["avg_run_time"], + "RUN TIME STD DEV": status_obj.run_time_info[sstep]["run_time_std_dev"], + } + + # Initialize a var to track # of completed tasks and grab the statuses for this step + num_completed_tasks = 0 + + # Loop through each entry for the step (if there's no parameters there will just be one entry) + for full_step_name in status_obj.full_step_name_map[sstep]: + overall_step_info = status_obj.requested_statuses[full_step_name] + + # If this was a non-local run we should have a task queue and worker name to add to state_info + if "task_queue" in overall_step_info: + state_info["TASK QUEUE"] = {"name": overall_step_info["task_queue"]} + if "worker_name" in overall_step_info: + state_info["WORKER NAME"] = {"name": overall_step_info["worker_name"]} + + # Loop through all workspaces for this step (if there's no samples for this step it'll just be one path) + for sub_step_workspace, task_status_info in overall_step_info.items(): + # We've already handled the non-workspace keys that we need so ignore them here + if sub_step_workspace in non_workspace_keys: + continue + + state_info[task_status_info["status"]]["count"] += 1 + # Increment the number of completed tasks (not running or initialized) + if task_status_info["status"] not in ("INITIALIZED", "RUNNING"): + num_completed_tasks += 1 + + if test_mode: + all_state_info[sstep] = state_info + else: + # Display the progress bar and summary for the step + print(f"\n{sstep}\n") + display_progress_bar( + num_completed_tasks, + status_obj.tasks_per_step[sstep], + state_info=state_info, + suffix="Complete", + length=progress_bar_width, + cb_help=status_obj.args.cb_help, + ) + _display_summary(state_info, status_obj.args.cb_help) + print("-" * (terminal_size.columns // 2)) + + # For each unstarted step, print an empty progress bar + for ustep in status_obj.step_tracker["unstarted_steps"]: + if test_mode: + all_state_info[ustep] = "UNSTARTED" + else: + print(f"\n{ustep}\n") + display_progress_bar(0, 100, suffix="Complete", length=progress_bar_width) + print(f"\n{ustep} has not started yet.\n") + print("-" * (terminal_size.columns // 2)) + + return all_state_info + + +# Credit to this stack overflow post: https://stackoverflow.com/a/34325723 +def display_progress_bar( # pylint: disable=R0913,R0914 + current, + total, + state_info=None, + prefix="", + suffix="", + decimals=1, + length=80, + fill="█", + print_end="\n", + color=None, + cb_help=False, +): + """ + Prints a progress bar based on current and total. + + :param `current`: current number (Int) + :param `total`: total number (Int) + :param `state_info`: information about the state of tasks (Dict) (overrides color) + :param `prefix`: prefix string (Str) + :param `suffix`: suffix string (Str) + :param `decimals`: positive number of decimals in percent complete (Int) + :param `length`: character length of bar (Int) + :param `fill`: bar fill character (Str) + :param `print_end`: end character (e.g. "\r", "\r\n") (Str) + :param `color`: color of the progress bar (ANSI Str) (overridden by state_info) + :param `cb_help`: true if color blind help is needed; false otherwise (Bool) + """ + # Set the color of the bar + if color and color in ANSI_COLORS: + fill = f"{color}{fill}{ANSI_COLORS['RESET']}" + + # Get the percentage done and the total fill length of the bar + percent = ("{0:." + str(decimals) + "f}").format(100 * (current / float(total))) + total_filled_length = int(length * current // total) + + # Print a progress bar based on state of the study + if state_info: + print(f"\r{prefix} |", end="") + for key, val in state_info.items(): + # Only fill bar with completed tasks + if key in ( + "INITIALIZED", + "RUNNING", + "TASK QUEUE", + "WORKER NAME", + "TOTAL TASKS", + "AVG RUN TIME", + "RUN TIME STD DEV", + ): + continue + + # Get the length to fill for this specific state + partial_filled_length = int(length * val["count"] // total) + + if partial_filled_length > 0: + if cb_help: + fill = val["fill"] + progress_bar = fill * partial_filled_length + print(f"{val['color']}{progress_bar}", end="") + + # The remaining bar represents the number of tasks still incomplete + remaining_bar = "-" * (length - total_filled_length) + print(f'{ANSI_COLORS["RESET"]}{remaining_bar}| {percent}% {suffix}', end=print_end) + # Print a normal progress bar else: - print(tabulate(info), ANSI_COLORS["RESET"]) + progress_bar = fill * total_filled_length + "-" * (length - total_filled_length) + print(f"\r{prefix} |{progress_bar}| {percent}% {suffix}", end=print_end) diff --git a/merlin/exceptions/__init__.py b/merlin/exceptions/__init__.py index 9bc7803a9..5d92d6242 100644 --- a/merlin/exceptions/__init__.py +++ b/merlin/exceptions/__init__.py @@ -34,7 +34,7 @@ # Pylint complains that these exceptions are no different from Exception # but we don't care, we just need new names for exceptions here -# pylint: disable=W0246 +# pylint: disable=W0235 __all__ = ( "RetryException", @@ -42,6 +42,7 @@ "HardFailException", "InvalidChainException", "RestartException", + "DeepMergeException", "NoWorkersException", ) @@ -95,6 +96,16 @@ def __init__(self): super().__init__() +class DeepMergeException(Exception): + """ + Exception to signal that there's a conflict when trying + to merge two dicts together + """ + + def __init__(self, message): + super().__init__(message) + + class NoWorkersException(Exception): """ Exception to signal that no workers were started diff --git a/merlin/main.py b/merlin/main.py index 442092924..5ad7bae9f 100644 --- a/merlin/main.py +++ b/merlin/main.py @@ -48,6 +48,8 @@ from contextlib import suppress from typing import Dict, List, Optional, Union +from tabulate import tabulate + from merlin import VERSION, router from merlin.ascii_art import banner_small from merlin.examples.generator import list_examples, setup_example @@ -55,8 +57,11 @@ from merlin.server.server_commands import config_server, init_server, restart_server, start_server, status_server, stop_server from merlin.spec.expansion import RESERVED, get_spec_with_expansion from merlin.spec.specification import MerlinSpec +from merlin.study.status import DetailedStatus, Status +from merlin.study.status_constants import VALID_RETURN_CODES, VALID_STATUS_FILTERS +from merlin.study.status_renderers import status_renderer_factory from merlin.study.study import MerlinStudy -from merlin.utils import ARRAY_FILE_FORMATS +from merlin.utils import ARRAY_FILE_FORMATS, verify_dirpath, verify_filepath LOG = logging.getLogger("merlin") @@ -73,38 +78,6 @@ def error(self, message): sys.exit(2) -def verify_filepath(filepath: str) -> str: - """ - Verify that the filepath argument is a valid - file. - - :param [str] `filepath`: the path of a file - - :return: the verified absolute filepath with expanded environment variables. - :rtype: str - """ - filepath = os.path.abspath(os.path.expandvars(os.path.expanduser(filepath))) - if not os.path.isfile(filepath): - raise ValueError(f"'{filepath}' is not a valid filepath") - return filepath - - -def verify_dirpath(dirpath: str) -> str: - """ - Verify that the dirpath argument is a valid - directory. - - :param [str] `dirpath`: the path of a directory - - :return: returns the absolute path with expanded environment vars for a given dirpath. - :rtype: str - """ - dirpath: str = os.path.abspath(os.path.expandvars(os.path.expanduser(dirpath))) - if not os.path.isdir(dirpath): - raise ValueError(f"'{dirpath}' is not a valid directory path") - return dirpath - - def parse_override_vars( variables_list: Optional[List[str]], ) -> Optional[Dict[str, Union[str, int]]]: @@ -222,11 +195,13 @@ def launch_workers(args): spec, filepath = get_merlin_spec_with_override(args) if not args.worker_echo_only: LOG.info(f"Launching workers from '{filepath}'") - status = router.launch_workers(spec, args.worker_steps, args.worker_args, args.disable_logs, args.worker_echo_only) + launch_worker_status = router.launch_workers( + spec, args.worker_steps, args.worker_args, args.disable_logs, args.worker_echo_only + ) if args.worker_echo_only: - print(status) + print(launch_worker_status) else: - LOG.debug(f"celery command: {status}") + LOG.debug(f"celery command: {launch_worker_status}") def purge_tasks(args): @@ -249,18 +224,98 @@ def purge_tasks(args): def query_status(args): """ - CLI command for querying queue status. + CLI command for querying status of studies. + Based on the parsed CLI args, construct either a Status object or a DetailedStatus object + and display the appropriate output. + Object mapping is as follows: + merlin status -> Status object ; merlin detailed-status -> DetailedStatus object - :param 'args': parsed CLI arguments + :param `args`: parsed CLI arguments """ print(banner_small) - spec, _ = get_merlin_spec_with_override(args) - ret = router.query_status(args.task_server, spec, args.steps) - for name, queue_info in ret.items(): - print(f"{name:30} - Workers: {queue_info['consumers']:10} - Queued Tasks: {queue_info['jobs']:10}") - if args.csv is not None: - router.dump_status(ret, args.csv) + # Ensure task server is valid + if args.task_server != "celery": + raise ValueError("Currently the only supported task server is celery.") + + # Make sure dump is valid if provided + if args.dump and (not args.dump.endswith(".csv") and not args.dump.endswith(".json")): + raise ValueError("The --dump option takes a filename that must end with .csv or .json") + + # Establish whether the argument provided by the user was a spec file or a study directory + spec_display = False + try: + file_or_ws = verify_filepath(args.spec_or_workspace) + spec_display = True + except ValueError: + try: + file_or_ws = verify_dirpath(args.spec_or_workspace) + except ValueError: + LOG.error(f"The file or directory path {args.spec_or_workspace} does not exist.") + return None + + # If we're loading status based on a spec, load in the spec provided + if spec_display: + args.specification = file_or_ws + args.spec_provided = get_spec_with_expansion(args.specification) + + # Get either a Status object or DetailedStatus object + if args.detailed: + status_obj = DetailedStatus(args, spec_display, file_or_ws) + else: + status_obj = Status(args, spec_display, file_or_ws) + + # Handle output appropriately + if args.dump: + status_obj.dump() + else: + status_obj.display() + + return None + + +def query_queues(args): + """ + CLI command for finding all workers. + + :param args: parsed CLI arguments + """ + print(banner_small) + + # Ensure a spec is provided if steps are provided + if not args.specification: + if "all" not in args.steps: + raise ValueError("The --steps argument MUST be used with the --specification argument.") + if args.variables: + raise ValueError("The --vars argument MUST be used with the --specification argument.") + + # Ensure a supported file type is provided with the dump option + if args.dump is not None: + if not args.dump.endswith(".json") and not args.dump.endswith(".csv"): + raise ValueError("Unsupported file type. Dump files must be either '.json' or '.csv'.") + + spec = None + # Load the spec if necessary + if args.specification: + spec, _ = get_merlin_spec_with_override(args) + + # Obtain the queue information + queue_information = router.query_queues(args.task_server, spec, args.steps, args.specific_queues) + + if queue_information: + # Format the queue information so we can pass it to the tabulate library + formatted_queue_info = [("Queue Name", "Task Count", "Worker Count")] + for queue_name, queue_stats in queue_information.items(): + formatted_queue_info.append((queue_name, queue_stats["jobs"], queue_stats["consumers"])) + + # Print the queue information + print() + print(tabulate(formatted_queue_info, headers="firstrow")) + print() + + # Dump queue information to an output file if necessary + if args.dump: + router.dump_queue_info(args.task_server, queue_information, args.dump) def query_workers(args): @@ -891,29 +946,173 @@ def generate_diagnostic_parsers(subparsers: ArgumentParser) -> None: Merlin job. """ # merlin status - status: ArgumentParser = subparsers.add_parser( + status_cmd: ArgumentParser = subparsers.add_parser( "status", - help="List server stats (name, number of tasks to do, \ - number of connected workers) for a workflow spec.", + help="Display a summary of the status of a study.", + ) + status_cmd.set_defaults(func=query_status, detailed=False) + status_cmd.add_argument("spec_or_workspace", type=str, help="Path to a Merlin YAML spec file or a launched Merlin study") + status_cmd.add_argument( + "--cb-help", action="store_true", help="Colorblind help; uses different symbols to represent different statuses" + ) + status_cmd.add_argument( + "--dump", type=str, help="Dump the status to a file. Provide the filename (must be .csv or .json).", default=None + ) + status_cmd.add_argument( + "--no-prompts", + action="store_true", + help="Ignore any prompts provided. This will default to the latest study \ + if you provide a spec file rather than a study workspace.", + ) + status_cmd.add_argument( + "--task_server", + type=str, + default="celery", + help="Task server type.\ + Default: %(default)s", + ) + status_cmd.add_argument( + "-o", + "--output-path", + action="store", + type=str, + default=None, + help="Specify a location to look for output workspaces. Only used when a spec file is passed as the argument " + "to 'status'; this will NOT be used if an output workspace is passed as the argument.", + ) + + # merlin detailed-status + detailed_status: ArgumentParser = subparsers.add_parser( + "detailed-status", + help="Display a task-by-task status of a study.", + ) + detailed_status.set_defaults(func=query_status, detailed=True) + detailed_status.add_argument( + "spec_or_workspace", type=str, help="Path to a Merlin YAML spec file or a launched Merlin study" + ) + detailed_status.add_argument( + "--dump", type=str, help="Dump the status to a file. Provide the filename (must be .csv or .json).", default=None + ) + detailed_status.add_argument( + "--task_server", + type=str, + default="celery", + help="Task server type.\ + Default: %(default)s", + ) + detailed_status.add_argument( + "-o", + "--output-path", + action="store", + type=str, + default=None, + help="Specify a location to look for output workspaces. Only used when a spec file is passed as the argument " + "to 'status'; this will NOT be used if an output workspace is passed as the argument.", ) - status.set_defaults(func=query_status) - status.add_argument("specification", type=str, help="Path to a Merlin YAML spec file") - status.add_argument( + status_filter_group = detailed_status.add_argument_group("filter options") + status_filter_group.add_argument( + "--max-tasks", action="store", type=int, help="Sets a limit on how many tasks can be displayed" + ) + status_filter_group.add_argument( + "--return-code", + action="store", + nargs="+", + type=str, + choices=VALID_RETURN_CODES, + help="Filter which tasks to display based on their return code", + ) + status_filter_group.add_argument( "--steps", nargs="+", type=str, dest="steps", default=["all"], - help="The specific steps in the YAML file you want to query", + help="Filter which tasks to display based on the steps they're associated with", + ) + status_filter_group.add_argument( + "--task-queues", + nargs="+", + type=str, + help="Filter which tasks to display based on the task queue they're in", ) - status.add_argument( + status_filter_group.add_argument( + "--task-status", + action="store", + nargs="+", + type=str, + choices=VALID_STATUS_FILTERS, + help="Filter which tasks to display based on their status", + ) + status_filter_group.add_argument( + "--workers", + nargs="+", + type=str, + help="Filter which tasks to display based on which workers are processing them", + ) + status_display_group = detailed_status.add_argument_group("display options") + status_display_group.add_argument( + "--disable-pager", action="store_true", help="Turn off the pager functionality when viewing the status" + ) + status_display_group.add_argument( + "--disable-theme", + action="store_true", + help="Turn off styling for the status layout (If you want styling but it's not working, try modifying " + "the MANPAGER or PAGER environment variables to be 'less -r'; i.e. export MANPAGER='less -r')", + ) + status_display_group.add_argument( + "--layout", + type=str, + choices=status_renderer_factory.get_layouts(), + default="default", + help="Alternate status layouts [Default: %(default)s]", + ) + status_display_group.add_argument( + "--no-prompts", + action="store_true", + help="Ignore any prompts provided. This will default to the latest study \ + if you provide a spec file rather than a study workspace.", + ) + + # merlin queue-info + queue_info: ArgumentParser = subparsers.add_parser( + "queue-info", + help="List queue statistics (queue name, number of tasks in the queue, number of connected workers).", + ) + queue_info.set_defaults(func=query_queues) + queue_info.add_argument( + "--dump", + type=str, + help="Dump the queue information to a file. Provide the filename (must be .csv or .json)", + default=None, + ) + queue_info.add_argument( + "--specific-queues", nargs="+", type=str, help="Display queue stats for specific queues you list here" + ) + queue_info.add_argument( "--task_server", type=str, default="celery", - help="Task server type.\ - Default: %(default)s", + help="Task server type. Default: %(default)s", ) - status.add_argument( + spec_group = queue_info.add_argument_group("specification options") + spec_group.add_argument( + "--spec", + dest="specification", + type=str, + help="Path to a Merlin YAML spec file. \ + This will only display information for queues defined in this spec file. \ + This is the same behavior as the status command prior to Merlin version 1.11.0.", + ) + spec_group.add_argument( + "--steps", + nargs="+", + type=str, + dest="steps", + default=["all"], + help="The specific steps in the YAML file you want to query the queues of. " + "This option MUST be used with the --spec option", + ) + spec_group.add_argument( "--vars", action="store", dest="variables", @@ -921,9 +1120,8 @@ def generate_diagnostic_parsers(subparsers: ArgumentParser) -> None: nargs="+", default=None, help="Specify desired Merlin variable values to override those found in the specification. Space-delimited. " - "Example: '--vars LEARN=path/to/new_learn.py EPOCHS=3'", + "This option MUST be used with the --spec option. Example: '--vars LEARN=path/to/new_learn.py EPOCHS=3'", ) - status.add_argument("--csv", type=str, help="csv file to dump status report to", default=None) # merlin info info: ArgumentParser = subparsers.add_parser( diff --git a/merlin/router.py b/merlin/router.py index 6c90c1d80..3b322aafc 100644 --- a/merlin/router.py +++ b/merlin/router.py @@ -38,13 +38,14 @@ import logging import os import time -from datetime import datetime -from typing import Dict, List +from typing import Dict, List, Tuple from merlin.exceptions import NoWorkersException from merlin.study.celeryadapter import ( + build_set_of_queues, check_celery_workers_processing, create_celery_config, + dump_celery_queue_info, get_active_celery_queues, get_workers_from_app, purge_celery_tasks, @@ -121,47 +122,44 @@ def purge_tasks(task_server, spec, force, steps): return -1 -def query_status(task_server, spec, steps, verbose=True): +def dump_queue_info(task_server: str, query_return: List[Tuple[str, int, int]], dump_file: str): """ - Queries status of queues in spec file from server. + Format the information we're going to dump in a way that the Dumper class can + understand and add a timestamp to the info. - :param `task_server`: The task server from which to purge tasks. - :param `spec`: A MerlinSpec object - :param `steps`: Spaced-separated list of stepnames to query. Default is all + :param task_server: The task server from which to query queues + :param query_return: The output of `query_queues` + :param dump_file: The filepath of the file we'll dump queue info to """ - if verbose: - LOG.info(f"Querying queues for steps = {steps}") - - if task_server == "celery": # pylint: disable=R1705 - queues = spec.get_queue_list(steps) - # Query the queues - return query_celery_queues(queues) + if task_server == "celery": + dump_celery_queue_info(query_return, dump_file) else: LOG.error("Celery is not specified as the task server!") - return [] -def dump_status(query_return, csv_file): +def query_queues( + task_server: str, + spec: "MerlinSpec", # noqa: F821 + steps: List[str], + specific_queues: List[str], + verbose: bool = True, +): """ - Dump the results of a query_status to a csv file. + Queries status of queues. - :param `query_return`: The output of query_status - :param `csv_file`: The csv file to append + :param task_server: The task server from which to query queues + :param spec: A MerlinSpec object or None + :param steps: Spaced-separated list of stepnames to query. Default is all + :param specific_queues: A list of queue names to query or None + :param verbose: A bool to determine whether to output log statements or not """ - if os.path.exists(csv_file): - fmode = "a" + if task_server == "celery": # pylint: disable=R1705 + # Build a set of queues to query and query them + queues = build_set_of_queues(spec, steps, specific_queues, verbose=verbose) + return query_celery_queues(queues) else: - fmode = "w" - with open(csv_file, mode=fmode) as f: # pylint: disable=W1514,C0103 - if f.mode == "w": # add the header - f.write("# time") - for name in query_return: - f.write(f",{name}:tasks,{name}:consumers") - f.write("\n") - f.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") - for queue_info in query_return.values(): - f.write(f",{queue_info['jobs']},{queue_info['consumers']}") - f.write("\n") + LOG.error("Celery is not specified as the task server!") + return [] def query_workers(task_server, spec_worker_names, queues, workers_regex): @@ -327,7 +325,7 @@ def check_merlin_status(args: "Namespace", spec: "MerlinSpec") -> bool: # noqa active_tasks = False # Get info about jobs and workers in our spec from celery - queue_status = query_status(args.task_server, spec, args.steps, verbose=False) + queue_status = query_queues(args.task_server, spec, args.steps, None, verbose=False) LOG.debug(f"Monitor: queue_status: {queue_status}") # Count the number of jobs that are active @@ -337,7 +335,7 @@ def check_merlin_status(args: "Namespace", spec: "MerlinSpec") -> bool: # noqa total_jobs += queue_info["jobs"] # Get the queues defined in the spec - queues_in_spec = spec.get_queue_list(["all"]) + queues_in_spec = spec.get_queue_list(["all"] if args.steps is None else args.steps) LOG.debug(f"Monitor: queues_in_spec: {queues_in_spec}") # Get the active queues and the workers that are watching them diff --git a/merlin/spec/expansion.py b/merlin/spec/expansion.py index 5924d1f74..a8a9d13e2 100644 --- a/merlin/spec/expansion.py +++ b/merlin/spec/expansion.py @@ -37,7 +37,7 @@ from merlin.common.abstracts.enums import ReturnCode from merlin.spec.override import error_override_vars, replace_override_vars from merlin.spec.specification import MerlinSpec -from merlin.utils import contains_shell_ref, contains_token +from merlin.utils import contains_shell_ref, contains_token, verify_filepath MAESTRO_RESERVED = {"SPECROOT", "WORKSPACE", "LAUNCHER"} @@ -251,5 +251,6 @@ def get_spec_with_expansion(filepath, override_vars=None): Return a MerlinSpec with overrides and expansion, without creating a MerlinStudy. """ + filepath = verify_filepath(filepath) expanded_spec_text = expand_spec_no_study(filepath, override_vars) return MerlinSpec.load_spec_from_string(expanded_spec_text) diff --git a/merlin/spec/specification.py b/merlin/spec/specification.py index ac23b06d1..3e7e89464 100644 --- a/merlin/spec/specification.py +++ b/merlin/spec/specification.py @@ -40,12 +40,13 @@ from copy import deepcopy from datetime import timedelta from io import StringIO +from typing import Dict, List import yaml from maestrowf.specification import YAMLSpecification from merlin.spec import all_keys, defaults -from merlin.utils import find_vlaunch_var, repr_timedelta +from merlin.utils import find_vlaunch_var, load_array_file, needs_merlin_expansion, repr_timedelta LOG = logging.getLogger(__name__) @@ -567,10 +568,12 @@ def _process_dict(self, obj, string, key_stack, lvl, tab): # pylint: disable=R0 i += 1 return string - def get_step_worker_map(self): + def get_step_worker_map(self) -> Dict[str, List[str]]: """ Creates a dictionary with step names as keys and a list of workers associated with each step as values. The inverse of get_worker_step_map(). + + :returns: A dict mapping step names to workers """ steps = self.get_study_step_names() step_worker_map = {step_name: [] for step_name in steps} @@ -585,26 +588,81 @@ def get_step_worker_map(self): step_worker_map[step].append(worker_name) return step_worker_map - def get_task_queues(self): - """Returns a dictionary of steps and their corresponding task queues.""" + def get_worker_step_map(self) -> Dict[str, List[str]]: + """ + Creates a dictionary with worker names as keys and a list of steps + associated with each worker as values. The inverse of get_step_worker_map(). + + :returns: A dict mapping workers to the steps they watch + """ + worker_step_map = {} + steps = self.get_study_step_names() + for worker_name, worker_val in self.merlin["resources"]["workers"].items(): + # Case 1: worker doesn't have specific steps + if "all" in worker_val["steps"]: + worker_step_map[worker_name] = steps + # Case 2: worker has specific steps + else: + worker_step_map[worker_name] = [] + for step in worker_val["steps"]: + worker_step_map[worker_name].append(step) + return worker_step_map + + def get_task_queues(self, omit_tag=False): + """ + Creates a dictionary of steps and their corresponding task queues. + This is the inverse of get_queue_step_relationship() + + :param `omit_tag`: If True, omit the celery queue tag. + :returns: A dict of steps and their corresponding task queues + """ from merlin.config.configfile import CONFIG # pylint: disable=C0415 steps = self.get_study_steps() queues = {} for step in steps: - if "task_queue" in step.run and CONFIG.celery.omit_queue_tag: + if "task_queue" in step.run and (omit_tag or CONFIG.celery.omit_queue_tag): queues[step.name] = step.run["task_queue"] elif "task_queue" in step.run: queues[step.name] = CONFIG.celery.queue_tag + step.run["task_queue"] return queues - def get_queue_list(self, steps): + def get_queue_step_relationship(self) -> Dict[str, List[str]]: """ - Return a sorted list of queues corresponding to spec steps + Builds a dictionary of task queues and their associated steps. + This returns the inverse of get_task_queues(). - param steps: a list of step names or 'all' + :returns: A dict of task queues and their associated steps """ - queues = self.get_task_queues() + from merlin.config.configfile import CONFIG # pylint: disable=C0415 + + steps = self.get_study_steps() + relationship_tracker = {} + + for step in steps: + if "task_queue" in step.run: + queue_name = ( + step.run["task_queue"] + if CONFIG.celery.omit_queue_tag + else f"{CONFIG.celery.queue_tag}{step.run['task_queue']}" + ) + + if queue_name in relationship_tracker: + relationship_tracker[queue_name].append(step.name) + else: + relationship_tracker[queue_name] = [step.name] + + return relationship_tracker + + def get_queue_list(self, steps, omit_tag=False) -> set: + """ + Return a sorted set of queues corresponding to spec steps + + :param `steps`: a list of step names or ['all'] + :param `omit_tag`: If True, omit the celery queue tag. + :returns: A sorted set of queues corresponding to spec steps + """ + queues = self.get_task_queues(omit_tag=omit_tag) if steps[0] == "all": task_queues = queues.values() else: @@ -634,3 +692,118 @@ def get_worker_names(self): for worker in self.merlin["resources"]["workers"]: result.append(worker) return result + + def get_tasks_per_step(self) -> Dict[str, int]: + """ + Get the number of tasks needed to complete each step, formatted as a dictionary. + :returns: A dict where the keys are the step names and the values are the number of tasks required for that step + """ + # Get the number of samples used + samples = [] + if self.merlin["samples"] and self.merlin["samples"]["file"]: + samples = load_array_file(self.merlin["samples"]["file"]) + num_samples = len(samples) + + # Get the column labels, the parameter labels, the number of parameters, and the steps in the study + if num_samples > 0: + column_labels = self.merlin["samples"]["column_labels"] + parameter_labels = list(self.get_parameters().labels.keys()) + num_params = self.get_parameters().length + study_steps = self.get_study_steps() + + tasks_per_step = {} + for step in study_steps: + cmd = step.__dict__["run"]["cmd"] + restart_cmd = step.__dict__["run"]["restart"] + + # Default number of tasks for a step is 1 + tasks_per_step[step.name] = 1 + + # If this step uses parameters, we'll at least have a num_params number of tasks to complete + if needs_merlin_expansion(cmd, restart_cmd, parameter_labels, include_sample_keywords=False): + tasks_per_step[step.name] = num_params + + # If merlin expansion is needed with column labels, this step uses samples + if num_samples > 0 and needs_merlin_expansion(cmd, restart_cmd, column_labels): + tasks_per_step[step.name] *= num_samples + + return tasks_per_step + + def _create_param_maps(self, param_gen: "ParameterGenerator", expanded_labels: Dict, label_param_map: Dict): # noqa: F821 + """ + Given a parameters block like so: + global.parameters: + TOKEN: + values: [param_val_1, param_val_2] + label: label.%% + Expanded labels will map tokens to their expanded labels (e.g. {'TOKEN': ['label.param_val_1', 'label.param_val_2']}) + Label param map will map labels to parameter values + (e.g. {'label.param_val_1': {'TOKEN': 'param_val_1'}, 'label.param_val_2': {'TOKEN': 'param_val_2'}}) + + :param `param_gen`: A ParameterGenerator object from Maestro + :param `expanded_labels`: A dict to store the map from tokens to expanded labels + :param `label_param_map`: A dict to store the map from labels to parameter values + """ + for token, orig_label in param_gen.labels.items(): + for param in param_gen.parameters[token]: + expanded_label = orig_label.replace(param_gen.label_token, str(param)) + if token in expanded_labels: + expanded_labels[token].append(expanded_label) + else: + expanded_labels[token] = [expanded_label] + label_param_map[expanded_label] = {token: param} + + def get_step_param_map(self) -> Dict: # pylint: disable=R0914 + """ + Create a mapping of parameters used for each step. Each step will have a cmd + to search for parameters in and could also have a restart cmd to check, too. + This creates a mapping of the form: + step_name_with_parameters: { + "cmd": { + TOKEN_1: param_1_value_1, + TOKEN_2: param_2_value_1, + }, + "restart_cmd": { + TOKEN_1: param_1_value_1, + TOKEN_3: param_3_value_1, + } + } + + :returns: A dict mapping between steps and params of the form shown above + """ + # Get the steps and the parameters in the study + study_steps = self.get_study_steps() + param_gen = self.get_parameters() + + # Create maps between tokens and expanded labels, and between labels and parameter values + expanded_labels = {} + label_param_map = {} + self._create_param_maps(param_gen, expanded_labels, label_param_map) + + step_param_map = {} + for step in study_steps: + # Get the cmd and restart cmd for the step + cmd = step.__dict__["run"]["cmd"] + restart_cmd = step.__dict__["run"]["restart"] + + # Get the parameters used in this step and the labels used with those parameters + all_params_in_step = param_gen.get_used_parameters(step) + labels_used = [expanded_labels[param] for param in sorted(all_params_in_step)] + + # Zip all labels used for the step together (since this is how steps are named in Maestro) + for labels in zip(*labels_used): + # Initialize the entry in the step param map + param_str = ".".join(labels) + step_name_with_params = f"{step.name}_{param_str}" + step_param_map[step_name_with_params] = {"cmd": {}, "restart_cmd": {}} + + # Populate the entry in the step param map based on which token is found in which command (cmd or restart) + for label in labels: + for token, param_value in label_param_map[label].items(): + full_token = f"{param_gen.token}({token})" + if full_token in cmd: + step_param_map[step_name_with_params]["cmd"][token] = param_value + if full_token in restart_cmd: + step_param_map[step_name_with_params]["restart_cmd"][token] = param_value + + return step_param_map diff --git a/merlin/study/celeryadapter.py b/merlin/study/celeryadapter.py index 84fb96ff1..94abcba39 100644 --- a/merlin/study/celeryadapter.py +++ b/merlin/study/celeryadapter.py @@ -37,11 +37,14 @@ import subprocess import time from contextlib import suppress -from typing import Dict, List, Optional +from datetime import datetime +from typing import Dict, List, Optional, Tuple from amqp.exceptions import ChannelError from celery import Celery +from tabulate import tabulate +from merlin.common.dumper import dump_handler from merlin.config import Config from merlin.study.batch import batch_check_parallel, batch_worker_launch from merlin.utils import apply_list_of_regex, check_machines, get_procs, get_yaml_var, is_running @@ -219,7 +222,6 @@ def query_celery_workers(spec_worker_names, queues, workers_regex): :param `workers_regex`: A list of regexs to filter by """ from merlin.celery import app # pylint: disable=C0415 - from merlin.display import tabulate_info # pylint: disable=C0415 # Ping all workers and grab which ones are running workers = get_workers_from_app() @@ -272,10 +274,156 @@ def query_celery_workers(spec_worker_names, queues, workers_regex): # Display the output table LOG.info("Found these connected workers:") - tabulate_info(table, headers=["Workers", "Queues"]) + print(tabulate(table, headers=["Workers", "Queues"])) print() +def build_csv_queue_info(query_return: List[Tuple[str, int, int]], date: str) -> Dict[str, List]: + """ + Build the lists of column labels and queue info to write to the csv file. + + :param query_return: The output of `query_queues` + :param date: A timestamp for us to mark when this status occurred + :returns: A dict of queue information to dump to a csv file + """ + # Build the list of labels if necessary + csv_to_dump = {"time": [date]} + for queue_name, queue_stats in query_return.items(): + csv_to_dump[f"{queue_name}:tasks"] = [str(queue_stats["jobs"])] + csv_to_dump[f"{queue_name}:consumers"] = [str(queue_stats["consumers"])] + + return csv_to_dump + + +def build_json_queue_info(query_return: List[Tuple[str, int, int]], date: str) -> Dict: + """ + Build the dict of queue info to dump to the json file. + + :param query_return: The output of `query_queues` + :param date: A timestamp for us to mark when this status occurred + :returns: A dictionary that's ready to dump to a json outfile + """ + # Get the datetime so we can track different entries and initalize a new json entry + json_to_dump = {date: {}} + + # Add info for each queue (name) + for queue_name, queue_stats in query_return.items(): + json_to_dump[date][queue_name] = {"tasks": queue_stats["jobs"], "consumers": queue_stats["consumers"]} + + return json_to_dump + + +def dump_celery_queue_info(query_return: List[Tuple[str, int, int]], dump_file: str): + """ + Format the information we're going to dump in a way that the Dumper class can + understand and add a timestamp to the info. + + :param query_return: The output of `query_queues` + :param dump_file: The filepath of the file we'll dump queue info to + """ + # Get a timestamp for this dump + date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # Handle different file types + if dump_file.endswith(".csv"): + # Build the lists of information/labels we'll need + dump_info = build_csv_queue_info(query_return, date) + elif dump_file.endswith(".json"): + # Build the dict of info to dump to the json file + dump_info = build_json_queue_info(query_return, date) + + # Dump the information + dump_handler(dump_file, dump_info) + + +def _get_specific_queues(queues: set, specific_queues: List[str], spec: "MerlinSpec", verbose=True) -> set: # noqa: F821 + """ + Search for specific queues that the user asked for. The queues that cannot be found will not + be returned. The queues that can be found will be added to a set and returned. + + :param queues: Either an empty set or a set of queues from `spec` + :param specific_queues: The list of queues that we're going to search for + :param spec: A `MerlinSpec` object or None + :param verbose: If True, display log messages. Otherwise, don't. + :returns: A set of the specific queues that were found to exist. + """ + if verbose: + LOG.info(f"Filtering queues to query by these specific queues: {specific_queues}") + + # Add the queue tag from celery if necessary + celerize_queues(specific_queues) + # Remove any potential duplicates and create a new set to store the queues we'll want to check + specific_queues = set(specific_queues) + specific_queues_to_check = set() + + for specific_queue in specific_queues: + # If the user provided the --spec flag too then we'll need to check that this + # specific queue exists in the spec that they provided + add_specific_queue = True + if spec and specific_queue not in queues: + if verbose: + LOG.warning( + f"Either couldn't find {specific_queue} in the existing queues for the spec file provided or " + "this queue doesn't go with the steps provided with the --steps option. Ignoring this queue." + ) + add_specific_queue = False + + # Add the full queue name to the set of queues we'll check + if add_specific_queue: + specific_queues_to_check.add(specific_queue) + + return specific_queues_to_check + + +def build_set_of_queues( + spec: "MerlinSpec", # noqa: F821 + steps: List[str], + specific_queues: List[str], + verbose: Optional[bool] = True, + app: Optional["Celery"] = None, # noqa: F821 +) -> set: + """ + Build a set of queues to query based on the parameters given here. + + :param spec: A `MerlinSpec` object or None + :param steps: Spaced-separated list of stepnames to query. Default is all + :param specific_queues: A list of queue names to query or None + :param verbose: A bool to determine whether to output log statements or not + :param app: A celery app object, if left out we'll just import it + :returns: A set of queues to investigate + """ + if app is None: + from merlin.celery import app # pylint: disable=C0415 + + queues = set() + # If the user provided a spec file, get the queues from that spec + if spec: + if verbose: + LOG.info(f"Querying queues for steps = {steps}") + queues = set(spec.get_queue_list(steps)) + + # If the user provided specific queues, search for those + if specific_queues: + queues = _get_specific_queues(queues, specific_queues, spec, verbose=verbose) + + # Default behavior with no options provided; display active queues + if not spec and not specific_queues: + if verbose: + LOG.info("Querying active queues") + existing_queues, _ = get_active_celery_queues(app) + + # Check if there's any active queues currently + if len(existing_queues) == 0: + if verbose: + LOG.warning("No active queues found. Are your workers running yet?") + return set() + + # Set the queues we're going to check to be all existing queues by default + queues = set(existing_queues.keys()) + + return queues + + def query_celery_queues(queues: List[str], app: Celery = None, config: Config = None) -> Dict[str, List[str]]: """ Build a dict of information about the number of jobs and consumers attached diff --git a/merlin/study/dag.py b/merlin/study/dag.py index 4cffc679c..8c758b33a 100644 --- a/merlin/study/dag.py +++ b/merlin/study/dag.py @@ -44,11 +44,15 @@ class DAG: independent chains of tasks. """ - def __init__(self, maestro_adjacency_table, maestro_values, labels): + def __init__( + self, maestro_adjacency_table, maestro_values, column_labels, study_name, parameter_info + ): # pylint: disable=R0913 """ :param `maestro_adjacency_table`: An ordered dict showing adjacency of nodes. Comes from a maestrowf ExecutionGraph. :param `maestro_values`: An ordered dict of the values at each node. Comes from a maestrowf ExecutionGraph. - :param `labels`: A list of labels provided in the spec file. + :param `column_labels`: A list of column labels provided in the spec file. + :param `study_name`: The name of the study + :param `parameter_info`: A dict containing information about parameters in the study """ # We used to store the entire maestro ExecutionGraph here but now it's # unpacked so we're only storing the 2 attributes from it that we use: @@ -56,9 +60,11 @@ def __init__(self, maestro_adjacency_table, maestro_values, labels): # to work for Celery. self.maestro_adjacency_table = maestro_adjacency_table self.maestro_values = maestro_values + self.column_labels = column_labels + self.study_name = study_name + self.parameter_info = parameter_info self.backwards_adjacency = {} self.calc_backwards_adjacency() - self.labels = labels def step(self, task_name): """Return a Step object for the given task name @@ -66,7 +72,7 @@ def step(self, task_name): :param `task_name`: The task name. :return: A Merlin Step object. """ - return Step(self.maestro_values[task_name]) + return Step(self.maestro_values[task_name], self.study_name, self.parameter_info) def calc_depth(self, node, depths, current_depth=0): """Calculate the depth of the given node and its children. @@ -176,7 +182,7 @@ def compatible_merlin_expansion(self, task1, task2): """ step1 = self.step(task1) step2 = self.step(task2) - return step1.needs_merlin_expansion(self.labels) == step2.needs_merlin_expansion(self.labels) + return step1.check_if_expansion_needed(self.column_labels) == step2.check_if_expansion_needed(self.column_labels) def find_independent_chains(self, list_of_groups_of_chains): """ diff --git a/merlin/study/status.py b/merlin/study/status.py new file mode 100644 index 000000000..d2b07dcc1 --- /dev/null +++ b/merlin/study/status.py @@ -0,0 +1,1056 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.0 +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +"""This module handles all the functionality of getting the statuses of studies""" +import json +import logging +import os +import re +from argparse import Namespace +from copy import deepcopy +from datetime import datetime +from glob import glob +from typing import Dict, List, Optional, Tuple, Union + +import numpy as np +from filelock import FileLock, Timeout +from tabulate import tabulate + +from merlin.common.dumper import dump_handler +from merlin.display import ANSI_COLORS, display_status_summary, display_status_task_by_task +from merlin.spec.expansion import get_spec_with_expansion +from merlin.study.status_constants import ( + ALL_VALID_FILTERS, + CELERY_KEYS, + NON_WORKSPACE_KEYS, + VALID_EXIT_FILTERS, + VALID_RETURN_CODES, + VALID_STATUS_FILTERS, +) +from merlin.study.status_renderers import status_renderer_factory +from merlin.utils import ( + convert_timestring, + convert_to_timedelta, + dict_deep_merge, + pretty_format_hms, + verify_dirpath, + ws_time_to_dt, +) + + +LOG = logging.getLogger(__name__) + + +class Status: + """ + This class handles everything to do with status besides displaying it. + Display functionality is handled in display.py. + """ + + def __init__(self, args: Namespace, spec_display: bool, file_or_ws: str): + # Save the args to this class instance and check if the steps filter was given + self.args = args + + # Load in the workspace path and spec object + if spec_display: + self.workspace, self.spec = self._load_from_spec(file_or_ws) + else: + self.workspace = file_or_ws + self.spec = self._load_from_workspace() + + # Verify the filter args (this will only do something for DetailedStatus) + self._verify_filter_args() + + # Create a step tracker that will tell us which steps have started/not started + self.step_tracker = self.get_steps_to_display() + + # Create a tasks per step mapping in order to give accurate totals for each step + self.tasks_per_step = self.spec.get_tasks_per_step() + + # This attribute will store a map between the overall step name and the full step names + # that are created with parameters (e.g. step name is hello and uses a "GREET: hello" parameter + # so the real step name is hello_GREET.hello) + self.full_step_name_map = {} + + # Variable to store run time information for each step + self.run_time_info = {} + + # Variable to store the statuses that the user wants + self.requested_statuses = {} + self.load_requested_statuses() + + def _verify_filter_args(self): + """ + This is an abstract method since we'll need to verify filter args for DetailedStatus + but not for Status. + """ + + def _get_latest_study(self, studies: List[str]) -> str: + """ + Given a list of studies, get the latest one. + + :param `studies`: A list of studies to sort through + :returns: The latest study in the list provided + """ + # We can assume the newest study is the last one to be added to the list of potential studies + newest_study = studies[-1] + newest_timestring = newest_study[-15:] + newest_study_date = ws_time_to_dt(newest_timestring) + + # Check that the newest study somehow isn't the last entry + for study in studies: + temp_timestring = study[-15:] + date_to_check = ws_time_to_dt(temp_timestring) + if date_to_check > newest_study_date: + newest_study = study + newest_study_date = date_to_check + + return newest_study + + def _obtain_study(self, study_output_dir: str, num_studies: int, potential_studies: List[Tuple[int, str]]) -> str: + """ + Grab the study that the user wants to view the status of based on a list of potential studies provided. + + :param `study_output_dir`: A string representing the output path of a study; equivalent to $(OUTPUT_PATH) + :param `num_studies`: The number of potential studies we found + :param `potential_studies`: The list of potential studies we found; + Each entry is of the form (index, potential_study_name) + :returns: A directory path to the study that the user wants + to view the status of ("study_output_dir/selected_potential_study") + """ + study_to_check = f"{study_output_dir}/" + if num_studies == 0: + raise ValueError("Could not find any potential studies.") + if num_studies > 1: + # Get the latest study + if self.args.no_prompts: + LOG.info("Choosing the latest study...") + potential_studies = [study for _, study in potential_studies] + latest_study = self._get_latest_study(potential_studies) + LOG.info(f"Chose {latest_study}") + study_to_check += latest_study + # Ask the user which study to view + else: + print(f"Found {num_studies} potential studies:") + print(tabulate(potential_studies, headers=["Index", "Study Name"])) + prompt = "Which study would you like to view the status of? Use the index on the left: " + index = -1 + while index < 1 or index > num_studies: + try: + index = int(input(prompt)) + if index < 1 or index > num_studies: + raise ValueError + except ValueError: + print( + f"{ANSI_COLORS['RED']}Input must be an integer between 1 " + f"and {num_studies}.{ANSI_COLORS['RESET']}" + ) + prompt = "Enter a different index: " + study_to_check += potential_studies[index - 1][1] + else: + # Only one study was found so we'll just assume that's the one the user wants + study_to_check += potential_studies[0][1] + + return study_to_check + + def _load_from_spec(self, filepath: str) -> Tuple[str, "MerlinSpec"]: # noqa: F821 pylint: disable=R0914 + """ + Get the desired workspace from the user and load up it's yaml spec + for further processing. + + :param `filepath`: The filepath to a spec given by the user + :returns: The workspace of the study we'll check the status for and a MerlinSpec + object loaded in from the workspace's merlin_info subdirectory. + """ + # If the user provided a new output path to look in, use that + if self.args.output_path is not None: + output_path = self.args.output_path + # Otherwise, use the output path of the study that was given to us + else: + # Case where the output path is left out of the spec file + if self.args.spec_provided.output_path == "": + output_path = os.path.dirname(filepath) + # Case where output path is absolute + elif self.args.spec_provided.output_path.startswith("/"): + output_path = self.args.spec_provided.output_path + # Case where output path is relative to the specroot + else: + output_path = f"{os.path.dirname(filepath)}/{self.args.spec_provided.output_path}" + + LOG.debug(f"Verifying output path: {output_path}...") + study_output_dir = verify_dirpath(output_path) + LOG.debug(f"Output path verified. Expanded version: {study_output_dir}") + + # Build a list of potential study output directories + study_output_subdirs = next(os.walk(study_output_dir))[1] + timestamp_regex = r"\d{8}-\d{6}" + potential_studies = [] + num_studies = 0 + LOG.debug(f"All subdirs in output path: {study_output_subdirs}") + for subdir in study_output_subdirs: + match = re.search(rf"{self.args.spec_provided.name}_{timestamp_regex}", subdir) + if match: + potential_studies.append((num_studies + 1, subdir)) + num_studies += 1 + LOG.debug(f"Potential studies: {potential_studies}") + + # Obtain the correct study to view the status of based on the list of potential studies we just built + LOG.debug("Obtaining a study to view the status of...") + study_to_check = self._obtain_study(study_output_dir, num_studies, potential_studies) + LOG.debug(f"Selected '{study_to_check}' for viewing.") + + # Verify the directory that the user selected is a merlin study output directory + if "merlin_info" not in next(os.walk(study_to_check))[1]: + raise ValueError( + f"The merlin_info subdirectory was not found. {study_to_check} may not be a Merlin study output directory." + ) + + # Grab the spec saved to the merlin info directory in case something + # in the current spec has changed since starting the study + expanded_spec_options = glob(f"{study_to_check}/merlin_info/*.expanded.yaml") + if len(expanded_spec_options) > 1: + raise ValueError(f"Multiple expanded spec options found in the {study_to_check}/merlin_info/ directory") + if len(expanded_spec_options) < 1: + raise ValueError(f"No expanded spec options found in the {study_to_check}/merlin_info/ directory") + + LOG.debug(f"Creating a spec object from '{expanded_spec_options[0]}'...") + actual_spec = get_spec_with_expansion(expanded_spec_options[0]) + LOG.debug("Spec object created.") + + return study_to_check, actual_spec + + def _load_from_workspace(self) -> "MerlinSpec": # noqa: F821 + """ + Create a MerlinSpec object based on the spec file in the workspace. + + :returns: A MerlinSpec object loaded from the workspace provided by the user + """ + # Grab the spec file from the directory provided + expanded_spec_options = glob(f"{self.workspace}/merlin_info/*.expanded.yaml") + if len(expanded_spec_options) > 1: + raise ValueError(f"Multiple expanded spec options found in the {self.workspace}/merlin_info/ directory") + if len(expanded_spec_options) < 1: + raise ValueError(f"No expanded spec options found in the {self.workspace}/merlin_info/ directory") + + # Create a MerlinSpec object from the expanded spec we grabbed + LOG.debug(f"Creating a spec object from '{expanded_spec_options[0]}'...") + spec = get_spec_with_expansion(expanded_spec_options[0]) + LOG.debug("Spec object created.") + + return spec + + def _create_step_tracker(self, steps_to_check: List[str]) -> Dict[str, List[str]]: + """ + Creates a dictionary of started and unstarted steps that we + will display the status for. + + :param `steps_to_check`: A list of steps to view the status of + :returns: A dictionary mapping of started and unstarted steps. Values are lists of step names. + """ + step_tracker = {"started_steps": [], "unstarted_steps": []} + started_steps = next(os.walk(self.workspace))[1] + started_steps.remove("merlin_info") + + LOG.debug(f"All started steps: {started_steps}") + + for sstep in started_steps: + if sstep in steps_to_check: + step_tracker["started_steps"].append(sstep) + steps_to_check.remove(sstep) + step_tracker["unstarted_steps"] = steps_to_check + + LOG.debug(f"Started steps after (potentially) filtering: {step_tracker['started_steps']}") + LOG.debug(f"Unstarted steps: {step_tracker['unstarted_steps']}") + + return step_tracker + + def get_steps_to_display(self) -> Dict[str, List[str]]: + """ + Generates a list of steps to display the status for based on information + provided to the merlin status command by the user. + + :returns: A dictionary of started and unstarted steps for us to display the status of + """ + existing_steps = self.spec.get_study_step_names() + + LOG.debug(f"existing steps: {existing_steps}") + LOG.debug("Building step tracker based on existing steps...") + + # Filter the steps to display status for by started/unstarted + step_tracker = self._create_step_tracker(existing_steps) + + LOG.debug("Step tracker created.") + + return step_tracker + + @property + def num_requested_statuses(self): + """ + Count the number of task statuses in a the requested_statuses dict. + We need to ignore non workspace keys when we count. + """ + num_statuses = 0 + for overall_step_info in self.requested_statuses.values(): + num_statuses += len(overall_step_info.keys() - NON_WORKSPACE_KEYS) + + return num_statuses + + def get_step_statuses(self, step_workspace: str, started_step_name: str) -> Dict[str, List[str]]: + """ + Given a step workspace and the name of the step, read in all the statuses + for the step and return them in a dict. + + :param `step_workspace`: The path to the step we're going to read statuses from + :returns: A dict of statuses for the given step + """ + step_statuses = {} + num_statuses_read = 0 + + self.full_step_name_map[started_step_name] = set() + + # Traverse the step workspace and look for MERLIN_STATUS files + LOG.debug(f"Traversing '{step_workspace}' to find MERLIN_STATUS.json files...") + for root, _, _ in os.walk(step_workspace): + # Search for a status file + status_filepath = os.path.join(root, "MERLIN_STATUS.json") + matching_files = glob(status_filepath) + if matching_files: + LOG.debug(f"Found status file at '{status_filepath}'") + # Read in the statuses + lock = FileLock(f"{root}/status.lock") # pylint: disable=E0110 + statuses_read = read_status(status_filepath, lock) + + # Add full step name to the tracker and count number of statuses we just read in + for full_step_name, status_info in statuses_read.items(): + self.full_step_name_map[started_step_name].add(full_step_name) + num_statuses_read += len(status_info.keys() - NON_WORKSPACE_KEYS) + + # Merge the statuses we read with the dict tracking all statuses for this step + dict_deep_merge(step_statuses, statuses_read) + + LOG.debug( + f"Done traversing '{step_workspace}'. Read in {num_statuses_read} " + f"{'statuses' if num_statuses_read != 1 else 'status'}." + ) + + return step_statuses + + def load_requested_statuses(self): + """ + Populate the requested_statuses dict with the statuses from the study. + """ + LOG.info(f"Reading task statuses from {self.workspace}") + + # Read in all statuses from the started steps the user wants to see + for sstep in self.step_tracker["started_steps"]: + step_workspace = f"{self.workspace}/{sstep}" + step_statuses = self.get_step_statuses(step_workspace, sstep) + dict_deep_merge(self.requested_statuses, step_statuses) + + # Calculate run time average and standard deviation for this step + self.get_runtime_avg_std_dev(step_statuses, sstep) + + # Count how many statuses in total that we just read in + LOG.info(f"Read in {self.num_requested_statuses} statuses total.") + + def get_runtime_avg_std_dev(self, step_statuses: Dict, step_name: str) -> Dict: + """ + Calculate the mean and standard deviation for the runtime of each step. + Add this to the state information once calculated. + + :param `step_statuses`: A dict of step status information that we'll parse for run times + :param `step_name`: The name of the step + :returns: An updated dict of step status info with run time avg and std dev + """ + # Initialize a list to track all existing runtimes + run_times_in_seconds = [] + + # This outer loop will only loop once + LOG.debug(f"Calculating run time avg and std dev for step '{step_name}'...") + for overall_step_info in step_statuses.values(): + for step_info_key, step_status_info in overall_step_info.items(): + # Ignore non-workspace keys + if step_info_key in NON_WORKSPACE_KEYS: + continue + + # Ignore any run times that have yet to be calculated + if step_status_info["run_time"] == "--:--:--": + LOG.debug(f"Skipping {step_info_key} since the run time is empty.") + continue + + # Parse the runtime value, convert it to seconds, and add it to the lsit of existing run times + run_time = step_status_info["run_time"].replace("d", "").replace("h", "").replace("m", "").replace("s", "") + run_time_tdelta = convert_to_timedelta(run_time) + run_times_in_seconds.append(run_time_tdelta.total_seconds()) + + # Using the list of existing run times, calculate avg and std dev + LOG.debug(f"Using the following run times for our calculations: {run_times_in_seconds}") + self.run_time_info[step_name] = {} + if len(run_times_in_seconds) == 0: + self.run_time_info[step_name]["avg_run_time"] = "--" + self.run_time_info[step_name]["run_time_std_dev"] = "±--" + else: + np_run_times_in_seconds = np.array(run_times_in_seconds) + run_time_mean = round(np.mean(np_run_times_in_seconds)) + run_time_std_dev = round(np.std(np_run_times_in_seconds)) + LOG.debug(f"Run time avg in seconds: {run_time_mean}") + LOG.debug(f"Run time std dev in seconds: {run_time_std_dev}") + + # Pretty format the avg and std dev and store them as new entries in the run time info + self.run_time_info[step_name]["avg_run_time"] = pretty_format_hms(convert_timestring(run_time_mean)) + self.run_time_info[step_name]["run_time_std_dev"] = f"±{pretty_format_hms(convert_timestring(run_time_std_dev))}" + LOG.debug(f"Run time avg and std dev for step '{step_name}' calculated.") + + def display(self, test_mode: Optional[bool] = False) -> Dict: + """ + Displays the high level summary of the status. + + :param `test_mode`: If true, run this in testing mode and don't print any output + :returns: A dict that will be empty if test_mode is False. Otherwise, the dict will + contain the status info that would be displayed. + """ + return display_status_summary(self, NON_WORKSPACE_KEYS, test_mode=test_mode) + + def format_json_dump(self, date: datetime) -> Dict: + """ + Build the dict of statuses to dump to the json file. + + :param `date`: A timestamp for us to mark when this status occurred + :returns: A dictionary that's ready to dump to a json outfile + """ + # Statuses are already in json format so we'll just add a timestamp for the dump here + return {date: self.requested_statuses} + + def format_csv_dump(self, date: datetime) -> Dict: + """ + Add the timestamp to the statuses to write. + + :param `date`: A timestamp for us to mark when this status occurred + :returns: A dict equivalent of formatted statuses with a timestamp entry at the start of the dict. + """ + # Reformat the statuses to a new dict where the keys are the column labels and rows are the values + LOG.debug("Formatting statuses for csv dump...") + statuses_to_write = self.format_status_for_csv() + LOG.debug("Statuses formatted.") + + # Add date entries as the first column then update this dict with the statuses we just reformatted + statuses_with_timestamp = {"time_of_status": [date] * len(statuses_to_write["step_name"])} + statuses_with_timestamp.update(statuses_to_write) + + return statuses_with_timestamp + + def dump(self): + """ + Dump the status information to a file. + """ + # Get a timestamp for this dump + date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # Handle different file types + if self.args.dump.endswith(".csv"): + # Build the lists of information/labels we'll need + dump_info = self.format_csv_dump(date) + elif self.args.dump.endswith(".json"): + # Build the dict of info to dump to the json file + dump_info = self.format_json_dump(date) + + # Dump the information + dump_handler(self.args.dump, dump_info) + + def format_status_for_csv(self) -> Dict: + """ + Reformat our statuses to csv format so they can use Maestro's status renderer layouts. + + :returns: A formatted dictionary where each key is a column and the values are the rows + of information to display for that column. + """ + reformatted_statuses = { + "step_name": [], + "step_workspace": [], + "status": [], + "return_code": [], + "elapsed_time": [], + "run_time": [], + "restarts": [], + "cmd_parameters": [], + "restart_parameters": [], + "task_queue": [], + "worker_name": [], + } + + # We only care about started steps since unstarted steps won't have any status to report + for step_name, overall_step_info in self.requested_statuses.items(): + # Get the number of statuses for this step so we know how many entries there should be + num_statuses = len(overall_step_info.keys() - NON_WORKSPACE_KEYS) + + # Loop through information for each step + for step_info_key, step_info_value in overall_step_info.items(): + # Format celery specific keys + if step_info_key in CELERY_KEYS: + # Set the val_to_add value based on if a value exists for the key + val_to_add = step_info_value if step_info_value else "-------" + # Add the val_to_add entry for each row + key_entries = [val_to_add] * num_statuses + reformatted_statuses[step_info_key].extend(key_entries) + + # Format parameters + elif step_info_key == "parameters": + for cmd_type in ("cmd", "restart"): + reformatted_statuses_key = f"{cmd_type}_parameters" + # Set the val_to_add value based on if a value exists for the key + if step_info_value[cmd_type] is not None: + param_str = ";".join( + [f"{token}:{param_val}" for token, param_val in step_info_value[cmd_type].items()] + ) + else: + param_str = "-------" + # Add the parameter string for each row in this step + reformatted_statuses[reformatted_statuses_key].extend([param_str] * num_statuses) + + # Format workspace keys + else: + # Put the step name and workspace in each entry + reformatted_statuses["step_name"].append(step_name) + reformatted_statuses["step_workspace"].append(step_info_key) + + # Add the rest of the information for each task (status, return code, elapsed & run time, num restarts) + for key, val in step_info_value.items(): + reformatted_statuses[key].append(val) + + # For local runs, there will be no task queue or worker name so delete these entries + for celery_specific_key in CELERY_KEYS: + if not reformatted_statuses[celery_specific_key]: + del reformatted_statuses[celery_specific_key] + + return reformatted_statuses + + +class DetailedStatus(Status): + """ + This class handles obtaining and filtering requested statuses from the user. + This class shares similar methodology to the Status class it inherits from. + """ + + def __init__(self, args: Namespace, spec_display: bool, file_or_ws: str): + args_copy = Namespace(**vars(args)) + super().__init__(args, spec_display, file_or_ws) + + # Check if the steps filter was given + self.steps_filter_provided = "all" not in args_copy.steps + + def _verify_filters( + self, + filters_to_check: List[str], + valid_options: Union[List, Tuple], + suppress_warnings: bool, + warning_msg: Optional[str] = "", + ): + """ + Check each filter in a list of filters provided by the user against a list of valid options. + If the filter is invalid, remove it from the list of filters. + + :param `filters_to_check`: A list of filters provided by the user + :param `valid_options`: A list of valid options for this particular filter + :param `suppress_warnings`: If True, don't log warnings. Otherwise, log them + :param `warning_msg`: An optional warning message to attach to output + """ + for filter_arg in filters_to_check[:]: + if filter_arg not in valid_options: + if not suppress_warnings: + LOG.warning(f"The filter '{filter_arg}' is invalid. {warning_msg}") + filters_to_check.remove(filter_arg) + + def _verify_filter_args(self, suppress_warnings: Optional[bool] = False): + """ + Verify that our filters are all valid and able to be used. + + :param `suppress_warnings`: If True, don't log warnings. Otherwise, log them. + """ + # Ensure the steps are valid + if "all" not in self.args.steps: + LOG.debug(f"args.steps before verification: {self.args.steps}") + existing_steps = self.spec.get_study_step_names() + self._verify_filters( + self.args.steps, + existing_steps, + suppress_warnings, + warning_msg="Removing this step from the list of steps to filter by...", + ) + LOG.debug(f"args.steps after verification: {self.args.steps}") + + # Make sure max_tasks is a positive int + if self.args.max_tasks is not None: + LOG.debug(f"args.max_tasks before verification: {self.args.max_tasks}") + if self.args.max_tasks < 1 or not isinstance(self.args.max_tasks, int): + if not suppress_warnings: + LOG.warning("The value of --max-tasks must be an integer greater than 0. Ignoring --max-tasks...") + self.args.max_tasks = None + LOG.debug(f"args.max_tasks after verification: {self.args.max_tasks}") + + # Make sure task_status is valid + if self.args.task_status: + LOG.debug(f"args.task_status before verificaiton: {self.args.task_status}") + self.args.task_status = [x.upper() for x in self.args.task_status] + self._verify_filters( + self.args.task_status, + VALID_STATUS_FILTERS, + suppress_warnings, + warning_msg="Removing this status from the list of statuses to filter by...", + ) + LOG.debug(f"args.task_status after verification: {self.args.task_status}") + + # Ensure return_code is valid + if self.args.return_code: + LOG.debug(f"args.return_code before verification: {self.args.return_code}") + # TODO remove this code block and uncomment the line below once you've + # implemented entries for restarts/retries + idx = 0 + for ret_code_provided in self.args.return_code[:]: + ret_code_provided = ret_code_provided.upper() + if ret_code_provided in ("RETRY", "RESTART"): + if not suppress_warnings: + LOG.warning(f"The {ret_code_provided} filter is coming soon. Ignoring this filter for now...") + self.args.return_code.remove(ret_code_provided) + else: + self.args.return_code[idx] = ret_code_provided + idx += 1 + + # self.args.return_code = [ret_code.upper() for ret_code in self.args.return_code] + self._verify_filters( + self.args.return_code, + VALID_RETURN_CODES, + suppress_warnings, + warning_msg="Removing this code from the list of return codes to filter by...", + ) + LOG.debug(f"args.return_code after verification: {self.args.return_code}") + + # Ensure every task queue provided exists + if self.args.task_queues: + LOG.debug(f"args.task_queues before verification: {self.args.task_queues}") + existing_queues = self.spec.get_queue_list(["all"], omit_tag=True) + self._verify_filters( + self.args.task_queues, + existing_queues, + suppress_warnings, + warning_msg="Removing this queue from the list of queues to filter by...", + ) + LOG.debug(f"args.task_queues after verification: {self.args.task_queues}") + + # Ensure every worker provided exists + if self.args.workers: + LOG.debug(f"args.workers before verification: {self.args.workers}") + worker_names = self.spec.get_worker_names() + self._verify_filters( + self.args.workers, + worker_names, + suppress_warnings, + warning_msg="Removing this worker from the list of workers to filter by...", + ) + LOG.debug(f"args.workers after verification: {self.args.workers}") + + def _process_workers(self): + """ + Modifies the list of steps to display status for based on + the list of workers provided by the user. + """ + LOG.debug("Processing workers filter...") + # Remove duplicates + workers_provided = list(set(self.args.workers)) + + # Get a map between workers and steps + worker_step_map = self.spec.get_worker_step_map() + + # Append steps associated with each worker provided + for worker_provided in workers_provided: + # Check for invalid workers + if worker_provided not in worker_step_map: + LOG.warning(f"Worker with name {worker_provided} does not exist for this study.") + else: + for step in worker_step_map[worker_provided]: + if step not in self.args.steps: + self.args.steps.append(step) + + LOG.debug(f"Steps after workers filter: {self.args.steps}") + + def _process_task_queue(self): + """ + Modifies the list of steps to display status for based on + the list of task queues provided by the user. + """ + from merlin.config.configfile import CONFIG # pylint: disable=C0415 + + LOG.debug("Processing task_queues filter...") + # Remove duplicate queues + queues_provided = list(set(self.args.task_queues)) + + # Get a map between queues and steps + queue_step_relationship = self.spec.get_queue_step_relationship() + + # Append steps associated with each task queue provided + for queue_provided in queues_provided: + # Check for invalid task queues + queue_with_celery_tag = f"{CONFIG.celery.queue_tag}{queue_provided}" + if queue_with_celery_tag not in queue_step_relationship: + LOG.warning(f"Task queue with name {queue_provided} does not exist for this study.") + else: + for step in queue_step_relationship[queue_with_celery_tag]: + if step not in self.args.steps: + self.args.steps.append(step) + + LOG.debug(f"Steps after task_queues filter: {self.args.steps}") + + def get_steps_to_display(self) -> Dict[str, List[str]]: + """ + Generates a list of steps to display the status for based on information + provided to the merlin detailed-status command by the user. This function + will handle the --steps, --task-queues, and --workers filter options. + + :returns: A dictionary of started and unstarted steps for us to display the status of + """ + existing_steps = self.spec.get_study_step_names() + + LOG.debug(f"existing steps: {existing_steps}") + + if ("all" in self.args.steps) and (not self.args.task_queues) and (not self.args.workers): + LOG.debug("The steps, task_queues, and workers filters weren't provided. Setting steps to be all existing steps.") + self.args.steps = existing_steps + else: + # This won't matter anymore since task_queues or workers is not None here + if "all" in self.args.steps: + self.args.steps = [] + + # Add steps to start based on task queues and/or workers provided + if self.args.task_queues: + self._process_task_queue() + if self.args.workers: + self._process_workers() + + # Sort the steps to start by the order they show up in the study + for i, estep in enumerate(existing_steps): + if estep in self.args.steps: + self.args.steps.remove(estep) + self.args.steps.insert(i, estep) + + LOG.debug(f"Building detailed step tracker based on these steps: {self.args.steps}") + + # Filter the steps to display status for by started/unstarted + step_tracker = self._create_step_tracker(self.args.steps.copy()) + + return step_tracker + + def _remove_steps_without_statuses(self): + """ + After applying filters, there's a chance that certain steps will still exist + in self.requested_statuses but won't have any tasks to view the status of so + we'll remove those here. + """ + result = deepcopy(self.requested_statuses) + + for step_name, overall_step_info in self.requested_statuses.items(): + sub_step_workspaces = sorted(list(overall_step_info.keys() - NON_WORKSPACE_KEYS)) + if len(sub_step_workspaces) == 0: + LOG.debug(f"Removing step '{step_name}' from the requested_statuses dict since it didn't match our filters.") + del result[step_name] + + self.requested_statuses = result + + def apply_filters(self, filter_types: List[str], filters: List[str]): + """ + Given a list of filters, filter the dict of requested statuses by them. + + :param `filter_types`: A list of str denoting the types of filters we're applying + :param `filters`: A list of filters to apply to the dict of statuses we read in + """ + LOG.info(f"Filtering tasks using these filters: {filters}") + + # Create a deep copy of the dict so we can make changes to it while we iterate + result = deepcopy(self.requested_statuses) + + for step_name, overall_step_info in self.requested_statuses.items(): + for sub_step_workspace, task_status_info in overall_step_info.items(): + # Ignore non workspace keys + if sub_step_workspace in NON_WORKSPACE_KEYS: + continue + + # Search for our filters + found_a_match = False + for filter_type in filter_types: + if task_status_info[filter_type] in filters: + found_a_match = True + break + + # If our filters aren't a match for this task then delete it + if not found_a_match: + LOG.debug(f"No matching filter for '{sub_step_workspace}'; removing it from requested_statuses.") + del result[step_name][sub_step_workspace] + + # Get the number of tasks found with our filters + self.requested_statuses = result + self._remove_steps_without_statuses() + LOG.info(f"Found {self.num_requested_statuses} tasks matching your filters.") + + # If no tasks were found set the status dict to empty + if self.num_requested_statuses == 0: + self.requested_statuses = {} + + def apply_max_tasks_limit(self): + """ + Given a number representing the maximum amount of tasks to display, filter the dict of statuses + so that there are at most a max_tasks amount of tasks. + """ + # Make sure the max_tasks variable is set to a reasonable number and store that value + if self.args.max_tasks > self.num_requested_statuses: + LOG.debug( + f"'max_tasks' was set to {self.args.max_tasks} but only {self.num_requested_statuses} statuses exist. " + f"Setting 'max_tasks' to {self.num_requested_statuses}." + ) + self.args.max_tasks = self.num_requested_statuses + max_tasks = self.args.max_tasks + + new_status_dict = {} + for step_name, overall_step_info in self.requested_statuses.items(): + new_status_dict[step_name] = {} + sub_step_workspaces = sorted(list(overall_step_info.keys() - NON_WORKSPACE_KEYS)) + + # If there are more status entries than max_tasks will allow then we need to remove some + if len(sub_step_workspaces) > self.args.max_tasks: + workspaces_to_delete = set(sub_step_workspaces) - set(sub_step_workspaces[: self.args.max_tasks]) + for ws_to_delete in workspaces_to_delete: + del overall_step_info[ws_to_delete] + self.args.max_tasks = 0 + # Otherwise, subtract how many tasks there are in this step from max_tasks + else: + self.args.max_tasks -= len(sub_step_workspaces) + + # Merge in the task statuses that we're allowing + dict_deep_merge(new_status_dict[step_name], overall_step_info) + + LOG.info(f"Limited the number of tasks to display to {max_tasks} tasks.") + + # Set the new requested statuses with the max_tasks limit and remove steps without statuses + self.requested_statuses = new_status_dict + self._remove_steps_without_statuses() + + # Reset max_tasks + self.args.max_tasks = max_tasks + + def load_requested_statuses(self): + """ + Populate the requested_statuses dict with statuses that the user is looking to find. + Filters for steps, task queues, workers will have already been applied + when creating the step_tracker attribute. Remaining filters will be applied here. + """ + # Grab all the statuses based on our step tracker + super().load_requested_statuses() + + # Apply filters to the statuses + filter_types = set() + filters = [] + if self.args.task_status: + filter_types.add("status") + filters += self.args.task_status + if self.args.return_code: + filter_types.add("return_code") + filters += [f"MERLIN_{return_code}" for return_code in self.args.return_code] + + # Apply the filters if necessary + if filters: + self.apply_filters(list(filter_types), filters) + + # Limit the number of tasks to display if necessary + if self.args.max_tasks is not None and self.args.max_tasks > 0: + self.apply_max_tasks_limit() + + def get_user_filters(self) -> List[str]: + """ + Get a filter on the statuses to display from the user. Possible options + for filtering: + - A str MAX_TASKS -> will ask the user for another input that's equivalent to the --max-tasks flag + - A list of statuses -> equivalent to the --task-status flag + - A list of return codes -> equivalent to the --return-code flag + - An exit keyword to leave the filter prompt without filtering + + :returns: A list of strings to filter by + """ + # Build the filter options + filter_info = { + "Filter Type": [ + "Put a limit on the number of tasks to display", + "Filter by status", + "Filter by return code", + "Exit without filtering", + ], + "Description": [ + "Enter 'MAX_TASKS'", + f"Enter a comma separated list of the following statuses you'd like to see: {VALID_STATUS_FILTERS}", + f"Enter a comma separated list of the following return codes you'd like to see: {VALID_RETURN_CODES}", + f"Enter one of the following: {VALID_EXIT_FILTERS}", + ], + "Example": ["MAX_TASKS", "FAILED, CANCELLED", "SOFT_FAIL, RETRY", "EXIT"], + } + + # Display the filter options + filter_option_renderer = status_renderer_factory.get_renderer("table", disable_theme=True, disable_pager=True) + filter_option_renderer.layout(status_data=filter_info) + filter_option_renderer.render() + + # Obtain and validate the filter provided by the user + invalid_filter = True + while invalid_filter: + user_filters = input("How would you like to filter the tasks? ") + # Remove spaces and split user filters by commas + user_filters = user_filters.replace(" ", "") + user_filters = user_filters.split(",") + + # Ensure every filter is valid + for i, entry in enumerate(user_filters): + entry = entry.upper() + if entry not in ALL_VALID_FILTERS: + invalid_filter = True + print(f"Invalid input: {entry}. Input must be one of the following {ALL_VALID_FILTERS}") + break + invalid_filter = False + user_filters[i] = entry + + return user_filters + + def get_user_max_tasks(self) -> int: + """ + Get a limit for the amount of tasks to display from the user. + + :returns: An int representing the max amount of tasks to display + """ + invalid_input = True + + while invalid_input: + try: + user_max_tasks = int(input("What limit would you like to set? (must be an integer greater than 0) ")) + if user_max_tasks > 0: + invalid_input = False + else: + raise ValueError + except ValueError: + print("Invalid input. The limit must be an integer greater than 0.") + continue + + return user_max_tasks + + def filter_via_prompts(self): + """ + Interact with the user to manage how many/which tasks are displayed. This helps to + prevent us from overloading the terminal by displaying a bazillion tasks at once. + """ + # Get the filters from the user + user_filters = self.get_user_filters() + + # TODO remove this once restart/retry functionality is implemented + if "RESTART" in user_filters: + LOG.warning("The RESTART filter is coming soon. Ignoring this filter for now...") + user_filters.remove("RESTART") + if "RETRY" in user_filters: + LOG.warning("The RETRY filter is coming soon. Ignoring this filter for now...") + user_filters.remove("RETRY") + + # Variable to track whether the user wants to stop filtering + exit_without_filtering = False + + # Process the filters + max_tasks_found = False + filter_types = [] + for i, user_filter in enumerate(user_filters): + # Case 1: Exit command found, stop filtering + if user_filter in ("E", "EXIT"): + exit_without_filtering = True + break + # Case 2: MAX_TASKS command found, get the limit from the user + if user_filter == "MAX_TASKS": + max_tasks_found = True + # Case 3: Status filter provided, add it to the list of filter types + elif user_filter in VALID_STATUS_FILTERS and "status" not in filter_types: + filter_types.append("status") + # Case 4: Return Code filter provided, add it to the list of filter types and add the MERLIN prefix + elif user_filter in VALID_RETURN_CODES: + user_filters[i] = f"MERLIN_{user_filter}" + if "return_code" not in filter_types: + filter_types.append("return_code") + + # Remove the MAX_TASKS entry so we don't try to filter using it + try: + user_filters.remove("MAX_TASKS") + except ValueError: + pass + + # Apply the filters and tell the user how many tasks match the filters (if necessary) + if not exit_without_filtering and user_filters: + self.apply_filters(filter_types, user_filters) + + # Apply max tasks limit (if necessary) + if max_tasks_found: + user_max_tasks = self.get_user_max_tasks() + self.args.max_tasks = user_max_tasks + self.apply_max_tasks_limit() + + def display(self, test_mode: Optional[bool] = False): + """ + Displays a task-by-task view of the status based on user filter(s). + + :param `test_mode`: If true, run this in testing mode and don't print any output + """ + # Check that there's statuses found and display them + if self.requested_statuses: + display_status_task_by_task(self, test_mode=test_mode) + else: + LOG.warning("No statuses to display.") + + +def read_status(status_filepath: str, lock: FileLock, display_fnf_message: Optional[bool] = True) -> Dict: + """ + Locks the status file for reading and returns its contents. + + :param `status_filepath`: The path to the status file that we'll read from + :param `lock`: A FileLock object that we'll use to lock the file + :param `display_fnf_message`: If True, display the file not found warning. Otherwise don't. + :returns: A dict of the contents in the status file + """ + try: + # The status files will need locks when reading to avoid race conditions + with lock.acquire(timeout=10): + with open(status_filepath, "r") as status_file: + statuses_read = json.load(status_file) + # Handle timeouts + except Timeout: + LOG.warning(f"Timed out when trying to read status from {status_filepath}") + statuses_read = {} + # Handle FNF errors + except FileNotFoundError: + if display_fnf_message: + LOG.warning(f"Could not find {status_filepath}") + statuses_read = {} + + return statuses_read diff --git a/merlin/study/status_constants.py b/merlin/study/status_constants.py new file mode 100644 index 000000000..31aeebc22 --- /dev/null +++ b/merlin/study/status_constants.py @@ -0,0 +1,44 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.11.0 +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +""" +This file contains all of the constants used for the status command. +Separating this from status.py and status_renderers.py helps with circular +import issues. +""" + +VALID_STATUS_FILTERS = ("INITIALIZED", "RUNNING", "FINISHED", "FAILED", "CANCELLED", "DRY_RUN", "UNKNOWN") +VALID_RETURN_CODES = ("SUCCESS", "SOFT_FAIL", "HARD_FAIL", "STOP_WORKERS", "RESTART", "RETRY", "DRY_SUCCESS", "UNRECOGNIZED") +VALID_EXIT_FILTERS = ("E", "EXIT") +ALL_VALID_FILTERS = VALID_STATUS_FILTERS + VALID_RETURN_CODES + VALID_EXIT_FILTERS + ("MAX_TASKS",) + +CELERY_KEYS = set(["task_queue", "worker_name"]) +RUN_TIME_STAT_KEYS = set(["avg_run_time", "run_time_std_dev"]) +NON_WORKSPACE_KEYS = CELERY_KEYS.union(RUN_TIME_STAT_KEYS) +NON_WORKSPACE_KEYS.add("parameters") diff --git a/merlin/study/status_renderers.py b/merlin/study/status_renderers.py new file mode 100644 index 000000000..52ecf2957 --- /dev/null +++ b/merlin/study/status_renderers.py @@ -0,0 +1,412 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.0 +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +"""This module handles creating a formatted task-by-task status display""" +import logging +from typing import Dict, List, Optional, Union + +from maestrowf import BaseStatusRenderer, FlatStatusRenderer, StatusRendererFactory +from rich import box +from rich.columns import Columns +from rich.console import Console +from rich.table import Table +from rich.text import Text +from rich.theme import Theme + +from merlin.study.status_constants import NON_WORKSPACE_KEYS + + +LOG = logging.getLogger(__name__) + + +def format_label(label_to_format: str, delimiter: Optional[str] = "_") -> str: + """ + Take a string of the format 'word1_word2_...' and format it so it's prettier. + This would turn the string above to 'Word1 Word2 ...'. + + :param `label_to_format`: The string we want to format + :param `delimiter`: The character separating words in `label_to_format` + :returns: A formatted string based on `label_to_format` + """ + return label_to_format.replace(delimiter, " ").title() + + +class MerlinDefaultRenderer(BaseStatusRenderer): + """ + This class handles the default status formatting for task-by-task display. + It will separate the display on a step-by-step basis. + + Similar to Maestro's 'narrow' status display. + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.disable_theme = kwargs.pop("disable_theme", False) + self.disable_pager = kwargs.pop("disable_pager", False) + + # Setup default theme + # TODO modify this theme to add more colors + self._theme_dict = { + "INITIALIZED": "blue", + "RUNNING": "blue", + "DRY_RUN": "green", + "FINISHED": "green", + "CANCELLED": "yellow", + "FAILED": "bold red", + "UNKNOWN": "bold red", + "Step Name": "bold", + "Workspace": "blue", + "row_style": "", + "row_style_dim": "dim", + "row_style_failed": "bold red", + "col_style_1": "", + "col_style_2": "blue", + "background": "grey7", + } + + # Setup the status table that will contain our formatted status + self._status_table = Table.grid(padding=0) + + def create_param_table(self, parameters: Dict[str, Dict[str, str]]) -> Columns: + """ + Create the parameter section of the display + + :param `parameters`: A dict of the form {"cmd": {"TOKEN1": "value1"}, "restart": {"TOKEN2": "value1"}} + :returns: A rich Columns object with the parameter info formatted appropriately + """ + param_table = [] + # Loop through cmd and restart entries + for param_type, param_set in parameters.items(): + # If there are no parameters, don't create a table + if param_set is None: + continue + + # Set up the table for this parameter type + param_subtable = Table( + title=format_label(f"{param_type} Parameters"), show_header=False, show_lines=True, box=box.HORIZONTALS + ) + + # Col names don't actually matter, we're just creating the style here + style = "blue" if not self.disable_theme else "" + param_subtable.add_column("token", style="") # This col will have all the token values + param_subtable.add_column("val", style=style, justify="right") # This col will have all the parameter values + param_subtable.add_column("padding1", style="") # This col is just for padding in the display + param_subtable.add_column("padding2", style=style, justify="right") # This col is just for padding in the display + + # Loop through each parameter token/val for this param type and create a row entry for each token/val + for token, param_val in param_set.items(): + param_subtable.add_row(token, param_val, style="row_style") + + # Add the sub table for this parameter type to the list that will store both sub tables + param_table.append(param_subtable) + + # Put the tables side-by-side in columns and return it + return Columns(param_table) + + def create_step_table( + self, + step_name: str, + parameters: Dict[str, Dict[str, str]], + task_queue: Optional[str] = None, + worker_name: Optional[str] = None, + ) -> Table: + """ + Create each step entry in the display + + :param `step_name`: The name of the step that we're setting the layout for + :param `parameters`: The parameters dict for this step + :param `task_queue`: The name of the task queue associated with this step if one was provided + :param `worker_name`: The name of the worker that ran this step if one was provided + :returns: A rich Table object with info for one sub step (here a 'sub step' is referencing a step + with multiple parameters; each parameter set will have it's own entry in the output) + """ + # Initialize the table that will have our step entry information + step_table = Table(box=box.SIMPLE_HEAVY, show_header=False) + + # Dummy columns used just for aligning our content properly + step_table.add_column("key") + step_table.add_column("val", overflow="fold") + + # Top level contains step name and may contain task queue and worker name + step_table.add_row("STEP:", step_name, style="Step Name") + if worker_name is not None: + step_table.add_row("WORKER NAME:", worker_name, style="Workspace") + if task_queue is not None: + step_table.add_row("TASK QUEUE:", task_queue, style="Workspace") + + step_table.add_row("", "") # just a little whitespace + + # Add optional parameter tables, if step has parameters + param_table = self.create_param_table(parameters) + step_table.add_row("", param_table) + + return step_table + + def create_task_details_table(self, task_statuses: Dict) -> Table: + """ + Create the task details section of the display + + :param `task_statuses`: A dict of task statuses to format into our layout + :returns: A rich Table with the formatted task info for a sub step + """ + # Initialize the task details table + task_details = Table(title="Task Details") + + # Setup the columns + cols = ["Step Workspace", "Status", "Return Code", "Elapsed Time", "Run Time", "Restarts"] + for nominal_col_num, col in enumerate(cols): + if col in list(self._theme_dict): + col_style = col + else: + if nominal_col_num % 2 == 0: + col_style = "col_style_1" + else: + col_style = "col_style_2" + + task_details.add_column(format_label(col), style=col_style, overflow="fold") + + # Set up the rows + row_style = "row_style" + for step_workspace, status_info in task_statuses.items(): + # Ignore the non-workspace keys + if step_workspace in NON_WORKSPACE_KEYS: + continue + + # Create each row entry + status_entry = [step_workspace] + for status_info_key, status_info_val in status_info.items(): + # For status entries we'll color the column differently + if status_info_key == "status": + status_entry.append(Text(status_info_val, style=self._theme_dict[status_info_val])) + # If we have a failed task then let's make that stand out by bolding and styling the whole row red + if status_info_val in ("FAILED", "UNKNOWN"): + row_style = "row_style_failed" + else: + status_entry.append(str(status_info_val)) + + # Add the row entry to the task details table + task_details.add_row(*status_entry, style=row_style) + + # Change styling for each row so statuses stand out more + row_style = "row_style" if row_style == "row_style_dim" else "row_style_dim" + + return task_details + + def layout( + self, status_data, study_title: Optional[str] = None, status_time: Optional[str] = None + ): # pylint: disable=W0237 + """ + Setup the overall layout of the display + + :param `status_data`: A dict of status data to display + :param `study_title`: A title for the study to display at the top of the output + :param `status_time`: A timestamp to add to the title + """ + if isinstance(status_data, dict) and status_data: + self._status_data = status_data + else: + raise ValueError("Status data must be a dict") + + # Create the table title + table_title = "" + if status_time: + table_title += f"Status as of {status_time}" + if study_title: + if status_time: + table_title += "\n" + table_title += f"Study: {study_title}" + if table_title: + LOG.debug(f"Table title: {table_title}") + self._status_table.title = table_title + + # Create settings for the entire display + self._status_table.box = box.HEAVY + self._status_table.show_lines = True + self._status_table.show_edge = False + self._status_table.show_footer = True + self._status_table.collapse_padding = True + + # Uses folding overflow for very long step/workspace names + self._status_table.add_column("Step", overflow="fold") + + # Build out the status table by sectioning it off at each step + for step_name, overall_step_info in self._status_data.items(): + task_queue = overall_step_info["task_queue"] if "task_queue" in overall_step_info else None + worker_name = overall_step_info["worker_name"] if "worker_name" in overall_step_info else None + + # Set up the top section of each step entry + # (this section will have step name, task queue, worker name, and parameters) + step_table = self.create_step_table( + step_name, overall_step_info["parameters"], task_queue=task_queue, worker_name=worker_name + ) + + # Set up the bottom section of each step entry + # (this section will have task-by-task info; status, return code, run time, etc.) + sample_details_table = self.create_task_details_table(overall_step_info) + + # Add the bottom section to the top section + step_table.add_row("", sample_details_table) + + # Add this step to the full status table + self._status_table.add_row(step_table, end_section=True) + + def render(self, theme: Optional[Dict[str, str]] = None): + """ + Do the actual printing + + :param `theme`: A dict of theme settings (see self._theme_dict for the appropriate layout) + """ + # Apply any theme customization + if theme: + LOG.debug(f"Applying theme: {theme}") + for key, value in theme.items(): + self._theme_dict[key] = value + + # If we're disabling the theme, we need to set all themes in the theme dict to none + if self.disable_theme: + LOG.debug("Disabling theme.") + for key in self._theme_dict: + self._theme_dict[key] = "none" + + # Get the rich Console + status_theme = Theme(self._theme_dict) + _printer = Console(theme=status_theme) + + # Display the status table + if self.disable_pager: + _printer.print(self._status_table) + else: + with _printer.pager(styles=(not self.disable_theme)): + _printer.print(self._status_table) + + +class MerlinFlatRenderer(FlatStatusRenderer): + """ + This class handles the flat status formatting for task-by-task display. + It will not separate the display on a step-by-step basis and instead group + all statuses together in a single table. + + Similar to Maestro's 'flat' status display. + """ + + def __init__(self, *args, **kwargs): + super().__init__(args, kwargs) + self.disable_theme = kwargs.pop("disable_theme", False) + self.disable_pager = kwargs.pop("disable_pager", False) + + def layout( + self, status_data: Dict[str, List[Union[str, int]]], study_title: Optional[str] = None + ): # pylint: disable=W0221 + """ + Setup the layout of the display + + :param `status_data`: A dict of status information that we'll display + :param `study_title`: The title of the study to display at the top of the output + """ + if "cmd_parameters" in status_data: + del status_data["cmd_parameters"] + if "restart_parameters" in status_data: + del status_data["restart_parameters"] + + # Capitalize column labels + capitalized_keys = [format_label(key) for key in status_data] + status_data = dict(zip(capitalized_keys, list(status_data.values()))) + + super().layout(status_data, study_title=study_title) + + def render(self, theme: Optional[Dict[str, str]] = None): + """ + Do the actual printing + + :param `theme`: A dict of theme settings (see self._theme_dict for the appropriate layout) + """ + # Apply any theme customization + if theme: + LOG.debug(f"Applying theme: {theme}") + for key, value in theme.items(): + self._theme_dict[key] = value + + # If we're disabling the theme, we need to set all themes in the theme dict to none + if self.disable_theme: + LOG.debug("Disabling theme.") + for key in self._theme_dict: + self._theme_dict[key] = "none" + + # Get the rich Console + status_theme = Theme(self._theme_dict) + _printer = Console(theme=status_theme) + + # Display the status table + if self.disable_pager: + _printer.print(self._status_table) + else: + with _printer.pager(styles=(not self.disable_theme)): + _printer.print(self._status_table) + + +class MerlinStatusRendererFactory(StatusRendererFactory): + """ + This class keeps track of all available status layouts for Merlin. + """ + + # TODO: when maestro releases the pager changes: + # - remove init and render in MerlinFlatRenderer + # - remove the get_renderer method below + # - remove self.disable_theme and self.disable_pager from MerlinFlatRenderer and MerlinDefaultRenderer + # - these variables will be in BaseStatusRenderer in Maestro + # - remove render method in MerlinDefaultRenderer + # - this will also be in BaseStatusRenderer in Maestro + def __init__(self): # pylint: disable=W0231 + self._layouts = { + "table": MerlinFlatRenderer, + "default": MerlinDefaultRenderer, + } + + def get_renderer(self, layout: str, disable_theme: bool, disable_pager: bool): # pylint: disable=W0221 + """Get handle for specific layout renderer to instantiate + + :param `layout`: A string denoting the name of the layout renderer to use + :param `disable_theme`: True if the user wants to disable themes when displaying status. + False otherwise. + :param `disable_pager`: True if the user wants to disable the pager when displaying status. + False otherwise. + + :returns: The status renderer class to use for displaying the output + """ + renderer = self._layouts.get(layout) + + # Note, need to wrap renderer in try/catch too, or return default val? + if not renderer: + raise ValueError(layout) + + return renderer(disable_theme=disable_theme, disable_pager=disable_pager) + + +status_renderer_factory = MerlinStatusRendererFactory() diff --git a/merlin/study/step.py b/merlin/study/step.py index c5773520a..e6366fbf2 100644 --- a/merlin/study/step.py +++ b/merlin/study/step.py @@ -29,43 +29,258 @@ ############################################################################### """This module represents all of the logic that goes into a step""" +import json import logging +import os import re from contextlib import suppress from copy import deepcopy -from datetime import datetime +from typing import Dict, Optional, Tuple +from celery import current_task +from filelock import FileLock from maestrowf.abstracts.enums import State from maestrowf.datastructures.core.executiongraph import _StepRecord from maestrowf.datastructures.core.study import StudyStep from merlin.common.abstracts.enums import ReturnCode from merlin.study.script_adapter import MerlinScriptAdapter +from merlin.study.status import read_status +from merlin.utils import needs_merlin_expansion LOG = logging.getLogger(__name__) +def get_current_worker(): + """Get the worker on the current running task from celery""" + worker = re.search(r"@.+\.", current_task.request.hostname).group() + worker = worker[1 : len(worker) - 1] + return worker + + +def get_current_queue(): + """Get the queue on the current running task from celery""" + from merlin.config.configfile import CONFIG # pylint: disable=C0415 + + queue = current_task.request.delivery_info["routing_key"] + queue = queue.replace(CONFIG.celery.queue_tag, "") + return queue + + class MerlinStepRecord(_StepRecord): """ - This classs is a wrapper for the Maestro _StepRecord to remove - a re-submit message. + This class is a wrapper for the Maestro _StepRecord to remove + a re-submit message and handle status updates. """ - def __init__(self, workspace, step, **kwargs): - _StepRecord.__init__(self, workspace, step, **kwargs) + def __init__(self, workspace: str, maestro_step: StudyStep, merlin_step: "Step", **kwargs): + """ + :param `workspace`: The output workspace for this step + :param `maestro_step`: The StudyStep object associated with this step + :param `merlin_step`: The Step object associated with this step + """ + _StepRecord.__init__(self, workspace, maestro_step, status=State.INITIALIZED, **kwargs) + self.merlin_step = merlin_step + + @property + def condensed_workspace(self) -> str: + """ + Put together a smaller version of the workspace path to display. + :returns: A condensed workspace name + """ + timestamp_regex = r"\d{8}-\d{6}/" + match = re.search(rf"{self.merlin_step.study_name}_{timestamp_regex}", self.workspace.value) - def mark_submitted(self): - """Mark the submission time of the record.""" - LOG.debug("Marking %s as submitted (PENDING) -- previously %s", self.name, self.status) - self.status = State.PENDING - if not self._submit_time: - self._submit_time = datetime.now() + # If we got a match from the regex (which we should always get) then use it to condense the workspace + if match: + condensed_workspace = self.workspace.value.split(match.group())[1] + # Otherwise manually condense (which could have issues if step names/parameters/study names are equivalent) else: - LOG.debug( - "Merlin: Cannot set the submission time of '%s' because it has already been set.", - self.name, - ) + step_name = self.merlin_step.name_no_params() + end_of_path = self.workspace.value.rsplit(step_name, 1)[1] + condensed_workspace = f"{step_name}{end_of_path}" + + LOG.debug(f"Condense workspace '{condensed_workspace}'") + return condensed_workspace + + def _execute(self, adapter: "ScriptAdapter", script: str) -> Tuple["SubmissionRecord", int]: # noqa: F821 + """ + Overwrites _StepRecord's _execute method from Maestro since self.to_be_scheduled is + always true here. Also, if we didn't overwrite this we wouldn't be able to call + self.mark_running() for status updates. + + :param `adapter`: The script adapter to submit jobs to + :param `script`: The script to send to the script adapter + :returns: A tuple of a return code and the jobid from the execution of `script` + """ + self.mark_running() + + LOG.info(f"Submitting script for {self.name}") + srecord = adapter.submit(self.step, script, self.workspace.value) + + retcode = srecord.submission_code + jobid = srecord.job_identifier + return retcode, jobid + + def mark_running(self): + """Mark the start time of the record and update the status file.""" + LOG.debug(f"Marking running for {self.name}") + super().mark_running() + self._update_status_file() + + def mark_end(self, state: ReturnCode, max_retries: bool = False): + """ + Mark the end time of the record with associated termination state + and update the status file. + + :param `state`: A merlin ReturnCode object representing the end state of a task + :param `max_retries`: A bool representing whether we hit the max number of retries or not + """ + LOG.debug(f"Marking end for {self.name}") + + # Dictionary to keep track of associated variables for each return code + state_mapper = { + ReturnCode.OK: { + "maestro state": State.FINISHED, + "result": "MERLIN_SUCCESS", + }, + ReturnCode.DRY_OK: { + "maestro state": State.DRYRUN, + "result": "MERLIN_DRY_SUCCESS", + }, + ReturnCode.RETRY: { + "maestro state": State.FINISHED, + "result": "MERLIN_RETRY", + }, + ReturnCode.RESTART: { + "maestro state": State.FINISHED, + "result": "MERLIN_RESTART", + }, + ReturnCode.SOFT_FAIL: { + "maestro state": State.FAILED, + "result": "MERLIN_SOFT_FAIL", + }, + ReturnCode.HARD_FAIL: { + "maestro state": State.FAILED, + "result": "MERLIN_HARD_FAIL", + }, + ReturnCode.STOP_WORKERS: { + "maestro state": State.CANCELLED, + "result": "MERLIN_STOP_WORKERS", + }, + "UNKNOWN": { + "maestro state": State.UNKNOWN, + "result": "MERLIN_UNRECOGNIZED", + }, + } + + # Check if the state provided is valid + if state not in state_mapper: + state = "UNKNOWN" + + # Call to super().mark_end() will mark end time and update self.status for us + super().mark_end(state_mapper[state]["maestro state"]) + step_result = state_mapper[state]["result"] + + # Append a "max retries reached" message to the step result if necessary + if state == ReturnCode.SOFT_FAIL and max_retries: + step_result += " (MAX RETRIES REACHED)" + + # Update the status file + self._update_status_file(result=step_result) + + def mark_restart(self): + """Increment the number of restarts we've had for this step and update the status file""" + LOG.debug(f"Marking restart for {self.name}") + if self.restart_limit == 0 or self._num_restarts < self.restart_limit: + self._num_restarts += 1 + self._update_status_file() + + def setup_workspace(self): + """Initialize the record's workspace and status file.""" + LOG.debug(f"Setting up workspace for {self.name}") + super().setup_workspace() + self._update_status_file() + + def _update_status_file( + self, + result: Optional[str] = None, + task_server: Optional[str] = "celery", + ): + """ + Puts together a dictionary full of status info and creates a signature + for the update_status celery task. This signature is ran here as well. + + :param `result`: Optional parameter only applied when we've finished running + this step. String representation of a ReturnCode value. + :param `task_server`: Optional parameter to define the task server we're using. + """ + + # This dict is used for converting an enum value to a string for readability + state_translator: Dict[State, str] = { + State.INITIALIZED: "INITIALIZED", + State.RUNNING: "RUNNING", + State.FINISHED: "FINISHED", + State.CANCELLED: "CANCELLED", + State.DRYRUN: "DRY_RUN", + State.FAILED: "FAILED", + State.UNKNOWN: "UNKNOWN", + } + + LOG.debug(f"Marking status for {self.name} as {state_translator[self.status]}.") + if result: + LOG.debug(f"Result for {self.name} is {result}") + + status_filepath = f"{self.workspace.value}/MERLIN_STATUS.json" + + LOG.debug(f"Status filepath for {self.name}: '{status_filepath}") + + # If the status file already exists then we can just add to it + if os.path.exists(status_filepath): + lock = FileLock(f"{self.workspace.value}/status.lock") # pylint: disable=E0110 + status_info = read_status(status_filepath, lock) + else: + # Create the parameter entries + cmd_params = restart_params = None + if self.merlin_step.params["cmd"]: + cmd_params = dict(self.merlin_step.params["cmd"].items()) + if self.merlin_step.params["restart_cmd"]: + restart_params = dict(self.merlin_step.params["restart_cmd"].items()) + LOG.debug(f"Cmd parameters for {self.name}: {cmd_params}; Restart params: {restart_params}") + + # Inititalize the status_info dict we'll be dumping to the status file + status_info = { + self.name: { + "parameters": { + "cmd": cmd_params, + "restart": restart_params, + } + } + } + + # Add celery specific info + if task_server == "celery": + from merlin.celery import app # pylint: disable=C0415 + + # If the tasks are always eager, this is a local run and we won't have workers running + if not app.conf.task_always_eager: + status_info[self.name]["task_queue"] = get_current_queue() + status_info[self.name]["worker_name"] = get_current_worker() + + # Put together a dict of status info + status_info[self.name][self.condensed_workspace] = { + "status": state_translator[self.status], + "return_code": result, + "elapsed_time": self.elapsed_time, + "run_time": self.run_time, + "restarts": self.restarts, + } + + LOG.info(f"Writing status for {self.name} to '{status_filepath}...") + with open(status_filepath, "w") as status_file: + json.dump(status_info, status_file) + LOG.info(f"Status for {self.name} successfully written.") class Step: @@ -74,12 +289,18 @@ class Step: executed by calling execute. """ - def __init__(self, maestro_step_record): + def __init__(self, maestro_step_record, study_name, parameter_info): """ :param maestro_step_record: The StepRecord object. + :param `study_name`: The name of the study + :param `parameter_info`: A dict containing information about parameters in the study """ self.mstep = maestro_step_record + self.study_name = study_name + self.parameter_info = parameter_info self.__restart = False + self.params = {"cmd": {}, "restart_cmd": {}} + self.establish_params() def get_cmd(self): """ @@ -125,7 +346,7 @@ def clone_changing_workspace_and_cmd(self, new_cmd=None, cmd_replacement_pairs=N study_step.name = step_dict["_name"] study_step.description = step_dict["description"] study_step.run = step_dict["run"] - return Step(MerlinStepRecord(new_workspace, study_step)) + return Step(MerlinStepRecord(new_workspace, study_step, self), self.study_name, self.parameter_info) def get_task_queue(self): """Retrieve the task queue for the Step.""" @@ -179,36 +400,21 @@ def restart(self, val): """ self.__restart = val - def needs_merlin_expansion(self, labels): + def establish_params(self): + """If this step uses parameters, pull them from the step param map.""" + try: + step_params = self.parameter_info["step_param_map"][self.name()] + for cmd_type in step_params: + self.params[cmd_type].update(step_params[cmd_type]) + except KeyError: + pass + + def check_if_expansion_needed(self, labels): """ :return : True if the cmd has any of the default keywords or spec specified sample column labels. """ - needs_expansion = False - - cmd = self.get_cmd() - for label in labels + [ - "MERLIN_SAMPLE_ID", - "MERLIN_SAMPLE_PATH", - "merlin_sample_id", - "merlin_sample_path", - ]: - if f"$({label})" in cmd: - needs_expansion = True - - # The restart may need expansion while the cmd does not. - restart_cmd = self.get_restart_cmd() - if not needs_expansion and restart_cmd: - for label in labels + [ - "MERLIN_SAMPLE_ID", - "MERLIN_SAMPLE_PATH", - "merlin_sample_id", - "merlin_sample_path", - ]: - if f"$({label})" in restart_cmd: - needs_expansion = True - - return needs_expansion + return needs_merlin_expansion(self.get_cmd(), self.get_restart_cmd(), labels) def get_workspace(self): """ @@ -222,6 +428,29 @@ def name(self): """ return self.mstep.step.__dict__["_name"] + def name_no_params(self): + """ + Get the original name of the step without any parameters/samples in the name. + :returns: A string representing the name of the step + """ + # Get the name with everything still in it + name = self.name() + + # Remove the parameter labels from the name + for label in self.parameter_info["labels"]: + name = name.replace(f"{label}", "") + + # Remove possible leftover characters after condensing the name + while name.endswith(".") or name.endswith("_"): + if name.endswith("."): + split_char = "." + else: + split_char = "_" + split_name = name.rsplit(split_char, 1) + name = "".join(split_name) + + return name + def execute(self, adapter_config): """ Execute the step. @@ -255,8 +484,6 @@ def execute(self, adapter_config): self.mstep.setup_workspace() self.mstep.generate_script(adapter) - step_name = self.name() - step_dir = self.get_workspace() # dry run: sets up a workspace without executing any tasks. Each step's # workspace directory is created, and each step's command script is @@ -265,7 +492,6 @@ def execute(self, adapter_config): if adapter_config["dry_run"] is True: return ReturnCode.DRY_OK - LOG.info(f"Executing step '{step_name}' in '{step_dir}'...") # TODO: once maestrowf is updated so that execute returns a # submissionrecord, then we need to return the record.return_code here # at that point, we can drop the use of MerlinScriptAdapter above, and diff --git a/merlin/study/study.py b/merlin/study/study.py index 6e2f4f937..8502ebebb 100644 --- a/merlin/study/study.py +++ b/merlin/study/study.py @@ -55,10 +55,11 @@ LOG = logging.getLogger(__name__) -# TODO: see if there's any way to split this class up (pylint doesn't like how many attributes there are) +# TODO: see if there's any way to split this class up +# (pylint doesn't like how many attributes and public methods there are) # - Might be able to create an object to store files and handle file modifications # - If we don't want to create entirely new classes we could try grouping args into dicts -class MerlinStudy: # pylint: disable=R0902 +class MerlinStudy: # pylint: disable=R0902,R0904 """ Represents a Merlin study run on a specification. Used for 'merlin run'. @@ -544,11 +545,15 @@ def load_dag(self): # Generate the DAG _, maestro_dag = study.stage() - labels = [] + column_labels = [] if self.expanded_spec.merlin["samples"]: - labels = self.expanded_spec.merlin["samples"]["column_labels"] + column_labels = self.expanded_spec.merlin["samples"]["column_labels"] + parameter_info = { + "labels": self.parameter_labels, + "step_param_map": self.expanded_spec.get_step_param_map(), + } # To avoid pickling issues with _pass_detect_cycle from maestro, we unpack the dag here - self.dag = DAG(maestro_dag.adjacency_table, maestro_dag.values, labels) + self.dag = DAG(maestro_dag.adjacency_table, maestro_dag.values, column_labels, study.name, parameter_info) def get_adapter_config(self, override_type=None): """Builds and returns the adapter configuration dictionary""" @@ -572,3 +577,19 @@ def get_adapter_config(self, override_type=None): LOG.debug(f"Adapter config = {adapter_config}") return adapter_config + + @property + def parameter_labels(self): + """ + Get the parameter labels for this study. + :returns: A list of parameter labels used in this study + """ + parameters = self.expanded_spec.get_parameters() + metadata = parameters.get_metadata() + + param_labels = [] + for parameter_info in metadata.values(): + for parameter_label in parameter_info["labels"].values(): + param_labels.append(parameter_label) + + return param_labels diff --git a/merlin/utils.py b/merlin/utils.py index 196e8b29b..78ddd6eae 100644 --- a/merlin/utils.py +++ b/merlin/utils.py @@ -39,14 +39,16 @@ import subprocess from contextlib import contextmanager from copy import deepcopy -from datetime import timedelta +from datetime import datetime, timedelta from types import SimpleNamespace -from typing import Union +from typing import List, Optional, Union import numpy as np import psutil import yaml +from merlin.exceptions import DeepMergeException + try: import cPickle as pickle @@ -288,6 +290,38 @@ def determine_protocol(fname): return protocol +def verify_filepath(filepath: str) -> str: + """ + Verify that the filepath argument is a valid + file. + + :param [str] `filepath`: the path of a file + + :return: the verified absolute filepath with expanded environment variables. + :rtype: str + """ + filepath = os.path.abspath(os.path.expandvars(os.path.expanduser(filepath))) + if not os.path.isfile(filepath): + raise ValueError(f"'{filepath}' is not a valid filepath") + return filepath + + +def verify_dirpath(dirpath: str) -> str: + """ + Verify that the dirpath argument is a valid + directory. + + :param [str] `dirpath`: the path of a directory + + :return: returns the absolute path with expanded environment vars for a given dirpath. + :rtype: str + """ + dirpath: str = os.path.abspath(os.path.expandvars(os.path.expanduser(dirpath))) + if not os.path.isdir(dirpath): + raise ValueError(f"'{dirpath}' is not a valid directory path") + return dirpath + + @contextmanager def cd(path): # pylint: disable=C0103 """ @@ -497,6 +531,59 @@ def contains_shell_ref(string): return False +def needs_merlin_expansion( + cmd: str, restart_cmd: str, labels: List[str], include_sample_keywords: Optional[bool] = True +) -> bool: + """ + Check if the cmd or restart cmd provided have variables that need expansion. + + :param `cmd`: The command inside a study step to check for expansion + :param `restart_cmd`: The restart command inside a study step to check for expansion + :param `labels`: A list of labels to check for inside `cmd` and `restart_cmd` + :return : True if the cmd has any of the default keywords or spec + specified sample column labels. False otherwise. + """ + sample_keywords = ["MERLIN_SAMPLE_ID", "MERLIN_SAMPLE_PATH", "merlin_sample_id", "merlin_sample_path"] + if include_sample_keywords: + labels += sample_keywords + + for label in labels: + if f"$({label})" in cmd: + return True + # The restart may need expansion while the cmd does not. + if restart_cmd and f"$({label})" in restart_cmd: + return True + + # If we got through all the labels and no expansion was needed then these commands don't need expansion + return False + + +def dict_deep_merge(dict_a, dict_b, path=None): + """ + This function recursively merges dict_b into dict_a. The built-in + merge of dictionaries in python (dict(dict_a) | dict(dict_b)) does not do a + deep merge so this function is necessary. This will only merge in new keys, + it will NOT update existing ones. + Credit to this stack overflow post: https://stackoverflow.com/a/7205107. + + :param `dict_a`: A dict that we'll merge dict_b into + :param `dict_b`: A dict that we want to merge into dict_a + :param `path`: The path down the dictionary tree that we're currently at + """ + if path is None: + path = [] + for key in dict_b: + if key in dict_a: + if isinstance(dict_a[key], dict) and isinstance(dict_b[key], dict): + dict_deep_merge(dict_a[key], dict_b[key], path + [str(key)]) + elif dict_a[key] == dict_b[key]: + pass # same leaf value + else: + raise DeepMergeException(f"Conflict at {'.'.join(path + [str(key)])}") + else: + dict_a[key] = dict_b[key] + + def find_vlaunch_var(vlaunch_var: str, step_cmd: str, accept_no_matches=False) -> str: """ Given a variable used for VLAUNCHER and the step cmd value, find @@ -580,3 +667,53 @@ def convert_timestring(timestring: Union[str, int], format_method: str = "HMS") tdelta = convert_to_timedelta(timestring) LOG.debug(f"Timedelta object is: {tdelta}") return repr_timedelta(tdelta, method=format_method) + + +def pretty_format_hms(timestring: str) -> str: + """ + Given an HMS timestring, format it so it removes blank entries and adds + labels. + + :param `timestring`: the HMS timestring we'll format + :returns: a formatted timestring + + Examples: + - "00:00:34:00" -> "34m" + - "01:00:00:25" -> "01d:25s" + - "00:19:44:28" -> "19h:44m:28s" + """ + # Create labels and split the timestring + labels = ["d", "h", "m", "s"] + parsed_ts = timestring.split(":") + if len(parsed_ts) > 4: + raise ValueError("The timestring to label must be in the format DD:HH:MM:SS") + + # Label each integer with its corresponding unit + labeled_time_list = [] + for i in range(1, len(parsed_ts) + 1): + if parsed_ts[-i] != "00": + labeled_time_list.append(parsed_ts[-i] + labels[-i]) + + # Join the labeled time list into a string. + if len(labeled_time_list) == 0: + labeled_time_list.append("00s") + labeled_time_list.reverse() + labeled_time_string = ":".join(labeled_time_list) + + return labeled_time_string + + +def ws_time_to_dt(ws_time: str) -> datetime: + """ + Converts a workspace timestring to a datetime object. + + :param `ws_time`: A workspace timestring in the format YYYYMMDD-HHMMSS + :returns: A datetime object created from the workspace timestring + """ + year = int(ws_time[:4]) + month = int(ws_time[4:6]) + day = int(ws_time[6:8]) + hour = int(ws_time[9:11]) + minute = int(ws_time[11:13]) + second = int(ws_time[13:]) + return datetime(year, month, day, hour=hour, minute=minute, second=second) diff --git a/mkdocs.yml b/mkdocs.yml index 5843f9d0a..dab8ab114 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,7 +3,7 @@ site_name: Merlin nav: - Merlin: "index.md" - Tutorial: - - Overview: "tutorial/index.md" + - Tutorial Overview: "tutorial/index.md" - 0. Prerequisites: "tutorial/0_prerequisites.md" - 1. Introduction: "tutorial/1_introduction.md" - 2. Installation: "tutorial/2_installation.md" @@ -13,22 +13,27 @@ nav: - 6. Contribute to Merlin: "tutorial/6_contribute.md" - 7. Port Your Own Application: "tutorial/7_port_application.md" - User Guide: - - Overview: "user_guide/index.md" + - User Guide Overview: "user_guide/index.md" - Installation: "user_guide/installation.md" - Configuration: - - Overview: "user_guide/configuration/index.md" + - Configuration Overview: "user_guide/configuration/index.md" - External Server: "user_guide/configuration/external_server.md" - Merlin Server: "user_guide/configuration/merlin_server.md" - Command Line Interface: "user_guide/command_line.md" - Specification: "user_guide/specification.md" - Variables: "user_guide/variables.md" - Running Studies: "user_guide/running_studies.md" - - Interpreting Output: "user_guide/interpreting_output.md" + - Interpreting Study Output: "user_guide/interpreting_output.md" + - Monitoring Studies: + - Monitoring Overview: "user_guide/monitoring/index.md" + - The Status Commands: "user_guide/monitoring/status_cmds.md" + - Querying Queues and Workers: "user_guide/monitoring/queues_and_workers.md" + - Monitoring Studies For Persistent Allocations: "user_guide/monitoring/monitor_for_allocation.md" - Celery: "user_guide/celery.md" - Docker: "user_guide/docker.md" - Contributing: "user_guide/contributing.md" - Examples: - - Overview: "examples/index.md" + - Examples Overview: "examples/index.md" - Hello World Examples: "examples/hello.md" - Feature Demo: "examples/feature_demo.md" - Iterative Demo: "examples/iterative.md" diff --git a/tests/celery_test_workers.py b/tests/celery_test_workers.py index 39eb2a39b..f97690e79 100644 --- a/tests/celery_test_workers.py +++ b/tests/celery_test_workers.py @@ -77,8 +77,11 @@ def __exit__(self, exc_type: Type[Exception], exc_value: Exception, traceback: T # Check that all the echo processes were stopped, otherwise forcefully terminate them ps_proc = subprocess.run("ps ux", shell=True, capture_output=True, text=True) for pid in self.echo_processes.values(): - if str(pid) in ps_proc.stdout: - os.kill(pid, signal.SIGKILL) + try: + if str(pid) in ps_proc.stdout: + os.kill(pid, signal.SIGKILL) + except ProcessLookupError as exc: + raise ProcessLookupError(f"PID {pid} not found. Output of 'ps ux':\n{ps_proc.stdout}") from exc def _is_worker_ready(self, worker_name: str, verbose: bool = False) -> bool: """ diff --git a/tests/integration/run_tests.py b/tests/integration/run_tests.py index fcdb9e0b2..ace508b19 100644 --- a/tests/integration/run_tests.py +++ b/tests/integration/run_tests.py @@ -39,7 +39,8 @@ from contextlib import suppress from subprocess import TimeoutExpired, run -from merlin.display import tabulate_info +from tabulate import tabulate + from tests.integration.definitions import OUTPUT_DIR, define_tests # pylint: disable=E0401 @@ -318,7 +319,7 @@ def display_tests(tests): test_table = [(i + 1, test_names[i]) for i in range(len(test_names))] test_table.insert(0, ("ID", "Test Name")) print() - tabulate_info(test_table, headers="firstrow") + print(tabulate(test_table, headers="firstrow")) print() diff --git a/tests/unit/study/__init__.py b/tests/unit/study/__init__.py new file mode 100644 index 000000000..05c5d0bbf --- /dev/null +++ b/tests/unit/study/__init__.py @@ -0,0 +1,29 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.2. +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### diff --git a/tests/unit/study/status_test_files/combine_status_files.py b/tests/unit/study/status_test_files/combine_status_files.py new file mode 100644 index 000000000..2795da2ab --- /dev/null +++ b/tests/unit/study/status_test_files/combine_status_files.py @@ -0,0 +1,113 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.2. +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +""" +Script to combine all status files from a study into one + +Usage: python combine_status_files.py .json [-d] +""" +import argparse +import json +import logging +import os +import sys + +from merlin.utils import dict_deep_merge, verify_dirpath, verify_filepath + + +LOG = logging.getLogger(__name__) + + +def combine_status_files(workspace, outfile, delete): + """ + Traverse the workspace looking for status files and condense their contents + into one outfile. + + :param `workspace`: The workspace to search for status files in + :param `outfile`: The output file that we're dumping statuses to + :param `delete`: If true, delete status files found in workspace after reading their contents + """ + condensed_statuses = {} + + # Traverse the step workspace and look for MERLIN_STATUS files + for root, _, files in os.walk(workspace): + # We only care about this level of the workspace if there's a MERLIN_STATUS file + if "MERLIN_STATUS.json" in files: + # Read in the status + status_filepath = f"{root}/MERLIN_STATUS.json" + with open(status_filepath, "r") as status_file: + status = json.load(status_file) + + # Merge the status with the other statuses (and delete the status file if necessary) + dict_deep_merge(condensed_statuses, status) + if delete: + os.remove(status_filepath) + + # Dump all of the statuses to the outfile + with open(outfile, "w") as condensed_status_file: + json.dump(condensed_statuses, condensed_status_file) + + +def main(): + """ + Build the argparse object, verify the arguments provided by the user, and then + call combine_status_files + """ + # Create argument parser and parse the args + parser = argparse.ArgumentParser(prog="combine-statuses", description="Combine the status files from a workspace") + parser.add_argument("workspace", action="store", help="the workspace containing status files") + parser.add_argument("outfile", action="store", help="a json filepath to dump the statuses to") + parser.add_argument( + "-d", "--delete", dest="delete", action="store_true", help="delete the status files after reading their information" + ) + args = parser.parse_args() + + # Verify workspace value provided and get absolute path + try: + workspace = verify_dirpath(args.workspace) + except ValueError: + LOG.error(f"The directory path {args.workspace} does not exist.") + sys.exit() + + # Verify outfile path + if not args.outfile.endswith(".json"): + LOG.error("The outfile must be json.") + sys.exit() + try: + outfile = verify_filepath(args.outfile) + except ValueError: + LOG.error(f"The file path {args.outfile} does not exist.") + sys.exit() + + # Combine the status files + combine_status_files(workspace, outfile, args.delete) + + +if __name__ == "__main__": + main() diff --git a/tests/unit/study/status_test_files/shared_tests.py b/tests/unit/study/status_test_files/shared_tests.py new file mode 100644 index 000000000..27fb31521 --- /dev/null +++ b/tests/unit/study/status_test_files/shared_tests.py @@ -0,0 +1,307 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.2. +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +""" +This module contains all shared tests needed for testing both +the Status object and the DetailedStatus object. +""" +import csv +import json +import os +from io import StringIO +from time import sleep +from typing import Dict, List, Tuple, Union +from unittest.mock import patch + +from deepdiff import DeepDiff +from tabulate import tabulate + +from merlin.display import ANSI_COLORS +from merlin.study.status import DetailedStatus, Status +from tests.unit.study.status_test_files import status_test_variables + + +def assert_correct_attribute_creation(status_obj: Union[Status, DetailedStatus]): + """ + Ensure that attributes of the Status/DetailedStatus class are initiated correctly. + This covers the get_steps_to_display, _create_step_tracker, spec.get_tasks_per_step, + get_requested_statuses, get_step_statuses, and num_requested_statuses methods. + + :param `status_obj`: The Status or DetailedStatus object that we're testing + """ + # Ensuring step_tracker was created properly + step_tracker_diff = DeepDiff(status_obj.step_tracker, status_test_variables.FULL_STEP_TRACKER, ignore_order=True) + assert step_tracker_diff == {} + + # Ensuring tasks_per_step was created properly + tasks_per_step_diff = DeepDiff(status_obj.tasks_per_step, status_test_variables.TASKS_PER_STEP, ignore_order=True) + assert tasks_per_step_diff == {} + + # Ensuring requested_statuses was created properly + requested_statuses_diff = DeepDiff( + status_obj.requested_statuses, status_test_variables.ALL_REQUESTED_STATUSES, ignore_order=True + ) + assert requested_statuses_diff == {} + + # Ensuring run time info was calculated correctly + run_time_info_diff = DeepDiff(status_obj.run_time_info, status_test_variables.RUN_TIME_INFO, ignore_order=True) + assert run_time_info_diff == {} + + # Ensuring num_requested_statuses is getting the correct amount of statuses + assert status_obj.num_requested_statuses == status_test_variables.NUM_ALL_REQUESTED_STATUSES + + +def run_study_selector_prompt_valid_input(status_obj: Union[Status, DetailedStatus]): + """ + This is testing the prompt that's displayed when multiple study output + directories are found. We use a patch context manager to send the value "2" to the input + when prompted. We'll also capture the output that's sent to stdout using StringIO + and a patch context manager. The stdout will have a table like so be displayed: + Index Study Name + ------- --------------------------------- + 1 status_test_study_20230713-000000 + 2 status_test_study_20230717-162921 + and since we're sending the value "2" to input, the result from this should be the + absolute path to the status_test_study_20230717-162921 directory. + + :prompt `status_obj`: The Status or DetailedStatus object that we're running this test for + """ + # If we don't switch this to False then the prompt will never be displayed + status_obj.args.no_prompts = False + + # When we call the _obtain_study_method, which will prompt the user to select a study, + # the input message will be captured in mock_input + with patch("builtins.input", side_effect=["2"]) as mock_input: + # Setup variables for our captured_output and the messages we expect to see in the output + captured_output = StringIO() + potential_studies = [(1, status_test_variables.DUMMY_WORKSPACE), (2, status_test_variables.VALID_WORKSPACE)] + tabulated_info = tabulate(potential_studies, headers=["Index", "Study Name"]) + studies_found_msg = f"Found 2 potential studies:\n{tabulated_info}" + prompt_msg = "Which study would you like to view the status of? Use the index on the left: " + + # When we call the _obtain_study method, which will prompt the user to select a study, + # the stdout will be captured in captured_output + with patch("sys.stdout", new=captured_output): + result = status_obj._obtain_study(status_test_variables.PATH_TO_TEST_FILES, 2, potential_studies) + + # We first check that the studies found message was in the captured output of the _obtain_study call + assert studies_found_msg in captured_output.getvalue() + # We then check that the input prompt was given one time with the provided prompt + mock_input.assert_called_once_with(prompt_msg) + # Finally, we check that the _obtain_study method returned the correct workspace + assert result == status_test_variables.VALID_WORKSPACE_PATH + + +def run_study_selector_prompt_invalid_input(status_obj: Union[Status, DetailedStatus]): + """ + This test is very similar to the run_study_selector_prompt_valid_input test above but here + we're testing for invalid inputs before a valid input is given. Invalid inputs for this test + are any inputs that are not the integers 1 or 2. We'll use a patch context manager to send all + of our invalid inputs in until the last one which will be valid (in order to get the function + to return). + + :prompt `status_obj`: The Status or DetailedStatus object that we're running this test for + """ + # If we don't switch this to False then the prompt will never be displayed + status_obj.args.no_prompts = False + + with patch("builtins.input", side_effect=["0", "-1", "3", "a", "1.5", "2"]) as mock_input: + # Setup variables for our captured_output and the messages we expect to see in the output + captured_output = StringIO() + potential_studies = [(1, status_test_variables.DUMMY_WORKSPACE), (2, status_test_variables.VALID_WORKSPACE)] + tabulated_info = tabulate(potential_studies, headers=["Index", "Study Name"]) + studies_found_msg = f"Found 2 potential studies:\n{tabulated_info}" + invalid_msg = f"{ANSI_COLORS['RED']}Input must be an integer between 1 and 2.{ANSI_COLORS['RESET']}" + invalid_prompt_msg = "Enter a different index: " + + # When we call the _obtain_study method, which will prompt the user to select a study, + # the stdout will be captured in captured_output + with patch("sys.stdout", new=captured_output): + result = status_obj._obtain_study(status_test_variables.PATH_TO_TEST_FILES, 2, potential_studies) + + # We first check that the studies found message was in the captured output of the _obtain_study call + captured_output_value = captured_output.getvalue() + assert studies_found_msg in captured_output_value + + # We then check that the input was called with the invalid prompt + mock_input.assert_called_with(invalid_prompt_msg) + + # There should be 5 instances of the invalid input message here (from '0', '-1', '3', 'a', '1.5') + count = 0 + while invalid_msg in captured_output_value: + count += 1 + captured_output_value = captured_output_value.replace(invalid_msg, "", 1) + assert count == 5 + + # Finally, we check that the _obtain_study method returned the correct workspace + assert result == status_test_variables.VALID_WORKSPACE_PATH + + +def run_json_dump_test(status_obj: Union[Status, DetailedStatus], expected_output: Dict): + """ + Test the json dump functionality. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. This covers the dump method. + + :param `status_obj`: A Status or DetailedStatus object that we're testing the dump functionality for + :param `expected_output`: The expected output from the dump that we'll compare against + """ + try: + # Test write dump functionality for json + status_obj.dump() + with open(status_obj.args.dump, "r") as json_df: + json_df_contents = json.load(json_df) + # There should only be one entry in the json dump file so this will only 'loop' once + for dump_entry in json_df_contents.values(): + json_dump_diff = DeepDiff(dump_entry, expected_output) + assert json_dump_diff == {} + + # Test append dump functionality for json + # If we don't sleep for 1 second here the program will run too fast and the timestamp for the append dump will be the same + # as the timestamp for the write dump, which causes the write dump entry to be overridden + sleep(1) + # Here, the file already exists from the previous test so it will automatically append to the file + status_obj.dump() + with open(status_obj.args.dump, "r") as json_df: + json_df_append_contents = json.load(json_df) + # There should be two entries here now, both with the same statuses just different timestamps + assert len(json_df_append_contents) == 2 + for dump_entry in json_df_append_contents.values(): + json_append_dump_diff = DeepDiff(dump_entry, expected_output) + assert json_append_dump_diff == {} + # Make sure we always remove the test file that's created from this dump + finally: + try: + os.remove(status_obj.args.dump) + except FileNotFoundError: + pass + + +def _format_csv_data(csv_dump_data: csv.DictReader) -> Dict[str, List[str]]: + """ + Helper function for testing the csv dump functionality to format csv data read in + from the dump file. + + :param `csv_dump_data`: The DictReader object that has the csv data from the dump file + :returns: A formatted dict where keys are fieldnames of the csv file and values are the columns for each field + """ + # Create a formatted dict to store the csv data in csv_dump_data + csv_dump_output = {field_name: [] for field_name in csv_dump_data.fieldnames} + for row in csv_dump_data: + for key, val in row.items(): + # TODO when we add entries for restarts we'll need to change this + if key == "restarts": + csv_dump_output[key].append(int(val)) + else: + csv_dump_output[key].append(val) + return csv_dump_output + + +def build_row_list(csv_formatted_dict: Dict[str, List[Union[str, int]]]) -> List[Tuple]: + """ + Given a dict where each key/val pair represents column label/column values, create a + list of rows. For example: + input: {"a": [1, 2, 3], "b": [4, 5, 6]} + output: [("a", "b"), (1, 4), (2, 5), (3, 6)] + + :param `csv_formatted_dict`: The dict of csv columns that we're converting to a list of rows + :returns: A list of rows created from the `csv_formatted_dict` + """ + column_labels = tuple(csv_formatted_dict.keys()) + row_list = list(zip(*csv_formatted_dict.values())) + row_list.insert(0, column_labels) + return row_list + + +def run_csv_dump_test(status_obj: Union[Status, DetailedStatus], expected_output: List[Tuple]): + """ + Test the csv dump functionality. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. This covers the format_status_for_csv + and dump methods. + + :param `status_obj`: A Status or DetailedStatus object that we're testing the dump functionality for + :param `expected_output`: The expected output from the dump that we'll compare against + """ + try: + # Test write dump functionality for csv + status_obj.dump() + with open(status_obj.args.dump, "r") as csv_df: + csv_dump_data = csv.DictReader(csv_df) + # Make sure a timestamp field was created + assert "time_of_status" in csv_dump_data.fieldnames + + # Format the csv data that we just read in and create a set of timestamps + csv_dump_output = _format_csv_data(csv_dump_data) + timestamps = set(csv_dump_output["time_of_status"]) + + # We don't care if the timestamp matches, we only care that there should be exactly one timestamp here + del csv_dump_output["time_of_status"] + assert len(timestamps) == 1 + + # Check for differences (should be none) + csv_dump_output = build_row_list(csv_dump_output) + csv_dump_diff = DeepDiff(csv_dump_output, expected_output, ignore_order=True) + assert csv_dump_diff == {} + + # Test append dump functionality for csv + # If we don't sleep for 1 second here the program will run too fast and the timestamp for the append dump will be the same + # as the timestamp for the write dump, which makes it impossible to differentiate between different dump calls + sleep(1) + # Here, the file already exists from the previous test so it will automatically append to the file + status_obj.dump() + with open(status_obj.args.dump, "r") as csv_df: + csv_append_dump_data = csv.DictReader(csv_df) + # Make sure a timestamp field still exists + assert "time_of_status" in csv_append_dump_data.fieldnames + + # Format the csv data that we just read in and create a set of timestamps + csv_append_dump_output = _format_csv_data(csv_append_dump_data) + timestamps = set(csv_append_dump_output["time_of_status"]) + + # We don't care if the timestamp matches, we only care that there should be exactly two timestamps here now + del csv_append_dump_output["time_of_status"] + assert len(timestamps) == 2 + + # Since there are now two dumps, we need to double up the expected output too (except for the keys) + expected_keys = expected_output[0] + expected_output.remove(expected_keys) + expected_output.extend(expected_output) + expected_output.insert(0, expected_keys) + + # Check for differences (should be none) + csv_append_dump_output = build_row_list(csv_append_dump_output) + csv_append_dump_diff = DeepDiff(csv_append_dump_output, expected_output, ignore_order=True, report_repetition=True) + assert csv_append_dump_diff == {} + # Make sure we always remove the test file that's created from this dump + finally: + try: + os.remove(status_obj.args.dump) + except FileNotFoundError: + pass diff --git a/tests/unit/study/status_test_files/status_test_spec.yaml b/tests/unit/study/status_test_files/status_test_spec.yaml new file mode 100644 index 000000000..df502f1e4 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_spec.yaml @@ -0,0 +1,79 @@ +description: + name: status_test_study + description: a spec file to test the status command + +env: + variables: + N_SAMPLES: 5 + OUTPUT_PATH: . + +global.parameters: + GREET: + values : ["hello", "hola"] + label : GREET.%% + LEAVE: + values: ["goodbye", "adios"] + label: LEAVE.%% + +study: + - name: just_samples + description: no parameters, just samples + run: + cmd: | + echo "$(NUM). $(WORLD)!" + task_queue: just_samples_queue + + - name: just_parameters + description: no samples, just parameters + run: + cmd: | + echo "$(GREET)!" + restart: echo "$(LEAVE)." + task_queue: just_parameters_queue + + - name: params_and_samples + description: both parameters and samples + run: + cmd: | + echo "$(GREET), $(WORLD)!" + task_queue: both_queue + depends: [just_samples_*, just_parameters_*] + + - name: fail_step + description: purposefully fail a step + run: + cmd: | + exit $(MERLIN_SOFT_FAIL) + depends: [params_and_samples_*] + task_queue: fail_queue + + - name: cancel_step + description: purposefully cancel the study + run: + cmd: | + exit $(MERLIN_STOP_WORKERS) + depends: [fail_step] + task_queue: cancel_queue + + - name: unstarted_step + description: purposefully don't run this step + run: + cmd: | + echo "nobody wants to start me :(" + depends: [cancel_step] + task_queue: unstarted_queue + +merlin: + resources: + workers: + sample_worker: + args: -l INFO -Ofair --concurrency 36 --prefetch-multiplier 1 + steps: [just_samples, params_and_samples] + other_worker: + args: -l INFO -Ofair --concurrency 1 --prefetch-multiplier 1 + steps: [just_parameters, fail_step, cancel_step, unstarted_step] + samples: + generate: + cmd: python3 $(SPECROOT)/make_samples.py --filepath=$(MERLIN_INFO)/samples.csv --number=$(N_SAMPLES) + file: $(MERLIN_INFO)/samples.csv + column_labels: [WORLD, NUM] diff --git a/tests/unit/study/status_test_files/status_test_study_20230713-000000/dummy.txt b/tests/unit/study/status_test_files/status_test_study_20230713-000000/dummy.txt new file mode 100644 index 000000000..8f773e5c9 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230713-000000/dummy.txt @@ -0,0 +1 @@ +this is a dummy test folder to see if the status command can realize multiple study output directories \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/cancel_step/MERLIN_STATUS.json b/tests/unit/study/status_test_files/status_test_study_20230717-162921/cancel_step/MERLIN_STATUS.json new file mode 100644 index 000000000..8b5ddd35d --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/cancel_step/MERLIN_STATUS.json @@ -0,0 +1,17 @@ +{ + "cancel_step": { + "parameters": { + "cmd": null, + "restart": null + }, + "task_queue": "cancel_queue", + "worker_name": "other_worker", + "cancel_step": { + "status": "CANCELLED", + "return_code": "MERLIN_STOP_WORKERS", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0 + } + } +} \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/cancel_step/status.lock b/tests/unit/study/status_test_files/status_test_study_20230717-162921/cancel_step/status.lock new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/fail_step/MERLIN_STATUS.json b/tests/unit/study/status_test_files/status_test_study_20230717-162921/fail_step/MERLIN_STATUS.json new file mode 100644 index 000000000..6e076a26e --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/fail_step/MERLIN_STATUS.json @@ -0,0 +1,17 @@ +{ + "fail_step": { + "parameters": { + "cmd": null, + "restart": null + }, + "task_queue": "fail_queue", + "worker_name": "other_worker", + "fail_step": { + "status": "FAILED", + "return_code": "MERLIN_SOFT_FAIL", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0 + } + } +} \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/fail_step/status.lock b/tests/unit/study/status_test_files/status_test_study_20230717-162921/fail_step/status.lock new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hello.LEAVE.goodbye/MERLIN_STATUS.json b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hello.LEAVE.goodbye/MERLIN_STATUS.json new file mode 100644 index 000000000..406c090b7 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hello.LEAVE.goodbye/MERLIN_STATUS.json @@ -0,0 +1,21 @@ +{ + "just_parameters_GREET.hello.LEAVE.goodbye": { + "parameters": { + "cmd": { + "GREET": "hello" + }, + "restart": { + "LEAVE": "goodbye" + } + }, + "task_queue": "just_parameters_queue", + "worker_name": "other_worker", + "just_parameters/GREET.hello.LEAVE.goodbye": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:30s", + "restarts": 0 + } + } +} \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hello.LEAVE.goodbye/status.lock b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hello.LEAVE.goodbye/status.lock new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hola.LEAVE.adios/MERLIN_STATUS.json b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hola.LEAVE.adios/MERLIN_STATUS.json new file mode 100644 index 000000000..bf783d98f --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hola.LEAVE.adios/MERLIN_STATUS.json @@ -0,0 +1,21 @@ +{ + "just_parameters_GREET.hola.LEAVE.adios": { + "parameters": { + "cmd": { + "GREET": "hola" + }, + "restart": { + "LEAVE": "adios" + } + }, + "task_queue": "just_parameters_queue", + "worker_name": "other_worker", + "just_parameters/GREET.hola.LEAVE.adios": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:01m:00s", + "run_time": "0d:00h:01m:00s", + "restarts": 0 + } + } +} \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hola.LEAVE.adios/status.lock b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_parameters/GREET.hola.LEAVE.adios/status.lock new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_samples/MERLIN_STATUS.json b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_samples/MERLIN_STATUS.json new file mode 100644 index 000000000..d7df3d153 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_samples/MERLIN_STATUS.json @@ -0,0 +1,45 @@ +{ + "just_samples": { + "parameters": { + "cmd": null, + "restart": null + }, + "task_queue": "just_samples_queue", + "worker_name": "sample_worker", + "just_samples/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:00s", + "restarts": 0 + }, + "just_samples/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:15s", + "restarts": 0 + }, + "just_samples/02": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:30s", + "restarts": 0 + }, + "just_samples/03": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:45s", + "restarts": 0 + }, + "just_samples/04": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:02m:00s", + "restarts": 0 + } + } +} \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_samples/status.lock b/tests/unit/study/status_test_files/status_test_study_20230717-162921/just_samples/status.lock new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/samples.csv b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/samples.csv new file mode 100644 index 000000000..566031673 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/samples.csv @@ -0,0 +1,5 @@ +KELLY,0 +KIMBERY,1 +TAMESHA,2 +TASHA,3 +VIRGIE,4 \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.expanded.yaml b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.expanded.yaml new file mode 100644 index 000000000..7f2c7a3e0 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.expanded.yaml @@ -0,0 +1,112 @@ +batch: + dry_run: false + shell: /bin/bash + type: local +description: + description: a spec file to test the status command + name: status_test_study +env: + dependencies: null + labels: null + sources: null + variables: + N_SAMPLES: 5 + OUTPUT_PATH: . +global.parameters: + GREET: + label: GREET.%% + values: + - hello + - hola + LEAVE: + label: LEAVE.%% + values: + - goodbye + - adios +merlin: + resources: + overlap: false + task_server: celery + workers: + other_worker: + args: -l INFO -Ofair --concurrency 1 --prefetch-multiplier 1 + batch: null + nodes: null + steps: + - just_parameters + - fail_step + - cancel_step + - unstarted_step + sample_worker: + args: -l INFO -Ofair --concurrency 36 --prefetch-multiplier 1 + batch: null + nodes: null + steps: + - just_samples + - params_and_samples + samples: + column_labels: + - WORLD + - NUM + file: the test setup will modify this value + generate: + cmd: python3 make_samples.py --filepath= --number=5 + level_max_dirs: 25 +study: +- description: no parameters, just samples + name: just_samples + run: + cmd: echo "$(NUM). $(WORLD)!" + max_retries: 30 + shell: /bin/bash + task_queue: just_samples_queue +- description: no samples, just parameters + name: just_parameters + run: + cmd: echo "$(GREET)!" + max_retries: 30 + restart: echo "$(LEAVE)." + shell: /bin/bash + task_queue: just_parameters_queue +- description: both parameters and samples + name: params_and_samples + run: + cmd: echo "$(GREET), $(WORLD)!" + depends: + - just_samples_* + - just_parameters_* + max_retries: 30 + shell: /bin/bash + task_queue: both_queue +- description: purposefully fail a step + name: fail_step + run: + cmd: exit 101 + depends: + - params_and_samples_* + max_retries: 30 + shell: /bin/bash + task_queue: fail_queue +- description: purposefully cancel the study + name: cancel_step + run: + cmd: 'exit $(MERLIN_STOP_WORKERS) + + sleep 70 + + ' + depends: + - fail_step + max_retries: 30 + shell: /bin/bash + task_queue: cancel_queue +- description: purposefully don't run this step + name: unstarted_step + run: + cmd: echo "nobody wants to start me :(" + depends: + - cancel_step + max_retries: 30 + shell: /bin/bash + task_queue: unstarted_queue +user: null diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.orig.yaml b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.orig.yaml new file mode 100644 index 000000000..d3f0a3b56 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.orig.yaml @@ -0,0 +1,80 @@ +description: + name: status_test_study + description: a spec file to test the status command + +env: + variables: + N_SAMPLES: 5 + OUTPUT_PATH: . + +global.parameters: + GREET: + values : ["hello", "hola"] + label : GREET.%% + LEAVE: + values: ["goodbye", "adios"] + label: LEAVE.%% + +study: + - name: just_samples + description: no parameters, just samples + run: + cmd: | + echo "$(NUM). $(WORLD)!" + task_queue: just_samples_queue + + - name: just_parameters + description: no samples, just parameters + run: + cmd: | + echo "$(GREET)!" + restart: echo "$(LEAVE)." + task_queue: just_parameters_queue + + - name: params_and_samples + description: both parameters and samples + run: + cmd: | + echo "$(GREET), $(WORLD)!" + task_queue: both_queue + depends: [just_samples_*, just_parameters_*] + + - name: fail_step + description: purposefully fail a step + run: + cmd: | + exit $(MERLIN_SOFT_FAIL) + depends: [params_and_samples_*] + task_queue: fail_queue + + - name: cancel_step + description: purposefully cancel the study + run: + cmd: | + exit $(MERLIN_STOP_WORKERS) + sleep 70 + depends: [fail_step] + task_queue: cancel_queue + + - name: unstarted_step + description: purposefully don't run this step + run: + cmd: | + echo "nobody wants to start me :(" + depends: [cancel_step] + task_queue: unstarted_queue + +merlin: + resources: + workers: + sample_worker: + args: -l INFO -Ofair --concurrency 36 --prefetch-multiplier 1 + steps: [just_samples, params_and_samples] + other_worker: + args: -l INFO -Ofair --concurrency 1 --prefetch-multiplier 1 + steps: [just_parameters, fail_step, cancel_step, unstarted_step] + samples: + generate: + cmd: python3 make_samples.py --filepath=$(MERLIN_INFO)/samples.csv --number=$(N_SAMPLES) + file: $(MERLIN_INFO)/samples.csv + column_labels: [WORLD, NUM] diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.partial.yaml b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.partial.yaml new file mode 100644 index 000000000..61f8aee16 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/merlin_info/status_test_spec.partial.yaml @@ -0,0 +1,118 @@ +description: + name: status_test_study + description: a spec file to test the status command + +batch: + type: local + dry_run: false + shell: /bin/bash + +env: + variables: + N_SAMPLES: 5 + OUTPUT_PATH: . + + sources: + + labels: + + dependencies: + +study: + - name: just_samples + description: no parameters, just samples + run: + cmd: echo "$(NUM). $(WORLD)!" + + task_queue: just_samples_queue + shell: /bin/bash + max_retries: 30 + + - name: just_parameters + description: no samples, just parameters + run: + cmd: echo "$(GREET)!" + + restart: echo "$(LEAVE)." + task_queue: just_parameters_queue + shell: /bin/bash + max_retries: 30 + + - name: params_and_samples + description: both parameters and samples + run: + cmd: echo "$(GREET), $(WORLD)!" + + task_queue: both_queue + depends: [just_samples_*, just_parameters_*] + shell: /bin/bash + max_retries: 30 + + - name: fail_step + description: purposefully fail a step + run: + cmd: exit $(MERLIN_SOFT_FAIL) + + depends: [params_and_samples_*] + task_queue: fail_queue + shell: /bin/bash + max_retries: 30 + + - name: cancel_step + description: purposefully cancel the study + run: + cmd: | + exit $(MERLIN_STOP_WORKERS) + sleep 70 + depends: [fail_step] + task_queue: cancel_queue + shell: /bin/bash + max_retries: 30 + + - name: unstarted_step + description: purposefully don't run this step + run: + cmd: echo "nobody wants to start me :(" + + depends: [cancel_step] + task_queue: unstarted_queue + shell: /bin/bash + max_retries: 30 + +global.parameters: + GREET: + values: [hello, hola] + label: GREET.%% + + LEAVE: + values: [goodbye, adios] + label: LEAVE.%% + +merlin: + resources: + workers: + sample_worker: + args: -l INFO -Ofair --concurrency 36 --prefetch-multiplier 1 + steps: [just_samples, params_and_samples] + nodes: + batch: + + other_worker: + args: -l INFO -Ofair --concurrency 1 --prefetch-multiplier 1 + steps: [just_parameters, fail_step, cancel_step, unstarted_step] + nodes: + batch: + + task_server: celery + overlap: false + + samples: + generate: + cmd: python3 make_samples.py --filepath=$(MERLIN_INFO)/samples.csv --number=$(N_SAMPLES) + + file: $(MERLIN_INFO)/samples.csv + column_labels: [WORLD, NUM] + level_max_dirs: 25 + +user: + diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hello/MERLIN_STATUS.json b/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hello/MERLIN_STATUS.json new file mode 100644 index 000000000..364248c43 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hello/MERLIN_STATUS.json @@ -0,0 +1,47 @@ +{ + "params_and_samples_GREET.hello": { + "parameters": { + "cmd": { + "GREET": "hello" + }, + "restart": null + }, + "task_queue": "both_queue", + "worker_name": "sample_worker", + "params_and_samples/GREET.hello/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:10s", + "restarts": 0 + }, + "params_and_samples/GREET.hello/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:11s", + "restarts": 0 + }, + "params_and_samples/GREET.hello/02": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:12s", + "restarts": 0 + }, + "params_and_samples/GREET.hello/03": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:13s", + "restarts": 0 + }, + "params_and_samples/GREET.hello/04": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:14s", + "restarts": 0 + } + } +} \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hello/status.lock b/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hello/status.lock new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hola/MERLIN_STATUS.json b/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hola/MERLIN_STATUS.json new file mode 100644 index 000000000..b256e65f5 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hola/MERLIN_STATUS.json @@ -0,0 +1,47 @@ +{ + "params_and_samples_GREET.hola": { + "parameters": { + "cmd": { + "GREET": "hola" + }, + "restart": null + }, + "task_queue": "both_queue", + "worker_name": "sample_worker", + "params_and_samples/GREET.hola/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:10s", + "restarts": 0 + }, + "params_and_samples/GREET.hola/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:18s", + "restarts": 0 + }, + "params_and_samples/GREET.hola/02": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:23s", + "restarts": 0 + }, + "params_and_samples/GREET.hola/03": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:29s", + "restarts": 0 + }, + "params_and_samples/GREET.hola/04": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:16s", + "restarts": 0 + } + } +} \ No newline at end of file diff --git a/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hola/status.lock b/tests/unit/study/status_test_files/status_test_study_20230717-162921/params_and_samples/GREET.hola/status.lock new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/study/status_test_files/status_test_variables.py b/tests/unit/study/status_test_files/status_test_variables.py new file mode 100644 index 000000000..45621a3b5 --- /dev/null +++ b/tests/unit/study/status_test_files/status_test_variables.py @@ -0,0 +1,620 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.2. +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +"""This module holds variables that will be used to test against output from calls to status methods""" +import os + + +# Global path variables for files we'll need during these status tests +PATH_TO_TEST_FILES = f"{os.path.dirname(__file__)}" +SPEC_PATH = f"{PATH_TO_TEST_FILES}/status_test_spec.yaml" +VALID_WORKSPACE = "status_test_study_20230717-162921" +DUMMY_WORKSPACE = "status_test_study_20230713-000000" +VALID_WORKSPACE_PATH = f"{PATH_TO_TEST_FILES}/{VALID_WORKSPACE}" +DUMMY_WORKSPACE_PATH = f"{PATH_TO_TEST_FILES}/{DUMMY_WORKSPACE}" +MERLIN_INFO_PATH = f"{VALID_WORKSPACE_PATH}/merlin_info" +EXPANDED_SPEC_PATH = f"{MERLIN_INFO_PATH}/status_test_spec.expanded.yaml" +SAMPLES_PATH = f"{MERLIN_INFO_PATH}/samples.csv" + +# These globals are variables that will be tested against to ensure correct output +FULL_STEP_TRACKER = { + "started_steps": ["just_samples", "just_parameters", "params_and_samples", "fail_step", "cancel_step"], + "unstarted_steps": ["unstarted_step"], +} +TASKS_PER_STEP = { + "just_samples": 5, + "just_parameters": 2, + "params_and_samples": 10, + "fail_step": 1, + "cancel_step": 1, + "unstarted_step": 1, +} +NUM_ALL_REQUESTED_STATUSES = sum(TASKS_PER_STEP.values()) - TASKS_PER_STEP["unstarted_step"] + +# This is the requested statuses with just the failed step +REQUESTED_STATUSES_JUST_FAILED_STEP = { + "fail_step": { + "parameters": {"cmd": None, "restart": None}, + "task_queue": "fail_queue", + "worker_name": "other_worker", + "fail_step": { + "status": "FAILED", + "return_code": "MERLIN_SOFT_FAIL", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0, + }, + } +} + +# This is the requested statuses with just the cancelled step +REQUESTED_STATUSES_JUST_CANCELLED_STEP = { + "cancel_step": { + "parameters": {"cmd": None, "restart": None}, + "task_queue": "cancel_queue", + "worker_name": "other_worker", + "cancel_step": { + "status": "CANCELLED", + "return_code": "MERLIN_STOP_WORKERS", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0, + }, + } +} + +# This is the requested statuses with both the failed step and the cancelled step +REQUESTED_STATUSES_FAIL_AND_CANCEL = { + "fail_step": { + "parameters": {"cmd": None, "restart": None}, + "task_queue": "fail_queue", + "worker_name": "other_worker", + "fail_step": { + "status": "FAILED", + "return_code": "MERLIN_SOFT_FAIL", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0, + }, + }, + "cancel_step": { + "parameters": {"cmd": None, "restart": None}, + "task_queue": "cancel_queue", + "worker_name": "other_worker", + "cancel_step": { + "status": "CANCELLED", + "return_code": "MERLIN_STOP_WORKERS", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0, + }, + }, +} + +FORMATTED_STATUSES_FAIL_AND_CANCEL = { + "step_name": ["fail_step", "cancel_step"], + "step_workspace": ["fail_step", "cancel_step"], + "status": ["FAILED", "CANCELLED"], + "return_code": ["MERLIN_SOFT_FAIL", "MERLIN_STOP_WORKERS"], + "elapsed_time": ["0d:00h:00m:00s", "0d:00h:00m:00s"], + "run_time": ["0d:00h:00m:00s", "0d:00h:00m:00s"], + "restarts": [0, 0], + "cmd_parameters": ["-------", "-------"], + "restart_parameters": ["-------", "-------"], + "task_queue": ["fail_queue", "cancel_queue"], + "worker_name": ["other_worker", "other_worker"], +} + +# This variable holds the state_info dict of every step from VALID_WORKSPACE +# i.e. the format returned by the display() method when run in test_mode +DISPLAY_INFO = { + "just_samples": { + "FINISHED": {"count": 5, "color": "\033[38;2;0;158;115m", "fill": "█"}, + "CANCELLED": {"count": 0, "color": "\033[38;2;240;228;66m", "fill": "/"}, + "FAILED": {"count": 0, "color": "\033[38;2;213;94;0m", "fill": "⣿"}, + "UNKNOWN": {"count": 0, "color": "\033[38;2;102;102;102m", "fill": "?"}, + "INITIALIZED": {"count": 0, "color": "\033[38;2;86;180;233m"}, + "RUNNING": {"count": 0, "color": "\033[38;2;0;114;178m"}, + "DRY RUN": {"count": 0, "color": "\033[38;2;230;159;0m", "fill": "\\"}, + "TOTAL TASKS": {"total": 5}, + "WORKER NAME": {"name": "sample_worker"}, + "TASK QUEUE": {"name": "just_samples_queue"}, + "AVG RUN TIME": "01m:30s", + "RUN TIME STD DEV": "±21s", + }, + "just_parameters": { + "FINISHED": {"count": 2, "color": "\033[38;2;0;158;115m", "fill": "█"}, + "CANCELLED": {"count": 0, "color": "\033[38;2;240;228;66m", "fill": "/"}, + "FAILED": {"count": 0, "color": "\033[38;2;213;94;0m", "fill": "⣿"}, + "UNKNOWN": {"count": 0, "color": "\033[38;2;102;102;102m", "fill": "?"}, + "INITIALIZED": {"count": 0, "color": "\033[38;2;86;180;233m"}, + "RUNNING": {"count": 0, "color": "\033[38;2;0;114;178m"}, + "DRY RUN": {"count": 0, "color": "\033[38;2;230;159;0m", "fill": "\\"}, + "TOTAL TASKS": {"total": 2}, + "WORKER NAME": {"name": "other_worker"}, + "TASK QUEUE": {"name": "just_parameters_queue"}, + "AVG RUN TIME": "01m:15s", + "RUN TIME STD DEV": "±15s", + }, + "params_and_samples": { + "FINISHED": {"count": 10, "color": "\033[38;2;0;158;115m", "fill": "█"}, + "CANCELLED": {"count": 0, "color": "\033[38;2;240;228;66m", "fill": "/"}, + "FAILED": {"count": 0, "color": "\033[38;2;213;94;0m", "fill": "⣿"}, + "UNKNOWN": {"count": 0, "color": "\033[38;2;102;102;102m", "fill": "?"}, + "INITIALIZED": {"count": 0, "color": "\033[38;2;86;180;233m"}, + "RUNNING": {"count": 0, "color": "\033[38;2;0;114;178m"}, + "DRY RUN": {"count": 0, "color": "\033[38;2;230;159;0m", "fill": "\\"}, + "TOTAL TASKS": {"total": 10}, + "WORKER NAME": {"name": "sample_worker"}, + "TASK QUEUE": {"name": "both_queue"}, + "AVG RUN TIME": "16s", + "RUN TIME STD DEV": "±06s", + }, + "fail_step": { + "FINISHED": {"count": 0, "color": "\033[38;2;0;158;115m", "fill": "█"}, + "CANCELLED": {"count": 0, "color": "\033[38;2;240;228;66m", "fill": "/"}, + "FAILED": {"count": 1, "color": "\033[38;2;213;94;0m", "fill": "⣿"}, + "UNKNOWN": {"count": 0, "color": "\033[38;2;102;102;102m", "fill": "?"}, + "INITIALIZED": {"count": 0, "color": "\033[38;2;86;180;233m"}, + "RUNNING": {"count": 0, "color": "\033[38;2;0;114;178m"}, + "DRY RUN": {"count": 0, "color": "\033[38;2;230;159;0m", "fill": "\\"}, + "TOTAL TASKS": {"total": 1}, + "WORKER NAME": {"name": "other_worker"}, + "TASK QUEUE": {"name": "fail_queue"}, + "AVG RUN TIME": "00s", + "RUN TIME STD DEV": "±00s", + }, + "cancel_step": { + "FINISHED": {"count": 0, "color": "\033[38;2;0;158;115m", "fill": "█"}, + "CANCELLED": {"count": 1, "color": "\033[38;2;240;228;66m", "fill": "/"}, + "FAILED": {"count": 0, "color": "\033[38;2;213;94;0m", "fill": "⣿"}, + "UNKNOWN": {"count": 0, "color": "\033[38;2;102;102;102m", "fill": "?"}, + "INITIALIZED": {"count": 0, "color": "\033[38;2;86;180;233m"}, + "RUNNING": {"count": 0, "color": "\033[38;2;0;114;178m"}, + "DRY RUN": {"count": 0, "color": "\033[38;2;230;159;0m", "fill": "\\"}, + "TOTAL TASKS": {"total": 1}, + "WORKER NAME": {"name": "other_worker"}, + "TASK QUEUE": {"name": "cancel_queue"}, + "AVG RUN TIME": "00s", + "RUN TIME STD DEV": "±00s", + }, + "unstarted_step": "UNSTARTED", +} + +RUN_TIME_INFO = { + "just_parameters": { + "avg_run_time": "01m:15s", + "run_time_std_dev": "±15s", + }, + "just_samples": { + "avg_run_time": "01m:30s", + "run_time_std_dev": "±21s", + }, + "params_and_samples": { + "avg_run_time": "16s", + "run_time_std_dev": "±06s", + }, + "fail_step": { + "avg_run_time": "00s", + "run_time_std_dev": "±00s", + }, + "cancel_step": { + "avg_run_time": "00s", + "run_time_std_dev": "±00s", + }, +} + +# This variable holds every status from the VALID_WORKSPACE in the format used when we first load them in +# i.e. the format loaded in by load_requested_statuses() +ALL_REQUESTED_STATUSES = { + "just_parameters_GREET.hello.LEAVE.goodbye": { + "parameters": {"cmd": {"GREET": "hello"}, "restart": {"LEAVE": "goodbye"}}, + "task_queue": "just_parameters_queue", + "worker_name": "other_worker", + "just_parameters/GREET.hello.LEAVE.goodbye": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:30s", + "restarts": 0, + }, + }, + "just_parameters_GREET.hola.LEAVE.adios": { + "parameters": {"cmd": {"GREET": "hola"}, "restart": {"LEAVE": "adios"}}, + "task_queue": "just_parameters_queue", + "worker_name": "other_worker", + "just_parameters/GREET.hola.LEAVE.adios": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:01m:00s", + "run_time": "0d:00h:01m:00s", + "restarts": 0, + }, + }, + "just_samples": { + "parameters": {"cmd": None, "restart": None}, + "task_queue": "just_samples_queue", + "worker_name": "sample_worker", + "just_samples/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:00s", + "restarts": 0, + }, + "just_samples/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:15s", + "restarts": 0, + }, + "just_samples/02": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:30s", + "restarts": 0, + }, + "just_samples/03": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:01m:45s", + "restarts": 0, + }, + "just_samples/04": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:02m:00s", + "run_time": "0d:00h:02m:00s", + "restarts": 0, + }, + }, + "params_and_samples_GREET.hello": { + "parameters": {"cmd": {"GREET": "hello"}, "restart": None}, + "task_queue": "both_queue", + "worker_name": "sample_worker", + "params_and_samples/GREET.hello/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:10s", + "restarts": 0, + }, + "params_and_samples/GREET.hello/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:11s", + "restarts": 0, + }, + "params_and_samples/GREET.hello/02": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:12s", + "restarts": 0, + }, + "params_and_samples/GREET.hello/03": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:13s", + "restarts": 0, + }, + "params_and_samples/GREET.hello/04": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:15s", + "run_time": "0d:00h:00m:14s", + "restarts": 0, + }, + }, + "params_and_samples_GREET.hola": { + "parameters": {"cmd": {"GREET": "hola"}, "restart": None}, + "task_queue": "both_queue", + "worker_name": "sample_worker", + "params_and_samples/GREET.hola/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:10s", + "restarts": 0, + }, + "params_and_samples/GREET.hola/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:18s", + "restarts": 0, + }, + "params_and_samples/GREET.hola/02": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:23s", + "restarts": 0, + }, + "params_and_samples/GREET.hola/03": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:29s", + "restarts": 0, + }, + "params_and_samples/GREET.hola/04": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:00h:00m:30s", + "run_time": "0d:00h:00m:16s", + "restarts": 0, + }, + }, + "fail_step": { + "parameters": {"cmd": None, "restart": None}, + "task_queue": "fail_queue", + "worker_name": "other_worker", + "fail_step": { + "status": "FAILED", + "return_code": "MERLIN_SOFT_FAIL", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0, + }, + }, + "cancel_step": { + "parameters": {"cmd": None, "restart": None}, + "task_queue": "cancel_queue", + "worker_name": "other_worker", + "cancel_step": { + "status": "CANCELLED", + "return_code": "MERLIN_STOP_WORKERS", + "elapsed_time": "0d:00h:00m:00s", + "run_time": "0d:00h:00m:00s", + "restarts": 0, + }, + }, +} + +# This variable holds every status from the VALID_WORKSPACE in the format used for displaying/dumping statuses +# i.e. the format returned by format_status_for_csv() +ALL_FORMATTED_STATUSES = { + "step_name": [ + "just_parameters_GREET.hello.LEAVE.goodbye", + "just_parameters_GREET.hola.LEAVE.adios", + "just_samples", + "just_samples", + "just_samples", + "just_samples", + "just_samples", + "params_and_samples_GREET.hello", + "params_and_samples_GREET.hello", + "params_and_samples_GREET.hello", + "params_and_samples_GREET.hello", + "params_and_samples_GREET.hello", + "params_and_samples_GREET.hola", + "params_and_samples_GREET.hola", + "params_and_samples_GREET.hola", + "params_and_samples_GREET.hola", + "params_and_samples_GREET.hola", + "fail_step", + "cancel_step", + ], + "step_workspace": [ + "just_parameters/GREET.hello.LEAVE.goodbye", + "just_parameters/GREET.hola.LEAVE.adios", + "just_samples/00", + "just_samples/01", + "just_samples/02", + "just_samples/03", + "just_samples/04", + "params_and_samples/GREET.hello/00", + "params_and_samples/GREET.hello/01", + "params_and_samples/GREET.hello/02", + "params_and_samples/GREET.hello/03", + "params_and_samples/GREET.hello/04", + "params_and_samples/GREET.hola/00", + "params_and_samples/GREET.hola/01", + "params_and_samples/GREET.hola/02", + "params_and_samples/GREET.hola/03", + "params_and_samples/GREET.hola/04", + "fail_step", + "cancel_step", + ], + "status": [ + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FINISHED", + "FAILED", + "CANCELLED", + ], + "return_code": [ + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SUCCESS", + "MERLIN_SOFT_FAIL", + "MERLIN_STOP_WORKERS", + ], + "elapsed_time": [ + "0d:00h:02m:00s", + "0d:00h:01m:00s", + "0d:00h:02m:00s", + "0d:00h:02m:00s", + "0d:00h:02m:00s", + "0d:00h:02m:00s", + "0d:00h:02m:00s", + "0d:00h:00m:15s", + "0d:00h:00m:15s", + "0d:00h:00m:15s", + "0d:00h:00m:15s", + "0d:00h:00m:15s", + "0d:00h:00m:30s", + "0d:00h:00m:30s", + "0d:00h:00m:30s", + "0d:00h:00m:30s", + "0d:00h:00m:30s", + "0d:00h:00m:00s", + "0d:00h:00m:00s", + ], + "run_time": [ + "0d:00h:01m:30s", + "0d:00h:01m:00s", + "0d:00h:01m:00s", + "0d:00h:01m:15s", + "0d:00h:01m:30s", + "0d:00h:01m:45s", + "0d:00h:02m:00s", + "0d:00h:00m:10s", + "0d:00h:00m:11s", + "0d:00h:00m:12s", + "0d:00h:00m:13s", + "0d:00h:00m:14s", + "0d:00h:00m:10s", + "0d:00h:00m:18s", + "0d:00h:00m:23s", + "0d:00h:00m:29s", + "0d:00h:00m:16s", + "0d:00h:00m:00s", + "0d:00h:00m:00s", + ], + "restarts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "cmd_parameters": [ + "GREET:hello", + "GREET:hola", + "-------", + "-------", + "-------", + "-------", + "-------", + "GREET:hello", + "GREET:hello", + "GREET:hello", + "GREET:hello", + "GREET:hello", + "GREET:hola", + "GREET:hola", + "GREET:hola", + "GREET:hola", + "GREET:hola", + "-------", + "-------", + ], + "restart_parameters": [ + "LEAVE:goodbye", + "LEAVE:adios", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + "-------", + ], + "task_queue": [ + "just_parameters_queue", + "just_parameters_queue", + "just_samples_queue", + "just_samples_queue", + "just_samples_queue", + "just_samples_queue", + "just_samples_queue", + "both_queue", + "both_queue", + "both_queue", + "both_queue", + "both_queue", + "both_queue", + "both_queue", + "both_queue", + "both_queue", + "both_queue", + "fail_queue", + "cancel_queue", + ], + "worker_name": [ + "other_worker", + "other_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "sample_worker", + "other_worker", + "other_worker", + ], +} diff --git a/tests/unit/study/test_celeryadapter.py b/tests/unit/study/test_celeryadapter.py index 67728881e..2cc16de6d 100644 --- a/tests/unit/study/test_celeryadapter.py +++ b/tests/unit/study/test_celeryadapter.py @@ -30,15 +30,23 @@ """ Tests for the celeryadapter module. """ +import csv +import json +import os +from datetime import datetime from time import sleep from typing import Dict import pytest from celery import Celery from celery.canvas import Signature +from deepdiff import DeepDiff from merlin.config import Config +from merlin.spec.specification import MerlinSpec from merlin.study import celeryadapter +from tests.unit.study.status_test_files.shared_tests import _format_csv_data +from tests.unit.study.status_test_files.status_test_variables import SPEC_PATH @pytest.mark.order(before="TestInactive") @@ -131,6 +139,19 @@ def test_get_active_celery_queues( assert queue_result == {} assert worker_result == [] + def test_build_set_of_queues( + self, celery_app: Celery, launch_workers: "Fixture", worker_queue_map: Dict[str, str] # noqa: F821 + ): + """ + Test the build_set_of_queues function with queues active. + This should return a set of queues (the queues defined in setUp). + """ + # Run the test + result = celeryadapter.build_set_of_queues( + steps=["all"], spec=None, specific_queues=None, verbose=False, app=celery_app + ) + assert result == set(worker_queue_map.values()) + @pytest.mark.order(index=1) def test_check_celery_workers_processing_tasks( self, @@ -250,7 +271,251 @@ def test_check_celery_workers_processing_tasks(self, celery_app: Celery, worker_ this should return False. :param celery_app: A pytest fixture for the test Celery app + :param worker_queue_map: A pytest fixture that returns a dict of workers and queues """ # Run the test now that the task should be getting processed result = celeryadapter.check_celery_workers_processing(list(worker_queue_map.values()), celery_app) assert result is False + + def test_build_set_of_queues(self, celery_app: Celery): + """ + Test the build_set_of_queues function with no queues active. + This should return an empty set. + + :param celery_app: A pytest fixture for the test Celery app + """ + result = celeryadapter.build_set_of_queues( + steps=["all"], spec=None, specific_queues=None, verbose=False, app=celery_app + ) + assert result == set() + + def test_build_set_of_queues_with_spec(self, celery_app: Celery): + """ + Test the build_set_of_queues function with a spec provided as input. + This should return a set of the queues defined in the spec file. + + :param celery_app: A pytest fixture for the test Celery app + """ + # Create the spec object that we'll pass to build_set_of_queues + spec = MerlinSpec.load_specification(SPEC_PATH) + + # Run the test + result = celeryadapter.build_set_of_queues( + steps=["all"], spec=spec, specific_queues=None, verbose=False, app=celery_app + ) + + # Build the expected output list + merlin_tag = "[merlin]_" + expected_output = [ + "just_samples_queue", + "just_parameters_queue", + "both_queue", + "fail_queue", + "cancel_queue", + "unstarted_queue", + ] + for i, output in enumerate(expected_output): + expected_output[i] = f"{merlin_tag}{output}" + + assert result == set(expected_output) + + def test_build_set_of_queues_with_specific_queues(self, celery_app: Celery): + """ + Test the build_set_of_queues function with specific queues provided as input. + This should return a set of all the queues listed in the specific_queues argument. + + :param celery_app: A pytest fixture for the test Celery app + """ + # Build the list of specific queues to search for + specific_queues = ["test_queue_1", "test_queue_2"] + + # Run the test + result = celeryadapter.build_set_of_queues( + steps=["all"], spec=None, specific_queues=specific_queues, verbose=False, app=celery_app + ) + + assert result == set(specific_queues) + + def test_build_set_of_queues_with_specific_queues_and_spec(self, celery_app: Celery): + """ + Test the build_set_of_queues function with specific queues and a yaml spec provided as input. + The specific queues provided here will have a mix of queues that exist in the spec and + queues that do not exist in the spec. This should only return the queues that exist in the + spec. + + :param celery_app: A pytest fixture for the test Celery app + """ + # Create the spec object that we'll pass to build_set_of_queues + spec = MerlinSpec.load_specification(SPEC_PATH) + + # Build the list of queues to search for + valid_queues = ["cancel_queue", "fail_queue", "both_queue"] + invalid_queues = ["not_a_real_queue", "this_one_is_also_invalid"] + + # Run the test + result = celeryadapter.build_set_of_queues( + steps=["all"], spec=spec, specific_queues=valid_queues + invalid_queues, verbose=False, app=celery_app + ) + + # Build the expected output list + expected_output = [f"[merlin]_{queue}" for queue in valid_queues] + + assert result == set(expected_output) + + def test_build_set_of_queues_with_steps_and_spec(self, celery_app: Celery): + """ + Test the build_set_of_queues function with steps and a yaml spec provided as input. + This should return the queues associated with the steps that we provide. + + :param celery_app: A pytest fixture for the test Celery app + """ + # Create the spec object that we'll pass to build_set_of_queues + spec = MerlinSpec.load_specification(SPEC_PATH) + + # Build the list of steps to get queues from + steps = ["cancel_step", "fail_step"] + + # Run the test + result = celeryadapter.build_set_of_queues(steps=steps, spec=spec, specific_queues=None, verbose=False, app=celery_app) + + # Build the expected output list + merlin_tag = "[merlin]_" + expected_output = ["cancel_queue", "fail_queue"] + for i, output in enumerate(expected_output): + expected_output[i] = f"{merlin_tag}{output}" + + assert result == set(expected_output) + + def test_build_csv_queue_info(self, worker_queue_map: Dict[str, str]): + """ + Test the build_csv_queue_info function by providing it with a fake query return + and timestamp. This should return a formatted dict that will look like so: + {'time': [], 'queue1_name:tasks': [0], 'queue1_name:consumers': [1]} + + :param worker_queue_map: A pytest fixture that returns a dict of workers and queues + """ + # Get a timestamp to be used in the test + date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # Initialize the expected output (we'll build the rest in the for loop below) + expected_output = {"time": [date]} + + # Build the fake query return and the expected output + query_return = {} + for queue in worker_queue_map.values(): + query_return[queue] = {"consumers": 1, "jobs": 0} + expected_output[f"{queue}:tasks"] = ["0"] + expected_output[f"{queue}:consumers"] = ["1"] + + # Run the test + result = celeryadapter.build_csv_queue_info(query_return, date) + assert result == expected_output + + def test_build_json_queue_info(self, worker_queue_map: Dict[str, str]): + """ + Test the build_json_queue_info function by providing it with a fake query return + and timestamp. This should return a dictionary of the form: + {: {"queue1_name": {"tasks": 0, "consumers": 1}}} + + :param worker_queue_map: A pytest fixture that returns a dict of workers and queues + """ + # Get a timestamp to be used in the test + date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # Initialize the expected output + expected_output = {date: {}} + + # Build the fake query return and the expected output + query_return = {} + for queue in worker_queue_map.values(): + query_return[queue] = {"consumers": 1, "jobs": 0} + expected_output[date][queue] = {"tasks": 0, "consumers": 1} + + # Run the test + result = celeryadapter.build_json_queue_info(query_return, date) + assert result == expected_output + + def test_dump_celery_queue_info_csv(self, worker_queue_map: Dict[str, str]): + """ + Test the dump_celery_queue_info function which is essentially a wrapper for the + build_json_queue_info and build_csv_queue_info functions. This test will + create a csv file with queue info data. + + :param worker_queue_map: A pytest fixture that returns a dict of workers and queues + """ + # Initialize an output filepath and expected output dict + outfile = f"{os.path.dirname(__file__)}/queue-info.csv" + expected_output = {} + + # Build the fake query return + query_return = {} + for queue in worker_queue_map.values(): + query_return[queue] = {"consumers": 1, "jobs": 0} + expected_output[f"{queue}:tasks"] = ["0"] + expected_output[f"{queue}:consumers"] = ["1"] + + # Run the test + celeryadapter.dump_celery_queue_info(query_return, outfile) + + # Ensure the file was created + assert os.path.exists(outfile) + + try: + with open(outfile, "r") as csv_df: + csv_dump_data = csv.DictReader(csv_df) + + # Make sure a timestamp field was created + assert "time" in csv_dump_data.fieldnames + + # Format the csv data that we just read in + csv_dump_output = _format_csv_data(csv_dump_data) + + # We did one dump so we should only have 1 timestamp; we don't care about the value + assert len(csv_dump_output["time"]) == 1 + del csv_dump_output["time"] + + # Make sure the rest of the csv file was created as expected + dump_diff = DeepDiff(csv_dump_output, expected_output) + assert dump_diff == {} + finally: + try: + os.remove(outfile) + except FileNotFoundError: + pass + + def test_dump_celery_queue_info_json(self, worker_queue_map: Dict[str, str]): + """ + Test the dump_celery_queue_info function which is essentially a wrapper for the + build_json_queue_info and build_csv_queue_info functions. This test will + create a json file with queue info data. + + :param worker_queue_map: A pytest fixture that returns a dict of workers and queues + """ + # Initialize an output filepath and expected output dict + outfile = f"{os.path.dirname(__file__)}/queue-info.json" + expected_output = {} + + # Build the fake query return + query_return = {} + for queue in worker_queue_map.values(): + query_return[queue] = {"consumers": 1, "jobs": 0} + expected_output[queue] = {"tasks": 0, "consumers": 1} + + # Run the test + celeryadapter.dump_celery_queue_info(query_return, outfile) + + # Ensure the file was created + assert os.path.exists(outfile) + + try: + with open(outfile, "r") as json_df: + json_df_contents = json.load(json_df) + # There should only be one entry in the json dump file so this will only 'loop' once + for dump_entry in json_df_contents.values(): + json_dump_diff = DeepDiff(dump_entry, expected_output) + assert json_dump_diff == {} + finally: + try: + os.remove(outfile) + except FileNotFoundError: + pass diff --git a/tests/unit/study/test_detailed_status.py b/tests/unit/study/test_detailed_status.py new file mode 100644 index 000000000..1d90bac40 --- /dev/null +++ b/tests/unit/study/test_detailed_status.py @@ -0,0 +1,1288 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.11.0. +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +""" +Tests for the DetailedStatus class in the status.py module +""" +import re +import unittest +from argparse import Namespace +from copy import deepcopy +from io import StringIO +from typing import Dict, List +from unittest.mock import MagicMock, call, patch + +import yaml +from deepdiff import DeepDiff + +from merlin.spec.expansion import get_spec_with_expansion +from merlin.study.status import DetailedStatus +from tests.unit.study.status_test_files import shared_tests, status_test_variables + + +class TestBaseDetailedStatus(unittest.TestCase): + """ + Base class for all detailed status tests to provide the setup configuration. + """ + + @classmethod + def setUpClass(cls): + """ + We need to modify the path to the samples file in the expanded spec for these tests. + This will only happen once when these tests are initialized. + """ + # Read in the contents of the expanded spec + with open(status_test_variables.EXPANDED_SPEC_PATH, "r") as expanded_file: + cls.initial_expanded_contents = yaml.load(expanded_file, yaml.Loader) + + # Create a copy of the contents so we can reset the file when these tests are done + modified_contents = deepcopy(cls.initial_expanded_contents) + + # Modify the samples file path + modified_contents["merlin"]["samples"]["file"] = status_test_variables.SAMPLES_PATH + + # Write the new contents to the expanded spec + with open(status_test_variables.EXPANDED_SPEC_PATH, "w") as expanded_file: + yaml.dump(modified_contents, expanded_file) + + @classmethod + def tearDownClass(cls): + """ + When these tests are done we'll reset the contents of the expanded spec path + to their initial states. + """ + with open(status_test_variables.EXPANDED_SPEC_PATH, "w") as expanded_file: + yaml.dump(cls.initial_expanded_contents, expanded_file) + + def setUp(self): + """ + We'll create an argparse namespace here that can be modified on a + test-by-test basis. + """ + # We'll set all of the args needed to create the DetailedStatus object here and then + # just modify them on a test-by-test basis + self.args = Namespace( + subparsers="detailed-status", + level="INFO", + detailed=True, + output_path=None, + task_server="celery", + dump=None, + no_prompts=True, # We'll set this to True here since it's easier to test this way (in most cases) + max_tasks=None, + return_code=None, + steps=["all"], + task_queues=None, + task_status=None, + workers=None, + disable_pager=True, # We'll set this to True here since it's easier to test this way + disable_theme=False, + layout="default", + ) + + # Create the DetailedStatus object without adding any arguments + # We'll modify the arguments on a test-by-test basis + self.detailed_status_obj = DetailedStatus( + args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH + ) + + +class TestSetup(TestBaseDetailedStatus): + """ + This tests the setup of the DetailedStatus class. + """ + + def test_workspace_setup(self): + """ + Test the setup of the DetailedStatus class using a workspace as input. This should have the same + behavior as setting up the Status class but will hold additional args. Here the DetailedStatus + instance is created in setUp but since it doesn't use any filters, we can just make sure all + of the attributes were initiated correctly. + """ + # Ensure the attributes shared with the Status class that are created upon initialization are correct + shared_tests.assert_correct_attribute_creation(self.detailed_status_obj) + + # The steps arg is expanded from ["all"] to a list of every step name upon class creation + self.assertEqual( + self.detailed_status_obj.args.steps, + ["just_samples", "just_parameters", "params_and_samples", "fail_step", "cancel_step", "unstarted_step"], + ) + + # We didn't give the steps filter arg so this should be False + self.assertEqual(self.detailed_status_obj.steps_filter_provided, False) + + def test_spec_setup(self): + """ + Test the setup of the DetailedStatus class using a spec file as input. This should have the same + behavior as setting up the Status class but will hold additional args. + """ + # We have to reset this to be all since it will have already been expanded due to the setUp method from + # the base class + self.args.steps = ["all"] + + # We need to load in the MerlinSpec object and save it to the args we'll give to DetailedStatus + self.args.specification = status_test_variables.SPEC_PATH + self.args.spec_provided = get_spec_with_expansion(self.args.specification) + + # Create the new object using a specification rather than a workspace + detailed_status_obj = DetailedStatus(args=self.args, spec_display=True, file_or_ws=status_test_variables.SPEC_PATH) + + # Ensure the attributes shared with the Status class that are created upon initialization are correct + shared_tests.assert_correct_attribute_creation(detailed_status_obj) + + # The steps arg is expanded from ["all"] to a list of every step name upon class creation + self.assertEqual( + detailed_status_obj.args.steps, + ["just_samples", "just_parameters", "params_and_samples", "fail_step", "cancel_step", "unstarted_step"], + ) + + # We didn't give the steps filter arg so this should be False + self.assertEqual(detailed_status_obj.steps_filter_provided, False) + + +class TestDumpFunctionality(TestBaseDetailedStatus): + """ + This class will test the dump functionality for dumping detailed-status + to csv and json files. It will run the same test as we run for the Status + command and it will also run dump tests with some filters applied. + """ + + def test_json_dump(self): + """ + Test the json dump functionality. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. + + This will test a json dump using the detailed-status command without applying + any filters. + """ + # Set the dump file + json_dump_file = f"{status_test_variables.PATH_TO_TEST_FILES}/detailed_dump_test.json" + self.detailed_status_obj.args.dump = json_dump_file + + # Run the json dump test + shared_tests.run_json_dump_test(self.detailed_status_obj, status_test_variables.ALL_REQUESTED_STATUSES) + + def test_csv_dump(self): + """ + Test the csv dump functionality. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. + + This will test a csv dump using the detailed-status command without applying + any filters. + """ + # Set the dump file + csv_dump_file = f"{status_test_variables.PATH_TO_TEST_FILES}/detailed_dump_test.csv" + self.detailed_status_obj.args.dump = csv_dump_file + + # Run the csv dump test + expected_output = shared_tests.build_row_list(status_test_variables.ALL_FORMATTED_STATUSES) + shared_tests.run_csv_dump_test(self.detailed_status_obj, expected_output) + + def test_json_dump_with_filters(self): + """ + Test the json dump functionality while using filters. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. + """ + # Set filters for failed and cancelled tasks, and then reload the requested_statuses + self.detailed_status_obj.args.task_status = ["FAILED", "CANCELLED"] + self.detailed_status_obj.load_requested_statuses() + + # Set the dump file + json_dump_file = f"{status_test_variables.PATH_TO_TEST_FILES}/detailed_dump_test.json" + self.detailed_status_obj.args.dump = json_dump_file + + # Run the json dump test (we should only get failed and cancelled statuses) + shared_tests.run_json_dump_test(self.detailed_status_obj, status_test_variables.REQUESTED_STATUSES_FAIL_AND_CANCEL) + + def test_csv_dump_with_filters(self): + """ + Test the csv dump functionality while using filters. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. + """ + # Set filters for failed and cancelled tasks, and then reload the requested_statuses + self.detailed_status_obj.args.task_status = ["FAILED", "CANCELLED"] + self.detailed_status_obj.load_requested_statuses() + + # Set the dump file + csv_dump_file = f"{status_test_variables.PATH_TO_TEST_FILES}/detailed_dump_test.csv" + self.detailed_status_obj.args.dump = csv_dump_file + + # Run the csv dump test (we should only get failed and cancelled statuses) + expected_output = shared_tests.build_row_list(status_test_variables.FORMATTED_STATUSES_FAIL_AND_CANCEL) + shared_tests.run_csv_dump_test(self.detailed_status_obj, expected_output) + + +class TestPromptFunctionality(TestBaseDetailedStatus): + """ + This class is strictly for testing that all prompt functionality that's + possible through the DetailedStatus class is running correctly. + + The types of prompts are: + - prompts for selecting a study to view the status of (similar to Status class) + - prompts for filtering statuses further when using the disable-pager option + + This class will test 5 methods: + - _obtain_study (similar to Status class) + - display and, by association, filter_via_prompts + - get_user_filters + - get_user_max_tasks + """ + + ############################################### + # Testing _obtain_study() + ############################################### + + def test_prompt_for_study_with_valid_input(self): + """ + This is testing the prompt that's displayed when multiple study output + directories are found. This tests the _obtain_study method with valid input. + """ + # We need to load in the MerlinSpec object and save it to the args we'll give to DetailedStatus + self.args.specification = status_test_variables.SPEC_PATH + self.args.spec_provided = get_spec_with_expansion(self.args.specification) + + # We're going to load in a status object without prompts first and then use that to call the method + # that prompts the user for input + status_obj = DetailedStatus(args=self.args, spec_display=True, file_or_ws=status_test_variables.SPEC_PATH) + shared_tests.run_study_selector_prompt_valid_input(status_obj) + + def test_prompt_for_study_with_invalid_input(self): + """ + This is testing the prompt that's displayed when multiple study output + directories are found. This tests the _obtain_study method with invalid inputs. + """ + # We need to load in the MerlinSpec object and save it to the args we'll give to DetailedStatus + self.args.specification = status_test_variables.SPEC_PATH + self.args.spec_provided = get_spec_with_expansion(self.args.specification) + + # We're going to load in a status object without prompts first and then use that to call the method + # that prompts the user for input + status_obj = DetailedStatus(args=self.args, spec_display=True, file_or_ws=status_test_variables.SPEC_PATH) + shared_tests.run_study_selector_prompt_invalid_input(status_obj) + + ############################################### + # Testing get_user_filters() + ############################################### + + def run_get_user_filters_test(self, inputs_to_test: List[str], expected_outputs: List[List[str]]): + """ + This will pass every input in `inputs_to_test` to the get_user_filters + method. All inputs in `inputs_to_test` should be valid inputs to the + prompt displayed in the get_user_filters method. After passing inputs in, + we will capture the result of running that method and compare it against + the expected outputs from `expected_outputs`. + + :param `inputs_to_test`: A list of valid inputs to give to the prompt displayed in get_user_filters + :param `expected_outputs`: A list of expected outputs corresponding to the inputs provided in + `inputs_to_test`. Each expected output should be a list + """ + # Ensure the number of inputs matches the number of outputs + if len(inputs_to_test) != len(expected_outputs): + raise ValueError("The run_get_user_filters_test method requires that both arguments are the same length.") + + # Redirect the input prompt to be stored in mock_input and not displayed in stdout + with patch("builtins.input", side_effect=inputs_to_test) as mock_input: + for expected_output in expected_outputs: + # We use patch here to keep stdout from get_user_filters from being displayed + with patch("sys.stdout"): + # Run the method we're testing and capture the result + result = self.detailed_status_obj.get_user_filters() + + # Make sure the prompt is called with the initial prompt message + mock_input.assert_called_with("How would you like to filter the tasks? ") + + # Ensure the result matches the expected output + self.assertEqual(result, expected_output) + + def run_invalid_get_user_filters_test(self, inputs_to_test: List[str]): + """ + This will pass every input in `inputs_to_test` to the get_user_filters + method. All of the inputs in `inputs_to_test` should be invalid except + for the final one. We'll capture the output from stdout and look to make + sure the correct number of "invalid input" messages were displayed. + + :param `inputs_to_test`: A list of invalid inputs (except for the last input) + to give to the prompt displayed in get_user_filters + """ + # Create a variable to store the captured stdout + captured_output = StringIO() + + # Redirect the input prompt to be stored in mock_input and not displayed in stdout + with patch("builtins.input", side_effect=inputs_to_test) as mock_input: + # We use patch here to keep stdout from get_user_filters from being displayed + with patch("sys.stdout", new=captured_output): + # Run the method we're testing (it won't return anything until we hit the valid + # exit filter so we don't save the result) + _ = self.detailed_status_obj.get_user_filters() + + # Make sure the prompt is called with the initial prompt message + mock_input.assert_called_with("How would you like to filter the tasks? ") + + # Find all occurrences of the invalid messages + all_invalid_msgs = re.findall(r"Invalid input: .*\. Input must be one of the following", captured_output.getvalue()) + + # The last input to test will be valid (so this test can exit properly) so we have + # to account for that when we check how many invalid msgs we got in our output + self.assertEqual(len(all_invalid_msgs), len(inputs_to_test) - 1) + + def test_get_user_filters_exit(self): + """ + This will test the exit input to the get_user_filters method. + """ + inputs_to_test = ["E", "EXIT", "E, EXIT"] + expected_outputs = [["E"], ["EXIT"], ["E", "EXIT"]] + self.run_get_user_filters_test(inputs_to_test, expected_outputs) + + def test_get_user_filters_task_status(self): + """ + This will test the task status input to the get_user_filters method. + """ + inputs_to_test = ["FAILED", "CANCELLED", "FAILED, CANCELLED"] + expected_outputs = [["FAILED"], ["CANCELLED"], ["FAILED", "CANCELLED"]] + self.run_get_user_filters_test(inputs_to_test, expected_outputs) + + def test_get_user_filters_return_codes(self): + """ + This will test the return codes input to the get_user_filters method. + """ + inputs_to_test = ["SOFT_FAIL", "STOP_WORKERS", "SOFT_FAIL, STOP_WORKERS"] + expected_outputs = [["SOFT_FAIL"], ["STOP_WORKERS"], ["SOFT_FAIL", "STOP_WORKERS"]] + self.run_get_user_filters_test(inputs_to_test, expected_outputs) + + def test_get_user_filters_max_tasks(self): + """ + This will test the max tasks input to the get_user_filters method. + """ + inputs_to_test = ["MAX_TASKS"] + expected_outputs = [["MAX_TASKS"]] + self.run_get_user_filters_test(inputs_to_test, expected_outputs) + + def test_get_user_filters_combination(self): + """ + This will test a combination of filters as inputs to the get_user_filters method. + """ + inputs_to_test = [ + "CANCELLED, SOFT_FAIL", # testing return code and task status being used together + "STOP_WORKERS, MAX_TASKS", # testing return code and max tasks being used together + "STOP_WORKERS, EXIT", # testing return code and exit being used together + "FAILED, MAX_TASKS", # testing task status and max tasks being used together + "CANCELLED, EXIT", # testing task status and exit being used together + "MAX_TASKS, EXIT", # testing max tasks and exit being used together + ] + expected_outputs = [ + ["CANCELLED", "SOFT_FAIL"], + ["STOP_WORKERS", "MAX_TASKS"], + ["STOP_WORKERS", "EXIT"], + ["FAILED", "MAX_TASKS"], + ["CANCELLED", "EXIT"], + ["MAX_TASKS", "EXIT"], + ] + self.run_get_user_filters_test(inputs_to_test, expected_outputs) + + def test_get_user_filters_only_invalid_inputs(self): + """ + This will test sending invalid inputs to the prompt that the get_user_filters + method displays. The last input we send will be a valid exit input in order + to get the test to exit in a clean manner. + """ + inputs_to_test = [ + "MAX_TASK", # test single invalid input + "fail, cancel", # test two invalid inputs together (should only raise one invalid input message) + "", # test empty input + "FAILED CANCELLED", # test two valid inputs not separated by comma + "E", # this one is valid and we'll use it to exit + ] + self.run_invalid_get_user_filters_test(inputs_to_test) + + def test_get_user_filters_invalid_with_valid_inputs(self): + """ + This will test sending invalid inputs to the prompt that the get_user_filters + method displays alongside valid inputs. The last input we send will be a valid + exit input in order to get the test to exit in a clean manner. + """ + inputs_to_test = [ + "MAX_TASKS, INVALID", # test invalid input with max tasks + "failed, invalid", # test invalid input with task status + "stop_workers, invalid", # test invalid input with return code + "SUCCESS, FAILED, INVALID, MAX_TASKS", # test a combination of all filters with an invalid one + "E", # this one is valid and we'll use it to exit + ] + self.run_invalid_get_user_filters_test(inputs_to_test) + + ############################################### + # Testing get_user_max_tasks() + ############################################### + + # There are 19 tasks in total for the status tests. Here, 1 is an edge + # case. Any positive number is valid (even a number greater than 19) + @patch("builtins.input", side_effect=["1", "10", "20"]) + def test_get_user_max_tasks_valid_inputs(self, mock_input: MagicMock): + """ + This will test sending valid inputs to the get_user_max_tasks method. + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + expected_outputs = [1, 10, 20] + for expected_output in expected_outputs: + # We use patch here to keep stdout from get_user_tasks from being displayed + with patch("sys.stdout"): + # Run the method we're testing and save the result + result = self.detailed_status_obj.get_user_max_tasks() + + # Make sure the prompt is called with the correct prompt message + mock_input.assert_called_with("What limit would you like to set? (must be an integer greater than 0) ") + # Ensure we get correct output + self.assertEqual(result, expected_output) + + # '1' is a valid input and we'll use that to exit safely from this test + @patch("builtins.input", side_effect=["0", "-1", "1.5", "a", "1"]) + def test_get_user_max_tasks_invalid_inputs(self, mock_input: MagicMock): + """ + This will test sending valid inputs to the get_user_max_tasks method. + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + captured_output = StringIO() + # We use patch here to capture the stdout from get_user_max_tasks + with patch("sys.stdout", new=captured_output): + # Run the method we're testing (it won't return anything until we hit the valid + # filter so we don't save the result) + self.detailed_status_obj.get_user_max_tasks() + + # Make sure the prompt is called with the correct prompt message + mock_input.assert_called_with("What limit would you like to set? (must be an integer greater than 0) ") + + # There should be 4 "invalid input" messages so make sure there are + all_invalid_msgs = re.findall( + r"Invalid input. The limit must be an integer greater than 0.", captured_output.getvalue() + ) + self.assertEqual(len(all_invalid_msgs), 4) + + ############################################### + # Testing display() + ############################################### + + @patch("builtins.input", side_effect=["c"]) + def test_display_ync_prompt_c(self, mock_input: MagicMock): + """ + Test the first prompt that's given when you ask for detailed + status with the disable pager and there's a bunch of tasks. In + this test we're just cancelling the display (i.e. inputting 'c'). + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + # We have to set the no_prompts argument to False or else this won't work + self.detailed_status_obj.args.no_prompts = False + + captured_output = StringIO() + with patch("sys.stdout", new=captured_output): + # Setting display to test mode will change the limit before a + # prompt is shown from 250 to 15 + self.detailed_status_obj.display(test_mode=True) + + # Ensure the display y/n/c prompt was given + mock_input.assert_called_once_with( + "About to display 19 tasks without a pager. Would you like to apply additional filters? (y/n/c) " + ) + + # Ensure the display was cancelled + assert "Cancelling status display." in captured_output.getvalue() + + @patch("builtins.input", side_effect=["n"]) + def test_display_ync_prompt_n(self, mock_input: MagicMock): + """ + Test the first prompt that's given when you ask for detailed + status with the disable pager and there's a bunch of tasks. In + this test we're telling the prompt that we don't want to apply + additional filters (i.e. inputting 'n'). + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + # We have to set the no_prompts argument to False or else this won't work + self.detailed_status_obj.args.no_prompts = False + + captured_output = StringIO() + with patch("sys.stdout", new=captured_output): + # Setting display to test mode will change the limit before a + # prompt is shown from 250 to 15 + self.detailed_status_obj.display(test_mode=True) + + # Ensure the display y/n/c prompt was given + mock_input.assert_called_once_with( + "About to display 19 tasks without a pager. Would you like to apply additional filters? (y/n/c) " + ) + + # Ensure the display was told not to apply anymore filters + assert "Not filtering further. Displaying 19 tasks..." in captured_output.getvalue() + + # Ensure the requested_statuses dict holds all statuses still + self.assertEqual(self.detailed_status_obj.requested_statuses, status_test_variables.ALL_REQUESTED_STATUSES) + + @patch("builtins.input", side_effect=["y", "e", "c"]) + def test_display_ync_prompt_y(self, mock_input: MagicMock): + """ + Test the first prompt that's given when you ask for detailed + status with the disable pager and there's a bunch of tasks. In + this test we're telling the prompt that we do want to apply + additional filters (i.e. inputting 'y'). + + The input chain is as follows: + The prompt will first ask if we want to filter further and we'll input + 'y' -> this takes us to the second input asking how we want to filter + and we'll input 'e' to exit -> this will take us back to the first prompt + and we'll enter 'c' to cancel the display operation + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + # We have to set the no_prompts argument to False or else this won't work + self.detailed_status_obj.args.no_prompts = False + + with patch("sys.stdout"): + # Setting display to test mode will change the limit before a + # prompt is shown from 250 to 15 + self.detailed_status_obj.display(test_mode=True) + + # There should be 3 input calls: the initial prompt, the next prompt after entering + # 'y', and then going back to the initial prompt after entering 'e' to exit + self.assertEqual(len(mock_input.mock_calls), 3) + + # Create the list of calls that should be made (this is in sequential order; the order DOES matter here) + initial_prompt = "About to display 19 tasks without a pager. Would you like to apply additional filters? (y/n/c) " + secondary_prompt = "How would you like to filter the tasks? " + calls = [call(initial_prompt), call(secondary_prompt), call(initial_prompt)] + + # Ensure the correct calls have been made + mock_input.assert_has_calls(calls) + + @patch("builtins.input", side_effect=["a", "0", "", "c"]) + def test_display_ync_prompt_invalid_inputs(self, mock_input: MagicMock): + """ + Test the first prompt that's given when you ask for detailed + status with the disable pager and there's a bunch of tasks. In + this test we're testing against invalid inputs and finishing the + test off by inputting 'c' to cancel the display. + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + # We have to set the no_prompts argument to False or else this won't work + self.detailed_status_obj.args.no_prompts = False + + with patch("sys.stdout"): + # Setting display to test mode will change the limit before a + # prompt is shown from 250 to 15 + self.detailed_status_obj.display(test_mode=True) + + # The call order should have the initial prompt followed by an invalid prompt for each + # of our 3 invalid inputs ('a', '0', and '') + initial_prompt = "About to display 19 tasks without a pager. Would you like to apply additional filters? (y/n/c) " + invalid_prompt = "Invalid input. You must enter either 'y' for yes, 'n' for no, or 'c' for cancel: " + calls = [call(initial_prompt)] + [call(invalid_prompt)] * 3 + + # Ensure the mock_input has the correct calls in the correct order + mock_input.assert_has_calls(calls) + + ############################################### + # Testing display(), filter_via_prompts(), + # get_user_filters(), and get_user_max_tasks() + # + # Sort of an integration test but all of these + # methods revolve around display + ############################################### + + @patch("builtins.input", side_effect=["y", "FAILED, STOP_WORKERS"]) + def test_display_full_filter_process(self, mock_input: MagicMock): + """ + This test will run through the prompts given to users when they disable + the pager and there are a bunch of tasks to display. This will test a + run with no invalid inputs (each method has been individually tested above + for invalid inputs). + + This should pull up two prompts: the first asking if we want to apply + additional filters which we'll input 'y' to -> the second asking us + how we'd like to filter, which we'll input 'FAILED, STOP_WORKERS' to. + This uses both the task_status and return_code filters to ask for + any failed or cancelled tasks we have. + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + # We have to set the no_prompts argument to False or else this won't work + self.detailed_status_obj.args.no_prompts = False + + with patch("sys.stdout"): + # Setting display to test mode will change the limit before a + # prompt is shown from 250 to 15 + self.detailed_status_obj.display(test_mode=True) + + # The call order should have the initial prompt followed by a prompt asking how + # we want to filter our tasks (this is in a specific order) + initial_prompt = "About to display 19 tasks without a pager. Would you like to apply additional filters? (y/n/c) " + secondary_prompt = "How would you like to filter the tasks? " + calls = [call(initial_prompt), call(secondary_prompt)] + + # Ensure the mock_input has the correct calls in the correct order + mock_input.assert_has_calls(calls) + + # Ensure the requested_statuses dict holds all failed and cancelled tasks + self.assertEqual(self.detailed_status_obj.requested_statuses, status_test_variables.REQUESTED_STATUSES_FAIL_AND_CANCEL) + + @patch("builtins.input", side_effect=["y", "SUCCESS, MAX_TASKS", "3"]) + def test_display_full_filter_process_max_tasks(self, mock_input: MagicMock): + """ + This test will run through the prompts given to users when they disable + the pager and there are a bunch of tasks to display. This will test a + run with no invalid inputs (each method has been individually tested above + for invalid inputs). + + This should pull up three prompts: the first asking if we want to apply + additional filters which we'll input 'y' to -> the second asking us + how we'd like to filter, which we'll input 'SUCCESS, MAX_TASKS' to -> + the third and final asking us what limit we'd like to set for the max_tasks + value + + :param `mock_input`: A MagicMock object to send inputs to the prompt + """ + # We have to set the no_prompts argument to False or else this won't work + self.detailed_status_obj.args.no_prompts = False + + with patch("sys.stdout"): + # Setting display to test mode will change the limit before a + # prompt is shown from 250 to 15 + self.detailed_status_obj.display(test_mode=True) + + # The call order should have the initial prompt followed by a prompt asking how + # we want to filter our tasks followed by a prompt asking us what limit we'd + # like to set (this is in a specific order) + initial_prompt = "About to display 19 tasks without a pager. Would you like to apply additional filters? (y/n/c) " + secondary_prompt = "How would you like to filter the tasks? " + tertiary_prompt = "What limit would you like to set? (must be an integer greater than 0) " + calls = [call(initial_prompt), call(secondary_prompt), call(tertiary_prompt)] + + # Ensure the mock_input has the correct calls in the correct order + mock_input.assert_has_calls(calls) + + # Ensure the requested_statuses dict holds only 3 successful tasks + self.assertEqual(self.detailed_status_obj.num_requested_statuses, 3) + + +class TestFilterApplication(TestBaseDetailedStatus): + """ + This class is strictly for testing that filters are applied correctly. + + The types of filters are: + steps, max_tasks, return_code, task_status, task_queues, and workers. + + By the time filters are applied in the execution process, the filters + will have already been verified so we don't need to check against invalid + inputs (that's what the TestFilterVerification class is for). + + This class will test 3 methods: get_steps_to_display (this applies the + steps, task_queues, and workers filters), apply_filters (this applies the + return_code and task_status filters), and apply_max_tasks_limit (this + applies the max_tasks filter). + """ + + def test_apply_default_steps(self): + """ + This will test the default application of the steps filter. When the + detailed_status_obj variable is created in setUp, the default value + for steps will already be being used, and the get_steps_to_display method + will be called upon initialization. Therefore, we can just ensure it was + processed correctly without needing to directly call it. + """ + # The steps arg is expanded from ["all"] to a list of every step name upon class creation + self.assertEqual( + self.detailed_status_obj.args.steps, + ["just_samples", "just_parameters", "params_and_samples", "fail_step", "cancel_step", "unstarted_step"], + ) + + # The step_tracker dict should have every step here + step_tracker_diff = DeepDiff( + status_test_variables.FULL_STEP_TRACKER, self.detailed_status_obj.step_tracker, ignore_order=True + ) + self.assertEqual(step_tracker_diff, {}) + + def run_get_steps_to_display_test(self, expected_step_tracker: Dict): + """ + A helper method to combine similar code for the get_steps_to_display tests. + This is where the get_steps_to_display method is actually called and tested against. + """ + # Call get_steps_to_display to get the step_tracker object and make sure it matches the expected output + step_tracker_diff = DeepDiff(expected_step_tracker, self.detailed_status_obj.get_steps_to_display(), ignore_order=True) + self.assertEqual(step_tracker_diff, {}) + + def test_apply_single_step(self): + """ + This tests the application of the steps filter with only one step. + """ + # Modify the steps argument and create the expected output + self.detailed_status_obj.args.steps = ["just_parameters"] + expected_step_tracker = {"started_steps": ["just_parameters"], "unstarted_steps": []} + + # Run the test + self.run_get_steps_to_display_test(expected_step_tracker) + + def test_apply_multiple_steps(self): + """ + This tests the application of the steps filter with multiple steps. + """ + # Modify the steps argument and create the expected output + self.detailed_status_obj.args.steps = ["just_parameters", "just_samples", "fail_step"] + expected_step_tracker = {"started_steps": ["just_parameters", "just_samples", "fail_step"], "unstarted_steps": []} + + # Run the test + self.run_get_steps_to_display_test(expected_step_tracker) + + def test_apply_single_task_queue(self): + """ + This tests the application of the task_queues filter with only one task queue. + """ + # Modify the task_queues argument and create the expected output + self.detailed_status_obj.args.task_queues = ["just_parameters_queue"] + expected_step_tracker = {"started_steps": ["just_parameters"], "unstarted_steps": []} + + # We need to reset steps to "all" otherwise this test won't work + self.detailed_status_obj.args.steps = ["all"] + + # Run the test + self.run_get_steps_to_display_test(expected_step_tracker) + + def test_apply_multiple_task_queues(self): + """ + This tests the application of the task_queues filter with multiple task queues. + """ + # Modify the task_queues argument and create the expected output + self.detailed_status_obj.args.task_queues = ["just_parameters_queue", "just_samples_queue", "fail_queue"] + expected_step_tracker = {"started_steps": ["just_parameters", "just_samples", "fail_step"], "unstarted_steps": []} + + # We need to reset steps to "all" otherwise this test won't work + self.detailed_status_obj.args.steps = ["all"] + + # Run the test + self.run_get_steps_to_display_test(expected_step_tracker) + + def test_apply_single_worker(self): + """ + This tests the application of the workers filter with only one worker. + """ + # Modify the workers argument and create the expected output + self.detailed_status_obj.args.workers = ["sample_worker"] + expected_step_tracker = {"started_steps": ["just_samples", "params_and_samples"], "unstarted_steps": []} + + # We need to reset steps to "all" otherwise this test won't work + self.detailed_status_obj.args.steps = ["all"] + + # Run the test + self.run_get_steps_to_display_test(expected_step_tracker) + + def test_apply_multiple_workers(self): + """ + This tests the application of the workers filter with multiple worker. + """ + # Modify the workers argument and create the expected output + self.detailed_status_obj.args.workers = ["sample_worker", "other_worker"] + + # We need to reset steps to "all" otherwise this test won't work + self.detailed_status_obj.args.steps = ["all"] + + # Run the test + self.run_get_steps_to_display_test(status_test_variables.FULL_STEP_TRACKER) + + def test_apply_max_tasks(self): + """ + The max_tasks filter has no default to test against as the default value is None + and will not trigger the apply_max_task_limit method. We'll test the application of this + method here by modifying max tasks and calling it. This method will modify the + requested_statuses dict so we'll check against that. + """ + # Set the max_tasks limit and apply it + self.detailed_status_obj.args.max_tasks = 3 + self.detailed_status_obj.apply_max_tasks_limit() + + # Ensure the max_tasks limit was applied to the requested_statuses + self.assertEqual(self.detailed_status_obj.num_requested_statuses, 3) + + def run_apply_filters_test(self, expected_requested_statuses: Dict): + """ + A helper method to combine similar code for the apply_filters tests. + The apply_filters method is tested here as a side effect of calling + load_requested_statuses. + """ + # Apply any filter given before this method was called + self.detailed_status_obj.load_requested_statuses() + + # Ensure the requested statuses are as expected + requested_statuses_diff = DeepDiff( + expected_requested_statuses, self.detailed_status_obj.requested_statuses, ignore_order=True + ) + self.assertEqual(requested_statuses_diff, {}) + + def test_apply_single_return_code(self): + """ + This tests the application of the return_code filter with only one return codes. + """ + # Set the return code filter and run the test + self.detailed_status_obj.args.return_code = ["SOFT_FAIL"] + self.run_apply_filters_test(status_test_variables.REQUESTED_STATUSES_JUST_FAILED_STEP) + + def test_apply_multiple_return_codes(self): + """ + This tests the application of the return_code filter with multiple return codes. + """ + # Set the return code filter and run the test + self.detailed_status_obj.args.return_code = ["SOFT_FAIL", "STOP_WORKERS"] + self.run_apply_filters_test(status_test_variables.REQUESTED_STATUSES_FAIL_AND_CANCEL) + + def test_apply_single_task_status(self): + """ + This tests the application of the task_status filter with only one task status. + """ + # Set the return code filter and run the test + self.detailed_status_obj.args.task_status = ["FAILED"] + self.run_apply_filters_test(status_test_variables.REQUESTED_STATUSES_JUST_FAILED_STEP) + + def test_apply_multiple_task_statuses(self): + """ + This tests the application of the task_status filter with multiple task statuses. + """ + # Set the return code filter and run the test + self.detailed_status_obj.args.task_status = ["FAILED", "CANCELLED"] + self.run_apply_filters_test(status_test_variables.REQUESTED_STATUSES_FAIL_AND_CANCEL) + + +class TestFilterVerification(TestBaseDetailedStatus): + """ + This class is strictly for testing the verification process when filters + are given to the DetailedStatus object. This does NOT test that filters + are applied properly, just that they're verified correctly. + + The types of filters are: + steps, max_tasks, return_code, task_status, task_queues, and workers. + + For every filter we'll test the verification process against valid and + invalid inputs. Additionally, for every filter besides max_tasks, even + though I don't think it's possible for this scenario to get passed through + to the DetailedStatus class, we'll test against an empty list as input. + """ + + def test_verify_filter_args_valid_steps(self): + """ + Test the verification process of the steps filter using valid steps. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Test single valid step + valid_step = ["just_samples"] + self.detailed_status_obj.args.steps = valid_step + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.steps, valid_step) + + # Test multiple valid steps + valid_steps = ["just_samples", "just_parameters"] + self.detailed_status_obj.args.steps = valid_steps + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.steps, valid_steps) + + def test_verify_filter_args_invalid_steps(self): + """ + Test the verification process of the steps filter using invalid steps. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing "invalid_step" as only step + self.detailed_status_obj.args.steps = ["invalid_step"] + # Calling verify_filter_args should remove "invalid_step" + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.steps, []) + + # Testing "invalid_step" as first step + self.detailed_status_obj.args.steps = ["invalid_step", "just_samples"] + # Calling verify_filter_args should allow "just_samples" to stay but not "invalid_step" + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.steps, ["just_samples"]) + + # Testing "invalid_step" as last step + self.detailed_status_obj.args.steps = ["just_samples", "invalid_step"] + # Calling verify_filter_args should allow "just_samples" to stay but not "invalid_step" + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.steps, ["just_samples"]) + + # Testing "invalid_step" as middle step + self.detailed_status_obj.args.steps = ["just_samples", "invalid_step", "just_parameters"] + # Calling verify_filter_args should allow "just_samples" and "just_parameters" to stay but not "invalid_step" + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.steps, ["just_samples", "just_parameters"]) + + # Testing multiple invalid steps + self.detailed_status_obj.args.steps = ["just_samples", "invalid_step_1", "just_parameters", "invalid_step_2"] + # Calling verify_filter_args should allow only "just_samples" and "just_parameters" to stay + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.steps, ["just_samples", "just_parameters"]) + + def test_verify_filter_args_no_steps(self): + """ + Test the verification process of the steps filter using no steps. I don't think this + is even possible to get passed to the DetailedStatus object but we'll test it just in + case. This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Modify the steps filter so we can re-run the verify_filters_args with this filter + self.detailed_status_obj.args.steps = [] + + # Calling verify_filter_args should just keep the empty list + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.steps, []) + + def test_verify_filter_args_valid_max_tasks(self): + """ + Test the verification process of the max_tasks filter using a valid max_tasks value. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Test valid max tasks + valid_max_tasks = 12 + self.detailed_status_obj.args.max_tasks = valid_max_tasks + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.max_tasks, valid_max_tasks) + + def test_verify_filter_args_invalid_max_tasks(self): + """ + Test the verification process of the max_tasks filter using invalid max_tasks + values. We don't need to test for too high of a value since the code will + automatically reset the value to however large requested_statuses is. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing negative max_tasks value + self.detailed_status_obj.args.max_tasks = -1 + # Calling verify_filter_args should reset max_tasks to None + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.max_tasks, None) + + # Testing max_tasks value of zero (edge case) + self.detailed_status_obj.args.max_tasks = 0 + # Calling verify_filter_args should reset max_tasks to None + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.max_tasks, None) + + # Testing max_tasks value that's not an integer + self.detailed_status_obj.args.max_tasks = 1.5 + # Calling verify_filter_args should reset max_tasks to None + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.max_tasks, None) + + def test_verify_filter_args_valid_task_status(self): + """ + Test the verification process of the task_status filter using valid task_status values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Test single valid task status + valid_task_status = ["FINISHED"] + self.detailed_status_obj.args.task_status = valid_task_status + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.task_status, valid_task_status) + + # Test multiple valid task statuses + valid_task_statuses = ["FINISHED", "FAILED", "CANCELLED"] + self.detailed_status_obj.args.task_status = valid_task_statuses + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.task_status, valid_task_statuses) + + def test_verify_filter_args_invalid_task_status(self): + """ + Test the verification process of the task_status filter using invalid task_status values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing a single invalid filter + self.detailed_status_obj.args.task_status = ["INVALID"] + # Calling verify_filter_args should remove the invalid filter + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_status, []) + + # Testing invalid filter as first filter + self.detailed_status_obj.args.task_status = ["INVALID", "DRY_RUN"] + # Calling verify_filter_args should only allow "DRY_RUN" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_status, ["DRY_RUN"]) + + # Testing invalid filter as last filter + self.detailed_status_obj.args.task_status = ["UNKNOWN", "INVALID"] + # Calling verify_filter_args should only allow "UNKNOWN" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_status, ["UNKNOWN"]) + + # Testing invalid filter as middle filter + self.detailed_status_obj.args.task_status = ["INITIALIZED", "INVALID", "RUNNING"] + # Calling verify_filter_args should only allow "INITIALIZED" and "RUNNING" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_status, ["INITIALIZED", "RUNNING"]) + + # Testing multiple invalid filters + self.detailed_status_obj.args.task_status = ["INVALID_1", "CANCELLED", "INVALID_2"] + # Calling verify_filter_args should only allow "CANCELLED" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_status, ["CANCELLED"]) + + def test_verify_filter_args_no_task_status(self): + """ + Test the verification process of the task_status filter using no task_status. I don't think + this is even possible to get passed to the DetailedStatus object but we'll test it just in + case. This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing empty task status filter + self.detailed_status_obj.args.task_status = [] + + # Calling verify_filter_args should just keep the empty list + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.task_status, []) + + def test_verify_filter_args_valid_return_code(self): + """ + Test the verification process of the task_status filter using valid task_status values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Test single valid task status + valid_return_code = ["SUCCESS"] + self.detailed_status_obj.args.return_code = valid_return_code + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.return_code, valid_return_code) + + # Test multiple valid task statuses + valid_return_codes = ["SOFT_FAIL", "DRY_SUCCESS", "SUCCESS"] + self.detailed_status_obj.args.return_code = valid_return_codes + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.return_code, valid_return_codes) + + def test_verify_filter_args_invalid_return_code(self): + """ + Test the verification process of the return_code filter using invalid return_code values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing a single invalid filter + self.detailed_status_obj.args.return_code = ["INVALID"] + # Calling verify_filter_args should remove the invalid filter + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.return_code, []) + + # Testing invalid filter as first filter + self.detailed_status_obj.args.return_code = ["INVALID", "SOFT_FAIL"] + # Calling verify_filter_args should only allow "SOFT_FAIL" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.return_code, ["SOFT_FAIL"]) + + # Testing invalid filter as last filter + self.detailed_status_obj.args.return_code = ["HARD_FAIL", "INVALID"] + # Calling verify_filter_args should only allow "HARD_FAIL" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.return_code, ["HARD_FAIL"]) + + # Testing invalid filter as middle filter + self.detailed_status_obj.args.return_code = ["STOP_WORKERS", "INVALID", "UNRECOGNIZED"] + # Calling verify_filter_args should only allow "STOP_WORKERS" and "UNRECOGNIZED" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.return_code, ["STOP_WORKERS", "UNRECOGNIZED"]) + + # Testing multiple invalid filters + self.detailed_status_obj.args.return_code = ["INVALID_1", "SUCCESS", "INVALID_2"] + # Calling verify_filter_args should only allow "SUCCESS" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.return_code, ["SUCCESS"]) + + def test_verify_filter_args_no_return_code(self): + """ + Test the verification process of the return_code filter using no return_code. I don't think + this is even possible to get passed to the DetailedStatus object but we'll test it just in + case. This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing empty return code filter + self.detailed_status_obj.args.return_code = [] + + # Calling verify_filter_args should just keep the empty list + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.return_code, []) + + def test_verify_filter_args_valid_task_queue(self): + """ + Test the verification process of the task_queues filter using valid task_queues values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Test single valid task status + valid_task_queue = ["just_samples_queue"] + self.detailed_status_obj.args.task_queues = valid_task_queue + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.task_queues, valid_task_queue) + + # Test multiple valid task statuses + valid_task_queues = ["just_samples_queue", "just_parameters_queue", "both_queue"] + self.detailed_status_obj.args.task_queues = valid_task_queues + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.task_queues, valid_task_queues) + + def test_verify_filter_args_invalid_task_queue(self): + """ + Test the verification process of the task_queues filter using invalid task_queues values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing a single invalid filter + self.detailed_status_obj.args.task_queues = ["invalid_queue"] + # Calling verify_filter_args should remove the invalid filter + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_queues, []) + + # Testing invalid filter as first filter + self.detailed_status_obj.args.task_queues = ["invalid_queue", "unstarted_queue"] + # Calling verify_filter_args should only allow "unstarted_queue" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_queues, ["unstarted_queue"]) + + # Testing invalid filter as last filter + self.detailed_status_obj.args.task_queues = ["fail_queue", "invalid_queue"] + # Calling verify_filter_args should only allow "fail_queue" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_queues, ["fail_queue"]) + + # Testing invalid filter as middle filter + self.detailed_status_obj.args.task_queues = ["cancel_queue", "invalid_queue", "both_queue"] + # Calling verify_filter_args should only allow "cancel_queue" and "both_queue" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_queues, ["cancel_queue", "both_queue"]) + + # Testing multiple invalid filters + self.detailed_status_obj.args.task_queues = ["invalid_queue_1", "just_samples_queue", "invalid_queue_2"] + # Calling verify_filter_args should only allow "just_samples_queue" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.task_queues, ["just_samples_queue"]) + + def test_verify_filter_args_no_task_queue(self): + """ + Test the verification process of the task_queues filter using no task_queues. I don't think + this is even possible to get passed to the DetailedStatus object but we'll test it just in + case. This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing empty task queues filter + self.detailed_status_obj.args.task_queues = [] + + # Calling verify_filter_args should just keep the empty list + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.task_queues, []) + + def test_verify_filter_args_valid_workers(self): + """ + Test the verification process of the task_queue filter using valid task_queue values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Test single valid task status + valid_worker = ["sample_worker"] + self.detailed_status_obj.args.workers = valid_worker + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.workers, valid_worker) + + # Test multiple valid task statuses + valid_workers = ["sample_worker", "other_worker"] + self.detailed_status_obj.args.workers = valid_workers + # Calling verify_filter_args should not change anything here + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.workers, valid_workers) + + def test_verify_filter_args_invalid_workers(self): + """ + Test the verification process of the workers filter using invalid workers values. + This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing a single invalid filter + self.detailed_status_obj.args.workers = ["invalid_worker"] + # Calling verify_filter_args should remove the invalid filter + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.workers, []) + + # Testing invalid filter as first filter + self.detailed_status_obj.args.workers = ["invalid_worker", "sample_worker"] + # Calling verify_filter_args should only allow "sample_worker" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.workers, ["sample_worker"]) + + # Testing invalid filter as last filter + self.detailed_status_obj.args.workers = ["sample_worker", "invalid_worker"] + # Calling verify_filter_args should only allow "sample_worker" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.workers, ["sample_worker"]) + + # Testing invalid filter as middle filter + self.detailed_status_obj.args.workers = ["sample_worker", "invalid_worker", "other_worker"] + # Calling verify_filter_args should only allow "sample_worker" and "other_worker" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.workers, ["sample_worker", "other_worker"]) + + # Testing multiple invalid filters + self.detailed_status_obj.args.workers = ["invalid_worker_1", "sample_worker", "invalid_worker_2"] + # Calling verify_filter_args should only allow "sample_worker" to remain + self.detailed_status_obj._verify_filter_args(suppress_warnings=True) + self.assertEqual(self.detailed_status_obj.args.workers, ["sample_worker"]) + + def test_verify_filter_args_no_workers(self): + """ + Test the verification process of the workers filter using no workers. I don't think + this is even possible to get passed to the DetailedStatus object but we'll test it just in + case. This covers part of the _verify_filter_args method and one use case of the + _verify_filters method that is called by _verify_filter_args. + """ + # Testing empty workers filter + self.detailed_status_obj.args.workers = [] + + # Calling verify_filter_args should just keep the empty list + self.detailed_status_obj._verify_filter_args() + self.assertEqual(self.detailed_status_obj.args.workers, []) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/unit/study/test_status.py b/tests/unit/study/test_status.py new file mode 100644 index 000000000..ae96c8111 --- /dev/null +++ b/tests/unit/study/test_status.py @@ -0,0 +1,329 @@ +############################################################################### +# Copyright (c) 2023, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory +# Written by the Merlin dev team, listed in the CONTRIBUTORS file. +# +# +# LLNL-CODE-797170 +# All rights reserved. +# This file is part of Merlin, Version: 1.10.2. +# +# For details, see https://github.com/LLNL/merlin. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +############################################################################### +""" +Tests for the Status class in the status.py module +""" +import unittest +from argparse import Namespace +from copy import deepcopy +from datetime import datetime + +import yaml +from deepdiff import DeepDiff + +from merlin.spec.expansion import get_spec_with_expansion +from merlin.study.status import Status +from tests.unit.study.status_test_files import shared_tests, status_test_variables + + +class TestMerlinStatus(unittest.TestCase): + """Test the logic for methods in the Status class.""" + + @classmethod + def setUpClass(cls): + """ + We need to modify the path to the samples file in the expanded spec for these tests. + This will only happen once when these tests are initialized. + """ + # Read in the contents of the expanded spec + with open(status_test_variables.EXPANDED_SPEC_PATH, "r") as expanded_file: + cls.initial_expanded_contents = yaml.load(expanded_file, yaml.Loader) + + # Create a copy of the contents so we can reset the file when these tests are done + modified_contents = deepcopy(cls.initial_expanded_contents) + + # Modify the samples file path + modified_contents["merlin"]["samples"]["file"] = status_test_variables.SAMPLES_PATH + + # Write the new contents to the expanded spec + with open(status_test_variables.EXPANDED_SPEC_PATH, "w") as expanded_file: + yaml.dump(modified_contents, expanded_file) + + @classmethod + def tearDownClass(cls): + """ + When these tests are done we'll reset the contents of the expanded spec path + to their initial states. + """ + with open(status_test_variables.EXPANDED_SPEC_PATH, "w") as expanded_file: + yaml.dump(cls.initial_expanded_contents, expanded_file) + + def setUp(self): + """ + We'll create an argparse namespace here that can be modified on a + test-by-test basis. + """ + # We'll set all of the args needed to create the DetailedStatus object here and then + # just modify them on a test-by-test basis + self.args = Namespace( + subparsers="status", + level="INFO", + detailed=False, + output_path=None, + task_server="celery", + cb_help=False, + dump=None, + no_prompts=True, # We'll set this to True here since it's easier to test this way + ) + + def test_spec_setup_nonexistent_file(self): + """ + Test the creation of a Status object using a nonexistent spec file. + This should not let us create the object and instead throw an error. + """ + with self.assertRaises(ValueError): + invalid_spec_path = f"{status_test_variables.PATH_TO_TEST_FILES}/nonexistent.yaml" + self.args.specification = invalid_spec_path + self.args.spec_provided = get_spec_with_expansion(self.args.specification) + _ = Status(args=self.args, spec_display=True, file_or_ws=invalid_spec_path) + + def test_spec_setup_no_prompts(self): + """ + Test the creation of a Status object using a valid spec file with no + prompts allowed. By default for this test class, no_prompts is True. + This also tests that the attributes created upon initialization are + correct. The methods covered here are _load_from_spec and _obtain_study, + as well as any methods covered in assert_correct_attribute_creation + """ + self.args.specification = status_test_variables.SPEC_PATH + self.args.spec_provided = get_spec_with_expansion(self.args.specification) + status_obj = Status(args=self.args, spec_display=True, file_or_ws=status_test_variables.SPEC_PATH) + assert isinstance(status_obj, Status) + + shared_tests.assert_correct_attribute_creation(status_obj) + + def test_prompt_for_study_with_valid_input(self): + """ + This is testing the prompt that's displayed when multiple study output + directories are found. This tests the _obtain_study method using valid inputs. + """ + # We need to load in the MerlinSpec object and save it to the args we'll give to Status + self.args.specification = status_test_variables.SPEC_PATH + self.args.spec_provided = get_spec_with_expansion(self.args.specification) + + # We're going to load in a status object without prompts first and then use that to call the method + # that prompts the user for input + status_obj = Status(args=self.args, spec_display=True, file_or_ws=status_test_variables.SPEC_PATH) + shared_tests.run_study_selector_prompt_valid_input(status_obj) + + def test_prompt_for_study_with_invalid_input(self): + """ + This is testing the prompt that's displayed when multiple study output + directories are found. This tests the _obtain_study method using invalid inputs. + """ + # We need to load in the MerlinSpec object and save it to the args we'll give to Status + self.args.specification = status_test_variables.SPEC_PATH + self.args.spec_provided = get_spec_with_expansion(self.args.specification) + + # We're going to load in a status object without prompts first and then use that to call the method + # that prompts the user for input + status_obj = Status(args=self.args, spec_display=True, file_or_ws=status_test_variables.SPEC_PATH) + shared_tests.run_study_selector_prompt_invalid_input(status_obj) + + def test_workspace_setup_nonexistent_workspace(self): + """ + Test the creation of a Status object using a nonexistent workspace directory. + This should not let us create the object and instead throw an error. + """ + # Testing non existent workspace (in reality main.py should deal with this for us but we'll check it just in case) + with self.assertRaises(ValueError): + invalid_workspace = f"{status_test_variables.PATH_TO_TEST_FILES}/nonexistent_20230101-000000/" + _ = Status(args=self.args, spec_display=False, file_or_ws=invalid_workspace) + + def test_workspace_setup_not_a_merlin_directory(self): + """ + Test the creation of a Status object using an existing directory that is NOT + an output directory from a merlin study (i.e. the directory does not have a + merlin_info/ subdirectory). This should not let us create the object and instead + throw an error. + """ + with self.assertRaises(ValueError): + _ = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.DUMMY_WORKSPACE_PATH) + + def test_workspace_setup_valid_workspace(self): + """ + Test the creation of a Status object using a valid workspace directory. + This also tests that the attributes created upon initialization are + correct. The _load_from_workspace method is covered here, as well as any + methods covered in assert_correct_attribute_creation. + """ + status_obj = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH) + assert isinstance(status_obj, Status) + + shared_tests.assert_correct_attribute_creation(status_obj) + + def test_json_formatter(self): + """ + Test the json formatter for the dump method. This covers the format_json_dump method. + """ + # Create a timestamp and the status object that we'll run tests on + date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + status_obj = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH) + + # Test json formatter + json_format_diff = DeepDiff(status_obj.format_json_dump(date), {date: status_test_variables.ALL_REQUESTED_STATUSES}) + self.assertEqual(json_format_diff, {}) + + def test_csv_formatter(self): + """ + Test the csv formatter for the dump method. This covers the format_csv_dump method. + """ + # Create a timestamp and the status object that we'll run tests on + date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + status_obj = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH) + + # Build the correct format and store each row in a list (so we can ignore the order) + correct_csv_format = {"time_of_status": [date] * len(status_test_variables.ALL_FORMATTED_STATUSES["step_name"])} + correct_csv_format.update(status_test_variables.ALL_FORMATTED_STATUSES) + correct_csv_format = shared_tests.build_row_list(correct_csv_format) + + # Run the csv_formatter and store each row it creates in a list + actual_csv_format = shared_tests.build_row_list(status_obj.format_csv_dump(date)) + + # Compare differences (should be none) + csv_format_diff = DeepDiff(actual_csv_format, correct_csv_format, ignore_order=True) + self.assertEqual(csv_format_diff, {}) + + def test_json_dump(self): + """ + Test the json dump functionality. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. This covers the dump method. + """ + # Create the status object that we'll run tests on + status_obj = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH) + # Set the dump file + json_dump_file = f"{status_test_variables.PATH_TO_TEST_FILES}/dump_test.json" + status_obj.args.dump = json_dump_file + + # Run the json dump test + shared_tests.run_json_dump_test(status_obj, status_test_variables.ALL_REQUESTED_STATUSES) + + def test_csv_dump(self): + """ + Test the csv dump functionality. This tests both the write and append + dump functionalities. The file needs to exist already for an append so it's + better to keep these tests together. This covers the format_status_for_csv + and dump methods. + """ + # Create the status object that we'll run tests on + status_obj = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH) + + # Set the dump file + csv_dump_file = f"{status_test_variables.PATH_TO_TEST_FILES}/dump_test.csv" + status_obj.args.dump = csv_dump_file + + # Run the csv dump test + expected_output = shared_tests.build_row_list(status_test_variables.ALL_FORMATTED_STATUSES) + shared_tests.run_csv_dump_test(status_obj, expected_output) + + def test_display(self): + """ + Test the status display functionality without actually displaying anything. + Running the display in test_mode will just provide us with the state_info + dict created for each step that is typically used for display. We'll ensure + this state_info dict is created properly here. This covers the display method. + """ + # Create the status object that we'll run tests on + status_obj = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH) + + # Get the status info that display would use if it were printing output + all_status_info = status_obj.display(test_mode=True) + + # Check the information for each step + for step_name, state_info in all_status_info.items(): + # If state_info is a dict then the step should be started; if it's a string then it's unstarted + if isinstance(state_info, dict): + assert step_name in status_test_variables.FULL_STEP_TRACKER["started_steps"] + elif isinstance(state_info, str): + assert step_name in status_test_variables.FULL_STEP_TRACKER["unstarted_steps"] + + # Make sure all the state info dicts for each step match what they should be + state_info_diff = DeepDiff(state_info, status_test_variables.DISPLAY_INFO[step_name], ignore_order=True) + self.assertEqual(state_info_diff, {}) + + def test_get_runtime_avg_std_dev(self): + """ + Test the functionality that calculates the run time average and standard + deviation for each step. This test covers the get_runtime_avg_std_dev method. + """ + dummy_step_status = { + "dummy_step_PARAM.1": { + "task_queue": "dummy_queue", + "worker_name": "dummy_worker", + "dummy_step/PARAM.1/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:02h:00m:00s", + "run_time": "0d:01h:38m:27s", # 3600 + 2280 + 27 = 5907 seconds + "restarts": 0, + }, + "dummy_step/PARAM.1/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:02h:00m:00s", + "run_time": "0d:01h:45m:08s", # 3600 + 2700 + 8 = 6308 seconds + "restarts": 0, + }, + }, + "dummy_step_PARAM.2": { + "task_queue": "dummy_queue", + "worker_name": "dummy_worker", + "dummy_step/PARAM.2/00": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:02h:00m:00s", + "run_time": "0d:01h:52m:33s", # 3600 + 3120 + 33 = 6753 seconds + "restarts": 0, + }, + "dummy_step/PARAM.2/01": { + "status": "FINISHED", + "return_code": "MERLIN_SUCCESS", + "elapsed_time": "0d:02h:00m:00s", + "run_time": "0d:01h:08m:40s", # 3600 + 480 + 40 = 4120 seconds + "restarts": 0, + }, + }, + } + + status_obj = Status(args=self.args, spec_display=False, file_or_ws=status_test_variables.VALID_WORKSPACE_PATH) + status_obj.get_runtime_avg_std_dev(dummy_step_status, "dummy_step") + + # Set expected values + expected_avg = "01h:36m:12s" # Mean is 5772 seconds = 01h:36m:12s + expected_std_dev = "±16m:40s" # Std dev is 1000 seconds = 16m:40s + + # Make sure the values were calculated as expected + self.assertEqual(status_obj.run_time_info["dummy_step"]["avg_run_time"], expected_avg) + self.assertEqual(status_obj.run_time_info["dummy_step"]["run_time_std_dev"], expected_std_dev) + + +if __name__ == "__main__": + unittest.main()

uKPAGu$3bsCwO8s+ammfyxakMX732vllDz3m+V`cb|5Q z1=X*>w2KV{b;TOAH-)^?w@PFDQIu`;ozM&gGn-hC;^)QqO`pkA6+%rtcp`Cxo<9g5 z9(E^TR>Mw^O4H#w16UBUfrGDk&l(8h;_yhE&#g!a&vv;jPR-b9U0OS8>@+bJG$(+} zBC9F_#+{TR`^>!ocX=uK$rW{lNdkC;>H9cg4fRaj#T`1A{V~ZsPf%Qw((k+dTia%c zBGQuC2jse?2MimH8e)>jdFwwtoMj&q=WB0U=A9qn?4zOVfRlT*y0)?{RDL{{uB{7c z#=?GaEu0Gl=ebLtf>)TA+RG#J*H$e2*m%GBcXi?Y=ACu9t8CtM2TMKZ(N=`A@|6vZ z7vr$2Ys3ms?Vo2?AWhZL%J*o{FQE3#6B2E6egR{rXBZX=iU(&$(vaGIxG>Uv=FBUx zF85WZ0K5CCrB@DDI~T{&GN{=1^l-)LLM@|%rAyjH?L)X9++W48eHrmqvCNa8-C7#`)6QE=X87C?M*K@N(7HyE)MwC z6*c?&n@wTk-kb2RY56;;L$>9bxZ*d^0r5q|fI$#7LguZ6mTmFE8}FIrPV>AIyL~hD znE(TMdv=8**_%&U?| zQzX7w-6v0XiZv!pQM;>TOi>4F+YXyF$iZq4>U|e4{y~k_H-+um!Da9NyZA7gDh8>4 zZR2&*0!J3X+*KoZXdgQlaH{$l(&hoo+XZD`m?pcI8ZnZ=Y_N`CMPe2YY!J+cZ|MXt zbnP`D>tw9E6dELE8N0JUg7JN4z@3@%of=irbjP?wVi$nx%|Gb+y2|=#Yh zQ^<}N zB?m+AmJ8U@piuc6x@|Y*mS83vmmtQ))wnn^1Xa9FVv?rk)22u7>gV5XRQ7Xx(S9AO zo-S>JBP+&z_@bL-FJMfARr@y0ham)b_G8%3uVbZ6o|LjG{X0}KR~b6N=XHw8b=Y0X z#NuNfnyAMFGtRp_%ouvb1B*y(cXVE)y~=8=zavaN`)5+17_+{wXx! z3kR(WS9SR-)sGK0D964XjTvdxT@g*09y&T2$x5n~Jas(k(qv3}T|mlatIN;!F@O`S z$BuBLPuezB2rKSb@1sx|$`geolf%_WcI*Rv!qd)*8HAK|7_hYJTXw{lWoVCjE&`;( ze(7FDuuRCBBE0Vq?AK645JnaR|Ba}x^b^ns%>vD|Z0!whR(ATMmvlrM&#o0VN%#9I zY4E3HVHX`6F!2n|e|ZfdxLkWq2o{@4ca|sSQVy-)YpGwg_2Of0$;u}!Kw3FzmSOa@ z+R>VpZ>abyW0^=LF_74y<2`A}5{ep!yqE0o3@Tw-OnjYb-SX*wND}^y<$Ia)|FhS%orqeASAF6x{i_f^g<;*sZ*8XRC=I*Bx(9ELd!*m zK{Jglsk7>mpD@S#FtvgA)X9lRiDKN;=u~mIB5~T&qQ_M6Mc}2Kb947}ey&B9@s3?+A}OBM03rc%CWL%aY$@V8aN;l-O3>dEBM0SD+K=(%6!`HZskB0;t_(=AgvE%w=J$BD--gfXtJdD*+}l5vLh37$ z5Ws!xz(<&aK-D-&7G%}qgL6#l7-{ATlQ`S1L4 zE5SP2UrNdU$4B-5L&K_DThisXF~27>30_&Fsjw{|6@{o>O(~n3yGsTA_4&o}jSYXn z$H~Y3$~xPlFjEEi`x@`rx2YWX*Vq1U8q|MQsQ%YyuPyNR{_2uK%K1Y0Gu;?+%j{;| IjXRJ2551U_VgLXD literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/inside-pager.png b/docs/assets/images/monitoring/status_cmds/inside-pager.png new file mode 100644 index 0000000000000000000000000000000000000000..9a867419f92ec46e8dbddccf05bcaaf5fc1fccd1 GIT binary patch literal 60180 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 AZU6uP literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/layout-table.png b/docs/assets/images/monitoring/status_cmds/layout-table.png new file mode 100644 index 0000000000000000000000000000000000000000..d69d3575b2f8e133d23ea4922a40d833c72d4ce2 GIT binary patch literal 103436 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 W9bNd@&F-hfTtQA%wnEx0_`d*T7AErm literal 0 HcmV?d00001 diff --git a/docs/assets/images/monitoring/status_cmds/max-tasks-prompt.png b/docs/assets/images/monitoring/status_cmds/max-tasks-prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..d8239e414f72f8ea42f2969fe95da138e43994dc GIT binary patch literal 55625 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.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