From 1df179f406ba53e459f5c47223515d1d94f5dd21 Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Mon, 2 Oct 2023 10:34:49 -0700 Subject: [PATCH 1/8] build: Prepare v1.15 release. --- .yarn/versions/22a0caa2.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .yarn/versions/22a0caa2.yml diff --git a/.yarn/versions/22a0caa2.yml b/.yarn/versions/22a0caa2.yml new file mode 100644 index 00000000000..28fac241db0 --- /dev/null +++ b/.yarn/versions/22a0caa2.yml @@ -0,0 +1,9 @@ +releases: + "@moonrepo/cli": minor + "@moonrepo/core-linux-arm64-gnu": minor + "@moonrepo/core-linux-arm64-musl": minor + "@moonrepo/core-linux-x64-gnu": minor + "@moonrepo/core-linux-x64-musl": minor + "@moonrepo/core-macos-arm64": minor + "@moonrepo/core-macos-x64": minor + "@moonrepo/core-windows-x64-msvc": minor From 3ee5c87cd29f1915ba16627ecc37e0a133596146 Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Thu, 5 Oct 2023 21:23:49 -0700 Subject: [PATCH 2/8] deps: Upgrade to Rust v1.73. (#1100) --- .moon/toolchain.yml | 2 +- rust-toolchain.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.moon/toolchain.yml b/.moon/toolchain.yml index 8d2c21b8540..c9a934ccdb3 100644 --- a/.moon/toolchain.yml +++ b/.moon/toolchain.yml @@ -1,7 +1,7 @@ $schema: '../website/static/schemas/toolchain.json' rust: - version: '1.72.1' + version: '1.73.0' bins: - 'cargo-make' - 'cargo-nextest' diff --git a/rust-toolchain.toml b/rust-toolchain.toml index afe2102addd..2bc9147a8a8 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -2,4 +2,4 @@ # The default profile includes rustc, rust-std, cargo, rust-docs, rustfmt and clippy. # https://rust-lang.github.io/rustup/concepts/profiles.html profile = "default" -channel = "1.72.1" +channel = "1.73.0" From 07ea19ad57cda7aac94446842f7d90400b20219c Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Fri, 6 Oct 2023 16:58:25 -0700 Subject: [PATCH 3/8] new: Implement a new action graph. (#1093) * Start on new graph. * More graph work. * Add caching to lookups. * Add node labels. * Add graph. * Start on topo and tests. * Add basic tests. * Add tests. * Add run task. * Use digraph. * Update docs. * Add back link. * Add cycle stuff. * Add test utils crate. * Start on new test utils crate. * Add target tests. * Test deps. * Rework peer dep. * Add dependents. * Polish. * Bump visualizer. * Fix test. --- .yarn/versions/22a0caa2.yml | 17 +- Cargo.lock | 40 + crates/core/dep-graph/tests/dep_graph_test.rs | 4 +- ...n_target__moves_persistent_tasks_last.snap | 16 +- nextgen/action-graph/Cargo.toml | 29 + nextgen/action-graph/src/action_graph.rs | 151 +++ .../action-graph/src/action_graph_builder.rs | 419 +++++++ .../action-graph/src/action_graph_error.rs | 9 + nextgen/action-graph/src/action_node.rs | 106 ++ nextgen/action-graph/src/lib.rs | 9 + .../dep-workspace/.moon/toolchain.yml | 2 + .../__fixtures__/dep-workspace/in/moon.yml | 1 + .../__fixtures__/dep-workspace/out/moon.yml | 1 + .../__fixtures__/dep-workspace/package.json | 3 + .../__fixtures__/projects/.moon/toolchain.yml | 6 + .../tests/__fixtures__/projects/bar/moon.yml | 1 + .../tests/__fixtures__/projects/baz/moon.yml | 5 + .../tests/__fixtures__/projects/foo/moon.yml | 1 + .../tests/__fixtures__/projects/package.json | 3 + .../tests/__fixtures__/projects/qux/moon.yml | 1 + .../tests/__fixtures__/tasks/base/moon.yml | 3 + .../tests/__fixtures__/tasks/client/moon.yml | 14 + .../tests/__fixtures__/tasks/common/moon.yml | 9 + .../__fixtures__/tasks/deps-external/moon.yml | 3 + .../tests/__fixtures__/tasks/deps/moon.yml | 31 + .../tests/__fixtures__/tasks/server/moon.yml | 10 + .../action-graph/tests/action_graph_test.rs | 1008 +++++++++++++++++ ...t__action_graph__install_deps__graphs.snap | 12 + ..._project_when_not_in_depman_workspace.snap | 14 + ..._test__action_graph__run_task__graphs.snap | 17 + ...can_have_a_diff_platform_from_project.snap | 19 + ...n_graph__run_task_by_target__runs_all.snap | 31 + ...n_task_by_target__runs_all_with_query.snap | 14 + ...__run_task_by_target__runs_by_project.snap | 23 + ...n_graph__run_task_by_target__runs_tag.snap | 25 + ..._by_target_locator__runs_by_file_path.snap | 14 + ...ask_by_target_locator__runs_by_target.snap | 14 + ...task_dependencies__can_create_a_chain.snap | 20 + ...pendencies__doesnt_include_dependents.snap | 14 + ...ask_dependencies__includes_dependents.snap | 23 + ...k_dependencies__runs_deps_in_parallel.snap | 23 + ...ask_dependencies__runs_deps_in_serial.snap | 23 + ...est__action_graph__setup_tool__graphs.snap | 12 + ...aph__setup_tool__graphs_same_platform.snap | 14 + ...t__action_graph__sync_project__graphs.snap | 15 + ..._graph__sync_project__graphs_multiple.snap | 17 + ...on_graph__sync_project__graphs_single.snap | 12 + ..._sync_project__graphs_single_with_dep.snap | 15 + ..._sync_project__inherits_platform_tool.snap | 16 + ...c_project__supports_platform_override.snap | 16 + ..._action_graph__sync_workspace__graphs.snap | 8 + nextgen/action-graph/tests/utils.rs | 27 + .../tests/inherited_tasks_config_test.rs | 2 - nextgen/platform-runtime/src/lib.rs | 4 + .../project-builder/src/project_builder.rs | 52 +- nextgen/project-graph/Cargo.toml | 1 + nextgen/project-graph/src/project_graph.rs | 83 +- .../src/project_graph_builder.rs | 41 +- .../project-graph/tests/project_graph_test.rs | 164 +-- nextgen/task/src/lib.rs | 2 +- nextgen/test-utils/Cargo.toml | 23 + nextgen/test-utils/src/lib.rs | 5 + nextgen/test-utils/src/platform_manager.rs | 32 + nextgen/test-utils/src/project_graph.rs | 132 +++ packages/cli/CHANGELOG.md | 57 + packages/report/tests/action.test.ts | 2 +- packages/report/tests/report.test.ts | 48 +- packages/visualizer/src/helpers/render.ts | 6 +- website/docs/commands/dep-graph.mdx | 2 +- website/docs/concepts/project.mdx | 2 +- website/docs/concepts/task.mdx | 10 +- website/docs/config/project.mdx | 4 +- website/docs/editors/vscode.mdx | 2 +- .../{dep-graph.mdx => action-graph.mdx} | 44 +- website/docs/how-it-works/project-graph.mdx | 2 +- website/docs/run-task.mdx | 2 +- website/docusaurus.config.js | 4 + website/sidebars.js | 2 +- .../Docs/{DepGraph.tsx => ActionGraph.tsx} | 20 +- 79 files changed, 2786 insertions(+), 302 deletions(-) create mode 100644 nextgen/action-graph/Cargo.toml create mode 100644 nextgen/action-graph/src/action_graph.rs create mode 100644 nextgen/action-graph/src/action_graph_builder.rs create mode 100644 nextgen/action-graph/src/action_graph_error.rs create mode 100644 nextgen/action-graph/src/action_node.rs create mode 100644 nextgen/action-graph/src/lib.rs create mode 100644 nextgen/action-graph/tests/__fixtures__/dep-workspace/.moon/toolchain.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/dep-workspace/in/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/dep-workspace/out/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/dep-workspace/package.json create mode 100644 nextgen/action-graph/tests/__fixtures__/projects/.moon/toolchain.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/projects/bar/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/projects/baz/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/projects/foo/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/projects/package.json create mode 100644 nextgen/action-graph/tests/__fixtures__/projects/qux/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/tasks/base/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/tasks/client/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/tasks/common/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/tasks/deps-external/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/tasks/deps/moon.yml create mode 100644 nextgen/action-graph/tests/__fixtures__/tasks/server/moon.yml create mode 100644 nextgen/action-graph/tests/action_graph_test.rs create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__graphs.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__installs_in_project_when_not_in_depman_workspace.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__graphs.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__task_can_have_a_diff_platform_from_project.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all_with_query.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_by_project.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_tag.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_file_path.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_target.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__can_create_a_chain.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__doesnt_include_dependents.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__includes_dependents.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_parallel.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_serial.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs_same_platform.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_multiple.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single_with_dep.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__inherits_platform_tool.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__supports_platform_override.snap create mode 100644 nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_workspace__graphs.snap create mode 100644 nextgen/action-graph/tests/utils.rs create mode 100644 nextgen/test-utils/Cargo.toml create mode 100644 nextgen/test-utils/src/lib.rs create mode 100644 nextgen/test-utils/src/platform_manager.rs create mode 100644 nextgen/test-utils/src/project_graph.rs rename website/docs/how-it-works/{dep-graph.mdx => action-graph.mdx} (68%) rename website/src/components/Docs/{DepGraph.tsx => ActionGraph.tsx} (87%) diff --git a/.yarn/versions/22a0caa2.yml b/.yarn/versions/22a0caa2.yml index 28fac241db0..ead60d33b1b 100644 --- a/.yarn/versions/22a0caa2.yml +++ b/.yarn/versions/22a0caa2.yml @@ -1,9 +1,10 @@ releases: - "@moonrepo/cli": minor - "@moonrepo/core-linux-arm64-gnu": minor - "@moonrepo/core-linux-arm64-musl": minor - "@moonrepo/core-linux-x64-gnu": minor - "@moonrepo/core-linux-x64-musl": minor - "@moonrepo/core-macos-arm64": minor - "@moonrepo/core-macos-x64": minor - "@moonrepo/core-windows-x64-msvc": minor + '@moonrepo/cli': minor + '@moonrepo/core-linux-arm64-gnu': minor + '@moonrepo/core-linux-arm64-musl': minor + '@moonrepo/core-linux-x64-gnu': minor + '@moonrepo/core-linux-x64-musl': minor + '@moonrepo/core-macos-arm64': minor + '@moonrepo/core-macos-x64': minor + '@moonrepo/core-windows-x64-msvc': minor + '@moonrepo/visualizer': minor diff --git a/Cargo.lock b/Cargo.lock index e1e0b9db207..fb827287c7f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3026,6 +3026,28 @@ dependencies = [ "serde", ] +[[package]] +name = "moon_action_graph" +version = "0.1.0" +dependencies = [ + "miette", + "moon_common", + "moon_config", + "moon_platform", + "moon_platform_runtime", + "moon_project", + "moon_project_graph", + "moon_query", + "moon_task", + "moon_test_utils2", + "petgraph", + "rustc-hash", + "starbase_sandbox", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "moon_action_pipeline" version = "0.1.0" @@ -3733,6 +3755,7 @@ dependencies = [ "moon_query", "moon_task", "moon_task_builder", + "moon_test_utils2", "moon_vcs", "once_map", "petgraph", @@ -3969,6 +3992,23 @@ dependencies = [ "tokio", ] +[[package]] +name = "moon_test_utils2" +version = "0.1.0" +dependencies = [ + "miette", + "moon_config", + "moon_node_platform", + "moon_platform", + "moon_project_graph", + "moon_rust_platform", + "moon_system_platform", + "moon_vcs", + "proto_core", + "starbase_events", + "starbase_sandbox", +] + [[package]] name = "moon_time" version = "0.1.0" diff --git a/crates/core/dep-graph/tests/dep_graph_test.rs b/crates/core/dep-graph/tests/dep_graph_test.rs index 33115869642..309dcaa57ba 100644 --- a/crates/core/dep-graph/tests/dep_graph_test.rs +++ b/crates/core/dep-graph/tests/dep_graph_test.rs @@ -262,11 +262,11 @@ mod run_target { vec![NodeIndex::new(1)], vec![ NodeIndex::new(2), - NodeIndex::new(5), + NodeIndex::new(4), NodeIndex::new(6), NodeIndex::new(7) ], - vec![NodeIndex::new(4), NodeIndex::new(12), NodeIndex::new(13)], + vec![NodeIndex::new(5), NodeIndex::new(12), NodeIndex::new(13)], vec![NodeIndex::new(3), NodeIndex::new(11)], vec![NodeIndex::new(0)], vec![ diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap index f79a3d06563..2bf3c186a08 100644 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap +++ b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap @@ -7,8 +7,8 @@ digraph { 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] 3 [ label="SyncNodeProject(persistent)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="SyncNodeProject(buildA)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(buildC)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] + 4 [ label="SyncNodeProject(buildC)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] + 5 [ label="SyncNodeProject(buildA)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] 6 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] 7 [ label="SyncNodeProject(noTasks)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] 8 [ label="RunPersistentTarget(persistent:dev)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] @@ -21,13 +21,13 @@ digraph { 2 -> 1 [ arrowhead=box, arrowtail=box] 3 -> 1 [ arrowhead=box, arrowtail=box] 4 -> 1 [ arrowhead=box, arrowtail=box] + 3 -> 4 [ arrowhead=box, arrowtail=box] 5 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 5 [ arrowhead=box, arrowtail=box] + 5 -> 4 [ arrowhead=box, arrowtail=box] 6 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 6 [ arrowhead=box, arrowtail=box] + 5 -> 6 [ arrowhead=box, arrowtail=box] 7 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 7 [ arrowhead=box, arrowtail=box] - 3 -> 4 [ arrowhead=box, arrowtail=box] + 5 -> 7 [ arrowhead=box, arrowtail=box] 3 -> 5 [ arrowhead=box, arrowtail=box] 8 -> 2 [ arrowhead=box, arrowtail=box] 8 -> 3 [ arrowhead=box, arrowtail=box] @@ -36,11 +36,11 @@ digraph { 10 -> 2 [ arrowhead=box, arrowtail=box] 10 -> 3 [ arrowhead=box, arrowtail=box] 11 -> 2 [ arrowhead=box, arrowtail=box] - 11 -> 4 [ arrowhead=box, arrowtail=box] + 11 -> 5 [ arrowhead=box, arrowtail=box] 12 -> 2 [ arrowhead=box, arrowtail=box] 12 -> 6 [ arrowhead=box, arrowtail=box] 13 -> 2 [ arrowhead=box, arrowtail=box] - 13 -> 5 [ arrowhead=box, arrowtail=box] + 13 -> 4 [ arrowhead=box, arrowtail=box] 11 -> 12 [ arrowhead=box, arrowtail=box] 11 -> 13 [ arrowhead=box, arrowtail=box] 10 -> 11 [ arrowhead=box, arrowtail=box] diff --git a/nextgen/action-graph/Cargo.toml b/nextgen/action-graph/Cargo.toml new file mode 100644 index 00000000000..72b0af7abc1 --- /dev/null +++ b/nextgen/action-graph/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "moon_action_graph" +version = "0.1.0" +edition = "2021" +license = "MIT" +description = "Dependency graph for actions (tasks)." +homepage = "https://moonrepo.dev/moon" +repository = "https://github.com/moonrepo/moon" + +[dependencies] +moon_common = { path = "../common" } +# TODO remove +moon_platform = { path = "../../crates/core/platform" } +moon_platform_runtime = { path = "../platform-runtime" } +moon_project = { path = "../project" } +moon_project_graph = { path = "../project-graph" } +moon_task = { path = "../task" } +moon_query = { path = "../query" } +miette = { workspace = true } +petgraph = { workspace = true } +rustc-hash = { workspace = true } +thiserror = { workspace = true } +tracing = { workspace = true } + +[dev-dependencies] +moon_config = { path = "../config" } +moon_test_utils2 = { path = "../test-utils" } +starbase_sandbox = { workspace = true } +tokio = { workspace = true } diff --git a/nextgen/action-graph/src/action_graph.rs b/nextgen/action-graph/src/action_graph.rs new file mode 100644 index 00000000000..7cb832ab873 --- /dev/null +++ b/nextgen/action-graph/src/action_graph.rs @@ -0,0 +1,151 @@ +use crate::action_graph_error::ActionGraphError; +use crate::action_node::ActionNode; +use moon_common::is_test_env; +use petgraph::dot::{Config, Dot}; +use petgraph::prelude::*; +use petgraph::visit::{IntoEdgeReferences, IntoNodeReferences}; +use rustc_hash::{FxHashMap, FxHashSet}; +use std::collections::VecDeque; + +pub type GraphType = DiGraph; +pub type IndicesMap = FxHashMap; + +pub struct ActionGraph { + graph: GraphType, + indices: IndicesMap, + + // States when iterating + queue: VecDeque, + visited: FxHashSet, +} + +impl ActionGraph { + pub fn new(graph: GraphType, indices: IndicesMap) -> Self { + ActionGraph { + graph, + indices, + queue: VecDeque::default(), + visited: FxHashSet::default(), + } + } + + pub fn reset_iterator(&mut self) -> miette::Result<()> { + self.detect_cycle()?; + + self.queue.clear(); + self.visited.clear(); + + // Extract root/initial nodes (those without edges) + self.queue.extend(self.graph.node_indices().filter(|&idx| { + self.graph + .neighbors_directed(idx, Outgoing) + .next() + .is_none() + })); + + Ok(()) + } + + pub fn is_empty(&self) -> bool { + self.get_node_count() == 0 + } + + pub fn get_index_from_node(&self, node: &ActionNode) -> Option<&NodeIndex> { + self.indices.get(node) + } + + pub fn get_node_count(&self) -> usize { + self.graph.node_count() + } + + pub fn get_node_from_index(&self, index: &NodeIndex) -> Option<&ActionNode> { + self.graph.node_weight(*index) + } + + pub fn to_dot(&self) -> String { + type DotGraph = DiGraph; + + let is_test = is_test_env() || cfg!(debug_assertions); + let graph = self.graph.map(|_, n| n.label(), |_, _| ()); + + let edge = |_: &DotGraph, e: <&DotGraph as IntoEdgeReferences>::EdgeRef| { + if is_test { + String::new() + } else if e.source().index() == 0 { + String::from("arrowhead=none") + } else { + String::from("arrowhead=box, arrowtail=box") + } + }; + + let node = |_: &DotGraph, n: <&DotGraph as IntoNodeReferences>::NodeRef| { + if is_test { + format!("label=\"{}\" ", n.1) + } else { + format!( + "label=\"{}\" style=filled, shape=oval, fillcolor=gray, fontcolor=black ", + n.1 + ) + } + }; + + let dot = Dot::with_attr_getters( + &graph, + &[Config::EdgeNoLabel, Config::NodeNoLabel], + &edge, + &node, + ); + + format!("{dot:?}") + } + + pub fn to_labeled_graph(&self) -> DiGraph { + self.graph.map(|_, n| n.label(), |_, _| String::new()) + } + + fn detect_cycle(&self) -> miette::Result<()> { + if self.get_node_count() > 1 { + if let Err(cycle) = petgraph::algo::toposort(&self.graph, None) { + return Err(ActionGraphError::CycleDetected( + self.get_node_from_index(&cycle.node_id()) + .map(|n| n.label()) + .unwrap_or_else(|| "(unknown)".into()), + ) + .into()); + } + } + + Ok(()) + } +} + +// This is based on the `Topo` struct from petgraph! +impl Iterator for ActionGraph { + type Item = ActionNode; + + fn next(&mut self) -> Option { + while let Some(idx) = self.queue.pop_front() { + if self.visited.contains(&idx) { + continue; + } + + self.visited.insert(idx); + + for neighbor in self.graph.neighbors_directed(idx, Direction::Incoming) { + // Look at each neighbor, and those that only have incoming edges + // from the already ordered list, they are the next to visit. + if self + .graph + .neighbors_directed(neighbor, Direction::Outgoing) + .all(|b| self.visited.contains(&b)) + { + self.queue.push_back(neighbor); + } + } + + return self.graph.node_weight(idx).map(|n| n.to_owned()); + } + + None + } +} diff --git a/nextgen/action-graph/src/action_graph_builder.rs b/nextgen/action-graph/src/action_graph_builder.rs new file mode 100644 index 00000000000..ee51775871d --- /dev/null +++ b/nextgen/action-graph/src/action_graph_builder.rs @@ -0,0 +1,419 @@ +use crate::action_graph::ActionGraph; +use crate::action_node::ActionNode; +use moon_common::{color, path::WorkspaceRelativePathBuf}; +use moon_platform::{PlatformManager, Runtime}; +use moon_project::Project; +use moon_project_graph::ProjectGraph; +use moon_query::{build_query, Criteria}; +use moon_task::{Target, TargetError, TargetLocator, TargetScope, Task}; +use petgraph::prelude::*; +use rustc_hash::{FxHashMap, FxHashSet}; +use tracing::{debug, trace}; + +type TouchedFilePaths = FxHashSet; + +pub struct ActionGraphBuilder<'app> { + pub include_dependents: bool, + + all_query: Option, + graph: DiGraph, + indices: FxHashMap, + platform_manager: &'app PlatformManager, + project_graph: &'app ProjectGraph, +} + +impl<'app> ActionGraphBuilder<'app> { + pub fn new(project_graph: &'app ProjectGraph) -> miette::Result { + ActionGraphBuilder::with_platforms(PlatformManager::read(), project_graph) + } + + pub fn with_platforms( + platform_manager: &'app PlatformManager, + project_graph: &'app ProjectGraph, + ) -> miette::Result { + Ok(ActionGraphBuilder { + all_query: None, + graph: DiGraph::new(), + include_dependents: false, + indices: FxHashMap::default(), + platform_manager, + project_graph, + }) + } + + pub fn build(self) -> miette::Result { + Ok(ActionGraph::new(self.graph, self.indices)) + } + + pub fn get_index_from_node(&self, node: &ActionNode) -> Option<&NodeIndex> { + self.indices.get(node) + } + + pub fn get_runtime( + &self, + project: &Project, + task: Option<&Task>, + allow_override: bool, + ) -> Runtime { + if let Some(platform) = self.platform_manager.find(|p| match task { + Some(task) => p.matches(&task.platform, None), + None => p.matches(&project.platform, None), + }) { + return platform.get_runtime_from_config(if allow_override { + Some(&project.config) + } else { + None + }); + } + + Runtime::system() + } + + pub fn set_query(&mut self, input: &str) -> miette::Result<()> { + self.all_query = Some(build_query(input)?); + + Ok(()) + } + + // ACTIONS + + pub fn install_deps( + &mut self, + project: &Project, + task: Option<&Task>, + ) -> miette::Result> { + let mut in_project = false; + + // If project is NOT in the package manager workspace, then we should + // install dependencies in the project, not the workspace root. + if let Ok(platform) = self.platform_manager.get(project.language.clone()) { + if !platform.is_project_in_dependency_workspace(project.source.as_str())? { + in_project = true; + + debug!( + "Project {} is not within the dependency manager workspace, dependencies will be installed within the project instead of the root", + color::id(&project.id), + ); + } + } + + let node = if in_project { + ActionNode::InstallProjectDeps { + project: project.id.to_owned(), + runtime: self.get_runtime(project, task, true), + } + } else { + ActionNode::InstallDeps { + runtime: self.get_runtime(project, task, false), + } + }; + + if node.get_runtime().platform.is_system() { + return Ok(None); + } + + if let Some(index) = self.get_index_from_node(&node) { + return Ok(Some(*index)); + } + + // Before we install deps, we must ensure the language has been installed + let setup_tool_index = self.setup_tool(node.get_runtime()); + let index = self.insert_node(node); + + self.link_requirements(index, vec![setup_tool_index]); + + Ok(Some(index)) + } + + pub fn run_task( + &mut self, + project: &Project, + task: &Task, + touched_files: Option<&TouchedFilePaths>, + ) -> miette::Result> { + let node = ActionNode::RunTask { + interactive: task.is_interactive(), + persistent: task.is_persistent(), + runtime: self.get_runtime(project, Some(task), true), + target: task.target.to_owned(), + }; + + if let Some(index) = self.get_index_from_node(&node) { + return Ok(Some(*index)); + } + + // Compare against touched files if provided + if let Some(touched) = touched_files { + if !task.is_affected(touched)? { + trace!( + "Task {} not affected based on touched files, skipping", + color::label(&task.target), + ); + + return Ok(None); + } + } + + // We should install deps & sync projects *before* running targets + let mut reqs = vec![]; + + if let Some(install_deps_index) = self.install_deps(project, Some(task))? { + reqs.push(install_deps_index); + } + + reqs.push(self.sync_project(project)?); + + let index = self.insert_node(node); + + // And we also need to create edges for task dependencies + if !task.deps.is_empty() { + trace!( + deps = ?task.deps.iter().map(|d| d.as_str()).collect::>(), + "Adding dependencies for task {}", + color::label(&task.target), + ); + reqs.extend(self.run_task_dependencies(task)?); + } + + self.link_requirements(index, reqs); + + // And possibly dependents + if self.include_dependents { + self.run_task_dependents(task)?; + } + + Ok(Some(index)) + } + + // We don't pass touched files to dependencies, because if the parent + // task is affected/going to run, then so should all of these! + pub fn run_task_dependencies(&mut self, task: &Task) -> miette::Result> { + let parallel = task.options.run_deps_in_parallel; + let mut indices = vec![]; + let mut previous_target_index = None; + + for dep_target in &task.deps { + let (_, dep_indices) = self.run_task_by_target(dep_target, None)?; + + for dep_index in dep_indices { + // When parallel, parent depends on child + if parallel { + indices.push(dep_index); + + // When serial, next child depends on previous child + } else if let Some(prev) = previous_target_index { + self.link_requirements(dep_index, vec![prev]); + } + + previous_target_index = Some(dep_index); + } + } + + if !parallel { + indices.push(previous_target_index.unwrap()); + } + + Ok(indices) + } + + // This is costly, is there a better way to do this? + pub fn run_task_dependents(&mut self, task: &Task) -> miette::Result> { + let mut indices = vec![]; + + if let TargetScope::Project(project_locator) = &task.target.scope { + let project = self.project_graph.get(project_locator)?; + + // From self project + for dep_task in project.tasks.values() { + if dep_task.deps.contains(&task.target) { + if let Some(index) = self.run_task(&project, dep_task, None)? { + indices.push(index); + } + } + } + + // From other projects + for dependent_id in self.project_graph.dependents_of(&project)? { + let dep_project = self.project_graph.get(dependent_id)?; + + for dep_task in dep_project.tasks.values() { + if dep_task.deps.contains(&task.target) { + if let Some(index) = self.run_task(&dep_project, dep_task, None)? { + indices.push(index); + } + } + } + } + } + + Ok(indices) + } + + pub fn run_task_by_target>( + &mut self, + target: T, + touched_files: Option<&TouchedFilePaths>, + ) -> miette::Result<(FxHashSet, FxHashSet)> { + let target = target.as_ref(); + let mut inserted_targets = FxHashSet::default(); + let mut inserted_indices = FxHashSet::default(); + + match &target.scope { + // :task + TargetScope::All => { + let mut projects = vec![]; + + if let Some(all_query) = &self.all_query { + projects.extend(self.project_graph.query(all_query)?); + } else { + projects.extend(self.project_graph.get_all()?); + }; + + for project in projects { + // Don't error if the task does not exist + if let Ok(task) = project.get_task(&target.task_id) { + if let Some(index) = self.run_task(&project, task, touched_files)? { + inserted_targets.insert(task.target.clone()); + inserted_indices.insert(index); + } + } + } + } + // ^:task + TargetScope::Deps => { + return Err(TargetError::NoDepsInRunContext.into()); + } + // project:task + TargetScope::Project(project_locator) => { + let project = self.project_graph.get(project_locator)?; + let task = project.get_task(&target.task_id)?; + + if let Some(index) = self.run_task(&project, task, touched_files)? { + inserted_targets.insert(task.target.to_owned()); + inserted_indices.insert(index); + } + } + // #tag:task + TargetScope::Tag(tag) => { + let projects = self + .project_graph + .query(build_query(format!("tag={}", tag))?)?; + + for project in projects { + // Don't error if the task does not exist + if let Ok(task) = project.get_task(&target.task_id) { + if let Some(index) = self.run_task(&project, task, touched_files)? { + inserted_targets.insert(task.target.clone()); + inserted_indices.insert(index); + } + } + } + } + // ~:task + TargetScope::OwnSelf => { + return Err(TargetError::NoSelfInRunContext.into()); + } + }; + + Ok((inserted_targets, inserted_indices)) + } + + pub fn run_task_by_target_locator>( + &mut self, + target_locator: T, + touched_files: Option<&TouchedFilePaths>, + ) -> miette::Result<(FxHashSet, FxHashSet)> { + match target_locator.as_ref() { + TargetLocator::Qualified(target) => self.run_task_by_target(target, touched_files), + TargetLocator::TaskFromWorkingDir(task_id) => self.run_task_by_target( + Target::new(&self.project_graph.get_from_path(None)?.id, task_id)?, + touched_files, + ), + } + } + + pub fn setup_tool(&mut self, runtime: &Runtime) -> NodeIndex { + let node = ActionNode::SetupTool { + runtime: runtime.to_owned(), + }; + + if let Some(index) = self.get_index_from_node(&node) { + return *index; + } + + let sync_workspace_index = self.sync_workspace(); + let index = self.insert_node(node); + + self.link_requirements(index, vec![sync_workspace_index]); + + index + } + + pub fn sync_project(&mut self, project: &Project) -> miette::Result { + let node = ActionNode::SyncProject { + project: project.id.clone(), + runtime: self.get_runtime(project, None, true), + }; + + if let Some(index) = self.get_index_from_node(&node) { + return Ok(*index); + } + + // Syncing requires the language's tool to be installed + let setup_tool_index = self.setup_tool(node.get_runtime()); + let index = self.insert_node(node); + let mut reqs = vec![setup_tool_index]; + + // And we should also depend on other projects + for dep_project_id in self.project_graph.dependencies_of(project)? { + let dep_project = self.project_graph.get(dep_project_id)?; + let dep_project_index = self.sync_project(&dep_project)?; + + if index != dep_project_index { + reqs.push(dep_project_index); + } + } + + self.link_requirements(index, reqs); + + Ok(index) + } + + pub fn sync_workspace(&mut self) -> NodeIndex { + let node = ActionNode::SyncWorkspace; + + if let Some(index) = self.get_index_from_node(&node) { + return *index; + } + + self.insert_node(node) + } + + // PRIVATE + + fn link_requirements(&mut self, index: NodeIndex, reqs: Vec) { + trace!( + index = index.index(), + requires = ?reqs, + "Linking requirements for index" + ); + + for req in reqs { + self.graph.add_edge(index, req, ()); + } + } + + fn insert_node(&mut self, node: ActionNode) -> NodeIndex { + let index = self.graph.add_node(node.clone()); + + debug!( + index = index.index(), + "Adding {} to graph", + color::muted_light(node.label()) + ); + + self.indices.insert(node, index); + + index + } +} diff --git a/nextgen/action-graph/src/action_graph_error.rs b/nextgen/action-graph/src/action_graph_error.rs new file mode 100644 index 00000000000..59e37ddd11e --- /dev/null +++ b/nextgen/action-graph/src/action_graph_error.rs @@ -0,0 +1,9 @@ +use miette::Diagnostic; +use moon_common::{Style, Stylize}; +use thiserror::Error; + +#[derive(Error, Debug, Diagnostic)] +pub enum ActionGraphError { + #[error("A dependency cycle has been detected for {}.", .0.style(Style::Label))] + CycleDetected(String), +} diff --git a/nextgen/action-graph/src/action_node.rs b/nextgen/action-graph/src/action_node.rs new file mode 100644 index 00000000000..a691c58de60 --- /dev/null +++ b/nextgen/action-graph/src/action_node.rs @@ -0,0 +1,106 @@ +use moon_common::Id; +use moon_platform_runtime::Runtime; +use moon_task::Target; +use std::hash::{Hash, Hasher}; + +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ActionNode { + /// Install tool dependencies in the workspace root. + InstallDeps { runtime: Runtime }, + + /// Install tool dependencies in the project root. + InstallProjectDeps { project: Id, runtime: Runtime }, + + /// Run a project's task. + RunTask { + interactive: bool, // Interactively with stdin + persistent: bool, // Never terminates + runtime: Runtime, + target: Target, + }, + + /// Setup a tool + version for the provided platform. + SetupTool { runtime: Runtime }, + + /// Sync a project with language specific semantics. + SyncProject { project: Id, runtime: Runtime }, + + /// Sync the entire moon workspace. + /// Install system dependencies. + SyncWorkspace, +} + +impl ActionNode { + pub fn get_runtime(&self) -> &Runtime { + match self { + Self::InstallDeps { runtime } => runtime, + Self::InstallProjectDeps { runtime, .. } => runtime, + Self::RunTask { runtime, .. } => runtime, + Self::SetupTool { runtime } => runtime, + Self::SyncProject { runtime, .. } => runtime, + Self::SyncWorkspace => unreachable!(), + } + } + + pub fn is_interactive(&self) -> bool { + match self { + Self::RunTask { interactive, .. } => *interactive, + _ => false, + } + } + + pub fn is_persistent(&self) -> bool { + match self { + Self::RunTask { persistent, .. } => *persistent, + _ => false, + } + } + + pub fn label(&self) -> String { + match self { + Self::InstallDeps { runtime } => { + format!("Install{runtime}Deps({})", runtime.requirement) + } + Self::InstallProjectDeps { runtime, project } => { + format!( + "Install{runtime}DepsInProject({}, {project})", + runtime.requirement + ) + } + Self::RunTask { + interactive, + persistent, + target, + .. + } => { + format!( + "Run{}Task({target})", + if *persistent { + "Persistent" + } else if *interactive { + "Interactive" + } else { + "" + } + ) + } + Self::SetupTool { runtime } => { + if runtime.platform.is_system() { + "SetupSystemTool".into() + } else { + format!("Setup{runtime}Tool({})", runtime.requirement) + } + } + Self::SyncProject { runtime, project } => { + format!("Sync{runtime}Project({project})") + } + Self::SyncWorkspace => "SyncWorkspace".into(), + } + } +} + +impl Hash for ActionNode { + fn hash(&self, state: &mut H) { + self.label().hash(state); + } +} diff --git a/nextgen/action-graph/src/lib.rs b/nextgen/action-graph/src/lib.rs new file mode 100644 index 00000000000..913205c5436 --- /dev/null +++ b/nextgen/action-graph/src/lib.rs @@ -0,0 +1,9 @@ +mod action_graph; +mod action_graph_builder; +mod action_graph_error; +mod action_node; + +pub use action_graph::*; +pub use action_graph_builder::*; +pub use action_graph_error::*; +pub use action_node::*; diff --git a/nextgen/action-graph/tests/__fixtures__/dep-workspace/.moon/toolchain.yml b/nextgen/action-graph/tests/__fixtures__/dep-workspace/.moon/toolchain.yml new file mode 100644 index 00000000000..88c6fbe7e3e --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/dep-workspace/.moon/toolchain.yml @@ -0,0 +1,2 @@ +node: + version: '20.0.0' diff --git a/nextgen/action-graph/tests/__fixtures__/dep-workspace/in/moon.yml b/nextgen/action-graph/tests/__fixtures__/dep-workspace/in/moon.yml new file mode 100644 index 00000000000..f1de67fbd7f --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/dep-workspace/in/moon.yml @@ -0,0 +1 @@ +language: javascript diff --git a/nextgen/action-graph/tests/__fixtures__/dep-workspace/out/moon.yml b/nextgen/action-graph/tests/__fixtures__/dep-workspace/out/moon.yml new file mode 100644 index 00000000000..30d34adef1c --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/dep-workspace/out/moon.yml @@ -0,0 +1 @@ +language: typescript diff --git a/nextgen/action-graph/tests/__fixtures__/dep-workspace/package.json b/nextgen/action-graph/tests/__fixtures__/dep-workspace/package.json new file mode 100644 index 00000000000..ab0250ab062 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/dep-workspace/package.json @@ -0,0 +1,3 @@ +{ + "workspaces": ["in"] +} diff --git a/nextgen/action-graph/tests/__fixtures__/projects/.moon/toolchain.yml b/nextgen/action-graph/tests/__fixtures__/projects/.moon/toolchain.yml new file mode 100644 index 00000000000..edf14aa87de --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/projects/.moon/toolchain.yml @@ -0,0 +1,6 @@ +node: + version: '20.0.0' + packageManager: 'npm' + +rust: + version: '1.70.0' diff --git a/nextgen/action-graph/tests/__fixtures__/projects/bar/moon.yml b/nextgen/action-graph/tests/__fixtures__/projects/bar/moon.yml new file mode 100644 index 00000000000..f1de67fbd7f --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/projects/bar/moon.yml @@ -0,0 +1 @@ +language: javascript diff --git a/nextgen/action-graph/tests/__fixtures__/projects/baz/moon.yml b/nextgen/action-graph/tests/__fixtures__/projects/baz/moon.yml new file mode 100644 index 00000000000..0a620fec5d0 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/projects/baz/moon.yml @@ -0,0 +1,5 @@ +language: typescript + +toolchain: + node: + version: '18.0.0' diff --git a/nextgen/action-graph/tests/__fixtures__/projects/foo/moon.yml b/nextgen/action-graph/tests/__fixtures__/projects/foo/moon.yml new file mode 100644 index 00000000000..38118b204e1 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/projects/foo/moon.yml @@ -0,0 +1 @@ +dependsOn: [bar] diff --git a/nextgen/action-graph/tests/__fixtures__/projects/package.json b/nextgen/action-graph/tests/__fixtures__/projects/package.json new file mode 100644 index 00000000000..b203b4c6c45 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/projects/package.json @@ -0,0 +1,3 @@ +{ + "workspaces": ["*"] +} diff --git a/nextgen/action-graph/tests/__fixtures__/projects/qux/moon.yml b/nextgen/action-graph/tests/__fixtures__/projects/qux/moon.yml new file mode 100644 index 00000000000..22761ba7ee1 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/projects/qux/moon.yml @@ -0,0 +1 @@ +language: rust diff --git a/nextgen/action-graph/tests/__fixtures__/tasks/base/moon.yml b/nextgen/action-graph/tests/__fixtures__/tasks/base/moon.yml new file mode 100644 index 00000000000..606e4cef104 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/tasks/base/moon.yml @@ -0,0 +1,3 @@ +tasks: + build: + command: 'build' diff --git a/nextgen/action-graph/tests/__fixtures__/tasks/client/moon.yml b/nextgen/action-graph/tests/__fixtures__/tasks/client/moon.yml new file mode 100644 index 00000000000..59d5f8f9696 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/tasks/client/moon.yml @@ -0,0 +1,14 @@ +language: 'javascript' + +dependsOn: ['common', 'server'] + +tags: ['frontend'] + +tasks: + build: + command: 'build' + deps: ['^:build'] + lint: + command: 'lint' + test: + command: 'test' diff --git a/nextgen/action-graph/tests/__fixtures__/tasks/common/moon.yml b/nextgen/action-graph/tests/__fixtures__/tasks/common/moon.yml new file mode 100644 index 00000000000..6a36e76ede4 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/tasks/common/moon.yml @@ -0,0 +1,9 @@ +dependsOn: ['base'] + +tags: ['frontend'] + +tasks: + build: + command: 'build' + lint: + command: 'lint' diff --git a/nextgen/action-graph/tests/__fixtures__/tasks/deps-external/moon.yml b/nextgen/action-graph/tests/__fixtures__/tasks/deps-external/moon.yml new file mode 100644 index 00000000000..bd188ab4774 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/tasks/deps-external/moon.yml @@ -0,0 +1,3 @@ +tasks: + external: + deps: ['deps:base'] diff --git a/nextgen/action-graph/tests/__fixtures__/tasks/deps/moon.yml b/nextgen/action-graph/tests/__fixtures__/tasks/deps/moon.yml new file mode 100644 index 00000000000..0bead8f5582 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/tasks/deps/moon.yml @@ -0,0 +1,31 @@ +tasks: + base: {} + + a: + command: 'a' + b: + command: 'b' + c: + command: 'd' + + parallel: + deps: [c, a, b] + + serial: + deps: [b, c, a] + options: + runDepsInParallel: false + + chain1: + deps: ['chain2'] + chain2: + deps: ['chain3'] + chain3: {} + + internal: + deps: ['base'] + + cycle1: + deps: ['cycle2'] + cycle2: + deps: ['cycle1'] diff --git a/nextgen/action-graph/tests/__fixtures__/tasks/server/moon.yml b/nextgen/action-graph/tests/__fixtures__/tasks/server/moon.yml new file mode 100644 index 00000000000..1cdb6dfa0c2 --- /dev/null +++ b/nextgen/action-graph/tests/__fixtures__/tasks/server/moon.yml @@ -0,0 +1,10 @@ +language: 'rust' + +tasks: + build: + command: 'build' + deps: ['^:build'] + lint: + command: 'lint' + test: + command: 'test' diff --git a/nextgen/action-graph/tests/action_graph_test.rs b/nextgen/action-graph/tests/action_graph_test.rs new file mode 100644 index 00000000000..de0b9e52d44 --- /dev/null +++ b/nextgen/action-graph/tests/action_graph_test.rs @@ -0,0 +1,1008 @@ +#![allow(clippy::disallowed_names)] + +mod utils; + +use moon_action_graph::*; +use moon_common::path::WorkspaceRelativePathBuf; +use moon_common::Id; +use moon_platform_runtime::*; +use moon_project_graph::ProjectGraph; +use moon_task::{Target, TargetLocator, Task}; +use moon_test_utils2::generate_project_graph; +use rustc_hash::FxHashSet; +use starbase_sandbox::{assert_snapshot, create_sandbox}; +use utils::ActionGraphContainer; + +fn create_task(id: &str, project: &str) -> Task { + Task { + id: Id::raw(id), + target: Target::new(project, id).unwrap(), + ..Task::default() + } +} + +async fn create_project_graph() -> ProjectGraph { + generate_project_graph("projects").await +} + +fn create_node_runtime() -> Runtime { + Runtime::new( + PlatformType::Node, + RuntimeReq::with_version(Version::new(20, 0, 0)), + ) +} + +fn create_rust_runtime() -> Runtime { + Runtime::new( + PlatformType::Rust, + RuntimeReq::with_version(Version::new(1, 70, 0)), + ) +} + +fn topo(mut graph: ActionGraph) -> Vec { + let mut nodes = vec![]; + + graph.reset_iterator().unwrap(); + + for node in graph { + nodes.push(node); + } + + nodes +} + +mod action_graph { + use super::*; + + #[tokio::test] + #[should_panic(expected = "A dependency cycle has been detected for RunTask(deps:cycle2).")] + async fn errors_on_cycle() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("deps").unwrap(); + + builder + .run_task(&project, project.get_task("cycle1").unwrap(), None) + .unwrap(); + builder + .run_task(&project, project.get_task("cycle2").unwrap(), None) + .unwrap(); + + builder.build().unwrap().reset_iterator().unwrap(); + } + + mod install_deps { + use super::*; + + #[tokio::test] + async fn graphs() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let bar = container.project_graph.get("bar").unwrap(); + builder.install_deps(&bar, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::InstallDeps { + runtime: create_node_runtime() + } + ] + ); + } + + #[tokio::test] + async fn ignores_dupes() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let bar = container.project_graph.get("bar").unwrap(); + builder.install_deps(&bar, None).unwrap(); + builder.install_deps(&bar, None).unwrap(); + builder.install_deps(&bar, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::InstallDeps { + runtime: create_node_runtime() + } + ] + ); + } + + #[tokio::test] + async fn installs_in_project_when_not_in_depman_workspace() { + let sandbox = create_sandbox("dep-workspace"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let inside = container.project_graph.get("in").unwrap(); + builder.install_deps(&inside, None).unwrap(); + + let outside = container.project_graph.get("out").unwrap(); + builder.install_deps(&outside, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::InstallProjectDeps { + project: Id::raw("out"), + runtime: create_node_runtime() + }, + ActionNode::InstallDeps { + runtime: create_node_runtime() + }, + ] + ); + } + } + + mod run_task { + use super::*; + use starbase_sandbox::pretty_assertions::assert_eq; + + #[tokio::test] + async fn graphs() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("bar").unwrap(); + + let mut task = create_task("build", "bar"); + task.platform = PlatformType::Node; + + builder.run_task(&project, &task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: create_node_runtime() + }, + ActionNode::InstallDeps { + runtime: create_node_runtime() + }, + ActionNode::RunTask { + interactive: false, + persistent: false, + runtime: create_node_runtime(), + target: task.target + } + ] + ); + } + + #[tokio::test] + async fn ignores_dupes() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("bar").unwrap(); + + let mut task = create_task("build", "bar"); + task.platform = PlatformType::Node; + + builder.run_task(&project, &task, None).unwrap(); + builder.run_task(&project, &task, None).unwrap(); + builder.run_task(&project, &task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: create_node_runtime() + }, + ActionNode::InstallDeps { + runtime: create_node_runtime() + }, + ActionNode::RunTask { + interactive: false, + persistent: false, + runtime: create_node_runtime(), + target: task.target + } + ] + ); + } + + #[tokio::test] + async fn doesnt_graph_if_not_affected_by_touched_files() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("bar").unwrap(); + + let mut task = create_task("build", "bar"); + task.platform = PlatformType::Node; + + builder + // Empty set works fine, just needs to be some + .run_task(&project, &task, Some(&FxHashSet::default())) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert!(topo(graph).is_empty()); + } + + #[tokio::test] + async fn graphs_if_affected_by_touched_files() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let file = WorkspaceRelativePathBuf::from("bar/file.js"); + + let project = container.project_graph.get("bar").unwrap(); + + let mut task = create_task("build", "bar"); + task.platform = PlatformType::Node; + task.input_files.insert(file.clone()); + + builder + .run_task(&project, &task, Some(&FxHashSet::from_iter([file]))) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert!(!topo(graph).is_empty()); + } + + #[tokio::test] + async fn task_can_have_a_diff_platform_from_project() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + // node + let project = container.project_graph.get("bar").unwrap(); + + let mut task = create_task("build", "bar"); + task.platform = PlatformType::Rust; + + builder.run_task(&project, &task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::SetupTool { + runtime: create_rust_runtime() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: create_node_runtime() + }, + ActionNode::InstallDeps { + runtime: create_rust_runtime() + }, + ActionNode::RunTask { + interactive: false, + persistent: false, + runtime: create_rust_runtime(), + target: task.target + } + ] + ); + } + + #[tokio::test] + async fn sets_interactive() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("bar").unwrap(); + + let mut task = create_task("build", "bar"); + task.options.interactive = true; + + builder.run_task(&project, &task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_eq!( + topo(graph).last().unwrap(), + &ActionNode::RunTask { + interactive: true, + persistent: false, + runtime: Runtime::system(), + target: task.target + } + ); + } + + #[tokio::test] + async fn sets_persistent() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("bar").unwrap(); + + let mut task = create_task("build", "bar"); + task.options.persistent = true; + + builder.run_task(&project, &task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_eq!( + topo(graph).last().unwrap(), + &ActionNode::RunTask { + interactive: false, + persistent: true, + runtime: Runtime::system(), + target: task.target + } + ); + } + } + + mod run_task_dependencies { + use super::*; + + #[tokio::test] + async fn runs_deps_in_parallel() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("deps").unwrap(); + let task = project.get_task("parallel").unwrap(); + + builder.run_task(&project, task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn runs_deps_in_serial() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("deps").unwrap(); + let task = project.get_task("serial").unwrap(); + + builder.run_task(&project, task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn can_create_a_chain() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("deps").unwrap(); + let task = project.get_task("chain1").unwrap(); + + builder.run_task(&project, task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn doesnt_include_dependents() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let project = container.project_graph.get("deps").unwrap(); + let task = project.get_task("base").unwrap(); + + builder.run_task(&project, task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn includes_dependents() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder.include_dependents = true; + + let project = container.project_graph.get("deps").unwrap(); + let task = project.get_task("base").unwrap(); + + builder.run_task(&project, task, None).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + } + + mod run_task_by_target { + use super::*; + + #[tokio::test] + #[should_panic(expected = "Dependencies scope (^:) is not supported in run contexts.")] + async fn errors_on_parent_scope() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse("^:build").unwrap(), None) + .unwrap(); + } + + #[tokio::test] + #[should_panic(expected = "Self scope (~:) is not supported in run contexts.")] + async fn errors_on_self_scope() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse("~:build").unwrap(), None) + .unwrap(); + } + + #[tokio::test] + async fn runs_all() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse(":build").unwrap(), None) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn runs_all_with_query() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder.set_query("language=rust").unwrap(); + + builder + .run_task_by_target(Target::parse(":build").unwrap(), None) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn runs_all_no_nodes() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse(":unknown").unwrap(), None) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert!(graph.is_empty()); + } + + #[tokio::test] + async fn runs_by_project() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse("client:lint").unwrap(), None) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + #[should_panic(expected = "No project has been configured with the name or alias unknown.")] + async fn errors_for_unknown_project() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse("unknown:build").unwrap(), None) + .unwrap(); + } + + #[tokio::test] + #[should_panic(expected = "Unknown task unknown for project server.")] + async fn errors_for_unknown_project_task() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse("server:unknown").unwrap(), None) + .unwrap(); + } + + #[tokio::test] + async fn runs_tag() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse("#frontend:lint").unwrap(), None) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn runs_tag_no_nodes() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target(Target::parse("#unknown:lint").unwrap(), None) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert!(graph.is_empty()); + } + } + + mod run_task_by_target_locator { + use super::*; + + #[tokio::test] + async fn runs_by_target() { + let sandbox = create_sandbox("tasks"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + builder + .run_task_by_target_locator( + TargetLocator::Qualified(Target::parse("server:build").unwrap()), + None, + ) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + async fn runs_by_file_path() { + let sandbox = create_sandbox("tasks"); + let mut container = ActionGraphContainer::new(sandbox.path()).await; + + container.project_graph.working_dir = sandbox.path().join("server/nested"); + + let mut builder = container.create_builder(); + + builder + .run_task_by_target_locator( + TargetLocator::TaskFromWorkingDir(Id::raw("lint")), + None, + ) + .unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + } + + #[tokio::test] + #[should_panic(expected = "No project could be located starting from path unknown/path.")] + async fn errors_if_no_project_by_path() { + let sandbox = create_sandbox("tasks"); + let mut container = ActionGraphContainer::new(sandbox.path()).await; + + container.project_graph.working_dir = sandbox.path().join("unknown/path"); + + let mut builder = container.create_builder(); + + builder + .run_task_by_target_locator( + TargetLocator::TaskFromWorkingDir(Id::raw("lint")), + None, + ) + .unwrap(); + } + } + + mod setup_tool { + use super::*; + + #[tokio::test] + async fn graphs() { + let pg = ProjectGraph::default(); + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + let system = Runtime::system(); + let node = Runtime::new( + PlatformType::Node, + RuntimeReq::with_version(Version::new(1, 2, 3)), + ); + + builder.setup_tool(&system); + builder.setup_tool(&node); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { runtime: node }, + ActionNode::SetupTool { runtime: system }, + ] + ); + } + + #[tokio::test] + async fn graphs_same_platform() { + let pg = ProjectGraph::default(); + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + + let node1 = Runtime::new( + PlatformType::Node, + RuntimeReq::with_version(Version::new(1, 2, 3)), + ); + let node2 = Runtime::new_override( + PlatformType::Node, + RuntimeReq::with_version(Version::new(4, 5, 6)), + ); + let node3 = Runtime::new(PlatformType::Node, RuntimeReq::Global); + + builder.setup_tool(&node1); + builder.setup_tool(&node2); + builder.setup_tool(&node3); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { runtime: node3 }, + ActionNode::SetupTool { runtime: node2 }, + ActionNode::SetupTool { runtime: node1 }, + ] + ); + } + + #[tokio::test] + async fn ignores_dupes() { + let pg = ProjectGraph::default(); + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + let system = Runtime::system(); + + builder.setup_tool(&system); + builder.setup_tool(&system); + + let graph = builder.build().unwrap(); + + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { runtime: system }, + ] + ); + } + } + + mod sync_project { + use super::*; + + #[tokio::test] + async fn graphs_single() { + let pg = create_project_graph().await; + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + + let bar = pg.get("bar").unwrap(); + builder.sync_project(&bar).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: Runtime::system() + } + ] + ); + } + + #[tokio::test] + async fn graphs_single_with_dep() { + let pg = create_project_graph().await; + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + + let foo = pg.get("foo").unwrap(); + builder.sync_project(&foo).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("foo"), + runtime: Runtime::system() + } + ] + ); + } + + #[tokio::test] + async fn graphs_multiple() { + let pg = create_project_graph().await; + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + + let foo = pg.get("foo").unwrap(); + builder.sync_project(&foo).unwrap(); + + let bar = pg.get("bar").unwrap(); + builder.sync_project(&bar).unwrap(); + + let qux = pg.get("qux").unwrap(); + builder.sync_project(&qux).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("qux"), + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("foo"), + runtime: Runtime::system() + }, + ] + ); + } + + #[tokio::test] + async fn ignores_dupes() { + let pg = create_project_graph().await; + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + + let foo = pg.get("foo").unwrap(); + + builder.sync_project(&foo).unwrap(); + builder.sync_project(&foo).unwrap(); + builder.sync_project(&foo).unwrap(); + + let graph = builder.build().unwrap(); + + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: Runtime::system() + }, + ActionNode::SyncProject { + project: Id::raw("foo"), + runtime: Runtime::system() + } + ] + ); + } + + #[tokio::test] + async fn inherits_platform_tool() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let bar = container.project_graph.get("bar").unwrap(); + builder.sync_project(&bar).unwrap(); + + let qux = container.project_graph.get("qux").unwrap(); + builder.sync_project(&qux).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_rust_runtime() + }, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::SyncProject { + project: Id::raw("qux"), + runtime: create_rust_runtime() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: create_node_runtime() + } + ] + ); + } + + #[tokio::test] + async fn supports_platform_override() { + let sandbox = create_sandbox("projects"); + let container = ActionGraphContainer::new(sandbox.path()).await; + let mut builder = container.create_builder(); + + let bar = container.project_graph.get("bar").unwrap(); + builder.sync_project(&bar).unwrap(); + + let baz = container.project_graph.get("baz").unwrap(); + builder.sync_project(&baz).unwrap(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!( + topo(graph), + vec![ + ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: Runtime::new_override( + PlatformType::Node, + RuntimeReq::with_version(Version::new(18, 0, 0)) + ) + }, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::SyncProject { + project: Id::raw("baz"), + runtime: Runtime::new_override( + PlatformType::Node, + RuntimeReq::with_version(Version::new(18, 0, 0)) + ) + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: create_node_runtime() + }, + ] + ); + } + } + + mod sync_workspace { + use super::*; + + #[tokio::test] + async fn graphs() { + let pg = ProjectGraph::default(); + + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + builder.sync_workspace(); + + let graph = builder.build().unwrap(); + + assert_snapshot!(graph.to_dot()); + assert_eq!(topo(graph), vec![ActionNode::SyncWorkspace]); + } + + #[tokio::test] + async fn ignores_dupes() { + let pg = ProjectGraph::default(); + + let mut builder = ActionGraphBuilder::new(&pg).unwrap(); + builder.sync_workspace(); + builder.sync_workspace(); + builder.sync_workspace(); + + let graph = builder.build().unwrap(); + + assert_eq!(topo(graph), vec![ActionNode::SyncWorkspace]); + } + } +} diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__graphs.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__graphs.snap new file mode 100644 index 00000000000..10d4bd747e0 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__graphs.snap @@ -0,0 +1,12 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(20.0.0)" ] + 2 [ label="InstallNodeDeps(20.0.0)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__installs_in_project_when_not_in_depman_workspace.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__installs_in_project_when_not_in_depman_workspace.snap new file mode 100644 index 00000000000..3e423cd537e --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__install_deps__installs_in_project_when_not_in_depman_workspace.snap @@ -0,0 +1,14 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(20.0.0)" ] + 2 [ label="InstallNodeDeps(20.0.0)" ] + 3 [ label="InstallNodeDepsInProject(20.0.0, out)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__graphs.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__graphs.snap new file mode 100644 index 00000000000..cb49bf8219b --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__graphs.snap @@ -0,0 +1,17 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(20.0.0)" ] + 2 [ label="InstallNodeDeps(20.0.0)" ] + 3 [ label="SyncNodeProject(bar)" ] + 4 [ label="RunTask(bar:build)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__task_can_have_a_diff_platform_from_project.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__task_can_have_a_diff_platform_from_project.snap new file mode 100644 index 00000000000..38f0da434df --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task__task_can_have_a_diff_platform_from_project.snap @@ -0,0 +1,19 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupRustTool(1.70.0)" ] + 2 [ label="InstallRustDeps(1.70.0)" ] + 3 [ label="SetupNodeTool(20.0.0)" ] + 4 [ label="SyncNodeProject(bar)" ] + 5 [ label="RunTask(bar:build)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 0 [ ] + 4 -> 3 [ ] + 5 -> 2 [ ] + 5 -> 4 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all.snap new file mode 100644 index 00000000000..e03fe506210 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all.snap @@ -0,0 +1,31 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(base)" ] + 3 [ label="RunTask(base:build)" ] + 4 [ label="SyncSystemProject(server)" ] + 5 [ label="RunTask(server:build)" ] + 6 [ label="SyncSystemProject(common)" ] + 7 [ label="RunTask(common:build)" ] + 8 [ label="SyncSystemProject(client)" ] + 9 [ label="RunTask(client:build)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 2 [ ] + 4 -> 1 [ ] + 5 -> 4 [ ] + 6 -> 1 [ ] + 6 -> 2 [ ] + 7 -> 6 [ ] + 8 -> 1 [ ] + 8 -> 4 [ ] + 8 -> 6 [ ] + 9 -> 8 [ ] + 9 -> 7 [ ] + 9 -> 5 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all_with_query.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all_with_query.snap new file mode 100644 index 00000000000..6dc1e1b0df3 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_all_with_query.snap @@ -0,0 +1,14 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(server)" ] + 3 [ label="RunTask(server:build)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 2 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_by_project.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_by_project.snap new file mode 100644 index 00000000000..6e78aa95cfd --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_by_project.snap @@ -0,0 +1,23 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(client)" ] + 3 [ label="SyncSystemProject(server)" ] + 4 [ label="SyncSystemProject(common)" ] + 5 [ label="SyncSystemProject(base)" ] + 6 [ label="RunTask(client:lint)" ] + 1 -> 0 [ ] + 3 -> 1 [ ] + 5 -> 1 [ ] + 4 -> 1 [ ] + 4 -> 5 [ ] + 2 -> 1 [ ] + 2 -> 3 [ ] + 2 -> 4 [ ] + 6 -> 2 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_tag.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_tag.snap new file mode 100644 index 00000000000..8943f0f12b9 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target__runs_tag.snap @@ -0,0 +1,25 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(client)" ] + 3 [ label="SyncSystemProject(server)" ] + 4 [ label="SyncSystemProject(common)" ] + 5 [ label="SyncSystemProject(base)" ] + 6 [ label="RunTask(client:lint)" ] + 7 [ label="RunTask(common:lint)" ] + 1 -> 0 [ ] + 3 -> 1 [ ] + 5 -> 1 [ ] + 4 -> 1 [ ] + 4 -> 5 [ ] + 2 -> 1 [ ] + 2 -> 3 [ ] + 2 -> 4 [ ] + 6 -> 2 [ ] + 7 -> 4 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_file_path.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_file_path.snap new file mode 100644 index 00000000000..d074f59cf86 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_file_path.snap @@ -0,0 +1,14 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(server)" ] + 3 [ label="RunTask(server:lint)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 2 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_target.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_target.snap new file mode 100644 index 00000000000..6dc1e1b0df3 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_by_target_locator__runs_by_target.snap @@ -0,0 +1,14 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(server)" ] + 3 [ label="RunTask(server:build)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 2 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__can_create_a_chain.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__can_create_a_chain.snap new file mode 100644 index 00000000000..290953fed5f --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__can_create_a_chain.snap @@ -0,0 +1,20 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(deps)" ] + 3 [ label="RunTask(deps:chain1)" ] + 4 [ label="RunTask(deps:chain2)" ] + 5 [ label="RunTask(deps:chain3)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 5 -> 2 [ ] + 4 -> 2 [ ] + 4 -> 5 [ ] + 3 -> 2 [ ] + 3 -> 4 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__doesnt_include_dependents.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__doesnt_include_dependents.snap new file mode 100644 index 00000000000..7de75775a1d --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__doesnt_include_dependents.snap @@ -0,0 +1,14 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(deps)" ] + 3 [ label="RunTask(deps:base)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 2 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__includes_dependents.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__includes_dependents.snap new file mode 100644 index 00000000000..7375595d48b --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__includes_dependents.snap @@ -0,0 +1,23 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(deps)" ] + 3 [ label="RunTask(deps:base)" ] + 4 [ label="RunTask(deps:internal)" ] + 5 [ label="SyncSystemProject(deps-external)" ] + 6 [ label="RunTask(deps-external:external)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 2 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] + 5 -> 1 [ ] + 5 -> 2 [ ] + 6 -> 5 [ ] + 6 -> 3 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_parallel.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_parallel.snap new file mode 100644 index 00000000000..f5d5002c747 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_parallel.snap @@ -0,0 +1,23 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(deps)" ] + 3 [ label="RunTask(deps:parallel)" ] + 4 [ label="RunTask(deps:c)" ] + 5 [ label="RunTask(deps:a)" ] + 6 [ label="RunTask(deps:b)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 4 -> 2 [ ] + 5 -> 2 [ ] + 6 -> 2 [ ] + 3 -> 2 [ ] + 3 -> 4 [ ] + 3 -> 5 [ ] + 3 -> 6 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_serial.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_serial.snap new file mode 100644 index 00000000000..e444a36cc07 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__run_task_dependencies__runs_deps_in_serial.snap @@ -0,0 +1,23 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(deps)" ] + 3 [ label="RunTask(deps:serial)" ] + 4 [ label="RunTask(deps:b)" ] + 5 [ label="RunTask(deps:c)" ] + 6 [ label="RunTask(deps:a)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 4 -> 2 [ ] + 5 -> 2 [ ] + 5 -> 4 [ ] + 6 -> 2 [ ] + 6 -> 5 [ ] + 3 -> 2 [ ] + 3 -> 6 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs.snap new file mode 100644 index 00000000000..e8e7634758e --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs.snap @@ -0,0 +1,12 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SetupNodeTool(1.2.3)" ] + 1 -> 0 [ ] + 2 -> 0 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs_same_platform.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs_same_platform.snap new file mode 100644 index 00000000000..1c0fe1c6ada --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__setup_tool__graphs_same_platform.snap @@ -0,0 +1,14 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(1.2.3)" ] + 2 [ label="SetupNodeTool(4.5.6)" ] + 3 [ label="SetupNodeTool(global)" ] + 1 -> 0 [ ] + 2 -> 0 [ ] + 3 -> 0 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs.snap new file mode 100644 index 00000000000..46d410389a3 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs.snap @@ -0,0 +1,15 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(foo)" ] + 3 [ label="SyncSystemProject(bar)" ] + 1 -> 0 [ ] + 3 -> 1 [ ] + 2 -> 1 [ ] + 2 -> 3 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_multiple.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_multiple.snap new file mode 100644 index 00000000000..6f9dda954a9 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_multiple.snap @@ -0,0 +1,17 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(foo)" ] + 3 [ label="SyncSystemProject(bar)" ] + 4 [ label="SyncSystemProject(qux)" ] + 1 -> 0 [ ] + 3 -> 1 [ ] + 2 -> 1 [ ] + 2 -> 3 [ ] + 4 -> 1 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single.snap new file mode 100644 index 00000000000..ddfdb147fe1 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single.snap @@ -0,0 +1,12 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(bar)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single_with_dep.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single_with_dep.snap new file mode 100644 index 00000000000..46d410389a3 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__graphs_single_with_dep.snap @@ -0,0 +1,15 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupSystemTool" ] + 2 [ label="SyncSystemProject(foo)" ] + 3 [ label="SyncSystemProject(bar)" ] + 1 -> 0 [ ] + 3 -> 1 [ ] + 2 -> 1 [ ] + 2 -> 3 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__inherits_platform_tool.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__inherits_platform_tool.snap new file mode 100644 index 00000000000..8a93b55531b --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__inherits_platform_tool.snap @@ -0,0 +1,16 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(20.0.0)" ] + 2 [ label="SyncNodeProject(bar)" ] + 3 [ label="SetupRustTool(1.70.0)" ] + 4 [ label="SyncRustProject(qux)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 0 [ ] + 4 -> 3 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__supports_platform_override.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__supports_platform_override.snap new file mode 100644 index 00000000000..8f0bbd2e090 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_project__supports_platform_override.snap @@ -0,0 +1,16 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(20.0.0)" ] + 2 [ label="SyncNodeProject(bar)" ] + 3 [ label="SetupNodeTool(18.0.0)" ] + 4 [ label="SyncNodeProject(baz)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 0 [ ] + 4 -> 3 [ ] +} + diff --git a/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_workspace__graphs.snap b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_workspace__graphs.snap new file mode 100644 index 00000000000..35bf4b9bad6 --- /dev/null +++ b/nextgen/action-graph/tests/snapshots/action_graph_test__action_graph__sync_workspace__graphs.snap @@ -0,0 +1,8 @@ +--- +source: nextgen/action-graph/tests/action_graph_test.rs +expression: graph.to_dot() +--- +digraph { + 0 [ label="SyncWorkspace" ] +} + diff --git a/nextgen/action-graph/tests/utils.rs b/nextgen/action-graph/tests/utils.rs new file mode 100644 index 00000000000..0c61e18096c --- /dev/null +++ b/nextgen/action-graph/tests/utils.rs @@ -0,0 +1,27 @@ +use moon_action_graph::ActionGraphBuilder; +use moon_platform::PlatformManager; +use moon_project_graph::ProjectGraph; +use moon_test_utils2::{ + generate_platform_manager_from_sandbox, generate_project_graph_from_sandbox, +}; +use std::path::{Path, PathBuf}; + +pub struct ActionGraphContainer { + pub platform_manager: PlatformManager, + pub project_graph: ProjectGraph, + pub workspace_root: PathBuf, +} + +impl ActionGraphContainer { + pub async fn new(root: &Path) -> Self { + Self { + platform_manager: generate_platform_manager_from_sandbox(root).await, + project_graph: generate_project_graph_from_sandbox(root).await, + workspace_root: root.to_path_buf(), + } + } + + pub fn create_builder(&self) -> ActionGraphBuilder { + ActionGraphBuilder::with_platforms(&self.platform_manager, &self.project_graph).unwrap() + } +} diff --git a/nextgen/config/tests/inherited_tasks_config_test.rs b/nextgen/config/tests/inherited_tasks_config_test.rs index bdf2be65f73..b77ab251d92 100644 --- a/nextgen/config/tests/inherited_tasks_config_test.rs +++ b/nextgen/config/tests/inherited_tasks_config_test.rs @@ -198,8 +198,6 @@ fileGroups: let url = server.url("/config.yml"); - dbg!(&url); - sandbox.create_file( "tasks.yml", format!( diff --git a/nextgen/platform-runtime/src/lib.rs b/nextgen/platform-runtime/src/lib.rs index f6683fae574..b3627dc60a5 100644 --- a/nextgen/platform-runtime/src/lib.rs +++ b/nextgen/platform-runtime/src/lib.rs @@ -12,6 +12,10 @@ pub enum RuntimeReq { } impl RuntimeReq { + pub fn with_version(version: Version) -> Self { + Self::Toolchain(UnresolvedVersionSpec::Version(version)) + } + pub fn is_global(&self) -> bool { matches!(self, Self::Global) } diff --git a/nextgen/project-builder/src/project_builder.rs b/nextgen/project-builder/src/project_builder.rs index 5fbbbf469ef..51aec8e3699 100644 --- a/nextgen/project-builder/src/project_builder.rs +++ b/nextgen/project-builder/src/project_builder.rs @@ -1,12 +1,13 @@ use moon_common::path::WorkspaceRelativePath; use moon_common::{color, consts, Id}; use moon_config::{ - DependencyConfig, DependencySource, InheritedTasksManager, InheritedTasksResult, LanguageType, - PlatformType, ProjectConfig, ProjectDependsOn, TaskConfig, ToolchainConfig, + DependencyConfig, DependencyScope, DependencySource, InheritedTasksManager, + InheritedTasksResult, LanguageType, PlatformType, ProjectConfig, ProjectDependsOn, TaskConfig, + ToolchainConfig, }; use moon_file_group::FileGroup; use moon_project::Project; -use moon_task::Task; +use moon_task::{TargetScope, Task}; use moon_task_builder::{DetectPlatformEvent, TasksBuilder, TasksBuilderContext}; use rustc_hash::FxHashMap; use starbase_events::{Emitter, Event}; @@ -197,11 +198,13 @@ impl<'app> ProjectBuilder<'app> { #[tracing::instrument(name = "project", skip_all)] pub async fn build(mut self) -> miette::Result { + let tasks = self.build_tasks().await?; + let mut project = Project { alias: self.alias.map(|a| a.to_owned()), - dependencies: self.build_dependencies()?, + dependencies: self.build_dependencies(&tasks)?, file_groups: self.build_file_groups()?, - tasks: self.build_tasks().await?, + tasks, id: self.id.to_owned(), language: self.language, platform: self.platform, @@ -220,7 +223,10 @@ impl<'app> ProjectBuilder<'app> { Ok(project) } - fn build_dependencies(&self) -> miette::Result> { + fn build_dependencies( + &self, + tasks: &BTreeMap, + ) -> miette::Result> { let mut deps = FxHashMap::default(); trace!(id = self.id.as_str(), "Building project dependencies"); @@ -237,7 +243,41 @@ impl<'app> ProjectBuilder<'app> { deps.insert(dep_config.id.clone(), dep_config); } + } + + // Tasks can depend on arbitray projects, so include them also + for task_config in tasks.values() { + for task_dep in &task_config.deps { + if let TargetScope::Project(dep_id) = &task_dep.scope { + // Already a dependency, or references self + if deps.contains_key(dep_id) + || self.id == dep_id + || self.alias.as_ref().is_some_and(|a| *a == dep_id.as_str()) + { + continue; + } + + trace!( + id = self.id.as_str(), + dep = dep_id.as_str(), + task = task_config.target.as_str(), + "Marking arbitrary project as a peer dependency because of a task dependency" + ); + + deps.insert( + dep_id.to_owned(), + DependencyConfig { + id: dep_id.to_owned(), + scope: DependencyScope::Peer, + source: DependencySource::Implicit, + via: Some(task_config.target.to_string()), + }, + ); + } + } + } + if !deps.is_empty() { trace!( id = self.id.as_str(), deps = ?deps.keys().map(|k| k.as_str()).collect::>(), diff --git a/nextgen/project-graph/Cargo.toml b/nextgen/project-graph/Cargo.toml index a7f09387974..d0ad40416a8 100644 --- a/nextgen/project-graph/Cargo.toml +++ b/nextgen/project-graph/Cargo.toml @@ -32,5 +32,6 @@ thiserror = { workspace = true } tracing = { workspace = true } [dev-dependencies] +moon_test_utils2 = { path = "../test-utils" } starbase_sandbox = { workspace = true } tokio = { workspace = true } diff --git a/nextgen/project-graph/src/project_graph.rs b/nextgen/project-graph/src/project_graph.rs index c06508c90db..38b15e90294 100644 --- a/nextgen/project-graph/src/project_graph.rs +++ b/nextgen/project-graph/src/project_graph.rs @@ -34,10 +34,22 @@ pub struct ProjectNode { pub source: WorkspaceRelativePathBuf, } +impl ProjectNode { + pub fn new(index: usize) -> Self { + ProjectNode { + index: NodeIndex::new(index), + ..ProjectNode::default() + } + } +} + #[derive(Default)] pub struct ProjectGraph { pub check_boundaries: bool, + /// Cache of file path lookups, mapped by starting path to project ID (as a string). + fs_cache: OnceMap, + /// Directed-acyclic graph (DAG) of non-expanded projects and their dependencies. graph: GraphType, @@ -67,6 +79,7 @@ impl ProjectGraph { projects: Arc::new(RwLock::new(FxHashMap::default())), working_dir: workspace_root.to_owned(), workspace_root: workspace_root.to_owned(), + fs_cache: OnceMap::new(), query_cache: OnceMap::new(), check_boundaries: false, } @@ -162,36 +175,7 @@ impl ProjectGraph { current_file }; - // Find the deepest matching path in case sub-projects are being used - let mut remaining_length = 1000; // Start with a really fake number - let mut possible_id = String::new(); - - for (id, node) in &self.nodes { - if !file.starts_with(node.source.as_str()) { - continue; - } - - if let Ok(diff) = file.relative_to(node.source.as_str()) { - let diff_comps = diff.components().count(); - - // Exact match, abort - if diff_comps == 0 { - possible_id = id.as_str().to_owned(); - break; - } - - if diff_comps < remaining_length { - remaining_length = diff_comps; - possible_id = id.as_str().to_owned(); - } - } - } - - if possible_id.is_empty() { - return Err(ProjectGraphError::MissingFromPath(file.to_path_buf()).into()); - } - - self.get(&possible_id) + self.get(self.internal_search(file)?) } /// Return a list of IDs for all projects currently within the graph. @@ -312,10 +296,10 @@ impl ProjectGraph { let query = query.as_ref(); let query_input = query .input - .clone() + .as_ref() .expect("Querying the project graph requires a query input string."); - self.query_cache.try_insert(query_input.clone(), |_| { + self.query_cache.try_insert(query_input.to_owned(), |_| { debug!("Querying projects with {}", color::shell(query_input)); let mut project_ids = vec![]; @@ -345,6 +329,41 @@ impl ProjectGraph { }) } + fn internal_search(&self, search: &Path) -> miette::Result<&str> { + self.fs_cache.try_insert(search.to_path_buf(), |_| { + // Find the deepest matching path in case sub-projects are being used + let mut remaining_length = 1000; // Start with a really fake number + let mut possible_id = String::new(); + + for (id, node) in &self.nodes { + if !search.starts_with(node.source.as_str()) { + continue; + } + + if let Ok(diff) = search.relative_to(node.source.as_str()) { + let diff_comps = diff.components().count(); + + // Exact match, abort + if diff_comps == 0 { + possible_id = id.as_str().to_owned(); + break; + } + + if diff_comps < remaining_length { + remaining_length = diff_comps; + possible_id = id.as_str().to_owned(); + } + } + } + + if possible_id.is_empty() { + return Err(ProjectGraphError::MissingFromPath(search.to_path_buf()).into()); + } + + Ok(possible_id) + }) + } + fn resolve_id(&self, alias_or_id: &str) -> Id { Id::raw(if self.nodes.contains_key(alias_or_id) { alias_or_id diff --git a/nextgen/project-graph/src/project_graph_builder.rs b/nextgen/project-graph/src/project_graph_builder.rs index 8e02337e838..b3a721cc6f7 100644 --- a/nextgen/project-graph/src/project_graph_builder.rs +++ b/nextgen/project-graph/src/project_graph_builder.rs @@ -1,5 +1,4 @@ -use crate::project_events::ExtendProjectEvent; -use crate::project_events::ExtendProjectGraphEvent; +use crate::project_events::{ExtendProjectEvent, ExtendProjectGraphEvent}; use crate::project_graph::{GraphType, ProjectGraph, ProjectNode}; use crate::project_graph_cache::ProjectsState; use crate::project_graph_error::ProjectGraphError; @@ -7,17 +6,13 @@ use crate::project_graph_hash::ProjectGraphHash; use crate::projects_locator::locate_projects_with_globs; use async_recursion::async_recursion; use moon_cache::CacheEngine; -use moon_common::is_test_env; use moon_common::path::{to_virtual_string, WorkspaceRelativePath, WorkspaceRelativePathBuf}; -use moon_common::{color, consts, Id}; -use moon_config::{ - DependencyScope, InheritedTasksManager, ToolchainConfig, WorkspaceConfig, WorkspaceProjects, -}; +use moon_common::{color, consts, is_test_env, Id}; +use moon_config::{InheritedTasksManager, ToolchainConfig, WorkspaceConfig, WorkspaceProjects}; use moon_hash::HashEngine; use moon_project::Project; use moon_project_builder::{DetectLanguageEvent, ProjectBuilder, ProjectBuilderContext}; use moon_project_constraints::{enforce_project_type_relationships, enforce_tag_relationships}; -use moon_task::TargetScope; use moon_task_builder::DetectPlatformEvent; use moon_vcs::BoxedVcs; use petgraph::graph::DiGraph; @@ -256,36 +251,6 @@ impl<'app> ProjectGraphBuilder<'app> { } } - // Tasks can depend on arbitray projects, so include them also - for (task_id, task_config) in &project.tasks { - for task_dep in &task_config.deps { - if let TargetScope::Project(dep_id) = &task_dep.scope { - if - // Already a dependency - project.dependencies.contains_key(dep_id) || - // Don't reference itself - project.matches_locator(dep_id.as_str()) - { - continue; - } - - if cycle.contains(dep_id) { - warn!( - id = id.as_str(), - dependency_id = dep_id.as_str(), - task_id = task_id.as_str(), - "Encountered a dependency cycle (from task); will disconnect nodes to avoid recursion", - ); - } else { - edges.push(( - self.internal_load(dep_id, cycle).await?, - DependencyScope::Peer, - )); - } - } - } - } - // Insert into the graph and connect edges let index = self.graph.add_node(project); diff --git a/nextgen/project-graph/tests/project_graph_test.rs b/nextgen/project-graph/tests/project_graph_test.rs index 380722c6b97..96bd361e5d4 100644 --- a/nextgen/project-graph/tests/project_graph_test.rs +++ b/nextgen/project-graph/tests/project_graph_test.rs @@ -1,124 +1,26 @@ use moon_common::{path::WorkspaceRelativePathBuf, Id}; -use moon_config::PartialTaskConfig; use moon_config::{ - DependencyConfig, DependencyScope, DependencySource, InheritedTasksEntry, - InheritedTasksManager, NodeConfig, PartialInheritedTasksConfig, ToolchainConfig, - WorkspaceConfig, WorkspaceProjects, WorkspaceProjectsConfig, + DependencyConfig, DependencyScope, DependencySource, InheritedTasksManager, WorkspaceProjects, + WorkspaceProjectsConfig, }; use moon_project::{FileGroup, Project}; -use moon_project_builder::DetectLanguageEvent; use moon_project_graph::{ ExtendProjectData, ExtendProjectEvent, ExtendProjectGraphData, ExtendProjectGraphEvent, - ProjectGraph, ProjectGraphBuilder, ProjectGraphBuilderContext, + ProjectGraph, ProjectGraphBuilder, }; use moon_query::build_query; use moon_task::Target; -use moon_task_builder::DetectPlatformEvent; -use moon_vcs::{BoxedVcs, Git}; +use moon_test_utils2::*; use rustc_hash::{FxHashMap, FxHashSet}; -use starbase_events::{Emitter, EventState}; +use starbase_events::EventState; use starbase_sandbox::{assert_snapshot, create_sandbox, Sandbox}; -use starbase_utils::string_vec; -use starbase_utils::{fs, json}; -use std::collections::BTreeMap; +use starbase_utils::{fs, json, string_vec}; use std::fs::OpenOptions; use std::io::Write; -use std::path::{Path, PathBuf}; +use std::path::Path; use std::sync::Arc; use tokio::sync::RwLock; -#[derive(Default)] -struct GraphContainer { - pub inherited_tasks: InheritedTasksManager, - pub toolchain_config: ToolchainConfig, - pub workspace_config: WorkspaceConfig, - pub workspace_root: PathBuf, - pub vcs: Option, -} - -impl GraphContainer { - pub fn new(root: &Path) -> Self { - let mut graph = Self { - workspace_root: root.to_path_buf(), - ..Default::default() - }; - - // Add a global task to all projects - graph.inherited_tasks.configs.insert( - "*".into(), - InheritedTasksEntry { - input: ".moon/tasks.yml".into(), - config: PartialInheritedTasksConfig { - tasks: Some(BTreeMap::from_iter([( - "global".into(), - PartialTaskConfig::default(), - )])), - ..PartialInheritedTasksConfig::default() - }, - }, - ); - - // Always use the node platform - graph.toolchain_config.node = Some(NodeConfig::default()); - - // Use folders as project names - graph.workspace_config.projects = WorkspaceProjects::Globs(string_vec!["*"]); - - graph - } - - pub fn new_with_vcs(root: &Path) -> Self { - let mut container = Self::new(root); - container.vcs = Some(Box::new(Git::load(root, "master", &[]).unwrap())); - container - } - - pub fn create_context(&self) -> ProjectGraphBuilderContext { - ProjectGraphBuilderContext { - extend_project: Emitter::::new(), - extend_project_graph: Emitter::::new(), - detect_language: Emitter::::new(), - detect_platform: Emitter::::new(), - inherited_tasks: &self.inherited_tasks, - toolchain_config: &self.toolchain_config, - vcs: self.vcs.as_ref(), - working_dir: &self.workspace_root, - workspace_config: &self.workspace_config, - workspace_root: &self.workspace_root, - } - } - - pub async fn build_graph<'l>(&self, context: ProjectGraphBuilderContext<'l>) -> ProjectGraph { - let mut builder = ProjectGraphBuilder::new(context).await.unwrap(); - builder.load_all().await.unwrap(); - - let mut graph = builder.build().await.unwrap(); - graph.check_boundaries = true; - graph.get_all().unwrap(); - graph - } - - pub async fn build_graph_for<'l>( - &self, - context: ProjectGraphBuilderContext<'l>, - ids: &[&str], - ) -> ProjectGraph { - let mut builder = ProjectGraphBuilder::new(context).await.unwrap(); - - for id in ids { - builder.load(id).await.unwrap(); - } - - let graph = builder.build().await.unwrap(); - - for id in ids { - graph.get(id).unwrap(); - } - - graph - } -} - pub fn append_file>(path: P, data: &str) { let mut file = OpenOptions::new() .write(true) @@ -145,19 +47,6 @@ fn get_ids_from_projects(projects: Vec>) -> Vec { mod project_graph { use super::*; - async fn generate_project_graph(fixture: &str) -> ProjectGraph { - let sandbox = create_sandbox(fixture); - - generate_project_graph_from_sandbox(sandbox.path()).await - } - - async fn generate_project_graph_from_sandbox(path: &Path) -> ProjectGraph { - let container = GraphContainer::new(path); - let context = container.create_context(); - - container.build_graph(context).await - } - #[tokio::test] async fn gets_by_id() { let graph = generate_project_graph("dependencies").await; @@ -219,7 +108,7 @@ mod project_graph { // Move files so that we can infer a compatible root project name fs::copy_dir_all(sandbox.path(), sandbox.path(), &root).unwrap(); - let mut container = GraphContainer::new(&root); + let mut container = ProjectGraphContainer::new(&root); container.workspace_config.projects = WorkspaceProjects::Globs(string_vec!["*", "."]); @@ -235,7 +124,7 @@ mod project_graph { #[tokio::test] async fn paths() { let sandbox = create_sandbox("dependencies"); - let mut container = GraphContainer::new(sandbox.path()); + let mut container = ProjectGraphContainer::new(sandbox.path()); container.workspace_config.projects = WorkspaceProjects::Sources(FxHashMap::from_iter([ @@ -252,7 +141,7 @@ mod project_graph { #[tokio::test] async fn paths_and_globs() { let sandbox = create_sandbox("dependencies"); - let mut container = GraphContainer::new(sandbox.path()); + let mut container = ProjectGraphContainer::new(sandbox.path()); container.workspace_config.projects = WorkspaceProjects::Both(WorkspaceProjectsConfig { @@ -308,7 +197,7 @@ mod project_graph { sandbox.enable_git(); sandbox.create_file(".gitignore", "*-other"); - let container = GraphContainer::new_with_vcs(sandbox.path()); + let container = ProjectGraphContainer::with_vcs(sandbox.path()); let context = container.create_context(); let graph = container.build_graph(context).await; @@ -348,7 +237,7 @@ mod project_graph { async fn do_generate(root: &Path) -> ProjectGraph { let cache_engine = CacheEngine::new(root).unwrap(); let hash_engine = HashEngine::new(&cache_engine.cache_dir).unwrap(); - let container = GraphContainer::new_with_vcs(root); + let container = ProjectGraphContainer::with_vcs(root); let context = container.create_context(); let mut builder = ProjectGraphBuilder::generate(context, &cache_engine, &hash_engine) @@ -538,13 +427,12 @@ mod project_graph { async fn generate_inheritance_project_graph(fixture: &str) -> ProjectGraph { let sandbox = create_sandbox(fixture); - let mut container = GraphContainer::new(sandbox.path()); - container.inherited_tasks = - InheritedTasksManager::load(sandbox.path(), sandbox.path().join(".moon")).unwrap(); - - let context = container.create_context(); - - container.build_graph(context).await + generate_project_graph_with_changes(sandbox.path(), |container| { + container.inherited_tasks = + InheritedTasksManager::load(sandbox.path(), sandbox.path().join(".moon")) + .unwrap(); + }) + .await } #[tokio::test] @@ -802,7 +690,7 @@ mod project_graph { #[tokio::test] async fn no_depends_on() { let sandbox = create_sandbox("dependency-types"); - let container = GraphContainer::new(sandbox.path()); + let container = ProjectGraphContainer::new(sandbox.path()); let context = container.create_context(); let graph = container.build_graph_for(context, &["no-depends-on"]).await; @@ -812,7 +700,7 @@ mod project_graph { #[tokio::test] async fn some_depends_on() { let sandbox = create_sandbox("dependency-types"); - let container = GraphContainer::new(sandbox.path()); + let container = ProjectGraphContainer::new(sandbox.path()); let context = container.create_context(); let graph = container .build_graph_for(context, &["some-depends-on"]) @@ -824,7 +712,7 @@ mod project_graph { #[tokio::test] async fn from_task_deps() { let sandbox = create_sandbox("dependency-types"); - let container = GraphContainer::new(sandbox.path()); + let container = ProjectGraphContainer::new(sandbox.path()); let context = container.create_context(); let graph = container .build_graph_for(context, &["from-task-deps"]) @@ -836,7 +724,7 @@ mod project_graph { #[tokio::test] async fn self_task_deps() { let sandbox = create_sandbox("dependency-types"); - let container = GraphContainer::new(sandbox.path()); + let container = ProjectGraphContainer::new(sandbox.path()); let context = container.create_context(); let graph = container .build_graph_for(context, &["self-task-deps"]) @@ -852,7 +740,7 @@ mod project_graph { async fn generate_aliases_project_graph() -> ProjectGraph { let sandbox = create_sandbox("aliases"); - let container = GraphContainer::new(sandbox.path()); + let container = ProjectGraphContainer::new(sandbox.path()); let context = container.create_context(); // Set aliases for projects @@ -1036,7 +924,7 @@ mod project_graph { func(&sandbox); - let mut container = GraphContainer::new(sandbox.path()); + let mut container = ProjectGraphContainer::new(sandbox.path()); container .workspace_config @@ -1178,7 +1066,7 @@ mod project_graph { func(&sandbox); - let mut container = GraphContainer::new(sandbox.path()); + let mut container = ProjectGraphContainer::new(sandbox.path()); container .workspace_config @@ -1464,7 +1352,7 @@ mod project_graph { #[tokio::test] async fn renders_partial() { let sandbox = create_sandbox("dependencies"); - let container = GraphContainer::new(sandbox.path()); + let container = ProjectGraphContainer::new(sandbox.path()); let context = container.create_context(); let graph = container.build_graph_for(context, &["b"]).await; diff --git a/nextgen/task/src/lib.rs b/nextgen/task/src/lib.rs index 6ad258d2350..7b3bb75e447 100644 --- a/nextgen/task/src/lib.rs +++ b/nextgen/task/src/lib.rs @@ -2,6 +2,6 @@ mod task; mod task_options; pub use moon_config::{TaskConfig, TaskOptionsConfig, TaskType}; -pub use moon_target::{Target, TargetScope}; +pub use moon_target::*; pub use task::*; pub use task_options::*; diff --git a/nextgen/test-utils/Cargo.toml b/nextgen/test-utils/Cargo.toml new file mode 100644 index 00000000000..f290514b133 --- /dev/null +++ b/nextgen/test-utils/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "moon_test_utils2" +version = "0.1.0" +edition = "2021" +license = "MIT" +description = "Testing utilities." +homepage = "https://moonrepo.dev/moon" +repository = "https://github.com/moonrepo/moon" + +[dependencies] +moon_config = { path = "../config" } +moon_project_graph = { path = "../project-graph" } +moon_vcs = { path = "../vcs" } +miette = { workspace = true } +proto_core = { workspace = true } +starbase_events = { workspace = true } +starbase_sandbox = { workspace = true } + +# TODO +moon_platform = { path = "../../crates/core/platform" } +moon_node_platform = { path = "../../crates/node/platform" } +moon_rust_platform = { path = "../../crates/rust/platform" } +moon_system_platform = { path = "../../crates/system/platform" } diff --git a/nextgen/test-utils/src/lib.rs b/nextgen/test-utils/src/lib.rs new file mode 100644 index 00000000000..5b73bce286f --- /dev/null +++ b/nextgen/test-utils/src/lib.rs @@ -0,0 +1,5 @@ +mod platform_manager; +mod project_graph; + +pub use platform_manager::*; +pub use project_graph::*; diff --git a/nextgen/test-utils/src/platform_manager.rs b/nextgen/test-utils/src/platform_manager.rs new file mode 100644 index 00000000000..50fffc38380 --- /dev/null +++ b/nextgen/test-utils/src/platform_manager.rs @@ -0,0 +1,32 @@ +use moon_config::{PlatformType, ToolchainConfig, ToolsConfig}; +use moon_node_platform::NodePlatform; +use moon_platform::PlatformManager; +use moon_rust_platform::RustPlatform; +use moon_system_platform::SystemPlatform; +use proto_core::ProtoEnvironment; +use std::path::Path; +use std::sync::Arc; + +pub async fn generate_platform_manager_from_sandbox(root: &Path) -> PlatformManager { + let proto = Arc::new(ProtoEnvironment::new_testing(root)); + let config = ToolchainConfig::load_from(root, &ToolsConfig::default()).unwrap(); + let mut manager = PlatformManager::default(); + + if let Some(node_config) = &config.node { + manager.register( + PlatformType::Node, + Box::new(NodePlatform::new(node_config, &None, root, proto.clone())), + ); + } + + if let Some(rust_config) = &config.rust { + manager.register( + PlatformType::Rust, + Box::new(RustPlatform::new(rust_config, root, proto.clone())), + ); + } + + manager.register(PlatformType::System, Box::::default()); + + manager +} diff --git a/nextgen/test-utils/src/project_graph.rs b/nextgen/test-utils/src/project_graph.rs new file mode 100644 index 00000000000..5478968b90d --- /dev/null +++ b/nextgen/test-utils/src/project_graph.rs @@ -0,0 +1,132 @@ +use moon_config::{ + InheritedTasksEntry, InheritedTasksManager, NodeConfig, PartialInheritedTasksConfig, + PartialTaskConfig, ToolchainConfig, ToolsConfig, WorkspaceConfig, WorkspaceProjects, +}; +use moon_project_graph::{ + DetectLanguageEvent, DetectPlatformEvent, ExtendProjectEvent, ExtendProjectGraphEvent, + ProjectGraph, ProjectGraphBuilder, ProjectGraphBuilderContext, +}; +use moon_vcs::{BoxedVcs, Git}; +use starbase_events::Emitter; +use starbase_sandbox::create_sandbox; +use std::collections::BTreeMap; +use std::path::{Path, PathBuf}; + +#[derive(Default)] +pub struct ProjectGraphContainer { + pub inherited_tasks: InheritedTasksManager, + pub toolchain_config: ToolchainConfig, + pub workspace_config: WorkspaceConfig, + pub workspace_root: PathBuf, + pub vcs: Option, +} + +impl ProjectGraphContainer { + pub fn new(root: &Path) -> Self { + let proto = ToolsConfig::default(); + let mut graph = Self { + inherited_tasks: InheritedTasksManager::load_from(root).unwrap(), + toolchain_config: ToolchainConfig::load_from(root, &proto).unwrap(), + workspace_root: root.to_path_buf(), + ..Default::default() + }; + + // Add a global task to all projects + graph.inherited_tasks.configs.insert( + "*".into(), + InheritedTasksEntry { + input: ".moon/tasks.yml".into(), + config: PartialInheritedTasksConfig { + tasks: Some(BTreeMap::from_iter([( + "global".into(), + PartialTaskConfig::default(), + )])), + ..PartialInheritedTasksConfig::default() + }, + }, + ); + + // Always use the node platform + if graph.toolchain_config.node.is_none() { + graph.toolchain_config.node = Some(NodeConfig::default()); + } + + // Use folders as project names + graph.workspace_config.projects = WorkspaceProjects::Globs(vec!["*".into()]); + + graph + } + + pub fn with_vcs(root: &Path) -> Self { + let mut container = Self::new(root); + container.vcs = Some(Box::new(Git::load(root, "master", &[]).unwrap())); + container + } + + pub fn create_context(&self) -> ProjectGraphBuilderContext { + ProjectGraphBuilderContext { + extend_project: Emitter::::new(), + extend_project_graph: Emitter::::new(), + detect_language: Emitter::::new(), + detect_platform: Emitter::::new(), + inherited_tasks: &self.inherited_tasks, + toolchain_config: &self.toolchain_config, + vcs: self.vcs.as_ref(), + working_dir: &self.workspace_root, + workspace_config: &self.workspace_config, + workspace_root: &self.workspace_root, + } + } + + pub async fn build_graph<'l>(&self, context: ProjectGraphBuilderContext<'l>) -> ProjectGraph { + let mut builder = ProjectGraphBuilder::new(context).await.unwrap(); + builder.load_all().await.unwrap(); + + let mut graph = builder.build().await.unwrap(); + graph.check_boundaries = true; + graph.get_all().unwrap(); + graph + } + + pub async fn build_graph_for<'l>( + &self, + context: ProjectGraphBuilderContext<'l>, + ids: &[&str], + ) -> ProjectGraph { + let mut builder = ProjectGraphBuilder::new(context).await.unwrap(); + + for id in ids { + builder.load(id).await.unwrap(); + } + + let mut graph = builder.build().await.unwrap(); + graph.check_boundaries = true; + + for id in ids { + graph.get(id).unwrap(); + } + + graph + } +} + +pub async fn generate_project_graph(fixture: &str) -> ProjectGraph { + generate_project_graph_from_sandbox(create_sandbox(fixture).path()).await +} + +pub async fn generate_project_graph_from_sandbox(root: &Path) -> ProjectGraph { + generate_project_graph_with_changes(root, |_| {}).await +} + +pub async fn generate_project_graph_with_changes(root: &Path, mut op: F) -> ProjectGraph +where + F: FnMut(&mut ProjectGraphContainer), +{ + let mut container = ProjectGraphContainer::new(root); + + op(&mut container); + + let context = container.create_context(); + + container.build_graph(context).await +} diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index c966243c309..6cdc6a341b4 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -10,6 +10,63 @@ - More accurately monitors signals (ctrl+c) and shutdowns. - Tasks can now be configured with a timeout. +## Unreleased + +#### 💥 Breaking + +- Tasks that depend (via `deps`) on other tasks from arbitrary projects (the parent project doesn't + implicitly or explicitly depend on the other project) will now automatically mark that other + project as a "peer" dependency. For example, "b" becomes a peer dependency for "a". + + ```yaml + tasks: + build: + deps: ['b:build'] + + # Now internally becomes: + dependsOn: + - id: 'b' + scope: 'peer' + + tasks: + build: + deps: ['b:build'] + ``` + + We're marking this as a breaking change as this could subtly introduce cycles in the project graph + that weren't present before, and for Node.js projects, this may inject `peerDependencies`. + +#### 🎉 Release + +- Rewrote the dependency graph from the ground-up: + - Now known as the action graph. + - All actions now depend on the `SyncWorkspace` action, instead of this action running + arbitrarily. + - Cleaned up dependency chains between actions, greatly reducing the number of nodes in the graph. + - Renamed `RunTarget` to `RunTask`, including interactive and persistent variants. +- Updated the action graph to iterate using a topological queue, which executes ready-to-run actions + in the thread pool. Previously, we would sort topologically _into batches_, which worked, but + resulted in many threads uselessly waiting for an action to run, which was blocked waiting for the + current batch to complete. + - For large graphs, this should result in a significant performance improvement, upwards of 10x. + - Persistent tasks will still be ran as a batch, but since it's the last operation, it's fine. +- Released a new GitHub action, + [`moonrepo/setup-toolchain`](https://github.com/marketplace/actions/setup-proto-and-moon-toolchains), + that replaces both `setup-moon-action` and `setup-proto`. + +#### 🚀 Updates + +- Added a `moon action-graph` command and deprecated `moon dep-graph`. + +#### 🐞 Fixes + +- Fixed an issue where task dependents (via `moon ci` or `moon run --dependents`) wouldn't always + locate all downstream tasks. + +#### ⚙️ Internal + +- Added in-memory caching to project graph file system lookup operations. + ## 1.14.5 #### 🐞 Fixes diff --git a/packages/report/tests/action.test.ts b/packages/report/tests/action.test.ts index c1fa88e3a07..b20ce300f99 100644 --- a/packages/report/tests/action.test.ts +++ b/packages/report/tests/action.test.ts @@ -10,7 +10,7 @@ const action: Action = { }, error: null, flaky: false, - label: 'RunTarget(app:build)', + label: 'RunTask(app:build)', nodeIndex: 8, status: 'passed', finishedAt: '2022-09-12T22:50:12.932311Z', diff --git a/packages/report/tests/report.test.ts b/packages/report/tests/report.test.ts index 023d48c7b9a..789f54cc2c6 100644 --- a/packages/report/tests/report.test.ts +++ b/packages/report/tests/report.test.ts @@ -13,7 +13,7 @@ function mockReport(): RunReport { }, error: null, flaky: false, - label: 'RunTarget(types:build)', + label: 'RunTask(types:build)', nodeIndex: 5, status: 'cached', finishedAt: '2022-09-12T22:50:12.932311Z', @@ -28,7 +28,7 @@ function mockReport(): RunReport { }, error: null, flaky: true, - label: 'RunTarget(runtime:typecheck)', + label: 'RunTask(runtime:typecheck)', nodeIndex: 4, status: 'passed', finishedAt: '2022-09-12T22:50:12.932311Z', @@ -43,7 +43,7 @@ function mockReport(): RunReport { }, error: null, flaky: false, - label: 'RunTarget(types:typecheck)', + label: 'RunTask(types:typecheck)', nodeIndex: 6, status: 'passed', finishedAt: '2022-09-12T22:50:12.932311Z', @@ -58,7 +58,7 @@ function mockReport(): RunReport { }, error: null, flaky: false, - label: 'RunTarget(website:typecheck)', + label: 'RunTask(website:typecheck)', nodeIndex: 8, status: 'passed', finishedAt: '2022-09-12T22:50:12.932311Z', @@ -102,10 +102,10 @@ describe('sortReport()', () => { sortReport(report, 'time', 'asc'); expect(report.actions.map((a) => a.label)).toEqual([ - 'RunTarget(types:build)', - 'RunTarget(website:typecheck)', - 'RunTarget(types:typecheck)', - 'RunTarget(runtime:typecheck)', + 'RunTask(types:build)', + 'RunTask(website:typecheck)', + 'RunTask(types:typecheck)', + 'RunTask(runtime:typecheck)', ]); }); @@ -114,10 +114,10 @@ describe('sortReport()', () => { sortReport(report, 'time', 'desc'); expect(report.actions.map((a) => a.label)).toEqual([ - 'RunTarget(runtime:typecheck)', - 'RunTarget(types:typecheck)', - 'RunTarget(website:typecheck)', - 'RunTarget(types:build)', + 'RunTask(runtime:typecheck)', + 'RunTask(types:typecheck)', + 'RunTask(website:typecheck)', + 'RunTask(types:build)', ]); }); @@ -126,10 +126,10 @@ describe('sortReport()', () => { sortReport(report, 'label', 'asc'); expect(report.actions.map((a) => a.label)).toEqual([ - 'RunTarget(runtime:typecheck)', - 'RunTarget(types:build)', - 'RunTarget(types:typecheck)', - 'RunTarget(website:typecheck)', + 'RunTask(runtime:typecheck)', + 'RunTask(types:build)', + 'RunTask(types:typecheck)', + 'RunTask(website:typecheck)', ]); }); @@ -138,10 +138,10 @@ describe('sortReport()', () => { sortReport(report, 'label', 'desc'); expect(report.actions.map((a) => a.label)).toEqual([ - 'RunTarget(website:typecheck)', - 'RunTarget(types:typecheck)', - 'RunTarget(types:build)', - 'RunTarget(runtime:typecheck)', + 'RunTask(website:typecheck)', + 'RunTask(types:typecheck)', + 'RunTask(types:build)', + 'RunTask(runtime:typecheck)', ]); }); }); @@ -156,7 +156,7 @@ describe('prepareReportActions()', () => { secs: 0, }, icon: '🟪', - label: 'RunTarget(types:build)', + label: 'RunTask(types:build)', status: 'cached', time: '0s', }, @@ -167,7 +167,7 @@ describe('prepareReportActions()', () => { secs: 1922, }, icon: '🟩', - label: 'RunTarget(runtime:typecheck)', + label: 'RunTask(runtime:typecheck)', status: 'passed', time: '32m 2s', }, @@ -178,7 +178,7 @@ describe('prepareReportActions()', () => { secs: 64, }, icon: '🟩', - label: 'RunTarget(types:typecheck)', + label: 'RunTask(types:typecheck)', status: 'passed', time: '1m 4s', }, @@ -189,7 +189,7 @@ describe('prepareReportActions()', () => { secs: 34, }, icon: '🟩', - label: 'RunTarget(website:typecheck)', + label: 'RunTask(website:typecheck)', status: 'passed', time: '34.4s', }, diff --git a/packages/visualizer/src/helpers/render.ts b/packages/visualizer/src/helpers/render.ts index f755c987a17..f57f42dd8f8 100644 --- a/packages/visualizer/src/helpers/render.ts +++ b/packages/visualizer/src/helpers/render.ts @@ -9,8 +9,8 @@ function getActionType(label: string) { return 'sync-workspace'; } - if (label.startsWith('RunTarget') || label.startsWith('RunPersistentTarget')) { - return 'run-target'; + if (label.startsWith('Run') && (label.includes('Target') || label.includes('Task'))) { + return 'run-task'; } if (label.startsWith('Sync') && label.includes('Project')) { @@ -105,7 +105,7 @@ export function render(element: HTMLElement, data: GraphInfo) { }, }, { - selector: 'node[type="run-target"]', + selector: 'node[type="run-task"]', style: { // @ts-expect-error Types incorrect 'background-gradient-stop-colors': '#6e58d1 #4a2ec6 #3b259e', diff --git a/website/docs/commands/dep-graph.mdx b/website/docs/commands/dep-graph.mdx index f916862a1df..7ed5439c1eb 100644 --- a/website/docs/commands/dep-graph.mdx +++ b/website/docs/commands/dep-graph.mdx @@ -34,7 +34,7 @@ digraph { 0 [ label="SetupNodeTool" style=filled, shape=oval, fillcolor=black, fontcolor=white] 1 [ label="InstallNodeDeps" style=filled, shape=oval, fillcolor=gray, fontcolor=black] 2 [ label="SyncNodeProject(node)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="RunTarget(node:standard)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] + 3 [ label="RunTask(node:standard)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] 1 -> 0 [ arrowhead=box, arrowtail=box] 2 -> 0 [ arrowhead=box, arrowtail=box] 3 -> 1 [ arrowhead=box, arrowtail=box] diff --git a/website/docs/concepts/project.mdx b/website/docs/concepts/project.mdx index f49c31d5423..6dccd3206de 100644 --- a/website/docs/concepts/project.mdx +++ b/website/docs/concepts/project.mdx @@ -36,7 +36,7 @@ pattern that makes the most sense for your company or team! ## Dependencies Projects can depend on other projects within the [workspace](./workspace) to build a -[project graph](../how-it-works/dep-graph), and in turn, a dependency graph for executing +[project graph](../how-it-works/action-graph), and in turn, an action graph for executing [tasks](./task). Project dependencies are divided into 2 categories: - **Explicit dependencies** - These are dependencies that are explicitly defined in a project's diff --git a/website/docs/concepts/task.mdx b/website/docs/concepts/task.mdx index 74e4637fb7d..94449e36b45 100644 --- a/website/docs/concepts/task.mdx +++ b/website/docs/concepts/task.mdx @@ -30,7 +30,7 @@ Tasks are grouped into 1 of the following types based on their configured parame ## Modes Alongside types, tasks can also grouped into a special mode that provides unique handling within the -dependency graph and pipelines. +action graph and pipelines. ### Local only @@ -52,8 +52,8 @@ tasks: Tasks that need to interact with the user via terminal prompts are known as interactive tasks. Because interactive tasks require stdin, and it's not possible to have multiple parallel running -tasks interact with stdin, we isolate interactive tasks from other tasks in the dependency graph. -This ensures that only 1 interactive task is ran at a time. +tasks interact with stdin, we isolate interactive tasks from other tasks in the action graph. This +ensures that only 1 interactive task is ran at a time. To mark a task as interactive, enable the [`options.interactive`](../config/project#interactive) setting. @@ -72,8 +72,8 @@ Tasks that never complete, like servers and watchers, are known as persistent ta tasks are typically problematic when it comes to dependency graphs, because if they run in the middle of the graph, subsequent tasks will never run because the persistent task never completes! -However in moon, this is a non-issue, as we collect all persistent tasks within the dependency graph -and run them _last as a batch_. This is perfect for a few reasons: +However in moon, this is a non-issue, as we collect all persistent tasks within the action graph and +run them _last as a batch_. This is perfect for a few reasons: - All persistent tasks are ran in parallel, so they don't block each other. - Running both the backend API and frontend webapp in parallel is a breeze. diff --git a/website/docs/config/project.mdx b/website/docs/config/project.mdx index c34f5b84f06..3b55865fa2f 100644 --- a/website/docs/config/project.mdx +++ b/website/docs/config/project.mdx @@ -830,8 +830,8 @@ tasks: Marks the task as persistent (continuously running). [Persistent tasks](../concepts/task#persistent) -are handled differently than non-persistent tasks in the dependency graph. When running a target, -all persistent tasks are _ran last_ and _in parallel_, after all their dependencies have completed. +are handled differently than non-persistent tasks in the action graph. When running a target, all +persistent tasks are _ran last_ and _in parallel_, after all their dependencies have completed. This is extremely useful for running a server (or a watcher) in the background while other tasks are running. diff --git a/website/docs/editors/vscode.mdx b/website/docs/editors/vscode.mdx index 94cbcb22e9e..80acb0987d4 100644 --- a/website/docs/editors/vscode.mdx +++ b/website/docs/editors/vscode.mdx @@ -59,7 +59,7 @@ Information about the last ran target will be displayed in a beautiful table wit Only tasks ran from the [projects view](#projects) or on the command line will be displayed here. This table displays all actions that were ran alongside the running primary target(s). They are -ordered topologically via the dependency graph. +ordered topologically via the action graph. diff --git a/website/docs/how-it-works/dep-graph.mdx b/website/docs/how-it-works/action-graph.mdx similarity index 68% rename from website/docs/how-it-works/dep-graph.mdx rename to website/docs/how-it-works/action-graph.mdx index a7803c5ccb5..3c9cb38d2ea 100644 --- a/website/docs/how-it-works/dep-graph.mdx +++ b/website/docs/how-it-works/action-graph.mdx @@ -1,18 +1,17 @@ --- -title: Dependency graph +title: Action graph --- -import DepGraph from '@site/src/components/Docs/DepGraph'; +import ActionGraph from '@site/src/components/Docs/ActionGraph'; -When you run a [task](../config/project#tasks-1) on the command line, we generate a dependency graph -to ensure [dependencies](../config/project#deps) of tasks have ran before running run the primary -task. +When you run a [task](../config/project#tasks-1) on the command line, we generate an action graph to +ensure [dependencies](../config/project#deps) of tasks have ran before running run the primary task. -The dependency graph is a representation of all [tasks](../concepts/task), derived from the +The action graph is a representation of all [tasks](../concepts/task), derived from the [project graph](./project-graph), and is also represented internally as a directed acyclic graph (DAG). - + ## Actions @@ -21,7 +20,7 @@ represent each node in the graph as an action to perform. This allows us to be m efficient with how we run tasks, and allows us to provide more functionality and automation than other runners. -The following actions compose our dependency graph: +The following actions compose our action graph: ### Sync workspace @@ -36,12 +35,12 @@ tier 3 language into the toolchain. For other tiers, this is basically a no-oper - When the tool has already been installed, this action will be skipped. - Actions will be scoped by language and version, also known as a runtime. For example, `SetupNodeTool(18.1.0)` or `SetupDenoTool(1.31.0)`. -- Tools that require a global language binary will display the version as "global". For example, - `SetupNodeTool(global)`. +- Tools that require a global binary (found on `PATH`) will display the version as "global". For + example, `SetupNodeTool(global)`. ### Install dependencies -Before we run a target, we ensure that all language dependencies (`node_modules` for example) have +Before we run a task, we ensure that all language dependencies (`node_modules` for example) have been installed, by automatically installing them if we detect changes since the last run. We achieve this by comparing lockfile modified timestamps, parsing manifest files, and hashing resolved dependency versions. @@ -58,7 +57,7 @@ dependency versions. ### Sync project To ensure a consistently healthy project and repository, we run a process known as syncing -_everytime_ a target is ran. Actions will be scoped by language, for example, +_everytime_ a task is ran. Actions will be scoped by language, for example, `SyncNodeProject(example)`. What is synced or considered healthcare is dependent on the language and its ecosystem. @@ -74,26 +73,27 @@ What is synced or considered healthcare is dependent on the language and its eco > This action depends on the setup toolchain action, in case it requires binaries or functionality > that the toolchain provides. -### Run target +### Run task -The primary action in the graph is the run [target](../concepts/target) action, which runs a -project's task as a child process. Tasks can depend on other tasks, and they'll be effectively -orchestrated and executed by running in topological order _and_ in batches via a worker pool. +The primary action in the graph is the run [task](../concepts/task) action, which runs a project's +task as a child process, derived from a [target](../concepts/target). Tasks can depend on other +tasks, and they'll be effectively orchestrated and executed by running in topological order using a +thread pool. > This action depends on the previous actions, as the toolchain is used for running the task's > command, and the outcome of the task is best when the project state is healthy and deterministic. -### Run interactive target +### Run interactive task -Like the base run target, but runs the [task interactively](../concepts/task#interactive) with stdin +Like the base run task, but runs the [task interactively](../concepts/task#interactive) with stdin capabilities. All interactive tasks are run in isolation in the graph. -### Run persistent target +### Run persistent task -Like the base run target, but runs the [task in a persistent process](../concepts/task#persistent) +Like the base run task, but runs the [task in a persistent process](../concepts/task#persistent) that never exits. All persistent tasks are run in parallel as the last batch in the graph. ## What is the graph used for? -Without the dependency graph, tasks would not efficiently, or possibly at all! The graph helps to -run tasks in parallel, in the correct order, and to ensure a reliable outcome. +Without the action graph, tasks would not efficiently, or possibly at all! The graph helps to run +tasks in parallel, in the correct order, and to ensure a reliable outcome. diff --git a/website/docs/how-it-works/project-graph.mdx b/website/docs/how-it-works/project-graph.mdx index fddb4ca2814..1db3ddef951 100644 --- a/website/docs/how-it-works/project-graph.mdx +++ b/website/docs/how-it-works/project-graph.mdx @@ -82,7 +82,7 @@ integration. Great question, the project graph is used throughout the codebase to accomplish a variety of functions, but mainly: -- Is fed into the [dependency graph](./dep-graph) to determine relationships of tasks between other +- Is fed into the [action graph](./action-graph) to determine relationships of tasks between other tasks, and across projects. - Powers our [Docker](../guides/docker) layer caching and scaffolding implementations. - Utilized for [project syncing](../commands/sync) to ensure a healthy repository state. diff --git a/website/docs/run-task.mdx b/website/docs/run-task.mdx index df4cbd5b2fb..48f72e2e5ef 100644 --- a/website/docs/run-task.mdx +++ b/website/docs/run-task.mdx @@ -23,7 +23,7 @@ $ moon app:build When this command is ran, it will do the following: -- Generate a directed acyclic graph, known as the dependency graph. +- Generate a directed acyclic graph, known as the action (dependency) graph. - Insert [`deps`](./config/project#deps) as targets into the graph. - Insert the primary target into the graph. - Run all tasks in the graph in parallel and in topological order (the dependency chain). diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 7eb8d9187b4..aa683167fb3 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -211,6 +211,10 @@ const config = { '@docusaurus/plugin-client-redirects', { redirects: [ + { + from: '/docs/how-it-works/dep-graph', + to: '/docs/how-it-works/action-graph', + }, { from: '/docs/config/global-project', to: '/docs/config/tasks', diff --git a/website/sidebars.js b/website/sidebars.js index 3ead0dd75f5..d9cfca902b6 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -10,7 +10,7 @@ const sidebars = { label: 'How it works', collapsed: true, collapsible: true, - items: ['how-it-works/languages', 'how-it-works/project-graph', 'how-it-works/dep-graph'], + items: ['how-it-works/languages', 'how-it-works/project-graph', 'how-it-works/action-graph'], link: { type: 'generated-index', title: 'How it works', diff --git a/website/src/components/Docs/DepGraph.tsx b/website/src/components/Docs/ActionGraph.tsx similarity index 87% rename from website/src/components/Docs/DepGraph.tsx rename to website/src/components/Docs/ActionGraph.tsx index 84b701602d8..a8a1e52764b 100644 --- a/website/src/components/Docs/DepGraph.tsx +++ b/website/src/components/Docs/ActionGraph.tsx @@ -1,13 +1,25 @@ import React, { useEffect, useRef } from 'react'; import { renderGraph } from '../../utils/renderGraph'; -export default function DepGraph() { +export default function ActionGraph() { const graphRef = useRef(null); useEffect(() => { if (graphRef.current) { renderGraph(graphRef.current, { edges: [ + { + data: { + source: 'sync-workspace', + target: 'node-tool', + }, + }, + { + data: { + source: 'sync-workspace', + target: 'system-tool', + }, + }, { data: { source: 'node-tool', @@ -125,21 +137,21 @@ export default function DepGraph() { { data: { id: 'target-clean', - label: 'RunTarget(example:clean)', + label: 'RunTask(example:clean)', type: 'sm', }, }, { data: { id: 'target-build', - label: 'RunTarget(example:build)', + label: 'RunTask(example:build)', type: 'sm', }, }, { data: { id: 'target-package', - label: 'RunTarget(example:package)', + label: 'RunTask(example:package)', type: 'sm', }, }, From 6abe5bbb228d1d9c1dbbe454a211aef7d384e56b Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Fri, 6 Oct 2023 18:28:22 -0700 Subject: [PATCH 4/8] new: Add `moon action-graph` command. (#1101) * Add action. * Update app. * Update tests. * Update docs. * Polish. * Polish. --- .github/workflows/benchmark.yml | 10 +- crates/cli/src/app.rs | 15 +- crates/cli/src/commands/graph/action.rs | 75 ++++++++ crates/cli/src/commands/graph/dep.rs | 69 +------- crates/cli/src/commands/graph/mod.rs | 1 + crates/cli/src/commands/graph/utils.rs | 2 +- crates/cli/src/lib.rs | 3 +- crates/cli/tests/action_graph_test.rs | 164 ++++++++++++++++++ crates/cli/tests/dep_graph_test.rs | 158 ----------------- ...h__aliases__can_focus_using_an_alias.snap} | 2 +- ...iases__resolves_aliases_in_task_deps.snap} | 2 +- ...est__action_graph__focused_by_target.snap} | 2 +- ...action_graph__focused_by_task_in_cwd.snap} | 2 +- ...__includes_dependencies_when_focused.snap} | 2 +- ...ph__includes_dependents_when_focused.snap} | 2 +- ...aph_test__action_graph__outputs_json.snap} | 2 +- website/blog/2022-12-19_v0.21.mdx | 2 +- .../{dep-graph.mdx => action-graph.mdx} | 15 +- website/docusaurus.config.js | 4 + website/sidebars.js | 4 +- 20 files changed, 292 insertions(+), 244 deletions(-) create mode 100644 crates/cli/src/commands/graph/action.rs create mode 100644 crates/cli/tests/action_graph_test.rs delete mode 100644 crates/cli/tests/dep_graph_test.rs rename crates/cli/tests/snapshots/{dep_graph_test__aliases__can_focus_using_an_alias.snap => action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap} (96%) rename crates/cli/tests/snapshots/{dep_graph_test__aliases__resolves_aliases_in_task_deps.snap => action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap} (97%) rename crates/cli/tests/snapshots/{dep_graph_test__focused_by_task_in_cwd.snap => action_graph_test__action_graph__focused_by_target.snap} (93%) rename crates/cli/tests/snapshots/{dep_graph_test__focused_by_target.snap => action_graph_test__action_graph__focused_by_task_in_cwd.snap} (93%) rename crates/cli/tests/snapshots/{dep_graph_test__includes_dependencies_when_focused.snap => action_graph_test__action_graph__includes_dependencies_when_focused.snap} (95%) rename crates/cli/tests/snapshots/{dep_graph_test__includes_dependents_when_focused.snap => action_graph_test__action_graph__includes_dependents_when_focused.snap} (97%) rename crates/cli/tests/snapshots/{dep_graph_test__outputs_json.snap => action_graph_test__action_graph__outputs_json.snap} (90%) rename website/docs/commands/{dep-graph.mdx => action-graph.mdx} (70%) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 7dee6594a53..0b0f66c4f3f 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest # strategy: # matrix: - # bench: [dep_graph_benchmark, emitter_benchmark, pipeline_benchmark] + # bench: [emitter_benchmark, pipeline_benchmark] # fail-fast: false steps: - run: echo ${{ github.event.pull_request.head.sha }} @@ -37,8 +37,8 @@ jobs: - name: Run benchmarks # args: --workspace --bench ${{ matrix.bench }} -- --save-baseline base-sha run: - cargo bench --workspace --bench dep_graph_benchmark --bench emitter_benchmark --bench - pipeline_benchmark --bench tar_benchmark -- --save-baseline head-sha + cargo bench --workspace --bench emitter_benchmark --bench pipeline_benchmark --bench + tar_benchmark -- --save-baseline head-sha # Run on base branch to get a baseline - name: Checkout base branch @@ -49,8 +49,8 @@ jobs: - name: Run benchmarks # args: --workspace --bench ${{ matrix.bench }} -- --save-baseline base-sha run: - cargo bench --workspace --bench dep_graph_benchmark --bench emitter_benchmark --bench - pipeline_benchmark --bench tar_benchmark -- --save-baseline base-sha + cargo bench --workspace --bench emitter_benchmark --bench pipeline_benchmark --bench + tar_benchmark -- --save-baseline base-sha # Compare diffs - name: Install critcmp diff --git a/crates/cli/src/app.rs b/crates/cli/src/app.rs index b38baaecf09..2eed58de202 100644 --- a/crates/cli/src/app.rs +++ b/crates/cli/src/app.rs @@ -7,7 +7,7 @@ use crate::commands::clean::CleanArgs; use crate::commands::completions::CompletionsArgs; use crate::commands::docker::DockerScaffoldArgs; use crate::commands::generate::GenerateArgs; -use crate::commands::graph::dep::DepGraphArgs; +use crate::commands::graph::action::ActionGraphArgs; use crate::commands::graph::project::ProjectGraphArgs; use crate::commands::init::InitArgs; use crate::commands::migrate::FromPackageJsonArgs; @@ -178,13 +178,22 @@ pub enum Commands { // PROJECTS + // moon action-graph [target] + #[command( + alias = "ag", + name = "action-graph", + about = "Display an interactive dependency graph of all tasks and actions." + )] + ActionGraph(ActionGraphArgs), + // moon dep-graph [target] #[command( name = "dep-graph", about = "Display an interactive dependency graph of all tasks and actions.", - alias = "dg" + alias = "dg", + hide = true )] - DepGraph(DepGraphArgs), + DepGraph(ActionGraphArgs), // moon project #[command( diff --git a/crates/cli/src/commands/graph/action.rs b/crates/cli/src/commands/graph/action.rs new file mode 100644 index 00000000000..7fe2778b092 --- /dev/null +++ b/crates/cli/src/commands/graph/action.rs @@ -0,0 +1,75 @@ +use crate::commands::graph::utils::{action_graph_repr, respond_to_request, setup_server}; +use clap::Args; +use miette::IntoDiagnostic; +use moon::{build_dep_graph, generate_project_graph}; +use moon_target::TargetLocator; +use moon_workspace::Workspace; +use starbase::{system, SystemResult}; + +#[derive(Args, Clone, Debug)] +pub struct ActionGraphArgs { + #[arg(help = "Target to *only* graph")] + target: Option, + + #[arg(long, help = "Print the graph in DOT format")] + dot: bool, + + #[arg(long, help = "Print the graph in JSON format")] + json: bool, +} + +pub async fn internal_action_graph( + args: &ActionGraphArgs, + workspace: &mut Workspace, +) -> SystemResult { + let project_graph = generate_project_graph(workspace).await?; + let mut action_graph_builder = build_dep_graph(&project_graph); + + // Focus a target and its dependencies/dependents + if let Some(locator) = args.target.clone() { + for target in action_graph_builder.run_targets_by_locator(&[locator], None)? { + action_graph_builder.run_dependents_for_target(&target)?; + } + + // Show all targets and actions + } else { + for project in project_graph.get_all_unexpanded() { + for task in project.tasks.values() { + action_graph_builder.run_target(&task.target, None)?; + } + } + } + + let action_graph = action_graph_builder.build(); + + if args.dot { + println!("{}", action_graph.to_dot()); + + return Ok(()); + } + + let graph_info = action_graph_repr(&action_graph).await; + + if args.json { + println!("{}", serde_json::to_string(&graph_info).into_diagnostic()?); + + return Ok(()); + } + + let (server, mut tera) = setup_server().await?; + let url = format!("http://{}", server.server_addr()); + let _ = open::that(&url); + + println!("Started server on {url}"); + + for req in server.incoming_requests() { + respond_to_request(req, &mut tera, &graph_info, "Action graph".to_owned())?; + } + + Ok(()) +} + +#[system] +pub async fn action_graph(args: ArgsRef, workspace: ResourceMut) { + internal_action_graph(args, workspace).await?; +} diff --git a/crates/cli/src/commands/graph/dep.rs b/crates/cli/src/commands/graph/dep.rs index 7d1921c0bbd..c1cccba5336 100644 --- a/crates/cli/src/commands/graph/dep.rs +++ b/crates/cli/src/commands/graph/dep.rs @@ -1,66 +1,15 @@ -use crate::commands::graph::utils::{dep_graph_repr, respond_to_request, setup_server}; -use clap::Args; -use miette::IntoDiagnostic; -use moon::{build_dep_graph, generate_project_graph}; -use moon_target::TargetLocator; +use super::action::*; +use moon_common::color; use moon_workspace::Workspace; use starbase::system; - -#[derive(Args, Clone, Debug)] -pub struct DepGraphArgs { - #[arg(help = "Target to *only* graph")] - target: Option, - - #[arg(long, help = "Print the graph in DOT format")] - dot: bool, - - #[arg(long, help = "Print the graph in JSON format")] - json: bool, -} +use tracing::warn; #[system] -pub async fn dep_graph(args: ArgsRef, workspace: ResourceMut) { - let project_graph = generate_project_graph(workspace).await?; - let mut dep_builder = build_dep_graph(&project_graph); - - // Focus a target and its dependencies/dependents - if let Some(locator) = args.target.clone() { - for target in dep_builder.run_targets_by_locator(&[locator], None)? { - dep_builder.run_dependents_for_target(&target)?; - } - - // Show all targets and actions - } else { - for project in project_graph.get_all_unexpanded() { - for task in project.tasks.values() { - dep_builder.run_target(&task.target, None)?; - } - } - } - - let dep_graph = dep_builder.build(); - - if args.dot { - println!("{}", dep_graph.to_dot()); - - return Ok(()); - } - - let graph_info = dep_graph_repr(&dep_graph).await; - - if args.json { - println!("{}", serde_json::to_string(&graph_info).into_diagnostic()?); - - return Ok(()); - } - - let (server, mut tera) = setup_server().await?; - let url = format!("http://{}", server.server_addr()); - let _ = open::that(&url); - - println!("Started server on {url}"); +pub async fn dep_graph(args: ArgsRef, workspace: ResourceMut) { + warn!( + "This command is deprecated. Use {} instead.", + color::shell("moon action-graph") + ); - for req in server.incoming_requests() { - respond_to_request(req, &mut tera, &graph_info, "Dependency graph".to_owned())?; - } + internal_action_graph(args, workspace).await?; } diff --git a/crates/cli/src/commands/graph/mod.rs b/crates/cli/src/commands/graph/mod.rs index c10e3a5284b..b441f32da5e 100644 --- a/crates/cli/src/commands/graph/mod.rs +++ b/crates/cli/src/commands/graph/mod.rs @@ -1,3 +1,4 @@ +pub mod action; pub mod dep; mod dto; pub mod project; diff --git a/crates/cli/src/commands/graph/utils.rs b/crates/cli/src/commands/graph/utils.rs index ea1eaf715af..ae858905abd 100644 --- a/crates/cli/src/commands/graph/utils.rs +++ b/crates/cli/src/commands/graph/utils.rs @@ -84,7 +84,7 @@ pub async fn project_graph_repr(project_graph: &ProjectGraph) -> GraphInfoDto { } /// Get a serialized representation of the dependency graph. -pub async fn dep_graph_repr(dep_graph: &DepGraph) -> GraphInfoDto { +pub async fn action_graph_repr(dep_graph: &DepGraph) -> GraphInfoDto { let labeled_graph = dep_graph.labeled_graph(); extract_nodes_and_edges_from_graph(&labeled_graph, false) } diff --git a/crates/cli/src/lib.rs b/crates/cli/src/lib.rs index dc23eb7d190..87bc399194b 100644 --- a/crates/cli/src/lib.rs +++ b/crates/cli/src/lib.rs @@ -15,7 +15,7 @@ use crate::commands::clean::clean; use crate::commands::completions; use crate::commands::docker; use crate::commands::generate::generate; -use crate::commands::graph::{dep::dep_graph, project::project_graph}; +use crate::commands::graph::{action::action_graph, dep::dep_graph, project::project_graph}; use crate::commands::init::init; use crate::commands::migrate; use crate::commands::node; @@ -138,6 +138,7 @@ pub async fn run_cli() -> AppResult { app.startup(systems::load_workspace); match cli.command { + Commands::ActionGraph(args) => app.execute_with_args(action_graph, args), Commands::Bin(args) => app.execute_with_args(bin, args), Commands::Ci(args) => { app.execute(systems::check_for_new_version); diff --git a/crates/cli/tests/action_graph_test.rs b/crates/cli/tests/action_graph_test.rs new file mode 100644 index 00000000000..897032ae97d --- /dev/null +++ b/crates/cli/tests/action_graph_test.rs @@ -0,0 +1,164 @@ +use moon_test_utils::{ + assert_snapshot, create_sandbox_with_config, get_project_graph_aliases_fixture_configs, + get_tasks_fixture_configs, +}; + +mod action_graph { + use super::*; + + #[test] + fn all_by_default() { + let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "tasks", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph").arg("--dot"); + }); + + let dot = assert.output(); + + // Snapshot is not deterministic + assert_eq!(dot.split('\n').count(), 568); + } + + #[test] + fn focused_by_target() { + let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "tasks", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("ag").arg("--dot").arg("basic:lint"); + }); + + assert_snapshot!(assert.output()); + } + + #[test] + fn focused_by_task_in_cwd() { + let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "tasks", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph").arg("--dot").arg("lint"); + cmd.current_dir(sandbox.path().join("basic")); + }); + + assert_snapshot!(assert.output()); + } + + #[test] + fn includes_dependencies_when_focused() { + let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "tasks", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph").arg("--dot").arg("chain:e"); + }); + + assert_snapshot!(assert.output()); + } + + #[test] + fn includes_dependents_when_focused() { + let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "tasks", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph").arg("--dot").arg("basic:build"); + }); + + assert_snapshot!(assert.output()); + } + + #[test] + fn outputs_json() { + let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "tasks", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph").arg("--json").arg("basic:lint"); + }); + + assert_snapshot!(assert.output()); + } + + mod aliases { + use super::*; + + #[test] + fn can_focus_using_an_alias() { + let (workspace_config, toolchain_config, tasks_config) = + get_project_graph_aliases_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "project-graph/aliases", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph") + .arg("--dot") + .arg("@scope/pkg-foo:test"); + }); + + assert_snapshot!(assert.output()); + } + + #[test] + fn resolves_aliases_in_task_deps() { + let (workspace_config, toolchain_config, tasks_config) = + get_project_graph_aliases_fixture_configs(); + + let sandbox = create_sandbox_with_config( + "project-graph/aliases", + Some(workspace_config), + Some(toolchain_config), + Some(tasks_config), + ); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph").arg("--dot").arg("node:aliasDeps"); + }); + + assert_snapshot!(assert.output()); + } + } +} diff --git a/crates/cli/tests/dep_graph_test.rs b/crates/cli/tests/dep_graph_test.rs deleted file mode 100644 index b4cc902b775..00000000000 --- a/crates/cli/tests/dep_graph_test.rs +++ /dev/null @@ -1,158 +0,0 @@ -use moon_test_utils::{ - assert_snapshot, create_sandbox_with_config, get_project_graph_aliases_fixture_configs, - get_tasks_fixture_configs, -}; - -#[test] -fn all_by_default() { - let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "tasks", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--dot"); - }); - - let dot = assert.output(); - - // Snapshot is not deterministic - assert_eq!(dot.split('\n').count(), 568); -} - -#[test] -fn focused_by_target() { - let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "tasks", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--dot").arg("basic:lint"); - }); - - assert_snapshot!(assert.output()); -} - -#[test] -fn focused_by_task_in_cwd() { - let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "tasks", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--dot").arg("lint"); - cmd.current_dir(sandbox.path().join("basic")); - }); - - assert_snapshot!(assert.output()); -} - -#[test] -fn includes_dependencies_when_focused() { - let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "tasks", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--dot").arg("chain:e"); - }); - - assert_snapshot!(assert.output()); -} - -#[test] -fn includes_dependents_when_focused() { - let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "tasks", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--dot").arg("basic:build"); - }); - - assert_snapshot!(assert.output()); -} - -#[test] -fn outputs_json() { - let (workspace_config, toolchain_config, tasks_config) = get_tasks_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "tasks", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--json").arg("basic:lint"); - }); - - assert_snapshot!(assert.output()); -} - -mod aliases { - use super::*; - - #[test] - fn can_focus_using_an_alias() { - let (workspace_config, toolchain_config, tasks_config) = - get_project_graph_aliases_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "project-graph/aliases", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--dot").arg("@scope/pkg-foo:test"); - }); - - assert_snapshot!(assert.output()); - } - - #[test] - fn resolves_aliases_in_task_deps() { - let (workspace_config, toolchain_config, tasks_config) = - get_project_graph_aliases_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "project-graph/aliases", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let assert = sandbox.run_moon(|cmd| { - cmd.arg("dep-graph").arg("--dot").arg("node:aliasDeps"); - }); - - assert_snapshot!(assert.output()); - } -} diff --git a/crates/cli/tests/snapshots/dep_graph_test__aliases__can_focus_using_an_alias.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap similarity index 96% rename from crates/cli/tests/snapshots/dep_graph_test__aliases__can_focus_using_an_alias.snap rename to crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap index f44262d50d1..ca6462de586 100644 --- a/crates/cli/tests/snapshots/dep_graph_test__aliases__can_focus_using_an_alias.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap @@ -1,5 +1,5 @@ --- -source: crates/cli/tests/dep_graph_test.rs +source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { diff --git a/crates/cli/tests/snapshots/dep_graph_test__aliases__resolves_aliases_in_task_deps.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap similarity index 97% rename from crates/cli/tests/snapshots/dep_graph_test__aliases__resolves_aliases_in_task_deps.snap rename to crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap index d186394e820..48d5317a03a 100644 --- a/crates/cli/tests/snapshots/dep_graph_test__aliases__resolves_aliases_in_task_deps.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap @@ -1,5 +1,5 @@ --- -source: crates/cli/tests/dep_graph_test.rs +source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { diff --git a/crates/cli/tests/snapshots/dep_graph_test__focused_by_task_in_cwd.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_target.snap similarity index 93% rename from crates/cli/tests/snapshots/dep_graph_test__focused_by_task_in_cwd.snap rename to crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_target.snap index 97327f0d549..83966a2ce42 100644 --- a/crates/cli/tests/snapshots/dep_graph_test__focused_by_task_in_cwd.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_target.snap @@ -1,5 +1,5 @@ --- -source: crates/cli/tests/dep_graph_test.rs +source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { diff --git a/crates/cli/tests/snapshots/dep_graph_test__focused_by_target.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_task_in_cwd.snap similarity index 93% rename from crates/cli/tests/snapshots/dep_graph_test__focused_by_target.snap rename to crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_task_in_cwd.snap index 97327f0d549..83966a2ce42 100644 --- a/crates/cli/tests/snapshots/dep_graph_test__focused_by_target.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_task_in_cwd.snap @@ -1,5 +1,5 @@ --- -source: crates/cli/tests/dep_graph_test.rs +source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { diff --git a/crates/cli/tests/snapshots/dep_graph_test__includes_dependencies_when_focused.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependencies_when_focused.snap similarity index 95% rename from crates/cli/tests/snapshots/dep_graph_test__includes_dependencies_when_focused.snap rename to crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependencies_when_focused.snap index 3dd11d10b8c..98dcdfe1ac2 100644 --- a/crates/cli/tests/snapshots/dep_graph_test__includes_dependencies_when_focused.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependencies_when_focused.snap @@ -1,5 +1,5 @@ --- -source: crates/cli/tests/dep_graph_test.rs +source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { diff --git a/crates/cli/tests/snapshots/dep_graph_test__includes_dependents_when_focused.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused.snap similarity index 97% rename from crates/cli/tests/snapshots/dep_graph_test__includes_dependents_when_focused.snap rename to crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused.snap index e0cf39256be..12f095418da 100644 --- a/crates/cli/tests/snapshots/dep_graph_test__includes_dependents_when_focused.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused.snap @@ -1,5 +1,5 @@ --- -source: crates/cli/tests/dep_graph_test.rs +source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { diff --git a/crates/cli/tests/snapshots/dep_graph_test__outputs_json.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__outputs_json.snap similarity index 90% rename from crates/cli/tests/snapshots/dep_graph_test__outputs_json.snap rename to crates/cli/tests/snapshots/action_graph_test__action_graph__outputs_json.snap index 5758c460cc9..534f5387238 100644 --- a/crates/cli/tests/snapshots/dep_graph_test__outputs_json.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__outputs_json.snap @@ -1,5 +1,5 @@ --- -source: crates/cli/tests/dep_graph_test.rs +source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- {"nodes":[{"id":2,"label":"InstallNodeDeps(18.0.0)"},{"id":4,"label":"RunTarget(basic:lint)"},{"id":1,"label":"SetupNodeTool(18.0.0)"},{"id":3,"label":"SyncNodeProject(basic)"}],"edges":[{"id":"2 -> 1","label":"","source":2,"target":1},{"id":"3 -> 1","label":"","source":3,"target":1},{"id":"4 -> 2","label":"","source":4,"target":2},{"id":"4 -> 3","label":"","source":4,"target":3}]} diff --git a/website/blog/2022-12-19_v0.21.mdx b/website/blog/2022-12-19_v0.21.mdx index d44c09c073a..0351aded720 100644 --- a/website/blog/2022-12-19_v0.21.mdx +++ b/website/blog/2022-12-19_v0.21.mdx @@ -84,7 +84,7 @@ tasks: Thanks to the amazing contribution from [Diptesh Choudhuri](https://github.com/IgnisDa), we now have interactive project and dependency graphs when running the [`moon project-graph`](../docs/commands/project-graph) and -[`moon dep-graph`](../docs/commands/dep-graph) commands respectively. +[`moon dep-graph`](../docs/commands/action-graph) commands respectively. This is only the first iteration of these graphs. Expect more advanced features in the future, like filtering, node/edge inspection, exporting, and more! diff --git a/website/docs/commands/dep-graph.mdx b/website/docs/commands/action-graph.mdx similarity index 70% rename from website/docs/commands/dep-graph.mdx rename to website/docs/commands/action-graph.mdx index 7ed5439c1eb..bc4e517d171 100644 --- a/website/docs/commands/dep-graph.mdx +++ b/website/docs/commands/action-graph.mdx @@ -1,21 +1,22 @@ --- -title: dep-graph +title: action-graph --- -The `moon dep-graph [target]` (or `moon dg`) command will generate and serve a visual dependency -graph of all actions, targets, and tasks within the workspace, and can also output the graph in -[Graphviz DOT format](https://graphviz.org/doc/info/lang.html). +The `moon action-graph [target]` (or `moon ag`) command will generate and serve a visual graph of +all actions and tasks within the workspace, known as the +[action graph](../how-it-works/action-graph). In other tools, this is sometimes referred to as a +dependency graph or task graph. ```shell # Run the visualizer locally -$ moon dep-graph +$ moon action-graph # Export to DOT format -$ moon dep-graph --dot > graph.dot +$ moon action-graph --dot > graph.dot ``` > A target can be passed to focus the graph, including dependencies _and_ dependents. For example, -> `moon dep-graph app:build`. +> `moon action-graph app:build`. ### Arguments diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index aa683167fb3..e33332855d9 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -215,6 +215,10 @@ const config = { from: '/docs/how-it-works/dep-graph', to: '/docs/how-it-works/action-graph', }, + { + from: '/docs/commands/dep-graph', + to: '/docs/commands/action-graph', + }, { from: '/docs/config/global-project', to: '/docs/config/tasks', diff --git a/website/sidebars.js b/website/sidebars.js index d9cfca902b6..346a5822d06 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -21,8 +21,10 @@ const sidebars = { 'mental-model', 'languages', 'project-graph', + 'action-graph', 'dep-graph', 'dependency-graph', + 'task-graph', ], }, }, @@ -97,12 +99,12 @@ const sidebars = { label: 'Commands', items: [ 'commands/overview', + 'commands/action-graph', 'commands/bin', 'commands/ci', 'commands/check', 'commands/clean', 'commands/completions', - 'commands/dep-graph', { type: 'category', label: 'docker', From 2773a23054d9753584089405058d01e4542d6c50 Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Sat, 7 Oct 2023 22:19:14 -0700 Subject: [PATCH 5/8] new: Migrate pipeline to new action graph. (#1104) * Update moon. * Update impl. * Update pipeline. * Update commands. * Remove dep graph. * Get running. * Redo graph iterator. * Get pipeline working. * Get tests working. * Fix persistent. * Renable test. * Renable test. * Change method. * Use a channel. * Fix dep chain. * Remove log. --- Cargo.lock | 35 +- crates/cli/Cargo.toml | 2 +- crates/cli/src/commands/ci.rs | 33 +- crates/cli/src/commands/docker/setup.rs | 10 +- crates/cli/src/commands/graph/action.rs | 19 +- crates/cli/src/commands/graph/utils.rs | 6 +- crates/cli/src/commands/run.rs | 51 +- crates/cli/src/commands/syncs/projects.rs | 10 +- crates/cli/tests/action_graph_test.rs | 11 +- ...ph__aliases__can_focus_using_an_alias.snap | 28 +- ...liases__resolves_aliases_in_task_deps.snap | 47 +- ...test__action_graph__focused_by_target.snap | 19 +- ..._action_graph__focused_by_task_in_cwd.snap | 19 +- ...h__includes_dependencies_when_focused.snap | 27 +- ...h__includes_dependents_when_focused-2.snap | 83 +++ ...aph__includes_dependents_when_focused.snap | 36 +- ...raph_test__action_graph__outputs_json.snap | 2 +- ...n_test__errors_for_cycle_in_task_deps.snap | 2 +- crates/core/action-pipeline/Cargo.toml | 9 +- .../benches/pipeline_benchmark.rs | 63 -- crates/core/action-pipeline/src/estimator.rs | 8 +- crates/core/action-pipeline/src/pipeline.rs | 336 +++++---- crates/core/action-pipeline/src/processor.rs | 25 +- .../src/subscribers/moonbase.rs | 10 +- .../action-pipeline/tests/estimator_test.rs | 69 +- crates/core/action/Cargo.toml | 1 + crates/core/action/src/action.rs | 6 +- crates/core/action/src/lib.rs | 3 +- crates/core/action/src/node.rs | 83 --- crates/core/dep-graph/Cargo.toml | 37 - .../dep-graph/benches/dep_graph_benchmark.rs | 49 -- crates/core/dep-graph/src/dep_builder.rs | 474 ------------ crates/core/dep-graph/src/dep_graph.rs | 215 ------ crates/core/dep-graph/src/errors.rs | 12 - crates/core/dep-graph/src/lib.rs | 7 - crates/core/dep-graph/tests/dep_graph_test.rs | 679 ------------------ ..._deps__tool_is_based_on_task_platform.snap | 22 - ...test__run_target__avoids_dupe_targets.snap | 16 - ...h_test__run_target__deps_chain_target.snap | 44 -- ...un_target__isolates_interactive_tasks.snap | 45 -- ...n_target__moves_persistent_tasks_last.snap | 54 -- ...uns_all_projects_for_target_all_scope.snap | 38 - ...raph_test__run_target__single_targets.snap | 19 - ...f_touched__skips_if_untouched_project.snap | 16 - ...t_if_touched__skips_if_untouched_task.snap | 21 - ...t__sync_project__avoids_dupe_projects.snap | 11 - ...test__sync_project__isolated_projects.snap | 19 - ...st__sync_project__projects_with_tasks.snap | 14 - crates/core/moon/Cargo.toml | 2 +- crates/core/moon/src/lib.rs | 6 +- nextgen/action-graph/Cargo.toml | 3 +- nextgen/action-graph/src/action_graph.rs | 165 +++-- .../action-graph/src/action_graph_builder.rs | 35 +- nextgen/action-graph/src/action_node.rs | 3 +- .../action-graph/tests/action_graph_test.rs | 83 +-- packages/cli/CHANGELOG.md | 11 +- website/docs/guides/webhooks.mdx | 3 +- 57 files changed, 722 insertions(+), 2434 deletions(-) create mode 100644 crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused-2.snap delete mode 100644 crates/core/action-pipeline/benches/pipeline_benchmark.rs delete mode 100644 crates/core/action/src/node.rs delete mode 100644 crates/core/dep-graph/Cargo.toml delete mode 100644 crates/core/dep-graph/benches/dep_graph_benchmark.rs delete mode 100644 crates/core/dep-graph/src/dep_builder.rs delete mode 100644 crates/core/dep-graph/src/dep_graph.rs delete mode 100644 crates/core/dep-graph/src/errors.rs delete mode 100644 crates/core/dep-graph/src/lib.rs delete mode 100644 crates/core/dep-graph/tests/dep_graph_test.rs delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__installs_deps__tool_is_based_on_task_platform.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__avoids_dupe_targets.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__deps_chain_target.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__isolates_interactive_tasks.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__runs_all_projects_for_target_all_scope.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__single_targets.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_project.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_task.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__avoids_dupe_projects.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__isolated_projects.snap delete mode 100644 crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__projects_with_tasks.snap diff --git a/Cargo.lock b/Cargo.lock index fb827287c7f..c155cc9b881 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2987,9 +2987,9 @@ name = "moon" version = "0.1.0" dependencies = [ "miette", + "moon_action_graph", "moon_config", "moon_deno_platform", - "moon_dep_graph", "moon_node_platform", "moon_platform", "moon_platform_detector", @@ -3008,6 +3008,7 @@ name = "moon_action" version = "0.1.0" dependencies = [ "miette", + "moon_action_graph", "moon_common", "moon_platform_runtime", "moon_target", @@ -3042,6 +3043,7 @@ dependencies = [ "moon_test_utils2", "petgraph", "rustc-hash", + "serde", "starbase_sandbox", "thiserror", "tokio", @@ -3059,10 +3061,10 @@ dependencies = [ "moon", "moon_action", "moon_action_context", + "moon_action_graph", "moon_actions", "moon_api", "moon_cache_item", - "moon_dep_graph", "moon_emitter", "moon_hash", "moon_logger", @@ -3216,6 +3218,7 @@ dependencies = [ "mimalloc", "moon", "moon_action_context", + "moon_action_graph", "moon_action_pipeline", "moon_actions", "moon_api", @@ -3223,7 +3226,6 @@ dependencies = [ "moon_codegen", "moon_common", "moon_config", - "moon_dep_graph", "moon_lang", "moon_node_lang", "moon_node_platform", @@ -3389,33 +3391,6 @@ dependencies = [ "rustc-hash", ] -[[package]] -name = "moon_dep_graph" -version = "0.1.0" -dependencies = [ - "criterion", - "miette", - "moon", - "moon_action", - "moon_common", - "moon_config", - "moon_logger", - "moon_platform", - "moon_project", - "moon_project_graph", - "moon_query", - "moon_target", - "moon_task", - "moon_test_utils", - "moon_utils", - "moon_workspace", - "petgraph", - "rustc-hash", - "starbase_styles", - "thiserror", - "tokio", -] - [[package]] name = "moon_emitter" version = "0.1.0" diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 9faaea65203..a3f77f1fbe6 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -16,6 +16,7 @@ crate-type = ["rlib"] [dependencies] moon = { path = "../core/moon" } moon_action_context = { path = "../core/action-context" } +moon_action_graph = { path = "../../nextgen/action-graph" } moon_action_pipeline = { path = "../core/action-pipeline" } moon_actions = { path = "../core/actions" } moon_api = { path = "../../nextgen/api" } @@ -23,7 +24,6 @@ moon_cache = { path = "../../nextgen/cache" } moon_codegen = { path = "../../nextgen/codegen" } moon_common = { path = "../../nextgen/common" } moon_config = { path = "../../nextgen/config" } -moon_dep_graph = { path = "../core/dep-graph" } moon_lang = { path = "../core/lang" } moon_node_lang = { path = "../node/lang" } moon_node_platform = { path = "../node/platform" } diff --git a/crates/cli/src/commands/ci.rs b/crates/cli/src/commands/ci.rs index 05ddd85a683..b9d6de486f9 100644 --- a/crates/cli/src/commands/ci.rs +++ b/crates/cli/src/commands/ci.rs @@ -3,11 +3,11 @@ use crate::queries::touched_files::{query_touched_files, QueryTouchedFilesOption use ci_env::CiOutput; use clap::Args; use itertools::Itertools; -use moon::{build_dep_graph, generate_project_graph}; +use moon::{build_action_graph, generate_project_graph}; use moon_action_context::ActionContext; +use moon_action_graph::ActionGraph; use moon_action_pipeline::Pipeline; use moon_common::path::WorkspaceRelativePathBuf; -use moon_dep_graph::DepGraph; use moon_project_graph::ProjectGraph; use moon_target::Target; use moon_terminal::safe_exit; @@ -162,31 +162,31 @@ fn distribute_targets_across_jobs( } /// Generate a dependency graph with the runnable targets. -fn generate_dep_graph( +fn generate_action_graph( provider: &CiOutput, project_graph: &ProjectGraph, targets: &TargetList, touched_files: &FxHashSet, -) -> AppResult { - print_header(provider, "Generating dependency graph"); +) -> AppResult { + print_header(provider, "Generating action graph"); - let mut dep_builder = build_dep_graph(project_graph); + let mut action_graph_builder = build_action_graph(project_graph)?; + + // Run dependents to ensure consumers still work correctly + action_graph_builder.include_dependents(); for target in targets { // Run the target and its dependencies - dep_builder.run_target(target, Some(touched_files))?; - - // And also run its dependents to ensure consumers still work correctly - dep_builder.run_dependents_for_target(target)?; + action_graph_builder.run_task_by_target(target, Some(touched_files))?; } - let dep_graph = dep_builder.build(); + let action_graph = action_graph_builder.build()?; println!("Target count: {}", targets.len()); - println!("Action count: {}", dep_graph.get_node_count()); + println!("Action count: {}", action_graph.get_node_count()); print_footer(provider); - Ok(dep_graph) + Ok(action_graph) } #[system] @@ -210,9 +210,10 @@ pub async fn ci( } let targets = distribute_targets_across_jobs(&ci_provider, args, targets); - let dep_graph = generate_dep_graph(&ci_provider, &project_graph, &targets, &touched_files)?; + let action_graph = + generate_action_graph(&ci_provider, &project_graph, &targets, &touched_files)?; - if dep_graph.is_empty() { + if action_graph.is_empty() { println!( "{}", color::invalid("No targets to run based on touched files") @@ -239,7 +240,7 @@ pub async fn ci( let results = pipeline .generate_report("ciReport.json") - .run(dep_graph, Some(context)) + .run(action_graph, Some(context)) .await?; print_footer(&ci_provider); diff --git a/crates/cli/src/commands/docker/setup.rs b/crates/cli/src/commands/docker/setup.rs index f9bf319ff12..c938e66e5f3 100644 --- a/crates/cli/src/commands/docker/setup.rs +++ b/crates/cli/src/commands/docker/setup.rs @@ -1,6 +1,6 @@ use super::MANIFEST_NAME; use crate::commands::docker::scaffold::DockerManifest; -use moon::{build_dep_graph, generate_project_graph}; +use moon::{build_action_graph, generate_project_graph}; use moon_action_pipeline::Pipeline; use moon_terminal::safe_exit; use moon_workspace::Workspace; @@ -18,17 +18,17 @@ pub async fn setup(workspace: ResourceMut) { let manifest: DockerManifest = json::read_file(manifest_path)?; let project_graph = generate_project_graph(workspace).await?; - let mut dep_builder = build_dep_graph(&project_graph); + let mut action_graph_builder = build_action_graph(&project_graph)?; for project_id in &manifest.focused_projects { let project = project_graph.get(project_id)?; - dep_builder.install_deps(&project, None)?; + action_graph_builder.install_deps(&project, None)?; } - let dep_graph = dep_builder.build(); + let action_graph = action_graph_builder.build()?; Pipeline::new(workspace.to_owned(), project_graph) - .run(dep_graph, None) + .run(action_graph, None) .await?; } diff --git a/crates/cli/src/commands/graph/action.rs b/crates/cli/src/commands/graph/action.rs index 7fe2778b092..9ece3882321 100644 --- a/crates/cli/src/commands/graph/action.rs +++ b/crates/cli/src/commands/graph/action.rs @@ -1,7 +1,7 @@ use crate::commands::graph::utils::{action_graph_repr, respond_to_request, setup_server}; use clap::Args; use miette::IntoDiagnostic; -use moon::{build_dep_graph, generate_project_graph}; +use moon::{build_action_graph, generate_project_graph}; use moon_target::TargetLocator; use moon_workspace::Workspace; use starbase::{system, SystemResult}; @@ -11,6 +11,9 @@ pub struct ActionGraphArgs { #[arg(help = "Target to *only* graph")] target: Option, + #[arg(long, help = "Include dependents of the focused target")] + dependents: bool, + #[arg(long, help = "Print the graph in DOT format")] dot: bool, @@ -23,24 +26,26 @@ pub async fn internal_action_graph( workspace: &mut Workspace, ) -> SystemResult { let project_graph = generate_project_graph(workspace).await?; - let mut action_graph_builder = build_dep_graph(&project_graph); + let mut action_graph_builder = build_action_graph(&project_graph)?; // Focus a target and its dependencies/dependents if let Some(locator) = args.target.clone() { - for target in action_graph_builder.run_targets_by_locator(&[locator], None)? { - action_graph_builder.run_dependents_for_target(&target)?; + if args.dependents { + action_graph_builder.include_dependents(); } + action_graph_builder.run_task_by_target_locator(locator, None)?; + // Show all targets and actions } else { - for project in project_graph.get_all_unexpanded() { + for project in project_graph.get_all()? { for task in project.tasks.values() { - action_graph_builder.run_target(&task.target, None)?; + action_graph_builder.run_task(&project, task, None)?; } } } - let action_graph = action_graph_builder.build(); + let action_graph = action_graph_builder.build()?; if args.dot { println!("{}", action_graph.to_dot()); diff --git a/crates/cli/src/commands/graph/utils.rs b/crates/cli/src/commands/graph/utils.rs index ae858905abd..c74bbf2e9cb 100644 --- a/crates/cli/src/commands/graph/utils.rs +++ b/crates/cli/src/commands/graph/utils.rs @@ -1,6 +1,6 @@ use super::dto::{GraphEdgeDto, GraphInfoDto, GraphNodeDto}; use miette::IntoDiagnostic; -use moon_dep_graph::DepGraph; +use moon_action_graph::ActionGraph; use moon_project_graph::ProjectGraph; use petgraph::{graph::NodeIndex, Graph}; use rustc_hash::FxHashMap; @@ -84,8 +84,8 @@ pub async fn project_graph_repr(project_graph: &ProjectGraph) -> GraphInfoDto { } /// Get a serialized representation of the dependency graph. -pub async fn action_graph_repr(dep_graph: &DepGraph) -> GraphInfoDto { - let labeled_graph = dep_graph.labeled_graph(); +pub async fn action_graph_repr(action_graph: &ActionGraph) -> GraphInfoDto { + let labeled_graph = action_graph.labeled_graph(); extract_nodes_and_edges_from_graph(&labeled_graph, false) } diff --git a/crates/cli/src/commands/run.rs b/crates/cli/src/commands/run.rs index 17e344a8429..380a42ffccb 100644 --- a/crates/cli/src/commands/run.rs +++ b/crates/cli/src/commands/run.rs @@ -4,7 +4,7 @@ use crate::helpers::map_list; use crate::queries::touched_files::{query_touched_files, QueryTouchedFilesOptions}; use clap::Args; use miette::miette; -use moon::{build_dep_graph, generate_project_graph}; +use moon::{build_action_graph, generate_project_graph}; use moon_action_context::{ActionContext, ProfileType}; use moon_action_pipeline::Pipeline; use moon_common::is_test_env; @@ -26,10 +26,7 @@ pub struct RunArgs { #[arg(required = true, help = "List of targets to run")] pub targets: Vec, - #[arg( - long, - help = "Run dependents of the primary targets, as well as dependencies" - )] + #[arg(long, help = "Run dependents of the primary targets")] pub dependents: bool, #[arg( @@ -136,21 +133,34 @@ pub async fn run_target( }; // Generate a dependency graph for all the targets that need to be ran - let mut dep_builder = build_dep_graph(&project_graph); + let mut action_graph_builder = build_action_graph(&project_graph)?; + + // Run dependents for all primary targets + if args.dependents { + action_graph_builder.include_dependents(); + } if let Some(query_input) = &args.query { - dep_builder.set_query(query_input)?; + action_graph_builder.set_query(query_input)?; } // Run targets, optionally based on affected files - let primary_targets = dep_builder.run_targets_by_locator( - target_locators, - if should_run_affected { - Some(&touched_files) - } else { - None - }, - )?; + let mut primary_targets = vec![]; + + for locator in target_locators { + primary_targets.extend( + action_graph_builder + .run_task_by_target_locator( + locator, + if should_run_affected { + Some(&touched_files) + } else { + None + }, + )? + .0, + ); + } if primary_targets.is_empty() { let targets_list = map_list(target_locators, |id| color::label(id)); @@ -183,13 +193,6 @@ pub async fn run_target( )); } - // Run dependents for all primary targets - if args.dependents { - for target in &primary_targets { - dep_builder.run_dependents_for_target(target)?; - } - } - // Process all tasks in the graph let context = ActionContext { affected_only: should_run_affected, @@ -203,7 +206,7 @@ pub async fn run_target( ..ActionContext::default() }; - let dep_graph = dep_builder.build(); + let action_graph = action_graph_builder.build()?; let mut pipeline = Pipeline::new(workspace.to_owned(), project_graph); if let Some(concurrency) = concurrency { @@ -213,7 +216,7 @@ pub async fn run_target( let results = pipeline .bail_on_error() .generate_report("runReport.json") - .run(dep_graph, Some(context)) + .run(action_graph, Some(context)) .await?; pipeline.render_stats(&results, true)?; diff --git a/crates/cli/src/commands/syncs/projects.rs b/crates/cli/src/commands/syncs/projects.rs index a091e2952d8..910f7bd8339 100644 --- a/crates/cli/src/commands/syncs/projects.rs +++ b/crates/cli/src/commands/syncs/projects.rs @@ -1,5 +1,5 @@ use crate::helpers::create_progress_bar; -use moon::{build_dep_graph, generate_project_graph}; +use moon::{build_action_graph, generate_project_graph}; use moon_action_pipeline::Pipeline; use moon_workspace::Workspace; use starbase::{system, SystemResult}; @@ -10,17 +10,17 @@ pub async fn internal_sync(workspace: &mut Workspace) -> SystemResult { let project_graph = generate_project_graph(workspace).await?; let mut project_count = 0; - let mut dep_builder = build_dep_graph(&project_graph); + let mut action_graph_builder = build_action_graph(&project_graph)?; for project in project_graph.get_all_unexpanded() { - dep_builder.sync_project(project)?; + action_graph_builder.sync_project(project)?; project_count += 1; } - let dep_graph = dep_builder.build(); + let action_graph = action_graph_builder.build()?; let mut pipeline = Pipeline::new(workspace.to_owned(), project_graph); - let results = pipeline.run(dep_graph, None).await?; + let results = pipeline.run(action_graph, None).await?; done( format!("Successfully synced {project_count} projects"), diff --git a/crates/cli/tests/action_graph_test.rs b/crates/cli/tests/action_graph_test.rs index 897032ae97d..8e643c07735 100644 --- a/crates/cli/tests/action_graph_test.rs +++ b/crates/cli/tests/action_graph_test.rs @@ -24,7 +24,7 @@ mod action_graph { let dot = assert.output(); // Snapshot is not deterministic - assert_eq!(dot.split('\n').count(), 568); + assert_eq!(dot.split('\n').count(), 450); } #[test] @@ -98,6 +98,15 @@ mod action_graph { }); assert_snapshot!(assert.output()); + + let assert = sandbox.run_moon(|cmd| { + cmd.arg("action-graph") + .arg("--dot") + .arg("--dependents") + .arg("basic:build"); + }); + + assert_snapshot!(assert.output()); } #[test] diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap index ca6462de586..c29a6676117 100644 --- a/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__can_focus_using_an_alias.snap @@ -3,24 +3,16 @@ source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(nodeNameScope)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(nodeNameScope:test)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(node)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="SyncNodeProject(nodeNameOnly)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="RunTarget(node:test)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 5 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 3 [ arrowhead=box, arrowtail=box] - 6 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 6 [ arrowhead=box, arrowtail=box] - 7 -> 2 [ arrowhead=box, arrowtail=box] - 7 -> 5 [ arrowhead=box, arrowtail=box] + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(18.0.0)" ] + 2 [ label="InstallNodeDeps(18.0.0)" ] + 3 [ label="SyncNodeProject(nodeNameScope)" ] + 4 [ label="RunTask(nodeNameScope:test)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] } diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap index 48d5317a03a..4c87d471b7b 100644 --- a/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__aliases__resolves_aliases_in_task_deps.snap @@ -3,29 +3,30 @@ source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(node)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="SyncNodeProject(nodeNameScope)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(nodeNameOnly)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="RunTarget(node:aliasDeps)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="RunTarget(nodeNameScope:standard)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 8 [ label="RunTarget(nodeNameOnly:standard)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 4 [ arrowhead=box, arrowtail=box] - 5 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 5 [ arrowhead=box, arrowtail=box] - 6 -> 2 [ arrowhead=box, arrowtail=box] - 6 -> 3 [ arrowhead=box, arrowtail=box] - 7 -> 2 [ arrowhead=box, arrowtail=box] - 7 -> 4 [ arrowhead=box, arrowtail=box] - 8 -> 2 [ arrowhead=box, arrowtail=box] - 8 -> 5 [ arrowhead=box, arrowtail=box] - 6 -> 7 [ arrowhead=box, arrowtail=box] - 6 -> 8 [ arrowhead=box, arrowtail=box] + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(18.0.0)" ] + 2 [ label="InstallNodeDeps(18.0.0)" ] + 3 [ label="SyncNodeProject(node)" ] + 4 [ label="SyncNodeProject(nodeNameScope)" ] + 5 [ label="SyncNodeProject(nodeNameOnly)" ] + 6 [ label="RunTask(node:aliasDeps)" ] + 7 [ label="RunTask(nodeNameScope:standard)" ] + 8 [ label="RunTask(nodeNameOnly:standard)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 4 -> 1 [ ] + 5 -> 1 [ ] + 3 -> 1 [ ] + 3 -> 4 [ ] + 3 -> 5 [ ] + 7 -> 2 [ ] + 7 -> 4 [ ] + 8 -> 2 [ ] + 8 -> 5 [ ] + 6 -> 2 [ ] + 6 -> 3 [ ] + 6 -> 7 [ ] + 6 -> 8 [ ] } diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_target.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_target.snap index 83966a2ce42..d3ee89ce3a8 100644 --- a/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_target.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_target.snap @@ -3,15 +3,16 @@ source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(basic:lint)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(18.0.0)" ] + 2 [ label="InstallNodeDeps(18.0.0)" ] + 3 [ label="SyncNodeProject(basic)" ] + 4 [ label="RunTask(basic:lint)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] } diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_task_in_cwd.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_task_in_cwd.snap index 83966a2ce42..d3ee89ce3a8 100644 --- a/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_task_in_cwd.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__focused_by_task_in_cwd.snap @@ -3,15 +3,16 @@ source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(basic:lint)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(18.0.0)" ] + 2 [ label="InstallNodeDeps(18.0.0)" ] + 3 [ label="SyncNodeProject(basic)" ] + 4 [ label="RunTask(basic:lint)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] } diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependencies_when_focused.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependencies_when_focused.snap index 98dcdfe1ac2..cd1c38ff8b7 100644 --- a/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependencies_when_focused.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependencies_when_focused.snap @@ -3,19 +3,20 @@ source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(chain)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(chain:e)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="RunTarget(chain:f)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 5 -> 2 [ arrowhead=box, arrowtail=box] - 5 -> 3 [ arrowhead=box, arrowtail=box] - 4 -> 5 [ arrowhead=box, arrowtail=box] + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(18.0.0)" ] + 2 [ label="InstallNodeDeps(18.0.0)" ] + 3 [ label="SyncNodeProject(chain)" ] + 4 [ label="RunTask(chain:e)" ] + 5 [ label="RunTask(chain:f)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] + 5 -> 2 [ ] + 5 -> 3 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] + 4 -> 5 [ ] } diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused-2.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused-2.snap new file mode 100644 index 00000000000..476525f957f --- /dev/null +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused-2.snap @@ -0,0 +1,83 @@ +--- +source: crates/cli/tests/action_graph_test.rs +expression: assert.output() +--- +digraph { + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(18.0.0)" ] + 2 [ label="InstallNodeDeps(18.0.0)" ] + 3 [ label="SyncNodeProject(basic)" ] + 4 [ label="RunTask(basic:build)" ] + 5 [ label="SyncNodeProject(buildA)" ] + 6 [ label="SyncNodeProject(buildC)" ] + 7 [ label="SyncNodeProject(noTasks)" ] + 8 [ label="RunTask(buildA:build)" ] + 9 [ label="RunTask(buildC:build)" ] + 10 [ label="SetupSystemTool" ] + 11 [ label="SyncSystemProject(scopeDeps)" ] + 12 [ label="SyncNodeProject(buildB)" ] + 13 [ label="RunTask(scopeDeps:build)" ] + 14 [ label="RunTask(buildB:build)" ] + 15 [ label="RunTask(scopeDeps:buildNoDupes)" ] + 16 [ label="SyncSystemProject(mergeAllStrategies)" ] + 17 [ label="RunTask(mergeAllStrategies:standard)" ] + 18 [ label="SyncSystemProject(mergePrepend)" ] + 19 [ label="RunTask(mergePrepend:standard)" ] + 20 [ label="SyncSystemProject(mergeReplace)" ] + 21 [ label="RunTask(mergeReplace:standard)" ] + 22 [ label="SyncSystemProject(mergeAppend)" ] + 23 [ label="RunTask(mergeAppend:standard)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] + 6 -> 1 [ ] + 7 -> 1 [ ] + 5 -> 1 [ ] + 5 -> 6 [ ] + 5 -> 3 [ ] + 5 -> 7 [ ] + 9 -> 2 [ ] + 9 -> 6 [ ] + 10 -> 0 [ ] + 12 -> 1 [ ] + 11 -> 10 [ ] + 11 -> 7 [ ] + 11 -> 5 [ ] + 11 -> 12 [ ] + 11 -> 6 [ ] + 14 -> 2 [ ] + 14 -> 12 [ ] + 15 -> 11 [ ] + 15 -> 8 [ ] + 15 -> 14 [ ] + 15 -> 9 [ ] + 16 -> 10 [ ] + 16 -> 12 [ ] + 17 -> 16 [ ] + 17 -> 14 [ ] + 18 -> 10 [ ] + 18 -> 12 [ ] + 19 -> 18 [ ] + 19 -> 14 [ ] + 20 -> 10 [ ] + 20 -> 12 [ ] + 21 -> 20 [ ] + 21 -> 14 [ ] + 22 -> 10 [ ] + 22 -> 12 [ ] + 23 -> 22 [ ] + 23 -> 14 [ ] + 13 -> 11 [ ] + 13 -> 8 [ ] + 13 -> 14 [ ] + 13 -> 9 [ ] + 8 -> 2 [ ] + 8 -> 5 [ ] + 8 -> 4 [ ] + 8 -> 9 [ ] +} + + + diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused.snap index 12f095418da..d9e4c9d82eb 100644 --- a/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__includes_dependents_when_focused.snap @@ -3,32 +3,16 @@ source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(18.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(basic:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(buildA)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="SyncNodeProject(buildC)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="SyncNodeProject(noTasks)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 8 [ label="RunTarget(buildA:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 9 [ label="RunTarget(buildC:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 5 -> 1 [ arrowhead=box, arrowtail=box] - 6 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 6 [ arrowhead=box, arrowtail=box] - 5 -> 3 [ arrowhead=box, arrowtail=box] - 7 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 7 [ arrowhead=box, arrowtail=box] - 8 -> 2 [ arrowhead=box, arrowtail=box] - 8 -> 5 [ arrowhead=box, arrowtail=box] - 9 -> 2 [ arrowhead=box, arrowtail=box] - 9 -> 6 [ arrowhead=box, arrowtail=box] - 8 -> 4 [ arrowhead=box, arrowtail=box] - 8 -> 9 [ arrowhead=box, arrowtail=box] + 0 [ label="SyncWorkspace" ] + 1 [ label="SetupNodeTool(18.0.0)" ] + 2 [ label="InstallNodeDeps(18.0.0)" ] + 3 [ label="SyncNodeProject(basic)" ] + 4 [ label="RunTask(basic:build)" ] + 1 -> 0 [ ] + 2 -> 1 [ ] + 3 -> 1 [ ] + 4 -> 2 [ ] + 4 -> 3 [ ] } diff --git a/crates/cli/tests/snapshots/action_graph_test__action_graph__outputs_json.snap b/crates/cli/tests/snapshots/action_graph_test__action_graph__outputs_json.snap index 534f5387238..e8b1e3d5858 100644 --- a/crates/cli/tests/snapshots/action_graph_test__action_graph__outputs_json.snap +++ b/crates/cli/tests/snapshots/action_graph_test__action_graph__outputs_json.snap @@ -2,6 +2,6 @@ source: crates/cli/tests/action_graph_test.rs expression: assert.output() --- -{"nodes":[{"id":2,"label":"InstallNodeDeps(18.0.0)"},{"id":4,"label":"RunTarget(basic:lint)"},{"id":1,"label":"SetupNodeTool(18.0.0)"},{"id":3,"label":"SyncNodeProject(basic)"}],"edges":[{"id":"2 -> 1","label":"","source":2,"target":1},{"id":"3 -> 1","label":"","source":3,"target":1},{"id":"4 -> 2","label":"","source":4,"target":2},{"id":"4 -> 3","label":"","source":4,"target":3}]} +{"nodes":[{"id":0,"label":"SyncWorkspace"},{"id":2,"label":"InstallNodeDeps(18.0.0)"},{"id":4,"label":"RunTask(basic:lint)"},{"id":1,"label":"SetupNodeTool(18.0.0)"},{"id":3,"label":"SyncNodeProject(basic)"}],"edges":[{"id":"1 -> 0","label":"","source":1,"target":0},{"id":"2 -> 1","label":"","source":2,"target":1},{"id":"3 -> 1","label":"","source":3,"target":1},{"id":"4 -> 2","label":"","source":4,"target":2},{"id":"4 -> 3","label":"","source":4,"target":3}]} diff --git a/crates/cli/tests/snapshots/run_test__errors_for_cycle_in_task_deps.snap b/crates/cli/tests/snapshots/run_test__errors_for_cycle_in_task_deps.snap index bbac63af8b6..c021624872c 100644 --- a/crates/cli/tests/snapshots/run_test__errors_for_cycle_in_task_deps.snap +++ b/crates/cli/tests/snapshots/run_test__errors_for_cycle_in_task_deps.snap @@ -2,7 +2,7 @@ source: crates/cli/tests/run_test.rs expression: assert.output() --- -Error: × A dependency cycle has been detected for RunTarget(depsC:taskCycle). +Error: × A dependency cycle has been detected for RunTask(depsC:taskCycle). diff --git a/crates/core/action-pipeline/Cargo.toml b/crates/core/action-pipeline/Cargo.toml index aa1e4647436..dc6691a25e9 100644 --- a/crates/core/action-pipeline/Cargo.toml +++ b/crates/core/action-pipeline/Cargo.toml @@ -4,20 +4,13 @@ version = "0.1.0" edition = "2021" publish = false -[lib] -bench = false - -[[bench]] -name = "pipeline_benchmark" -harness = false - [dependencies] moon_action = { path = "../action" } moon_action_context = { path = "../action-context" } +moon_action_graph = { path = "../../../nextgen/action-graph" } moon_actions = { path = "../actions" } moon_api = { path = "../../../nextgen/api" } moon_cache_item = { path = "../../../nextgen/cache-item" } -moon_dep_graph = { path = "../dep-graph" } moon_emitter = { path = "../emitter" } moon_hash = { path = "../../../nextgen/hash" } moon_logger = { path = "../logger" } diff --git a/crates/core/action-pipeline/benches/pipeline_benchmark.rs b/crates/core/action-pipeline/benches/pipeline_benchmark.rs deleted file mode 100644 index 9025569d393..00000000000 --- a/crates/core/action-pipeline/benches/pipeline_benchmark.rs +++ /dev/null @@ -1,63 +0,0 @@ -use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use moon::{build_dep_graph, generate_project_graph, load_workspace_from}; -use moon_action_pipeline::Pipeline; -use moon_dep_graph::DepGraph; -use moon_project_graph::ProjectGraph; -use moon_target::Target; -use moon_test_utils::{create_sandbox_with_config, get_cases_fixture_configs}; -use moon_workspace::Workspace; - -fn generate_dep_graph(_workspace: &Workspace, project_graph: &ProjectGraph) -> DepGraph { - let mut dep_graph = build_dep_graph(project_graph); - - dep_graph - .run_target(Target::parse("base:standard").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("depsA:dependencyOrder").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("outputs:withDeps").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("passthroughArgs:c").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("targetScopeB:self").unwrap(), None) - .unwrap(); - - dep_graph.build() -} - -pub fn pipeline_benchmark(c: &mut Criterion) { - let (workspace_config, toolchain_config, tasks_config) = get_cases_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "cases", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - c.bench_function("pipeline", |b| { - b.iter(|| async { - let mut workspace = load_workspace_from(sandbox.path()).await.unwrap(); - let project_graph = generate_project_graph(&mut workspace).await.unwrap(); - let dep_graph = generate_dep_graph(&workspace, &project_graph); - - black_box( - Pipeline::new(workspace, project_graph) - .run(dep_graph, None) - .await - .unwrap(), - ); - }) - }); -} - -criterion_group!(pipeline, pipeline_benchmark); -criterion_main!(pipeline); diff --git a/crates/core/action-pipeline/src/estimator.rs b/crates/core/action-pipeline/src/estimator.rs index dc823417a19..86daf2561ec 100644 --- a/crates/core/action-pipeline/src/estimator.rs +++ b/crates/core/action-pipeline/src/estimator.rs @@ -67,12 +67,12 @@ impl Estimator { } match node { - ActionNode::SetupTool(_) - | ActionNode::InstallDeps(_) - | ActionNode::InstallProjectDeps(_, _) => { + ActionNode::SetupTool { .. } + | ActionNode::InstallDeps { .. } + | ActionNode::InstallProjectDeps { .. } => { install_duration += task_duration; } - ActionNode::RunTarget(_, target) => { + ActionNode::RunTask { target, .. } => { let task_id = target.task_id.to_string(); if let Some(task) = tasks.get_mut(&task_id) { diff --git a/crates/core/action-pipeline/src/pipeline.rs b/crates/core/action-pipeline/src/pipeline.rs index a98765d0f2d..c5816ba92fb 100644 --- a/crates/core/action-pipeline/src/pipeline.rs +++ b/crates/core/action-pipeline/src/pipeline.rs @@ -7,18 +7,20 @@ use crate::subscribers::moonbase::MoonbaseSubscriber; use console::Term; use moon_action::{Action, ActionNode, ActionStatus}; use moon_action_context::ActionContext; -use moon_dep_graph::DepGraph; +use moon_action_graph::ActionGraph; use moon_emitter::{Emitter, Event}; -use moon_logger::{debug, error, trace}; +use moon_logger::{debug, error, trace, warn}; use moon_notifier::WebhooksSubscriber; use moon_project_graph::ProjectGraph; use moon_terminal::{label_checkpoint, label_to_the_moon, Checkpoint, ExtendedTerm}; use moon_utils::{is_ci, is_test_env, time}; use moon_workspace::Workspace; use starbase_styles::color; +use std::mem; use std::sync::Arc; use std::time::{Duration, Instant}; -use tokio::sync::{RwLock, Semaphore}; +use tokio::sync::{RwLock, RwLockReadGuard, Semaphore}; +use tokio::task::JoinHandle; use tokio_util::sync::CancellationToken; const LOG_TARGET: &str = "moon:action-pipeline"; @@ -68,7 +70,7 @@ impl Pipeline { pub async fn run( &mut self, - dep_graph: DepGraph, + action_graph: ActionGraph, context: Option, ) -> miette::Result { let start = Instant::now(); @@ -78,21 +80,14 @@ impl Pipeline { )); let workspace = Arc::clone(&self.workspace); let project_graph = Arc::clone(&self.project_graph); - let mut results: ActionResults = vec![]; - let mut passed_count = 0; - let mut cached_count = 0; - let mut failed_count = 0; - // Queue actions in topological order that need to be processed, - // grouped into batches based on dependency requirements - let total_actions_count = dep_graph.get_node_count(); - let batches = dep_graph.sort_batched_topological()?; - let batches_count = batches.len(); + // Queue actions in topological order that need to be processed + let total_actions_count = action_graph.get_node_count(); let local_emitter = emitter.read().await; debug!( target: LOG_TARGET, - "Running {} actions across {} batches", total_actions_count, batches_count + "Running {} actions", total_actions_count ); local_emitter @@ -117,121 +112,173 @@ impl Pipeline { self.concurrency.unwrap_or_else(num_cpus::get), )); - for (b, batch) in batches.into_iter().enumerate() { - let batch_index = b + 1; - let batch_target_name = format!("{LOG_TARGET}:batch:{batch_index}"); - let actions_count = batch.len(); - let mut action_handles = vec![]; + let mut results: ActionResults = vec![]; + let mut action_handles = vec![]; + let mut persistent_nodes = vec![]; + let mut action_graph_iter = action_graph.try_iter()?; + + action_graph_iter.monitor_completed(); - trace!( - target: &batch_target_name, - "Running {} actions in batch {}", - actions_count, - batch_index - ); + while action_graph_iter.has_pending() { + let Some(node_index) = action_graph_iter.next() else { + // Nothing new to run since they're waiting on currently + // running actions, so exhaust the current list + self.run_handles(mem::take(&mut action_handles), &mut results, &local_emitter) + .await?; - for (i, node_index) in batch.into_iter().enumerate() { - let action_index = i + 1; - - if let Some(node) = dep_graph.get_node_from_index(&node_index) { - let context_clone = Arc::clone(&context); - let emitter_clone = Arc::clone(&emitter); - let workspace_clone = Arc::clone(&workspace); - let project_graph_clone = Arc::clone(&project_graph); - let cancel_token_clone = cancel_token.clone(); - - let mut action = Action::new(node.to_owned()); - action.log_target = format!("{batch_target_name}:{action_index}"); - - let Ok(permit) = semaphore.clone().acquire_owned().await else { - break; // Should error? - }; - - action_handles.push(tokio::spawn(async move { - let result = tokio::select! { - biased; - - _ = cancel_token_clone.cancelled() => { - Err(PipelineError::Aborted("Received ctrl + c, shutting down".into()).into()) - } - res = process_action( - action, - context_clone, - emitter_clone, - workspace_clone, - project_graph_clone, - ) => res - }; - - drop(permit); - - result - })); - } else { - return Err(PipelineError::UnknownActionNode.into()); - } + continue; + }; + + let Some(node) = action_graph.get_node_from_index(&node_index) else { + warn!( + target: LOG_TARGET, + "Received a graph index {} with no associated node, unable to process", + node_index.index() + ); + + continue; + }; + + // Run these later as a parallel batch + if node.is_persistent() { + trace!( + target: LOG_TARGET, + // index = node_index.index(), + "Marking action {} as persistent, will defer run", + node_index.index() + ); + + // Must mark as completed otherwise the loop hangs + action_graph_iter.mark_completed(node_index); + + persistent_nodes.push(node_index); + + continue; } - // Wait for all actions in this batch to complete - let mut abort_error: Option = None; - let mut show_abort_log = false; + let context_clone = Arc::clone(&context); + let emitter_clone = Arc::clone(&emitter); + let workspace_clone = Arc::clone(&workspace); + let project_graph_clone = Arc::clone(&project_graph); + let cancel_token_clone = cancel_token.clone(); + let sender = action_graph_iter.sender.clone(); + let mut action = Action::new(node.to_owned()); + action.node_index = node_index.index(); + + let Ok(permit) = semaphore.clone().acquire_owned().await else { + continue; // Should error? + }; - for handle in action_handles { - if abort_error.is_some() { - if !handle.is_finished() { - handle.abort(); + action_handles.push(tokio::spawn(async move { + let result = tokio::select! { + biased; + + _ = cancel_token_clone.cancelled() => { + Err(PipelineError::Aborted("Received ctrl + c, shutting down".into()).into()) } - } else { - match handle.await { - Ok(Ok(mut result)) => { - if result.has_failed() { - failed_count += 1; - } else if result.was_cached() { - cached_count += 1; - } else { - passed_count += 1; - } - - show_abort_log = result.should_abort(); - - if self.bail && result.should_bail() || result.should_abort() { - abort_error = Some(result.get_error()); - } else { - results.push(result); - } - } - Ok(Err(error)) => { - abort_error = Some(error); - } - _ => { - abort_error = - Some(PipelineError::Aborted("Unknown error!".into()).into()); - } - }; + res = process_action( + action, + context_clone, + emitter_clone, + workspace_clone, + project_graph_clone, + ) => res + }; + + if let Ok(action) = &result { + let _ = sender.send(action.node_index); } + + drop(permit); + + result + })); + + // Run this in isolation by exhausting the current list of handles + if node.is_interactive() || semaphore.available_permits() == 0 { + self.run_handles(mem::take(&mut action_handles), &mut results, &local_emitter) + .await?; } + } - if let Some(abort_error) = abort_error { - if show_abort_log { - error!( - target: &batch_target_name, - "Encountered a critical error, aborting the action pipeline" - ); + if !persistent_nodes.is_empty() { + trace!( + target: LOG_TARGET, + "Running {} persistent actions", + persistent_nodes.len(), + ); + } + + for node_index in persistent_nodes { + let Some(node) = action_graph.get_node_from_index(&node_index) else { + warn!( + target: LOG_TARGET, + "Received a graph index {} with no associated node, unable to process", + node_index.index() + ); + + continue; + }; + + let context_clone = Arc::clone(&context); + let emitter_clone = Arc::clone(&emitter); + let workspace_clone = Arc::clone(&workspace); + let project_graph_clone = Arc::clone(&project_graph); + let cancel_token_clone = cancel_token.clone(); + let sender = action_graph_iter.sender.clone(); + let mut action = Action::new(node.to_owned()); + action.node_index = node_index.index(); + + let Ok(permit) = semaphore.clone().acquire_owned().await else { + continue; // Should error? + }; + + action_handles.push(tokio::spawn(async move { + let result = tokio::select! { + biased; + + _ = cancel_token_clone.cancelled() => { + Err(PipelineError::Aborted("Received ctrl + c, shutting down".into()).into()) + } + res = process_action( + action, + context_clone, + emitter_clone, + workspace_clone, + project_graph_clone, + ) => res + }; + + if let Ok(action) = &result { + let _ = sender.send(action.node_index); } - local_emitter - .emit(Event::PipelineAborted { - error: abort_error.to_string(), - }) - .await?; + drop(permit); - return Err(abort_error); - } + result + })); } + // Run any remaining actions + self.run_handles(action_handles, &mut results, &local_emitter) + .await?; + let duration = start.elapsed(); let estimate = Estimator::calculate(&results, duration); let context = Arc::into_inner(context).unwrap().into_inner(); + let mut passed_count = 0; + let mut cached_count = 0; + let mut failed_count = 0; + + for result in &results { + if result.has_failed() { + failed_count += 1; + } else if result.was_cached() { + cached_count += 1; + } else { + passed_count += 1; + } + } debug!( target: LOG_TARGET, @@ -256,6 +303,58 @@ impl Pipeline { Ok(results) } + async fn run_handles( + &self, + handles: Vec>>, + results: &mut ActionResults, + emitter: &RwLockReadGuard<'_, Emitter>, + ) -> miette::Result<()> { + let mut abort_error: Option = None; + let mut show_abort_log = false; + + for handle in handles { + if abort_error.is_some() { + if !handle.is_finished() { + handle.abort(); + } + } else { + match handle.await { + Ok(Ok(mut result)) => { + show_abort_log = result.should_abort(); + + if self.bail && result.should_bail() || result.should_abort() { + abort_error = Some(result.get_error()); + } else { + results.push(result); + } + } + Ok(Err(error)) => { + abort_error = Some(error); + } + _ => { + abort_error = Some(PipelineError::Aborted("Unknown error!".into()).into()); + } + }; + } + } + + if let Some(abort_error) = abort_error { + if show_abort_log { + error!("Encountered a critical error, aborting the action pipeline"); + } + + emitter + .emit(Event::PipelineAborted { + error: abort_error.to_string(), + }) + .await?; + + return Err(abort_error); + } + + Ok(()) + } + pub fn render_summary(&self, results: &ActionResults) -> miette::Result<()> { let term = Term::buffered_stdout(); term.line("")?; @@ -269,9 +368,7 @@ impl Pipeline { term.line(label_checkpoint( match &result.node { - Some(ActionNode::RunTarget(_, target)) => target.as_str(), - Some(ActionNode::RunInteractiveTarget(_, target)) => target.as_str(), - Some(ActionNode::RunPersistentTarget(_, target)) => target.as_str(), + Some(ActionNode::RunTask { target, .. }) => target.as_str(), _ => &result.label, }, Checkpoint::RunFailed, @@ -373,14 +470,7 @@ impl Pipeline { let mut skipped_count = 0; for result in results { - if compact - && !matches!( - result.node.as_ref().unwrap(), - ActionNode::RunTarget(_, _) - | ActionNode::RunInteractiveTarget(_, _) - | ActionNode::RunPersistentTarget(_, _) - ) - { + if compact && !matches!(result.node.as_ref().unwrap(), ActionNode::RunTask { .. }) { continue; } diff --git a/crates/core/action-pipeline/src/processor.rs b/crates/core/action-pipeline/src/processor.rs index 4a099f08047..cc939b1002e 100644 --- a/crates/core/action-pipeline/src/processor.rs +++ b/crates/core/action-pipeline/src/processor.rs @@ -53,7 +53,7 @@ pub async fn process_action( let result = match &node { // Setup and install the specific tool - ActionNode::SetupTool(runtime) => { + ActionNode::SetupTool { runtime } => { local_emitter .emit(Event::ToolInstalling { runtime }) .await?; @@ -71,7 +71,7 @@ pub async fn process_action( } // Install dependencies in the workspace root - ActionNode::InstallDeps(runtime) => { + ActionNode::InstallDeps { runtime } => { local_emitter .emit(Event::DependenciesInstalling { project: None, @@ -93,7 +93,10 @@ pub async fn process_action( } // Install dependencies in the project root - ActionNode::InstallProjectDeps(runtime, project_id) => { + ActionNode::InstallProjectDeps { + runtime, + project: project_id, + } => { let project = local_project_graph.get(project_id)?; local_emitter @@ -118,7 +121,10 @@ pub async fn process_action( } // Sync a project within the graph - ActionNode::SyncProject(runtime, project_id) => { + ActionNode::SyncProject { + runtime, + project: project_id, + } => { let project = local_project_graph.get(project_id)?; local_emitter @@ -165,9 +171,9 @@ pub async fn process_action( } // Run a task within a project - ActionNode::RunTarget(runtime, target) - | ActionNode::RunInteractiveTarget(runtime, target) - | ActionNode::RunPersistentTarget(runtime, target) => { + ActionNode::RunTask { + runtime, target, .. + } => { let project = local_project_graph.get(target.get_project_id().unwrap())?; local_emitter.emit(Event::TargetRunning { target }).await?; @@ -207,7 +213,10 @@ pub async fn process_action( if action.has_failed() { // If these fail, we should abort instead of trying to continue - if matches!(node, ActionNode::SetupTool(_)) || matches!(node, ActionNode::InstallDeps(_)) { + if matches!( + node, + ActionNode::SetupTool { .. } | ActionNode::InstallDeps { .. } + ) { action.abort(); } } diff --git a/crates/core/action-pipeline/src/subscribers/moonbase.rs b/crates/core/action-pipeline/src/subscribers/moonbase.rs index 18e63479b4d..20b900df961 100644 --- a/crates/core/action-pipeline/src/subscribers/moonbase.rs +++ b/crates/core/action-pipeline/src/subscribers/moonbase.rs @@ -459,9 +459,13 @@ impl Subscriber for MoonbaseSubscriber { let archive_path = archive_path.to_owned(); // Create a fake action label so that we can check the CI cache - let action_label = - ActionNode::RunTarget(Runtime::system(), (*target).to_owned()) - .label(); + let action_label = ActionNode::RunTask { + interactive: false, + persistent: false, + runtime: Runtime::system(), + target: (*target).to_owned(), + } + .label(); let job_id = self.job_ids.get(&action_label).cloned(); // Run this in the background so we don't slow down the pipeline diff --git a/crates/core/action-pipeline/tests/estimator_test.rs b/crates/core/action-pipeline/tests/estimator_test.rs index 13bea75f702..80ab2ba684a 100644 --- a/crates/core/action-pipeline/tests/estimator_test.rs +++ b/crates/core/action-pipeline/tests/estimator_test.rs @@ -7,6 +7,15 @@ use std::time::Duration; const NANOS_PER_MILLI: u32 = 1_000_000; const HALF_SECOND: u32 = NANOS_PER_MILLI * 500; +fn create_run_task_action(runtime: Runtime, target: &str) -> ActionNode { + ActionNode::RunTask { + interactive: false, + persistent: false, + runtime, + target: target.into(), + } +} + mod estimator { use super::*; @@ -31,7 +40,7 @@ mod estimator { let est = Estimator::calculate( &[Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "proj:task".into())), + node: Some(create_run_task_action(Runtime::system(), "proj:task")), ..Action::default() }], Duration::new(5, 0), @@ -58,27 +67,27 @@ mod estimator { &[ Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "a:build".into())), + node: Some(create_run_task_action(Runtime::system(), "a:build")), ..Action::default() }, Action { duration: Some(Duration::new(5, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "a:lint".into())), + node: Some(create_run_task_action(Runtime::system(), "a:lint")), ..Action::default() }, Action { duration: Some(Duration::new(15, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "b:build".into())), + node: Some(create_run_task_action(Runtime::system(), "b:build")), ..Action::default() }, Action { duration: Some(Duration::new(8, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "c:test".into())), + node: Some(create_run_task_action(Runtime::system(), "c:test")), ..Action::default() }, Action { duration: Some(Duration::new(12, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "d:lint".into())), + node: Some(create_run_task_action(Runtime::system(), "d:lint")), ..Action::default() }, ], @@ -113,17 +122,21 @@ mod estimator { &[ Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::SetupTool(Runtime::system())), + node: Some(ActionNode::SetupTool { + runtime: Runtime::system(), + }), ..Action::default() }, Action { duration: Some(Duration::new(25, 0)), - node: Some(ActionNode::InstallDeps(Runtime::system())), + node: Some(ActionNode::InstallDeps { + runtime: Runtime::system(), + }), ..Action::default() }, Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "proj:task".into())), + node: Some(create_run_task_action(Runtime::system(), "proj:task")), ..Action::default() }, ], @@ -153,7 +166,7 @@ mod estimator { let est = Estimator::calculate( &[Action { duration: Some(Duration::new(3, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "proj:task".into())), + node: Some(create_run_task_action(Runtime::system(), "proj:task")), status: ActionStatus::Cached, ..Action::default() }], @@ -181,37 +194,41 @@ mod estimator { &[ Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::SetupTool(Runtime::system())), + node: Some(ActionNode::SetupTool { + runtime: Runtime::system(), + }), ..Action::default() }, Action { duration: Some(Duration::new(25, 0)), - node: Some(ActionNode::InstallDeps(Runtime::system())), + node: Some(ActionNode::InstallDeps { + runtime: Runtime::system(), + }), ..Action::default() }, Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "a:build".into())), + node: Some(create_run_task_action(Runtime::system(), "a:build")), ..Action::default() }, Action { duration: Some(Duration::new(5, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "a:lint".into())), + node: Some(create_run_task_action(Runtime::system(), "a:lint")), ..Action::default() }, Action { duration: Some(Duration::new(15, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "b:build".into())), + node: Some(create_run_task_action(Runtime::system(), "b:build")), ..Action::default() }, Action { duration: Some(Duration::new(8, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "c:test".into())), + node: Some(create_run_task_action(Runtime::system(), "c:test")), ..Action::default() }, Action { duration: Some(Duration::new(12, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "d:lint".into())), + node: Some(create_run_task_action(Runtime::system(), "d:lint")), ..Action::default() }, ], @@ -250,37 +267,41 @@ mod estimator { &[ Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::SetupTool(Runtime::system())), + node: Some(ActionNode::SetupTool { + runtime: Runtime::system(), + }), ..Action::default() }, Action { duration: Some(Duration::new(25, 0)), - node: Some(ActionNode::InstallDeps(Runtime::system())), + node: Some(ActionNode::InstallDeps { + runtime: Runtime::system(), + }), ..Action::default() }, Action { duration: Some(Duration::new(10, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "a:build".into())), + node: Some(create_run_task_action(Runtime::system(), "a:build")), ..Action::default() }, Action { duration: Some(Duration::new(5, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "a:lint".into())), + node: Some(create_run_task_action(Runtime::system(), "a:lint")), ..Action::default() }, Action { duration: Some(Duration::new(15, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "b:build".into())), + node: Some(create_run_task_action(Runtime::system(), "b:build")), ..Action::default() }, Action { duration: Some(Duration::new(8, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "c:test".into())), + node: Some(create_run_task_action(Runtime::system(), "c:test")), ..Action::default() }, Action { duration: Some(Duration::new(12, 0)), - node: Some(ActionNode::RunTarget(Runtime::system(), "d:lint".into())), + node: Some(create_run_task_action(Runtime::system(), "d:lint")), ..Action::default() }, ], diff --git a/crates/core/action/Cargo.toml b/crates/core/action/Cargo.toml index 7d8a6a0046b..5c9a8f1bf49 100644 --- a/crates/core/action/Cargo.toml +++ b/crates/core/action/Cargo.toml @@ -5,6 +5,7 @@ edition = "2021" publish = false [dependencies] +moon_action_graph = { path = "../../../nextgen/action-graph" } moon_common = { path = "../../../nextgen/common" } moon_platform_runtime = { path = "../../../nextgen/platform-runtime" } moon_target = { path = "../../../nextgen/target" } diff --git a/crates/core/action/src/action.rs b/crates/core/action/src/action.rs index a36a3226909..deedebcf05d 100644 --- a/crates/core/action/src/action.rs +++ b/crates/core/action/src/action.rs @@ -1,4 +1,4 @@ -use crate::node::ActionNode; +use moon_action_graph::ActionNode; use moon_common::color; use moon_utils::time::{chrono::prelude::*, now_timestamp}; use serde::{Deserialize, Serialize}; @@ -102,6 +102,9 @@ pub struct Action { #[serde(skip)] pub node: Option, + #[serde(skip)] + pub node_index: usize, + pub started_at: Option, #[serde(skip)] @@ -124,6 +127,7 @@ impl Action { label: node.label(), log_target: String::new(), node: Some(node), + node_index: 0, started_at: None, start_time: None, status: ActionStatus::Running, diff --git a/crates/core/action/src/lib.rs b/crates/core/action/src/lib.rs index b195cc47f6e..4a5e97f1cc3 100644 --- a/crates/core/action/src/lib.rs +++ b/crates/core/action/src/lib.rs @@ -1,5 +1,4 @@ mod action; -mod node; pub use action::*; -pub use node::*; +pub use moon_action_graph::ActionNode; diff --git a/crates/core/action/src/node.rs b/crates/core/action/src/node.rs deleted file mode 100644 index f79e2a63f54..00000000000 --- a/crates/core/action/src/node.rs +++ /dev/null @@ -1,83 +0,0 @@ -use moon_common::Id; -use moon_platform_runtime::Runtime; -use moon_target::Target; -use serde::Serialize; -use std::hash::{Hash, Hasher}; - -#[derive(Clone, Debug, Eq, Serialize)] -#[serde(tag = "action", content = "params")] -pub enum ActionNode { - /// Install tool dependencies in the workspace root. - InstallDeps(Runtime), - - /// Install tool dependencies in the project root. - InstallProjectDeps(Runtime, Id), - - /// Run a target (project task). - RunTarget(Runtime, Target), - - /// Run a target (project task) interactively with stdin. - RunInteractiveTarget(Runtime, Target), - - /// Run a target (project task) that never terminates. - RunPersistentTarget(Runtime, Target), - - /// Setup a tool + version for the provided platform. - SetupTool(Runtime), - - /// Sync a project with language specific semantics. - SyncProject(Runtime, Id), - - /// Sync the entire moon workspace. - SyncWorkspace, -} - -impl ActionNode { - pub fn label(&self) -> String { - match self { - ActionNode::InstallDeps(runtime) => { - if runtime.requirement.is_global() { - format!("Install{}Deps", runtime) - } else { - format!("Install{}Deps({})", runtime, runtime.requirement) - } - } - ActionNode::InstallProjectDeps(runtime, id) => { - if runtime.requirement.is_global() { - format!("Install{}DepsInProject({id})", runtime) - } else { - format!( - "Install{}DepsInProject({}, {id})", - runtime, runtime.requirement - ) - } - } - ActionNode::RunTarget(_, id) => format!("RunTarget({id})"), - ActionNode::RunInteractiveTarget(_, id) => format!("RunInteractiveTarget({id})"), - ActionNode::RunPersistentTarget(_, id) => format!("RunPersistentTarget({id})"), - ActionNode::SetupTool(runtime) => { - if runtime.requirement.is_global() { - format!("Setup{}Tool", runtime) - } else { - format!("Setup{}Tool({})", runtime, runtime.requirement) - } - } - ActionNode::SyncProject(runtime, id) => { - format!("Sync{}Project({id})", runtime) - } - ActionNode::SyncWorkspace => "SyncWorkspace".into(), - } - } -} - -impl PartialEq for ActionNode { - fn eq(&self, other: &Self) -> bool { - self.label() == other.label() - } -} - -impl Hash for ActionNode { - fn hash(&self, state: &mut H) { - self.label().hash(state); - } -} diff --git a/crates/core/dep-graph/Cargo.toml b/crates/core/dep-graph/Cargo.toml deleted file mode 100644 index 29484bc5c05..00000000000 --- a/crates/core/dep-graph/Cargo.toml +++ /dev/null @@ -1,37 +0,0 @@ -[package] -name = "moon_dep_graph" -version = "0.1.0" -edition = "2021" -publish = false - -[lib] -bench = false - -[[bench]] -name = "dep_graph_benchmark" -harness = false - -[dependencies] -moon_action = { path = "../action" } -moon_common = { path = "../../../nextgen/common" } -moon_logger = { path = "../logger" } -moon_platform = { path = "../platform" } -moon_project = { path = "../../../nextgen/project" } -moon_project_graph = { path = "../../../nextgen/project-graph" } -moon_query = { path = "../../../nextgen/query" } -moon_target = { path = "../../../nextgen/target" } -moon_task = { path = "../../../nextgen/task" } -miette = { workspace = true } -petgraph = { workspace = true } -rustc-hash = { workspace = true } -starbase_styles = { workspace = true } -thiserror = { workspace = true } - -[dev-dependencies] -moon = { path = "../moon" } -moon_config = { path = "../../../nextgen/config" } -moon_test_utils = { path = "../test-utils" } -moon_utils = { path = "../utils" } -moon_workspace = { path = "../../../nextgen/workspace" } -criterion = { workspace = true } -tokio = { workspace = true } diff --git a/crates/core/dep-graph/benches/dep_graph_benchmark.rs b/crates/core/dep-graph/benches/dep_graph_benchmark.rs deleted file mode 100644 index 6d33f8bc7a6..00000000000 --- a/crates/core/dep-graph/benches/dep_graph_benchmark.rs +++ /dev/null @@ -1,49 +0,0 @@ -use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use moon::{build_dep_graph, generate_project_graph, load_workspace_from}; -use moon_target::Target; -use moon_test_utils::{create_sandbox_with_config, get_cases_fixture_configs}; - -pub fn build_benchmark(c: &mut Criterion) { - let (workspace_config, toolchain_config, tasks_config) = get_cases_fixture_configs(); - - let sandbox = create_sandbox_with_config( - "cases", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - c.bench_function("dep_graph_build", |b| { - b.to_async(tokio::runtime::Runtime::new().unwrap()) - .iter(|| async { - let mut workspace = load_workspace_from(sandbox.path()).await.unwrap(); - let project_graph = generate_project_graph(&mut workspace).await.unwrap(); - let mut dep_graph = build_dep_graph(&project_graph); - - dep_graph - .run_target(Target::parse("base:standard").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("depsA:dependencyOrder").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("outputs:withDeps").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("passthroughArgs:c").unwrap(), None) - .unwrap(); - - dep_graph - .run_target(Target::parse("targetScopeB:self").unwrap(), None) - .unwrap(); - - black_box(dep_graph.build()); - }) - }); -} - -criterion_group!(dep_graph, build_benchmark); -criterion_main!(dep_graph); diff --git a/crates/core/dep-graph/src/dep_builder.rs b/crates/core/dep-graph/src/dep_builder.rs deleted file mode 100644 index fa199c1162e..00000000000 --- a/crates/core/dep-graph/src/dep_builder.rs +++ /dev/null @@ -1,474 +0,0 @@ -use crate::dep_graph::{DepGraph, DepGraphType, IndicesType}; -use moon_action::ActionNode; -use moon_common::path::WorkspaceRelativePathBuf; -use moon_common::Id; -use moon_logger::{debug, map_list, trace}; -use moon_platform::{PlatformManager, Runtime}; -use moon_project::Project; -use moon_project_graph::ProjectGraph; -use moon_query::{build_query, Criteria}; -use moon_target::{Target, TargetError, TargetLocator, TargetScope}; -use moon_task::Task; -use petgraph::graph::NodeIndex; -use petgraph::Graph; -use rustc_hash::{FxHashMap, FxHashSet}; -use starbase_styles::color; -use std::mem; - -const LOG_TARGET: &str = "moon:dep-graph"; - -type RuntimePair = (Runtime, Runtime); -type TouchedFilePaths = FxHashSet; - -/// A directed acyclic graph (DAG) for the work that needs to be processed, based on a -/// project or task's dependency chain. This is also known as a "task graph" (not to -/// be confused with our tasks) or a "dependency graph". -pub struct DepGraphBuilder<'ws> { - all_query: Option, - graph: DepGraphType, - indices: IndicesType, - project_graph: &'ws ProjectGraph, - runtimes: FxHashMap, -} - -impl<'ws> DepGraphBuilder<'ws> { - pub fn new(project_graph: &'ws ProjectGraph) -> Self { - debug!(target: LOG_TARGET, "Creating dependency graph"); - - let mut graph = Graph::new(); - let mut indices = FxHashMap::default(); - - // Always sync the workspace - let node = ActionNode::SyncWorkspace; - - trace!( - target: LOG_TARGET, - "Adding {} to graph", - color::muted_light(node.label()) - ); - - indices.insert(node.to_owned(), graph.add_node(node)); - - DepGraphBuilder { - all_query: None, - graph, - indices, - project_graph, - runtimes: FxHashMap::default(), - } - } - - pub fn build(&mut self) -> DepGraph { - DepGraph::new(mem::take(&mut self.graph), mem::take(&mut self.indices)) - } - - pub fn set_query(&mut self, input: &str) -> miette::Result<()> { - self.all_query = Some(build_query(input)?); - - Ok(()) - } - - pub fn get_index_from_node(&self, node: &ActionNode) -> Option<&NodeIndex> { - self.indices.get(node) - } - - // Projects support overriding the the version of their language (tool), - // so we need to account for this via the runtime. However, some actions require - // the workspace version of the language, so we must extract 2 runtimes here. - pub fn get_runtimes_from_project( - &mut self, - project: &Project, - task: Option<&Task>, - ) -> (Runtime, Runtime) { - let key = match task { - Some(task) => task.target.id.clone(), - None => project.id.to_string(), - }; - - if let Some(pair) = self.runtimes.get(&key) { - return pair.clone(); - } - - let mut project_runtime = Runtime::system(); - let mut workspace_runtime = Runtime::system(); - - if let Some(platform) = PlatformManager::read().find(|p| match task { - Some(task) => p.matches(&task.platform, None), - None => p.matches(&project.language.clone().into(), None), - }) { - project_runtime = platform.get_runtime_from_config(Some(&project.config)); - workspace_runtime = platform.get_runtime_from_config(None); - } - - let pair = (project_runtime, workspace_runtime); - - self.runtimes.insert(key, pair.clone()); - - pair - } - - pub fn install_deps( - &mut self, - project: &Project, - task: Option<&Task>, - ) -> miette::Result { - let (project_runtime, workspace_runtime) = self.get_runtimes_from_project(project, task); - let mut installs_in_project = false; - - // If project is NOT in the package manager workspace, then we should - // install dependencies in the project, not the workspace root. - if let Ok(platform) = PlatformManager::read().get(project.language.clone()) { - if !platform.is_project_in_dependency_workspace(project.source.as_str())? { - installs_in_project = true; - - debug!( - target: LOG_TARGET, - "Project {} not within dependency workspaces, will be handled externally", - color::id(&project.id), - ); - } - } - - // When installing dependencies in the project, we will use the - // overridden version if it is available. Otherwise when installing - // in the root, we should *always* use the workspace version. - Ok(if installs_in_project { - self.install_project_deps(&project_runtime, &project.id) - } else { - self.install_workspace_deps(&workspace_runtime) - }) - } - - pub fn install_project_deps(&mut self, runtime: &Runtime, project_id: &Id) -> NodeIndex { - let node = ActionNode::InstallProjectDeps(runtime.clone(), project_id.to_owned()); - - if let Some(index) = self.get_index_from_node(&node) { - return *index; - } - - trace!( - target: LOG_TARGET, - "Adding {} to graph", - color::muted_light(node.label()) - ); - - // Before we install deps, we must ensure the language has been installed - let setup_tool_index = self.setup_tool(runtime); - let index = self.insert_node(&node); - - self.graph.add_edge(index, setup_tool_index, ()); - - index - } - - pub fn install_workspace_deps(&mut self, runtime: &Runtime) -> NodeIndex { - let node = ActionNode::InstallDeps(runtime.clone()); - - if let Some(index) = self.get_index_from_node(&node) { - return *index; - } - - trace!( - target: LOG_TARGET, - "Adding {} to graph", - color::muted_light(node.label()) - ); - - // Before we install deps, we must ensure the language has been installed - let setup_tool_index = self.setup_tool(runtime); - let index = self.insert_node(&node); - - self.graph.add_edge(index, setup_tool_index, ()); - - index - } - - pub fn run_dependents_for_target>(&mut self, target: T) -> miette::Result<()> { - let target = target.as_ref(); - - trace!( - target: LOG_TARGET, - "Adding dependents to run for target {}", - color::label(target), - ); - - if let TargetScope::Project(project_locator) = &target.scope { - let project = self.project_graph.get(project_locator)?; - let dependents = self.project_graph.dependents_of(&project)?; - - for dependent_id in dependents { - let dep_project = self.project_graph.get(dependent_id)?; - - if dep_project.tasks.contains_key(&target.task_id) { - self.run_target(&dep_project.get_task(&target.task_id)?.target, None)?; - } - } - } - - Ok(()) - } - - pub fn run_target>( - &mut self, - target: T, - touched_files: Option<&TouchedFilePaths>, - ) -> miette::Result<(FxHashSet, FxHashSet)> { - let target = target.as_ref(); - let mut inserted_targets = FxHashSet::default(); - let mut inserted_indexes = FxHashSet::default(); - - match &target.scope { - // :task - TargetScope::All => { - let mut projects = vec![]; - - if let Some(all_query) = &self.all_query { - projects.extend(self.project_graph.query(all_query)?); - } else { - projects.extend(self.project_graph.get_all()?); - }; - - for project in projects { - if project.tasks.contains_key(&target.task_id) { - let all_target = Target::new(&project.id, &target.task_id)?; - - if let Some(index) = - self.run_target_by_project(&all_target, &project, touched_files)? - { - inserted_targets.insert(all_target); - inserted_indexes.insert(index); - } - } - } - } - // ^:task - TargetScope::Deps => { - return Err(TargetError::NoDepsInRunContext.into()); - } - // project:task - TargetScope::Project(project_locator) => { - let project = self.project_graph.get(project_locator)?; - let task = project.get_task(&target.task_id)?; - - if let Some(index) = - self.run_target_by_project(&task.target, &project, touched_files)? - { - inserted_targets.insert(task.target.to_owned()); - inserted_indexes.insert(index); - } - } - // #tag:task - TargetScope::Tag(tag) => { - let projects = self - .project_graph - .query(build_query(format!("tag={}", tag))?)?; - - for project in projects { - if project.tasks.contains_key(&target.task_id) { - let tag_target = Target::new(&project.id, &target.task_id)?; - - if let Some(index) = - self.run_target_by_project(&tag_target, &project, touched_files)? - { - inserted_targets.insert(tag_target); - inserted_indexes.insert(index); - } - } - } - } - // ~:task - TargetScope::OwnSelf => { - return Err(TargetError::NoSelfInRunContext.into()); - } - }; - - Ok((inserted_targets, inserted_indexes)) - } - - pub fn run_target_by_project>( - &mut self, - target: T, - project: &Project, - touched_files: Option<&TouchedFilePaths>, - ) -> miette::Result> { - let target = target.as_ref(); - let task = project.get_task(&target.task_id)?; - let (runtime, _) = self.get_runtimes_from_project(project, Some(task)); - - let node = if task.is_persistent() { - ActionNode::RunPersistentTarget(runtime, target.clone()) - } else if task.is_interactive() { - ActionNode::RunInteractiveTarget(runtime, target.clone()) - } else { - ActionNode::RunTarget(runtime, target.clone()) - }; - - if let Some(index) = self.get_index_from_node(&node) { - return Ok(Some(*index)); - } - - // Compare against touched files if provided - if let Some(touched) = touched_files { - if !task.is_affected(touched)? { - trace!( - target: LOG_TARGET, - "Target {} not affected based on touched files, skipping", - color::label(target), - ); - - return Ok(None); - } - } - - trace!( - target: LOG_TARGET, - "Adding {} to graph", - color::muted_light(node.label()) - ); - - // We should install deps & sync projects *before* running targets - let install_deps_index = self.install_deps(project, Some(task))?; - let sync_project_index = self.sync_project(project)?; - let index = self.insert_node(&node); - - self.graph.add_edge(index, install_deps_index, ()); - self.graph.add_edge(index, sync_project_index, ()); - - // And we also need to wait on all dependent targets - if !task.deps.is_empty() { - trace!( - target: LOG_TARGET, - "Adding dependencies {} for target {}", - map_list(&task.deps, |f| color::symbol(f)), - color::label(target), - ); - - // We don't pass touched files to dependencies, because if the parent - // task is affected/going to run, then so should all of these! - for dep_index in self.run_target_task_dependencies(task, None)? { - self.graph.add_edge(index, dep_index, ()); - } - } - - Ok(Some(index)) - } - - pub fn run_target_task_dependencies( - &mut self, - task: &Task, - touched_files: Option<&TouchedFilePaths>, - ) -> miette::Result> { - let parallel = task.options.run_deps_in_parallel; - let mut indexes = vec![]; - let mut previous_target_index = None; - - for dep_target in &task.deps { - let (_, dep_indexes) = self.run_target(dep_target, touched_files)?; - - for dep_index in dep_indexes { - // When parallel, parent depends on child - if parallel { - indexes.push(dep_index); - - // When serial, next child depends on previous child - } else if let Some(prev) = previous_target_index { - self.graph.add_edge(dep_index, prev, ()); - } - - previous_target_index = Some(dep_index); - } - } - - if !parallel { - indexes.push(previous_target_index.unwrap()); - } - - Ok(indexes) - } - - pub fn run_targets_by_locator( - &mut self, - target_locators: &[TargetLocator], - touched_files: Option<&TouchedFilePaths>, - ) -> miette::Result> { - let mut qualified_targets = vec![]; - let mut project = None; - - for locator in target_locators { - let result = match locator { - TargetLocator::Qualified(target) => self.run_target(target, touched_files)?, - TargetLocator::TaskFromWorkingDir(task_id) => { - if project.is_none() { - project = Some(self.project_graph.get_from_path(None)?); - } - - self.run_target( - Target::new(&project.as_ref().unwrap().id, task_id)?, - touched_files, - )? - } - }; - - qualified_targets.extend(result.0); - } - - Ok(qualified_targets) - } - - pub fn setup_tool(&mut self, runtime: &Runtime) -> NodeIndex { - let node = ActionNode::SetupTool(runtime.clone()); - - if let Some(index) = self.get_index_from_node(&node) { - return *index; - } - - trace!( - target: LOG_TARGET, - "Adding {} to graph", - color::muted_light(node.label()) - ); - - self.insert_node(&node) - } - - pub fn sync_project(&mut self, project: &Project) -> miette::Result { - let (runtime, _) = self.get_runtimes_from_project(project, None); - let node = ActionNode::SyncProject(runtime.clone(), project.id.clone()); - - if let Some(index) = self.get_index_from_node(&node) { - return Ok(*index); - } - - trace!( - target: LOG_TARGET, - "Adding {} to graph", - color::muted_light(node.label()) - ); - - // Syncing depends on the language's tool to be installed - let setup_tool_index = self.setup_tool(&runtime); - let index = self.insert_node(&node); - - self.graph.add_edge(index, setup_tool_index, ()); - - // And we should also depend on other projects - for dep_project_id in self.project_graph.dependencies_of(project)? { - let dep_project = self.project_graph.get(dep_project_id)?; - let dep_index = self.sync_project(&dep_project)?; - - if index != dep_index { - self.graph.add_edge(index, dep_index, ()); - } - } - - Ok(index) - } - - // PRIVATE - - fn insert_node(&mut self, node: &ActionNode) -> NodeIndex { - let index = self.graph.add_node(node.to_owned()); - self.indices.insert(node.to_owned(), index); - index - } -} diff --git a/crates/core/dep-graph/src/dep_graph.rs b/crates/core/dep-graph/src/dep_graph.rs deleted file mode 100644 index 2d55a71c113..00000000000 --- a/crates/core/dep-graph/src/dep_graph.rs +++ /dev/null @@ -1,215 +0,0 @@ -use crate::errors::DepGraphError; -use moon_action::ActionNode; -use petgraph::algo::toposort; -use petgraph::dot::{Config, Dot}; -use petgraph::graph::DiGraph; -use petgraph::graph::NodeIndex; -use petgraph::visit::EdgeRef; -use rustc_hash::{FxHashMap, FxHashSet}; - -pub type DepGraphType = DiGraph; -pub type IndicesType = FxHashMap; -pub type BatchedTopoSort = Vec>; - -/// A directed acyclic graph (DAG) for the work that needs to be processed, based on a -/// project or task's dependency chain. This is also known as a "task graph" (not to -/// be confused with our tasks) or a "dependency graph". -pub struct DepGraph { - graph: DepGraphType, - - indices: IndicesType, -} - -impl DepGraph { - pub fn new(graph: DepGraphType, indices: IndicesType) -> Self { - DepGraph { graph, indices } - } - - pub fn is_empty(&self) -> bool { - self.get_node_count() == 0 - } - - pub fn get_index_from_node(&self, node: &ActionNode) -> Option<&NodeIndex> { - self.indices.get(node) - } - - pub fn get_node_count(&self) -> usize { - self.graph.node_count() - } - - pub fn get_node_from_index(&self, index: &NodeIndex) -> Option<&ActionNode> { - self.graph.node_weight(*index) - } - - pub fn sort_topological(&self) -> miette::Result> { - let list = match toposort(&self.graph, None) { - Ok(nodes) => nodes, - Err(error) => { - return Err(DepGraphError::CycleDetected( - self.get_node_from_index(&error.node_id()).unwrap().label(), - ) - .into()); - } - }; - - Ok(list.into_iter().rev().collect()) - } - - pub fn sort_batched_topological(&self) -> miette::Result { - let mut batches: BatchedTopoSort = vec![]; - - // Count how many times an index is referenced across nodes and edges - let mut node_counts = FxHashMap::::default(); - - for ix in self.graph.node_indices() { - node_counts.entry(ix).and_modify(|e| *e += 1).or_insert(0); - - for dep_ix in self.graph.neighbors(ix) { - node_counts - .entry(dep_ix) - .and_modify(|e| *e += 1) - .or_insert(0); - } - } - - // Gather root nodes (count of 0) - let mut root_nodes = FxHashSet::::default(); - - for (ix, count) in &node_counts { - if *count == 0 { - root_nodes.insert(*ix); - } - } - - // If no root nodes are found, but nodes exist, then we have a cycle - let has_sync_workspace = root_nodes.contains(&NodeIndex::new(0)); - - if (!has_sync_workspace && root_nodes.is_empty() - || has_sync_workspace && root_nodes.len() == 1) - && !node_counts.is_empty() - { - self.detect_cycle()?; - } - - while !root_nodes.is_empty() { - let mut next_root_nodes = FxHashSet::::default(); - - // Decrement dependencies of the current batch nodes - for ix in &root_nodes { - for dep_ix in self.graph.neighbors(*ix) { - let count = node_counts - .entry(dep_ix) - .and_modify(|e| *e -= 1) - .or_insert(0); - - // And create a new batch if the count is 0 - if *count == 0 { - next_root_nodes.insert(dep_ix); - } - } - } - - // Push the previous batch onto the list - batches.push(root_nodes.into_iter().collect()); - - // And reset the current nodes - root_nodes = next_root_nodes; - } - - // Move persistent targets to the end - let mut sorted_batches: BatchedTopoSort = vec![]; - let mut persistent: Vec = vec![]; - - for mut batch in batches.into_iter().rev() { - batch.retain(|ix| match self.graph.node_weight(*ix).unwrap() { - // Interactive tasks must be the only item in their batch - // for stdin to work correctly - ActionNode::RunInteractiveTarget(_, _) => { - sorted_batches.push(vec![*ix]); - false - } - // Persistent tasks always run last as a combined batch, - // as their processes may never end - ActionNode::RunPersistentTarget(_, _) => { - persistent.push(*ix); - false - } - _ => true, - }); - - if !batch.is_empty() { - sorted_batches.push(batch); - } - } - - if !persistent.is_empty() { - sorted_batches.push(persistent); - } - - Ok(sorted_batches) - } - - /// Get a labelled representation of the dep graph (which can be serialized easily). - pub fn labeled_graph(&self) -> DiGraph { - let graph = self.graph.clone(); - graph.map(|_, n| n.label(), |_, _| String::new()) - } - - pub fn to_dot(&self) -> String { - let graph = self.graph.map(|_, n| n.label(), |_, e| e); - - let dot = Dot::with_attr_getters( - &graph, - &[Config::EdgeNoLabel, Config::NodeNoLabel], - &|_, e| { - if e.source().index() == 0 { - String::from("arrowhead=none") - } else { - String::from("arrowhead=box, arrowtail=box") - } - }, - &|_, n| { - let id = n.1; - - format!("label=\"{id}\" style=filled, shape=oval, fillcolor=gray, fontcolor=black") - }, - ); - - format!("{dot:?}") - } - - #[track_caller] - fn detect_cycle(&self) -> miette::Result<()> { - // use petgraph::algo::kosaraju_scc; - - // let scc = kosaraju_scc(&self.graph); - - // // Remove the sync workspace node - // let scc = scc - // .into_iter() - // .filter(|list| !(list.len() == 1 && list[0].index() == 0)) - // .collect::>>(); - - // // The cycle is always the last sequence in the list - // let Some(cycle) = scc.last() else { - // return Err(DepGraphError::CycleDetected("(unknown)".into()).into()); - // }; - - // let path = cycle - // .iter() - // .filter_map(|i| self.get_node_from_index(i).map(|n| n.label())) - // .collect::>() - // .join(" → "); - - // Err(DepGraphError::CycleDetected(path).into()) - - if let Err(error) = toposort(&self.graph, None) { - return Err(DepGraphError::CycleDetected( - self.get_node_from_index(&error.node_id()).unwrap().label(), - ) - .into()); - } - - Ok(()) - } -} diff --git a/crates/core/dep-graph/src/errors.rs b/crates/core/dep-graph/src/errors.rs deleted file mode 100644 index 7d6b1e150ec..00000000000 --- a/crates/core/dep-graph/src/errors.rs +++ /dev/null @@ -1,12 +0,0 @@ -use miette::Diagnostic; -use starbase_styles::{Style, Stylize}; -use thiserror::Error; - -#[derive(Error, Debug, Diagnostic)] -pub enum DepGraphError { - #[error("A dependency cycle has been detected for {}.", .0.style(Style::File))] - CycleDetected(String), - - #[error("Unknown node {0} found in dependency graph. How did this get here?")] - UnknownNode(usize), -} diff --git a/crates/core/dep-graph/src/lib.rs b/crates/core/dep-graph/src/lib.rs deleted file mode 100644 index 66f77643c72..00000000000 --- a/crates/core/dep-graph/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -mod dep_builder; -mod dep_graph; -mod errors; - -pub use dep_builder::DepGraphBuilder; -pub use dep_graph::*; -pub use errors::DepGraphError; diff --git a/crates/core/dep-graph/tests/dep_graph_test.rs b/crates/core/dep-graph/tests/dep_graph_test.rs deleted file mode 100644 index 309dcaa57ba..00000000000 --- a/crates/core/dep-graph/tests/dep_graph_test.rs +++ /dev/null @@ -1,679 +0,0 @@ -use moon::{build_dep_graph, generate_project_graph, load_workspace_from}; -use moon_common::path::WorkspaceRelativePathBuf; -use moon_config::{ - PartialInheritedTasksConfig, PartialNodeConfig, PartialToolchainConfig, PartialWorkspaceConfig, - PartialWorkspaceProjects, UnresolvedVersionSpec, -}; -use moon_dep_graph::BatchedTopoSort; -use moon_project_graph::ProjectGraph; -use moon_target::Target; -use moon_test_utils::{assert_snapshot, create_input_paths, create_sandbox_with_config, Sandbox}; -use moon_workspace::Workspace; -use petgraph::graph::NodeIndex; -use rustc_hash::{FxHashMap, FxHashSet}; - -async fn create_project_graph() -> (Workspace, ProjectGraph, Sandbox) { - let workspace_config = PartialWorkspaceConfig { - projects: Some(PartialWorkspaceProjects::Sources(FxHashMap::from_iter([ - ("advanced".into(), "advanced".to_owned()), - ("basic".into(), "basic".to_owned()), - ("emptyConfig".into(), "empty-config".to_owned()), - ("noConfig".into(), "no-config".to_owned()), - // Deps - ("foo".into(), "deps/foo".to_owned()), - ("bar".into(), "deps/bar".to_owned()), - ("baz".into(), "deps/baz".to_owned()), - // Tasks - ("tasks".into(), "tasks".to_owned()), - ("platforms".into(), "platforms".to_owned()), - ]))), - ..PartialWorkspaceConfig::default() - }; - let toolchain_config = PartialToolchainConfig { - node: Some(PartialNodeConfig { - version: Some(UnresolvedVersionSpec::parse("16.0.0").unwrap()), - dedupe_on_lockfile_change: Some(false), - ..PartialNodeConfig::default() - }), - ..PartialToolchainConfig::default() - }; - let tasks_config = PartialInheritedTasksConfig { - file_groups: Some(FxHashMap::from_iter([ - ( - "sources".into(), - create_input_paths(["src/**/*", "types/**/*"]), - ), - ("tests".into(), create_input_paths(["tests/**/*"])), - ])), - ..PartialInheritedTasksConfig::default() - }; - - let sandbox = create_sandbox_with_config( - "projects", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let mut workspace = load_workspace_from(sandbox.path()).await.unwrap(); - let project_graph = generate_project_graph(&mut workspace).await.unwrap(); - - (workspace, project_graph, sandbox) -} - -async fn create_tasks_project_graph() -> (Workspace, ProjectGraph, Sandbox) { - let workspace_config = PartialWorkspaceConfig { - projects: Some(PartialWorkspaceProjects::Sources(FxHashMap::from_iter([ - ("basic".into(), "basic".to_owned()), - ("buildA".into(), "build-a".to_owned()), - ("buildB".into(), "build-b".to_owned()), - ("buildC".into(), "build-c".to_owned()), - ("chain".into(), "chain".to_owned()), - ("cycle".into(), "cycle".to_owned()), - ("inputA".into(), "input-a".to_owned()), - ("inputB".into(), "input-b".to_owned()), - ("inputC".into(), "input-c".to_owned()), - ( - "mergeAllStrategies".into(), - "merge-all-strategies".to_owned(), - ), - ("mergeAppend".into(), "merge-append".to_owned()), - ("mergePrepend".into(), "merge-prepend".to_owned()), - ("mergeReplace".into(), "merge-replace".to_owned()), - ("noTasks".into(), "no-tasks".to_owned()), - ("persistent".into(), "persistent".to_owned()), - ("interactive".into(), "interactive".to_owned()), - ]))), - ..PartialWorkspaceConfig::default() - }; - let toolchain_config = PartialToolchainConfig { - node: Some(PartialNodeConfig { - version: Some(UnresolvedVersionSpec::parse("16.0.0").unwrap()), - ..PartialNodeConfig::default() - }), - ..PartialToolchainConfig::default() - }; - let tasks_config = PartialInheritedTasksConfig { - file_groups: Some(FxHashMap::from_iter([( - "sources".into(), - create_input_paths(["src/**/*"]), - )])), - ..PartialInheritedTasksConfig::default() - }; - - let sandbox = create_sandbox_with_config( - "tasks", - Some(workspace_config), - Some(toolchain_config), - Some(tasks_config), - ); - - let mut workspace = load_workspace_from(sandbox.path()).await.unwrap(); - let project_graph = generate_project_graph(&mut workspace).await.unwrap(); - - (workspace, project_graph, sandbox) -} - -fn sort_batches(batches: BatchedTopoSort) -> BatchedTopoSort { - let mut list: BatchedTopoSort = vec![]; - - for batch in batches { - let mut new_batch = batch.clone(); - new_batch.sort(); - list.push(new_batch); - } - - list -} - -#[tokio::test] -// #[should_panic(expected = "A dependency cycle has been detected for RunTarget(cycle:a)")] -#[should_panic(expected = "A dependency cycle has been detected for RunTarget(cycle:c)")] -async fn detects_cycles() { - let (_workspace, projects, _sandbox) = create_tasks_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("cycle", "a").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("cycle", "b").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("cycle", "c").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![vec![NodeIndex::new(0)], vec![NodeIndex::new(1)]] - ); -} - -mod run_target { - use super::*; - - #[tokio::test] - async fn single_targets() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("tasks", "test").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("tasks", "lint").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - - assert_eq!( - graph.sort_topological().unwrap(), - vec![ - NodeIndex::new(0), - NodeIndex::new(1), - NodeIndex::new(2), // sync project - NodeIndex::new(3), // test - NodeIndex::new(4), // lint - NodeIndex::new(5), - ] - ); - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(1)], - vec![NodeIndex::new(2), NodeIndex::new(3)], - vec![NodeIndex::new(0), NodeIndex::new(4), NodeIndex::new(5)] - ] - ); - } - - #[tokio::test] - async fn deps_chain_target() { - let (_workspace, projects, _sandbox) = create_tasks_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("basic", "test").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("basic", "lint").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("chain", "a").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - assert_eq!( - graph.sort_topological().unwrap(), - vec![ - NodeIndex::new(0), - NodeIndex::new(1), - NodeIndex::new(2), // sync project - NodeIndex::new(3), // test - NodeIndex::new(4), // lint - NodeIndex::new(5), // sync project - NodeIndex::new(6), - NodeIndex::new(12), // f - NodeIndex::new(11), // e - NodeIndex::new(10), // d - NodeIndex::new(9), // c - NodeIndex::new(8), // b - NodeIndex::new(7), // a - ] - ); - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(1)], - vec![NodeIndex::new(2), NodeIndex::new(6)], - vec![NodeIndex::new(12)], - vec![NodeIndex::new(11)], - vec![NodeIndex::new(10)], - vec![NodeIndex::new(9)], - vec![NodeIndex::new(3), NodeIndex::new(8)], - vec![ - NodeIndex::new(0), - NodeIndex::new(4), - NodeIndex::new(5), - NodeIndex::new(7) - ] - ] - ); - } - - #[tokio::test] - async fn moves_persistent_tasks_last() { - let (_workspace, projects, _sandbox) = create_tasks_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("persistent", "dev").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(1)], - vec![ - NodeIndex::new(2), - NodeIndex::new(4), - NodeIndex::new(6), - NodeIndex::new(7) - ], - vec![NodeIndex::new(5), NodeIndex::new(12), NodeIndex::new(13)], - vec![NodeIndex::new(3), NodeIndex::new(11)], - vec![NodeIndex::new(0)], - vec![ - NodeIndex::new(8), - NodeIndex::new(9), - NodeIndex::new(10), - NodeIndex::new(14) - ], - ] - ); - } - - #[tokio::test] - async fn isolates_interactive_tasks() { - let (_workspace, projects, _sandbox) = create_tasks_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("interactive", "one").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("chain", "c").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("interactive", "two").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("basic", "lint").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("interactive", "depOnOne").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(1)], - vec![NodeIndex::new(2), NodeIndex::new(5)], - vec![NodeIndex::new(9)], - vec![NodeIndex::new(3), NodeIndex::new(8)], - vec![NodeIndex::new(4)], // interactive - vec![NodeIndex::new(7), NodeIndex::new(11)], - vec![NodeIndex::new(13)], // interactive - vec![NodeIndex::new(10)], // interactive - vec![NodeIndex::new(0), NodeIndex::new(6), NodeIndex::new(12)], - ] - ); - } - - #[tokio::test] - async fn avoids_dupe_targets() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("tasks", "lint").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("tasks", "lint").unwrap(), None) - .unwrap(); - graph - .run_target(&Target::new("tasks", "lint").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - - assert_eq!( - graph.sort_topological().unwrap(), - vec![ - NodeIndex::new(0), - NodeIndex::new(1), - NodeIndex::new(2), // sync project - NodeIndex::new(3), // lint - NodeIndex::new(4), - ] - ); - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(1)], - vec![NodeIndex::new(2), NodeIndex::new(3)], - vec![NodeIndex::new(0), NodeIndex::new(4)] - ] - ); - } - - #[tokio::test] - async fn runs_all_projects_for_target_all_scope() { - let (_workspace, projects, _sandbox) = create_tasks_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::parse(":build").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - - assert_eq!( - graph.sort_topological().unwrap(), - vec![ - NodeIndex::new(0), - NodeIndex::new(1), - NodeIndex::new(2), // sync project: basic - NodeIndex::new(4), // basic:build - NodeIndex::new(5), // sync project: build-c - NodeIndex::new(6), // sync project: build-a - NodeIndex::new(3), // build-c:build - NodeIndex::new(8), // build-a:build - NodeIndex::new(9), // sync project: build-b - NodeIndex::new(7), // build-b:build - NodeIndex::new(10), // notasks - NodeIndex::new(11) - ] - ); - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(1)], - vec![ - NodeIndex::new(2), - NodeIndex::new(4), - NodeIndex::new(5), - NodeIndex::new(6) - ], - vec![ - NodeIndex::new(3), - NodeIndex::new(8), - NodeIndex::new(9), - NodeIndex::new(10) - ], - vec![NodeIndex::new(0), NodeIndex::new(7), NodeIndex::new(11)], - ] - ); - } - - #[tokio::test] - #[should_panic(expected = "Dependencies scope (^:) is not supported in run contexts.")] - async fn errors_for_target_deps_scope() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::parse("^:lint").unwrap(), None) - .unwrap(); - } - - #[tokio::test] - #[should_panic(expected = "Self scope (~:) is not supported in run contexts.")] - async fn errors_for_target_self_scope() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::parse("~:lint").unwrap(), None) - .unwrap(); - } - - #[tokio::test] - #[should_panic(expected = "No project has been configured with the name or alias unknown")] - async fn errors_for_unknown_project() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("unknown", "test").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - } - - #[tokio::test] - #[should_panic(expected = "Unknown task build for project tasks.")] - async fn errors_for_unknown_task() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("tasks", "build").unwrap(), None) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - } -} - -mod run_target_if_touched { - use super::*; - - #[tokio::test] - async fn skips_if_untouched_project() { - let (_workspace, projects, _sandbox) = create_tasks_project_graph().await; - - let mut touched_files = FxHashSet::default(); - touched_files.insert(WorkspaceRelativePathBuf::from("input-a/a.ts")); - touched_files.insert(WorkspaceRelativePathBuf::from("input-c/c.ts")); - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("inputA", "a").unwrap(), Some(&touched_files)) - .unwrap(); - graph - .run_target(&Target::new("inputB", "b").unwrap(), Some(&touched_files)) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - } - - #[tokio::test] - async fn skips_if_untouched_task() { - let (_workspace, projects, _sandbox) = create_tasks_project_graph().await; - - let mut touched_files = FxHashSet::default(); - touched_files.insert(WorkspaceRelativePathBuf::from("input-a/a2.ts")); - touched_files.insert(WorkspaceRelativePathBuf::from("input-b/b2.ts")); - touched_files.insert(WorkspaceRelativePathBuf::from("input-c/any.ts")); - - let mut graph = build_dep_graph(&projects); - graph - .run_target(&Target::new("inputA", "a").unwrap(), Some(&touched_files)) - .unwrap(); - graph - .run_target(&Target::new("inputB", "b2").unwrap(), Some(&touched_files)) - .unwrap(); - graph - .run_target(&Target::new("inputC", "c").unwrap(), Some(&touched_files)) - .unwrap(); - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - } -} - -mod sync_project { - use super::*; - use moon_dep_graph::DepGraphBuilder; - - fn sync_projects(graph: &mut DepGraphBuilder, projects: &ProjectGraph, ids: &[&str]) { - for id in ids { - let project = projects.get(id).unwrap(); - - graph.sync_project(&project).unwrap(); - } - } - - #[tokio::test] - async fn isolated_projects() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - let mut graph = build_dep_graph(&projects); - - sync_projects( - &mut graph, - &projects, - &["advanced", "basic", "emptyConfig", "noConfig"], - ); - - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - - assert_eq!( - graph.sort_topological().unwrap(), - vec![ - NodeIndex::new(0), - NodeIndex::new(1), // advanced - NodeIndex::new(2), // noConfig - NodeIndex::new(4), - NodeIndex::new(5), // basic - NodeIndex::new(3), // emptyConfig - NodeIndex::new(6), - ] - ); - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(4)], - vec![NodeIndex::new(1), NodeIndex::new(5)], - vec![ - NodeIndex::new(0), - NodeIndex::new(2), - NodeIndex::new(3), - NodeIndex::new(6) - ] - ] - ); - } - - #[tokio::test] - async fn projects_with_deps() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - let mut graph = build_dep_graph(&projects); - - sync_projects(&mut graph, &projects, &["foo", "bar", "baz", "basic"]); - - let graph = graph.build(); - - // Not deterministic! - // assert_snapshot!(graph.to_dot()); - - assert_eq!( - graph.sort_topological().unwrap(), - vec![ - NodeIndex::new(0), - NodeIndex::new(1), // baz - NodeIndex::new(3), // bar - NodeIndex::new(4), - NodeIndex::new(5), // foo - NodeIndex::new(2), // noConfig - NodeIndex::new(7), // basic - NodeIndex::new(6), - ] - ); - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(3)], - vec![ - NodeIndex::new(1), - NodeIndex::new(4), - NodeIndex::new(5), - NodeIndex::new(7) - ], - vec![NodeIndex::new(0), NodeIndex::new(2), NodeIndex::new(6)] - ] - ); - } - - #[tokio::test] - async fn projects_with_tasks() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - let mut graph = build_dep_graph(&projects); - - sync_projects(&mut graph, &projects, &["noConfig", "tasks"]); - - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - - assert_eq!( - graph.sort_topological().unwrap(), - vec![ - NodeIndex::new(0), - NodeIndex::new(1), // noConfig - NodeIndex::new(2), - NodeIndex::new(3), // tasks - NodeIndex::new(4), - ] - ); - assert_eq!( - sort_batches(graph.sort_batched_topological().unwrap()), - vec![ - vec![NodeIndex::new(1), NodeIndex::new(3)], - vec![NodeIndex::new(0), NodeIndex::new(2), NodeIndex::new(4)] - ] - ); - } - - #[tokio::test] - async fn avoids_dupe_projects() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - let mut graph = build_dep_graph(&projects); - - sync_projects(&mut graph, &projects, &["advanced", "advanced", "advanced"]); - - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - } - - #[tokio::test] - #[should_panic(expected = "No project has been configured with the name or alias unknown")] - async fn errors_for_unknown_project() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - let mut graph = build_dep_graph(&projects); - - sync_projects(&mut graph, &projects, &["unknown"]); - - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - } -} - -mod installs_deps { - use super::*; - - #[tokio::test] - async fn tool_is_based_on_task_platform() { - let (_workspace, projects, _sandbox) = create_project_graph().await; - let mut graph = build_dep_graph(&projects); - - graph - .run_target(&Target::new("platforms", "system").unwrap(), None) - .unwrap(); - - graph - .run_target(&Target::new("platforms", "node").unwrap(), None) - .unwrap(); - - let graph = graph.build(); - - assert_snapshot!(graph.to_dot()); - } -} diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__installs_deps__tool_is_based_on_task_platform.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__installs_deps__tool_is_based_on_task_platform.snap deleted file mode 100644 index 89abacad753..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__installs_deps__tool_is_based_on_task_platform.snap +++ /dev/null @@ -1,22 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupSystemTool" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallSystemDeps" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncSystemProject(platforms)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(platforms:system)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="RunTarget(platforms:node)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 6 -> 5 [ arrowhead=box, arrowtail=box] - 7 -> 6 [ arrowhead=box, arrowtail=box] - 7 -> 3 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__avoids_dupe_targets.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__avoids_dupe_targets.snap deleted file mode 100644 index ff64ce9d402..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__avoids_dupe_targets.snap +++ /dev/null @@ -1,16 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(tasks)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(tasks:lint)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__deps_chain_target.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__deps_chain_target.snap deleted file mode 100644 index d58328cca47..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__deps_chain_target.snap +++ /dev/null @@ -1,44 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(basic:test)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="RunTarget(basic:lint)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="SyncNodeProject(chain)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="RunTarget(chain:a)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 8 [ label="RunTarget(chain:b)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 9 [ label="RunTarget(chain:c)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 10 [ label="RunTarget(chain:d)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 11 [ label="RunTarget(chain:e)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 12 [ label="RunTarget(chain:f)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 5 -> 2 [ arrowhead=box, arrowtail=box] - 5 -> 3 [ arrowhead=box, arrowtail=box] - 6 -> 1 [ arrowhead=box, arrowtail=box] - 7 -> 2 [ arrowhead=box, arrowtail=box] - 7 -> 6 [ arrowhead=box, arrowtail=box] - 8 -> 2 [ arrowhead=box, arrowtail=box] - 8 -> 6 [ arrowhead=box, arrowtail=box] - 9 -> 2 [ arrowhead=box, arrowtail=box] - 9 -> 6 [ arrowhead=box, arrowtail=box] - 10 -> 2 [ arrowhead=box, arrowtail=box] - 10 -> 6 [ arrowhead=box, arrowtail=box] - 11 -> 2 [ arrowhead=box, arrowtail=box] - 11 -> 6 [ arrowhead=box, arrowtail=box] - 12 -> 2 [ arrowhead=box, arrowtail=box] - 12 -> 6 [ arrowhead=box, arrowtail=box] - 11 -> 12 [ arrowhead=box, arrowtail=box] - 10 -> 11 [ arrowhead=box, arrowtail=box] - 9 -> 10 [ arrowhead=box, arrowtail=box] - 8 -> 9 [ arrowhead=box, arrowtail=box] - 7 -> 8 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__isolates_interactive_tasks.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__isolates_interactive_tasks.snap deleted file mode 100644 index 8fcb6cfd772..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__isolates_interactive_tasks.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(interactive)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunInteractiveTarget(interactive:one)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(chain)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="RunTarget(chain:c)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="RunTarget(chain:d)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 8 [ label="RunTarget(chain:e)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 9 [ label="RunTarget(chain:f)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 10 [ label="RunInteractiveTarget(interactive:two)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 11 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 12 [ label="RunTarget(basic:lint)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 13 [ label="RunInteractiveTarget(interactive:depOnOne)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 5 -> 1 [ arrowhead=box, arrowtail=box] - 6 -> 2 [ arrowhead=box, arrowtail=box] - 6 -> 5 [ arrowhead=box, arrowtail=box] - 7 -> 2 [ arrowhead=box, arrowtail=box] - 7 -> 5 [ arrowhead=box, arrowtail=box] - 8 -> 2 [ arrowhead=box, arrowtail=box] - 8 -> 5 [ arrowhead=box, arrowtail=box] - 9 -> 2 [ arrowhead=box, arrowtail=box] - 9 -> 5 [ arrowhead=box, arrowtail=box] - 8 -> 9 [ arrowhead=box, arrowtail=box] - 7 -> 8 [ arrowhead=box, arrowtail=box] - 6 -> 7 [ arrowhead=box, arrowtail=box] - 10 -> 2 [ arrowhead=box, arrowtail=box] - 10 -> 3 [ arrowhead=box, arrowtail=box] - 11 -> 1 [ arrowhead=box, arrowtail=box] - 12 -> 2 [ arrowhead=box, arrowtail=box] - 12 -> 11 [ arrowhead=box, arrowtail=box] - 13 -> 2 [ arrowhead=box, arrowtail=box] - 13 -> 3 [ arrowhead=box, arrowtail=box] - 13 -> 4 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap deleted file mode 100644 index 2bf3c186a08..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__moves_persistent_tasks_last.snap +++ /dev/null @@ -1,54 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(persistent)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="SyncNodeProject(buildC)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(buildA)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="SyncNodeProject(noTasks)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 8 [ label="RunPersistentTarget(persistent:dev)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 9 [ label="RunPersistentTarget(persistent:devMiddleman)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 10 [ label="RunPersistentTarget(persistent:local)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 11 [ label="RunTarget(buildA:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 12 [ label="RunTarget(basic:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 13 [ label="RunTarget(buildC:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 14 [ label="RunPersistentTarget(persistent:persistent)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 4 [ arrowhead=box, arrowtail=box] - 5 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 4 [ arrowhead=box, arrowtail=box] - 6 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 6 [ arrowhead=box, arrowtail=box] - 7 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 7 [ arrowhead=box, arrowtail=box] - 3 -> 5 [ arrowhead=box, arrowtail=box] - 8 -> 2 [ arrowhead=box, arrowtail=box] - 8 -> 3 [ arrowhead=box, arrowtail=box] - 9 -> 2 [ arrowhead=box, arrowtail=box] - 9 -> 3 [ arrowhead=box, arrowtail=box] - 10 -> 2 [ arrowhead=box, arrowtail=box] - 10 -> 3 [ arrowhead=box, arrowtail=box] - 11 -> 2 [ arrowhead=box, arrowtail=box] - 11 -> 5 [ arrowhead=box, arrowtail=box] - 12 -> 2 [ arrowhead=box, arrowtail=box] - 12 -> 6 [ arrowhead=box, arrowtail=box] - 13 -> 2 [ arrowhead=box, arrowtail=box] - 13 -> 4 [ arrowhead=box, arrowtail=box] - 11 -> 12 [ arrowhead=box, arrowtail=box] - 11 -> 13 [ arrowhead=box, arrowtail=box] - 10 -> 11 [ arrowhead=box, arrowtail=box] - 9 -> 10 [ arrowhead=box, arrowtail=box] - 14 -> 2 [ arrowhead=box, arrowtail=box] - 14 -> 3 [ arrowhead=box, arrowtail=box] - 8 -> 9 [ arrowhead=box, arrowtail=box] - 8 -> 14 [ arrowhead=box, arrowtail=box] - 8 -> 13 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__runs_all_projects_for_target_all_scope.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__runs_all_projects_for_target_all_scope.snap deleted file mode 100644 index d89757aa9a0..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__runs_all_projects_for_target_all_scope.snap +++ /dev/null @@ -1,38 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(buildA)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="SyncNodeProject(buildC)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="SyncNodeProject(noTasks)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 7 [ label="RunTarget(buildA:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 8 [ label="RunTarget(basic:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 9 [ label="RunTarget(buildC:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 10 [ label="SyncNodeProject(buildB)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 11 [ label="RunTarget(buildB:build)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 4 [ arrowhead=box, arrowtail=box] - 5 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 5 [ arrowhead=box, arrowtail=box] - 6 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 6 [ arrowhead=box, arrowtail=box] - 7 -> 2 [ arrowhead=box, arrowtail=box] - 7 -> 3 [ arrowhead=box, arrowtail=box] - 8 -> 2 [ arrowhead=box, arrowtail=box] - 8 -> 5 [ arrowhead=box, arrowtail=box] - 9 -> 2 [ arrowhead=box, arrowtail=box] - 9 -> 4 [ arrowhead=box, arrowtail=box] - 7 -> 8 [ arrowhead=box, arrowtail=box] - 7 -> 9 [ arrowhead=box, arrowtail=box] - 10 -> 1 [ arrowhead=box, arrowtail=box] - 11 -> 2 [ arrowhead=box, arrowtail=box] - 11 -> 10 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__single_targets.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__single_targets.snap deleted file mode 100644 index 474248a08a3..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target__single_targets.snap +++ /dev/null @@ -1,19 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(tasks)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(tasks:test)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="RunTarget(tasks:lint)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 5 -> 2 [ arrowhead=box, arrowtail=box] - 5 -> 3 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_project.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_project.snap deleted file mode 100644 index e6651f5ad65..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_project.snap +++ /dev/null @@ -1,16 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(inputA)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(inputA:a)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_task.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_task.snap deleted file mode 100644 index 2bd726be5e4..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__run_target_if_touched__skips_if_untouched_task.snap +++ /dev/null @@ -1,21 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="InstallNodeDeps(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(inputB)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="RunTarget(inputB:b2)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncNodeProject(inputC)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="RunTarget(inputC:c)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 2 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] - 5 -> 1 [ arrowhead=box, arrowtail=box] - 6 -> 2 [ arrowhead=box, arrowtail=box] - 6 -> 5 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__avoids_dupe_projects.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__avoids_dupe_projects.snap deleted file mode 100644 index d30c9e696f1..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__avoids_dupe_projects.snap +++ /dev/null @@ -1,11 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="SyncNodeProject(advanced)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__isolated_projects.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__isolated_projects.snap deleted file mode 100644 index 8f5e9c77c16..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__isolated_projects.snap +++ /dev/null @@ -1,19 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="SyncNodeProject(advanced)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SyncNodeProject(basic)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="SetupSystemTool" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 5 [ label="SyncSystemProject(noConfig)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 6 [ label="SyncSystemProject(emptyConfig)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 3 -> 1 [ arrowhead=box, arrowtail=box] - 5 -> 4 [ arrowhead=box, arrowtail=box] - 3 -> 5 [ arrowhead=box, arrowtail=box] - 6 -> 4 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__projects_with_tasks.snap b/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__projects_with_tasks.snap deleted file mode 100644 index 0366366dcd1..00000000000 --- a/crates/core/dep-graph/tests/snapshots/dep_graph_test__sync_project__projects_with_tasks.snap +++ /dev/null @@ -1,14 +0,0 @@ ---- -source: crates/core/dep-graph/tests/dep_graph_test.rs -expression: graph.to_dot() ---- -digraph { - 0 [ label="SyncWorkspace" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 1 [ label="SetupSystemTool" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 [ label="SyncSystemProject(noConfig)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 3 [ label="SetupNodeTool(16.0.0)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 4 [ label="SyncNodeProject(tasks)" style=filled, shape=oval, fillcolor=gray, fontcolor=black] - 2 -> 1 [ arrowhead=box, arrowtail=box] - 4 -> 3 [ arrowhead=box, arrowtail=box] -} - diff --git a/crates/core/moon/Cargo.toml b/crates/core/moon/Cargo.toml index 1a59b7dec0d..0aad8788f05 100644 --- a/crates/core/moon/Cargo.toml +++ b/crates/core/moon/Cargo.toml @@ -5,9 +5,9 @@ edition = "2021" publish = false [dependencies] +moon_action_graph = { path = "../../../nextgen/action-graph" } moon_config = { path = "../../../nextgen/config" } moon_deno_platform = { path = "../../deno/platform" } -moon_dep_graph = { path = "../dep-graph" } moon_node_platform = { path = "../../node/platform" } moon_platform = { path = "../platform" } moon_platform_detector = { path = "../platform-detector" } diff --git a/crates/core/moon/src/lib.rs b/crates/core/moon/src/lib.rs index 133add9662a..0203e9c6bbc 100644 --- a/crates/core/moon/src/lib.rs +++ b/crates/core/moon/src/lib.rs @@ -1,6 +1,6 @@ +use moon_action_graph::ActionGraphBuilder; use moon_config::LanguageType; use moon_deno_platform::DenoPlatform; -use moon_dep_graph::DepGraphBuilder; use moon_node_platform::NodePlatform; use moon_platform::{PlatformManager, PlatformType}; use moon_platform_detector::{detect_project_language, detect_task_platform}; @@ -127,8 +127,8 @@ pub async fn load_workspace_with_toolchain() -> miette::Result { Ok(workspace) } -pub fn build_dep_graph(project_graph: &ProjectGraph) -> DepGraphBuilder { - DepGraphBuilder::new(project_graph) +pub fn build_action_graph(project_graph: &ProjectGraph) -> miette::Result { + ActionGraphBuilder::new(project_graph) } pub async fn create_project_graph_context(workspace: &Workspace) -> ProjectGraphBuilderContext { diff --git a/nextgen/action-graph/Cargo.toml b/nextgen/action-graph/Cargo.toml index 72b0af7abc1..f46608af2df 100644 --- a/nextgen/action-graph/Cargo.toml +++ b/nextgen/action-graph/Cargo.toml @@ -19,11 +19,12 @@ moon_query = { path = "../query" } miette = { workspace = true } petgraph = { workspace = true } rustc-hash = { workspace = true } +serde = { workspace = true } thiserror = { workspace = true } +tokio = { workspace = true } tracing = { workspace = true } [dev-dependencies] moon_config = { path = "../config" } moon_test_utils2 = { path = "../test-utils" } starbase_sandbox = { workspace = true } -tokio = { workspace = true } diff --git a/nextgen/action-graph/src/action_graph.rs b/nextgen/action-graph/src/action_graph.rs index 7cb832ab873..7723bc352c5 100644 --- a/nextgen/action-graph/src/action_graph.rs +++ b/nextgen/action-graph/src/action_graph.rs @@ -4,56 +4,32 @@ use moon_common::is_test_env; use petgraph::dot::{Config, Dot}; use petgraph::prelude::*; use petgraph::visit::{IntoEdgeReferences, IntoNodeReferences}; -use rustc_hash::{FxHashMap, FxHashSet}; -use std::collections::VecDeque; +use rustc_hash::FxHashSet; +use std::sync::{mpsc, Arc, RwLock}; +use std::thread::spawn; +use tracing::{debug, trace}; pub type GraphType = DiGraph; -pub type IndicesMap = FxHashMap; pub struct ActionGraph { graph: GraphType, - indices: IndicesMap, - - // States when iterating - queue: VecDeque, - visited: FxHashSet, } impl ActionGraph { - pub fn new(graph: GraphType, indices: IndicesMap) -> Self { - ActionGraph { - graph, - indices, - queue: VecDeque::default(), - visited: FxHashSet::default(), - } - } + pub fn new(graph: GraphType) -> Self { + debug!("Creating action graph"); - pub fn reset_iterator(&mut self) -> miette::Result<()> { - self.detect_cycle()?; - - self.queue.clear(); - self.visited.clear(); - - // Extract root/initial nodes (those without edges) - self.queue.extend(self.graph.node_indices().filter(|&idx| { - self.graph - .neighbors_directed(idx, Outgoing) - .next() - .is_none() - })); + ActionGraph { graph } + } - Ok(()) + pub fn try_iter(&self) -> miette::Result { + ActionGraphIter::new(&self.graph) } pub fn is_empty(&self) -> bool { self.get_node_count() == 0 } - pub fn get_index_from_node(&self, node: &ActionNode) -> Option<&NodeIndex> { - self.indices.get(node) - } - pub fn get_node_count(&self) -> usize { self.graph.node_count() } @@ -62,6 +38,10 @@ impl ActionGraph { self.graph.node_weight(*index) } + pub fn labeled_graph(&self) -> DiGraph { + self.graph.map(|_, n| n.label(), |_, _| String::new()) + } + pub fn to_dot(&self) -> String { type DotGraph = DiGraph; @@ -98,52 +78,107 @@ impl ActionGraph { format!("{dot:?}") } +} - pub fn to_labeled_graph(&self) -> DiGraph { - self.graph.map(|_, n| n.label(), |_, _| String::new()) - } +pub struct ActionGraphIter<'graph> { + graph: &'graph GraphType, + indices: Vec, + visited: FxHashSet, + completed: Arc>>, - fn detect_cycle(&self) -> miette::Result<()> { - if self.get_node_count() > 1 { - if let Err(cycle) = petgraph::algo::toposort(&self.graph, None) { - return Err(ActionGraphError::CycleDetected( - self.get_node_from_index(&cycle.node_id()) - .map(|n| n.label()) - .unwrap_or_else(|| "(unknown)".into()), - ) - .into()); + pub receiver: Option>, + pub sender: mpsc::Sender, +} + +impl<'graph> ActionGraphIter<'graph> { + pub fn new(graph: &'graph GraphType) -> miette::Result { + match petgraph::algo::toposort(graph, None) { + Ok(mut indices) => { + indices.reverse(); + + debug!( + order = ?indices.iter().map(|i| i.index()).collect::>(), + "Iterating action graph topologically", + ); + + let (sender, receiver) = mpsc::channel(); + + Ok(Self { + graph, + indices, + visited: FxHashSet::default(), + completed: Arc::new(RwLock::new(FxHashSet::default())), + receiver: Some(receiver), + sender, + }) } + Err(cycle) => Err(ActionGraphError::CycleDetected( + graph + .node_weight(cycle.node_id()) + .map(|n| n.label()) + .unwrap_or_else(|| "(unknown)".into()), + ) + .into()), } + } + + pub fn has_pending(&self) -> bool { + self.completed.read().unwrap().len() < self.graph.node_count() + } - Ok(()) + pub fn mark_completed(&mut self, index: NodeIndex) { + self.completed.write().unwrap().insert(index); + } + + pub fn monitor_completed(&mut self) { + let completed = Arc::clone(&self.completed); + let receiver = self.receiver.take().unwrap(); + + spawn(move || { + while let Ok(idx) = receiver.recv() { + let index = NodeIndex::new(idx); + + trace!(index = index.index(), "Marking action as complete"); + + completed.write().unwrap().insert(index); + } + }); } } // This is based on the `Topo` struct from petgraph! -impl Iterator for ActionGraph { - type Item = ActionNode; +impl<'graph> Iterator for ActionGraphIter<'graph> { + type Item = NodeIndex; fn next(&mut self) -> Option { - while let Some(idx) = self.queue.pop_front() { - if self.visited.contains(&idx) { + let completed = self.completed.read().unwrap(); + + for idx in &self.indices { + if self.visited.contains(idx) || completed.contains(idx) { continue; } - self.visited.insert(idx); - - for neighbor in self.graph.neighbors_directed(idx, Direction::Incoming) { - // Look at each neighbor, and those that only have incoming edges - // from the already ordered list, they are the next to visit. - if self - .graph - .neighbors_directed(neighbor, Direction::Outgoing) - .all(|b| self.visited.contains(&b)) - { - self.queue.push_back(neighbor); - } + // Ensure all dependencies of the index have completed + let mut deps = vec![]; + + if self + .graph + .neighbors_directed(*idx, Direction::Outgoing) + .all(|dep| { + deps.push(dep.index()); + completed.contains(&dep) + }) + { + self.visited.insert(*idx); + + trace!( + index = idx.index(), + deps = ?deps, + "Running action", + ); + + return Some(*idx); } - - return self.graph.node_weight(idx).map(|n| n.to_owned()); } None diff --git a/nextgen/action-graph/src/action_graph_builder.rs b/nextgen/action-graph/src/action_graph_builder.rs index ee51775871d..3dba99fe2c6 100644 --- a/nextgen/action-graph/src/action_graph_builder.rs +++ b/nextgen/action-graph/src/action_graph_builder.rs @@ -13,9 +13,8 @@ use tracing::{debug, trace}; type TouchedFilePaths = FxHashSet; pub struct ActionGraphBuilder<'app> { - pub include_dependents: bool, - all_query: Option, + dependents: bool, graph: DiGraph, indices: FxHashMap, platform_manager: &'app PlatformManager, @@ -31,10 +30,12 @@ impl<'app> ActionGraphBuilder<'app> { platform_manager: &'app PlatformManager, project_graph: &'app ProjectGraph, ) -> miette::Result { + debug!("Building action graph"); + Ok(ActionGraphBuilder { all_query: None, graph: DiGraph::new(), - include_dependents: false, + dependents: false, indices: FxHashMap::default(), platform_manager, project_graph, @@ -42,7 +43,7 @@ impl<'app> ActionGraphBuilder<'app> { } pub fn build(self) -> miette::Result { - Ok(ActionGraph::new(self.graph, self.indices)) + Ok(ActionGraph::new(self.graph)) } pub fn get_index_from_node(&self, node: &ActionNode) -> Option<&NodeIndex> { @@ -69,6 +70,10 @@ impl<'app> ActionGraphBuilder<'app> { Runtime::system() } + pub fn include_dependents(&mut self) { + self.dependents = true; + } + pub fn set_query(&mut self, input: &str) -> miette::Result<()> { self.all_query = Some(build_query(input)?); @@ -145,11 +150,6 @@ impl<'app> ActionGraphBuilder<'app> { // Compare against touched files if provided if let Some(touched) = touched_files { if !task.is_affected(touched)? { - trace!( - "Task {} not affected based on touched files, skipping", - color::label(&task.target), - ); - return Ok(None); } } @@ -168,17 +168,18 @@ impl<'app> ActionGraphBuilder<'app> { // And we also need to create edges for task dependencies if !task.deps.is_empty() { trace!( + task = task.target.as_str(), deps = ?task.deps.iter().map(|d| d.as_str()).collect::>(), - "Adding dependencies for task {}", - color::label(&task.target), + "Linking dependencies for task", ); + reqs.extend(self.run_task_dependencies(task)?); } self.link_requirements(index, reqs); // And possibly dependents - if self.include_dependents { + if self.dependents { self.run_task_dependents(task)?; } @@ -226,6 +227,10 @@ impl<'app> ActionGraphBuilder<'app> { // From self project for dep_task in project.tasks.values() { if dep_task.deps.contains(&task.target) { + if dep_task.is_persistent() { + continue; + } + if let Some(index) = self.run_task(&project, dep_task, None)? { indices.push(index); } @@ -237,6 +242,10 @@ impl<'app> ActionGraphBuilder<'app> { let dep_project = self.project_graph.get(dependent_id)?; for dep_task in dep_project.tasks.values() { + if dep_task.is_persistent() { + continue; + } + if dep_task.deps.contains(&task.target) { if let Some(index) = self.run_task(&dep_project, dep_task, None)? { indices.push(index); @@ -394,7 +403,7 @@ impl<'app> ActionGraphBuilder<'app> { fn link_requirements(&mut self, index: NodeIndex, reqs: Vec) { trace!( index = index.index(), - requires = ?reqs, + requires = ?reqs.iter().map(|i| i.index()).collect::>(), "Linking requirements for index" ); diff --git a/nextgen/action-graph/src/action_node.rs b/nextgen/action-graph/src/action_node.rs index a691c58de60..365e13ffde5 100644 --- a/nextgen/action-graph/src/action_node.rs +++ b/nextgen/action-graph/src/action_node.rs @@ -1,9 +1,10 @@ use moon_common::Id; use moon_platform_runtime::Runtime; use moon_task::Target; +use serde::Serialize; use std::hash::{Hash, Hasher}; -#[derive(Clone, Debug, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq, Serialize)] pub enum ActionNode { /// Install tool dependencies in the workspace root. InstallDeps { runtime: Runtime }, diff --git a/nextgen/action-graph/tests/action_graph_test.rs b/nextgen/action-graph/tests/action_graph_test.rs index de0b9e52d44..9bf27f8eee7 100644 --- a/nextgen/action-graph/tests/action_graph_test.rs +++ b/nextgen/action-graph/tests/action_graph_test.rs @@ -39,13 +39,15 @@ fn create_rust_runtime() -> Runtime { ) } -fn topo(mut graph: ActionGraph) -> Vec { +fn topo(graph: ActionGraph) -> Vec { let mut nodes = vec![]; + let mut iter = graph.try_iter().unwrap(); - graph.reset_iterator().unwrap(); - - for node in graph { - nodes.push(node); + while iter.has_pending() { + if let Some(index) = iter.next() { + nodes.push(graph.get_node_from_index(&index).unwrap().to_owned()); + iter.mark_completed(index); + } } nodes @@ -70,7 +72,7 @@ mod action_graph { .run_task(&project, project.get_task("cycle2").unwrap(), None) .unwrap(); - builder.build().unwrap().reset_iterator().unwrap(); + builder.build().unwrap().try_iter().unwrap(); } mod install_deps { @@ -151,11 +153,11 @@ mod action_graph { ActionNode::SetupTool { runtime: create_node_runtime() }, - ActionNode::InstallProjectDeps { - project: Id::raw("out"), + ActionNode::InstallDeps { runtime: create_node_runtime() }, - ActionNode::InstallDeps { + ActionNode::InstallProjectDeps { + project: Id::raw("out"), runtime: create_node_runtime() }, ] @@ -165,7 +167,6 @@ mod action_graph { mod run_task { use super::*; - use starbase_sandbox::pretty_assertions::assert_eq; #[tokio::test] async fn graphs() { @@ -190,11 +191,11 @@ mod action_graph { ActionNode::SetupTool { runtime: create_node_runtime() }, - ActionNode::SyncProject { - project: Id::raw("bar"), + ActionNode::InstallDeps { runtime: create_node_runtime() }, - ActionNode::InstallDeps { + ActionNode::SyncProject { + project: Id::raw("bar"), runtime: create_node_runtime() }, ActionNode::RunTask { @@ -231,11 +232,11 @@ mod action_graph { ActionNode::SetupTool { runtime: create_node_runtime() }, - ActionNode::SyncProject { - project: Id::raw("bar"), + ActionNode::InstallDeps { runtime: create_node_runtime() }, - ActionNode::InstallDeps { + ActionNode::SyncProject { + project: Id::raw("bar"), runtime: create_node_runtime() }, ActionNode::RunTask { @@ -314,18 +315,18 @@ mod action_graph { vec![ ActionNode::SyncWorkspace, ActionNode::SetupTool { - runtime: create_node_runtime() + runtime: create_rust_runtime() }, - ActionNode::SetupTool { + ActionNode::InstallDeps { runtime: create_rust_runtime() }, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, ActionNode::SyncProject { project: Id::raw("bar"), runtime: create_node_runtime() }, - ActionNode::InstallDeps { - runtime: create_rust_runtime() - }, ActionNode::RunTask { interactive: false, persistent: false, @@ -462,7 +463,7 @@ mod action_graph { let container = ActionGraphContainer::new(sandbox.path()).await; let mut builder = container.create_builder(); - builder.include_dependents = true; + builder.include_dependents(); let project = container.project_graph.get("deps").unwrap(); let task = project.get_task("base").unwrap(); @@ -703,8 +704,8 @@ mod action_graph { topo(graph), vec![ ActionNode::SyncWorkspace, - ActionNode::SetupTool { runtime: node }, ActionNode::SetupTool { runtime: system }, + ActionNode::SetupTool { runtime: node }, ] ); } @@ -735,9 +736,9 @@ mod action_graph { topo(graph), vec![ ActionNode::SyncWorkspace, - ActionNode::SetupTool { runtime: node3 }, - ActionNode::SetupTool { runtime: node2 }, ActionNode::SetupTool { runtime: node1 }, + ActionNode::SetupTool { runtime: node2 }, + ActionNode::SetupTool { runtime: node3 }, ] ); } @@ -847,15 +848,15 @@ mod action_graph { runtime: Runtime::system() }, ActionNode::SyncProject { - project: Id::raw("qux"), + project: Id::raw("bar"), runtime: Runtime::system() }, ActionNode::SyncProject { - project: Id::raw("bar"), + project: Id::raw("foo"), runtime: Runtime::system() }, ActionNode::SyncProject { - project: Id::raw("foo"), + project: Id::raw("qux"), runtime: Runtime::system() }, ] @@ -914,19 +915,19 @@ mod action_graph { vec![ ActionNode::SyncWorkspace, ActionNode::SetupTool { - runtime: create_rust_runtime() + runtime: create_node_runtime() }, - ActionNode::SetupTool { + ActionNode::SyncProject { + project: Id::raw("bar"), runtime: create_node_runtime() }, + ActionNode::SetupTool { + runtime: create_rust_runtime() + }, ActionNode::SyncProject { project: Id::raw("qux"), runtime: create_rust_runtime() }, - ActionNode::SyncProject { - project: Id::raw("bar"), - runtime: create_node_runtime() - } ] ); } @@ -950,15 +951,19 @@ mod action_graph { topo(graph), vec![ ActionNode::SyncWorkspace, + ActionNode::SetupTool { + runtime: create_node_runtime() + }, + ActionNode::SyncProject { + project: Id::raw("bar"), + runtime: create_node_runtime() + }, ActionNode::SetupTool { runtime: Runtime::new_override( PlatformType::Node, RuntimeReq::with_version(Version::new(18, 0, 0)) ) }, - ActionNode::SetupTool { - runtime: create_node_runtime() - }, ActionNode::SyncProject { project: Id::raw("baz"), runtime: Runtime::new_override( @@ -966,10 +971,6 @@ mod action_graph { RuntimeReq::with_version(Version::new(18, 0, 0)) ) }, - ActionNode::SyncProject { - project: Id::raw("bar"), - runtime: create_node_runtime() - }, ] ); } diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 6cdc6a341b4..1bfbbd6bd5c 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -44,11 +44,11 @@ arbitrarily. - Cleaned up dependency chains between actions, greatly reducing the number of nodes in the graph. - Renamed `RunTarget` to `RunTask`, including interactive and persistent variants. -- Updated the action graph to iterate using a topological queue, which executes ready-to-run actions - in the thread pool. Previously, we would sort topologically _into batches_, which worked, but - resulted in many threads uselessly waiting for an action to run, which was blocked waiting for the - current batch to complete. - - For large graphs, this should result in a significant performance improvement, upwards of 10x. +- Updated the action graph to iterate using a topological queue, which executes actions on-demand in + the thread pool when they are ready (dependencies have been met). Previously, we would sort + topologically _into batches_, which worked, but resulted in many threads uselessly waiting for an + action to run, which was blocked waiting for the current batch to complete. + - For large graphs, this should result in a significant performance improvement. - Persistent tasks will still be ran as a batch, but since it's the last operation, it's fine. - Released a new GitHub action, [`moonrepo/setup-toolchain`](https://github.com/marketplace/actions/setup-proto-and-moon-toolchains), @@ -57,6 +57,7 @@ #### 🚀 Updates - Added a `moon action-graph` command and deprecated `moon dep-graph`. +- Added a `--dependents` argument to `moon action-graph`. #### 🐞 Fixes diff --git a/website/docs/guides/webhooks.mdx b/website/docs/guides/webhooks.mdx index 00296fb6697..095f6461cbe 100644 --- a/website/docs/guides/webhooks.mdx +++ b/website/docs/guides/webhooks.mdx @@ -409,7 +409,8 @@ Triggered when a [target](../concepts/target) has finished running. If the run f field will be set with the error message. For more information about the action, refer to the [`action.finished`](#actionfinished) event. Ran -targets can be scoped with the `RunTarget(...)` and `RunPersistentTarget(...)` labels. +targets can be scoped with the `RunTask(...)`, `RunInteractiveTask(...)`, and +`RunPersistentTask(...)` labels. ```json { From 6168c24487f7b18a977b6951cc82de2ebb0e304e Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Sat, 7 Oct 2023 22:35:00 -0700 Subject: [PATCH 6/8] internal: Remove benchmarks. --- .../{benchmark.yml => benchmark.ymldisabled} | 0 crates/core/emitter/Cargo.toml | 7 --- .../core/emitter/benches/emitter_benchmark.rs | 62 ------------------- 3 files changed, 69 deletions(-) rename .github/workflows/{benchmark.yml => benchmark.ymldisabled} (100%) delete mode 100644 crates/core/emitter/benches/emitter_benchmark.rs diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.ymldisabled similarity index 100% rename from .github/workflows/benchmark.yml rename to .github/workflows/benchmark.ymldisabled diff --git a/crates/core/emitter/Cargo.toml b/crates/core/emitter/Cargo.toml index d2de0a23737..b247df3f450 100644 --- a/crates/core/emitter/Cargo.toml +++ b/crates/core/emitter/Cargo.toml @@ -4,13 +4,6 @@ version = "0.1.0" edition = "2021" publish = false -[lib] -bench = false - -[[bench]] -name = "emitter_benchmark" -harness = false - [dependencies] moon_action = { path = "../action" } moon_action_context = { path = "../action-context" } diff --git a/crates/core/emitter/benches/emitter_benchmark.rs b/crates/core/emitter/benches/emitter_benchmark.rs deleted file mode 100644 index b7f616103c4..00000000000 --- a/crates/core/emitter/benches/emitter_benchmark.rs +++ /dev/null @@ -1,62 +0,0 @@ -use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use moon_action_context::ActionContext; -use moon_emitter::{Emitter, Event, EventFlow, Subscriber}; -use moon_test_utils::get_fixtures_path; -use moon_workspace::Workspace; -use std::sync::Arc; -use tokio::sync::RwLock; - -struct TestSubscriber; - -#[async_trait::async_trait] -impl Subscriber for TestSubscriber { - async fn on_emit<'e>( - &mut self, - _event: &Event<'e>, - _workspace: &Workspace, - ) -> miette::Result { - Ok(EventFlow::Continue) - } -} - -pub fn emit_benchmark(c: &mut Criterion) { - let workspace_root = get_fixtures_path("cases"); - let runtime = tokio::runtime::Runtime::new().unwrap(); - - c.bench_function("emitter_emit", |b| { - b.to_async(&runtime).iter(|| async { - let workspace = Workspace::load_from(&workspace_root).unwrap(); - let emitter = Emitter::new(Arc::new(RwLock::new(workspace))); - let context = ActionContext::default(); - - emitter - .emit(Event::PipelineStarted { - actions_count: 1, - context: &context, - }) - .await - .unwrap(); - - emitter - .emit(Event::PipelineStarted { - actions_count: 1, - context: &context, - }) - .await - .unwrap(); - - emitter - .emit(Event::PipelineStarted { - actions_count: 1, - context: &context, - }) - .await - .unwrap(); - - black_box(emitter); - }) - }); -} - -criterion_group!(emitter, emit_benchmark); -criterion_main!(emitter); From c0d1fd85e988259bd1ec1bd6464614207ed246ba Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Sun, 8 Oct 2023 15:52:53 -0700 Subject: [PATCH 7/8] new: Allow actions to be skipped using env vars. (#1105) * Start on. * Update tests. * Update types. --- .yarn/versions/22a0caa2.yml | 6 ++ ...run_node_test__inherits_moon_env_vars.snap | 2 +- ...run_rust_test__inherits_moon_env_vars.snap | 2 +- ...em_test__unix__inherits_moon_env_vars.snap | 2 +- .../src/actions/install_deps.rs | 10 +++ .../core/action-pipeline/src/actions/mod.rs | 71 ++++++++++++++++++- .../actions/{run_target.rs => run_task.rs} | 8 +-- .../action-pipeline/src/actions/setup_tool.rs | 13 ++++ .../src/actions/sync_project.rs | 10 +++ .../src/actions/sync_workspace.rs | 10 +++ crates/core/action-pipeline/src/processor.rs | 4 +- .../node/platform/src/actions/run_target.rs | 2 +- nextgen/action-graph/src/action_node.rs | 1 + nextgen/platform-runtime/src/lib.rs | 1 + packages/types/src/common.ts | 5 +- packages/types/src/pipeline.ts | 46 ++++++++---- website/src/utils/renderGraph.ts | 7 ++ 17 files changed, 172 insertions(+), 28 deletions(-) rename crates/core/action-pipeline/src/actions/{run_target.rs => run_task.rs} (96%) diff --git a/.yarn/versions/22a0caa2.yml b/.yarn/versions/22a0caa2.yml index ead60d33b1b..997894edcae 100644 --- a/.yarn/versions/22a0caa2.yml +++ b/.yarn/versions/22a0caa2.yml @@ -8,3 +8,9 @@ releases: '@moonrepo/core-macos-x64': minor '@moonrepo/core-windows-x64-msvc': minor '@moonrepo/visualizer': minor + '@moonrepo/types': minor + '@moonrepo/report': minor + +declined: + - '@moonrepo/runtime' + - website diff --git a/crates/cli/tests/snapshots/run_node_test__inherits_moon_env_vars.snap b/crates/cli/tests/snapshots/run_node_test__inherits_moon_env_vars.snap index d0f06aad674..ffc9bdd73a3 100644 --- a/crates/cli/tests/snapshots/run_node_test__inherits_moon_env_vars.snap +++ b/crates/cli/tests/snapshots/run_node_test__inherits_moon_env_vars.snap @@ -12,7 +12,7 @@ MOON_PROJECT_ID=node MOON_PROJECT_ROOT=/base MOON_PROJECT_SNAPSHOT=/.moon/cache/states/node/snapshot.json MOON_PROJECT_SOURCE=base -MOON_RUNNING_ACTION=run-target +MOON_RUNNING_ACTION=run-task MOON_TARGET=node:envVarsMoon MOON_TOOLCHAIN_DIR=~/.proto MOON_WORKING_DIR= diff --git a/crates/cli/tests/snapshots/run_rust_test__inherits_moon_env_vars.snap b/crates/cli/tests/snapshots/run_rust_test__inherits_moon_env_vars.snap index 357a9e1044c..4cdfd4a9bd7 100644 --- a/crates/cli/tests/snapshots/run_rust_test__inherits_moon_env_vars.snap +++ b/crates/cli/tests/snapshots/run_rust_test__inherits_moon_env_vars.snap @@ -12,7 +12,7 @@ MOON_PROJECT_ID=rust MOON_PROJECT_ROOT= MOON_PROJECT_SNAPSHOT=/.moon/cache/states/rust/snapshot.json MOON_PROJECT_SOURCE=. -MOON_RUNNING_ACTION=run-target +MOON_RUNNING_ACTION=run-task MOON_TARGET=rust:envVarsMoon MOON_TOOLCHAIN_DIR=~/.proto MOON_WORKING_DIR= diff --git a/crates/cli/tests/snapshots/run_system_test__unix__inherits_moon_env_vars.snap b/crates/cli/tests/snapshots/run_system_test__unix__inherits_moon_env_vars.snap index a7b53256da3..e207b53c5ba 100644 --- a/crates/cli/tests/snapshots/run_system_test__unix__inherits_moon_env_vars.snap +++ b/crates/cli/tests/snapshots/run_system_test__unix__inherits_moon_env_vars.snap @@ -11,7 +11,7 @@ MOON_PROJECT_ID=unix MOON_PROJECT_ROOT=/unix MOON_PROJECT_SNAPSHOT=/.moon/cache/states/unix/snapshot.json MOON_PROJECT_SOURCE=unix -MOON_RUNNING_ACTION=run-target +MOON_RUNNING_ACTION=run-task MOON_TARGET=unix:envVarsMoon MOON_TOOLCHAIN_DIR=~/.proto MOON_WORKING_DIR= diff --git a/crates/core/action-pipeline/src/actions/install_deps.rs b/crates/core/action-pipeline/src/actions/install_deps.rs index c0b7eca3d15..117bedabaf8 100644 --- a/crates/core/action-pipeline/src/actions/install_deps.rs +++ b/crates/core/action-pipeline/src/actions/install_deps.rs @@ -1,3 +1,4 @@ +use super::should_skip_action_matching; use miette::IntoDiagnostic; use moon_action::{Action, ActionStatus}; use moon_action_context::ActionContext; @@ -63,6 +64,15 @@ pub async fn install_deps( return Ok(ActionStatus::Skipped); } + if should_skip_action_matching("MOON_SKIP_INSTALL_DEPS", &install_key) { + debug!( + target: LOG_TARGET, + "Skipping install deps action because MOON_SKIP_INSTALL_DEPS is set", + ); + + return Ok(ActionStatus::Skipped); + } + // When the install is happening as a child process of another install, avoid recursion if env::var("MOON_INSTALLING_DEPS").unwrap_or_default() == install_key { debug!( diff --git a/crates/core/action-pipeline/src/actions/mod.rs b/crates/core/action-pipeline/src/actions/mod.rs index d2b07d67dd5..b05f60452e2 100644 --- a/crates/core/action-pipeline/src/actions/mod.rs +++ b/crates/core/action-pipeline/src/actions/mod.rs @@ -1,5 +1,74 @@ +use std::env; + pub mod install_deps; -pub mod run_target; +pub mod run_task; pub mod setup_tool; pub mod sync_project; pub mod sync_workspace; + +pub fn should_skip_action(key: &str) -> bool { + env::var(key).is_ok_and(|v| matches_pattern(&v, "")) +} + +pub fn should_skip_action_matching>(key: &str, pattern: V) -> bool { + env::var(key).is_ok_and(|v| matches_pattern(&v, pattern.as_ref())) +} + +fn matches_pattern(value: &str, pattern: &str) -> bool { + if value.contains(',') { + return value.split(',').any(|v| matches_pattern(v, pattern)); + } + + let pattern = pattern.to_lowercase(); + + if value == "*" || value == "*:*" || value == "true" || value == pattern { + return true; + } + + if pattern.contains(':') { + let mut left = pattern.split(':'); + let mut right = value.split(':'); + + return match ((left.next(), left.next()), (right.next(), right.next())) { + #[allow(clippy::nonminimal_bool)] + ((Some(a1), Some(a2)), (Some(b1), Some(b2))) => { + // foo:bar == foo:bar + a1 == b1 && a2 == b2 || + // foo:bar == foo:* + a1 == b1 && b2 == "*" || + // foo:bar == *:bar + a2 == b2 && b1 == "*" + } + ((Some(a1), Some(_)), (Some(b1), None)) => { + // foo:bar == foo + a1 == b1 + } + _ => false, + }; + } + + false +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn patterns() { + assert!(matches_pattern("*", "")); + assert!(matches_pattern("*:*", "")); + assert!(matches_pattern("true", "")); + + assert!(matches_pattern("*", "node:20.0.0")); + assert!(matches_pattern("node:*", "node:20.0.0")); + assert!(matches_pattern("node", "node:20.0.0")); + assert!(matches_pattern("node:20.0.0", "node:20.0.0")); + assert!(!matches_pattern("rust", "node:20.0.0")); + assert!(!matches_pattern("node:19.0.0", "node:20.0.0")); + + assert!(matches_pattern("foo,bar", "foo")); + assert!(matches_pattern("foo,bar", "bar")); + assert!(!matches_pattern("foo,bar", "baz")); + } +} diff --git a/crates/core/action-pipeline/src/actions/run_target.rs b/crates/core/action-pipeline/src/actions/run_task.rs similarity index 96% rename from crates/core/action-pipeline/src/actions/run_target.rs rename to crates/core/action-pipeline/src/actions/run_task.rs index 3f256a457ba..ec6c9e1fa55 100644 --- a/crates/core/action-pipeline/src/actions/run_target.rs +++ b/crates/core/action-pipeline/src/actions/run_task.rs @@ -13,9 +13,9 @@ use std::env; use std::sync::Arc; use tokio::sync::RwLock; -const LOG_TARGET: &str = "moon:action:run-target"; +const LOG_TARGET: &str = "moon:action:run-task"; -pub async fn run_target( +pub async fn run_task( action: &mut Action, context: Arc>, emitter: Arc>, @@ -24,7 +24,7 @@ pub async fn run_target( target: &Target, runtime: &Runtime, ) -> miette::Result { - env::set_var("MOON_RUNNING_ACTION", "run-target"); + env::set_var("MOON_RUNNING_ACTION", "run-task"); let emitter = emitter.read().await; let workspace = workspace.read().await; @@ -33,7 +33,7 @@ pub async fn run_target( debug!( target: LOG_TARGET, - "Running target {}", + "Running task {}", color::label(&task.target) ); diff --git a/crates/core/action-pipeline/src/actions/setup_tool.rs b/crates/core/action-pipeline/src/actions/setup_tool.rs index f2b4582f9b0..f2332fe8a68 100644 --- a/crates/core/action-pipeline/src/actions/setup_tool.rs +++ b/crates/core/action-pipeline/src/actions/setup_tool.rs @@ -1,3 +1,4 @@ +use super::should_skip_action_matching; use moon_action::{Action, ActionStatus}; use moon_action_context::ActionContext; use moon_cache_item::cache_item; @@ -38,6 +39,18 @@ pub async fn setup_tool( runtime.label() ); + if should_skip_action_matching( + "MOON_SKIP_SETUP_TOOL", + format!("{}:{}", runtime, runtime.requirement), + ) { + debug!( + target: LOG_TARGET, + "Skipping setup tool action because MOON_SKIP_SETUP_TOOL is set", + ); + + return Ok(ActionStatus::Skipped); + } + let workspace = workspace.write().await; let context = context.read().await; diff --git a/crates/core/action-pipeline/src/actions/sync_project.rs b/crates/core/action-pipeline/src/actions/sync_project.rs index 9f02277f7b7..ae55242425d 100644 --- a/crates/core/action-pipeline/src/actions/sync_project.rs +++ b/crates/core/action-pipeline/src/actions/sync_project.rs @@ -1,3 +1,4 @@ +use super::should_skip_action_matching; use moon_action::{Action, ActionStatus}; use moon_action_context::ActionContext; use moon_logger::debug; @@ -34,6 +35,15 @@ pub async fn sync_project( color::id(&project.id) ); + if should_skip_action_matching("MOON_SKIP_SYNC_PROJECT", &project.id) { + debug!( + target: LOG_TARGET, + "Skipping sync project action because MOON_SKIP_SYNC_PROJECT is set", + ); + + return Ok(ActionStatus::Skipped); + } + // Create a snapshot for tasks to reference workspace .cache_engine diff --git a/crates/core/action-pipeline/src/actions/sync_workspace.rs b/crates/core/action-pipeline/src/actions/sync_workspace.rs index fef41499c47..6c1b17a7e0b 100644 --- a/crates/core/action-pipeline/src/actions/sync_workspace.rs +++ b/crates/core/action-pipeline/src/actions/sync_workspace.rs @@ -1,3 +1,4 @@ +use super::should_skip_action; use moon_action::{Action, ActionStatus}; use moon_action_context::ActionContext; use moon_actions::{sync_codeowners, sync_vcs_hooks}; @@ -28,6 +29,15 @@ pub async fn sync_workspace( debug!(target: LOG_TARGET, "Syncing workspace"); + if should_skip_action("MOON_SKIP_SYNC_WORKSPACE") { + debug!( + target: LOG_TARGET, + "Skipping sync workspace action because MOON_SKIP_SYNC_WORKSPACE is set", + ); + + return Ok(ActionStatus::Skipped); + } + if workspace.config.codeowners.sync_on_run { debug!( target: LOG_TARGET, diff --git a/crates/core/action-pipeline/src/processor.rs b/crates/core/action-pipeline/src/processor.rs index cc939b1002e..af3ed5693a4 100644 --- a/crates/core/action-pipeline/src/processor.rs +++ b/crates/core/action-pipeline/src/processor.rs @@ -1,5 +1,5 @@ use crate::actions::install_deps::install_deps; -use crate::actions::run_target::run_target; +use crate::actions::run_task::run_task; use crate::actions::setup_tool::setup_tool; use crate::actions::sync_project::sync_project; use crate::actions::sync_workspace::sync_workspace; @@ -178,7 +178,7 @@ pub async fn process_action( local_emitter.emit(Event::TargetRunning { target }).await?; - let run_result = run_target( + let run_result = run_task( &mut action, context, emitter, diff --git a/crates/node/platform/src/actions/run_target.rs b/crates/node/platform/src/actions/run_target.rs index 8f34ed35770..94137aef49e 100644 --- a/crates/node/platform/src/actions/run_target.rs +++ b/crates/node/platform/src/actions/run_target.rs @@ -16,7 +16,7 @@ use rustc_hash::FxHashMap; use starbase_styles::color; use std::path::Path; -const LOG_TARGET: &str = "moon:node-platform:run-target"; +const LOG_TARGET: &str = "moon:node-platform:run-task"; fn create_node_options( node_config: &NodeConfig, diff --git a/nextgen/action-graph/src/action_node.rs b/nextgen/action-graph/src/action_node.rs index 365e13ffde5..8c15a04ba7b 100644 --- a/nextgen/action-graph/src/action_node.rs +++ b/nextgen/action-graph/src/action_node.rs @@ -5,6 +5,7 @@ use serde::Serialize; use std::hash::{Hash, Hasher}; #[derive(Clone, Debug, Eq, PartialEq, Serialize)] +#[serde(tag = "action", content = "params")] pub enum ActionNode { /// Install tool dependencies in the workspace root. InstallDeps { runtime: Runtime }, diff --git a/nextgen/platform-runtime/src/lib.rs b/nextgen/platform-runtime/src/lib.rs index b3627dc60a5..872419ee011 100644 --- a/nextgen/platform-runtime/src/lib.rs +++ b/nextgen/platform-runtime/src/lib.rs @@ -4,6 +4,7 @@ use std::fmt; use std::hash::{Hash, Hasher}; #[derive(Clone, Debug, Eq, PartialEq, Serialize)] +#[serde(untagged)] pub enum RuntimeReq { // Use tool available on PATH Global, diff --git a/packages/types/src/common.ts b/packages/types/src/common.ts index dc18029f2ea..196b6cd03e0 100644 --- a/packages/types/src/common.ts +++ b/packages/types/src/common.ts @@ -8,6 +8,7 @@ export interface Duration { } export interface Runtime { - platform: Capitalize; - version?: string; + platform: PlatformType; + requirement?: string; + overridden?: boolean; } diff --git a/packages/types/src/pipeline.ts b/packages/types/src/pipeline.ts index 22008cecc66..a03a78b5533 100644 --- a/packages/types/src/pipeline.ts +++ b/packages/types/src/pipeline.ts @@ -19,6 +19,7 @@ export interface Attempt { } export interface Action { + allowFailure?: boolean; attempts: Attempt[] | null; createdAt: string; duration: Duration | null; @@ -75,37 +76,52 @@ export interface RunReport { export type ActionNode = | ActionNodeInstallDeps | ActionNodeInstallProjectDeps - | ActionNodeRunPersistentTarget - | ActionNodeRunTarget + | ActionNodeRunTask | ActionNodeSetupTool - | ActionNodeSyncProject; + | ActionNodeSyncProject + | ActionNodeSyncWorkspace; export interface ActionNodeInstallDeps { action: 'InstallDeps'; - params: Runtime; + params: { + runtime: Runtime; + }; } export interface ActionNodeInstallProjectDeps { action: 'InstallProjectDeps'; - params: [Runtime, string]; -} - -export interface ActionNodeRunTarget { - action: 'RunTarget'; - params: [Runtime, string]; + params: { + runtime: Runtime; + project: string; + }; } -export interface ActionNodeRunPersistentTarget { - action: 'RunPersistentTarget'; - params: [Runtime, string]; +export interface ActionNodeRunTask { + action: 'RunTask'; + params: { + interactive: boolean; + persistent: boolean; + runtime: Runtime; + target: string; + }; } export interface ActionNodeSetupTool { action: 'SetupTool'; - params: Runtime; + params: { + runtime: Runtime; + }; } export interface ActionNodeSyncProject { action: 'SyncProject'; - params: [Runtime, string]; + params: { + runtime: Runtime; + project: string; + }; +} + +export interface ActionNodeSyncWorkspace { + action: 'SyncWorkspace'; + params: {}; } diff --git a/website/src/utils/renderGraph.ts b/website/src/utils/renderGraph.ts index 6a6e0e8089f..cf91cd2385f 100644 --- a/website/src/utils/renderGraph.ts +++ b/website/src/utils/renderGraph.ts @@ -50,6 +50,13 @@ export function renderGraph(element: HTMLElement, graph: cytoscape.ElementsDefin width: 60, }, }, + { + selector: 'node[type="run-task"], node[type="sm"]', + style: { + // @ts-expect-error Types incorrect + 'background-gradient-stop-colors': '#6e58d1 #4a2ec6 #3b259e', + }, + }, { selector: 'node[type="run-target"], node[type="sm"]', style: { From 23502e6b17e607d08337e7aca3402a286f072446 Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Mon, 9 Oct 2023 10:59:55 -0700 Subject: [PATCH 8/8] new: Add v1.15 blog post. (#1106) * First pass. * Second pass. * Start on blog post. * Finish blog post. --- Cargo.lock | 96 ++++++++------ Cargo.toml | 14 +- crates/core/notifier/Cargo.toml | 2 +- crates/core/test-utils/Cargo.toml | 2 +- crates/rust/lang/Cargo.toml | 2 +- nextgen/hash/Cargo.toml | 2 +- nextgen/query/Cargo.toml | 4 +- packages/cli/CHANGELOG.md | 25 +--- website/blog/2023-10-09_moon-v1.15.mdx | 143 +++++++++++++++++++++ website/blog/img/moon/v1.15.png | Bin 0 -> 1016689 bytes website/docs/commands/action-graph.mdx | 4 + website/docs/how-it-works/action-graph.mdx | 4 +- website/docs/install.mdx | 6 +- 13 files changed, 227 insertions(+), 77 deletions(-) create mode 100644 website/blog/2023-10-09_moon-v1.15.mdx create mode 100644 website/blog/img/moon/v1.15.png diff --git a/Cargo.lock b/Cargo.lock index c155cc9b881..9040ec64626 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -93,9 +93,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.5.0" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ "anstyle", "anstyle-parse", @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "2.1.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -632,9 +632,9 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a1f1117a8ff2f3547295da90f473c392d8d1107c90cea1ea82b1a544a97a4a" +checksum = "e3f9629bc6c4388ea699781dc988c2b99766d7679b151c81990b4fa1208fafd3" dependencies = [ "serde", "toml 0.8.2", @@ -800,9 +800,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.4" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d7b8d5ec32af0fadc644bf1fd509a688c2103b185644bb1e29d164e0703136" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" dependencies = [ "clap_builder", "clap_derive", @@ -810,9 +810,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.4" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5179bb514e4d7c2051749d8fcefa2ed6d06a9f4e6d69faf3805f5d80b8cf8d56" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" dependencies = [ "anstream", "anstyle", @@ -823,11 +823,11 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.1" +version = "4.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4110a1e6af615a9e6d0a36f805d5c99099f8bab9b8042f5bc1fa220a4a89e36f" +checksum = "e3ae8ba90b9d8b007efe66e55e48fb936272f5ca00349b5b0e89877520d35ea7" dependencies = [ - "clap 4.4.4", + "clap 4.4.6", ] [[package]] @@ -1158,7 +1158,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.4.4", + "clap 4.4.6", "criterion-plot", "futures", "is-terminal", @@ -3020,7 +3020,7 @@ dependencies = [ name = "moon_action_context" version = "0.1.0" dependencies = [ - "clap 4.4.4", + "clap 4.4.6", "moon_common", "moon_target", "rustc-hash", @@ -3205,7 +3205,7 @@ version = "1.14.5" dependencies = [ "bytes", "ci_env", - "clap 4.4.4", + "clap 4.4.6", "clap_complete", "clap_lex 0.5.1", "console", @@ -4392,9 +4392,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" +checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" dependencies = [ "memchr", "thiserror", @@ -4403,9 +4403,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a" +checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8" dependencies = [ "pest", "pest_generator", @@ -4413,9 +4413,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141" +checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a" dependencies = [ "pest", "pest_meta", @@ -4426,9 +4426,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f" +checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d" dependencies = [ "once_cell", "pest", @@ -4661,9 +4661,9 @@ dependencies = [ [[package]] name = "proto_core" -version = "0.19.2" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c68fe1824ab8c19d63392f686a9f48e03425f2e687b272b421170867de3b19b" +checksum = "95344f1074fd611a4652e1f8d16be6991059c312831f40483bbe750a84558a09" dependencies = [ "cached", "extism", @@ -4692,9 +4692,9 @@ dependencies = [ [[package]] name = "proto_pdk_api" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b86ccfd83ad829a3666f84aacbd55e60cf0044608db9b1dfe890b80f0bafe9" +checksum = "ef5c2ebb2bebee2804153fabaffdf0ed19268d56b814fec5670f0207adde625b" dependencies = [ "anyhow", "semver", @@ -4834,13 +4834,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.5" +version = "1.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff" dependencies = [ "aho-corasick 1.0.1", "memchr", - "regex-automata 0.3.8", + "regex-automata 0.3.9", "regex-syntax 0.7.5", ] @@ -4855,9 +4855,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" dependencies = [ "aho-corasick 1.0.1", "memchr", @@ -4887,9 +4887,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.20" +version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ "base64", "bytes", @@ -4917,6 +4917,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", "tokio-native-tls", "tokio-rustls", @@ -5481,9 +5482,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "starbase" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc2dc5364b3a7b113afd1f3d609edc1ae4c9f742f345949669c7ae5b9ac1944" +checksum = "0ce70d3d623e4e26202bdac9fedda7f6e91a12c12f98147eaf2e624c7525c457" dependencies = [ "async-trait", "chrono", @@ -5692,6 +5693,27 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "system-interface" version = "0.25.9" diff --git a/Cargo.toml b/Cargo.toml index bbe61df8608..3a3819e8f38 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,8 +28,8 @@ cached = "0.46.0" chrono = { version = "0.4.31", features = ["serde"] } cd_env = "0.1.2" ci_env = "0.2.1" -clap = { version = "4.4.4", features = ["derive", "env", "wrap_help"] } -clap_complete = "4.4.1" +clap = { version = "4.4.6", features = ["derive", "env", "wrap_help"] } +clap_complete = "4.4.3" console = "0.15.7" criterion = { version = "0.5.1", features = ["async_tokio"] } miette = "5.10.0" @@ -39,10 +39,10 @@ pathdiff = "0.2.1" petgraph = { version = "0.6.4", default-features = false, features = [ "serde-1", ] } -proto_core = "0.19.2" +proto_core = "0.19.3" relative-path = { version = "1.9.0", features = ["serde"] } -regex = "1.9.5" -reqwest = { version = "0.11.20", default-features = false, features = [ +regex = "1.9.6" +reqwest = { version = "0.11.22", default-features = false, features = [ "rustls-tls-native-roots", # We don't use openssl but its required for musl builds "native-tls-vendored", @@ -60,7 +60,7 @@ semver = "1.0.19" serde = { version = "1.0.188", features = ["derive", "rc"] } serde_json = "1.0.107" serde_yaml = "0.9.25" -starbase = "0.2.7" +starbase = "0.2.8" starbase_archive = { version = "0.2.3", default-features = false, features = [ "tar-gz", ] } @@ -75,7 +75,7 @@ starbase_utils = { version = "0.3.4", default-features = false, features = [ "yaml", ] } tera = { version = "1.19.1", features = ["preserve_order"] } -thiserror = "1.0.48" +thiserror = "1.0.49" tokio = { version = "1.32.0", default-features = false, features = [ "process", "rt", diff --git a/crates/core/notifier/Cargo.toml b/crates/core/notifier/Cargo.toml index 1a7cc428d19..fa46d16da0e 100644 --- a/crates/core/notifier/Cargo.toml +++ b/crates/core/notifier/Cargo.toml @@ -17,4 +17,4 @@ serde = { workspace = true } serde_json = { workspace = true } starbase_styles = { workspace = true } tokio = { workspace = true } -uuid = { version = "1.4.1", features = ["v4"] } +uuid = { workspace = true } diff --git a/crates/core/test-utils/Cargo.toml b/crates/core/test-utils/Cargo.toml index 2be0ecf114e..a793a3fa654 100644 --- a/crates/core/test-utils/Cargo.toml +++ b/crates/core/test-utils/Cargo.toml @@ -10,7 +10,7 @@ moon_config = { path = "../../../nextgen/config" } assert_cmd = "2.0.12" assert_fs = "1.0.13" clean-path = "0.2.1" -insta = "1.32.0" +insta = "1.33.0" predicates = "3.0.4" pretty_assertions = "1.4.0" rustc-hash = { workspace = true } diff --git a/crates/rust/lang/Cargo.toml b/crates/rust/lang/Cargo.toml index 2bd2c2f35d1..9ae21e0b0a1 100644 --- a/crates/rust/lang/Cargo.toml +++ b/crates/rust/lang/Cargo.toml @@ -9,7 +9,7 @@ moon_lang = { path = "../../core/lang" } moon_logger = { path = "../../core/logger" } cached = { workspace = true } cargo-lock = "9.0.0" -cargo_toml = "0.16.2" +cargo_toml = "0.16.3" miette = { workspace = true } rustc-hash = { workspace = true } serde = { workspace = true } diff --git a/nextgen/hash/Cargo.toml b/nextgen/hash/Cargo.toml index 0d8c9f8c316..c4282bafd0a 100644 --- a/nextgen/hash/Cargo.toml +++ b/nextgen/hash/Cargo.toml @@ -12,7 +12,7 @@ moon_config = { version = "0.1.0", path = "../config" } miette = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } -sha2 = "0.10.7" +sha2 = "0.10.8" starbase_utils = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } diff --git a/nextgen/query/Cargo.toml b/nextgen/query/Cargo.toml index ee70bb86985..a27804767ed 100644 --- a/nextgen/query/Cargo.toml +++ b/nextgen/query/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/moonrepo/moon" moon_common = { version = "0.1.0", path = "../common" } moon_config = { version = "0.1.0", path = "../config" } miette = { workspace = true } -pest = "2.7.3" -pest_derive = "2.7.3" +pest = "2.7.4" +pest_derive = "2.7.4" starbase_utils = { workspace = true } thiserror = { workspace = true } diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 1bfbbd6bd5c..fb7fbc7d05d 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -18,24 +18,6 @@ implicitly or explicitly depend on the other project) will now automatically mark that other project as a "peer" dependency. For example, "b" becomes a peer dependency for "a". - ```yaml - tasks: - build: - deps: ['b:build'] - - # Now internally becomes: - dependsOn: - - id: 'b' - scope: 'peer' - - tasks: - build: - deps: ['b:build'] - ``` - - We're marking this as a breaking change as this could subtly introduce cycles in the project graph - that weren't present before, and for Node.js projects, this may inject `peerDependencies`. - #### 🎉 Release - Rewrote the dependency graph from the ground-up: @@ -44,7 +26,7 @@ arbitrarily. - Cleaned up dependency chains between actions, greatly reducing the number of nodes in the graph. - Renamed `RunTarget` to `RunTask`, including interactive and persistent variants. -- Updated the action graph to iterate using a topological queue, which executes actions on-demand in +- Updated the action graph to process using a topological queue, which executes actions on-demand in the thread pool when they are ready (dependencies have been met). Previously, we would sort topologically _into batches_, which worked, but resulted in many threads uselessly waiting for an action to run, which was blocked waiting for the current batch to complete. @@ -56,8 +38,10 @@ #### 🚀 Updates -- Added a `moon action-graph` command and deprecated `moon dep-graph`. +- Added a `moon action-graph` command. - Added a `--dependents` argument to `moon action-graph`. +- Added the ability to skip non-`RunTask` actions using environment variables. +- Deprecated the `moon dep-graph` command. #### 🐞 Fixes @@ -67,6 +51,7 @@ #### ⚙️ Internal - Added in-memory caching to project graph file system lookup operations. +- Updated Rust to v1.72. ## 1.14.5 diff --git a/website/blog/2023-10-09_moon-v1.15.mdx b/website/blog/2023-10-09_moon-v1.15.mdx new file mode 100644 index 00000000000..6db633dcc32 --- /dev/null +++ b/website/blog/2023-10-09_moon-v1.15.mdx @@ -0,0 +1,143 @@ +--- +slug: moon-v1.15 +title: moon v1.15 - Next-generation action graph +authors: [milesj] +tags: [action, dependency, graph, pipeline, railway] +image: ./img/moon/v1.15.png +--- + +In this release, we've taken the new step in modernizing our action pipeline, by rewriting the +dependency graph. + + + +## Hello action graph, goodbye dependency graph + +For the past few months, we've been working on a rewrite of our action pipeline, which consists of +the project graph, dependency graph, task executor, process pipeline, and more. It's a slow process, +with many different pieces that must land in sequence, but we're almost done. The next step in this +process is the [introduction of the new action graph](/docs/how-it-works/action-graph), which +replaces the previous dependency graph. + +For the most part, the graphs work in a similar fashion, but since we rewrote it from the ground up, +we were able to resolve any discrepancies and performance issues. The biggest changes between the +new and old graphs are: + +- All actions now depend on the `SyncWorkspace` action, instead of this action running arbitrarily. +- Cleaned up dependency chains between actions, greatly reducing the number of nodes in the graph. +- Renamed `RunTarget` to `RunTask`, including interactive and persistent variants. +- And lastly, we ditched our batched task approach for a ready queue. Continue reading for more + information! + +### A new performant thread pool + +In the old dependency graph, when we'd execute a task, we'd order the graph topologically and then +group actions into batches (or buckets) based on their dependency chains. Batches would then be +executed in order within the thread pool. This approach worked well, but had one major flaw: it +wasn't as performant as could be. For example, if our thread pool size was 12, and a batch only had +2 tasks in it, what were the other 10 threads doing? Absolutely nothing. They were sitting idly, +waiting for a task. + +And now with the new action graph, we take full advantage of all threads in the pool. Instead of the +batched approach above, we now use a topological task-ready queue, where a thread without work (or +is waiting for work) can poll the graph for a new task to run. A task is considered ready to run if +it either has no dependencies, or all of its dependencies (in the chain) have been ran. + +For large graphs, this should result in a significant performance improvement! + +### Automatic peer dependencies (breaking) + +Because of these graph changes, we do have a minor "breaking change". Tasks that depend (via `deps`) +on other tasks from arbitrary projects (the parent project doesn't implicitly or explicitly depend +on the other project) will now automatically mark that other project as a "peer" dependency. For +example, "b" becomes a peer dependency for "a". + +```yaml title="a/moon.yml" +tasks: + build: + deps: ['b:build'] +``` + +Now internally becomes: + +```yaml title="a/moon.yml" +dependsOn: + - id: 'b' + scope: 'peer' + +tasks: + build: + deps: ['b:build'] +``` + +We're marking this as a breaking change as this could subtly introduce cycles in the project graph +that weren't present before, and for Node.js projects, this may inject `peerDependencies`. However, +this change was necessary to ensure accurate dependency chains in the graph. + +## New `moonrepo/setup-toolchain` GitHub action + +We've begun a process to deprecate the +[moonrepo/setup-moon-action](https://github.com/moonrepo/setup-moon-action) and +[moonrepo/setup-proto](https://github.com/moonrepo/setup-proto) GitHub actions, and instead, combine +and replace them with a new [moonrepo/setup-toolchain](https://github.com/moonrepo/setup-toolchain) +action. Why a new action instead of fixing the others? + +The biggest problem was that both previous actions shared about 90% of the same code, but were +slightly different in how they installed the binaries and cached the toolchain. It was was also +confusing for consumers to understand and know which action to use (because they shouldn't be used +together). + +To remedy this, we're prototyping the new +[moonrepo/setup-toolchain](https://github.com/moonrepo/setup-toolchain) action, which has been +working quite well. It aims to solve the following: + +- Installs `proto` globally so that installed tools can also be executed globally. +- Conditionally installs `moon` globally if the repository is using moon (attempts to detect a + `.moon` directory). +- Caches the toolchain (`~/.proto`) so subsequent runs are faster. +- Hashes `.prototools` and `.moon/toolchain.yml` files to generate a unique cache key. +- Cleans the toolchain before caching to remove unused or stale tools. +- Can auto-install tools when used. + +```diff +# ... +jobs: + ci: + name: CI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 +- - uses: moonrepo/setup-moon-action@v1 ++ - uses: moonrepo/setup-toolchain@v0 +``` + +## Now supported in Railway + +If you're a big fan of [Railway](https://railway.app/) (like we are), and you're deploying a Node.js +backed application, then you'll be happy to hear that Railway now officially and natively supports +moon! We spent some time over the past month +[integrating moon support into their Nixpacks architecture](https://nixpacks.com/docs/providers/node). + +To make use of this, set the `NIXPACKS_MOON_APP_NAME` environment variable to the name of your moon +project that you want to be deployed. This will then automatically run `moon run :build` and +`moon run :start` respectively. To customize the task names, you can set the +`NIXPACKS_MOON_BUILD_TASK` and `NIXPACKS_MOON_START_TASK` environment variables. + +:::info + +This is currently only supported for Node.js projects, but will be expanded to other languages in +the future! + +::: + +## Other changes + +View the [official release](https://github.com/moonrepo/moon/releases/tag/v1.15.0) for a full list +of changes. + +- Added a `moon action-graph` command. +- Added a `--dependents` argument to `moon action-graph`. +- Added the ability to skip non-`RunTask` actions using environment variables. +- Deprecated the `moon dep-graph` command. diff --git a/website/blog/img/moon/v1.15.png b/website/blog/img/moon/v1.15.png new file mode 100644 index 0000000000000000000000000000000000000000..22cf321649fbd433b4f5128ae6f27f956ff67d52 GIT binary patch literal 1016689 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 z z*r(&1Wqgx&5+1`$RCDG3Lp=MOcohBtjsKQ=z1Qj2wX!Q2XA2syPac6}sT_lOkRZ-u zf_%?!Qb=QT&`U1mwwEoA8|EL8BPXb%j zJx%)(yEUL?f9`kXVCQQb(Q8Z@oZz)E}EZ;3|$qW8hQ-tYP}Chu-wU(~nxO3C3WG9L#NlnDXi zPeb2Gr0tz1)t86(K_?R=Jht;=D=v(z0G1tDl0xtwfa@V6@de=P3qKTFj7aV`c$dz= z_?}8IuJGdT@ad-rU;^|`>~KUPKe<})#9~K+ij(!Ox37pfljw34jvF0E7geCeY)jxW zo<$qh#g?o$0B`s5=@BrQCDM*Em)z>9!Bgr*{>UreU)FiNG=uz;u<$KgS8H?|E?dbo<3I# z<2Q$U+S{o730lRW8Qo5_#pQcvt4S z6e3zXfCl;^w zF-e%TST7Yf(xZ7GH46iLb7YBu$xNb0!C-Yj~qc{@;8= za&KNEDvL|`c13jN2RCQ_3?Hoe-^BqxrGNGnu9e3^TF}lM2H+-qa=2rz9{)}a!{@@j zmb`=x+pwl%+#~OaMO6GVjfmGzstKMqQCXIXe;OVYoOS|LYAWW|2HW7^bGX)>9RH~5 zCLdz(MwiYheB>lCyBy%eHq$82ju>{9)Dv2hc}L}!XmsIAKWf>tR8h4at0jAQ-3#mq zN-3HZUyp|+Ypa$1#4enxjGVB`=5(9mpYB)upUy@Y?XLPG``V(95&x_|ihsqb!k6-6 z&wD-onYcsA7=T_=Yt%;M_qOwxHaCs6H6{p0nYK@lHhF)cmiV3r4`u%dqp}a-5ZaK3 zDdr@6uncv*uNoQT7s`iqU4-9;T{B-W57arv4c-rdm{){G#sw%q@8Yz39K*Oiv*^)(1V3G9aEUB5b?3^IIkV7Tw{R6sC|;?I}s z()~l=zWaPd$#;NWfzlF%@M9lnnY{1-;eW54&Y|S^ z(`3aRegkMUT9-;`qmtdFd}M(ju3?iN6ZGY#x)$kPO8!knf-m8M7CJ)`1L@E1% zfexIggH}-wDGYsK-6a#)g89C}Qc|?W3$ZVoCiIdzWz9M3nPa*(18w7ha5QCh7wS$U z-!1m@!n*N{)45qqyMXf1Xy%K8JQzzxyvFF^WHSy~A2Q)L<+WdDK17>V@pC*v?s0#9 zYHiEaP8a5e8j5GD9Kug_U-rYmrihWmVWEd1BkN4_5O2CF?{V%-Feli(?cD}3odnF} zjq;IbW2E3MHx648`S8!$lrluE71!hZ&K9hPZG@1OaZBUhsK?o^G+NXQ1z7o(Q!W!U zvJ;_HMBAokW6l&8WFr){5D|-Toz{F0QH<11&YIDP$#|6b|4RKhj^?w3&s=-C@4g$n zMOS$!>og9IdQ7mXLR3F`exP)~@vj5Y1;YB753WylSmQbP8`ON+JjEuoHJqaRR%mH4 zjyuWX)rl8_R2=fu;%)E?#f!Y^MXazy>!4ahDGh7)0Y1+hslHURt@N4{Hz6zA2Ie`@2h9ZkksnwZpb;> zm^1$OwoE(O5c~N?`F+Ded5Dd{GMQmLwxq#$MmZtu88IIHtp!!j6-x+I4-5Q)s>xf; z<*J8%J&0D?aB1YhTgwFybW1ei=wb?a9ykN=M$N^H^*k=_7xVtzb$z)QI21FaztKS zMv>Z}UK!yVrn%HYM&l|qOb&9H4O??yE8AWM%>@3%GnX-u%nW?uJI*)JZKz{vK- z)T-}dM}uCIF62zSZWDIBt`|NTF94wIoA)|>PXERBG1r1sM{y4;JYnBTS$O@Xt%JY% z9?x8M zPmf604Sy!|F~(aH-)J|6`)~p1xqMFe_k-oLh0b861$ib@#M1#jXmh%Z1s~Os4<7u0 zd+1SyIwSyWmra2e@P5o~#h?(j*!qKEOM+u&+3d2cODp9jtzHSUT6s|FlXUC*?h@MIRv}buuzse)1`F3f@3Z)P{FV+RhDv zE3flsdV@|zp2zRfJ$v}aKV;WxOa5hsv5`X&RsKk{TYP73Hq);{bh4Y#lamAh2E~aQ z!>Fz^34b#*=f2`_!)wlyi8JKaR~YQ}+>VL6jc-tFSh!YMko(y$m;iL-Gro2}HYS-y zvwF%ZBmOg7a2&b; zN+)vzxv_D^t!Qb46W6X$^lG{F`;&RbHvoY$G(Y0&ZMfKI@Dk;H#1H)jCO*X%G^QVB z!fDW(pJJH)jB(AtpQb3(to(mmOJxD&e>BWn27Oq!k?FriY4-|$)j9Z+G=($0Rt#Cj zyvmQPDc`y1n{KRKQ=b%)XAp^hztMU!Pq~B(l2CK$Wkwaa|ZII>|1M@-15V8yMwKgLV?p8?IaM$fdTQ~lpr+U(K&>EyCn z*mLOzCCll1dZN9FwHU~$y@Y@fVli8Cb#761Uvc?vcMOzBdBd~Rr zC|MZyC61EGg1c|b|6svN=Cq0*^4@U6%g4r{cpXQ@e~rR9j}Paw+xWNSm1kvznb*6x z7QBUTUoA>G?qMsZF^;AMk1?^>CwA+(;-}th4%XUpt>76ZR7F~iuOUV_2Go2@l5lL4 z`DCg8u~?f;j(sn7Y^|Z4fIaGn2w zY>XRU?Idw*A`*PDX<`V}S#tAI#zOMG)xE}yAHVe8AmTqUlQ%>({?#cc{(bj%8OP|W zDpKdgTZCOM(unvz>#R6wak_0Ec;&A)%e|f3Ebr zKsaY;@lQ#T%c#hc;d?dFa>~}$V(2TvszYUF=(=48joqp$@ z^EKwZ+pP3k<8b~6oT)KL#v8xjCyle2)Av6+F%S9_Gm5DvAlpf{%q_s_N?nbd2#wze1zKuE{=Yk z^2L1q*!kAlm9;F#$Q;JL9Xx~|vtKm)>c>`R^L4J1v(?FqdX<<&)1UjI&y*0H>oIyq z50mSUhhjwUMlK>g#5m`!IaQfF6$k5gV<&u_``hFv7XM6YRUAJz!A|dvv%K=dDqLeP z+9xLFCs@CBIQ>PZr+ce`D*ghi_(#aE{6lj|>0e(@Sn(T_P3zOt@$qre^Yxn^D%N6# z96y~R>=9!h9KWswUS(Ho^T1wrRu1vv8@$0)3;LXA78rsCJq=)$8!LRQVo-9CFA+qz z5{!d+kJ#WmU!Kr&ID3lSIhSGS>#a_8p4J^+;?oi#dfChjD~9>eQO5USQ8pjrUgrPC zr%$IlPM`!@r#%WUJzdA`kD#Z60mHG&AT9|s*Gw>tXf|P?g3S*W(?o!I zIgQyNI7P&Jm!NcV1yB7t(Oe53{>mZ)=ZK-7?MOacpQh%IDKY;*>A45=rpGcUy+19| z7A*S_nkTI+OW+WPP0$^@O3;)xV_c)L1CYW;AljG*UkhLAdIHp+xD1zxzp1BnD7e_! zQIjWS(X@k8>jA_poX?jxO-MFwqLZlV#tJYkF=O*_XS$f z=MpywdyB$!)2_gipN3_f$O2UQFWra&O$NCf#+V7wv5lmon?Q$C3+_NaGHgJL#f&jB zWRIcy!zGERtxWKg$3)o0!?&gkF74-i)=%iVY*A0Z7G|=uwgr3kgA)W*XnDOS?sBn( zF|WTCn1C03B#oLzbUdN0*3@yYYbTj<@1yKo=$7i>Bv#097bOW|$YE5KrjBdC0$v(} z`LZU52hHe4O?sIN($TrkMa;M4 zS{n`ZscFPmM&}#~PIP!ia;%f`vkq%=%SM0$ZMun`KwJ|YF8vlwvs#eIMaUpT z`Y_U?_pyM)FiY!;UsWMuEy0t$U@b>)!|pN_zTW<9Evnt@DX6QVne zI0{^qg?W_cW=$osr1WuV;5tJb-*=9|qp7MXuf`E;sm)~E7Y>UTs{v@dr{pFO6}yXn zuwZq{ix^Sg^hGfBVXT;%oLB*O@DrZXG1B`4s!^0Dj7C zx@n9V@#cm#A!lq^s zuWV0ZC!2ZUgi9l+!h8H*l2EKH@qeqg?fnAcdARTZf&Rd2mzLX^(^=Gi7w6$C^(yl? z3ONcD5+HO*03Q8LlLvu1KX4Q;PR6UczvMPdy>h4oF6LU9yVQLh>m`=FV;#tEd9K4_ z8`U(f^ORsl;}8S@ zFCJ_xzF$A^EWCaOfH~j-zY6{ zM~>2b@K6TlRqBCU#CN_64C$JIe@+1@#gf;}F8_#0n{k1Ke_wLNe`mSr$a{{ZPKY*oP1Jis zt72f*u%Z+0kA4vUUJnMaK8j!0C+}N~^N3YPPT%%hUM4xk{?0ke#u+IVi(Yo>xubj4 zf}Mmb75|Qr+-ZPa5f*C5?$u8l5>TyYtv z5g|-sjJDZf>95#P_}b@}T~`m&P0qz-TaWuAu*6#*V@yp3ju0E1q#}G7vT~+1hp{#P zcL0LU+fC(ScoZ-4D`#)(O4Wwr8y^peyWuAQJH!Vhlz1_rQC@3H6zM!Bm$(6Vqf;_1 zLI{pr;_UH%F=-0lVuwcC)eQzCpWIQ5umu}ttmn0^6@G`$@gKwYL4@HOegNga=#wr{$m_>3-b#$?aNK&&zB5f{%wz`3rxn$pL=PYXcqdS1sI+o!x%s z@pYXPrj3~4*ueP&2>WD!QNMoOYtHNXTEbZFv`}j@%0%uM%a-I6$a;09iO<$H$1>{Q z+Y}8KzUqGP;y&qfeP-u<{;62WkMvIDPD7xlzs+!K0M!3=7X_;#){-}M9z zCt~F?b@yMpd zP(>4|M%5<@J^yS_xuZct6SKL|U}T64N{9=-Za+GKHw~=F9rSdbFx`#$t&`@N>2$HWA zKisB#!7@P@X8eotk6003J*K_Azq;6c(PD&qk(Y4Cw<}iUn5?@BF1`-($+S! z|I7qN>&Zpam^GwdY@!w4*yW+N*6iA!j1*!FgQEaI21CUUD2}b(7vO;vtA0q$ts_vx z4}|-A^}&{-VVSk<{(^%031qgVsn*h1@=nGdwB}^}S=rh<161sJv0k!K{@2`xk=LDW z7KAz&BfKStgyJ&{zvsWOaZXfV)ZU2K^5Uro8fSQrRo37clIrdc9V2}t6bsvdqKu_ZA^_?wM~*2RDi@{ z@^0d%+R+3q6&H{((HKDn7Z(nkFu9(}dvkar8)lpr0=)lRlxy=mnYZeH{JF5f>0G7n zk>uEYuYA*p|9ar9^?leSV=CwUuNMLfBWySXuKJ$_U}3)Y290&6oT}vlJJ${S7Xeg-Qm><| zBi*5=N$^lQq}s5gP+s#Q_d9y` zagUmNi;3)UFwpqZdeLiciad<5vozd!_rbv7K@_OKSTec|_Dr{1dYT$tVxo;(v=C!fI-pF->(H?s|(~TgII_PuV^#>@&=q z43j>Zbd{B+x^XS(F}Fq!zY)j0ej#$>R%*!?Jg1KQV55(v<7IR?+j8;U<~)TRlOwKg zVotpsIuFJw-TIKk@yV3^%ip6$Xj$=i^P7D^s9g<&@SPaCsst# zWyC+%%!&v10?wS%8{x487#k|+W9Qq7_SMG0lfXU!t%Y?Ri^Dkp0Z^PZ)2E0WDvPBz zo!;hYAPquGUFKJfwXfq6+xjJAC9>&+l{d@gU_3?e|Kd>{F~6gY>>Tq?o^Y~)jQC>z zNDz9nagD`58ho-phXCFyaDx=WMr||Ug)A53Bp8<6Q!&MNfCTx8r5(aD>TEeNe;-e9 z6!xN$Iu+lRtP236=VwO21xdCL;KSN$z0(-EB}hYa0&qr2qqv}1k&vS6Mq@@;OKx8n z7`_0tLD;IRGA&1iAjgu$JxUtcXtIH^VAc@8q|mqQ>p2?9<4$yRsN_SgIw{{(57Lpk zvQlMYj}cG%tAn>W?8Gcjw0m-8{l@(#CE+Xdyh|%bXFm^_tcR>lmzRjJQW^VOB%3S- z506ejwB$y+hkv!2B&UkE|%vMfPY?h5QZ~$zwYaEN7a5macoP;e? z(%?76p!h%kt@d%!5zrlN1h@Lz(j{dxvH#X5;@a|B8N}1ay<+OaQ42R}t4~jXvxj%F z2lbc$yxAgLp!P=NaQ+wEJ}OO&KusRD_!rv}-Wt&=Ss}ca-tFj+#^9h#@&?Jlbt)&@ z)Xi8&!VnE-Htcvar$P9*zH9k!$<4u^k@Ok=D0`Sr0BR6`Fd3rr8o564m^v|#%{BIQ zBfaCno$L^OvVS*87&Q=v>#>$m9C1lFb;a9FhXCG155XA`PoJ{Bf|>EtaEA5jOP+AT zO)I$z)iio_-a3ccV$2Vw&c!yu_Y;T_uas;?mqV`P0qKYHzLT%rU{em^5~|6!sNQV! zW|@2#S+sEcnNhK1sVf>TrlQ|^bZS!rN!zoboPnt3(n7O!-gUwF<>i|(KM(~)GgrY7 zy7p{lbkE{n@AH5917k!%&j=@C#F}#zW{DQ)-{N&r3!Y8*PFb8DoQmWmu^qI%4}DYr zpVMQDv`Nn|&YvQT_I1vSc`+UvUdb2hutWmq}vrH3d<{`*xw#H!a$6tG2 z50V&pTD*D!fm1v>vlsepCbIL7hZB-K70j_dlR*GQg2qNW66RarIPp-pu6`{?4WIAJ zmW;*RmvVp%Up_5Sa`;T%bm*$DP<2H4D#|$<8#1R${JirL++t;LBl(~G$d!e(G1o-7Rq1!DdF8nm2fp<>4l8i{j3;hrV z{ro0IB)ecX^D_ky|0YNkB97qbQjleoyVq0p-I?9XO)RfnOjK>qjd=0E#>_x5Zdp4` zxj143P7#^Lf1$+SDRl25Yi>N4$>h0==fsOE&z6eJ;OTPaj-NTvaB#uInb2b*bj*hSKLWB$sz<8qgeTJUG$9q3xiuxTc?|4^B!xeCPQ@Bs!hoNun)V7 z8Ao(8_Qk^8YG{Wjpbe99asCJR6Du8Cx{c9F`_}e5(y1Z15Y#GLw;w_zj;_ ze-eUD7-^J?F6LysK2g8?9wPajQ`XbdTl}|A(oy;|^~58^kty_h7`ekYgT|0vNAmEf z!a3j=&dv!;9Jp92KhA5;frK9HP75l}s3qN1hRmn**6LcJgW^M9h=}W8Uu62yj<7oI zP^e}qw#0w%H!$P8AF*w0XhVHMKDEtQ$I~M>qiV>EN7joe#-=)&H#V%O zYnNVllbz!^XnBv|StC;QKSTjmtkPVP5f^)`xQ?W z{~4czdAasjRLcY_xR8**R4h%3vu@G>1kdx+0q}uML0A84DZ>;dc7er!gwQ93y8jUm!?nrwU3`VsY{=EgnM;^xk-k8n=ou6DQ11 zxOk_}d|rA<8NISpE)1q!9hI1j9EBGKjvey52RqN9%aGmkJ*D!>z3Ao<$cH;lSG@>pLQEwtCNZV-WpQJ;M!TiJN ziGt8UG&W2L1B?KD7F$$u^)l&{B%cktxpMr{P7wKqFUf$%D_Qz6wbLYhs-?ZYuDV&i5wR9+G0jN zMI>=s*CMCML3kWWjpEr0Z5m%ho6c)9n|QFstJgiNWZ39g(Ss?LV8&I3ztK}pArAd_ zx3D`74vh6C>zZ`iw_&}1dXJeOqlQN>QIBdI(cVgf^ z{_XTH+D0-_kF-?q!>|23S~?2PoUzXJv7xo^huJ675FiYWo z^cSAxJChp^UQvo=9BaUyYpgyo11P_tbP8RtuK_5njg%Df!WdA;VQCNfFeDHsS-7(~0etOqFN6315i+|?` z_D(9_aovg5qsPZ12aq3VJ|N)N_4v_29w@-$vT!SK&v_&-HfN0&Y!TCG%TqW&lf>mr zcn3hbtCMK?$q`g`HJ5WcvZlEw+Cr>&`WrjL+y6*1v!P*){m^GkLN7INBNt#vIh}Uz ztN>mjseM%jnx7akuO@BZvzt4L>Oly3C@1i!ZZ^ZO1}KcwI#kF z;Z&04gvv`M(b4f0lAB(@3u+Mwb*=@Z9z}m1jA}qHh%|XX+GckOhle-@2+({aR*ot5 zyRC2oVM-(`8~m8GbxfJLh5RN)Yf+N`R4g)I$5x@63}a5Bj5BDqvHJv-aE?Xq?C0Fq zt8dV+g#(juo*vl9$|l)Rw%^9T+%UGnRo1)7_AU!l^lWR}<--@zKNwx_%g<#I+~Zok zzvaWpM=s|T97ZoXx$n*~@qHrJ>7fBIZ&ert3~8{4*v{{Xl6=ba?r}8abJRoi12%R`EXy%0s+=l-ud=>GvC6QDam;7aE)om{-%EN;RDD21`bA(QPn6it zW8j#8Mtm2y$b2)567k{4K3U#@79U9U+$H$wJ_pS6e(Ea==)|YI0r`F)vkAV7s5Qxr+abZZ$ z*$>$uyl~Q!qF`^fnz$`vJNXp#GkkEK56A9vbo^g>0Kh71m@HG#Wcac+0| zI&tEQN-|RsUZq39l$Az7VnB3Et(+OI*I00ke6_`4<{~I`O!>nvjS#Qvvu5zl*Ch`` zey#If8!$!IJK8-Kx!;$z6;9{95p|0HH(!;Tbgf2p1n2laU7dW^yw~eoZuZPYw7UI3&sbP#g>UZ}F^G_IbC~=H)Tq5!a0}T!C z-T70|8gsjPeAMxMZmS1p5bbw+gj_D*gp9s3oJohirBH-;jST1;+v-p0|K4&Ng*ni? zw_PhwZevE?kN?O&dhU%p6yap&o+W+cSh*^G9M1*dYmI99(y?``{rHPV>_d=5?Vmgz zpXLn5mdSsuqXOq0=11cnLF@JZKm8y7mow-_kDM^SZ;=~2BV{lG0#MFe6w%zr_=+h_ z2AY^qrQ`Cr)NY8^gl$fz-3==L8EbprKP-O&U1c#&=$Eg9@9{Oi zVdjpn#Y<36CUkwIe`Lsq84pB+UW|N*`+2A%0+`yzIJjZG+lJ+VH6Mg#i{{(N%{^B~ zvF=?)ycXfe4{G0)>7vF?)OhBd{~Fy!h|1x>2nAc(DC;s2QW%-t^Pc-hFoO(Z1Y$*< zC-N7~JrtaHl!~CoQ`}$t)shcj7UMP~Zpc>fK&{xF*iDnPwZ#E0BBHUx#?-mmyN_=8 zWF_XY2twhfweNR=dK71+d*yi>L*FZ1)$jGr8#kqm$h{98be7Y3eBvB=)k4t&EnSGN;mAMkvEq&w;(Zj>pbmJpxw z*8Dc7eIsf$=&e>qn4#T9IN;It_`hxlp5o}~^u2xJH6hBD>^}1vfYGjzl6Iv5NJMyxh>i<<$l^@U$RO&2 zc4r64cxOB2hjpG>A3}dEe|*j7w$1g1xZ&C>R`IRe5Os<>BHrUsYK!i)<#gqT_{Mts z=LQ-kUY0+xF529HV&$Uod4zodtT_dHCt=;w=ccyrl!zZ5(^935mXmvDj>VS$GoQGR z_)mUX{r0u^U%YK?!E)cdVo;bd^%<9KS1!n%+n`ZHOSgjyWmcEG&%VF8J{I_BP?b!n zuSS!Kv5u`pqA#RhgKPdSOzi&IW94hdfJDC*20Pc@EL$)_HPhXoUbON}DrmEbpzxgT^lVK=V+F9PUz5s~w1_9Gm_j zf(EZ81C~Q&7aznB>-3ns6-M;VQ|iML4>tDab>)-i8SKGWn$fDt;t+zE8{UysOScVv)kAOYEd~T%Z6# zVO`*0xdvJ{fu3`Lq)!0u?kB^+#72U+`;iBJT~1_I4NzMcz&{f zy6d>vvIGtsagyIDx14CtgdUR+ejWpBl0UMrea49%PsVwPJx`jI78I+^6i%^>#WMDI z(Wj!A*L}g&=$}0A@!uI}2N!LL_LTD{cG;39NdY`uSEZ{Rt1(-6KUlX{nz7CeQM1Gu zZquJUOH-2$_#PVXvY70JkQG2DwiSFxg`PzsGQ>A9R*CE=Akzt0e?ZhoVT*iqZz+z( zKi6^un>r|;v-A&;Zav4=!+Wj7k`O#aWb;#kN+|zO^>(EcQx94=x)-_B}~PapYR1U274({HrNYlJzVc#HAv zK7XwFe{E}cK3Q|uIah0j8U4x=Q}>fXS$jI>qoNrp`}hK3{w&#`K-}$p1Azj$3-cseNpM zuylgy#xjt92$V&p>-oUSpDkt%+A=ql$6R)wTlxG+vA}*^A$f z0V$UgWzX0l1SmQJ9iQhh`{oDJo7auvEuz=e!IJ{#Qg^72M^0vA2Dj&{;8V}uf?VRP z#uML**E6{H1TeJdG=xDvRp70k(e=t1S%28^XB4iLdWcENQG(#f0|wt!%ktU}tpk8` zC-c(CQRG)nT=o1UjIJ5>unyR{J(_)Ykx_h<$s!OyAHJRFQ>NL zI-tn&&$z5H&+*7Id(sFx+3sLHV=hVcT665)P=Z);aR!vgGnLAVDMvY~(iOy{=(>zJ z;@z)47mzw>kRrbW|C>F#+M_E8y46?ph^w@gl@KIRuh zxpWD(FXNCIl})B{%cTQ zZt{a5B4EsnpoVb3H5MNa#sbKB`4g7-aD>16B2@qCqDK@d(KW}RMM`5HjQ*uS?*!;j zeXuY9YHet~z4UxSJBYpM7;Jzr53o9spAOuPP@RZ5&HJnEJg!r}}cl-WC52 z3MYyG5P2RAC!|jeoZ0X2&*|92CT+}{V{GiDm%GGa`UVK-&WSEKV5D0HTlMXlNIAT< zEqgj@d|Aw5yd=LG3&YOLKx`CuB0inkSQk}#94-0OaV*3rhJf!NA_0utah zcV8SuTpQtO@fO;-KD9=8i^8d-WuM2Y8iB?^QvfOtWlIX_My_6H(px8-MV#W9XtrRi zcs0^(we?8Uof~VP3{jX7o-@BiJ|(?!1(Mv~uc(j=wICa``q{;nk6Ne}1xp|7nkjSU ze;16*`a_E?G}x1)*M1SBU9+73<9$EcR6u&mc;}jt?KA(M^F;Nd9*$gWV|Zae6bR9F z&TSyILHDhSTaJ^ts30iC@psb(G-khPJ#M1qvutQ6-4GS&&uwRXRG?mZJ^mgw(2Z{^ z9Gl{**QhRXuyBQM`B1>nrM39iMc(l>Cr*n&dI#$#Lrhz;R{QM0C1X`Td7xoAGG@W? zzcoB}TK%7$C1FCb@x0G`!F4f0Z|wHXuT0l>di=+=iv_CxyUQMjsrrlPNL!vwTK;T6 zvPS-*wZ4NV2? z*IXIDbsx~VR1#W_yV5dde;Pan@f=%X$;-8?*Nla*F1HCMuZZMq)7CB;w{j5M56+Fs za$b*Ey7XTU6h!?IzxzvYDMK2)M!k|L`n0vqAVBzK)oA#~>@RWYQ#Otx_az28_`0|G z2V<>CJAL0PNKg*G{xR-~{>Ibz7PZB3p3MKmf7XHrbG8RUZ`aCX{JfiQ{VBa#-BFk< zbvd*)d{~QRI!`$7#y}f4amSlX6-kUOEX$*Tk#(nOZ#hm~Y|_^|S~8+BcK(A7=HbZL z==I~ng=j3omXQvpHMkSn*cH57{AK%;wrRv8aJ-^hHbx@x1riWxi3OWuQuNkWFzN7l zWYu6h!eASZUyB9YOo&ofBW9eHtAoWo@qzkSE~M}vy(O9M0W_8`jzl`o_tKth&-%t3 zMuVKd%)R*#jc)?w)t3A8aW{QSaPmEaW(JkDiVGk2#+&5XmDb2`zf_sTPNYQ#7vk(dH6ivp^5{;P5O@5?PyA=xY&@V+{lzoE zl9zpXxZtn&=Rc_PeK`7)n6>y@9I{Vbu}b+6keJiBrE#)7^`l5HOmXVVix)1FMaLdf z@;=5zi+_6W3E;FzWx83%8;3a zLv+SQpIHx%wT@!Z$@aYXsv89y-W82qQCD-IrPb_nJ~y|U>~o)D*TSZz6OtXhT4Mrh#l za1Q7DR!;@o*FD~3T3izg&+Xi&jC*}gXH1(@D`UWrIzkg z!zhreJ)GnQ`ztFYFb$&fqFHv>nG# zNqe#=$D_R;@MD}Cl}dV__X>*g0>xt4XU6QPnR|;c(D`lIz*gC?Bko-2y3Clq0mhz_2bxa@$-7yarhCGKoI85rmxxKe z?Z-FAhAaI5d6urG_$T=3?UV0dj4l}=F|XKGZQH3Aj%oZ$)fa4VDm?Pm>m{Qd7SuxQ zPeII~GH&|J`{SMqUUE#GkgNFjjgCugU|`=ZZ`w9IeBsC0k1fqY^unLZFY*E?zOsu( zs;b4&;Dp14>O7rOYt)b*N5|l==lv$9t7##)-26j3VZ^_?cI5bynru~b^Y3F=S1NTiZ+%ZcU+6mBALBNQ-&KymKs*+3i^z?n@rA{sm^OU& z-*`y6^vXQ34LG9InmfZ?E+a=7cDd;zUTTx~Z9GN_|D*skpYzYW*b-6U-SNjXqn+62 z#@@CdYj4;6A1z+m<@NAo+@#@>1f$5{;w}=;yX#3{i4E}=ZVhE^?84{JF0XWJoF7QS zO>G0Q3xZ!QBzV!X;nBf9<6MAk5h9Biv*yl*!O}RYLoBA5F_1#SJPHK~(@?HK3zv># zPR0oSD74dD14qVzcozhUP)j%0aK1a6SDZ!gh>b%Yy9zE*TnAi z)hc|s-d_$~dN;aV1%53?Ge6lWm6|5o;#w9kYOK^zgFYWVAG&E1lPJzJZ|S|Ib`lwL z0&Nu7m_9N@B3^4a^_%Ry<@iH{Ju6%}iW{dcp{)?J;;{U8#DB_&rWR}GW!rHd^>hwc zCmbftetcA+W;YWyc1(xHLiDRA5^d0TY&r+|SGF)>+3KrDc#$SId{6PmHAyWL*VA}h zI&ht+9F%Muey$6<{alV3EH=V22E6RZ3s|=)RfcYv$XN!<+~Mh%)Vjr=cf4tW6_yq4 ziYbj&j{X`wjj@2{99}6+OZR}ws6t8@J}R8EXz1|oA|o9 zx{oHP1X+luKT364ei}4~$NOyz@&PGcdLH6Hqx_$>tH&oM3d3TMkil-OyqeYu2P;Qj zdI-NVv#nutxK?rB-G4cF3SRSyx|S}48U0Dx zl#cZGzI`f^^q_`ONa;04+$02afMPvkWK9mY-|)p_e5$Ft2{yDpv` z(41ZvPXaSyoWoG~F^BY*C37)c)`u3lwZa!_Bd;XOjq8Xi_$iI)pQ zmRR;k=Q-D{>Dg%B7~yWJpH%%2Uh&dLTdVwTAVEC6)89V9b^tB0U4jZf3}~zu;xB8l zruXnOnQsPsRj}mc@VPp#@h+clO6f^3`Khk`_C}jmI~V|JaLP4M{F zMJ}cjcv&)f+SGC!Zw0}S%fl|pTk&Vjc?>)O><=B~gCT(p5w=WX3rD_x8ay=PFy~88 zsg8kBE%$0kxbS=0omnR@AHcF)^BdZJqlKQhd!P904epeB2Y#Op$#g#N@ucFe-5tHH zy>0fvj89vF<+iveOD7@M1XVAIxN1oWRkIxwezUjCD$GE3Y@{;eL z7oG5%6oS4K%Ly3qm-iDk^_o>-!E8=#YT=ZHjua1vF-qy&JFZDf2KW%iDs9>YgT;?zm>;h+NL(}oar_DY28VgRJb+ZHZrdSp|tW+GFtP!nfg zL)A%+_vu@Q$DWjQ>}(W=_w=tfG_qAB)XARkM>gH60blH&aKfQgj!?oxN->xSEUFg(PY{W15RWfjtA-ApRnVNHq0CNGd zCN3_6GM&=Rb!Wss+Hqp9FLIS8yI?3A#00@Wg(}M4kS3uA2Od~bVjv&(G0q4kWqn^1GY_Z3L$6NubLuC$!S z`Ks%V{oe-OIQqnpUDsQ`nBWxFLh`*s^_-(P6GoG(JLA=+;@`8a;%oM-oGaJfjz;cn zCDdX-jz7*K!F%Bhz?K~wUtT)Bix<0d4q@#00?Nkhw_iK<{Bph@`ov>%StSSNTBCEAes2tk4h(YZ*7ezh^H7jn~XL+G&O*G>aV0@=yCG4to^)i4j`uF86JCww- zS1ucLyzns2;VmCy92#$=M>MQi`1Ykh)+OnhT|_<4?rYZamhFqS8m-%P1KXv4-6rQP z&PS2cLTCJtz}STBPU0#hSfi>3V>;`MD_f6xzx)@;#;S%|t zt^QxM!}Y!ee?J}d02o=W5*65G2?~xbvGT_FQ1))M4mYAao1ZMmLFtA1acvP}a;yiR zJ^#n+%p)~Nk5}ZmL(R=z%rbb!J0E=$y~l}=4h4nQxG}{hZ`MhC`}7w%tjj@s9tlEk zMNZdrSWm%U*#*rnX%RS*z#;Ht0El~;=Uq7DjV^%V7KA6j8ndDMoa1G#q51#&|Fa1e zHm41k3meK0B>rRIG7rg1+RbrmK2&}P!AQm<&H=%VuK;WqpSsxE;dqc^tu?Yc#X&Hp zzC95j^in=lu>y)Y886hBcwe^WwKtg)F>SgQSmty~>JgA!!h)}^XegUG`=;3vYEHgY zTzZ_nj`|E4o-Z;hd0O0 zNpg+Eckv`S*oSHedw<^~LsLxv$R2#1izOHjpUelOR}ptwx5ViFL@vHrEvA)vOwvqU zV@ou9-9USlypR*Wx;bQv?&!XtDda-F zy1I7`5CupY+?IIaZjzS^a_fC87OF0l=Uo=QfBlY$+Q)hPFxa`4zL6?cn=Aeme#giT zx(Os=D7Zty1Hr6B%c zLA86c?YZCw*Szs%Y^Ut4h7YW_4ulXzpbyZzj%z zV1|1^eIgoo_W4x)GjEf08Ma)Hzd{o&&m(iSQ+%SuMr;UqzjxTK?4QGf7kMiGBe6T$ zC!S~Qe+UL()%NfixvC4E-8Goz+cHlV{Zv7N%p-Pg3jQ-bTGhY2G3g^YW8}2(kMcv+ zN5|M0nq^FOddRVXpyzR$q8aSIp0*}Fyl+c`WT0^x4o5(~cz#Iz52{5g@cDrNYa-p| zf9eOpl7_+DKJ;!iR&7X>?Zs2u5K8>I!#b)P-rfiQ<#M0$E!!%_uw{JB%cjn9E+vL; z;SX0|iaDQWQc9Ck>dag$n@M~Rbjc!ooSTg!^v&_g`nYsvLP6(u!C*a%)7w0s+e3x8 zJsdMeldaVs1D`MJX{|7ciywH|J7Y0xH>AGfw{vw~9?FM?Kb_Vvw803%a6smWah>G? z?DJGOXdJ^oI5v|`e<+grx4`HR2{FWqpBUjZnoXQF5D(gsUKrPJeSzmCw%uv6B%?e5KYRTMBe1hbFAy$GXFPEm zx>fbgamqYjWc1CnIh!4h`Cf-YKD3*m}(8)MVQLXChlc%;hVtnc*YSneD z!1AG^hC5`a$86cWtvkTo(XH^cqjS0S`5K*Dl(n7jI~j+}Um4dwT&DogF#z1Kdpq_W z9|?ND;P@I3e-3R1=ykT(+VPkh9~6LBf17Q;l~?}-LMf`;)94uk_~!9=VK$Q%RiRQi zb|32J-rAV{=7JW}m2P5u{{=eAgw{ap8iQ1LHBR1I{@1ZH(blzXGXzbnTCl)Zx#phv zlmdJW59e-Ye9yPR7ZnI-LOZZ-G;!`BI@U(6#n67I4Es8JKo{ZM>8W*-I$*a}Wsp4u5ZxkV>Q%L-7QmJH~{%AKu>N zBA9cB%QhS2aePRjn`7D>%|eeDymfXt4r*cR@EWZW=N02R#3*4M<1%R#C1EFhb}D)d z(66%=>w-yu+Qf57wuE$!V^q;;8&1$Ca-!(9Qb~ID`xolMuV>`JUCIpJPy!ot$T!%?N3gHP^@HhvcMN6nh@`6alt@VXcS4Pc-b5QsrH#yFK-ta3I)ZGXE zB)v9)aq`hzkn@EHgkBumqF`a^=+)$P^vzix$^1gJ?q+hgNVF=1?qnI+^T zmc@`KW+MMv4?*AG8~qpjS&RYY(asIdpY`f(5NB$6ui{6qMcnti0B;y?6u5`UoQz^e zpw4bBN}$ya5nDv%;3WIm#lNrTg~cKJ^gGY7dj7`kG46#=rNUIhx~bzb6{@^f=OJoh zD?oXia6kcI<`B|xEV6jkNvwmyin(CPW37=39Z>!~#S&ZuVQ`exzi@C>cf zLl-mjl^2KTPZwljtlbH03Ow6bJX`>=mr2LURgte!H_gmlU*ZBr0p(1a&JBvk4yiRk zvR|%8+qaVc6&DlsGXGCy*r#_?o8~<-5pT-p*bXs5&)aD6_7Lpb4$cFR^A$DN-OiZC zSB$Mpi^&8LHKwOLPg1VCjuZ8N8Qv-f9hx~aGG@{QbMNzie6@;eXrOoqwr#U$_!E6% zJ#-QgU-_IjKY*%NeD$BZdIgA0&^=DKBOe?H%aUFq?p%i`C$N%81Cs21Y{dDW<0NS^ z?Sw4OQZ87)CsorGwr39M^!as6@Gd<_pTGv{95seK(2=aWkbdj0WAD3R#Q-Vpt)r;Z zvE<=?%=v4b)ndOklDS)fSK{#`zKLX9jV44_7tq%u=L0na`?HI^Z(?bWENr2!>HE0 zJYv!}#-O-*u7w7&)-n((0a8<$&i}>S^!p!u+>N5@AaY!EC(X1IbSYc zBT(VwS4qMoGkksG5dG==4CDv!9X@&mrV7YQlB5N48dMe-fQGJnNOjk%E?aBTBZB|d zigN+Qj`4lyB2aF27$toO>*yqF;ouZtUd2!*gq45#^nsO}F`1QF3@SmqQZlO~_g3rlu)1NpUG|27w}-@7rziuPSzs#XA*{l%O{l%kmc^DA#wGTke^pMFVCjG1h3SD-=h>cpHTgdqk;!*i{x$S-aVBpkvLOzQ z|6;-Fm5guH&&eO_CeqK%>g$(yVcl*kY#JT~H8FY6zOk5RnS&B5P!s1n+M*J2n_3_! zJMbo1&tW`<6yg+{8J*-a$S5eiOI%pRG{>xQQUD~cu;yyBV&eIt7F7P%_I(jPW}2BR zoJP5vHF-_8oJLJ3^NoePy5;|hoY|KtI3fJN0Lp-MEeBE_f{~t7ohG75&3hVTmQq(5 z|J6tyJ}_JSY`&M{jPVriJ4$xjs!QH!Rm6#)JOpfssEYr*G-4(na8S2Z=3wQMH1kYv z@Ye6d?$>gWdO?^@Fo{k25e9OE49@PI7>x{Rc`&EN6Js{B%b$2K zl&urf`EE}TN5&D;jrqbmAHq4*ID|}lj7;)37e|B=5oE9&5}*i$q)aFsT3ahZ|J3dJ^A9{LdIjI%J}|_#dHZ^wmA?E5dO6JMk~$r*ChA z5LQzC@7X!{=Op1}7rWX&Y?FsD7VJ_L|K+iY)S>sN&Aqqs+NkKg!|GRD#a*SZeA2ni zCA3+~zW6Ge=cXiFfHGSPory2iFELXx^cd#aHQf9zD+-(CxSJK=SY$lhqS?#iDm>`Jx_(vy{=KwqE9lZyKuH%k+#*7#`#x(;(z#I-+1j##;uQiW4pi9;f=n1W81IN^}h_AzeK;k##lec z7C%SFTc1DUIQW@Eb8-)W&4rGc`!d-lJp$*fV52W5S%(l~fP<1>dDgUh^{(p-OHRDi zzlue=xUZ8~wEh53IEJ|hfQ`U)g4Aw6Zspmm>$J7*cA?mcC#(A{nj2F=f-I6MK_H({ zd5~tF?kTJ+dLE59bOD3et|Xz(lSOmXMN|~Xhxn~+7ywlSwfC$m*)d#mf>w2qCo z{vim*1pD2g#y75lf}XdKF?=ivf`@W@ie0LN%09G^?fx-sYOL@k({-Kd+}r-WkceU@ zC#<0O(Mo}$xWzr8&NlF?CXXIFVeF!6P=?T1nylTyU-1O^FON$x3Nhg6B;>< z#s1(6R_npxQgMKs9K`jK(bvwopn$@(WPb6xGAccV4i{gx1t- zx8yN!V{0RT;kRPK2>dS1$&b1niG8|Mw3s-7<`R#MT{AF zBYdZaztTAfo<7=id}5CCNY#-dtejSjL-waQ*caJI^DS57L&eHD>0HPY&JpDZ6th;F z+NQv(L-zd8Vp0}VsD0)Ij!&?E(6#i#o1pUB(%$|+WPVb*$9@jw1Jk+7g59r%f0ZegP(jT`xmS~%J#GbH|*V~y*K zI9Ffb_#a$*h-lFKe93KO`=?U}Kd67~y`+B>SH-?HNEo^Zz#X-#@A)fj?c3lj8==|I zB>&1L;i2subAi=F>$*>lW2Mi#qZVcLS`K<-D!eMgX{;h^&eJoyU*T^G6kcC>WhFp* zR{4sNGeOV!$g#;6QTmBmJRW{a2~4ZutefwAD8oR3ROkOZ^2Vx(I2Q#SBXm%qU-K2T z(J-RC_zIn7>kqzQ3$}1PU+*oEHcXVTy_e3YK^Y@S0bbrFm$+un*WSjcq>TzkK=df(~c4_Q)D8ua#W(Pyhe_bMc~IkN@FEccQ;^pI<`% z*W<5#RKaq+%SFFT7VRlduTJsQN)Ub`Z(Da(?|Kf_#F9a%ZjLU%+j}mjnnA-JYPNqB26Zf4LU06b4;?M zR5_jTl|IKK;nt5gzUo|iO#A6QmIaLpY{vh3RN#Ezvc>;l<8T5OTYmd7{UvWSBRNFX z&OM^Awreu`enYyn_C2FCT7I&LnQ};6Z^y(ML869aH^&y7vk@_bi8Fe;igV-s+F|4u z>K8Wkr6=2*i{1CF4{`+7I5FO_*k_N0^EsAo7*P8j6L!y?j2}6Pa!nsU{N2RwS(2ZJ z0Bg@7OdpGcqPl=b3LFDtF!Yq|`jH=et3-D_xBC=lcVwaw0+X@CjmCPM-mz41t9i`H z_GUM65+i-Om#mBkQhul74?2B>xk(Q?YY&)ps0lKuyJj$wGi zh5efJ47$m9+w_z4H@;)e!?oB}|KmmrYc1M6ZT8;c)wj9_kbK-zkJf5;=akn!*k0y* ztNku|wK-Pt<=p=W(CsmNH5x36_j@cEllhgY)6*LOGGzzjQN>tsFS^ zk9cchWjA@>aCB?GhdXLU>bN)W2jNvG~uYWA!Z}8W>l<2^R9|x*IFlx!CCLjZv4|+{LU{@4WY&! z|1P9-y{<9J@jpMmw;hIGkH7Zub0YVb^!X+9e?9)HM+9qN(e_ktJw=9b@BL9ai$r@~ z4fTfthg>kR`E;Y67k@cquVg4|=aW9pH}nau>|+y3>Phb4^+LDnNhRH8sgET>7rU_0 zY(Ra9U;afKYm zNOwl7!8ofMi!m;wH;3X;*zYHZ$9lRI09dJ zZJ+YazCoCCIT)LcAH?D;eIZKuqNS)pn?3imJb4(v68{|sCWOQw^{Q%|u^7jQ6ZVa$ z5Bh9a$tHjtGcYs@Yl+Kf8*$bazO1yvi=LCvUZ`Z_oF& zKzDMHhb}=Oz_CnEPv7K*l!Ek#B84r_%R(O41Yi%lKM2;~H*HpbI4c6XPNevW=hnqt0%LVEe?;E{`9qw|dXyCZr3pwQXLwdLCVGIEcj$&074E z0-31TzbI{WSNW?DCjTwm_su`O=*mV_u{;Mv=`*|}H(99D9{)lHEs|TGu4|{h{3+LZ zZQ+!!Wm_C|yF`DqylT^$JNdyHo^NveGoJZyREPr8@4+~VthYGtX8s4HMo`HxB;c{4 z#*J|7^T$5_Vd}{jv{s`QAg@naTMTy04~*&e*}hx>PA?$*rI;`l?l`vCiSobmf~Lp` zrQKpq^FK=V0)WK8m~WUNk)-Am&Hi#2jAb*DA@USFfl;lPjHYL_vQZ9a5v^v%$%!cw ziS6VpW|V6jH-jlfCPC%;ZkV}@1N#OHXMY75WQXT+nI{C#l-Cf$cwS~sLWkl{jDCheF5d)$?^9p z+uxg9wHtrEe>@(!P;|Fg9@pZDxhEGw-rHLx|N7@5;d8QI=R)DlWB=~@TIkZ@gh{8G z?P0L+RFtd~BY~x{n8;a+nD0MEZ<4yN zzeg(`V)G%mAIoRQfoMt(-Z;C4QaksQ9}LLk{3PL=pfr_v_#jP0iz@(JH1&f_;f<4! zv83*LGMc2C(CG5>VU4HP>*G7i!eleJb8>}|xi5J`M`N7quLVc?FSRuq$GGScOWV*_ zI1%$VCOFm>9BqkzsUE7G=`b=uQa|j)#nJCgto8cry7q*^h-q6|0eGFhzCSsNs%yf3 z>}O80M?uCD{*qj3#I@nU-(y; z+DtKk7a*kuMe)W3cd(GSE3q~)*J+0G{;KTs^e4dzY-eGWQVn$5_Cf9hm>XEy4kCY@JqSIR|iT zizTFot^S{_;{SS&;_W^==~?C=kue9Bv9uRZafIQ=vWR6%{CjH%Q2lSn{LgiGvmvbF zKiTO4c5>9#k$`7x4 ztIS^yB4qwI=8SlD}Gd>GYm0?Q~VkW6iyM zut~Q~GOD}^_YM|D`jS}bj(7AD_J30TFQr`9-oGu~##mgWix~H`Tleb`kd5qJj?c_dX2*=YpjP{Il-yU zE4+=?-(xxc@Q**>cfY@G{l~xmgn#{)Kh<~6{f!_0@Lzs|-~8^o_xZp7+mHCy|Mn;R zJshtI-9P@*Z}9yO*PhnD{r4Zg{Qd3A_W17c#b!Ue<$C_)Z-4xIkc*SqKmPM?@x%95 zh`(fe*$xKGop(dwu)%n8Y7zLJfZ^b;@bH{CB~lz9lnE^$MMu&lsEgv)sY>Go=_o)R z-(B(c{SPPJj%@EXIaW(o3F;+FN1ja5COwHmep0|{f@NHAMgeB34(!Lpa}^0++!BBM zf|K9>=H-_!oc!@E+rv!wdmfr@V1$NBRZkciW%7shClA7^_3{5&M2Lh-X(=m3P3%&- zS!2cV-W<5>_IQ74->i=zWB=BFTZ)&?O*=i|HMx}c~(xb>A~^xAYBGAC%sbLLta#v;y|-E+bH@r zpOdoHh;EiCifvzBe)y8J|L_k#Tru@UrvLW;{HF$&6IHgC6*|2?#p@T&Jt!Vi`>q?q zoiEEG3gi<#g!&?;tBle3G4|^+uYWq9)T+&}uuWjJCmmbIzjScU z+X6viM+nj}q6Mc@Q^v2JD=LS?c$e;f`^9cA`Cjq%!pZ;k#V4OXx+w15uYVNWNL4<+ zhRB`qF8q`*!jyj-4$T5MvvX8?v`;EZ@lXHX{^2|P?hoI8S!@7)`XbZ6{MR2-HdF1T zP#q@>70021#P)4AOaA%Dob5Rw_ey-J+skRJ{3r;JUcJTt%P)WT$M4?E{PZV(*U2v| zkz8pd+XnZ{O1txw_-9+9Y(@I;QXs`sqDKf1>-4|8dD-ms_u}n8U-jgd{1yv#cX@00 z9u*(WZN=KM3COm0^-Xv6u_)7=XqGKKsMDa=wLgBr$lw0{s<;01A3wc)a$AdtbB)>J z>++{*+uA&5W?4}slj=faH1(56*W#kt;T2=Q|A+6t%-tUE-1qPQ`qP(s@<*Yb^({m@ zGM0>+80wA5D^I}K?w8FuA7)<7JOlb>5tHx_%&yQZ2YA&afB47mztmgT&42&z&oA=* zIP*X0Bp;R%4$gkTks*hBAYdq@wGv1MRKJ;OE&Z#hje!YFo-TwH+Cx3X)0lwJo z-@eH9C-K`4R(^T^-FGiM`Ti~A zt499s|L>1)8N)|PriwpXgk`)z^ZoTaE;*ljC!DhL;+d~xd(BJ#?;mA7 zdAg<1b!&5rON&phPa)l61XM4Dx%Ci=32vVA_w~vbviU*BZ{GF)_0Ynf{_{)D{t|0B zw`mIDb-FF4y<_)TpXgd~lI@+lV-9S`-p}&=63Z*eI>!gE`vnM8_uu~hi%))$@jbu! z0{#E;|NQv2Up}P4s^fT~1X0*dgx~WGPteo{VXl8tek=CD<2kqlKRQ0|$NZm0Ka;GN z-G2LJeltD+@|v*5=EwH_Z~6HBAAiWrkJoW6KKy{chvT(46q_Hf$;fFvF|FY=teNJGjtzny(^W-`csx8HXF+w5HM0ccd zc&d8^lLRPmDWW-7DwN z-qCVy6mOCA+hQ}>L@ib}4c6xXCFaN*aX3Tx}uy+i;KQZCRglUnyoXQWcjTuoS zOTfYZiVgGpAVmeaM z*Ts=|-}p(nT>SWTykz;~dt>L=_`BD_!*8e-I>o$&Plr~+re2>kI~c|Gs(ZD;z#`Q+ zM`9|xYJt^6KUm`JeU)gw^4K5#;rmp@E9Uzj&wBvhS~ zi!bGyk?UW7zxn-l?@3*t#%n?SH96-6w5Sz$0XFd$&^&Y)y0b3lD9#>?@0CLr43%-B zrichb^7lIb-5*Leyk-0D+Qhn}edtKYu&+^mh*-3{Stkos;Vl@NbPn$HiEoQQIbJrp zHb1WSuLS=Z^TRtz=D@>)S_tR0nP#BvSRWVM#kpH>(a|^zxiFm)aK!- zP*5)R8J%4&1L31B@*Vt&x@?R0PC4gz*2c1H{otAdTy^qmvFNp^&d?C&l}^KcuBobk z{Jb{-d$vQIb_sIB5{gsK{dyZ9{kp{alBfUq+Sqxud2g(Kk@dSDG)FO_gsv`mYCIGE zw0&JIpSF|a!o!S*9DZA4RQ#*|T)I4C9KZeJKVO?4II_KJ6gy9-&-@Q`f2fUbZGF{W zm8WE*@W$2b*xiORN1)c%4Cs7b$jZ?VGz75MJoLNsmF9NUmjCp98{aCO@K7X=Vde;GFh@U|hy4hd1kRn8 z==mW!AH$_BU-Ccfjf*@_{lkBubxE_ue_YZ}Pt1Ue!Z66BA)(xWzW8{7N2ToxkG=8NK#m5^Ni$u$ z#*IW)ApgUcg_O?gYjda79jAa#2Ef&GBq|WkDJy|oa^skDQ7*W=K5j^OFT(HWJsRItOR>ObEw@UF*6?P&9a=9}_zsw{LFfLTn_4r;PNL>tR=s zNmpNgj4yp7LX)*V^*X9b$$9i70fyk>^HDc&eR;jFCos$QftRlShKrb7!8gDjF{G1lUii?nk)e9JMGS?bQ+tYW$R;`uF`R5sTqh#ucRYGCeg zu7$pA87RUzx)j3jYi)*bU-d?QkN4O9bo{9K@Qi`iAgv)UjH409_|Wy|ftJ<#;_AtK->OFlriDOgD9Ixv&=ckT3-E zbv1g9Ns*25d;$`=&s-1phPJkflo*enuIoHd+Td=`&1bTM z=~#*PX8?hkqstiMwHV8Cz3#mVYkRQY1HAkt*QaXox(Cm|5|^0QUvb`r^7ctQcg?YJ zZ5c=HX3Mq4OZuY9Uf0yX+hnuiKdqhk<89?HHlE8K*6J2-lOfCZ-v`!P+2&QJFzzJ% z@BzvVu7aHV6el)wXX#0GlyQ$fA*}xWs6|U{|2q5OH%5!3*ZB`WJZcp2cZv(A=;s0| z{G;i=^Mju5IsOQ0*O!G1a)W(Ghr!mU%rFD6B4O z-Rb-kD%9O`e3UN2c^QXLI$>J%08|m~bGM=ScEOt8bse)eX)OpWi2{9**Ty(SH=?ov z7VpJ{_uSe`rq|!=T91F?r2LZZ^9J`tyW+PNeTr?V5f4qiU;W81p(bPOwC2Ncyz@8o z;jPz0QJPgb|F@vPqW1P0JSz=rp&0WdR6S=jABzzff8Kh2PLT3T-#`5JG5C*pH{+ek zq#GnIAA1kJiX9cu(15gQyXFdVC%S^faCs?QIBmas*kIv}lN9_qcGXIX8UWjZbB`Y0 z&P=gH#XL5k_wh1*9ISBpMeo6Lw`2R)!sUD2OMK{1bbvpNr%V+6%7OgX>ETY~d|zoL zoX+!xOI&b{y!`kz2l$S@|1je7@g0Q!hyg}8GrgaiQ4|~EdN*PuHW8cUkL1Iow_gA2 z19aD4)>awB*9Om3C)cgwA-^y>G%>Q1=GzEbC1CdTW) z5!S&=-nVQaFX0CR;CnoJn%}A3iZ)>nbHYE0e*?w;IUlv2`}s;#jssoCa4(E~V+gMs zA5p&hE*+C^<+!~Dms+C5kZjl=`(FO$kWh*7NBu8w1~MYGv5Y;PS6=bPwg{Q8^-5;6 zhV}M($q{WRCKyW{0AY~CVYJf^=P9pkp2Ov8D9=pqUk_nlN*^o9KmIts4&&`9{O7oqiheGPKixG)QE_eg-t%giQa5snXHR+JJ-_xtbah0$zL$~O9D3>l ztXs{V+tZ5D!>fpD%Z}iMAXnDj$Drb6E zKQb!ktSm^Ra-4`i7YbDjpmC8M=m<8R@-#?2#pplz2pCyVJWT7PL0C=8a6Qz=-S#=7a3_}^)No?Kh$RU%Pc#7!i^E{Luym&-Ksxv2AnO)jo*K_6x zEL}<7;-D65$|iH=wRiFbT>=D$y#xV=N_n)Y0T-<7ZzuiQu&r5bH3*rX&*tCf z3Bo5kTgpJ#VYO*lF>c_ezH|YGNUgGwI+I7b;QG`r>#&(KG2^G7Fpk&Pyj*iiPkxnw zBIF|`^;Ka_FEXiGOo%%!e9Pt!<{*)u(eNvk5%@=)nqH`Ob-&=#F2Tq{AL49!35}Z+jSFJ0v2F{6>JJ{H%Pk z7KX*o9I|-8bn`sTWye2IezNcvaV5HGu?>glm-9cjknbg_pUTscHSk)H6Yf^bWsk&STR|)5?P}T*hwkOZ9_6ht zk6;2+uCR}t8V%=~Jcr0GyYjhsrF=!RX}kW)x^)b#Tc;$kbV-{nY|8k4C4YZ^oo|!l zmG9m)rt8=lq@YjC&{vd4o#h$g{EFu=!B4#BjhBm0euy>K6Mk}WhQQ}nershL z9RjMyoE3j#od_JS^I)ANx@-vD|4wgNfEOSYFS|JILgpP#;L(7k?-;BWCrJSNck*MHIP`h5lGzx~^f*?<># zv!<2o#0gIe!-Mb&K9qRT3i{*${qV6E0INbao&s>{{CatP|0tSIzBgEduPp9*0&7JB zUG};?4x{QQiae8oKsz!U!Mi;ksXJ?Yu=?MANeT8--jsN`5FERI@KczhJ`pp}x<-+N<{YlI| zsge6!YpAM&gIdzBk;G*2`uu+r^rOQQmxP6PM7pSt|;av6QRns1k8q3D)Zb zr6}SR&Pl%hUPHZpKjQWKNKrG{k@ctgrBo>i#zNY`r8A63B!0+Pg?e(tC6e|wT8dB~ zuQ8?N@q<78>8CG$&y@A``oflMZ{hpoH^)CY{`&&#>oYUY#_`=|tZUUxQO54}m%Va>>Nvpb_XrfGynrgB`KT>pQJYdvK*ptl^56i|;lqICnz4B2BiM{ciajr% ze8pFe?I$NZNg)9}gew&qmcoVY-FMzVf{y&Ky!Q~|0>mUP8!A0!i0wbUapSrZGQaJa zy<@X_>h|hYw#cz4=b+t(d--%4wDL*cTp!S7-F_}$%6aHjU-gHc-hK)0a%p7d;zarL z&V`v3F`Y5z*gqy_V9Y$5AI4wZVuGa=1D-z-bm`~1{rU|8-T;41S})nIYY&;66<)A5 zR{t}Vx>Bn4)L5z4yTgM~&Sg@|)dJ%yZ(p1FCzigP|Lec}q_mP1&0euMc$tgncjmkv zu;7O`EdFuEI01gd)0Y(BlHb>*wj=k;M$d==T$^+;zu`4_FSG&C0W7s5 z*|0i^6GB4bv@9aM0I^!>1sQA4#50c&^Bn1DxVU*Y> zizcF54b{BU<99?-hcEG;su6ilE`#c)AHS8l=kJ_+I^`q(A9nA>8_F6R>*Ys4^=D}Q zANq?XHT zqYODoGaq(C4NL_UKS zr)vsRI5gT@#q6`vY&;*|XMgAKv`~5d+5M4+`6m9ObexNz<>R$U>fj?mJde(_6*5dD z@3^oX7P(seE>D{7KIA)otL2k-r839)yDhO%mwuA+xy+CK&R)JRNA>th(-`CAZ-LgZ zIIF){(+c_6|2aQ8d@T;c+Ry(Fetj9D z#ak$MI2~W&387L$2fZOpZk5Sd9Iq%0>Q(K$bJ;9`b!S zK019QEcg2zk(^scdsGm}TnO~3j#wmM5NbT|32?&~=YDdmcTGWe!fW<#4|DwR!zB0P4ic8k{8Pv5p>XUcJ1Xzfth+oQ%H} zjpR0qZ-O$Zyy2v-JAQun-HUWSG-2`NG=xt zhvisReP0tiDZahWV_g1Lnmoqr_-O92uzpU)TghaQx~)Xeb5a7c4Ug|Ht3UJg?tz-B z=#<_c*niBn-yQb&PS1pX89w85vTyEHpF56<8}6?##iz~yY{p+`kokuH9v_20e(3iY zx3{lr0W8R`0jg{&7rQeiY)i5R6Nb=fkt|Koj)%W7wF!8WS#M*YNqnk(D*YPJJQj)nENIS0TJI#Ncke{LL`Hf9kl`{GZL*k-txXV-9dT=WlP$T+*9AR;PQ+Dg}sc>FLfL@|m}a#!jm8 zb&Kx((JVS?fAGj9Z?BGdfR9Zppv3^y{lcTsrwMut;^xU?#UtjwY~re~unRny_we)M z>%ot&FngrQ5Bc5+1a1A_3gZ{GV>3?FyxT*yulM$aa1ht`F=F+nrU-?q|>Hgn+e((Rs*YR&RK%UEUc`iTMVgfvC>?}|Qa24;CKxG>4J2EnY z_Q?gF3Z)y~of9`s>@}E2{RC%VgF(eBg`}!F0sCrle8sy4^bUq!R9cpsfwq#g*%@S# zFG&T!ffrt4cV!&!?%o2OX@Y#sUtc7mgsS(n&4jQ`eBdhYZc@sNB)#k=?$?v0;)jD~ zpSE1aw4EL}(QHXhcZ=xWalv!6C1<_b0C}IiURj}9Ke5YL0o9=|HUmi+_+a(pc~fa$ zjnSSW7UqP1l1btb)J{@{YO6(0&VBjP5P*FAe7iBVogT`^v6>8F1N#PZ4`^J!|&>22U<>G{ygZDVuq+i+?y zJ^f$lZ2Pq@mj9Qz?Hr;8qz)VK?e*XR&^O?lJZ-Gw-flC$gln6vEt%}rwbM!YaNSYA zzV@$uJl)H8wEd#!($9T-g@Uz(N%%kIKlcZQ~sJ__{-}&wVx0uQ}7R`)K zRswh$7BJgd@>4uABLn1Wp~C9AcferQGbXCiW!fzQNY0Y{#NwyT3M?guA7C4$P;x8n z;!8I_Mum()v)O&>D#SQBi$C;zt#L|Vj0un73|`$<8h@oLz8^uQ*#T^mDNzh_k~go% z2V#wbXX|S>hDE)uL;M;Ij=Z%{7O|^R6xP>zD<63|NGvpXpF~G;&;n^NDanh6Em!Bc z5CfBb#a??})QVl)A&T;9#OFG1HQ^t`ujPBwJ~qkEH5M>eQ^rhw_ceKpL9KT*k8G!WHJIuD!B&x-`47EMg>-yNnZ=90AIYHFua=wf3nH-y22J$gy(bzwo%QW5u6cVU*_xIEj$= zm7X)E%y-@x-C8{>d&*gmYTB4>Z-Uk?kDe_mt~4wz|6%?X1LH=57xy-}f>YCA?Sk%c z|F(&tAn`N~vSn2qxx2=O=(YQWx4xM^B)4m$(?D&yH|77)AtW5DuOaBw)Ij6&0rWYW#O{_Ubbh5!sfj4RbIx@1=Wy=C9cM)~aS(WX^hI zdpmk%4=yg0Rf)LAF}1QEc1tE>hV5K}IpKHWyBU*u`=V3kX{%r} zk@1c1=14V6Rg5URa(Qk<&rs9Tj;UoKTQg|blJ`tH%iFscnEA@|r5FcY95?V0tKnl{l6Cn z4`26xG`tv;0&jAT)W&_A|L4Fvdj3znS8omPbEpw|&b!T~agqNMo^nN?ax7#1Ne>#p zMAmNe9JA!p-LpS~XD-0GQLZ^!*f@Ox(o1fTz9nqC-UvS^MnQ4iw*DVP*Ue9;JpQ}^ z@?4(FPrdLQas(tNN4L5k^~s5sQv`@4z!j({abP^lh3vTRz6l>|AY&{E8D!!E0#&Er z<(r^Lbt)+ECkjl!Jb-k(wI_KkFjQbeZ|DAl_QHTSZmBy_ zI^9n`9I{#C4qs*oNO>YZ*i9sIGMHnS)+>2zEY!qguv?#t?eB^${IRWaOP;)xA6M|N zWI^poR*&4(ud8C&E_jUUZ!HAurO`BLCl6;}LudC*2F?DzGc)c+c%7sG$jen_tGnPgN2h@ z%=cTsWg%^If8hdxLA;o_&2hU5mZ4Vg^Ab`%t&#kW})kFO;0>c?tf-cwHGv(S0O`WONS zHkdG;D7uAwUVQX>i+rB#EuT2`P%T{UyYQ!U`9`x%j>(K*f;%y<+57+5!YM`?f3i3! zw)nq}vtPtDO8{pPl+GQTC##)^J_PP{^N92R&Ol#@-PTh6`8 zW7Lkkc}Oq%$r_Fae3+zi|G;yfyqdB9H~K99=62mMl61T#J_a7E`kPgg{{0)6^-=*QVl z*ZQ>pjFyK8x{Q(Z#)w&)!^J1EEc>`$fHs?1q4ee^$;9zL7O2bbFKhr>!p`+3GFGR@ zdUg>+vxDaS~>(}@_`%dVz#~KaaxvAiq)V$R}L1;wtdG^}GS{T%OBMv4jH`*m?PAdj5VgIw>TW76nw`LnRY(I;|qI z1~aoK_>3NBh+xono=DlkhY_y}VXouVP(U|$_nIu%qV7tvW7*}zpg3*v?TakRX3{u; zm$IS^a*<3JlHYng{vAKw>@$JVK(!l-Wudk`i?8+WPK&D+MM#GNK+z{-Cp=lV1S&pwd$cXZgj8NBEmGn`vl`Ub>Z(?Vyh)I0e`Eg$q z;XYJK<~cm8q}-uQ+Dxavd7r+7^8Z>qoxRW?g}-GEw77rSqNPrJ;S$ys1{jlP`;rzC zH*x|9&0!*+;*G+f-8oQPR~)ki0La@0&-U?YmoQ^U`>*^o z@Gu76gW!W&u~gNT8AjYU~+_pHlcJ5ODUoS>WwTP^q^Zn4}e27$22+ZfeBplv>w zj;08+FwcYjiE#IRzJ69vd%Hwf@hE)#zc<>9zkHeGAao@aXIAKO{f8Nu%Pn*l4J|kRkHTY_8<2{q zGuG4d2FP=HE|=T`tF#8FA0JG=qKvS>mL7a&4_*Cwi(p^~R+ z8$d0KWL~eq7sr_VH_^=sVJBEx`*$Hi3)-2uO!-vW3yJNDwCUr?b4btf^Q1linUm4m z8N6eIM4$O(lB2xy#PF$2lN!B@5Ean)b{patFC_1fMF+{bC~4ypF;5k5uUAia0uxD@ zr9&X=EQ>-xg=cC+nb(qfVr?k>@F}*IhAk7)?j_xG@SgX(BwX!x^GPJHo-eM=`+PJIF@VCiz3V4^;zUL2RBUr+3d-@q2Zyw+1p zAY=hIFzJad-m7$wZxOaEoBDwX9jA=NG3l?N^#%ZJSvXLsCn@*E$8B@9U@{2sg0ddi#$1%5zrA7ul3|8IT}xygm< z7~6wyEb?eK%3IKh+F_??l1z^bectMR^chQHi~L2fcq0AQV#O3>b(@9M8WL&2!y&nd zF*un5Z14-SWdWxo63$VawyD2wH184_zTnu;Iqy_B4le-NGY zlZdOUDH@u}n3aem#OsrooCMIrz;g4c{J&y~-e!*#Hz53vmSM3m_6wWt!fg5ny>hOV zuUgc zj^%o4jPn!Efg$@`Vo}AL{UMQwU#=)32MO5!n=D8^SIk)C=b&4aQX6RxWVksWT}2gM zWHd9k#}WriuENxu<1$SzS_uJ0I%HXRyuD=3*fg2%c^!u%h)}dHFzKf)p8vYGz2-;6 zzqm!J!O737+XdUhCN1bA-)k5xhl!z!7?$yzZOb|U0GeT;>2xuZ#SMF`DIclL;GX~U znnLmq)q^#f6)$=bjjjHVbxS|QxS1(#8eq*{gVS}r%Vo%;&JrhE&Kq=@BY|O{`9IAK z$S(G*UP*ls&Vs8D6GMMoyob{-NaXf2&Wf zRs4792To?5bt?AMD;sn;g*7ANPmz-Kcs9rCcg zHVH+^>SG^Du8!c7^wffrDNxzJrC zoTiyu>Y)-;SNyGxQNiwSvO$+JijsB=*zYN{q{f>5_f#7q)$Oqy<;n32={R`!#x zB!k>H{zQa0eaR#?lD#Zrnj9F9Gu0KparLE*J#77qSoDM$T1@e(=39C$JP1y@e%fR0 z+iF;|mzBYte-+N@WZNd)^nJnsCk*O#mej}}yf3CWe>#PH+7&q=v}uvSY1|y!7@&fz z{?CD=bQ`ZO_oF%u$ELU{iYbI4(=+zvrP+@9GIrknZDgc)YNR9HJSs{qzEKm=jV)RA zbu)?$sIiRq97lO!Q6{=nWFGGE{rGf(&bW`FAd^Vpx^HBSmpk=YpZY+?;#y!Kob}=> z@1;Vp@?j-&VYDqdQQr(=`I%Nel*@3M7)3OY@$}<;{I81<7UpPDewP6t$IqLL%BPNn z;!^0D?Z0>_zl*UIXk2rsd2Vv0V^ z5^u{EsDA@$6AIwPZ;n;DxRDAT7Ye_s%oQ^>0jbESS>qmLh@eBo4`OUXSCeDGo*?XK{5I?y_HL9< zIoW@`?>tUMreE&-pX8hX7q%F$7}b#k^C_NF8#F*pQPS@GX&Gl9%2gyy1_b&Vm@ zS`r+EB&guR`L9{)^V*UeYo8Kh0j%51wONbKS}%r;4(d9fmk$ewIMFQ>2Sm>_&O-$o zMnc)bn+Xn=|ASt6A-k|Y#x3Gu$ujXY1z{PZ&8<|>#+UuhJFiV1&acXjR=)^5<$v-J zx-q_hf!7-&d}pS;+&0^+k;l^R$z>QS8?HCHeGE5whsfe&--+d99fSjy!H->{sfgE^ zKo|xy$-7huws=`5AMXM$y~!6Ap8gN@W4rMGohWzg=3&aSuJ?p-78ZyvV-Xj-xkvP} z`hV#T)@7lMF4U_Nmcn)@qo$MSX>@qUYJ;HcyZR;(`ZM0$paQLyu?`2-xPbo|7Yvx4Up&ZTz-nB5+ee30#BrWd&94) z&k07}$av|rP|(tEiM!f=??dYZ+*SZ_kG?9Q5CuMEgSy=J_5S0?Odcb;{&iwT>t=*eJzKH9g};M?^SlJ9~6+gRwu)t;QP z72|5|OCrRlMRw(W5s#AR*3fB z0jvLu?>Ja?-ju33d)@J->RPE`Vlyb(E+9+ z!f-MyBB0xEGsj7f;hV7-3rD3u_x9_ zYWrZFUoVUEg*Rnc`T^CzraLOu@P`evW45>Z-YLZpJ=_om(f5Wox5mEH)cx{3nsNu2FfEkzTxfz#H$E zn}j5P=Wt!HHc|mi1=GfA&;&bH^GUcF?Tb#?FEWRW@eEu@tY*D9B>pfD-N!SpAezi; z=)4zaSxv287gb3x-%+``M_;#)F=X))dA}Y`F!5SvKFAN3Vock(x`YPix%4pgOm@W! zklCWy-IeQeAJG%%{T%N&S25cxVs#s~Zj6i>v$u(z6?05!Mw<=Oa%cq&!rT?s%*1|g zJAITH2)$kWKc3#9xNnpPq%S&_m~5uJGB$Bv*}KV+5JsAGQipVs_kwl}mY1DQJ%s`0 zqO@ZTN0a7wPB&dY@$39!%t6a4PiCpZZUtLl3s$xC8wprYpM>5ohC{)RwCC%E zf#fT2N;_)4$NGZ$Z9JC)45*wAjc*Vh3x`GwfvjZl8?{ZeYfkw!))57&TXTo(cs`pC ztqBnR;2O)p*TpLNX8BpNoi;aw=sa4-b<>!dOd06~NJWp^BtzhpH-6`}XIr(|j^)NC zg}`rZ$2p0S9=+?OIK`4DpGs(-8c#W>4hqxr*2a8l-sULibG6IKhai}>p%qND#g>`< z(3eW!@Ma5B)TH7U{?C1^QK{F6Yulm>SRcv9YRC&bMDxtIu5zUSu zO|ml28{jqXulaxWBD{C`$W7)LYn(_!u#$I#|Hw5UAeVDxFFg@)vPUh=3sOIe(_yQb zR%PQ;y$~KgZ-6|P=kil1OF*OvAOnxb4}!rY!O00PD8MCF+x&lk0iSR-0;8O)J;9qM zA;n|-<(=M4?2YpzO{DVD3#v@+d)=jlnht3Wv_xAI@>)=jcZtT}iJ-Mm%)v@zb^>W{ z43Sz)#^f%{MiR`6ElXl7I<~F;dJ+A_dt?34fI^esO2%4B(gTAx`owQv7+M#9!p`}< zt=A-KooK}(!#=zLY|KtH^|Y4fB%t(Po%14mnSnK9U3I1bxT@|pgSI{w&n_lkT}L5d z_yPYDE-c2lopSJGP_nB^Qk($5Dya!ya#Oxgcq4LBLayj>37vAV?d1>?4$o^89H71jZ%JFKEHoBK2SNJwc!f1T5FD;hxXRV?K=wd`V zvXQJ$;Sd(xqR}6(JaQWkwRV5!I#g~ntK4k}@8}P{Arty#{*nxn@lc(0Qmw9UPjp}W zh0nB8xcN$0*^uCVzbC<398cuR0p&viJc;*>5g0KqaF_mH7~?bk1rG419-O(~*ji;5 zq$w}%!#|8Ltz%L@b?qrYjYsl9{_9>pV65}JTA1N^A@W`~s_*GAAM`ZjcT=6uQ>Vp>{QXX5o%7qYE#><_g0)cU#R9delVU(%FClfS> zxNUHuA6{_uc#~JQuO-NBw(_!rsB~_-9)FHe&@t%!raeNRo!1vQ`_zVrv~WNd&?@gY z@=&1i|Lg+<3-r47xh~`sj|LO>Zwg3S*cPAoCiyF41j)(%d%V3bxf3efIgx1b-xUB< z*NL}NB-63v*YTLYMunF1y{xb{UAi}5;zH13J^3;opnAx<3IbH)@O32Aa>YZX(7y;aRgSK&L>2zj~n$ z3X{q=aKV37bBh0Q%g1#4)J55n&u1VT7(PJQ(mYw9JmmG_!CTDZ9Fublfg{i1NDs~J95=jo!M9sbM~SFw{nIgq_?{ePtz zwe@ved#hn|&GumJdgUDN$@x}Jre3Y=nb(nan<~-&ou08nZ+kX!~i!uVB5g=lMPn@6~H!Qw7>5-(~C}9bRxjTRD z1n_JB&R;xrDt!ss0Y(9=ObAbm6AsJzy2q`h2Q(T zr=ChPO7h!tY-k(H824NRHK>pASyWEq`YT$?>?0p(;>JABOhf9hI!e`)onqj{jWc-> zx^&LW>d5foD`!7YGh_c3DfD&7+;9M`KvKUjbaLh3zQGX#c=^>AEVHspb4s}87@ERQ z&{=G(3&Ke+Ol0?vJ?)P0rek8TxPuU$RRIdizKYog!>OkoZt^B(PX4&kp^bZ8gn93K0YJb>}%S~-P?k5^S6mi2xKV#?}&$0 zMv+w)RvA`%p3azjGuy{Bre*yT1ztKqj|`hPli{1`Mg_>8`DPvh_sQ&h)}Ud*zMU8x z)_6l{xt7>r>L<<{G3%Cj;yA}EvNw+JJ#LEvoh@Tr$%eU?okTZhGohoo*)IRT$}#pv z*JlEr^*QFVK6m0JMusg>9T52E=W>xah}Q zKR&1y-NwJG?EL;d$A)>%S)xPZD~8>f09?>w>}v9P(K_S5fFoaz%7NqF`yhw(_CE9> zQSDab&4YVD^;2VhRu#s>rXf6J{Pcy)qHAs!&-HrR2&p1-+_(=I# zpv~FkLPJ~nSr39%bqWW_zSAE`euMOzJW{{ze&IvjY`FX%nWI}n2V{%YuhyKJ{U7B2 z{a_?XEW~AucV(f!+OihSnc{s&+DQXt|EF5Kp875>1K0u#oNN$eoST?I*Ev^8I)=yx zcr7S83oNR%Vp68&v<9?0YSuiXV28o7rIH7rOZoci9Jm zm+UhVB}uw;d^q9Bhg1F+k6D7x$j^yQ$>K7<7QT+EGg}!HY02`glW#NKq~rT%B0tr# z3<=fmi{Renm&(P8rye~qh?60m=ozndN#bff8B9I6yw}`{d;>Ig+z-&M+u|2ZHY(>N zyPto~g`CY;^$mesOiWW`pM_xTwr~f*TF975E-!2o9b+7)+g5U*;Ylu*k}mm>z$$0M z1fxD2wFrOm?vVMoZ5Fu*JKQV@8WDAnErSj$K+AT)zsp1=hDSbm(c@v&L@Zy3er1f* z&u@qSr=J^m`st|>6SMacM(mBE)R~;*3GTCk77#9fzb|R5dR}Yfn~?*fR>)?IhE2UGSFnI>5&Go4%oC9 z6oYOn%Y3IV2#U=z-|YXboVD+(JUl<+9CGN_Xgrw79kL&7I#->6Qhen;YIpKB-?J^( zvy8d7d7tdO@Ey~&%eQ%+kvP}#IiG%h(vEn4o3s^pH#s;7fawj8wz;ntao^VR6sB z{|o*6Gb)N5vyDmq4~q9jQbTfAV=yLmhFw(r%=qR|$0B*h4;Bc97)1o7iF zc5q2pNt}UTZEjo;7OPfQn!TLZYo%*_R@ioK;NrPFm*?^mE#Z6|Ole+!7N@@kJ@1jl zwN2FhnHFm?*%VI`Eb~3!qJ+`F=X-uV9{=(${;T-r7OR*Dv^;mFfNh4jBs{HfQW%OI zbR9iI=0$o*mQCC5d$e{fsR4K+L>a80CJUNN`cw7!K5yjcsfnjUorJ|mp5{Mbom5ah zpZzZMJ-GIw+vSN#Q4w1BVa@HrIOtxCQ$GRYxU>ktm0<>DORV=h8DgBkj8ki2BM$v) zi5>5jas#mU;7{m=^v$RIti-6~36+rK!%#qH2FM9swlUPWc#WN$#!ADZ0tU>T0uKFwdI@-9HzDrR(nfvQatt5&kUf ziR5?t1mtXDh+YHy(#meJb zyV7)&w{}T==MC1bwO#;#Z`iVxh4g2g)YKW+oPc`Au(3dhjZPwtrJb5?P}G2HZzpuETDO&Gm=k#C6d)M|6U<^xwdfieo#&kGuUTuZbwwjoRYlAunoSj_IVkc<2=u zaDCyJ*9|6qBNd$X=G3HNm8TS?8;PA53-;MH-p8v~&t#aq(Uba-)-)=FEfLp>ytf69 zhG&x&cGyPn9rl%rJ3yP%L+~=|Uyh5~UdOU-Bg`{ttmQMS2+3UrF_ULC)&vx7IJ~_% zF7LG>vtk!?EI3w2v#xTNPAoS+D#sbmc~MVv9erUf&hbC!6R*SGxF*GZqEd+A6xy9E zQHAr1q4&)jg9+9#1_tk$tL>aBa-=OH^O%=~F}6^zWD_p=Vc$d|@X|gwaWdsVx$!-I zqBcbfZ5Th<#jE9Qv+@=8dHRynXUB#YXi5P zCX>@Lu_S7NQ{H95g7rK3Blc94$jR9!>Xk8a8#`>Br`6Ypp=>K;tearp4T=VAYYoJDf$=^SZqJL8v zbAp1kKPRlq;7}PE+I$4Mh@*B>r*$}CBvmw>+*YIMm(Y#4IMr49?z+ux4Da>-T;LWz zbo7lYeMRcc7H2ao!H2bEBPX$f#zcnE05`=Rmnn)<+z!&(gjF@y<89x-$D+k z8Dj|<64iR0UDd=sGiaS@JhhSl%Vzj+~W%FuJqY+)5E zL&s2a%WB1gwS^;B8ji)+GR`#?x-Bmy77I8~fGtF6rR!u{dbSHy*};vhVJaTXnY# zkr+2vqdYF&I?b{06^-wgKGyu7daYdDz^V*e6}fF^A@j=D96p~?AB}3OXKkn#gGc=5 zsD)sjA`QGIoNN5=%5LMG-k|_MV{MNt$8SKPjdho8i5;_xvNHzZw3L=_D|cosS?5AKj;X{@>$2TE5gqw&zBz*VL?UwqyJf0E+Z`?#1C9!x}!5fyq-^-_G{1 zx?fFYEZ-!?QUh)4fajSJvv+GPB5UH$dN={7Pk-!U zY|qX4SqPXLH-vL&q<9FPH$a}tbNLCD`WTlch~uj{diFZ62z(N#&W6BK$;i*5e*w|PfYeFWITeFrV82Gd(mm3GQoSZ}_rDNwsGV+~eQG63adAYxI z+-w#VUn#ekNdlcX@~g3pQ#qY#@UIPIzQ~VQ4y)^&BnZDwN%=^2kN5n^kN9!6s(#I!8Yr3TbU0bD-gBb&@mG`|KIW3X$^nL#T6^u3|tG{@*)-^DxmnuR%!tK?tz!@ zku#C2>O_nnp8Wy1u$@WZCb*?|A43ptjQp6V+_ka1TZquIag$Atyy#e(VpdrXEk(#l zq(_I2H8<_PZ!}g7D|kbw#?Z;_uIxw4i1{T;dii8jPXiV;125P#n)#<;FY&Tlq{@r= z&j>$QZ$Y2wDBed5Vui1Tb+lV_PE2~*K<2pdwj=)y0gXBfUXnkdP zc40f~2O8#Ik8t0Gmv5XU!=&VJFsFN7d8bM4a&2R z>jt@(#hP6i)bBO_muP_;3(gnWZ-cM7#!!pb5ooxNL4*6@!#YlW9V^EzG0)`nzGSOU^X#3p`GeJ>RV#BT;R^RRq0Kea@7s6vGO#I>(Hm(!wq zPtHlK^vr%(2-yxTvSCKtw%#Ar-Igh-eG&h+<&O4I*Y1r^)Z%;%sUs;Ti$zbK7%&22cUfYRL-(+D{*l6U>bubFW zL!;3XgtP)vnfmwyrRNQh=ki>BLPbLZz$r=s1RxX8%C|VG&G#4n{alPKNGfve$~r~SZ*q3rXW~u< zMb3~-vPkR-{moQA^{$cV6%diJ`3!bcI{U)zKaqQi(I6E zjwMV@(wnVI5^N|vq2dlF(+xcut28nkr@6mPtB?bLERu>1F#&#f8rYirGo3;=WAcm*Q%xjNLS{yqr;+*>lm6>=eXL&hu#~hTK?f)3=-v5v=~>t8Is% zxp-!#eh##pkNWegH+U-i7T!`!>3DW5BBq*~!z8SlTCdNJpTb9heZn9!jSs@E)#=q* zKt=?%x!z~nUdNa)&B7s@zF6N!UcMTOA3O%z{KV>@R?6YD=t>pYChKcg)*>4}>_5v@ zcoRaJjKMi<^WxU2`eDZ?)Dnzy+ML>9K)iaJn@J5U@u;p1o$8v$b-tBSuX(?F z^G74hn3iT0b>AQVcRbjJXXb`+&laAeMroZ24fxQh*P25Z#EiB1DM?e`;|-;XAruoE zKbeQ#?^!Qun3@&(Cz7oTV&uPM50c7=K~JTdg8`DJFV)0C9%{yR3oWt9EEo|ajXi*b zu+;`U|E@8@Wd6U;jrts){iFMTdS(uDNtXV<;BA&Rc?|Pn*rD>08nrkcsrAkWl^T?egDt@S$vaA=3x=IBFGq5h=c`s zO%%qxtZtI%WU^uvq%*DcN^F^*WQB7qP#V($(#nnAu*-+YM1`$1`iTW@S?I>bo=tCu zZ0SNNTLigbaJ;y?+h7R0l%UVLO8y|7#}pw_IOe>Uo-$!3-A3a@8QthLC#ID(9q(^O z2_6M;WbQmk zYa4Gj%cSe<>t^B=t4$lT0MN-FUNDV?$iAsfxv$!0*d=#0`}3%SI&;Om)PiNj0Uay# zapunye77Y}=y%@I)~qG>F5{BdE9D&PD7gVlju(qlydcOjqvNQWWKnmrbDrEy8IG~K z2QJz`N+X{UJ4~ObSMf_go;`&C>`yf&?ET>@rha2c?2`Cj4Yi~wWJkt&EKJdMN~kZ? z-pokXhSiE|;tA-G8^m3OerKcK%ndkWf8eoz&dVG*$%&dq^eBvTXl7zI3|Dpqmg|+Zu8s~&!ZK!hoRSJYGYz98ZScD%H?a;6C z?5UGQtS?n+lbmtZQ%E-h4P8`pET<4z zmc=e97Em9`M%hNysJO8)F{R@1qSRsxT9;^@S6;z`Z-ix2u6RALIKT2p643(8jCsV6 z5g(c7dd0%K*QZEs?B~8Y@x0N+0;@Uf0lc9lmv)qONx7M+4rdEl6l`(2J^@mAcI0t4 zqn<+_q>%8{+_Y&p90QX1i!+{~a=w&OG@DwSS^?eL;F z+j1LKtQ)mx`QN@&Y^*~$9jDLdi8J*mu+wdY+nm#ZIi`8A(*nE!yy14cRlGa#Aig@l zn$;RzwP=5{zCJtj0Bf6P5jYsIK zTapFy*~W`#Q<%xMkvuLaIbKKqyegqqsN}urNc`VPeo|3=XGDv2ghAo|w&{}xCv9di zcLQ&XmZg~BSk9@Y??)V!{6BG_cqzX@)*0%zX>Ts^5#$v`Mc-x&4Lx=6nV8RbMYqWe zjWDE2`hxc-Wi}>{^wV-n5%Em?N9MZ)07+~N+Z~~o)BllgpZIj===6C5!U}988HjcUG0IwdeN)88Hlk@%9z%OCzYP?#2v)jU9wq~Fz&MrOX6mfz-6Lj zE1ivvl?w!4biXAck$7u6QLwH&*! z*j=x%(#c)&9gF|T44cjcbBsCDfqk<0_FXRMqS*r4DVL>TBeoe!Sztn)4vxhD^%Wi0 zOc1^MX-mbek9vE}WEZ7p&V&JSI7=UP#&2D^uWZbn75Gt;PGjyMUEbmjtCd0`* zuzZ!gSNzWf*zB@&+T+2ZUtbLKx;z_Y7repC-!)$#$3|n#_ZxYq z@k)$0ie;fgm-w!e`11d~yx7EhUsyrIFZEiZn9DWaulBH9557In^6Bwo9{MKA@#hA$ zlNcMLek49H|5E^h!@^hb|FX~H=G}c+&~@^EZ^FFC{oh*{w`HT7<6DkSZ7+shrAp1f zn~#n%SI%3Kei~-oOM1pOpr^mB>6`Ot@#&UlL*an1Lai)q2yD|;!{~-VU*jEbL=f7A z)G)DF9YGU(s~=fbUgKT8muYH_QEdoozmV6RpG7`*n)y8rFNFq7sA#IFgSyNaym+MT zwA4=Uy3x$0?@gagAMZ&Wigw1Eg_25}{3E|cJG5#uzU87Xg{_?XlI_Uvh)xhs|0iF} z25dto?U^ftBUl|0FycM*;HI<~Z*?KtmslN==3%}Ga1#F|0AmSCyv@M8k@#sBte1he zn3$uR!gW|keY$UyX7(JhA>(jm(TQu(nX}g*^8#RRDJ zd8LUxdsAU(%3~mP;W#DpjDl^ktol5HIS>Z6aA)ja~IAty%hCxf;}Ktc6kG-=NXlqLbausy`2j>Yec zTT5V^69cZ!)i{wrB^x1UCAioZ$!9c6D9c3I@%+1N3PF>XsLi%O6*G~P?8GY=bF43# z?R2xLj@jjm%)@eG<-j&ms-zDtJmiEg=eHd9#rxao%Bh)aD^w$#OPGw+RQs|7j?K#iWlu3dKon{JH7} z%#)REbrPuI58d$TD&Dx-(eE_!mXk-&;?#Jr?H8U|XxDxK6G75W=c_H6>a=S-=bdc} z#q}}B_x9b{AvZ5%EDH$EI)L_Mw(`gKjUc@Pg%y9wgAvdBvZxeg`JsV|2Ri;*6J@g~ zlX4Zkb5jQWM(K#9@l);pO%(LnG5l(l+&(U&heEJz#1 z9`R*hfpMr!#KPZs8qU#TpU*gh8qat&Q2a;wPiQM9x!B|Z5;=K>ekp`IeY zNZ473mSxubqkU3!#!+4{kl|1!MFxT%4)>O|x=qxe&{ zs{Ye}Ij{p=N0*utnoI2#+iEN-_Im4$m-E;Be-r;!6G>mlywKOWp7c3RmTqD*iZLhr zjLfC_LwrJ+ItW?J+O<|AjcD`IMBdQ3K7N{mNyS_ETlh=Z!pJ$FK5#B=VDabL--tI^&iQpRRH8Bsa?Tn%|bc@aWvuXyN?YzmV zQMcdK|Et+9uCPZOZEth_Ph>Mj$EJ|S*BCi<#Q0KBi#01%oZVSh*+76t`Fc;|_Wn=u zJ>~z#R?nE`>i@+Uw#C~;#;WVeYYev~|3{f=(S>WBWUc9WVsz#I6<19_8E7g)OGlQx zG5l3>*|7I!(>lkF)^SjxaJH+eW3T2&i~DDXr>B@kjYIBfClATpH(iwPx4oqbhbz;tkdMq z8@(J??S%vF?lfUvIM|i2AH7)#T?RI%(?O9;Ow-!&UBh5y%$z`h!z?EOYvOU7Ftw?p z_J~+6WpnsPyUtAGKI$w6y7Fs5GP+R1R7^b)6~UAWP)vMtx0cWuFKd1Azq zdYRxi*_MSgty*}?la)vuQR7z=LgM)jmB83 zZxnta{C_XMlMamdE-K{LSa}X!YHUJjH7VgX3Bw>ejs*$maze_RzBIW=9YW+@Pd#GG zFPSPh3WSWghzpQUq&gZM*BeyI=IQTl0tj!|=h8m&vDr2-MeRgwUoJYZ_IfD)Wyw=3 zzQ>cvIU&_5|8mcm&g{eL+DZ0Y&_!jG1f|(Q{Ge{hY4i^zPYgW0ErQWh$29wD{RKbUHu=>9BC*QLYQoRJD4cdmEvM77yxSA3|Rdz z6|Z>Chk-1s&5^g*94nklUd_Ic|L^Vga`6!V;G}?UZ?rT5!TwFB?N2 zj-(BVjdQ55I9aggKOJ0en{PdM8PjWf@s zO{sPKSHH6Q=iIH653Y7I{8c%wl+Wc}uM?mw>Dk1B&{g>6*2glwL3NbaNX>3F&NVcu zTiy^;dtpixQzriuaFCd6>n9G-;FhV&qHf9tk(*I(Y+%d^oCu{1p0~#LSxtfFvm*tp zywgeMQI|J<6A#No!6_`~jab-Lj0ruDc<$u$bl@rbu<2)BG!vkUdiY_+)>%Kk>h+cY zNlNw9`oPoiM{Uj4S8u@6%sMfv%qM)DKS5*dS<#dCd9!>_7U2>6H2;UEF3PV_{(tX4 zsS;cjUlh}^02RXSGufgKNlVi1pm}Z#x^*J#ru5#Lc-n0GsmHfcpfCqzP06XT5YhMIJlbQOMQ+C5?dXi$4Fp+7N!a6kU_!zr@yq^_SVK2;q3+~Z)%o%`O{ zeaLM4uV&D^A#|Tjuq^6HyzIIJGpxJAlQo{88(48^*V2 z-}^_4|7aTnt%Wl;5nL?d6J!wjhK}gb#{nlAb@lHg6@K8?G1B&%68*ik_7eXm0O*WM zX=KQ-8OJXDpJLI}n2w`x2v@CAt#P{gcy?P*JTHjb03j3{YYYq-{di^c+ot@6k zZBYQodWdqtWi7g0mzHiq#TfV6WOArC_d$l4?O+MBCkvRox zs=(A1Ut=>#(oSsg4$94(Q~*ZU^^7df(_NW`psL$J6T zSmQ@7W85Y~Lsh;wN5qZw(8Xq~h=r;06gJ_@y?JA5S#ulm1@=wFS$)N&7t7Wm7+dNZ zSPVGcIWk5$JyyFYzf2jedS5XKVCS$^Aun$ClZumt<1m)>iOWw^9IOsc`je0-M=x&!Y|YP;ZrTG!VdG%xWY3!%Vo7Rk-?6Q4 zwC`5O*QUnCOpBYXI@R5a-%oKn^|J=^;nVuH4&?vA#$f}l3qZWl8Yg}tS>`05CWw^- zS3geB;*v}Tf4;M)*=ET-z$wQ%EcwJ&TGwTvv>>0MY^fIEuc<9OYu-E_c~K6jI1x7K z8}dGD#bR4dUTWbjf(LnR>>1f> zO>Sj!-X^TPXrcA6^4a2P*?9_*ba)X7ZPLScj+&V|~WM_$NNL ziGohOdi_g!Ry;eePWej6$OgCJ!T0YwdaZKuMBbAx(eG994G46z-OQxe*RmQ2?~R{# zzhIx?Zo&q+wsSMJcZc|eQ(ugKGJe7ZM4(*sBF)9Z0sHyzLC+k5`8MiHZK7n%1yyT} zP`aZ#;vcmT!B%9K9zOkcgXG^P8AKNE8p6OvC9e#Td*^w1G> zZmc6jtTOT$Uy+0A8{P2c{uzGD+Nj<1I%j?;{zD66@h)a@45~)V`QB)4=>@`R$e^1G zm0^1ZbL`+1y2(Z{cw>i+jR`Gn(5%K%Hr_c-JA|2@dvsc(ukt6Kuem6hbZMi27Hw@h z%g+6{1kZgQRY!x2UNNxBE^@&ILYi+nkNm_phtB0~wGNKa9J5m=92}`Hng82{38K$^ zX3lmeBl6zHb1Xt<+&8&V6843+1|UbdPk(Fu71lJo4y=@*Xq(2Kab?K32(-2d<4n6G zerJ2{$pho=&i_T;!okjh_(i;jVyc%BP)snyr&9#~1AF0QJE6}(_>QS2(zV2@z*N-r z3gRaA)!tT1qj%kQb9`4o3VbV^*=^!?doCG50wcNx{*-Y%-}rx;+z#!9(|X;`rA8l; zUlRq(adGjL9p8eqz(3!Coh0n$#`$Twtde(%e#0h%uW#E)=~d?1LV0pm!Cw*$We*lQS!9A zc>#u1U;{LmS!KTPh68>HApi0TCwxa4$v_|@M^_N&3x#TfNE$|iU;UNub_mzm2bHrwlZIrp&xXF4!E9j#(7M3Kb@%EGl8gzpK%nw~l!VVrAoiLpTvnIV5 zPM@>`CwPLxlfO8f)8-@98<~x_1Vk2;Q*>83_!*70H+}GgetUlqXavhUCz&u#_zx8KDcioUQXy#o)E{mb^ zjwR!bops#TS<*ECgys@kVzF-W9y5X6>08_REIpIHZDnB+ES5I%_qfCUT;6ZlsT1|V zK3fCG*GAXJ;^2)Yf*HyihSn+MRR|q>mkEcfnB)^hw{*^%6`OMTAi1cH$??5mVDNhp z{z<<;IU${TjTlr8Cq#G=Y?_ZuI%|V?j*i%tiEiYycegc%ETRlws82zaJwR-L}xc*UWnmJE_qy@?cKVyR&5%! z&4r+lD{CQDDTRG2^9f5lE;&$`K@(`E8St0eehstx_|)Q0^&_v7sOj5{vVX_;zYCH3IK)6dD#!dU^Qbwd>3Y?ea5(V3c(GJ4ScQp~Dld(r z>3y^=wINm&O=pT&m*c?tA#4qPdTOZeEAUxYLnyz1DH?!XIg4S?BDPeqGyGzs;~F@~8bzOD?(~{4LnqVu9hJNK7%TX@D<%rtcWr zny0!6GN+AWd<`x8HH;vWe8jNky<{kUug#t?YJ$u)2lB#9wKwt`s2;tm!Z+sB-t;jZ zr2Sk65`>zzHdJ1=++%Z?dVLZva3j1W258!bg7>!UT-mF)U~ch8G`BTI8=mG3hN>Yv~hX zMC-sybmNn6o&O{IFZ=QGWiOQ(oQBdCJ%sEWMl1vY+ocm*tATOe9yD1}iPNrYP@VoV zS3+4ptcAo{R;@)uy;^yK7kUNmyu@>PEzl%T3 zCBV(Cl37W-0J_XSiy^(OAgNkC%@y)g|6~tPw(_e@BKbs_&~{>JrIgY;+2UkM79acz_`g?j z9ph~|ST$gY6AKQJghxN_sD(^VALdPvbIe2NN$7ZfcRh8Pgnh#_F&`6yp3w3l8Qop( zM*W(0xP<0 zu}%CRSTRU)3L2mGUOBAI<@DDLMwF1%ma%tdOQ4a9@eVyP)`eGxT@G1qc|Ys5ffB4D z>0Pv8itBto#oBMY)dE77YXy(8XWF>-sol^mDs~!CiUwx3;7<{!Zd*)uur7EUYBMsB zw(`C1Z2$!@eI>q&wXW&eAiiF#TE^%?G}!!yi;g32NSM$q{BLD8?*2lmOPLC5koxDm zg4{oC#%CYb{y*z|q4-b!AF^7GR`Y-E%fW{qx&q9wE;OCkT;CleFhXEzzIswFUa{WY z(!NJU<)f)&v?r!Ic4w^deXh^CaEIc*2%`*CK39$zSRlYR1Qb6jpFxZNSW6FllGee75J4s3C=pRbGlM-_hrY zxk;3_CmvXv`w(y8BQi#e4?xS!s*21(czluvI*ib|4q?Z^R}ijhPGV$7(hn4~L9xd2 zD<>hgR_HQDiScX+d3_w+p|B@|36`>O)u=xpmY&&f*?!Gp&Y`xAc1_))#xZP>=mFTS zSIlv&-;L1@7JCUSPt9o^r$2cRN9X~b8womw2|Lc~f-x6$z;qsWUMHrY=3dQjZE<9k zkrfRdv+Sd<|1El{M1IP*Sb-K((b5{tCH{+2PCTV~ zoY9PKGW5Iw@?3tZ<=6l@{(aT*{a^gEf2ub?ye0YPJqky>=r9~_1aof-ER~2@(mmgs z37y~g2fvNq_)mX(0VD}5)HeB?uYU{w^RKl5BJ-g7lMf|;WFRq$WgN6hXTS94{(Jbc z*`SQwy`$uRAX~DP_h@?n%PL z`Cjr=ue#_~v~yBnhO5mG>3RuAdKG~>CU`<87fL9>-YAS0?wpivJ=kr^k|WIaH>2d7 zk~uv&u#QX7qcL_}(Cy>eUvD<^xwA4QI;h37<261(a?1pwaKS+fyg9il8wf0tFc8I>vHqXGp)Gl;s z038DHrmL&POSZ#W7*!aQFna5YDZGHAOm#dAZ#r94NZA(_lIr!%n&JONBqqyZ1A#Y0 zItPgOVxI3CJE#~@0~eFW!UQk&QO{Jgy@7QMps+=l5uDgkug1Ot#k%-`lDiwxjGM=w zo9QGye3YS%)2tj{r#!_%haAsz{B|X9i`*7$D1CEHa#E>FI%>Ao`}ge?dqG>QY_uW= znUj~ydxoi0ya+$MAvTPGnim<_7fCHa4_`9=qjbc$!dQaf@nSr3gQV z4u!dhJ-i~PoP z?z92Jz$&ATcyrZaz^xQl^JZv%tLD5BI$n5wQ)5|XIc+BpFR+z-HoD;aB=y0(q*2e# z@4jGs*5Ppm4>92m2p1BO2|I%JodV>vp~6`#I?49@V6t_5Ez`|-?n8$?Tn%#Ys+i@{ zQV+6Wr?OLBM$Cky^g|`?VqZG$v3XVPed;3n5*x9+H*_>M#Jav10|M7XcbV5AW0Q*n z+TW#}7QxYJG*{NFWB4K{Y*)?Qn=XFTiky&8X%Gswx2#QvMCkOd% zJ9N5EhUeQg1-?5F5C(Lcqq8s|ulOJtJ- zTsH0EdGu}9hGOm2p#i3!a*KOPr1i6tZWRwU|!})Ts8J z~Me2-*|bS|0m=) znbEAplP_L~Wt@^l07VM)6KWX+EL}!p5?Q6q|1J#~xVFPc_(42)P1YIX)&=L_Am~J# zbm7fWzT({PqzidcEE@41IJzX+UK`Il7&KEma$*RiI@PnNES%O=)*Rh)(wP=BJDJhse`- zj{1y&D7)jf?yH+Wsq@Ke#(!(^zqOY|gy1D?TXIFsrv}Muop_U>bJ+8w!2S&YtVENx zUA&+1xbrvtv{_u)916=1eqwXOssqARTJ*4?Z%}@K7XQW1d~v%G`{7~}tedrzQTX7;455X5pyZpjql?+|`IQY9@nHqB*u?%|l8?c6wrMmcpx%m& z#BX^J0nvi%2oNrf<8Am6p#I8!>-t723_2kkVGg?km6&_Uvu^6kA|0_l`$;Udwsf8T z56xSYt+TLjc^o%_E@>+Z@-|M)zFx&i} zi`2iC`6x2~Z~DniyHJR+PZleAFUP*tS^6AfQbPI(#m?=T2=SD;hoKbMW#`~Ss^mFJ z&L0fvlOU|jd+=rcn5P*f#>dBt-uJ)4CqRDxpZ}4(??FA1u1X|4JIsKbt2~+v$D~el zY#OISo=lj*z(2{Ly&5M$yqL0+yxl&9pSObHykB4{lq#q46?gu1Co8W}e< z;MOJtFPs!14$u+mW8!Ah)~kuH$$?RDjd9BMbYEjN`4|5~PS_&}$TMIb9#mmACz?<@ zI{v%QAZ?5*mddunSyf9|4 z?L6dsao^irW5rP85xTDTkff^?*_ZB~e9ws(yqzF5It7MQ3HdIvPqHHQcca(D{Fb13 zB%qK4HfVR9!~)#DjQjV7MbwpWn#m~nSzplf4FL4XTE@HPYX)c{O!thiPdb<&e9PFV zL<`bv`W%WGGwGAD$*|ghf%&gRghVW3e{l{K(>{~Hl(Fmq%oi!nMHT}G)SNU!*>~!o zYL~B7^)NDAmh1T65yfhOL3pmZfs@SdWK(a*>P_WFY53{p)>z?KWP%le{}pTc#;P~D z+k5QnRh&&}qhdm*TmIkl!G-;xx>(hobUU~8YT;}i_h#I(;wk%bUvMO7M0{ggW*yf; zt_vrl4fEg%lVp}DN1Cs}HshG5 zaE%WtVY>iDZa_Is#b(71i4=I!v0IS^DX)#PyZGX$3A!cYzu|v3ZnAL@L_!BiEQw0| zZ-$|7y06&ov86qBJLJ66H#rY4HoEI3XD$BrR(gG4WSWs(iDT;jM*KAYPdTaIWqt*= z%k_kAEaXQ#%YLc9jAbBjaA?fU(C3AZfhV9>?w8uKAMLQ)H#*A0bVdg-ns0`#cbEn< z?K9;Ky%%PO-!Yyz@mKXFBrWnd*cPGrktC%qz7lit81pF)u z7{&yzYt#Ha<80WTg>18i*KZ~T4ycb82=2iv1Z1W-B9POpz ze_=sM&ZTse+7@hgbSO*SiJIsYk+)HAlYidWu?~b#Q|%aFEEv#ioW|U*{A2WIgg@-d zG5(M-sBz2upY`E<$dqsgY@0^8R_E!7_YT;i0O~uh!!NM((ZWJ}wj6B%c&$Be}~7Gl3j4lX96Z zZhZgG|5<$5a{TUwVTps2BC2mM-NyzD+Qb27lCbt1!}Ki_m~E4k=r}vE1LBzz+5qd| zAQP0EO4pXjdbF!7jm#zj^KS9fY@@*@M#R4e^hh2lSbE&?!Sh0rG6N@BeeTPX0Bk^$ zzwIWyp1h)-sSMEPv!6&x6iCxai!)AC=s%+Y^eO9-0HXM@_MOui;0>Ahjo=MdOqSbZ z_-4z%CFd+BiI8DFnz5cau`AoE)`zf69LU??^ z3Qx)k+j7~FD7w`5WD;1(n@qa+HGPJ7kwrrO8)NQ_Z-&(rytRbj=v{*!yQhq9;u*=y z@)ustQ_x;&TfL=0%wP(ju^T;GF4VB^<|u6PgCaaHRG4w;imkiF%V6osJJ!10*Vunb z4;gM8ZLD;Rih*fWn^4Xc~X`QeQxikFHq;{CuP@FC>+oE6PNcFbZq&5ErmVANnKSt$t+uPJ2-S8{n z%jtR9LibLWKQ=L`;$`Ls#1F^NwPT2G(w0M3E53uz9@F~4lDLkpt8QE<9|0AG^;-aF z+`H6>{Px5^?D(q%W@@$KxmCMcDzL^P`1iCC+W1KjC@1!f0yzFBSufww_>UOow24xq zZ*|)JE+x((ce3Lt!=}C}W^>(!sYc2a*bw;A>?8$-UMIh<-)Fxmed9N5h&*(gmL!y!3MaNgqr(4N_f zFV;XQV+uVNC`PKGXis0cHGuB^Q*i6317@nPtju{t^$Z3d-#LHEt2tp9y-!9$TF#qo zp%ZIFG-~D&|BDGD>mmOShP<)KO*eMkc}cm$455b+BsZei;e;`agv^>1Y3>P?uN0A( zgM}Tc(bfA7)w%ub6NmXB(GGqF_7&4kN;7GQ%>6>^l@}!G`M&%tTiJXIR0s*_f06@Bzf6qzsckD;seJA-@3zIIPUKZ zZ$7)>-RllLGwOMLL>0yk>;y2>>bPg5AFmu~kfXqm2tzbFDx<0x^{;V);KcFu$~L-y zCJ;!S+-EfgyJSCu_Neqrf9}iu2>K6x^a=jt@sEQ$kqxFGQOxUOhzy}Mjt7tjXoDga zk8j-bMJ)y$n+hFh_gX`xBv)&0XOawtcp76&##{pyO&Hy`erkP1q$OtjFt-TWk6^c_ za;?%(f8PV4EcG6+$!F@?7N(XXRCwdDbR1uJc8z(_)LQd_N@kK{2_LdUScrT>h zQ_3G)_+$X6(<4&`mN70FyINA0{vS7j{4&D<=l0r%v1&L0XQw!9lO?B9FJu?a%~*&R zcYOHK9k-W$(iySs1^ivIVyj@c9zk$YwrD?38FX)`@@53i7DzFoIDZ`19#9eYz6GL zmOr-aozAqe^e}I(HI>{@Ph2O;^{NSPI83%^8SCZ==;Q*J{M9B}V)B12FCcq?;*Ixw+I5F_Y)3th@Va zQ9HX0f94ii_lib|wAx_g6w%GH+3QM!RHuEqxUDqO9KUd%f7Ep$HVu&=M#i^aE;yFY zhG56v+pA;l_U@d!9Wm|ACok~s-3=8xG3#3Meu|^m*{`2-1LlSKb2NX**AlF9!!<8H zU)>g>##q^k=DxjB=_CL(=A_%rr+kAYl`q>d!bSE4z@5h*lGCOi&sSFw^IgOon|%c_ z-rOwHX?h`IxARB8U3G}?ai0H-Ke>Q^l4U!={Jk_QOd)(`{fI5zW;<^+rlHGRs2Ppx zPhFs!Vf=nuzMs}32Nj;eoz2277sXoL==H53Mm);P(SH8$`uH8G5Kg12)1RC)kAQ z2KVXON%@iqj}`4{+$gSl-V2*`p}YFOq1-ieGyF(vx?pwnSIQ_qQsXqWn7k{+%g%2d z4+$$=68OoN)dIfJrfAe(4>H(dBiz-g<;~d>>z?{Lb(G9)?a#u=|6TFCLR0 z;O*N-GW7Odd~h}yi)PVzyaEz9@-4+om90*yYeK1$sSKFlv_Y?#Zcd0e33|M~diC(P z7dO0l{q9T#bAp=5ATr5cWvR(uE*vbA*7ZG^Zc0)Ke4OQINtU%Fp9=}jYJd6aQTrj= z+t2Uv6+ZjZmXL%-lYgv=4ZeGJVT~_Da*0Y{QgC`>z+x!wm2AvW47>R7Tdz)heE05t z{xiD)62Qw^vTPEC&}}6omPQqe=RMhv_Nqfj(gev*rupc_4e%% z1Gs;0;&lIyOs4rAm9RA@VDzS&T9j-u5DqPb8Bf6zDCFxgL?3+c;(Ye{v-%J^C)%l3 zF{Q8}!}gT$M&~?c{F{Hf1rE!Nkuvg*DPn@eD;|qN-}y6d>Xac4zdNwxj*tKNkqW-6 z4+P7?x+|{|ns#POvTNdO;DPqGxWPQL{YtWH%}`u%?6ApK(m-dfnien)Y6 z%H~v~zBXFpH}lIEWmlm1Zwp>67*yeXr(t-)}p!#hmguM%Fr%l$l)z@Q&Pptl5o%hpZDSPB5))4}vBW8cKl$xaLaKzZ} z@|xm(ILPgVJ#yt2=i=3nP4Q;%VCf^>$AXp%?@0dOw7`vHqIjRaTV0j!G*Rh&ELO3* z_E^sGf8fXMlke0bl{a#91p_Y*^9d7khpD_wwaK zw#UEwBbR*l_MUupd3Gi96lMhsSE?X|Y~7G2#2osWH>^`}7e5Uj$UK00I`XX-FOIpJ z*W8V(k&Z;d1@B$`BJo_Y_B#Hf!;r)+Z(VxhW#m2M?lEtB_0iiR`s!hykIj%bpS*m` z-(I3?`3}xejiXG7Pdc&IKgWs27WqHv#aE~3xXnbCSc~azj~I9O+WlT}H28tjd(Z;V zp{M-npVc)v#&MloOq@2mJ87aSw|BwwMPfnWQl>q0wG9Y9-^3{#T zv9N40PN*C4lr>Ho(cWslL?WObqgoDokFg6sJU(>s;>1auYe0TCA=K@Pb;Dw2P89sc zsd)kxUaV!@;Xz*^%kq9~9L?||_`ll#seJ3ee;*&+NUSaTdemgsJHUCk%$|K7rX-!F zo;-e}y~dbx=j@;Ihv83T$G|p4IOjJX9&2|Gdwj%z@pX4jF?B4;nv8cnj~I;>)01}u zosb0;bKSAa|HlbhWKLuvyN>-XCn?z~-+K2JBfjx?c`aVE4Hl-@;(DcD+E7AQs+0e_ z__z^uc}5tyv!A7l+gK~fTvBvMIIzWf6TBU|h$}4dG5ucv&oypj4&t~vFcF4es_e40 zhfLr8h0pQgW$EX|2ag!=_ANgBlMm-%BZEw*jO`t1q-u+bKANZ3#zuv0Px`92x-N-$ z{VMcgB`?VxeZKn8Xbw=kIaynFefk0CNo@a&SGu|q7I4)2(i4xY3fg(v%-;8sZ}5~N(_Ytc3W z?;~%_vB-8J(+mzuUg43xn3DPA;b?eul#K~pUFhu>S) zx;-{@zW4JVK9ZJk??|GLaeMRj-ePDCoU!9bw>CCK9gs!J9Q@V)JrfvBrYE<+wtiuj zVB75Htn(POW1@Q4M~hqd$2Ke>dBi(%Yu4-mb$mGm%**0b|(9>3B3E(e0b8 z+fI*uZbm*+-v7aeFYuk8e}zcLzx~l2Km6m@spEbkQGJ^IzeZUX4al+5c3hLkb@njF*ymn#19ajU30ISKp(76Xr zLhT0e+KnmOYW)A!Ilp<4m5%)X$hkV7!j(f7NWyI@B9%>+j|Em?>rW9EbV6_7S-BHa z*2ye-d@MG6^b#L_^dg7kv&X#c^H1&#d#!6+$n11ri$UfS@WGP4FdlbD-^hDQ7i>RM zuQ?!7=|A_tk;qAo_a8sXbZq_5T_#GnHfERX__I3e@kd*(%9-T;7gF zuaDkfrqMW6P%%7mRa$Z@KwWKDTIL^|R>KS}zZp-+km;uRf^7 z)=xfuhu5Fz??jHT_-hQJbpLh;HbNYu&-}_fy z&99OiI{xvWyge7w)8=oC59G+yN#tg^{B04Zx(94Hx5`C%BQQ5cB))jrF+BaB$1cP_ zW&1NP^V7r!FF*d{H)FFnZOGL=P`EOPIAV_GEhKrfV};($A~|DY*lj-A4=%4qFri~i z4%uGZMlN}b`zhPqTmL+x$JAlaE*sw#+g_##WNey@=K4xm!M;7;Bxnja``}wQeDu8+ zS>eqC_dovOyYfx)|G~b))x?Q>aT7OX9jI}ab2!2s#Uomyz_bmlw$j8u%ZJ~6^O&d2 zaUiU|Jy!5P{N5XU_Ja?^zR}`k_{6eCLPb+hU$9*dG1T*`O%A8)B~Apk%nola4}W`= z_I(_t{L#ZEV_ojT%FuJt6LZbiv75D>ggw_W@FmL=`n#-q`TPdiAUMjm9*O76xk!5z zi^H12mp~S-Qums4m;_{+P%H?Jv^*j`mmK=c|?-pT{CIZ+;x*qwl`T`d_8b zFRSOTQm*<4evhxcdaAtq)|e#lL@ZALr_)b@lr6giE@EaHv{NwPd~=gd4 zf2Y6A;IXx@9&0B5JZX~&oY~seTAiLD7&ha*ZhkPm@P|;yaWeLtj87jrV!}t?eF^r5 z;yZ#}CA#A^9Eli7vs}kh3f=0m@}hGDcOKhuDmVO}i1`TqAAbAg83zI{4mrR5-HHi0 zak`^~S@@|WQ50#FEH$&;%Selnl@UPz$NDNm2N6`A!?$Ad<0vm5*mA}@9%B@{%LdfM ziyd&~r+#d;(OT>>T3o5;YbiSdBjwKj=kqZ}l~^68_l|{!9D$lufh}zH=h%<|VnLf1 z=}LUR;Mp^A1)$gx@7)zwIwh;A#TmcAaj6o=m#>a2)Eh>djvLvap(7ho=EB6XO|KaP z_1l_(HciBaJn2UKO+1g+$Bl12#%;p=`S0+(^Ai)`{v5K=EiA0#z=so(h7-%=TjRZ@ zot6)k&IO;EK8on%g>3Aj@4W<{YC2;1kt=JA((axvwlZWC2eEU1qeVj#8%o=^Jpee- zjcTzVb;L5Bm>uKx>JjrgnOc;x^s6P_u&&W=TcZW78wk3117Hy=dG%sX>MFU(ZO`X?MXU0|ad~VKf9pFh$lk`h^xQmd z`BU+t#wzvDWXXF|ug<4kw`Uy}*pPAUdF!MtJx@VDd~7xzaho^sk4-Fh$YMnT2B_D)fPim(=Y`ZCYbV5oH!Sy}vc{7p?~Atks%0nl!ov%^xAcTI5-gq!C4EOG?B4Fnguh{*Q<9*-AJ6ID#vUTdw=kU(r4IYf#Fz8k5A3W1a)L7 zHD@s7#GK#PB1`RZr{pv7n50O)>|g>kwqZPiYimJ4H6}_vPY-GGbDKYm$P+=~9klQo z^sM@hp8XMYmYo`}8;G&lY*g#=arN)AcHGPpm`ABom8#i0QMWhn~r9O_}_^c^m6p7nd!Q zEYjXK_gGCa!6fe`YrgS+VoCG@jxm6YBNtOE=_RDTy=eCspXX$z5@3_07v6f9dh;4E zga-2D7~y;OJx!t$?oe{0Nigxx$^SQkzI)Pa&quln^9d0jYO>Ewjw?`s=$J}+p4V{!2rws-eB z&342x^?!iAB~a`{{eRQ-MSjy#smYefwM+&lw&z64`Li}ISnnw_ThI9Fs}ZN2Z=YX3 zRK-OeNBIViqb#6Ag&xzmAq(E+Ha-cL(vs|;*klWzM>+9iqyO6m^m!7?i^D~=P8CP& z^wuZKUt?+FjDv5Ng^R*im%IhwF>Stm<2Y7b++Kia8>a^wRaAawc*-9eo-t0q^eqaz z#nM^=AhE8E$L&^l73~i@rI59}G9lJ$jGM2O(KiSpCWQIkDJH_3$yRsNdOq8`4wkc? zrj>3t_HRqxkr87D5D|NT_kG%F!%^{)p6rSG%$H(i77ZI;RG6Nq?Fw};1 zg{;DayNi` z<@@+FMc+(E#wFE_HK52g`2+RpsewhO{@PHJ22;E;A|hj}*290;f1TSwefhGuYYxbd z+H1d#a(rq(VW6OsQ`Y&Ft`oMSGIhVYjfHc5e$Go@GIuwj zhw`UpusIw$iOv)$X+=(;`TwZCY~a{a>&zx?5w_zX+X70PsCAlB!`bY~ufS4BFU75@ zs`~G{<~GOIW*i?W>w#M@CatHWV{C-iHxy~Wi|K@-B*YLmiAN>!d-F^QJ zOWX2){M&yIfA{bI!zcN>vU7g+zB)ns=fC$6{?Y&K|A6!}2d{W6-tCc5*_E z0`I=4c6>d-x4)xa|K_cSn7vD|&G2v2tZOB4qI%sNNE^diy!Dq839OqR5U!7Y=E~Nr z_WJd^ak`!aIld|?5<5Ok6R*1@L3yq~n+p~5gcm0V#t)$r zuk5E?7VzJc!^GaIzeXL8oK;=N60*{8blK|lXYb~zbWdA5?y*mZXOTSyF3%o^ zg`Pat;>;ZKVj+F0v*(vsxW<3%#i#3o-n%!BmmgTlaL_({P$y5bsX|Wc!cu<{4~QY7 zenn{1*fIZXDz*{1e1m;HjD38c{rUBd1Ve|sW(^BC2*AF)|3mfTCH#!L5Pf8iVyD5q zr;d#81;OL*@w*sr@42`T_Huq#`T$0VPSJgaalEjL$24P-j8kWP0}@_7nD&r1J8*Zm zP#bu6%-uFrXUy9dj|D-X@L>LRSH6(=TKC65(WU_9+4);g&I^Ns|FK3%fD=$o7|I{Q zJifx^h!r=AmB)|OhirtBlx-UC1w>jI=S z2H-W0l4oq*)ST`maDkDVd%!YYQs=2_rpK>8`oZVt_oR=n3UPe$@mpE6yee1x?Vj;? zW7Ezq>V4TF_WXGBpZ?ZAd2E9Gb$r$G>wo>kOaOH zlCGeEnp6c{3iLc_I>FCtkvEWygDg+5j>oS*{}MZJyAsU1i+sYTDe&Y%`@G-5_^a65 z`3VrOu{#!DkKfn%)&Ziok(mDY2d{w$QeMF&PaZ{Jqe)~X7L!Np?63kVFO0-k?%S}; zGbK8|uSFx2QIa?BoC~stZ1I(PMHU2yjlBb6DOuojzzp7+xUu?;|Jb9{$czER0YeRxm{EYoq7dI%OG3&7*5;$0(IIr z{1cHV*La29X2O$n%Z~G8+ME!5_UYU4Rfy+T)r^4t`6q8Ek=ieyj#fGci33v5lRHLRng|WuV5c#&|q?^T`W*@SS&9aNt4z^H0MGti?6$tC!>vY;$!m zpw*^{gOcXSTK=$I;OUGT_vZgR={@Qm_IG^6=<$^rNB!eB2|oYq9askp?B=|I#S&Wb z#IHv=7H0Sqbt=Jmb7#hvcou|P@)P#InErsN$;qhr@sA!h`DZ>DC)^(Yeg2U3_2+l& z7ASK3H#lC5^->xt*^Kb8YJuOoQb5D(FpS|FksDa)`El>#AH6-l|Mxb3ljj)6H*fA0 zyU_iA5Wd2uMJH3AX2NKqsqYP4I)0hkT1u|4$T^Tm(S1;i=#aW*Z#&tBi-E`qRY?y5)7&ylAlgBt6 zzXNjQtB0SR<92j;2Ey_s126cJ?DJ6q%QftsuFf_Ps}p4@xAui???AvtdtT-bw~ z;8&V65j^!b_4fHgj>9*Oui-hz?G4Ttkkxza?qkW!oA$>%GJ=d3iUEdgjDk_DUb`rY zrljNY^{4k!w&N?q4|$J6h{wG}5Nf#VD{Gj}V^9Bg&u^&+tM%A?2G7BBmS6pOndl&I z(!U7EHt_g!{Jz@xTY2XvRPD@34t%LK5GTH&{#p=6J}59RW8q|!Jn!S&L+p)}M`No1 zFm$E|jE}X)WA65rjs5&{9;o^3rTPW+6PV%b?`legX;zF<`cK85$icnYC`16pDI+~a z-=BSaA76btfBxdY%-5gYrSCzO^YOwf%fDq!)l%0o7}8#LUa@q!f8G`Dn|t;i8b>)! z)%?jHeKs~g?yfYP}bA-nru2DYk*DOnh2XNOIf71h|i0LA|GeY zlUM=_Nf*2xr`x_(VW8(50`@gI1O>6RjGg4K@*5z>CqUAUrwTrOEG{4aj=+1Lr!}m) z0$+NL4QN89l?G_vP^ZQ^F_+hVYGQ|xs3C^;$l9zvPkkJL{FApswg*3VUI{P_Zk71f zwYSANp1cMhI!P;*di-8PBJnaM%V6WsV#vwGLHk%AITwY_VE1mwaxZ?1e`-&`+}i|{ z?{ysFo3crA+`f|yu!!>`&&It-0E%S5>6L=)k&ylPVUr)fS!D64gfb~jB7s^^8$Sj} zPaE@C5-R4$9fpA+ym=MQlX>};nz9MGhh3`sCeh3FfQ3~0WY zl&N2q3|$^1wh`8) z)x;LmVrImu*B`$)7fW7!`(5?v$EPH2c>UuSLZdk9PK<>|mO%J$4Mq{cIzF0h1hCq~ zU+{I(q64DoU&oK0$Jb7bQ=f+LC7gwH8F6u5pNlp$$`V@V``B0*?+ag(rUYNhSZHYw zlbFwKru2pK*$K*%kNNr#_J@D;dVIp{4vDKv_l?ASvbN$ulW8u9h7DKo3>~wE4OEV3T&>pL%1BzeZ`>|3n!jSr_C4Ghv{B8&DgAsPY4b!j}wVM{1+pa ze0RT3?pcpygYin^&|H1uA5Gr9tWP#71i|Nf&MTnR0%sXpnNkHKONKsuEH)p9GtP}_ z{^8>guQ^PKRSOw4PU9gTx?*e^Z`DU@EUbR_bq@L(|Do{{ibZTEpZ>`!eCy}mjFYla z9zOTk4_}VCo2ss4i}$3Xv#IMQe)s>tjQxRzi{kYfKl02zxzwFDddBb1-kk^7&P};E zBx)7Q5)ZQ3+%#18r~Dt8lkz8H&3ZgrF+#)%$PYz^eYj$(;Nwv*^XtbLef;)Z^cprv zfIB;IO}wl3v^BOPtY%N3b1rZO-g?EDwDZPviJde4!Vx$sRx7lGK0f{NyK{r*#FDp+ z|H!dVJzG5-Ht9te?BO&1So6t@m!u=~_vBD!a=&~57sX017@OXQY-g-_SN)0YG;-|g zkW=`$ye?Fn@7XNV?#Sjz4~5&NVmSM~3l1I+j>YuPKN&aU$InamlRGjno&T@7lpLh+ z^%+yHd2ShCzAX|kF*q#a)>DHs-aTYFWIGNXo^|f@Fkeg>lZ7k&=mad!z>vfxp}rcH zZSDykx?@EitrU7WZ19JF^k(Lg$Q(;^c1XVEv0+$7q@ohWFqp(ah?GCorF7&_pf}c~ zFIx?LUcUbL)tQUF`t}>}*3p|!U*hv0zf7##s>obITenN&VQ)`4_7`Ke=tBBqx-_rv zgP9&kL-4i~g-LxbxA9mLi?{_p?bxAAq#-~9Fe@g)yv_jhvc^k|LNaeaIZ(O2E5 zIm+++?(gCM|GWQ8!I`eVO8KhouIO~V^y?Eq-x_}WhcC~Kkk5a7!>2!dfgk{q|!Z-D&H`2*-AiAVqAIwuEC8!_{JjM0+Ipki6tgViKw#qTR?^7U#n zySW?%dLRqR^Wi=1jXE(TkKPce7K}U>r($!V_p`9V0EjWtM*JAvN4s|7#8c;G+nl$Z zi(cnP-UpA>u5HYqHa{YvU>)VD8M8fJ8x}qndHMM=ZtHueOol0*@=&w;-P5-CACu0r zUC#6j+s%l^N}2=PZ;_@u?6s>7`~q~nRjNg}=+h+Ot+DRjQ44E*fh;Npp6DrFPaxT` z$P3erRp~wd+8P4}uGd85m>BrGUbg|-Imy?>+7=7|?jXwjL|Ht!+8rfg^zfu;AWNi2H0lw}s@9r;pMddH1wO0Ew z6Few+H=WD-!12=E_zJqQb5*&YHeBGa)iJV#O~vJzqs2lmxy&N6SoXs>!G{=ntnk*y z{a$f!XJN&s`jePcz&pw!+|gn(iJAE&Etq>d>9=9Q8!thx{NKU(?YnpNeKy`1=2s{N z=phwIdtHz#M9fIvbiQT)bOHc5 zFv9Vi$1Q!tr483tog81KXZZM!KEP)`c=cE?dMph6=;ayf?r-zQl2RL2p;Qjlm~JRl zue|wD<0jmjIYP-Hn0GuQd50{nZsBCJzUe0h!W!K$ zrsi(_T;EbRVk6xUsQ4sT!DLVL>5tbb zXA?!lv%1dk)yAOgcT|+kM_|dbO$-=Mqy`PaqVwZG#(l#G6KwG5I*(ZPeAzuGz#I{e5dEAd)N%sLq%S{x{C1maV-(6%59q2~Vyq;98#UOrN zI`T3pC*DAPq0M*s9xJ>|BM#6ou{w;=)KGjq%B}T}qzN4xe&(BcySlq}SG1X~w>}J8 zdk|ddec6UTwD(u-djH;d1Jq{yiT1}=SpDEfpWv&Ozwy`qZS45&y6pG+Jv6?%On>=n zYd@2d;&bpXJ4PdMg2flVN!wK;iR@ZnE=aSDAwl7KfRTJb0X6y-hj%vKFm0!AlX1^9VWhixF}YEW25kj9XP zI{23HBd1OgJ%Uu-k3cpp0TCo1wg9Dz3X&{@ZfYo!#-a&On^SG>C)q@Bhz@*32Nyi zlQJeDtu1XKUWe*x{4y~xWn<^7Og|nJCQW?u!j;^Vny&)nlhBQwj59TIL`V5+^r?0e z^;jp2ss@!DNj%0cHrjg3ifM&Yt8|Z?WO?#64UDPBljV|)WfwnTW$Eb3WT#}S`WjkDk0|+oJ+^JjY-s%+G0O|k;al5f&=!Nk zA1UM!sCS)}UD7-7rgHT;ecK@Z&mdX;A4H9nB>bj-FvbrjgW#?ODO+WBU*so>B)Tup zy8p{FXes|^zipeqOhKMg^s(`gvhGK=a|+N&)=4xcf{8EW3;fSi2rrUBY0Bg!A7gkf z969!z393(rVi60H*lqO*9&VgD4Eb4Lurs^t%p8+!w1j{t>mYYyyNlEEk()y2q7@fuOTo%}7)K%GHljSus!Jzk&0&sG}RKJGwPogG|J*@+7-K=t8?=t`OiG zpU%C9uG=7s$cZx=3!+bNc#?e?ats=&wAc7L!^swnFVK?-^?#Bx8psczd*NZzN8q~T z|Bg+b7(SvhuA8fbCtXe{<+J0R&)7B@*x+L-!E_$$LN&c+wzcN}2AwCNY*7?6ktVw& z|6k-$U5WprY>v zpZs|D<^@u<)IK*~qo1kTgkLYd6pKv!hHcN15B)Ta(ul*t8=0YPa`?G>Y=+z>uA0^> z@hVqqlE4-jk!BdabmI=yO;%=_eRQ0V!Zi18yVABMK&R8&+UEJLf7|q9*z?T&tPZcQ zpt?Ky$Mv5)7Hj{`{2h<4QjXt8__rRL6J7p3HaiII_Z!v=jsM+$@bBU4l;f+ucKrZf z%m#LH?b?0Way4er*HisQFm%+7cyliO|LWlpoCx2-m&cyIJknewDAk`X~R@?LyAmBy?X1?v%nJOuE z3`>Gplj<6qnL|y3yk(I6Z0{d^iIfqnOs;)`mJZ{F$o7~GOksk=wx^{ zu#w2$FJ>{jB%9P-{Z4+@$z$|qn@OV}yFL-!R~(c@hMef`u`LuIU%9jPMGI(#)mOv+ z**1cPK`@|*GzkgIgWg#1X8*U1|05?+q6@O0>>vXGN-oqUsCSGA|5;eB#dGn0qYX*c zhmcjSZ0p)mt3mIfBbcTE`eXpNs~#O41;EXnKWzx#&xAjBCK6Hiz3 z3Ac(vasYwuv9$G|(^Wh64FDKS7lM|Ej9RFIj)5$QXHMoRXPKSrm_?WgogZUj(<%*w zSDqMTqUZAW%p)Oc7QEuGatoO&-zSXE=PEm_*(LJ_)^e5G)D8Eu7Cs59E?W!Ww#j|M zo(bzv`lFf+2TDWb|4{oS3>_@4wrA*7)P`)Q71vLtXWk~bOFZmAfPDq3lNkk-PqSt> z!jVo<3>$Q&vEYzs(*iyGrwnXye^VdqMIeaUvaN;1=0YFEB(+(Z30NC}@WXf*V->RT zJcZhwz20l1%Jg9lp?h)d33T+DzU@nV3F*RioUk|Ukvn7`>4R2&9KGGi*6(bWmTZ@P z+`*aXnx}RdYf(I&fiP~|vljmgySNT#dAg9z^&mwld4u#RncSpL5Ftk+H;UYu1D8H} zA=3kIC|2$w%#r)o9Hrt%^B3|35hus5@GAU3P}`{E_9?!s7p){*?B{Iwkg*o%DYW9Si`Zdh!3nL)MG8u^7}X z$Bg_x{>^^V|AmF>Yu$V!Trd}WhBeT1`g&5K-$;^OCbap*#?8E!8wS+Yi0+W7yghVS zIUnn&2yi|-8EFjIrT<2?qu(1tg~-sIu=E$)R$dd>7|+?El>*yvj_Z6bzX4*4IIBZ- zjJRsItA~qw-r8LCX}IpA*TsAKyz1B6Gi-RcqJ7o&H~ztI<8S`@zl*P0e(kURMf{`3 z27?SF_A;Q|2d=R_%D?d|zx=g+{QTJ9`Mp2*uNNK!JfYA8?Cl1d>#tLGJn(BT%l%vt zKvId58RdYw3z>b*dg18KorrT0NEaeepQO1HG;iRMw?yd!#7ux;w{ZQniXaK;0~CxH z>_K)I@qz&MFMP?bzdFkK1L&-$*~ia)@1t`=<==SF{H2FI|NP_q&wckJ;pO=B$nlA+ z<2OY9*@Mo1{$Kq*e(=Ljl0VH+)(B(9_qmV`c8|SI3-AQ?oLu-+D+N?tP(=QKWJErv znf+l8xpDLh~r}l(+vwNyi{^FE4Pn)0i8XFNDWT&WM+8OY8F`<4CB<@sVe#=HB zPv$H9Lve@+T2C;8zL8k#CW-ayGHb2jSnS=1hYy z@9~U(xW4SBw9&^VYQ{!aZJ=<3ND=at?UnTe#ui{n%sa+}T^j4G1=p}GSxlaNx%Ex8 z)fSWI_C3|*kG8~3ehoQXZ;Ylr@!up`0Uo|QDE?fa5Z+KiRFtT3>7o8E01p?cvFxw6KT~$fCjVpUh+E*4h#U(Qj2v5qi9ITtD?CLuq2ej~_5o1CSyY_$KI_rwb%!~Lr-URgs8p%Up zu-pp_5?8a-W%14ROVMn163<&apd_pG$bIfz2jyX<{D`YXS{nx@T(~1Do|hsy{`Y1) zp|9({SXN_N@d>Jv#2%ByFYb_skNZsB`$dC|9zZmzH_xxs3Kh6i95`3*Z-Q}2N8J|^ z8_e{*&k-|FE@Z+N+n?lVD4XLLn|7G~G<~t! zIFe0TC9YuNFo|{S(wVYo@X{Z2{?7~iqU$E#Xjk$O zoDs)WSS)^RoPh^0##d5Rs*;QBUiyn#^XFi;c9gZO4m=#!_pQH`1lj|{=N4f`2ar5C zF)9YIjAQ9J&7^6rz0G+l4OIOm8r!03Urx?jZRDOYjGfw6#zN-=t!RR)oW}Q1Ppsu! zCw4jB7yom^pZsXGxQ+jFmCg*kF8&`rlg^Hb30Pwv$(bf$&9BkoNLyDxVy>(7VH3`W zS3z#AG$OWfen^@_d}>AJ|KxA|`lP_YnBkU0u=YB+K+W$Nqljj+(a^y%cLgZ^(|XPJ zcjt1y7qaJRtS)SEbKlVJb#{GS(Ybox z@A-Rp^9^szLvL>vw2pFoI^uVJ_n+Zcf903)Rm$--SbyvP^nba0?icUYhcg!`|Rq=md;DJbFPE-{A`nmS?)K2PJM*#xPP8TwsJ6k%6Q~@ zI&^^c*_DBli*$WTjCrv*CnMe`oD;}wldOH!LTK5s03`{%D>;IrdbRVnXTEGXJ^>Pe z^4Pfh_y5{o!C(H1|Ju2ka%_5h6?*^VcYhCm_doef{MJAIUE-1^Q{c&9FBBek*}x2L zk%%aiPufiPu&q0P!U$WMIs7xRaPG^{7KAEE&;_(%yKx#}-(A^X1t$%z852{o@neR! z_z_ta4_&UoaBcu#Y~-=8IM zUpJkw5Ibq}F$M!dN*kCNfcOX-Wb#j}xvHBN;P~XH8F)Rj4W|HrT-V58+Wz#Sh8e+& zV0Uv4YpcCYe;?w8Va!=d=qcye)hFKh6Zfq1dVgb3H<<-ufdlO;uoZjB`+BVI^25@HV=--4b@6Sp z{$k>Dx?tB>Bb&={juj7!C>~a=Q$CrMxodtWPmk+)GD*x%+YRV4%Dug&V6|*K$o0Lr)h_;75B;KJeSZ@FaFvNM zyLcH4#5k8}OU6INERxhVJ`tE1asai^PxL%woHucvaTg~mzoyAZ{J?wH#imqlj5#0= z6Os?^1R?%dg(ThVQLnw9=KmQ7q=%?MhFoQroB?y4MwnkY#g}>Fvp8uiW)~OjSk0hD z?e~{3bsdckzoPY3h3R-W;n6nznGc+dixWD%?e6XTAD;qw(hZPfQTO;7toRhjquQfn zK|BA+PyAjyX*-_A@1IWD+2tND+~;x5J!$hh=az78;2T$r?+UQ-n(*Z!QWA8;#)N=_ zHJ&C=Io)RTcN4C;~7o&3BXC^6~?iMvhdy=ofIzGYi z$xnO-{?w2D5Wf52^=aF8{_c<7{(ksjBjxbtzxyk{hQILBpTB)dq;7u#vyS@6(fY(ewVl5;rzSjey% z0CnueI3j_K*upFdxbXL;3l7?%%XM}Z6z(m)L8dJ_y)Z~$@Fa%F#$52V@Mp8oaT!r3 zB>-pY#0x5NENPRSDwF7j{J!iR&Zqi_&FtJ8`fRj^DB zj29{1QQJkKp=@X5w}ZJ}q<0=G{7bjoBZ_dI*zh8!w?r6XvAvx*1G?CTeR3pVAZ#+K zc=9RjP9SZq@xKRvwp<*};ssuABG~BWE7K-YqRG{5Pj(^+C6>2z0Ny{fc2{AR-aJK> z0(o5=*(}y}5H^Li*ah1TYZRC_ti0Ab z4mvH2!qc~qd8h19qLOURG6CJWjqscwypn{!!ICk|H8I5+UgmwKHfH@L-u1$P!yhfg z^Mn=tgv>K18PMoYy>nitG1Apc5QO+?n;%>wW$ot6lfFsc)Xo|IHawxQ7gcYUhHpAWQW~K+knupeC0pCZ231q)h9zT6dE}IX z2GKlDzU7d9DF9*b$l;Exqhh`fkeyX7#&>qZWZY^|lc7CDyLEB$(c($Y&2f=hR$pdR z%h=62HR!Nko9L2XwONkbXTRg&y<%YO-+4z?u;F4cIW{Nb6Cp$1z-h$#^d9N5Bk zbdh`2l0#q47oa{BUQiGJR9@2ZpW|QI5o~hxk=n>Z;-c0}Buz5Dcv_zJlu6^CaluIa z7L)gke{ABPQ73K;U)jx-&vO@2zOCasw++qs?h zdl&lF`3gWbYLG!n;Lg-YS6Tm;T)CM6qx@3H1MK31d$sr{AHD2ub7GEPSysZXJutL; zI=$X!H(t<3>w}X%IJwR|bbh$m=DlGT@Y;9Bv$uPH>T`eVseTOo_zJCVn=`XJ9^K;J z@B7rppX%$c{@h>vPv!mN+OzX<5?+rb%e`jpwbSqZReW#&MRpj)<`IPX-NewOH!+n6 z2Ji=%DKi}~^IYrWO{VcQmPs-I_Rtc5^7!6yuW2;vrcCI-N>{i)>XZ21pZyb`#^*o# zAH6G^A3J`IjgVjc`M-$2{Ad2X$zK8VXeCWe{8h%%hn^F>^mtY>+8L4+Ew*Z22a10lC1`@)Q~1;5W;fw5I+seSSl$FsZe*}%`Rc-bPLK>MA@uk~seoxt zN7n^kUX)V4eCp~H032CN@*Fu7aTmVipX~zv0Z0R=FiIzV)@wQ_NVN!X<)T(P^E6mI5DLa)Hx5H+zj-9L5K@!7~u>>SQ+#FAUJ6#!MfM@KkE!jC8E0@a7-9Do)|I!@4k z6=sx&$zRuqrXzwFsr$gcqbJ-^oGGwX{U33~GJ(#QKZVXsI-$mh90$Xi|7Vw4VbsCA z5LrISAl+*N%v+&d;otHSx8V?}jVsx$N<78C(8D56$U?7ZUrj2xviZcqADar)2W(U| za4h}>wi@aaDtF*nRYE${3njSXk|$r5T&Nt`wb2Wa19$6^`lhbnp{EHtcC_$sF>GnO z_$t)ES!0S`c}4inLQ&6MD6Tm!&~7*KH_zNxapK)4O0{Abo9{bTEn`9LUMZqs7UIFo zups-o+S58MY+YBbb!^L=J@sWmnWz}Y05V4p87%pO$W`1V22+d{XRbJBs2C1FwOu9x z#xB9W}&V6f5@aJUyzlI7m9I01`NCQrfgd7i{-UX{&x={UEnN z^1r1kH?EJ11;sV*^Cguxd@uQ}FcYFa`*Qq8j_X+Jl|1M8Eia<%uce+Rz2S?d%4Eh^ zxr7C|&0_o@ThR-i^V1#~7ueUWG^RCH!avwwG>4F~K=)Yl8>4ke-+6EIgNgsONf`Bi z&@SC)+}GVOY>`FfoUw6y`q7)`Uf78H0KDIdt+k1RoZNe_t>L_0@8kQOe)szL2`#_V z-*CqO?cQVav}eYe_@ ztZ8h%j^2+7oa>xH6ZB``y|==w5>k#WsMkKZB$Y)ayv9yr8v7t+UT;ok zRg|3A#3wJ6{I&Sk$yHssQl)ep#Se|b)~C}~AhV60IeYNH{a%uVUTo^ECLLJvkdWA- zh|4E*nBUM7Qy5*GSe^@sUYlD+;5CZT%L=+Ax|3qO`8gMujJ4jwp*e{2WO`n!VJ+nY zu@ahWYb?m(%w5cxuZA|ksC(jAi%7_Vole+FLABWHf&n3tr7Y@fzDQPl#o}fzdJ zQb$z$rzjl$EwX1<8m0v?Lm-br*c>v(gs?bh_T6v^Y+}`2&hsDZUEynDEtbm130;i*;-0{T}a?@wV!JtH12H zu^{Cj4%x&l!fmLU38z}_a)2Lh;f2Nii5)gNGVJ#PJoNsrvKO2Pdf8faYpZf0t$@CiMid;AkI?g0abQ@nMl;KbGcKBU(H85eR z2W-tJAQ<0V6`jqupwfbBZr{ibvKKZ?H&$9--h9tZXH4BVqdoVp<2C<>uoX|&SbX%t zGpCjr)+7P9KZ= zoNI}|V9bppqdOH>*&Wug&Mv0m)AsV9rMtwrlTb??%5g(+2NWLWhBx29Qdpzc{+z^( zvCy8lU{Skg-_-@?qh7#(RO}#@iRgT zOT=_Lhm&(>E^Q~ry)l;H4lnn3c+~js2>_tMnM?9}%o41p1=N>__i8xm!<+%~yCKhbIrbX5vfIZoUpDEcT_q z>fRUqjCim%DFyRNuUUA4RDA*-xll~L=sbqApiaa4Hg}XobWr|iYT_2@6&6oCl{iK` zMxj+|3w}tCG+AE?LctAfQKV#{pWNFC#+9{p*F6^u*ke8Q5EzmRwZ;oS5QXMqcys=G zssrNpDp&ajqhi6b2|e}UdWys-ei*K+C!|lG6e8~-|DE5OrJ;3F*ny9WZ9X`OWOvI!Xl!dn(*W@OC`j-pQq(=dwSVcInU<>oyT*+Bh z!+CCN8=Y{zT_>@~^j6~;HZ@FnM=X4JUCc>J<$quwkcIU+@uisO^Ll4nJKAYLv5fI; zAO8hE(X(W?rgM~2FY)h+lN3-vpYy`>uHrKNL%FQdjN`@N4NG|=DPAKM7$v=7g;9KJ z{9|c_)%lKsycTE@H?7H0?B+y1`LkMp2!9ewZj46|Lb_0f0}EL9wY;Nwk(Yg#9Qy|3 zRhL$hj>p(+U&077bI+q1bi{Y7YglJNV_n=Ri1B+^+Ztn)*}hX^ategX|FBgj%l+j> z-Rpf*3n+h+f~jvyzyZsk9rqo`dL=~x$3Haw6%cEzr0c8mp!6wqVV4OewO|maSR~-H z{;7mo1kGy%WXqyuXw9a5H*v}j@ho+AC@6=tvjEAL+wae{ah%7zm>9;$7-1(;)|5GX z-dGhfh7ci{*w}%FA|KtxjnoG|Tylm@>#?7pIpDox47vJZWYkVlPtonPOi!_27*O#7 z<=o1D)81xF9E3wMZVjfq;(yxby43L!Sr9X9^1oqKNrnO4tMP7$Iz`3k{gkuuurouT z82g8Ad?@Y=ws|Hv=`_FdHcpP^?B|?iiWhg<2w@pAZYLpI$dqf&&bhFiI+!*$tIZrz zkcmw6$~fTA8fX3^o9K*#+j#-eM{k6EBBLdZVmP%1C*M1_bwp0P?jRd5Czg7X`9@;& z1}K1yQ=eaO-^7g7!!~|Or*cWef3jh___w@gjel?PKL~344@$cJM>q7^b~2^-5}Ua( zl+zpv?BI~K1r0-KOI)Tx%XIs%hiq zE7^Pb3apjg^Y?u2jvh|iiH+{|@8kC4$GNT{bbcRjUoLNd_6SPqPis7m zUjN9aK7prcpPN5^9_>-O>hGV#XP&gZld)prUCATx$c0`)UN6c}NlkowMruLZcyIKd zJbCztNf#y^UP$7EX9VKK+dGN4P4kkOfyUZpF2=0iJ`?o6^51{wKY;$*)s7!o|NLiv z0{`mAKDwEhRZ`jEVTe5H0Lx^!Jwvexof7If^xj^cg# zQ=ORiT2n$%hy|o=4xz%Zo}{Sz%4Zz>!nzoJFVaP%CLQF&mXdqcB<@@v4as??l!>%oQ2`)0a3lCI0isvESG} z0f5=x$RBt1wXMPp`P2}c`e{#A9qWsqa*fOti+%MZAp?rK_aY|WXNJC*UGXKipr6(! zI4K9x9dZ3)w#Xj6Wi88h}*!K0$*02 zFr(|P=VQG1%FM9B{J-e?{Q3cdEL>(PEUHP|X~AfmQv73;Foe5!%Dcr; zV;XvC8;_X-taYfGh+|D+&szpK^mw^5O*egzMD1Z%6dz+v=jU7)=j)R}i@4y;vXyy| z5km*cD|38p}CK6dEO{xH>PRPE+Bi)+#WBeXXTdhv%7%h3l(Sn7J zozxVzGSb=cav>kj)vCHDH$pG8Sql^VV>Mfk^Xvqq0XKa_1Pfo(E4)~o?_qQtczYbM zgLuY==st+4o6zeVo8mulelj@U5rLsc?#tvtuNfvDwsEmb4MI9{`g%B88*l`^NhD7_ z>bzN+^;(4Gu6 z0<{@A(eQfFD&(@nXLmHuxa*WUW(2vSXIlTG{JGDia|X4k|Hpk5%YMQG>)hmAqc?pZ zD^V|ul;+LVg(q8R2I6tPN<*S=g)l*v@v?40(bT~jliah#|83MorHV7_LlZ;6d;y;=k&Dr`sH1v(g*ke4mUY3$w%Yr?M-gzAW#-rj~A+kvOolMXrnF zH8401iClHr8}p!pQXk2yKE(^4^5rJ$c^!mTR^!>Joc)B|-vA-Hk8FN&Y3wBE^>e&=1ZjiA^`Z7PSWna5$tOyBJAN!WzWyrOZ>K%qt+58?6|g%2 zRwX%Ki>k|SZ4>0*{?vDgeX{iP{rho}iZ!bzPqVOdF07i7XYR}9MV}|zT)0c|9DMcJ z5z#nKUwI-xV_l(sbh=1{ss(nRL}58S22Y(3uOyQYp2Ragf^jN>cmt7jo{5%gm()p$ zmW7K99EHv->^c6caB54BX8Z7;zF&)H#Z1aY{NycAi1EB$g@bJh`uolAo(bQqC;Ll> zyoiQXJfdOp8U?Re9 ze1G_-i9hDVIE%}`fiCDgoAFP11H8fEsD)l$JU4k?8rpqIiTrQM5ZY5R|m04BY^m5V7D} z#;Tvjztt7j@y8+ilxHrkdp!G{NJl!1nuaHhMzxo3c??`hOfrIrW}Q@tRek52H|xfv z-B7g4-GO0D=eJXu^-PXPecdf z_?d4cI-F<+zwC5zp9t)wW6?WA?j$w9uZ6!x%n1LfC6`Q6xu-et%}(gFg zO&|Gbji4X*1$KFlf0Nu5zS1Bg2^!(dpy8R9ym{A2dQd~V0!H!_^@rTp@R#w^ck%D& z`A~ePvk`g^pAxf?mo>R0{+;~Y(^?t-EMqN7<`7aF2JR%rPv;wPW5d7Zd?g;LaBC{X zxE34Mz5xl2|DiKb{_hqjg>CISbtfB8ur00-0?v3c8He@4cc=|b@?Q;7Pj&}2&T(;v z-Vs~hFz9At8%B$eklk2g>Pq0@X9GQ ze@LN8O2}Asc~cvq*T1W??B-Zei;x;hWMIXZcC^O7p0!4ghE1K+b!TR=Z*~&@ie8ra z-wV1;N3oXQBL0*6=}40PXZ%-E=`Xzg2kex0b&!v6{cnq+awAQW)LQS8Yp0K$>2Ey_ ziRob;bpH<}n3zWVrTGx!5!%qH$Egpll>$Qg8fjOjkZc#q#$-J5#)IY~H$WUu*Pi5l z!+X8?$uYOR6o2I@Hb9Q{?|J$PNVMZ?wkdn{=~;_@3oNCWN#O>PujwpU1lPP!uv9lpipkLkzwx}+XBZj z&*mSzd@$ywHs3he_EzW@nHmR_6T$ur^z6t_&RIP68C3;Pldp&+DWu73ct9=|Lpbav z$hvTuMK2VgxggS~FwiPb+Q`WcQE~)b+m7STqFWBw7q)~MG+m2;Ty|EWkjK8pKaXQ} zo@sLe<+U)M_Y&qw{5z^ZnX<|veE8k8q0J&u7P8zG8yA`HaLi_E)^+c0nI5k(i`5RE zjF;V+_XdCCHS9{ZtpasjxQiG%{=3ANrxIcA8zIn5Yv`qI$(Lb5|CWDR4v=-bwE`07 zlVIBv?aY2o?7f(jYk7iWn9xrqNc*_WDBRdMa29(J;Ylur>bU z_(D3k6aTKV*<^y|h$!npaD^vSvYcbz`VXHoB+X@A_Wi%hpBsV8$qK za*mLLhDqM=8^jN!7A;@mg^4p0z=-FiMV=Y&;*)yfXI7Y#r)ZI)`daGLdX0ke%f5LD zgVgo4Xa*4~a-}Y;tTDy+Io&%s6nP5cjRHVr96m=~sI7Po!UtdYFRq-Mx8e;*mp}(Vj-gsKbghj*VSKMe{J6@Uwz{I`a<&M(@T@>c0dpK) zk@1;*dr}HtojlM_8mSMWbd*teG0DlyDj$(g~=Maie|?+VskH zF&>yYdSl8H1Wn>!I}?^PA!-Ao$N#zz%=ZVqvFNyqGD!Wv^KkEV2!WD=TmvP_*bnoW z|Gmjrz747wGPaT@12z-9uI4lq9WlGnlVkcy^CFE%ZLEbn@_G*o{dh7{xn|mV9`3NA z<~dQcqXr{>HNRl zu(My?NT+He&nx_)iVNTFH8qbPSZP^r@-KBA=szWc3Ay3!P-j3h`GxmRV%0p6YVTWM{(e~oh_XD=%*N6v6f29_79 zzCr9Fn+y@b?2Vso;zz@rey!cZ6XvtYo842vW3+rahLW`uG5{qg9=uCoPxJ%m@0Ird z`b+--zVl-rsR{FO(sQXai$zs;JV6WURprDak&`OkFo~vMcS+-0mR zsVeG;lgRkGc!gQiKnNP~WLmXGEd`iu5vq%)ijAbYjdhoJ^-Yz{8@Poime)$Y z7XKkD+Y9BBK_+m~o1Z?a)%>&HqxsmDm5x~0L+b~L*MfV+=Ugb7eoz}+R&s=-UVQE# zIKv#r5WsBH;WFD zUwspR-WOijztE8rP>(3kFj7EFoVwN{mMcDM%v@{*M?b)ebcGc8ot_bM{p4k9Zf}7{Q1fi(>kkp&Lpk8*obu6C%)X> zFc+Snn-~@UI*b$j_}Z;V57rV&#)9eil2Rb5%wW#Nd^FjUnXcIOp2n5UXON?ti{0Q*Oh@K>>6Dkz8xcE z-URE;%_y((0Eu3n9B%S|b;(QZIPW%+(QD&0b2Gd?-E*1PHy&SwqZzBQ(0!i-5FTTL zYVAOfcU>3Ek|g^D)p|joaxbR7u&r0o@XdRj0Z1N+_$*#y?DP1)=? zvDg%fZ)~?tuXJR~(1Nl~Pp*57U-!8R(+I7L(S*rtQy+ho53rFFd9Ba!Om6b3A;PJX zcXATSsYd-Ue{&?T52oup*$u1MoEuA5-m(Rjg?m0%aa(#FV_J@yyg{M|qNJp`Mc`yd zP54yjJl~@R!&}YDI>VYhPoZ z;c<(a$esC#{kY*Gx13XYN{Rk;{1G=bh1drj>mq!mbG*Zh@z!Kck^XFoQ$4Txh7VDr z@BoTk9Y5{P{?mG;J$B9OAn0Fk?*5OU;`ps^za3*fPJ1Uh^r!mt#PO+({Uv$}p_47`$Pdd)lCLyh2E0xe}weU@B*EuIS8D*+q6bv*7?3ud;& zL2rr#23|bxPl@ITo^UbFkgnLj>x8AQQkjv18K8*%(f2xoq(N3$d`WaYhQ^sCN<8od z68kJAYvpKX8ztTjg0~ER5OKool)sIZ1+QFZt zFMD)j43@y2Q6_#qeSt8^MP}0A)KPqbrpJHt&JhQ`(LeX*u^thBTw~EFbZ+G7+@f;Q zht)hL7Y7L=jcCMR=7i^546ZJ?@+om0wsL{&zy;C(LfcLl*ll{MpZsUn25o~&?qH3} zgB*0*)GYB_=_usYs~W!>svE{z3|hRHV!o-)VlK&bZPucmDN$%b5U1r8E8lH}{Hm0A z7d$x~NB;(!7V+l_sexhL&byEZH`PV%xJI=IjOM+*LBg^X$1(R1Ja(h_S2V2LR=K78 zvG5+7T!}X3iX`Jo*?KW3#XreQ@t<~y_rNl6=?bf(`@#;iSgCv0_(%B@yN0V(LXYVm zQ?8J~39B_#ljexeRK06|7vCXE^V~J@qPG(4D)oQ6Y~?#~9EwoiVq}>-zy+6Yhr1Xi z_1l(1K_k7Fus;5MY3G7^e-e7qIe%$Aj zG^(#HocBPFu?Csdr;U>bjh9LIDO)B%Djd!hFphS)oR9f5KKNc}2mk+u2V>6Y% zK-?s+jwI-0r}^y0m5a!AtSIX8X=q2YCl^wYH2KN(#k~*@UwQEEwW)QPV_f06c(6ud zRbr7_1fe-G^5TQD504H;$y166r{XloRiGwaqcMCc%fs(CEXQ#U6$%c{lIrLvl`prQt6c^4U7v5=Y)Iw$~*;WUdX5o0XtPsE)-A^ z*!x9s>b`zDMJM*we3%zP>d7d1zQhR)X@MzT`@}y7w{-y;hIJu&L5}Zoo)>|pduMF#{cq|896Zk9 zpYDZ4LXK~n8?+NsXUv*d8#;+FrMKcrb#%fSVLg4U^5Mel^o?cm>n*<8t^B0n#)Q}n zr8;I^DiZGWTZ<(Eo7@PHShQ?_e; zdh0Ca&k6!n7W+>~Yp506DL7mGIwU*cQ7`8^KHZjht$7gJJ_4$GgE zEPI+#G7zi63BNHOARI|*kLG)>i<)s9IK+D9z%1!?qjPC~a=dFZ#%iJWDuw2J3Hhy`?BjPkS)FRpvLm-A|{X!6Qz-|lLRW<2+}5Gfoza&FvRYY{od z(eU>rt|Ff(57F0WT%7Pb8OZzx)<=+D0--|6fW9$grnDpGjmLz>f8@&H8(y?vDNE`@ za&gIYBga3ejuiuR({^;>Gd&a=%S${5PMGwYp4W3{Z>N`>WEfmYy-Kx%=9+QqWzrsM zn=zlvBI`_XKCA|EvR}7dvY&kExmVM`(`txXe8G0S653M+OLrt_auh-nKd=P{SA)r%%5GL9G?q%Jxa7*FO zx;Gxzm|N6BwqaBMj~nl8c8MtD3zr3hSN}QM)jLqBy?LC-4xGa){uL~xwl@7F4EL`1 zzte2b$r}HV_|Jzj$iJ(m3iM&RQ?k49kIVykXU^*=DoQbVY3uH$v0U+w)K7NQn=qNGKXie6hwA?yfNhpmDk%r4AXl zD0ol4$}Y~{*#L22`25v0vjsKMRi>y&9+iI#|gIzMEi{w{1Jx2dcXjI|bza%^2{ zq|m(Bhc?6_Q50*?G1#w?UlhJPs^uapT5*GPvnrl~H<{rf^%%$b;>ahH;|9h-cJ}gR z(y5&n&RO)4Kl2k~JRzzlwa)cnSjQ_0^IFIrJ{P{uxF1Dph}akwK0*4w!<*Qg;v;kx zo0Jg=v1nChYQ9TD^~q-(_qYn%q%XUk&l|f>c=+w4R|=s#xR2nj5!UHMQn}ORYTUt3 zsjV@(#aWb(#{yi*IqCBPndMM|A91bZpQomud=$QE<2$0x8`d#684Oo6u>3_2^$T1zU7jTWjFt(S}&+a0lw>U;)X>YLp=enYAex52--&I+|JuW4Tt3`B_GPO9V?jy^)@6DDfZshp>SU#xsBx zzf9XMg8bflTdyL##eY4-vm4{;>-del(5lz=0#w+MAZ0!-tve0`G4w}Y{gzGafv=2 z#}d-unNG*Y_@sa3fAz6v_hd7S+6@~;ZQJfXZ0_69u{$*E4v+l0qi=V3#mQKHho`e~ z9Op7r`zxROoA}c|{_o&P+Ocqad=1w4Es?V^&UEch_2cJ%`}W%(XZpA&w?gL1*I9GC zJMI2By@0G;dYrPmJauPue|9$lOP8+vR4|j500(4okatAK4+pLMxNGtW1|Fs9$8Og4 ztWCMUO@uF87;)+xeZKSS@cSQM_~l>2-}{GO#BV%o(tY`>uOv?&dih0s{sZq{0{BgJNBc?7^4<~g05#@ z=V}QX#4}AwHy^qHizgjEY3&INt0dM7=F#8t$0SV#zn}2*tF27>=OWtG!3Az=$gupD zLjE}B9Eo|hP2t7wZ+hi(ldWFVGkuXO7^Zm2uVJ77ivr`OGb;FcabQh%fnz(JhPrd1 zcQBNERl!G3WrLn1ZK*X!nfzaj;-4L88bS1Yyk-%zV%Y9IH^Ek~<60P{r~XKOy&t!) zdpoOCQtvkD&LVlbFmmz80ollza)#`@z|<$|7IB144!}O6W;}$y8`F+}&}&P1v!mY} zewC;E&}3~Ix;o)mn1w|1N>HI^UoMOQ z?i<`>{PG%$XoU^;$loFfK9aVRr1i2an#(zC^i%D4e?i$gUdPvC zd4AfrCdA=KCb;V1NlvbB9N>uLRQ@zCCGAb@c#c;JO1rd}b<#)Qklvk#4ux2N?aMFe zZ`@aWmiqc4LY*hGE%pDTez`4PrW0lyroImTuB!maqkD4753fl4!WO=Edf~o4<45X< z*)enSU|8Z|o+2K1Iw2n;7zO23Kz%=JHSAlm7df8u&FwtEo2Via0I7!xTnQ7~`RUB6 zMW_7MA8s;#EuF6rwTY8gG1}{1b~1b zxwxjk7(vDAx1qK2G0Sm4JR|(p32SX1|H3eUeSOMLR3mk;L({0!b_7R`BchKMs#*H1D-D8jq6Wozg9yzVww>ZyOj-x*755ANZd6L*zRi zy8e*;j<3)9=!gF$JZbyM+wYg$vkRX;^NBN_`!&bYH@`Cm6(Oj=Ofc{`SAiO;jeNrETQIte9MvjV7( zzDvLVacp}0XaC<{#n1ly7x1Mozp}yxC#HwL*a-QPKl+33+E;KLG=KQ}zZ*aMH@=`A zcDdAKG#Rm+Adb@~3q9D&a64tR$VVAIe9g%ZGhNm{)i)AS>db_ndb*}IIDA%3`K00G zhosKr*C&bPhczzyI?yKEp)s=Q<>X`iM{#`Xc6GTyCIDAT;9eqY(T&mpox3`ex6q%A zReCqjo8$mk;y+@Ej@K9_Y?{N>xR!F}qKv?%$&nN3-fQq*w#&lA!w$qVY+3Z+Ky!9N z)1sOAWnOgQ)RIQ}z@B5U9%NFAV%PYVPRZJa1r1Rc&VK219TE?j3+8|klZ=GBV)J&q z)mOoG#Y2mKvZ~8>h7aLc&t5_-I=Rseyz-5rlIHk_mt7^&nfW4~99YAm)M+WMa_$s9 zExZ`gg}G7p$b486?vA-xJGSkk$F|jXQfOz6qykxAPhknLe1|=Xcrv8Mzu5s}d~eS%(rO`X7gSL2H7EIKP}jm}vQ(#=~xPNH+OkbtG| zn{t$6!LYbth*b+qV80TaDc#)i%{KnKPQ3hecINm$lZiL)(|_6mpHTt8SQ$(6JNi8q zIj=D;UMN>iHi)0XjL7Xwm*c+y66u6<7BW`_Pop22td$om~l(oxuY@@5|oTg-RiO1Ao z4{jQ(ST|8b(ehN9EZ(DZ>38%O8Y*lpKOOg)_=Fi_9_L8I7FNj5LN{^D_Q)sbA_oh$ zE5AUCGYFI}sx(4u(0kTR^5oEye0_6nzY(^^zqR;J8^V_OH|V^M*Qh|@U;e=Bf5}Qp z9QHfj#lBX#KyL3$l!qJ1c*%Nf}3agb!?{E1)c1cKG2B{^(EQ z2Oj=@`mg;L_{}eW4ZJY9nA`^s$EQPn_HXuure;)5vJ2q4#`W>61aQZeS zTyRlw*l9j_I&W!-4F&j@n5fnm>{qD@Gw^0!UT^pI3fLQ6i9}PL;`S&qY9r5-=SjKz z)0rgtgtG3YICbA9^W=FjL24#GIDw;?LGU0HKkv770d7CZi)$$TM)0LcoOEqyRmd#D zRvn~#s3h;`_~Ybr%2yBnUYOF zLvLpbTG7iD@@rfwLIrD`LWfK=iL`% zNuH7Lpm!!-QXY=ne<%K(_?ID3HHC@KRs2V7!S-7gcBoye+ahzxLC!gG&E|h4x63$z z+dQzh#i1@6ALb$gVmzYJ{UXF~HBjn_hvHc1d@$L?omQqZ@~q!#+dF)Vhp1S}80&bu z=Be;y7l&;N$WWP!kDVuA(HDE*l>_RY+$LQ;TsS3dm zHO?+KxMQ(n((}e-<5gulU+CSP?tSU`6(q1$@03-l7nkjjCAUf(%J~_qR|2UyY>(5Z z|5G7^`5sX~u@W4eEktgctM4RMPoa%s03A7dePg5_D~Z|u+wiA_l+3O7c%HWepHl8R z)j3gH1wDaN%~whs;&<+hM`N6;t6sf^OPZGXpl>*9>!l<2>-B%=Gv^qYyW7KYP@h!a z?06CH*vp+0A|m(hDJ~Mp^{REX*LCXIq%Y>WujhL--g}N(d}S_rj##l;C^Hwl^cI5Z z6*@Z4|0O?i?lZc_)MwCiE(^Hu&FEZTa{h1GO5(rpxv3-X&7K82ldrm38#RjI(NAkK z?x4P*bKNNu*NNd*UJw_#wfnLV3VBTRWm1bZU2FK43LH(LP%NJJNBvVe?ifo@?#)69pu+ zukVjfetdfS`yr3lKKFCKgjK(NoR$@~_U=6MwR^HWNwYiei?5MHJrh~qjL5jP8G2p` z7`_g}yX83%$ReSE4d1sE01QS92u%)RFu*=HL;Pg0CvGc|0_Pt83Pu6MzwbN#6+CG> zHZVT*>Hqll>5r5%k`yC$X7u_y_2VC^J#@&?)TAv3*e*7@p9D^q$F|03<3Ca!p z9)+2yAGKWoMuq~(a=PH;ki}y)NsDE&OUbBlyBR@ZmwN}=UM{vwz-)n=(t8xf7N>pp zbYgX4Jj+EgQyzB!J z82Zfx6^l`A9CRRHbc>+xGXLTGT@{V(v<8YuKt&an&UCJ*J@ zo?AF3PZ!SHY0e+PZeW^CW$w~qEdIq})IFW|yqs)AUD$y=!gRB+-qtuWetCo29>vGb zcsmxnFe~se<@G`!nU^Gv1~<`12i!$9FPupI|ET=$5FD%2#C~Qn#wv0=)y)ge(xJ#C z1{f`df##an#y{JLrOwztb6GD2Y++{7m|!jJHCb7cVXKap%ltS;^nBeT@|N?-rpnEE z<7k(lPd2?Ry8w4Uh`&2MV{ax{E4iVWR33JqF$<%K4}&Z|<}1Ng-BG%T2VZLb-y6p~ zmgB53t=&U}bn$P-MdW|q1gH^il%gK~%ver91HplBqhI9NH|C5e&9jx(>%$qLfqD#br1CL(+ zbD$nRK@d*f2V3OlRm8wHG1=X;JF3dabUxK6fy4%_#$clwg%;wc|^13$co^JJ~7 z++AO?^=*sV;v0q6vdOd1D|;~a7bWdo)W(hDPUz9~PLJvEHEY+b^}p9=H%32a8@_h; z@pwC$XF7`etns(wapmFo8my=N6v&=O5HHo9=C?nNMdF|NxxbB7)-!+D@x-otW{0!$ zPulue>cb;uh)*l4^EP^d%zfcZ4GOcV;XfXQPH zcG{MCg46LFn|dz;hh9GNgkOPmY<~Rj{^S2AzVzjmmnhk@Zf|H+bXx0J|H%ai2@Dl+PxA3%-|(yqMT0v$^>ZCnh~xW~tsd z(o+>9%$N386tU8sl3qYFbMlOdaZB?biqAet&J8ZBYet?(ETzvxTt)w@cT0ArS3KxA zK+%E>#KNtK=RQFpoYOFVGZ(NZfQ;y=#W=?Ka8X&;Jzur*l}j>C1aQm~g+ zg;vP}dr|(t01>%usz2g`M4h^!)PTB&AaUeOuc!2)e+}0?A+QKi{@4Vgo-g=Su@H~d zYS|Rvg&ef}$uY~e7n!D8hXxEm;4#F=JpTi>JYlxhrx@G+3r$B8P((5)>pY!-}+S2cMv6eU5 zN-v)FW7Jy2U9RaFCq8=~#D-pDKYcGEyKnCA7~{>B;F0q`DE=+wfZ!t6N5*j73bcs- zu~AGstf5=HIu!5ONG(2rrW3}3r58l^eGcj^I8skyEBdMzG}f~o6Y{HH6HIa=%F(5p(5WaB&?T)Eh%y{!)Eacxz;mf5Nt^ z`)6h}(p4IHXgv{t>i_aVmAi#h3CWnj=Q{wH0VlOnN;>1p(e3Sdob&fQUmn4=Kt~s; zeJ~7VxncS>u1w>baa9p5ip~C&fR6XEFvj#z*7zKcR~j7rE}S=9p_& zR2w74WwYi;w)YXAcGY__(O}=o=JfWoE7y=tGRtP2a5WU=lOYG?k$j~a&F*qr>nAwJ zqVUfZ7$ymiufV#e6m@zH25gSc`gK}-j*tE1zP%7iOG8fkT04J_4{VN^?rx0E>kc$l z8o%(1zltYq$A-rE8mzPC!sBP2;?p1F$IrVhxb5`q8-D!GefOg7Xb3JL&BE@$A@dV8PUO?~c%fbKv z*+oa`_+S5#{}X=TkNqV6kALZB@Si=zz~g)p>e!?>Ha`SJ+sYh2@tA5coYew1et+X1 z{}cSskNx>4{xnv!fAx2N6d(M+ONa%{-0h~>Q7uxI?^U5u?{jeknWxFuOeS1e8+7|# z*{4Zn@Dpr+6fwN`;+{#(WzyaR_xehRh@&V7lkwyKYb>~GfzAbA$jeQi>`OJF3g>ZM zOETny=DycAJTIoRD2;11PS7vDbKLnRbZHd-brbgf+t~r@qYCJH7n1;vd0iakVPj%w zt)j1uh&_$ei7^hQ7}77p-75b3ViPmA%_O$^@-lJC_%S&fMlmX&YEt4V6OThFNS=Nr z5Is&GKRlb)tZaY0y)ut;P;c>%u8*mctJAiXLFQw{9)EHx@MNRI^cQ~OY1MSu(CEDj z1^^8Y*q7;^^mCxF530kY$vQ-D9zEol>>`6Ut|^e={5a?#*P>Tdj2PU z5hjPdg?PsQp8?6-oIZ&%(ic#0K z1P3%l6Xpl+@(S=%WZ5eMjaf;0{7@Os*q-xQ0QyzHthsSoUW9o!#{22{&--Ksr+d^{}vHeM+& z%k`T+wYIGJ#q>0H!qpIWeYlK6^I}$k7^+E*4CA+TppFi*C3ZfC%E^hnbwh5T0ht49 zy{PIQ&W+f{H`3pBE$6*W_tVIV3QKS|pMb`0kM*TE-OpD zv49T1@#xmPVoMXaKej!hzn_fTX>`8*&i#BJzdBa+pXr6iJmaf)_ z|1c6KF_YVlG&$o#f>!R%#^7ryrz;~t-Gg&k0v0K9|G!~fl1{Wbjb&-~~3 zcmKry9sk2W_{Z@Ff8_ssJ3c<;@%MlIi_6eI_@jTmRLm3QVuF&nCXUQYl!s#8cN`y| z1o?|k`I{ie*V29G$36<4(1h}1BVq7H+1&NLlMi`^stl2JA(2~7xGsaXkuIb-M6!Gyc1{y$=2s^OF~$2pKJUx)^&@r%=>0k;1z$M{1I|<@t2vIVliWI7HU8(e}o}YhZZ`i$yYwHV}&6U zHsHnQ4nj3{@IrnQI>31weG5-{f!CKisUWoAi|iPnVEhqqx|fxl_Md zO=%8M`VXpc}FFOk_!iHe9k=El*7sXod zX{&JmHNRJ!GDFt%6}_1ECH$3e-hY{YGNU(0o;&6MXsj&Tnb1EJ^x2fk)e&{T`sHsQU`&2j&a`UcC#h^lYaVN&~o%e z!R8{Q0SL#Ms}uopQ^m+tjH1(>P`4JhIfq3q&Nu=j{ypDwJN^ z02`gN_A@4T{7(F% zB?)JCNH2?Qgq_8=abketHPWvZOBe#ei=95I&(E`sG2MEwVc{`2AjC_gkmc&)=i%C;bhN z$4l>H@8JHO4*aCgnZC{%_Zi1O|BJu;#G4b}^NHV!pTvKPJ#Y2?k9_Lmc+&QFe)%8Z zi~s1K-09J6Wt;bpYvZqX3x13ywH&Mkrpps}uE7gRF30QbTYpC6XOhY%6;Q#)0LnYI zz16}N`!15Ng7nclcHam8n%~m``=K7c6{ZL+JDtQKlR@T$$%wmp#%YLPNn4BLerjWdBm_`CVQCVX~J(p2%~A?%WK<9MiUjXzmT=LHl>?wr6g;ibPh zYEr*ANy?V@G`H!=eF;F29nm90^>HhlTOa2tdD7%4N<}-zTPs4i3n)1Ui&S`DjLU^~ zgN-NubFl=}tm5Ce+9qBZJ9t5kdE3=Fj;{BzeS(B-Zo1Ph>}z>T$eaI=d{m5Kpw}4= za!{}OWMtJN1^|wG_svtORxxy?5$YO^=~gNt=QG0nV)5Zj#zVPY$9?vJ!zV7c-%_|@ z-FRBOX{)Zlo!hJ1wvSNo7XPlFqLBf~-!p1jykrdUnB=3eeFGwyEZG8As#0t=zd;L6 z$Lp0QAw-~_$fFnmWTKk=8fMQ?fb)OJvdjOlN9TX*YMZZt0I_f`8(I?oGpe>u z;%hj@03?(2Pah(jq_HnJiGT4K_4n#HvASVG9}ZUWvr6RhDuGG9p^Np}OLIi&8UWVK zD}L2H(HIlejR|=9!EHQ?SViW9i)lT#G)wYGfHEw(!Q1(%jdPL|8^Hr_tnuKvsXUW; z!Hg~L6L)2-wOPGWO>1;d)v3h?iZAXrcVyF7dJaf@@${jn^*H{|)2S~Wz%hTGhp`VFME)n|7r(zlk4RbL zQF{=d%bi;a`pw3>{2x2tBM38B`X>Lg?afW~Kw|m|f@2&jdVO9b7-Z1;|7>p90*u{+ zeZv{-CI>LNKmnI%k%@prhZ-px@uDKRG$^T&7NnZ$VAU4YQ2hRaZSE&OMjZ!1w z!5l{whI=uV8oEGYfyb_)#6e{~u0894g4s1mTP6oxKS<6zMM6%SDF0s~MyD=!aI(~X zD4R>Lf^|8^NME2i;byxaHh;^Gc zy0`Ven(G)#mH}b1P9Zii<%4w+G0=U8^FIm+=RG>t;Em?R7rKA9cizqz`#xW}A4Lbi|sxl;GEjOi|;L3!-{dNIX>pnO@y!JYTa(&L_ITHV1P)$D}MqsBTL|K9y) zW4#l8{W1G!wEfJ_{n8VE{m!v*@;I9(fBZB57M`?y?)KXs@1#ABAN}^U3c2E`Fr$)H z>=a8-8x*H431a@-!!lSvMlOU~EdEY_CUnbjgB|hNd1f#Le!@loYoqE8YERQBb>w)F zM0io4mY!K@oj)f?tt1gD`N~&ceb{{aHT?OX{_FUQpZ$CiHzDK;wHT6V@t9ncPIZpk z9?n1Qr$D~*V;`A7O;1ly9kEPEEY2e*t+7ZmGwbxrlL6U}gsy33lY5XR$<3LTXsbvW zd=;rR)#TaCP+B;IK7y}&^4a$Ox@5x`A$77Q@1Y8p$nMEA`&~T?gQRUdxMB75?#Z)2 zqCy4G+$;+fQJh#5jH;I`B*GSRWFx99UHJ;6RXi5Y!7EDIyrxekQT#Z)C*i9mE`bLP z6I+D;S1_)120yW~=notRe5cbSs9vq#9DPHBj7?^(7mWv}u@!;SXGjMXyYqUuRT!rk zNEYT=3!mV{&ycIUQT-+Pg=sFqDPYJunVhxr@pP*AMGsB`jo)D>qJ_aFCcNs0^{SHv zwGGkTB(>{xj>R@$B0O16CX=_X8ZC}Tw-@%6aN)+g}amyrtew@%~YP(cmQF64w>@ExQ5j%9V^~G}HL)Ux zxIXBRqZ3VjViJ-2IN&HxqG71`QPUIWJnMOh^d2XRKMn#j3qdcv`8z^sRB{Db6F01Ds8`k&xJ#WgapAhvu;be>u)vZC=sfjULM9A+Cwa-+Zq% zDVQ3;hPSwL)$=Z=lx_AgYm~b(cm)5EhF83(yW=>pw`fr1#Qr|{F`&(Vr#yE;FYosz zhZ)sB)>Uv$%87T-13XJmu$>|rdoIu*>Ns3+S9wgrz!t5cdxW?C!9}oJ57afkirhu< z(bpb=Cez0z{|f|1UU!%Ky|G{UKWcq)rWybC81WBsqpPme{lSp z$jx#PCWn7;b7pQ_zdPpyvS#qjMa?QTr!OA8zP{Ou2ZQa$bP!*Bi!YuXHBg*m-1C)S zs}-1<>-?PB1@E}|J3Rk1?dvs`KjyiwSJSbM&5zIh+<%EDZI9XjIj$dHf%PP9{P_7V z;hUiiys%sVi3wAJoFHxiQnv0Ql$a8W46W4A^pq3bO@VM+Qy`tJSOHHA8%2WRU5tTs z;lcL+_@vFyla$NEuO{E~8X^fWG&lWpENA+?;G)DG*JA>i<9a0uGF2;9f{$_T3%~N~ zPxV_M-}$>gnn^|eP@5ZLTx*4s0(nmUb8@=!o|Eh7&=Wn|WS-B3I9Gj-q@o50eWqSp zh!7)Gk9oxv@eaN*#qR)PMy7pOaD^E!y7^w_cZ2Ai^^NXugKU6OLe(L7L&@w zWI)fG9J__jw6{qufkGl4i{d}o*kFp#nPZ@eh+Oc^NNtljC$dgOh>SI&Tjmwc)2WVk zR)vfMc2a~#9P~-UZt@sU<|uEj7H)C#=X7pyL_sjYfoh-p$b z83x7M*J?0(s)pvhl~eelH5#jenT8d9H08+jbXN4bp~FMyX16arinr*`@5en}9^&PH zDdz<8sCjzqt?^%YT=B2wJpL|(x$aZ}c*Romj<^r{)(u2*c2~<-pR_rzSz=}OESqn9 zJYlotSq3xS6s?<>-ncG5);)83)S0ORivP+74GWT|%4>z=T^ps7uzO14XK`I(2==X9 za8DGD@8Y0hHtOr%C%S2RHNr|z+}1{^ByJiq;dL_}=K(AB@=V|0aq{!7GOkCo#E7yC)p zrhI80Il7MZDRg#IkS_*B&6-&GN8^8kn>}V?erd*YQt~kv7T|?bog=3+mUui1jO0%u z$y{HfAkRmft2m2q3NADoRvtB(_ZNRk+Zt{6u5lyan6K!YvIP=@e_!x3!&&bl3p@F> zNiUum<~_FeBJsEhdM;7#GHQ-Ob*y2Jb(Q1RSaLcxV?K+gh<|6fOh0*~o6P6&FZ`1! zl6Ry2aW}u6HjVnDYvlGIg~SobK}3pXqhNNDBOII*t@DkOcn8H&a_nd+bJCgbta?U| z9d%BpyZJvF7AE&mBbjdeX8b3&dgqRdC)fb_R{MIiU--pe!IQQ>{+T~~_xjWS`1vqm12sz&X{6nODVHg6gx$~s;Is=ZbH2_6MM1B#TB0) z*L+V=ir*%E3v!9d=C6+(vW|01iC5e3H-pf%JZx22qfNNz5cp|9tqZW^Cd)+NOsHDa zFtW6*GR*6|k+wD!N*0HsaAbZd#=<=f?CxYJryodXtV((JMIbMZa`+q6v%^C51a8@j zH=B9ksrpWu3@^6fBgD@w-zi2)Y*j&-yZK-Cekk_)FRrpZ==&&-_rr zPkUCZXU?C0rUgLL8PS-|nG3497{Hy1Por~H-;DpR;*bp|u|}ddpVd}6i6i#wqEV7r z%NvV%C1gDZwHc(xyZW6agQR<>O?INQnoNuc;=@~l zvy&NG{qHTupeWkv!<@1TM?A49?UTS*{Em5nYi^*|^!Ir=Hh_{{5+`by@zz&yLr!3+ zVWj5n=R{^*{E~SNYJ5Ioks@C*kG(Fexl+W0Y5Wh3CB0qPFz!xMP+lteHP3qK8_jk2 z+~%Hewv2ykq7JsoErH(>(%*DbQR=bB& z@nWoDBTwUjE3lo7vme#d<5eJ7=-r03b&;RLKUEX?AbOFn3*ohBg*uFH{M5AEvGVD36`8@w5d`_3^l*2jHL=Q1@K^^J3Y+KlyNs@Te<5&zi6zijBG?HgWObl!;5?0Z`O z!>InZB_3rn9womvqdznTc%6gSV6@tqE|$Kq4589gEbMB6855o$6uj|9d6Tofw$X|m z<1M&`TkegHf#<)A{Wjx#YXjsx(vBZOf6^aAKNel@eG24he*FBeeC}`Io1s;rED(3+ zWaZ$6j13#AIUOVKXK&dg~4fEosVZ++urLcv|2d;G>liOpo8 zPo;H`R;c4Ek=T|2P)}2gj)At3{3B0UDTR1A4zEpMCdHHKD@{87-alM_fc>4c4}Rc9 zINH~a7|<8RZ+$MN=Q3gS!dVlvnJq~(H#TOUes3RN77p4ff-DG4bxVQKE6>(q(i*8h zN~pZok@1sb%!@oGsF0A!fT{n`omJ?$uZ2zUBZYC^K}8q&NUfc{gXLWtY*JSCd`);y70{9p%Yj>c>k&6biqV#A46$q!HjffrttN2UnL z=kc^&XEG+MK96GqcoMF0ta*zo^8zm(`QI}BYhyj6F&z`YvN(8xsnItVWI9XDhH;hS zCPNbhK~4`&U~V{2J|s)!fPwG2aX<_iK|o&P1s>d$(U^O$;~*bWx?nE=(}lXeA<|=t zb48wIeOORL~l@enK#dEt@%K)yO_=5t{LkT z>@)ZFO~p9ghQIJz{WJf2(M1y{V|F8^yV7?Vk`|!2-toHrc<~=Bc)s^i5yfQrp@SdB zJ8ss^VTLV5kMWLwbFJ!CUZ_Xr>_e4F#b|{_Gd^fL^q-OdFlkP%HcY6(-OoCg& zd{Tm7OP;Of?YP3Z9{P#*Xg<%MdVu6kQ#;b&Xa3Y>8S3MD2+fw5_~>z1_MDy6FRc8Z z=F!SR`7o?#X!w(yGp>8hmErH6a|gtGunc#!QBYhw!6mmB9X+fP3@?~&Yk%8lyf8rLci(6vT?@th+=|H zr5u^><|V54tNyQRLAz?!@}XdJ-%3}bPqzcf&)o||JYf`XboA_BzIY9*{YFm$Df)MAdDc?1rIuK6YKm6^JeJ#SGSn3P4wFy_PHczsn@HixH1wa%Ibt1=*oNx7nO7fI^KqsA` z`(mv4qe2t8h~p9}QAmZ{ve-v9sm|VEM}9o2L&mNmD>_qixQq} zE}q@|Cv+f*pNpji4`wQQ^K#|&B!D^oiL)HrghMU7Y9i>e@0PGiyYw?c^TU_QMP6^T{e$Hdi&EbwZfw5*<^|8L-&5J^!AL7co z;+@8BzIPV?{8U&R=br!BPqPA8{9SQeFKT?~1eat>zpYVgLTG7%xY?Nq z8`n12b0_{|9N%21;dm-!8$Vn1QR=RR5*c&~a9Q})iBje{K+el}SR^8lBKvd@1=9EB zdOE|THD7ytSZ9LBM5)ucb(YdN55__&Qa7RX>s2ugP?HBm+X~p3R6Y^|QBQED+*U7= zb4=yQ`XP;|2%wXG8n4Agy|pF(d;aUtU_fChAo>GvnwuEHjm{@#H1%=*r!WM^LpkZu zmp3Jy{M&XAlAoIC8)N+En;H^iDn5nA<7%7IXD+0+nSK5 zQm^wS<~vLrAIfynS+gj3^q&7875|bKrDpGoGbXi8kL#SLp=flK4(TiYODE$s!$0DG z;{LVE1b`QcS~*g7fiC)9_#Wm1*5+A$rmlj-yc>cO?1Skyq=*oC%u^r=?2BLmhshja zhe4Iw`=dcPjBsZ3?3L-br$-RiCD`B@DV{|N>O5!4uIe383vqOYH%0Byxk`mjCtmA+ zwEW*CMHdQZy{ewAhm2}2T(YPXI<6wm7*lI=#HkVif$AB~SCKm}q{>3=EYxR&u z*_?H#_v)uBvvjaprwB^>{NH48uUymO-&O$&2xq@sFm)*LtIC@!3K>J`TzTuV&AplbNm2FQD;JVx@;L3MKKD2A&Cn{*tWO0j z3ul}>dNt8ofPDaBA%fCw#W`ofU9PBIPG1U}QG^v>S8}q6>-rSXWb<8bXGu;M?tDp_ zF-b0f8hxc`o_efgqECk)Cv}j?W-nxVa;x3yNEq|U4d*BJ4PSnW-vBw<2VZ`X`0#wa zw^*wSa`iMPFBoP5Ww6hhPkow`s+KW42K5gc%*30CJ#Ons${O#)e}CevCU?=lc00yonC$U{Gm2s*cxPdJs&1;CY!&@{nYiv+ z^x-G*!cG(-3!P>1m3W2)M>N2&5+&Jf4y-Zh4SUNsc5uS|6)CG=^Ly1ckaM0Kkl05n z6w{}uG8+#JdFqfuA$`{YetJ{+(m3PSU_?|&xW~Rq)TpT2>t~si)rBm0d;BZUx3lPO zOf2fT^nWf&L4j==|9L>4c4HpvE;;U+V4R2zz!-KXztOlQhgED_U0W91clva)e+)n_ z#KpN|pX>R&os6-|7mSh!IZ*jBWHOSevADODfQ2=Dv;`*s^<9nsK|`L7^i7^(x=nUj z@bCAbP4?tg+9b{Ulzs4VcW9^STP)Og(GCMd&h!Ql75+s>>X03N5!S?lc77ey6vPnd zXQ`i9BwIJzSbAy}KLk8uC0SjKkoIZXO@9Lj8>j6rJtcpU&{@}qj3@BOQ*zhmYsW~-Mr3A9WOpxdL6tHHLE2XZ`j5h$3f4#t7d{> z+5{x*p@Owu3@!hM{B_K?9-S@{{~=d#;?93X%a%~K)QJ@xj0 zY4K*F`Z`H)JI+s>LFuuaxba}3!|?x*(;ClgQ^u{pVa74eDaHu^lr7wwpW1{3Tb#)x z015Y69krY1_52-PSh3)I0W$xed@F|WBLy`^hBjI#w;bv6TEcL+JMmdS^ysD-y2>7U z3);LnD;tedw`g__+OeU`xnp2{@a!cw)nQD3;oCvDUVYNeBtR^NkMp|u7WbsgzSoWR zD{#p=$>J-m6adm2+|h3btn@>kL}4}bM9D0!iq%Mv zxnsMRU_oA)m+c0~p}-ejeD3yldB*U~)P`)&;(aeX`<|2SX?_g-_!_M5`(J)SWII0j z@#!c0{f~o}r}9h3f}Pza!!JI__WTRapcXuckSEJ^YVv9^ zP;_jziAg6XO|fCCgX9we*?$%?Ku++!^pqPQ-}VrT!E%g;P43w}`Kmd}+VT9OB8(S3 zMlYixim8MWn7(KKVS`GV&pvm-i!VKg=bnG2?h$&nl8bKc=uecFd_%`oq_xD9#b2g& z(GT-&dAw1vuOC^C_U!Wyvc3N~JpaCD!1b}W3DLqE7YW|NKS~WlIbBmuzywc#xxmbc zrne_w$dNSNui8KC_2T=Vz1c7L1p7!}A$q}4PqSoSYeO`D4$>B{rtzO~Mel82{bMba z(2703+3STvw&$yCSteMULaO|?k5_ic0vv^@fh~x_90j9Jx`=a~_gK7Hi`L@R9`f`H zFASSK^ML(3oIvmbfEPQpobU0EmfNuLNl&$~ZH)3v@d}+!M)Z+^GbVz+N$>dwdmVPW zVF@cw^57ij>N+oh#(eS3lZ3_(#MB}!`=YeKW1gr%pD^6z|L3Re@{>l%qAtK2TZoE^ zTB^Jk*XuP8{xYzwyIOiqf3lFlr@8R!|Eqpd6uF=(IU&iU2_T}OX$4t?mP)m4k z$^!@!Q-5?UbsA9B`7v&(I)8m-glIuk)g3Jq6CkLlMWT4@`trN zz_GUs9X1Yo`;hH@FO51GbbcAmu#^|xOk?RGEY0+9C)z#cI2{l4jw z$8nO$)K+*ucu|?EMvlIkUxPI?sWkp67OXZZuH=Nys%6a@<)DAI9fH?{Ac@miSGZ~HJzRV4`7!5y?tPa;@Z)P# zjq+NL5qGG6+cNkv=TT47Q?^_-M6N8WjKQ4bbJ(d)j~kwQsQusf{%7#)`z~}>+0}MD zF=J?7VVV?Nx-IZ#CZU#d87m3Wzf;eJDUv@da0ZEaM|}E-if(FW24<5%Z znkxL)VB_@#-fZ%g)+jq1N`6@V*}7YU37%y z%4)Ar!)~P{xIXalknfpi3wex!(uqe4`bKy|uPLF-v1&{{X9AMpf1wHb#EG%(X&~~3 zP5Qs-{jlA$XzeiMhraEFbkvuw&*IC!`8wWu>xysmb}TS_=y$v?i@WRFev|F(x8FOm z9h(l1`cd<<_V50${viI=-~F#{$A@g+^FRB&c+z%!9oLt>@-_T+x7#A+Q?`Ly^#oG@ zSw4BdpksB9fFFSVgaRm02R6pyqM5{mVmA$ZpGgv}`_STEj;2R#-npT!3rWQ%tAEJ7=I+07Bj%b0Y70v1=sCbJ$;aJJY~zLQZBO)xR(ERSe0VwDpq}WDmfM_kIj!5?Df~)!q>j?resGhz=SnkIB>=Y%lp#D?A(u>80Ak6 z@FqlQl1mt;Qc=?Wt-bVtXK$0bo171SuYT>V+nssGJhMz>B?oL6{V9TV(#W-|_ry6Xa+wz90D7m)^u1uOEdtZ+lsrP*~ORn@L*% ztFQ{QQ5sNOlYvCc1z;(rcejftbj`#<>H!y?KvL;nx4_sT=8z4q$clBzgfHEbyU z%_u~5kzn6nLRxy*BST6roab&$8)*y@#4$R;;RpS`PLh65C2ITga8yi z?vNPh@;T{$VYZo+7o41ufHm0>`~%>PtiaPqCC}I)Th&|svg0ei`3By8^ICi|o=hIh zO~x>Ccqtt{unoFU0>vWsCnr4enb$lg($LhJ>e4#%I6mz4!Ebv$=WfTs>{q|^Aluuj z`{21uVv@V#b*VL}2iGtn+ezb0Zt0BTo$Xi`_>K*aBi>^5;O&R`=z*2jw|k_}C&7j> zi2MmqdM(uT`V6G6L%*IeXBzW1kN(J!j#pu8p@t{-fWmj(mU3-`;-dVQ%x!-^j(d zvNW)I&i-u2d(I2#iTzfpH;wg)l69$Zh?KBITpSOXy#GVbrtHW3<|_|&yIw)Qq&~;z zY_XxIOh(EH`>yjBn$s47SFVx!s$Hj(Tu8oNTR#7=!2I%up3C>g;^iUR_&S}!i~NSs zW~)F8PhLB^c-|u=BW#aRf_-(3Yn0nLvi&+o8S#14|1Z4sOfoe5@^uv6hyK_Z_`Tic zCSA8xOJI}FLH&@mmd-W8Ns9}o(*VHvj$Pg7-;3`*HVB@J%MbO)+YfcgTVSXsE!H@R zEyEA4t`A{Bld_V6X)a-%Q7%avS;bsnv=K#C1;^ZhB}Yyhoh}b^o44`$D{rF#K&i`$ z_P}JTpMtQKXXc<8PgdR_xi^?Il5W;S)^w>gDk!hUe>t2oozYsw>Y9smue>U@pIZI>e#1enhIfm@wC&b{z3$9e5553;@b zR`E%$$oZG!-zX;dTIIO&_)iB&tu(B+!X9xsivQ!^%dF{d^V$c!f8g831Ir=zsF4d7 zsy=0{06PC)K&*Ir<$3uAs{=at2xnI4O zM9m)~Ce~3avPUiLq7!{r=Z3EAq?e~W;b-NeD!ggpxg8$!n`a)@UYAdRy!3wk)W=bj zz4U?S@y*a)dML>F$(BRTV?pe_)Sl+Y(Eqjn$;a@)m&eoRhiw0wC;ars(T=a>q6RBlAWdeOie2mAzy>A>XQ z2W}jjA8ga{WI8rYC(MInEdocZAr?-;Ml)b-qbIp{8bXU4^|x4T75R*NmtP-G#U7g< zwUFaCAARO>nK9;bJoRtZPrBJ*Qj#?=2(CN|c9_bar_!E~!rjD2Y{@Ob+w;fMhx{p2 zA2kYv-W=NJISQ7D`%V1!xeRZx_6hq6r7gf0;K34Dv(ZZP$us$ocH^&y1Rc>Y0~bezs~SK+NOLJ{SHTqZBvGW?+Fd z&}fSE7Wuqv)MH&X39ZSUZf@ggz4?FvW`24p<^Zk_9gI`F!9)?5@oov{zL6oW_05i* z|4MvPP`Cpp1wi`O!Q&yvZSFRc>T!H5rtCIh6{AonOyc*r3>mGlll4V$Mm|xwt7;XE zk+_>8vV47>dFg{=?iPF>6Z02ddRF?Be6_J(e%%#l!tt&?yIwspQgoAcH<39P0j7vf zd4J>`fHe~1zVz}lIWIlf7@sP5R(Rzyfj6Cu{6oTs`bK`{O-GKEq{#*k>~xX`yf|O7 z#)A}ay4}XpvD^;1o{xO6O2^!T?Nf3iqd)p^xH>uK5_9ZxA*=KF5SyiJl;eoP?fQ!k zcDvB`y^MH!CZ#F&w|v!&Vf7yf&(o(Q{yBP_bgwa4_1NfnL|EbSiFsJfXSeye$g6Q4X@+KBBs$EkR>%w=4Yy!d|l78k=(pM(sq1xorNZzN5U zsLfeRofW2+EGF0!8zIv!Bv9D5tE_D9w@-Y;=12Jb3okwR=*3Z(A$Moq_vEVtkvMZK z^R9@KvxVo7X><7SI68m^76s!``&-i5oc~ptOMZ`8waK9tRE3M%}(Oq%JHpy z1r77UWGQls|H7|ve0+lJ8JfG@VlCH_E8cHM9*g-%;UuRu+sca>`nn(cPR3sF?;((j ze9#amP%f6l-pBmr+2`nK1P=e!^GfkK%(TXSeg$o^)2A zy^8%!3W$*Bp#9Mg|4zIs&5#W4Fw}RM0JU)-1pwB9WtTLzY*0>(6y6sBLy!EUviWMw zPoubOiMhrr`jMP@LXt_}B)`s~OymlC1N+3uzLDw%=Pb`~ALGs_rK0in)kEy1#zn?v z%ydmE1p2Iou5uApqoObg{DfR9Dta^W^&HM<0Y!Pf%thL@h@y$?uE1!M=Bz`#3hSg7 z#TRtLH_i-v^d9gV_10olZq^yeM7Vof#N-0!>eR&&1Ez$t0QESa8&_SbQxTRYp4TNV zkzGC5-N?ARdiEdGbW z>><{UPrew>0KleY$t}1+F}7tRDLDCvn%7eoeZ#J9Ji}LQN7rXA>k`2w@l9=1#rfdF zXk=%_rMzh8=$!%Uf}URI)9Ib0Z|C~^bPoNeAvy*wzY;Xwodf68iQY5sMc}!xyWasE6+tEC;TLzZDWbLXw_ zJ~wr(t}(VVn@8VktBD3i)x0eF!65Ys9FT=y$(4{y)YpD=(Rhq=$*-~G4MqBN1;wH> zI26|s|B?+_{B!#DT_DZZ_>{N-!fk%}(~Q~M?}AJmf94{RkE4d25vR=>s7>hlBtfr} zwzU#a`SZqb_*jx|G9vZsq@={8xw6VWczf!X@i5dxQ-Fy7mAfgk_YGQaGL-J)z59k3 zGuCp>rbFU$um9QBvN?*v=Yrgx|EILmUM60G^s{__<+)Rfmz+npSe!OWR=u#Si$PO! z%AE(xg%MZ7_Q&RcCkx~1GtXd&taKf^swMaQeldu6s?tJr0`!VO{+ z8~7G64&f2?p3Yr%b+TFJhfplzpQ9rdbA7)#X;U1Fu_uZ5{EwOcZJRIU{nSOYWqEn` zRabAl@s0oWS4VquBgY%By@mH$dzv3Z|K9KZ{kPXY`n`VuPul+6U;Y2!z0%%%>v6*8 zUgLn8jlda{_-&g=fW8|pNfI?_=7qt0a*!5Vym583*I#>kzOSptS53skf+yUCa|!^; zP1XkB3i)ZZ$m0ys3cT85yuSSwCENLz_+nijPK=M=wE0s%_JjD)%P(c>;o>hQJdrRj z`3r-XAItXCMHVkcPxX3D0%OtF=C1iie%I4&fc(b81|kToW74xrn1w9#E&q&Q#I##a60St00OP@?NMJw#BFe>xRJiN|3Jd z^GKvS{Z-~v4!7BJnJlW`KSxN1>`eHEt)|+o5ORdT4;it#f z1*WcyMzVrUKlfASO6E>GL-3#sG;xcE2xue6?JU=ht74IP38b z^bL!OfAxpmc8mH<#s4sWEE@DuRLT?ulK+W@Zorg0aaR19uE^wv zkCP59ScvKfmspS)6HMx6x03dD?TuH5EsbNWhg0%iCu*_V&^5cj4oEK+`p`UZrTooc z5fixL5OQCHPM^#8?OfZ2vdxA8<)|oCSbmTvh=9hZ)@}p(JQhFYk*e)IT@}`S+vi_F=%NIi@;THoE zO_Z^5f#SwbIJAbF@z?6JK${kpdWUM*dc94eazlF4eeEA)xV5a#UQI=sMz`ez5|zm=zK+ULJmKz?`s@;aTG!690*K z3K-efQ@fR4E(Y{M_l;ZaVX24X>Km`S@M;NnUd%zS@9Hvu&zIhic;9cDJabNIB0Bju zzoz$aJ$=O6Tl)TJH@m$Z8Xn9$U4L}5ljAz$CwwOl&>W<(uax;UbCHkQDy}RWAg_My z_-^g0$liGUZM^czoA_pEhitFYhQ}did>7q&sU4difBTpJ0iLA&Yyabq;rILx{$>0- z|HhMVfV@{e{c*HczxoEAss#WU7g_C^_x}2RcWeYY@RUH@ zN78%sc>mh`u5DCujUtEve6X&mnt?kr#7vq}1wTRK!o?q{B*$03{0829eJrLN3Gev+ z_uTN|0&(*D!IxjekALP5;qyQJ6Zo(H%b$AK0Qn*O@b`cBEPjU~v;ZsMmNomyC>Nu? zsZwgbbDTMOagtBFLi9tg&*nwE@V%OE`Syo%TKF-s@EJR zlIFwtFaL|z@%A+q&i(cq8AsyN4I`-Udp#r3V{F{RMKhKHIP<(pkw>#SS-bHaW+zF1 z#?FIChiun5IXn0~z9W6ehWut8=8uc6TG*Nb?c%?fDekFKT}FMq=j)eim$#Hq>Webo6B7*>-&DRBxq&p*Rlu%yokFn>1kc7rvl;n0`_3SEyk4YFjX1j`7TkRDORwMT zcDz3pXutBCZ%Q6Xz2ZEsS%-D(bk4zZU*?H(0Ke9CZ=`f-qluX9?VIi18k;#7i($ui z0CT*AKU<3-A?bT5D_+98L+0>1WW34UArA`2BKOxsyvM&9<9Gn$)dxR}ONVT)#+<;) z4OyqjosY=ob2Sd9ufpIw1#BjFfG$Sq21nEdPCZ#$G~Dg|QGf97A|0~5k~QYkdB*>s zV&J@B9ELgZ+HRUmN3U8eFyIU)Ahr|S0LT}RI19qt+xLdQ`gRgH7MovvWo{C9WFwQ; z1Patwl4MevO}3Q|dEz(9Hte%a>znQj65+i7ARpXez;W)d+Z(UFow$5__j@j;lP$zI zoODGxH#_Zj~# z@`RMRE#YGkDB)fRTJjnXgC#4FNNmmXd+uNP@|zDiZYtto;rZ3CKE&JHJdQq%2SceG})%FOR~bleCDlu$m@7L?B;KCJ<9P#IHusb6$MMy5Df27;;=yk5kl@3$SH3c28#?4U2{1k-5t?i{ zb>UIlwK?5>UBGfIo+E{xBUc0mPVv>pJ*J~y{mnPBjy+`j+LwlG$qLz64Cavol&w6D z*Xg3+(>9rsIkc&NM(x~dnSI;U&A8Rc2UcF^ocq`izsbfvIQ>%Bg$g4EbtbAfmzxAp z(*!O-<*x|dJVrH7TxkB!7kHx~?!DEHU%k#bj^7rak2!#C<`8sy`orVLf6c?9qdvgJ zz7hEuoBZcX{C8|Vt{o3@9rz#df5>^%U&$-~hNCUYE!s|gA3lekc!D*T*T5gpINoaE zyp}pa6L=q^Z`cv}`mozqAAC~gliRkQw>$lad+<8k+I4)3gf$(lRLFl&n3s8S z%JSOR#)Ejrkzlfep0!PP>o0k5v0GPg&x+EXF-Fw|l z4DT4yw2%QE+bnwfkGe*Ib(}vE!$imtr>E@K1kC5#!%Q zM3d9?TD$1eJG_7u^pC>jknQFVS8(st8y6)Z()evLqVA;^P!Yc_>>RIF1)r*izJJ-o zS9XPv_=vNNqrLU|gKV$Aar;PhEUKqYoS(uy!BnqU-d=X*p&Db&@txQmznpN#B!=1d z^(h{Hy)AgX_SS6?>|*3c)GyWL1?d^r^IFD#R@RUlV1!+(ilXrHy3Gljt^Dor;(yri zsIy-A+W1JgevKE!zhl9EK;xI?-^Lsk))0%69BIQ>i+&a77;7?^ z`QJS;W-%uy2e~i#)feN9EA=C^Q(H!#76Qe+v)?)mztTMZKNixD3EeFR2o1FzXe=xX z1Z6*d2;?|(X?*Tl(7B}iY>c9J1%Dy}(zCn8(c{?6IsU}Hd3D_7P@qwpg6bHr+!^r~ z1~!+RWL*!GL$Z&R85ld*|2*;1Ml2G8$Kv^`UqvZez%gPR$O4Ih!AEQt)=eJCmymhP z__oC>qSj{26hJ2yH3odSe(Q4`3zx4Pn^)ds3tn$em73_4UpsHa3b>|pS_Bbo+eQ@f zx!%ZIE3R)B1fl0f@q=8Kx8|l1<5A_Bpp`abUz>Wnam*MSHY0xXda0U}!w1Dj@!+NN zdAY}b93M}Ne&wIPF@C7`x})nS@$b@a#M%aTqWAoyK-g!vM&%^l%qlzBIwIM(rLsCr zM)kKb7lnomC5We*Q%4|3kOes4q|(4?$yz*V_e8hOfyFX)STuN!x|7 zH(svxuu%Ed?RN-{WA<`))n0ANf|Stwm=wwnUT|&G>pBGhf~xQv%4w-f7 z{N_JnLm|C99AHo%W*ls?v&@-q43wwF-0jN`e}~ADaeDGCu=FYW-@?_iiw}#_!-f;!C z@gEzjA!pX8Hud13nr)5$+bj83uys7V_WCR1Q~Z66#wh;1&Hn|C0I9Xs`k&+8ZudyT1Vb&9?aw?HfU^<5L*NCqepx@Z+>ke&YAwN!xqn$Isuj7I};p z02t^y0uaKnmvAkYlOuCVNVd{9Tar_Z$-C2+3l-%?$%lAgN?E`ph^(Nh)z;+eU2}Wl znJO8Z(7T*+NLzzxL(xwwWmMQ2FZS1A*=N9WW znR!Fnr#+MJu$i;}dWX~+E8U)p;IOog*Vslpr4>(qv4%tMz#6Y23uMSW08A$PCg#0j zx=&VAsvect3|d#?YZ!QwDdI>q#`L^`rZwM;AvDZR>%3Zs#CiVbF#`WgyLj3iqJqpx z(}>}@I;qk4ce)e!nVBwpQD>?Qv;VLAew#-d+qj>&f{db9V4fqU2zzG^O4#CifNgdby+}@ETt{x|=i(Ik2+un*&$zxfug_!?ZH+ySm1NoWSL+=MxsaE-NJ_5_ zH14R?!zP2yRLj(tXP)0Y@$1{(?j&A!cS(Y?bpYy}i@70% zd;0wxK1Z~koF%Ag=;hun&=~l3`Wj!09(iweaVwr;5jPdq*#IP0OP;gva@zC&=Rq1D z6kEG&j!y_VMolPLR3QqvD@<7aZQke;_1jF%mQ=hEpzEL#cv=4@FlMa^ro-bCLRL zZBl1$ulx2==+kUR*H2!Dy&Sumx@=UmjlN+c@>^Bxg&9NxyHG6y18YHCZ#?@@0&9)WMRFK{ zs|!>)O`HG}Oz>iwOakYLIu}T3Cm{2r&8fh-4H|=k*c`>?wX}R}dK{nh_^*HIr||jD z{zv%nPyeCE+Ti=kf98LC`=m(dDd-2#^HV2MK1AZ9MAIkKp;w=`{K-G|gLsQdeQ)@)u5EQ81VSy|bdLZS6drm7ne?KX&1V8yCEYVnlO2#7F1SyXZ$lu=ENJe~ksv-GXm1nqrYI$`IBOFHvL{ox^vpDK~|o`kL`UEznFZsEg+~ zzL6n)3#)D>a276ML!cE>Ab)i_pPMJsb~a;^p9W<4&KBb55a7;P+*!Qzm@S$;E*8DA zELAl_eYlUkau>HwQAk0pjB|k0GlO}QuTMT+u_;(xeM)xXFT-YefHt!9D zm^B8L2`Q0IF81&tFL?ao;`e(i~nU5N$^_Z z$FPras-)N0-@1j#ed7%0q4`R3>sWEzDX!;b0X9aOzMJ`$^v2;={eiw|?QNvctqbN) zxyU~3Hq@!Wlrh6fW^c8QMh_i{ta6L=vzGrGswr)9iwuhvcSd5!a<5e`O#-fXy|C-+ zNpV@PhbDr~wblC-|1F+r2#J@*H-|*r%nxfgEOXRui8Jy^Q+x4-K2RuTbk5&mHlEpb z$0?!I=C#ohe208?XKtDgDFofDVU23qxRy8Ns}ui8rhBN@arsC@yk%~)xB#xfJZnFq zxRHa7>&_ZG;y?4Mr@cTLV7{%rN9W(v|M&Qc<}0>R_kKsnw3+kKll)6ePEiJ=5J#pS zmoYSL?XDN(p`EaQU|lk6S|gG;VOtp6ydE%Q9E$wGb^yh}cx$QSV7p|lNV!-4r|j*G zVgJAs_p{CA)zT(4h0Y>0@2zFR^!XnDzKefA{k6qO#JV%BUH`bJMeAw&1CkKt>k|Li zaJ-342*yDZ4|Hy-H64v(^y-yLy~}57{AcYLewQ^Ql>XvVzKp*#(|%g}qN6{hxZUHX zF_xZ}%@+g7Q{K7r+wp30#wGEURU*C_^Fqfv`k;QLoT2M)ZGgOo+wnD6zm@I1^yBC6 zUUQki4FI)S_!4kRCdP^e7y&5>Bj_w?<%E+>BIJTs&k?VDeHY}W1a)FFf!b>~|4CcR zzo_J@L zn2zk|xkc|SDXkf{CZjPvZH5{h?+F)qdbN87}T}k?0Oc>2;6629@fYc9^D-#l% z&}u=n#N(zPU3Q5R$O26)9A=&uM=Jg$z4SR#IO)!)!n&nSnP}$!(4jRMZIvn5tHmA9 zE)m;<{qcrlESQbD>3DbL96)-hA-!lb6XfE)vB+&!xK#b#RpPr zg};*jnVhX-nC(|K?yhB6XVMqhZHsTHdfYhFDj$t^;9#j5?{?rf+k5l>=$H7Hl+(TF z9NF1HbK6xDCjC{WF6$%P9D->IR5`_S12@at3;+5}ELYKIpWE@&<3GI!%LGAaa;(IL zZS^Db5$#?4dy9V>j)AdG&O<{pBgMbf7|ME$d;CA-tf81k3lVaVy_4YL~ z3yUmA3@m5WeQN{cJ=~73!1}HHM8-GWr$26O77{YKhkON#WSNNh&19h7T7n`c<$^7O z2(u*^g*(n}`!Yw0H|KL5CmbshQ`P4?q<9C7azq{QgcGF)=Z+73zWCq%)7vMEp0xeg zkNhG0*r&g@<}jvDarf!z?PJ88OR}%a1R?G@Hd+4Uk3Qw6KOQzeQbva+2ggz{OPLU6 z5>KMOW~UQ=cA;E2;i6}vzixg!h9j7cGj8_GsLO(uaj`@3B6KQ2Ce!n6CN}3{gL;`s zBJQti+C=d~lwzD+!EQ6wJO5dbWks+rL~fMRC+i2JE%^6^z2FLfVpNg$MKBZOk(K&ak{SiC5IQ*i4NZ ze3J$lSLGry?Jb?G6jXV^dx?w8rCk<7#eaBNZ@eI@=W(Z*OkQ^zcEM8sr*)b#qn(s; z;==iVE;7&vW+;>k)UzG4Fy z)<5Z6I_~-|c~PfR_?fF8%!sJ_k{?;Mwe*>0}1K&p1j9lK5x7?A*>K2t!AfCg&Qg;?hcIVN;LahH#0KxQFZ0&5)=F zTbbRlf3I2Q)3QOF4}6u_N<75^y$gP_gLz+uuCe5+@CdV_3O0$87|T=!?sOa4r2kpF znB9p3wD~{(Rfnz4vupVSKe)ho&E*|Rxso$Toy42BIwywi_1kSd#RAez^vrpSZRp*_ z98@D&BnsllHD{n0=KBA5&%cerT_czTDhnzyP8o-4K16&I(^T?rkH`D{hP||tRFGj{ z{XBi$Q@gRHf3aC$B=C6rB*9Km@{e*>agLfl6H!iA!E2HQG#7C`D)229vi@P9r~_~D z-ydlZ7fZKW<6nHf#XrLp<7?oYk<4NfvH8TLX3Snk_H!r|Y?|qHi*bNdHjND^)(ONG zLty##%@;i3YXtAsTRK|Pl$Isur=F7a` zmH?ary!{n8GT?QquO05s*6pj7qRP+441s79q_?#HS>;EEe$S1pJPgKQe!c ztPh8O?Qi@YJWczv|KX?cXqUt_%d4;XEp_z@=C`t`2U z4l5VrLYf;dBlOLhs`04sps{$|GFj=5)hc$25T0K?&Wk9AY*#9XawB0i`)S*5*e#qw z^cU)Pp|d%*Rz7vThSIqDA%jQ!hd=RsQ8+o>QXZzUSWoVo%FB}`FMkON>1He^V$+G( zwTjCnKG7G!wPk@ycIPoUUem{$$`%g82b!!-GW3>{(_jkZnSpu0X7NFFJul*38e2Dt z=}A}e?NXtu(|O+-95iatpzNM~T|Z3+rVS*+?)O5bd<*0yx{2sSw(wjLphzf+S;a#c zVV)mEdrgz~8fwwcbR4!7V{|O~LU=&4tj2-9u9I|wOMGzlTkTG~x-X-f^f5F|rMwx# z5f{WGhoUZ;^P*q*2hZIlr^KMmJo1Dh%RzMWIw>|L-5k$3iEKWY8{M-Y;T*A>jGI+F zvAvV8asZUSUZDjKazQ8;Mnj=qm=!fi)e5|rW~!rhygZ!In-z_U_*#JASgk7%Y-S%` zn(Kxv=V z2Wn~7Qg6##)ynpPLsI|852uR&df(zL2IuQ_((ZGDECN}Cv=u`GZ&%%07fu4->1LTrqI6|Uk^MY!4J(qcIb!w< z!<>j3tCwV>=>}xJ*lBRCqU(KV-<|Ju8mdNe!i!#~@n%7$;6AXo!3~;Ah|?U))|>0$ z5MdiNcT(TZ7@k5nCF82cEZ_I|AM_?JI^9FE7(oZef7TpeHOvidfK#u;KdXkvp`g$F zoi(hpO)K_eKIz^}!2U{j-pvHL-^FBFKO3}0Uu)~UXCvcDXw>!QBl60=kdf~*clCQZ zQD5RR?Fk}p5qH`*tb4rP{SowUwcq~sG(U#^PTDX0;;-PFv)L&4Zaz;>;Si4S?tJ_^ zK-ZVVm4)*xzJBBfz6YQD_>+BY(*NNv{mg@Hzg81|T2ujQ;gO%-s>F>FKu%!ReJ;rX zP@sI8#&olgjWaRn1}&P-_R~M}pW`Qf?1%6)?a%&+Pvb)`zl6W=+0WA^7B5zM7!_&9 z0QykCrK+*-{2zS;|H=RDe}DUmuBU0oCqI7n=e{uAto%c;oU+;$5- zj#g}@H)R)oU$vkvfJyU6OnVOsbu%5RS%j{U9_nd4V82)%3#0WEQ#}C!@i`+_H9=0U zqT*;tHRB(gL91xjjSjSefrykKx4+WA2n1dDFWtHEQ<20+6trCY5dOpxis`(>*@x!L$GVvo5=*gFp-^3WC%bm|AFD_x2wm#@xT5-ou{UpDRwQ%3H z#2^X0RDi&Pm+zK47@hAUF&!^ICERoFR$@#x$iB0mw*{=+6miO3%lP|N@j`Z*K4UaS z6_tt!!f&2n+7c2~oR|4WV~|C{Fj zxG5%EaZmJRnhV4Q4&H{MMY(w)@wCN%%E5ls-ZK8`m|Zy)0L}_y(j@M2$iKOD-Q|Cj zUN0oHwPCHr|LrR(CH}pbanm{p?8VUd6Xrqw=I-c=NQ*L;9I>zd4C^>*+*}vqnSttK`X?;0HYyCk|whjWe*Ft;tD% zo$B$V5nVFE>9&dkN5|&iT}`uke`9}XwYWg>j~@TX#Kiv0vRm(q!U5Jd=sq}>e3o@p z=B6n#s=nbx_vCRd8lBd2C1%mLy6BYuX~~y#Kno?_^FPG5&h#zUtb8T%6vL2rJemjA z&yj%PLp47su*tF;w6J54{BOc5dP+;ah>Q`xt!rp*cwv;B|Pszhi`eU2vYu~HNAp-{$>ZS zek0GL>3i@czqy(Db1-@HxtT8t>rCP`bp`UWz&59K3sO`1I@fBXc-iQQo7lD%x<%D+ zEWgCR&L3r7u))KWC)rVd?*5T>FzrB>&`0uiZfzZ{O@9=A>0LYp-Anl5b`Y2IFrySe|mm3?UMiL%}gno!*LS- z(r=?+*(98OG8a*8M8ixei5)=l@+KUxL^IVn(KBR`O>@4F&cioyLQ>YYaV;D;JHZ2e zF6d6uks`M_86;=s79a|oo`=4*0rCydjvqt+(?9-4@%3uQ;_WZ|ckI1O?0s8u7WUP- zxBGUtU%VnEL@~2Kq#zW*D4;wB8DtPZ$|NwzC=jG1qbNv8NFb4-U>=hw13+X5_9y}y z$bf-Ez>I7s5)WZ!u_KsZu-n~z`@T-)x6fWx^?g-qpWpvJjD5TB>c0PT&faU)s^?d= z*4n>we*7o#o!DY=m;u+bi9r%)f;c6!N7I-@{Gi=&`0@LH_rHZt(*DGs{Y#Gn5KEw4 zQ%Uk{1-W+?T7p|ug(cfm7HzBRH*cAyxljOsXeJpOh4At5ILJG`ChF7v&c^XOBFFD_ z{LqX3j=#F7MQWjOZkDVuyg_kv`~L6y>f=Y)|L~_gkcsvqKX(50hZf#|e2k2{4&-LR z)e5^v3Y=iL;M}y@phNOgr}-2IsASMLS9`((75ZBELKjW4(1aGO)Gd5BiqZHk;4D#B zw&yTK`j`q%WI<^eWq?_bAZx1%QJf2% zD5i>O5@7v9_6iIu{;_<57hEwh5^n#Up}spdVVS%?U}fgLqQufg#Q8sg*)lX zIVJf~A4mB=l@z`RZOqST#`kP^eY_JKU#X z^Nc;I5 zR$w}4Gr$S}vRCT;?joCs@40MJU=#mx*g}bh+_<$}{HG?c?+wKS!G=xWpcV)5sSltI zGwy4=Em*Y7|COhdsBY3?V3{!DI=IK6x7xr7532T>T3y4Rj6;&qSfCXm z5-Fzgzlp!^4im$D{KQIKQ$JSa)@*9iV=T7Q^1I+{o@+XAB7<(3daq`rm~?7Sb1Oqkd}+!VfFp zlzQ8|XXudK^g<9MB__KBmAyQ;3yIR&G3I7 z0|3R=<5K%vtho5xsY=e-mh&b}o){JCrH|+z@!!^*YC)AP4@;Q$@1jd=&g7fW5Ti(BiXb$6svx zum8h;f}j4eKZ*bJ_x*eLP5<(5SnEv(sAwtBKdY2u+#mi!zX$)%U-?s?+2P0IuRo5j z_i6~@f!us#yI>r-(ZN*rn@hNB_BF&6vc zaF*_|(GJ%_(5YIDd3}A3At{fn)~$-Q^)jPHeFa-dQM4`^AD+isiT~B-mT^KG%9~>N zXt&5kdjJr>h4Fz=4e+$-^c%B=2M%mwH1bqXVgFAIwvtoWV!WB&LFPf|_;$0lIdXou zyKlnFyUFVVi{dn)t4t!CA@hfBei(R#Vms1?3m@qltZI{r2;xOXPx?Lma}Cj^%2!4i zIc)KB{zsl)x?x|^1rE}|`LDM)|95pC{}gRk#0%_1-$<=^@Fv6gTMN|BP<)_b{PZVP zT5fFcJk|^fvW$G@MxO4FMP1Z-$7ZAO=cjMW!G+g`%$VV0#Qz8{_HD`wC!QCfraKi)(L8SnrFW3VVm_5)lvaD z-uv4y)u45X5QrTNoebAiUY}N7$@PCQU{VWJ%|4=K$Jm4a1`H$&*E!omH7}P1%D<$Z z$oeRhQ;zMD=ux1zSP~Nfgt1UD9Lpz#`;#AL*PkDL44v8T;(6olmGyE{o-FDcQp{WW zHQ^K%wd@=6R(1todl}k%<+JtqF^^&7e+OX@aakBe{4Be~9zvv}QB#rzZPxR0{v7yZ=7y!jp1C-Hj)JVQs!_;A!Y8b!Quj=W=-IaA}m z_$irXDhy$qIjlUF^;7=qIahGu7i!{l9N)0Svh^wOz*#1r`QHdnp2RDFm z_wzvujP#H->^A-vR!3}^)+`Mbz-%Y)6!UC1#?s`a&F*WA54H@Pu^%km_c+A$Hwczf zTrYkwq&U6ePWgY&Y2|-(nOZ#E(jBkzKijin=Zn7p`5d(PG4$W{JN`BNaxb<%P{AdV2)*pr=v-)z(jQx zs;$8InS3UnF|zaho)|fC#-Bi`#TVFG6Y%XuqHG0fQyyz7(rP5+^s5c3e@7Vnp@ zomk4>iEowvQTUXLnB@n2pEbgEHS5>b81k`Pbh1_n|AFFp8~^f7gFSOZ@R*p2k+*H9 z?|9|-r#Q;@UKUKh(eTgsuh3$<)jTzT-souhEK$Li>5ghwdsv9ufMj$+RMvMux56HDl* zl++)3VSXZvQti$UMO4gs!*;DpTAfz{EMMTmtri=GVYkE%uzpN=E><2sqz6IF1X{MQ zIcjvc%q@oXw zUN$&QcKR;1JeH3cK1pN!v^(Hj&QI50(}DPV-XLQ=XvXiDY+1JDBVJ!?$o5>5u$MXU zcP%Hy|IW=#HLB=MlrZqtX!)%d_NARWN0s{qt1K(ctMxz2V`Tft z8)27fP$wixm6 zL?QI)#3wcw@4_QUryT#%h#y5Nn)CSoiaE=9Ohb+6$G@4A4HyZw&1TpH2=?rP$W<&V z#_rn8|BKH>?~4PF&q+Ie4E?YE`9Ffsy8W%6{QKXbKYmWl8&L3qI`Bs_4OZaq6YUJZ z&xlC|2&W{LmBX4llBQq4#sY~dq8iYC8ZNyGX-?v~F~WL1W~6Kp{QhVE{h!C*_>uqd zGyh$i<1pk0e;E!qp0(pZ=SP0*Z-X;@Pn;{CtX2i6w<>6t%;nII3m0VBS-xtN#J!SM z&Ic`iJpTzlcg=?0<)F>JbSK?J$l3(h6qV<|kr#82kA!=AZxtoQ%%+i#`6#Bm{i_Ed zsZY8lt5Nz0ihte^tU7M`f(aMPPVHKLe(22W!|f&tmW6j+g_Ohw(&ageY{*6N((02q zmca%5s5UHE11 z&B9_swm#enC;6aqdjP@rgr8zGy~1jPTd`%ukZm?-JaET0N(9Ems2ZhHUqozEsgBsh zzpePU##>_J*-aMIOtdyP>OvxbYuxXdnoJML7+-$|I;%x_ z@nS-luQ9*feifH(Q!QU3m<~qHjYwut!cO#BfV{=Oi&pwt!=J`r)UX8rxfSA7kIC1Y zdHF?rgV!$Sr2h#HpL3qRN0%u_vF}tL!a-BqnLx2f?R=&CNb*DS0sNq~f&w75hr|u( z;nZT;&(Sbw8@XuQY+`OX>|N>}9h1CJZ1s*6|Co(J*f`gv4rvp}6ifJ_h@AYPE0fKe z!cf)14sQyGJac3dr|fFFUFKaUK&$`#{OzE$EiT%%y-E+eSI$*-&AZnuy@T* zi+aGyC*wW-ov!oYYsNj0^#yh3=eJ0UI<4u3c8~wgR^ph^*Li{Vrxq5(kV?1l7Z^r< zQP+&Ly;Pj~J=(p+fBBrozim`0@z42xeRitPZzie{yW+yn4&dyk;x>EpDDxxk*Ce{z2#oC*n%uM9C?d5Fzcs)6C|D#3F3Rp+CS2Nz5w1S>2WN0&CEGpwYv)+=&NwxsMjOY4v?LjJ@48!5qi4bLZN8 zvW?$&F=?JG%+QNRCSQjmSMfjM!>=%?9f-948RO+vi_fkLYq_Q3E#j|aJNs}!8FfH}g+DHP%raAyVZ0$KNbIiuiBERRfw#fYNWS&i3<15Z%voE-* zn#$!`uX}2f4WmtdH=Q<3)*zwXkj0uGtRALLNOaavZ)mu|q0?4tY`!i&+$C4pvW-(f zN!Szg#zRGm7}v8_ z>_YcWFyh=)UCA$!f0f_ICU3iL%ir5yh|2^tzc)Fhh7P`o18Wv$T0zI?oh_OX8)_HZ zkq~xIzp@qob53hPdfJj=dA){7Mg1gb;Va}X!Ov?xux6~E>G#6kH2!Z^8VxK0<oXh7!CRSY_Pg_zV$)?<(8@n@^+ z^`Abl1jdMtxg31x{&c>YL3lg;n0ak}Y|XR1YJF?evxr^J_{9Op=cpY&hW=T$V*~du z{^3Wfc_obn>PCDd;x;~gyg_zw0*x$0VV|D)UQxIw zeV439Ns)1Hb@?-Y@vq~DkKfJs9JfF6r+*kf_m6&F6A)*T#|5n7YJGOl!q(6?%g3U_ z_jCK^hLi8)W)CGv@hNDfrJMQQl8TdGRh5%Z`|tw7OAn4-C_;U~TJqX#)>$h6c1@C; z8T0^y<3Qh&bZz15x`E>xfauK~{iy@z8EmBDHh+v!jPd(jMum*y+U8Rf_w~diV*nKt zeO@cv@liBW0hyxHrrAceU8{u+^UZkMD6B9^Tb)Ew6bEa-%Vti6R@k3I)QT2IUih_9 zZ1gAp!Pi?KbowODws?$iZ%Vw{DDkbb=^F7=d|BF7Hu-GHPi|`6O*^2Clqo4!_chVrcM zBF~-&8shl*-gTgXNddNea z_2uKIEQe68SZ7FEIR8arVB?biWH}CS6bob{dxKe4>=KV9UdPA0Q5u4Y4hXw)T8abT z5Ltd9nqP9J$es0#Ddgdn7>L>we6~Tuo0I7d%=2PG4%C3szwxC+5Cb^#XF8dl{7 zqt7bShRj83*ITt(efYP6*t3HdZ*#~~ogvP`pu*}J;UxMJX{l=A=f)OXdS|U@$htOT zDWQt~nqy(2JY+}n#{1X^YuyCLAljM_^>lj`TfXvI;ds(FlQ~Y7N$V@tZEOfG;_E8= zY2PTFl_AhK;EAQ;k!C48ARJ=Dgs?eS{VVG=rknP4dC&7!of0uib7rsWmi~g$Z&gam z_DO~x^f+JL)q`_Z`3`=kIzdJguf+pI)^+@7eN6aqP%s+9_B%ez>MVF?xy$Dg0;4OY zS}Ru17&BFM+9mWCK5psX&LFb>%eO-=;@^<5YZNDe*&zeh&bD+ThiTnkx%JO1EGmX# z9qgOD0E(#8M&QW$?5eIM)2v+p@_oUkGTL!BeruGy%o1y}Yt^KzL*nR86Wuo<6u888 z${I89$cb6{m=7R5iGSAVo%3f?^xYLvOHSjAGWkcUCuv^Af4ol&V{A;mDuyRt&3|Kv zAVl@6`D?wJzDhb3GoyUm_acv0IjRMFF!CU(*Q-9HzH4?*ET|E(Cdu_?eHO?-VY;_G zocVeU_~HQMbJYIokN*@t%l0>a^6%rjqFF7Xq&TA2j!9hn@l!1Rrl|17tZ`vNU~ZTj zDP{szl5Dde)PT=~juhupx7?I5)L+=%su0NE1&IlxD3RjF@!$N(zkt850n!(#VN|6gN8wpzq-kXiJ13&3ri@z$0a;#Y^ zS|}M2z1%2oV>{Q9`eaeuo{Yg&O97T!`H0cmZBHq9=0sZyRLf#D4`DVtA+q@!Svrah z6y5AAD?VBfu6WmDC(nX3=b$-nqEE~CuYbL4MO3STJg?kIHR6kg)4BdLlz?$7*< z4lzkwZ!y7#D|PT?8c%4xkcC|ZjM?0XbY7h~J<-OP-^d1L@us9~=v}m({JQ8cICP`u zGM>-DbB^|zH!fq-z%F=_1wuNhll@To4xKS)oKwh$3qer%Y%CO2%JN5^r#r{4yag>p zUGy9_ip_F+qx^3(|401CJy5)(eP+Fzfu~8%ed-`R-XKf`{{yd}i*rV`Q4U}&WW#s! zRr~RRV#Yt?)j8sxIC#FMtJsVYUIapT^f!qARsXn)bJ+$6RQ4JF_c-`C1>WjwF)!mB z9REf*GDadZ7t!bk+nra=4IBof3DhD0gFt-0zW}RhET`C|1#V|;4L{h4A6-9a$i`5b z)WMrP)`0Qh7b{t6Zt~=@a;w&_U2v!OA@Pz>ymfkRjG_1l()ZBmIpo#@C1b2|Oz1MV zJtXfIubl(gxIt(jV!9hZ<2m#sab}Zt%#D`+dDDug$w&&>MeQTeNN$q*t%iwy_qj_4 zw#0pXu6v&U*|=W1V=?k8^*gAY(FW zWWlf^Ahcv&vDv*1^EMWvRM)8jOP39@R;`}yl>_VHA1E^`f%Q5sHXRG1P3n=rY_9Kx z`Iseqm31x(cMZbs6HDKt{tq4&1`2ObAFJGI!raBaspMiV{|m!ONGHr*FA=L_;~yDT z^xjsChPWoLf<9}W%KxtXl7sE?RkT_^R1L*-N&O}UnqPa-QUPg;oE&(62G1C;KB5vl=FrOKP+$j&JX9O z;3fJ7_A!q_u;*5p`#S!^q*N*bE&l7UJcO@4MtO;qqrAPwBvD&F+y|s3S5c0)V4wp&Qpe1KyxdFZBXZHo@W!v(Z;b z4Pd(*m-z89no|)RUybm1x1OMT=`G6U`1(O-X#7iIgZi`g9@|-+H9g5@g;C*=wyRnwYp>=SvMH4DztG9)fQaM@ zY~#Y1iRXrNTMSH}3124hthRKsXk}xPZlqZB@L9_t?CME@{H1TEm{wQW*cLZ4Ek;Qv zDLZO2C^mZ?dH`1Zvj@->v&J*WrlBupi&ySne1^x#A%UO&n5=M=u51D=Ql7ZPaZtUC zG0XRsSH0_8Jk}a7u|SRYxp}sX{Kolz6aOrO3qQ)=t`$sLPUz(IeKQ9e&@;i<#*Z^U zryTj?Ci~O_K?H2r-=n&VTaOua}pd9aG+=T;hZd*B3%|$t=%~koI z{MBi8zmkJ-x$`F=E42ovu7}>!R+orl>st#SZbd9kn1=Gz^bdp9-2a`U` zK(T9C|Ar4#Y;c`QOfp|jnjZY{1_=+;IFYrLL+YK-gA<8ZC$hfJ>me+l2i&}APIDRi zQ{_}MVvcRl?I(?FBK1GWmsJx{Gx1gV`wMmgnkM|R-!r>*sD1uF>Bm~9_&WtPBc2`N z6~&o2e(IjOYHWMOR=qd%LubD%rJKm^&^5#L;ak6Klq}k|efdOW5W@9?xyQydRFC{B zI0Q8M^vDU}6a544p=1XAZmaw;aR9nUWnl7=TOOB<@KZrMX-6DKEqtT;KWZI5Tuq%l z=ofh0sea7*-$aE=FHqSj{?TobzGT#S;Uv!A-4W^=)A6NVEmL%~KJAXz12wjp#^r-I z{%a2+Ol8@R^5gO89$IkBwpr`$x^3?F9Iyj`zBf{9m&i*ey)O$eI=xk*e`xRCbeMcD<`?2d(m8(D=6C;r{~3Sn$A221hjtu(Jbu4~s}lipdUAvl zyh9dnS?bcYn{75NDY@6!oayufEDs90Rw<8@UXBsMD4TGBuwjCWKi<6IMf|>Tnmv6t zpAravMqjWs-|g`rJ^JLH|MA9@^3%iLvZ$&JFv|3&u=`>m;x#sipoOSWeDhRN_L=q0_S1GlP-{1gUo-|h`PSi zpR%&5QF?Hv2pENIZQ$zIkc$^~wj9sNFHTxLY1E%;2Znbw!b>M6k$LJ@a8fiRR3rz* zy!>DIX!wc5(TZ`i@&PU2bDOoMWWTAPFW!uw*lu{^#B-C0mz>3eZx(~4bJKurJ@`Uw zf)%!gPkikBPx0ULf0^Nw)nBXNqa~o}#oCZ@c(YB25Z7g)nlxEvx=0L5C}RC+q*3g; zvKVtZ)>jDR-SgdzeZqC~G4e#l2FMrE#k{Gad?qqm9Hh*JkMf)w@r)xB!?Bq&5Uc4q zH%o<@%cdSMZIzoqAS^xRG@vI)Bc-Q&>yW0>N%(5$#0#X>EO|gn{_yzSs04wUqc8|7 zRaAV`<`!)T953XDNq_jIx4-&D`cC$1uc8hys}1|^7xm5mFWNRHjoYb zH1UV-XHwCgy=F>13Xv64j*2fYAE-?!C?NIME`zY@a;0w^Fr!{qiEnE(SM@^}T6sb3p&w7LwY0Orty|z;*z7wk z(?_dKtJ5uXLp}U9@@rbhBl{(x_KNbgZJW87*D!p@&0`YD7sJ7CxUrbSl|u3^8-+}J zy}DjyI|PvAq_@0w@pe?D`P9ta|1Dns2^v)KCP zRqJ(T4Bz=OuMaw#>|4BkI@%WpAfL1LS^XILcg2sNM|0>R&I%}IvrGuG-1nBKKZC~5 zAsZJI$VM_`UiT`lEt6B-Tiqp*<)-Xsz<+%obQK4&zz(?0;%K3#<`FHXkG}-@kN?a6 zW3dZ8u>;FW)LB3Q$qg(FNlC#_`;`0N&=(|R%J;gme|}4+GcEZ{_6uS zvV0_@-4icaz+#gG0V#6FIxi~}Pk*V)Ug6dxpT!PZk-RGp_%l=vdW}u77Jz9#lOmJl z?%M??o!od%-ATFe`1dZGQJp(_QagBnCUS?0zl(ptwJ5l`h%d(}%;?JRBDBQ-<51^k zsIwdZ&)O_OYm|B;2E$dDhYk(>X`R3uTLBsFSUDl4)dOWXS~09o6AhjW;Ehe9L~K{Q z))iO#@W7nHROqV%{=`b=jQ2 zL!S(b99;64=*F8I>a*g<94FoX>00T>bMBoh%K_9yV_9bWThoO}zwsU%bA;<=S+V5i z4~+baec^oKth-fW0>=iL|AFg@%3mA@_Z2r@A{HjC;kk@6j{lgUu=crLYubDMU^&@6 zVm)LDo}4#hjad{a8DC=alk;KX4cG_Bz=xdVf5o>;UULeRonMblD+2Gz`|I|-p70Z_ z=!$b6xP*vV;=hQK|9djBgbYE#7Yd(1wR3HJIH}1{5<2bG zLiJ)qE-`@mNd4dLA;)xz*Ugkcx@y?ve@Kq2VR?WZ0NPB(=^`;>4vXC0t;l0o=SzOd5fSd}lj#?t z8_#RbctT$1Ip)xvp<^oyUDyZ{hE0rEZC6$Pz*wL6ga2(Yt=N3}6$YEW0N2)qkklHN z>Ox)`UISfk(}%_u06sjgTYZDuQpC6t@lhbaxw`O-VUjdKEG*owAZq*;#)WrLc;S&) zX`Wn9hC6xFL%|wkL!3K<-)rs6pS=_1w_dWvJ4lXT{A6)iHx$G4UfZHa`89o&e26iU zeaVYC44fhQ7QDHl6ax{{jl+=GT+Vd?069b>Ig8&WyVs__-e2?jMc6T4frnn>`uaas44CRGF?vzZt3X+%q{m`HJOZdFxQsSS!bHit~(HihtPvCf()2$m+?M7?wOoY|=(a*5FZ_U{{aOjfFW;jOIo!x?No3 z0lX2w%|ySUm-0=duiD@%h7(N=HlxMk!k+Rs+bnpJ1-j;BI$k*Vkm4#2SczFvIDKUM zu2)`kO5xUM^oewFc3yPpUojU4B((scJi!>nb1Ytiv)Nj#nd)n~5U&rBn{VvTO*q~R z7FJfvzm#j^Q%+&eNB)ob$J`yu61*(qsoQ>ul&W((l>c9(b{Z4Cky%+%o@<@tnj9at?=cO{i?AY zuDq~&$Lo##G6d-Tiz53>es<+EU4{I@NZ&gT6YQfttQ+GbAJ}ZQK?bmS3oZJ=^wl9q zhKpllhlt;*jmmGzWi|t;ImwwaZ}21($OjyXSLKQ|&cw%)w1#@cAzeE$v8GnsCcCUl z?qzpxNnO@{;P>@)Ln1Ee!-ukv^JES)^~4O*mdjG?4d$BlUJPI^jC7h=WmrIgdV@31 zRz9dj6KTL_4i+4(kYgs~W7hw0(XqFrpZin!Z zinZc7c;)`+N>3KykhO*6j%71~^31b{ctfo%A|4_|dG`%hUrUQeXU-1}LZy>x=%Vr% znV5aunOAT+&b}!>ddw|NBs*&Hh%4mmPWOU|iWR|+?mVt<*$wys7kI={J>;Uo_@HZ` z_@n7#4Hp-sW`@f3_}`kN^S5g^Q*;O(^^l-2Kx8$VIsZ}oGuIf*ZYV$X?%xX-qHi8z z!Pf&B8vkNDo*ZoVia%UvChC_RZ~Z}qtm}dtdhGBF#h>8*${)J_cisz|+Xc5`3z{=) zPPB(H#weaEFe&;-t+kSFshWVUwgd$eG_bSV_op;@k15 zT0W_~bd`%KQ&7(hmk!31KpuR{-%dJy_{aX%<99)h*Iy0o&%PXb{JX#JkK!kO@@F2O zb0N(Y6=f94omnXv7l|mq){PWx21t#=g-}juR$woMLj8q`oQ#7v0@{2=n`87j_~p%0 z9Y^wWkq|}7NcvtrlnJszFPo&744v} zK0@oyet_M3k}l&H8UJBlni#xcc(gm&D*Qm=Fzw)pU!dZm6br(N`NR{mE>G~#{ENk5 zj?J==EN)FE*P{8n6t~tzV`j=vqiR}0s))7WCH`2Sfh;P0?YNOuYApId+d3+ z(h2IYkJrg{r!a#TJuw+?hQFTwSAIqLA#V;i@mg{br>^|%-!t|(I%x3H)xAvsBvz&W z2jQp{+73YZIN>@#vBfcP-l*RYi7~|Eh<_iBsvpTm1Do3BKtJ?-t!0hj#dGK-$cCLG zZpB_!2fFn&PNjcQyG6`ln;ViQ7>n@O6-ctjwR`Zce#~-gV}SKzt%oU(#a=B2L+9*B z@tYHR09QOo?)BY#mBVVBNsi&CKNCjczlBk$Yf@dWNp|(euC){)ItU#{EfReh*?`Iw zoFDQH3)gZqj5`AABPO3^s0^W8L$b?XA0T8XtVQ;1Q!d(Zuw1s@=+*U5edye$xMt&4 zPHq~BbSJR0?iRWt;0T(mA@P}h%lOv~NAx288RNqwJgmERysu5FxjD);Q)2S+kKFVl zEKV6$KSD+l)5K$8k`oB9-UAO4Sd5~#0{GFlb z;=eA+JGqlrN5u?!Y?Bo?@qdaz>%-tcbjY?V{BBaweQfZBZA*XAN~4Xg1*Qu$dYcO@ zv+~KcPWgbfd&IqQ9GY;&>+W9c?R?cxE|IaB_c|7Yhq)41xUPEU^}oQ)3bR?g1diTa z0PlS7v^r%UM&1@bEnJI>rL#NLUm<72b*wRJtz_b7{Fg08dI>orpL6_s@*ls=+T*`I zSG*Z&4~=EuC|UQ79<1=vYN@f}e>|L!Jh%8S@oR49xrxW{e}H1ZQ@5nSd?m8=%DIFL z{HTeugC&kqv}I=5;pH}l=>4lD-Eb^Du&NrdaDXGK_$YtKJ}+;+H~{$^w&QECKFyDz ze>eR2c{JU4;v|m*(}f~g9K@oU6IyNRC=k8jn(Tr(f}mD?y2t=YSOZg>l3N@1NGLB0 z@EbNr^a-2GrdlP{TqNA9%E-;8p3ujKO1MAwkN(NyFG2q8|LDJa@$-LxUy1e;FZ2GM zKk!5NBY*mb@%3-KyTMdTvpt$~(nAAoVE>fGMU#TUtGHd$o-bB5cw*bf-AMX)G9?uz zwV_T7wK=3dTH_nRT2RD)ybvtMp~BTs3pJLZ=Hx4}iIH5mmMB2QKNnKW6CpqqlELOm zlETEAR|*SJjkgModA3$O6z{x|+8gg@O-s;pv2jwshVgWXH8pWRP$9a(BVThk(@mW~ z78Ak8F8;d!T&~6K*koij`ANz-9?%^bL)GjyZo$+n={L*|^ zBYC5vHmNY?FWZ{n#VoX~77(afa`H)=gdJ~4XB9CDe&@Z4Dt>BGULjliNpvjkKy#yf zFYFW>Dizy9Nx0g~D;FU-GyfNtn*UA0yJ)E|L@dnWU(pD;C<#0dewrM+RRlF3{Z?*T z%*aN>llYhW)(^_hL75vg;KlE}xM+~Pi4d{@>oMY;eO5PW`K?3i2!!xyjLdEHy}mA0{_<@{#{wf9;6ot@OP5$m{T!8JI*v1`*nk;zi2?I)De!YYv5Vkz z(C(EH;$a=mGfiv7U7ElWqkQyJ9afDrb(ERKq50oTWb>>w=4h_%3C8k+6WLU>`SAa! z%e@qn{EJw|v0$RtT&qS`>-G1=x@zEoYizRvrEb`3iim44iwltmrF(h@aBhlzrqd8< z39U_Bhc7?7@A94=bTNfQW+K;-R5lIM=jgi`D#t3^V;Isg5NeS3IX?c=pioYCO%ski-9MbW5^!z{=I+rbC16U`Q3luk3SA1{&}>=!N(u`A^hGy_$TnU zfBI*rvT#N7NYJ3qsqf0Il^o0WGzkj1@xitZMoGY3SmM+Fp2!9zT6pZHktAozOD~eG zE2I@hcd1NP$2GCLF7$&;>s_zb=49n3e{`qCOQlF5w&<6Q?|v6KWRnnnv4MfAI`vLV z+{JUmh+Tk*lMH&T3eqYNAoEzSe*5%*)U~x>j(fK4&IOygiRm0Df45y9qRTi}MQF)y zQukR_O8ivxAd2!C)=}`y;T)tR6-{9Jg0N082g9?9)kOfhX0cIy z&SuLNflczX(wZyvl2fcc*`fY2OYocxR}z7#P2G7d>bx*ZoM90XKO^etlTp}OJu%4o zz|;J1Ev}sAqbJit27levj_ zhY8jcCe?u5lli<6Lk!k1FJI=T-|{*X(=6Y|K_BBC5?f>=43pQAcg;b6aT?=Rh!m?C zGxa23ZJveWtlly&QXjG^=8vdhMz0~Y#b;XdS8zJ8wXtIe6)`}I(YSBT?tu@^*KAQI zUyucMb5N7{Nx0SOFNt<|+jvY;KHf9dZ_{OBSi{#e0==&H>`v(q$J=|$|LAgdB~VP; zp0BR^u=PB&2GSY&HKJGYV$|V`)fJ;o!dk^&tHaWZL=cK`qjgcztbSaFW-V$>hZ_}H zDS<@QL)_$R1uM^$M6CGDYYz2W3g`Sxuf4{}&0G(=ogV}uf!qKK8Z4RQxSq$N--`Ld zz{ws(MqxGGvxwii0)c+#G=%SMr%cKLL?G(^g-mi;j_EO2Orj* zIXE@ODrEnpPn_~KD$^kbSs$IJY76Iz@pIn%`eCn)OsRiOxv<@ooKrxmYA(Qf!FEJk z>Cwl2RTGysCDIG72JeL*g0pb_pKs!qUb|R=1nVD{d5V$xy)JUhhmYLUZYX_k)R?qt z@j@OW5Ut9mzwcQ$u^DTeQ@DI9P9-fwU z{WgS}$MH74XrIe={D#MW{fGWT{J{5p?PHDmuKMxwqj7|Zs%!3*QdNJt0-Fp;8~<{QmDpnBVKKF_Q09;AO!*k@*ucO#tgEzgzKc=0iEY6UOw( z8`epfR;1`K2W3=B`mJ85cHWgiL@`R5;CF^VMsbD+(Jk88G907ytc< zd!4EY3sFv%FaWQvwsv$aY97`WUy1^Z_z{|@KRDa9#R$iC&~US^x{D&PFbS9k2Kupp zd3P8jprQTyqK&m8-bx~O97ZcNP)O{PRRMlQUANB4YRhermg zjPY9jXXZKohfQ*>)~@0oV`}vUwe@;x>>~bySn2!3!EX24;s=}fk2!#;2i652tatfp z6Nxa}^&l+V%`JFoLUiST{6y%Uoig`?J2+Z=BA-e&W@72-)TMxW4PEqv_KoueJs9KN zCY(shPq}W){D%EuvB+|~xp#fF0pNTZwIaq`>;Gq*u1TDPX1_V{(2@n7q&5s`ob=JNy3D$ zxLkL+Pu>A^+|E9#kIr}6vsi`pTKuQ>B1`c@mmn^H{U)kQIH!+M4!Yqf1kHPE=saj< z-#T| zyzq(R6+))&UQ$+9l0O>-x^xif;HawYsp{9D?*;(xt2)lK}a2@4SE-k!vNGKl>? zPVmV-b1J|tle0Hjpy43V$j!<3^kB_|Ot;bV)_u_Hw*jT!4gu6BT?C^Vcst{w5IFC8 zC)ccmDQ8_7zUgN&a(?&%$S9WlkBn3M{@?cdU)RYO?Thv++zPxpw3vW}ZUELmS(s*L zRIvl2(67%|DX12YxGY$7p1#>r3q4ts<06qow=7y(Vxtd1GXYxo;W;bmVavXvG8gNW zENt;}-`IjkS|$6+aQj6uT!D}migEo1Uk*cl=WqYb_&0yYZ^3W2`b1;wo5p|o zQj7l{<-1tWIH(V7bI^NNKez?<{iOXd!QDSAu54Ve9J%h(wcSC;nfG`^^*wJ|v%l~4 z3EQ}j7T^7#hvn*<{gC@K%J6gnziZo=Cf^8}`4ln8{ogSE?_MQ;v5$bYrPD|*Lt8il z*doKuKb>>0+8?jQ{}VmNVqL??1aI_x@pSiAOKjj@{Kc;}d4nI-#n6FF(i~QSzvBP6 zbjMJ1*d}H7;<@UsxhXH0%z}3zh9q5RkRLKHM4Om7A9!K;)&3ZpSiMa?dYgdOL=7B9F z=d2M)|4_5LU=zrfvIB$(Ofkiz8&woOE&k;2uC3BmFr^FQIvSXM4((VLce?*&&U3;> zQ|#Y`#7;1@_{V%7eUf)qlFtM!>>#iaLWUijs!f}Y*1J)suw{8(@x@L42g_rGiG9ZD zJJ{K}>G>-DOS!$HZ6{+7X1yksas0DZ*2X?x+k53~Js+2VJN0QC5bINKX!histJw!v zSW@fc>pa_=uK5^0GsDOn)(oq)dGOI>oiF|S)fJ}jBw_B6Kn zv(#+v+debU-@uRFpbOX4oZEIbow)?5%Ga8q;-qT67_0ST%)=(yibVIyO-$^;e-)~V zMNI~55)(vFiHc2K&OQO@i-Ds&&9mm)9AVd;jWM6^J)cbWcwjk1d>rh7E;)a$O)lh| zMawH5Z8_{{cd1F40Och*ubX`1;9_gLdioE0`#fpg z&X7WtOMM$JA02Mr#aBgOL64=;AY}b42;}Y zQ_|wmHde{v+i?|N%syVZBEEDXdXC)0Xy{|&f^FX8)%>5E`Q%~1C8WKIS$co!h%yHC z!O%mGe*vECY?QD~Re;vb_hhziE$a*DmICctwVH`N<4#L2;II~FYF#3I`yPjGhJyH9nbVr{r2mh>AJx5 z0Y21I$HeotiG_+e#R2xgkqf|&tV~&~%_ZqVI-x;kj|B{8X($ShuP58A3wZtF;s`ad z)Euw0qu-7EtKtYy->0b>C=YxUTy&D5>`4d0$|{aB>DWR&BC^Z@z0Up@Kg zvfwN1DS(fDF{v!db4EZG%}Kui^y*-!z0Gl~O3GU#W&I;^h$@~ajByqO;@SNQ)}eA- zG?S#y39$3pAsAG6?rF}s+8pp!2w)W3dB>im+emqFtuk~Za*2c19GJ!ERih1oXB!WF zVYuU*W0keq7s{AkIr(2SLl3eb2pWdVMb63d{Cu_W*~u=R@=We#kJp}jeyt52oA32Q zx{iZ=tdH0m{{7`i=1zXph0)=1)g$Q`@AKvDJSK`rI z{I^Nje_79S!Q!GHu?s4qhXrV;5w_O-%_6Tg-L#2#AexO$a)nJLS_Alyg>_uRYM}mA z!G*5dsGSTs2j{l7h?E$iq~!}2j*mV6hkoMVfSLUN@IfK zzcGUi?vtM-CK9f9f67Gzy016k$J{h!^S7-q2K9X}`DFIvmg(m$YwVw_FpmF&pX28o zZt6>yUKjCj0XcbbeeViCajTmjz_jURQI>k?b1-hLj;=hMez?b*9%K8(=ze2$)C;nZ zk51l<-iQEljj`ECZ%#e{U~VMHHD(Z_^#@vd#ncbGIc|Ck_58#2L`t*C#ZB!S9DWif zF<;D0Sa;&r_4`7Wx|)*VrC(HzMuEo_*$K>U4&g3HoQv|ApgVj7t4-pwm2F zeM|m5es8aN(UQZCCpP3fZNg8}(d9y_Yq`dxT-a;zA{;;(fgDtS>_&*0_SpqIePZ1_ z{;>(bXmR$q;LYJk*(nem;!vCcTyuQ7`d{XUH=pf1?J(Gy=G5nu9*(Y8y`_M> zZpeGkjc1Pc-MUsN8}^vr=jXglGDJ(a#5SZxJFegC^}an9_J?v>2-3KkXP6iq|F~vA zh(OfW!=LkN^`#hT@!xBuef+DfoiJs`tm4Hh@xN%@yBtrNQlc1S9^jHwCU(K_i(WF=o~cy-#@$mczI-0z=x6IdVmVdwecN6^1$zv`PL6bMzPi8a2vFyq>1-}A}hvtI;a#Nzqh1=zFsdCiG#1ZM!Nd|znrvIbeAWbopd zV6nzJ$rIxo4aAEb;UR#do&ZAcnLwR%V_fPW=8M7#qE9bHRfkiP$zx5sbX*_B9;JWP zBLk!7pbpSV$D2Lky@?@DN$R7W{BpGl2QyuOT_j?mm3l_$02_eMIe5{FDnvpm-xR!Y zGZwjhT-O80z4%S|PRZ+XEn}eRKWc@`gwDy@$uk{8*3!;J7#GpyM@9}x{Gg>~ikEJG zca4^rcmoee1lNTSzh?Z?93UBa^O84@pEcX?8yLlYD8=4+G4EwpE(&CV3cm8Si6J4M zdLqRa!rswCeV^mMFjm+V|BOx1n80xn|Fm!xNbni|j8${<^CJEW(22R?CB9xqcca)2;3$eBYHufu-_a}G{Xo-(!i!gqr8;=G3KyrUc#z8 zt#|NAs?S$WU+D{k%OU%&*&-4?aF5)LRG;{}k9RbDMRh*f-OISk=#Q7sI~lFu*M&s#aqxCCiaGI={N0hqr(0p1Q|#<=Q}_PB zKr?F{t^BhKUK+rD5nlZEdLZirj$NMGbdyvuxbtx;)pi>jyTE{6i}()t`{sn|Pca6Y zn70DqO~;7c@^R-m7WVm;-Z}2>KF#2p=y$!>!YOm;R*2*3vbR$pWev9M;gSlRK|!E4FN`I+js3cn?AOtNS1FONwECC?v?Tp)Mj#>-)jx?gau29l(+04~_$ioFh zK+#;W!P~k=>VdEz$F~pv8}W}PzPV^bEo@82pqKF7bXO{Nl&oFQ@2za7sjp(*(J=v4 z!?v`?RQY}RlgUIki#WEd1#3;fe&w17R=aWh6980=1>xK!kk4y8F5`}-<@>Q-5;q2G z3hB>*uaZx}@x<}3u~K;OX7L|&ZDKvu&BrA^{MhRT14>c_?jz?j7IPj=RWYVw`p|5) z1#f4)ZYUML)obq2ki(p7Pt|w%?p^2`<;09*Pz`5w@EB{|SR=9jalhOzi1%h+9Dsb$ ze)YH7SfhmAaCt1Cs{W|*(X30;cgFFK*Pwj8r^4Y zF&#>3yS*8HUrV_W8*$hPlH#Y_Upn#E8?WP2FjednU%Oh3ttlw75@SQo^yq57&~M! zuwzl?oYr$^AI-{V+b(!>_emEDb8SQ#S{IRA&uIglz!x;Ne@6)~RFMe`YK22Vl%t$-M#argj zdScEt1T`O(Jg4lcM>&LW!Y{9bi{s5b`z`H<4_SsHF7rQXa?7qJ{Dr%{)=b_kC(Ol_ zt(?xCbOP^JL&q)t6I+Q^#G*Au@Aq18IN?yT>5f`F5Wa*0$Xr~z#KI-=K`ulWN$0wt z?tm|(E8NdHIc*sAQ4*9y!(mv*DOdD?q~ZET4O;Yi#RFsGgEg;*Nk%}&xDB>S&Sv~@ z1%Q#u*#VdaG-qRUQQPxoT)1Nnk65DXod0*!8v-<6ht%9LPvntOfnCnCKh(#itZUMw z$@Z!EH;L=5ZsU5;v-%w=i0mE9Y!KL~FQ(+R1#41`rn*N>bXQ$Z!JS z&EvC{IhB47=Umt0pi9@>R2}QzVWS6ZcWj2~oZL;CFkdFmM zpOf~TDAPqVLaI7h)W(}x=LP8Ef)Pie-fO%UU<9q&99W6-WDciw0}UT#L4 z!SHhdbC0LEU+&)`EZgBlu;scbEd}gi!rEuv)J-zrX0TQvuq+`zdZA`rPn#qi6$e!z zVUA9dx)i(`Xd~w2yvPldChiL8>dNY#`m3UePnc^1!_qH0k)A+(Wg0HP?4n2(e`L}t z=?{~m$-wo3=;saFD&~0eFzn908+?YWRakJNC#Jb&X{bbG`U??+=5}xC@3@eZ8+qpOtq&zD1wY zgI&z{Xou-MUnr3}+o!Q+vE}E?&YITKtorh1pY%4Gu8wWc*Xjz_``p zu{Uq|vnbYI_mq!^Kdl=Zy$fqlygm6t(m7sklAGsWD);zDm&d0(<8X7sMCGWm2kYCt zY>{|G_ee2d@0IllVOwAl37au1ZzTm;&TFD~h+QCJ=aKI~$g<>3y0HNstd@!UWU8@tb%?(oAK=r9Zv)2iMa*B>~%uk}bz zDpDukb#TI4@|X?HmK}w*CdOrr=SxtpC$U(AM@9!4GDXZkeCN6YDC72X5CVtNy7?gDi8- z&o}ZngY1>$w6p@@dW}tEYmQ&(-vBxI`^wk8gfD&R_E;=`>l+`eMf2yo9R@oJh_8On zm+1+l`jx41eW|ry zk&-!1x^KO8dx^KVA3pifM|ZsY%?}^1*Q536v%VN8w&_pJ0LWnq(Ao=*m<^J|^Jf_m{ESE4wA@_gOc`8|_d>w&(J zaKzbxlZX92c<;cHk4`_i-w}m*#l$@5VF~hkPQ~c0^Op6EaN9td@CNAB9bQRkz#-^A?k)*z(nvSUYTYT>IuPQQm$I?q#dS zG{-7`eq#V=xgq9?qO*$ReofoK+n2xc7T$UJ@5mqTzu4@s9rMWxla7Vm-@9FQPvR)C z9>e=sh{cnEWb?``b>QoC4QFoqlAS*Jh_{b46v*|7Y+JBy1ixs*e4NKe5)qD{(9`=N z?^nM1Hr{#X+?6_Nk`F&5J8k9?x*P282Qz~8i^j|?vp(47!z0#wx^`^V$3{l@!4Yq7 zfB8Hxd-oe3oeSstl{A1B1ogJ!zc5hafBNnoE<*s7_0eZwrIQAc_;Tj1!zbT*k?my- z@X;aLhj}Q-Zt}XPDX*ymue?ocs@+_W0Z%tW-vDXjplSDDGCY#rdNqEA9hHj^WxJm4kT_mv{0E`iV?W{TN0%e7 zefx+v$^T_)#`6y5692RgEBPZ=J=eo^Q=z0@0;atY@%GkZz7O8JHeh(Y+WL(kHONj@3)+CJS0Ge?d{ zIecJ(HzmIFmD`JaZ#||zWpiT3w{x?4x=rI|>9xs1KjJ6kci5&Vz`PAfE_ZHe_2YeEG$0U;gqDZ~kJp8ako@uQgfgFB{_5>fOWqciy#L;P%MtIAUb>QLa9l_G^CqS6_;iGVn()vi;(BfNaO+!ms&tUy+l_ zcfa+)V^RL5%|9VV=u=9Y4cY_^h@K_4x#DO4i;Q3U8@~EDD2P+#`@?SE27PP9LYHYG0D zb=Sl=WT^yKHismj#}nqa!zaHY^S}FYxN|IAyK1h=j}ih@d+<~I=$SHkdBict74nCPk!LneOb8t#xK49*qGh0y=~+0gXgf$6Zzq8W2sMKMUOG!+2Sy? z^v+k_#`k>xmxT9k{NnpBMaxIHYPAuiy58AG{I&1yz_d`ero(2oay^zWY|OrYcKq7Q zA?mTHi+PU?lmq`C8!32YF2N?19Z)@UJIS=Nj}1&78T!#h=5^g53xf68@1JaQ=#4hlf}iBU@U`!I`>|=sbbjHVzJLBzLotS) zv0Y+>W3plZ*>8g@ACPE{ug5XOQ-ri22cY@mA=1}>{=L)h z$#=)WXxG~SNI{sH|t=l$iR;1_@X{nf=pKK4B(&B;#v zm87M6#$!qy8#O)YL~n;zEM9-jumAGtbL;X)AKdXvzwiN&en01^`v1D_IDNUss(y&- ziu=N=<@anSRBlDfw=CPyZfleCShIcKul>^b%?E4Dk=MTQ3m>TJI?gvW?&b5Yk(4=V z$V==Qxu=Ag`M>Q&#B7gs>6hwj>R$diHqyWSjb0~P@>`#}UiUT>D$8zf^pHu47P#fh z*Y1!*Mi765L5I11;Ke67b`C7z167{6=K>-tAImr=werYDVG_P}dQJsuMJ z+V{RKSn%x^jQsYy9|D}W31_)U9=Ld4pIJ7poGWL~Ly2NM`AA&=&N->!-(+7n+Lym#FYBAPW$ZV9@xvFpdFphx zhL?35zm|)c^+Ap`dUZW)_V7u{7vKDa4E^F_^`;%0mb@AJxc2h-xc+%>$0kbu>VdC( zxeDx&;^GS06wy7l9cZ37tAHu&kANDG~hOJxTahlYs z58FKTV3zWH>OED` zV-p>fUr*h5rt0DE_Tt4rKB%yHWhFps$T6)`2a%p>*`JyL8kff<)fpABB_fLr;-#Bp?x)&SLs4Gu0 zvQFjC$aNjz_Y^37WIROw@V}FvlR{t#HYqmqKNZOluh%>vv8>RS@H$Mwfw zx-@*_q~_#t7MREjcCs}n#<^xA_mLVa7|HCvV#S>_U~9aX(@976sFC04>l+*kS*?|0 zL;dP-+x;RkT>Z9QLoizWkxx3|i11JOKYSwtg$oHk5BJ|r|2yyBUTUz%fk;emqL#v4 zsRaPpwEq;1j`8p${iiIa4s5YsbH8=00p21_+qo`1YiCd2P5iaU)>pF?e(?bv@GOpN^D6U=~5U!;A&9FwCSVqmwy~d$AfH-wcEnY*sx677dT`*B!2|Ly3Pw8QER#Gy2gE})6&6M z^EJ^lEYJGGQnvGdr=Q-I3yMb9Sf`v~Bfo}^RERs~gIh_da8N`vvEjy)d5xB};KRam z&3!A~;QY&JyGO}k>eHHtg7HxV1n2$!+~$-Xyo?C#*6Z;!u_V+@RIIxkCzs$~thNO#0vS+v*G zHO4Rx05(D!&Cfk0PLXpwYAe3?^8W32&R<_T^R;R2LW3mK*d08urF}@}`PF_%o^8(H z8^Va#?(!C*eCeGtumb;%f4}_BjnX_3PHZ?Y89Sia!0f5zY@gtDFV zw+^)YH`X#hVZ@i#HEVsj7To1-AIzLo>`DA@8>>?xn!`z$kfV>K{Nvz?WBq7frrgbA zB!?T*?V9tEO3l!ES>CIDM%T}I_hmyFvV5zkhHo8z{n76|?B+^_Va2F3$8UvBMOl8N zI^y8_Gue&*q;>06o%Jc};7{H9^iurb(=`d%Utu}%33zxo?B;8{;y}bN0J+n6vt}rW zMkQ-nFk}ITJ+GC-T>ZZxUltecyawL3+(4qh%R#?cX7oOEq78ah7zrfBa zIUzT5U8dZDd}b6>(yczVpvpOkVBlC{xf3;OPY%Xn*BC4tv^pmphb|hb%t0#?M3S2p znkbblAK`foyf`>zX+DNhvyq;h7D`FOG@bM(&A8d+N{X2`XfeNU&k8+p6Mij5iU-rg zIsWP(l!)>zKKRKXY!0GgdHu$RZYkJ3rtdln)&|)(3=D8{Ulc zV;IxP$G%X_IX!&Q=^n)i%I@*X50J3Va)C_?ZN;4P_3?)uM9@JwXFWP=qu44Zjtzo* zI&l4fa;B#6AkuZzgQ~mGU+2HyJFm;;0`-y2TPw{4&+(Tnv0+vl>cmlZf^DHARbU0Kb*%zokOg0Yy!VAU{l6#i{-Xw0E28^)9V5#yB02NW3iEy;J;S6aPsw zX9pjObNocV18B@xi+ZPf|yM{4PO}bf5`c^<`K5pV%oFyT-^m$&BP_`fonW z`O}}osXNBHgJUU@ypc1~-I)i9!@>^hQXA+IFKCo1E#EL7n76BqV$E~PZy@*CmH&_f zCa{eGF3`*xhm?$x1S^Gn#n|U)TqrdE^%^YlIM3Z4Y82g0CP=cvQ)or__?aie6@&@J zYrB_xr>nd6Y_TUYNHEo$>6;gIgruUN!L)jZC4es-#OE`gK;sxKyuCu$$-XT6Tvx<+ zms*B3Q#q~XVONnAwh=XVffOo}$mbT{xVA0Zp-X`^f84vl8s;)3#mwm;#6y~=VuNww zQQO@YCl#o9*ch=b>DN*{ng6rSK*axX({gTEUqW*_uPwH11c0^Bs|T}kZt>5;_4MVD z|81-jd;G^*G43gY-acc=@7r4gd^hhIL#O!m_}arB&!^oMKXzh&)o7Y?_xnjLnnZ{6 za1naQSEL<(&73otjs-MF$%nToi-nH?7rzyeZS|n5(^1xk+@ZfQ5YGiju-(=27#?0q;bn0&h`Qv+Jm9ZMi z#SrDG!SmTi0l+C~^g`&otPv&!o@<|sU2^J2vA43-@$Y-z`cMka$F+AqTz%V96%spT zi~6o`<)z!N%eY$vSo$!;zeAoLQwH6*&KocPy!Wo+$k86ZZ<3vT%b(0(QR35_44^&< z^e1p=px7dceR$~dqC{f-EL!=SPXqvuyx|Db<&!U~55pXcHv`Py!{k#DRx^l-=&E(}@m zz&YrYmz>>~|4Crj8E?sc;X>wDXn$goHVgR4P^-Cpe+b++Z+wF%c_6Tof{~1cuSkD* z|NZ%$vEN>@@j*lAH{w6mZdp_K^FvB+vgB1`9IQB~QB1S2E#t(o@yT;c;D(2iUOK<` zt&g$^H|ckzx4OQ;Bga!+#DckM2B+NN4T49~~fewbh7!T7>nlJG_5%u6g9ZpwZs7TA0pxGhd+= zuq$L})1l}vKAwJ8ei%DYxv@w(F3KUtT^#mt?Y%qIbFMZgIcpP=umS*{`mVNH8=DoK zDdu0%&BNThaK8WW1J6V7nE3d7e5GpD$tLxGa-i^-^s{dmW?eMGG9p+p%CyYJ8o`NV zh#^IBX zA7=K7p>#ve)!}mnvgv8p%58d&eSza9e4W?4lCYq4fulcYP}P3SePBjlZuEVx#aqT` z^pW}j(#vsS3!3#BLQS#5D=to3o7f+@HYiSOZElY`*<-?GoWqv=aLkE4)}|O}O_%m< z0hoL_+FHI#s8=PP5r+w;)I=v(qmV?23z ziM7BZAR6v1-#=^=`Ur;dwFm^essuz&1qufm-+&4(%0*ctyP z{c~R=h%WrkIwcuBx%Gk}T*iMe8S&384q{3V%Bc872Fl-AYUT{=` zI-R%Z*a%A^I|>XV`jGo4o%i4S@bM?Pr`_)OrC)px^0Xv@dL;mBe6N1D6Pqg;I`M8L z4!<%v=L@wdm0jF*p|g>j$$ju5+xf)rxzYTMU-}SSaGm4ofZ&Se(DxG9*8AX1oC~Eh z+c3#%K+-07(;+ronsOfFju?yY>3;tOP`~x94@Z(=`vcuyF1(19K;oXSmcARjsow&! z`9_~ze0XwHn<{o5${l9ApPNJR`ybC@{J3|!x=Did4GA_|U+_U<&eT6yCq42ExuA+d zA&Qq{)8zPyi33Z%eSAOei`^nw=V51h=DKEVSBm2`-Ovkth(0F1S;B@7M{FI7?;96- zzS-1GE=rfjM#E#%eiBOX0;z?i!7?Xdy&s3jjh=?~fX z!G*rCL;5>1A2ZF6V8r_-{#6ufQn4nT^sL(~V)~kD$#!mB9yob?_xn*NfAo<9qq;$N zgrRL-2<3u<>~d)%o~9Yg`V7`@)}n>;`Em8b5AKf#GY-3b@UmI?tryuI8_SzkKpakI~-%V8w+OkVT4DNi4)4Y0@N^Rk=Yx&ISC>U4t_=1b8T z9D%$^z~gw-83s44XMFVvr%crn*kEn$-On*c4*%9#yK(yG+$0YdU}BnG;oR0JJyzqI zNuA9oR3lM1f`-%U%?B%QANvE}{`P^BAC?O{&sihAvlDYPQQ~@+*K7t=UoV9@%8wy+ zGnMi!-=Ce1TIR#|&JCdhE00Z;<8XEFMQ_?{69-omK5qVRe$i>CkDkIFc8jl9eC#JY z>=tzb{l~^~Wq{N*-ajN@AMYl!xF-e>{fzoWNvLS_`61h4=Dqj){GB|%8u7`)$zc_W57qp+U?yl-ijJ$5=&A|T;gprr(G!NqA~B{--xxq z@mh*@s#n;j9uF`-)^4{){(k>uKjCrUAO77J4#F><0{|I+thFdv$L6bRv5mcD`i8ZXa2UQ1B(dRrVFb)( z$?tyi-X8GX%cA)$V!_3nmK`Wi^N@{wsSyPBa!nI@nf%h9edcO{Rj+*(KU;ps@ zt4C(Z6q_{vPv3NzV}7n57ZgIp z3IWCrDIyuk@%Rz+-KO+22>m!4<-c6*ioYw~o~MM@?|&yYIia&(Uim+X&&<#%P;{yE zX%YnJHyXZvbd@*aFK0am#AfhhMyp{t?ToIx(aRujtasvt2S4G7L8t%(;Nq#R)h}An z@$H6AFTDzI27Q}Pd!h@A3-U8huAv=dnI+{}P2*z!!BYQ}W^8}5*|KApM;7x7b$J7s zzd~gs`;XCTQ;Mz4YAavI&PR8_BNLb^JY-5gJ{Kn+hkd8Thzqw`D6uqJnhhpVDUy0@ z5?;;6^CJr%N9f9%U%KkaZ1Cfl>NJs=9J#d7dd{|wyFQ279Y($?vc2Kd8E>>PMlo7= zNpUo=t%vm9*<_AQ@2)j9L*XknlzF7art;mpPflVQ$L?UY&p2h{Sgn{XDr+Ps+993dtTel-G{15wJAkM3>O?!(6>MN`Ls zVPMorA>K{}%%bEQ(#1U4xITQ-{M09*&jUYO{I}wW7hAhSCMT4@v*|Ay*Qlj32j@V( z$F2K|Nx(JG>;TZZFhO0~o*nr~1tW{#Q-GQJHn&zSgp-IaJ+nT2|4{*)cSrNo~MgM&xUF+Jt2C?x$?Bd`HXH}cU-UIR53%RMJ$G#JLi1JCe8 z0G-!Dc`t$_reflt{871khpB^AC!L6AeSD0GdCIHmsxZ`QXVwMx=KCTx<;wHkZu_#g z=^?Uq<2)*qC}&;t+vT;h|89*7Y$xpod@cEGpoH}?#z>s0jF*0M!H49h;bUmJK$mdZ zbUzLCsrbD{05qY-$GT3~CpjSp?731d76%mD-sX@ZW6uc2!wqC3S+ha}zeq~ZHP0?5 zvXRXt{zuG>8g|-guO(bCJY_@^W7l}}z2LEA9W#`r&QI2SXO}+$LnbHegL!R=@Raj` zQ5OPVx(ak}YZo!QHNoVhT>$6*-CDejw)GWQb_opo*84M)eqnj<{a)$+tX(DG&f5U2 zC%kD;)q8KWe8bBnpBH1^q&YtRxM#dMIfyq*IX5kz)B3pWF^43ySNZ~3SjQ7G1B4OZ zH@!c+h_Rh_Tley-azKf1^enik?}d&#)Bbz->F@PPG!SL#WeV1H(~>8o?zxh%)K%xl`m5D{niZK(+a|N(b0#C! zR|!Jny&Zl$3;|kPF1vW~>5@R`FvjA~#_OJcOpxQkGoP2ESdBjM1Vk~S?^7?EnAibV zZk(?1)`PHd*+1W?Xbl}i`Zi-bJ$`OE<*2VINrn+|<FSfV59y;ye;#6@} zq2(-X_AB4ErZc)$127LiK<`all^F~Fn_guQ*9?YMoEhn{^3<+)3~GxeI6ka!Yvn*+ z%F}|pXa=!}|KvS$Jw)z`|J`9bH2*g&>bI~cWls>HX z-e3p&j`xk6ea*vis2$5wjp83R5P)P`T27`V*ckaOUj8x`THqEuETR z1WwnI=ZK%oe-W2ztjJ@*zqg<@>sl?@lnN+BNk`>5^s2a)`xw##nktEYmav)A{31uW z;D^Mkf$9hTulSL}6~-ly&Zx*YV@a*$9_0nRu8KN@pNJ>5KU@DBzsZ;;I*!VH;*iyM z_$AX{d>F`=f;9$Mub0{{s+^Fz1tk7h7Vdc!$NJs|!(0=e*Nk6^|F*`f9JKTO;z|!c zf)=EfWLy~TuZxnJhivUc*menY#Q#al7R{^|jdGaO2`)xpoJTY1sF`WbjD?tG#DBLS zQD#4M?X4{(ptxLjtma}~YIa(ibS!|Zu)#s#-oM_8xhTH4rrhmGoPElVZtVDHuolLt zJMO}f$d*sja(>bAx<}o^#cUUFR#mkGCa(((;v+Y|;LWdYZ0-@geSctp(^JK~(lXIr z@UxqPG1H&)>v7#(-Zs4C98c)>KBHa*q;6uod1i}e^R<|lJ_>zvo{wXnog5%%-K}eQ z96P_ag+S3PB+RFsI4QVq^2QqJpjg#$Ca2DWh1#S-k{ru`4 z5;**T!SDon2+r~;|9P7d7xunlw)0+1ghSJ=`m}aW6O%Q>Q_x}Zv1l`zW4iUTh^Z+x zp--QYbhUW&l-@_tpx9&-D;D?;WFbm?GA~x~WWe<0onB-^CG2k#cj!|1pjq)47`xkO)3|9d67g>m zCDb38k9>{ijb$5=$9Sdyz_#YFOn-14-#>M~(n7f|WbSmfW8vhE*0iz~-zry7HC!Dc z#5kk54vL<>sf{;1B>x-bE8omPm|8|!o6?*354!sZ-8bG`gS@lUfgl0XcjRV`rEH#c zL5@jK4G{_tId+FXteb|wufOevjqr1H%a zS!am7UBZLHB=gKoRW1CU&|}Gmm2xtcBUJ@1_gY4v8m03UWt6K*dfCiQebktf&dv*H zKJ^+@+F*yMhrrHx6RBJNFCVZ3GAIsARunft8~>r(q~lB17W z7ycOPU^}W$3z%zv5YNeatpMCN zGQf=2WfaF~y2xRIBj+rY$}+tGRx8nEqKoyT#_gI{0k#VX(LiodpeW zL(#3`3i77At#6P_5|8NJm)}*u1sGJEb_Q$#g|*oifK$-bMxY^ndv6WiBmf2C(6elu zI*maA2D&c==h>lTNq36^GVh%PrVlBoq>Pl(l;?a6r409dn~GU3;0}YwZi0N<%SXe z#&Q+kku)yb4s(4MyXAAW@fH6pS0#FV3K8;+5lV~{ zQx-HbCJp6>>KDly1u%zu`98%8IB9Pq16|^)e3ehml0;nC=7NN66RIlsQH2{YizUKT zO4ts@@Vzu6M(9qA%YGtTy>i&GP1S*@lZRK5-I>2#{1*U#5%PpnQX*oGLBuH(Q#|abZulSxY|oi=0mVFd^X08Bp>asO0`tHlHz}4rNB+OC zdv5fmTd4-7xm&E;%nK>#iU(L5<=E!4oY5LF9(=>fJuB~pJs0mBjcFSuHv$k5O zC%O8P(6cFPS3R6$DEQp-#=dJ9HmnWG%4uWrs|i{=Wo!>K0J&+w3+T+srt^^7kS>wf znA}L+KqNE`KmJmUU4SI%`SOz84_f|Qm7+e@Y{EJsFT^MT9DSa|ou;H_+3!0aj z-C}%rM)YH6U@eeR7mpI!gq6J6$eZ-ISPZK^UGAMUD0K4kij@)5hVACdVqzPDj(z`i zO@5#~VjpqHi4hL~#`@owcP5Ui%RBaq?yd8<6)>szNDAs0f-gKU?uO~DF7vusL>`!4 z#xh_7KIrark&j&Rdf^(!aPh`IIoDnEfnt8v_C9PeHtm!{R#g(_sNsrfxVPlb{|7$$7=_C4uD_D?mg&lwyl9Bj*tB+QdW2MYe+#c9P4*xa8&{Zx&}( z^u}xO?v#+XM*KHco64e2sQ2B^HRn6cafPV6zqF7~ zrdJK^pptsaK@ULdfAZNybi32%j5xjNw@S=$!9)G-Ud+GS2Qt5kyE^13`Zdpjn`N8& zEBwT=MI-)Q;V*_vl^Ej@n&Exx$hZIcjdknFS*o=+Mvedcj$$Bmpy>u0PXF^CJk-(%$+J$c}1ypX|UM~vzM2mHQ zh7j8YKrjKRW=*n2Oa9TtY0X}a5d~t*nVUZ`eb}klxCHSn+uTJWzL*$uL?;VgB>qlH zOg}dgGJ(?KcmwwQBuo@SbtU9KKO5BU@szK8ZgE=g+mkHP^hx2`Y>QdxV2oA8{vh$| zGN)4<^9q zp(CTGT1X(%e~_EB>Mlf-4|M>pTe28W{&MQL0-Aa%yZhL}gk;Zb)B~;)Wc;1)PaQfX ziSQ}0Q@ol9?Y!%dp0X&X_;>2Sb)`w-YBGBxyp$Q6_*K-aANK||W_3t4 zdFx*^dgv#4iGKqZA+ecU#{=~=@Tspf7x8bTGxGlwj6iRpj}s4?V6sfpvzB`PPN8K1|t2t_r@?tHf7{n(tl2HT5^aU(<`7N1tJ|(+J}o9|*Bz ziD})LvgT%1c6PCfjddmcX?2&sY_;jOJ;xUe)z@7G1{Ds3f9qKOgUjSO449!nSV;iD zYY)_w!fL@2o+uEUulvP&$aTimi2vB^D5dFiz&7+(?4kMobfXhS2@^9Y>VPsf2y6Yv zJoflk9>&wO{37Ei!i=xUHYRrUe?%f_GT-g%f4Vl5H~ku$8Ar?quS@4+bDm>}a&h=n z`6JX-tnl4Zy2y#uhr>4FiuGm2dMW;G$b*r?t<@lGW2vJI^jo1IZZT*_P8#tq?AM?TC^{4<`$qSkk?{4iKl9<>J&4TLIkxa4V#eO|8yLyfebRFbKdWhIsANHONwW2Ot1r*aZnFF zr8pV5Sp17W^w)Uro4I$bz+6AK^>fb6fe`(iXh}WT=DB)p{#`N%2+#Wg8ao{bjg8FM z%qjQzwcTU=rr!`x@xu1>#_K5l+T04W)wcsr&PDIT6AO3FKs6b`GB{&sfg>Ow5j4t= zP5fF0S^XslWkysm6EE(t-OTKm45pw(Yh(=zIhx}oz@LiiMI8EP9lWk{9|8@K3?xD5 z6D4x$c8nec^f{_dj*Cu0x9>4vHnLk3-irod=w?K4q`p=B6VJ`dA|P%Jyd>T!iKHw& zFo0F0IlbRB>)7W~9F3Gc( zZsK|++1nMHA_Va

d?Zl?eL5n>q{|HP?0e4v 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�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

    ED1FO7af4fk;DjW2&9 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

    @4WbKt96=EJf$3I0= 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

    h$t)0d_I><(mh2!4Vdfv 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%0AgqW@3k|Z^gA}!kTg4(8sM=s4d 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

    &AI#lU1{ru?NRTCc7sL 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 I^D+=B_IBgXF3l7TqhSVu4nQU2Y=$-% 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%0D?e$zZP;Ob4G%BS1hI|O*A0abIKtT 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

    n7b#KiuDui`wS{$5DH}d?J59 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�oluLe)+)s6S?Kj5EJEq%hywcAF1 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

    SoW{}x3>nb9;uvL<^VGR0k2#XGP`dGJ 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 literal 0 HcmV?d00001 diff --git a/website/docs/commands/action-graph.mdx b/website/docs/commands/action-graph.mdx index bc4e517d171..2b8c6710fa1 100644 --- a/website/docs/commands/action-graph.mdx +++ b/website/docs/commands/action-graph.mdx @@ -2,6 +2,10 @@ title: action-graph --- +import VersionLabel from '@site/src/components/Docs/VersionLabel'; + + + The `moon action-graph [target]` (or `moon ag`) command will generate and serve a visual graph of all actions and tasks within the workspace, known as the [action graph](../how-it-works/action-graph). In other tools, this is sometimes referred to as a diff --git a/website/docs/how-it-works/action-graph.mdx b/website/docs/how-it-works/action-graph.mdx index 3c9cb38d2ea..8c3af6798b6 100644 --- a/website/docs/how-it-works/action-graph.mdx +++ b/website/docs/how-it-works/action-graph.mdx @@ -95,5 +95,5 @@ that never exits. All persistent tasks are run in parallel as the last batch in ## What is the graph used for? -Without the action graph, tasks would not efficiently, or possibly at all! The graph helps to run -tasks in parallel, in the correct order, and to ensure a reliable outcome. +Without the action graph, tasks would not efficiently run, or possibly at all! The graph helps to +run tasks in parallel, in the correct order, and to ensure a reliable outcome. diff --git a/website/docs/install.mdx b/website/docs/install.mdx index 08b1dfb671c..ead8b814672 100644 --- a/website/docs/install.mdx +++ b/website/docs/install.mdx @@ -50,12 +50,8 @@ current session. To persist across sessions, update `PATH` manually. moon can be installed and managed in [proto's toolchain](/proto) using a TOML plugin. This will install moon to `~/.proto/tools/moon` and make the binary available at `~/.proto/bin`. -```toml title=".prototools" -[plugins] -moon = "source:https://raw.githubusercontent.com/moonrepo/moon/master/proto-plugin.toml" -``` - ```shell +proto add-plugin moon "source:https://raw.githubusercontent.com/moonrepo/moon/master/proto-plugin.toml" proto install moon ```