From e4e18dfd4b4b7172fc1d9ea9be817c8db83e33db Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Tue, 22 Apr 2025 11:00:53 +1200 Subject: [PATCH] Coerce the result of a function call to the function's return type (#6309) Signed-off-by: Nick Cameron --- docs/kcl/index.md | 21 +- docs/kcl/types/Axis2d.md | 2 +- docs/kcl/types/Axis3d.md | 2 +- docs/kcl/types/Edge.md | 2 +- docs/kcl/types/Face.md | 2 +- docs/kcl/types/Helix.md | 2 +- docs/kcl/types/Plane.md | 2 +- docs/kcl/types/Point2d.md | 2 +- docs/kcl/types/Point3d.md | 2 +- docs/kcl/types/Sketch.md | 10 +- docs/kcl/types/Solid.md | 6 +- docs/kcl/types/tag.md | 6 +- rust/kcl-lib/src/execution/exec_ast.rs | 165 +++++-- rust/kcl-lib/src/modules.rs | 1 + rust/kcl-lib/src/parsing/ast/types/mod.rs | 1 - rust/kcl-lib/src/std/mod.rs | 16 +- rust/kcl-lib/std/math.kcl | 2 + rust/kcl-lib/std/prelude.kcl | 252 +--------- rust/kcl-lib/std/types.kcl | 253 ++++++++++ .../tests/add_lots/artifact_commands.snap | 8 + .../tests/angled_line/artifact_commands.snap | 8 + .../argument_error/artifact_commands.snap | 8 + .../array_elem_pop/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../array_elem_push/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../array_index_oob/artifact_commands.snap | 8 + .../array_range_expr/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 32 +- .../tests/assembly_mixed_units_cubes/ops.snap | 4 +- .../program_memory.snap | 4 +- .../artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 12 +- .../tests/assembly_non_default_units/ops.snap | 4 +- .../program_memory.snap | 4 +- .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../boolean_logical_or/artifact_commands.snap | 8 + .../circle_three_point/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tests/comparisons/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tests/computed_var/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../kcl-lib/tests/cube/artifact_commands.snap | 8 + .../cube_with_error/artifact_commands.snap | 8 + .../double_map_fn/artifact_commands.snap | 8 + .../fillet-and-shell/artifact_commands.snap | 8 + .../flush_batch_on_end/artifact_commands.snap | 8 + .../function_sketch/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tests/helix_ccw/artifact_commands.snap | 8 + .../tests/helix_simple/artifact_commands.snap | 8 + .../tests/i_shape/artifact_commands.snap | 8 + .../tests/if_else/artifact_commands.snap | 8 + .../tests/import_async/artifact_commands.snap | 8 + rust/kcl-lib/tests/import_async/ops.snap | 2 +- .../tests/import_async/program_memory.snap | 2 +- .../import_constant/artifact_commands.snap | 8 + .../import_cycle1/artifact_commands.snap | 8 + .../import_export/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../import_foreign/artifact_commands.snap | 8 + rust/kcl-lib/tests/import_foreign/ops.snap | 2 +- .../tests/import_foreign/program_memory.snap | 2 +- .../artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 22 +- .../tests/import_glob/artifact_commands.snap | 8 + .../import_side_effect/artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 6 +- .../import_transform/artifact_commands.snap | 8 + rust/kcl-lib/tests/import_transform/ops.snap | 2 +- .../import_transform/program_memory.snap | 2 +- .../tests/import_whole/artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 8 +- rust/kcl-lib/tests/import_whole/ops.snap | 2 +- .../tests/import_whole/program_memory.snap | 2 +- .../index_of_array/artifact_commands.snap | 8 + .../intersect_cubes/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../invalid_index_str/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../80-20-rail/artifact_commands.snap | 8 + .../axial-fan/artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 262 +++++------ .../tests/kcl_samples/axial-fan/ops.snap | 12 +- .../kcl_samples/axial-fan/program_memory.snap | 6 +- .../ball-bearing/artifact_commands.snap | 8 + .../kcl_samples/bench/artifact_commands.snap | 8 + .../bench/artifact_graph_flowchart.snap.md | 442 +++++++++--------- rust/kcl-lib/tests/kcl_samples/bench/ops.snap | 44 +- .../kcl_samples/bottle/artifact_commands.snap | 8 + .../bracket/artifact_commands.snap | 8 + .../car-wheel-assembly/artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 422 ++++++++--------- .../kcl_samples/car-wheel-assembly/ops.snap | 16 +- .../car-wheel-assembly/program_memory.snap | 10 +- .../color-cube/artifact_commands.snap | 8 + .../cycloidal-gear/artifact_commands.snap | 8 + .../dodecahedron/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../enclosure/artifact_commands.snap | 8 + .../exhaust-manifold/artifact_commands.snap | 8 + .../kcl_samples/flange/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../french-press/artifact_commands.snap | 8 + .../gear-rack/artifact_commands.snap | 8 + .../kcl_samples/gear/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../gridfinity-bins/artifact_commands.snap | 8 + .../hex-nut/artifact_commands.snap | 8 + .../kcl_samples/i-beam/artifact_commands.snap | 8 + .../keyboard/artifact_commands.snap | 8 + .../kcl_samples/kitt/artifact_commands.snap | 8 + .../kcl_samples/lego/artifact_commands.snap | 8 + .../makeup-mirror/artifact_commands.snap | 8 + .../mounting-plate/artifact_commands.snap | 8 + .../multi-axis-robot/artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 324 ++++++------- .../kcl_samples/multi-axis-robot/ops.snap | 8 +- .../multi-axis-robot/program_memory.snap | 8 +- .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 204 ++++---- .../kcl_samples/pipe-flange-assembly/ops.snap | 16 +- .../pipe-flange-assembly/program_memory.snap | 2 +- .../pipe-with-bend/artifact_commands.snap | 8 + .../kcl_samples/pipe/artifact_commands.snap | 8 + .../poopy-shoe/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../walkie-talkie/artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 336 ++++++------- .../tests/kcl_samples/walkie-talkie/ops.snap | 28 +- .../walkie-talkie/program_memory.snap | 10 +- .../kcl_samples/washer/artifact_commands.snap | 8 + .../tests/kittycad_svg/artifact_commands.snap | 8 + .../tests/kw_fn/artifact_commands.snap | 8 + .../kw_fn_too_few_args/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../mike_stress_test/artifact_commands.snap | 8 + .../multi_transform/artifact_commands.snap | 8 + .../tests/neg_xz_plane/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tests/parametric/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 40 +- .../tests/pattern_circular_in_module/ops.snap | 4 +- .../pattern_into_union/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_graph_flowchart.snap.md | 40 +- .../tests/pattern_linear_in_module/ops.snap | 4 +- .../artifact_commands.snap | 8 + .../tests/pipe_as_arg/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tests/poop_chute/artifact_commands.snap | 8 + .../property_of_object/artifact_commands.snap | 8 + .../revolve_about_edge/artifact_commands.snap | 8 + .../tests/riddle_small/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../scale_after_fillet/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../sketch_in_object/artifact_commands.snap | 8 + .../sketch_on_face/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../sketch_on_face_end/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tests/ssi_pattern/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tan_arc_x_line/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tangential_arc/artifact_commands.snap | 8 + .../artifact_commands.snap | 8 + .../tests/union_cubes/artifact_commands.snap | 8 + .../tests/xz_plane/artifact_commands.snap | 8 + 207 files changed, 2796 insertions(+), 1503 deletions(-) create mode 100644 rust/kcl-lib/std/types.kcl diff --git a/docs/kcl/index.md b/docs/kcl/index.md index 1c923acd5..efba58b13 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -22,18 +22,8 @@ layout: manual * [`string`](kcl/types/string) * [`tag`](kcl/types/tag) * **std** - * [`Axis2d`](kcl/types/Axis2d) - * [`Axis3d`](kcl/types/Axis3d) * [`END`](kcl/consts/std-END) - * [`Edge`](kcl/types/Edge) - * [`Face`](kcl/types/Face) - * [`Helix`](kcl/types/Helix) - * [`Plane`](kcl/types/Plane) - * [`Point2d`](kcl/types/Point2d) - * [`Point3d`](kcl/types/Point3d) * [`START`](kcl/consts/std-START) - * [`Sketch`](kcl/types/Sketch) - * [`Solid`](kcl/types/Solid) * [`X`](kcl/consts/std-X) * [`XY`](kcl/consts/std-XY) * [`XZ`](kcl/consts/std-XZ) @@ -152,3 +142,14 @@ layout: manual * [`turns::QUARTER_TURN`](kcl/consts/std-turns-QUARTER_TURN) * [`turns::THREE_QUARTER_TURN`](kcl/consts/std-turns-THREE_QUARTER_TURN) * [`turns::ZERO`](kcl/consts/std-turns-ZERO) +* **std::types** + * [`Axis2d`](kcl/types/Axis2d) + * [`Axis3d`](kcl/types/Axis3d) + * [`Edge`](kcl/types/Edge) + * [`Face`](kcl/types/Face) + * [`Helix`](kcl/types/Helix) + * [`Plane`](kcl/types/Plane) + * [`Point2d`](kcl/types/Point2d) + * [`Point3d`](kcl/types/Point3d) + * [`Sketch`](kcl/types/Sketch) + * [`Solid`](kcl/types/Solid) diff --git a/docs/kcl/types/Axis2d.md b/docs/kcl/types/Axis2d.md index a28108591..d35d775bc 100644 --- a/docs/kcl/types/Axis2d.md +++ b/docs/kcl/types/Axis2d.md @@ -1,5 +1,5 @@ --- -title: "std::Axis2d" +title: "std::types::Axis2d" excerpt: "An infinite line in 2d space." layout: manual --- diff --git a/docs/kcl/types/Axis3d.md b/docs/kcl/types/Axis3d.md index 000058e5a..5510fb84b 100644 --- a/docs/kcl/types/Axis3d.md +++ b/docs/kcl/types/Axis3d.md @@ -1,5 +1,5 @@ --- -title: "std::Axis3d" +title: "std::types::Axis3d" excerpt: "An infinite line in 3d space." layout: manual --- diff --git a/docs/kcl/types/Edge.md b/docs/kcl/types/Edge.md index 78644b2a0..c5d6b826f 100644 --- a/docs/kcl/types/Edge.md +++ b/docs/kcl/types/Edge.md @@ -1,5 +1,5 @@ --- -title: "std::Edge" +title: "std::types::Edge" excerpt: "The edge of a solid." layout: manual --- diff --git a/docs/kcl/types/Face.md b/docs/kcl/types/Face.md index 68f52e5dd..9aa54d023 100644 --- a/docs/kcl/types/Face.md +++ b/docs/kcl/types/Face.md @@ -1,5 +1,5 @@ --- -title: "std::Face" +title: "std::types::Face" excerpt: "A face." layout: manual --- diff --git a/docs/kcl/types/Helix.md b/docs/kcl/types/Helix.md index 0c96a2bf4..19c7b3868 100644 --- a/docs/kcl/types/Helix.md +++ b/docs/kcl/types/Helix.md @@ -1,5 +1,5 @@ --- -title: "std::Helix" +title: "std::types::Helix" excerpt: "A helix." layout: manual --- diff --git a/docs/kcl/types/Plane.md b/docs/kcl/types/Plane.md index a8b04592e..3dde2fb35 100644 --- a/docs/kcl/types/Plane.md +++ b/docs/kcl/types/Plane.md @@ -1,5 +1,5 @@ --- -title: "std::Plane" +title: "std::types::Plane" excerpt: "A plane." layout: manual --- diff --git a/docs/kcl/types/Point2d.md b/docs/kcl/types/Point2d.md index ca90a146f..ad09d5b52 100644 --- a/docs/kcl/types/Point2d.md +++ b/docs/kcl/types/Point2d.md @@ -1,5 +1,5 @@ --- -title: "std::Point2d" +title: "std::types::Point2d" excerpt: "A point in two dimensional space." layout: manual --- diff --git a/docs/kcl/types/Point3d.md b/docs/kcl/types/Point3d.md index e12abd583..bc3800222 100644 --- a/docs/kcl/types/Point3d.md +++ b/docs/kcl/types/Point3d.md @@ -1,5 +1,5 @@ --- -title: "std::Point3d" +title: "std::types::Point3d" excerpt: "A point in three dimensional space." layout: manual --- diff --git a/docs/kcl/types/Sketch.md b/docs/kcl/types/Sketch.md index dac9b8e86..22753afa1 100644 --- a/docs/kcl/types/Sketch.md +++ b/docs/kcl/types/Sketch.md @@ -1,5 +1,5 @@ --- -title: "std::Sketch" +title: "std::types::Sketch" excerpt: "A sketch is a collection of paths." layout: manual --- @@ -9,7 +9,7 @@ A sketch is a collection of paths. When you define a sketch to a variable like: ```js -mySketch = startSketchOn('XY') +mySketch = startSketchOn(XY) |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) @@ -27,7 +27,7 @@ you can use a function. ```js fn createSketch() { - return startSketchOn('XY') + return startSketchOn(XY) |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) @@ -50,9 +50,9 @@ the sketch will be updated. ### Examples -![Rendered example of std::Sketch 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABqxUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6667MVe7MVe+8Ve7MVei6uuuuqqq/7X++3f/u3vue+++27lqquuuuqqq66ictVVV1111VVX8Tqv8zrv/TIv8zJvdNNNNz2Kq6666qqr/ld60IMe9DI804u/+Iu/9n333Xfr13/9178PV1111VVXXfX/G5Wrrrrqqquu+n/ummuuefCHf/iHf9ef/umf/tgznvGMv+aqq6666qr/lZ7xjGf8Nc80n8+3XvzFX/x1rrnmmgffd999t3LVVVddddVV/39Rjh8/zlVXXXXVVVf9f/ZJn/RJP7VcLi+eP3/+Nq666qqrrvo/YZqmoZRSbrnllpf80z/905/hqquuuuqqq/7/Irjqqquuuuqq/8de7MVe7LUf9rCHvfwznvGMv+aqq6666qr/Uy5dunTP67zO67z3i73Yi702V1111VVXXfX/F3rQgx7EVVddddVVV/1/9bmf+7m/NU3T8tKlS/dw1VVXXXXV/znXXnvtw0+cOHHzh3zIhzyEq6666qqrrvr/ieCqq6666qqr/p96ndd5nfe+8cYbH33p0qV7uOqqq6666v+ke++99ynXXHPNg1/ndV7nvbnqqquuuuqq/58Irrrqqquuuur/qXd8x3f8rGc84xl/xVVXXXXVVf+n/emf/umPveM7vuNncdVVV1111VX/PxFcddVVV1111f9D7/iO7/hZtqdLly7dw1VXXXXVVf+nrVarg2uuuebBH/7hH/5dXHXVVVddddX/PwRXXXXVVVdd9f/MNddc8+B3eqd3+uxnPOMZf8VVV1111VX/L/zpn/7pj73Yi73Ya7/4i7/4a3PVVVddddVV/78QXHXVVVddddX/Mx/+4R/+Xc94xjP+arVaHXDVVVddddX/C6vV6uDixYu3v+M7vuNnc9VVV1111VX/vxBcddVVV1111f8jL/ZiL/baD3vYw17+Gc94xl9z1VVXXXXV/yuXLl2658Ve7MVe68Ve7MVem6uuuuqqq676/wM96EEP4qqrrrrqqqv+v/jcz/3c35qmaXnp0qV7uOqqq6666v+dY8eOXXf99dc/5kM+5EMewlVXXXXVVVf9/0Bw1VVXXXXVVf9PvM7rvM5733jjjY++dOnSPVx11VVXXfX/0qVLl+655pprHvw6r/M6781VV1111VVX/f+AHvSgB3HVVVddddVV/x/8xE/8hP/mb/7mly5dunQPV1111VVX/b81n8+3HvzgB7/Ch3zIhzyEq6666qqrrvq/j+Cqq6666qqr/h/48A//8O+69957n3Lp0qV7uOqqq6666v+11Wp1cM011zz4wz/8w7+Lq6666qqrrvq/j+Cqq6666qqr/o+75pprHvw6r/M67/3EJz7x97jqqquuuuoq4E//9E9/7MVe7MVe+8Ve7MVem6uuuuqqq676v43gqquuuuqqq/6P+/AP//DveuITn/h7XHXVVVddddUzrVarg4sXL97+Tu/0Tp/FVVddddVVV/3fRnDVVVddddVV/4e92Iu92Gs/7GEPe/l77733KVx11VVXXXXVA1y6dOmeF3uxF3vtF3/xF39trrrqqquuuur/LvSgBz2Iq6666qqrrvq/6nM/93N/a5qm5aVLl+7hqquuuuqqq57LsWPHrrvhhhse+8Ef/MEP5qqrrrrqqqv+byK46qqrrrrqqv+jXud1Xue9b7zxxkdfunTpHq666qqrrrrq+bh06dI9Z86cedDrvM7rvDdXXXXVVVdd9X8TetCDHsRVV1111VVX/V/0Ez/xE/6bv/mbX7p06dI9XHXVVVddddULMJ/Ptx784Ae/wod8yIc8hKuuuuqqq676v4fgqquuuuqqq/4P+vAP//Dvuvfee59y6dKle7jqqquuuuqqF2K1Wh1cc801D/7wD//w7+Kqq6666qqr/u8huOqqq6666qr/Y6655poHv87rvM57P/GJT/w9rrrqqquuuupF8Kd/+qc/9mIv9mKv/WIv9mKvzVVXXXXVVVf930Jw1VVXXXXVVf/HfPiHf/h3PfGJT/w9rrrqqquuuupFtFqtDi5evHj7O73TO30WV1111VVXXfV/C8FVV1111VVX/R/yYi/2Yq/9sIc97OXvvffep3DVVVddddVV/wqXLl2658Ve7MVe+8Ve7MVem6uuuuqqq676vwM96EEP4qqrrrrqqqv+r/jcz/3c35qmaXnp0qV7uOqqq6666qp/pWPHjl13/fXXP+ZDPuRDHsJVV1111VVX/d9AcNVVV1111VX/R7zO67zOe994442PvnTp0j1cddVVV1111b/BpUuX7rnmmmse/E7v9E6fzVVXXXXVVVf930Bw1VVXXXXVVf9HfPiHf/h3PeMZz/grrrrqqquuuurf4U//9E9/7HVe53Xe+5prrnkwV1111VVXXfW/H8FVV1111VVX/R/w4R/+4d917733PuXSpUv3cNVVV1111VX/DqvV6uDMmTMPesd3fMfP4qqrrrrqqqv+9yO46qqrrrrqqv/lXuzFXuy1X+d1Xue9n/jEJ/4eV1111VVXXfUf4E//9E9/7MVe7MVe+8Ve7MVem6uuuuqqq676343gqquuuuqqq/6Xe6d3eqfPeuITn/h7XHXVVVddddV/kNVqdXDx4sXb3+md3umzuOqqq6666qr/3Qiuuuqqq6666n+xF3uxF3vtG2+88dH33nvvU7jqqquuuuqq/0CXLl2658Ve7MVe+8Ve7MVem6uuuuqqq6763ws96EEP4qqrrrrqqqv+t/qmb/qmp999992Pv3Tp0j1cddVVV1111X+wY8eOXXf99dc/5kM+5EMewlVXXXXVVVf970Rw1VVXXXXVVf9LveM7vuNn9X0/v3Tp0j1cddVVV1111X+CS5cu3XPNNdc8+B3f8R0/i6uuuuqqq67634ngqquuuuqqq/6Xeqd3eqfPftKTnvR7XHXVVVddddV/oj/90z/9sdd5ndd572uuuebBXHXVVVddddX/PpTjx49z1VVXXXXVVf/bfPiHf/h3RYTPnz9/G1ddddVVV131n2iapuGxj33s62xubh7/0z/905/hqquuuuqqq/53Ibjqqquuuuqq/2Ve7MVe7LVf53Ve572f8Yxn/DVXXXXVVVdd9V/gT//0T3/sxV/8xV/nxV7sxV6bq6666qqrrvrfheCqq6666qqr/pd5p3d6p8964hOf+HtcddVVV1111X+R1Wp1cOHChdve6Z3e6bO46qqrrrrqqv9dCK666qqrrrrqf5HXeZ3Xee8bb7zx0ffee+9TuOqqq6666qr/QpcuXbrnxV7sxV77xV7sxV6bq6666qqrrvrfAz3oQQ/iqquuuuqqq/63+KZv+qan33333Y+/dOnSPVx11VVXXXXVf7Fjx45dd/311z/mQz7kQx7CVVddddVVV/3vQHDVVVddddVV/0u84zu+42fZni5dunQPV1111VVXXfXf4NKlS/dcc801D37Hd3zHz+Kqq6666qqr/ncguOqqq6666qr/Jd7pnd7ps5/xjGf8FVddddVVV1313+hP//RPf+x1Xud13vuaa655MFddddVVV131Px/l+PHjXHXVVVddddX/dB/+4R/+XRHh8+fP38ZVV1111VVX/Teapml47GMf+zqbm5vH//RP//RnuOqqq6666qr/2Qiuuuqqq6666n+4F3uxF3vt13md13nvZzzjGX/NVVddddVVV/0P8Kd/+qc/9jqv8zrv/eIv/uKvzVVXXXXVVVf9z0Y5fvw4V1111VVXXfU/2Ud8xEd818WLF28/PDy8wFVXXXXVVVf9DzBN07BarQ4e85jHvNZv/dZvfTdXXXXVVVdd9T8XwVVXXXXVVVf9D/Y6r/M6733jjTc++t57730KV1111VVXXfU/yL333vuUF3uxF3ut13md13lvrrrqqquuuup/LoKrrrrqqquu+h/sHd/xHT/rGc94xl9x1VVXXXXVVf8D/c3f/M0vveM7vuNncdVVV1111VX/cxFcddVVV1111f9Q7/iO7/hZtqdLly7dw1VXXXXVVVf9D3Tp0qV7rrnmmge/4zu+42dx1VVXXXXVVf8zEVx11VVXXXXV/0DXXHPNg9/pnd7ps5/xjGf8FVddddVVV131P9if/umf/tjrvM7rvPc111zzYK666qqrrrrqfx7K8ePHueqqq6666qr/aT7pkz7pp5bL5cXz58/fxlVXXXXVVVf9DzZN0/DYxz72dTY3N4//6Z/+6c9w1VVXXXXVVf+zEFx11VVXXXXV/zAv9mIv9tov9mIv9trPeMYz/pqrrrrqqquu+l/gT//0T3/sdV7ndd77xV7sxV6bq6666qqrrvqfBT3oQQ/iqquuuuqqq/4n+dzP/dzfmqZpeenSpXu46qqrrrrqqv8lrr322oefOHHi5g/5kA95CFddddVVV131PwfBVVddddVVV/0P8jqv8zrvfeONNz760qVL93DVVVddddVV/4vce++9T7nmmmse/Dqv8zrvzVVXXXXVVVf9z4Ee9KAHcdVVV1111VX/U3zTN33T0+++++7HX7p06R6uuuqqq6666n+Z+Xy+9ZCHPOQVP/iDP/jBXHXVVVddddX/DARXXXXVVVdd9T/EO77jO36W7enSpUv3cNVVV1111VX/C61Wq4MzZ8486MM//MO/i6uuuuqqq676n4Hgqquuuuqqq/4HuOaaax78Tu/0Tp/9jGc846+46qqrrrrqqv/F/vRP//THXuzFXuy1r7nmmgdz1VVXXXXVVf/9KMePH+eqq6666qqr/rt90id90k8tl8uL58+fv42rrrrqqquu+l9smqahlFJvueWWl/zTP/3Tn+Gqq6666qqr/nsRXHXVVVddddV/sxd7sRd77Yc97GEv/4xnPOOvueqqq6666qr/Ay5dunTP67zO67z3i73Yi702V1111VVXXfXfCz3oQQ/iqquuuuqqq/47fe7nfu5vTdO0vHTp0j1cddVVV1111f8R11577cNPnDhx84d8yIc8hKuuuuqqq67670Nw1VVXXXXVVf+NXud1Xue9b7zxxkdfunTpHq666qqrrrrq/5B77733Kddcc82DX+d1Xue9ueqqq6666qr/PgRXXXXVVVdd9d/oHd/xHT/rGc94xl9x1VVXXXXVVf8H/emf/umPveM7vuNncdVVV1111VX/fQiuuuqqq6666r/JO77jO36W7enSpUv3cNVVV1111VX/B61Wq4NrrrnmwR/+4R/+XVx11VVXXXXVfw+Cq6666qqrrvpvcM011zz4nd7pnT77Gc94xl9x1VVXXXXVVf+H/emf/umPvfiLv/jrvNiLvdhrc9VVV1111VX/9Qiuuuqqq6666r/Bh3/4h3/XM57xjL9arVYHXHXVVVddddX/YavV6uDChQu3vdM7vdNncdVVV1111VX/9Qiuuuqqq6666r/Yi73Yi732wx72sJd/xjOe8ddcddVVV1111f8Dly5duufFXuzFXvvFXuzFXpurrrrqqquu+q+FHvSgB3HVVVddddVV/5U+93M/97emaVpeunTpHq666qqrrrrq/4ljx45dd/311z/mQz7kQx7CVVddddVVV/3XIbjqqquuuuqq/0Kv8zqv89433njjoy9dunQPV1111VVXXfX/yKVLl+655pprHvw6r/M6781VV1111VVX/dchuOqqq6666qr/Qu/4ju/4Wc94xjP+iquuuuqqq676f+hP//RPf+wd3/EdP4urrrrqqquu+q9DcNVVV1111VX/Rd7xHd/xs2xPly5duoerrrrqqquu+n9otVodXHPNNQ/+8A//8O/iqquuuuqqq/5rEFx11VVXXXXVf4Frrrnmwe/0Tu/02c94xjP+iquuuuqqq676f+xP//RPf+zFXuzFXvvFX/zFX5urrrrqqquu+s9HcNVVV1111VX/BT78wz/8u57xjGf81Wq1OuCqq6666qqr/h9brVYHFy9evP0d3/EdP5urrrrqqquu+s9HcNVVV1111VX/yV7sxV7stR/2sIe9/DOe8Yy/5qqrrrrqqquu4tKlS/e82Iu92Gu92Iu92Gtz1VVXXXXVVf+50IMe9CCuuuqqq6666j/T537u5/7WNE3LS5cu3cNVV1111VVXXXXZsWPHrrv++usf8yEf8iEP4aqrrrrqqqv+8xBcddVVV1111X+i13md13nvG2+88dGXLl26h6uuuuqqq6666lkuXbp0zzXXXPPg13md13lvrrrqqquuuuo/D3rQgx7EVVddddVVV/1n+Ymf+An/zd/8zS9dunTpHq666qqrrrrqqucwn8+3HvzgB7/Ch3zIhzyEq6666qqrrvrPQXDVVVddddVV/0k+/MM//Lvuvffep1y6dOkerrrqqquuuuqq57FarQ6uueaaB3/4h3/4d3HVVVddddVV/zkIrrrqqquuuuo/wTXXXPPg13md13nvJz7xib/HVVddddVVV131Av3pn/7pj73Yi73Ya7/Yi73Ya3PVVVddddVV//EIrrrqqquuuuo/wYd/+Id/1xOf+MTf46qrrrrqqquueqFWq9XBxYsXb3+nd3qnz+Kqq6666qqr/uMRXHXVVVddddV/sBd7sRd77Yc97GEvf++99z6Fq6666qqrrrrqX3Tp0qV7XuzFXuy1X/zFX/y1ueqqq6666qr/WOhBD3oQV1111VVXXfUf6XM/93N/a5qm5aVLl+7hqquuuuqqq656kRw7duy6G2644bEf/MEf/GCuuuqqq6666j8OwVVXXXXVVVf9B3qd13md977xxhsffenSpXu46qqrrrrqqqteZJcuXbrnzJkzD3qd13md9+aqq6666qqr/uOgBz3oQVx11VVXXXXVf5Sf+Imf8N/8zd/80qVLl+7hqquuuuqqq676V5nP51sPfvCDX+FDPuRDHsJVV1111VVX/ccguOqqq6666qr/IB/+4R/+Xffee+9TLl26dA9XXXXVVVddddW/2mq1Orjmmmse/OEf/uHfxVVXXXXVVVf9xyC46qqrrrrqqv8A11xzzYNf53Ve572f+MQn/h5XXXXVVVddddW/2Z/+6Z/+2Iu92Iu99ou92Iu9NlddddVVV13170dw1VVXXXXVVf8BPvzDP/y7nvjEJ/4eV1111VVXXXXVv8tqtTq4ePHi7e/0Tu/0WVx11VVXXXXVvx/BVVddddVVV/07vdiLvdhrP+xhD3v5e++99ylcddVVV1111VX/bpcuXbrnxV7sxV77xV7sxV6bq6666qqrrvr3QQ960IO46qqrrrrqqn+Pb/qmb3r63Xff/fhLly7dw1VXXXXVVVdd9R/i2LFj111//fWP+ZAP+ZCHcNVVV1111VX/dgRXXXXVVVdd9e/wOq/zOu/d9/380qVL93DVVVddddVVV/2HuXTp0j3XXHPNg9/pnd7ps7nqqquuuuqqfzuCq6666qqrrvp3+PAP//DvetKTnvR7XHXVVVddddVV/+H+9E//9Mde53Ve572vueaaB3PVVVddddVV/zYEV1111VVXXfVv9OEf/uHfde+99z5ltVodcNVVV1111VVX/YdbrVYHZ86cedA7vuM7fhZXXXXVVVdd9W9DcNVVV1111VX/Bi/2Yi/22q/zOq/z3k984hN/j6uuuuqqq6666j/Nn/7pn/7Yi73Yi732i73Yi702V1111VVXXfWvR3DVVVddddVV/wbv9E7v9FlPfOITf4+rrrrqqquuuuo/1Wq1Orh48eLt7/RO7/RZXHXVVVddddW/HsFVV1111VVX/Su9zuu8znvfeOONj7733nufwlVXXXXVVVdd9Z/u0qVL97zYi73Ya7/Yi73Ya3PVVVddddVV/zroQQ96EFddddVVV131r/FN3/RNT7/77rsff+nSpXu46qqrrrrqqqv+Sxw7duy666+//jEf8iEf8hCuuuqqq6666kVHcNVVV1111VX/Cu/4ju/4WX3fzy9dunQPV1111VVXXXXVf5lLly7dc8011zz4Hd/xHT+Lq6666qqrrnrREVx11VVXXXXVv8I7vdM7ffaTnvSk3+Oqq6666qqrrvov96d/+qc/9jqv8zrvfc011zyYq6666qqrrnrRUI4fP85VV1111VVXvSg+/MM//LsiwufPn7+Nq6666qqrrrrqv9w0TcNjH/vY19nc3Dz+p3/6pz/DVVddddVVV/3LCK666qqrrrrqRfBiL/Zir/06r/M67/2MZzzjr7nqqquuuuqqq/7b/Omf/umPvfiLv/jrvNiLvdhrc9VVV1111VX/MoKrrrrqqquuehG80zu902c98YlP/D2uuuqqq6666qr/VqvV6uDChQu3vdM7vdNncdVVV1111VX/MoKrrrrqqquu+he8zuu8znvfeOONj7733nufwlVXXXXVVVdd9d/u0qVL97zYi73Ya7/O67zOe3PVVVddddVVLxx60IMexFVXXXXVVVe9MN/0Td/09Lvvvvvxly5duoerrrrqqquuuup/hGPHjl13/fXXP+ZDPuRDHsJVV1111VVXvWAEV1111VVXXfVCvOM7vuNn2Z4uXbp0D1ddddVVV1111f8Yly5duueaa6558Du+4zt+FlddddVVV131ghFcddVVV1111QvxTu/0Tp/9jGc846+46qqrrrrqqqv+x/nTP/3TH3ud13md977mmmsezFVXXXXVVVc9f5Tjx49z1VVXXXXVVc/Ph3/4h39XRPj8+fO3cdVVV1111VVX/Y8zTdPw2Mc+9nU2NzeP/+mf/unPcNVVV1111VXPi+Cqq6666qqrno8Xe7EXe+3XeZ3Xee9nPOMZf81VV1111VVXXfU/1p/+6Z/+2Ou8zuu894u/+Iu/NlddddVVV131vCjHjx/nqquuuuqqq57bR3zER3zXxYsXbz88PLzAVVddddVVV131P9Y0TcNqtTp4zGMe81q/9Vu/9d1cddVVV1111XMiuOqqq6666qrn8jqv8zrvfeONNz763nvvfQpXXXXVVVddddX/ePfee+9TXuzFXuy1Xud1Xue9ueqqq6666qrnRHDVVVddddVVz+Ud3/EdP+sZz3jGX3HVVVddddVVV/2v8Td/8ze/9I7v+I6fxVVXXXXVVVc9J4KrrrrqqquueoB3fMd3/Czb06VLl+7hqquuuuqqq676X+PSpUv3XHPNNQ/+8A//8O/iqquuuuqqq56N4Kqrrrrqqque6ZprrnnwO73TO332M57xjL/iqquuuuqqq676X+dP//RPf+zFXuzFXvuaa655MFddddVVV111BeX48eNcddVVV111FcAnfdIn/dRyubx4/vz527jqqquuuuqqq/7XmaZpeOxjH/s6m5ubx//0T//0Z7jqqquuuuoqILjqqquuuuoq4MVe7MVe+2EPe9jLP+MZz/hrrrrqqquuuuqq/7X+9E//9Mde53Ve571f7MVe7LW56qqrrrrqKkAPetCDuOqqq6666qrP/dzP/a1pmpaXLl26h6uuuuqqq6666n+1a6+99uEnTpy4+UM+5EMewlVXXXXVVf/fEVx11VVXXfX/3uu8zuu894033vjoS5cu3cNVV1111VVXXfW/3r333vuUa6655sGv8zqv895cddVVV131/x160IMexFVXXXXVVf+/fdM3fdPT77777sdfunTpHq666qqrrrrqqv8T5vP51kMe8pBX/OAP/uAHc9VVV1111f9nBFddddVVV/2/9o7v+I6fZXu6dOnSPVx11VVXXXXVVf9nrFargzNnzjzowz/8w7+Lq6666qqr/j8juOqqq6666v+ta6655sHv9E7v9NnPeMYz/oqrrrrqqquuuur/nD/90z/9sRd7sRd77WuuuebBXHXVVVdd9f8V5fjx41x11VVXXfX/0yd90if91HK5vHj+/PnbuOqqq6666qqr/s+ZpmkopdRbbrnlJf/0T//0Z7jqqquuuur/I4Krrrrqqqv+X3qxF3ux137Ywx728s94xjP+mquuuuqqq6666v+sS5cu3fM6r/M67/1iL/Zir81VV1111VX/H6EHPehBXHXVVVdd9f/P537u5/7WNE3LS5cu3cNVV1111VVXXfV/2rXXXvvwEydO3PwhH/IhD+Gqq6666qr/bwiuuuqqq676f+d1Xud13vvGG2989KVLl+7hqquuuuqqq676P+/ee+99yjXXXPPg13md13lvrrrqqquu+v+G4Kqrrrrqqv933vEd3/GznvGMZ/wVV1111VVXXXXV/xt/+qd/+mPv+I7v+FlcddVVV131/w3BVVddddVV/6+84zu+42fZni5dunQPV1111VVXXXXV/xur1ergmmuuefCHf/iHfxdXXXXVVVf9f0Jw1VVXXXXV/xvXXHPNg9/pnd7ps5/xjGf8FVddddVVV1111f87f/qnf/pjL/7iL/46L/ZiL/baXHXVVVdd9f8FwVVXXXXVVf9vfPiHf/h3PeMZz/ir1Wp1wFVXXXXVVVdd9f/OarU6uHDhwm3v9E7v9FlcddVVV131/wXBVVddddVV/y+82Iu92Gs/7GEPe/lnPOMZf81VV1111VVXXfX/1qVLl+55sRd7sdd+sRd7sdfmqquuuuqq/w/Qgx70IK666qqrrvq/73M/93N/a5qm5aVLl+7hqquuuuqqq676f+3YsWPXXX/99Y/5kA/5kIdw1VVXXXXV/3UEV1111VVX/Z/3Oq/zOu994403PvrSpUv3cNVVV1111VVX/b936dKle6655poHv87rvM57c9VVV1111f91BFddddVVV/2f947v+I6f9YxnPOOvuOqqq6666qqrrnqmP/3TP/2xd3zHd/wsrrrqqquu+r+O4Kqrrrrqqv/TPvzDP/y7bE+XLl26h6uuuuqqq6666qpnWq1WB9dcc82DP/zDP/y7uOqqq6666v8ygquuuuqqq/7Puuaaax78Oq/zOu/9jGc846+46qqrrrrqqquuei5/+qd/+mMv9mIv9tov/uIv/tpcddVVV131fxXBVVddddVV/2d9+Id/+Hc94xnP+KvVanXAVVddddVVV1111XNZrVYHFy9evP0d3/EdP5urrrrqqqv+ryK46qqrrrrq/6QXe7EXe+2HPexhL/+MZzzjr7nqqquuuuqqq656AS5dunTPi73Yi73Wi73Yi702V1111VVX/V+EHvSgB3HVVVddddX/PZ/7uZ/7W9M0LS9dunQPV1111VVXXXXVVS/EsWPHrrv++usf8yEf8iEP4aqrrrrqqv9rCK666qqrrvo/53Ve53Xe+8Ybb3z0pUuX7uGqq6666qqrrrrqX3Dp0qV7rrnmmge/zuu8zntz1VVXXXXV/zXoQQ96EFddddVVV/3f8hM/8RP+m7/5m1+6dOnSPVx11VVXXXXVVVe9CObz+daDH/zgV/iQD/mQh3DVVVddddX/JQRXXXXVVVf9n/LhH/7h33Xvvfc+5dKlS/dw1VVXXXXVVVdd9SJarVYH11xzzYM//MM//Lu46qqrrrrq/xKCq6666qqr/s+45pprHvw6r/M67/3EJz7x97jqqquuuuqqq676V/rTP/3TH3uxF3ux136xF3ux1+aqq6666qr/Kwiuuuqqq676P+PDP/zDv+uJT3zi73HVVVddddVVV131b7BarQ4uXrx4+zu90zt9FlddddVVV/1fQXDVVVddddX/CS/2Yi/22g972MNe/t57730KV1111VVXXXXVVf9Gly5duufFXuzFXvvFX/zFX5urrrrqqqv+L0APetCDuOqqq6666n+/z/3cz/2taZqWly5duoerrrrqqquuuuqqf4djx45dd8MNNzz2gz/4gx/MVVddddVV/9sRXHXVVVdd9b/e67zO67z3jTfe+OhLly7dw1VXXXXVVVddddW/06VLl+45c+bMg17ndV7nvbnqqquuuup/O/SgBz2Iq6666qqr/nf7iZ/4Cf/N3/zNL126dOkerrrqqquuuuqqq/4DzOfzrQc/+MGv8CEf8iEP4aqrrrrqqv/NCK666qqrrvpf7cM//MO/6957733KpUuX7uGqq6666qqrrrrqP8hqtTq45pprHvzhH/7h38VVV1111VX/mxFcddVVV131v9aLvdiLvfbrvM7rvPcTn/jE3+Oqq6666qqrrrrqP9if/umf/tiLvdiLvfaLvdiLvTZXXXXVVVf9b0Vw1VVXXXXV/1rv9E7v9FlPfOITf4+rrrrqqquuuuqq/wSr1erg4sWLt7/TO73TZ3HVVVddddX/VgRXXXXVVVf9r/RiL/Zir/2whz3s5e+9996ncNVVV1111VVXXfWf5NKlS/e82Iu92Gu/2Iu92Gtz1VVXXXXV/0boQQ96EFddddVVV/3v803f9E1Pv/vuux9/6dKle7jqqquuuuqqq676T3Ts2LHrrr/++sd8yId8yEO46qqrrrrqfxuCq6666qqr/td5ndd5nffu+35+6dKle7jqqquuuuqqq676T3bp0qV7rrnmmge/0zu902dz1VVXXXXV/zYEV1111VVX/a/z4R/+4d/1pCc96fe46qqrrrrqqquu+i/yp3/6pz/2Oq/zOu99zTXXPJirrrrqqqv+NyG46qqrrrrqf5UP//AP/6577733KavV6oCrrrrqqquuuuqq/yKr1ergzJkzD3rHd3zHz+Kqq6666qr/TQiuuuqqq676X+PFXuzFXvt1Xud13vuJT3zi73HVVVddddVVV131X+xP//RPf+zFXuzFXvvFXuzFXpurrrrqqqv+tyC46qqrrrrqf413eqd3+qwnPvGJv8dVV1111VVXXXXVf4PVanVw8eLF29/pnd7ps7jqqquuuup/C4Krrrrqqqv+V3id13md977xxhsffe+99z6Fq6666qqrrrrqqv8mly5duufFXuzFXvvFXuzFXpurrrrqqqv+N0APetCDuOqqq6666n++b/qmb3r63Xff/fhLly7dw1VXXXXVVVddddV/o2PHjl13/fXXP+ZDPuRDHsJVV1111VX/0xFcddVVV131P947vuM7fpbt6dKlS/dw1VVXXXXVVVdd9d/s0qVL91xzzTUPfsd3fMfP4qqrrrrqqv/pCK666qqrrvof753e6Z0++xnPeMZfcdVVV1111VVXXfU/xJ/+6Z/+2Ou8zuu89zXXXPNgrrrqqquu+p+Mcvz4ca666qqrrvqf68M//MO/KyJ8/vz527jqqquuuuqqq676H2KapuGxj33s62xubh7/0z/905/hqquuuuqq/6kIrrrqqquu+h/rxV7sxV77dV7ndd77Gc94xl9z1VVXXXXVVVdd9T/Mn/7pn/7Y67zO67z3i73Yi702V1111VVX/U9FOX78OFddddVVV/3P9BEf8RHfdfHixdsPDw8vcNVVV1111VVXXfU/zDRNw2q1OnjsYx/7mr/1W7/1PVx11VVXXfU/EcFVV1111VX/I73O67zOe994442Pvvfee5/CVVddddVVV1111f9Qly5duufFXuzFXvt1Xud13purrrrqqqv+J0IPetCDuOqqq6666n+eb/qmb3r63Xff/fhLly7dw1VXXXXVVVddddX/YMeOHbvu+uuvf8yHfMiHPISrrrrqqqv+pyG46qqrrrrqf5x3fMd3/Czb06VLl+7hqquuuuqqq6666n+4S5cu3XPNNdc8+B3f8R0/i6uuuuqqq/6nIbjqqquuuup/nHd6p3f67Gc84xl/xVVXXXXVVVddddX/En/6p3/6Y6/zOq/z3tdcc82Dueqqq6666n8SyvHjx7nqqquuuup/jg//8A//rojw+fPnb+Oqq6666qqrrrrqf4lpmobHPvaxr7O5uXn8T//0T3+Gq6666qqr/qcguOqqq6666n+MF3uxF3vt13md13nvZzzjGX/NVVddddVVV1111f8yf/qnf/pjr/M6r/PeL/7iL/7aXHXVVVdd9T8FetCDHsRVV1111VX/M3zu537ub9Vay7333vsUrrrqqquuuuqqq/4Xuvbaax9+8uTJWz74gz/4wVx11VVXXfU/AcFVV1111VX/I7zO67zOe994442Pvvfee5/CVVddddVVV1111f9S995771POnDnzoNd5ndd5b6666qqrrvqfgOCqq6666qr/Ed7xHd/xs57xjGf8FVddddVVV1111VX/y/3pn/7pj73jO77jZ3HVVVddddX/BARXXXXVVVf9t3vHd3zHz7I9Xbp06R6uuuqqq6666qqr/pdbrVYH11xzzYM//MM//Lu46qqrrrrqvxvBVVddddVV/62uueaaB7/TO73TZz/jGc/4K6666qqrrrrqqqv+j/jTP/3TH3uxF3ux177mmmsezFVXXXXVVf+dKMePH+eqq6666qr/Pp/0SZ/0U8vl8uL58+dv46qrrrrqqquuuur/iGmahsc+9rGvs7m5efxP//RPf4arrrrqqqv+uxBcddVVV1313+bFXuzFXvthD3vYyz/jGc/4a6666qqrrrrqqqv+j/nTP/3TH3ud13md936xF3ux1+aqq6666qr/LuhBD3oQV1111VVX/ff43M/93N+apml56dKle7jqqquuuuqqq676P+jaa699+IkTJ27+kA/5kIdw1VVXXXXVfweCq6666qqr/lu8zuu8znvfeOONj7506dI9XHXVVVddddVVV/0fde+99z7lmmuuefDrvM7rvDdXXXXVVVf9d0APetCDuOqqq6666r/eN33TNz397rvvfvylS5fu4aqrrrrqqquuuur/sPl8vvWQhzzkFT/4gz/4wVx11VVXXfVfjeCqq6666qr/cu/4ju/4WbanS5cu3cNVV1111VVXXXXV/3Gr1ergzJkzD/rwD//w7+Kqq6666qr/agRXXXXVVVf9l7rmmmse/E7v9E6f/YxnPOOvuOqqq6666qqrrvp/4k//9E9/7MVe7MVe+5prrnkwV1111VVX/VeiHD9+nKuuuuqqq/7rfNInfdJPLZfLi+fPn7+Nq6666qqrrrrqqv8npmkaSin1lltueck//dM//Rmuuuqqq676r0Jw1VVXXXXVf5kXe7EXe+2HPexhL/+MZzzjr7nqqquuuuqqq676f+bSpUv3vM7rvM57v9iLvdhrc9VVV1111X8V9KAHPYirrrrqqqv+a3zu537ub03TtLx06dI9XHXVVVddddVVV/0/dO211z78xIkTN3/Ih3zIQ7jqqquuuuq/AsFVV1111VX/JV7ndV7nvW+88cZHX7p06R6uuuqqq6666qqr/p+69957n3LNNdc8+HVe53Xem6uuuuqqq/4rEFx11VVXXfVf4h3f8R0/6xnPeMZfcdVVV1111VVXXfX/3J/+6Z/+2Du+4zt+FlddddVVV/1XILjqqquuuuo/3Tu+4zt+lu3p0qVL93DVVVddddVVV131/9xqtTq45pprHvzhH/7h38VVV1111VX/2Qiuuuqqq676T3XNNdc8+J3e6Z0++xnPeMZfcdVVV1111VVXXXXVZX/6p3/6Yy/+4i/+Oi/2Yi/22lx11VVXXfWfieCqq6666qr/VB/+4R/+Xc94xjP+arVaHXDVVVddddVVV1111WWr1ergwoULt73TO73TZ3HVVVddddV/JoKrrrrqqqv+07zYi73Yaz/sYQ97+Wc84xl/zVVXXXXVVVddddVVz+HSpUv3vNiLvdhrv9iLvdhrc9VVV1111X8W9KAHPYirrrrqqqv+c3zu537ub03TtLx06dI9XHXVVVddddVVV131PI4dO3bd9ddf/5gP+ZAPeQhXXXXVVVf9ZyC46qqrrrrqP8XrvM7rvPeNN9746EuXLt3DVVddddVVV1111VXP16VLl+655pprHvw6r/M6781VV1111VX/GdCDHvQgrrrqqquu+o/3Ez/xE/6bv/mbX7p06dI9XHXVVVddddVVV131As3n860HP/jBr/AhH/IhD+Gqq6666qr/aARXXXXVVVf9h/vwD//w77r33nufcunSpXu46qqrrrrqqquuuuqFWq1WB9dcc82DP/zDP/y7uOqqq6666j8awVVXXXXVVf+hrrnmmge/zuu8zns/8YlP/D2uuuqqq6666qqrrnqR/Omf/umPvdiLvdhrv/iLv/hrc9VVV1111X8kgquuuuqqq/5DffiHf/h3PfGJT/w9rrrqqquuuuqqq656ka1Wq4OLFy/e/o7v+I6fzVVXXXXVVf+RCK666qqrrvoP82Iv9mKv/bCHPezl77333qdw1VVXXXXVVVddddW/yqVLl+55sRd7sdd6sRd7sdfmqquuuuqq/yjoQQ96EFddddVVV/3H+NzP/dzfmqZpeenSpXu46qqrrrrqqquuuupf7dixY9ddf/31j/mQD/mQh3DVVVddddV/BIKrrrrqqqv+Q7zO67zOe994442PvnTp0j1cddVVV1111VVXXfVvcunSpXuuueaaB7/O67zOe3PVVVddddV/BPSgBz2Iq6666qqr/v1+4id+wn/zN3/zS5cuXbqHq6666qqrrrrqqqv+zebz+daDH/zgV/iQD/mQh3DVVVddddW/F8FVV1111VX/bh/+4R/+Xffee+9TLl26dA9XXXXVVVddddVVV/27rFarg2uuuebBH/7hH/5dXHXVVVdd9e9FcNVVV1111b/LNddc8+DXeZ3Xee8nPvGJv8dVV1111VVXXXXVVf8h/vRP//THXuzFXuy1X+zFXuy1ueqqq6666t+D4Kqrrrrqqn+XD//wD/+uJz7xib/HVVddddVVV1111VX/YVar1cHFixdvf6d3eqfP4qqrrrrqqn8Pgquuuuqqq/7NXuzFXuy1H/awh738vffe+xSuuuqqq6666qqrrvoPdenSpXte7MVe7LVf/MVf/LW56qqrrrrq3wo96EEP4qqrrrrqqn+bz/3cz/2taZqWly5duoerrrrqqquuuuqqq/7DHTt27LobbrjhsR/8wR/8YK666qqrrvq3ILjqqquuuurf5HVe53Xe+8Ybb3z0pUuX7uGqq6666qqrrrrqqv8Uly5duufMmTMPesd3fMfP4qqrrrrqqn8Lgquuuuqqq/5NPvzDP/y7nvGMZ/wVV1111VVXXXXVVVf9p/rTP/3TH3ud13md977mmmsezFVXXXXVVf9aBFddddVVV/2rffiHf/h33XvvvU+5dOnSPVx11VVXXXXVVVdd9Z9qtVodXHPNNQ9+x3d8x8/iqquuuuqqfy2Cq6666qqr/lVe7MVe7LVf53Ve572f+MQn/h5XXXXVVVddddVVV/2X+NM//dMfe7EXe7HXfrEXe7HX5qqrrrrqqn8Ngquuuuqqq/5V3umd3umznvjEJ/4eV1111VVXXXXVVVf9l1mtVgcXL168/Z3e6Z0+i6uuuuqqq/410IMe9CCuuuqqq6560V1zzTUP/qZv+qanc9VVV1111VVXXXXVf7nP/MzPfJ1/+Id/+G2uuuqqq656UVG56qqrrrrqX+3rv/7r34er/rUMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnAwL4h3/4h9/mqquuuuqqfw30oAc9iKuuuuqqq6666qqrrrrqqquuuuqqq6666v8kKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/AvVecvyV6pI4AAAAAElFTkSuQmCC) +![Rendered example of std::types::Sketch 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABqxUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6667MVe7MVe+8Ve7MVei6uuuuqqq/7X++3f/u3vue+++27lqquuuuqqq66ictVVV1111VVX8Tqv8zrv/TIv8zJvdNNNNz2Kq6666qqr/ld60IMe9DI804u/+Iu/9n333Xfr13/9178PV1111VVXXfX/G5Wrrrrqqquu+n/ummuuefCHf/iHf9ef/umf/tgznvGMv+aqq6666qr/lZ7xjGf8Nc80n8+3XvzFX/x1rrnmmgffd999t3LVVVddddVV/39Rjh8/zlVXXXXVVVf9f/ZJn/RJP7VcLi+eP3/+Nq666qqrrvo/YZqmoZRSbrnllpf80z/905/hqquuuuqqq/7/Irjqqquuuuqq/8de7MVe7LUf9rCHvfwznvGMv+aqq6666qr/Uy5dunTP67zO67z3i73Yi702V1111VVXXfX/F3rQgx7EVVddddVVV/1/9bmf+7m/NU3T8tKlS/dw1VVXXXXV/znXXnvtw0+cOHHzh3zIhzyEq6666qqrrvr/ieCqq6666qqr/p96ndd5nfe+8cYbH33p0qV7uOqqq6666v+ke++99ynXXHPNg1/ndV7nvbnqqquuuuqq/58Irrrqqquuuur/qXd8x3f8rGc84xl/xVVXXXXVVf+n/emf/umPveM7vuNncdVVV1111VX/PxFcddVVV1111f9D7/iO7/hZtqdLly7dw1VXXXXVVf+nrVarg2uuuebBH/7hH/5dXHXVVVddddX/PwRXXXXVVVdd9f/MNddc8+B3eqd3+uxnPOMZf8VVV1111VX/L/zpn/7pj73Yi73Ya7/4i7/4a3PVVVddddVV/78QXHXVVVddddX/Mx/+4R/+Xc94xjP+arVaHXDVVVddddX/C6vV6uDixYu3v+M7vuNnc9VVV1111VX/vxBcddVVV1111f8jL/ZiL/baD3vYw17+Gc94xl9z1VVXXXXV/yuXLl2658Ve7MVe68Ve7MVem6uuuuqqq676/wM96EEP4qqrrrrqqqv+v/jcz/3c35qmaXnp0qV7uOqqq6666v+dY8eOXXf99dc/5kM+5EMewlVXXXXVVVf9/0Bw1VVXXXXVVf9PvM7rvM5733jjjY++dOnSPVx11VVXXfX/0qVLl+655pprHvw6r/M6781VV1111VVX/f+AHvSgB3HVVVddddVV/x/8xE/8hP/mb/7mly5dunQPV1111VVX/b81n8+3HvzgB7/Ch3zIhzyEq6666qqrrvq/j+Cqq6666qqr/h/48A//8O+69957n3Lp0qV7uOqqq6666v+11Wp1cM011zz4wz/8w7+Lq6666qqrrvq/j+Cqq6666qqr/o+75pprHvw6r/M67/3EJz7x97jqqquuuuoq4E//9E9/7MVe7MVe+8Ve7MVem6uuuuqqq676v43gqquuuuqqq/6P+/AP//DveuITn/h7XHXVVVddddUzrVarg4sXL97+Tu/0Tp/FVVddddVVV/3fRnDVVVddddVV/4e92Iu92Gs/7GEPe/l77733KVx11VVXXXXVA1y6dOmeF3uxF3vtF3/xF39trrrqqquuuur/LvSgBz2Iq6666qqrrvq/6nM/93N/a5qm5aVLl+7hqquuuuqqq57LsWPHrrvhhhse+8Ef/MEP5qqrrrrqqqv+byK46qqrrrrqqv+jXud1Xue9b7zxxkdfunTpHq666qqrrrrq+bh06dI9Z86cedDrvM7rvDdXXXXVVVdd9X8TetCDHsRVV1111VVX/V/0Ez/xE/6bv/mbX7p06dI9XHXVVVddddULMJ/Ptx784Ae/wod8yIc8hKuuuuqqq676v4fgqquuuuqqq/4P+vAP//Dvuvfee59y6dKle7jqqquuuuqqF2K1Wh1cc801D/7wD//w7+Kqq6666qqr/u8huOqqq6666qr/Y6655poHv87rvM57P/GJT/w9rrrqqquuuupF8Kd/+qc/9mIv9mKv/WIv9mKvzVVXXXXVVVf930Jw1VVXXXXVVf/HfPiHf/h3PfGJT/w9rrrqqquuuupFtFqtDi5evHj7O73TO30WV1111VVXXfV/C8FVV1111VVX/R/yYi/2Yq/9sIc97OXvvffep3DVVVddddVV/wqXLl2658Ve7MVe+8Ve7MVem6uuuuqqq676vwM96EEP4qqrrrrqqqv+r/jcz/3c35qmaXnp0qV7uOqqq6666qp/pWPHjl13/fXXP+ZDPuRDHsJVV1111VVX/d9AcNVVV1111VX/R7zO67zOe994442PvnTp0j1cddVVV1111b/BpUuX7rnmmmse/E7v9E6fzVVXXXXVVVf930Bw1VVXXXXVVf9HfPiHf/h3PeMZz/grrrrqqquuuurf4U//9E9/7HVe53Xe+5prrnkwV1111VVXXfW/H8FVV1111VVX/R/w4R/+4d917733PuXSpUv3cNVVV1111VX/DqvV6uDMmTMPesd3fMfP4qqrrrrqqqv+9yO46qqrrrrqqv/lXuzFXuy1X+d1Xue9n/jEJ/4eV1111VVXXfUf4E//9E9/7MVe7MVe+8Ve7MVem6uuuuqqq676343gqquuuuqqq/6Xe6d3eqfPeuITn/h7XHXVVVddddV/kNVqdXDx4sXb3+md3umzuOqqq6666qr/3Qiuuuqqq6666n+xF3uxF3vtG2+88dH33nvvU7jqqquuuuqq/0CXLl2658Ve7MVe+8Ve7MVem6uuuuqqq6763ws96EEP4qqrrrrqqqv+t/qmb/qmp999992Pv3Tp0j1cddVVV1111X+wY8eOXXf99dc/5kM+5EMewlVXXXXVVVf970Rw1VVXXXXVVf9LveM7vuNn9X0/v3Tp0j1cddVVV1111X+CS5cu3XPNNdc8+B3f8R0/i6uuuuqqq67634ngqquuuuqqq/6Xeqd3eqfPftKTnvR7XHXVVVddddV/oj/90z/9sdd5ndd572uuuebBXHXVVVddddX/PpTjx49z1VVXXXXVVf/bfPiHf/h3RYTPnz9/G1ddddVVV131n2iapuGxj33s62xubh7/0z/905/hqquuuuqqq/53Ibjqqquuuuqq/2Ve7MVe7LVf53Ve572f8Yxn/DVXXXXVVVdd9V/gT//0T3/sxV/8xV/nxV7sxV6bq6666qqrrvrfheCqq6666qqr/pd5p3d6p8964hOf+HtcddVVV1111X+R1Wp1cOHChdve6Z3e6bO46qqrrrrqqv9dCK666qqrrrrqf5HXeZ3Xee8bb7zx0ffee+9TuOqqq6666qr/QpcuXbrnxV7sxV77xV7sxV6bq6666qqrrvrfAz3oQQ/iqquuuuqqq/63+KZv+qan33333Y+/dOnSPVx11VVXXXXVf7Fjx45dd/311z/mQz7kQx7CVVddddVVV/3vQHDVVVddddVV/0u84zu+42fZni5dunQPV1111VVXXfXf4NKlS/dcc801D37Hd3zHz+Kqq6666qqr/ncguOqqq6666qr/Jd7pnd7ps5/xjGf8FVddddVVV1313+hP//RPf+x1Xud13vuaa655MFddddVVV131Px/l+PHjXHXVVVddddX/dB/+4R/+XRHh8+fP38ZVV1111VVX/Teapml47GMf+zqbm5vH//RP//RnuOqqq6666qr/2Qiuuuqqq6666n+4F3uxF3vt13md13nvZzzjGX/NVVddddVVV/0P8Kd/+qc/9jqv8zrv/eIv/uKvzVVXXXXVVVf9z0Y5fvw4V1111VVXXfU/2Ud8xEd818WLF28/PDy8wFVXXXXVVVf9DzBN07BarQ4e85jHvNZv/dZvfTdXXXXVVVdd9T8XwVVXXXXVVVf9D/Y6r/M6733jjTc++t57730KV1111VVXXfU/yL333vuUF3uxF3ut13md13lvrrrqqquuuup/LoKrrrrqqquu+h/sHd/xHT/rGc94xl9x1VVXXXXVVf8D/c3f/M0vveM7vuNncdVVV1111VX/cxFcddVVV1111f9Q7/iO7/hZtqdLly7dw1VXXXXVVVf9D3Tp0qV7rrnmmge/4zu+42dx1VVXXXXVVf8zEVx11VVXXXXV/0DXXHPNg9/pnd7ps5/xjGf8FVddddVVV131P9if/umf/tjrvM7rvPc111zzYK666qqrrrrqfx7K8ePHueqqq6666qr/aT7pkz7pp5bL5cXz58/fxlVXXXXVVVf9DzZN0/DYxz72dTY3N4//6Z/+6c9w1VVXXXXVVf+zEFx11VVXXXXV/zAv9mIv9tov9mIv9trPeMYz/pqrrrrqqquu+l/gT//0T3/sdV7ndd77xV7sxV6bq6666qqrrvqfBT3oQQ/iqquuuuqqq/4n+dzP/dzfmqZpeenSpXu46qqrrrrqqv8lrr322oefOHHi5g/5kA95CFddddVVV131PwfBVVddddVVV/0P8jqv8zrvfeONNz760qVL93DVVVddddVV/4vce++9T7nmmmse/Dqv8zrvzVVXXXXVVVf9z4Ee9KAHcdVVV1111VX/U3zTN33T0+++++7HX7p06R6uuuqqq6666n+Z+Xy+9ZCHPOQVP/iDP/jBXHXVVVddddX/DARXXXXVVVdd9T/EO77jO36W7enSpUv3cNVVV1111VX/C61Wq4MzZ8486MM//MO/i6uuuuqqq676n4Hgqquuuuqqq/4HuOaaax78Tu/0Tp/9jGc846+46qqrrrrqqv/F/vRP//THXuzFXuy1r7nmmgdz1VVXXXXVVf/9KMePH+eqq6666qqr/rt90id90k8tl8uL58+fv42rrrrqqquu+l9smqahlFJvueWWl/zTP/3Tn+Gqq6666qqr/nsRXHXVVVddddV/sxd7sRd77Yc97GEv/4xnPOOvueqqq6666qr/Ay5dunTP67zO67z3i73Yi702V1111VVXXfXfCz3oQQ/iqquuuuqqq/47fe7nfu5vTdO0vHTp0j1cddVVV1111f8R11577cNPnDhx84d8yIc8hKuuuuqqq67670Nw1VVXXXXVVf+NXud1Xue9b7zxxkdfunTpHq666qqrrrrq/5B77733Kddcc82DX+d1Xue9ueqqq6666qr/PgRXXXXVVVdd9d/oHd/xHT/rGc94xl9x1VVXXXXVVf8H/emf/umPveM7vuNncdVVV1111VX/fQiuuuqqq6666r/JO77jO36W7enSpUv3cNVVV1111VX/B61Wq4NrrrnmwR/+4R/+XVx11VVXXXXVfw+Cq6666qqrrvpvcM011zz4nd7pnT77Gc94xl9x1VVXXXXVVf+H/emf/umPvfiLv/jrvNiLvdhrc9VVV1111VX/9Qiuuuqqq6666r/Bh3/4h3/XM57xjL9arVYHXHXVVVddddX/YavV6uDChQu3vdM7vdNncdVVV1111VX/9Qiuuuqqq6666r/Yi73Yi732wx72sJd/xjOe8ddcddVVV1111f8Dly5duufFXuzFXvvFXuzFXpurrrrqqquu+q+FHvSgB3HVVVddddVV/5U+93M/97emaVpeunTpHq666qqrrrrq/4ljx45dd/311z/mQz7kQx7CVVddddVVV/3XIbjqqquuuuqq/0Kv8zqv89433njjoy9dunQPV1111VVXXfX/yKVLl+655pprHvw6r/M6781VV1111VVX/dchuOqqq6666qr/Qu/4ju/4Wc94xjP+iquuuuqqq676f+hP//RPf+wd3/EdP4urrrrqqquu+q9DcNVVV1111VX/Rd7xHd/xs2xPly5duoerrrrqqquu+n9otVodXHPNNQ/+8A//8O/iqquuuuqqq/5rEFx11VVXXXXVf4Frrrnmwe/0Tu/02c94xjP+iquuuuqqq676f+xP//RPf+zFXuzFXvvFX/zFX5urrrrqqquu+s9HcNVVV1111VX/BT78wz/8u57xjGf81Wq1OuCqq6666qqr/h9brVYHFy9evP0d3/EdP5urrrrqqquu+s9HcNVVV1111VX/yV7sxV7stR/2sIe9/DOe8Yy/5qqrrrrqqquu4tKlS/e82Iu92Gu92Iu92Gtz1VVXXXXVVf+50IMe9CCuuuqqq6666j/T537u5/7WNE3LS5cu3cNVV1111VVXXXXZsWPHrrv++usf8yEf8iEP4aqrrrrqqqv+8xBcddVVV1111X+i13md13nvG2+88dGXLl26h6uuuuqqq6666lkuXbp0zzXXXPPg13md13lvrrrqqquuuuo/D3rQgx7EVVddddVVV/1n+Ymf+An/zd/8zS9dunTpHq666qqrrrrqqucwn8+3HvzgB7/Ch3zIhzyEq6666qqrrvrPQXDVVVddddVV/0k+/MM//Lvuvffep1y6dOkerrrqqquuuuqq57FarQ6uueaaB3/4h3/4d3HVVVddddVV/zkIrrrqqquuuuo/wTXXXPPg13md13nvJz7xib/HVVddddVVV131Av3pn/7pj73Yi73Ya7/Yi73Ya3PVVVddddVV//EIrrrqqquuuuo/wYd/+Id/1xOf+MTf46qrrrrqqquueqFWq9XBxYsXb3+nd3qnz+Kqq6666qqr/uMRXHXVVVddddV/sBd7sRd77Yc97GEvf++99z6Fq6666qqrrrrqX3Tp0qV7XuzFXuy1X/zFX/y1ueqqq6666qr/WOhBD3oQV1111VVXXfUf6XM/93N/a5qm5aVLl+7hqquuuuqqq656kRw7duy6G2644bEf/MEf/GCuuuqqq6666j8OwVVXXXXVVVf9B3qd13md977xxhsffenSpXu46qqrrrrqqqteZJcuXbrnzJkzD3qd13md9+aqq6666qqr/uOgBz3oQVx11VVXXXXVf5Sf+Imf8N/8zd/80qVLl+7hqquuuuqqq676V5nP51sPfvCDX+FDPuRDHsJVV1111VVX/ccguOqqq6666qr/IB/+4R/+Xffee+9TLl26dA9XXXXVVVddddW/2mq1Orjmmmse/OEf/uHfxVVXXXXVVVf9xyC46qqrrrrqqv8A11xzzYNf53Ve572f+MQn/h5XXXXVVVddddW/2Z/+6Z/+2Iu92Iu99ou92Iu9NlddddVVV13170dw1VVXXXXVVf8BPvzDP/y7nvjEJ/4eV1111VVXXXXVv8tqtTq4ePHi7e/0Tu/0WVx11VVXXXXVvx/BVVddddVVV/07vdiLvdhrP+xhD3v5e++99ylcddVVV1111VX/bpcuXbrnxV7sxV77xV7sxV6bq6666qqrrvr3QQ960IO46qqrrrrqqn+Pb/qmb3r63Xff/fhLly7dw1VXXXXVVVdd9R/i2LFj111//fWP+ZAP+ZCHcNVVV1111VX/dgRXXXXVVVdd9e/wOq/zOu/d9/380qVL93DVVVddddVVV/2HuXTp0j3XXHPNg9/pnd7ps7nqqquuuuqqfzuCq6666qqrrvp3+PAP//DvetKTnvR7XHXVVVddddVV/+H+9E//9Mde53Ve572vueaaB3PVVVddddVV/zYEV1111VVXXfVv9OEf/uHfde+99z5ltVodcNVVV1111VVX/YdbrVYHZ86cedA7vuM7fhZXXXXVVVdd9W9DcNVVV1111VX/Bi/2Yi/22q/zOq/z3k984hN/j6uuuuqqq6666j/Nn/7pn/7Yi73Yi732i73Yi702V1111VVXXfWvR3DVVVddddVV/wbv9E7v9FlPfOITf4+rrrrqqquuuuo/1Wq1Orh48eLt7/RO7/RZXHXVVVddddW/HsFVV1111VVX/Su9zuu8znvfeOONj7733nufwlVXXXXVVVdd9Z/u0qVL97zYi73Ya7/Yi73Ya3PVVVddddVV/zroQQ96EFddddVVV131r/FN3/RNT7/77rsff+nSpXu46qqrrrrqqqv+Sxw7duy666+//jEf8iEf8hCuuuqqq6666kVHcNVVV1111VX/Cu/4ju/4WX3fzy9dunQPV1111VVXXXXVf5lLly7dc8011zz4Hd/xHT+Lq6666qqrrnrREVx11VVXXXXVv8I7vdM7ffaTnvSk3+Oqq6666qqrrvov96d/+qc/9jqv8zrvfc011zyYq6666qqrrnrRUI4fP85VV1111VVXvSg+/MM//LsiwufPn7+Nq6666qqrrrrqv9w0TcNjH/vY19nc3Dz+p3/6pz/DVVddddVVV/3LCK666qqrrrrqRfBiL/Zir/06r/M67/2MZzzjr7nqqquuuuqqq/7b/Omf/umPvfiLv/jrvNiLvdhrc9VVV1111VX/MoKrrrrqqquuehG80zu902c98YlP/D2uuuqqq6666qr/VqvV6uDChQu3vdM7vdNncdVVV1111VX/MoKrrrrqqquu+he8zuu8znvfeOONj7733nufwlVXXXXVVVdd9d/u0qVL97zYi73Ya7/O67zOe3PVVVddddVVLxx60IMexFVXXXXVVVe9MN/0Td/09Lvvvvvxly5duoerrrrqqquuuup/hGPHjl13/fXXP+ZDPuRDHsJVV1111VVXvWAEV1111VVXXfVCvOM7vuNn2Z4uXbp0D1ddddVVV1111f8Yly5duueaa6558Du+4zt+FlddddVVV131ghFcddVVV1111QvxTu/0Tp/9jGc846+46qqrrrrqqqv+x/nTP/3TH3ud13md977mmmsezFVXXXXVVVc9f5Tjx49z1VVXXXXVVc/Ph3/4h39XRPj8+fO3cdVVV1111VVX/Y8zTdPw2Mc+9nU2NzeP/+mf/unPcNVVV1111VXPi+Cqq6666qqrno8Xe7EXe+3XeZ3Xee9nPOMZf81VV1111VVXXfU/1p/+6Z/+2Ou8zuu894u/+Iu/NlddddVVV131vCjHjx/nqquuuuqqq57bR3zER3zXxYsXbz88PLzAVVddddVVV131P9Y0TcNqtTp4zGMe81q/9Vu/9d1cddVVV1111XMiuOqqq6666qrn8jqv8zrvfeONNz763nvvfQpXXXXVVVddddX/ePfee+9TXuzFXuy1Xud1Xue9ueqqq6666qrnRHDVVVddddVVz+Ud3/EdP+sZz3jGX3HVVVddddVVV/2v8Td/8ze/9I7v+I6fxVVXXXXVVVc9J4KrrrrqqquueoB3fMd3/Czb06VLl+7hqquuuuqqq676X+PSpUv3XHPNNQ/+8A//8O/iqquuuuqqq56N4Kqrrrrqqque6ZprrnnwO73TO332M57xjL/iqquuuuqqq676X+dP//RPf+zFXuzFXvuaa655MFddddVVV111BeX48eNcddVVV111FcAnfdIn/dRyubx4/vz527jqqquuuuqqq/7XmaZpeOxjH/s6m5ubx//0T//0Z7jqqquuuuoqILjqqquuuuoq4MVe7MVe+2EPe9jLP+MZz/hrrrrqqquuuuqq/7X+9E//9Mde53Ve571f7MVe7LW56qqrrrrqKkAPetCDuOqqq6666qrP/dzP/a1pmpaXLl26h6uuuuqqq6666n+1a6+99uEnTpy4+UM+5EMewlVXXXXVVf/fEVx11VVXXfX/3uu8zuu894033vjoS5cu3cNVV1111VVXXfW/3r333vuUa6655sGv8zqv895cddVVV131/x160IMexFVXXXXVVf+/fdM3fdPT77777sdfunTpHq666qqrrrrqqv8T5vP51kMe8pBX/OAP/uAHc9VVV1111f9nBFddddVVV/2/9o7v+I6fZXu6dOnSPVx11VVXXXXVVf9nrFargzNnzjzowz/8w7+Lq6666qqr/j8juOqqq6666v+ta6655sHv9E7v9NnPeMYz/oqrrrrqqquuuur/nD/90z/9sRd7sRd77WuuuebBXHXVVVdd9f8V5fjx41x11VVXXfX/0yd90if91HK5vHj+/PnbuOqqq6666qqr/s+ZpmkopdRbbrnlJf/0T//0Z7jqqquuuur/I4Krrrrqqqv+X3qxF3ux137Ywx728s94xjP+mquuuuqqq6666v+sS5cu3fM6r/M67/1iL/Zir81VV1111VX/H6EHPehBXHXVVVdd9f/P537u5/7WNE3LS5cu3cNVV1111VVXXfV/2rXXXvvwEydO3PwhH/IhD+Gqq6666qr/bwiuuuqqq676f+d1Xud13vvGG2989KVLl+7hqquuuuqqq676P+/ee+99yjXXXPPg13md13lvrrrqqquu+v+G4Kqrrrrqqv933vEd3/GznvGMZ/wVV1111VVXXXXV/xt/+qd/+mPv+I7v+FlcddVVV131/w3BVVddddVV/6+84zu+42fZni5dunQPV1111VVXXXXV/xur1ergmmuuefCHf/iHfxdXXXXVVVf9f0Jw1VVXXXXV/xvXXHPNg9/pnd7ps5/xjGf8FVddddVVV1111f87f/qnf/pjL/7iL/46L/ZiL/baXHXVVVdd9f8FwVVXXXXVVf9vfPiHf/h3PeMZz/ir1Wp1wFVXXXXVVVdd9f/OarU6uHDhwm3v9E7v9FlcddVVV131/wXBVVddddVV/y+82Iu92Gs/7GEPe/lnPOMZf81VV1111VVXXfX/1qVLl+55sRd7sdd+sRd7sdfmqquuuuqq/w/Qgx70IK666qqrrvq/73M/93N/a5qm5aVLl+7hqquuuuqqq676f+3YsWPXXX/99Y/5kA/5kIdw1VVXXXXV/3UEV1111VVX/Z/3Oq/zOu994403PvrSpUv3cNVVV1111VVX/b936dKle6655poHv87rvM57c9VVV1111f91BFddddVVV/2f947v+I6f9YxnPOOvuOqqq6666qqrrnqmP/3TP/2xd3zHd/wsrrrqqquu+r+O4Kqrrrrqqv/TPvzDP/y7bE+XLl26h6uuuuqqq6666qpnWq1WB9dcc82DP/zDP/y7uOqqq6666v8ygquuuuqqq/7Puuaaax78Oq/zOu/9jGc846+46qqrrrrqqquuei5/+qd/+mMv9mIv9tov/uIv/tpcddVVV131fxXBVVddddVV/2d9+Id/+Hc94xnP+KvVanXAVVddddVVV1111XNZrVYHFy9evP0d3/EdP5urrrrqqqv+ryK46qqrrrrq/6QXe7EXe+2HPexhL/+MZzzjr7nqqquuuuqqq656AS5dunTPi73Yi73Wi73Yi702V1111VVX/V+EHvSgB3HVVVddddX/PZ/7uZ/7W9M0LS9dunQPV1111VVXXXXVVS/EsWPHrrv++usf8yEf8iEP4aqrrrrqqv9rCK666qqrrvo/53Ve53Xe+8Ybb3z0pUuX7uGqq6666qqrrrrqX3Dp0qV7rrnmmge/zuu8zntz1VVXXXXV/zXoQQ96EFddddVVV/3f8hM/8RP+m7/5m1+6dOnSPVx11VVXXXXVVVe9CObz+daDH/zgV/iQD/mQh3DVVVddddX/JQRXXXXVVVf9n/LhH/7h33Xvvfc+5dKlS/dw1VVXXXXVVVdd9SJarVYH11xzzYM//MM//Lu46qqrrrrq/xKCq6666qqr/s+45pprHvw6r/M67/3EJz7x97jqqquuuuqqq676V/rTP/3TH3uxF3ux136xF3ux1+aqq6666qr/Kwiuuuqqq676P+PDP/zDv+uJT3zi73HVVVddddVVV131b7BarQ4uXrx4+zu90zt9FlddddVVV/1fQXDVVVddddX/CS/2Yi/22g972MNe/t57730KV1111VVXXXXVVf9Gly5duufFXuzFXvvFX/zFX5urrrrqqqv+L0APetCDuOqqq6666n+/z/3cz/2taZqWly5duoerrrrqqquuuuqqf4djx45dd8MNNzz2gz/4gx/MVVddddVV/9sRXHXVVVdd9b/e67zO67z3jTfe+OhLly7dw1VXXXXVVVddddW/06VLl+45c+bMg17ndV7nvbnqqquuuup/O/SgBz2Iq6666qqr/nf7iZ/4Cf/N3/zNL126dOkerrrqqquuuuqqq/4DzOfzrQc/+MGv8CEf8iEP4aqrrrrqqv/NCK666qqrrvpf7cM//MO/6957733KpUuX7uGqq6666qqrrrrqP8hqtTq45pprHvzhH/7h38VVV1111VX/mxFcddVVV131v9aLvdiLvfbrvM7rvPcTn/jE3+Oqq6666qqrrrrqP9if/umf/tiLvdiLvfaLvdiLvTZXXXXVVVf9b0Vw1VVXXXXV/1rv9E7v9FlPfOITf4+rrrrqqquuuuqq/wSr1erg4sWLt7/TO73TZ3HVVVddddX/VgRXXXXVVVf9r/RiL/Zir/2whz3s5e+9996ncNVVV1111VVXXfWf5NKlS/e82Iu92Gu/2Iu92Gtz1VVXXXXV/0boQQ96EFddddVVV/3v803f9E1Pv/vuux9/6dKle7jqqquuuuqqq676T3Ts2LHrrr/++sd8yId8yEO46qqrrrrqfxuCq6666qqr/td5ndd5nffu+35+6dKle7jqqquuuuqqq676T3bp0qV7rrnmmge/0zu902dz1VVXXXXV/zYEV1111VVX/a/z4R/+4d/1pCc96fe46qqrrrrqqquu+i/yp3/6pz/2Oq/zOu99zTXXPJirrrrqqqv+NyG46qqrrrrqf5UP//AP/6577733KavV6oCrrrrqqquuuuqq/yKr1ergzJkzD3rHd3zHz+Kqq6666qr/TQiuuuqqq676X+PFXuzFXvt1Xud13vuJT3zi73HVVVddddVVV131X+xP//RPf+zFXuzFXvvFXuzFXpurrrrqqqv+tyC46qqrrrrqf413eqd3+qwnPvGJv8dVV1111VVXXXXVf4PVanVw8eLF29/pnd7ps7jqqquuuup/C4Krrrrqqqv+V3id13md977xxhsffe+99z6Fq6666qqrrrrqqv8mly5duufFXuzFXvvFXuzFXpurrrrqqqv+N0APetCDuOqqq6666n++b/qmb3r63Xff/fhLly7dw1VXXXXVVVddddV/o2PHjl13/fXXP+ZDPuRDHsJVV1111VX/0xFcddVVV131P947vuM7fpbt6dKlS/dw1VVXXXXVVVdd9d/s0qVL91xzzTUPfsd3fMfP4qqrrrrqqv/pCK666qqrrvof753e6Z0++xnPeMZfcdVVV1111VVXXfU/xJ/+6Z/+2Ou8zuu89zXXXPNgrrrqqquu+p+Mcvz4ca666qqrrvqf68M//MO/KyJ8/vz527jqqquuuuqqq676H2KapuGxj33s62xubh7/0z/905/hqquuuuqq/6kIrrrqqquu+h/rxV7sxV77dV7ndd77Gc94xl9z1VVXXXXVVVdd9T/Mn/7pn/7Y67zO67z3i73Yi702V1111VVX/U9FOX78OFddddVVV/3P9BEf8RHfdfHixdsPDw8vcNVVV1111VVXXfU/zDRNw2q1OnjsYx/7mr/1W7/1PVx11VVXXfU/EcFVV1111VX/I73O67zOe994442Pvvfee5/CVVddddVVV1111f9Qly5duufFXuzFXvt1Xud13purrrrqqqv+J0IPetCDuOqqq6666n+eb/qmb3r63Xff/fhLly7dw1VXXXXVVVddddX/YMeOHbvu+uuvf8yHfMiHPISrrrrqqqv+pyG46qqrrrrqf5x3fMd3/Czb06VLl+7hqquuuuqqq6666n+4S5cu3XPNNdc8+B3f8R0/i6uuuuqqq/6nIbjqqquuuup/nHd6p3f67Gc84xl/xVVXXXXVVVddddX/En/6p3/6Y6/zOq/z3tdcc82Dueqqq6666n8SyvHjx7nqqquuuup/jg//8A//rojw+fPnb+Oqq6666qqrrrrqf4lpmobHPvaxr7O5uXn8T//0T3+Gq6666qqr/qcguOqqq6666n+MF3uxF3vt13md13nvZzzjGX/NVVddddVVV1111f8yf/qnf/pjr/M6r/PeL/7iL/7aXHXVVVdd9T8FetCDHsRVV1111VX/M3zu537ub9Vay7333vsUrrrqqquuuuqqq/4Xuvbaax9+8uTJWz74gz/4wVx11VVXXfU/AcFVV1111VX/I7zO67zOe994442Pvvfee5/CVVddddVVV1111f9S995771POnDnzoNd5ndd5b6666qqrrvqfgOCqq6666qr/Ed7xHd/xs57xjGf8FVddddVVV1111VX/y/3pn/7pj73jO77jZ3HVVVddddX/BARXXXXVVVf9t3vHd3zHz7I9Xbp06R6uuuqqq6666qqr/pdbrVYH11xzzYM//MM//Lu46qqrrrrqvxvBVVddddVV/62uueaaB7/TO73TZz/jGc/4K6666qqrrrrqqqv+j/jTP/3TH3uxF3ux177mmmsezFVXXXXVVf+dKMePH+eqq6666qr/Pp/0SZ/0U8vl8uL58+dv46qrrrrqqquuuur/iGmahsc+9rGvs7m5efxP//RPf4arrrrqqqv+uxBcddVVV1313+bFXuzFXvthD3vYyz/jGc/4a6666qqrrrrqqqv+j/nTP/3TH3ud13md936xF3ux1+aqq6666qr/LuhBD3oQV1111VVX/ff43M/93N+apml56dKle7jqqquuuuqqq676P+jaa699+IkTJ27+kA/5kIdw1VVXXXXVfweCq6666qqr/lu8zuu8znvfeOONj7506dI9XHXVVVddddVVV/0fde+99z7lmmuuefDrvM7rvDdXXXXVVVf9d0APetCDuOqqq6666r/eN33TNz397rvvfvylS5fu4aqrrrrqqquuuur/sPl8vvWQhzzkFT/4gz/4wVx11VVXXfVfjeCqq6666qr/cu/4ju/4WbanS5cu3cNVV1111VVXXXXV/3Gr1ergzJkzD/rwD//w7+Kqq6666qr/agRXXXXVVVf9l7rmmmse/E7v9E6f/YxnPOOvuOqqq6666qqrrvp/4k//9E9/7MVe7MVe+5prrnkwV1111VVX/VeiHD9+nKuuuuqqq/7rfNInfdJPLZfLi+fPn7+Nq6666qqrrrrqqv8npmkaSin1lltueck//dM//Rmuuuqqq676r0Jw1VVXXXXVf5kXe7EXe+2HPexhL/+MZzzjr7nqqquuuuqqq676f+bSpUv3vM7rvM57v9iLvdhrc9VVV1111X8V9KAHPYirrrrqqqv+a3zu537ub03TtLx06dI9XHXVVVddddVVV/0/dO211z78xIkTN3/Ih3zIQ7jqqquuuuq/AsFVV1111VX/JV7ndV7nvW+88cZHX7p06R6uuuqqq6666qqr/p+69957n3LNNdc8+HVe53Xem6uuuuqqq/4rEFx11VVXXfVf4h3f8R0/6xnPeMZfcdVVV1111VVXXfX/3J/+6Z/+2Du+4zt+FlddddVVV/1XILjqqquuuuo/3Tu+4zt+lu3p0qVL93DVVVddddVVV131/9xqtTq45pprHvzhH/7h38VVV1111VX/2Qiuuuqqq676T3XNNdc8+J3e6Z0++xnPeMZfcdVVV1111VVXXXXVZX/6p3/6Yy/+4i/+Oi/2Yi/22lx11VVXXfWfieCqq6666qr/VB/+4R/+Xc94xjP+arVaHXDVVVddddVVV1111WWr1ergwoULt73TO73TZ3HVVVddddV/JoKrrrrqqqv+07zYi73Yaz/sYQ97+Wc84xl/zVVXXXXVVVddddVVz+HSpUv3vNiLvdhrv9iLvdhrc9VVV1111X8W9KAHPYirrrrqqqv+c3zu537ub03TtLx06dI9XHXVVVddddVVV131PI4dO3bd9ddf/5gP+ZAPeQhXXXXVVVf9ZyC46qqrrrrqP8XrvM7rvPeNN9746EuXLt3DVVddddVVV1111VXP16VLl+655pprHvw6r/M6781VV1111VX/GdCDHvQgrrrqqquu+o/3Ez/xE/6bv/mbX7p06dI9XHXVVVddddVVV131As3n860HP/jBr/AhH/IhD+Gqq6666qr/aARXXXXVVVf9h/vwD//w77r33nufcunSpXu46qqrrrrqqquuuuqFWq1WB9dcc82DP/zDP/y7uOqqq6666j8awVVXXXXVVf+hrrnmmge/zuu8zns/8YlP/D2uuuqqq6666qqrrnqR/Omf/umPvdiLvdhrv/iLv/hrc9VVV1111X8kgquuuuqqq/5DffiHf/h3PfGJT/w9rrrqqquuuuqqq656ka1Wq4OLFy/e/o7v+I6fzVVXXXXVVf+RCK666qqrrvoP82Iv9mKv/bCHPezl77333qdw1VVXXXXVVVddddW/yqVLl+55sRd7sdd6sRd7sdfmqquuuuqq/yjoQQ96EFddddVVV/3H+NzP/dzfmqZpeenSpXu46qqrrrrqqquuuupf7dixY9ddf/31j/mQD/mQh3DVVVddddV/BIKrrrrqqqv+Q7zO67zOe994442PvnTp0j1cddVVV1111VVXXfVvcunSpXuuueaaB7/O67zOe3PVVVddddV/BPSgBz2Iq6666qqr/v1+4id+wn/zN3/zS5cuXbqHq6666qqrrrrqqqv+zebz+daDH/zgV/iQD/mQh3DVVVddddW/F8FVV1111VX/bh/+4R/+Xffee+9TLl26dA9XXXXVVVddddVVV/27rFarg2uuuebBH/7hH/5dXHXVVVdd9e9FcNVVV1111b/LNddc8+DXeZ3Xee8nPvGJv8dVV1111VVXXXXVVf8h/vRP//THXuzFXuy1X+zFXuy1ueqqq6666t+D4Kqrrrrqqn+XD//wD/+uJz7xib/HVVddddVVV1111VX/YVar1cHFixdvf6d3eqfP4qqrrrrqqn8Pgquuuuqqq/7NXuzFXuy1H/awh738vffe+xSuuuqqq6666qqrrvoPdenSpXte7MVe7LVf/MVf/LW56qqrrrrq3wo96EEP4qqrrrrqqn+bz/3cz/2taZqWly5duoerrrrqqquuuuqqq/7DHTt27LobbrjhsR/8wR/8YK666qqrrvq3ILjqqquuuurf5HVe53Xe+8Ybb3z0pUuX7uGqq6666qqrrrrqqv8Uly5duufMmTMPesd3fMfP4qqrrrrqqn8Lgquuuuqqq/5NPvzDP/y7nvGMZ/wVV1111VVXXXXVVVf9p/rTP/3TH3ud13md977mmmsezFVXXXXVVf9aBFddddVVV/2rffiHf/h33XvvvU+5dOnSPVx11VVXXXXVVVdd9Z9qtVodXHPNNQ9+x3d8x8/iqquuuuqqfy2Cq6666qqr/lVe7MVe7LVf53Ve572f+MQn/h5XXXXVVVddddVVV/2X+NM//dMfe7EXe7HXfrEXe7HX5qqrrrrqqn8Ngquuuuqqq/5V3umd3umznvjEJ/4eV1111VVXXXXVVVf9l1mtVgcXL168/Z3e6Z0+i6uuuuqqq/410IMe9CCuuuqqq6560V1zzTUP/qZv+qanc9VVV1111VVXXXXVf7nP/MzPfJ1/+Id/+G2uuuqqq656UVG56qqrrrrqX+3rv/7r34er/rUMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnAwL4h3/4h9/mqquuuuqqfw30oAc9iKuuuuqqq6666qqrrrrqqquuuuqqq6666v8kKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/AvVecvyV6pI4AAAAAElFTkSuQmCC) -![Rendered example of std::Sketch 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABMiklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKn4gueWQqZ4gAAAABJRU5ErkJggg==) +![Rendered example of std::types::Sketch 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABMiklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKn4gueWQqZ4gAAAABJRU5ErkJggg==) diff --git a/docs/kcl/types/Solid.md b/docs/kcl/types/Solid.md index 8090d40ab..99122fc63 100644 --- a/docs/kcl/types/Solid.md +++ b/docs/kcl/types/Solid.md @@ -1,5 +1,5 @@ --- -title: "std::Solid" +title: "std::types::Solid" excerpt: "A solid is a collection of extrude surfaces." layout: manual --- @@ -52,9 +52,9 @@ and the solid will be updated. ### Examples -![Rendered example of std::Solid 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD2iklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquu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VVddddVVV131fxKVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6v4R2FoY8z/6iTrAAAAAElFTkSuQmCC) +![Rendered example of std::types::Solid 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD2iklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquu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VVddddVVV131fxKVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6v4R2FoY8z/6iTrAAAAAElFTkSuQmCC) -![Rendered example of std::Solid 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABMiklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKn4gueWQqZ4gAAAABJRU5ErkJggg==) +![Rendered example of std::types::Solid 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABMiklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKn4gueWQqZ4gAAAABJRU5ErkJggg==) diff --git a/docs/kcl/types/tag.md b/docs/kcl/types/tag.md index 376c631c8..f224f200d 100644 --- a/docs/kcl/types/tag.md +++ b/docs/kcl/types/tag.md @@ -12,7 +12,7 @@ The syntax for declaring a tag is `$myTag` you would use it in the following way: ```js -startSketchOn('XZ') +startSketchOn(XZ) |> startProfileAt(origin, %) |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) |> angledLine( @@ -46,7 +46,7 @@ However if the code was written like this: ```js fn rect(origin) { - return startSketchOn('XZ') + return startSketchOn(XZ) |> startProfileAt(origin, %) |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) |> angledLine( @@ -75,7 +75,7 @@ For example the following code works. ```js fn rect(origin) { - return startSketchOn('XZ') + return startSketchOn(XZ) |> startProfileAt(origin, %) |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) |> angledLine( diff --git a/rust/kcl-lib/src/execution/exec_ast.rs b/rust/kcl-lib/src/execution/exec_ast.rs index edb8ddc80..bef1919b7 100644 --- a/rust/kcl-lib/src/execution/exec_ast.rs +++ b/rust/kcl-lib/src/execution/exec_ast.rs @@ -170,20 +170,23 @@ impl ExecutorContext { self.exec_module_for_items(module_id, exec_state, source_range).await?; for import_item in items { // Extract the item from the module. - let item = exec_state - .stack() - .memory + let mem = &exec_state.stack().memory; + let mut value = mem .get_from(&import_item.name.name, env_ref, import_item.into(), 0) - .map_err(|_err| { - KclError::UndefinedValue(KclErrorDetails { - message: format!("{} is not defined in module", import_item.name.name), - source_ranges: vec![SourceRange::from(&import_item.name)], - }) - })? - .clone(); - // Check that the item is allowed to be imported. - if !module_exports.contains(&import_item.name.name) { - return Err(KclError::Semantic(KclErrorDetails { + .cloned(); + let ty_name = format!("{}{}", memory::TYPE_PREFIX, import_item.name.name); + let mut ty = mem.get_from(&ty_name, env_ref, import_item.into(), 0).cloned(); + + if value.is_err() && ty.is_err() { + return Err(KclError::UndefinedValue(KclErrorDetails { + message: format!("{} is not defined in module", import_item.name.name), + source_ranges: vec![SourceRange::from(&import_item.name)], + })); + } + + // Check that the item is allowed to be imported (in at least one namespace). + if value.is_ok() && !module_exports.contains(&import_item.name.name) { + value = Err(KclError::Semantic(KclErrorDetails { message: format!( "Cannot import \"{}\" from module because it is not exported. Add \"export\" before the definition to export it.", import_item.name.name @@ -192,18 +195,45 @@ impl ExecutorContext { })); } - // Add the item to the current module. - exec_state.mut_stack().add( - import_item.identifier().to_owned(), - item, - SourceRange::from(&import_item.name), - )?; + if ty.is_ok() && !module_exports.contains(&ty_name) { + ty = Err(KclError::Semantic(KclErrorDetails { + message: String::new(), + source_ranges: vec![], + })); + } - if let ItemVisibility::Export = import_stmt.visibility { - exec_state - .mod_local - .module_exports - .push(import_item.identifier().to_owned()); + if value.is_err() && ty.is_err() { + return value.map(Option::Some); + } + + // Add the item to the current module. + if let Ok(value) = value { + exec_state.mut_stack().add( + import_item.identifier().to_owned(), + value, + SourceRange::from(&import_item.name), + )?; + + if let ItemVisibility::Export = import_stmt.visibility { + exec_state + .mod_local + .module_exports + .push(import_item.identifier().to_owned()); + } + } + + if let Ok(ty) = ty { + let ty_name = format!("{}{}", memory::TYPE_PREFIX, import_item.identifier()); + // Add the item to the current module. + exec_state.mut_stack().add( + ty_name.clone(), + ty, + SourceRange::from(&import_item.name), + )?; + + if let ItemVisibility::Export = import_stmt.visibility { + exec_state.mod_local.module_exports.push(ty_name); + } } } } @@ -298,19 +328,20 @@ impl ExecutorContext { value: TypeDef::RustRepr(t, props), meta: vec![metadata], }; + let name_in_mem = format!("{}{}", memory::TYPE_PREFIX, ty.name.name); exec_state .mut_stack() - .add( - format!("{}{}", memory::TYPE_PREFIX, ty.name.name), - value, - metadata.source_range, - ) + .add(name_in_mem.clone(), value, metadata.source_range) .map_err(|_| { KclError::Semantic(KclErrorDetails { message: format!("Redefinition of type {}.", ty.name.name), source_ranges: vec![metadata.source_range], }) })?; + + if let ItemVisibility::Export = ty.visibility { + exec_state.mod_local.module_exports.push(name_in_mem); + } } // Do nothing for primitive types, they get special treatment and their declarations are just for documentation. annotations::Impl::Primitive => {} @@ -327,19 +358,20 @@ impl ExecutorContext { ), meta: vec![metadata], }; + let name_in_mem = format!("{}{}", memory::TYPE_PREFIX, ty.name.name); exec_state .mut_stack() - .add( - format!("{}{}", memory::TYPE_PREFIX, ty.name.name), - value, - metadata.source_range, - ) + .add(name_in_mem.clone(), value, metadata.source_range) .map_err(|_| { KclError::Semantic(KclErrorDetails { message: format!("Redefinition of type {}.", ty.name.name), source_ranges: vec![metadata.source_range], }) })?; + + if let ItemVisibility::Export = ty.visibility { + exec_state.mod_local.module_exports.push(name_in_mem); + } } None => { return Err(KclError::Semantic(KclErrorDetails { @@ -485,7 +517,7 @@ impl ExecutorContext { message: "Cannot import items from foreign modules".to_owned(), source_ranges: vec![geom.source_range], })), - ModuleRepr::Dummy => unreachable!(), + ModuleRepr::Dummy => unreachable!("Looking up {}, but it is still being interpreted", path), }; exec_state.global.module_infos[&module_id].restore_repr(repr); @@ -559,10 +591,10 @@ impl ExecutorContext { // It was an import cycle. Keep the original message. err.override_source_ranges(vec![source_range]) } else { + // TODO would be great to have line/column for the underlying error here KclError::Semantic(KclErrorDetails { message: format!( - "Error loading imported file. Open it to view more details. {}: {}", - path, + "Error loading imported file ({path}). Open it to view more details.\n {}", err.message() ), source_ranges: vec![source_range], @@ -2139,6 +2171,34 @@ fn assign_args_to_params_kw( Ok(()) } +fn coerce_result_type( + result: Result, KclError>, + function_expression: NodeRef<'_, FunctionExpression>, + exec_state: &mut ExecState, +) -> Result, KclError> { + if let Ok(Some(val)) = result { + if let Some(ret_ty) = &function_expression.return_type { + let ty = RuntimeType::from_parsed(ret_ty.inner.clone(), exec_state, ret_ty.as_source_range()) + .map_err(|e| KclError::Semantic(e.into()))?; + let val = val.coerce(&ty, exec_state).map_err(|_| { + KclError::Semantic(KclErrorDetails { + message: format!( + "This function requires its result to be of type `{}`, but found {}", + ty.human_friendly_type(), + val.human_friendly_type(), + ), + source_ranges: ret_ty.as_source_ranges(), + }) + })?; + Ok(Some(val)) + } else { + Ok(Some(val)) + } + } else { + result + } +} + async fn call_user_defined_function( args: Vec, memory: EnvironmentRef, @@ -2159,13 +2219,16 @@ async fn call_user_defined_function( let result = ctx .exec_block(&function_expression.body, exec_state, BodyType::Block) .await; - let result = result.map(|_| { + let mut result = result.map(|_| { exec_state .stack() .get(memory::RETURN_NAME, function_expression.as_source_range()) .ok() .cloned() }); + + result = coerce_result_type(result, function_expression, exec_state); + // Restore the previous memory. exec_state.mut_stack().pop_env(); @@ -2193,13 +2256,16 @@ async fn call_user_defined_function_kw( let result = ctx .exec_block(&function_expression.body, exec_state, BodyType::Block) .await; - let result = result.map(|_| { + let mut result = result.map(|_| { exec_state .stack() .get(memory::RETURN_NAME, function_expression.as_source_range()) .ok() .cloned() }); + + result = coerce_result_type(result, function_expression, exec_state); + // Restore the previous memory. exec_state.mut_stack().pop_env(); @@ -2695,6 +2761,27 @@ foo(x = { direction = [0, 0], origin = [0, 0]}) } foo(x = { direction = [0, 0], origin = [0, 0]}) +"#; + + parse_execute(program).await.unwrap_err(); + } + + #[tokio::test(flavor = "multi_thread")] + async fn coerce_return() { + let program = r#"fn foo(): number(mm) { + return 42 +} + +a = foo() +"#; + + parse_execute(program).await.unwrap(); + + let program = r#"fn foo(): number(mm) { + return { bar: 42 } +} + +a = foo() "#; parse_execute(program).await.unwrap_err(); diff --git a/rust/kcl-lib/src/modules.rs b/rust/kcl-lib/src/modules.rs index baf61f2bf..bd6a869f4 100644 --- a/rust/kcl-lib/src/modules.rs +++ b/rust/kcl-lib/src/modules.rs @@ -90,6 +90,7 @@ pub(crate) fn read_std(mod_name: &str) -> Option<&'static str> { "math" => Some(include_str!("../std/math.kcl")), "sketch" => Some(include_str!("../std/sketch.kcl")), "turns" => Some(include_str!("../std/turns.kcl")), + "types" => Some(include_str!("../std/types.kcl")), _ => None, } } diff --git a/rust/kcl-lib/src/parsing/ast/types/mod.rs b/rust/kcl-lib/src/parsing/ast/types/mod.rs index f7938a293..94113ac89 100644 --- a/rust/kcl-lib/src/parsing/ast/types/mod.rs +++ b/rust/kcl-lib/src/parsing/ast/types/mod.rs @@ -450,7 +450,6 @@ impl Program { for item in &self.body { let r = item.comment_range(); - eprintln!("item {r:?}"); if pos >= r.0 && pos < r.1 { return true; } diff --git a/rust/kcl-lib/src/std/mod.rs b/rust/kcl-lib/src/std/mod.rs index 09f34493d..684b68cbb 100644 --- a/rust/kcl-lib/src/std/mod.rs +++ b/rust/kcl-lib/src/std/mod.rs @@ -217,14 +217,14 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp pub(crate) fn std_ty(path: &str, fn_name: &str) -> (PrimitiveType, StdFnProps) { match (path, fn_name) { - ("prelude", "Sketch") => (PrimitiveType::Sketch, StdFnProps::default("std::Sketch")), - ("prelude", "Solid") => (PrimitiveType::Solid, StdFnProps::default("std::Solid")), - ("prelude", "Plane") => (PrimitiveType::Plane, StdFnProps::default("std::Plane")), - ("prelude", "Face") => (PrimitiveType::Face, StdFnProps::default("std::Face")), - ("prelude", "Helix") => (PrimitiveType::Helix, StdFnProps::default("std::Helix")), - ("prelude", "Edge") => (PrimitiveType::Edge, StdFnProps::default("std::Edge")), - ("prelude", "Axis2d") => (PrimitiveType::Axis2d, StdFnProps::default("std::Axis2d")), - ("prelude", "Axis3d") => (PrimitiveType::Axis3d, StdFnProps::default("std::Axis3d")), + ("types", "Sketch") => (PrimitiveType::Sketch, StdFnProps::default("std::types::Sketch")), + ("types", "Solid") => (PrimitiveType::Solid, StdFnProps::default("std::types::Solid")), + ("types", "Plane") => (PrimitiveType::Plane, StdFnProps::default("std::types::Plane")), + ("types", "Face") => (PrimitiveType::Face, StdFnProps::default("std::types::Face")), + ("types", "Helix") => (PrimitiveType::Helix, StdFnProps::default("std::types::Helix")), + ("types", "Edge") => (PrimitiveType::Edge, StdFnProps::default("std::types::Edge")), + ("types", "Axis2d") => (PrimitiveType::Axis2d, StdFnProps::default("std::types::Axis2d")), + ("types", "Axis3d") => (PrimitiveType::Axis3d, StdFnProps::default("std::types::Axis3d")), _ => unreachable!(), } } diff --git a/rust/kcl-lib/std/math.kcl b/rust/kcl-lib/std/math.kcl index 0dbc49412..f692806be 100644 --- a/rust/kcl-lib/std/math.kcl +++ b/rust/kcl-lib/std/math.kcl @@ -1,6 +1,8 @@ @no_std @settings(defaultLengthUnit = mm) +import Point2d from "std::types" + /// The value of `pi`, Archimedes’ constant (π). /// /// ``` diff --git a/rust/kcl-lib/std/prelude.kcl b/rust/kcl-lib/std/prelude.kcl index b71dc1430..ed1c5789a 100644 --- a/rust/kcl-lib/std/prelude.kcl +++ b/rust/kcl-lib/std/prelude.kcl @@ -3,253 +3,11 @@ // Note that everything in the prelude is treated as exported. +export import * from "std::types" export import * from "std::math" export import * from "std::sketch" export import "std::turns" -/// A number -/// -/// May be signed or unsigned, an integer or decimal value. -/// -/// You may see a number type with units, e.g., `number(mm)`. These are currently experimental. -@(impl = primitive) -export type number(unit) - -/// A boolean value. -/// -/// `true` or `false` -@(impl = primitive) -export type bool - -/// A sequence of characters -/// -/// Strings may be delimited using either single or double quotes. -/// -/// ```kcl,norun -/// "hello," -/// 'world!' -/// ``` -@(impl = primitive) -export type string - -/// Tags are used to give a name (tag) to a specific path. -/// -/// ### Tag Declaration -/// -/// The syntax for declaring a tag is `$myTag` you would use it in the following -/// way: -/// -/// ```norun,inline -/// startSketchOn('XZ') -/// |> startProfileAt(origin, %) -/// |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) -/// |> angledLine( -/// angle = segAng(rectangleSegmentA001) - 90, -/// length = 196.99, -/// tag = $rectangleSegmentB001, -/// ) -/// |> angledLine( -/// angle = segAng(rectangleSegmentA001), -/// length = -segLen(rectangleSegmentA001), -/// tag = $rectangleSegmentC001, -/// ) -/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) -/// |> close() -/// ``` -/// -/// ### Tag Identifier -/// -/// As per the example above you can use the tag identifier to get a reference to the -/// tagged object. The syntax for this is `myTag`. -/// -/// In the example above we use the tag identifier to get the angle of the segment -/// `segAng(rectangleSegmentA001, %)`. -/// -/// ### Tag Scope -/// -/// Tags are scoped globally if in the root context meaning in this example you can -/// use the tag `rectangleSegmentA001` in any function or expression in the file. -/// -/// However if the code was written like this: -/// -/// ```norun,inline -/// fn rect(origin) { -/// return startSketchOn('XZ') -/// |> startProfileAt(origin, %) -/// |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) -/// |> angledLine( -/// angle = segAng(rectangleSegmentA001) - 90, -/// length = 196.99, -/// tag = $rectangleSegmentB001) -/// |> angledLine( -/// angle = segAng(rectangleSegmentA001), -/// length = -segLen(rectangleSegmentA001), -/// tag = $rectangleSegmentC001 -/// ) -/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) -/// |> close() -/// } -/// -/// rect([0, 0]) -/// rect([20, 0]) -/// ``` -/// -/// Those tags would only be available in the `rect` function and not globally. -/// -/// However you likely want to use those tags somewhere outside the `rect` function. -/// -/// Tags are accessible through the sketch group they are declared in. -/// For example the following code works. -/// -/// ```norun,inline -/// fn rect(origin) { -/// return startSketchOn('XZ') -/// |> startProfileAt(origin, %) -/// |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) -/// |> angledLine( -/// angle = segAng(rectangleSegmentA001) - 90, -/// length = 196.99 -/// , %, $rectangleSegmentB001) -/// |> angledLine( -/// angle = segAng(rectangleSegmentA001), -/// length = -segLen(rectangleSegmentA001) -/// , %, $rectangleSegmentC001) -/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) -/// |> close() -/// } -/// -/// rect([0, 0]) -/// myRect = rect([20, 0]) -/// -/// myRect -/// |> extrude(length = 10) -/// |> fillet(radius = 0.5, tags = [myRect.tags.rectangleSegmentA001]) -/// ``` -/// -/// See how we use the tag `rectangleSegmentA001` in the `fillet` function outside -/// the `rect` function. This is because the `rect` function is returning the -/// sketch group that contains the tags. -@(impl = primitive) -export type tag - -/// A plane. -@(impl = std_rust) -export type Plane - -/// A sketch is a collection of paths. -/// -/// When you define a sketch to a variable like: -/// -/// ```kcl,inline -/// mySketch = startSketchOn('XY') -/// |> startProfileAt([-12, 12], %) -/// |> line(end = [24, 0]) -/// |> line(end = [0, -24]) -/// |> line(end = [-24, 0]) -/// |> close() -/// ``` -/// -/// The `mySketch` variable will be an executed `Sketch` object. Executed being past -/// tense, because the engine has already executed the commands to create the sketch. -/// -/// The previous sketch commands will never be executed again, in this case. -/// -/// If you would like to encapsulate the commands to create the sketch any time you call it, -/// you can use a function. -/// -/// ```kcl,inline -/// fn createSketch() { -/// return startSketchOn('XY') -/// |> startProfileAt([-12, 12], %) -/// |> line(end = [24, 0]) -/// |> line(end = [0, -24]) -/// |> line(end = [-24, 0]) -/// |> close() -/// } -/// ``` -/// -/// Now, every time you call `createSketch()`, the commands will be -/// executed and a new sketch will be created. -/// -/// When you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning -/// the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed -/// again. -/// -/// You can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and -/// the sketch will be updated. -@(impl = std_rust) -export type Sketch - -/// A solid is a collection of extrude surfaces. -/// -/// When you define a solid to a variable like: -/// -/// ```kcl,inline -/// myPart = startSketchOn('XY') -/// |> startProfileAt([-12, 12], %) -/// |> line(end = [24, 0]) -/// |> line(end = [0, -24]) -/// |> line(end = [-24, 0]) -/// |> close() -/// |> extrude(length = 6) -/// ``` -/// -/// The `myPart` variable will be an executed `Solid` object. Executed being past -/// tense, because the engine has already executed the commands to create the solid. -/// -/// The previous solid commands will never be executed again, in this case. -/// -/// If you would like to encapsulate the commands to create the solid any time you call it, -/// you can use a function. -/// -/// ```kcl,inline -/// fn createPart() { -/// return startSketchOn('XY') -/// |> startProfileAt([-12, 12], %) -/// |> line(end = [24, 0]) -/// |> line(end = [0, -24]) -/// |> line(end = [-24, 0]) -/// |> close() -/// |> extrude(length = 6) -/// } -/// ``` -/// -/// Now, every time you call `createPart()`, the commands will be -/// executed and a new solid will be created. -/// -/// When you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning -/// the executed solid to that variable. Meaning that the solid `myPart` will not be executed -/// again. -/// -/// You can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. -/// and the solid will be updated. -@(impl = std_rust) -export type Solid - -/// A face. -@(impl = std_rust) -export type Face - -/// A helix. -@(impl = std_rust) -export type Helix - -/// The edge of a solid. -@(impl = std_rust) -export type Edge - -/// A point in two dimensional space. -/// -/// `Point2d` is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value -/// with type `Point2d`, use an array, e.g., `[0, 0]` or `[5.0, 3.14]`. -export type Point2d = [number(Length); 2] - -/// A point in three dimensional space. -/// -/// `Point3d` is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value -/// with type `Point3d`, use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`. -export type Point3d = [number(Length); 3] - export XY = { origin = { x = 0, y = 0, z = 0 }, xAxis = { x = 1, y = 0, z = 0 }, @@ -271,14 +29,6 @@ export YZ = { zAxis = { x = 1, y = 0, z = 0 }, }: Plane -/// An infinite line in 2d space. -@(impl = std_rust) -export type Axis2d - -/// An infinite line in 3d space. -@(impl = std_rust) -export type Axis3d - export X = { origin = [0, 0, 0], direction = [1, 0, 0], diff --git a/rust/kcl-lib/std/types.kcl b/rust/kcl-lib/std/types.kcl new file mode 100644 index 000000000..69c51ba0c --- /dev/null +++ b/rust/kcl-lib/std/types.kcl @@ -0,0 +1,253 @@ +@no_std +@settings(defaultLengthUnit = mm) + +/// A number +/// +/// May be signed or unsigned, an integer or decimal value. +/// +/// You may see a number type with units, e.g., `number(mm)`. These are currently experimental. +@(impl = primitive) +export type number(unit) + +/// A boolean value. +/// +/// `true` or `false` +@(impl = primitive) +export type bool + +/// A sequence of characters +/// +/// Strings may be delimited using either single or double quotes. +/// +/// ```kcl,norun +/// "hello," +/// 'world!' +/// ``` +@(impl = primitive) +export type string + +/// Tags are used to give a name (tag) to a specific path. +/// +/// ### Tag Declaration +/// +/// The syntax for declaring a tag is `$myTag` you would use it in the following +/// way: +/// +/// ```norun,inline +/// startSketchOn(XZ) +/// |> startProfileAt(origin, %) +/// |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) +/// |> angledLine( +/// angle = segAng(rectangleSegmentA001) - 90, +/// length = 196.99, +/// tag = $rectangleSegmentB001, +/// ) +/// |> angledLine( +/// angle = segAng(rectangleSegmentA001), +/// length = -segLen(rectangleSegmentA001), +/// tag = $rectangleSegmentC001, +/// ) +/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) +/// |> close() +/// ``` +/// +/// ### Tag Identifier +/// +/// As per the example above you can use the tag identifier to get a reference to the +/// tagged object. The syntax for this is `myTag`. +/// +/// In the example above we use the tag identifier to get the angle of the segment +/// `segAng(rectangleSegmentA001, %)`. +/// +/// ### Tag Scope +/// +/// Tags are scoped globally if in the root context meaning in this example you can +/// use the tag `rectangleSegmentA001` in any function or expression in the file. +/// +/// However if the code was written like this: +/// +/// ```norun,inline +/// fn rect(origin) { +/// return startSketchOn(XZ) +/// |> startProfileAt(origin, %) +/// |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) +/// |> angledLine( +/// angle = segAng(rectangleSegmentA001) - 90, +/// length = 196.99, +/// tag = $rectangleSegmentB001) +/// |> angledLine( +/// angle = segAng(rectangleSegmentA001), +/// length = -segLen(rectangleSegmentA001), +/// tag = $rectangleSegmentC001 +/// ) +/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) +/// |> close() +/// } +/// +/// rect([0, 0]) +/// rect([20, 0]) +/// ``` +/// +/// Those tags would only be available in the `rect` function and not globally. +/// +/// However you likely want to use those tags somewhere outside the `rect` function. +/// +/// Tags are accessible through the sketch group they are declared in. +/// For example the following code works. +/// +/// ```norun,inline +/// fn rect(origin) { +/// return startSketchOn(XZ) +/// |> startProfileAt(origin, %) +/// |> angledLine(angle = 0, length = 191.26, tag = $rectangleSegmentA001) +/// |> angledLine( +/// angle = segAng(rectangleSegmentA001) - 90, +/// length = 196.99 +/// , %, $rectangleSegmentB001) +/// |> angledLine( +/// angle = segAng(rectangleSegmentA001), +/// length = -segLen(rectangleSegmentA001) +/// , %, $rectangleSegmentC001) +/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) +/// |> close() +/// } +/// +/// rect([0, 0]) +/// myRect = rect([20, 0]) +/// +/// myRect +/// |> extrude(length = 10) +/// |> fillet(radius = 0.5, tags = [myRect.tags.rectangleSegmentA001]) +/// ``` +/// +/// See how we use the tag `rectangleSegmentA001` in the `fillet` function outside +/// the `rect` function. This is because the `rect` function is returning the +/// sketch group that contains the tags. +@(impl = primitive) +export type tag + +/// A plane. +@(impl = std_rust) +export type Plane + +/// A sketch is a collection of paths. +/// +/// When you define a sketch to a variable like: +/// +/// ```kcl,inline +/// mySketch = startSketchOn(XY) +/// |> startProfileAt([-12, 12], %) +/// |> line(end = [24, 0]) +/// |> line(end = [0, -24]) +/// |> line(end = [-24, 0]) +/// |> close() +/// ``` +/// +/// The `mySketch` variable will be an executed `Sketch` object. Executed being past +/// tense, because the engine has already executed the commands to create the sketch. +/// +/// The previous sketch commands will never be executed again, in this case. +/// +/// If you would like to encapsulate the commands to create the sketch any time you call it, +/// you can use a function. +/// +/// ```kcl,inline +/// fn createSketch() { +/// return startSketchOn(XY) +/// |> startProfileAt([-12, 12], %) +/// |> line(end = [24, 0]) +/// |> line(end = [0, -24]) +/// |> line(end = [-24, 0]) +/// |> close() +/// } +/// ``` +/// +/// Now, every time you call `createSketch()`, the commands will be +/// executed and a new sketch will be created. +/// +/// When you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning +/// the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed +/// again. +/// +/// You can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and +/// the sketch will be updated. +@(impl = std_rust) +export type Sketch + +/// A solid is a collection of extrude surfaces. +/// +/// When you define a solid to a variable like: +/// +/// ```kcl,inline +/// myPart = startSketchOn('XY') +/// |> startProfileAt([-12, 12], %) +/// |> line(end = [24, 0]) +/// |> line(end = [0, -24]) +/// |> line(end = [-24, 0]) +/// |> close() +/// |> extrude(length = 6) +/// ``` +/// +/// The `myPart` variable will be an executed `Solid` object. Executed being past +/// tense, because the engine has already executed the commands to create the solid. +/// +/// The previous solid commands will never be executed again, in this case. +/// +/// If you would like to encapsulate the commands to create the solid any time you call it, +/// you can use a function. +/// +/// ```kcl,inline +/// fn createPart() { +/// return startSketchOn('XY') +/// |> startProfileAt([-12, 12], %) +/// |> line(end = [24, 0]) +/// |> line(end = [0, -24]) +/// |> line(end = [-24, 0]) +/// |> close() +/// |> extrude(length = 6) +/// } +/// ``` +/// +/// Now, every time you call `createPart()`, the commands will be +/// executed and a new solid will be created. +/// +/// When you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning +/// the executed solid to that variable. Meaning that the solid `myPart` will not be executed +/// again. +/// +/// You can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. +/// and the solid will be updated. +@(impl = std_rust) +export type Solid + +/// A face. +@(impl = std_rust) +export type Face + +/// A helix. +@(impl = std_rust) +export type Helix + +/// The edge of a solid. +@(impl = std_rust) +export type Edge + +/// A point in two dimensional space. +/// +/// `Point2d` is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value +/// with type `Point2d`, use an array, e.g., `[0, 0]` or `[5.0, 3.14]`. +export type Point2d = [number(Length); 2] + +/// A point in three dimensional space. +/// +/// `Point3d` is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value +/// with type `Point3d`, use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`. +export type Point3d = [number(Length); 3] + +/// An infinite line in 2d space. +@(impl = std_rust) +export type Axis2d + +/// An infinite line in 3d space. +@(impl = std_rust) +export type Axis3d diff --git a/rust/kcl-lib/tests/add_lots/artifact_commands.snap b/rust/kcl-lib/tests/add_lots/artifact_commands.snap index c01397146..7d9463794 100644 --- a/rust/kcl-lib/tests/add_lots/artifact_commands.snap +++ b/rust/kcl-lib/tests/add_lots/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands add_lots.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/angled_line/artifact_commands.snap b/rust/kcl-lib/tests/angled_line/artifact_commands.snap index b402917b2..bac4786af 100644 --- a/rust/kcl-lib/tests/angled_line/artifact_commands.snap +++ b/rust/kcl-lib/tests/angled_line/artifact_commands.snap @@ -377,6 +377,14 @@ description: Artifact commands angled_line.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/argument_error/artifact_commands.snap b/rust/kcl-lib/tests/argument_error/artifact_commands.snap index 3de53807d..9a2f0b17a 100644 --- a/rust/kcl-lib/tests/argument_error/artifact_commands.snap +++ b/rust/kcl-lib/tests/argument_error/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands argument_error.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_elem_pop/artifact_commands.snap b/rust/kcl-lib/tests/array_elem_pop/artifact_commands.snap index 5a39f45a9..279490adb 100644 --- a/rust/kcl-lib/tests/array_elem_pop/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_elem_pop/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_elem_pop.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_elem_pop_empty_fail/artifact_commands.snap b/rust/kcl-lib/tests/array_elem_pop_empty_fail/artifact_commands.snap index 25f4677dc..085364156 100644 --- a/rust/kcl-lib/tests/array_elem_pop_empty_fail/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_elem_pop_empty_fail/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_elem_pop_empty_fail.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_elem_pop_fail/artifact_commands.snap b/rust/kcl-lib/tests/array_elem_pop_fail/artifact_commands.snap index f5d6caf84..ec87cf304 100644 --- a/rust/kcl-lib/tests/array_elem_pop_fail/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_elem_pop_fail/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_elem_pop_fail.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_elem_push/artifact_commands.snap b/rust/kcl-lib/tests/array_elem_push/artifact_commands.snap index f42ff11d5..16d518fea 100644 --- a/rust/kcl-lib/tests/array_elem_push/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_elem_push/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_elem_push.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_elem_push_fail/artifact_commands.snap b/rust/kcl-lib/tests/array_elem_push_fail/artifact_commands.snap index 7251a0944..8653cd358 100644 --- a/rust/kcl-lib/tests/array_elem_push_fail/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_elem_push_fail/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_elem_push_fail.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_index_oob/artifact_commands.snap b/rust/kcl-lib/tests/array_index_oob/artifact_commands.snap index f0ae2ee82..6221d56d8 100644 --- a/rust/kcl-lib/tests/array_index_oob/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_index_oob/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_index_oob.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_range_expr/artifact_commands.snap b/rust/kcl-lib/tests/array_range_expr/artifact_commands.snap index 8044d5cc4..df4f088f5 100644 --- a/rust/kcl-lib/tests/array_range_expr/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_range_expr/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_range_expr.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/array_range_negative_expr/artifact_commands.snap b/rust/kcl-lib/tests/array_range_negative_expr/artifact_commands.snap index 947b7068e..cf98d00b8 100644 --- a/rust/kcl-lib/tests/array_range_negative_expr/artifact_commands.snap +++ b/rust/kcl-lib/tests/array_range_negative_expr/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands array_range_negative_expr.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/artifact_graph_example_code1/artifact_commands.snap b/rust/kcl-lib/tests/artifact_graph_example_code1/artifact_commands.snap index f6332da06..389263f2a 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code1/artifact_commands.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code1/artifact_commands.snap @@ -537,6 +537,14 @@ description: Artifact commands artifact_graph_example_code1.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/artifact_commands.snap b/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/artifact_commands.snap index d885a2c09..41758b534 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/artifact_commands.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/artifact_commands.snap @@ -308,6 +308,14 @@ description: Artifact commands artifact_graph_example_code_no_3d.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/artifact_commands.snap b/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/artifact_commands.snap index 9886c476e..5a3b5fc03 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/artifact_commands.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/artifact_commands.snap @@ -231,6 +231,14 @@ description: Artifact commands artifact_graph_example_code_offset_planes.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/artifact_commands.snap b/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/artifact_commands.snap index 2b2c8231f..636ef3055 100644 --- a/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/artifact_commands.snap +++ b/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/artifact_commands.snap @@ -898,6 +898,14 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_commands.snap b/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_commands.snap index 89b2b2e17..49da1569b 100644 --- a/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_commands.snap +++ b/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_commands.snap @@ -61,6 +61,14 @@ description: Artifact commands assembly_mixed_units_cubes.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_graph_flowchart.snap.md index 6db8f90fd..7ff79822a 100644 --- a/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/assembly_mixed_units_cubes/artifact_graph_flowchart.snap.md @@ -1,25 +1,25 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[76, 113, 5]"] - 3["Segment
[119, 136, 5]"] - 4["Segment
[142, 160, 5]"] - 5["Segment
[166, 184, 5]"] - 6["Segment
[190, 246, 5]"] - 7["Segment
[252, 259, 5]"] + 2["Path
[76, 113, 6]"] + 3["Segment
[119, 136, 6]"] + 4["Segment
[142, 160, 6]"] + 5["Segment
[166, 184, 6]"] + 6["Segment
[190, 246, 6]"] + 7["Segment
[252, 259, 6]"] 8[Solid2d] end subgraph path25 [Path] - 25["Path
[76, 111, 6]"] - 26["Segment
[117, 134, 6]"] - 27["Segment
[140, 158, 6]"] - 28["Segment
[164, 182, 6]"] - 29["Segment
[188, 244, 6]"] - 30["Segment
[250, 257, 6]"] + 25["Path
[76, 111, 7]"] + 26["Segment
[117, 134, 7]"] + 27["Segment
[140, 158, 7]"] + 28["Segment
[164, 182, 7]"] + 29["Segment
[188, 244, 7]"] + 30["Segment
[250, 257, 7]"] 31[Solid2d] end - 1["Plane
[47, 66, 5]"] - 9["Sweep Extrusion
[265, 287, 5]"] + 1["Plane
[47, 66, 6]"] + 9["Sweep Extrusion
[265, 287, 6]"] 10[Wall] 11[Wall] 12[Wall] @@ -34,8 +34,8 @@ flowchart LR 21["SweepEdge Adjacent"] 22["SweepEdge Opposite"] 23["SweepEdge Adjacent"] - 24["Plane
[47, 66, 6]"] - 32["Sweep Extrusion
[263, 285, 6]"] + 24["Plane
[47, 66, 7]"] + 32["Sweep Extrusion
[263, 285, 7]"] 33[Wall] 34[Wall] 35[Wall] diff --git a/rust/kcl-lib/tests/assembly_mixed_units_cubes/ops.snap b/rust/kcl-lib/tests/assembly_mixed_units_cubes/ops.snap index 3715b60d0..586a3f089 100644 --- a/rust/kcl-lib/tests/assembly_mixed_units_cubes/ops.snap +++ b/rust/kcl-lib/tests/assembly_mixed_units_cubes/ops.snap @@ -8,7 +8,7 @@ description: Operations executed assembly_mixed_units_cubes.kcl "group": { "type": "ModuleInstance", "name": "cubeIn", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, @@ -67,7 +67,7 @@ description: Operations executed assembly_mixed_units_cubes.kcl "group": { "type": "ModuleInstance", "name": "cubeMm", - "moduleId": 6 + "moduleId": 7 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/assembly_mixed_units_cubes/program_memory.snap b/rust/kcl-lib/tests/assembly_mixed_units_cubes/program_memory.snap index 1a6491220..4d371bff9 100644 --- a/rust/kcl-lib/tests/assembly_mixed_units_cubes/program_memory.snap +++ b/rust/kcl-lib/tests/assembly_mixed_units_cubes/program_memory.snap @@ -5,10 +5,10 @@ description: Variables in memory after executing assembly_mixed_units_cubes.kcl { "cubeIn": { "type": "Module", - "value": 5 + "value": 6 }, "cubeMm": { "type": "Module", - "value": 6 + "value": 7 } } diff --git a/rust/kcl-lib/tests/assembly_non_default_units/artifact_commands.snap b/rust/kcl-lib/tests/assembly_non_default_units/artifact_commands.snap index 612274ee7..5dd9374a8 100644 --- a/rust/kcl-lib/tests/assembly_non_default_units/artifact_commands.snap +++ b/rust/kcl-lib/tests/assembly_non_default_units/artifact_commands.snap @@ -61,6 +61,14 @@ description: Artifact commands assembly_non_default_units.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/assembly_non_default_units/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/assembly_non_default_units/artifact_graph_flowchart.snap.md index 3c76048bf..c237c3cc4 100644 --- a/rust/kcl-lib/tests/assembly_non_default_units/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/assembly_non_default_units/artifact_graph_flowchart.snap.md @@ -1,17 +1,17 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[197, 232, 5]"] - 3["Segment
[197, 232, 5]"] + 2["Path
[197, 232, 6]"] + 3["Segment
[197, 232, 6]"] 4[Solid2d] end subgraph path6 [Path] - 6["Path
[113, 148, 6]"] - 7["Segment
[113, 148, 6]"] + 6["Path
[113, 148, 7]"] + 7["Segment
[113, 148, 7]"] 8[Solid2d] end - 1["Plane
[172, 191, 5]"] - 5["Plane
[88, 107, 6]"] + 1["Plane
[172, 191, 6]"] + 5["Plane
[88, 107, 7]"] 1 --- 2 2 --- 3 2 --- 4 diff --git a/rust/kcl-lib/tests/assembly_non_default_units/ops.snap b/rust/kcl-lib/tests/assembly_non_default_units/ops.snap index e032dbdf2..9bbe37b3f 100644 --- a/rust/kcl-lib/tests/assembly_non_default_units/ops.snap +++ b/rust/kcl-lib/tests/assembly_non_default_units/ops.snap @@ -8,7 +8,7 @@ description: Operations executed assembly_non_default_units.kcl "group": { "type": "ModuleInstance", "name": "other1", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, @@ -35,7 +35,7 @@ description: Operations executed assembly_non_default_units.kcl "group": { "type": "ModuleInstance", "name": "other2", - "moduleId": 6 + "moduleId": 7 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/assembly_non_default_units/program_memory.snap b/rust/kcl-lib/tests/assembly_non_default_units/program_memory.snap index 9d0c227bf..74a58551a 100644 --- a/rust/kcl-lib/tests/assembly_non_default_units/program_memory.snap +++ b/rust/kcl-lib/tests/assembly_non_default_units/program_memory.snap @@ -5,10 +5,10 @@ description: Variables in memory after executing assembly_non_default_units.kcl { "other1": { "type": "Module", - "value": 5 + "value": 6 }, "other2": { "type": "Module", - "value": 6 + "value": 7 } } diff --git a/rust/kcl-lib/tests/bad_units_in_annotation/artifact_commands.snap b/rust/kcl-lib/tests/bad_units_in_annotation/artifact_commands.snap index 00b691aaf..daeadfd8c 100644 --- a/rust/kcl-lib/tests/bad_units_in_annotation/artifact_commands.snap +++ b/rust/kcl-lib/tests/bad_units_in_annotation/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands bad_units_in_annotation.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap index a6274f2f9..fadadb84a 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap @@ -337,6 +337,14 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap index b0829bfea..17785beee 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap @@ -337,6 +337,14 @@ description: Artifact commands basic_fillet_cube_end.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap index 13083b4b0..1689dece1 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap @@ -325,6 +325,14 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap index f8b595a94..97f6c2764 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap @@ -325,6 +325,14 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap index e0e7c81ba..2b1a243a4 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap @@ -327,6 +327,14 @@ description: Artifact commands basic_fillet_cube_start.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/big_number_angle_to_match_length_x/artifact_commands.snap b/rust/kcl-lib/tests/big_number_angle_to_match_length_x/artifact_commands.snap index c5487ba7d..1ab52650e 100644 --- a/rust/kcl-lib/tests/big_number_angle_to_match_length_x/artifact_commands.snap +++ b/rust/kcl-lib/tests/big_number_angle_to_match_length_x/artifact_commands.snap @@ -266,6 +266,14 @@ description: Artifact commands big_number_angle_to_match_length_x.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/big_number_angle_to_match_length_y/artifact_commands.snap b/rust/kcl-lib/tests/big_number_angle_to_match_length_y/artifact_commands.snap index 853c4fd8d..733432588 100644 --- a/rust/kcl-lib/tests/big_number_angle_to_match_length_y/artifact_commands.snap +++ b/rust/kcl-lib/tests/big_number_angle_to_match_length_y/artifact_commands.snap @@ -266,6 +266,14 @@ description: Artifact commands big_number_angle_to_match_length_y.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/boolean_logical_and/artifact_commands.snap b/rust/kcl-lib/tests/boolean_logical_and/artifact_commands.snap index a5309cfc2..4c5978f25 100644 --- a/rust/kcl-lib/tests/boolean_logical_and/artifact_commands.snap +++ b/rust/kcl-lib/tests/boolean_logical_and/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands boolean_logical_and.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/boolean_logical_multiple/artifact_commands.snap b/rust/kcl-lib/tests/boolean_logical_multiple/artifact_commands.snap index 35526c44c..0b89da61f 100644 --- a/rust/kcl-lib/tests/boolean_logical_multiple/artifact_commands.snap +++ b/rust/kcl-lib/tests/boolean_logical_multiple/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands boolean_logical_multiple.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/boolean_logical_or/artifact_commands.snap b/rust/kcl-lib/tests/boolean_logical_or/artifact_commands.snap index f32afaba7..bd0436708 100644 --- a/rust/kcl-lib/tests/boolean_logical_or/artifact_commands.snap +++ b/rust/kcl-lib/tests/boolean_logical_or/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands boolean_logical_or.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/circle_three_point/artifact_commands.snap b/rust/kcl-lib/tests/circle_three_point/artifact_commands.snap index 768932187..8f90efc42 100644 --- a/rust/kcl-lib/tests/circle_three_point/artifact_commands.snap +++ b/rust/kcl-lib/tests/circle_three_point/artifact_commands.snap @@ -217,6 +217,14 @@ description: Artifact commands circle_three_point.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/circular_pattern3d_a_pattern/artifact_commands.snap b/rust/kcl-lib/tests/circular_pattern3d_a_pattern/artifact_commands.snap index b26d458f5..7f11dc14a 100644 --- a/rust/kcl-lib/tests/circular_pattern3d_a_pattern/artifact_commands.snap +++ b/rust/kcl-lib/tests/circular_pattern3d_a_pattern/artifact_commands.snap @@ -635,6 +635,14 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/comparisons/artifact_commands.snap b/rust/kcl-lib/tests/comparisons/artifact_commands.snap index 541a351f8..2613c0c0e 100644 --- a/rust/kcl-lib/tests/comparisons/artifact_commands.snap +++ b/rust/kcl-lib/tests/comparisons/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands comparisons.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/comparisons_multiple/artifact_commands.snap b/rust/kcl-lib/tests/comparisons_multiple/artifact_commands.snap index e9ee528ee..4880627b7 100644 --- a/rust/kcl-lib/tests/comparisons_multiple/artifact_commands.snap +++ b/rust/kcl-lib/tests/comparisons_multiple/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands comparisons_multiple.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/computed_var/artifact_commands.snap b/rust/kcl-lib/tests/computed_var/artifact_commands.snap index 34a1484e4..caa54f58a 100644 --- a/rust/kcl-lib/tests/computed_var/artifact_commands.snap +++ b/rust/kcl-lib/tests/computed_var/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands computed_var.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/crazy_multi_profile/artifact_commands.snap b/rust/kcl-lib/tests/crazy_multi_profile/artifact_commands.snap index 4d03f702f..663646ed8 100644 --- a/rust/kcl-lib/tests/crazy_multi_profile/artifact_commands.snap +++ b/rust/kcl-lib/tests/crazy_multi_profile/artifact_commands.snap @@ -1672,6 +1672,14 @@ description: Artifact commands crazy_multi_profile.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/cube/artifact_commands.snap b/rust/kcl-lib/tests/cube/artifact_commands.snap index 37f75af63..c9a570952 100644 --- a/rust/kcl-lib/tests/cube/artifact_commands.snap +++ b/rust/kcl-lib/tests/cube/artifact_commands.snap @@ -320,6 +320,14 @@ description: Artifact commands cube.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/cube_with_error/artifact_commands.snap b/rust/kcl-lib/tests/cube_with_error/artifact_commands.snap index 9a2dd6bb6..bb341a812 100644 --- a/rust/kcl-lib/tests/cube_with_error/artifact_commands.snap +++ b/rust/kcl-lib/tests/cube_with_error/artifact_commands.snap @@ -240,6 +240,14 @@ description: Artifact commands cube_with_error.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/double_map_fn/artifact_commands.snap b/rust/kcl-lib/tests/double_map_fn/artifact_commands.snap index c05664ac8..42cb6ee1d 100644 --- a/rust/kcl-lib/tests/double_map_fn/artifact_commands.snap +++ b/rust/kcl-lib/tests/double_map_fn/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands double_map_fn.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap b/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap index 44bb328dd..eed83fdb7 100644 --- a/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap +++ b/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap @@ -1847,6 +1847,14 @@ description: Artifact commands fillet-and-shell.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/flush_batch_on_end/artifact_commands.snap b/rust/kcl-lib/tests/flush_batch_on_end/artifact_commands.snap index 600ea1c52..ccf8de893 100644 --- a/rust/kcl-lib/tests/flush_batch_on_end/artifact_commands.snap +++ b/rust/kcl-lib/tests/flush_batch_on_end/artifact_commands.snap @@ -339,6 +339,14 @@ description: Artifact commands flush_batch_on_end.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/function_sketch/artifact_commands.snap b/rust/kcl-lib/tests/function_sketch/artifact_commands.snap index 9fbe85c00..a7d2b9943 100644 --- a/rust/kcl-lib/tests/function_sketch/artifact_commands.snap +++ b/rust/kcl-lib/tests/function_sketch/artifact_commands.snap @@ -303,6 +303,14 @@ description: Artifact commands function_sketch.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/function_sketch_with_position/artifact_commands.snap b/rust/kcl-lib/tests/function_sketch_with_position/artifact_commands.snap index bd89f8308..68a3e5129 100644 --- a/rust/kcl-lib/tests/function_sketch_with_position/artifact_commands.snap +++ b/rust/kcl-lib/tests/function_sketch_with_position/artifact_commands.snap @@ -303,6 +303,14 @@ description: Artifact commands function_sketch_with_position.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/helix_ccw/artifact_commands.snap b/rust/kcl-lib/tests/helix_ccw/artifact_commands.snap index 6b9ecd276..4b54b2b11 100644 --- a/rust/kcl-lib/tests/helix_ccw/artifact_commands.snap +++ b/rust/kcl-lib/tests/helix_ccw/artifact_commands.snap @@ -232,6 +232,14 @@ description: Artifact commands helix_ccw.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/helix_simple/artifact_commands.snap b/rust/kcl-lib/tests/helix_simple/artifact_commands.snap index b19eacb6f..9c18e48dc 100644 --- a/rust/kcl-lib/tests/helix_simple/artifact_commands.snap +++ b/rust/kcl-lib/tests/helix_simple/artifact_commands.snap @@ -146,6 +146,14 @@ description: Artifact commands helix_simple.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/i_shape/artifact_commands.snap b/rust/kcl-lib/tests/i_shape/artifact_commands.snap index 3a439d58f..62619cefd 100644 --- a/rust/kcl-lib/tests/i_shape/artifact_commands.snap +++ b/rust/kcl-lib/tests/i_shape/artifact_commands.snap @@ -1450,6 +1450,14 @@ description: Artifact commands i_shape.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/if_else/artifact_commands.snap b/rust/kcl-lib/tests/if_else/artifact_commands.snap index bd7ad3458..69029d490 100644 --- a/rust/kcl-lib/tests/if_else/artifact_commands.snap +++ b/rust/kcl-lib/tests/if_else/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands if_else.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_async/artifact_commands.snap b/rust/kcl-lib/tests/import_async/artifact_commands.snap index 6eafd2716..3424b2712 100644 --- a/rust/kcl-lib/tests/import_async/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_async/artifact_commands.snap @@ -5575218,6 +5575218,14 @@ description: Artifact commands import_async.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_async/ops.snap b/rust/kcl-lib/tests/import_async/ops.snap index 48b1a3517..94a9e30d6 100644 --- a/rust/kcl-lib/tests/import_async/ops.snap +++ b/rust/kcl-lib/tests/import_async/ops.snap @@ -8,7 +8,7 @@ description: Operations executed import_async.kcl "group": { "type": "ModuleInstance", "name": "screw", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/import_async/program_memory.snap b/rust/kcl-lib/tests/import_async/program_memory.snap index a44d98758..61ef31026 100644 --- a/rust/kcl-lib/tests/import_async/program_memory.snap +++ b/rust/kcl-lib/tests/import_async/program_memory.snap @@ -3625,7 +3625,7 @@ description: Variables in memory after executing import_async.kcl }, "screw": { "type": "Module", - "value": 5 + "value": 6 }, "start": { "type": "Sketch", diff --git a/rust/kcl-lib/tests/import_constant/artifact_commands.snap b/rust/kcl-lib/tests/import_constant/artifact_commands.snap index 19f373672..b45cc1a10 100644 --- a/rust/kcl-lib/tests/import_constant/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_constant/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands import_constant.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_cycle1/artifact_commands.snap b/rust/kcl-lib/tests/import_cycle1/artifact_commands.snap index 9ed4ccebf..fde41dd4d 100644 --- a/rust/kcl-lib/tests/import_cycle1/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_cycle1/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands import_cycle1.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_export/artifact_commands.snap b/rust/kcl-lib/tests/import_export/artifact_commands.snap index 47ceeeae3..35223a871 100644 --- a/rust/kcl-lib/tests/import_export/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_export/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands import_export.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_file_not_exist_error/artifact_commands.snap b/rust/kcl-lib/tests/import_file_not_exist_error/artifact_commands.snap index 9320a294f..b0a5b476c 100644 --- a/rust/kcl-lib/tests/import_file_not_exist_error/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_file_not_exist_error/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands import_file_not_exist_error.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_file_parse_error/artifact_commands.snap b/rust/kcl-lib/tests/import_file_parse_error/artifact_commands.snap index d5b345415..4ef6db7a0 100644 --- a/rust/kcl-lib/tests/import_file_parse_error/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_file_parse_error/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands import_file_parse_error.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_foreign/artifact_commands.snap b/rust/kcl-lib/tests/import_foreign/artifact_commands.snap index f08aff0d1..955a0d52e 100644 --- a/rust/kcl-lib/tests/import_foreign/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_foreign/artifact_commands.snap @@ -3038,6 +3038,14 @@ description: Artifact commands import_foreign.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_foreign/ops.snap b/rust/kcl-lib/tests/import_foreign/ops.snap index 0b52340ec..b2813f9c6 100644 --- a/rust/kcl-lib/tests/import_foreign/ops.snap +++ b/rust/kcl-lib/tests/import_foreign/ops.snap @@ -8,7 +8,7 @@ description: Operations executed import_foreign.kcl "group": { "type": "ModuleInstance", "name": "cube", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/import_foreign/program_memory.snap b/rust/kcl-lib/tests/import_foreign/program_memory.snap index 88d57cd00..e205f92e2 100644 --- a/rust/kcl-lib/tests/import_foreign/program_memory.snap +++ b/rust/kcl-lib/tests/import_foreign/program_memory.snap @@ -5,7 +5,7 @@ description: Variables in memory after executing import_foreign.kcl { "cube": { "type": "Module", - "value": 5 + "value": 6 }, "model": { "type": "ImportedGeometry", diff --git a/rust/kcl-lib/tests/import_function_not_sketch/artifact_commands.snap b/rust/kcl-lib/tests/import_function_not_sketch/artifact_commands.snap index a7fea2aef..93ea32746 100644 --- a/rust/kcl-lib/tests/import_function_not_sketch/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_function_not_sketch/artifact_commands.snap @@ -69,6 +69,14 @@ description: Artifact commands import_function_not_sketch.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_function_not_sketch/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/import_function_not_sketch/artifact_graph_flowchart.snap.md index b30fc6811..8798578ff 100644 --- a/rust/kcl-lib/tests/import_function_not_sketch/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/import_function_not_sketch/artifact_graph_flowchart.snap.md @@ -1,19 +1,19 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[75, 101, 5]"] - 3["Segment
[107, 125, 5]"] - 4["Segment
[131, 150, 5]"] - 5["Segment
[156, 175, 5]"] - 6["Segment
[181, 200, 5]"] - 7["Segment
[206, 231, 5]"] - 8["Segment
[237, 258, 5]"] - 9["Segment
[264, 283, 5]"] - 10["Segment
[289, 296, 5]"] + 2["Path
[75, 101, 6]"] + 3["Segment
[107, 125, 6]"] + 4["Segment
[131, 150, 6]"] + 5["Segment
[156, 175, 6]"] + 6["Segment
[181, 200, 6]"] + 7["Segment
[206, 231, 6]"] + 8["Segment
[237, 258, 6]"] + 9["Segment
[264, 283, 6]"] + 10["Segment
[289, 296, 6]"] 11[Solid2d] end - 1["Plane
[52, 69, 5]"] - 12["Sweep Revolve
[302, 319, 5]"] + 1["Plane
[52, 69, 6]"] + 12["Sweep Revolve
[302, 319, 6]"] 13[Wall] 14[Wall] 15[Wall] diff --git a/rust/kcl-lib/tests/import_glob/artifact_commands.snap b/rust/kcl-lib/tests/import_glob/artifact_commands.snap index 508b87eff..e15e3873c 100644 --- a/rust/kcl-lib/tests/import_glob/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_glob/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands import_glob.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_side_effect/artifact_commands.snap b/rust/kcl-lib/tests/import_side_effect/artifact_commands.snap index 64cfa032b..ac660e7f1 100644 --- a/rust/kcl-lib/tests/import_side_effect/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_side_effect/artifact_commands.snap @@ -53,6 +53,14 @@ description: Artifact commands import_side_effect.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_side_effect/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/import_side_effect/artifact_graph_flowchart.snap.md index 4e9e737da..96933e093 100644 --- a/rust/kcl-lib/tests/import_side_effect/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/import_side_effect/artifact_graph_flowchart.snap.md @@ -1,11 +1,11 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[102, 138, 5]"] - 3["Segment
[102, 138, 5]"] + 2["Path
[102, 138, 6]"] + 3["Segment
[102, 138, 6]"] 4[Solid2d] end - 1["Plane
[77, 96, 5]"] + 1["Plane
[77, 96, 6]"] 1 --- 2 2 --- 3 2 --- 4 diff --git a/rust/kcl-lib/tests/import_transform/artifact_commands.snap b/rust/kcl-lib/tests/import_transform/artifact_commands.snap index 054183652..d7bb1338d 100644 --- a/rust/kcl-lib/tests/import_transform/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_transform/artifact_commands.snap @@ -5571179,6 +5571179,14 @@ description: Artifact commands import_transform.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_transform/ops.snap b/rust/kcl-lib/tests/import_transform/ops.snap index e13113590..d915daa33 100644 --- a/rust/kcl-lib/tests/import_transform/ops.snap +++ b/rust/kcl-lib/tests/import_transform/ops.snap @@ -8,7 +8,7 @@ description: Operations executed import_transform.kcl "group": { "type": "ModuleInstance", "name": "screw", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/import_transform/program_memory.snap b/rust/kcl-lib/tests/import_transform/program_memory.snap index ef1a01f7f..a666888ff 100644 --- a/rust/kcl-lib/tests/import_transform/program_memory.snap +++ b/rust/kcl-lib/tests/import_transform/program_memory.snap @@ -5,6 +5,6 @@ description: Variables in memory after executing import_transform.kcl { "screw": { "type": "Module", - "value": 5 + "value": 6 } } diff --git a/rust/kcl-lib/tests/import_whole/artifact_commands.snap b/rust/kcl-lib/tests/import_whole/artifact_commands.snap index f63f62e87..604417c0a 100644 --- a/rust/kcl-lib/tests/import_whole/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_whole/artifact_commands.snap @@ -85,6 +85,14 @@ description: Artifact commands import_whole.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/import_whole/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/import_whole/artifact_graph_flowchart.snap.md index ce1d43882..4f52e293a 100644 --- a/rust/kcl-lib/tests/import_whole/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/import_whole/artifact_graph_flowchart.snap.md @@ -1,12 +1,12 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[83, 119, 5]"] - 3["Segment
[83, 119, 5]"] + 2["Path
[83, 119, 6]"] + 3["Segment
[83, 119, 6]"] 4[Solid2d] end - 1["Plane
[60, 77, 5]"] - 5["Sweep Extrusion
[125, 145, 5]"] + 1["Plane
[60, 77, 6]"] + 5["Sweep Extrusion
[125, 145, 6]"] 6[Wall] 7["Cap Start"] 8["Cap End"] diff --git a/rust/kcl-lib/tests/import_whole/ops.snap b/rust/kcl-lib/tests/import_whole/ops.snap index ea392ed85..ec09aebe1 100644 --- a/rust/kcl-lib/tests/import_whole/ops.snap +++ b/rust/kcl-lib/tests/import_whole/ops.snap @@ -8,7 +8,7 @@ description: Operations executed import_whole.kcl "group": { "type": "ModuleInstance", "name": "foo", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/import_whole/program_memory.snap b/rust/kcl-lib/tests/import_whole/program_memory.snap index 8822ce0f9..9f5212c4f 100644 --- a/rust/kcl-lib/tests/import_whole/program_memory.snap +++ b/rust/kcl-lib/tests/import_whole/program_memory.snap @@ -123,6 +123,6 @@ description: Variables in memory after executing import_whole.kcl }, "foo": { "type": "Module", - "value": 5 + "value": 6 } } diff --git a/rust/kcl-lib/tests/index_of_array/artifact_commands.snap b/rust/kcl-lib/tests/index_of_array/artifact_commands.snap index ada60c203..95d78c0a4 100644 --- a/rust/kcl-lib/tests/index_of_array/artifact_commands.snap +++ b/rust/kcl-lib/tests/index_of_array/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands index_of_array.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap b/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap index c07d3a858..8c232a91a 100644 --- a/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap +++ b/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap @@ -597,6 +597,14 @@ description: Artifact commands intersect_cubes.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/invalid_index_fractional/artifact_commands.snap b/rust/kcl-lib/tests/invalid_index_fractional/artifact_commands.snap index f7c100c6a..9bbd00de7 100644 --- a/rust/kcl-lib/tests/invalid_index_fractional/artifact_commands.snap +++ b/rust/kcl-lib/tests/invalid_index_fractional/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands invalid_index_fractional.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/invalid_index_negative/artifact_commands.snap b/rust/kcl-lib/tests/invalid_index_negative/artifact_commands.snap index 575517015..5fd02c21c 100644 --- a/rust/kcl-lib/tests/invalid_index_negative/artifact_commands.snap +++ b/rust/kcl-lib/tests/invalid_index_negative/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands invalid_index_negative.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/invalid_index_str/artifact_commands.snap b/rust/kcl-lib/tests/invalid_index_str/artifact_commands.snap index 6d4b633dd..ab33a772f 100644 --- a/rust/kcl-lib/tests/invalid_index_str/artifact_commands.snap +++ b/rust/kcl-lib/tests/invalid_index_str/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands invalid_index_str.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/invalid_member_object/artifact_commands.snap b/rust/kcl-lib/tests/invalid_member_object/artifact_commands.snap index 3574e2337..e5fd067dc 100644 --- a/rust/kcl-lib/tests/invalid_member_object/artifact_commands.snap +++ b/rust/kcl-lib/tests/invalid_member_object/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands invalid_member_object.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/invalid_member_object_prop/artifact_commands.snap b/rust/kcl-lib/tests/invalid_member_object_prop/artifact_commands.snap index b5e2d1a99..7e54401e7 100644 --- a/rust/kcl-lib/tests/invalid_member_object_prop/artifact_commands.snap +++ b/rust/kcl-lib/tests/invalid_member_object_prop/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands invalid_member_object_prop.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap index e575108ff..bce7c9d0c 100644 --- a/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap @@ -3526,6 +3526,14 @@ description: Artifact commands 80-20-rail.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap index 045d55ed3..67362ca08 100644 --- a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap @@ -69,6 +69,14 @@ description: Artifact commands axial-fan.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md index f2c3d85b7..c8ac79043 100644 --- a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md @@ -1,164 +1,164 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[323, 370, 5]"] - 3["Segment
[376, 444, 5]"] - 4["Segment
[450, 550, 5]"] - 5["Segment
[556, 673, 5]"] - 6["Segment
[679, 764, 5]"] - 7["Segment
[770, 777, 5]"] + 2["Path
[323, 370, 6]"] + 3["Segment
[376, 444, 6]"] + 4["Segment
[450, 550, 6]"] + 5["Segment
[556, 673, 6]"] + 6["Segment
[679, 764, 6]"] + 7["Segment
[770, 777, 6]"] 8[Solid2d] end subgraph path9 [Path] - 9["Path
[788, 823, 5]"] - 10["Segment
[788, 823, 5]"] + 9["Path
[788, 823, 6]"] + 10["Segment
[788, 823, 6]"] 11[Solid2d] end subgraph path12 [Path] - 12["Path
[838, 985, 5]"] - 13["Segment
[838, 985, 5]"] + 12["Path
[838, 985, 6]"] + 13["Segment
[838, 985, 6]"] 14[Solid2d] end subgraph path15 [Path] - 15["Path
[1000, 1148, 5]"] - 16["Segment
[1000, 1148, 5]"] + 15["Path
[1000, 1148, 6]"] + 16["Segment
[1000, 1148, 6]"] 17[Solid2d] end subgraph path18 [Path] - 18["Path
[1163, 1311, 5]"] - 19["Segment
[1163, 1311, 5]"] + 18["Path
[1163, 1311, 6]"] + 19["Segment
[1163, 1311, 6]"] 20[Solid2d] end subgraph path21 [Path] - 21["Path
[1326, 1475, 5]"] - 22["Segment
[1326, 1475, 5]"] + 21["Path
[1326, 1475, 6]"] + 22["Segment
[1326, 1475, 6]"] 23[Solid2d] end subgraph path39 [Path] - 39["Path
[1646, 1702, 5]"] - 40["Segment
[1708, 1773, 5]"] - 41["Segment
[1779, 1831, 5]"] - 42["Segment
[1837, 1888, 5]"] - 43["Segment
[1894, 1946, 5]"] - 44["Segment
[1952, 2018, 5]"] - 45["Segment
[2024, 2076, 5]"] - 46["Segment
[2082, 2114, 5]"] - 47["Segment
[2120, 2185, 5]"] - 48["Segment
[2191, 2198, 5]"] + 39["Path
[1646, 1702, 6]"] + 40["Segment
[1708, 1773, 6]"] + 41["Segment
[1779, 1831, 6]"] + 42["Segment
[1837, 1888, 6]"] + 43["Segment
[1894, 1946, 6]"] + 44["Segment
[1952, 2018, 6]"] + 45["Segment
[2024, 2076, 6]"] + 46["Segment
[2082, 2114, 6]"] + 47["Segment
[2120, 2185, 6]"] + 48["Segment
[2191, 2198, 6]"] 49[Solid2d] end subgraph path78 [Path] - 78["Path
[2547, 2660, 5]"] - 79["Segment
[2666, 2721, 5]"] - 80["Segment
[2727, 2762, 5]"] - 81["Segment
[2768, 2823, 5]"] - 82["Segment
[2829, 2865, 5]"] - 83["Segment
[2871, 2926, 5]"] - 84["Segment
[2932, 2968, 5]"] - 85["Segment
[2974, 3029, 5]"] - 86["Segment
[3035, 3091, 5]"] + 78["Path
[2547, 2660, 6]"] + 79["Segment
[2666, 2721, 6]"] + 80["Segment
[2727, 2762, 6]"] + 81["Segment
[2768, 2823, 6]"] + 82["Segment
[2829, 2865, 6]"] + 83["Segment
[2871, 2926, 6]"] + 84["Segment
[2932, 2968, 6]"] + 85["Segment
[2974, 3029, 6]"] + 86["Segment
[3035, 3091, 6]"] end subgraph path113 [Path] - 113["Path
[3240, 3291, 5]"] - 114["Segment
[3240, 3291, 5]"] + 113["Path
[3240, 3291, 6]"] + 114["Segment
[3240, 3291, 6]"] 115[Solid2d] end subgraph path120 [Path] - 120["Path
[3470, 3529, 5]"] - 121["Segment
[3535, 3603, 5]"] - 122["Segment
[3609, 3709, 5]"] - 123["Segment
[3715, 3832, 5]"] - 124["Segment
[3838, 3923, 5]"] - 125["Segment
[3929, 3936, 5]"] + 120["Path
[3470, 3529, 6]"] + 121["Segment
[3535, 3603, 6]"] + 122["Segment
[3609, 3709, 6]"] + 123["Segment
[3715, 3832, 6]"] + 124["Segment
[3838, 3923, 6]"] + 125["Segment
[3929, 3936, 6]"] 126[Solid2d] end subgraph path127 [Path] - 127["Path
[3947, 3998, 5]"] - 128["Segment
[3947, 3998, 5]"] + 127["Path
[3947, 3998, 6]"] + 128["Segment
[3947, 3998, 6]"] 129[Solid2d] end subgraph path130 [Path] - 130["Path
[4013, 4160, 5]"] - 131["Segment
[4013, 4160, 5]"] + 130["Path
[4013, 4160, 6]"] + 131["Segment
[4013, 4160, 6]"] 132[Solid2d] end subgraph path133 [Path] - 133["Path
[4175, 4323, 5]"] - 134["Segment
[4175, 4323, 5]"] + 133["Path
[4175, 4323, 6]"] + 134["Segment
[4175, 4323, 6]"] 135[Solid2d] end subgraph path136 [Path] - 136["Path
[4338, 4486, 5]"] - 137["Segment
[4338, 4486, 5]"] + 136["Path
[4338, 4486, 6]"] + 137["Segment
[4338, 4486, 6]"] 138[Solid2d] end subgraph path139 [Path] - 139["Path
[4501, 4650, 5]"] - 140["Segment
[4501, 4650, 5]"] + 139["Path
[4501, 4650, 6]"] + 140["Segment
[4501, 4650, 6]"] 141[Solid2d] end subgraph path157 [Path] - 157["Path
[4795, 4833, 5]"] - 158["Segment
[4795, 4833, 5]"] + 157["Path
[4795, 4833, 6]"] + 158["Segment
[4795, 4833, 6]"] 159[Solid2d] end subgraph path165 [Path] - 165["Path
[4906, 4942, 5]"] - 166["Segment
[4906, 4942, 5]"] + 165["Path
[4906, 4942, 6]"] + 166["Segment
[4906, 4942, 6]"] 167[Solid2d] end subgraph path181 [Path] - 181["Path
[277, 327, 6]"] - 182["Segment
[277, 327, 6]"] + 181["Path
[277, 327, 7]"] + 182["Segment
[277, 327, 7]"] 183[Solid2d] end subgraph path191 [Path] - 191["Path
[502, 537, 6]"] - 192["Segment
[502, 537, 6]"] + 191["Path
[502, 537, 7]"] + 192["Segment
[502, 537, 7]"] 193[Solid2d] end subgraph path203 [Path] - 203["Path
[216, 255, 7]"] - 204["Segment
[261, 291, 7]"] - 205["Segment
[297, 336, 7]"] - 206["Segment
[342, 366, 7]"] - 207["Segment
[372, 396, 7]"] - 208["Segment
[402, 443, 7]"] - 209["Segment
[449, 487, 7]"] - 210["Segment
[493, 516, 7]"] - 211["Segment
[522, 539, 7]"] - 212["Segment
[545, 566, 7]"] - 213["Segment
[572, 659, 7]"] - 214["Segment
[665, 702, 7]"] - 215["Segment
[708, 745, 7]"] - 216["Segment
[751, 758, 7]"] + 203["Path
[216, 255, 8]"] + 204["Segment
[261, 291, 8]"] + 205["Segment
[297, 336, 8]"] + 206["Segment
[342, 366, 8]"] + 207["Segment
[372, 396, 8]"] + 208["Segment
[402, 443, 8]"] + 209["Segment
[449, 487, 8]"] + 210["Segment
[493, 516, 8]"] + 211["Segment
[522, 539, 8]"] + 212["Segment
[545, 566, 8]"] + 213["Segment
[572, 659, 8]"] + 214["Segment
[665, 702, 8]"] + 215["Segment
[708, 745, 8]"] + 216["Segment
[751, 758, 8]"] 217[Solid2d] end subgraph path243 [Path] - 243["Path
[1100, 1212, 7]"] - 244["Segment
[1220, 1289, 7]"] - 245["Segment
[1297, 1641, 7]"] - 246["Segment
[1649, 1995, 7]"] - 247["Segment
[2003, 2244, 7]"] - 248["Segment
[2252, 2259, 7]"] + 243["Path
[1100, 1212, 8]"] + 244["Segment
[1220, 1289, 8]"] + 245["Segment
[1297, 1641, 8]"] + 246["Segment
[1649, 1995, 8]"] + 247["Segment
[2003, 2244, 8]"] + 248["Segment
[2252, 2259, 8]"] 249[Solid2d] end subgraph path251 [Path] - 251["Path
[1100, 1212, 7]"] - 252["Segment
[1220, 1289, 7]"] - 253["Segment
[1297, 1641, 7]"] - 254["Segment
[1649, 1995, 7]"] - 255["Segment
[2003, 2244, 7]"] - 256["Segment
[2252, 2259, 7]"] + 251["Path
[1100, 1212, 8]"] + 252["Segment
[1220, 1289, 8]"] + 253["Segment
[1297, 1641, 8]"] + 254["Segment
[1649, 1995, 8]"] + 255["Segment
[2003, 2244, 8]"] + 256["Segment
[2252, 2259, 8]"] 257[Solid2d] end subgraph path259 [Path] - 259["Path
[1100, 1212, 7]"] - 264["Segment
[2252, 2259, 7]"] + 259["Path
[1100, 1212, 8]"] + 264["Segment
[2252, 2259, 8]"] 265[Solid2d] end - 1["Plane
[300, 317, 5]"] - 24["Sweep Extrusion
[1485, 1504, 5]"] + 1["Plane
[300, 317, 6]"] + 24["Sweep Extrusion
[1485, 1504, 6]"] 25[Wall] 26[Wall] 27[Wall] @@ -173,7 +173,7 @@ flowchart LR 36["SweepEdge Adjacent"] 37["SweepEdge Opposite"] 38["SweepEdge Adjacent"] - 50["Sweep Extrusion
[2338, 2358, 5]"] + 50["Sweep Extrusion
[2338, 2358, 6]"] 51[Wall] 52[Wall] 53[Wall] @@ -198,10 +198,10 @@ flowchart LR 72["SweepEdge Adjacent"] 73["SweepEdge Opposite"] 74["SweepEdge Adjacent"] - 75["Sweep Extrusion
[2338, 2358, 5]"] - 76["Sweep Extrusion
[2338, 2358, 5]"] - 77["Sweep Extrusion
[2338, 2358, 5]"] - 87["Sweep Extrusion
[3097, 3132, 5]"] + 75["Sweep Extrusion
[2338, 2358, 6]"] + 76["Sweep Extrusion
[2338, 2358, 6]"] + 77["Sweep Extrusion
[2338, 2358, 6]"] + 87["Sweep Extrusion
[3097, 3132, 6]"] 88[Wall] 89[Wall] 90[Wall] @@ -227,11 +227,11 @@ flowchart LR 110["SweepEdge Adjacent"] 111["SweepEdge Opposite"] 112["SweepEdge Adjacent"] - 116["Sweep Extrusion
[3297, 3335, 5]"] + 116["Sweep Extrusion
[3297, 3335, 6]"] 117[Wall] 118["SweepEdge Opposite"] 119["SweepEdge Adjacent"] - 142["Sweep Extrusion
[4660, 4679, 5]"] + 142["Sweep Extrusion
[4660, 4679, 6]"] 143[Wall] 144[Wall] 145[Wall] @@ -246,41 +246,41 @@ flowchart LR 154["SweepEdge Adjacent"] 155["SweepEdge Opposite"] 156["SweepEdge Adjacent"] - 160["Sweep Extrusion
[4839, 4859, 5]"] + 160["Sweep Extrusion
[4839, 4859, 6]"] 161[Wall] 162["Cap End"] 163["SweepEdge Opposite"] 164["SweepEdge Adjacent"] - 168["Sweep Extrusion
[4948, 4969, 5]"] + 168["Sweep Extrusion
[4948, 4969, 6]"] 169[Wall] 170["SweepEdge Opposite"] 171["SweepEdge Adjacent"] - 172["EdgeCut Fillet
[5010, 5521, 5]"] - 173["EdgeCut Fillet
[5010, 5521, 5]"] - 174["EdgeCut Fillet
[5010, 5521, 5]"] - 175["EdgeCut Fillet
[5010, 5521, 5]"] - 176["EdgeCut Fillet
[5010, 5521, 5]"] - 177["EdgeCut Fillet
[5010, 5521, 5]"] - 178["EdgeCut Fillet
[5010, 5521, 5]"] - 179["EdgeCut Fillet
[5010, 5521, 5]"] - 180["Plane
[204, 231, 6]"] - 184["Sweep Extrusion
[333, 353, 6]"] + 172["EdgeCut Fillet
[5010, 5521, 6]"] + 173["EdgeCut Fillet
[5010, 5521, 6]"] + 174["EdgeCut Fillet
[5010, 5521, 6]"] + 175["EdgeCut Fillet
[5010, 5521, 6]"] + 176["EdgeCut Fillet
[5010, 5521, 6]"] + 177["EdgeCut Fillet
[5010, 5521, 6]"] + 178["EdgeCut Fillet
[5010, 5521, 6]"] + 179["EdgeCut Fillet
[5010, 5521, 6]"] + 180["Plane
[204, 231, 7]"] + 184["Sweep Extrusion
[333, 353, 7]"] 185[Wall] 186["Cap Start"] 187["Cap End"] 188["SweepEdge Opposite"] 189["SweepEdge Adjacent"] - 190["Plane
[467, 495, 6]"] - 194["Sweep Extrusion
[543, 564, 6]"] + 190["Plane
[467, 495, 7]"] + 194["Sweep Extrusion
[543, 564, 7]"] 195[Wall] 196["Cap Start"] 197["Cap End"] 198["SweepEdge Opposite"] 199["SweepEdge Adjacent"] - 200["EdgeCut Fillet
[394, 452, 6]"] - 201["EdgeCut Fillet
[394, 452, 6]"] - 202["Plane
[193, 210, 7]"] - 218["Sweep Revolve
[764, 846, 7]"] + 200["EdgeCut Fillet
[394, 452, 7]"] + 201["EdgeCut Fillet
[394, 452, 7]"] + 202["Plane
[193, 210, 8]"] + 218["Sweep Revolve
[764, 846, 8]"] 219[Wall] 220[Wall] 221[Wall] @@ -304,14 +304,14 @@ flowchart LR 239["SweepEdge Adjacent"] 240["SweepEdge Adjacent"] 241["SweepEdge Adjacent"] - 242["Plane
[1053, 1091, 7]"] - 250["Plane
[1053, 1091, 7]"] - 258["Plane
[1053, 1091, 7]"] + 242["Plane
[1053, 1091, 8]"] + 250["Plane
[1053, 1091, 8]"] + 258["Plane
[1053, 1091, 8]"] 260["SweepEdge Opposite"] 261["SweepEdge Opposite"] 262["SweepEdge Opposite"] 263["SweepEdge Opposite"] - 266["Sweep Loft
[2378, 2498, 7]"] + 266["Sweep Loft
[2378, 2498, 8]"] 267[Wall] 268[Wall] 269[Wall] @@ -322,17 +322,17 @@ flowchart LR 274["SweepEdge Adjacent"] 275["SweepEdge Adjacent"] 276["SweepEdge Adjacent"] - 277["StartSketchOnFace
[1597, 1640, 5]"] - 278["StartSketchOnFace
[2498, 2541, 5]"] - 279["StartSketchOnFace
[3197, 3234, 5]"] - 280["StartSketchOnFace
[3421, 3458, 5]"] - 281["StartSketchOnFace
[4746, 4789, 5]"] - 282["StartSketchOnFace
[4861, 4900, 5]"] - 283["StartSketchOnPlane
[244, 271, 6]"] - 284["StartSketchOnPlane
[453, 496, 6]"] - 285["StartSketchOnPlane
[1039, 1092, 7]"] - 286["StartSketchOnPlane
[1039, 1092, 7]"] - 287["StartSketchOnPlane
[1039, 1092, 7]"] + 277["StartSketchOnFace
[1597, 1640, 6]"] + 278["StartSketchOnFace
[2498, 2541, 6]"] + 279["StartSketchOnFace
[3197, 3234, 6]"] + 280["StartSketchOnFace
[3421, 3458, 6]"] + 281["StartSketchOnFace
[4746, 4789, 6]"] + 282["StartSketchOnFace
[4861, 4900, 6]"] + 283["StartSketchOnPlane
[244, 271, 7]"] + 284["StartSketchOnPlane
[453, 496, 7]"] + 285["StartSketchOnPlane
[1039, 1092, 8]"] + 286["StartSketchOnPlane
[1039, 1092, 8]"] + 287["StartSketchOnPlane
[1039, 1092, 8]"] 1 --- 2 1 --- 9 1 --- 12 diff --git a/rust/kcl-lib/tests/kcl_samples/axial-fan/ops.snap b/rust/kcl-lib/tests/kcl_samples/axial-fan/ops.snap index d6e2d8005..d4e4ecd8d 100644 --- a/rust/kcl-lib/tests/kcl_samples/axial-fan/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/axial-fan/ops.snap @@ -8,7 +8,7 @@ description: Operations executed axial-fan.kcl "group": { "type": "ModuleInstance", "name": "fanHousing", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, @@ -752,7 +752,7 @@ description: Operations executed axial-fan.kcl "group": { "type": "ModuleInstance", "name": "motor", - "moduleId": 6 + "moduleId": 7 }, "sourceRange": [] }, @@ -967,7 +967,7 @@ description: Operations executed axial-fan.kcl "group": { "type": "ModuleInstance", "name": "fan", - "moduleId": 7 + "moduleId": 8 }, "sourceRange": [] }, @@ -1080,7 +1080,7 @@ description: Operations executed axial-fan.kcl "functionSourceRange": [ 997, 2279, - 7 + 8 ], "unlabeledArg": null, "labeledArgs": {} @@ -1359,7 +1359,7 @@ description: Operations executed axial-fan.kcl "functionSourceRange": [ 997, 2279, - 7 + 8 ], "unlabeledArg": null, "labeledArgs": {} @@ -1638,7 +1638,7 @@ description: Operations executed axial-fan.kcl "functionSourceRange": [ 997, 2279, - 7 + 8 ], "unlabeledArg": null, "labeledArgs": {} diff --git a/rust/kcl-lib/tests/kcl_samples/axial-fan/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/axial-fan/program_memory.snap index ebd40e61d..7fd249e39 100644 --- a/rust/kcl-lib/tests/kcl_samples/axial-fan/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/axial-fan/program_memory.snap @@ -5,14 +5,14 @@ description: Variables in memory after executing axial-fan.kcl { "fan": { "type": "Module", - "value": 7 + "value": 8 }, "fanHousing": { "type": "Module", - "value": 5 + "value": 6 }, "motor": { "type": "Module", - "value": 6 + "value": 7 } } diff --git a/rust/kcl-lib/tests/kcl_samples/ball-bearing/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/ball-bearing/artifact_commands.snap index e9a70ddbc..adacf7eae 100644 --- a/rust/kcl-lib/tests/kcl_samples/ball-bearing/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/ball-bearing/artifact_commands.snap @@ -1355,6 +1355,14 @@ description: Artifact commands ball-bearing.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/bench/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/bench/artifact_commands.snap index 2eb154014..afad34770 100644 --- a/rust/kcl-lib/tests/kcl_samples/bench/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/bench/artifact_commands.snap @@ -264,6 +264,14 @@ description: Artifact commands bench.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/bench/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/bench/artifact_graph_flowchart.snap.md index 7d84273be..17df5cd1c 100644 --- a/rust/kcl-lib/tests/kcl_samples/bench/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/bench/artifact_graph_flowchart.snap.md @@ -1,239 +1,239 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[361, 394, 5]"] - 3["Segment
[402, 428, 5]"] - 4["Segment
[436, 498, 5]"] - 5["Segment
[506, 568, 5]"] - 6["Segment
[576, 639, 5]"] - 7["Segment
[647, 672, 5]"] - 8["Segment
[680, 700, 5]"] - 9["Segment
[708, 732, 5]"] - 10["Segment
[740, 802, 5]"] - 11["Segment
[810, 835, 5]"] - 12["Segment
[843, 863, 5]"] - 13["Segment
[871, 895, 5]"] - 14["Segment
[903, 964, 5]"] - 15["Segment
[972, 1033, 5]"] - 16["Segment
[1041, 1066, 5]"] - 17["Segment
[1074, 1098, 5]"] - 18["Segment
[1106, 1168, 5]"] - 19["Segment
[1176, 1201, 5]"] - 20["Segment
[1209, 1236, 5]"] - 21["Segment
[1244, 1305, 5]"] - 22["Segment
[1313, 1357, 5]"] - 23["Segment
[1365, 1372, 5]"] + 2["Path
[361, 394, 6]"] + 3["Segment
[402, 428, 6]"] + 4["Segment
[436, 498, 6]"] + 5["Segment
[506, 568, 6]"] + 6["Segment
[576, 639, 6]"] + 7["Segment
[647, 672, 6]"] + 8["Segment
[680, 700, 6]"] + 9["Segment
[708, 732, 6]"] + 10["Segment
[740, 802, 6]"] + 11["Segment
[810, 835, 6]"] + 12["Segment
[843, 863, 6]"] + 13["Segment
[871, 895, 6]"] + 14["Segment
[903, 964, 6]"] + 15["Segment
[972, 1033, 6]"] + 16["Segment
[1041, 1066, 6]"] + 17["Segment
[1074, 1098, 6]"] + 18["Segment
[1106, 1168, 6]"] + 19["Segment
[1176, 1201, 6]"] + 20["Segment
[1209, 1236, 6]"] + 21["Segment
[1244, 1305, 6]"] + 22["Segment
[1313, 1357, 6]"] + 23["Segment
[1365, 1372, 6]"] 24[Solid2d] end subgraph path89 [Path] - 89["Path
[361, 394, 5]"] - 90["Segment
[402, 428, 5]"] - 91["Segment
[436, 498, 5]"] - 92["Segment
[506, 568, 5]"] - 93["Segment
[576, 639, 5]"] - 94["Segment
[647, 672, 5]"] - 95["Segment
[680, 700, 5]"] - 96["Segment
[708, 732, 5]"] - 97["Segment
[740, 802, 5]"] - 98["Segment
[810, 835, 5]"] - 99["Segment
[843, 863, 5]"] - 100["Segment
[871, 895, 5]"] - 101["Segment
[903, 964, 5]"] - 102["Segment
[972, 1033, 5]"] - 103["Segment
[1041, 1066, 5]"] - 104["Segment
[1074, 1098, 5]"] - 105["Segment
[1106, 1168, 5]"] - 106["Segment
[1176, 1201, 5]"] - 107["Segment
[1209, 1236, 5]"] - 108["Segment
[1244, 1305, 5]"] - 109["Segment
[1313, 1357, 5]"] - 110["Segment
[1365, 1372, 5]"] + 89["Path
[361, 394, 6]"] + 90["Segment
[402, 428, 6]"] + 91["Segment
[436, 498, 6]"] + 92["Segment
[506, 568, 6]"] + 93["Segment
[576, 639, 6]"] + 94["Segment
[647, 672, 6]"] + 95["Segment
[680, 700, 6]"] + 96["Segment
[708, 732, 6]"] + 97["Segment
[740, 802, 6]"] + 98["Segment
[810, 835, 6]"] + 99["Segment
[843, 863, 6]"] + 100["Segment
[871, 895, 6]"] + 101["Segment
[903, 964, 6]"] + 102["Segment
[972, 1033, 6]"] + 103["Segment
[1041, 1066, 6]"] + 104["Segment
[1074, 1098, 6]"] + 105["Segment
[1106, 1168, 6]"] + 106["Segment
[1176, 1201, 6]"] + 107["Segment
[1209, 1236, 6]"] + 108["Segment
[1244, 1305, 6]"] + 109["Segment
[1313, 1357, 6]"] + 110["Segment
[1365, 1372, 6]"] 111[Solid2d] end subgraph path176 [Path] - 176["Path
[361, 394, 5]"] - 177["Segment
[402, 428, 5]"] - 178["Segment
[436, 498, 5]"] - 179["Segment
[506, 568, 5]"] - 180["Segment
[576, 639, 5]"] - 181["Segment
[647, 672, 5]"] - 182["Segment
[680, 700, 5]"] - 183["Segment
[708, 732, 5]"] - 184["Segment
[740, 802, 5]"] - 185["Segment
[810, 835, 5]"] - 186["Segment
[843, 863, 5]"] - 187["Segment
[871, 895, 5]"] - 188["Segment
[903, 964, 5]"] - 189["Segment
[972, 1033, 5]"] - 190["Segment
[1041, 1066, 5]"] - 191["Segment
[1074, 1098, 5]"] - 192["Segment
[1106, 1168, 5]"] - 193["Segment
[1176, 1201, 5]"] - 194["Segment
[1209, 1236, 5]"] - 195["Segment
[1244, 1305, 5]"] - 196["Segment
[1313, 1357, 5]"] - 197["Segment
[1365, 1372, 5]"] + 176["Path
[361, 394, 6]"] + 177["Segment
[402, 428, 6]"] + 178["Segment
[436, 498, 6]"] + 179["Segment
[506, 568, 6]"] + 180["Segment
[576, 639, 6]"] + 181["Segment
[647, 672, 6]"] + 182["Segment
[680, 700, 6]"] + 183["Segment
[708, 732, 6]"] + 184["Segment
[740, 802, 6]"] + 185["Segment
[810, 835, 6]"] + 186["Segment
[843, 863, 6]"] + 187["Segment
[871, 895, 6]"] + 188["Segment
[903, 964, 6]"] + 189["Segment
[972, 1033, 6]"] + 190["Segment
[1041, 1066, 6]"] + 191["Segment
[1074, 1098, 6]"] + 192["Segment
[1106, 1168, 6]"] + 193["Segment
[1176, 1201, 6]"] + 194["Segment
[1209, 1236, 6]"] + 195["Segment
[1244, 1305, 6]"] + 196["Segment
[1313, 1357, 6]"] + 197["Segment
[1365, 1372, 6]"] 198[Solid2d] end subgraph path262 [Path] - 262["Path
[361, 394, 5]"] - 263["Segment
[402, 428, 5]"] - 264["Segment
[436, 498, 5]"] - 265["Segment
[506, 568, 5]"] - 266["Segment
[576, 639, 5]"] - 267["Segment
[647, 672, 5]"] - 268["Segment
[680, 700, 5]"] - 269["Segment
[708, 732, 5]"] - 270["Segment
[740, 802, 5]"] - 271["Segment
[810, 835, 5]"] - 272["Segment
[843, 863, 5]"] - 273["Segment
[871, 895, 5]"] - 274["Segment
[903, 964, 5]"] - 275["Segment
[972, 1033, 5]"] - 276["Segment
[1041, 1066, 5]"] - 277["Segment
[1074, 1098, 5]"] - 278["Segment
[1106, 1168, 5]"] - 279["Segment
[1176, 1201, 5]"] - 280["Segment
[1209, 1236, 5]"] - 281["Segment
[1244, 1305, 5]"] - 282["Segment
[1313, 1357, 5]"] - 283["Segment
[1365, 1372, 5]"] + 262["Path
[361, 394, 6]"] + 263["Segment
[402, 428, 6]"] + 264["Segment
[436, 498, 6]"] + 265["Segment
[506, 568, 6]"] + 266["Segment
[576, 639, 6]"] + 267["Segment
[647, 672, 6]"] + 268["Segment
[680, 700, 6]"] + 269["Segment
[708, 732, 6]"] + 270["Segment
[740, 802, 6]"] + 271["Segment
[810, 835, 6]"] + 272["Segment
[843, 863, 6]"] + 273["Segment
[871, 895, 6]"] + 274["Segment
[903, 964, 6]"] + 275["Segment
[972, 1033, 6]"] + 276["Segment
[1041, 1066, 6]"] + 277["Segment
[1074, 1098, 6]"] + 278["Segment
[1106, 1168, 6]"] + 279["Segment
[1176, 1201, 6]"] + 280["Segment
[1209, 1236, 6]"] + 281["Segment
[1244, 1305, 6]"] + 282["Segment
[1313, 1357, 6]"] + 283["Segment
[1365, 1372, 6]"] 284[Solid2d] end subgraph path349 [Path] - 349["Path
[361, 394, 5]"] - 350["Segment
[402, 428, 5]"] - 351["Segment
[436, 498, 5]"] - 352["Segment
[506, 568, 5]"] - 353["Segment
[576, 639, 5]"] - 354["Segment
[647, 672, 5]"] - 355["Segment
[680, 700, 5]"] - 356["Segment
[708, 732, 5]"] - 357["Segment
[740, 802, 5]"] - 358["Segment
[810, 835, 5]"] - 359["Segment
[843, 863, 5]"] - 360["Segment
[871, 895, 5]"] - 361["Segment
[903, 964, 5]"] - 362["Segment
[972, 1033, 5]"] - 363["Segment
[1041, 1066, 5]"] - 364["Segment
[1074, 1098, 5]"] - 365["Segment
[1106, 1168, 5]"] - 366["Segment
[1176, 1201, 5]"] - 367["Segment
[1209, 1236, 5]"] - 368["Segment
[1244, 1305, 5]"] - 369["Segment
[1313, 1357, 5]"] - 370["Segment
[1365, 1372, 5]"] + 349["Path
[361, 394, 6]"] + 350["Segment
[402, 428, 6]"] + 351["Segment
[436, 498, 6]"] + 352["Segment
[506, 568, 6]"] + 353["Segment
[576, 639, 6]"] + 354["Segment
[647, 672, 6]"] + 355["Segment
[680, 700, 6]"] + 356["Segment
[708, 732, 6]"] + 357["Segment
[740, 802, 6]"] + 358["Segment
[810, 835, 6]"] + 359["Segment
[843, 863, 6]"] + 360["Segment
[871, 895, 6]"] + 361["Segment
[903, 964, 6]"] + 362["Segment
[972, 1033, 6]"] + 363["Segment
[1041, 1066, 6]"] + 364["Segment
[1074, 1098, 6]"] + 365["Segment
[1106, 1168, 6]"] + 366["Segment
[1176, 1201, 6]"] + 367["Segment
[1209, 1236, 6]"] + 368["Segment
[1244, 1305, 6]"] + 369["Segment
[1313, 1357, 6]"] + 370["Segment
[1365, 1372, 6]"] 371[Solid2d] end subgraph path435 [Path] - 435["Path
[361, 394, 5]"] - 436["Segment
[402, 428, 5]"] - 437["Segment
[436, 498, 5]"] - 438["Segment
[506, 568, 5]"] - 439["Segment
[576, 639, 5]"] - 440["Segment
[647, 672, 5]"] - 441["Segment
[680, 700, 5]"] - 442["Segment
[708, 732, 5]"] - 443["Segment
[740, 802, 5]"] - 444["Segment
[810, 835, 5]"] - 445["Segment
[843, 863, 5]"] - 446["Segment
[871, 895, 5]"] - 447["Segment
[903, 964, 5]"] - 448["Segment
[972, 1033, 5]"] - 449["Segment
[1041, 1066, 5]"] - 450["Segment
[1074, 1098, 5]"] - 451["Segment
[1106, 1168, 5]"] - 452["Segment
[1176, 1201, 5]"] - 453["Segment
[1209, 1236, 5]"] - 454["Segment
[1244, 1305, 5]"] - 455["Segment
[1313, 1357, 5]"] - 456["Segment
[1365, 1372, 5]"] + 435["Path
[361, 394, 6]"] + 436["Segment
[402, 428, 6]"] + 437["Segment
[436, 498, 6]"] + 438["Segment
[506, 568, 6]"] + 439["Segment
[576, 639, 6]"] + 440["Segment
[647, 672, 6]"] + 441["Segment
[680, 700, 6]"] + 442["Segment
[708, 732, 6]"] + 443["Segment
[740, 802, 6]"] + 444["Segment
[810, 835, 6]"] + 445["Segment
[843, 863, 6]"] + 446["Segment
[871, 895, 6]"] + 447["Segment
[903, 964, 6]"] + 448["Segment
[972, 1033, 6]"] + 449["Segment
[1041, 1066, 6]"] + 450["Segment
[1074, 1098, 6]"] + 451["Segment
[1106, 1168, 6]"] + 452["Segment
[1176, 1201, 6]"] + 453["Segment
[1209, 1236, 6]"] + 454["Segment
[1244, 1305, 6]"] + 455["Segment
[1313, 1357, 6]"] + 456["Segment
[1365, 1372, 6]"] 457[Solid2d] end subgraph path522 [Path] - 522["Path
[1762, 1786, 5]"] + 522["Path
[1762, 1786, 6]"] end subgraph path523 [Path] - 523["Path
[1794, 1920, 5]"] - 524["Segment
[1794, 1920, 5]"] - 525["Segment
[1794, 1920, 5]"] - 526["Segment
[1794, 1920, 5]"] - 527["Segment
[1794, 1920, 5]"] - 528["Segment
[1794, 1920, 5]"] - 529["Segment
[1794, 1920, 5]"] - 530["Segment
[1794, 1920, 5]"] + 523["Path
[1794, 1920, 6]"] + 524["Segment
[1794, 1920, 6]"] + 525["Segment
[1794, 1920, 6]"] + 526["Segment
[1794, 1920, 6]"] + 527["Segment
[1794, 1920, 6]"] + 528["Segment
[1794, 1920, 6]"] + 529["Segment
[1794, 1920, 6]"] + 530["Segment
[1794, 1920, 6]"] 531[Solid2d] end subgraph path553 [Path] - 553["Path
[1762, 1786, 5]"] + 553["Path
[1762, 1786, 6]"] end subgraph path554 [Path] - 554["Path
[1794, 1920, 5]"] - 555["Segment
[1794, 1920, 5]"] - 556["Segment
[1794, 1920, 5]"] - 557["Segment
[1794, 1920, 5]"] - 558["Segment
[1794, 1920, 5]"] - 559["Segment
[1794, 1920, 5]"] - 560["Segment
[1794, 1920, 5]"] - 561["Segment
[1794, 1920, 5]"] + 554["Path
[1794, 1920, 6]"] + 555["Segment
[1794, 1920, 6]"] + 556["Segment
[1794, 1920, 6]"] + 557["Segment
[1794, 1920, 6]"] + 558["Segment
[1794, 1920, 6]"] + 559["Segment
[1794, 1920, 6]"] + 560["Segment
[1794, 1920, 6]"] + 561["Segment
[1794, 1920, 6]"] 562[Solid2d] end subgraph path585 [Path] - 585["Path
[2196, 2223, 5]"] - 586["Segment
[2231, 2253, 5]"] - 587["Segment
[2261, 2283, 5]"] - 588["Segment
[2291, 2313, 5]"] - 589["Segment
[2321, 2344, 5]"] - 590["Segment
[2352, 2375, 5]"] - 591["Segment
[2383, 2418, 5]"] - 592["Segment
[2426, 2433, 5]"] + 585["Path
[2196, 2223, 6]"] + 586["Segment
[2231, 2253, 6]"] + 587["Segment
[2261, 2283, 6]"] + 588["Segment
[2291, 2313, 6]"] + 589["Segment
[2321, 2344, 6]"] + 590["Segment
[2352, 2375, 6]"] + 591["Segment
[2383, 2418, 6]"] + 592["Segment
[2426, 2433, 6]"] 593[Solid2d] end subgraph path618 [Path] - 618["Path
[2705, 2734, 5]"] - 619["Segment
[2742, 2777, 5]"] - 620["Segment
[2785, 2810, 5]"] - 621["Segment
[2818, 2854, 5]"] - 622["Segment
[2862, 2886, 5]"] - 623["Segment
[2894, 2928, 5]"] - 624["Segment
[2936, 2971, 5]"] - 625["Segment
[2979, 2986, 5]"] + 618["Path
[2705, 2734, 6]"] + 619["Segment
[2742, 2777, 6]"] + 620["Segment
[2785, 2810, 6]"] + 621["Segment
[2818, 2854, 6]"] + 622["Segment
[2862, 2886, 6]"] + 623["Segment
[2894, 2928, 6]"] + 624["Segment
[2936, 2971, 6]"] + 625["Segment
[2979, 2986, 6]"] 626[Solid2d] end subgraph path650 [Path] - 650["Path
[3261, 3288, 5]"] - 651["Segment
[3296, 3315, 5]"] - 652["Segment
[3323, 3372, 5]"] + 650["Path
[3261, 3288, 6]"] + 651["Segment
[3296, 3315, 6]"] + 652["Segment
[3323, 3372, 6]"] end subgraph path654 [Path] - 654["Path
[3472, 3505, 5]"] - 655["Segment
[3513, 3532, 5]"] - 656["Segment
[3540, 3562, 5]"] - 657["Segment
[3570, 3593, 5]"] - 658["Segment
[3601, 3621, 5]"] - 659["Segment
[3629, 3653, 5]"] - 660["Segment
[3661, 3684, 5]"] - 661["Segment
[3692, 3699, 5]"] + 654["Path
[3472, 3505, 6]"] + 655["Segment
[3513, 3532, 6]"] + 656["Segment
[3540, 3562, 6]"] + 657["Segment
[3570, 3593, 6]"] + 658["Segment
[3601, 3621, 6]"] + 659["Segment
[3629, 3653, 6]"] + 660["Segment
[3661, 3684, 6]"] + 661["Segment
[3692, 3699, 6]"] 662[Solid2d] end subgraph path688 [Path] - 688["Path
[3261, 3288, 5]"] - 689["Segment
[3296, 3315, 5]"] - 690["Segment
[3323, 3372, 5]"] + 688["Path
[3261, 3288, 6]"] + 689["Segment
[3296, 3315, 6]"] + 690["Segment
[3323, 3372, 6]"] end subgraph path692 [Path] - 692["Path
[3472, 3505, 5]"] - 693["Segment
[3513, 3532, 5]"] - 694["Segment
[3540, 3562, 5]"] - 695["Segment
[3570, 3593, 5]"] - 696["Segment
[3601, 3621, 5]"] - 697["Segment
[3629, 3653, 5]"] - 698["Segment
[3661, 3684, 5]"] - 699["Segment
[3692, 3699, 5]"] + 692["Path
[3472, 3505, 6]"] + 693["Segment
[3513, 3532, 6]"] + 694["Segment
[3540, 3562, 6]"] + 695["Segment
[3570, 3593, 6]"] + 696["Segment
[3601, 3621, 6]"] + 697["Segment
[3629, 3653, 6]"] + 698["Segment
[3661, 3684, 6]"] + 699["Segment
[3692, 3699, 6]"] 700[Solid2d] end - 1["Plane
[333, 353, 5]"] - 25["Sweep Extrusion
[1460, 1498, 5]"] + 1["Plane
[333, 353, 6]"] + 25["Sweep Extrusion
[1460, 1498, 6]"] 26[Wall] 27[Wall] 28[Wall] @@ -296,8 +296,8 @@ flowchart LR 85["SweepEdge Adjacent"] 86["SweepEdge Opposite"] 87["SweepEdge Adjacent"] - 88["Plane
[333, 353, 5]"] - 112["Sweep Extrusion
[1536, 1575, 5]"] + 88["Plane
[333, 353, 6]"] + 112["Sweep Extrusion
[1536, 1575, 6]"] 113[Wall] 114[Wall] 115[Wall] @@ -361,7 +361,7 @@ flowchart LR 173["SweepEdge Opposite"] 174["SweepEdge Adjacent"] 175["Plane
[823, 865, 0]"] - 199["Sweep Extrusion
[1460, 1498, 5]"] + 199["Sweep Extrusion
[1460, 1498, 6]"] 200[Wall] 201[Wall] 202[Wall] @@ -424,7 +424,7 @@ flowchart LR 259["SweepEdge Adjacent"] 260["SweepEdge Opposite"] 261["SweepEdge Adjacent"] - 285["Sweep Extrusion
[1536, 1575, 5]"] + 285["Sweep Extrusion
[1536, 1575, 6]"] 286[Wall] 287[Wall] 288[Wall] @@ -488,7 +488,7 @@ flowchart LR 346["SweepEdge Opposite"] 347["SweepEdge Adjacent"] 348["Plane
[875, 916, 0]"] - 372["Sweep Extrusion
[1460, 1498, 5]"] + 372["Sweep Extrusion
[1460, 1498, 6]"] 373[Wall] 374[Wall] 375[Wall] @@ -551,7 +551,7 @@ flowchart LR 432["SweepEdge Adjacent"] 433["SweepEdge Opposite"] 434["SweepEdge Adjacent"] - 458["Sweep Extrusion
[1536, 1575, 5]"] + 458["Sweep Extrusion
[1536, 1575, 6]"] 459[Wall] 460[Wall] 461[Wall] @@ -615,7 +615,7 @@ flowchart LR 519["SweepEdge Opposite"] 520["SweepEdge Adjacent"] 521["Plane
[975, 1017, 0]"] - 532["Sweep Extrusion
[2022, 2046, 5]"] + 532["Sweep Extrusion
[2022, 2046, 6]"] 533[Wall] 534[Wall] 535[Wall] @@ -636,7 +636,7 @@ flowchart LR 550["SweepEdge Adjacent"] 551["SweepEdge Opposite"] 552["SweepEdge Adjacent"] - 563["Sweep Extrusion
[2088, 2112, 5]"] + 563["Sweep Extrusion
[2088, 2112, 6]"] 564[Wall] 565[Wall] 566[Wall] @@ -658,7 +658,7 @@ flowchart LR 582["SweepEdge Opposite"] 583["SweepEdge Adjacent"] 584["Plane
[1068, 1135, 0]"] - 594["Sweep Extrusion
[2596, 2620, 5]"] + 594["Sweep Extrusion
[2596, 2620, 6]"] 595[Wall] 596[Wall] 597[Wall] @@ -679,10 +679,10 @@ flowchart LR 612["SweepEdge Adjacent"] 613["SweepEdge Opposite"] 614["SweepEdge Adjacent"] - 615["Sweep Extrusion
[2596, 2620, 5]"] - 616["Sweep Extrusion
[2596, 2620, 5]"] + 615["Sweep Extrusion
[2596, 2620, 6]"] + 616["Sweep Extrusion
[2596, 2620, 6]"] 617["Plane
[1205, 1272, 0]"] - 627["Sweep Extrusion
[3156, 3180, 5]"] + 627["Sweep Extrusion
[3156, 3180, 6]"] 628[Wall] 629[Wall] 630[Wall] @@ -703,10 +703,10 @@ flowchart LR 645["SweepEdge Adjacent"] 646["SweepEdge Opposite"] 647["SweepEdge Adjacent"] - 648["Sweep Extrusion
[3156, 3180, 5]"] - 649["Plane
[3780, 3815, 5]"] - 653["Plane
[3846, 3875, 5]"] - 663["Sweep Sweep
[3887, 3914, 5]"] + 648["Sweep Extrusion
[3156, 3180, 6]"] + 649["Plane
[3780, 3815, 6]"] + 653["Plane
[3846, 3875, 6]"] + 663["Sweep Sweep
[3887, 3914, 6]"] 664[Wall] 665[Wall] 666[Wall] @@ -730,9 +730,9 @@ flowchart LR 684["SweepEdge Adjacent"] 685["SweepEdge Opposite"] 686["SweepEdge Adjacent"] - 687["Plane
[3780, 3815, 5]"] - 691["Plane
[3846, 3875, 5]"] - 701["Sweep Sweep
[3887, 3914, 5]"] + 687["Plane
[3780, 3815, 6]"] + 691["Plane
[3846, 3875, 6]"] + 701["Sweep Sweep
[3887, 3914, 6]"] 702[Wall] 703[Wall] 704[Wall] @@ -756,18 +756,18 @@ flowchart LR 722["SweepEdge Adjacent"] 723["SweepEdge Opposite"] 724["SweepEdge Adjacent"] - 725["StartSketchOnPlane
[333, 353, 5]"] - 726["StartSketchOnPlane
[333, 353, 5]"] - 727["StartSketchOnPlane
[333, 353, 5]"] - 728["StartSketchOnPlane
[333, 353, 5]"] - 729["StartSketchOnPlane
[1734, 1754, 5]"] - 730["StartSketchOnPlane
[1734, 1754, 5]"] - 731["StartSketchOnPlane
[2168, 2188, 5]"] - 732["StartSketchOnPlane
[2677, 2697, 5]"] - 733["StartSketchOnPlane
[3233, 3253, 5]"] - 734["StartSketchOnPlane
[3444, 3464, 5]"] - 735["StartSketchOnPlane
[3233, 3253, 5]"] - 736["StartSketchOnPlane
[3444, 3464, 5]"] + 725["StartSketchOnPlane
[333, 353, 6]"] + 726["StartSketchOnPlane
[333, 353, 6]"] + 727["StartSketchOnPlane
[333, 353, 6]"] + 728["StartSketchOnPlane
[333, 353, 6]"] + 729["StartSketchOnPlane
[1734, 1754, 6]"] + 730["StartSketchOnPlane
[1734, 1754, 6]"] + 731["StartSketchOnPlane
[2168, 2188, 6]"] + 732["StartSketchOnPlane
[2677, 2697, 6]"] + 733["StartSketchOnPlane
[3233, 3253, 6]"] + 734["StartSketchOnPlane
[3444, 3464, 6]"] + 735["StartSketchOnPlane
[3233, 3253, 6]"] + 736["StartSketchOnPlane
[3444, 3464, 6]"] 1 --- 2 2 --- 3 2 --- 4 diff --git a/rust/kcl-lib/tests/kcl_samples/bench/ops.snap b/rust/kcl-lib/tests/kcl_samples/bench/ops.snap index d59e17f09..e7f8be71c 100644 --- a/rust/kcl-lib/tests/kcl_samples/bench/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/bench/ops.snap @@ -11,7 +11,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 1412, 1683, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -26,7 +26,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 309, 1393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -91,7 +91,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 309, 1393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -277,7 +277,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 1412, 1683, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -292,7 +292,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 309, 1393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -357,7 +357,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 309, 1393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -543,7 +543,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 1412, 1683, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -558,7 +558,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 309, 1393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -623,7 +623,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 309, 1393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -809,7 +809,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 1962, 2125, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -824,7 +824,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 1703, 1941, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -889,7 +889,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 1703, 1941, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -987,7 +987,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 2547, 2633, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1002,7 +1002,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 2144, 2526, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1117,7 +1117,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 3102, 3193, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1132,7 +1132,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 2653, 3081, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1211,7 +1211,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 3739, 3927, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1256,7 +1256,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 3209, 3393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1319,7 +1319,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 3412, 3720, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1380,7 +1380,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 3739, 3927, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1425,7 +1425,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 3209, 3393, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1488,7 +1488,7 @@ description: Operations executed bench.kcl "functionSourceRange": [ 3412, 3720, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} diff --git a/rust/kcl-lib/tests/kcl_samples/bottle/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/bottle/artifact_commands.snap index ea0508781..fd97b94a5 100644 --- a/rust/kcl-lib/tests/kcl_samples/bottle/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/bottle/artifact_commands.snap @@ -533,6 +533,14 @@ description: Artifact commands bottle.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap index c8986cfa2..7d2d49c87 100644 --- a/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap @@ -1220,6 +1220,14 @@ description: Artifact commands bracket.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap index b483876ae..6b313dd42 100644 --- a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap @@ -226,6 +226,14 @@ description: Artifact commands car-wheel-assembly.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_graph_flowchart.snap.md index b61370823..ccf919414 100644 --- a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_graph_flowchart.snap.md @@ -1,264 +1,264 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[571, 622, 6]"] - 3["Segment
[571, 622, 6]"] + 2["Path
[571, 622, 7]"] + 3["Segment
[571, 622, 7]"] 4[Solid2d] end subgraph path11 [Path] - 11["Path
[812, 868, 6]"] - 12["Segment
[812, 868, 6]"] + 11["Path
[812, 868, 7]"] + 12["Segment
[812, 868, 7]"] 13[Solid2d] end subgraph path19 [Path] - 19["Path
[998, 1051, 6]"] - 20["Segment
[998, 1051, 6]"] + 19["Path
[998, 1051, 7]"] + 20["Segment
[998, 1051, 7]"] 21[Solid2d] end subgraph path30 [Path] - 30["Path
[1439, 1479, 6]"] - 31["Segment
[1439, 1479, 6]"] + 30["Path
[1439, 1479, 7]"] + 31["Segment
[1439, 1479, 7]"] 32[Solid2d] end subgraph path38 [Path] - 38["Path
[1588, 1639, 6]"] - 39["Segment
[1588, 1639, 6]"] + 38["Path
[1588, 1639, 7]"] + 39["Segment
[1588, 1639, 7]"] 40[Solid2d] end subgraph path47 [Path] - 47["Path
[1777, 1830, 6]"] - 48["Segment
[1777, 1830, 6]"] + 47["Path
[1777, 1830, 7]"] + 48["Segment
[1777, 1830, 7]"] 49[Solid2d] end subgraph path58 [Path] - 58["Path
[2078, 2150, 6]"] - 59["Segment
[2078, 2150, 6]"] + 58["Path
[2078, 2150, 7]"] + 59["Segment
[2078, 2150, 7]"] 60[Solid2d] end subgraph path81 [Path] - 81["Path
[2412, 2443, 6]"] - 82["Segment
[2449, 2469, 6]"] - 83["Segment
[2475, 2495, 6]"] - 84["Segment
[2501, 2522, 6]"] - 85["Segment
[2528, 2584, 6]"] - 86["Segment
[2590, 2597, 6]"] + 81["Path
[2412, 2443, 7]"] + 82["Segment
[2449, 2469, 7]"] + 83["Segment
[2475, 2495, 7]"] + 84["Segment
[2501, 2522, 7]"] + 85["Segment
[2528, 2584, 7]"] + 86["Segment
[2590, 2597, 7]"] 87[Solid2d] end subgraph path106 [Path] - 106["Path
[2904, 2936, 6]"] - 107["Segment
[2942, 2963, 6]"] - 108["Segment
[2969, 2989, 6]"] - 109["Segment
[2995, 3015, 6]"] - 110["Segment
[3021, 3077, 6]"] - 111["Segment
[3083, 3090, 6]"] + 106["Path
[2904, 2936, 7]"] + 107["Segment
[2942, 2963, 7]"] + 108["Segment
[2969, 2989, 7]"] + 109["Segment
[2995, 3015, 7]"] + 110["Segment
[3021, 3077, 7]"] + 111["Segment
[3083, 3090, 7]"] 112[Solid2d] end subgraph path132 [Path] - 132["Path
[354, 410, 5]"] - 133["Segment
[354, 410, 5]"] + 132["Path
[354, 410, 6]"] + 133["Segment
[354, 410, 6]"] 134[Solid2d] end subgraph path135 [Path] - 135["Path
[421, 477, 5]"] - 136["Segment
[421, 477, 5]"] + 135["Path
[421, 477, 6]"] + 136["Segment
[421, 477, 6]"] 137[Solid2d] end subgraph path144 [Path] - 144["Path
[647, 703, 5]"] - 145["Segment
[647, 703, 5]"] + 144["Path
[647, 703, 6]"] + 145["Segment
[647, 703, 6]"] 146[Solid2d] end subgraph path147 [Path] - 147["Path
[714, 770, 5]"] - 148["Segment
[714, 770, 5]"] + 147["Path
[714, 770, 6]"] + 148["Segment
[714, 770, 6]"] 149[Solid2d] end subgraph path156 [Path] - 156["Path
[919, 973, 5]"] - 157["Segment
[919, 973, 5]"] + 156["Path
[919, 973, 6]"] + 157["Segment
[919, 973, 6]"] 158[Solid2d] end subgraph path167 [Path] - 167["Path
[1256, 1317, 5]"] - 168["Segment
[1256, 1317, 5]"] + 167["Path
[1256, 1317, 6]"] + 168["Segment
[1256, 1317, 6]"] 169[Solid2d] end subgraph path179 [Path] - 179["Path
[1675, 1721, 5]"] - 180["Segment
[1727, 1779, 5]"] - 181["Segment
[1785, 1858, 5]"] - 182["Segment
[1864, 1886, 5]"] - 183["Segment
[1892, 1948, 5]"] - 184["Segment
[1954, 1961, 5]"] + 179["Path
[1675, 1721, 6]"] + 180["Segment
[1727, 1779, 6]"] + 181["Segment
[1785, 1858, 6]"] + 182["Segment
[1864, 1886, 6]"] + 183["Segment
[1892, 1948, 6]"] + 184["Segment
[1954, 1961, 6]"] 185[Solid2d] end subgraph path195 [Path] - 195["Path
[2093, 2139, 5]"] - 196["Segment
[2145, 2197, 5]"] - 197["Segment
[2203, 2278, 5]"] - 198["Segment
[2284, 2321, 5]"] - 199["Segment
[2327, 2383, 5]"] - 200["Segment
[2389, 2396, 5]"] + 195["Path
[2093, 2139, 6]"] + 196["Segment
[2145, 2197, 6]"] + 197["Segment
[2203, 2278, 6]"] + 198["Segment
[2284, 2321, 6]"] + 199["Segment
[2327, 2383, 6]"] + 200["Segment
[2389, 2396, 6]"] 201[Solid2d] end subgraph path212 [Path] - 212["Path
[2877, 2924, 5]"] - 213["Segment
[2932, 3269, 5]"] - 214["Segment
[3277, 3309, 5]"] - 215["Segment
[3317, 3658, 5]"] - 216["Segment
[3666, 3722, 5]"] - 217["Segment
[3730, 3737, 5]"] + 212["Path
[2877, 2924, 6]"] + 213["Segment
[2932, 3269, 6]"] + 214["Segment
[3277, 3309, 6]"] + 215["Segment
[3317, 3658, 6]"] + 216["Segment
[3666, 3722, 6]"] + 217["Segment
[3730, 3737, 6]"] 218[Solid2d] end subgraph path235 [Path] - 235["Path
[2877, 2924, 5]"] - 236["Segment
[2932, 3269, 5]"] - 237["Segment
[3277, 3309, 5]"] - 238["Segment
[3317, 3658, 5]"] - 239["Segment
[3666, 3722, 5]"] - 240["Segment
[3730, 3737, 5]"] + 235["Path
[2877, 2924, 6]"] + 236["Segment
[2932, 3269, 6]"] + 237["Segment
[3277, 3309, 6]"] + 238["Segment
[3317, 3658, 6]"] + 239["Segment
[3666, 3722, 6]"] + 240["Segment
[3730, 3737, 6]"] 241[Solid2d] end subgraph path258 [Path] - 258["Path
[4265, 4360, 5]"] - 259["Segment
[4366, 4399, 5]"] - 260["Segment
[4405, 4456, 5]"] - 261["Segment
[4462, 4495, 5]"] - 262["Segment
[4501, 4551, 5]"] - 263["Segment
[4557, 4598, 5]"] - 264["Segment
[4604, 4653, 5]"] - 265["Segment
[4659, 4692, 5]"] - 266["Segment
[4698, 4732, 5]"] - 267["Segment
[4738, 4772, 5]"] - 268["Segment
[4778, 4830, 5]"] - 269["Segment
[4836, 4870, 5]"] - 270["Segment
[4876, 4952, 5]"] - 271["Segment
[4958, 4991, 5]"] - 272["Segment
[4997, 5073, 5]"] - 273["Segment
[5079, 5113, 5]"] - 274["Segment
[5119, 5193, 5]"] - 275["Segment
[5199, 5233, 5]"] - 276["Segment
[5239, 5290, 5]"] - 277["Segment
[5296, 5358, 5]"] - 278["Segment
[5364, 5415, 5]"] - 279["Segment
[5421, 5455, 5]"] - 280["Segment
[5461, 5494, 5]"] - 281["Segment
[5500, 5533, 5]"] - 282["Segment
[5539, 5546, 5]"] + 258["Path
[4265, 4360, 6]"] + 259["Segment
[4366, 4399, 6]"] + 260["Segment
[4405, 4456, 6]"] + 261["Segment
[4462, 4495, 6]"] + 262["Segment
[4501, 4551, 6]"] + 263["Segment
[4557, 4598, 6]"] + 264["Segment
[4604, 4653, 6]"] + 265["Segment
[4659, 4692, 6]"] + 266["Segment
[4698, 4732, 6]"] + 267["Segment
[4738, 4772, 6]"] + 268["Segment
[4778, 4830, 6]"] + 269["Segment
[4836, 4870, 6]"] + 270["Segment
[4876, 4952, 6]"] + 271["Segment
[4958, 4991, 6]"] + 272["Segment
[4997, 5073, 6]"] + 273["Segment
[5079, 5113, 6]"] + 274["Segment
[5119, 5193, 6]"] + 275["Segment
[5199, 5233, 6]"] + 276["Segment
[5239, 5290, 6]"] + 277["Segment
[5296, 5358, 6]"] + 278["Segment
[5364, 5415, 6]"] + 279["Segment
[5421, 5455, 6]"] + 280["Segment
[5461, 5494, 6]"] + 281["Segment
[5500, 5533, 6]"] + 282["Segment
[5539, 5546, 6]"] 283[Solid2d] end subgraph path334 [Path] - 334["Path
[713, 753, 8]"] - 335["Segment
[761, 808, 8]"] - 336["Segment
[816, 852, 8]"] - 337["Segment
[860, 890, 8]"] - 338["Segment
[898, 943, 8]"] - 339["Segment
[951, 991, 8]"] - 340["Segment
[999, 1034, 8]"] - 341["Segment
[1042, 1080, 8]"] - 342["Segment
[1088, 1110, 8]"] - 343["Segment
[1118, 1125, 8]"] + 334["Path
[713, 753, 9]"] + 335["Segment
[761, 808, 9]"] + 336["Segment
[816, 852, 9]"] + 337["Segment
[860, 890, 9]"] + 338["Segment
[898, 943, 9]"] + 339["Segment
[951, 991, 9]"] + 340["Segment
[999, 1034, 9]"] + 341["Segment
[1042, 1080, 9]"] + 342["Segment
[1088, 1110, 9]"] + 343["Segment
[1118, 1125, 9]"] 344[Solid2d] end subgraph path365 [Path] - 365["Path
[511, 592, 7]"] - 366["Segment
[598, 699, 7]"] - 367["Segment
[705, 763, 7]"] - 368["Segment
[769, 853, 7]"] - 369["Segment
[859, 918, 7]"] - 370["Segment
[924, 1009, 7]"] - 371["Segment
[1015, 1074, 7]"] - 372["Segment
[1080, 1203, 7]"] - 373["Segment
[1209, 1268, 7]"] - 374["Segment
[1274, 1409, 7]"] - 375["Segment
[1415, 1474, 7]"] - 376["Segment
[1480, 1604, 7]"] - 377["Segment
[1610, 1669, 7]"] - 378["Segment
[1675, 1760, 7]"] - 379["Segment
[1766, 1825, 7]"] - 380["Segment
[1831, 1916, 7]"] - 381["Segment
[1922, 1980, 7]"] - 382["Segment
[1986, 1993, 7]"] + 365["Path
[511, 592, 8]"] + 366["Segment
[598, 699, 8]"] + 367["Segment
[705, 763, 8]"] + 368["Segment
[769, 853, 8]"] + 369["Segment
[859, 918, 8]"] + 370["Segment
[924, 1009, 8]"] + 371["Segment
[1015, 1074, 8]"] + 372["Segment
[1080, 1203, 8]"] + 373["Segment
[1209, 1268, 8]"] + 374["Segment
[1274, 1409, 8]"] + 375["Segment
[1415, 1474, 8]"] + 376["Segment
[1480, 1604, 8]"] + 377["Segment
[1610, 1669, 8]"] + 378["Segment
[1675, 1760, 8]"] + 379["Segment
[1766, 1825, 8]"] + 380["Segment
[1831, 1916, 8]"] + 381["Segment
[1922, 1980, 8]"] + 382["Segment
[1986, 1993, 8]"] 383[Solid2d] end subgraph path439 [Path] - 439["Path
[487, 544, 9]"] - 440["Segment
[550, 684, 9]"] - 441["Segment
[690, 737, 9]"] - 442["Segment
[743, 840, 9]"] - 443["Segment
[846, 878, 9]"] - 444["Segment
[884, 916, 9]"] - 445["Segment
[922, 953, 9]"] - 446["Segment
[959, 1074, 9]"] - 447["Segment
[1080, 1112, 9]"] - 448["Segment
[1118, 1150, 9]"] - 449["Segment
[1156, 1187, 9]"] - 450["Segment
[1193, 1286, 9]"] - 451["Segment
[1292, 1339, 9]"] - 452["Segment
[1345, 1418, 9]"] - 453["Segment
[1424, 1431, 9]"] + 439["Path
[487, 544, 10]"] + 440["Segment
[550, 684, 10]"] + 441["Segment
[690, 737, 10]"] + 442["Segment
[743, 840, 10]"] + 443["Segment
[846, 878, 10]"] + 444["Segment
[884, 916, 10]"] + 445["Segment
[922, 953, 10]"] + 446["Segment
[959, 1074, 10]"] + 447["Segment
[1080, 1112, 10]"] + 448["Segment
[1118, 1150, 10]"] + 449["Segment
[1156, 1187, 10]"] + 450["Segment
[1193, 1286, 10]"] + 451["Segment
[1292, 1339, 10]"] + 452["Segment
[1345, 1418, 10]"] + 453["Segment
[1424, 1431, 10]"] 454[Solid2d] end - 1["Plane
[548, 565, 6]"] - 5["Sweep Extrusion
[631, 687, 6]"] + 1["Plane
[548, 565, 7]"] + 5["Sweep Extrusion
[631, 687, 7]"] 6[Wall] 7["Cap Start"] 8["Cap End"] 9["SweepEdge Opposite"] 10["SweepEdge Adjacent"] - 14["Sweep Extrusion
[881, 943, 6]"] + 14["Sweep Extrusion
[881, 943, 7]"] 15[Wall] 16["Cap End"] 17["SweepEdge Opposite"] 18["SweepEdge Adjacent"] - 22["Sweep Extrusion
[1198, 1277, 6]"] + 22["Sweep Extrusion
[1198, 1277, 7]"] 23[Wall] 24["SweepEdge Opposite"] 25["SweepEdge Adjacent"] - 26["Sweep Extrusion
[1198, 1277, 6]"] - 27["Sweep Extrusion
[1198, 1277, 6]"] - 28["Sweep Extrusion
[1198, 1277, 6]"] - 29["Sweep Extrusion
[1198, 1277, 6]"] - 33["Sweep Extrusion
[1485, 1518, 6]"] + 26["Sweep Extrusion
[1198, 1277, 7]"] + 27["Sweep Extrusion
[1198, 1277, 7]"] + 28["Sweep Extrusion
[1198, 1277, 7]"] + 29["Sweep Extrusion
[1198, 1277, 7]"] + 33["Sweep Extrusion
[1485, 1518, 7]"] 34[Wall] 35["Cap End"] 36["SweepEdge Opposite"] 37["SweepEdge Adjacent"] - 41["Sweep Extrusion
[1654, 1719, 6]"] + 41["Sweep Extrusion
[1654, 1719, 7]"] 42[Wall] 43["Cap Start"] 44["Cap End"] 45["SweepEdge Opposite"] 46["SweepEdge Adjacent"] - 50["Sweep Extrusion
[1977, 2021, 6]"] + 50["Sweep Extrusion
[1977, 2021, 7]"] 51[Wall] 52["SweepEdge Opposite"] 53["SweepEdge Adjacent"] - 54["Sweep Extrusion
[1977, 2021, 6]"] - 55["Sweep Extrusion
[1977, 2021, 6]"] - 56["Sweep Extrusion
[1977, 2021, 6]"] - 57["Sweep Extrusion
[1977, 2021, 6]"] - 61["Sweep Extrusion
[2305, 2349, 6]"] + 54["Sweep Extrusion
[1977, 2021, 7]"] + 55["Sweep Extrusion
[1977, 2021, 7]"] + 56["Sweep Extrusion
[1977, 2021, 7]"] + 57["Sweep Extrusion
[1977, 2021, 7]"] + 61["Sweep Extrusion
[2305, 2349, 7]"] 62[Wall] 63["Cap End"] 64["SweepEdge Opposite"] 65["SweepEdge Adjacent"] - 66["Sweep Extrusion
[2305, 2349, 6]"] - 67["Sweep Extrusion
[2305, 2349, 6]"] - 68["Sweep Extrusion
[2305, 2349, 6]"] - 69["Sweep Extrusion
[2305, 2349, 6]"] - 70["Sweep Extrusion
[2305, 2349, 6]"] - 71["Sweep Extrusion
[2305, 2349, 6]"] - 72["Sweep Extrusion
[2305, 2349, 6]"] - 73["Sweep Extrusion
[2305, 2349, 6]"] - 74["Sweep Extrusion
[2305, 2349, 6]"] - 75["Sweep Extrusion
[2305, 2349, 6]"] - 76["Sweep Extrusion
[2305, 2349, 6]"] - 77["Sweep Extrusion
[2305, 2349, 6]"] - 78["Sweep Extrusion
[2305, 2349, 6]"] - 79["Sweep Extrusion
[2305, 2349, 6]"] - 80["Sweep Extrusion
[2305, 2349, 6]"] - 88["Sweep Extrusion
[2763, 2831, 6]"] + 66["Sweep Extrusion
[2305, 2349, 7]"] + 67["Sweep Extrusion
[2305, 2349, 7]"] + 68["Sweep Extrusion
[2305, 2349, 7]"] + 69["Sweep Extrusion
[2305, 2349, 7]"] + 70["Sweep Extrusion
[2305, 2349, 7]"] + 71["Sweep Extrusion
[2305, 2349, 7]"] + 72["Sweep Extrusion
[2305, 2349, 7]"] + 73["Sweep Extrusion
[2305, 2349, 7]"] + 74["Sweep Extrusion
[2305, 2349, 7]"] + 75["Sweep Extrusion
[2305, 2349, 7]"] + 76["Sweep Extrusion
[2305, 2349, 7]"] + 77["Sweep Extrusion
[2305, 2349, 7]"] + 78["Sweep Extrusion
[2305, 2349, 7]"] + 79["Sweep Extrusion
[2305, 2349, 7]"] + 80["Sweep Extrusion
[2305, 2349, 7]"] + 88["Sweep Extrusion
[2763, 2831, 7]"] 89[Wall] 90[Wall] 91[Wall] @@ -272,11 +272,11 @@ flowchart LR 99["SweepEdge Adjacent"] 100["SweepEdge Opposite"] 101["SweepEdge Adjacent"] - 102["Sweep Extrusion
[2763, 2831, 6]"] - 103["Sweep Extrusion
[2763, 2831, 6]"] - 104["Sweep Extrusion
[2763, 2831, 6]"] - 105["Sweep Extrusion
[2763, 2831, 6]"] - 113["Sweep Extrusion
[3242, 3316, 6]"] + 102["Sweep Extrusion
[2763, 2831, 7]"] + 103["Sweep Extrusion
[2763, 2831, 7]"] + 104["Sweep Extrusion
[2763, 2831, 7]"] + 105["Sweep Extrusion
[2763, 2831, 7]"] + 113["Sweep Extrusion
[3242, 3316, 7]"] 114[Wall] 115[Wall] 116[Wall] @@ -290,41 +290,41 @@ flowchart LR 124["SweepEdge Adjacent"] 125["SweepEdge Opposite"] 126["SweepEdge Adjacent"] - 127["Sweep Extrusion
[3242, 3316, 6]"] - 128["Sweep Extrusion
[3242, 3316, 6]"] - 129["Sweep Extrusion
[3242, 3316, 6]"] - 130["Sweep Extrusion
[3242, 3316, 6]"] - 131["Plane
[331, 348, 5]"] - 138["Sweep Extrusion
[487, 520, 5]"] + 127["Sweep Extrusion
[3242, 3316, 7]"] + 128["Sweep Extrusion
[3242, 3316, 7]"] + 129["Sweep Extrusion
[3242, 3316, 7]"] + 130["Sweep Extrusion
[3242, 3316, 7]"] + 131["Plane
[331, 348, 6]"] + 138["Sweep Extrusion
[487, 520, 6]"] 139[Wall] 140["Cap Start"] 141["Cap End"] 142["SweepEdge Opposite"] 143["SweepEdge Adjacent"] - 150["Sweep Extrusion
[780, 813, 5]"] + 150["Sweep Extrusion
[780, 813, 6]"] 151[Wall] 152["Cap Start"] 153["Cap End"] 154["SweepEdge Opposite"] 155["SweepEdge Adjacent"] - 159["Sweep Extrusion
[1120, 1154, 5]"] + 159["Sweep Extrusion
[1120, 1154, 6]"] 160[Wall] 161["SweepEdge Opposite"] 162["SweepEdge Adjacent"] - 163["Sweep Extrusion
[1120, 1154, 5]"] - 164["Sweep Extrusion
[1120, 1154, 5]"] - 165["Sweep Extrusion
[1120, 1154, 5]"] - 166["Sweep Extrusion
[1120, 1154, 5]"] - 170["Sweep Extrusion
[1464, 1498, 5]"] + 163["Sweep Extrusion
[1120, 1154, 6]"] + 164["Sweep Extrusion
[1120, 1154, 6]"] + 165["Sweep Extrusion
[1120, 1154, 6]"] + 166["Sweep Extrusion
[1120, 1154, 6]"] + 170["Sweep Extrusion
[1464, 1498, 6]"] 171[Wall] 172["SweepEdge Opposite"] 173["SweepEdge Adjacent"] - 174["Sweep Extrusion
[1464, 1498, 5]"] - 175["Sweep Extrusion
[1464, 1498, 5]"] - 176["Sweep Extrusion
[1464, 1498, 5]"] - 177["Sweep Extrusion
[1464, 1498, 5]"] - 178["Plane
[1652, 1669, 5]"] - 186["Sweep Revolve
[1967, 1984, 5]"] + 174["Sweep Extrusion
[1464, 1498, 6]"] + 175["Sweep Extrusion
[1464, 1498, 6]"] + 176["Sweep Extrusion
[1464, 1498, 6]"] + 177["Sweep Extrusion
[1464, 1498, 6]"] + 178["Plane
[1652, 1669, 6]"] + 186["Sweep Revolve
[1967, 1984, 6]"] 187[Wall] 188[Wall] 189[Wall] @@ -332,8 +332,8 @@ flowchart LR 191["SweepEdge Adjacent"] 192["SweepEdge Adjacent"] 193["SweepEdge Adjacent"] - 194["Plane
[2070, 2087, 5]"] - 202["Sweep Revolve
[2402, 2419, 5]"] + 194["Plane
[2070, 2087, 6]"] + 202["Sweep Revolve
[2402, 2419, 6]"] 203[Wall] 204[Wall] 205[Wall] @@ -342,8 +342,8 @@ flowchart LR 208["SweepEdge Adjacent"] 209["SweepEdge Adjacent"] 210["SweepEdge Adjacent"] - 211["Plane
[2846, 2869, 5]"] - 219["Sweep Extrusion
[3785, 3831, 5]"] + 211["Plane
[2846, 2869, 6]"] + 219["Sweep Extrusion
[3785, 3831, 6]"] 220[Wall] 221[Wall] 222[Wall] @@ -358,8 +358,8 @@ flowchart LR 231["SweepEdge Adjacent"] 232["SweepEdge Opposite"] 233["SweepEdge Adjacent"] - 234["Plane
[2846, 2869, 5]"] - 242["Sweep Extrusion
[3785, 3831, 5]"] + 234["Plane
[2846, 2869, 6]"] + 242["Sweep Extrusion
[3785, 3831, 6]"] 243[Wall] 244[Wall] 245[Wall] @@ -374,8 +374,8 @@ flowchart LR 254["SweepEdge Adjacent"] 255["SweepEdge Opposite"] 256["SweepEdge Adjacent"] - 257["Plane
[4242, 4259, 5]"] - 284["Sweep Revolve
[5552, 5569, 5]"] + 257["Plane
[4242, 4259, 6]"] + 284["Sweep Revolve
[5552, 5569, 6]"] 285[Wall] 286[Wall] 287[Wall] @@ -424,8 +424,8 @@ flowchart LR 330["SweepEdge Adjacent"] 331["SweepEdge Adjacent"] 332["SweepEdge Adjacent"] - 333["Plane
[679, 705, 8]"] - 345["Sweep Revolve
[1133, 1150, 8]"] + 333["Plane
[679, 705, 9]"] + 345["Sweep Revolve
[1133, 1150, 9]"] 346[Wall] 347[Wall] 348[Wall] @@ -444,8 +444,8 @@ flowchart LR 361["SweepEdge Adjacent"] 362["SweepEdge Adjacent"] 363["SweepEdge Adjacent"] - 364["Plane
[488, 505, 7]"] - 384["Sweep Revolve
[2031, 2081, 7]"] + 364["Plane
[488, 505, 8]"] + 384["Sweep Revolve
[2031, 2081, 8]"] 385[Wall] 386[Wall] 387[Wall] @@ -499,8 +499,8 @@ flowchart LR 435["SweepEdge Adjacent"] 436["SweepEdge Opposite"] 437["SweepEdge Adjacent"] - 438["Plane
[464, 481, 9]"] - 455["Sweep Revolve
[1474, 1503, 9]"] + 438["Plane
[464, 481, 10]"] + 455["Sweep Revolve
[1474, 1503, 10]"] 456[Wall] 457[Wall] 458[Wall] @@ -529,17 +529,17 @@ flowchart LR 481["SweepEdge Adjacent"] 482["SweepEdge Adjacent"] 483["SweepEdge Adjacent"] - 484["StartSketchOnFace
[774, 806, 6]"] - 485["StartSketchOnFace
[956, 992, 6]"] - 486["StartSketchOnFace
[1399, 1433, 6]"] - 487["StartSketchOnFace
[1543, 1582, 6]"] - 488["StartSketchOnFace
[1733, 1771, 6]"] - 489["StartSketchOnFace
[2038, 2072, 6]"] - 490["StartSketchOnFace
[2372, 2406, 6]"] - 491["StartSketchOnFace
[2860, 2898, 6]"] - 492["StartSketchOnFace
[607, 641, 5]"] - 493["StartSketchOnFace
[874, 913, 5]"] - 494["StartSketchOnFace
[1216, 1250, 5]"] + 484["StartSketchOnFace
[774, 806, 7]"] + 485["StartSketchOnFace
[956, 992, 7]"] + 486["StartSketchOnFace
[1399, 1433, 7]"] + 487["StartSketchOnFace
[1543, 1582, 7]"] + 488["StartSketchOnFace
[1733, 1771, 7]"] + 489["StartSketchOnFace
[2038, 2072, 7]"] + 490["StartSketchOnFace
[2372, 2406, 7]"] + 491["StartSketchOnFace
[2860, 2898, 7]"] + 492["StartSketchOnFace
[607, 641, 6]"] + 493["StartSketchOnFace
[874, 913, 6]"] + 494["StartSketchOnFace
[1216, 1250, 6]"] 1 --- 2 2 --- 3 2 ---- 5 diff --git a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ops.snap b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ops.snap index 682c09dc3..6ac7a19cb 100644 --- a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ops.snap @@ -8,7 +8,7 @@ description: Operations executed car-wheel-assembly.kcl "group": { "type": "ModuleInstance", "name": "carRotor", - "moduleId": 6 + "moduleId": 7 }, "sourceRange": [] }, @@ -718,7 +718,7 @@ description: Operations executed car-wheel-assembly.kcl "group": { "type": "ModuleInstance", "name": "carWheel", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, @@ -1254,7 +1254,7 @@ description: Operations executed car-wheel-assembly.kcl "functionSourceRange": [ 2572, 4111, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -1645,7 +1645,7 @@ description: Operations executed car-wheel-assembly.kcl "functionSourceRange": [ 2572, 4111, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -2137,7 +2137,7 @@ description: Operations executed car-wheel-assembly.kcl "group": { "type": "ModuleInstance", "name": "lugNut", - "moduleId": 8 + "moduleId": 9 }, "sourceRange": [] }, @@ -2149,7 +2149,7 @@ description: Operations executed car-wheel-assembly.kcl "functionSourceRange": [ 637, 1240, - 8 + 9 ], "unlabeledArg": null, "labeledArgs": {} @@ -2594,7 +2594,7 @@ description: Operations executed car-wheel-assembly.kcl "group": { "type": "ModuleInstance", "name": "brakeCaliper", - "moduleId": 7 + "moduleId": 8 }, "sourceRange": [] }, @@ -2728,7 +2728,7 @@ description: Operations executed car-wheel-assembly.kcl "group": { "type": "ModuleInstance", "name": "carTire", - "moduleId": 9 + "moduleId": 10 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/program_memory.snap index 8fba2f395..ac2d6bf1a 100644 --- a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/program_memory.snap @@ -31,7 +31,7 @@ description: Variables in memory after executing car-wheel-assembly.kcl }, "brakeCaliper": { "type": "Module", - "value": 7 + "value": 8 }, "c1": { "type": "TagIdentifier", @@ -105,15 +105,15 @@ description: Variables in memory after executing car-wheel-assembly.kcl }, "carRotor": { "type": "Module", - "value": 6 + "value": 7 }, "carTire": { "type": "Module", - "value": 9 + "value": 10 }, "carWheel": { "type": "Module", - "value": 5 + "value": 6 }, "drillAndSlotCount": { "type": "Number", @@ -195,7 +195,7 @@ description: Variables in memory after executing car-wheel-assembly.kcl }, "lugNut": { "type": "Module", - "value": 8 + "value": 9 }, "lugSpacing": { "type": "Number", diff --git a/rust/kcl-lib/tests/kcl_samples/color-cube/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/color-cube/artifact_commands.snap index 85b8a61d0..fe650c1b7 100644 --- a/rust/kcl-lib/tests/kcl_samples/color-cube/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/color-cube/artifact_commands.snap @@ -1943,6 +1943,14 @@ description: Artifact commands color-cube.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/artifact_commands.snap index 6030d1b81..1510487c9 100644 --- a/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/artifact_commands.snap @@ -1130,6 +1130,14 @@ description: Artifact commands cycloidal-gear.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap index fc10e5823..6e3e600e9 100644 --- a/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap @@ -833,6 +833,14 @@ description: Artifact commands dodecahedron.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_commands.snap index f52fee9a6..db49f4bc9 100644 --- a/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_commands.snap @@ -8261,6 +8261,14 @@ description: Artifact commands dual-basin-utility-sink.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap index 12d5d10c4..226d2e6d1 100644 --- a/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap @@ -3234,6 +3234,14 @@ description: Artifact commands enclosure.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap index 4e46127ab..ea96d2848 100644 --- a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap @@ -3412,6 +3412,14 @@ description: Artifact commands exhaust-manifold.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/flange/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/flange/artifact_commands.snap index c30b25f09..e2be87f4b 100644 --- a/rust/kcl-lib/tests/kcl_samples/flange/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/flange/artifact_commands.snap @@ -916,6 +916,14 @@ description: Artifact commands flange.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap index f7859a8e1..748c09256 100644 --- a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap @@ -2001,6 +2001,14 @@ description: Artifact commands focusrite-scarlett-mounting-bracket.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap index 9a3870716..86dbeeb66 100644 --- a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap @@ -2189,6 +2189,14 @@ description: Artifact commands food-service-spatula.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/french-press/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/french-press/artifact_commands.snap index ba8883429..a049354d3 100644 --- a/rust/kcl-lib/tests/kcl_samples/french-press/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/french-press/artifact_commands.snap @@ -4949,6 +4949,14 @@ description: Artifact commands french-press.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/gear-rack/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gear-rack/artifact_commands.snap index 35d529bc7..72a023b76 100644 --- a/rust/kcl-lib/tests/kcl_samples/gear-rack/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gear-rack/artifact_commands.snap @@ -3042,6 +3042,14 @@ description: Artifact commands gear-rack.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/gear/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gear/artifact_commands.snap index e1b16686d..58eba6f13 100644 --- a/rust/kcl-lib/tests/kcl_samples/gear/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gear/artifact_commands.snap @@ -4107,6 +4107,14 @@ description: Artifact commands gear.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap index 85facfc15..41a7a28b1 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap @@ -4911,6 +4911,14 @@ description: Artifact commands gridfinity-baseplate-magnets.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/artifact_commands.snap index 84e652e37..fe9d78124 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/artifact_commands.snap @@ -2146,6 +2146,14 @@ description: Artifact commands gridfinity-baseplate.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap index 6c740cf8c..bacde38a2 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap @@ -5205,6 +5205,14 @@ description: Artifact commands gridfinity-bins-stacking-lip.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap index 42c00899c..d090b1469 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap @@ -3447,6 +3447,14 @@ description: Artifact commands gridfinity-bins.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/hex-nut/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/hex-nut/artifact_commands.snap index bec2700eb..cb4351c4c 100644 --- a/rust/kcl-lib/tests/kcl_samples/hex-nut/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/hex-nut/artifact_commands.snap @@ -499,6 +499,14 @@ description: Artifact commands hex-nut.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/i-beam/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/i-beam/artifact_commands.snap index 0e9fe4619..12d9546b0 100644 --- a/rust/kcl-lib/tests/kcl_samples/i-beam/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/i-beam/artifact_commands.snap @@ -652,6 +652,14 @@ description: Artifact commands i-beam.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap index 8dac2b430..f871f2bde 100644 --- a/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap @@ -14242,6 +14242,14 @@ description: Artifact commands keyboard.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/kitt/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/kitt/artifact_commands.snap index 8004bef8c..b9b9b97e0 100644 --- a/rust/kcl-lib/tests/kcl_samples/kitt/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/kitt/artifact_commands.snap @@ -11142,6 +11142,14 @@ description: Artifact commands kitt.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/lego/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/lego/artifact_commands.snap index 3b1326a6f..0928d234c 100644 --- a/rust/kcl-lib/tests/kcl_samples/lego/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/lego/artifact_commands.snap @@ -1444,6 +1444,14 @@ description: Artifact commands lego.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/makeup-mirror/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/makeup-mirror/artifact_commands.snap index a9e42de8b..45e9a0393 100644 --- a/rust/kcl-lib/tests/kcl_samples/makeup-mirror/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/makeup-mirror/artifact_commands.snap @@ -2226,6 +2226,14 @@ description: Artifact commands makeup-mirror.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap index e57f085aa..9a6d9e0bb 100644 --- a/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap @@ -969,6 +969,14 @@ description: Artifact commands mounting-plate.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap index 4ecbb81cc..2ededf329 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap @@ -61,6 +61,14 @@ description: Artifact commands multi-axis-robot.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md index f58ffd7dd..4ab1b351b 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md @@ -1,162 +1,162 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[224, 279, 5]"] - 3["Segment
[285, 365, 5]"] - 4["Segment
[371, 483, 5]"] - 5["Segment
[489, 606, 5]"] - 6["Segment
[612, 697, 5]"] - 7["Segment
[703, 710, 5]"] + 2["Path
[224, 279, 6]"] + 3["Segment
[285, 365, 6]"] + 4["Segment
[371, 483, 6]"] + 5["Segment
[489, 606, 6]"] + 6["Segment
[612, 697, 6]"] + 7["Segment
[703, 710, 6]"] 8[Solid2d] end subgraph path28 [Path] - 28["Path
[1151, 1208, 5]"] - 29["Segment
[1151, 1208, 5]"] + 28["Path
[1151, 1208, 6]"] + 29["Segment
[1151, 1208, 6]"] 30[Solid2d] end subgraph path36 [Path] - 36["Path
[1411, 1448, 5]"] - 37["Segment
[1411, 1448, 5]"] + 36["Path
[1411, 1448, 6]"] + 37["Segment
[1411, 1448, 6]"] 38[Solid2d] end subgraph path44 [Path] - 44["Path
[1585, 1725, 5]"] - 45["Segment
[1585, 1725, 5]"] + 44["Path
[1585, 1725, 6]"] + 45["Segment
[1585, 1725, 6]"] 46[Solid2d] end subgraph path54 [Path] - 54["Path
[1976, 2116, 5]"] - 55["Segment
[1976, 2116, 5]"] + 54["Path
[1976, 2116, 6]"] + 55["Segment
[1976, 2116, 6]"] 56[Solid2d] end subgraph path65 [Path] - 65["Path
[203, 263, 6]"] - 66["Segment
[203, 263, 6]"] + 65["Path
[203, 263, 7]"] + 66["Segment
[203, 263, 7]"] 67[Solid2d] end subgraph path75 [Path] - 75["Path
[493, 529, 6]"] - 76["Segment
[535, 572, 6]"] - 77["Segment
[578, 633, 6]"] - 78["Segment
[639, 688, 6]"] - 79["Segment
[694, 750, 6]"] - 80["Segment
[756, 763, 6]"] + 75["Path
[493, 529, 7]"] + 76["Segment
[535, 572, 7]"] + 77["Segment
[578, 633, 7]"] + 78["Segment
[639, 688, 7]"] + 79["Segment
[694, 750, 7]"] + 80["Segment
[756, 763, 7]"] 81[Solid2d] end subgraph path97 [Path] - 97["Path
[865, 1040, 6]"] - 98["Segment
[865, 1040, 6]"] + 97["Path
[865, 1040, 7]"] + 98["Segment
[865, 1040, 7]"] 99[Solid2d] end subgraph path105 [Path] - 105["Path
[1249, 1396, 6]"] - 106["Segment
[1249, 1396, 6]"] + 105["Path
[1249, 1396, 7]"] + 106["Segment
[1249, 1396, 7]"] 107[Solid2d] end subgraph path116 [Path] - 116["Path
[1718, 1892, 6]"] - 117["Segment
[1718, 1892, 6]"] + 116["Path
[1718, 1892, 7]"] + 117["Segment
[1718, 1892, 7]"] 118[Solid2d] end subgraph path125 [Path] - 125["Path
[2117, 2157, 6]"] - 126["Segment
[2117, 2157, 6]"] + 125["Path
[2117, 2157, 7]"] + 126["Segment
[2117, 2157, 7]"] 127[Solid2d] end subgraph path137 [Path] - 137["Path
[251, 394, 7]"] - 138["Segment
[400, 483, 7]"] - 139["Segment
[489, 541, 7]"] - 140["Segment
[547, 630, 7]"] - 141["Segment
[636, 692, 7]"] - 142["Segment
[698, 705, 7]"] + 137["Path
[251, 394, 8]"] + 138["Segment
[400, 483, 8]"] + 139["Segment
[489, 541, 8]"] + 140["Segment
[547, 630, 8]"] + 141["Segment
[636, 692, 8]"] + 142["Segment
[698, 705, 8]"] 143[Solid2d] end subgraph path159 [Path] - 159["Path
[826, 890, 7]"] - 160["Segment
[826, 890, 7]"] + 159["Path
[826, 890, 8]"] + 160["Segment
[826, 890, 8]"] 161[Solid2d] end subgraph path167 [Path] - 167["Path
[1064, 1272, 7]"] - 168["Segment
[1064, 1272, 7]"] + 167["Path
[1064, 1272, 8]"] + 168["Segment
[1064, 1272, 8]"] 169[Solid2d] end subgraph path175 [Path] - 175["Path
[1480, 1524, 7]"] - 176["Segment
[1480, 1524, 7]"] + 175["Path
[1480, 1524, 8]"] + 176["Segment
[1480, 1524, 8]"] 177[Solid2d] end subgraph path190 [Path] - 190["Path
[1767, 1959, 7]"] - 191["Segment
[1767, 1959, 7]"] + 190["Path
[1767, 1959, 8]"] + 191["Segment
[1767, 1959, 8]"] 192[Solid2d] end subgraph path201 [Path] - 201["Path
[2317, 2492, 7]"] - 202["Segment
[2317, 2492, 7]"] + 201["Path
[2317, 2492, 8]"] + 202["Segment
[2317, 2492, 8]"] 203[Solid2d] end subgraph path210 [Path] - 210["Path
[271, 504, 8]"] - 211["Segment
[510, 596, 8]"] - 212["Segment
[602, 656, 8]"] - 213["Segment
[662, 748, 8]"] - 214["Segment
[754, 824, 8]"] - 215["Segment
[830, 837, 8]"] + 210["Path
[271, 504, 9]"] + 211["Segment
[510, 596, 9]"] + 212["Segment
[602, 656, 9]"] + 213["Segment
[662, 748, 9]"] + 214["Segment
[754, 824, 9]"] + 215["Segment
[830, 837, 9]"] 216[Solid2d] end subgraph path232 [Path] - 232["Path
[956, 1165, 8]"] - 233["Segment
[956, 1165, 8]"] + 232["Path
[956, 1165, 9]"] + 233["Segment
[956, 1165, 9]"] 234[Solid2d] end subgraph path240 [Path] - 240["Path
[1375, 1564, 8]"] - 241["Segment
[1375, 1564, 8]"] + 240["Path
[1375, 1564, 9]"] + 241["Segment
[1375, 1564, 9]"] 242[Solid2d] end subgraph path255 [Path] - 255["Path
[1990, 2276, 8]"] - 256["Segment
[1990, 2276, 8]"] + 255["Path
[1990, 2276, 9]"] + 256["Segment
[1990, 2276, 9]"] 257[Solid2d] end subgraph path264 [Path] - 264["Path
[2380, 2664, 8]"] - 265["Segment
[2380, 2664, 8]"] + 264["Path
[2380, 2664, 9]"] + 265["Segment
[2380, 2664, 9]"] 266[Solid2d] end subgraph path273 [Path] - 273["Path
[2823, 2861, 8]"] - 274["Segment
[2823, 2861, 8]"] + 273["Path
[2823, 2861, 9]"] + 274["Segment
[2823, 2861, 9]"] 275[Solid2d] end subgraph path282 [Path] - 282["Path
[2996, 3221, 8]"] - 283["Segment
[3227, 3295, 8]"] - 284["Segment
[3301, 3411, 8]"] - 285["Segment
[3417, 3485, 8]"] - 286["Segment
[3491, 3567, 8]"] - 287["Segment
[3573, 3649, 8]"] - 288["Segment
[3655, 3729, 8]"] - 289["Segment
[3735, 3791, 8]"] - 290["Segment
[3797, 3804, 8]"] + 282["Path
[2996, 3221, 9]"] + 283["Segment
[3227, 3295, 9]"] + 284["Segment
[3301, 3411, 9]"] + 285["Segment
[3417, 3485, 9]"] + 286["Segment
[3491, 3567, 9]"] + 287["Segment
[3573, 3649, 9]"] + 288["Segment
[3655, 3729, 9]"] + 289["Segment
[3735, 3791, 9]"] + 290["Segment
[3797, 3804, 9]"] 291[Solid2d] end subgraph path316 [Path] - 316["Path
[3938, 4163, 8]"] - 317["Segment
[4169, 4239, 8]"] - 318["Segment
[4245, 4360, 8]"] - 319["Segment
[4366, 4436, 8]"] - 320["Segment
[4442, 4520, 8]"] - 321["Segment
[4526, 4604, 8]"] - 322["Segment
[4610, 4686, 8]"] - 323["Segment
[4692, 4748, 8]"] - 324["Segment
[4754, 4761, 8]"] + 316["Path
[3938, 4163, 9]"] + 317["Segment
[4169, 4239, 9]"] + 318["Segment
[4245, 4360, 9]"] + 319["Segment
[4366, 4436, 9]"] + 320["Segment
[4442, 4520, 9]"] + 321["Segment
[4526, 4604, 9]"] + 322["Segment
[4610, 4686, 9]"] + 323["Segment
[4692, 4748, 9]"] + 324["Segment
[4754, 4761, 9]"] 325[Solid2d] end - 1["Plane
[201, 218, 5]"] - 9["Sweep Extrusion
[724, 771, 5]"] + 1["Plane
[201, 218, 6]"] + 9["Sweep Extrusion
[724, 771, 6]"] 10[Wall] 11[Wall] 12[Wall] @@ -171,43 +171,43 @@ flowchart LR 21["SweepEdge Adjacent"] 22["SweepEdge Opposite"] 23["SweepEdge Adjacent"] - 24["EdgeCut Chamfer
[777, 1054, 5]"] - 25["EdgeCut Chamfer
[777, 1054, 5]"] - 26["EdgeCut Chamfer
[777, 1054, 5]"] - 27["EdgeCut Chamfer
[777, 1054, 5]"] - 31["Sweep Extrusion
[1222, 1288, 5]"] + 24["EdgeCut Chamfer
[777, 1054, 6]"] + 25["EdgeCut Chamfer
[777, 1054, 6]"] + 26["EdgeCut Chamfer
[777, 1054, 6]"] + 27["EdgeCut Chamfer
[777, 1054, 6]"] + 31["Sweep Extrusion
[1222, 1288, 6]"] 32[Wall] 33["Cap End"] 34["SweepEdge Opposite"] 35["SweepEdge Adjacent"] - 39["Sweep Extrusion
[1462, 1492, 5]"] + 39["Sweep Extrusion
[1462, 1492, 6]"] 40[Wall] 41["Cap End"] 42["SweepEdge Opposite"] 43["SweepEdge Adjacent"] - 47["Sweep Extrusion
[1873, 1920, 5]"] + 47["Sweep Extrusion
[1873, 1920, 6]"] 48[Wall] 49["SweepEdge Opposite"] 50["SweepEdge Adjacent"] - 51["Sweep Extrusion
[1873, 1920, 5]"] - 52["Sweep Extrusion
[1873, 1920, 5]"] - 53["Sweep Extrusion
[1873, 1920, 5]"] - 57["Sweep Extrusion
[2252, 2299, 5]"] + 51["Sweep Extrusion
[1873, 1920, 6]"] + 52["Sweep Extrusion
[1873, 1920, 6]"] + 53["Sweep Extrusion
[1873, 1920, 6]"] + 57["Sweep Extrusion
[2252, 2299, 6]"] 58[Wall] 59["SweepEdge Opposite"] 60["SweepEdge Adjacent"] - 61["Sweep Extrusion
[2252, 2299, 5]"] - 62["Sweep Extrusion
[2252, 2299, 5]"] - 63["Sweep Extrusion
[2252, 2299, 5]"] - 64["Plane
[174, 197, 6]"] - 68["Sweep Extrusion
[277, 315, 6]"] + 61["Sweep Extrusion
[2252, 2299, 6]"] + 62["Sweep Extrusion
[2252, 2299, 6]"] + 63["Sweep Extrusion
[2252, 2299, 6]"] + 64["Plane
[174, 197, 7]"] + 68["Sweep Extrusion
[277, 315, 7]"] 69[Wall] 70["Cap Start"] 71["Cap End"] 72["SweepEdge Opposite"] 73["SweepEdge Adjacent"] - 74["Plane
[464, 487, 6]"] - 82["Sweep Extrusion
[778, 808, 6]"] + 74["Plane
[464, 487, 7]"] + 82["Sweep Extrusion
[778, 808, 7]"] 83[Wall] 84[Wall] 85[Wall] @@ -222,35 +222,35 @@ flowchart LR 94["SweepEdge Adjacent"] 95["SweepEdge Opposite"] 96["SweepEdge Adjacent"] - 100["Sweep Extrusion
[1054, 1086, 6]"] + 100["Sweep Extrusion
[1054, 1086, 7]"] 101[Wall] 102["Cap End"] 103["SweepEdge Opposite"] 104["SweepEdge Adjacent"] - 108["Sweep Extrusion
[1629, 1661, 6]"] + 108["Sweep Extrusion
[1629, 1661, 7]"] 109[Wall] 110["Cap End"] 111["SweepEdge Opposite"] 112["SweepEdge Adjacent"] - 113["Sweep Extrusion
[1629, 1661, 6]"] - 114["Sweep Extrusion
[1629, 1661, 6]"] - 115["Sweep Extrusion
[1629, 1661, 6]"] - 119["Sweep Extrusion
[1906, 1939, 6]"] + 113["Sweep Extrusion
[1629, 1661, 7]"] + 114["Sweep Extrusion
[1629, 1661, 7]"] + 115["Sweep Extrusion
[1629, 1661, 7]"] + 119["Sweep Extrusion
[1906, 1939, 7]"] 120[Wall] 121["Cap End"] 122["SweepEdge Opposite"] 123["SweepEdge Adjacent"] - 124["Plane
[2088, 2111, 6]"] - 128["Sweep Extrusion
[2159, 2190, 6]"] + 124["Plane
[2088, 2111, 7]"] + 128["Sweep Extrusion
[2159, 2190, 7]"] 129[Wall] 130["Cap Start"] 131["Cap End"] 132["SweepEdge Opposite"] 133["SweepEdge Adjacent"] - 134["EdgeCut Fillet
[321, 383, 6]"] - 135["EdgeCut Fillet
[1945, 2007, 6]"] - 136["Plane
[222, 245, 7]"] - 144["Sweep Extrusion
[719, 767, 7]"] + 134["EdgeCut Fillet
[321, 383, 7]"] + 135["EdgeCut Fillet
[1945, 2007, 7]"] + 136["Plane
[222, 245, 8]"] + 144["Sweep Extrusion
[719, 767, 8]"] 145[Wall] 146[Wall] 147[Wall] @@ -265,43 +265,43 @@ flowchart LR 156["SweepEdge Adjacent"] 157["SweepEdge Opposite"] 158["SweepEdge Adjacent"] - 162["Sweep Extrusion
[905, 938, 7]"] + 162["Sweep Extrusion
[905, 938, 8]"] 163[Wall] 164["Cap End"] 165["SweepEdge Opposite"] 166["SweepEdge Adjacent"] - 170["Sweep Extrusion
[1287, 1317, 7]"] + 170["Sweep Extrusion
[1287, 1317, 8]"] 171[Wall] 172["Cap End"] 173["SweepEdge Opposite"] 174["SweepEdge Adjacent"] - 178["Sweep Extrusion
[1677, 1710, 7]"] + 178["Sweep Extrusion
[1677, 1710, 8]"] 179[Wall] 180["Cap End"] 181["SweepEdge Opposite"] 182["SweepEdge Adjacent"] - 183["Sweep Extrusion
[1677, 1710, 7]"] - 184["Sweep Extrusion
[1677, 1710, 7]"] - 185["Sweep Extrusion
[1677, 1710, 7]"] - 186["Sweep Extrusion
[1677, 1710, 7]"] - 187["Sweep Extrusion
[1677, 1710, 7]"] - 188["Sweep Extrusion
[1677, 1710, 7]"] - 189["Sweep Extrusion
[1677, 1710, 7]"] - 193["Sweep Extrusion
[2227, 2260, 7]"] + 183["Sweep Extrusion
[1677, 1710, 8]"] + 184["Sweep Extrusion
[1677, 1710, 8]"] + 185["Sweep Extrusion
[1677, 1710, 8]"] + 186["Sweep Extrusion
[1677, 1710, 8]"] + 187["Sweep Extrusion
[1677, 1710, 8]"] + 188["Sweep Extrusion
[1677, 1710, 8]"] + 189["Sweep Extrusion
[1677, 1710, 8]"] + 193["Sweep Extrusion
[2227, 2260, 8]"] 194[Wall] 195["Cap End"] 196["SweepEdge Opposite"] 197["SweepEdge Adjacent"] - 198["Sweep Extrusion
[2227, 2260, 7]"] - 199["Sweep Extrusion
[2227, 2260, 7]"] - 200["Sweep Extrusion
[2227, 2260, 7]"] - 204["Sweep Extrusion
[2494, 2524, 7]"] + 198["Sweep Extrusion
[2227, 2260, 8]"] + 199["Sweep Extrusion
[2227, 2260, 8]"] + 200["Sweep Extrusion
[2227, 2260, 8]"] + 204["Sweep Extrusion
[2494, 2524, 8]"] 205[Wall] 206["Cap End"] 207["SweepEdge Opposite"] 208["SweepEdge Adjacent"] - 209["Plane
[242, 265, 8]"] - 217["Sweep Extrusion
[851, 899, 8]"] + 209["Plane
[242, 265, 9]"] + 217["Sweep Extrusion
[851, 899, 9]"] 218[Wall] 219[Wall] 220[Wall] @@ -316,42 +316,42 @@ flowchart LR 229["SweepEdge Adjacent"] 230["SweepEdge Opposite"] 231["SweepEdge Adjacent"] - 235["Sweep Extrusion
[1180, 1213, 8]"] + 235["Sweep Extrusion
[1180, 1213, 9]"] 236[Wall] 237["Cap End"] 238["SweepEdge Opposite"] 239["SweepEdge Adjacent"] - 243["Sweep Extrusion
[1829, 1862, 8]"] + 243["Sweep Extrusion
[1829, 1862, 9]"] 244[Wall] 245["Cap End"] 246["SweepEdge Opposite"] 247["SweepEdge Adjacent"] - 248["Sweep Extrusion
[1829, 1862, 8]"] - 249["Sweep Extrusion
[1829, 1862, 8]"] - 250["Sweep Extrusion
[1829, 1862, 8]"] - 251["Sweep Extrusion
[1829, 1862, 8]"] - 252["Sweep Extrusion
[1829, 1862, 8]"] - 253["Sweep Extrusion
[1829, 1862, 8]"] - 254["Sweep Extrusion
[1829, 1862, 8]"] - 258["Sweep Extrusion
[2290, 2323, 8]"] + 248["Sweep Extrusion
[1829, 1862, 9]"] + 249["Sweep Extrusion
[1829, 1862, 9]"] + 250["Sweep Extrusion
[1829, 1862, 9]"] + 251["Sweep Extrusion
[1829, 1862, 9]"] + 252["Sweep Extrusion
[1829, 1862, 9]"] + 253["Sweep Extrusion
[1829, 1862, 9]"] + 254["Sweep Extrusion
[1829, 1862, 9]"] + 258["Sweep Extrusion
[2290, 2323, 9]"] 259[Wall] 260["Cap Start"] 261["Cap End"] 262["SweepEdge Opposite"] 263["SweepEdge Adjacent"] - 267["Sweep Extrusion
[2679, 2712, 8]"] + 267["Sweep Extrusion
[2679, 2712, 9]"] 268[Wall] 269["Cap Start"] 270["Cap End"] 271["SweepEdge Opposite"] 272["SweepEdge Adjacent"] - 276["Sweep Extrusion
[2876, 2910, 8]"] + 276["Sweep Extrusion
[2876, 2910, 9]"] 277[Wall] 278["Cap Start"] 279["Cap End"] 280["SweepEdge Opposite"] 281["SweepEdge Adjacent"] - 292["Sweep Extrusion
[3819, 3852, 8]"] + 292["Sweep Extrusion
[3819, 3852, 9]"] 293[Wall] 294[Wall] 295[Wall] @@ -375,7 +375,7 @@ flowchart LR 313["SweepEdge Adjacent"] 314["SweepEdge Opposite"] 315["SweepEdge Adjacent"] - 326["Sweep Extrusion
[4763, 4796, 8]"] + 326["Sweep Extrusion
[4763, 4796, 9]"] 327[Wall] 328[Wall] 329[Wall] @@ -399,25 +399,25 @@ flowchart LR 347["SweepEdge Adjacent"] 348["SweepEdge Opposite"] 349["SweepEdge Adjacent"] - 350["StartSketchOnFace
[1108, 1145, 5]"] - 351["StartSketchOnFace
[1368, 1405, 5]"] - 352["StartSketchOnFace
[1542, 1579, 5]"] - 353["StartSketchOnFace
[1933, 1970, 5]"] - 354["StartSketchOnFace
[822, 859, 6]"] - 355["StartSketchOnFace
[1206, 1243, 6]"] - 356["StartSketchOnFace
[1675, 1712, 6]"] - 357["StartSketchOnFace
[781, 820, 7]"] - 358["StartSketchOnFace
[1019, 1058, 7]"] - 359["StartSketchOnFace
[1437, 1474, 7]"] - 360["StartSketchOnFace
[1724, 1761, 7]"] - 361["StartSketchOnFace
[2274, 2311, 7]"] - 362["StartSketchOnFace
[913, 950, 8]"] - 363["StartSketchOnFace
[1332, 1369, 8]"] - 364["StartSketchOnFace
[1945, 1984, 8]"] - 365["StartSketchOnFace
[2337, 2374, 8]"] - 366["StartSketchOnFace
[2778, 2817, 8]"] - 367["StartSketchOnFace
[2951, 2990, 8]"] - 368["StartSketchOnFace
[3893, 3932, 8]"] + 350["StartSketchOnFace
[1108, 1145, 6]"] + 351["StartSketchOnFace
[1368, 1405, 6]"] + 352["StartSketchOnFace
[1542, 1579, 6]"] + 353["StartSketchOnFace
[1933, 1970, 6]"] + 354["StartSketchOnFace
[822, 859, 7]"] + 355["StartSketchOnFace
[1206, 1243, 7]"] + 356["StartSketchOnFace
[1675, 1712, 7]"] + 357["StartSketchOnFace
[781, 820, 8]"] + 358["StartSketchOnFace
[1019, 1058, 8]"] + 359["StartSketchOnFace
[1437, 1474, 8]"] + 360["StartSketchOnFace
[1724, 1761, 8]"] + 361["StartSketchOnFace
[2274, 2311, 8]"] + 362["StartSketchOnFace
[913, 950, 9]"] + 363["StartSketchOnFace
[1332, 1369, 9]"] + 364["StartSketchOnFace
[1945, 1984, 9]"] + 365["StartSketchOnFace
[2337, 2374, 9]"] + 366["StartSketchOnFace
[2778, 2817, 9]"] + 367["StartSketchOnFace
[2951, 2990, 9]"] + 368["StartSketchOnFace
[3893, 3932, 9]"] 1 --- 2 2 --- 3 2 --- 4 diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap index 555d40b83..5c5285e3d 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap @@ -8,7 +8,7 @@ description: Operations executed multi-axis-robot.kcl "group": { "type": "ModuleInstance", "name": "robotArmBase", - "moduleId": 5 + "moduleId": 6 }, "sourceRange": [] }, @@ -505,7 +505,7 @@ description: Operations executed multi-axis-robot.kcl "group": { "type": "ModuleInstance", "name": "rotatingBase", - "moduleId": 6 + "moduleId": 7 }, "sourceRange": [] }, @@ -1633,7 +1633,7 @@ description: Operations executed multi-axis-robot.kcl "group": { "type": "ModuleInstance", "name": "j2RobotArm", - "moduleId": 7 + "moduleId": 8 }, "sourceRange": [] }, @@ -2472,7 +2472,7 @@ description: Operations executed multi-axis-robot.kcl "group": { "type": "ModuleInstance", "name": "j3RobotArm", - "moduleId": 8 + "moduleId": 9 }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/program_memory.snap index ebc803a54..452be24e5 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/program_memory.snap @@ -5,18 +5,18 @@ description: Variables in memory after executing multi-axis-robot.kcl { "j2RobotArm": { "type": "Module", - "value": 7 + "value": 8 }, "j3RobotArm": { "type": "Module", - "value": 8 + "value": 9 }, "robotArmBase": { "type": "Module", - "value": 5 + "value": 6 }, "rotatingBase": { "type": "Module", - "value": 6 + "value": 7 } } diff --git a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_commands.snap index 21257cc91..475bc276e 100644 --- a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_commands.snap @@ -1370,6 +1370,14 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap index 38065714f..c3a5463ad 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap @@ -549,6 +549,14 @@ description: Artifact commands pipe-flange-assembly.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_graph_flowchart.snap.md index 3d32fa99f..eeb04f04d 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_graph_flowchart.snap.md @@ -1,206 +1,206 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[595, 688, 7]"] - 3["Segment
[595, 688, 7]"] + 2["Path
[595, 688, 8]"] + 3["Segment
[595, 688, 8]"] 4[Solid2d] end subgraph path6 [Path] - 6["Path
[917, 972, 7]"] - 7["Segment
[917, 972, 7]"] + 6["Path
[917, 972, 8]"] + 7["Segment
[917, 972, 8]"] 8[Solid2d] end subgraph path15 [Path] - 15["Path
[1192, 1251, 7]"] - 16["Segment
[1192, 1251, 7]"] + 15["Path
[1192, 1251, 8]"] + 16["Segment
[1192, 1251, 8]"] 17[Solid2d] end subgraph path23 [Path] - 23["Path
[1358, 1418, 7]"] - 24["Segment
[1358, 1418, 7]"] + 23["Path
[1358, 1418, 8]"] + 24["Segment
[1358, 1418, 8]"] 25[Solid2d] end subgraph path31 [Path] - 31["Path
[1580, 1633, 7]"] - 32["Segment
[1580, 1633, 7]"] + 31["Path
[1580, 1633, 8]"] + 32["Segment
[1580, 1633, 8]"] 33[Solid2d] end subgraph path39 [Path] - 39["Path
[595, 688, 7]"] - 40["Segment
[595, 688, 7]"] + 39["Path
[595, 688, 8]"] + 40["Segment
[595, 688, 8]"] 41[Solid2d] end subgraph path43 [Path] - 43["Path
[917, 972, 7]"] - 44["Segment
[917, 972, 7]"] + 43["Path
[917, 972, 8]"] + 44["Segment
[917, 972, 8]"] 45[Solid2d] end subgraph path52 [Path] - 52["Path
[1192, 1251, 7]"] - 53["Segment
[1192, 1251, 7]"] + 52["Path
[1192, 1251, 8]"] + 53["Segment
[1192, 1251, 8]"] 54[Solid2d] end subgraph path60 [Path] - 60["Path
[1358, 1418, 7]"] - 61["Segment
[1358, 1418, 7]"] + 60["Path
[1358, 1418, 8]"] + 61["Segment
[1358, 1418, 8]"] 62[Solid2d] end subgraph path68 [Path] - 68["Path
[1580, 1633, 7]"] - 69["Segment
[1580, 1633, 7]"] + 68["Path
[1580, 1633, 8]"] + 69["Segment
[1580, 1633, 8]"] 70[Solid2d] end subgraph path76 [Path] - 76["Path
[422, 484, 6]"] - 77["Segment
[422, 484, 6]"] + 76["Path
[422, 484, 7]"] + 77["Segment
[422, 484, 7]"] 78[Solid2d] end subgraph path85 [Path] - 85["Path
[622, 682, 6]"] - 86["Segment
[622, 682, 6]"] + 85["Path
[622, 682, 7]"] + 86["Segment
[622, 682, 7]"] 87[Solid2d] end subgraph path93 [Path] - 93["Path
[411, 463, 8]"] - 94["Segment
[411, 463, 8]"] + 93["Path
[411, 463, 9]"] + 94["Segment
[411, 463, 9]"] 95[Solid2d] end subgraph path102 [Path] - 102["Path
[601, 653, 8]"] - 103["Segment
[601, 653, 8]"] + 102["Path
[601, 653, 9]"] + 103["Segment
[601, 653, 9]"] 104[Solid2d] end subgraph path110 [Path] - 110["Path
[439, 509, 9]"] - 111["Segment
[439, 509, 9]"] + 110["Path
[439, 509, 10]"] + 111["Segment
[439, 509, 10]"] 112[Solid2d] end subgraph path121 [Path] - 121["Path
[778, 865, 9]"] - 122["Segment
[873, 924, 9]"] - 123["Segment
[932, 983, 9]"] - 124["Segment
[991, 1042, 9]"] - 125["Segment
[1050, 1100, 9]"] - 126["Segment
[1108, 1158, 9]"] - 127["Segment
[1166, 1173, 9]"] + 121["Path
[778, 865, 10]"] + 122["Segment
[873, 924, 10]"] + 123["Segment
[932, 983, 10]"] + 124["Segment
[991, 1042, 10]"] + 125["Segment
[1050, 1100, 10]"] + 126["Segment
[1108, 1158, 10]"] + 127["Segment
[1166, 1173, 10]"] 128[Solid2d] end subgraph path149 [Path] - 149["Path
[1312, 1381, 9]"] - 150["Segment
[1312, 1381, 9]"] + 149["Path
[1312, 1381, 10]"] + 150["Segment
[1312, 1381, 10]"] 151[Solid2d] end subgraph path158 [Path] - 158["Path
[425, 515, 10]"] - 159["Segment
[523, 573, 10]"] - 160["Segment
[581, 631, 10]"] - 161["Segment
[639, 689, 10]"] - 162["Segment
[697, 746, 10]"] - 163["Segment
[754, 803, 10]"] - 164["Segment
[811, 818, 10]"] + 158["Path
[425, 515, 11]"] + 159["Segment
[523, 573, 11]"] + 160["Segment
[581, 631, 11]"] + 161["Segment
[639, 689, 11]"] + 162["Segment
[697, 746, 11]"] + 163["Segment
[754, 803, 11]"] + 164["Segment
[811, 818, 11]"] 165[Solid2d] end subgraph path187 [Path] - 187["Path
[967, 1019, 10]"] - 188["Segment
[967, 1019, 10]"] + 187["Path
[967, 1019, 11]"] + 188["Segment
[967, 1019, 11]"] 189[Solid2d] end subgraph path195 [Path] - 195["Path
[325, 383, 11]"] - 196["Segment
[325, 383, 11]"] + 195["Path
[325, 383, 12]"] + 196["Segment
[325, 383, 12]"] 197[Solid2d] end subgraph path204 [Path] - 204["Path
[527, 582, 11]"] - 205["Segment
[527, 582, 11]"] + 204["Path
[527, 582, 12]"] + 205["Segment
[527, 582, 12]"] 206[Solid2d] end subgraph path212 [Path] - 212["Path
[325, 383, 11]"] - 213["Segment
[325, 383, 11]"] + 212["Path
[325, 383, 12]"] + 213["Segment
[325, 383, 12]"] 214[Solid2d] end subgraph path221 [Path] - 221["Path
[527, 582, 11]"] - 222["Segment
[527, 582, 11]"] + 221["Path
[527, 582, 12]"] + 222["Segment
[527, 582, 12]"] 223[Solid2d] end - 1["Plane
[570, 587, 7]"] - 5["Plane
[892, 909, 7]"] - 9["Sweep Extrusion
[1010, 1050, 7]"] + 1["Plane
[570, 587, 8]"] + 5["Plane
[892, 909, 8]"] + 9["Sweep Extrusion
[1010, 1050, 8]"] 10[Wall] 11["Cap Start"] 12["Cap End"] 13["SweepEdge Opposite"] 14["SweepEdge Adjacent"] - 18["Sweep Extrusion
[1259, 1296, 7]"] + 18["Sweep Extrusion
[1259, 1296, 8]"] 19[Wall] 20["Cap End"] 21["SweepEdge Opposite"] 22["SweepEdge Adjacent"] - 26["Sweep Extrusion
[1426, 1464, 7]"] + 26["Sweep Extrusion
[1426, 1464, 8]"] 27[Wall] 28["Cap End"] 29["SweepEdge Opposite"] 30["SweepEdge Adjacent"] - 34["Sweep Extrusion
[1641, 1683, 7]"] + 34["Sweep Extrusion
[1641, 1683, 8]"] 35[Wall] 36["SweepEdge Opposite"] 37["SweepEdge Adjacent"] - 38["Plane
[570, 587, 7]"] - 42["Plane
[892, 909, 7]"] - 46["Sweep Extrusion
[1010, 1050, 7]"] + 38["Plane
[570, 587, 8]"] + 42["Plane
[892, 909, 8]"] + 46["Sweep Extrusion
[1010, 1050, 8]"] 47[Wall] 48["Cap Start"] 49["Cap End"] 50["SweepEdge Opposite"] 51["SweepEdge Adjacent"] - 55["Sweep Extrusion
[1259, 1296, 7]"] + 55["Sweep Extrusion
[1259, 1296, 8]"] 56[Wall] 57["Cap End"] 58["SweepEdge Opposite"] 59["SweepEdge Adjacent"] - 63["Sweep Extrusion
[1426, 1464, 7]"] + 63["Sweep Extrusion
[1426, 1464, 8]"] 64[Wall] 65["Cap End"] 66["SweepEdge Opposite"] 67["SweepEdge Adjacent"] - 71["Sweep Extrusion
[1641, 1683, 7]"] + 71["Sweep Extrusion
[1641, 1683, 8]"] 72[Wall] 73["SweepEdge Opposite"] 74["SweepEdge Adjacent"] - 75["Plane
[399, 416, 6]"] - 79["Sweep Extrusion
[490, 526, 6]"] + 75["Plane
[399, 416, 7]"] + 79["Sweep Extrusion
[490, 526, 7]"] 80[Wall] 81["Cap Start"] 82["Cap End"] 83["SweepEdge Opposite"] 84["SweepEdge Adjacent"] - 88["Sweep Extrusion
[688, 725, 6]"] + 88["Sweep Extrusion
[688, 725, 7]"] 89[Wall] 90["SweepEdge Opposite"] 91["SweepEdge Adjacent"] - 92["Plane
[386, 403, 8]"] - 96["Sweep Extrusion
[471, 504, 8]"] + 92["Plane
[386, 403, 9]"] + 96["Sweep Extrusion
[471, 504, 9]"] 97[Wall] 98["Cap Start"] 99["Cap End"] 100["SweepEdge Opposite"] 101["SweepEdge Adjacent"] - 105["Sweep Extrusion
[661, 698, 8]"] + 105["Sweep Extrusion
[661, 698, 9]"] 106[Wall] 107["SweepEdge Opposite"] 108["SweepEdge Adjacent"] - 109["Plane
[414, 431, 9]"] - 113["Sweep Extrusion
[517, 550, 9]"] + 109["Plane
[414, 431, 10]"] + 113["Sweep Extrusion
[517, 550, 10]"] 114[Wall] 115["Cap Start"] 116["Cap End"] 117["SweepEdge Opposite"] 118["SweepEdge Adjacent"] - 119["EdgeCut Fillet
[558, 624, 9]"] - 120["EdgeCut Fillet
[558, 624, 9]"] - 129["Sweep Extrusion
[1181, 1221, 9]"] + 119["EdgeCut Fillet
[558, 624, 10]"] + 120["EdgeCut Fillet
[558, 624, 10]"] + 129["Sweep Extrusion
[1181, 1221, 10]"] 130[Wall] 131[Wall] 132[Wall] @@ -220,13 +220,13 @@ flowchart LR 146["SweepEdge Adjacent"] 147["SweepEdge Opposite"] 148["SweepEdge Adjacent"] - 152["Sweep Extrusion
[1389, 1417, 9]"] + 152["Sweep Extrusion
[1389, 1417, 10]"] 153[Wall] 154["Cap End"] 155["SweepEdge Opposite"] 156["SweepEdge Adjacent"] - 157["Plane
[400, 417, 10]"] - 166["Sweep Extrusion
[826, 859, 10]"] + 157["Plane
[400, 417, 11]"] + 166["Sweep Extrusion
[826, 859, 11]"] 167[Wall] 168[Wall] 169[Wall] @@ -247,45 +247,45 @@ flowchart LR 184["SweepEdge Adjacent"] 185["SweepEdge Opposite"] 186["SweepEdge Adjacent"] - 190["Sweep Extrusion
[1027, 1064, 10]"] + 190["Sweep Extrusion
[1027, 1064, 11]"] 191[Wall] 192["SweepEdge Opposite"] 193["SweepEdge Adjacent"] - 194["Plane
[300, 317, 11]"] - 198["Sweep Extrusion
[391, 422, 11]"] + 194["Plane
[300, 317, 12]"] + 198["Sweep Extrusion
[391, 422, 12]"] 199[Wall] 200["Cap Start"] 201["Cap End"] 202["SweepEdge Opposite"] 203["SweepEdge Adjacent"] - 207["Sweep Extrusion
[590, 622, 11]"] + 207["Sweep Extrusion
[590, 622, 12]"] 208[Wall] 209["SweepEdge Opposite"] 210["SweepEdge Adjacent"] - 211["Plane
[300, 317, 11]"] - 215["Sweep Extrusion
[391, 422, 11]"] + 211["Plane
[300, 317, 12]"] + 215["Sweep Extrusion
[391, 422, 12]"] 216[Wall] 217["Cap Start"] 218["Cap End"] 219["SweepEdge Opposite"] 220["SweepEdge Adjacent"] - 224["Sweep Extrusion
[590, 622, 11]"] + 224["Sweep Extrusion
[590, 622, 12]"] 225[Wall] 226["SweepEdge Opposite"] 227["SweepEdge Adjacent"] - 228["StartSketchOnFace
[1145, 1184, 7]"] - 229["StartSketchOnFace
[1313, 1350, 7]"] - 230["StartSketchOnFace
[1534, 1572, 7]"] - 231["StartSketchOnFace
[1145, 1184, 7]"] - 232["StartSketchOnFace
[1313, 1350, 7]"] - 233["StartSketchOnFace
[1534, 1572, 7]"] - 234["StartSketchOnFace
[579, 616, 6]"] - 235["StartSketchOnFace
[556, 593, 8]"] - 236["StartSketchOnFace
[733, 770, 9]"] - 237["StartSketchOnFace
[1269, 1304, 9]"] - 238["StartSketchOnFace
[922, 959, 10]"] - 239["StartSketchOnFace
[484, 519, 11]"] - 240["StartSketchOnFace
[484, 519, 11]"] + 228["StartSketchOnFace
[1145, 1184, 8]"] + 229["StartSketchOnFace
[1313, 1350, 8]"] + 230["StartSketchOnFace
[1534, 1572, 8]"] + 231["StartSketchOnFace
[1145, 1184, 8]"] + 232["StartSketchOnFace
[1313, 1350, 8]"] + 233["StartSketchOnFace
[1534, 1572, 8]"] + 234["StartSketchOnFace
[579, 616, 7]"] + 235["StartSketchOnFace
[556, 593, 9]"] + 236["StartSketchOnFace
[733, 770, 10]"] + 237["StartSketchOnFace
[1269, 1304, 10]"] + 238["StartSketchOnFace
[922, 959, 11]"] + 239["StartSketchOnFace
[484, 519, 12]"] + 240["StartSketchOnFace
[484, 519, 12]"] 1 --- 2 2 --- 3 2 --- 4 diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ops.snap b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ops.snap index 515e6d8e0..177ba0339 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ops.snap @@ -47,7 +47,7 @@ description: Operations executed pipe-flange-assembly.kcl "functionSourceRange": [ 509, 1743, - 7 + 8 ], "unlabeledArg": null, "labeledArgs": {} @@ -341,7 +341,7 @@ description: Operations executed pipe-flange-assembly.kcl "functionSourceRange": [ 509, 1743, - 7 + 8 ], "unlabeledArg": null, "labeledArgs": {} @@ -632,7 +632,7 @@ description: Operations executed pipe-flange-assembly.kcl "group": { "type": "ModuleInstance", "name": "gasket", - "moduleId": 6 + "moduleId": 7 }, "sourceRange": [] }, @@ -749,7 +749,7 @@ description: Operations executed pipe-flange-assembly.kcl "functionSourceRange": [ 331, 757, - 8 + 9 ], "unlabeledArg": null, "labeledArgs": {} @@ -1136,7 +1136,7 @@ description: Operations executed pipe-flange-assembly.kcl "functionSourceRange": [ 358, 1507, - 9 + 10 ], "unlabeledArg": null, "labeledArgs": {} @@ -1509,7 +1509,7 @@ description: Operations executed pipe-flange-assembly.kcl "functionSourceRange": [ 344, 1123, - 10 + 11 ], "unlabeledArg": null, "labeledArgs": {} @@ -1778,7 +1778,7 @@ description: Operations executed pipe-flange-assembly.kcl "functionSourceRange": [ 256, 675, - 11 + 12 ], "unlabeledArg": null, "labeledArgs": {} @@ -1898,7 +1898,7 @@ description: Operations executed pipe-flange-assembly.kcl "functionSourceRange": [ 256, 675, - 11 + 12 ], "unlabeledArg": null, "labeledArgs": {} diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/program_memory.snap index 17a71f1af..0f150b057 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/program_memory.snap @@ -198,7 +198,7 @@ description: Variables in memory after executing pipe-flange-assembly.kcl }, "gasket": { "type": "Module", - "value": 6 + "value": 7 }, "gasketInnerDiameter": { "type": "Number", diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/artifact_commands.snap index 954c536f6..7d8e86c07 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/artifact_commands.snap @@ -310,6 +310,14 @@ description: Artifact commands pipe-with-bend.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/pipe/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pipe/artifact_commands.snap index 4b0092ad2..2803e59a9 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe/artifact_commands.snap @@ -381,6 +381,14 @@ description: Artifact commands pipe.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/poopy-shoe/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/poopy-shoe/artifact_commands.snap index 2639373f2..79ef9da92 100644 --- a/rust/kcl-lib/tests/kcl_samples/poopy-shoe/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/poopy-shoe/artifact_commands.snap @@ -3034,6 +3034,14 @@ description: Artifact commands poopy-shoe.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/artifact_commands.snap index 23bb3f154..a306a6406 100644 --- a/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/artifact_commands.snap @@ -1642,6 +1642,14 @@ description: Artifact commands router-template-cross-bar.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/router-template-slate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/router-template-slate/artifact_commands.snap index 0081ac494..e3bfe1779 100644 --- a/rust/kcl-lib/tests/kcl_samples/router-template-slate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/router-template-slate/artifact_commands.snap @@ -1104,6 +1104,14 @@ description: Artifact commands router-template-slate.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap index d27af5bbf..b782e6de4 100644 --- a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap @@ -2105,6 +2105,14 @@ description: Artifact commands sheet-metal-bracket.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap index a7116dd56..a8dc8fff5 100644 --- a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap @@ -736,6 +736,14 @@ description: Artifact commands socket-head-cap-screw.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap index 4ea4f126e..8dbc617f5 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap @@ -301,6 +301,14 @@ description: Artifact commands walkie-talkie.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md index 6a7da4b2c..25b8a647f 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md @@ -1,186 +1,186 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[391, 434, 6]"] - 3["Segment
[440, 478, 6]"] - 4["Segment
[484, 524, 6]"] - 5["Segment
[530, 569, 6]"] - 6["Segment
[575, 597, 6]"] + 2["Path
[391, 434, 7]"] + 3["Segment
[440, 478, 7]"] + 4["Segment
[484, 524, 7]"] + 5["Segment
[530, 569, 7]"] + 6["Segment
[575, 597, 7]"] 7[Solid2d] end subgraph path27 [Path] - 27["Path
[968, 1093, 6]"] - 28["Segment
[1099, 1157, 6]"] - 29["Segment
[1163, 1288, 6]"] - 30["Segment
[1294, 1352, 6]"] - 31["Segment
[1358, 1486, 6]"] - 32["Segment
[1492, 1553, 6]"] - 33["Segment
[1559, 1688, 6]"] - 34["Segment
[1694, 1754, 6]"] - 35["Segment
[1760, 1767, 6]"] + 27["Path
[968, 1093, 7]"] + 28["Segment
[1099, 1157, 7]"] + 29["Segment
[1163, 1288, 7]"] + 30["Segment
[1294, 1352, 7]"] + 31["Segment
[1358, 1486, 7]"] + 32["Segment
[1492, 1553, 7]"] + 33["Segment
[1559, 1688, 7]"] + 34["Segment
[1694, 1754, 7]"] + 35["Segment
[1760, 1767, 7]"] 36[Solid2d] end subgraph path63 [Path] - 63["Path
[1922, 1976, 6]"] - 64["Segment
[1982, 2023, 6]"] - 65["Segment
[2029, 2058, 6]"] - 66["Segment
[2064, 2094, 6]"] - 67["Segment
[2100, 2156, 6]"] - 68["Segment
[2162, 2169, 6]"] + 63["Path
[1922, 1976, 7]"] + 64["Segment
[1982, 2023, 7]"] + 65["Segment
[2029, 2058, 7]"] + 66["Segment
[2064, 2094, 7]"] + 67["Segment
[2100, 2156, 7]"] + 68["Segment
[2162, 2169, 7]"] 69[Solid2d] end subgraph path84 [Path] - 84["Path
[2312, 2349, 6]"] - 85["Segment
[2355, 2386, 6]"] - 86["Segment
[2392, 2425, 6]"] - 87["Segment
[2431, 2463, 6]"] - 88["Segment
[2469, 2476, 6]"] + 84["Path
[2312, 2349, 7]"] + 85["Segment
[2355, 2386, 7]"] + 86["Segment
[2392, 2425, 7]"] + 87["Segment
[2431, 2463, 7]"] + 88["Segment
[2469, 2476, 7]"] 89[Solid2d] end subgraph path105 [Path] - 105["Path
[330, 355, 8]"] - 106["Segment
[361, 394, 8]"] - 107["Segment
[400, 435, 8]"] - 108["Segment
[441, 475, 8]"] - 109["Segment
[481, 488, 8]"] + 105["Path
[330, 355, 9]"] + 106["Segment
[361, 394, 9]"] + 107["Segment
[400, 435, 9]"] + 108["Segment
[441, 475, 9]"] + 109["Segment
[481, 488, 9]"] 110[Solid2d] end subgraph path112 [Path] - 112["Path
[624, 750, 8]"] + 112["Path
[624, 750, 9]"] 117[Solid2d] end subgraph path130 [Path] - 130["Path
[478, 532, 7]"] - 131["Segment
[538, 565, 7]"] - 132["Segment
[571, 600, 7]"] - 133["Segment
[606, 634, 7]"] - 134["Segment
[640, 696, 7]"] - 135["Segment
[702, 709, 7]"] + 130["Path
[478, 532, 8]"] + 131["Segment
[538, 565, 8]"] + 132["Segment
[571, 600, 8]"] + 133["Segment
[606, 634, 8]"] + 134["Segment
[640, 696, 8]"] + 135["Segment
[702, 709, 8]"] 136[Solid2d] end subgraph path138 [Path] - 138["Path
[980, 1027, 7]"] - 139["Segment
[1033, 1074, 7]"] - 140["Segment
[1080, 1122, 7]"] - 141["Segment
[1128, 1170, 7]"] - 142["Segment
[1176, 1183, 7]"] + 138["Path
[980, 1027, 8]"] + 139["Segment
[1033, 1074, 8]"] + 140["Segment
[1080, 1122, 8]"] + 141["Segment
[1128, 1170, 8]"] + 142["Segment
[1176, 1183, 8]"] 143[Solid2d] end subgraph path145 [Path] - 145["Path
[1441, 1600, 7]"] - 146["Segment
[1606, 1682, 7]"] - 147["Segment
[1688, 1849, 7]"] - 148["Segment
[1855, 1931, 7]"] - 149["Segment
[1937, 2101, 7]"] - 150["Segment
[2107, 2184, 7]"] - 151["Segment
[2190, 2353, 7]"] - 152["Segment
[2359, 2435, 7]"] - 153["Segment
[2441, 2448, 7]"] + 145["Path
[1441, 1600, 8]"] + 146["Segment
[1606, 1682, 8]"] + 147["Segment
[1688, 1849, 8]"] + 148["Segment
[1855, 1931, 8]"] + 149["Segment
[1937, 2101, 8]"] + 150["Segment
[2107, 2184, 8]"] + 151["Segment
[2190, 2353, 8]"] + 152["Segment
[2359, 2435, 8]"] + 153["Segment
[2441, 2448, 8]"] 154[Solid2d] end subgraph path156 [Path] - 156["Path
[123, 210, 12]"] - 157["Segment
[218, 247, 12]"] - 158["Segment
[255, 283, 12]"] - 159["Segment
[291, 369, 12]"] - 160["Segment
[377, 424, 12]"] - 161["Segment
[432, 460, 12]"] - 162["Segment
[468, 497, 12]"] - 163["Segment
[505, 534, 12]"] - 164["Segment
[542, 608, 12]"] - 165["Segment
[616, 644, 12]"] - 166["Segment
[652, 681, 12]"] - 167["Segment
[689, 751, 12]"] - 168["Segment
[759, 787, 12]"] - 169["Segment
[795, 829, 12]"] - 170["Segment
[837, 867, 12]"] - 171["Segment
[875, 943, 12]"] - 172["Segment
[951, 958, 12]"] + 156["Path
[123, 210, 13]"] + 157["Segment
[218, 247, 13]"] + 158["Segment
[255, 283, 13]"] + 159["Segment
[291, 369, 13]"] + 160["Segment
[377, 424, 13]"] + 161["Segment
[432, 460, 13]"] + 162["Segment
[468, 497, 13]"] + 163["Segment
[505, 534, 13]"] + 164["Segment
[542, 608, 13]"] + 165["Segment
[616, 644, 13]"] + 166["Segment
[652, 681, 13]"] + 167["Segment
[689, 751, 13]"] + 168["Segment
[759, 787, 13]"] + 169["Segment
[795, 829, 13]"] + 170["Segment
[837, 867, 13]"] + 171["Segment
[875, 943, 13]"] + 172["Segment
[951, 958, 13]"] 173[Solid2d] end subgraph path175 [Path] - 175["Path
[1092, 1190, 12]"] - 176["Segment
[1198, 1276, 12]"] - 177["Segment
[1284, 1331, 12]"] - 178["Segment
[1339, 1419, 12]"] - 179["Segment
[1427, 1434, 12]"] + 175["Path
[1092, 1190, 13]"] + 176["Segment
[1198, 1276, 13]"] + 177["Segment
[1284, 1331, 13]"] + 178["Segment
[1339, 1419, 13]"] + 179["Segment
[1427, 1434, 13]"] 180[Solid2d] end subgraph path182 [Path] - 182["Path
[1531, 1628, 12]"] - 183["Segment
[1636, 1714, 12]"] - 184["Segment
[1722, 1770, 12]"] - 185["Segment
[1778, 1858, 12]"] - 186["Segment
[1866, 1873, 12]"] + 182["Path
[1531, 1628, 13]"] + 183["Segment
[1636, 1714, 13]"] + 184["Segment
[1722, 1770, 13]"] + 185["Segment
[1778, 1858, 13]"] + 186["Segment
[1866, 1873, 13]"] 187[Solid2d] end subgraph path189 [Path] - 189["Path
[1092, 1190, 12]"] - 190["Segment
[1198, 1276, 12]"] - 191["Segment
[1284, 1331, 12]"] - 192["Segment
[1339, 1419, 12]"] - 193["Segment
[1427, 1434, 12]"] + 189["Path
[1092, 1190, 13]"] + 190["Segment
[1198, 1276, 13]"] + 191["Segment
[1284, 1331, 13]"] + 192["Segment
[1339, 1419, 13]"] + 193["Segment
[1427, 1434, 13]"] 194[Solid2d] end subgraph path196 [Path] - 196["Path
[1531, 1628, 12]"] - 197["Segment
[1636, 1714, 12]"] - 198["Segment
[1722, 1770, 12]"] - 199["Segment
[1778, 1858, 12]"] - 200["Segment
[1866, 1873, 12]"] + 196["Path
[1531, 1628, 13]"] + 197["Segment
[1636, 1714, 13]"] + 198["Segment
[1722, 1770, 13]"] + 199["Segment
[1778, 1858, 13]"] + 200["Segment
[1866, 1873, 13]"] 201[Solid2d] end subgraph path230 [Path] - 230["Path
[261, 354, 9]"] - 231["Segment
[360, 409, 9]"] - 232["Segment
[415, 465, 9]"] - 233["Segment
[471, 521, 9]"] - 234["Segment
[527, 545, 9]"] + 230["Path
[261, 354, 10]"] + 231["Segment
[360, 409, 10]"] + 232["Segment
[415, 465, 10]"] + 233["Segment
[471, 521, 10]"] + 234["Segment
[527, 545, 10]"] 235[Solid2d] end subgraph path256 [Path] - 256["Path
[309, 339, 10]"] - 257["Segment
[345, 377, 10]"] - 258["Segment
[383, 416, 10]"] - 259["Segment
[422, 470, 10]"] - 260["Segment
[476, 503, 10]"] - 261["Segment
[509, 516, 10]"] + 256["Path
[309, 339, 11]"] + 257["Segment
[345, 377, 11]"] + 258["Segment
[383, 416, 11]"] + 259["Segment
[422, 470, 11]"] + 260["Segment
[476, 503, 11]"] + 261["Segment
[509, 516, 11]"] 262[Solid2d] end subgraph path274 [Path] - 274["Path
[398, 423, 11]"] - 275["Segment
[431, 489, 11]"] - 276["Segment
[497, 556, 11]"] - 277["Segment
[564, 607, 11]"] - 278["Segment
[615, 622, 11]"] + 274["Path
[398, 423, 12]"] + 275["Segment
[431, 489, 12]"] + 276["Segment
[497, 556, 12]"] + 277["Segment
[564, 607, 12]"] + 278["Segment
[615, 622, 12]"] 279[Solid2d] end subgraph path298 [Path] - 298["Path
[398, 423, 11]"] - 299["Segment
[431, 489, 11]"] - 300["Segment
[497, 556, 11]"] - 301["Segment
[564, 607, 11]"] - 302["Segment
[615, 622, 11]"] + 298["Path
[398, 423, 12]"] + 299["Segment
[431, 489, 12]"] + 300["Segment
[497, 556, 12]"] + 301["Segment
[564, 607, 12]"] + 302["Segment
[615, 622, 12]"] 303[Solid2d] end subgraph path322 [Path] - 322["Path
[398, 423, 11]"] - 323["Segment
[431, 489, 11]"] - 324["Segment
[497, 556, 11]"] - 325["Segment
[564, 607, 11]"] - 326["Segment
[615, 622, 11]"] + 322["Path
[398, 423, 12]"] + 323["Segment
[431, 489, 12]"] + 324["Segment
[497, 556, 12]"] + 325["Segment
[564, 607, 12]"] + 326["Segment
[615, 622, 12]"] 327[Solid2d] end subgraph path346 [Path] - 346["Path
[398, 423, 11]"] - 347["Segment
[431, 489, 11]"] - 348["Segment
[497, 556, 11]"] - 349["Segment
[564, 607, 11]"] - 350["Segment
[615, 622, 11]"] + 346["Path
[398, 423, 12]"] + 347["Segment
[431, 489, 12]"] + 348["Segment
[497, 556, 12]"] + 349["Segment
[564, 607, 12]"] + 350["Segment
[615, 622, 12]"] 351[Solid2d] end - 1["Plane
[368, 385, 6]"] - 8["Sweep Extrusion
[603, 633, 6]"] + 1["Plane
[368, 385, 7]"] + 8["Sweep Extrusion
[603, 633, 7]"] 9[Wall] 10[Wall] 11[Wall] @@ -195,11 +195,11 @@ flowchart LR 20["SweepEdge Adjacent"] 21["SweepEdge Opposite"] 22["SweepEdge Adjacent"] - 23["EdgeCut Chamfer
[639, 870, 6]"] - 24["EdgeCut Chamfer
[639, 870, 6]"] - 25["EdgeCut Chamfer
[639, 870, 6]"] - 26["EdgeCut Chamfer
[639, 870, 6]"] - 37["Sweep Extrusion
[1781, 1824, 6]"] + 23["EdgeCut Chamfer
[639, 870, 7]"] + 24["EdgeCut Chamfer
[639, 870, 7]"] + 25["EdgeCut Chamfer
[639, 870, 7]"] + 26["EdgeCut Chamfer
[639, 870, 7]"] + 37["Sweep Extrusion
[1781, 1824, 7]"] 38[Wall] 39[Wall] 40[Wall] @@ -225,7 +225,7 @@ flowchart LR 60["SweepEdge Adjacent"] 61["SweepEdge Opposite"] 62["SweepEdge Adjacent"] - 70["Sweep Extrusion
[2183, 2226, 6]"] + 70["Sweep Extrusion
[2183, 2226, 7]"] 71[Wall] 72[Wall] 73[Wall] @@ -239,7 +239,7 @@ flowchart LR 81["SweepEdge Adjacent"] 82["SweepEdge Opposite"] 83["SweepEdge Adjacent"] - 90["Sweep Extrusion
[2478, 2511, 6]"] + 90["Sweep Extrusion
[2478, 2511, 7]"] 91[Wall] 92[Wall] 93[Wall] @@ -253,13 +253,13 @@ flowchart LR 101["SweepEdge Adjacent"] 102["SweepEdge Opposite"] 103["SweepEdge Adjacent"] - 104["Plane
[307, 324, 8]"] - 111["Plane
[535, 574, 8]"] + 104["Plane
[307, 324, 9]"] + 111["Plane
[535, 574, 9]"] 113["SweepEdge Opposite"] 114["SweepEdge Opposite"] 115["SweepEdge Opposite"] 116["SweepEdge Opposite"] - 118["Sweep Loft
[914, 957, 8]"] + 118["Sweep Loft
[914, 957, 9]"] 119[Wall] 120[Wall] 121[Wall] @@ -270,15 +270,15 @@ flowchart LR 126["SweepEdge Adjacent"] 127["SweepEdge Adjacent"] 128["SweepEdge Adjacent"] - 129["Plane
[455, 472, 7]"] - 137["Plane
[957, 974, 7]"] - 144["Plane
[1418, 1435, 7]"] - 155["Plane
[2556, 2573, 7]"] - 174["Plane
[2616, 2633, 7]"] - 181["Plane
[2678, 2695, 7]"] - 188["Plane
[2739, 2756, 7]"] - 195["Plane
[2800, 2817, 7]"] - 202["Sweep Extrusion
[2844, 2875, 7]"] + 129["Plane
[455, 472, 8]"] + 137["Plane
[957, 974, 8]"] + 144["Plane
[1418, 1435, 8]"] + 155["Plane
[2556, 2573, 8]"] + 174["Plane
[2616, 2633, 8]"] + 181["Plane
[2678, 2695, 8]"] + 188["Plane
[2739, 2756, 8]"] + 195["Plane
[2800, 2817, 8]"] + 202["Sweep Extrusion
[2844, 2875, 8]"] 203[Wall] 204[Wall] 205[Wall] @@ -305,8 +305,8 @@ flowchart LR 226["SweepEdge Adjacent"] 227["SweepEdge Opposite"] 228["SweepEdge Adjacent"] - 229["Plane
[238, 255, 9]"] - 236["Sweep Extrusion
[591, 643, 9]"] + 229["Plane
[238, 255, 10]"] + 236["Sweep Extrusion
[591, 643, 10]"] 237[Wall] 238[Wall] 239[Wall] @@ -321,12 +321,12 @@ flowchart LR 248["SweepEdge Adjacent"] 249["SweepEdge Opposite"] 250["SweepEdge Adjacent"] - 251["EdgeCut Fillet
[649, 855, 9]"] - 252["EdgeCut Fillet
[649, 855, 9]"] - 253["EdgeCut Fillet
[649, 855, 9]"] - 254["EdgeCut Fillet
[649, 855, 9]"] - 255["Plane
[286, 303, 10]"] - 263["Sweep Revolve
[522, 539, 10]"] + 251["EdgeCut Fillet
[649, 855, 10]"] + 252["EdgeCut Fillet
[649, 855, 10]"] + 253["EdgeCut Fillet
[649, 855, 10]"] + 254["EdgeCut Fillet
[649, 855, 10]"] + 255["Plane
[286, 303, 11]"] + 263["Sweep Revolve
[522, 539, 11]"] 264[Wall] 265[Wall] 266[Wall] @@ -336,8 +336,8 @@ flowchart LR 270["SweepEdge Adjacent"] 271["SweepEdge Adjacent"] 272["SweepEdge Adjacent"] - 273["Plane
[373, 390, 11]"] - 280["Sweep Extrusion
[634, 681, 11]"] + 273["Plane
[373, 390, 12]"] + 280["Sweep Extrusion
[634, 681, 12]"] 281[Wall] 282[Wall] 283[Wall] @@ -352,10 +352,10 @@ flowchart LR 292["SweepEdge Adjacent"] 293["SweepEdge Opposite"] 294["SweepEdge Adjacent"] - 295["EdgeCut Chamfer
[689, 835, 11]"] - 296["EdgeCut Chamfer
[689, 835, 11]"] - 297["Plane
[373, 390, 11]"] - 304["Sweep Extrusion
[634, 681, 11]"] + 295["EdgeCut Chamfer
[689, 835, 12]"] + 296["EdgeCut Chamfer
[689, 835, 12]"] + 297["Plane
[373, 390, 12]"] + 304["Sweep Extrusion
[634, 681, 12]"] 305[Wall] 306[Wall] 307[Wall] @@ -370,10 +370,10 @@ flowchart LR 316["SweepEdge Adjacent"] 317["SweepEdge Opposite"] 318["SweepEdge Adjacent"] - 319["EdgeCut Chamfer
[689, 835, 11]"] - 320["EdgeCut Chamfer
[689, 835, 11]"] - 321["Plane
[373, 390, 11]"] - 328["Sweep Extrusion
[634, 681, 11]"] + 319["EdgeCut Chamfer
[689, 835, 12]"] + 320["EdgeCut Chamfer
[689, 835, 12]"] + 321["Plane
[373, 390, 12]"] + 328["Sweep Extrusion
[634, 681, 12]"] 329[Wall] 330[Wall] 331[Wall] @@ -388,10 +388,10 @@ flowchart LR 340["SweepEdge Adjacent"] 341["SweepEdge Opposite"] 342["SweepEdge Adjacent"] - 343["EdgeCut Chamfer
[689, 835, 11]"] - 344["EdgeCut Chamfer
[689, 835, 11]"] - 345["Plane
[373, 390, 11]"] - 352["Sweep Extrusion
[634, 681, 11]"] + 343["EdgeCut Chamfer
[689, 835, 12]"] + 344["EdgeCut Chamfer
[689, 835, 12]"] + 345["Plane
[373, 390, 12]"] + 352["Sweep Extrusion
[634, 681, 12]"] 353[Wall] 354[Wall] 355[Wall] @@ -406,12 +406,12 @@ flowchart LR 364["SweepEdge Adjacent"] 365["SweepEdge Opposite"] 366["SweepEdge Adjacent"] - 367["EdgeCut Chamfer
[689, 835, 11]"] - 368["EdgeCut Chamfer
[689, 835, 11]"] - 369["StartSketchOnFace
[931, 962, 6]"] - 370["StartSketchOnFace
[1877, 1916, 6]"] - 371["StartSketchOnFace
[2267, 2306, 6]"] - 372["StartSketchOnPlane
[594, 618, 8]"] + 367["EdgeCut Chamfer
[689, 835, 12]"] + 368["EdgeCut Chamfer
[689, 835, 12]"] + 369["StartSketchOnFace
[931, 962, 7]"] + 370["StartSketchOnFace
[1877, 1916, 7]"] + 371["StartSketchOnFace
[2267, 2306, 7]"] + 372["StartSketchOnPlane
[594, 618, 9]"] 1 --- 2 2 --- 3 2 --- 4 diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ops.snap b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ops.snap index 211d93d80..acd4394ce 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ops.snap @@ -8,7 +8,7 @@ description: Operations executed walkie-talkie.kcl "group": { "type": "ModuleInstance", "name": "body", - "moduleId": 6 + "moduleId": 7 }, "sourceRange": [] }, @@ -360,7 +360,7 @@ description: Operations executed walkie-talkie.kcl "group": { "type": "ModuleInstance", "name": "antenna", - "moduleId": 8 + "moduleId": 9 }, "sourceRange": [] }, @@ -460,7 +460,7 @@ description: Operations executed walkie-talkie.kcl "group": { "type": "ModuleInstance", "name": "case", - "moduleId": 7 + "moduleId": 8 }, "sourceRange": [] }, @@ -1513,7 +1513,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 69, 977, - 12 + 13 ], "unlabeledArg": null, "labeledArgs": {} @@ -1572,7 +1572,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 1035, 1456, - 12 + 13 ], "unlabeledArg": null, "labeledArgs": {} @@ -1631,7 +1631,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 1474, 1895, - 12 + 13 ], "unlabeledArg": null, "labeledArgs": {} @@ -1690,7 +1690,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 1035, 1456, - 12 + 13 ], "unlabeledArg": null, "labeledArgs": {} @@ -1749,7 +1749,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 1474, 1895, - 12 + 13 ], "unlabeledArg": null, "labeledArgs": {} @@ -1825,7 +1825,7 @@ description: Operations executed walkie-talkie.kcl "group": { "type": "ModuleInstance", "name": "talkButton", - "moduleId": 9 + "moduleId": 10 }, "sourceRange": [] }, @@ -1940,7 +1940,7 @@ description: Operations executed walkie-talkie.kcl "group": { "type": "ModuleInstance", "name": "knob", - "moduleId": 10 + "moduleId": 11 }, "sourceRange": [] }, @@ -2056,7 +2056,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 308, 891, - 11 + 12 ], "unlabeledArg": null, "labeledArgs": {} @@ -2169,7 +2169,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 308, 891, - 11 + 12 ], "unlabeledArg": null, "labeledArgs": {} @@ -2282,7 +2282,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 308, 891, - 11 + 12 ], "unlabeledArg": null, "labeledArgs": {} @@ -2395,7 +2395,7 @@ description: Operations executed walkie-talkie.kcl "functionSourceRange": [ 308, 891, - 11 + 12 ], "unlabeledArg": null, "labeledArgs": {} diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/program_memory.snap index f1fb6a1e5..20fc89f4e 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/program_memory.snap @@ -5,7 +5,7 @@ description: Variables in memory after executing walkie-talkie.kcl { "antenna": { "type": "Module", - "value": 8 + "value": 9 }, "antennaBaseHeight": { "type": "Number", @@ -74,7 +74,7 @@ description: Variables in memory after executing walkie-talkie.kcl }, "body": { "type": "Module", - "value": 6 + "value": 7 }, "button": { "type": "Function" @@ -120,7 +120,7 @@ description: Variables in memory after executing walkie-talkie.kcl }, "case": { "type": "Module", - "value": 7 + "value": 8 }, "caseTolerance": { "type": "Number", @@ -163,7 +163,7 @@ description: Variables in memory after executing walkie-talkie.kcl }, "knob": { "type": "Module", - "value": 10 + "value": 11 }, "knobDiameter": { "type": "Number", @@ -330,7 +330,7 @@ description: Variables in memory after executing walkie-talkie.kcl }, "talkButton": { "type": "Module", - "value": 9 + "value": 10 }, "talkButtonHeight": { "type": "Number", diff --git a/rust/kcl-lib/tests/kcl_samples/washer/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/washer/artifact_commands.snap index 573d96f40..765b10a30 100644 --- a/rust/kcl-lib/tests/kcl_samples/washer/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/washer/artifact_commands.snap @@ -339,6 +339,14 @@ description: Artifact commands washer.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kittycad_svg/artifact_commands.snap b/rust/kcl-lib/tests/kittycad_svg/artifact_commands.snap index a89ce045d..10f9cb0fe 100644 --- a/rust/kcl-lib/tests/kittycad_svg/artifact_commands.snap +++ b/rust/kcl-lib/tests/kittycad_svg/artifact_commands.snap @@ -10569,6 +10569,14 @@ description: Artifact commands kittycad_svg.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kw_fn/artifact_commands.snap b/rust/kcl-lib/tests/kw_fn/artifact_commands.snap index 09f375a3b..e74101431 100644 --- a/rust/kcl-lib/tests/kw_fn/artifact_commands.snap +++ b/rust/kcl-lib/tests/kw_fn/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands kw_fn.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kw_fn_too_few_args/artifact_commands.snap b/rust/kcl-lib/tests/kw_fn_too_few_args/artifact_commands.snap index baa84b306..36e8167de 100644 --- a/rust/kcl-lib/tests/kw_fn_too_few_args/artifact_commands.snap +++ b/rust/kcl-lib/tests/kw_fn_too_few_args/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands kw_fn_too_few_args.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/artifact_commands.snap b/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/artifact_commands.snap index 53f5ebd3c..a811b99d4 100644 --- a/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/artifact_commands.snap +++ b/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands kw_fn_unlabeled_but_has_label.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kw_fn_with_defaults/artifact_commands.snap b/rust/kcl-lib/tests/kw_fn_with_defaults/artifact_commands.snap index 249300bd9..666f74b35 100644 --- a/rust/kcl-lib/tests/kw_fn_with_defaults/artifact_commands.snap +++ b/rust/kcl-lib/tests/kw_fn_with_defaults/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands kw_fn_with_defaults.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/linear_pattern3d_a_pattern/artifact_commands.snap b/rust/kcl-lib/tests/linear_pattern3d_a_pattern/artifact_commands.snap index 3545def5c..27b588031 100644 --- a/rust/kcl-lib/tests/linear_pattern3d_a_pattern/artifact_commands.snap +++ b/rust/kcl-lib/tests/linear_pattern3d_a_pattern/artifact_commands.snap @@ -1783,6 +1783,14 @@ description: Artifact commands linear_pattern3d_a_pattern.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/mike_stress_test/artifact_commands.snap b/rust/kcl-lib/tests/mike_stress_test/artifact_commands.snap index 90dfc092e..7bdf36924 100644 --- a/rust/kcl-lib/tests/mike_stress_test/artifact_commands.snap +++ b/rust/kcl-lib/tests/mike_stress_test/artifact_commands.snap @@ -37192,6 +37192,14 @@ description: Artifact commands mike_stress_test.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/multi_transform/artifact_commands.snap b/rust/kcl-lib/tests/multi_transform/artifact_commands.snap index ef8baa959..6e9ab1ed1 100644 --- a/rust/kcl-lib/tests/multi_transform/artifact_commands.snap +++ b/rust/kcl-lib/tests/multi_transform/artifact_commands.snap @@ -486,6 +486,14 @@ description: Artifact commands multi_transform.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/neg_xz_plane/artifact_commands.snap b/rust/kcl-lib/tests/neg_xz_plane/artifact_commands.snap index 2365c7958..2754bbfb7 100644 --- a/rust/kcl-lib/tests/neg_xz_plane/artifact_commands.snap +++ b/rust/kcl-lib/tests/neg_xz_plane/artifact_commands.snap @@ -266,6 +266,14 @@ description: Artifact commands neg_xz_plane.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/non_string_key_of_object/artifact_commands.snap b/rust/kcl-lib/tests/non_string_key_of_object/artifact_commands.snap index 5af7803f1..ddc13554b 100644 --- a/rust/kcl-lib/tests/non_string_key_of_object/artifact_commands.snap +++ b/rust/kcl-lib/tests/non_string_key_of_object/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands non_string_key_of_object.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/object_prop_not_found/artifact_commands.snap b/rust/kcl-lib/tests/object_prop_not_found/artifact_commands.snap index bc2b36447..7e331e919 100644 --- a/rust/kcl-lib/tests/object_prop_not_found/artifact_commands.snap +++ b/rust/kcl-lib/tests/object_prop_not_found/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands object_prop_not_found.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/out_of_band_sketches/artifact_commands.snap b/rust/kcl-lib/tests/out_of_band_sketches/artifact_commands.snap index 7244f2c98..b3304eb00 100644 --- a/rust/kcl-lib/tests/out_of_band_sketches/artifact_commands.snap +++ b/rust/kcl-lib/tests/out_of_band_sketches/artifact_commands.snap @@ -561,6 +561,14 @@ description: Artifact commands out_of_band_sketches.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/parametric/artifact_commands.snap b/rust/kcl-lib/tests/parametric/artifact_commands.snap index ead041ad4..d28a2430d 100644 --- a/rust/kcl-lib/tests/parametric/artifact_commands.snap +++ b/rust/kcl-lib/tests/parametric/artifact_commands.snap @@ -377,6 +377,14 @@ description: Artifact commands parametric.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/parametric_with_tan_arc/artifact_commands.snap b/rust/kcl-lib/tests/parametric_with_tan_arc/artifact_commands.snap index f3ca59216..814590d0e 100644 --- a/rust/kcl-lib/tests/parametric_with_tan_arc/artifact_commands.snap +++ b/rust/kcl-lib/tests/parametric_with_tan_arc/artifact_commands.snap @@ -449,6 +449,14 @@ description: Artifact commands parametric_with_tan_arc.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/pattern_circular_in_module/artifact_commands.snap b/rust/kcl-lib/tests/pattern_circular_in_module/artifact_commands.snap index 630bc40ab..2380c16f9 100644 --- a/rust/kcl-lib/tests/pattern_circular_in_module/artifact_commands.snap +++ b/rust/kcl-lib/tests/pattern_circular_in_module/artifact_commands.snap @@ -53,6 +53,14 @@ description: Artifact commands pattern_circular_in_module.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/pattern_circular_in_module/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/pattern_circular_in_module/artifact_graph_flowchart.snap.md index a5ae194d0..7e16ddc9b 100644 --- a/rust/kcl-lib/tests/pattern_circular_in_module/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/pattern_circular_in_module/artifact_graph_flowchart.snap.md @@ -1,23 +1,23 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[63, 90, 5]"] - 3["Segment
[98, 116, 5]"] - 4["Segment
[124, 143, 5]"] - 5["Segment
[151, 170, 5]"] - 6["Segment
[178, 185, 5]"] + 2["Path
[63, 90, 6]"] + 3["Segment
[98, 116, 6]"] + 4["Segment
[124, 143, 6]"] + 5["Segment
[151, 170, 6]"] + 6["Segment
[178, 185, 6]"] 7[Solid2d] end subgraph path27 [Path] - 27["Path
[63, 90, 5]"] - 28["Segment
[98, 116, 5]"] - 29["Segment
[124, 143, 5]"] - 30["Segment
[151, 170, 5]"] - 31["Segment
[178, 185, 5]"] + 27["Path
[63, 90, 6]"] + 28["Segment
[98, 116, 6]"] + 29["Segment
[124, 143, 6]"] + 30["Segment
[151, 170, 6]"] + 31["Segment
[178, 185, 6]"] 32[Solid2d] end - 1["Plane
[38, 55, 5]"] - 8["Sweep Extrusion
[342, 376, 5]"] + 1["Plane
[38, 55, 6]"] + 8["Sweep Extrusion
[342, 376, 6]"] 9[Wall] 10[Wall] 11[Wall] @@ -32,11 +32,11 @@ flowchart LR 20["SweepEdge Adjacent"] 21["SweepEdge Opposite"] 22["SweepEdge Adjacent"] - 23["Sweep Extrusion
[342, 376, 5]"] - 24["Sweep Extrusion
[342, 376, 5]"] - 25["Sweep Extrusion
[342, 376, 5]"] - 26["Plane
[38, 55, 5]"] - 33["Sweep Extrusion
[342, 376, 5]"] + 23["Sweep Extrusion
[342, 376, 6]"] + 24["Sweep Extrusion
[342, 376, 6]"] + 25["Sweep Extrusion
[342, 376, 6]"] + 26["Plane
[38, 55, 6]"] + 33["Sweep Extrusion
[342, 376, 6]"] 34[Wall] 35[Wall] 36[Wall] @@ -51,9 +51,9 @@ flowchart LR 45["SweepEdge Adjacent"] 46["SweepEdge Opposite"] 47["SweepEdge Adjacent"] - 48["Sweep Extrusion
[342, 376, 5]"] - 49["Sweep Extrusion
[342, 376, 5]"] - 50["Sweep Extrusion
[342, 376, 5]"] + 48["Sweep Extrusion
[342, 376, 6]"] + 49["Sweep Extrusion
[342, 376, 6]"] + 50["Sweep Extrusion
[342, 376, 6]"] 1 --- 2 2 --- 3 2 --- 4 diff --git a/rust/kcl-lib/tests/pattern_circular_in_module/ops.snap b/rust/kcl-lib/tests/pattern_circular_in_module/ops.snap index c6d6087cd..1bc8ab186 100644 --- a/rust/kcl-lib/tests/pattern_circular_in_module/ops.snap +++ b/rust/kcl-lib/tests/pattern_circular_in_module/ops.snap @@ -11,7 +11,7 @@ description: Operations executed pattern_circular_in_module.kcl "functionSourceRange": [ 15, 378, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -99,7 +99,7 @@ description: Operations executed pattern_circular_in_module.kcl "functionSourceRange": [ 15, 378, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} diff --git a/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap b/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap index 4136a1dce..9ae9d9f5c 100644 --- a/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap +++ b/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap @@ -2225,6 +2225,14 @@ description: Artifact commands pattern_into_union.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/pattern_linear_in_module/artifact_commands.snap b/rust/kcl-lib/tests/pattern_linear_in_module/artifact_commands.snap index d6dfe48a0..1fb6dd000 100644 --- a/rust/kcl-lib/tests/pattern_linear_in_module/artifact_commands.snap +++ b/rust/kcl-lib/tests/pattern_linear_in_module/artifact_commands.snap @@ -53,6 +53,14 @@ description: Artifact commands pattern_linear_in_module.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/pattern_linear_in_module/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/pattern_linear_in_module/artifact_graph_flowchart.snap.md index b74334ae2..fd3413c52 100644 --- a/rust/kcl-lib/tests/pattern_linear_in_module/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/pattern_linear_in_module/artifact_graph_flowchart.snap.md @@ -1,41 +1,41 @@ ```mermaid flowchart LR subgraph path2 [Path] - 2["Path
[54, 89, 5]"] - 3["Segment
[54, 89, 5]"] + 2["Path
[54, 89, 6]"] + 3["Segment
[54, 89, 6]"] 4[Solid2d] end subgraph path18 [Path] - 18["Path
[54, 89, 5]"] - 19["Segment
[54, 89, 5]"] + 18["Path
[54, 89, 6]"] + 19["Segment
[54, 89, 6]"] 20[Solid2d] end - 1["Plane
[29, 46, 5]"] - 5["Sweep Extrusion
[200, 219, 5]"] + 1["Plane
[29, 46, 6]"] + 5["Sweep Extrusion
[200, 219, 6]"] 6[Wall] 7["Cap Start"] 8["Cap End"] 9["SweepEdge Opposite"] 10["SweepEdge Adjacent"] - 11["Sweep Extrusion
[200, 219, 5]"] - 12["Sweep Extrusion
[200, 219, 5]"] - 13["Sweep Extrusion
[200, 219, 5]"] - 14["Sweep Extrusion
[200, 219, 5]"] - 15["Sweep Extrusion
[200, 219, 5]"] - 16["Sweep Extrusion
[200, 219, 5]"] - 17["Plane
[29, 46, 5]"] - 21["Sweep Extrusion
[200, 219, 5]"] + 11["Sweep Extrusion
[200, 219, 6]"] + 12["Sweep Extrusion
[200, 219, 6]"] + 13["Sweep Extrusion
[200, 219, 6]"] + 14["Sweep Extrusion
[200, 219, 6]"] + 15["Sweep Extrusion
[200, 219, 6]"] + 16["Sweep Extrusion
[200, 219, 6]"] + 17["Plane
[29, 46, 6]"] + 21["Sweep Extrusion
[200, 219, 6]"] 22[Wall] 23["Cap Start"] 24["Cap End"] 25["SweepEdge Opposite"] 26["SweepEdge Adjacent"] - 27["Sweep Extrusion
[200, 219, 5]"] - 28["Sweep Extrusion
[200, 219, 5]"] - 29["Sweep Extrusion
[200, 219, 5]"] - 30["Sweep Extrusion
[200, 219, 5]"] - 31["Sweep Extrusion
[200, 219, 5]"] - 32["Sweep Extrusion
[200, 219, 5]"] + 27["Sweep Extrusion
[200, 219, 6]"] + 28["Sweep Extrusion
[200, 219, 6]"] + 29["Sweep Extrusion
[200, 219, 6]"] + 30["Sweep Extrusion
[200, 219, 6]"] + 31["Sweep Extrusion
[200, 219, 6]"] + 32["Sweep Extrusion
[200, 219, 6]"] 1 --- 2 2 --- 3 2 ---- 5 diff --git a/rust/kcl-lib/tests/pattern_linear_in_module/ops.snap b/rust/kcl-lib/tests/pattern_linear_in_module/ops.snap index b1e2d2e4d..fad2af73d 100644 --- a/rust/kcl-lib/tests/pattern_linear_in_module/ops.snap +++ b/rust/kcl-lib/tests/pattern_linear_in_module/ops.snap @@ -11,7 +11,7 @@ description: Operations executed pattern_linear_in_module.kcl "functionSourceRange": [ 15, 221, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} @@ -117,7 +117,7 @@ description: Operations executed pattern_linear_in_module.kcl "functionSourceRange": [ 15, 221, - 5 + 6 ], "unlabeledArg": null, "labeledArgs": {} diff --git a/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap b/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap index 5ea2f10b7..6de4ab0f3 100644 --- a/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap +++ b/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap @@ -621,6 +621,14 @@ description: Artifact commands pentagon_fillet_sugar.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/pipe_as_arg/artifact_commands.snap b/rust/kcl-lib/tests/pipe_as_arg/artifact_commands.snap index 4c395c5de..14bba64be 100644 --- a/rust/kcl-lib/tests/pipe_as_arg/artifact_commands.snap +++ b/rust/kcl-lib/tests/pipe_as_arg/artifact_commands.snap @@ -320,6 +320,14 @@ description: Artifact commands pipe_as_arg.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/artifact_commands.snap b/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/artifact_commands.snap index 732246ff6..7211ee41c 100644 --- a/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/artifact_commands.snap +++ b/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands pipe_substitution_inside_function_called_from_pip "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/poop_chute/artifact_commands.snap b/rust/kcl-lib/tests/poop_chute/artifact_commands.snap index 87f008c0a..e17d8c728 100644 --- a/rust/kcl-lib/tests/poop_chute/artifact_commands.snap +++ b/rust/kcl-lib/tests/poop_chute/artifact_commands.snap @@ -1218,6 +1218,14 @@ description: Artifact commands poop_chute.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/property_of_object/artifact_commands.snap b/rust/kcl-lib/tests/property_of_object/artifact_commands.snap index 3d24a0ce3..551fed404 100644 --- a/rust/kcl-lib/tests/property_of_object/artifact_commands.snap +++ b/rust/kcl-lib/tests/property_of_object/artifact_commands.snap @@ -45,6 +45,14 @@ description: Artifact commands property_of_object.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/revolve_about_edge/artifact_commands.snap b/rust/kcl-lib/tests/revolve_about_edge/artifact_commands.snap index b9d42b46f..8e1321749 100644 --- a/rust/kcl-lib/tests/revolve_about_edge/artifact_commands.snap +++ b/rust/kcl-lib/tests/revolve_about_edge/artifact_commands.snap @@ -283,6 +283,14 @@ description: Artifact commands revolve_about_edge.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/riddle_small/artifact_commands.snap b/rust/kcl-lib/tests/riddle_small/artifact_commands.snap index a6016a928..f9ce6b9e0 100644 --- a/rust/kcl-lib/tests/riddle_small/artifact_commands.snap +++ b/rust/kcl-lib/tests/riddle_small/artifact_commands.snap @@ -303,6 +303,14 @@ description: Artifact commands riddle_small.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap index 41ad80320..b3523e20d 100644 --- a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap @@ -752,6 +752,14 @@ description: Artifact commands rotate_after_fillet.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap index 95d01b467..04bb2016c 100644 --- a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap @@ -752,6 +752,14 @@ description: Artifact commands scale_after_fillet.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap index 8e8785032..52212cbe1 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap @@ -723,6 +723,14 @@ description: Artifact commands sketch-on-chamfer-two-times-different-order.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap index 28007f0c3..90e0b43c3 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap @@ -723,6 +723,14 @@ description: Artifact commands sketch-on-chamfer-two-times.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch_in_object/artifact_commands.snap b/rust/kcl-lib/tests/sketch_in_object/artifact_commands.snap index e30114626..0e9357ab9 100644 --- a/rust/kcl-lib/tests/sketch_in_object/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_in_object/artifact_commands.snap @@ -561,6 +561,14 @@ description: Artifact commands sketch_in_object.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch_on_face/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face/artifact_commands.snap index 9af151b9c..921f59940 100644 --- a/rust/kcl-lib/tests/sketch_on_face/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face/artifact_commands.snap @@ -528,6 +528,14 @@ description: Artifact commands sketch_on_face.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap index 229340501..b9ff92d5f 100644 --- a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap @@ -663,6 +663,14 @@ description: Artifact commands sketch_on_face_after_fillets_referencing_face.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch_on_face_circle_tagged/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_circle_tagged/artifact_commands.snap index de76e4eb5..f3a33af38 100644 --- a/rust/kcl-lib/tests/sketch_on_face_circle_tagged/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_circle_tagged/artifact_commands.snap @@ -442,6 +442,14 @@ description: Artifact commands sketch_on_face_circle_tagged.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch_on_face_end/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_end/artifact_commands.snap index 6f02b0a5d..be53953b6 100644 --- a/rust/kcl-lib/tests/sketch_on_face_end/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_end/artifact_commands.snap @@ -528,6 +528,14 @@ description: Artifact commands sketch_on_face_end.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/artifact_commands.snap index 8cbb64845..8da85ca14 100644 --- a/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/artifact_commands.snap @@ -528,6 +528,14 @@ description: Artifact commands sketch_on_face_end_negative_extrude.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/sketch_on_face_start/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_start/artifact_commands.snap index 873db8abd..fcee84a51 100644 --- a/rust/kcl-lib/tests/sketch_on_face_start/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_start/artifact_commands.snap @@ -528,6 +528,14 @@ description: Artifact commands sketch_on_face_start.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/ssi_pattern/artifact_commands.snap b/rust/kcl-lib/tests/ssi_pattern/artifact_commands.snap index 2dc78bc9f..e4ec7cd1d 100644 --- a/rust/kcl-lib/tests/ssi_pattern/artifact_commands.snap +++ b/rust/kcl-lib/tests/ssi_pattern/artifact_commands.snap @@ -3346,6 +3346,14 @@ description: Artifact commands ssi_pattern.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap b/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap index 319817586..2d8cfff65 100644 --- a/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap @@ -489,6 +489,14 @@ description: Artifact commands subtract_cylinder_from_cube.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap index e057526ce..264223483 100644 --- a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap @@ -599,6 +599,14 @@ description: Artifact commands subtract_doesnt_need_brackets.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/tan_arc_x_line/artifact_commands.snap b/rust/kcl-lib/tests/tan_arc_x_line/artifact_commands.snap index ed5305092..11f3dfd3b 100644 --- a/rust/kcl-lib/tests/tan_arc_x_line/artifact_commands.snap +++ b/rust/kcl-lib/tests/tan_arc_x_line/artifact_commands.snap @@ -195,6 +195,14 @@ description: Artifact commands tan_arc_x_line.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/tangent_to_3_point_arc/artifact_commands.snap b/rust/kcl-lib/tests/tangent_to_3_point_arc/artifact_commands.snap index f1fbb274d..663cb00a1 100644 --- a/rust/kcl-lib/tests/tangent_to_3_point_arc/artifact_commands.snap +++ b/rust/kcl-lib/tests/tangent_to_3_point_arc/artifact_commands.snap @@ -169,6 +169,14 @@ description: Artifact commands tangent_to_3_point_arc.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/tangential_arc/artifact_commands.snap b/rust/kcl-lib/tests/tangential_arc/artifact_commands.snap index dcb5ef3e7..7808ef04b 100644 --- a/rust/kcl-lib/tests/tangential_arc/artifact_commands.snap +++ b/rust/kcl-lib/tests/tangential_arc/artifact_commands.snap @@ -274,6 +274,14 @@ description: Artifact commands tangential_arc.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap index 9c7ba85de..5677110ee 100644 --- a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap @@ -752,6 +752,14 @@ description: Artifact commands translate_after_fillet.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/union_cubes/artifact_commands.snap b/rust/kcl-lib/tests/union_cubes/artifact_commands.snap index a1fb24a64..f5a0ac54d 100644 --- a/rust/kcl-lib/tests/union_cubes/artifact_commands.snap +++ b/rust/kcl-lib/tests/union_cubes/artifact_commands.snap @@ -597,6 +597,14 @@ description: Artifact commands union_cubes.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/xz_plane/artifact_commands.snap b/rust/kcl-lib/tests/xz_plane/artifact_commands.snap index d816c748b..08f16a6eb 100644 --- a/rust/kcl-lib/tests/xz_plane/artifact_commands.snap +++ b/rust/kcl-lib/tests/xz_plane/artifact_commands.snap @@ -266,6 +266,14 @@ description: Artifact commands xz_plane.kcl "unit": "mm" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, { "cmdId": "[uuid]", "range": [],