diff --git a/docs/kcl-src/known-issues.md b/docs/kcl-src/known-issues.md new file mode 100644 index 000000000..eb3025d07 --- /dev/null +++ b/docs/kcl-src/known-issues.md @@ -0,0 +1,26 @@ +--- +title: "KCL Known Issues" +excerpt: "Known issues with the KCL standard library for the Zoo Design Studio." +layout: manual +--- + +The following are bugs that are not in modeling-app or kcl itself. These bugs +once fixed in engine will just start working here with no language changes. + +- **Sketch on Face**: If your sketch is outside the edges of the face (on which you + are sketching) you will get multiple models returned instead of one single + model for that sketch and its underlying 3D object. + If you see a red line around your model, it means this is happening. + +- **Import**: Right now you can import a file, even if that file has brep data + you cannot edit it, after v1, the engine will account for this. + +- **Fillets**: Fillets cannot intersect, you will get an error. Only simple fillet + cases work currently. + +- **Chamfers**: Chamfers cannot intersect, you will get an error. Only simple + chamfer cases work currently. + +- **Appearance**: Changing the appearance on a loft does not work. + +- **CSG Booleans**: Coplanar (bodies that share a plane) unions, subtractions, and intersections are not currently supported. diff --git a/docs/kcl-src/modules.md b/docs/kcl-src/modules.md new file mode 100644 index 000000000..262780c51 --- /dev/null +++ b/docs/kcl-src/modules.md @@ -0,0 +1,365 @@ +--- +title: "KCL Modules" +excerpt: "Documentation of modules for the KCL language for the Zoo Design Studio." +layout: manual +--- + +`KCL` allows splitting code up into multiple files. Each file is somewhat +isolated from other files as a separate module. + +When you define a function, you can use `export` before it to make it available +to other modules. + +```kcl +// util.kcl +export fn increment(x) { + return x + 1 +} +``` + +Other files in the project can now import functions that have been exported. +This makes them available to use in another file. + +```norun +// main.kcl +import increment from "util.kcl" + +answer = increment(41) +``` + +Imported files _must_ be in the same project so that units are uniform across +modules. This means that it must be in the same directory. + +Import statements must be at the top-level of a file. It is not allowed to have +an `import` statement inside a function or in the body of an if‑else. + +Multiple functions can be exported in a file. + +```kcl +// util.kcl +export fn increment(x) { + return x + 1 +} + +export fn decrement(x) { + return x - 1 +} +``` + +When importing, you can import multiple functions at once. + +```norun +import increment, decrement from "util.kcl" +``` + +Imported symbols can be renamed for convenience or to avoid name collisions. + +```norun +import increment as inc, decrement as dec from "util.kcl" +``` + +--- + +## Functions vs `clone` + +There are two common patterns for re‑using geometry: + +1. **Wrap the construction in a function** – flexible and fully parametric. +2. **Duplicate an existing object with `clone`** – lightning‑fast, but an exact + duplicate. + +### Parametric function example + +```kcl +fn cube(center) { + return startSketchOn(XY) + |> startProfile(at = [center[0] - 10, center[1] - 10]) + |> line(endAbsolute = [center[0] + 10, center[1] - 10]) + |> line(endAbsolute = [center[0] + 10, center[1] + 10]) + |> line(endAbsolute = [center[0] - 10, center[1] + 10]) + |> close() + |> extrude(length = 10) +} + +myCube = cube([0, 0]) +``` + +*Pros* +- Any argument can be a parameter – size, position, appearance, etc. +- Works great inside loops, arrays, or optimisation sweeps. + +*Cons* +- Every invocation rebuilds the entire feature tree. +- **Slower** than a straight duplicate – each call is its own render job. + +### `clone` example + +```kcl +sketch001 = startSketchOn(-XZ) + |> circle(center = [0, 0], radius = 10) + |> extrude(length = 5) + |> appearance(color = "#ff0000", metalness = 90, roughness = 90) + +sketch002 = clone(sketch001) // ✓ instant copy +``` + +*Pros* +- Roughly an O(1) operation – we just duplicate the underlying engine handle. +- Perfect when you need ten identical bolts or two copies of the same imported STEP file. + +*Cons* +- **Not parametric** – the clone is exactly the same shape as the source. +- If you need to tweak dimensions per‑instance, you’re back to a function. + +> **Rule of thumb** – Reach for `clone` when the geometry is already what you want. Reach for a function when you need customisation. + +--- + +## Module‑level parallelism + +Under the hood, the Design Studio runs **every module in parallel** where it can. This means: + +- The top‑level code of `foo.kcl`, `bar.kcl`, and `baz.kcl` all start executing immediately and concurrently. +- Imports that read foreign files (STEP/OBJ/…) overlap their I/O and background render. +- CPU‑bound calculations in separate modules get their own worker threads. + +### Why modules beat one‑big‑file + +If you shoe‑horn everything into `main.kcl`, each statement runs sequentially: + +```norun +import "big.step" as gizmo // blocks main while reading + +gizmo |> translate(x=50) // blocks again while waiting for render +``` + +Split `gizmo` into its own file and the read/render can overlap whatever else `main.kcl` is doing. + +```norun +// gizmo.kcl (worker A) +import "big.step" + +// main.kcl (worker B) +import "gizmo.kcl" as gizmo // non‑blocking + +// ... other setup ... + +gizmo |> translate(x=50) // only blocks here +``` + +### Gotcha: defining but **not** calling functions + +Defining a function inside a module is instantaneous – we just record the byte‑code. The heavy lifting happens when the function is **called**. So: + +```norun +// util.kcl +export fn makeBolt(size) { /* … expensive CAD … */ } +``` + +If `main.kcl` waits until the very end to call `makeBolt`, *none* of that work was parallelised – you’ve pushed the cost back onto the serial tail of your script. + +**Better:** call it early or move the invocation into another module. + +```norun +// bolt_instance.kcl +import makeBolt from "util.kcl" +bolt = makeBolt(5) // executed in parallel +bolt +``` + +Now `main.kcl` can `import "bolt_instance.kcl" as bolt` and get the result that was rendered while it was busy doing other things. + +--- + +## Whole module import + +You can also import the whole module. This is useful if you want to use the +result of a module as a variable, like a part. + +```norun +import "tests/inputs/cube.kcl" as cube +cube + |> translate(x=10) +``` + +This imports the whole module and makes it available as `cube`. You can then +use it like any other object. The `cube` variable is now a reference to the +result of the module. This means that if you change the module, the `cube` +variable will change as well. + +In `cube.kcl`, you cannot have multiple objects. It has to be a single part. If +you have multiple objects, you will get an error. This is because the module is +expected to return a single object that can be used as a variable. + +The last expression or variable definition becomes the module's return value. +The module is expected to return a single object that can be used as a variable +by whatever imports it. + +So for example, this is allowed: + +```norun +... a bunch of code to create cube and cube2 ... + +myUnion = union([cube, cube2]) +``` + +You can also do this: + +```norun +... a bunch of code to create cube and cube2 ... + +union([cube, cube2]) +``` + +Either way, the last line will return the union of the two objects. + +Or what you could do instead is: + +```norun +... a bunch of code to create cube and cube2 ... + +myUnion = union([cube, cube2]) +myUnion +``` + +This will assign the union of the two objects to a variable, and then return it +on the last statement. It's simply another way of doing the same thing. + +The final statement is what's important because it's the return value of the +entire module. The module is expected to return a single object that can be used +as a variable by the file that imports it. + +--- + +## Multiple instances of the same import + +Whether you are importing a file from another CAD system or a KCL file, that +file represents object(s) in memory. If you import the same file multiple times, +it will only be rendered once. + +If you want to have multiple instances of the same object, you can use the +[`clone`](/docs/kcl/clone) function. This will render a new instance of the object in memory. + +```norun +import cube from "tests/inputs/cube.kcl" + +cube + |> translate(x=10) +clone(cube) + |> translate(x=20) +``` + +In the sample above, the `cube` object is imported from a KCL file. The first +instance is translated 10 units in the x direction. The second instance is +cloned and translated 20 units in the x direction. The two instances are now +separate objects in memory, and can be manipulated independently. + +Here is an example with a file from another CAD system: + +```kcl +import "tests/inputs/cube.step" as cube + +cube + |> translate(x=10) +clone(cube) + |> translate(x=20) +``` + +--- + +## Importing files from other CAD systems + +`import` can also be used to import files from other CAD systems. The format of the statement is the +same as for KCL files. You can only import the whole file, not items from it. E.g., + +```norun +import "tests/inputs/cube.obj" + +// Use `cube` just like a KCL object. +``` + +```kcl +import "tests/inputs/cube.sldprt" as cube + +// Use `cube` just like a KCL object. +``` + +For formats lacking unit data (such as STL, OBJ, or PLY files), the default +unit of measurement is millimeters. Alternatively you may specify the unit +by using an attribute. Likewise, you can also specify a coordinate system. E.g., + +```kcl +@(lengthUnit = ft, coords = opengl) +import "tests/inputs/cube.obj" +``` + +When importing a GLTF file, the bin file will be imported as well. + +Import paths are relative to the current project directory. Imports currently only work when +using the native Design Studio, not in the browser. + +### Supported values + +File formats: `fbx`, `gltf`/`glb`, `obj`+, `ply`+, `sldprt`, `step`/`stp`, `stl`+. (Those marked with a +'+' support customising the length unit and coordinate system). + +Length units: `mm` (the default), `cm`, `m`, `inch`, `ft`, `yd`. + +Coordinate systems: + +- `zoo` (the default), forward: -Y, up: +Z, handedness: right +- `opengl`, forward: +Z, up: +Y, handedness: right +- `vulkan`, forward: +Z, up: -Y, handedness: left + +--- + +## Performance deep‑dive for foreign‑file imports + +Parallelized foreign‑file imports now let you overlap file reads, initialization, +and rendering. To maximize throughput, you need to understand the three distinct +stages—reading, initializing (background render start), and invocation (blocking) +—and structure your code to defer blocking operations until the end. + +### Foreign import execution stages + +1. **Import (Read / Initialization) Stage** + ```kcl + import "tests/inputs/cube.step" as cube + ``` + - Reads the file from disk and makes its API available. + - Starts engine rendering but **does not block** your script. + - This kick‑starts the render pipeline while you keep executing other code. + +2. **Invocation (Blocking) Stage** + ```kcl + import "tests/inputs/cube.step" as cube + + cube + |> translate(z=10) // ← blocks here only + ``` + - Any method call (e.g., `translate`, `scale`, `rotate`) waits for the background render to finish before applying transformations. + +### Best practices + +#### 1. Defer blocking calls + +```kcl +import "tests/inputs/cube.step" as cube // 1) Read / Background render starts + + +// --- perform other operations and calculations here --- + + +cube + |> translate(z=10) // 2) Blocks only here +``` + +#### 2. Split heavy work into separate modules + +Place computationally expensive or IO‑heavy work into its own module so it can render in parallel while `main.kcl` continues. + +#### Future improvements + +Upcoming releases will auto‑analyse dependencies and only block when truly necessary. Until then, explicit deferral will give you the best performance. + + diff --git a/docs/kcl-src/settings.md b/docs/kcl-src/settings.md new file mode 100644 index 000000000..fef877621 --- /dev/null +++ b/docs/kcl-src/settings.md @@ -0,0 +1,45 @@ +--- +title: "KCL Settings" +excerpt: "Documentation of settings for the KCL language and Zoo Design Studio." +layout: manual +--- + +# KCL Settings + +There are three levels of settings available in Zoo Design Studio: + +1. [User Settings](/docs/kcl/settings-user): Global settings that apply to all projects, stored in `user.toml` +2. [Project Settings](/docs/kcl/settings-project): Settings specific to a project, stored in `project.toml` +3. Per-file Settings: Settings that apply to a single KCL file, specified using the `@settings` attribute + +## Configuration Files + +Zoo Design Studio uses TOML files for configuration: + +* **User Settings**: `user.toml` - See [complete documentation](/docs/kcl/settings-user) +* **Project Settings**: `project.toml` - See [complete documentation](/docs/kcl/settings-project) + +## Per-file settings + +Settings which affect a single file are configured using the settings attribute. +This must be at the top of the KCL file (comments before the attribute are permitted). +For example: + +```kcl +// The settings attribute. +@settings(defaultLengthUnit = in) + +// The rest of your KCL code goes below... + +x = 42 // Represents 42 inches. +``` + +The settings attribute may contain multiple properties separated by commas. +Valid properties are: + +- `defaultLengthUnit`: the default length unit to use for numbers declared in this file. + - Accepted values: `mm`, `cm`, `m`, `in` (inches), `ft` (feet), `yd` (yards). +- `defaultAngleUnit`: the default angle unit to use for numbers declared in this file. + - Accepted values: `deg` (degrees), `rad` (radians). + +These settings override any project-wide settings (configured in project.toml or via the UI). diff --git a/docs/kcl-src/types.md b/docs/kcl-src/types.md new file mode 100644 index 000000000..c1c4ef22f --- /dev/null +++ b/docs/kcl-src/types.md @@ -0,0 +1,299 @@ +--- +title: "KCL Types" +excerpt: "Documentation of types for the KCL standard library for the Zoo Design Studio." +layout: manual +--- + +`KCL` defines the following types and keywords the language. + +All these types can be nested in various forms where nesting applies. Like +arrays can hold objects and vice versa. + +## Constant declaration + +Constants are defined with a name and a value, like so: + +``` +myBool = false +``` + +Currently you cannot redeclare a constant. + +## Arrays + +An array is defined with `[]` braces. What is inside the brackets can +be of any type. For example, the following is completely valid: + +``` +myArray = ["thing", 2, false] +``` + +If you want to get a value from an array you can use the index like so: +`myArray[0]`. + + +## Objects + +An object is defined with `{}` braces. Here is an example object: + +``` +myObj = { a = 0, b = "thing" } +``` + +We support two different ways of getting properties from objects, you can call +`myObj.a` or `myObj["a"]` both work. + +## `ImportedGeometry` + +Using `import` you can import geometry defined using other CAD software. In KCL, +these objects have type `ImportedGeometry` and can mostly be treated like any +other solid (they can be rotated, scaled, etc.), although there is no access to +their internal components. See the [modules and imports docs](modules) for more +detail on importing geometry. + + +## Binary expressions + +You can also do math! Let's show an example below: + +``` +myMathExpression = 3 + 1 * 2 / 3 - 7 +``` + +You can nest expressions in parenthesis as well: + +``` +myMathExpression = 3 + (1 * 2 / (3 - 7)) +``` + +## Functions + +We also have support for defining your own functions. Functions can take in any +type of argument. Below is an example of the syntax: + +``` +fn myFn(x) { + return x +} +``` + +As you can see above `myFn` just returns whatever it is given. + +KCL's early drafts used positional arguments, but we now use keyword arguments: + +``` +// If you declare a function like this +fn add(left, right) { + return left + right +} + +// You can call it like this: +total = add(left = 1, right = 2) +``` + +Functions can also declare one *unlabeled* arg. If you do want to declare an unlabeled arg, it must +be the first arg declared. + +``` +// The @ indicates an argument can be used without a label. +// Note that only the first argument can use @. +fn increment(@x) { + return x + 1 +} + +fn add(@x, delta) { + return x + delta +} + +two = increment(1) +three = add(1, delta = 2) +``` + +## Pipelines + +It can be hard to read repeated function calls, because of all the nested brackets. + +```norun +i = 1 +x = h(g(f(i))) +``` + +You can make this easier to read by breaking it into many declarations, but that is a bit annoying. + +```norun +i = 1 +x0 = f(i) +x1 = g(x0) +x = h(x1) +``` + +Instead, you can use the pipeline operator (`|>`) to simplify this. + +Basically, `x |> f(%)` is a shorthand for `f(x)`. The left-hand side of the `|>` gets put into +the `%` in the right-hand side. + +So, this means `x |> f(%) |> g(%)` is shorthand for `g(f(x))`. The code example above, with its +somewhat-clunky `x0` and `x1` constants could be rewritten as + +```norun +i = 1 +x = i + |> f(%) + |> g(%) + |> h(%) +``` + +This helps keep your code neat and avoid unnecessary declarations. + +## Pipelines and keyword arguments + +Say you have a long pipeline of sketch functions, like this: + +```norun +startSketchOn(XZ) + |> line(%, end = [3, 4]) + |> line(%, end = [10, 10]) + |> line(%, end = [-13, -14]) + |> close(%) +``` + +In this example, each function call outputs a sketch, and it gets put into the next function call via +the `%`, into the first (unlabeled) argument. + +If a function call uses an unlabeled first parameter, it will default to `%` if it's not given. This +means that `|> line(%, end = [3, 4])` and `|> line(end = [3, 4])` are equivalent! So the above +could be rewritten as + +```norun +startSketchOn(XZ) + |> line(end = [3, 4]) + |> line(end = [10, 10]) + |> line(end = [-13, -14]) + |> close() +``` + +Note that we are still in the process of migrating KCL's standard library to use keyword arguments. So some +functions are still unfortunately using positional arguments. We're moving them over, so keep checking back. +Some functions are still using the old positional argument syntax. +Check the docs page for each function and look at its examples to see. + +## Tags + +Tags are used to give a name (tag) to a specific path. + +### `TagDeclarator` + +The syntax for declaring a tag is `$myTag` you would use it in the following +way: + +```norun +startSketchOn(XZ) + |> startProfile(at = 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() +``` + +### `TagIdentifier` + +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, %)`. + +### `Start` + +There is a special tag, `START` (with type `Start`, although under the cover, it's a string) +for identifying the face of a solid which was the start of an extrusion (i.e., the surface which +is extruded). + +### `End` + +There is a special tag, `END` (with type `End`, although under the cover, it's a string) +for identifying the face of a solid which was finishes an extrusion. + +### 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 +fn rect(origin) { + return startSketchOn(XZ) + |> startProfile(at = 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 +fn rect(origin) { + return startSketchOn(XZ) + |> startProfile(at = 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]) +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. + + +--- + +If you find any issues using any of the above expressions or syntax, +please file an issue with the `ast` label on the [modeling-app +repo](https://github.com/KittyCAD/modeling-app/issues/new). diff --git a/docs/kcl/README.md b/docs/kcl/README.md new file mode 100644 index 000000000..f1dff1f1b --- /dev/null +++ b/docs/kcl/README.md @@ -0,0 +1,5 @@ +# Autogenerated docs + +Everything in this directory and its subdirectories (except this file) is automatically generated. Do not edit anything in this directory directly, your changes will be lost. + +The directory contents are generated by running the `test_generate_stdlib_markdown_docs` test in `/rust/kcl-lib/src/docs/gen_std_tests.rs`. Files are generated from the standard library declared in KCL (`/rust/kcl-lib/std`) and in Rust (`/rust/kcl-lib/src/std`), and by copying files from `../kcl-src`. \ No newline at end of file diff --git a/docs/kcl/angledLine.md b/docs/kcl/angledLine.md index 94177f263..bf270eb6c 100644 --- a/docs/kcl/angledLine.md +++ b/docs/kcl/angledLine.md @@ -10,15 +10,15 @@ Draw a line segment relative to the current origin using the polar measure of so ```kcl angledLine( - sketch: [Sketch](/docs/kcl/types/Sketch), - angle: [number](/docs/kcl/types/number), - length?: [number](/docs/kcl/types/number), - lengthX?: [number](/docs/kcl/types/number), - lengthY?: [number](/docs/kcl/types/number), - endAbsoluteX?: [number](/docs/kcl/types/number), - endAbsoluteY?: [number](/docs/kcl/types/number), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + angle: [number](/docs/kcl/types/std-types-number), + length?: [number](/docs/kcl/types/std-types-number), + lengthX?: [number](/docs/kcl/types/std-types-number), + lengthY?: [number](/docs/kcl/types/std-types-number), + endAbsoluteX?: [number](/docs/kcl/types/std-types-number), + endAbsoluteY?: [number](/docs/kcl/types/std-types-number), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -26,18 +26,18 @@ angledLine( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `angle` | [`number`](/docs/kcl/types/number) | Which angle should the line be drawn at? | Yes | -| `length` | [`number`](/docs/kcl/types/number) | Draw the line this distance along the given angle. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | -| `lengthX` | [`number`](/docs/kcl/types/number) | Draw the line this distance along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | -| `lengthY` | [`number`](/docs/kcl/types/number) | Draw the line this distance along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | -| `endAbsoluteX` | [`number`](/docs/kcl/types/number) | Draw the line along the given angle until it reaches this point along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | -| `endAbsoluteY` | [`number`](/docs/kcl/types/number) | Draw the line along the given angle until it reaches this point along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `angle` | [`number`](/docs/kcl/types/std-types-number) | Which angle should the line be drawn at? | Yes | +| `length` | [`number`](/docs/kcl/types/std-types-number) | Draw the line this distance along the given angle. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | +| `lengthX` | [`number`](/docs/kcl/types/std-types-number) | Draw the line this distance along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | +| `lengthY` | [`number`](/docs/kcl/types/std-types-number) | Draw the line this distance along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | +| `endAbsoluteX` | [`number`](/docs/kcl/types/std-types-number) | Draw the line along the given angle until it reaches this point along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | +| `endAbsoluteY` | [`number`](/docs/kcl/types/std-types-number) | Draw the line along the given angle until it reaches this point along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/angledLineThatIntersects.md b/docs/kcl/angledLineThatIntersects.md index ea0dbc699..88b55a929 100644 --- a/docs/kcl/angledLineThatIntersects.md +++ b/docs/kcl/angledLineThatIntersects.md @@ -10,12 +10,12 @@ Draw an angled line from the current origin, constructing a line segment such th ```kcl angledLineThatIntersects( - sketch: [Sketch](/docs/kcl/types/Sketch), - angle: [number](/docs/kcl/types/number), - intersectTag: [TagIdentifier](/docs/kcl/types#tag-identifier), - offset?: [number](/docs/kcl/types/number), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + angle: [number](/docs/kcl/types/std-types-number), + intersectTag: [TagIdentifier](/docs/kcl/types#TagIdentifier), + offset?: [number](/docs/kcl/types/std-types-number), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -23,15 +23,15 @@ angledLineThatIntersects( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `angle` | [`number`](/docs/kcl/types/number) | Which angle should the line be drawn at? | Yes | -| `intersectTag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the line to intersect with | Yes | -| `offset` | [`number`](/docs/kcl/types/number) | The offset from the intersecting line. Defaults to 0. | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `angle` | [`number`](/docs/kcl/types/std-types-number) | Which angle should the line be drawn at? | Yes | +| `intersectTag` | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The tag of the line to intersect with | Yes | +| `offset` | [`number`](/docs/kcl/types/std-types-number) | The offset from the intersecting line. Defaults to 0. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/appearance.md b/docs/kcl/appearance.md index 28bea674a..ef1b38f93 100644 --- a/docs/kcl/appearance.md +++ b/docs/kcl/appearance.md @@ -10,11 +10,11 @@ This will work on any solid, including extruded solids, revolved solids, and she ```kcl appearance( - solids: [[Solid](/docs/kcl/types/Solid)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)OrImportedGeometry), - color: String, - metalness?: [number](/docs/kcl/types/number), - roughness?: [number](/docs/kcl/types/number), -): [[Solid](/docs/kcl/types/Solid)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)OrImportedGeometry) + solids: [[Solid]](/docs/kcl/types/std-types-Solid) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry), + color: [string](/docs/kcl/types/std-types-string), + metalness?: [number](/docs/kcl/types/std-types-number), + roughness?: [number](/docs/kcl/types/std-types-number), +): [[Solid]](/docs/kcl/types/std-types-Solid) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry) ``` @@ -22,14 +22,14 @@ appearance( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | [`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) | The solid(s) whose appearance is being set | Yes | -| `color` | `String` | Color of the new material, a hex string like '#ff0000' | Yes | -| `metalness` | [`number`](/docs/kcl/types/number) | Metalness of the new material, a percentage like 95.7. | No | -| `roughness` | [`number`](/docs/kcl/types/number) | Roughness of the new material, a percentage like 95.7. | No | +| `solids` | [`[Solid]`](/docs/kcl/types/std-types-Solid) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) | The solid(s) whose appearance is being set | Yes | +| `color` | [`string`](/docs/kcl/types/std-types-string) | Color of the new material, a hex string like '#ff0000' | Yes | +| `metalness` | [`number`](/docs/kcl/types/std-types-number) | Metalness of the new material, a percentage like 95.7. | No | +| `roughness` | [`number`](/docs/kcl/types/std-types-number) | Roughness of the new material, a percentage like 95.7. | No | ### Returns -[`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) - Data for a solid or an imported geometry. +[`[Solid]`](/docs/kcl/types/std-types-Solid) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) - Data for a solid or an imported geometry. ### Examples diff --git a/docs/kcl/arc.md b/docs/kcl/arc.md index 9b1328922..9ee6f3857 100644 --- a/docs/kcl/arc.md +++ b/docs/kcl/arc.md @@ -12,14 +12,14 @@ Unless this makes a lot of sense and feels like what you're looking for to const ```kcl arc( - sketch: [Sketch](/docs/kcl/types/Sketch), - angleStart?: [number](/docs/kcl/types/number), - angleEnd?: [number](/docs/kcl/types/number), - radius?: [number](/docs/kcl/types/number), - interiorAbsolute?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - endAbsolute?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + angleStart?: [number](/docs/kcl/types/std-types-number), + angleEnd?: [number](/docs/kcl/types/std-types-number), + radius?: [number](/docs/kcl/types/std-types-number), + interiorAbsolute?: [Point2d](/docs/kcl/types/std-types-Point2d), + endAbsolute?: [Point2d](/docs/kcl/types/std-types-Point2d), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -27,17 +27,17 @@ arc( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `angleStart` | [`number`](/docs/kcl/types/number) | Where along the circle should this arc start? | No | -| `angleEnd` | [`number`](/docs/kcl/types/number) | Where along the circle should this arc end? | No | -| `radius` | [`number`](/docs/kcl/types/number) | How large should the circle be? | No | -| `interiorAbsolute` | [`[number]`](/docs/kcl/types/number) | Any point between the arc's start and end? Requires `endAbsolute`. Incompatible with `angleStart` or `angleEnd` | No | -| `endAbsolute` | [`[number]`](/docs/kcl/types/number) | Where should this arc end? Requires `interiorAbsolute`. Incompatible with `angleStart` or `angleEnd` | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `angleStart` | [`number`](/docs/kcl/types/std-types-number) | Where along the circle should this arc start? | No | +| `angleEnd` | [`number`](/docs/kcl/types/std-types-number) | Where along the circle should this arc end? | No | +| `radius` | [`number`](/docs/kcl/types/std-types-number) | How large should the circle be? | No | +| `interiorAbsolute` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | Any point between the arc's start and end? Requires `endAbsolute`. Incompatible with `angleStart` or `angleEnd` | No | +| `endAbsolute` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | Where should this arc end? Requires `interiorAbsolute`. Incompatible with `angleStart` or `angleEnd` | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/assert.md b/docs/kcl/assert.md index edd4b1371..854e04f77 100644 --- a/docs/kcl/assert.md +++ b/docs/kcl/assert.md @@ -10,14 +10,14 @@ Check a value meets some expected conditions at runtime. Program terminates with ```kcl assert( - actual: [number](/docs/kcl/types/number), - isGreaterThan?: [number](/docs/kcl/types/number), - isLessThan?: [number](/docs/kcl/types/number), - isGreaterThanOrEqual?: [number](/docs/kcl/types/number), - isLessThanOrEqual?: [number](/docs/kcl/types/number), - isEqualTo?: [number](/docs/kcl/types/number), - tolerance?: [number](/docs/kcl/types/number), - error?: String, + actual: [number](/docs/kcl/types/std-types-number), + isGreaterThan?: [number](/docs/kcl/types/std-types-number), + isLessThan?: [number](/docs/kcl/types/std-types-number), + isGreaterThanOrEqual?: [number](/docs/kcl/types/std-types-number), + isLessThanOrEqual?: [number](/docs/kcl/types/std-types-number), + isEqualTo?: [number](/docs/kcl/types/std-types-number), + tolerance?: [number](/docs/kcl/types/std-types-number), + error?: [string](/docs/kcl/types/std-types-string), ): () ``` @@ -26,14 +26,14 @@ assert( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `actual` | [`number`](/docs/kcl/types/number) | Value to check. It will be compared with one of the comparison arguments. | Yes | -| `isGreaterThan` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is greater than this. | No | -| `isLessThan` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is less than this. | No | -| `isGreaterThanOrEqual` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is greater than or equal to this. | No | -| `isLessThanOrEqual` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No | -| `isEqualTo` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No | -| `tolerance` | [`number`](/docs/kcl/types/number) | If `isEqualTo` is used, this is the tolerance to allow for the comparison. This tolerance is used because KCL's number system has some floating-point imprecision when used with very large decimal places. | No | -| `error` | `String` | If the value was false, the program will terminate with this error message | No | +| `actual` | [`number`](/docs/kcl/types/std-types-number) | Value to check. It will be compared with one of the comparison arguments. | Yes | +| `isGreaterThan` | [`number`](/docs/kcl/types/std-types-number) | Comparison argument. If given, checks the `actual` value is greater than this. | No | +| `isLessThan` | [`number`](/docs/kcl/types/std-types-number) | Comparison argument. If given, checks the `actual` value is less than this. | No | +| `isGreaterThanOrEqual` | [`number`](/docs/kcl/types/std-types-number) | Comparison argument. If given, checks the `actual` value is greater than or equal to this. | No | +| `isLessThanOrEqual` | [`number`](/docs/kcl/types/std-types-number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No | +| `isEqualTo` | [`number`](/docs/kcl/types/std-types-number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No | +| `tolerance` | [`number`](/docs/kcl/types/std-types-number) | If `isEqualTo` is used, this is the tolerance to allow for the comparison. This tolerance is used because KCL's number system has some floating-point imprecision when used with very large decimal places. | No | +| `error` | [`string`](/docs/kcl/types/std-types-string) | If the value was false, the program will terminate with this error message | No | ### Returns diff --git a/docs/kcl/assertIs.md b/docs/kcl/assertIs.md index 0b7b6e5b3..d91db499f 100644 --- a/docs/kcl/assertIs.md +++ b/docs/kcl/assertIs.md @@ -10,8 +10,8 @@ Asserts that a value is the boolean value true. ```kcl assertIs( - actual: [bool](/docs/kcl/types/bool), - error?: String, + actual: [bool](/docs/kcl/types/std-types-bool), + error?: [string](/docs/kcl/types/std-types-string), ): () ``` @@ -20,8 +20,8 @@ assertIs( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `actual` | [`bool`](/docs/kcl/types/bool) | Value to check. If this is the boolean value true, assert passes. Otherwise it fails. | Yes | -| `error` | `String` | If the value was false, the program will terminate with this error message | No | +| `actual` | [`bool`](/docs/kcl/types/std-types-bool) | Value to check. If this is the boolean value true, assert passes. Otherwise it fails. | Yes | +| `error` | [`string`](/docs/kcl/types/std-types-string) | If the value was false, the program will terminate with this error message | No | ### Returns diff --git a/docs/kcl/bezierCurve.md b/docs/kcl/bezierCurve.md index 787c29c77..4f566944c 100644 --- a/docs/kcl/bezierCurve.md +++ b/docs/kcl/bezierCurve.md @@ -10,12 +10,12 @@ Draw a smooth, continuous, curved line segment from the current origin to the de ```kcl bezierCurve( - sketch: [Sketch](/docs/kcl/types/Sketch), - control1: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - control2: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - end: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + control1: [Point2d](/docs/kcl/types/std-types-Point2d), + control2: [Point2d](/docs/kcl/types/std-types-Point2d), + end: [Point2d](/docs/kcl/types/std-types-Point2d), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -23,15 +23,15 @@ bezierCurve( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `control1` | [`[number]`](/docs/kcl/types/number) | First control point for the cubic | Yes | -| `control2` | [`[number]`](/docs/kcl/types/number) | Second control point for the cubic | Yes | -| `end` | [`[number]`](/docs/kcl/types/number) | How far away (along the X and Y axes) should this line go? | Yes | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `control1` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | First control point for the cubic | Yes | +| `control2` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | Second control point for the cubic | Yes | +| `end` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | How far away (along the X and Y axes) should this line go? | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/circleThreePoint.md b/docs/kcl/circleThreePoint.md index 0c7e7247d..d4983c628 100644 --- a/docs/kcl/circleThreePoint.md +++ b/docs/kcl/circleThreePoint.md @@ -10,12 +10,12 @@ Construct a circle derived from 3 points. ```kcl circleThreePoint( - sketchSurfaceOrGroup: [[Sketch](/docs/kcl/types/Sketch)OrSurface](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)OrSurface), - p1: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - p2: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - p3: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketchSurfaceOrGroup: [Sketch](/docs/kcl/types/std-types-Sketch) | [Plane](/docs/kcl/types/std-types-Plane) | [Face](/docs/kcl/types/std-types-Face), + p1: [Point2d](/docs/kcl/types/std-types-Point2d), + p2: [Point2d](/docs/kcl/types/std-types-Point2d), + p3: [Point2d](/docs/kcl/types/std-types-Point2d), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -23,15 +23,15 @@ circleThreePoint( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketchSurfaceOrGroup` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | Plane or surface to sketch on. | Yes | -| `p1` | [`[number]`](/docs/kcl/types/number) | 1st point to derive the circle. | Yes | -| `p2` | [`[number]`](/docs/kcl/types/number) | 2nd point to derive the circle. | Yes | -| `p3` | [`[number]`](/docs/kcl/types/number) | 3rd point to derive the circle. | Yes | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Identifier for the circle to reference elsewhere. | No | +| `sketchSurfaceOrGroup` | [`Sketch`](/docs/kcl/types/std-types-Sketch) or [`Plane`](/docs/kcl/types/std-types-Plane) or [`Face`](/docs/kcl/types/std-types-Face) | Plane or surface to sketch on. | Yes | +| `p1` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | 1st point to derive the circle. | Yes | +| `p2` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | 2nd point to derive the circle. | Yes | +| `p3` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | 3rd point to derive the circle. | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Identifier for the circle to reference elsewhere. | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/clone.md b/docs/kcl/clone.md index 62c88791f..aa6f1f338 100644 --- a/docs/kcl/clone.md +++ b/docs/kcl/clone.md @@ -13,7 +13,7 @@ This doesn't really have much utility unless you need the equivalent of a double Really only use this function if YOU ARE SURE you need it. In most cases you do not need clone and using a pattern with `instance = 2` is more appropriate. ```kcl -clone(geometry: [GeometryWithImportedGeometry](/docs/kcl/types/GeometryWithImportedGeometry)): [GeometryWithImportedGeometry](/docs/kcl/types/GeometryWithImportedGeometry) +clone(geometry: [Solid](/docs/kcl/types/std-types-Solid) | [Sketch](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry)): [Solid](/docs/kcl/types/std-types-Solid) | [Sketch](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry) ``` @@ -21,11 +21,11 @@ clone(geometry: [GeometryWithImportedGeometry](/docs/kcl/types/GeometryWithImpor | Name | Type | Description | Required | |----------|------|-------------|----------| -| `geometry` | [`GeometryWithImportedGeometry`](/docs/kcl/types/GeometryWithImportedGeometry) | The sketch, solid, or imported geometry to be cloned | Yes | +| `geometry` | [`Solid`](/docs/kcl/types/std-types-Solid) or [`Sketch`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) | The sketch, solid, or imported geometry to be cloned | Yes | ### Returns -[`GeometryWithImportedGeometry`](/docs/kcl/types/GeometryWithImportedGeometry) - A geometry including an imported geometry. +[`Solid`](/docs/kcl/types/std-types-Solid) or [`Sketch`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) - A geometry including an imported geometry. ### Examples diff --git a/docs/kcl/close.md b/docs/kcl/close.md index 72d74fbae..57fd602e1 100644 --- a/docs/kcl/close.md +++ b/docs/kcl/close.md @@ -10,9 +10,9 @@ Construct a line segment from the current origin back to the profile's origin, e ```kcl close( - sketch: [Sketch](/docs/kcl/types/Sketch), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -20,12 +20,12 @@ close( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | The sketch you want to close | Yes | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | The sketch you want to close | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/e.md b/docs/kcl/e.md deleted file mode 100644 index 7ae401b60..000000000 --- a/docs/kcl/e.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "e" -excerpt: "Return the value of Euler’s number `e`." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Return the value of Euler’s number `e`. - -**DEPRECATED** use the constant E - -```js -e(): number -``` - -### Tags - -* `math` - - - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -exampleSketch = startSketchOn(XZ) - |> startProfile(at = [0, 0]) - |> angledLine(angle = 30, length = 2 * e() ^ 2) - |> yLine(endAbsolute = 0) - |> close() - -example = extrude(exampleSketch, length = 10) -``` - -![Rendered example of e 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADq+klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+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/inL8+HGuuuqqq6666qqrrrrqqqv+t7vmmmse/D7v8z5fdXh4eEkSh4eHu1x11VVXXXXVVehBD3oQV1111VVXXXXVVVddddVV/1tdc801D37t137t93qnd3qnz+aZ7rvvvls/5EM+5CFcddVVV1111VWU48ePc9VVV1111VVXXXXVVVdd9b/NNddc8+A3e7M3+6hP+qRP+ukXf/EXf22A3/zN3wTgpptuOn7NNdc8+E//9E9/hquuuuqqq676/41y/Phxrrrqqquuuuqqq6666qqr/jd5x3d8x8/6pE/6pJ9+8Rd/8dcG+M3f/E1+4id+gsc//vE8/elP51Vf9VV5yEMe8tIA//AP//A7XHXVVVddddX/X5Tjx49z1VVXXXXVVVddddVVV131v8E7vuM7ftaHf/iHf/crvdIrvTXA05/+dL7jO76Dxz/+8axWKwBWqxUXL17ksY99LNdcc82Db7311r85e/bsrVx11VVXXXXV/0/oQQ96EFddddVVV1111VVXXXXVVf+TvdiLvdhrf/iHf/h3XXPNNQ8GuHjxIj/5kz/J05/+dJ6bJABe53Veh9d93dflvvvuu/VDPuRDHsJVV1111VVX/f9EOX78OFddddVVV1111VVXXXXVVf8TXXPNNQ/+pE/6pJ96p3d6p8/e3Nw8fvHiRX7xF3+Rn/zJn2R3d5cHkoQk7re7u8v111/PTTfddPyaa6558J/+6Z/+DFddddVVV131/w/l+PHjXHXVVVddddVVV1111VVX/U9yzTXXPPh93ud9vurDP/zDv/uaa6558MWLF/mjP/ojfvAHf5B77rmHB5KEJJ7barXi6U9/Oo997GN5zGMe89IA//AP//A7XHXVVVddddX/L5Tjx49z1VVXXXXVVVddddVVV131P8E111zz4Dd7szf7qE/6pE/66Yc85CEvDfCbv/mb/OAP/iBPf/rTeW6SeGFWqxX33HMPL/MyL8M111zz4FtvvfVvzp49eytX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QhL/FpL413rrt35rXvqlX5r77rvv1g/5kA95CFddddVVV131vxPl+PHjXHXVVVddddVVV1111VX/f11zzTUPfp/3eZ+v+vAP//Dvvuaaax588eJF/uiP/ogf/MEf5J577uEFkYQk/rUk8a8lCUn8a0lCEv8W9957L49+9KM5derU8WuuuebBf/qnf/ozXHXVVVddddX/PuhBD3oQV1111VVXXXXVVVddddX/P9dcc82DX/u1X/u93umd3umzAS5evMhf/dVf8Zu/+Zv8SyTxryWJfwtJ/FtI4t9CEvc7fvw4H/VRHwXA13/917/Pb/3Wb303V1111VVXXfW/C3rQgx7EVVddddVVV1111VVXXfX/xzXXXPPg137t136vd3qnd/psnuk3f/M3+c3f/E3+JZL415LEv4Uk/i0k8W8hiefnpV/6pXmrt3or7rvvvls/67M+63Xuu+++W7nqqquuuuqq/z3Qgx70IK666qqrrrrqqquuuuqq/x/e8R3f8bPe6Z3e6bN5pt/8zd/kL//yL9nd3eWFkcS/hST+tSTxbyGJfwtJ/Eve6q3eipd+6Zfmvvvuu/VDPuRDHsJVV1111VVX/e9BOX78OFddddVVV1111VVXXXXV/23v+I7v+Fmf+7mf+9sv/uIv/toAT3/60/mO7/gOHv/4x7NarXhhJPGvJQlJ/GtIQhL/WpKQxL+WJCTxorj33nt59KMfzalTp45fc801D/7TP/3Tn+Gqq6666qqr/negHD9+nKuuuuqqq6666qqrrrrq/6YXe7EXe+3P/dzP/a1XeqVXemuAixcv8oM/+IP85m/+JqvVihdGEpL415CEJP61JPFvIYl/C0n8a6xWK574xCfyyq/8yjzkIQ956bNnzz7j1ltv/Wuuuuqqq6666n8+9KAHPYirrrrqqquuuuqqq6666v+Wa6655sEf/uEf/l0v9mIv9toAFy9e5Dd/8zf5q7/6K/4lkvjXksS/hST+LSTxbyGJfwtJALzUS70Ub/VWb8V9991362d91me9zn333XcrV1111VVXXfU/G3rQgx7EVVddddVVV1111VVXXfV/wzXXXPPgd3zHd/ys13md13lvgIsXL/JXf/VX/OZv/iYvCkn8a0niX0sS/xaS+LeQxL+VJB7ord7qrXipl3op7rvvvls/5EM+5CFcddVVV1111f9slOPHj3PV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rbfyopDEi0ISLypJvKgk8aKSxItKEi8qSbyoJPH8vPqrvzqv8Rqvwf329vb4lV/5Fe644w7+L7DNv5UkrnpOtrnqX882/5vY5n8S2/x3ss1/lptvvhmA++6771auuuqqq6666l+HylVXXXXVVVf9L/I6r/M67wXwV3/1V7woJPGikMSLShIvKkm8KCTxryGJF5UkXlSSeG6v/uqvzmu8xmtwv729PX7lV36FO+64g6uusM1VV/1r2OZ/I9v8T2Ob/062+a909uzZZ3DVVVddddVV/zpUrrrqqquuuup/kRd7sRd7bYBbb72VF0YSLypJvKgk8aKSxItCEv8aknhRSeJFIYnn9uqv/uq8xmu8Bvfb29vjl3/5l7njjjuQxFVXXfUvs83/Zrb5n8Y2/91s81/t5ptvBuAf/uEffpurrrrqqquu+tehctVVV1111VX/S7zO67zOewP89V//Nbu7u7wgknhRSeJFJYkXhSReVJL415DEi0ISLypJPNCrv/qr8xqv8Rrcb29vj1/+5V/mjjvu4H62eUEkcdVV/5/Y5v8C2/xPZZv/brb572AbgGPHjgFw33333cpVV1111VVX/etQueqqq6666qr/Jd7xHd/xswD+6q/+ihdEEi8qSbwoJPGiksSLShIvKkm8qCTxopLE/V791V+d13iN1+B+e3t7/OEf/iGPe9zj+NewzQsiiauu+t/INv/X2OZ/Ktv8T2Cb/w62ueqqq6666qr/QFSuuuqqq6666n+B13md13nva6655sEAt956K8+PJF4UknhRSeJFJYkXlSReVJJ4UUniRSUJgFd/9VfnNV7jNbjf3t4ef/RHf8Q//MM/8B/NNi+MJK666r+Lbf6vss3/ZLb5n8I2/x1s84LcfPPNAPzDP/zDb3PVVVddddVV/3pUrrrqqquuuup/gRd7sRd7LYDf+q3f4vmRxItCEi8qSbyoJPGiksSLShIvKkm8qCTx6q/+6rzGa7wG99vb2+OP/uiP+Id/+Af+u9jmhZHEVVf9W9jm/wvb/G9gm/8JbPPfxTYvimPHjgFw33333cpVV1111VVX/etRueqqq6666qr/BV7ndV7nvQH++q//mgeSxItKEi8qSbyoJPGikMS/hiReVJJ4UUji1V/91XmN13gN7re3t8cf/dEf8Q//8A/8T2ebF4Ukrvr/wzb/X9nmfwvb/E9h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STzTfffddytXXXXVVVdd9R8PPehBD+Kqq6666qqrrrrqqquuuuqqq6666qqrrvo/icpVV1111VVXXXXVVVddddVVV1111VVXXfV/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+KfwQul2P7hK2iWwAAAABJRU5ErkJggg==) - - diff --git a/docs/kcl/extrude.md b/docs/kcl/extrude.md index 7a0d18735..996056e94 100644 --- a/docs/kcl/extrude.md +++ b/docs/kcl/extrude.md @@ -10,13 +10,13 @@ You can provide more than one sketch to extrude, and they will all be extruded i ```kcl extrude( - sketches: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)), - length: [number](/docs/kcl/types/number), - symmetric?: [bool](/docs/kcl/types/bool), - bidirectionalLength?: [number](/docs/kcl/types/number), - tagStart?: [TagDeclarator](/docs/kcl/types#tag-declaration), - tagEnd?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + sketches: [[Sketch]](/docs/kcl/types/std-types-Sketch), + length: [number](/docs/kcl/types/std-types-number), + symmetric?: [bool](/docs/kcl/types/std-types-bool), + bidirectionalLength?: [number](/docs/kcl/types/std-types-number), + tagStart?: [TagDeclarator](/docs/kcl/types#TagDeclarator), + tagEnd?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -24,16 +24,16 @@ extrude( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketch or sketches should be extruded | Yes | -| `length` | [`number`](/docs/kcl/types/number) | How far to extrude the given sketches | Yes | -| `symmetric` | [`bool`](/docs/kcl/types/bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the | No | -| `bidirectionalLength` | [`number`](/docs/kcl/types/number) | If specified, will also extrude in the opposite direction to 'distance' to the specified distance. If 'symmetric' is true, this value is ignored. | No | -| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the extrusion, i.e. the original sketch | No | -| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketch | No | +| `sketches` | [`[Sketch]`](/docs/kcl/types/std-types-Sketch) | Which sketch or sketches should be extruded | Yes | +| `length` | [`number`](/docs/kcl/types/std-types-number) | How far to extrude the given sketches | Yes | +| `symmetric` | [`bool`](/docs/kcl/types/std-types-bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the | No | +| `bidirectionalLength` | [`number`](/docs/kcl/types/std-types-number) | If specified, will also extrude in the opposite direction to 'distance' to the specified distance. If 'symmetric' is true, this value is ignored. | No | +| `tagStart` | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | A named tag for the face at the start of the extrusion, i.e. the original sketch | No | +| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | A named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketch | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/fromCm.md b/docs/kcl/fromCm.md deleted file mode 100644 index 152a4e6c7..000000000 --- a/docs/kcl/fromCm.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "fromCm" -excerpt: "Converts a number from centimeters to the current default unit." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Converts a number from centimeters to the current default unit. - -*DEPRECATED* prefer using explicit numeric suffixes (e.g., `42cm`) or the `to...` conversion functions. - -No matter what units the current file uses, this function will always return a number equivalent to the input in centimeters. - -For example, if the current file uses inches, `fromCm(1)` will return `0.393701`. If the current file uses millimeters, `fromCm(1)` will return `10`. If the current file uses centimeters, `fromCm(1)` will return `1`. - -**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the file settings. Otherwise, it is a bad pattern to use this function. - -We merely provide these functions for convenience and readability, as `fromCm(10)` is more readable that your intent is "I want 10 centimeters" than `10 * 10`, if the file settings are in millimeters. - -```js -fromCm(input: number): number -``` - -### Tags - -* `units` - - -### Arguments - -| Name | Type | Description | Required | -|----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -totalWidth = fromCm(10) -``` - -![Rendered example of fromCm 0](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/fromFt.md b/docs/kcl/fromFt.md deleted file mode 100644 index 945e6ada3..000000000 --- a/docs/kcl/fromFt.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "fromFt" -excerpt: "Converts a number from feet to the current default unit." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Converts a number from feet to the current default unit. - -*DEPRECATED* prefer using explicit numeric suffixes (e.g., `42ft`) or the `to...` conversion functions. - -No matter what units the current file uses, this function will always return a number equivalent to the input in feet. - -For example, if the current file uses inches, `fromFt(1)` will return `12`. If the current file uses millimeters, `fromFt(1)` will return `304.8`. If the current file uses feet, `fromFt(1)` will return `1`. - -**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the file settings. Otherwise, it is a bad pattern to use this function. - -We merely provide these functions for convenience and readability, as `fromFt(10)` is more readable that your intent is "I want 10 feet" than `10 * 304.8`, if the file settings are in millimeters. - -```js -fromFt(input: number): number -``` - -### Tags - -* `units` - - -### Arguments - -| Name | Type | Description | Required | -|----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -totalWidth = fromFt(10) -``` - -![Rendered example of fromFt 0](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/fromInches.md b/docs/kcl/fromInches.md deleted file mode 100644 index d64a2477b..000000000 --- a/docs/kcl/fromInches.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "fromInches" -excerpt: "Converts a number from inches to the current default unit." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Converts a number from inches to the current default unit. - -*DEPRECATED* prefer using explicit numeric suffixes (e.g., `42inch`) or the `to...` conversion functions. - -No matter what units the current file uses, this function will always return a number equivalent to the input in inches. - -For example, if the current file uses inches, `fromInches(1)` will return `1`. If the current file uses millimeters, `fromInches(1)` will return `25.4`. - -**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the file settings. Otherwise, it is a bad pattern to use this function. - -We merely provide these functions for convenience and readability, as `fromInches(10)` is more readable that your intent is "I want 10 inches" than `10 * 25.4`, if the file settings are in millimeters. - -```js -fromInches(input: number): number -``` - -### Tags - -* `units` - - -### Arguments - -| Name | Type | Description | Required | -|----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -totalWidth = fromInches(10) -``` - -![Rendered example of fromInches 0](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/fromM.md b/docs/kcl/fromM.md deleted file mode 100644 index 3fe12845f..000000000 --- a/docs/kcl/fromM.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "fromM" -excerpt: "Converts a number from meters to the current default unit." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Converts a number from meters to the current default unit. - -*DEPRECATED* prefer using explicit numeric suffixes (e.g., `42m`) or the `to...` conversion functions. - -No matter what units the current file uses, this function will always return a number equivalent to the input in meters. - -For example, if the current file uses inches, `fromM(1)` will return `39.3701`. If the current file uses millimeters, `fromM(1)` will return `1000`. If the current file uses meters, `fromM(1)` will return `1`. - -**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the file settings. Otherwise, it is a bad pattern to use this function. - -We merely provide these functions for convenience and readability, as `fromM(10)` is more readable that your intent is "I want 10 meters" than `10 * 1000`, if the file settings are in millimeters. - -```js -fromM(input: number): number -``` - -### Tags - -* `units` - - -### Arguments - -| Name | Type | Description | Required | -|----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -totalWidth = 10 * fromM(10) -``` - -![Rendered example of fromM 0](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/fromMm.md b/docs/kcl/fromMm.md deleted file mode 100644 index 40fc7b45e..000000000 --- a/docs/kcl/fromMm.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "fromMm" -excerpt: "Converts a number from mm to the current default unit." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Converts a number from mm to the current default unit. - -*DEPRECATED* prefer using explicit numeric suffixes (e.g., `42mm`) or the `to...` conversion functions. - -No matter what units the current file uses, this function will always return a number equivalent to the input in millimeters. - -For example, if the current file uses inches, `fromMm(1)` will return `1/25.4`. If the current file uses millimeters, `fromMm(1)` will return `1`. - -**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the file settings. Otherwise, it is a bad pattern to use this function. - -We merely provide these functions for convenience and readability, as `fromMm(10)` is more readable that your intent is "I want 10 millimeters" than `10 * (1/25.4)`, if the file settings are in inches. - -```js -fromMm(input: number): number -``` - -### Tags - -* `units` - - -### Arguments - -| Name | Type | Description | Required | -|----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -totalWidth = fromMm(10) -``` - -![Rendered example of fromMm 0](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/fromYd.md b/docs/kcl/fromYd.md deleted file mode 100644 index 01c4707d5..000000000 --- a/docs/kcl/fromYd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "fromYd" -excerpt: "Converts a number from yards to the current default unit." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Converts a number from yards to the current default unit. - -*DEPRECATED* prefer using explicit numeric suffixes (e.g., `42yd`) or the `to...` conversion functions. - -No matter what units the current file uses, this function will always return a number equivalent to the input in yards. - -For example, if the current file uses inches, `fromYd(1)` will return `36`. If the current file uses millimeters, `fromYd(1)` will return `914.4`. If the current file uses yards, `fromYd(1)` will return `1`. - -**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the file settings. Otherwise, it is a bad pattern to use this function. - -We merely provide these functions for convenience and readability, as `fromYd(10)` is more readable that your intent is "I want 10 yards" than `10 * 914.4`, if the file settings are in millimeters. - -```js -fromYd(input: number): number -``` - -### Tags - -* `units` - - -### Arguments - -| Name | Type | Description | Required | -|----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -totalWidth = fromYd(10) -``` - -![Rendered example of fromYd 0](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/std-helix.md b/docs/kcl/functions/std-helix.md similarity index 99% rename from docs/kcl/std-helix.md rename to docs/kcl/functions/std-helix.md index d1a89818b..999f0c916 100644 --- a/docs/kcl/std-helix.md +++ b/docs/kcl/functions/std-helix.md @@ -10,14 +10,14 @@ Create a helix. ```kcl helix( - revolutions: [number](/docs/kcl/types/number)(_), - angleStart: [number](/docs/kcl/types/number)(Angle), - ccw?: [bool](/docs/kcl/types/bool), - radius?: [number](/docs/kcl/types/number)(Length), - axis?: [Axis3d](/docs/kcl/types/Axis3d) | [Edge](/docs/kcl/types/Edge), - length?: [number](/docs/kcl/types/number)(Length), - cylinder?: [Solid](/docs/kcl/types/Solid), -): [Helix](/docs/kcl/types/Helix) + revolutions: number(_), + angleStart: number(Angle), + ccw?: [bool](/docs/kcl/types/std-types-bool), + radius?: number(Length), + axis?: [Axis3d](/docs/kcl/types/std-types-Axis3d) | [Edge](/docs/kcl/types/std-types-Edge), + length?: number(Length), + cylinder?: [Solid](/docs/kcl/types/std-types-Solid), +): [Helix](/docs/kcl/types/std-types-Helix) ``` @@ -27,15 +27,15 @@ helix( |----------|------|-------------|----------| | `revolutions` | `number(_)` | Number of revolutions. | Yes | | `angleStart` | `number(Angle)` | Start angle. | Yes | -| `ccw` | [`bool`](/docs/kcl/types/bool) | Is the helix rotation counter clockwise? The default is `false`. | No | +| `ccw` | [`bool`](/docs/kcl/types/std-types-bool) | Is the helix rotation counter clockwise? The default is `false`. | No | | `radius` | `number(Length)` | Radius of the helix. | No | -| `axis` | [`Axis3d`](/docs/kcl/types/Axis3d) or [`Edge`](/docs/kcl/types/Edge) | Axis to use for the helix. | No | +| `axis` | [`Axis3d`](/docs/kcl/types/std-types-Axis3d) or [`Edge`](/docs/kcl/types/std-types-Edge) | Axis to use for the helix. | No | | `length` | `number(Length)` | Length of the helix. This is not necessary if the helix is created around an edge. If not given the length of the edge is used. | No | -| `cylinder` | [`Solid`](/docs/kcl/types/Solid) | Cylinder to create the helix on. | No | +| `cylinder` | [`Solid`](/docs/kcl/types/std-types-Solid) | Cylinder to create the helix on. | No | ### Returns -[`Helix`](/docs/kcl/types/Helix) +[`Helix`](/docs/kcl/types/std-types-Helix) ### Examples diff --git a/docs/kcl/std-math-abs.md b/docs/kcl/functions/std-math-abs.md similarity index 99% rename from docs/kcl/std-math-abs.md rename to docs/kcl/functions/std-math-abs.md index 775bf770d..6d775e3c3 100644 --- a/docs/kcl/std-math-abs.md +++ b/docs/kcl/functions/std-math-abs.md @@ -9,7 +9,7 @@ Compute the absolute value of a number. ```kcl -abs(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +abs(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ abs(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-acos.md b/docs/kcl/functions/std-math-acos.md similarity index 99% rename from docs/kcl/std-math-acos.md rename to docs/kcl/functions/std-math-acos.md index 6ca5b68fb..a7751c2a4 100644 --- a/docs/kcl/std-math-acos.md +++ b/docs/kcl/functions/std-math-acos.md @@ -9,7 +9,7 @@ Compute the arccosine of a number. ```kcl -acos(@num: [number](/docs/kcl/types/number)(_)): [number](/docs/kcl/types/number)(rad) +acos(@num: number(_)): number(rad) ``` diff --git a/docs/kcl/std-math-asin.md b/docs/kcl/functions/std-math-asin.md similarity index 99% rename from docs/kcl/std-math-asin.md rename to docs/kcl/functions/std-math-asin.md index c475f99a9..50d982300 100644 --- a/docs/kcl/std-math-asin.md +++ b/docs/kcl/functions/std-math-asin.md @@ -9,7 +9,7 @@ Compute the arcsine of a number. ```kcl -asin(@num: [number](/docs/kcl/types/number)(_)): [number](/docs/kcl/types/number)(rad) +asin(@num: number(_)): number(rad) ``` diff --git a/docs/kcl/std-math-atan.md b/docs/kcl/functions/std-math-atan.md similarity index 87% rename from docs/kcl/std-math-atan.md rename to docs/kcl/functions/std-math-atan.md index b3a873324..63d6a7bea 100644 --- a/docs/kcl/std-math-atan.md +++ b/docs/kcl/functions/std-math-atan.md @@ -9,7 +9,7 @@ Compute the arctangent of a number. Consider using `atan2()` instead for the true inverse of tangent. ```kcl -atan(@num: [number](/docs/kcl/types/number)(_)): [number](/docs/kcl/types/number)(rad) +atan(@num: number(_)): number(rad) ``` diff --git a/docs/kcl/std-math-atan2.md b/docs/kcl/functions/std-math-atan2.md similarity index 99% rename from docs/kcl/std-math-atan2.md rename to docs/kcl/functions/std-math-atan2.md index 8df61ef69..30432058d 100644 --- a/docs/kcl/std-math-atan2.md +++ b/docs/kcl/functions/std-math-atan2.md @@ -10,9 +10,9 @@ Compute the four quadrant arctangent of Y and X. ```kcl atan2( - y: [number](/docs/kcl/types/number)(Length), - x: [number](/docs/kcl/types/number)(Length), -): [number](/docs/kcl/types/number)(rad) + y: number(Length), + x: number(Length), +): number(rad) ``` diff --git a/docs/kcl/std-math-ceil.md b/docs/kcl/functions/std-math-ceil.md similarity index 99% rename from docs/kcl/std-math-ceil.md rename to docs/kcl/functions/std-math-ceil.md index 376b22b96..43b4ef4ac 100644 --- a/docs/kcl/std-math-ceil.md +++ b/docs/kcl/functions/std-math-ceil.md @@ -9,7 +9,7 @@ Compute the smallest integer greater than or equal to a number. ```kcl -ceil(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +ceil(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ ceil(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-cos.md b/docs/kcl/functions/std-math-cos.md similarity index 99% rename from docs/kcl/std-math-cos.md rename to docs/kcl/functions/std-math-cos.md index d5d447067..92b39e469 100644 --- a/docs/kcl/std-math-cos.md +++ b/docs/kcl/functions/std-math-cos.md @@ -9,7 +9,7 @@ Compute the cosine of a number. ```kcl -cos(@num: [number](/docs/kcl/types/number)(Angle)): [number](/docs/kcl/types/number)(_) +cos(@num: number(Angle)): number(_) ``` diff --git a/docs/kcl/std-math-floor.md b/docs/kcl/functions/std-math-floor.md similarity index 99% rename from docs/kcl/std-math-floor.md rename to docs/kcl/functions/std-math-floor.md index 9c410ab66..ecdfc4c21 100644 --- a/docs/kcl/std-math-floor.md +++ b/docs/kcl/functions/std-math-floor.md @@ -9,7 +9,7 @@ Compute the largest integer less than or equal to a number. ```kcl -floor(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +floor(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ floor(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-ln.md b/docs/kcl/functions/std-math-ln.md similarity index 99% rename from docs/kcl/std-math-ln.md rename to docs/kcl/functions/std-math-ln.md index a958f9cb6..46d3e2439 100644 --- a/docs/kcl/std-math-ln.md +++ b/docs/kcl/functions/std-math-ln.md @@ -9,7 +9,7 @@ Compute the natural logarithm of the number. ```kcl -ln(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +ln(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ ln(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-log.md b/docs/kcl/functions/std-math-log.md similarity index 99% rename from docs/kcl/std-math-log.md rename to docs/kcl/functions/std-math-log.md index c4492573c..74c992843 100644 --- a/docs/kcl/std-math-log.md +++ b/docs/kcl/functions/std-math-log.md @@ -12,9 +12,9 @@ and `log10` can produce more accurate results for base 10. ```kcl log( - @input: [number](/docs/kcl/types/number), - base: [number](/docs/kcl/types/number)(_), -): [number](/docs/kcl/types/number) + @input: [number](/docs/kcl/types/std-types-number), + base: number(_), +): [number](/docs/kcl/types/std-types-number) ``` @@ -22,12 +22,12 @@ log( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | The number to compute the logarithm of. | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | The number to compute the logarithm of. | Yes | | `base` | `number(_)` | The base of the logarithm. | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-log10.md b/docs/kcl/functions/std-math-log10.md similarity index 99% rename from docs/kcl/std-math-log10.md rename to docs/kcl/functions/std-math-log10.md index dba8b68c9..e2826574c 100644 --- a/docs/kcl/std-math-log10.md +++ b/docs/kcl/functions/std-math-log10.md @@ -9,7 +9,7 @@ Compute the base 10 logarithm of the number. ```kcl -log10(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +log10(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ log10(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-log2.md b/docs/kcl/functions/std-math-log2.md similarity index 99% rename from docs/kcl/std-math-log2.md rename to docs/kcl/functions/std-math-log2.md index 474f3dd0f..2f179350d 100644 --- a/docs/kcl/std-math-log2.md +++ b/docs/kcl/functions/std-math-log2.md @@ -9,7 +9,7 @@ Compute the base 2 logarithm of the number. ```kcl -log2(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +log2(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ log2(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-max.md b/docs/kcl/functions/std-math-max.md similarity index 99% rename from docs/kcl/std-math-max.md rename to docs/kcl/functions/std-math-max.md index 4ce618be6..76e069a29 100644 --- a/docs/kcl/std-math-max.md +++ b/docs/kcl/functions/std-math-max.md @@ -9,7 +9,7 @@ Compute the maximum of the given arguments. ```kcl -max(@input: [[number](/docs/kcl/types/number); 1+]): [number](/docs/kcl/types/number) +max(@input: [[number; 1+]](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ max(@input: [[number](/docs/kcl/types/number); 1+]): [number](/docs/kcl/types/nu | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | `[number; 1+]` | An array of numbers to compute the maximum of. | Yes | +| `input` | [`[number; 1+]`](/docs/kcl/types/std-types-number) | An array of numbers to compute the maximum of. | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-min.md b/docs/kcl/functions/std-math-min.md similarity index 99% rename from docs/kcl/std-math-min.md rename to docs/kcl/functions/std-math-min.md index ecac801d0..ce93f428a 100644 --- a/docs/kcl/std-math-min.md +++ b/docs/kcl/functions/std-math-min.md @@ -9,7 +9,7 @@ Compute the minimum of the given arguments. ```kcl -min(@input: [[number](/docs/kcl/types/number); 1+]): [number](/docs/kcl/types/number) +min(@input: [[number; 1+]](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ min(@input: [[number](/docs/kcl/types/number); 1+]): [number](/docs/kcl/types/nu | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | `[number; 1+]` | An array of numbers to compute the minimum of. | Yes | +| `input` | [`[number; 1+]`](/docs/kcl/types/std-types-number) | An array of numbers to compute the minimum of. | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-polar.md b/docs/kcl/functions/std-math-polar.md similarity index 99% rename from docs/kcl/std-math-polar.md rename to docs/kcl/functions/std-math-polar.md index 8873e2b5f..35e157e41 100644 --- a/docs/kcl/std-math-polar.md +++ b/docs/kcl/functions/std-math-polar.md @@ -11,9 +11,9 @@ cartesian (x/y/z grid) coordinates. ```kcl polar( - angle: [number](/docs/kcl/types/number)(rad), - length: [number](/docs/kcl/types/number)(Length), -): [Point2d](/docs/kcl/types/Point2d) + angle: number(rad), + length: number(Length), +): [Point2d](/docs/kcl/types/std-types-Point2d) ``` @@ -26,7 +26,7 @@ polar( ### Returns -[`Point2d`](/docs/kcl/types/Point2d) +[`Point2d`](/docs/kcl/types/std-types-Point2d) ### Examples diff --git a/docs/kcl/std-math-pow.md b/docs/kcl/functions/std-math-pow.md similarity index 99% rename from docs/kcl/std-math-pow.md rename to docs/kcl/functions/std-math-pow.md index 5a06e0bca..994bdbc93 100644 --- a/docs/kcl/std-math-pow.md +++ b/docs/kcl/functions/std-math-pow.md @@ -10,9 +10,9 @@ Compute the number to a power. ```kcl pow( - @input: [number](/docs/kcl/types/number), - exp: [number](/docs/kcl/types/number)(_), -): [number](/docs/kcl/types/number) + @input: [number](/docs/kcl/types/std-types-number), + exp: number(_), +): [number](/docs/kcl/types/std-types-number) ``` @@ -20,12 +20,12 @@ pow( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | The number to raise. | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | The number to raise. | Yes | | `exp` | `number(_)` | The power to raise to. | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-rem.md b/docs/kcl/functions/std-math-rem.md similarity index 98% rename from docs/kcl/std-math-rem.md rename to docs/kcl/functions/std-math-rem.md index 95667f036..ecb8b78d9 100644 --- a/docs/kcl/std-math-rem.md +++ b/docs/kcl/functions/std-math-rem.md @@ -11,9 +11,9 @@ If `num` is negative, the result will be too. ```kcl rem( - @num: [number](/docs/kcl/types/number), - divisor: [number](/docs/kcl/types/number), -): [number](/docs/kcl/types/number) + @num: [number](/docs/kcl/types/std-types-number), + divisor: [number](/docs/kcl/types/std-types-number), +): [number](/docs/kcl/types/std-types-number) ``` @@ -21,12 +21,12 @@ rem( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `num` | [`number`](/docs/kcl/types/number) | The number which will be divided by `divisor`. | Yes | -| `divisor` | [`number`](/docs/kcl/types/number) | The number which will divide `num`. | Yes | +| `num` | [`number`](/docs/kcl/types/std-types-number) | The number which will be divided by `divisor`. | Yes | +| `divisor` | [`number`](/docs/kcl/types/std-types-number) | The number which will divide `num`. | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-round.md b/docs/kcl/functions/std-math-round.md similarity index 99% rename from docs/kcl/std-math-round.md rename to docs/kcl/functions/std-math-round.md index 0bb9ed4de..0ede67710 100644 --- a/docs/kcl/std-math-round.md +++ b/docs/kcl/functions/std-math-round.md @@ -9,7 +9,7 @@ Round a number to the nearest integer. ```kcl -round(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +round(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ round(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-sin.md b/docs/kcl/functions/std-math-sin.md similarity index 99% rename from docs/kcl/std-math-sin.md rename to docs/kcl/functions/std-math-sin.md index 965ff8ebd..b325aedd8 100644 --- a/docs/kcl/std-math-sin.md +++ b/docs/kcl/functions/std-math-sin.md @@ -9,7 +9,7 @@ Compute the sine of a number. ```kcl -sin(@num: [number](/docs/kcl/types/number)(Angle)): [number](/docs/kcl/types/number)(_) +sin(@num: number(Angle)): number(_) ``` diff --git a/docs/kcl/std-math-sqrt.md b/docs/kcl/functions/std-math-sqrt.md similarity index 99% rename from docs/kcl/std-math-sqrt.md rename to docs/kcl/functions/std-math-sqrt.md index 2b07cc97a..dfef051e8 100644 --- a/docs/kcl/std-math-sqrt.md +++ b/docs/kcl/functions/std-math-sqrt.md @@ -9,7 +9,7 @@ Compute the square root of a number. ```kcl -sqrt(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) +sqrt(@input: [number](/docs/kcl/types/std-types-number)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ sqrt(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number) | Name | Type | Description | Required | |----------|------|-------------|----------| -| `input` | [`number`](/docs/kcl/types/number) | | Yes | +| `input` | [`number`](/docs/kcl/types/std-types-number) | | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/std-math-tan.md b/docs/kcl/functions/std-math-tan.md similarity index 99% rename from docs/kcl/std-math-tan.md rename to docs/kcl/functions/std-math-tan.md index 22ceb195b..034c58c0f 100644 --- a/docs/kcl/std-math-tan.md +++ b/docs/kcl/functions/std-math-tan.md @@ -9,7 +9,7 @@ Compute the tangent of a number. ```kcl -tan(@num: [number](/docs/kcl/types/number)(Angle)): [number](/docs/kcl/types/number)(_) +tan(@num: number(Angle)): number(_) ``` diff --git a/docs/kcl/std-offsetPlane.md b/docs/kcl/functions/std-offsetPlane.md similarity index 99% rename from docs/kcl/std-offsetPlane.md rename to docs/kcl/functions/std-offsetPlane.md index 5d26f6d3f..9d25a9212 100644 --- a/docs/kcl/std-offsetPlane.md +++ b/docs/kcl/functions/std-offsetPlane.md @@ -10,10 +10,10 @@ For example, if you offset the `XZ` plane by 10, the new plane will be parallel plane and 10 units away from it. ```kcl -offset[Plane](/docs/kcl/types/Plane)( - @plane: [Plane](/docs/kcl/types/Plane), - offset: [number](/docs/kcl/types/number)(Length), -): [Plane](/docs/kcl/types/Plane) +offsetPlane( + @plane: [Plane](/docs/kcl/types/std-types-Plane), + offset: number(Length), +): [Plane](/docs/kcl/types/std-types-Plane) ``` @@ -21,12 +21,12 @@ offset[Plane](/docs/kcl/types/Plane)( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `plane` | [`Plane`](/docs/kcl/types/Plane) | The plane (e.g. `XY`) which this new plane is created from. | Yes | +| `plane` | [`Plane`](/docs/kcl/types/std-types-Plane) | The plane (e.g. `XY`) which this new plane is created from. | Yes | | `offset` | `number(Length)` | Distance from the standard plane this new plane will be created at. | Yes | ### Returns -[`Plane`](/docs/kcl/types/Plane) +[`Plane`](/docs/kcl/types/std-types-Plane) ### Examples diff --git a/docs/kcl/std-revolve.md b/docs/kcl/functions/std-revolve.md similarity index 99% rename from docs/kcl/std-revolve.md rename to docs/kcl/functions/std-revolve.md index f59bf77c1..6b6c4aef9 100644 --- a/docs/kcl/std-revolve.md +++ b/docs/kcl/functions/std-revolve.md @@ -19,15 +19,15 @@ revolved around the same axis. ```kcl revolve( - @sketches: [[Sketch](/docs/kcl/types/Sketch); 1+], - axis: [Axis2d](/docs/kcl/types/Axis2d) | [Edge](/docs/kcl/types/Edge), - angle?: [number](/docs/kcl/types/number)(Angle), - tolerance?: [number](/docs/kcl/types/number)(Length), - symmetric?: [bool](/docs/kcl/types/bool), - bidirectionalAngle?: [number](/docs/kcl/types/number)(Angle), - tagStart?: tag, - tagEnd?: tag, -): [Solid](/docs/kcl/types/Solid) + @sketches: [[Sketch; 1+]](/docs/kcl/types/std-types-Sketch), + axis: [Axis2d](/docs/kcl/types/std-types-Axis2d) | [Edge](/docs/kcl/types/std-types-Edge), + angle?: number(Angle), + tolerance?: number(Length), + symmetric?: [bool](/docs/kcl/types/std-types-bool), + bidirectionalAngle?: number(Angle), + tagStart?: [tag](/docs/kcl/types/std-types-tag), + tagEnd?: [tag](/docs/kcl/types/std-types-tag), +): [Solid](/docs/kcl/types/std-types-Solid) ``` @@ -35,18 +35,18 @@ revolve( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | `[Sketch; 1+]` | The sketch or set of sketches that should be revolved | Yes | -| `axis` | [`Axis2d`](/docs/kcl/types/Axis2d) or [`Edge`](/docs/kcl/types/Edge) | Axis of revolution. | Yes | +| `sketches` | [`[Sketch; 1+]`](/docs/kcl/types/std-types-Sketch) | The sketch or set of sketches that should be revolved | Yes | +| `axis` | [`Axis2d`](/docs/kcl/types/std-types-Axis2d) or [`Edge`](/docs/kcl/types/std-types-Edge) | Axis of revolution. | Yes | | `angle` | `number(Angle)` | Angle to revolve (in degrees). Default is 360. | No | | `tolerance` | `number(Length)` | Tolerance for the revolve operation. | No | -| `symmetric` | [`bool`](/docs/kcl/types/bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the extrusion will happen on only one side of the sketch. | No | +| `symmetric` | [`bool`](/docs/kcl/types/std-types-bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the extrusion will happen on only one side of the sketch. | No | | `bidirectionalAngle` | `number(Angle)` | If specified, will also revolve in the opposite direction to 'angle' to the specified angle. If 'symmetric' is true, this value is ignored. | No | -| `tagStart` | `tag` | A named tag for the face at the start of the revolve, i.e. the original sketch. | No | -| `tagEnd` | `tag` | A named tag for the face at the end of the revolve. | No | +| `tagStart` | [`tag`](/docs/kcl/types/std-types-tag) | A named tag for the face at the start of the revolve, i.e. the original sketch. | No | +| `tagEnd` | [`tag`](/docs/kcl/types/std-types-tag) | A named tag for the face at the end of the revolve. | No | ### Returns -[`Solid`](/docs/kcl/types/Solid) +[`Solid`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/std-sketch-circle.md b/docs/kcl/functions/std-sketch-circle.md similarity index 99% rename from docs/kcl/std-sketch-circle.md rename to docs/kcl/functions/std-sketch-circle.md index 288158cc9..00166321a 100644 --- a/docs/kcl/std-sketch-circle.md +++ b/docs/kcl/functions/std-sketch-circle.md @@ -11,11 +11,11 @@ the provided (x, y) origin point. ```kcl circle( - @sketch_or_surface: [Sketch](/docs/kcl/types/Sketch) | [Plane](/docs/kcl/types/Plane) | [Face](/docs/kcl/types/Face), - center: [Point2d](/docs/kcl/types/Point2d), - radius: [number](/docs/kcl/types/number)(Length), - tag?: tag, -): [Sketch](/docs/kcl/types/Sketch) + @sketch_or_surface: [Sketch](/docs/kcl/types/std-types-Sketch) | [Plane](/docs/kcl/types/std-types-Plane) | [Face](/docs/kcl/types/std-types-Face), + center: [Point2d](/docs/kcl/types/std-types-Point2d), + radius: number(Length), + tag?: [tag](/docs/kcl/types/std-types-tag), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -23,14 +23,14 @@ circle( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch_or_surface` | [`Sketch`](/docs/kcl/types/Sketch) or [`Plane`](/docs/kcl/types/Plane) or [`Face`](/docs/kcl/types/Face) | Sketch to extend, or plane or surface to sketch on. | Yes | -| `center` | [`Point2d`](/docs/kcl/types/Point2d) | The center of the circle. | Yes | +| `sketch_or_surface` | [`Sketch`](/docs/kcl/types/std-types-Sketch) or [`Plane`](/docs/kcl/types/std-types-Plane) or [`Face`](/docs/kcl/types/std-types-Face) | Sketch to extend, or plane or surface to sketch on. | Yes | +| `center` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | The center of the circle. | Yes | | `radius` | `number(Length)` | The radius of the circle. | Yes | -| `tag` | `tag` | Create a new tag which refers to this circle. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`tag`](/docs/kcl/types/std-types-tag) | Create a new tag which refers to this circle. | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/std-sketch-mirror2d.md b/docs/kcl/functions/std-sketch-mirror2d.md similarity index 99% rename from docs/kcl/std-sketch-mirror2d.md rename to docs/kcl/functions/std-sketch-mirror2d.md index 53ea5ed58..905570586 100644 --- a/docs/kcl/std-sketch-mirror2d.md +++ b/docs/kcl/functions/std-sketch-mirror2d.md @@ -12,9 +12,9 @@ Mirror occurs around a local sketch axis rather than a global axis. ```kcl mirror2d( - @sketches: [[Sketch](/docs/kcl/types/Sketch); 1+], - axis: [Axis2d](/docs/kcl/types/Axis2d) | [Edge](/docs/kcl/types/Edge), -): [Sketch](/docs/kcl/types/Sketch) + @sketches: [[Sketch; 1+]](/docs/kcl/types/std-types-Sketch), + axis: [Axis2d](/docs/kcl/types/std-types-Axis2d) | [Edge](/docs/kcl/types/std-types-Edge), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -22,12 +22,12 @@ mirror2d( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | `[Sketch; 1+]` | The sketch or sketches to be reflected. | Yes | -| `axis` | [`Axis2d`](/docs/kcl/types/Axis2d) or [`Edge`](/docs/kcl/types/Edge) | The axis to reflect around. | Yes | +| `sketches` | [`[Sketch; 1+]`](/docs/kcl/types/std-types-Sketch) | The sketch or sketches to be reflected. | Yes | +| `axis` | [`Axis2d`](/docs/kcl/types/std-types-Axis2d) or [`Edge`](/docs/kcl/types/std-types-Edge) | The axis to reflect around. | Yes | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/std-solid-chamfer.md b/docs/kcl/functions/std-solid-chamfer.md similarity index 99% rename from docs/kcl/std-solid-chamfer.md rename to docs/kcl/functions/std-solid-chamfer.md index 2c9fbf23f..14800cf37 100644 --- a/docs/kcl/std-solid-chamfer.md +++ b/docs/kcl/functions/std-solid-chamfer.md @@ -12,11 +12,11 @@ a sharp, straight transitional edge. ```kcl chamfer( - @solid: [Solid](/docs/kcl/types/Solid), - length: [number](/docs/kcl/types/number)(Length), - tags: [[Edge](/docs/kcl/types/Edge); 1+], - tag?: tag, -): [Solid](/docs/kcl/types/Solid) + @solid: [Solid](/docs/kcl/types/std-types-Solid), + length: number(Length), + tags: [[Edge; 1+]](/docs/kcl/types/std-types-Edge), + tag?: [tag](/docs/kcl/types/std-types-tag), +): [Solid](/docs/kcl/types/std-types-Solid) ``` @@ -24,14 +24,14 @@ chamfer( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solid` | [`Solid`](/docs/kcl/types/Solid) | The solid whose edges should be chamfered | Yes | +| `solid` | [`Solid`](/docs/kcl/types/std-types-Solid) | The solid whose edges should be chamfered | Yes | | `length` | `number(Length)` | The length of the chamfer | Yes | -| `tags` | `[Edge; 1+]` | The paths you want to chamfer | Yes | -| `tag` | `tag` | Create a new tag which refers to this chamfer | No | +| `tags` | [`[Edge; 1+]`](/docs/kcl/types/std-types-Edge) | The paths you want to chamfer | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`tag`](/docs/kcl/types/std-types-tag) | Create a new tag which refers to this chamfer | No | ### Returns -[`Solid`](/docs/kcl/types/Solid) +[`Solid`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/std-solid-fillet.md b/docs/kcl/functions/std-solid-fillet.md similarity index 99% rename from docs/kcl/std-solid-fillet.md rename to docs/kcl/functions/std-solid-fillet.md index c7c67a103..fea89b8d3 100644 --- a/docs/kcl/std-solid-fillet.md +++ b/docs/kcl/functions/std-solid-fillet.md @@ -12,12 +12,12 @@ will smoothly blend the transition. ```kcl fillet( - @solid: [Solid](/docs/kcl/types/Solid), - radius: [number](/docs/kcl/types/number)(Length), - tags: [[Edge](/docs/kcl/types/Edge); 1+], - tolerance?: [number](/docs/kcl/types/number)(Length), - tag?: tag, -): [Solid](/docs/kcl/types/Solid) + @solid: [Solid](/docs/kcl/types/std-types-Solid), + radius: number(Length), + tags: [[Edge; 1+]](/docs/kcl/types/std-types-Edge), + tolerance?: number(Length), + tag?: [tag](/docs/kcl/types/std-types-tag), +): [Solid](/docs/kcl/types/std-types-Solid) ``` @@ -25,15 +25,15 @@ fillet( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solid` | [`Solid`](/docs/kcl/types/Solid) | The solid whose edges should be filletted | Yes | +| `solid` | [`Solid`](/docs/kcl/types/std-types-Solid) | The solid whose edges should be filletted | Yes | | `radius` | `number(Length)` | The radius of the fillet | Yes | -| `tags` | `[Edge; 1+]` | The paths you want to fillet | Yes | +| `tags` | [`[Edge; 1+]`](/docs/kcl/types/std-types-Edge) | The paths you want to fillet | Yes | | `tolerance` | `number(Length)` | The tolerance for this fillet | No | -| `tag` | `tag` | Create a new tag which refers to this fillet | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`tag`](/docs/kcl/types/std-types-tag) | Create a new tag which refers to this fillet | No | ### Returns -[`Solid`](/docs/kcl/types/Solid) +[`Solid`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/std-solid-hollow.md b/docs/kcl/functions/std-solid-hollow.md similarity index 99% rename from docs/kcl/std-solid-hollow.md rename to docs/kcl/functions/std-solid-hollow.md index dfc41a983..7f6f954e4 100644 --- a/docs/kcl/std-solid-hollow.md +++ b/docs/kcl/functions/std-solid-hollow.md @@ -11,9 +11,9 @@ provided thickness remains around the exterior of the shape. ```kcl hollow( - @solid: [Solid](/docs/kcl/types/Solid), - thickness: [number](/docs/kcl/types/number)(Length), -): [Solid](/docs/kcl/types/Solid) + @solid: [Solid](/docs/kcl/types/std-types-Solid), + thickness: number(Length), +): [Solid](/docs/kcl/types/std-types-Solid) ``` @@ -21,12 +21,12 @@ hollow( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solid` | [`Solid`](/docs/kcl/types/Solid) | Which solid to hollow out | Yes | +| `solid` | [`Solid`](/docs/kcl/types/std-types-Solid) | Which solid to hollow out | Yes | | `thickness` | `number(Length)` | The thickness of the remaining shell | Yes | ### Returns -[`Solid`](/docs/kcl/types/Solid) +[`Solid`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/std-solid-shell.md b/docs/kcl/functions/std-solid-shell.md similarity index 99% rename from docs/kcl/std-solid-shell.md rename to docs/kcl/functions/std-solid-shell.md index 38a28970a..f27c9dadf 100644 --- a/docs/kcl/std-solid-shell.md +++ b/docs/kcl/functions/std-solid-shell.md @@ -11,10 +11,10 @@ provided thickness remains, taking volume starting at the providedface, leaving ```kcl shell( - @solids: [[Solid](/docs/kcl/types/Solid); 1+], - thickness: [number](/docs/kcl/types/number)(Length), - faces: [tag; 1+], -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + @solids: [[Solid; 1+]](/docs/kcl/types/std-types-Solid), + thickness: number(Length), + faces: [[tag; 1+]](/docs/kcl/types/std-types-tag), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -22,13 +22,13 @@ shell( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | `[Solid; 1+]` | Which solid (or solids) to shell out | Yes | +| `solids` | [`[Solid; 1+]`](/docs/kcl/types/std-types-Solid) | Which solid (or solids) to shell out | Yes | | `thickness` | `number(Length)` | The thickness of the shell | Yes | -| `faces` | `[tag; 1+]` | The faces you want removed | Yes | +| `faces` | [`[tag; 1+]`](/docs/kcl/types/std-types-tag) | The faces you want removed | Yes | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/std-units-toCentimeters.md b/docs/kcl/functions/std-units-toCentimeters.md similarity index 77% rename from docs/kcl/std-units-toCentimeters.md rename to docs/kcl/functions/std-units-toCentimeters.md index ace5545d1..91b4ee4bd 100644 --- a/docs/kcl/std-units-toCentimeters.md +++ b/docs/kcl/functions/std-units-toCentimeters.md @@ -9,7 +9,7 @@ Convert a number to centimeters from its current units. ```kcl -units::toCentimeters(@num: [number](/docs/kcl/types/number)(cm)): [number](/docs/kcl/types/number)(cm) +units::toCentimeters(@num: number(cm)): number(cm) ``` diff --git a/docs/kcl/std-units-toDegrees.md b/docs/kcl/functions/std-units-toDegrees.md similarity index 99% rename from docs/kcl/std-units-toDegrees.md rename to docs/kcl/functions/std-units-toDegrees.md index f933d817f..269f2ee83 100644 --- a/docs/kcl/std-units-toDegrees.md +++ b/docs/kcl/functions/std-units-toDegrees.md @@ -9,7 +9,7 @@ Converts a number to degrees from its current units. ```kcl -units::toDegrees(@num: [number](/docs/kcl/types/number)(deg)): [number](/docs/kcl/types/number)(deg) +units::toDegrees(@num: number(deg)): number(deg) ``` diff --git a/docs/kcl/std-units-toFeet.md b/docs/kcl/functions/std-units-toFeet.md similarity index 78% rename from docs/kcl/std-units-toFeet.md rename to docs/kcl/functions/std-units-toFeet.md index e641eb290..389efa16d 100644 --- a/docs/kcl/std-units-toFeet.md +++ b/docs/kcl/functions/std-units-toFeet.md @@ -9,7 +9,7 @@ Convert a number to feet from its current units. ```kcl -units::toFeet(@num: [number](/docs/kcl/types/number)(ft)): [number](/docs/kcl/types/number)(ft) +units::toFeet(@num: number(ft)): number(ft) ``` diff --git a/docs/kcl/std-units-toInches.md b/docs/kcl/functions/std-units-toInches.md similarity index 78% rename from docs/kcl/std-units-toInches.md rename to docs/kcl/functions/std-units-toInches.md index 4b5e96720..c38ed2379 100644 --- a/docs/kcl/std-units-toInches.md +++ b/docs/kcl/functions/std-units-toInches.md @@ -9,7 +9,7 @@ Convert a number to inches from its current units. ```kcl -units::toInches(@num: [number](/docs/kcl/types/number)(in)): [number](/docs/kcl/types/number)(in) +units::toInches(@num: number(in)): number(in) ``` diff --git a/docs/kcl/std-units-toMeters.md b/docs/kcl/functions/std-units-toMeters.md similarity index 78% rename from docs/kcl/std-units-toMeters.md rename to docs/kcl/functions/std-units-toMeters.md index e8b059b99..d9e214e67 100644 --- a/docs/kcl/std-units-toMeters.md +++ b/docs/kcl/functions/std-units-toMeters.md @@ -9,7 +9,7 @@ Convert a number to meters from its current units. ```kcl -units::toMeters(@num: [number](/docs/kcl/types/number)(m)): [number](/docs/kcl/types/number)(m) +units::toMeters(@num: number(m)): number(m) ``` diff --git a/docs/kcl/std-units-toMillimeters.md b/docs/kcl/functions/std-units-toMillimeters.md similarity index 77% rename from docs/kcl/std-units-toMillimeters.md rename to docs/kcl/functions/std-units-toMillimeters.md index 1a485b2b5..dafde0542 100644 --- a/docs/kcl/std-units-toMillimeters.md +++ b/docs/kcl/functions/std-units-toMillimeters.md @@ -9,7 +9,7 @@ Convert a number to millimeters from its current units. ```kcl -units::toMillimeters(@num: [number](/docs/kcl/types/number)(mm)): [number](/docs/kcl/types/number)(mm) +units::toMillimeters(@num: number(mm)): number(mm) ``` diff --git a/docs/kcl/std-units-toRadians.md b/docs/kcl/functions/std-units-toRadians.md similarity index 99% rename from docs/kcl/std-units-toRadians.md rename to docs/kcl/functions/std-units-toRadians.md index 6857f4bd7..4fd89d332 100644 --- a/docs/kcl/std-units-toRadians.md +++ b/docs/kcl/functions/std-units-toRadians.md @@ -9,7 +9,7 @@ Converts a number to radians from its current units. ```kcl -units::toRadians(@num: [number](/docs/kcl/types/number)(rad)): [number](/docs/kcl/types/number)(rad) +units::toRadians(@num: number(rad)): number(rad) ``` diff --git a/docs/kcl/std-units-toYards.md b/docs/kcl/functions/std-units-toYards.md similarity index 78% rename from docs/kcl/std-units-toYards.md rename to docs/kcl/functions/std-units-toYards.md index 26de1bbfc..52293f421 100644 --- a/docs/kcl/std-units-toYards.md +++ b/docs/kcl/functions/std-units-toYards.md @@ -9,7 +9,7 @@ Converts a number to yards from its current units. ```kcl -units::toYards(@num: [number](/docs/kcl/types/number)(yd)): [number](/docs/kcl/types/number)(yd) +units::toYards(@num: number(yd)): number(yd) ``` diff --git a/docs/kcl/getCommonEdge.md b/docs/kcl/getCommonEdge.md index e3e4ec748..d24c7a9f6 100644 --- a/docs/kcl/getCommonEdge.md +++ b/docs/kcl/getCommonEdge.md @@ -9,7 +9,7 @@ Get the shared edge between two faces. ```kcl -getCommon[Edge](/docs/kcl/types/Edge)(faces: [[TagIdentifier](/docs/kcl/types#tag-identifier)]): Uuid +getCommonEdge(faces: [[TagIdentifier]](/docs/kcl/types#TagIdentifier)): Uuid ``` @@ -17,7 +17,7 @@ getCommon[Edge](/docs/kcl/types/Edge)(faces: [[TagIdentifier](/docs/kcl/types#ta | Name | Type | Description | Required | |----------|------|-------------|----------| -| `faces` | `[TagIdentifier]` | The tags of the faces you want to find the common edge between | Yes | +| `faces` | [`[TagIdentifier]`](/docs/kcl/types#TagIdentifier) | The tags of the faces you want to find the common edge between | Yes | ### Returns diff --git a/docs/kcl/getNextAdjacentEdge.md b/docs/kcl/getNextAdjacentEdge.md index efb08372b..5486828d1 100644 --- a/docs/kcl/getNextAdjacentEdge.md +++ b/docs/kcl/getNextAdjacentEdge.md @@ -9,7 +9,7 @@ Get the next adjacent edge to the edge given. ```kcl -getNextAdjacent[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/types#tag-identifier)): Uuid +getNextAdjacentEdge(edge: [TagIdentifier](/docs/kcl/types#TagIdentifier)): Uuid ``` @@ -17,7 +17,7 @@ getNextAdjacent[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/type | Name | Type | Description | Required | |----------|------|-------------|----------| -| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the next adjacent edge of. | Yes | +| `edge` | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The tag of the edge you want to find the next adjacent edge of. | Yes | ### Returns diff --git a/docs/kcl/getOppositeEdge.md b/docs/kcl/getOppositeEdge.md index 5503c82fa..47742ed3c 100644 --- a/docs/kcl/getOppositeEdge.md +++ b/docs/kcl/getOppositeEdge.md @@ -9,7 +9,7 @@ Get the opposite edge to the edge given. ```kcl -getOpposite[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/types#tag-identifier)): Uuid +getOppositeEdge(edge: [TagIdentifier](/docs/kcl/types#TagIdentifier)): Uuid ``` @@ -17,7 +17,7 @@ getOpposite[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/types#ta | Name | Type | Description | Required | |----------|------|-------------|----------| -| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the opposite edge of. | Yes | +| `edge` | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The tag of the edge you want to find the opposite edge of. | Yes | ### Returns diff --git a/docs/kcl/getPreviousAdjacentEdge.md b/docs/kcl/getPreviousAdjacentEdge.md index 07f7dca58..31c0ca714 100644 --- a/docs/kcl/getPreviousAdjacentEdge.md +++ b/docs/kcl/getPreviousAdjacentEdge.md @@ -9,7 +9,7 @@ Get the previous adjacent edge to the edge given. ```kcl -getPreviousAdjacent[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/types#tag-identifier)): Uuid +getPreviousAdjacentEdge(edge: [TagIdentifier](/docs/kcl/types#TagIdentifier)): Uuid ``` @@ -17,7 +17,7 @@ getPreviousAdjacent[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/ | Name | Type | Description | Required | |----------|------|-------------|----------| -| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the previous adjacent edge of. | Yes | +| `edge` | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The tag of the edge you want to find the previous adjacent edge of. | Yes | ### Returns diff --git a/docs/kcl/index.md b/docs/kcl/index.md index 2ad34ff11..59ae2a4a2 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -12,24 +12,10 @@ layout: manual * [`Modules`](kcl/modules) * [`Settings`](kcl/settings) * [`Known Issues`](kcl/known-issues) -* [`Constants`](kcl/consts) -### Standard library +### Functions -* **Primitive types** - * [`bool`](kcl/types/bool) - * [`number`](kcl/types/number) - * [`string`](kcl/types/string) - * [`tag`](kcl/types/tag) * **std** - * [`END`](kcl/consts/std-END) - * [`START`](kcl/consts/std-START) - * [`X`](kcl/consts/std-X) - * [`XY`](kcl/consts/std-XY) - * [`XZ`](kcl/consts/std-XZ) - * [`Y`](kcl/consts/std-Y) - * [`YZ`](kcl/consts/std-YZ) - * [`Z`](kcl/consts/std-Z) * [`angledLine`](kcl/angledLine) * [`angledLineThatIntersects`](kcl/angledLineThatIntersects) * [`appearance`](kcl/appearance) @@ -45,7 +31,7 @@ layout: manual * [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge) * [`getOppositeEdge`](kcl/getOppositeEdge) * [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge) - * [`helix`](kcl/std-helix) + * [`helix`](kcl/functions/std-helix) * [`intersect`](kcl/intersect) * [`involuteCircular`](kcl/involuteCircular) * [`lastSegX`](kcl/lastSegX) @@ -56,7 +42,7 @@ layout: manual * [`line`](kcl/line) * [`loft`](kcl/loft) * [`map`](kcl/map) - * [`offsetPlane`](kcl/std-offsetPlane) + * [`offsetPlane`](kcl/functions/std-offsetPlane) * [`patternCircular2d`](kcl/patternCircular2d) * [`patternCircular3d`](kcl/patternCircular3d) * [`patternLinear2d`](kcl/patternLinear2d) @@ -70,7 +56,7 @@ layout: manual * [`profileStartY`](kcl/profileStartY) * [`push`](kcl/push) * [`reduce`](kcl/reduce) - * [`revolve`](kcl/std-revolve) + * [`revolve`](kcl/functions/std-revolve) * [`rotate`](kcl/rotate) * [`scale`](kcl/scale) * [`segAng`](kcl/segAng) @@ -92,61 +78,90 @@ layout: manual * [`union`](kcl/union) * [`xLine`](kcl/xLine) * [`yLine`](kcl/yLine) +* **std::math** + * [`abs`](kcl/functions/std-math-abs) + * [`acos`](kcl/functions/std-math-acos) + * [`asin`](kcl/functions/std-math-asin) + * [`atan`](kcl/functions/std-math-atan) + * [`atan2`](kcl/functions/std-math-atan2) + * [`ceil`](kcl/functions/std-math-ceil) + * [`cos`](kcl/functions/std-math-cos) + * [`floor`](kcl/functions/std-math-floor) + * [`ln`](kcl/functions/std-math-ln) + * [`log`](kcl/functions/std-math-log) + * [`log10`](kcl/functions/std-math-log10) + * [`log2`](kcl/functions/std-math-log2) + * [`max`](kcl/functions/std-math-max) + * [`min`](kcl/functions/std-math-min) + * [`polar`](kcl/functions/std-math-polar) + * [`pow`](kcl/functions/std-math-pow) + * [`rem`](kcl/functions/std-math-rem) + * [`round`](kcl/functions/std-math-round) + * [`sin`](kcl/functions/std-math-sin) + * [`sqrt`](kcl/functions/std-math-sqrt) + * [`tan`](kcl/functions/std-math-tan) +* **std::sketch** + * [`circle`](kcl/functions/std-sketch-circle) + * [`mirror2d`](kcl/functions/std-sketch-mirror2d) +* **std::solid** + * [`chamfer`](kcl/functions/std-solid-chamfer) + * [`fillet`](kcl/functions/std-solid-fillet) + * [`hollow`](kcl/functions/std-solid-hollow) + * [`shell`](kcl/functions/std-solid-shell) +* **std::units** + * [`units::toCentimeters`](kcl/functions/std-units-toCentimeters) + * [`units::toDegrees`](kcl/functions/std-units-toDegrees) + * [`units::toFeet`](kcl/functions/std-units-toFeet) + * [`units::toInches`](kcl/functions/std-units-toInches) + * [`units::toMeters`](kcl/functions/std-units-toMeters) + * [`units::toMillimeters`](kcl/functions/std-units-toMillimeters) + * [`units::toRadians`](kcl/functions/std-units-toRadians) + * [`units::toYards`](kcl/functions/std-units-toYards) + +### Constants + +* **std** + * [`END`](kcl/consts/std-END) + * [`START`](kcl/consts/std-START) + * [`X`](kcl/consts/std-X) + * [`XY`](kcl/consts/std-XY) + * [`XZ`](kcl/consts/std-XZ) + * [`Y`](kcl/consts/std-Y) + * [`YZ`](kcl/consts/std-YZ) + * [`Z`](kcl/consts/std-Z) * **std::math** * [`E`](kcl/consts/std-math-E) * [`PI`](kcl/consts/std-math-PI) * [`TAU`](kcl/consts/std-math-TAU) - * [`abs`](kcl/std-math-abs) - * [`acos`](kcl/std-math-acos) - * [`asin`](kcl/std-math-asin) - * [`atan`](kcl/std-math-atan) - * [`atan2`](kcl/std-math-atan2) - * [`ceil`](kcl/std-math-ceil) - * [`cos`](kcl/std-math-cos) - * [`floor`](kcl/std-math-floor) - * [`ln`](kcl/std-math-ln) - * [`log`](kcl/std-math-log) - * [`log10`](kcl/std-math-log10) - * [`log2`](kcl/std-math-log2) - * [`max`](kcl/std-math-max) - * [`min`](kcl/std-math-min) - * [`polar`](kcl/std-math-polar) - * [`pow`](kcl/std-math-pow) - * [`rem`](kcl/std-math-rem) - * [`round`](kcl/std-math-round) - * [`sin`](kcl/std-math-sin) - * [`sqrt`](kcl/std-math-sqrt) - * [`tan`](kcl/std-math-tan) -* **std::sketch** - * [`circle`](kcl/std-sketch-circle) - * [`mirror2d`](kcl/std-sketch-mirror2d) -* **std::solid** - * [`chamfer`](kcl/std-solid-chamfer) - * [`fillet`](kcl/std-solid-fillet) - * [`hollow`](kcl/std-solid-hollow) - * [`shell`](kcl/std-solid-shell) * **std::turns** * [`turns::HALF_TURN`](kcl/consts/std-turns-HALF_TURN) * [`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) + +### Types + +See also the [types overview](types) + +* **Primitive types** + * [`End`](kcl/types.md#End) + * [`ImportedGeometry`](kcl/types.md#ImportedGeometry) + * [`Start`](kcl/types.md#Start) + * [`TagDeclarator`](kcl/types.md#TagDeclarator) + * [`TagIdentifier`](kcl/types.md#TagIdentifier) + * [`any`](kcl/types/std-types-any) + * [`bool`](kcl/types/std-types-bool) + * [`number`](kcl/types/std-types-number) + * [`string`](kcl/types/std-types-string) + * [`tag`](kcl/types/std-types-tag) * **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) -* **std::units** - * [`units::toCentimeters`](kcl/std-units-toCentimeters) - * [`units::toDegrees`](kcl/std-units-toDegrees) - * [`units::toFeet`](kcl/std-units-toFeet) - * [`units::toInches`](kcl/std-units-toInches) - * [`units::toMeters`](kcl/std-units-toMeters) - * [`units::toMillimeters`](kcl/std-units-toMillimeters) - * [`units::toRadians`](kcl/std-units-toRadians) - * [`units::toYards`](kcl/std-units-toYards) + * [`Axis2d`](kcl/types/std-types-Axis2d) + * [`Axis3d`](kcl/types/std-types-Axis3d) + * [`Edge`](kcl/types/std-types-Edge) + * [`Face`](kcl/types/std-types-Face) + * [`Helix`](kcl/types/std-types-Helix) + * [`Plane`](kcl/types/std-types-Plane) + * [`Point2d`](kcl/types/std-types-Point2d) + * [`Point3d`](kcl/types/std-types-Point3d) + * [`Sketch`](kcl/types/std-types-Sketch) + * [`Solid`](kcl/types/std-types-Solid) diff --git a/docs/kcl/int.md b/docs/kcl/int.md deleted file mode 100644 index 1ff85f72b..000000000 --- a/docs/kcl/int.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "int" -excerpt: "Convert a number to an integer." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Convert a number to an integer. - -DEPRECATED use floor(), ceil(), or round(). - -```js -int(num: number): number -``` - -### Tags - -* `convert` - - -### Arguments - -| Name | Type | Description | Required | -|----------|------|-------------|----------| -| `num` | [`number`](/docs/kcl/types/number) | | Yes | - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -n = int(ceil(5 / 2)) -assert(n, isEqualTo = 3, error = "5/2 = 2.5, rounded up makes 3") -// Draw n cylinders. -startSketchOn(XZ) - |> circle(center = [0, 0], radius = 2) - |> extrude(length = 5) - |> patternTransform( - instances = n, - transform = fn(id) { - return { translate = [4 * id, 0, 0] } - }, - ) -``` - -![Rendered example of int 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFk00lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+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+ictVVV1111VVXvVDXXHPNgwFe7MVe7LXPnDnzIIBrrrnmwddcc82DAc6cOfPga6655sG8EPfdd9+tPNPZs2dvve+++24F+Id/+IffAbjvvvtu/Yd/+Iff5qqr/pWuueaaB585c+bBL/ZiL/ZaANdcc82Dr7nmmgcDnDlz5sHXXHPNg3kh7rvvvlsBzp49eyvPdN99990K8A//8A+/c99999169uzZW++7775bueqqf4VrrrnmwQAv9mIv9tpnzpx5EMA111zz4GuuuebBZ86ceTDANddc82BeiPvuu+9Wnuns2bO33nfffbcC/MM//MPvANx33323/sM//MNvc9VVV1111VVXvTDoQQ96EFddddVVV1111RXXXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3ttgIsXLwJw8eJFnv70p3O/3d1dLl68yP12d3d5fo4fPw7AiRMnADh+/DgnTpzgxIkTADzkIQ8B4L777rv1H/7hH34b4B/+4R9+57777rv1H/7hH36bq/7fu+aaax585syZB7/Yi73Ya11zzTUPvuaaax585syZB19zzTUPftKTnnRr13UPvnjxIk94whO49tpr2d3d5eLFi9xvd3eXF+T48eMAnDhxAoCHPOQhABw/fpwTJ05w4sQJ7rvvvlsB/uEf/uG3/+Ef/uF37rvvvlv/4R/+4be56irgmmuuefBrv/ZrvxfAi7/4i7/2i73Yi702wMWLFwHY3d3laU97Gvfb3d3l4sWL2AZgd3eX52abEydOAHDixAkAjh8/zokTJwA4ceIED33oQwG47777bj179uyt9913363/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vTYPsL+/z1133cVdd93F/v4+d999N/8ekvj3kMS/1fb2No985CMBeNmXfVke6L777rv1t37rt777H/7hH37nH/7hH36bq/5fuuaaax782q/92u/14i/+4q/9Yi/2Yq/NMx0eHgJw7733ct999/H0pz+dF4Uk/iWSeFFI4oWRxL9EEhsbG2xubnLmzBnOnDnDmTNnODw8ZHNzE4D77rvv1t/6rd/67n/4h3/4nX/4h3/4ba76f+eaa6558JkzZx78Oq/zOu/1Yi/2Yq99zTXXPJhnWq/XXLp0ib29PdbrNXt7e9xPEg8kiecmiecmiQeSxHOTxHOTxPMjiecmiefW9z0nT54E4LrrruOB7rvvvlvPnj1769///d//9m//9m9/z3333XcrV1111VVXXfWfBz3oQQ/iqquuuuqqq/6rXHPNNQ8+c+bMg1/sxV7stSTpHd/xHT+LB9jf3wfgrrvu4u6772Z/f5+77rqLF5Uk/j0k8S/Z3t4G4BGPeAQAN9xwA9dffz0PdN9999169uzZW//+7//+t3/7t3/7e+67775bueqqB7jmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6bBzg8POS+++7j4OCAw8NDDg8Pue+++3ggSfxLJPGikMQLI4nntrm5ycbGBmfOnOGaa67hzJkzPNB99913K8Bv/dZvfTfAj/7oj34OV131XK655poHv9iLvdhrv87rvM57vdiLvdhr8wDr9Zr1es16vWZvb4/1es3e3h6SeG6SeCBJPDdJPDdJPDdJPDdJPD+z2Yy+79na2gJga2uLra0tntt9991362/91m999z/8wz/8zj/8wz/8NlddddVVV131Xwc96EEP4qqrrrrqqqv+u1xzzTUPBnixF3ux136xF3ux17rmmmse/GIv9mKvzXPZ398H4K677gLg7rvvZn9/H4D9/X329/e5nyT+PXZ2dgDY2tpie3ubra0tAG644Qauv/56np/77rvv1n/4h3/47fvuu+/Wf/iHf/idf/iHf/htrrrqX+Gaa6558Iu92Iu99ou92Iu91jXXXPPgF3uxF3ttnsvh4SEAh4eHHB4ect999wFweHjI4eEhh4eHPDdJvCgk8dw2NzfZ2NgA4JprrgHgmmuuAeDMmTM8t/vuu+9WgN/6rd/67n/4h3/4nX/4h3/4ba666l/hzJkzD5KkF3uxF3vtF3uxF3uta6655sEv9mIv9tr33Xffrddcc82Deab1es16vWa9XrO/vw/Aer1mGAbW6zWSeG6SeG6SeG6SeKC+75FE3/f0fU/f98xmM/q+Z2tri+fnvvvuu/Uf/uEffvu+++679R/+4R9+5x/+4R9+m6uuuuqqq67674Me9KAHcdVVV1111VX/k1xzzTUPPnPmzIOvueaaB7/Yi73Ya11zzTUPPnPmzIOvueaaB/NC7O/vc7/9/X0ADg4OeEG2tra43/b2NgDb29u8MPfdd9+tAP/wD//w2/fdd9+t//AP//A7//AP//DbXHXVf4JrrrnmwS/2Yi/22i/2Yi/2WgDXXHPNg1/sxV7stXkhDg8Pud/h4SH3Ozo6wjYPJImNjQ0eaHNzk83NTf4l9913361nz5699e///u9/++zZs8+47777bv2Hf/iH3+aqq/6DnTlz5kHXXHPNQ6655poHv9iLvdhrXXPNNQ9+sRd7sdfmhViv19xvGAbut16vkYRtJPFAfd9zv9lsRt/3/Evuu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8NlddddVVV131Pwt60IMexFVXXXXVVVf9b3DNNdc8GODMmTMPvuaaax505syZB19zzTUPvuaaax4McObMmQdfc801D+ZfcN999916zTXXPJhnuu+++2695pprHnzffffdCnD27Nlb77vvvlvvu+++WwHOnj37jPvuu+/Wf/iHf/htrrrqf4BrrrnmwWfOnHnwNddc8+AzZ8486JprrnkwwDXXXPPgM2fOPBjgmmuueTAvgvvuu+/Wa6655sE803333XcrwNmzZ28F+Pu///vfBjh79uwz7rvvvlvPnj1763333XcrV1313+yaa6558JkzZx58zTXXPBjgxV7sxV4L4JprrnkwwJkzZx58zTXXPJh/g/vuu+9Wnuns2bO33nfffbfed999twL8wz/8w+8A/MM//MNvc9VVV1111VX/O6AHPehBXHXVVVddddX/Rddcc82DbVuSeADbliSA++6771auuur/sGuuuebBALYtSTyAbUvSfffddytXXfV/2DXXXPNgnsm2JYkHsG1Juu+++27lqquuuuqqq/7vQQ960IO46qqrrrrqqquuuuqqq6666qqrrrrqqqv+T6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/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+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4p/BOit0SjAd94mAAAAAElFTkSuQmCC) - - diff --git a/docs/kcl/intersect.md b/docs/kcl/intersect.md index 91911bbc0..30310ceb4 100644 --- a/docs/kcl/intersect.md +++ b/docs/kcl/intersect.md @@ -10,9 +10,9 @@ Intersect computes the geometric intersection of multiple solid bodies, returnin ```kcl intersect( - solids: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)), - tolerance?: [number](/docs/kcl/types/number), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + solids: [[Solid]](/docs/kcl/types/std-types-Solid), + tolerance?: [number](/docs/kcl/types/std-types-number), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -20,12 +20,12 @@ intersect( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | The solids to intersect. | Yes | -| `tolerance` | [`number`](/docs/kcl/types/number) | The tolerance to use for the intersection operation. | No | +| `solids` | [`[Solid]`](/docs/kcl/types/std-types-Solid) | The solids to intersect. | Yes | +| `tolerance` | [`number`](/docs/kcl/types/std-types-number) | The tolerance to use for the intersection operation. | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/involuteCircular.md b/docs/kcl/involuteCircular.md index d36928247..c8d790cbe 100644 --- a/docs/kcl/involuteCircular.md +++ b/docs/kcl/involuteCircular.md @@ -10,13 +10,13 @@ Extend the current sketch with a new involute circular curve. ```kcl involuteCircular( - sketch: [Sketch](/docs/kcl/types/Sketch), - startRadius: [number](/docs/kcl/types/number), - endRadius: [number](/docs/kcl/types/number), - angle: [number](/docs/kcl/types/number), - reverse?: [bool](/docs/kcl/types/bool), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + startRadius: [number](/docs/kcl/types/std-types-number), + endRadius: [number](/docs/kcl/types/std-types-number), + angle: [number](/docs/kcl/types/std-types-number), + reverse?: [bool](/docs/kcl/types/std-types-bool), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -24,16 +24,16 @@ involuteCircular( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `startRadius` | [`number`](/docs/kcl/types/number) | The involute is described between two circles, start_radius is the radius of the inner circle. | Yes | -| `endRadius` | [`number`](/docs/kcl/types/number) | The involute is described between two circles, end_radius is the radius of the outer circle. | Yes | -| `angle` | [`number`](/docs/kcl/types/number) | The angle to rotate the involute by. A value of zero will produce a curve with a tangent along the x-axis at the start point of the curve. | Yes | -| `reverse` | [`bool`](/docs/kcl/types/bool) | If reverse is true, the segment will start from the end of the involute, otherwise it will start from that start. Defaults to false. | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `startRadius` | [`number`](/docs/kcl/types/std-types-number) | The involute is described between two circles, start_radius is the radius of the inner circle. | Yes | +| `endRadius` | [`number`](/docs/kcl/types/std-types-number) | The involute is described between two circles, end_radius is the radius of the outer circle. | Yes | +| `angle` | [`number`](/docs/kcl/types/std-types-number) | The angle to rotate the involute by. A value of zero will produce a curve with a tangent along the x-axis at the start point of the curve. | Yes | +| `reverse` | [`bool`](/docs/kcl/types/std-types-bool) | If reverse is true, the segment will start from the end of the involute, otherwise it will start from that start. Defaults to false. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/lastSegX.md b/docs/kcl/lastSegX.md index f1d2807e9..9c3a498d9 100644 --- a/docs/kcl/lastSegX.md +++ b/docs/kcl/lastSegX.md @@ -9,7 +9,7 @@ Extract the 'x' axis value of the last line segment in the provided 2-d sketch. ```kcl -lastSegX(sketch: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/number) +lastSegX(sketch: [Sketch](/docs/kcl/types/std-types-Sketch)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ lastSegX(sketch: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/num | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | The sketch whose line segment is being queried | Yes | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | The sketch whose line segment is being queried | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/lastSegY.md b/docs/kcl/lastSegY.md index 3d1d078eb..6c6e72be6 100644 --- a/docs/kcl/lastSegY.md +++ b/docs/kcl/lastSegY.md @@ -9,7 +9,7 @@ Extract the 'y' axis value of the last line segment in the provided 2-d sketch. ```kcl -lastSegY(sketch: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/number) +lastSegY(sketch: [Sketch](/docs/kcl/types/std-types-Sketch)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ lastSegY(sketch: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/num | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | The sketch whose line segment is being queried | Yes | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | The sketch whose line segment is being queried | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/legAngX.md b/docs/kcl/legAngX.md index ea374a70c..6dce39464 100644 --- a/docs/kcl/legAngX.md +++ b/docs/kcl/legAngX.md @@ -10,9 +10,9 @@ Compute the angle of the given leg for x. ```kcl legAngX( - hypotenuse: [number](/docs/kcl/types/number), - leg: [number](/docs/kcl/types/number), -): [number](/docs/kcl/types/number) + hypotenuse: [number](/docs/kcl/types/std-types-number), + leg: [number](/docs/kcl/types/std-types-number), +): [number](/docs/kcl/types/std-types-number) ``` ### Tags @@ -24,12 +24,12 @@ legAngX( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `hypotenuse` | [`number`](/docs/kcl/types/number) | The length of the triangle's hypotenuse | Yes | -| `leg` | [`number`](/docs/kcl/types/number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes | +| `hypotenuse` | [`number`](/docs/kcl/types/std-types-number) | The length of the triangle's hypotenuse | Yes | +| `leg` | [`number`](/docs/kcl/types/std-types-number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/legAngY.md b/docs/kcl/legAngY.md index 2396c499b..2a5279073 100644 --- a/docs/kcl/legAngY.md +++ b/docs/kcl/legAngY.md @@ -10,9 +10,9 @@ Compute the angle of the given leg for y. ```kcl legAngY( - hypotenuse: [number](/docs/kcl/types/number), - leg: [number](/docs/kcl/types/number), -): [number](/docs/kcl/types/number) + hypotenuse: [number](/docs/kcl/types/std-types-number), + leg: [number](/docs/kcl/types/std-types-number), +): [number](/docs/kcl/types/std-types-number) ``` ### Tags @@ -24,12 +24,12 @@ legAngY( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `hypotenuse` | [`number`](/docs/kcl/types/number) | The length of the triangle's hypotenuse | Yes | -| `leg` | [`number`](/docs/kcl/types/number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes | +| `hypotenuse` | [`number`](/docs/kcl/types/std-types-number) | The length of the triangle's hypotenuse | Yes | +| `leg` | [`number`](/docs/kcl/types/std-types-number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/legLen.md b/docs/kcl/legLen.md index 052b01a8c..7938bc70c 100644 --- a/docs/kcl/legLen.md +++ b/docs/kcl/legLen.md @@ -10,9 +10,9 @@ Compute the length of the given leg. ```kcl legLen( - hypotenuse: [number](/docs/kcl/types/number), - leg: [number](/docs/kcl/types/number), -): [number](/docs/kcl/types/number) + hypotenuse: [number](/docs/kcl/types/std-types-number), + leg: [number](/docs/kcl/types/std-types-number), +): [number](/docs/kcl/types/std-types-number) ``` ### Tags @@ -24,12 +24,12 @@ legLen( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `hypotenuse` | [`number`](/docs/kcl/types/number) | The length of the triangle's hypotenuse | Yes | -| `leg` | [`number`](/docs/kcl/types/number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes | +| `hypotenuse` | [`number`](/docs/kcl/types/std-types-number) | The length of the triangle's hypotenuse | Yes | +| `leg` | [`number`](/docs/kcl/types/std-types-number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/line.md b/docs/kcl/line.md index 89b9d7da5..1f02c6cb5 100644 --- a/docs/kcl/line.md +++ b/docs/kcl/line.md @@ -10,11 +10,11 @@ Extend the current sketch with a new straight line. ```kcl line( - sketch: [Sketch](/docs/kcl/types/Sketch), - endAbsolute?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - end?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + endAbsolute?: [Point2d](/docs/kcl/types/std-types-Point2d), + end?: [Point2d](/docs/kcl/types/std-types-Point2d), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -22,14 +22,14 @@ line( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `endAbsolute` | [`[number]`](/docs/kcl/types/number) | Which absolute point should this line go to? Incompatible with `end`. | No | -| `end` | [`[number]`](/docs/kcl/types/number) | How far away (along the X and Y axes) should this line go? Incompatible with `endAbsolute`. | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `endAbsolute` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | Which absolute point should this line go to? Incompatible with `end`. | No | +| `end` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | How far away (along the X and Y axes) should this line go? Incompatible with `endAbsolute`. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/loft.md b/docs/kcl/loft.md index 3f629fbaf..74ce1460c 100644 --- a/docs/kcl/loft.md +++ b/docs/kcl/loft.md @@ -10,14 +10,14 @@ The sketches need to closed and on the same plane. ```kcl loft( - sketches: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)), - vDegree: NonZeroU32, - bezApproximateRational: [bool](/docs/kcl/types/bool), - baseCurveIndex?: integer, - tolerance?: [number](/docs/kcl/types/number), - tagStart?: [TagDeclarator](/docs/kcl/types#tag-declaration), - tagEnd?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Solid](/docs/kcl/types/Solid) + sketches: [[Sketch]](/docs/kcl/types/std-types-Sketch), + vDegree: [number](/docs/kcl/types/std-types-number), + bezApproximateRational: [bool](/docs/kcl/types/std-types-bool), + baseCurveIndex?: [number](/docs/kcl/types/std-types-number), + tolerance?: [number](/docs/kcl/types/std-types-number), + tagStart?: [TagDeclarator](/docs/kcl/types#TagDeclarator), + tagEnd?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Solid](/docs/kcl/types/std-types-Solid) ``` @@ -25,17 +25,17 @@ loft( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketches to loft. Must include at least 2 sketches. | Yes | -| `vDegree` | `NonZeroU32` | Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified. | Yes | -| `bezApproximateRational` | [`bool`](/docs/kcl/types/bool) | Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary. | Yes | -| `baseCurveIndex` | `integer` | This can be set to override the automatically determined topological base curve, which is usually the first section encountered. | No | -| `tolerance` | [`number`](/docs/kcl/types/number) | Tolerance for the loft operation. | No | -| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the loft, i.e. the original sketch | No | -| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the loft, i.e. the last sketch | No | +| `sketches` | [`[Sketch]`](/docs/kcl/types/std-types-Sketch) | Which sketches to loft. Must include at least 2 sketches. | Yes | +| `vDegree` | [`number`](/docs/kcl/types/std-types-number) | Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified. | Yes | +| `bezApproximateRational` | [`bool`](/docs/kcl/types/std-types-bool) | Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary. | Yes | +| `baseCurveIndex` | [`number`](/docs/kcl/types/std-types-number) | This can be set to override the automatically determined topological base curve, which is usually the first section encountered. | No | +| `tolerance` | [`number`](/docs/kcl/types/std-types-number) | Tolerance for the loft operation. | No | +| `tagStart` | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | A named tag for the face at the start of the loft, i.e. the original sketch | No | +| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | A named tag for the face at the end of the loft, i.e. the last sketch | No | ### Returns -[`Solid`](/docs/kcl/types/Solid) +[`Solid`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/map.md b/docs/kcl/map.md index 76bfb8754..184dd69d1 100644 --- a/docs/kcl/map.md +++ b/docs/kcl/map.md @@ -6,13 +6,13 @@ layout: manual Apply a function to every element of a list. -Given a list like `[a, b, c]`, and a function like `f`, returns `[f(a), f(b), f(c)]` +Given a list like `[[a, b, c]]`, and a function like `f`, returns `[[f(a), f(b), f(c)]]` ```kcl map( - array: [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/docs/kcl/types/KclValue)), + array: [[any]](/docs/kcl/types/std-types-any), f: FunctionSource, -): [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/docs/kcl/types/KclValue)) +): [[any]](/docs/kcl/types/std-types-any) ``` @@ -20,12 +20,12 @@ map( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `array` | [`[KclValue]`](/docs/kcl/types/KclValue) | Input array. The output array is this input array, but every element has had the function `f` run on it. | Yes | +| `array` | [`[any]`](/docs/kcl/types/std-types-any) | Input array. The output array is this input array, but every element has had the function `f` run on it. | Yes | | `f` | `FunctionSource` | A function. The output array is just the input array, but `f` has been run on every item. | Yes | ### Returns -[`[KclValue]`](/docs/kcl/types/KclValue) +[`[any]`](/docs/kcl/types/std-types-any) ### Examples diff --git a/docs/kcl/patternCircular2d.md b/docs/kcl/patternCircular2d.md index baf651308..228b64b94 100644 --- a/docs/kcl/patternCircular2d.md +++ b/docs/kcl/patternCircular2d.md @@ -10,13 +10,13 @@ Repeat a 2-dimensional sketch some number of times along a partial or complete c ```kcl patternCircular2d( - sketchSet: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)), - instances: integer, - center: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - arcDegrees: [number](/docs/kcl/types/number), - rotateDuplicates: [bool](/docs/kcl/types/bool), - useOriginal?: [bool](/docs/kcl/types/bool), -): [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)) + sketchSet: [[Sketch]](/docs/kcl/types/std-types-Sketch), + instances: [number](/docs/kcl/types/std-types-number), + center: [Point2d](/docs/kcl/types/std-types-Point2d), + arcDegrees: [number](/docs/kcl/types/std-types-number), + rotateDuplicates: [bool](/docs/kcl/types/std-types-bool), + useOriginal?: [bool](/docs/kcl/types/std-types-bool), +): [[Sketch]](/docs/kcl/types/std-types-Sketch) ``` @@ -24,16 +24,16 @@ patternCircular2d( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketchSet` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketch(es) to pattern | Yes | -| `instances` | `integer` | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | -| `center` | [`[number]`](/docs/kcl/types/number) | The center about which to make the pattern. This is a 2D vector. | Yes | -| `arcDegrees` | [`number`](/docs/kcl/types/number) | The arc angle (in degrees) to place the repetitions. Must be greater than 0. | Yes | -| `rotateDuplicates` | [`bool`](/docs/kcl/types/bool) | Whether or not to rotate the duplicates as they are copied. | Yes | -| `useOriginal` | [`bool`](/docs/kcl/types/bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | +| `sketchSet` | [`[Sketch]`](/docs/kcl/types/std-types-Sketch) | Which sketch(es) to pattern | Yes | +| `instances` | [`number`](/docs/kcl/types/std-types-number) | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | +| `center` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | The center about which to make the pattern. This is a 2D vector. | Yes | +| `arcDegrees` | [`number`](/docs/kcl/types/std-types-number) | The arc angle (in degrees) to place the repetitions. Must be greater than 0. | Yes | +| `rotateDuplicates` | [`bool`](/docs/kcl/types/std-types-bool) | Whether or not to rotate the duplicates as they are copied. | Yes | +| `useOriginal` | [`bool`](/docs/kcl/types/std-types-bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | ### Returns -[`[Sketch]`](/docs/kcl/types/Sketch) +[`[Sketch]`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/patternCircular3d.md b/docs/kcl/patternCircular3d.md index a7eb350ed..1c4e5ba45 100644 --- a/docs/kcl/patternCircular3d.md +++ b/docs/kcl/patternCircular3d.md @@ -10,14 +10,14 @@ Repeat a 3-dimensional solid some number of times along a partial or complete ci ```kcl patternCircular3d( - solids: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)), - instances: integer, - axis: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - center: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - arcDegrees: [number](/docs/kcl/types/number), - rotateDuplicates: [bool](/docs/kcl/types/bool), - useOriginal?: [bool](/docs/kcl/types/bool), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + solids: [[Solid]](/docs/kcl/types/std-types-Solid), + instances: [number](/docs/kcl/types/std-types-number), + axis: [[number]](/docs/kcl/types/std-types-number), + center: [Point3d](/docs/kcl/types/std-types-Point3d), + arcDegrees: [number](/docs/kcl/types/std-types-number), + rotateDuplicates: [bool](/docs/kcl/types/std-types-bool), + useOriginal?: [bool](/docs/kcl/types/std-types-bool), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -25,17 +25,17 @@ patternCircular3d( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | Which solid(s) to pattern | Yes | -| `instances` | `integer` | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | -| `axis` | [`[number]`](/docs/kcl/types/number) | The axis around which to make the pattern. This is a 3D vector | Yes | -| `center` | [`[number]`](/docs/kcl/types/number) | The center about which to make the pattern. This is a 3D vector. | Yes | -| `arcDegrees` | [`number`](/docs/kcl/types/number) | The arc angle (in degrees) to place the repetitions. Must be greater than 0. | Yes | -| `rotateDuplicates` | [`bool`](/docs/kcl/types/bool) | Whether or not to rotate the duplicates as they are copied. | Yes | -| `useOriginal` | [`bool`](/docs/kcl/types/bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | +| `solids` | [`[Solid]`](/docs/kcl/types/std-types-Solid) | Which solid(s) to pattern | Yes | +| `instances` | [`number`](/docs/kcl/types/std-types-number) | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | +| `axis` | [`[number]`](/docs/kcl/types/std-types-number) | The axis around which to make the pattern. This is a 3D vector | Yes | +| `center` | [`Point3d`](/docs/kcl/types/std-types-Point3d) | The center about which to make the pattern. This is a 3D vector. | Yes | +| `arcDegrees` | [`number`](/docs/kcl/types/std-types-number) | The arc angle (in degrees) to place the repetitions. Must be greater than 0. | Yes | +| `rotateDuplicates` | [`bool`](/docs/kcl/types/std-types-bool) | Whether or not to rotate the duplicates as they are copied. | Yes | +| `useOriginal` | [`bool`](/docs/kcl/types/std-types-bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/patternLinear2d.md b/docs/kcl/patternLinear2d.md index ac9fc71ad..44e8030b6 100644 --- a/docs/kcl/patternLinear2d.md +++ b/docs/kcl/patternLinear2d.md @@ -10,12 +10,12 @@ Repeat a 2-dimensional sketch along some dimension, with a dynamic amount of dis ```kcl patternLinear2d( - sketches: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)), - instances: integer, - distance: [number](/docs/kcl/types/number), - axis: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - useOriginal?: [bool](/docs/kcl/types/bool), -): [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)) + sketches: [[Sketch]](/docs/kcl/types/std-types-Sketch), + instances: [number](/docs/kcl/types/std-types-number), + distance: [number](/docs/kcl/types/std-types-number), + axis: [Point2d](/docs/kcl/types/std-types-Point2d), + useOriginal?: [bool](/docs/kcl/types/std-types-bool), +): [[Sketch]](/docs/kcl/types/std-types-Sketch) ``` @@ -23,15 +23,15 @@ patternLinear2d( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | The sketch(es) to duplicate | Yes | -| `instances` | `integer` | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | -| `distance` | [`number`](/docs/kcl/types/number) | Distance between each repetition. Also known as 'spacing'. | Yes | -| `axis` | [`[number]`](/docs/kcl/types/number) | The axis of the pattern. A 2D vector. | Yes | -| `useOriginal` | [`bool`](/docs/kcl/types/bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | +| `sketches` | [`[Sketch]`](/docs/kcl/types/std-types-Sketch) | The sketch(es) to duplicate | Yes | +| `instances` | [`number`](/docs/kcl/types/std-types-number) | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | +| `distance` | [`number`](/docs/kcl/types/std-types-number) | Distance between each repetition. Also known as 'spacing'. | Yes | +| `axis` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | The axis of the pattern. A 2D vector. | Yes | +| `useOriginal` | [`bool`](/docs/kcl/types/std-types-bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | ### Returns -[`[Sketch]`](/docs/kcl/types/Sketch) +[`[Sketch]`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/patternLinear3d.md b/docs/kcl/patternLinear3d.md index f6c556eae..c8c3598a7 100644 --- a/docs/kcl/patternLinear3d.md +++ b/docs/kcl/patternLinear3d.md @@ -10,12 +10,12 @@ Repeat a 3-dimensional solid along a linear path, with a dynamic amount of dista ```kcl patternLinear3d( - solids: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)), - instances: integer, - distance: [number](/docs/kcl/types/number), - axis: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - useOriginal?: [bool](/docs/kcl/types/bool), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + solids: [[Solid]](/docs/kcl/types/std-types-Solid), + instances: [number](/docs/kcl/types/std-types-number), + distance: [number](/docs/kcl/types/std-types-number), + axis: [Point3d](/docs/kcl/types/std-types-Point3d), + useOriginal?: [bool](/docs/kcl/types/std-types-bool), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -23,15 +23,15 @@ patternLinear3d( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | The solid(s) to duplicate | Yes | -| `instances` | `integer` | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | -| `distance` | [`number`](/docs/kcl/types/number) | Distance between each repetition. Also known as 'spacing'. | Yes | -| `axis` | [`[number]`](/docs/kcl/types/number) | The axis of the pattern. A 2D vector. | Yes | -| `useOriginal` | [`bool`](/docs/kcl/types/bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | +| `solids` | [`[Solid]`](/docs/kcl/types/std-types-Solid) | The solid(s) to duplicate | Yes | +| `instances` | [`number`](/docs/kcl/types/std-types-number) | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | +| `distance` | [`number`](/docs/kcl/types/std-types-number) | Distance between each repetition. Also known as 'spacing'. | Yes | +| `axis` | [`Point3d`](/docs/kcl/types/std-types-Point3d) | The axis of the pattern. A 2D vector. | Yes | +| `useOriginal` | [`bool`](/docs/kcl/types/std-types-bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/patternTransform.md b/docs/kcl/patternTransform.md index 943e3ee60..cb50f9784 100644 --- a/docs/kcl/patternTransform.md +++ b/docs/kcl/patternTransform.md @@ -36,11 +36,11 @@ The transform function returns a transform object. All properties of the object ```kcl patternTransform( - solids: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)), - instances: integer, + solids: [[Solid]](/docs/kcl/types/std-types-Solid), + instances: [number](/docs/kcl/types/std-types-number), transform: FunctionSource, - useOriginal?: [bool](/docs/kcl/types/bool), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + useOriginal?: [bool](/docs/kcl/types/std-types-bool), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -48,14 +48,14 @@ patternTransform( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | The solid(s) to duplicate | Yes | -| `instances` | `integer` | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | +| `solids` | [`[Solid]`](/docs/kcl/types/std-types-Solid) | The solid(s) to duplicate | Yes | +| `instances` | [`number`](/docs/kcl/types/std-types-number) | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | | `transform` | `FunctionSource` | How each replica should be transformed. The transform function takes a single parameter: an integer representing which number replication the transform is for. E.g. the first replica to be transformed will be passed the argument `1`. This simplifies your math: the transform function can rely on id `0` being the original instance passed into the `patternTransform`. See the examples. | Yes | -| `useOriginal` | [`bool`](/docs/kcl/types/bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | +| `useOriginal` | [`bool`](/docs/kcl/types/std-types-bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/patternTransform2d.md b/docs/kcl/patternTransform2d.md index 0b4cb79b1..c13ce9795 100644 --- a/docs/kcl/patternTransform2d.md +++ b/docs/kcl/patternTransform2d.md @@ -10,11 +10,11 @@ Just like patternTransform, but works on 2D sketches not 3D solids. ```kcl patternTransform2d( - sketches: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)), - instances: integer, + sketches: [[Sketch]](/docs/kcl/types/std-types-Sketch), + instances: [number](/docs/kcl/types/std-types-number), transform: FunctionSource, - useOriginal?: [bool](/docs/kcl/types/bool), -): [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)) + useOriginal?: [bool](/docs/kcl/types/std-types-bool), +): [[Sketch]](/docs/kcl/types/std-types-Sketch) ``` @@ -22,14 +22,14 @@ patternTransform2d( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | The sketch(es) to duplicate | Yes | -| `instances` | `integer` | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | +| `sketches` | [`[Sketch]`](/docs/kcl/types/std-types-Sketch) | The sketch(es) to duplicate | Yes | +| `instances` | [`number`](/docs/kcl/types/std-types-number) | The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect. | Yes | | `transform` | `FunctionSource` | How each replica should be transformed. The transform function takes a single parameter: an integer representing which number replication the transform is for. E.g. the first replica to be transformed will be passed the argument `1`. This simplifies your math: the transform function can rely on id `0` being the original instance passed into the `patternTransform`. See the examples. | Yes | -| `useOriginal` | [`bool`](/docs/kcl/types/bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | +| `useOriginal` | [`bool`](/docs/kcl/types/std-types-bool) | If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false. | No | ### Returns -[`[Sketch]`](/docs/kcl/types/Sketch) +[`[Sketch]`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/pi.md b/docs/kcl/pi.md deleted file mode 100644 index 9f96bbd79..000000000 --- a/docs/kcl/pi.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "pi" -excerpt: "Return the value of `pi`. Archimedes’ constant (π)." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Return the value of `pi`. Archimedes’ constant (π). - -**DEPRECATED** use the constant PI - -```js -pi(): number -``` - -### Tags - -* `math` - - - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -circumference = 70 - -exampleSketch = startSketchOn(XZ) - |> circle(center = [0, 0], radius = circumference / (2 * pi())) - -example = extrude(exampleSketch, length = 5) -``` - -![Rendered example of pi 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAE8jklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+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/q6hcddVVV1111VVXXfV/3jXXXPNgno/77rvvVq666qqrrrrqqquu+r+MylVXXXXVVVddddVV/6Ndc801Dz5z5syDAa655poHnzlz5kEA11xzzYOvueaaB/NMZ86ceTDANddc82D+He67775beaazZ8/eCnDffffdCnDffffdevbs2WcA3HfffbeePXv21vvuu+9Wrrrqqquuuuqqq676nwo96EEP4qqrrrrqqquuuuqq/x7XXHPNgwFe7MVe7LXPnDnzIIAXf/EXf22AF3uxF3ttXoDd3V0Adnd32d3d5X4XL17kue3u7vKiOH78OAAnTpzgfsePHwfg+PHjABw/fpzn57777rsV4OzZs7fed999t/7DP/zD7wDcd999t/7DP/zDb3PVVVddddVVV1111X8X9KAHPYirrrrqqquuuuqqq/5zXXPNNQ8+c+bMg1/sxV7stQBe/MVf/LVf7MVe7LV5Lru7u+zu7rK7u8vFixcBuPXWWwHY3d1ld3cXAEn8e9nm3+L48eMAHD9+nOPHjwPw4Ac/GIDjx49z4sQJjh8/zgPdd999t549e/bW++6779Z/+Id/+J377rvv1rNnz95633333cpVV1111VVXXXXVVf+Z0IMe9CCuuuqqq6666qqrrvqPc8011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+YBdnd32d3d5elPfzoAt956K7u7u+zu7nI/Sfx3s82/lm3ud/z4cY4fP86JEyd48IMfzPHjxzlx4gTHjx/nfvfdd9+tZ8+evfW+++679R/+4R9+57777rv1H/7hH36bq6666qqrrrrqqqv+o6AHPehBXHXVVVddddVVV131b3PNNdc8+MyZMw9+sRd7sdd68Rd/8dd+sRd7sdfmmXZ3d9nd3eXpT386ALfeeiu33norDySJ/01s869hm+d2/PhxAB7ykIfw4Ac/mOPHj/OQhzyE+9133323nj179tb77rvv1n/4h3/4nd/6rd/6bq666qqrrrrqqquu+rdCD3rQg7jqqquuuuqqq6666kVzzTXXPPi1X/u13wvgdV7ndd77mmuueTDA7u4uu7u7PP3pT+fWW2/l1ltv5fmRxH8kSfxr2OY/km1eFLZ5YWxz/PhxHvKQh/CQhzyE48eP85CHPIT73Xfffbf+wz/8w2//wz/8w+/cd999t/7DP/zDb3PVVVddddVVV1111YsCPehBD+Kqq6666qqrrrrqqufvmmuuefCLvdiLvfaZM2ce9E7v9E6fzTPt7u7y9Kc/nd3dXW699VZuvfVWXhBJ/FtI4r+Dbf6tbPMvsc0LY5v7HT9+nIc85CE85CEP4fjx4zzkIQ8B4L777rv1H/7hH377H/7hH37nt37rt76bq6666qqrrrrq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RxLPTRLPjySemySemySemyQeSBIPJInnJokHksQDSeJ+knggSdxPEg8kiftJ4oEkcT9J3E8S95MEgCTuJ4n7SQJAEveTBIAk7icJAEncTxIAkgCQBIAkACRxP0kASAJAEgCSAJCEJAAkASAJAEkASEISAJIAmM/nXHvttdxyyy080I/8yI989m//9m9/z3333XcrV1111VVXXXXVVf+zoAc96EFcddVVV1111VVX/U91zTXXPPi1X/u13+vFX/zFX/vFXuzFXptnuvPOO3n84x/P4x//eB5IEi+IJJ4fSTw/knhuknh+JPHcJPHcJPHcJPFAknggSTw3STyQJB5IEveTxANJ4n6SeCBJ3E8S95PE/SRxP0ncTxL3k8T9JHE/SQBI4n6SAJDE/SQBIAkASdxPEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJADzoQQ/i+PHjHDt2jPvdd999t/7Wb/3Wd//oj/7o53DVVVddddVVV131Pxd60IMexFVXXXXVVVddddX/Btdcc82D3/Ed3/GzXud1Xue9eaa9vT3uvPNOHv/4x3PnnXciiRdEEs+PJJ4fSTw/knhuknhuknhuknhuknggSTyQJJ6bJB5IEveTxANJ4oEkcT9JPJAk7ieJ+0nifpK4nyTuJ4n7SeJ+kgCQxP0kcT9JAEgCQBL3kwSAJO4nCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASkgCQxHw+57rrruNBD3oQD/QjP/Ijn/0P//APv/MP//APv81VV1111VVXXXXV/3zoQQ96EFddddVVV1111VX/m1xzzTUPfrEXe7HXfrEXe7HXfp3XeZ334pn29vZ4whOewJ133smdd97Jc5PE8yOJ50cSz48knpsknpsknpsknpskHkgSDySJ5yaJB5LE/STxQJJ4IEncTxIPJIn7SeJ+krifJO4niftJ4n6SuJ8kACRxP0kASOJ+kgCQxP0kASAJAEkASOJ+kgCQBIAkACQBIAkASQBIAkASkgCQBMBiseC6667jwQ9+MACr1Yr5fM59991362/91m9994/+6I9+DlddddVVV1111VX/u6AHPehBXHXVVVddddVVV/1vdc011zz4tV/7td/rdV7ndd77mmuueTDPtLe3xxOe8ATuvPNO7rzzTgAk8YJI4rlJ4vmRxHOTxHOTxHOTxHOT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HkgSDySJB5LE/STxQJK4nyQeSBL3k8T9JHE/SdxPEveTxP0kASCJ+0kCYGNjg62tLTY2Ntjc3GRjY4ONjQ3OnDnDC3Lffffd+g//8A+/fd999936D//wD7/zD//wD7/NVVddddVVV1111VX/FuhBD3oQV1111VVXXXXVVVf9x7jmmmseDPBiL/Zir/1iL/Zir3XNNdc8+MyZMw++5pprHswLcHBwgG0ODg7Y398H4J577uHg4ACA/f19Dg8PeSBJPJAk7ieJB5LE/STxQJK4nyTuJ4n7SeJ+krifJDY3NwHY3NzkmmuuAWBzc5PNzU02NjbY3NzkhbnvvvtuPXv27K1///d//9sA//AP//A7//AP//DbXHXVVVddddVVV131HwU96EEP4qqrrrrqqquuuuqq/1zXXHPNgwFe7MVe7LXOnDnz4GuuuebB11xzzYPPnDnz4GuuuebBvAgODg6438HBAQcHB9zv4OAAgIODAyRxv4ODAx5IEveTxP02NzeRBMDm5iaSuN/W1hYAm5ubAGxubrK5ucmL6r777rsV4B/+4R9++7777rv17Nmzt953333P+Id/+Iff5qqrrrrqqquuuuqq/2zoQQ96EFddddVVV1111VVX/fc5c+bMgyTpzJkzD77mmmsefObMmQddc801D77mmmseDHDmzJkHX3PNNQ++7777br3mmmsezP8g9913360AZ8+evfW+++679b777rsV4B/+4R9+5+zZs7fed999t3LVVVddddVVV1111X8n9KAHPYirrrrqqquuuuqqq/7nO3PmzIMkCeDMmTMPvuaaax4MGNCZM2ceBHDNNdc8mAe45pprHswLcd999916zTXXPPi+++67lWe67777buUBzp49eyug++6771aAs2fP3nrffffdylVXXXXVVVddddVV/xugBz3oQVx11VVXXXXVVVddddVVV1111VVXXXXVVf8nUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/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/q/hHGC1SPkIqmNIAAAAASUVORK5CYII=) - - diff --git a/docs/kcl/polygon.md b/docs/kcl/polygon.md index 9db5c25b6..ebdc19289 100644 --- a/docs/kcl/polygon.md +++ b/docs/kcl/polygon.md @@ -10,12 +10,12 @@ Create a regular polygon with the specified number of sides that is either inscr ```kcl polygon( - sketchSurfaceOrGroup: [[Sketch](/docs/kcl/types/Sketch)OrSurface](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)OrSurface), - radius: [number](/docs/kcl/types/number), + sketchSurfaceOrGroup: [Sketch](/docs/kcl/types/std-types-Sketch) | [Plane](/docs/kcl/types/std-types-Plane) | [Face](/docs/kcl/types/std-types-Face), + radius: [number](/docs/kcl/types/std-types-number), numSides: u64, - center: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - inscribed?: [bool](/docs/kcl/types/bool), -): [Sketch](/docs/kcl/types/Sketch) + center: [Point2d](/docs/kcl/types/std-types-Point2d), + inscribed?: [bool](/docs/kcl/types/std-types-bool), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -23,15 +23,15 @@ polygon( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketchSurfaceOrGroup` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | Plane or surface to sketch on | Yes | -| `radius` | [`number`](/docs/kcl/types/number) | The radius of the polygon | Yes | +| `sketchSurfaceOrGroup` | [`Sketch`](/docs/kcl/types/std-types-Sketch) or [`Plane`](/docs/kcl/types/std-types-Plane) or [`Face`](/docs/kcl/types/std-types-Face) | Plane or surface to sketch on | Yes | +| `radius` | [`number`](/docs/kcl/types/std-types-number) | The radius of the polygon | Yes | | `numSides` | `u64` | The number of sides in the polygon | Yes | -| `center` | [`[number]`](/docs/kcl/types/number) | The center point of the polygon | Yes | -| `inscribed` | [`bool`](/docs/kcl/types/bool) | Whether the polygon is inscribed (true, the default) or circumscribed (false) about a circle with the specified radius | No | +| `center` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | The center point of the polygon | Yes | +| `inscribed` | [`bool`](/docs/kcl/types/std-types-bool) | Whether the polygon is inscribed (true, the default) or circumscribed (false) about a circle with the specified radius | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/pop.md b/docs/kcl/pop.md index 39e0f83f3..289d401f0 100644 --- a/docs/kcl/pop.md +++ b/docs/kcl/pop.md @@ -9,7 +9,7 @@ Remove the last element from an array. Returns a new array with the last element removed. ```kcl -pop(array: [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/docs/kcl/types/KclValue))): [KclValue](/docs/kcl/types/KclValue) +pop(array: [[any]](/docs/kcl/types/std-types-any)): [any](/docs/kcl/types/std-types-any) ``` @@ -17,11 +17,11 @@ pop(array: [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/ | Name | Type | Description | Required | |----------|------|-------------|----------| -| `array` | [`[KclValue]`](/docs/kcl/types/KclValue) | The array to pop from. Must not be empty. | Yes | +| `array` | [`[any]`](/docs/kcl/types/std-types-any) | The array to pop from. Must not be empty. | Yes | ### Returns -[`KclValue`](/docs/kcl/types/KclValue) - Any KCL value. +[`any`](/docs/kcl/types/std-types-any) - Any KCL value. ### Examples diff --git a/docs/kcl/profileStart.md b/docs/kcl/profileStart.md index 7d9b17c8e..049513689 100644 --- a/docs/kcl/profileStart.md +++ b/docs/kcl/profileStart.md @@ -9,7 +9,7 @@ Extract the provided 2-dimensional sketch's profile's origin value. ```kcl -profileStart(profile: [Sketch](/docs/kcl/types/Sketch)): [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)) +profileStart(profile: [Sketch](/docs/kcl/types/std-types-Sketch)): [[number]](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ profileStart(profile: [Sketch](/docs/kcl/types/Sketch)): [[[number](/docs/kcl/ty | Name | Type | Description | Required | |----------|------|-------------|----------| -| `profile` | [`Sketch`](/docs/kcl/types/Sketch) | Profile whose start is being used | Yes | +| `profile` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Profile whose start is being used | Yes | ### Returns -[`[number]`](/docs/kcl/types/number) +[`[number]`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/profileStartX.md b/docs/kcl/profileStartX.md index a0cf57202..104ed31ea 100644 --- a/docs/kcl/profileStartX.md +++ b/docs/kcl/profileStartX.md @@ -9,7 +9,7 @@ Extract the provided 2-dimensional sketch's profile's origin's 'x' value. ```kcl -profileStartX(profile: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/number) +profileStartX(profile: [Sketch](/docs/kcl/types/std-types-Sketch)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ profileStartX(profile: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/typ | Name | Type | Description | Required | |----------|------|-------------|----------| -| `profile` | [`Sketch`](/docs/kcl/types/Sketch) | Profile whose start is being used | Yes | +| `profile` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Profile whose start is being used | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/profileStartY.md b/docs/kcl/profileStartY.md index 86bd57fa8..b3cde12f6 100644 --- a/docs/kcl/profileStartY.md +++ b/docs/kcl/profileStartY.md @@ -9,7 +9,7 @@ Extract the provided 2-dimensional sketch's profile's origin's 'y' value. ```kcl -profileStartY(profile: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/number) +profileStartY(profile: [Sketch](/docs/kcl/types/std-types-Sketch)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ profileStartY(profile: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/typ | Name | Type | Description | Required | |----------|------|-------------|----------| -| `profile` | [`Sketch`](/docs/kcl/types/Sketch) | Profile whose start is being used | Yes | +| `profile` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Profile whose start is being used | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/push.md b/docs/kcl/push.md index 442a78cc5..bc91896b6 100644 --- a/docs/kcl/push.md +++ b/docs/kcl/push.md @@ -10,9 +10,9 @@ Returns a new array with the element appended. ```kcl push( - array: [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/docs/kcl/types/KclValue)), - item: [KclValue](/docs/kcl/types/KclValue), -): [KclValue](/docs/kcl/types/KclValue) + array: [[any]](/docs/kcl/types/std-types-any), + item: [any](/docs/kcl/types/std-types-any), +): [any](/docs/kcl/types/std-types-any) ``` @@ -20,12 +20,12 @@ push( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `array` | [`[KclValue]`](/docs/kcl/types/KclValue) | The array which you're adding a new item to. | Yes | -| `item` | [`KclValue`](/docs/kcl/types/KclValue) | The new item to add to the array | Yes | +| `array` | [`[any]`](/docs/kcl/types/std-types-any) | The array which you're adding a new item to. | Yes | +| `item` | [`any`](/docs/kcl/types/std-types-any) | The new item to add to the array | Yes | ### Returns -[`KclValue`](/docs/kcl/types/KclValue) - Any KCL value. +[`any`](/docs/kcl/types/std-types-any) - Any KCL value. ### Examples diff --git a/docs/kcl/reduce.md b/docs/kcl/reduce.md index 64f131f36..e1ec6be93 100644 --- a/docs/kcl/reduce.md +++ b/docs/kcl/reduce.md @@ -10,10 +10,10 @@ Take a starting value. Then, for each element of an array, calculate the next va ```kcl reduce( - array: [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/docs/kcl/types/KclValue)), - initial: [KclValue](/docs/kcl/types/KclValue), + array: [[any]](/docs/kcl/types/std-types-any), + initial: [any](/docs/kcl/types/std-types-any), f: FunctionSource, -): [KclValue](/docs/kcl/types/KclValue) +): [any](/docs/kcl/types/std-types-any) ``` @@ -21,13 +21,13 @@ reduce( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `array` | [`[KclValue]`](/docs/kcl/types/KclValue) | Each element of this array gets run through the function `f`, combined with the previous output from `f`, and then used for the next run. | Yes | -| `initial` | [`KclValue`](/docs/kcl/types/KclValue) | The first time `f` is run, it will be called with the first item of `array` and this initial starting value. | Yes | +| `array` | [`[any]`](/docs/kcl/types/std-types-any) | Each element of this array gets run through the function `f`, combined with the previous output from `f`, and then used for the next run. | Yes | +| `initial` | [`any`](/docs/kcl/types/std-types-any) | The first time `f` is run, it will be called with the first item of `array` and this initial starting value. | Yes | | `f` | `FunctionSource` | Run once per item in the input `array`. This function takes an item from the array, and the previous output from `f` (or `initial` on the very first run). The final time `f` is run, its output is returned as the final output from `reduce`. | Yes | ### Returns -[`KclValue`](/docs/kcl/types/KclValue) - Any KCL value. +[`any`](/docs/kcl/types/std-types-any) - Any KCL value. ### Examples diff --git a/docs/kcl/rotate.md b/docs/kcl/rotate.md index 922db39bd..200e0fd50 100644 --- a/docs/kcl/rotate.md +++ b/docs/kcl/rotate.md @@ -28,14 +28,14 @@ When rotating a part around an axis, you specify the axis of rotation and the an ```kcl rotate( - objects: [[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry), - roll?: [number](/docs/kcl/types/number), - pitch?: [number](/docs/kcl/types/number), - yaw?: [number](/docs/kcl/types/number), - axis?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - angle?: [number](/docs/kcl/types/number), - global?: [bool](/docs/kcl/types/bool), -): [[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry) + objects: [[Solid]](/docs/kcl/types/std-types-Solid) | [[Sketch]](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry), + roll?: [number](/docs/kcl/types/std-types-number), + pitch?: [number](/docs/kcl/types/std-types-number), + yaw?: [number](/docs/kcl/types/std-types-number), + axis?: [[number]](/docs/kcl/types/std-types-number), + angle?: [number](/docs/kcl/types/std-types-number), + global?: [bool](/docs/kcl/types/std-types-bool), +): [[Solid]](/docs/kcl/types/std-types-Solid) | [[Sketch]](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry) ``` @@ -43,17 +43,17 @@ rotate( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `objects` | [`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) | The solid, sketch, or set of solids or sketches to rotate. | Yes | -| `roll` | [`number`](/docs/kcl/types/number) | The roll angle in degrees. Must be between -360 and 360. Default is 0 if not given. | No | -| `pitch` | [`number`](/docs/kcl/types/number) | The pitch angle in degrees. Must be between -360 and 360. Default is 0 if not given. | No | -| `yaw` | [`number`](/docs/kcl/types/number) | The yaw angle in degrees. Must be between -360 and 360. Default is 0 if not given. | No | -| `axis` | [`[number]`](/docs/kcl/types/number) | The axis to rotate around. Must be used with `angle`. | No | -| `angle` | [`number`](/docs/kcl/types/number) | The angle to rotate in degrees. Must be used with `axis`. Must be between -360 and 360. | No | -| `global` | [`bool`](/docs/kcl/types/bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No | +| `objects` | [`[Solid]`](/docs/kcl/types/std-types-Solid) or [`[Sketch]`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) | The solid, sketch, or set of solids or sketches to rotate. | Yes | +| `roll` | [`number`](/docs/kcl/types/std-types-number) | The roll angle in degrees. Must be between -360 and 360. Default is 0 if not given. | No | +| `pitch` | [`number`](/docs/kcl/types/std-types-number) | The pitch angle in degrees. Must be between -360 and 360. Default is 0 if not given. | No | +| `yaw` | [`number`](/docs/kcl/types/std-types-number) | The yaw angle in degrees. Must be between -360 and 360. Default is 0 if not given. | No | +| `axis` | [`[number]`](/docs/kcl/types/std-types-number) | The axis to rotate around. Must be used with `angle`. | No | +| `angle` | [`number`](/docs/kcl/types/std-types-number) | The angle to rotate in degrees. Must be used with `axis`. Must be between -360 and 360. | No | +| `global` | [`bool`](/docs/kcl/types/std-types-bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No | ### Returns -[`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) - Data for a solid, sketch, or an imported geometry. +[`[Solid]`](/docs/kcl/types/std-types-Solid) or [`[Sketch]`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) - Data for a solid, sketch, or an imported geometry. ### Examples diff --git a/docs/kcl/scale.md b/docs/kcl/scale.md index 70671ef43..f4cce07b8 100644 --- a/docs/kcl/scale.md +++ b/docs/kcl/scale.md @@ -16,12 +16,12 @@ If you want to apply the transform in global space, set `global` to `true`. The ```kcl scale( - objects: [[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry), - x?: [number](/docs/kcl/types/number), - y?: [number](/docs/kcl/types/number), - z?: [number](/docs/kcl/types/number), - global?: [bool](/docs/kcl/types/bool), -): [[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry) + objects: [[Solid]](/docs/kcl/types/std-types-Solid) | [[Sketch]](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry), + x?: [number](/docs/kcl/types/std-types-number), + y?: [number](/docs/kcl/types/std-types-number), + z?: [number](/docs/kcl/types/std-types-number), + global?: [bool](/docs/kcl/types/std-types-bool), +): [[Solid]](/docs/kcl/types/std-types-Solid) | [[Sketch]](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry) ``` @@ -29,15 +29,15 @@ scale( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `objects` | [`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) | The solid, sketch, or set of solids or sketches to scale. | Yes | -| `x` | [`number`](/docs/kcl/types/number) | The scale factor for the x axis. Default is 1 if not provided. | No | -| `y` | [`number`](/docs/kcl/types/number) | The scale factor for the y axis. Default is 1 if not provided. | No | -| `z` | [`number`](/docs/kcl/types/number) | The scale factor for the z axis. Default is 1 if not provided. | No | -| `global` | [`bool`](/docs/kcl/types/bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No | +| `objects` | [`[Solid]`](/docs/kcl/types/std-types-Solid) or [`[Sketch]`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) | The solid, sketch, or set of solids or sketches to scale. | Yes | +| `x` | [`number`](/docs/kcl/types/std-types-number) | The scale factor for the x axis. Default is 1 if not provided. | No | +| `y` | [`number`](/docs/kcl/types/std-types-number) | The scale factor for the y axis. Default is 1 if not provided. | No | +| `z` | [`number`](/docs/kcl/types/std-types-number) | The scale factor for the z axis. Default is 1 if not provided. | No | +| `global` | [`bool`](/docs/kcl/types/std-types-bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No | ### Returns -[`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) - Data for a solid, sketch, or an imported geometry. +[`[Solid]`](/docs/kcl/types/std-types-Solid) or [`[Sketch]`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) - Data for a solid, sketch, or an imported geometry. ### Examples diff --git a/docs/kcl/segAng.md b/docs/kcl/segAng.md index c70a1a886..c98e541b1 100644 --- a/docs/kcl/segAng.md +++ b/docs/kcl/segAng.md @@ -9,7 +9,7 @@ Compute the angle (in degrees) of the provided line segment. ```kcl -segAng(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl/types/number) +segAng(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ segAng(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/segEnd.md b/docs/kcl/segEnd.md index f4c396042..bf823c756 100644 --- a/docs/kcl/segEnd.md +++ b/docs/kcl/segEnd.md @@ -9,7 +9,7 @@ Compute the ending point of the provided line segment. ```kcl -segEnd(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)) +segEnd(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [Point2d](/docs/kcl/types/std-types-Point2d) ``` @@ -17,11 +17,11 @@ segEnd(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [[[number](/docs/k | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`[number]`](/docs/kcl/types/number) +[`Point2d`](/docs/kcl/types/std-types-Point2d) ### Examples diff --git a/docs/kcl/segEndX.md b/docs/kcl/segEndX.md index 8ae1ed0a4..95a5d7cf0 100644 --- a/docs/kcl/segEndX.md +++ b/docs/kcl/segEndX.md @@ -9,7 +9,7 @@ Compute the ending point of the provided line segment along the 'x' axis. ```kcl -segEndX(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl/types/number) +segEndX(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ segEndX(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kc | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/segEndY.md b/docs/kcl/segEndY.md index d02209c00..76e42c185 100644 --- a/docs/kcl/segEndY.md +++ b/docs/kcl/segEndY.md @@ -9,7 +9,7 @@ Compute the ending point of the provided line segment along the 'y' axis. ```kcl -segEndY(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl/types/number) +segEndY(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ segEndY(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kc | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/segLen.md b/docs/kcl/segLen.md index fc3736075..abc7d5e73 100644 --- a/docs/kcl/segLen.md +++ b/docs/kcl/segLen.md @@ -9,7 +9,7 @@ Compute the length of the provided line segment. ```kcl -segLen(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl/types/number) +segLen(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ segLen(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/segStart.md b/docs/kcl/segStart.md index f981f7c2c..5d284f324 100644 --- a/docs/kcl/segStart.md +++ b/docs/kcl/segStart.md @@ -9,7 +9,7 @@ Compute the starting point of the provided line segment. ```kcl -segStart(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)) +segStart(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [Point2d](/docs/kcl/types/std-types-Point2d) ``` @@ -17,11 +17,11 @@ segStart(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [[[number](/docs | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`[number]`](/docs/kcl/types/number) +[`Point2d`](/docs/kcl/types/std-types-Point2d) ### Examples diff --git a/docs/kcl/segStartX.md b/docs/kcl/segStartX.md index 15373381a..c9ac34019 100644 --- a/docs/kcl/segStartX.md +++ b/docs/kcl/segStartX.md @@ -9,7 +9,7 @@ Compute the starting point of the provided line segment along the 'x' axis. ```kcl -segStartX(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl/types/number) +segStartX(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ segStartX(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/ | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/segStartY.md b/docs/kcl/segStartY.md index 579eec013..dc78c0a80 100644 --- a/docs/kcl/segStartY.md +++ b/docs/kcl/segStartY.md @@ -9,7 +9,7 @@ Compute the starting point of the provided line segment along the 'y' axis. ```kcl -segStartY(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl/types/number) +segStartY(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ segStartY(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/ | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/settings/project.md b/docs/kcl/settings-project.md similarity index 100% rename from docs/kcl/settings/project.md rename to docs/kcl/settings-project.md diff --git a/docs/kcl/settings/user.md b/docs/kcl/settings-user.md similarity index 100% rename from docs/kcl/settings/user.md rename to docs/kcl/settings-user.md diff --git a/docs/kcl/settings.md b/docs/kcl/settings.md index 4aaaeb783..fef877621 100644 --- a/docs/kcl/settings.md +++ b/docs/kcl/settings.md @@ -8,16 +8,16 @@ layout: manual There are three levels of settings available in Zoo Design Studio: -1. [User Settings](/docs/kcl/settings/user): Global settings that apply to all projects, stored in `user.toml` -2. [Project Settings](/docs/kcl/settings/project): Settings specific to a project, stored in `project.toml` +1. [User Settings](/docs/kcl/settings-user): Global settings that apply to all projects, stored in `user.toml` +2. [Project Settings](/docs/kcl/settings-project): Settings specific to a project, stored in `project.toml` 3. Per-file Settings: Settings that apply to a single KCL file, specified using the `@settings` attribute ## Configuration Files Zoo Design Studio uses TOML files for configuration: -* **User Settings**: `user.toml` - See [complete documentation](/docs/kcl/settings/user) -* **Project Settings**: `project.toml` - See [complete documentation](/docs/kcl/settings/project) +* **User Settings**: `user.toml` - See [complete documentation](/docs/kcl/settings-user) +* **Project Settings**: `project.toml` - See [complete documentation](/docs/kcl/settings-project) ## Per-file settings @@ -25,7 +25,7 @@ Settings which affect a single file are configured using the settings attribute. This must be at the top of the KCL file (comments before the attribute are permitted). For example: -```js +```kcl // The settings attribute. @settings(defaultLengthUnit = in) diff --git a/docs/kcl/startProfile.md b/docs/kcl/startProfile.md index fbf1aa4f4..34990b8c5 100644 --- a/docs/kcl/startProfile.md +++ b/docs/kcl/startProfile.md @@ -10,10 +10,10 @@ Start a new profile at a given point. ```kcl startProfile( - sketchSurface: [[Sketch](/docs/kcl/types/Sketch)Surface](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)Surface), - at: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketchSurface: [Plane](/docs/kcl/types/std-types-Plane) | [Face](/docs/kcl/types/std-types-Face), + at: [Point2d](/docs/kcl/types/std-types-Point2d), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -21,13 +21,13 @@ startProfile( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketchSurface` | [`SketchSurface`](/docs/kcl/types/SketchSurface) | What to start the profile on | Yes | -| `at` | [`[number]`](/docs/kcl/types/number) | Where to start the profile. An absolute point. | Yes | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Tag this first starting point | No | +| `sketchSurface` | [`Plane`](/docs/kcl/types/std-types-Plane) or [`Face`](/docs/kcl/types/std-types-Face) | What to start the profile on | Yes | +| `at` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | Where to start the profile. An absolute point. | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Tag this first starting point | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/startSketchOn.md b/docs/kcl/startSketchOn.md index caf341b63..57068de97 100644 --- a/docs/kcl/startSketchOn.md +++ b/docs/kcl/startSketchOn.md @@ -17,10 +17,10 @@ This is important to understand because if you were to then sketch on the result The point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids. ```kcl -start[Sketch](/docs/kcl/types/Sketch)On( - planeOr[Solid](/docs/kcl/types/Solid): [[Sketch](/docs/kcl/types/Sketch)Data](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)Data), - face?: [[Face](/docs/kcl/types/Face)Tag](/docs/kcl/types/[Face](/docs/kcl/types/Face)Tag), -): [[Sketch](/docs/kcl/types/Sketch)Surface](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)Surface) +startSketchOn( + planeOrSolid: [Plane](/docs/kcl/types/std-types-Plane) | [Solid](/docs/kcl/types/std-types-Solid), + face?: [TagIdentifier](/docs/kcl/types#TagIdentifier) | [Start](/docs/kcl/types#Start) | [End](/docs/kcl/types#End), +): [Plane](/docs/kcl/types/std-types-Plane) | [Face](/docs/kcl/types/std-types-Face) ``` @@ -28,12 +28,12 @@ start[Sketch](/docs/kcl/types/Sketch)On( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `planeOrSolid` | [`SketchData`](/docs/kcl/types/SketchData) | The plane or solid to sketch on | Yes | -| `face` | [`FaceTag`](/docs/kcl/types/FaceTag) | Identify a face of a solid if a solid is specified as the input argument (`plane_or_solid`) | No | +| `planeOrSolid` | [`Plane`](/docs/kcl/types/std-types-Plane) or [`Solid`](/docs/kcl/types/std-types-Solid) | The plane or solid to sketch on | Yes | +| `face` | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) or [`Start`](/docs/kcl/types#Start) or [`End`](/docs/kcl/types#End) | Identify a face of a solid if a solid is specified as the input argument (`plane_or_solid`) | No | ### Returns -[`SketchSurface`](/docs/kcl/types/SketchSurface) - A sketch type. +[`Plane`](/docs/kcl/types/std-types-Plane) or [`Face`](/docs/kcl/types/std-types-Face) - A sketch type. ### Examples diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 79f357358..5e18cb76f 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -26035,7 +26035,7 @@ }, { "name": "color", - "type": "String", + "type": "string", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "String", @@ -39018,7 +39018,7 @@ }, { "name": "interiorAbsolute", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_Array_size_2_of_TyF64", @@ -40627,7 +40627,7 @@ }, { "name": "endAbsolute", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_Array_size_2_of_TyF64", @@ -45676,7 +45676,7 @@ }, { "name": "error", - "type": "String", + "type": "string", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_String", @@ -45734,7 +45734,7 @@ }, { "name": "error", - "type": "String", + "type": "string", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_String", @@ -47438,7 +47438,7 @@ }, { "name": "control1", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -49047,7 +49047,7 @@ }, { "name": "control2", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -50656,7 +50656,7 @@ }, { "name": "end", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -57163,7 +57163,7 @@ }, { "name": "p1", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -58772,7 +58772,7 @@ }, { "name": "p2", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -60381,7 +60381,7 @@ }, { "name": "p3", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -106721,7 +106721,7 @@ }, { "name": "endAbsolute", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_Array_size_2_of_TyF64", @@ -108330,7 +108330,7 @@ }, { "name": "end", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_Array_size_2_of_TyF64", @@ -114833,7 +114833,7 @@ }, { "name": "vDegree", - "type": "NonZeroU32", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "NonZeroU32", @@ -118043,7 +118043,7 @@ }, { "name": "baseCurveIndex", - "type": "integer", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_uint32", @@ -135234,7 +135234,7 @@ }, { "name": "instances", - "type": "integer", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "uint32", @@ -136840,7 +136840,7 @@ }, { "name": "center", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -146489,7 +146489,7 @@ }, { "name": "instances", - "type": "integer", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "uint32", @@ -149705,7 +149705,7 @@ }, { "name": "center", - "type": "[number]", + "type": "Point3d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_3_of_TyF64", @@ -159354,7 +159354,7 @@ }, { "name": "instances", - "type": "integer", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "uint32", @@ -162565,7 +162565,7 @@ }, { "name": "axis", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -169005,7 +169005,7 @@ }, { "name": "instances", - "type": "integer", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "uint32", @@ -172216,7 +172216,7 @@ }, { "name": "axis", - "type": "[number]", + "type": "Point3d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_3_of_TyF64", @@ -178658,7 +178658,7 @@ }, { "name": "instances", - "type": "integer", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "uint32", @@ -186704,7 +186704,7 @@ }, { "name": "instances", - "type": "integer", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "uint32", @@ -197961,7 +197961,7 @@ }, { "name": "center", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -255081,7 +255081,7 @@ ], "returnValue": { "name": "", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -255283,7 +255283,7 @@ ], "returnValue": { "name": "", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -257147,7 +257147,7 @@ }, { "name": "at", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Array_size_2_of_TyF64", @@ -291976,7 +291976,7 @@ }, { "name": "endAbsolute", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_Array_size_2_of_TyF64", @@ -293585,7 +293585,7 @@ }, { "name": "end", - "type": "[number]", + "type": "Point2d", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "Nullable_Array_size_2_of_TyF64", diff --git a/docs/kcl/subtract.md b/docs/kcl/subtract.md index aa1125b3a..e2da38579 100644 --- a/docs/kcl/subtract.md +++ b/docs/kcl/subtract.md @@ -10,10 +10,10 @@ Performs a boolean subtraction operation, removing the volume of one or more too ```kcl subtract( - solids: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)), - tools: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)), - tolerance?: [number](/docs/kcl/types/number), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + solids: [[Solid]](/docs/kcl/types/std-types-Solid), + tools: [[Solid]](/docs/kcl/types/std-types-Solid), + tolerance?: [number](/docs/kcl/types/std-types-number), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -21,13 +21,13 @@ subtract( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | The solids to use as the base to subtract from. | Yes | -| `tools` | [`[Solid]`](/docs/kcl/types/Solid) | The solids to subtract. | Yes | -| `tolerance` | [`number`](/docs/kcl/types/number) | The tolerance to use for the subtraction operation. | No | +| `solids` | [`[Solid]`](/docs/kcl/types/std-types-Solid) | The solids to use as the base to subtract from. | Yes | +| `tools` | [`[Solid]`](/docs/kcl/types/std-types-Solid) | The solids to subtract. | Yes | +| `tolerance` | [`number`](/docs/kcl/types/std-types-number) | The tolerance to use for the subtraction operation. | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/subtract2d.md b/docs/kcl/subtract2d.md index 50d014889..57e78dd72 100644 --- a/docs/kcl/subtract2d.md +++ b/docs/kcl/subtract2d.md @@ -10,9 +10,9 @@ Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch. ```kcl subtract2d( - sketch: [Sketch](/docs/kcl/types/Sketch), - tool: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + tool: [[Sketch]](/docs/kcl/types/std-types-Sketch), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -20,12 +20,12 @@ subtract2d( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `tool` | [`[Sketch]`](/docs/kcl/types/Sketch) | The shape(s) which should be cut out of the sketch. | Yes | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `tool` | [`[Sketch]`](/docs/kcl/types/std-types-Sketch) | The shape(s) which should be cut out of the sketch. | Yes | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/sweep.md b/docs/kcl/sweep.md index 701e986c9..807a0d974 100644 --- a/docs/kcl/sweep.md +++ b/docs/kcl/sweep.md @@ -12,13 +12,13 @@ You can provide more than one sketch to sweep, and they will all be swept along ```kcl sweep( - sketches: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)), - path: Sweep[Path](/docs/kcl/types/Path), - sectional?: [bool](/docs/kcl/types/bool), - tolerance?: [number](/docs/kcl/types/number), - tagStart?: [TagDeclarator](/docs/kcl/types#tag-declaration), - tagEnd?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + sketches: [[Sketch]](/docs/kcl/types/std-types-Sketch), + path: [Sketch](/docs/kcl/types/std-types-Sketch) | [Helix](/docs/kcl/types/std-types-Helix), + sectional?: [bool](/docs/kcl/types/std-types-bool), + tolerance?: [number](/docs/kcl/types/std-types-number), + tagStart?: [TagDeclarator](/docs/kcl/types#TagDeclarator), + tagEnd?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -26,16 +26,16 @@ sweep( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | The sketch or set of sketches that should be swept in space | Yes | -| `path` | [`SweepPath`](/docs/kcl/types/SweepPath) | The path to sweep the sketch along | Yes | -| `sectional` | [`bool`](/docs/kcl/types/bool) | If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. | No | -| `tolerance` | [`number`](/docs/kcl/types/number) | Tolerance for this operation | No | -| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the sweep, i.e. the original sketch | No | -| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the sweep | No | +| `sketches` | [`[Sketch]`](/docs/kcl/types/std-types-Sketch) | The sketch or set of sketches that should be swept in space | Yes | +| `path` | [`Sketch`](/docs/kcl/types/std-types-Sketch) or [`Helix`](/docs/kcl/types/std-types-Helix) | The path to sweep the sketch along | Yes | +| `sectional` | [`bool`](/docs/kcl/types/std-types-bool) | If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. | No | +| `tolerance` | [`number`](/docs/kcl/types/std-types-number) | Tolerance for this operation | No | +| `tagStart` | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | A named tag for the face at the start of the sweep, i.e. the original sketch | No | +| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | A named tag for the face at the end of the sweep | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/tangentToEnd.md b/docs/kcl/tangentToEnd.md index f480ea1e4..c45bd7eb1 100644 --- a/docs/kcl/tangentToEnd.md +++ b/docs/kcl/tangentToEnd.md @@ -9,7 +9,7 @@ Returns the angle coming out of the end of the segment in degrees. ```kcl -tangentToEnd(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/docs/kcl/types/number) +tangentToEnd(tag: [TagIdentifier](/docs/kcl/types#TagIdentifier)): [number](/docs/kcl/types/std-types-number) ``` @@ -17,11 +17,11 @@ tangentToEnd(tag: [TagIdentifier](/docs/kcl/types#tag-identifier)): [number](/do | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagIdentifier`](/docs/kcl/types#TagIdentifier) | The line segment being queried by its tag | Yes | ### Returns -[`number`](/docs/kcl/types/number) +[`number`](/docs/kcl/types/std-types-number) ### Examples diff --git a/docs/kcl/tangentialArc.md b/docs/kcl/tangentialArc.md index 7e36393ed..cbb12f1dc 100644 --- a/docs/kcl/tangentialArc.md +++ b/docs/kcl/tangentialArc.md @@ -10,13 +10,13 @@ When using radius and angle, draw a curved line segment along part of an imagina ```kcl tangentialArc( - sketch: [Sketch](/docs/kcl/types/Sketch), - endAbsolute?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - end?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)), - radius?: [number](/docs/kcl/types/number), - angle?: [number](/docs/kcl/types/number), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + endAbsolute?: [Point2d](/docs/kcl/types/std-types-Point2d), + end?: [Point2d](/docs/kcl/types/std-types-Point2d), + radius?: [number](/docs/kcl/types/std-types-number), + angle?: [number](/docs/kcl/types/std-types-number), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -24,16 +24,16 @@ tangentialArc( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `endAbsolute` | [`[number]`](/docs/kcl/types/number) | Which absolute point should this arc go to? Incompatible with `end`, `radius`, and `offset`. | No | -| `end` | [`[number]`](/docs/kcl/types/number) | How far away (along the X and Y axes) should this arc go? Incompatible with `endAbsolute`, `radius`, and `offset`. | No | -| `radius` | [`number`](/docs/kcl/types/number) | Radius of the imaginary circle. `angle` must be given. Incompatible with `end` and `endAbsolute`. | No | -| `angle` | [`number`](/docs/kcl/types/number) | Offset of the arc in degrees. `radius` must be given. Incompatible with `end` and `endAbsolute`. | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this arc | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `endAbsolute` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | Which absolute point should this arc go to? Incompatible with `end`, `radius`, and `offset`. | No | +| `end` | [`Point2d`](/docs/kcl/types/std-types-Point2d) | How far away (along the X and Y axes) should this arc go? Incompatible with `endAbsolute`, `radius`, and `offset`. | No | +| `radius` | [`number`](/docs/kcl/types/std-types-number) | Radius of the imaginary circle. `angle` must be given. Incompatible with `end` and `endAbsolute`. | No | +| `angle` | [`number`](/docs/kcl/types/std-types-number) | Offset of the arc in degrees. `radius` must be given. Incompatible with `end` and `endAbsolute`. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this arc | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/tau.md b/docs/kcl/tau.md deleted file mode 100644 index 60a25f16d..000000000 --- a/docs/kcl/tau.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "tau" -excerpt: "Return the value of `tau`. The full circle constant (τ). Equal to 2π." -layout: manual ---- - -**WARNING:** This function is deprecated. - -Return the value of `tau`. The full circle constant (τ). Equal to 2π. - -**DEPRECATED** use the constant TAU - -```js -tau(): number -``` - -### Tags - -* `math` - - - -### Returns - -[`number`](/docs/kcl/types/number) - - -### Examples - -```js -exampleSketch = startSketchOn(XZ) - |> startProfile(at = [0, 0]) - |> angledLine(angle = 50, length = 10 * tau()) - |> yLine(endAbsolute = 0) - |> close() - -example = extrude(exampleSketch, length = 5) -``` - -![Rendered example of tau 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD0XUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+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/V9F5aqrrrrqqquuuuqqq6666v+oF3uxF3vtF3uxF3uta6655sFf//Vf/z5cddVVV1111f8/6EEPehBXXXXVVVddddVVV1111VX/11xzzTUP/qZv+qan80z33XffrR/yIR/yEK666qqrrrrq/xeCq6666qqrrrrqqquuuuqq/2OuueaaB3/TN33T05/+9KfzlV/5lezu7nLNNdc8+Ju+6ZuezlVXXXXVVVf9/0Jw1VVXXXXVVVddddVVV131f8g111zz4A//8A//rqc//el813d9F7u7u3znd34nu7u7XHPNNQ/+pm/6pqdz1VVXXXXVVf9/EFx11VVXXXXVVVddddVVV/0f8uEf/uHftbGx8drf9V3fxf12d3f5ru/6LnZ3d7nmmmse/E3f9E1P56qrrrrqqqv+fyC46qqrrrrqqquuuuqqq676P+JzP/dzf+vGG2987e/6ru/igSSxu7vLd33Xd7G7u8s111zz4G/6pm96OlddddVVV131fx/BVVddddVVV1111VVXXXXV/wGf+7mf+1s33njja3/lV34l95OEJO63u7vLd3/3d7O7u8s111zz4G/6pm96OlddddVVV131fxvBVVddddVVV1111VVXXXXV/3Kf+7mf+1s33njja//kT/4k95PEc5PE7u4u3/3d383u7i7XXHPNg7/pm77p6Vx11VVXXXXV/10EV1111VVXXXXVVVddddVV/4t9+Id/+He92Iu92Gv/5E/+JLfeeisAknhukrjf7u4u3/M938Pu7i7XXHPNg7/pm77p6Vx11VVXXXXV/00EV1111VVXXXXVVVddddVV/0u9zuu8znu/zuu8znt/53d+J7feeisAknggSUjigSSxu7vL93zP97C7u8s111zz4G/6pm96OlddddVVV131fw/BVVddddVVV1111VVXXXXV/0Iv9mIv9tof/uEf/l3f+Z3fya233gqAJB5IEs9NEvfb3d3le77ne7jfNddc82Cuuuqqq6666v8Wgquuuuqqq6666qqrrrrqqv9lXuzFXuy1P/dzP/e3vvM7v5Nbb70VSUjigSTx3CTxQJJ47dd+bQCuueaaB7/2a7/2e3HVVVddddVV/7dQueqqq6666qqrrrrqqquu+l/kxV7sxV77cz/3c3/rp37qp7j11luRxHOTxANJ4rlJ4rVe67V4qZd6Ke539uzZZ3DVVVddddVV/7cQXHXVVVddddVVV1111VVX/S/xYi/2Yq/9uZ/7ub/1W7/1W/zVX/0VknggSUjigSTx3CTxUi/1UrzWa70WAEdHR1x11VVXXXXV/1EEV1111VVXXXXVVVddddVV/wtcc801D/7cz/3c3/qrv/orfuu3fgtJPJAknpsknpskHvSgB/FWb/VWAPzBH/wB9/uHf/iH3+aqq6666qqr/m+hctVVV1111VVXXXXVVVdd9T/cNddc8+DP+ZzP+a2nP/3p/NRP/RSSeCBJPDdJPJAkAB70oAfxXu/1XgD81V/9FefPn+eqq6666qqr/g+jctVVV1111VVXXXXVVVdd9T/ch3/4h3/X4eHhg7/7u78bSTyQJB5IEs9NEgAPetCDeK/3ei8AnvjEJ3L77bdjm42NDQDuu+++W7nqqquuuuqq/1uoXHXVVVddddVVV1111VVX/Q/2uZ/7ub+1sbHx2t/93d/Nc5PEA0niuUkC4EEPehDv9V7vBcDtt9/OE5/4RGxz1VVXXXXVVf/HEVx11VVXXXXVVVddddVVV/0P9bmf+7m/deONN772d3/3d/NAkpDEA0niuUkC4Pjx47zXe70XAOfOneOv/uqvsA3AxsYGAPfdd9+tXHXVVVddddX/PVSuuuqqq6666qqrrrrqqqv+B/rcz/3c37rxxhtf+6u+6qt4IEk8N0k8kCTud/z4cT7yIz8SgHPnzvGHf/iH2OZ+p0+fBuDs2bO3ctVVV1111VX/91C56qqrrrrqqquuuuqqq676H+bDP/zDv+vGG2987Z/6qZ/igSTxQJJ4bpK43/Hjx3nLt3xLAM6dO8cf/uEfYpsHsg3AfffddytXXXXVVVdd9X8PwVVXXXXVVVddddVVV1111f8g7/iO7/hZr/M6r/PeP/VTP8Wtt97K/STxQJJ4bpJ4oLd8y7fkwQ9+MOfOneMP//APsc0D2WZjYwOA++6771auuuqqq6666v8eKlddddVVV1111VVXXXXVVf9DvM7rvM57v9M7vdNnf9d3fRe33norAJJ4bpJ4IEk8t/d6r/fiQQ96EEdHR/zhH/4htnkg2wBsbGwAcPbs2Wdw1VVXXXXVVf/3ULnqqquuuuqqq6666qqrrvof4MVe7MVe+8M//MO/67u+67u49dZbAZDEc5PEA0niub3Xe70XD3rQgzg6OuLXf/3Xsc0D2eaqq6666qqr/p+gctVVV1111VVXXXXVVVdd9d/sxV7sxV77cz/3c3/rp37qp7j11lsBkMQDSeK5SeK5vdd7vRcPetCDODo64q/+6q+wzQPZ5oE2NjYAuO+++27lqquuuuqqq/7voXLVVVddddVVV1111VVXXfXf6MVe7MVe+3M/93N/67d+67f467/+awAk8UCSeG6SeCBJvOVbviUPetCDAPirv/orzp07xwPZ5rltbGwAcPbs2Vu56qqrrrrqqv97qFx11VVXXXXVVVddddVVV/03ueaaax78uZ/7ub/113/91/z2b/82AJJ4IEk8N0k8kCTe8i3fkpd6qZcC4A/+4A84d+4cD2Sb52abjY0Nrrrqqquuuur/MCpXXXXVVVddddVVV1111VX/Da655poHf9M3fdPTb731Vn7qp34KAEk8kCQeSBLPTRIv9VIvxUu91EsB8Ad/8AecO3eOB7LNc7PNA9133323ctVVV1111VX/91C56qqrrrrqqquuuuqqq676L3bNNdc8+MM//MO/69Zbb+W7vuu7kMRzk8QDSeK5SeJBD3oQb/mWbwnAH/zBH3Du3DkeyDbPzTYAGxsbANx33323ctVVV1111VX/N1G56qqrrrrqqquuuuqqq676L/bhH/7h37W5ufna3/Vd34UkHkgSz00SDyQJgAc96EG853u+JwB/9Vd/xblz5/iX2OZ+GxsbAJw9e/ZWrrrqqquuuur/JoKrrrrqqquuuuqqq6666qr/Qp/7uZ/7WzfeeONrf9d3fReSeCBJPDdJPJAkAB70oAfxnu/5ngA88YlP5LbbbuOBbGObB7LNA21sbABw33333cpVV1111VVX/d9E5aqrrrrqqquuuuqqq6666r/I537u5/7WjTfe+Npf9VVfhSQeSBIPJInnJgmABz3oQbzne74nALfffjtPeMITeCDbPDfbPJBtrrrqqquuuur/ASpXXXXVVVddddVVV1111VX/BT73cz/3t2688cbX/qmf+ikk8UCSeCBJPDdJABw/fpz3fM/3BODcuXP85V/+JQ9km+dmmweyDcDGxgYA9913361cddVVV1111f9NBFddddVVV1111VVXXXXVVf/JPvzDP/y7XuzFXuy1f/qnf5pnPOMZPJAkHkgSDyQJSQAcP36cj/iIjwDg3Llz/MEf/AEPZJvnZpsHss39NjY2ADh79uwzuOqqq6666qr/m6hcddVVV1111VVXXXXVVVf9J3rHd3zHz3qd13md9/7u7/5ubr31Vu4niecmiQeSxP2OHz/OW77lWwJw7tw5/uAP/oAHss1zs80D2eaqq6666qqr/p+hctVVV1111VVXXXXVVVdd9Z/kxV7sxV77nd7pnT77u7/7u7n11lu5nySemyQeSBIP9JZv+ZY86EEP4ty5c/zBH/wBD2Sb52abB7LNcztz5gwA//AP//DbXHXVVVddddX/TVSuuuqqq6666qqrrrrqqqv+E7zYi73Ya3/u537ub333d383t956K/eTxANJ4rlJ4oHe8z3fkwc96EEcHR3xB3/wBzyQbZ6bbR7INs/NNlddddVVV131/wCVq6666qqrrrrqqquuuuqq/2Av9mIv9tqf+7mf+1s//dM/za233sr9JPFAknhuknig93zP9+RBD3oQR0dH/Nqv/RoPZJvnZpsHss1zsw3AxsYGAPfdd9+tXHXVVVddddX/TVSuuuqqq6666qqrrrrqqqv+A73Yi73Ya3/u537ub/32b/82f/3Xf839JPFAknggSTy393zP9+RBD3oQR0dH/NVf/RUPZJvnZpsHss1zs81VV1111VVX/T9C5aqrrrrqqquuuuqqq6666j/INddc8+DP/dzP/a2//uu/5rd/+7e5nyQeSBIPJInn9p7v+Z486EEPAuCv/uqvOHfuHPezzXOzzQPZ5rnZ5n5nzpwB4B/+4R9+m6uuuuqqq676v4vKVVddddVVV1111VVXXXXVf4BrrrnmwZ/zOZ/zW7feeis//dM/DYAknpskHkgSDySJt3iLt+BBD3oQAH/wB3/AuXPnuJ9tnpttHsg2z802D7RYLAC47777buWqq6666qqr/u+ictVVV1111VVXXXXVVVdd9e90zTXXPPjDP/zDv+vo6OjB3/3d3w2AJB5IEs9NEg8kidd8zdfkpV7qpQD4gz/4A86dO8f9bPNAtnlutnlutnkg21x11VVXXXXV/xNUrrrqqquuuuqqq6666qqr/p0+/MM//Ls2Nzdf+7u/+7sBkMQDSeKBJPHcJPGSL/mSvOZrviYAf/AHf8C5c+e4n20eyDbPzTbPzTYPZBuAzc1NAO67775bueqqq6666qr/uwiuuuqqq6666qqrrrrqqqv+HT73cz/3t2688cbX/u7v/m4AJPFAknggSTw3STzoQQ/iLd/yLQH4q7/6K86dO8f9bPNAtnlutnlutnkg29xvY2MDgLNnzz6Dq6666qqrrvq/i8pVV1111VVXXXXVVVddddW/0ed+7uf+1o033vjaX/3VXw2AJB5IEg8kiQeSBMCDHvQg3uM93gOAv/qrv+K2227jfrZ5INs8N9s8N9s8kG2uuuqqq6666v8hKlddddVVV1111VVXXXXVVf8GH/7hH/5dN95442v/9E//NACSeCBJPJAkHkgSAA960IN4j/d4DwBuu+02brvtNgBs89xs89xs80C2eW62eW6bm5sA3Hfffbdy1VVXXXXVVf93EVx11VVXXXXVVVddddVVV/0rveM7vuNnvc7rvM57//RP/zTPeMYzkMT9JCGJB5LEA0kC4Pjx47zHe7wHALfddht/9Vd/BYBtnpttnpttHsg2z802z802GxsbAJw9e/ZWrrrqqquuuur/LipXXXXVVVddddVVV1111VX/Cq/zOq/z3u/0Tu/02d/93d/NM57xDB5IEg8kiecmCYDjx4/z4R/+4QCcO3eOv/qrvwLANs/NNs/NNg9km+dmm+dmG4DNzU0A7rvvvlu56qqrrrrqqv+7qFx11VVXXXXVVVddddVVV72IXuzFXuy1P/zDP/y7vvu7v5tnPOMZPJAkHkgSz00SAMePH+fd3/3dATh37hx/8Ad/AIBtnpttHsg2z802z802z802V1111VVXXfX/DJWrrrrqqquuuuqqq6666qoXwYu92Iu99ud+7uf+1nd/93fzjGc8gweSxANJ4oEkcb/jx4/zFm/xFhw/fpxz587xB3/wBwDY5rnZ5oFs89xs89xs89xsc7/NzU0A7rvvvlu56qqrrrrqqv/bqFx11VVXXXXVVVddddVVV/0LXuzFXuy1P/dzP/e3fvqnf5pnPOMZPJAkHkgSDySJB3qLt3gLHvSgB3F0dMQf/MEfAGCbB7LNc7PNc7PNc7PNc7PNA21sbABw9uzZW7nqqquuuuqq/9uoXHXVVVddddVVV1111VVXvRDXXHPNgz/3cz/3t/76r/+av/mbv+GBJPFAknggSTzQe7zHe/CgBz2Io6Mjfu3Xfg3bPDfbPDfbPDfbPDfbPDfbPLeNjQ0A7rvvvlu56qqrrrrqqv/bqFx11VVXXXXVVVddddVVV70A11xzzYO/6Zu+6em33norP/MzP8MDSeKBJPFAknig93iP9+BBD3oQR0dH/NVf/RW2eW62eW62eW62eW62eW62eW62ueqqq6666qr/R6hcddVVV1111VVXXXXVVVc9H9dcc82DP/zDP/y7br31Vr7ne76H+0nigSTx3CTxQO/xHu/Bgx70IAD+6q/+irNnz/LcbPPcbPPcbPPcbPPcbPPcbAOwubkJwH333XcrV1111VVXXfV/G5Wrrrrqqquuuuqqq6666qrn48M//MO/a3Nz87W/53u+h/tJ4oEk8UCSeG5v+ZZvyYMe9CAA/uAP/oCzZ8/y3Gzz3GzzQLZ5brZ5brZ5brZ5oM3NTQDOnj37DK666qqrrrrq/zYqV1111VVXXXXVVVddddVVz+VzP/dzf2tzc/O1v+d7vof7SeKBJPFAknhur/mar8lLvuRLAvD7v//7nDt3jgeyzXOzzXOzzXOzzXOzzXOzzXPb2NgA4L777ruVq6666qqrrvq/jeCqq6666qqrrrrqqquuuuoBPvdzP/e3brzxxtf+nu/5Hu4niQeSxANJ4rm91Eu9FK/5mq8JwO///u9z7tw5Hsg2z802z802z802z802z802z802m5ubAJw9e/ZWrrrqqquuuur/NipXXXXVVVddddVVV1111VXP9Lmf+7m/deONN77293zP93A/STyQJB5IEg8kiQc96EG8xVu8BQC///u/z7lz53gg2zw32zw32zw32zw32zw32zw321x11VVXXXXV/zMEV1111VVXXXXVVVddddVVwId/+Id/14u92Iu99s/8zM+wu7sLgCQeSBIPJIkHksSDHvQg3v3d3x2Av/zLv+TcuXM8kG2em22em22em22em22em22em23ut7m5CcB99913K1ddddVVV131fxuVq6666qqrrrrqqquuuur/vXd8x3f8rNd5ndd57+/5nu/h1ltvBUAS95PEA0niuUniQQ96EO/+7u8OwBOe8ARuu+027meb52ab58c2z802z802z802z80299vc3ATgvvvuu5Wrrrrqqquu+r+PylVXXXXVVVddddVVV131/9rrvM7rvPc7vdM7ffb3fM/3cOuttyKJB5LEA0niuUniQQ96EO/+7u8OwG233cYTnvAE7meb52ab52ab52ab58c2z802z802D7S5uQnA2bNnb+Wqq6666qqr/u+jctVVV1111VVXXXXVVVf9v/ViL/Zir/3hH/7h3/U93/M93HrrrUjigSTxQJJ4bpI4duwY7/7u7w7AuXPn+Mu//EvuZ5vnZpvnZpvnZpvnZpvnxzbPzTbPbWNjA4D77rvvVq666qqrrrrq/z4qV1111VVXXXXVVVddddX/Sy/2Yi/22p/7uZ/7Wz/zMz/DrbfeiiQeSBIPJIkHkgTAsWPHeI/3eA8Azp07x+///u9zP9s8N9s8N9s8N9s8N9s8P7Z5brZ5bra56qqrrrrqqv9nqFx11VVXXXXVVVddddVV/++82Iu92Gt/7ud+7m/99m//Nn/913+NJB5IEg8kiQeSBMCxY8d4i7d4C44dO8a5c+f4/d//fQBs89xs8/zY5rnZ5rnZ5rnZ5vmxzXOzDcDm5iYA9913361cddVVV1111f99VK666qqrrrrqqquuuuqq/1euueaaB3/u537ub/31X/81v/M7v4MkHkgSDySJB5LE/d7iLd6CBz3oQRwdHfH7v//7ANjmudnmudnm+bHNc7PNc7PNc7PN82Ob+21ubgJw9uzZZ3DVVVddddVV//dRueqqq6666qqrrrrqqqv+37jmmmse/E3f9E1Pv/XWW/mZn/kZJPFAknggSTyQJO737u/+7jzoQQ/i6OiIX/3VXwXANs/NNs/NNs/NNs+PbZ6bbZ6bbZ4f21x11VVXXXXV/2NUrrrqqquuuuqqq6666qr/F6655poHf/iHf/h33XrrrXzP93wPkrifJB5IEs9NEvd793d/dx70oAdxdHTE7//+72Ob58c2z802z802z802z49tnpttnh/bPLdrrrkGgPvuu+9Wrrrqqquuuur/PipXXXXVVVddddVVV1111f8LH/7hH/5dm5ubr/093/M9SOJ+knggSTyQJB7o3d/93XnQgx7E0dERf/mXf8nh4SHPzTbPj22em22em22eH9s8N9s8N9s8P7a539mzZ2/lqquuuuqqq/7vI7jqqquuuuqqq6666qqr/s/73M/93N+68cYbX/t7v/d7kcT9JPFAknggSTzQW7zFW/CgBz0IgL/8y7/k7NmzPDfbPDfb2Oa52ea52ea52cY2z802z802z49tADY3NwG47777buWqq6666qqr/u+jctVVV1111VVXXXXVVVf9n/a5n/u5v3XjjTe+9td+7dfyQJJ4IEk8kCQe6DVf8zV5yZd8SQB+7/d+j3PnzvHcbPPcbPPcbPP82Oa52eb5sc1zs83zY5urrrrqqquu+n+KylVXXXXVVVddddVVV131f9bnfu7n/taNN9742j/zMz/DA0nigSTxQJJ4oJd6qZfiNV7jNQD4vd/7Pc6dO8cD2eb5sc1zs83zY5vnZpvnZpvnxzbPzTYPtLm5CcB99913K1ddddVVV131/wPBVVddddVVV1111VVXXfV/0od/+Id/14u92Iu99s/8zM/wjGc8g/tJ4oEk8UCSeKAHPehBvPmbvzkAv/d7v8e5c+d4INs8N9vY5rnZ5rnZxjbPzTbPzTbPj22em22e2+bmJgBnz569lauuuuqqq676/4HKVVddddVVV1111VVXXfV/zuu8zuu89+u8zuu89/d8z/fwjGc8g/tJ4oEk8UCSeKAHPehBvPu7vzsAf/EXf8G5c+d4INs8N9s8P7Z5brZ5fmzz3Gzz/Njmudnm+dnc3ATgvvvuu5Wrrrrqqquu+v+BylVXXXXVVVddddVVV131f8qLvdiLvfaHf/iHf9f3fM/38IxnPIP7SeJ+knhuknigBz3oQbz7u787AI9//OO57bbbuJ9tnh/bPDfbPD+2eW62eX5s89xs8/zY5vmxzebmJlddddVVV131/wyVq6666qqrrrrqqquuuur/jBd7sRd77c/93M/9re/5nu/hGc94BveTxP0k8UCSeCBJ3HLLLbz7u787ALfddhtPeMITuJ9tnpttnh/bPDfbPD+2eX5s89xs8/zY5vmxDcDm5iYA//AP//A7XHXVVVddddX/D1Suuuqqq6666qqrrrrqqv8TXuzFXuy1P/dzP/e3fuZnfoZnPOMZAEjigSTxQJJ4IEkcO3aMd3/3dwfg3Llz/MVf/AUAtnl+bPP82Oa52eb5sc1zs83zY5vnxzbPzTZXXXXVVVdd9f8clauuuuqqq6666qqrrrrqf70Xe7EXe+3P/dzP/a3f+Z3f4W/+5m8AkMQDSeKBJPFAkjh27Bgf9mEfBsC5c+f4vd/7PQBs8/zY5rnZ5vmxzXOzzfNjm+fHNs/NNs+PbZ7b5uYmAPfdd9+tXHXVVVddddX/D1Suuuqqq6666qqrrrrqqv/Vrrnmmgd/7ud+7m/9zd/8Db/zO78DgCQeSBIPJIkHksSxY8d48zd/cwDOnTvH7/3e72Gb58c2z49tnpttnh/bPD+2eX5s89xs8/zY5vnZ2toC4OzZs7dy1VVXXXXVVf8/ULnqqquuuuqqq6666qqr/te65pprHvw5n/M5v3XrrbfyMz/zMwBI4oEk8UCSeCBJALz5m785D3rQgzh37hy/93u/h22eH9s8N9s8P7Z5fmzz/Njmudnm+bHN82Ob58c2V1111VVXXfX/EJWrrrrqqquuuuqqq6666n+tD//wD/+uo6OjB3/v934vAJJ4IEk8kCQeSBIA7/Zu78aDHvQgjo6O+L3f+z1s89xs8/zY5vmxzfNjm+dmm+fHNs+PbZ4f2zw329xvc3MTgPvuu+9Wrrrqqquuuur/BypXXXXVVVddddVVV1111f9Kn/u5n/tbm5ubr/293/u9AEjigSTxQJK4nyTu927v9m486EEP4ujoiF/+5V/m+bHN82Ob52ab58c2z49tnh/bPD+2eW62eX5sc7/NzU0A7rvvvlu56qqrrrrqqv8/CK666qqrrrrqqquuuuqq/3U+93M/97duvPHG1/7e7/1eACTxQJK4nyQkcT9J3O/d3u3deNCDHsTR0RF//ud/znOzjW2em21s89xs8/zY5vmxzXOzjW2em21s89xs8/zY5oG2trYAOHv27K1cddVVV1111f8fVK666qqrrrrqqquuuuqq/1U+93M/97duvPHG1/7ar/1aACRxP0k8kCQeSBL3e/M3f3Me9KAHAfDnf/7nnDt3jgeyzfNjm+fHNs/NNs+PbZ4f2zw/tnl+bPP82Oa5bW5uAnDffffdylVXXXXVVVf9/0Hlqquuuuqqq6666qqrrvpf48M//MO/68Ybb3ztn/mZnwFAEveTxANJ4oEkcb/XeI3X4CVf8iUB+N3f/V3OnTvH/Wzz/Njm+bHN82Ob58c2z49tnh/bPD+2eX5s8/zY5qqrrrrqqqv+HyK46qqrrrrqqquuuuqqq/5XeMd3fMfPep3XeZ33/pmf+Rme8YxnIIn7SeKBJPFAkrjfS77kS/Iar/EaAPzu7/4u586d4362eX5s8/zY5vmxzfNjm+fHNs+PbZ4f2zw/tnl+bLO1tQXAfffddytXXXXVVVdd9f8Hlauuuuqqq6666qqrrrrqf7zXeZ3Xee93eqd3+uzv+Z7v4RnPeAaSuJ8kHkgSDySJ+91yyy28+Zu/OQC/+7u/y7lz5wCwzfNjm+fHNs+PbZ4f2zw/tnl+bPP82Ob5sc3zY5v7bW5uAnD27NlncNVVV1111VX/f1C56qqrrrrqqquuuuqqq/5He7EXe7HX/vAP//Dv+p7v+R5uu+02JHE/STyQJB5IEve75ZZbePd3f3cA/uIv/oJz584BYJvnxzbPj22eH9s8P7Z5fmzz/Njm+bHN82Ob58c2V1111VVXXXUVVK666qqrrrrqqquuuuqq/7Fe7MVe7LU/93M/97d+5md+httuu40HksQDSeKBJHG/Bz3oQbzbu70bAI9//ON5xjOegW2eH9u8ILZ5fmzz/Njm+bHN82Ob58c2z49tnh/bPLdrr70WgH/4h3/4ba666qqrrrrq/w8qV1111VVXXXXVVVddddX/SC/2Yi/22p/7uZ/7W7/zO7/D3/7t3/JAknggSdxPEg/0oAc9iHd7t3cD4BnPeAaPf/zjsc3zY5vnxzbPj22eH9s8P7Z5fmzz/NjmBbHN82Obq6666qqrrrrqWahcddVVV1111VVXXXXVVf/jXHPNNQ/+3M/93N/6m7/5G373d3+XB5LEA0nifpJ4oOPHj/Nu7/ZuAJw9e5Y///M/5/mxzQtim+fHNs+PbZ4f2zw/tnl+bPP82OYFsc3zY5utrS0A7rvvvlu56qqrrrrqqv8/qFx11VVXXXXVVVddddVV/6Ncc801D/6mb/qmp99666387M/+LA8kiQeSxP0k8UDHjx/nQz/0QwE4e/Ysv/u7v8vzY5vnxzbPj22eH9u8ILZ5fmzz/Njm+bHN82ObF8Q2V1111VVXXfX/GJWrrrrqqquuuuqqq6666n+Ma6655sEf/uEf/l233nor3/d938cDSeJ+knggSTzQ8ePHefM3f3MAzp49y+/+7u/y3Gzzgtjm+bHN82Ob58c2z49tXhDbPD+2eX5s84LYBuDaa68F4L777ruVq6666qqrrvr/hcpVV1111VVXXXXVVVdd9T/Gh3/4h3/X5ubma3/f930fDySJ+0nigSTxQJJ48zd/c2655RbOnj3L7/7u7/LcbPP82Ob5sc0LYpvnxzbPj22eH9u8ILZ5fmzzgtjmfltbWwD8wz/8w29z1VVXXXXVVf+/EFx11VVXXXXVVVddddVV/yN87ud+7m/deOONr/193/d9PJAk7ieJB5LEA0ni3d7t3bjllls4Ojrid3/3d3kg29jmudnGNs+PbZ4f29jmudnGNs+PbZ4f2zw/trHN82Ob58c2trnqqquuuuqqqy6jctVVV1111VVXXXXVVVf9t/vcz/3c37rxxhtf++u+7uu4nyQeSBIPJIkHksS7vdu7ccstt3B0dMQv/dIv8UC2eX5s8/zY5gWxzfNjm+fHNi+IbZ4f2zw/tnlBbPP8bG5uAnDffffdylVXXXXVVVf9/0Llqquuuuqqq6666qqrrvpv9bmf+7m/deONN772z/7sz3I/STyQJB5IEveTBMC7vdu7ccstt3B0dMSf//mfcz/bPD+2eUFs8/zY5gWxzfNjm+fHNi+IbZ4f27wgtnl+bLO1tQXA2bNnn8FVV1111VVX/f9CcNVVV1111VVXXXXVVVf9t/nwD//w73qxF3ux1/7Zn/1ZnvGMZwAgiQeSxANJ4n6SAHjzN39zbrnlFgD+/M//nLNnz2Ib2zw/tnl+bGOb58c2z49tbPPcbGOb58c2z49tbPP82OYFsc3zY5urrrrqqquu+n+OylVXXXXVVVddddVVV1313+Id3/EdP+t1Xud13vt7v/d7ecYzngGAJB5IEg8kiftJAuDN3/zNeYmXeAkAfvd3f5ezZ89im+fHNi+IbZ4f27wgtnl+bPOC2Ob5sc3zY5sXxDYviG3ut7m5CcB99913K1ddddVVV131/wuVq6666qqrrrrqqquuuuq/3Iu92Iu99ju90zt99vd+7/fyjGc8AwBJPJAk7ieJB5IEwEu8xEvwEi/xEgD87u/+Lvfddx8viG2eH9u8ILZ5fmzzgtjm+bHNC2Kb58c2L4htXhDbPNDW1hYAZ8+evZWrrrrqqquu+v+FylVXXXXVVVddddVVV131X+rFXuzFXvtzP/dzf+t7v/d7ecYzngGAJB5IEveTxANJAuAlXuIlePM3f3MAfud3foezZ8/y/NjmBbHN82ObF8Q2z49tXhDbPD+2eUFs84LY5vmxzfOztbUFwH333XcrV1111VVXXfX/C5Wrrrrqqquuuuqqq6666r/Mi73Yi732537u5/7Wz/7sz/KMZzwDAEk8kCTuJ4kHkgTALbfcwpu/+ZsD8Gd/9mecPXuW52abF8Q2L4htnh/bvCC2eX5s84LY5vmxzQtimxfENlddddVVV1111fOgctVVV1111VVXXXXVVVf9l3ixF3ux1/7cz/3c3/qd3/kd/uZv/gYASTyQJO4niQeSBMAtt9zCu73buwHwuMc9jmc84xk8N9s8P7Z5QWzzgtjm+bHNC2Kb58c2L4htXhDbvCC2eX5ss7W1BcB99913K1ddddVVV131/w+Vq6666qqrrrrqqquuuuo/3TXXXPPgz/3cz/2tv/mbv+F3f/d3AZDEA0nifpJ4IEkA3HLLLbzbu70bALfeeiuPe9zjeCDbvCC2eX5s84LY5gWxzfNjmxfENi+IbV4Q27wgtnl+bAOwtbUFwNmzZ2/lqquuuuqqq/7/oXLVVVddddVVV1111VVX/ae65pprHvw5n/M5v/WMZzyDn/3ZnwVAEg8kiftJ4oEkAXDs2DHe7d3eDYCzZ8/y53/+59zPNi+IbV4Q27wgtnl+bPOC2OYFsc3zY5sXxDYviG1eENvcb2trC4D77rvvVq666qqrrrrq/x8qV1111VVXXXXVVVddddV/mmuuuebBH/7hH/5dy+Xywd/7vd8LgCQeSBL3k8QDSQLg2LFjfOiHfigAZ8+e5Xd+53e4n22eH9u8ILZ5QWzzgtjmBbHN82ObF8Q2L4htXhDbvCC2ueqqq6666qqrnoXKVVddddVVV1111VVXXfWf5sM//MO/a2tr67W/93u/FwBJPJAk7ieJB5IEwLFjx3jzN39zAM6ePcvv/M7vAGCbF8Q2L4htXhDbPD+2eUFs84LY5gWxzQtimxfENs+PbZ6fzc1NAO67775bueqqq6666qr/fwiuuuqqq6666qqrrrrqqv8Un/u5n/tbN95442t/7/d+LwCSuJ8kJHE/SdxPEpK435u/+Ztzyy23cPbsWX7nd34H29jm+bGNbZ4f29jm+bGNbZ4f27wgtnl+bGOb58c2tnl+bGOb58c2tnl+bPOCbG1tAXD27NlncNVVV1111VX//1C56qqrrrrqqquuuuqqq/7Dfe7nfu5v3Xjjja/9dV/3dQBI4n6SeCBJ3E8SD/Ru7/Zu3HLLLRweHvLbv/3bvCC2eUFs84LY5gWxzQtimxfENi+IbV4Q27wgtnlBbPOC2GZra4urrrrqqquu+n+MylVXXXXVVVddddVVV131H+rDP/zDv+vGG2987Z/92Z8FQBL3k8QDSeJ+knigd3u3d+OWW27h8PCQX/zFX+QFsc0LYpsXxDYviG1eENu8ILZ5fmzzwtjmBbHNC2KbF8Q2AFtbWwD8wz/8w29z1VVXXXXVVf//EFx11VVXXXXVVVddddVV/2He8R3f8bNe53Ve571/9md/lmc84xlI4n6SeCBJ3E8SD/Ru7/Zu3HLLLRweHvJnf/ZnPD+2sc3zYxvbPD+2sc3zYxvbPD+2sc3zYxvbPD+2eUFsY5vnxza2eX5sY5vnxza2ueqqq6666qqrLqNy1VVXXXXVVVddddVVV/2HeJ3XeZ33fqd3eqfP/t7v/V6e8YxnIIn7SeKBJHE/STzQu73bu3HLLbcA8Gd/9mecPXuWB7LNC2KbF8Q2L4xtXhDbvCC2eUFs84LY5gWxzQtimxfENs9ta2sLgPvuu+9Wrrrqqquuuur/HypXXXXVVVddddVVV1111b/bi73Yi732h3/4h3/X937v9/KMZzwDSdxPEg8kiftJ4oHe/M3fnFtuuQWA3/7t3+bs2bPczzYvjG1eENu8ILZ5QWzzgtjmBbHNC2ObF8Q2L4htXhDbPLetrS2uuuqqq6666v85KlddddVVV1111VVXXXXVv8uLvdiLvfbnfu7n/tb3fu/38oxnPANJ3E8SDySJ+0nigV7jNV6Dl3iJlwDgt3/7tzl79iz3s80LYpsXxDYviG1eENu8MLZ5QWzzgtjmBbHNC2KbF8Q2L8jm5iYA//AP//DbXHXVVVddddX/T1Suuuqqq6666qqrrrrqqn+zF3uxF3vtz/3cz/2tn/3Zn+UZz3gGkrifJB5IEveTxAO95Eu+JK/+6q8OwG//9m9z9uxZAGzzgtjmBbHNC2ObF8Q2L4htXhDbvDC2eUFs84LY5gWxzQtim62tLQDuu+++W7nqqquuuuqq/5+oXHXVVVddddVVV1111VX/Jtdcc82DP/dzP/e3/uZv/oa/+Zu/QRL3k8QDSeJ+knigBz3oQbzZm70ZAH/2Z3/G2bNnsc0LYpsXxjYviG1eENu8ILZ5YWzzgtjmBbHNC2ObF8Q2L4htrrrqqquuuuqqy6hcddVVV1111VVXXXXVVf9q11xzzYO/6Zu+6enPeMYz+Nmf/VkkcT9JPJAk7ieJ+0nilltu4V3f9V0B+LM/+zOe/vSn88LY5gWxzQtimxfGNi+IbV4Q27wwtnlBbPOC2OYFsc0LY5v7bW1tAXDffffdylVXXXXVVVf9/0Tlqquuuuqqq6666qqrrvpXueaaax784R/+4d/1jGc8g+/93u9FEveTxANJ4n6SuJ8kbrnlFt71Xd8VgFtvvZWnP/3pvCC2eUFs88LY5gWxzQtimxfGNi+IbV4Y27wgtnlBbPOC2Oa5bW9vA3D27NlncNVVV1111VX/P1G56qqrrrrqqquuuuqqq/5VPvzDP/y7tra2Xvt7v/d7kcT9JHE/STyQJO4niWPHjvGu7/quANx666386Z/+Kc+PbV4Y27wgtnlBbPPC2OYFsc0LY5sXxDYviG1eGNu8ILa56qqrrrrqqqueLypXXXXVVVddddVVV1111Yvscz/3c39ra2vrtb/3e78XSdxPEveTxANJ4n6SOHbsGB/yIR8CwH333cef/umf8txs88LY5gWxzQtjmxfENi+MbV4Q27wwtnlBbPOC2OaFsc0Lsrm5CcB99913K1ddddVVV131/xPBVVddddVVV1111VVXXfUi+dzP/dzfuvHGG1/7e7/3e5HE/SRxP0k8kCTuJ4ljx47xru/6rgDcd999/PZv/zYPZBvbvCC2sc0LYpsXxDa2eUFs84LYxjYviG1eENvY5gWxzQtimxfENrZ5QWyzvb0NwNmzZ2/lqquuuuqqq/5/onLVVVddddVVV1111VVX/Ys+93M/97duvPHG1/6+7/s+JHE/SdxPEg8kiftJ4tixY7zZm70Zx44d47777uO3f/u3uZ9tXhjbvDC2eUFs88LY5gWxzQtjmxfGNi+IbV4Y27wgtnlBbHO/ra0tAO67775bueqqq6666qr/nwiuuuqqq6666qqrrrrqqhfqwz/8w7/rxV7sxV77Z3/2Z7l06RL3k8T9JPFAkrifJADe7M3ejFtuuYXDw0N++7d/GwDb2OYFsY1tXhDb2OYFsc0LYhvbvCC2eWFs84LYxjYviG1eENvY5gWxzQtim6uuuuqqq6666jlQueqqq6666qqrrrrqqqteoHd8x3f8rNd5ndd57+/93u/ltttu436SuJ8kHkgS95MEwLu+67tyyy23cHh4yC/8wi8AYJsXxDYvjG1eGNu8MLZ5QWzzwtjmhbHNC2KbF8Y2L4htXhjbPNDW1hYA9913361cddVVV1111f9fVK666qqrrrrqqquuuuqq5+t1Xud13vud3umdPvt7v/d7ue2227ifJO4niQeSxP0kAfCu7/qu3HLLLRweHvKnf/qn2OaFsc0LY5sXxDYvjG1eGNu8MLZ5QWzzwtjmBbHNC2ObF8Y2z21rawuAs2fP3spVV1111VVX/f9F5aqrrrrqqquuuuqqq656Hi/2Yi/22h/+4R/+Xd/7vd/Lbbfdxv0kcT9JPJAk7icJgHd913fllltuAeBP//RPue+++3hBbPPC2OaFsc0LYpsXxjYvjG1eGNu8ILZ5YWzzwtjmBbHNC7K9vQ3AfffddytXXXXVVVdd9f8Xlauuuuqqq6666qqrrrrqObzYi73Ya3/u537ub/3sz/4st912G/eTxP0k8UCSuJ8kAN7szd6MW265BYDf+q3f4r777uP5sc0LY5sXxjYvjG1eENv8S2zzgtjmhbHNC2ObF8Q2L4xtXhjbXHXVVVddddVVULnqqquuuuqqq6666qqrnuXFXuzFXvtzP/dzf+t3fud3+Nu//VvuJ4n7SeKBJHE/SQC8+qu/Oi/xEi8BwG/91m9x33338dxs88LY5oWxzQtjmxfGNi+MbV4Y27wgtnlhbPPC2OYFsc0LYxuA66+/HoD77rvvVq666qqrrrrq/y8qV1111VVXXXXVVVddddVl11xzzYM/93M/97f+5m/+ht/7vd/jfpK4nyQeSBL3kwTAS7zES/Dqr/7qAPzWb/0W9913Hw9kmxfGNi+MbV4Y27wwtnlhbPPC2OaFsc0LY5sXxDYvjG1eGNs8t7Nnzz6Dq6666qqrrvr/i8pVV1111VVXXXXVVVddxTXXXPPgb/qmb3r6M57xDH7u536O+0nifpJ4IEncTxIAt9xyC2/2Zm8GwG/91m9x3333cT/bvDC2eWFs88LY5oWxzb/ENi+MbV4Q27wwtnlhbPPC2OaFsc0DbW1tAXDffffdylVXXXXVVVf9/0Xlqquuuuqqq6666qqr/p+75pprHvzhH/7h3/WMZzyD7/u+7+N+krifJB5IEveTBMAtt9zCu77ruwLwp3/6p9x3330A2OaFsc2/xDYvjG1eGNu8MLZ5YWzzwtjmhbHNC2ObF8Q2L4xtnp+trS0Azp49eytXXXXVVVdd9f8Xlauuuuqqq6666qqrrvp/7sM//MO/a2tr67W/7/u+j/tJ4n6SeCBJ3E8SALfccgvv+q7vCsDf//3f8/SnPx3bvDC2+ZfY5oWxzQtjm3+JbV4Q27wwtnlhbPPC2OaFsc0LY5urrrrqqquuuuqFIrjqqquuuuqqq6666qr/xz73cz/3t2688cbX/r7v+z7uJ4n7SeKBJHE/SQDccsstvOu7visAT3/60/n7v/97bPOC2MY2L4xtbPOC2MY2L4htbPPC2MY2L4htXhjbvDC2eWFs88LY5gWxjW1eENtsb28DcN99993KVVddddVVV/3/ReWqq6666qqrrrrqqqv+n/rcz/3c37rxxhtf++u//uu5nyTuJ4kHksT9JAFw7Ngx3vVd3xWA++67jz/5kz/hBbHNv8Q2L4xt/iW2eWFs88LY5oWxzQtjmxfGNi+MbV4Y27wwttna2gLgvvvuu5Wrrrrqqquu+v+NylVXXXXVVVddddVVV/0/9Lmf+7m/deONN772z/3cz3E/SdxPEg8kiftJAuDYsWN8yId8CAD33Xcfv/mbv8kLYpsXxjb/Etu8MLb5l9jmhbHNC2ObF8Y2L4xtXhjbvDC2eWFsA7C9vQ3A2bNnb+Wqq6666qqr/n8juOqqq6666qqrrrrqqv9nPvzDP/y7XuzFXuy1f+7nfo5nPOMZAEjifpJ4IEncTxIAx44d483e7M0AuO+++/jN3/xNnpttbGObF8Q2tnlhbGObF8Q2tnlhbGObF8Q2tnlBbGObF8Q2tnlBbGObF8Q2tnlBbGObF8Q2trnf1tYWAPfdd9+tXHXVVVddddX/b1Suuuqqq6666qqrrrrq/5HXeZ3Xee/XeZ3Xee/v+77v4xnPeAYAknhBJHE/Sdzvzd7szbjllls4PDzkN3/zN3kg2/xLbPMvsc0LY5t/iW1eGNu8MLb5l9jmhbHNC2ObF8Y2L4xtrrrqqquuuuqqF4jKVVddddVVV1111VVX/T/xYi/2Yq/94R/+4d/1fd/3fTzjGc8AQBIPJIn7SeJ+krjfu77ru3LLLbdweHjIz/3cz3E/2/xLbPMvsc0LY5t/iW3+JbZ5YWzzwtjmhbHNC2ObF8Y2/xLbPD/b29sA3Hfffbdy1VVXXXXVVf+/Ubnqqquuuuqqq6666qr/B17sxV7stT/3cz/3t77v+76PZzzjGTw/krifJO4nifu967u+K7fccguHh4f85m/+JgC2+ZfY5l9im3+Jbf4ltnlhbPPC2OaFsc2/xDYvjG1eGNu8MLZ5Yba2tgA4e/bsM7jqqquuuuqq/9+oXHXVVVddddVVV1111f9xL/ZiL/ban/u5n/tbP/uzP8sznvEM7ieJ+0nifpK4nyTu967v+q7ccsstHB4e8id/8iccHBzwL7HNv8Q2/xLb/Ets88LY5l9imxfGNi+MbV4Y2/xLbPPC2OaFsc1VV1111VVXXfUsVK666qqrrrrqqquuuur/sBd7sRd77c/93M/9rd/93d/lb//2b7mfJO4niftJ4n6SuN+bvdmbccsttwDwx3/8x9x33328MLb5l9jmX2Kbf4lt/iW2eWFs88LY5l9imxfGNi+MbV4Y2/xLbANw/fXXA/AP//APv81VV1111VVX/f9G5aqrrrrqqquuuuqqq/6Puuaaax78uZ/7ub/1N3/zN/zu7/4u95PE/SRxP0ncTxL3e/VXf3Ve4iVeAoDf+I3f4L777uMFsc2/xDb/Etv8S2zzL7HNC2Obf4ltXhjbvDC2+ZfY5oWxzQtjm6uuuuqqq6666vmictVVV1111VVXXXXVVf8HXXPNNQ/+nM/5nN96xjOewc/93M9xP0ncTxL3k8T9JHG/l3zJl+TVX/3VAfiN3/gN7rvvPp4f2/xLbPMvsc2/xDb/Etv8S2zzwtjmX2KbF8Y2L4xt/iW2eWFs89y2t7cBuO+++27lqquuuuqqq/5/o3LVVVddddVVV1111VX/B334h3/4dy2Xywd/3/d9H/eTxP0kcT9J3E8S93vQgx7Em77pmwLwG7/xG9x33308N9v8S2zzL7HNi8I2L4xt/iW2eWFs8y+xzQtjm3+JbV4Y2/xLbHPVVVddddVVV71QVK666qqrrrrqqquuuur/mM/93M/9ra2trdf+vu/7Pu4niftJ4n6SuJ8k7vegBz2Id3mXdwHgj//4j7nvvvt4INv8S2zzL7HNi8I2/xLbvDC2+ZfY5oWxzb/ENi+Mbf4ltnlhbPOCbG9vA3D27NlncNVVV1111VVXEVx11VVXXXXVVVddddX/IZ/7uZ/7WzfeeONrf9/3fR/3k8T9JHE/SdxPEvd70IMexLu8y7sA8Hd/93c8/elP5362sc0LYxvbvDC2sc2/xDa2eWFsY5sXxjYvjG1s88LY5oWxjW1eGNu8MLaxzQtjmxfmuuuuA+C+++67lauuuuqqq666ispVV1111VVXXXXVVVf9H/G5n/u5v3XjjTe+9td//ddzP0ncTxL3k8T9JHG/Bz3oQbzLu7wLAE9/+tP5+7//ewBs8y+xzb/ENi8K2/xLbPMvsc0LY5t/iW3+JbZ5YWzzL7HNC2Obf4lt7nfffffdylVXXXXVVVddReWqq6666qqrrrrqqqv+D/jwD//w77rxxhtf++d+7ue4nyTuJ4n7SeJ+krjf8ePHeZd3eRcA7rvvPv7oj/6IF4Vt/iW2eVHY5l9im3+Jbf4ltvmX2OaFsc2/xDYvjG3+Jbb5l9gGYHt7G4D77rvv6Vx11VVXXXXVVQRXXXXVVVddddVVV131v9w7vuM7ftbrvM7rvPfP/dzP8YxnPAMASdxPEveTxP0kcb/jx4/zwR/8wQDce++9/Pqv/zr/EtvY5oWxjW3+JbaxzQtjG9u8MLaxzQtjG9u8MLaxzQtjmxfGNrZ5YWzzL7HNC2Mb29xve3sbgLNnzz6Dq6666qqrrrqKylVXXXXVVVddddVVV/0v9jqv8zrv/U7v9E6f/X3f93084xnPAEAS95PE/SRxP0nc7/jx47zpm74pAPfeey+/8Ru/wQtjm3+JbV4UtvmX2OZfYpt/iW3+Jbb5l9jmX2KbF8Y2/xLb/Etsc9VVV1111VVXvVBUrrrqqquuuuqqq6666n+pF3uxF3vtD//wD/+u7/u+7+MZz3gGAJK4nyTuJ4n7SeJ+knjTN31TbrnlFu69915+4zd+gxfENv8S27wobPOisM2/xDb/Etv8S2zzwtjmX2Kbf4lt/iW2eWFs84JsbW0BcPbs2Vu56qqrrrrqqquoXHXVVVddddVVV1111f9CL/ZiL/ban/u5n/tbP/uzP8sznvEMACRxP0ncTxL3k8T9JPEu7/Iu3HLLLRweHvIbv/EbPDfbvChs86KwzYvCNv8S2/xLbPMvsc2/xDb/Etu8MLb5l9jmX2KbF2Z7exuA++6771auuuqqq6666ioqV1111VVXXXXVVVdd9b/Mi73Yi732537u5/7W7/7u7/K3f/u3AEjifpK4nyTuJ4n7SeJd3uVduOWWWzg8PORnfuZneCDbvChs86KwzYvCNv8S2/xLbPMvsc2/xDb/Etv8S2zzL7HNv8Q2/5Lt7W2uuuqqq6666qpnoXLVVVddddVVV1111VX/i1xzzTUP/tzP/dzf+pu/+Rt+93d/FwBJ3E8S95PE/SRxP0m8y7u8C7fccguHh4f80R/9EfezzYvCNi8K27wobPMvsc2/xDYvCtv8S2zzwtjmX2Kbf4lt/iW2+ZfY5oHuu+++W7nqqquuuuqqq6hcddVVV1111VVXXXXV/xLXXHPNg7/pm77p6c94xjP4uZ/7OQAkcT9J3E8S95PEA73pm74pt9xyCwB/9Ed/xH333YdtXhS2eVHY5kVhm3+JbV4UtvmX2OZfYpt/iW3+Jbb5l9jmX2Kbf4ltALa3twG47777buWqq6666qqrrgKgctVVV1111VVXXXXVVf8LXHPNNQ/+8A//8O96xjOewfd93/fx3CRxP0ncTxIP9Oqv/uq8xEu8BAC//uu/zr333suLwjYvCtu8KGzzL7HNi8I2/xLb/Ets8y+xzb/ENv8S2/xLbPMvsc0DbW9vA3D27Nlbueqqq6666qqrAKhcddVVV1111VVXXXXV/wIf/uEf/l1bW1uv/X3f933cTxL/Gi/5ki/Jq7/6qwPw67/+69x77728MLZ5UdnmRWGbF4Vt/iW2+ZfY5kVhm3+Jbf4ltvmX2OZfYpt/iW2e2/b2NgD33XffrVx11VVXXXXVVQAEV1111VVXXXXVVVdd9T/c537u5/7WjTfe+Nrf933fx/0kcT9J3E8S95PE/R70oAfxpm/6pgD8+q//Ovfeey8viG1s86KwjW3+Jbaxzb/ENrZ5YWxjm3+Jbf4ltrHNC2Mb27wwtrHNC2Mb27wwtrHNC2Mb21x11VVXXXXVVS8SKlddddVVV1111VVXXfU/2Od+7uf+1o033vjaX//1X8/9JHE/SdxPEveTxP0e9KAH8S7v8i4A/NEf/RH33nsvz49tXlS2eVHY5kVhm3+JbV4UtvmX2OZfYpsXhW3+Jbb5l9jmX2KbF2ZrawuA++6771auuuqqq6666ioAKlddddVVV1111VVXXfU/1Od+7uf+1o033vjaP/dzP8f9JHE/SdxPEveTxP0e9KAH8S7v8i4A/O3f/i1Pe9rTeG62eVHZ5kVhmxeFbf4ltnlR2OZfYpsXhW3+Jbb5l9jmX2KbF4Vt/iXb29sAnD179hlcddVVV1111VUABFddddVVV1111VVXXfU/0Id/+Id/14u92Iu99s/93M/xjGc8AwBJ3E8S95PE/SRxvwc96EG8y7u8CwBPe9rT+Lu/+zvuZxvb2OZFYRvb/EtsY5t/iW1s8y+xzb/ENrb5l9jmX2Ib27wwtrHNv8Q2/xLb/EtsY5sXxja2ueqqq6666qqrngeVq6666qqrrrrqqquu+h/mHd/xHT/rdV7ndd77+77v+3jGM54BgCTuJ4n7SeJ+krjf8ePHeZd3eRcA7r33Xv7oj/4IANu8qGzzorLNi8I2Lwrb/Ets86Kwzb/ENi8K2/xLbPMvsc2Lwjb/Etvc74YbbgDgH/7hH36bq6666qqrrroKgMpVV1111VVXXXXVVVf9D/JiL/Zir/1O7/ROn/193/d9POMZzwBAEveTxP0kcT9J3O/48eN88Ad/MAD33nsvv/7rv45tXlS2eVHZ5kVhmxeFbV4UtvmX2OZFYZt/iW1eFLb5l9jmX2KbF4VtrrrqqquuuuqqF4rKVVddddVVV1111VVX/Q/xYi/2Yq/9uZ/7ub/1fd/3fTzjGc8AQBL3k8T9JHE/Sdzv+PHjvOmbvikA9957L7/2a7/Gi8o2LyrbvChs86KwzYvCNv8S27wobPOisM2/xDb/Etu8KGzzL7HN87O9vQ3AfffddytXXXXVVVdddRUAlauuuuqqq6666qqrrvof4MVe7MVe+3M/93N/62d/9md5xjOeAYAk7ieJ+0nifpK4nyTe9E3flFtuuYV7772XX/u1X+NFYZsXhW1eVLZ5UdjmRWGbF4Vt/iW2eVHY5l9imxeFbf4ltnlR2Oaqq6666qqrrnqRUbnqqquuuuqqq6666qr/Zi/2Yi/22p/7uZ/7W7/zO7/D3/7t3/LcJHE/SdxPEveTxLu8y7twyy23cHBwwK/92q/xwtjmRWWbF5VtXhS2eVHY5kVhmxeFbf4ltnlR2OZfYpsXhW3+JbZ5YW644QYA/uEf/uG3ueqqq6666qqr7kflqquuuuqqq6666qqr/htdc801D/7cz/3c3/qbv/kbfu/3fo/7SQJAEveTxP0kcT9JvMu7vAu33HILBwcH/PRP/zQviG1eVLZ5UdnmRWGbF4VtXhS2eVHY5kVhm3+JbV4UtvmX2OZFYZt/ydbWFgD33XffrVx11VVXXXXVVfejctVVV1111VVXXXXVVf9Nrrnmmgd/zud8zm894xnP4Od+7ue4nySemyTuJ4n7SeJd3uVduOWWWzg4OOCP/uiPeH5s86KyzYvKNi8K27wobPOisM2LwjYvCtu8KGzzL7HNi8I2/xLbvChsc9VVV1111VVXPV9Urrrqqquuuuqqq6666r/BNddc8+AP//AP/67lcvng7/u+7+N+krifJJ6bJO4niTd90zfllltuAeCP/uiPuPfee7mfbf41bPOisM2LyjYvCtu8KGzzorDNi8I2LwrbvChs8y+xzYvCNv8S29xve3sbgPvuu+9Wrrrqqquuuuqq+1G56qqrrrrqqquuuuqq/wYf/uEf/l1bW1uv/X3f933cTxL3k8T9JPHcJPGmb/qmvMRLvAQAv/Zrv8a9994LgG1eVLZ5UdnmRWWbF4VtXhS2eVHZ5l9imxeFbV4UtnlR2OZfYpsXhW0eaGdnB4CzZ88+g6uuuuqqq6666n4EV1111VVXXXXVVVdd9V/scz/3c3/rxhtvfO3v+77v436SuJ8k7ieJ+0nifi/xEi/BS7zESwDwa7/2a9x7773YxjYvCtvY5kVhG9u8KGxjm3+JbWzzorDNi8I2tvmX2OZFYZt/iW1s8y+xjW3+JbZ5Udjmqquuuuqqq656kVC56qqrrrrqqquuuuqq/0Kf+7mf+1s33njja3/9138995PE/SRxP0ncTxL3e8mXfEne9E3fFIBf/dVf5d577+VFZZsXlW1eVLZ5UdjmRWWbF4VtXhS2eVHY5kVhmxeFbf4ltnlR2OYF2d7eBuC+++67lauuuuqqq6666n5Urrrqqquuuuqqq6666r/Ih3/4h3/XjTfe+No/93M/x/0kcT9J3E8S95PE/R70oAfxpm/6pgD84R/+Iffeey//Etv8a9jmRWWbF4VtXlS2eVHY5kVhmxeFbV4UtnlR2OZFYZsXhW1emO3tbQDOnj17K1ddddVVV1111f0Irrrqqquuuuqqq6666r/AO77jO37W67zO67z3z/7sz/KMZzwDAEncTxL3k8T9JHG/Bz3oQbzLu7wLAH/4h3/IU5/6VF4Y29jmRWUb27wobGObf4ltbPOisI1t/iW2sc2/xDa2eVHY5l9iG9v8S2xjm3+JbWzzL7GNbf4l29vbANx33323ctVVV1111VVX3Y/KVVddddVVV1111VVX/Sd7ndd5nfd+p3d6p8/+3u/9Xm677TaemyTuJ4n7SeJ+D3rQg3iXd3kXAJ761Kfy1Kc+lRfENi8q2/xr2OZFYZsXlW1eFLZ5UdnmRWGbF4VtXhS2eVHY5kVhmxeFba666qqrrrrqqueLylVXXXXVVVddddVVV/0nerEXe7HX/vAP//Dv+t7v/V5uu+027icJAEncTxL3k8T9jh8/zru8y7sAcO+99/KHf/iHPDfb/GvY5kVlmxeVbV5UtnlR2eZFYZsXhW1eFLZ5UdjmRWGbF4VtXhS2Adje3gbgvvvuu5WrrrrqqquuuuqBqFx11VVXXXXVVVddddV/khd7sRd77c/93M/9re/93u/ltttu436SeG6SuJ8k7nf8+HE++IM/GIB7772XX/3VX+WBbPOvYZsXlW1eVLZ5UdnmRWWbF4VtXhS2eVHZ5kVhmxeFbV4UtnlR2OZ+29vbAJw9e/ZWrrrqqquuuuqqB6Jy1VVXXXXVVVddddVV/wle7MVe7LU/93M/97d+9md/lttuu437SeJ+knhukrjf8ePHedM3fVMA7r33Xn71V3+V+9nmRWWbfw3bvKhs86KyzYvKNi8K27yobPOisM2LwjYvCtu8KGzzorDNc9vZ2QHgvvvuu5WrrrrqqquuuuqBqFx11VVXXXXVVVddddV/sGuuuebBn/u5n/tbf/M3f8Pf/u3fcj9J3E8S95MEgCTuJ4k3fdM35ZZbbuHee+/lV3/1V7HNv4Zt/jVs86KyzYvKNi8q27wobPOiss2LwjYvCtu8qGzzorDNi8I2V1111VVXXXXVvwqVq6666qqrrrrqqquu+g90zTXXPPibvumbnv6MZzyDn/u5n+N+krifJO4niecmiXd5l3fhlltu4eDggF/5lV/hX8M2/xq2eVHZ5kVlmxeVbV5UtnlR2OZFYZsXlW1eFLZ5UdjmRWGbF2Z7exuA++6771auuuqqq6666qoHonLVVVddddVVV1111VX/Qa655poHf/iHf/h3PeMZz+B7v/d7kQSAJO4niftJ4n6SuN+7vMu7cMstt3BwcMBP/uRP8qKwzb+Gbf41bPOiss2LyjYvKtu8KGzzorLNi8I2LwrbvKhs86Kwzb9ke3sbgLNnzz6Dq6666qqrrrrqgahcddVVV1111VVXXXXVf5AP//AP/66tra3X/t7v/V4k8dwkcT9J3E8S93vXd31XbrnlFg4ODviDP/gD/iW2+dewzb+GbV5UtnlR2eZFZZsXlW1eFLZ5UdjmRWWbF4VtXhS2eVFtb28DcN99993KVVddddVVV131QFSuuuqqq6666qqrrrrqP8Dnfu7n/tbW1tZrf+/3fi+SuJ8kACRxP0ncTxL3e9d3fVduueUWAP7gD/6Ae++9lxfENv8atvnXsM2LyjYvKtu8qGzzorLNi8I2LyrbvChs86KyzYvCNi8K2wBsb28DcPbs2Vu56qqrrrrqqqseiOCqq6666qqrrrrqqqv+nT73cz/3t2688cbX/t7v/V4kcT9JPDdJ3E8S93uzN3szbrnlFgB+5Vd+hXvvvZfnZhvb2OZFYRvb2OZFYRvb2OZFYRvbvChsY5sXhW1s86KwjW1eFLZ5UdjGNi8K27wobGObf4ltbPOisM1VV1111VVXXfUvonLVVVddddVVV1111VX/Dp/7uZ/7WzfeeONrf9/3fR+SuJ8k7icJAEncTxL3e/VXf3Ve4iVeAoBf+ZVf4d577+WBbPOvYZt/Ddv8a9jmRWWbF5VtXlS2eVHZ5kVhmxeVbV4UtnlR2eZFYZvntrOzA8B99913K1ddddVVV1111QMRXHXVVVddddVVV1111b/Rh3/4h3/Xi73Yi732z/7sz3Lp0iXuJ4n7SeK5SeJ+L/mSL8mrv/qrA/Arv/Ir3HvvvQDYxja2eVHZxjYvKtvY5kVlG9u8KGxjmxeFbWzzorCNbV4UtrHNi8I2Lwrb2OZFYZsXhW1s86KwzXPb3t4G4L777ruVq6666qqrrrrquVG56qqrrrrqqquuuuqqf4N3fMd3/KzXeZ3Xee/v/d7v5bbbbuN+krifJO4nCQBJ3O9BD3oQb/qmbwrAH/zBH3Dvvfdim38N2/xr2eZfwzYvKtu8qGzzorLNi8o2LyrbvKhs86KwzYvKNi8K27wgOzs7AJw9e/ZWrrrqqquuuuqq50blqquuuuqqq6666qqr/pVe53Ve573f6Z3e6bO/93u/l2c84xlIAkAS95PE/STx3B70oAfxLu/yLgD8wR/8AU95ylP417DNv4Zt/jVs869hmxeVbf41bPOiss2LwjYvKtu8qGzzorDNi8o2L8z29jYA9913361cddVVV1111VXPjcpVV1111VVXXXXVVVf9K7zYi73Ya3/4h3/4d33v934vz3jGM5DEc5PE/SRxP0kA3HLLLbzLu7wLAH/913/NU57yFF5UtvnXsM2/hm3+NWzzorLNv4ZtXlS2eVHZ5kVhmxeVbV5UtnlR2Oaqq6666qqrrvp3o3LVVVddddVVV1111VUvohd7sRd77c/93M/9rZ/92Z/lGc94BpK4nyQAJHE/SdxPEgC33HIL7/qu7wrAU57yFP7mb/6Gf4lt/rVs869hm38N2/xr2OZFZZsXlW1eVLZ5UdnmRWGbF5VtXlS2eVHYZnt7G4D77rvvVq666qqrrrrqqudG5aqrrrrqqquuuuqqq14EL/ZiL/ban/u5n/tbv/M7v8Pf/M3fIIn7SeK5SeJ+kgA4duwY7/qu7wrAPffcwx/8wR/wwtjmX8s2/xq2+dewzb+GbV5UtnlR2eZFZZsXlW1eVLZ5UdnmRWGbF5VtALa3twE4e/bsM7jqqquuuuqqq54blauuuuqqq6666qqrrvoXXHPNNQ/+3M/93N/6m7/5G373d38XSdxPEveTBIAk7icJgGPHjvGu7/quANxzzz38yq/8Cs+Pbf61bPOvZZt/Ddv8a9jmRWWbF5VtXlS2eVHZ5kVlmxeVbV5UtnlR2eaqq6666qqrrnqRULnqqquuuuqqq6666qoX4pprrnnwN33TNz39Gc94Bj/7sz+LJO4niftJ4rlJAuDYsWO82Zu9GceOHeOee+7hV37lV3hutvnXss2/hm3+tWzzr2GbF5VtXlS2+dewzYvKNi8q27wobPOiss2LyjbP7cYbbwTgvvvuu5Wrrrrqqquuuuq5Ubnqqquuuuqqq6666qoX4Jprrnnwh3/4h3/XM57xDL73e7+XB5LE/SRxP0k8tzd7szfjlltu4eDggF/5lV/hfrb517LNv5Zt/rVs86Kyzb+Gbf41bPOiss2LyjYvKtu8qGzzorLNi8o2L8zZs2dv5aqrrrrqqquuem5Urrrqqquuuuqqq6666gX48A//8O/a2tp67e/93u8FQBLPTRL3k8T9JAHwru/6rtxyyy0cHBzwEz/xE9jm38I2/1q2+dewzb+Gbf41bPOvYZsXlW1eVLZ5UdnmRWWbF5VtXlS2eWF2dnYAuO+++27lqquuuuqqq656bgRXXXXVVVddddVVV131fHzu537ub914442v/b3f+70ASOJ+kgCQxP0kcT9JALzru74rt9xyCwcHB/z+7/8+tvnXso1t/jVsY5sXlW1s86KyjW1eVLaxzYvKNrZ5UdjGNi8K29jmRWWbF5VtXlS2eVHZ5qqrrrrqqquu+nehctVVV1111VVXXXXVVc/lcz/3c3/rxhtvfO2v+7qvA0AS95PEc5PE/SQB8K7v+q7ccsstHBwc8Pu///vcc889vKhs869lm38t2/xr2OZfwzb/GrZ5UdnmX8M2LyrbvKhs86KyzYvKNi+K7e1tAM6ePfsMrrrqqquuuuqq54fKVVddddVVV1111VVXPcDnfu7n/taNN9742j/7sz8LgCTuJ4n7SQJAEveTBMCbvdmbccsttwDw+7//+9xzzz28KGzzr2Wbfy3b/GvY5l/DNv8atvnXsM2LyjYvKtu8qGzzorLNv4ZtXlTb29sA3Hfffbdy1VVXXXXVVVc9PwRXXXXVVVddddVVV131TB/+4R/+XS/2Yi/22j/7sz/LM57xDCRxP0ncTxLPTRIAr/7qr85LvMRLAPDLv/zL3HPPPbwwtrGNbf41bGObfw3b2OZFZRvbvKhsY5sXlW1s86KyjW1eFLaxzYvKNi8q27yobPOiso1tXlS22dnZAeC+++67lauuuuqqq6666vmhctVVV1111VVXXXXVVcDrvM7rvPfrvM7rvPf3fu/38oxnPIMHksT9JHE/SQBIAuAlXuIlePVXf3UAfvmXf5l77rmHF8Q2/1q2+deyzb+Wbf41bPOvYZt/Ddu8qGzzr2GbF5VtXlS2eVHZ5l/DNvfb3t7mqquuuuqqq656oahcddVVV1111VVXXfX/3ou92Iu99od/+Id/1/d+7/fyjGc8AwBJPDdJ3E8SD3TLLbfwZm/2ZgD88i//Mvfccw/PzTb/Frb517LNv5Zt/jVs869hm38N2/xr2OZFZZsXlW3+NWzzorLNv4ZtHmhnZweAf/iHf/htrrrqqquuuuqq54fKVVddddVVV1111VX/r73Yi73Ya3/u537ub33v934vz3jGMwCQxP0kASCJ+0nifpK45ZZbeNd3fVcAfv/3f5977rmH+9nm38o2/1q2+deyzb+Gbf41bPOvYZt/Ddu8qGzzr2GbF5VtXlS2+dewzVVXXXXVVVdd9W9C5aqrrrrqqquuuuqq/7de7MVe7LU/93M/97d+5md+hmc84xkASOJ+knhukrifJG655Rbe9V3fFYC//uu/5ilPeQoAtvm3sM2/hW3+tWzzr2Gbfw3b/GvY5l/DNv8atnlR2eZFZZt/Ddv8a9jmBdnZ2QHg7Nmzt3LVVVddddVVVz0/VK666qqrrrrqqquu+n/pxV7sxV77cz/3c3/rd37nd/jbv/1bACRxP0ncTxIAkrifJG655Rbe9V3fFYCnPOUp/NVf/RX/Vrb517LNv5Zt/rVs869hm38N2/xr2OZfwzYvKtv8a9jmRWWbfw3b/Eu2t7cBuO+++27lqquuuuqqq656fqhcddVVV1111VVXXfX/zjXXXPPgz/3cz/2tv/mbv+F3f/d3eW6SuJ8knpskjh07xru+67sCcM899/B7v/d7/GvZ5t/CNv9atvnXss2/hm3+tWzzorLNv4Zt/jVs86Kyzb+Gbf41bHPVVVddddVVV/2HoHLVVVddddVVV1111f8r11xzzYM/53M+57duvfVWfvZnf5b7SeK5SeJ+kgCQxLFjx/iQD/kQAO655x5+6Zd+iX8N2/xb2OZfyzb/Wrb517DNv5Zt/jVs86Kyzb+Gbf41bPOiss2/hm3+NXZ2dgC47777buWqq6666qqrrnp+qFx11VVXXXXVVVdd9f/Kh3/4h3/X0dHRg7/v+76P+0nifpIAkMT9JHG/Y8eO8WZv9mYA3HPPPfzSL/0SLwrb/FvY5t/CNv9atvnXsM2/lm3+NWzzr2GbF5Vt/jVs869hm38N27yobLOzswPAfffddytXXXXVVVddddULQuWqq6666qqrrrrqqv83PvdzP/e3Njc3X/t7v/d7kQSAJO4niecmiftJ4s3e7M245ZZbuOeee/ilX/ol/iW2+bewzb+Fbf61bPOvYZt/Ldv8a9jmX8M2/xq2eVHZ5l/DNv8atvnXsA3A9vY2AGfPnr2Vq6666qqrrrrqBSG46qqrrrrqqquuuur/hc/93M/9rRtvvPG1v/d7vxdJAEjifpK4nyQAJHE/Sbzru74rt9xyCwcHB/zSL/0SL4htbGObfy3b2OZfwza2sc2/hm1s86KyjW3+NWxjmxeVbWzzorKNbV5UtrHNi8o2Lyrb2OZfwzYvKtvY5n47OzsA3Hfffbdy1VVXXXXVVVe9IFSuuuqqq6666qqrrvo/73M/93N/68Ybb3ztr/3ar0USz00S95PEc5PEu77ru3LLLbdwcHDAL/3SL/HcbPNvZZt/C9v8W9jmX8M2/1q2+dewzb+Gbf41bPOvYZt/Ddv8a9jmX8M2V1111VVXXXXVvwmVq6666qqrrrrqqqv+T/vwD//w77rxxhtf+2d+5meQxP0k8dwkcT9JAEjiXd/1Xbnllls4ODjg937v9zg4OOB+tvm3ss2/hW3+tWzzr2Wbfy3b/GvY5l/LNv8atnlR2eZfwzb/WrZ5UdnmBdnZ2QHgvvvuu5WrrrrqqquuuuoFIbjqqquuuuqqq6666v+sd3zHd/ys13md13nvn/mZn+G2227jfpK4nyQAJHE/Sdzvzd7szbjlllsA+L3f+z3uuecebGMb2/xr2cY2tvnXso1t/jVsY5t/DdvY5l/DNrb517DNv4ZtbPOiso1tXlS2+dewzb+GbWzzorLNC7OzswPA2bNnn8FVV1111VVXXfWCULnqqquuuuqqq6666v+k13md13nvd3qnd/rs7/me7+EZz3gGkgCQxP0k8dwkcb/XeI3X4CVe4iUA+MVf/EXuuece/q1s829hm38L2/xr2eZfyzb/Wrb517DNv4Zt/jVs869hm38N2/xr2Oaqq6666qqrrvoPQ+Wqq6666qqrrrrqqv9zXuzFXuy1P/zDP/y7vud7vodnPOMZSAJAEveTxP0kASCJ+73kS74kr/7qrw7AL/7iL3LPPffwr2Wbfyvb/FvY5l/LNv9atvnXss2/hm3+NWzzr2Gbfw3b/GvZ5l/DNi+qG2+8EYB/+Id/+G2uuuqqq6666qoXhMpVV1111VVXXXXVVf+nvNiLvdhrf+7nfu5v/czP/AzPeMYzkMRzk8T9JPHcHvSgB/Fmb/ZmAPziL/4i99xzD/8atvm3ss2/hW3+tWzzr2Wbfy3b/GvY5l/LNv8atvnXsM2/hm3+NWzzr2Gbq6666qqrrrrqRULlqquuuuqqq6666qr/M17sxV7stT/3cz/3t37nd36Hv/mbv0ES95PEc5PE/SQB8KAHPYh3fdd3BeD3fu/3uOeee3hR2Obfyjb/Vrb517LNv5Zt/rVs869hm38t2/xr2OZfwzb/Wrb517DNv4ZtAHZ2dgC47777buWqq6666qqrrnpBqFx11VVXXXXVVVdd9X/CNddc8+DP/dzP/a2/+Zu/4Xd+53d4IEncTxIAkrifJABuueUW3vVd3xWAv/qrv+LJT34y/xLb/FvZ5t/CNv8WtvnXss2/lm3+tWzzr2Gbfw3b/GvY5l/LNv8atvnXsM1VV1111VVXXfWvRuWqq6666qqrrrrqqv/1rrnmmgd/0zd909NvvfVWfuZnfgYASQBI4n6SeG6SALjlllt4t3d7NwCe/OQn81d/9Ve8ILb597DNv4Vt/i1s869lm38t2/xr2eZfwzb/Wrb517DNv5Zt/jVs869hmwe66aabALjvvvtu5aqrrrrqqquuemGoXHXVVVddddVVV131v9o111zz4A//8A//rltvvZXv/d7vBUASz00S95MEgCQAjh07xru927sBcPfdd/N7v/d7PD+2+beyzb+Vbf4tbPOvZZt/Ldv8a9nmX8M2/1q2+dewzb+Wbf41bPOvYZvnZ2dnB4B/+Id/+G2uuuqqq6666qoXhspVV1111VVXXXXVVf+rffiHf/h3bW5uvvb3fu/3AiCJ+0kCQBL3k8QDHTt2jA/90A8F4O677+aXfumXeCDb/HvY5t/KNv8WtvnXss2/lm3+tWzzr2Wbfw3b/GvY5l/LNv8atvnXss1VV1111VVXXfXvRnDVVVddddVVV1111f9an/u5n/tbN95442t/7/d+LwCSuJ8knpsk7ieJY8eO8eZv/uYA3H333fzSL/0SALaxjW3+LWxjG9v8a9nGNrb517KNbf41bGObfw3b2OZfwza2+dewjW1eVLaxzb+Gbf61bPOvYZt/DdvY5oXZ3t4G4L777ruVq6666qqrrrrqhaFy1VVXXXXVVVddddX/Sp/7uZ/7WzfeeONrf+3Xfi3PTRL3kwSAJO4nCYA3f/M355ZbbuHuu+/ml37pl7DNv4dt/q1s829lm38t2/xr2eZfyzb/Wrb517LNv4Zt/rVs869hm38N27yodnZ2ADh79uwzuOqqq6666qqrXhgqV1111VVXXXXVVVf9r/O5n/u5v3XjjTe+9s/8zM9wP0kASOJ+knhukgB4t3d7N2655RYODg74xV/8Rf49bPNvZZt/C9v8W9jm38I2/1q2+dewzb+Wbf41bPOvZZt/Ldv8a9jmqquuuuqqq676T0Fw1VVXXXXVVVddddX/Kh/+4R/+XS/2Yi/22j/zMz/DM57xDAAk8dwkcT9JAEgC4N3e7d245ZZbODg44Ed+5Ef4t7CNbWzzb2Eb2/xr2cY2/1q2sc2/lm1s869hG9v8a9jmX8M2tvnXsM2/lm3+NWxjmxeVbWzzr2GbnZ0dAO67775bueqqq6666qqrXhgqV1111VVXXXXVVVf9r/GO7/iOn/U6r/M67/093/M9POMZzwBAEveTxHOTxAO927u9G7fccgsHBwf87u/+Lv9atvm3ss2/lW3+LWzzb2Gbfy3b/GvZ5l/DNv9atvnXss2/lm3+NWzzr2Gb++3s7ABw9uzZW7nqqquuuuqqq14YKlddddVVV1111VVX/a/wOq/zOu/9Tu/0Tp/9Pd/zPTzjGc/guUnifpIAkMT9JPHmb/7m3HLLLQD87u/+LnfffTcvCtv8e9jm38o2/xa2+bewzb+Wbf61bPOvZZt/Ddv8W9jmX8M2/xq2+deyzQPt7OwAcN99993KVVddddVVV131wlC56qqrrrrqqquuuup/vBd7sRd77Q//8A//ru/5nu/hGc94BveTBIAk7ieJ5yaJN3/zN+clXuIlAPjFX/xF7r77bv4ltvn3sM2/lW3+LWzzb2Gbfy3b/GvZ5l/LNv9atvnXss2/hm3+tWzzr2Gbq6666qqrrrrq34XKVVddddVVV1111VX/o73Yi73Ya3/u537ub/3Mz/wMt956K5IAkMRzk8T9JAEgiZd4iZfgJV7iJQD4xV/8Re6++25eENv8e9jm38M2/xa2+bewzb+Wbf61bPOvZZt/Ldv8a9nmX8s2/xq2+deyzfOzs7MDwH333XcrV1111VVXXXXVv4TKVVddddVVV1111VX/Y73Yi73Ya3/u537ub/32b/82f/3Xf40kACRxP0kASOJ+krjfLbfcwpu/+ZsD8Iu/+IvcfffdPDfb/HvZ5t/DNv8Wtvm3sM2/lm3+tWzzr2Wbfy3b/FvY5l/DNv9atvnXsM0Ls7OzA8DZs2dv5aqrrrrqqquu+pdQueqqq6666qqrrrrqf6RrrrnmwZ/7uZ/7W3/913/N7/zO7yCJ5yaJ5yaJ+z3oQQ/i3d7t3QD43d/9Xe6++24eyDb/Xrb5t7LNv5Vt/i1s869lm38L2/xr2eZfwzb/Frb517LNv4Zt/rVs8y/Z2dkB4L777ruVq6666qqrrrrqX0Llqquuuuqqq6666qr/ca655poHf87nfM5v3XrrrfzMz/wMkrifJAAkcT9JAEjifg960IN4t3d7NwD+6q/+iic/+ckA2Obfyzb/Hrb5t7LNv4Vt/i1s869lm38t2/xr2eZfyzb/Wrb517LNv4Ztrrrqqquuuuqq/xRUrrrqqquuuuqqq676H+Waa6558Id/+Id/19HR0YO/53u+hweSxHOTxHN70IMexLu927sB8OQnP5m/+Iu/4D+Cbf49bPNvZZt/C9v8W9jmX8s2/1q2+deyzb+Fbf41bPOvZZt/Ldv8a2xvbwNw33333cpVV1111VVXXfUvoXLVVVddddVVV1111f8oH/7hH/5dm5ubr/093/M9AEgCQBL3kwSAJO4nCYBjx47xbu/2bgDcfffd/M7v/A7/Xrb597DNv5Vt/i1s829hm38t2/xr2eZfyzb/Frb517LNv4Zt/rVs869lm2PHjgFw9uzZZ3DVVVddddVVV/1LCK666qqrrrrqqquu+h/jcz/3c3/rxhtvfO3v+Z7vAUASz00Sz00SAMeOHePDPuzDALj77rv5hV/4Bf6tbGMb2/xb2cY2/xa2sc2/lm1s869lG9v8a9jGNv9atvnXss2/lm1s869hG9v8a9jmX8s2/xq2sQ3A9vY2APfdd9+tXHXVVVddddVV/xIqV1111VVXXXXVVVf9j/C5n/u5v3XjjTe+9td8zdcAIIn7SQJAEveTBIAkAI4dO8ZbvMVbAHD33XfzC7/wC/xb2Obfwzb/Hrb5t7DNv4Vt/i1s869lm38t2/xb2OZfyzb/Grb517LNv5ZtHujYsWMAnD179lauuuqqq6666qp/CZWrrrrqqquuuuqqq/7bffiHf/h33Xjjja/9Mz/zMzw3STw3STy3t3iLt+CWW27h7rvv5hd+4Rf417DNv5dt/j1s829hm38L2/xb2OZfyzb/Wrb5t7DNv5Zt/rVs869lm38N21x11VVXXXXVVf9uBFddddVVV1111VVX/bd6x3d8x896ndd5nff+mZ/5GW699VYAJAEgiftJAkAS95MEwLu/+7tzyy23sL+/zy/8wi/worKNbf49bGObfyvb2OZfyza2+deyjW3+tWxjm38N29jmX8s2/1q2sc2/hm1s869hG9v8a9jGNv8atnlBdnZ2ALjvvvtu5aqrrrrqqquu+pdQueqqq6666qqrrrrqv83rvM7rvPc7vdM7ffZ3f/d384xnPAMASTw3STw3SQC827u9G7fccgv7+/v8yI/8CP8S2/xHsM2/h23+LWzzb2Gbfwvb/FvY5l/LNv8WtvnXss2/lm3+NWzzr2WbF2ZnZ4errrrqqquuuupfhcpVV1111VVXXXXVVf8tXuzFXuy1P/zDP/y7vvu7v5tnPOMZAEjifpIAkMT9JAEgCYB3e7d340EPehD7+/v87u/+Li+Mbf4j2Obfwzb/Frb5t7LNv5Zt/i1s869lm38L2/xr2eZfyzb/Wrb517LNv2RnZweAf/iHf/htrrrqqquuuuqqFwWVq6666qqrrrrqqqv+y73Yi73Ya3/u537ub333d383z3jGM3huknhuknigd3u3d+NBD3oQAL/7u7/L3XffzXOzzX8E2/x72ebfwjb/Vrb5t7DNv5Zt/rVs829hm38t2/xr2eZfyzb/WrZ5Ue3s7ABw33333cpVV1111VVXXfWioHLVVVddddVVV1111X+pF3uxF3vtz/3cz/2tn/7pn+YZz3gG95MEgCTuJwkASdxPEm/+5m/Ogx70IAB+4Rd+gbvvvpsHss1/BNv8e9jm38M2/xa2+bewzb+Wbf4tbPNvYZt/Ldv8a9nmX8s2/1q2ueqqq6666qqr/lNRueqqq6666qqrrrrqv8w111zz4M/93M/9rb/+67/mr//6r5EEgCSemySemyRe4zVeg5d8yZcE4Bd+4Re4++67AbDNfxTb/HvY5t/DNv8Wtvm3sM2/hW3+tWzzb2Gbfy3b/GvZ5l/LNv9atvnXss3Ozg4A9913361cddVVV1111VUvCipXXXXVVVddddVVV/2XuOaaax78Td/0TU+/9dZb+emf/mkkASCJ+0kCQBL3kwSAJF7yJV+S13iN1wDgF37hF7jrrrv4j2Sbfw/b/HvY5t/CNv8Wtvm3sM2/lm3+LWzzb2Gbfy3b/GvZ5l/LNv9atgHY2dkB4OzZs8/gqquuuuqqq656UVC56qqrrrrqqquuuuo/3TXXXPPgD//wD/+uW2+9le/+7u9GEs9NEs9NEve75ZZbePM3f3MAfud3foe77rqL/wi2+feyzb+Hbf4tbPNvYZt/C9v8W9jm38I2/1q2+deyzb+Wbf61bPOvZZurrrrqqquuuurfhcpVV1111VVXXXXVVf/pPvzDP/y7Njc3X/u7v/u7kcT9JAEgiftJAkAS93vQgx7Eu7/7uwPwO7/zOzzpSU/i38s2/162+fewzb+Vbf4tbPOvZZt/C9v8W9jmX8s2/1q2+bewzb+Wbf61bPPcbr75ZgDuu+++W7nqqquuuuqqq14UVK666qqrrrrqqquu+k/1uZ/7ub+1ubn52t/93d/NA0niuUniuT3oQQ/i3d/93QF40pOexJOe9CT+PWzz72Wbfw/b/FvZ5t/CNv8WtvnXss2/hW3+LWzzr2Wbfy3b/GvZ5l/LNv+Ss2fP3spVV1111VVXXfWiILjqqquuuuqqq6666j/N537u5/7WjTfe+Nrf/d3fDYAkACRxP0kASOJ+kgA4fvw47/7u7w7Ak570JH7nd36Hfwvb2MY2/x62sc2/lW1s829hG9v8a9nGNv9atrHNv5Zt/i1s869lG9v8a9jGNv9atvnXss2/lm1emJ2dHQDuu+++W7nqqquuuuqqq14UVK666qqrrrrqqquu+k/xuZ/7ub914403vvZ3f/d3AyCJ5yaJ5yYJgGPHjvFhH/ZhANx99938zu/8Dv9atvmPYJt/D9v8W9nm38I2/xa2+bewzb+Fbf61bPNvYZt/Ldv8a9nmX8s2V1111VVXXXXVfwqCq6666qqrrrrqqqv+w334h3/4d73Yi73Ya//0T/80u7u7PJAkACRxP0k80LFjx3iP93gPAO6++25+/ud/nn8N29jm38s2tvm3so1t/i1sY5t/C9v8W9jmX8s2tvm3sM2/lm3+tWxjm38N29jmX8s2/1q2eVHs7OwAcPbs2Wdw1VVXXXXVVVe9qKhcddVVV1111VVXXfUf6h3f8R0/63Ve53Xe+7u/+7u59dZbAZAEgCSemyTuJ4ljx47xFm/xFhw7doy7776bn//5n+dFYZv/KLb597LNv5Vt/i1s829hm38L2/xb2OZfyzb/Frb517LNv5Zt/rVs86+xs7MDwH333XcrV1111VVXXXXVi4rKVVddddVVV1111VX/YV7ndV7nvd/pnd7ps7/ru76LZzzjGQBI4rlJAkAS95MEwFu8xVvwoAc9iP39fX7+53+ef4lt/qPY5t/LNv9Wtvm3sM2/hW3+LWzzb2Gbfwvb/GvZ5l/LNv8WtvnXss2/1s7ODgD33XffrVx11VVXXXXVVS8qKlddddVVV1111VVX/Yd4sRd7sdf+8A//8O/6ru/6Lp7xjGcAIIn7SQJAEs9NEgDv/u7vzoMe9CD29/f54R/+YV4Q2/xHss2/l23+rWzzb2Wbfwvb/GvZ5t/KNv9atvnXss2/hW3+tWzzr2Wbfwvb7OzscNVVV1111VVX/atRueqqq6666qqrrrrq3+3FXuzFXvtzP/dzf+unfuqneMYznsFzk8Rzk8QDvfu7vzsPetCD2N/f53d+53d4fmzzH8k2/162+fewzb+Fbf4tbPNvYZt/C9v8W9jmX8s2/1q2+bewzb+Wbf61bHO/Y8eOAXDfffc9nauuuuqqq6666kVF5aqrrrrqqquuuuqqf5cXe7EXe+3P/dzP/a3f+q3f4q//+q+RBIAkACRxP0kASOJ+knj3d393HvSgBwHwO7/zO9x9993czzb/0Wzz72Wbfw/b/FvY5t/CNv8Wtvm3sM2/hW3+tWzzb2Gbfy3b/GvZ5t/CNs/P2bNnn8FVV1111VVXXfWionLVVVddddVVV1111b/ZNddc8+DP/dzP/a2//uu/5rd/+7eRBIAknpsknpsk3uIt3oIHPehBAPz8z/88d999N7b5z2Cb/wi2+beyzb+Vbf4tbPNvYZt/C9v8a9nm38I2/1q2+bewzb+Wbf61bPP87OzsAHD27Nlbueqqq6666qqrXlRUrrrqqquuuuqqq676N7nmmmse/E3f9E1Pv/XWW/mpn/opJPHcJAEgiftJAkASr/Ear8FLvuRLAvDzP//z3HXXXfxnsM1/BNv8e9jm38I2/xa2+bewzb+Fbf4tbPOvZZt/C9v8a9nmX8s2/xa2eUGOHTsGwH333XcrV1111VVXXXXVi4rKVVddddVVV1111VX/atdcc82DP/zDP/y7br31Vr7ru74LSdxPEgCSeG6SuN9LvuRL8pqv+ZoA/NzP/Rx33303/9Fs8x/BNv8etvm3ss2/hW3+tWzzb2Wbfy3b/FvY5l/LNv8WtvnXss2/lm2uuuqqq6666qr/FFSuuuqqq6666qqrrvpX+/AP//Dv2tzcfO3v+q7v4oEk8dwkASCJ+z34wQ/mLd7iLQD4uZ/7Oe6++27+I9nmP4Jt/j1s829lm38L2/xb2Obfwjb/Frb517LNv4Vt/rVs869lm38L27wodnZ2ALjvvvtu5aqrrrrqqquuelERXHXVVVddddVVV131r/K5n/u5v3XjjTe+9nd913cBIAkASdxPEgCSeG4PfvCDefd3f3cAfvu3f5u7776b/yi2sc1/BNv8e9jm38I2tvm3sM2/lm1s829hm38t29jmX8s2/1q2sc2/lm3+tWzzb2GbF8XOzg4A9913361cddVVV1111VX/GlSuuuqqq6666qqrrnqRfe7nfu5v3Xjjja/9VV/1VQBI4rlJ4rlJAuBBD3oQ7/7u7w7AX/zFX/CkJz2J/wi2+Y9im38P2/xb2ebfwjb/Frb5t7DNv4Vt/rVs829hm38t2/xb2OZfyzb/GseOHQPg7Nmzt3LVVVddddVVV/1rULnqqquuuuqqq6666kXyuZ/7ub914403vvZP/dRP8dwkASCJ+0kCQBIAD3rQg3iP93gPAJ70pCfxF3/xF/x72eY/im3+vWzzb2Gbfyvb/GvZ5t/KNv9atvm3sM2/lm3+LWzzr2Wbfwvb/Gttb28DcN99993KVVddddVVV131r0Fw1VVXXXXVVVddddW/6MM//MO/68Ve7MVe+yd/8ie59dZbAZAEgCSemyQe6Pjx47zHe7wHAHfddRe//du/zb+HbWzzH8U2/x62sc2/hW3+LWxjm38t2/xb2MY2/1q2+deyjW3+tWzzr2Ub2/xr2eZfyza2+deyzVVXXXXVVVdd9W9G5aqrrrrqqquuuuqqF+p1Xud13vt1Xud13vs7v/M7ecYzngGAJJ6bJAAkcT9JHD9+nHd/93cH4K677uLnf/7n+beyzX8k2/x72ebfwjb/Vrb517LNv5Vt/rVs829hm38t2/xb2OZfyzb/Frb517LN/Y4dOwbAfffddytXXXXVVVddddW/BpWrrrrqqquuuuqqq16gF3uxF3vtD//wD/+u7/zO7+QZz3gGz00SAJJ4bpI4fvw4b/EWb8Hx48e56667+Pmf/3n+LWzzH8k2/162+beyzb+Fbf4tbPNvYZt/C9v8a9nm38I2/1q2+bewzb+Wbf4tbPNAOzs7AJw9e/YZXHXVVVddddVV/xpUrrrqqquuuuqqq656vl7sxV7stT/3cz/3t77zO7+TZzzjGdxPEgCSeG6SAJAEwFu8xVvwoAc9iP39fX7+53+efw3b/Gewzb+Xbf6tbPNvYZt/Ldv8W9nmX8s2/xa2+deyzb+Fbf61bPNvYZt/LdtcddVVV1111VX/oahcddVVV1111VVXXfU8XuzFXuy1P/dzP/e3fuqnfopbb70VSQBI4rlJAkASD/Qe7/EePOhBD2J/f58f+qEf4kVlm/8Mtvn3ss2/lW3+LWzzb2Gbfwvb/FvY5l/LNv8WtvnXss2/hW3+tWzzb2GbF+Tmm28G4B/+4R9+m6uuuuqqq6666l+DylVXXXXVVVddddVVz+HFXuzFXvtzP/dzf+u3fuu3+Ku/+iskASCJ+0kCQBLPTRLv8R7vwYMe9CD29/f5+Z//eV4UtvnPYpt/L9v8W9nm38I2/xa2+bewzb+Wbf4tbPOvZZt/C9v8a9nm38I2/xa2ueqqq6666qqr/lNQueqqq6666qqrrrrqWa655poHf+7nfu5v/dVf/RW/9Vu/hSSemySemyQAJPEe7/EePOhBD2J/f5/f/u3fZn9/nxfENv+ZbPMfwTb/Vrb5t7DNv5Zt/q1s869lm38t2/xb2OZfyzb/Frb517LNv4VtXhTHjh0D4L777ruVq6666qqrrrrqX4PKVVddddVVV1111VWXXXPNNQ/+nM/5nN96+tOfzk/91E/xQJIAkMT9JAEgifu9xVu8BQ960IMA+O3f/m3uvvtunh/b/Gezzb+Xbf6tbPNvYZt/C9v8W9jm38I2/1q2+deyzb+Fbf61bPNvYZt/C9tcddVVV1111VX/6ahcddVVV1111VVXXXXZh3/4h3/X4eHhg7/ru74LAEkASOK5SeK5vdZrvRYv9VIvBcDP/dzPcffdd/NAtvmvYJv/CLb5t7LNv4Vt/i1s829hm38t2/xb2OZfyzb/Wrb5t7DNv4Vt/rVs869x8803A3DffffdylVXXXXVVVdd9a9F5aqrrrrqqquuuuoqPvdzP/e3NjY2Xvu7vuu7AJDEc5MEgCTuJwmAl3qpl+I1X/M1Afi5n/s57r77bgBs81/JNv8RbPNvZZt/C9v8a9nm38o2/1q2+deyzb+Fbf61bPNvYZt/Ldv8W9jmX2tnZweAf/iHf/htrrrqqquuuuqqfy2Cq6666qqrrrrqqv/nPvdzP/e3brzxxtf+ru/6Lp6bJAAk8dwkAfCgBz2It3zLtwTg537u57jrrruwjW3+q9jGNv9etrHNv5Vt/i1s869lm38L29jmX8s2/1q2+deyjW3+tWzzr2Ub2/xr2ebfwjb/Wra56qqrrrrqqqv+XahcddVVV1111VVX/T/2uZ/7ub914403vvZXfuVXcj9JAEjiuUnigR70oAfxnu/5ngD89m//NnfddRf/1WzzH8E2/x62+bewzb+Wbf4tbPOvZZt/Ldv8W9jmX8s2/xa2+deyzb+Fbf4tbAOws7MDwH333XcrV1111VVXXXXVvxaVq6666qqrrrrqqv+nPvzDP/y7brzxxtf+yZ/8Se4niecmCQBJ3E8SD3rQg3jP93xPAP7iL/6CJz7xifxXss1/FNv8W9nm38I2/xa2+bewzb+Wbf61bPOvZZt/C9v8a9nm38I2/xa2+bewzf2OHTsGwNmzZ5/BVVddddVVV131r0Vw1VVXXXXVVVdd9f/QO77jO37W67zO67z3T/7kT3Lrrbfy3CQBIInnJokHPehBvOd7vicAT3ziE/nzP/9z/ivZ5j+Kbf6tbPNvYZt/C9v8W9jmX8s2/1q2+deyzb+WbWzzr2Wbfwvb/GvZxjb/WraxzVVXXXXVVVdd9R+GylVXXXXVVVddddX/M6/zOq/z3u/0Tu/02d/5nd/Jrbfeyv0kASCJ5yYJAEkcP36c93zP9wTgrrvu4rd/+7f5r2Sb/yi2+beyzb+Fbf4tbPOvZZt/Ldv8W9jmX8s2/1q2+bewzb+Wbf4tbPNvYZvn59ixYwDcd999t3LVVVddddVVV/1rUbnqqquuuuqqq676f+TFXuzFXvvDP/zDv+s7v/M7efrTn44kACTx3CQBIIn7HT9+nI/4iI8A4K677uLnfu7n+K9im/9Itvm3ss2/hW3+tWzzb2Gbfy3b/GvZ5l/LNv8WtvnXss2/hW3+LWzzr2WbF2ZnZweAs2fP3spVV1111VVXXfWvReWqq6666qqrrrrq/4kXe7EXe+3P/dzP/a2f/Mmf5OlPfzqSAJDE/SQBIInnduLECd7yLd8SgLvuuouf+7mf47+Kbf4j2ebfyjb/Frb517LNv4Vt/rVs869lm38t2/xr2ebfwjb/Wrb5t7DNv4Vt/iXHjh3jqquuuuqqq676N6Ny1VVXXXXVVVdd9f/Ai73Yi732537u5/7Wb/7mb/JXf/VXSOK5SeK5SQJAEm/5lm/Jgx70IO666y5+7ud+jv8qtvmPZJt/K9v8W9jmX8s2/xa2+deyzb+Wbf61bPOvZZt/C9v8a9nm38I2/xa2+de47777buWqq6666qqrrvrXonLVVVddddVVV131f9w111zz4M/93M/9rb/6q7/it37rt3ggSTw3SQBI4n7v+Z7vyYMe9CD29/f5uZ/7Of6r2OY/km3+rWzzb2Gbfy3b/FvY5l/LNv9atvnXss2/lm3+tWzzb2Gbfy3b/FvY5kW1s7MDwH333XcrV1111VVXXXXVvwWVq6666qqrrrrqqv/Drrnmmgd/0zd909Of/vSn85M/+ZMASAJAEveTBIAkntt7vdd78aAHPYj9/X1+8Ad/kP8KtvmPZpv/arb517LNv4Vt/rVs869hm38t2/xb2OZfyzb/Wrb5t7DNv4Vt/jWOHTsGwNmzZ2/lqquuuuqqq676t6By1VVXXXXVVVdd9X/UNddc8+AP//AP/66nP/3pfOd3ficAknhuknhukgB4r/d6Lx70oAexv7/Pb//2b/NfwTb/0Wzz72Gbfy3b/GvZ5t/CNv8atvnXss2/lm3+tWzzb2Gbfy3b/FvY5t/CNv9ax44dA+C+++67lauuuuqqq6666t+CylVXXXXVVVddddX/UR/+4R/+XRsbG6/9nd/5nTw3SQBI4n6SAJAEwFu91VvxoAc9CIDf/u3f5q677uI/m23+p7HN/2S2+dewzb+Wbf61bPOvZZt/Ldv8W9jmX8s2/xa2+bewjW2uuuqqq6666qp/F4Krrrrqqquuuuqq/4M+93M/97duuOGG1/6O7/gO7icJAEk8N0k80Gu91mvxUi/1UgD83M/9HHfddRf/2Wzzn8E2/1a2+bewzb+Wbf61bPOvYZt/Ldv8a9nmX8s2/1q2+deyjW3+tWzzb2GbfwvbABw7dgyA++6771auuuqqq6666qp/CypXXXXVVVddddVV/8d87ud+7m/dcMMNr/0VX/EVSAJAEs9NEs9NEi/1Ui/Fa73WawHwcz/3c9x11138Z7PNfwbb/Fezzb+Wbf61bPOvYZt/Ldv8a9nmX8s2/1q2+deyzb+Fbf4tbPNvYZv7HTt2DICzZ88+g6uuuuqqq6666t+CylVXXXXVVVddddX/IZ/7uZ/7WzfccMNr/+RP/iSSeG6SAJDE/SQBIIkHPehBvNVbvRUAP/dzP8ddd93Ffzbb/E9km38t2/xr2eZfyzb/Grb517LNv5Zt/jVs829hm38t2/xr2ebfwjb/FrZ5bjs7O1x11VVXXXXVVf8uBFddddVVV1111VX/R3z4h3/4d73Yi73Ya//kT/4kT3/607mfJAAk8dwkcb8HPehBvNd7vRcAv/3bv81dd93Ffzbb/Gexzb+Vbf4r2OZfyzb/Grb517LNv4ZtbPOvYZt/LdvY5l/LNv9atvm3sM2/hW2en2PHjgHwD//wD7/NVVddddVVV131b0Hlqquuuuqqq6666v+Ad3zHd/ys13md13nv7/iO7+DpT386kgCQxHOTxHN78IMfzHu913sB8Od//uc88YlP5Kp/Hdv8Z7PNfzbb/GvY5l/LNv9atvnXss2/hW3+LWzzb2Gbq6666qqrrrrqPw2Vq6666qqrrrrqqv/lXud1Xue93+md3umzv+M7voOnP/3pSOK5SQJAEveTBMCDH/xg3uu93guAJz7xifzFX/wF/xVs85/FNv9WtvmvYJv/bLb517DNv4Zt/rVs869lm38t2/xb2OZfyzb/Frb5lxw7dgyA++6771auuuqqq6666qp/CypXXXXVVVddddVV/4u92Iu92Gt/+Id/+Hd9x3d8B09/+tN5IEkASOK5SQLg+PHjvNd7vRcAd911F7/927/NfwXb/F9im38N2/xr2eZfwzb/Grb517DNv5Zt/rVs869lm38t2/xb2Obfwjb/kmPHjnHVVVddddVVV/27Ubnqqquuuuqqq676X+rFXuzFXvtzP/dzf+snfuInePrTnw6AJAAk8dwk8UDHjx/noz7qowC46667+Lmf+zn+L7DNfyXb/Gezzb+Gbf41bPOvYZt/Ldv8a9nmX8s2/1q2+bewzb+FbV4UOzs7APzDP/zDb3PVVVddddVVV/1bUbnqqquuuuqqq676X+jFXuzFXvtzP/dzf+s3fuM3+Ku/+isAJPHcJAEgiftJ4vjx47zVW70VAHfddRc/93M/x1Vgm/9stvnXsM2/hm3+NWzzr2Gbfy3b/GvY5t/CNv9atvm3sM2/lm3+NY4dOwbAfffddytXXXXVVVddddW/FZWrrrrqqquuuuqq/2WuueaaB3/u537ub/3lX/4lv/Vbv8VzkwSAJJ6bJADe6q3eigc/+MHcdddd/NzP/Rz/lWzz/5Vt/jPZ5l/DNv8atvnXss2/hm3+tWzzb2Gbfy3b/FvY5qqrrrrqqquu+m9B5aqrrrrqqquuuup/kWuuuebBn/M5n/NbT3/60/mJn/gJJAEgCQBJPDdJPNB7vdd78eAHP5j9/X1+7ud+jqv+7Wzzn8k2/1ls869hm38t2/xr2OZfyzb/Wrb5t7DNv4Vt/i12dnYAuO+++27lqquuuuqqq676t6Jy1VVXXXXVVVdd9b/ENddc8+AP//AP/67Dw8MHf/u3fzuSAJDEc5PEc5PEe73Xe/HgBz+Y/f19fvAHf5Crns02/5ls85/JNv9ZbPOvZZt/Ddv8a9nmX8s2/xa2+bewzb+FbY4dOwbA2bNnn8FVV1111VVXXfVvReWqq6666qqrrrrqf4kP//AP/66NjY3X/vZv/3Yk8dwkASCJ+0kCQBLv9V7vxYMf/GD29/f5rd/6LWwjif9qkrDN/3a2+c9kmxeVbf41bPOfyTb/Grb517LNv5Zt/i1s869lm38L21x11VVXXXXVVf+hCK666qqrrrrqqqv+F/jcz/3c37rhhhte+9u//dt5IEkASOK5SeJ+b/VWb8WDH/xgAH7rt36Lu+66i6v+57LNfxbb/GvY5l/DNv8atvnXss2/lm3+tWxjm38t2/xb2OaBjh07BsB99913K1ddddVVV1111b8VwVVXXXXVVVddddX/cJ/7uZ/7WzfccMNrf/mXfzkAkgCQxHOTxHN767d+a176pV8agJ/92Z/lrrvu4r+bJP4/sc1/Ftu8qGzzr2Gbfw3b/GvY5l/LNv9atvnXss2/hW3+LWzz3I4dOwbA2bNnb+Wqq6666qqrrvq3onLVVVddddVVV131P9iHf/iHf9cNN9zw2j/xEz8BgCSemyQAJHE/SQC8zMu8DC/90i8NwM/+7M9y11138UC2kcRV/3PY5kVlm/8stvnXsM2/hm3+tWzzr2Wbfy3b/FvY5l/LNi/IsWPHALjvvvtu5aqrrrrqqquu+rciuOqqq6666qqrrvof6h3f8R0/63Ve53Xe+yd+4id4+tOfzgNJAkASz00SAC/90i/NW73VWwHwsz/7s9x11108N0n8d5HEVf91bPOiss2/hm3+NWzzr2Wbfy3b/GvZ5l/LNrb517LNVVddddVVV131n47KVVddddVVV1111f9Ar/M6r/Pe7/RO7/TZ3/Zt38att94KgCQAJPHcJPFAD37wg3nrt35rAH7rt36Lu+66i/+JJGGb/21s86KyzX8G27yobPOiss2/hm3+NWzzr2Wbfw3b/FvY5l/LNv8Wtnlhjh07BsDZs2efwVVXXXXVVVdd9e9BcNVVV1111VVXXfU/zIu92Iu99od/+Id/17d927dx6623AiCJ5yaJ5yaJBz/4wbz3e783AH/+53/OE5/4RP4nk8R/JEn8b2Wb/01s869hm38t2/xr2Obfwjb/Wrb5t7DNv+TYsWMA3Hfffbdy1VVXXXXVVVf9e1C56qqrrrrqqquu+h/kxV7sxV77cz/3c3/r277t27j11lt5bpJ4bpIAkMSDH/xg3vu93xuAJz7xifz5n/85/xtIwjZXvWhs86KyzYvKNv9ZbPOvZZt/Ddv8a9nm38I2/xa2eVEcO3YMgPvuu+9Wrrrqqquuuuqqfw+Cq6666qqrrrrqqv8hXuzFXuy1P/dzP/e3fvzHf5ynP/3p3E8SAJK4nyQAJHG/48eP897v/d4A3HXXXfzWb/0WL4wk/ieRxH8USVwFtnlR2eZfwzb/mWzzr2Gbfy3b/FvY5l/LNra56qqrrrrqqqv+yxFcddVVV1111VVX/Q9wzTXXPPhzP/dzf+sv//Iv+cu//EskASCJ5yaJ53bixAk++qM/GoC77rqLn/3Zn+V/I0n8X2KbF5VtXhS2+e9mm38N2/xr2OZfwzb/Wrb5t7DNv5Zt/rVuvvlmAO67776nc9VVV1111VVX/XtQueqqq6666qqrrvpvds011zz4m77pm57+tKc9jR//8R9HEs9NEs9NEgAnTpzgrd/6rQG46667+Nmf/Vn+JZL4n0oSALb5ryQJ2/xfYZsXlW1eVLb517DNv4Zt/jVs869lm38t2/xb2Obf4+zZs8/gqquuuuqqq6769yC46qqrrrrqqquu+m90zTXXPPjDP/zDv+tpT3sa3/7t384DSeK5SQJAEvd767d+ax784Adz11138bM/+7P8SyTxv4Ek/j0kcdV/L9v8a9jmX8M2/1q2+deyzb+Fbf4tbHPs2DEAzp49eytXXXXVVVddddW/B8FVV1111VVXXXXVf6MP//AP/67FYvHa3/7t3w6AJAAkcT9JAEjiub3P+7wPD37wg9nf3+dnf/Zn+b9GElc9m21eFLZ5UdnmRWWbF5Vt/jVs869hm38t2/xr2ebfwjb/FrYBOHbsGAD33XffrVx11VVXXXXVVf8eBFddddVVV1111VX/TT73cz/3txaLxWt/+7d/OwCSeG6SeG6SAHif93kfHvzgB7O/v88P/MAP8KKQxP82kvi3ksT/Brb572CbF5VtXlS2+dewzb+Gbf61bPOvZZt/C9v8a9nGNlddddVVV1111X84gquuuuqqq6666qr/Bp/7uZ/7WzfccMNrf/u3fzvPTRLPTRIAkgB4n/d5Hx784Aezv7/Pb/3Wb/GikMT/VpL4t5LEi0oSLwpJXPUfwzb/2Wzzr2Wbfy3b2OZfyzbP7dixYwDcd999t3LVVVddddVVV/17ULnqqquuuuqqq676L/a5n/u5v3XDDTe89rd927dxP0k8N0kASOKB3ud93ocHP/jBAPzWb/0Wd911F/8SSfxvJwkA21z1gtnmRWGbF5VtXlS2+c9km38N2/xr2eZfyzb/FrZ5bseOHQPgvvvuu5Wrrrrqqquuuurfi+Cqq6666qqrrrrqv9CHf/iHf9eLvdiLvfaP//iPs7u7y3OTBIAknpsk3uZt3oYHP/jBAPzsz/4sd911F//fSOJfSxL/29nmv4NtXlS2+dewzb+Gbf41bPOvZZt/Ldv8W9jm+Tl27BgAZ8+evZWrrrrqqquuuurfi+Cqq6666qqrrrrqv8g7vuM7ftbrvM7rvPe3fdu38fSnP537SQJAEs9NEvd77dd+bV76pV8agJ/92Z/lrrvu4kUhif9rJPGfRRJX/eezzb+Gbf41bPOvZZt/Ldv8W9jmBTl27BgA9913361cddVVV1111VX/XgRXXXXVVVddddVV/wVe53Ve573f6Z3e6bO/7du+jac97WncTxLPTRIAkrjfy7zMy/A6r/M6APzsz/4sd911Fy8KSfxfJYl/DUn8X2ebF4VtXhS2eVHZ5kVlm38N2/xr2OZfyzb/Wrb5t7DNVVddddVVV131X4bKVVddddVVV1111X+yF3uxF3vtD//wD/+ub/u2b+NpT3saknhukgCQxHN7yEMewtu8zdsA8Fu/9VvcddddvCgk8Z9FEv9WtvmPIgnbvKgkYZt/iSRs88JIwjZXgW3+s9jmX8M2/1q2+deyzb+Fbf4lx44dA+C+++67lauuuuqqq6666t+LylVXXXXVVVddddV/ohd7sRd77c/93M/9rR//8R/naU97Gg8kCQBJPDdJADz4wQ/mfd7nfQD4rd/6LZ74xCfyopDEfzRJ/EeQxAPZ5t9DErZ5UUnCNv8VJGGb/0ls86KwzX8G27yobPOfzTb/Wrb517LNi+rYsWMAnD179hlcddVVV1111VX/XlSuuuqqq6666qqr/pO82Iu92Gt/7ud+7m/9+q//On/xF38BgCQAJPHcJPFAD37wg3nf931fAJ74xCfyxCc+kReFJP6jSOI/myTuZ5t/C0nY5j+SJGxz1QtnmxeVbf4z2eZfwzb/Wrb517LNVVddddVVV13134bgqquuuuqqq6666j/BNddc8+DP/dzP/a2/+Iu/4Dd+4zcAkMRzk8Rzk8Tx48d53/d9XwCe+MQn8lu/9Vv8V5KEJP6rSUIS/xaSkMSLQhL/ESTxX8E2/xLb/EexzX832/xr2OZfwzb/Wrb517LNv9Ytt9wCwD/8wz/8NlddddVVV1111b8XwVVXXXXVVVddddV/sGuuuebB3/RN3/T0pz3tafz4j/84z00SAJK4nyQAJHH8+HE+9mM/FoC77rqL3/qt3+JFJYl/D0lI4r+bJCTxbyGJF4Uk/iWS+L/ENv+RbPOiss2Lyjb/Grb517DNv5Zt/rVsc9VVV1111VVX/bcjuOqqq6666qqrrvoPdM011zz4wz/8w7/raU97Gt/6rd/K/SQBIInnJon7HT9+nPd5n/cB4K677uJnf/ZneVFJ4t9KEpL4n0YSkvjXksRV/3PY5kVlm38N2/xr2OZfyzb/Wrb5t7DNsWPHALjvvvtu5aqrrrrqqquu+vciuOqqq6666qqrrvoP9OEf/uHftVgsXvtbv/VbkQSAJJ6bJJ7biRMneJu3eRtOnDjBXXfdxc/+7M/yopLEv4UkJPE/nSQk8a8hiX+JJP4lknhhJPHCSOJ/E9u8KGzz3802/9ls869lm38L21x11VVXXXXVVf/hCK666qqrrrrqqqv+g3zu537ub91www2v/a3f+q1I4rlJ4rlJAkASb/M2b8NDHvIQ9vf3+dmf/VleVJL415KEJP63kYQkXlSS+JdI4qr/PLZ5UdnmP5Nt/jVs869lm38L2wAcO3YMgPvuu+9Wrrrqqquuuuqq/whUrrrqqquuuuqqq/4DfO7nfu5v3XDDDa/9JV/yJTyQJJ6bJAAkcb/3eZ/34SEPeQj7+/v8wA/8AP+ZJPEfTRIvCtv8R5AEgG3+JZKwzQsjCdu8IJKwzf9mtvmPYpv/brb517DNv4Zt/rVs829hm/vdcsstAJw9e/ZWrrrqqquuuuqq/whUrrrqqquuuuqqq/6dPvdzP/e3brjhhtf+sR/7MQAk8dwkASCJ5/a+7/u+POQhD2F/f5/f/M3f5F9DEv8akvj3ksS/lSSeH9v8W0jCNv8SSdjmP4skbPO/nW3+I9nmRWWbF5Vt/jVs869hm38t2/xb2Ob5ue+++27lqquuuuqqq676j0Bw1VVXXXXVVVdd9e/w4R/+4d/1Yi/2Yq/9Yz/2YzztaU9DEveTBIAknpskAN73fd+XhzzkIQD85m/+JnfffTcvKkm8qCQhiX8LSUhCEpL4zyAJSUjiX0sSkviXSOKFkcQLI4l/K0m8MJL4/8w2Lyrb/GvY5l/DNv9atvnXso1tntuxY8cAuO+++27lqquuuuqqq676j0Bw1VVXXXXVVVdd9W/0Oq/zOu/9Oq/zOu/9rd/6rTztaU/jgSTx3CTxQG/7tm/LQx7yEAB+5md+hrvuuosXlSReVJL415KEJCTxX00SkpDEv4Yk/iWSeGEk8W8lif8utvmvYpsXhW3+u9nmP5tt/rVs84IcP34cgLNnzz6Dq6666qqrrrrqPwLBVVddddVVV1111b/Bi73Yi732h3/4h3/Xt3zLt/C0pz0NAEk8N0kASOJ+knid13kdXuZlXgaAn/mZn+Guu+5CEi8KSbyoJPGvIQlJ/E8hCUm8qCTxL5HECyOJF0QS/x0k8X+VbV5UtvnPZJt/Ddv8a9nmqquuuuqqq676L0Xlqquuuuqqq6666l/pxV7sxV77cz/3c3/rW77lW3j605/Oc5MEgCSemyRe5mVehtd93dcF4Gd+5me46667eFFJ4kUhiX8NSfxPJon72eaFkQSAbV4QSdjmqmezzX8U2/xHs82/hm3+NWzzr2Gbfy3b/EuOHTsGwH333XcrV1111VVXXXXVfwQqV1111VVXXXXVVf8KL/ZiL/ban/u5n/tbP/qjP8rTnvY0JAEgCQBJPDdJ3O8hD3kIb/u2bwvAz/zMz3DXXXcBIIn/KJJ4UUniP4Ik/jVs828lCQDbvDCSsM0LIgnbPD+SsM3zIwnbPD+SsM3zIwnb/G9mm/9ItvnPYJt/Ddv8Z7PNi+LYsWMAnD179lauuuqqq6666qr/CFSuuuqqq6666qqrXkQv9mIv9tqf+7mf+1u/9mu/xl/8xV8gCQBJPDdJPLeHPvShvO/7vi8Av/mbv8ldd93Fv4Yk/iWSeFFI4t9KEv9eknhutvnXkIRtXhhJ2OYFkYRtnh9J2Ob5kYRt/iNJwjb/GWzzv5lt/rPY5l/LNv9Zjh07xlVXXXXVVVdd9R+K4KqrrrrqqquuuupFcM011zz4cz/3c3/rL/7iL/j1X/91JPHcJPHcJAHw0Ic+lPd93/cF4M/+7M944hOfyP0k8S+RxL9EEi8KSfxrSEISkpDEfxZJSEISknhRSEISL4wkXhhJvCCS+NeSxAsiif8MkvifwjYvCtv8Z7DNfybb/GvZ5l/rvvvuu5Wrrrrqqquuuuo/ApWrrrrqqquuuuqqf8E111zz4M/5nM/5rac97Wn86I/+KA8kiecmCQBJADzkIQ/hfd/3fQF44hOfyJ//+Z/zryGJf4kk/iWSeFFJ4r+bJO5nmxdGEgC2eX4kAWCb50cStvnXkIRt/r+wzX8H27yobPOvYZt/Ddv8a9nmRXXs2DEA7rvvvlu56qqrrrrqqqv+oxBcddVVV1111VVX/Qs+/MM//Lv29/cf/C3f8i0ASAJAEveTBIAkHuj48eO83/u9HwB33XUXv/mbv8kDSeKFkcS/RBL/Ekm8KCQhif9pJCGJf4kkXhhJvCCSeH4k8a8lif+PbPOisM1/N9v8a9jmX8s2/xrHjh0D4OzZs7dy1VVXXXXVVVf9R6Fy1VVXXXXVVVdd9UJ87ud+7m/N5/PX/tZv/VYAJPHcJPHcJHH8+HE+/uM/HoC77rqLn/mZn+GBJPHvJYkXRhIvCkn8W0ni38o2/xqSALDNCyIJANs8P5KwzfMjCds8N0nY5rlJwjb/GpKwzfMjCds8P5KwzX8G2/xPZJsXlW1eVLb517DNv5Zt/rV2dnYAuO+++27lqquuuuqqq676j0Jw1VVXXXXVVVdd9QJ87ud+7m/dcMMNr/2t3/qtPDdJPDdJ3O/48eO83du9HQB33XUXP/MzP8O/liReGEm8MJL4l0hCEi8qSUhCEpKQxL+HJCQhCUlI4kUhCUm8MJJ4QSTxryWJ50cSz48krnpetvmPZpv/SWzzr2Wbq6666qqrrrrqPwWVq6666qqrrrrqqufjcz/3c3/rhhtueO0v+qIvQhIAknhuknhukni7t3s7HvKQh7C/v8/P/MzP8Nwk8cJI4oWRxAsjiRdGEi8qSfxXksT9bPPCSALANs+PJGzz/EjCNs9NEra56r+Xbf4z2OZfwzb/Grb517INwPHjxwG47777buWqq6666qqrrvqPQnDVVVddddVVV131XD78wz/8u2644YbX/pEf+REk8dwkASCJ+0kCQBLv937vx0Me8hD29/f5/u//fv61JPHCSOIFkYQkXhBJSOJfIglJSOK/kyQkIYkXRhKSeH4kIYnnRxLPjySeH0k8P5J4fiTx/EjiBZHE/0a2+e9gmxeVbf41bPOvYZt/Ldvc79ixYwCcPXv2GVx11VVXXXXVVf9RCK666qqrrrrqqqse4B3f8R0/63Ve53Xe+0d+5Ed42tOexv0kASCJ5yaJ+73f+70fD3nIQ9jf3+dnfuZneH4k8YJI4oWRxAsiiRdGEv8SSUjiX0MSkpCEJCQhCUlIQhKSkIQkJCEJSfxrSEISL4wkXhBJPD+SeH4k8fxI4v8b2/xHsM2Lwjb/3Wzzr2Gbfy3bXHXVVVddddVV/+moXHXVVVddddVVVz3T67zO67z3O73TO332N3/zN/O0pz0NSQBI4rlJ4rm9//u/Pw95yEPY39/nN3/zN9nf3+e5SeLfShIviCReEEm8MJL415DEfxRJPDfbvDCSALDN8yMJANs8N0nY5rlJwjbPTRK2eVFIwjbPTRK2eW6SsM2/hiRs868lCdv8X2ObF5VtXlS2+c9mm+f2oAc9CIB/+Id/+G2uuuqqq6666qr/KARXXXXVVVddddVVwIu92Iu99od/+Id/1zd/8zfztKc9DUk8N0k8N0kAvN3bvR0PechDAPjN3/xN7rrrLv61JPGCSOIFkcQLIokXRhL/EklIQhKS+M8mCUlIQhIviCQk8YJI4vmRxPMjiedHEs9NEs+PJP4jSOJfSxL/F9jmP5pt/jPZ5l/DNlddddVVV1111X8ZKlddddVVV1111f97L/ZiL/ban/u5n/tbP/qjP8rTnvY0HkgSz00SAJIAeN3XfV1e9mVfFoCf+Zmf4a677uL5kcQLIokXRBIviCSeH0m8MJJ4YSTx7yWJB7LNv4UkAGzz/EgCwDbPTRIAtnkgSQDY5oEkYZvnJgnbPJAkbPOikIRtnpskbPO/nW3+Jbb5j2Sb/wy2+dewzb+GbV6QY8eOAXDffffdylVXXXXVVVdd9R+FylVXXXXVVVdd9f/ai73Yi732537u5/7Wr/3ar/Hnf/7nAEjiuUkCQBIP9LIv+7K83uu9HgA/8zM/w1133cXzI4kXRBIviCSeH0m8IJJ4QSTxwkjiRSWJfw1JvDC2eWEkcT/bPDdJANjmuUnCNs9NErZ5IEnY5kUhCds8kCRsc9X/DLZ5UdnmX8M2V1111VVXXXXV/3hUrrrqqquuuuqq/7euueaaB3/u537ub/35n/85v/ZrvwaAJO4nCQBJPDdJPOQhD+Ht3u7tAPjpn/5p7r77bv61JPGCSOL5kcQLIonnRxIvjCT+JZL4zySJB7LNCyIJANs8N0kA2OaBJGGb5yYJ2zyQJGzzQJKwzYtCErZ5IEnY5kUlCds8N0nY5v8i27wobPPfzTb/WrZ5QW655RYA/uEf/uG3ueqqq6666qqr/iMRXHXVVVddddVV/y9dc801D/6mb/qmpz/1qU/lR3/0R3luknhukrjfQx7yEN7//d8fgN/8zd/k7rvv5gWRxL+WJJ4fSTw/kpDE8yOJF0QSknhBJCEJSfxXk4QkJPGCSEISz48knpskJPHcJPHcJPHcJPHcJPHvIYmr/nPY5kVlm/9Mtnlhjh8/DsB99913K1ddddVVV1111X8kKlddddVVV1111f8711xzzYM//MM//Lue+tSn8s3f/M1IAkASz00Sz+2hD30o7//+7w/An/3Zn/GEJzwBSfxrSeL5kcTzI4nnRxLPjyReEEm8IJJ4UUniP4ptXhBJ3M82z00SALZ5IEkA2OaBJGGbB5KEbR5IErZ5IEnY5oEkYZsHkoRtHkgStvnPIgnb/E9jm/8otvnvZpt/DdtcddVVV1111VX/bQiuuuqqq6666qr/dz78wz/8u+bz+Wt/8zd/M5J4bpJ4bpIAeOhDH8r7v//7A/CEJzyBP/uzP0MSL4gknh9JPD+SeH4k8fxI4vmRxPMjCUk8P5KQxAsjCUlIQhL/kSQhCUlI4gWRhCSeH0k8P5J4bpJ4bpJ4bpJ4bpL4jySJ50cSz48k/q+xzX8k27yobPOiss2/hm1eFMeOHQPgvvvuu5Wrrrrqqquuuuo/EsFVV1111VVXXfX/yud+7uf+1g033PDa3/zN38wDSQJAEveTBIAkAE6cOMH7v//7A3DnnXfym7/5m7wwknh+JPH8SOL5kcTzI4nnJglJPDdJSOL5kYQkXhBJSEIS/1qSkIQk/rUkIQlJPD+SkMRzk4Qknpsknpsknpsknpsk/iWSeG6SeG6S+O8giauel23+Jzh27BgAZ8+efQZXXXXVVVddddV/JCpXXXXVVVddddX/G5/7uZ/7WzfccMNrf+EXfiEAkgCQxHOTxAOdOHGCT/iETwDgzjvv5Gd+5mcAkMR/BEk8P5J4fiTx3CTx/Eji+ZHECyKJf4kk/jUk8cLY5gWRxP1s80CSALDNA0kCwDb3kwSAbe4nCds8kCRs88JIwjYPJAnbPJAkbPNAkrDNA0nCNv8dJGGb/+ls86KwzX8G2/xr2Oaqq6666qqrrvpvR+Wqq6666qqrrvp/4XM/93N/6/rrr3/tH/mRHwFAEs9NEs9NEidOnODt3u7tALjzzjv5mZ/5Gf4lknh+JPGiksTzI4nnJonnJonnRxLPjyReGEn8Z5LEA9nm+ZEEgG0eSBIAtnkgSdjmgSRhm/tJwjYPJAnb3E8StnkgSdjmP5MkbPPcJGGb5yYJ21z1L7PNi8o2/xq2+dc4duwYAPfdd9+tXHXVVVddddVV/5EIrrrqqquuuuqq//M+/MM//Lte7MVe7LV/9Ed/lKc+9ak8kCSemyQe6O3e7u146EMfyp133snP/MzPcD9JPD+SeH4k8fxI4rlJ4rlJQhLPTRLPTRLPTRKSeG6SkMTzIwlJSOJfIglJSEISkpCEJCQhCUlIQhKSeGEkIQlJPD+SkMRzk8Rzk8Rzk8QDSeK5SeKBJPHcJPFAknhuknhuknhukvj/yDb/Etu8KGzz3802/1rHjx8H4OzZs7dy1VVXXXXVVVf9R6Jy1VVXXXXVVVf9n/aO7/iOn/U6r/M67/1N3/RNPO1pTwNAEs9NEs9NEu///u/PQx/6UPb39/mZn/kZ7ieJfw1JPD+SeG6SeG6SeG6SeG6SeH4k8dwk8YJI4oWRxH8ESTw32zw3SdzPNg8kCQDb3E8SALa5nyQAbHM/SdjmfpKwzQNJwjb3k4RtXhhJ2OY/iiRs8z+Rbf43ss2Lyjb/mWxz7NgxAO67775bueqqq6666qqr/iMRXHXVVVddddVV/2e9zuu8znu/0zu902d/0zd9E0972tMAkMT9JAEgiftJAkAS7//+789DH/pQ9vf3+b7v+z5eFJJ4UUniuUniuUniuUniuUniuUlCEg8kCUk8N0lIQhLPTRKSkIQk/jNJQhKSkMRzk4QknpskJPFAknhuknggSTyQJJ6bJB5IEg8kiX+JJJ6bJJ6bJF5UkvjXkMR/Ndv8V7HNfzTb/GvY5l/DNlddddVVV1111X8qKlddddVVV1111f9JL/ZiL/baH/7hH/5d3/RN38TTnvY0npsknpsk7vf+7//+PPShD2V/f5/f+I3f4IEk8fxI4vmRxHOTxHOTxHOTxHOTxHOTxHOTxHOTxHOTxPMjiX+JJP6j2Ob5kcT9bHM/SQDY5oEkYZv7SQLANveThG3uJwnb3E8StnkgSdjmfpKwzf0kYZv7ScI2DyQJ2/xbSMI2LwpJ2Oaq5882/xls869hG4Bjx44BcPbs2Wdw1VVXXXXVVVf9R6Ny1VVXXXXVVVf9n/NiL/Zir/25n/u5v/XDP/zDPPWpT0USAJJ4bpJ4bu/wDu/AQx/6UAB+4zd+g7vuuot/K0k8N0k8N0k8N0k8N0k8N0k8kCSemySemySeH0m8IJL4zyKJB7LNc5MEgG3uJwkA29xPEgC2uZ8kbHM/SdjmfpKwzf0kYZt/DUnY5n6SsM0LIwnbPJAkbHPVFbb572Cb/yy2ud/x48cBuO+++27lqquuuuqqq676j0blqquuuuqqq676P+XFXuzFXvtzP/dzf+tXf/VX+fM//3Mk8dwk8dwkAfB6r/d6vOzLviwAP/3TP81dd93FA0ni+ZHEc5PEi0ISz00Sz00SDySJ5yaJB5LEc5PE8yOJ50cS/xJJ/HvY5rlJ4n62eSBJANjmfpIAsM39JGGb+0kCwDYAkgCwDYAkbHM/SdjmfpKwzf0kYZt/DUnY5j+KJGzz7yUJ2/xXs81/BNu8KGzzn8E2/1bHjh0D4L777ruVq6666qqrrrrqPxrBVVddddVVV131f8Y111zz4M/93M/9rT/7sz/jV3/1V3kgSTw3STzQy73cy/H6r//6APz0T/80d911Fy8KSbyoJPEvkcRzk8QDSeK5SeKBJPHcJPFAkpCEJB5IEpKQxHOThCQkIQlJ/HtJQhKSkMRzk4QkJPFAkpDEA0lCEveThCQeSBIPJIn7SeKBJPFAknggSTyQJB5IEv8SSTw3STw3SbyoJPFfQRL/F9nmRWWbfw3bXHXVVVddddVV/2WoXHXVVVddddVV/ydcc801D/6cz/mc33rqU5/Kj/zIjwAgCQBJ3E8SAJK4nyQe+tCH8vZv//YA/PRP/zR33XUXz00SLypJPDdJPDdJPJAknpskHkgSDySJ5yaJB5LEc5PEc5PE8yOJf4kk/rVs8/xI4oFscz9JANjmfpIAsM39JGGb+0nCNveThG3uJwnbAEjCNveThG3uJwnb3E8StrmfJGxzP0nY5n6SsM1/B0nY5l9DErb53842/91s89yOHTsGwH333fd0rrrqqquuuuqq/2hUrrrqqquuuuqq//WuueaaB3/4h3/4d+3v7z/4m77pmwCQxHOTxHOTxEMf+lA+4AM+AIDf/M3f5K677uK5SeL5kcRzk8Rzk8Rzk8QDSeK5SeKBJPFAknggSTyQJJ6bJB5IEs+PJF4QSfxHkMRzs81zkwSAbe4nCQDb3E8SALYBkASAbQAkAWAbAEnY5n6SsA2AJGxzP0nY5n6SsM39JGGbF5UkbHM/SdjmgSRhmweShG0eSBK2+b/INv8S2/xHss2LyjYvKts8P8ePHwfg7Nmzz+Cqq6666qqrrvqPRuWqq6666qqrrvpf78M//MO/az6fv/Y3fdM38dwk8dwkcb+HPvShfMAHfAAAf/qnf8oTnvAEXlSSeG6SeG6SeG6SeCBJPDdJPJAkHkgSDySJB5LEA0niuUnigSTx/EjiXyKJfy3bPDdJPJBt7ieJ+9kGQBIAtrmfJGxzP0nY5n6SsA2AJGxzP0nYBkAStrmfJGxzP0nY5vmRhG3uJwnbvDCSsM1/FEnY5qr/HLb5j3Ds2DEAzp49eytXXXXVVVddddV/NIKrrrrqqquuuup/tc/93M/9reuvv/61v+mbvon7SeK5SeK5PexhD+MDPuADAHjCE57An//5n/P8SOLfShLPTRIPJInnJokHksQDSeKBJHE/SUjigSTxQJKQxP0kIYnnJglJPDdJSEISkpDEv4UkJCEJSUjiuUlCEpJ4IElI4n6SkMT9JCGJ+0nigSRxP0k8kCTuJ4kHksQLIokHksQDSeKBJPEvkcRzk8Rzk8SLShLPjyT+r7LNi8I2/xls84IcP34cgPvuu+9Wrrrqqquuuuqq/2hUrrrqqquuuuqq/7U+93M/97euv/761/6CL/gCJPHcJPHcJAFw4sQJPuADPgCAO++8k9/4jd9AEi8qSTw3SfxLJPFAknhuknggSdxPEg8kiQeSxANJ4oEk8UCSeG6SeG6S+JdI4t/CNg8kiQeyzf0kAWCb+0kCwDYAkgCwDYAkbAMgCQDbAEjCNgCSALANgCRsAyAJ29xPErYBkIRt7icJ29xPErZ5UUnCNlf9z2abF5Vtrrrqqquuuuqq/zYEV1111VVXXXXV/0of/uEf/l3XX3/9a//wD/8wkrifJAAkcT9JAEgC4MSJE3zSJ30SAHfeeSc//dM/jSSeH0k8N0k8N0k8N0k8kCT+JZK4nyQkcT9JPJAkHkgSDySJ+0lCEveThCQeSBKSeCBJSOK5SUISkpCEJP6tJCEJSUhCEg8kCUlI4n6SkMQDSeKBJHE/SUjifpK4nyQeSBL3k8T9JPFAkrifJB5IEi+IJB5IEv8SSTw3SbwoJPF/mW3+o9jmv8OxY8cAuO+++27lqquuuuqqq676j0Zw1VVXXXXVVVf9r/OO7/iOn/U6r/M67/3DP/zDPPWpT+V+knhuknigEydO8A7v8A4A3Hnnnfz0T/80L4gkXhSSeG6SeCBJPDdJPJAk7ieJB5LEA0nifpKQxP0kIYn7SeKBJPFAkpDE/SQhCUncTxKSkIQkHkgSkpCEJCQhCUlIQhKSkIQkJCEJSUhCEs9NEpKQxANJQhL3k4Qk7icJSdxPEpK4nyTuJ4n7SeKBJHE/SdxPEi+IJF4QSTyQJB5IEg8kiX8LSVz1vGzzH8k2LyrbvDDHjh0D4L777ruVq6666qqrrrrqPwOVq6666qqrrrrqf5XXeZ3Xee93eqd3+uxv/MZv5KlPfSqSeG6SeG6SAHiHd3gHHvrQh3LnnXfy0z/90wBI4kUliX+JJP4lknggSdxPEg8kiQeSxP0k8UCSuJ8kHkgSDySJB5LEA0ni+ZHEi0ISz802z48knpttACRxP9sASALANgCSALANgCQAbAMgCdsASMI2AJKwDYAkbHM/SdgGQBK2AZCEbQAkYZv7ScI2AJKwzf0kYZt/K0nY5j+KJGzzopKEbf4r2ea/im3+Oxw/fhyAs2fP3spVV1111VVXXfWfgcpVV1111VVXXfW/xou92Iu99od/+Id/1zd+4zfy1Kc+FUncTxLPTRIP9IEf+IE89KEPZX9/n5/+6Z/mhZHEc5PEc5PEA0niuUnigSTxQJK4nyQeSBIPJIn7SeJ+knggSdxPEg8kiQeSxANJ4rlJ4vmRxL+GJF4Y29xPEvezDYAkAGwDIAkA2wBIAsA2AJKwDYAkbAMgCdsASMI2AJIAsA2AJGwDIAnbAEjCNgCSsM3zIwnbPD+SsM39JGGb+0nCNi+MJGzzQJKwzQNJwjYvCknY5r+Cbf63sc2Lyjb/kmPHjgFw33333cpVV1111VVXXfWfgcpVV1111VVXXfW/wou92Iu99ud+7uf+1jd+4zfy1Kc+lRdEEs9NEh/4gR/IQx/6UPb39/ne7/1e7ieJfytJ/Esk8UCSeCBJ3E8SDySJ+0nigSRxP0ncTxIPJIn7SeKBJPFAknggSTw3SbwwkvjXsM0DSeJ+trmfJABsAyAJANsASALANgCSsA2AJABsIwkA20gCwDaSALANgCRsAyAJ2wBIwjYAkrANgCRsAyAJ2zw/krDN/SRhmxeVJGxz1RW2+ZfY5r+Dba666qqrrrrqqv8RqFx11VVXXXXVVf/jvdiLvdhrf+7nfu5v/dAP/RBPfepTAZDE/STx3CRxvw/8wA/koQ99KPv7+/zGb/wG/xJJPDdJPJAknpskHkgSDySJB5LE/STxQJK4nyQeSBL3k8T9JHE/STyQJO4niQeSxANJ4oEk8dwk8R9BEs/NNgCSuJ9tACRxP9tIAsA2AJIAsI0kAGwDIAnbAEjCNgCSsA2AJGwDIAnbvDCSsA2AJGwDIAnbAEjCNveThG2eH0nY5n6SsM0LIwnbPJAkbPMvkYRt/r0kYZv/rWzzorDNf7Rjx44BcN99993KVVddddVVV131n4HKVVddddVVV131P9o111zz4M/93M/9rT/7sz/jz//8z3lukrifJAAkcb93fMd35KEPfSgAv/Ebv8Gdd97J/STx3CTx3CTxL5HEA0nigSTxQJK4nyQeSBL3k8T9JPFAkrifJO4niftJ4oEkcT9J3E8SDySJ5yaJ50cS/xFsAyCJB7KNJO5nGwBJANhGEgC2AZCEbQAkYRsASdgGQBK2AZCEbQAkYRsASdhGErYBkIRt/iWSsA2AJGzz/EjCNveThG3uJwnb3E8StvnXkoRtXhSSsM1V/za2eVEdO3YMgLNnzz6Dq6666qqrrrrqPwOVq6666qqrrrrqf6xrrrnmwd/0Td/09Kc85Sn88A//MPeTxHOTxHN7x3d8R17u5V4OgJ/+6Z/mzjvv5H6SeFFI4rlJ4oEk8UCSeCBJPJAk7ieJB5LE/SRxP0k8kCTuJ4n7SeJ+krifJO4niQeSxP0k8UCSeG6SeEEk8a9hm/tJ4oFsAyAJANsASALANgCSsA2AJABsIwkA20jCNgCSsA2AJGwDIAnbAEjCNg8kCdsASMI2AJKwDYAkbPP8SMI2AJKwzf0kYZt/K0nY5j+bJGzz/5Ftrrrqqquuuuqq/5UIrrrqqquuuuqq/5GuueaaB3/4h3/4dz3lKU/hG7/xG7mfJO4niecmCYCXe7mX4+Ve7uUA+Omf/mnuvPNO/iWS+JdI4l9DEg8kiRdEEveTxP0kcT9JSAJAEpIAkIQk7ieJ+0nifpK4nyQkASAJSdxPEpK4nyQkIYn7SUISkpCEJP61JCEJSUhCEveThCQkASAJSUgCQBKSAJCEJO4niftJAkASkgCQhCQAJHE/SdxPEgCSuJ8k7ieJ+0nifpK4nyReEEm8IJJ4IEk8kCT+JZJ4bpJ4bpL4zySJF0QS/5ls8y+xzX8k27yobPOgBz0IgPvuu+9Wrrrqqquuuuqq/wxUrrrqqquuuuqq/5E+/MM//Ltms9lrf+M3fiOSeGEk8UAv93Ivxzu+4zsC8NM//dPceeedPJAknpsknpsk/iWSeCBJvCCSeCBJ3E8S95PE/SRxP0ncTxL3k8T9JHE/SdxPEveTxP0kcT9JPJAkHkgSz48k/iPYBkAS97MNgCQAbAMgCQDbSALANpIAsI0kAGwjCdsASMI2AJKwjSRsAyAJ2wBIwjaSsA2AJGwDIAnbAEjCNgCSsA2AJGwDIAnbPD+SsM2/lSRsc9X/DrZ5oLNnz97KVVddddVVV131n4HKVVddddVVV131P87nfu7n/tZsNnvtb/zGb+SBJHE/STw3STz0oQ/lHd/xHQH4jd/4De68807+LSTx3CTxQJJ4IEk8kCTuJ4kHksT9JHE/SdxPEveTxP0kcT9J3E8S95PE/SQBIIn7SeJ+knggSdxPEs9NEs+PJP4tbAMgiQeyjSTuZxtJANgGQBIAtpEEgG0kYRsASdhGEgC2kYRtACRhG0nYBkAStgGQhG0kYRsASdgGQBK2AZCEbZ6bJGwDIAnbAEjCNs+PJGxzP0nY5n6SsM0LIwnb/FtIwjZXgW1eFLb51zp+/DgA9913361cddVVV1111VX/GQiuuuqqq6666qr/UT73cz/3t66//vrX/sZv/EYAJPHcJHE/SdzvoQ99KB/0QR8EwK//+q/zhCc8gecmiecmiX+JJB5IEg8kiQeSxP0k8UCSuJ8k7ieJ+0nifpK4nyTuJ4n7SQJAEpIAkIQkACRxP0ncTxL3k4QkACQhiftJQhKSAJCEJCQhCUk8kCQkIQlJSEISkpDEA0lCEpKQxP0kIQlJAEhCEgCSkMT9JHE/SQBIQhIAkrifJAAkcT9JAEjifpK4nyQAJHE/SdxPEs9NEi8KSdxPEg8kiX8NSfxLJPHcJPGiksTzI4n/Srb597LNfwfbXHXVVVddddVV/2WoXHXVVVddddVV/2N87ud+7m9df/31r/2N3/iNPDdJPDdJ3O9hD3sYH/RBHwTA4x//eJ74xCfyopDEc5PEA0nigSTxQJJ4IEncTxIPJIn7SeJ+krifJO4niftJAkAS95PE/SRxP0kASOJ+krifJO4niftJ4n6SeCBJPDdJ/FtI4vmxjSQeyDaSALCNJABsIwkA20gCwDaSALCNJGwjCQDbSMI2krANgCRsIwnbAEjCNg8kCdsASMI2DyQJ2wBIwjYAkrANgCRs8/xIwjbPjyRscz9J2OaFkYRt/r+xzX8E27wobPOvdfz4cQDuu+++W7nqqquuuuqqq/6zEFx11VVXXXXVVf8jfPiHf/h3vdiLvdhr/9AP/RAXLlwAQBLPTRLP7eTJk3zQB30QAHfeeSe/8Ru/wfMjiX+JJP41JPFAknhBJHE/SdxPEveTxP0kcT9JAEjifpK4nyQAJCEJAEncTxIAkpAEgCQkASAJSQBIQhIAkpCEJAAkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhL3k4QkJHE/SUgCQBKSAJCEJAAkIQkASUgCQBIAkrifJAAkASAJSQBIAkAS95MEgCTuJ4nnJon7SeJ+krifJO4niftJ4gWRxL+GJP4lknhuknhukrjqP5Zt7nfs2DEAzp49eytXXXXVVVddddV/FipXXXXVVVddddV/u3d8x3f8rNd5ndd572/4hm/gqU99KgCSuJ8knpskAE6cOMEnf/InA3DnnXfyUz/1U0jiuUniuUniXyKJB5LECyKJB5LE/SRxP0ncTxL3k8T9JHE/SQBI4n6SuJ8kACRxP0kASOJ+kgCQxP0kcT9J3E8S95PEA0niuUni38o2kngg20jifraRBIBtJAFgG0kA2EYSALaRhG0kYRtJANhGEraRhG0AJGEbSdhGErYBkIRtJGEbAEnYRhK2AZCEbQAkYZsXlSRsAyAJ2zw/krDN/SRhmxdGEra56j+Hbf4tjh07BsB99913K1ddddVVV1111X8WKlddddVVV1111X+ra6655sHv9E7v9Nnf8A3fwFOf+lSemyTuJ4kHOnHiBO/0Tu8EwJ133slP/dRP8e8hiQeSxANJ4oEkcT9JPJAk7ieJ+0nifpK4nyTuJwkASdxPEveTBIAk7icJAEncTxIAkrifJAAkcT9J3E8S95PE/STxQJJ4fiTxr2EbSTyQbSRxP9tI4rnZRhIAtpEEgG0kYRtJ2EYSALaRhG0kYRtJ2AZAEraRhG0kYRsASdhGErYBkIRtJGEbAEnY5oEkYRsASdgGQBK2eX4kYRsASdjmfpKwzQsiCdv8Z5GEbf43s82/xDb/kWzzQMePH+eqq6666qqrrvpPR+Wqq6666qqrrvpv9eEf/uHf9UM/9EM85SlPQRIAknhukrifJADe8R3fkYc+9KHceeed/NRP/RQAknhuknhuknggSTyQJB5IEg8kiRdEEveTxP0kcT9J3E8S95MEgCTuJ4n7SQJAEveTBIAkACRxP0kASOJ+kgCQxP0kASCJ+0nigSTxQJJ4fiTxL7ENgCT+NWwjiQeyjSQAbCMJ20jCNpIAsI0kbCMJ20jCNpKwDYAkbCMJ20jCNgCSsI0kbPNAkrDNA0nCNgCSsA2AJGwDIAnbAEjCNs+PJGzz/EjCNv8akrDNA0nCNg8kCdu8KCRhm+cmCdv8X2SbF4VtntuxY8cA+Id/+Iff4aqrrrrqqquu+s9CcNVVV1111VVX/bd6sRd7sdd+ylOegiSemySemyQAPuiDPoiHPexh7O3t8VM/9VP8a0ji30MSDySJ+0nifpK4nyTuJ4n7SeJ+kgCQxP0kcT9JAEgCQBKSAJAEgCQAJCEJAEkASEISkpAEgCQkIQlJAEhCEgCSkIQkJCEJSUgCQBKSkIQkJPHcJCGJB5KEJCQhCUlIAkASkpAEgCQkASAJSQBIQhKSkASAJAAkIQlJSAJAEgCSAJAEgCQAJHE/SQBIAkASz00SAJK4nyQAJHE/SdxPEv8SSdxPEi+IJF4YSTyQJK666qqrrrrqqqv+H6Jy1VVXXXXVVVf9t3md13md9wK4ePEi95PEc5PEA33QB30QD3vYw9jb2+N7v/d7uZ8knpsk/iWSeCBJPJAk7ieJB5LE/SRxP0ncTxL3k8T9JHE/SQBI4n6SAJDE/SQBIIn7SQJAEgCSAJDE/SQBIAkASdxPEgCSuJ8k7ieJ+0niuUniRSGJF8Y2krifbSQBYBtJANhGEgC2kYRtJPFAtpGEbSRhG0nYRhK2kYRtJGEbSdgGQBK2kYRtJGEbSdgGQBK2kYRtHkgStgGQhG0eSBK2AZCEbf4lkrDN8yMJ2/xrSMI2/xaSsM3/Vbb5j2Kb5+f48eMA3Hfffbdy1VVXXXXVVVf9Z6Fy1VVXXXXVVVf9t3mxF3ux1/7TP/1T7ieJ+0niuUnigz7og3jYwx7G3t4ev/Ebv8ELI4nnJokHksQDSeKBJPGCSOJ+krifJO4niftJ4n6SuJ8kACRxP0kASOJ+kgCQBIAk7icJAEkASAJAEgCSuJ8kACQBIIn7SQJAEveTxANJ4oEk8e9lG0nczzaSeGFsI4kHso0kbCMJ20jCNpKwjSRsIwnbSMI2krCNJGwDIAnbSMI2krCNJGzzQJKwjSRsAyAJ2zyQJGwDIAnbAEjCNgCSsA2AJGzz/EjCNveThG3uJwnb3E8StnlhJGGbB5KEbf63sM0LY5v/CLb59zh27BgAZ8+evZWrrrrqqquuuuo/C8FVV1111VVXXfXf5sVe7MVe+6lPfSrPTRL3k8T9PuiDPoiHPexhAPzGb/wGd955J/eTxL9EEg8kiQeSxANJ4oEkcT9J/GtI4n6SuJ8kACRxP0kASOJ+kgCQBIAkACQhCQBJAEgCQBIAkgCQhCQkIQkASQBIQhKSkASAJCQBIAlJSEISkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJAEgCUlIQhIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJJ6bJAAkASAJAEncTxIAknhukrifJO4niX+JJO4nif9IkviPJImrrrrqqquuuuqq/0GoXHXVVVddddVV/y1e7MVe7LWvueaaBz/1qU8FQBIvzDu90zvxsIc9DICf+qmf4s477+SFkcS/hyQeSBL3k8QDSeJ+krifJJ6bJO4nCQBJ3E8SAJK4nyQAJAEgCQBJAEgCQBL3kwSAJAAkASAJAEkASAJAEveTBIAk7ieJB5LEA0ni38o2kvjXsI0k/r1sIwnbSMI2krCNJGwjCdsASMI2krCNJGwjCds8kCRsIwnbAEjCNi+IJGwDIAnbPD+SsA2AJGxzP0nY5n6SsM39JGGbF0YStvmPJAnbPDdJ2OZ/G9u8KGzzghw/fhyA++6771auuuqqq6666qr/LFSuuuqqq6666qr/Ftdcc82DL1y4wIULF3ggSdxPEgBv8AZvwMu//MsD8FM/9VPceeedPJAk/iWSeCBJPJAkXhBJvCCSuJ8k7ieJ+0kCQBL3kwSAJO4nCQBJ3E8SAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCTuJwkASQBI4n6SuJ8k7ieJB5LEfxTbSOK52UYSD2QbSdhGEraRhG0kYRtJ2EYStpGEbSTxQLaRhG0kYRtJ2EYStnkgSdhGEraRhG0kYRsASdhGErYBkIRtJGEbAEnYBkAStgGQhG0AJGGb50cStvnPJAnbPJAkbPN/jW3+sx07dgyA++6771auuuqqq6666qr/TFSuuuqqq6666qr/Fq/zOq/zXk996lMBkMRzkwTAy7/8y/OGb/iGAPzUT/0Ud955Jw8kiecmiQeSxANJ4oEk8UCSuJ8kHkgS95PE/SRxP0ncTxIAkrifJAAkcT9JAEjifpIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEjifpIAkMT9JHE/STyQJP4z2EYSD2QbSbyobCMJ20jCNpKwjSRsIwkA20jCNpKwjSRsIwnbSMI2z48kbCMJ2zyQJGzzQJKwDYAkbPOikoRtnh9J2OZ+krDN/SRhm/tJwjZX/ceyzQty/PhxAM6ePXsrV1111VVXXXXVfyaCq6666qqrrrrqv8WLvdiLvfaf/umfIon7SeKBHvawh/FO7/ROAPz6r/86d955J/8SSfx7SOIFkcT9JHE/SdxPEveTBIAk7icJAEncTxIAkgCQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCUlIQhKSkIQkJAEgCQBJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSAJAEgCQAJAEgCUlIQhIAkgCQBIAkACQhCQBJAEgCQBIAkgCQBIAkACTx3CQBIInnJon7SeK5SeJ+krifJF4QSfxHksS/lST+L7PNv9exY8cAuO+++27lqquuuuqqq676z0Tlqquuuuqqq676L/c6r/M67w3w1Kc+FUk8N0k87GEP44M/+IMB+PVf/3We8IQn8Nwk8S+RxANJ4oEkcT9JPJAk7ieJ+0nifpK4nyTuJ4nnJonnJgkASQBI4n6SAJAEgCQAJAEgCQBJAEhCEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQxP0kcT9JPJAk/ieyjSRsI4kHso0kbCMJ20gCwDaSsI0kbCMJ20jCNpKwjSRsIwnbSMI2DyQJ20jCNgCSsM0DScI2AJKwDYAkbAMgCdsASMI2z48kbHM/SdjmfpKwzf0kYZsXRhK2eSBJ2OZ/C9v8V7DNVVddddVVV131PwKVq6666qqrrrrqv9yLvdiLvdaf/dmfIYn7SeJ+D3vYw/jgD/5gAP7kT/6Exz/+8UjiXyKJB5LEA0nigSTxgkjifpK4nyTuJ4n7SeJ+krifJAAkcT9JAEgCQBIAkrifJAAkASAJAEkASEISAJIAkASAJAAkASAJSQBIAkASAJIAkASAJAAkcT9JAEjifpJ4IEn8Z7KNJF4Q20jCNpKwjSQeyDaSsI0kAGwjCdtIwjaSALCNJGwjCdtIwjaSsI0kbCMJ20jCNpKwjSRsAyAJ20jCNg8kCdsASMI2LypJ2AZAErb5jyIJ2/xHkYRt/iezzX+F48ePA3DffffdylVXXXXVVVdd9Z+J4Kqrrrrqqquu+i/3Yi/2Yq/9lKc8hftJ4n4Pf/jD+eAP/mAAHv/4x/Onf/qnSOK5SeLfQxIPJIn7SeJfQxL3k8T9JAEgiftJAkASAJIAkMT9JAEgCQBJAEhCEpKQBIAkACQBIAkASUhCEpIAkASAJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCGJiEASkpCEJCQhCUlIQhKSkIQkJCEJSUQEkpCEJCQhCUlIQhKSkASAJAAkASAJSUhCEpKQBIAkACQhCQBJAEhCEgCSAJDE/SQBIAkASQBIAkASAJIAkASAJAAkASCJ5yYJAEncTxLPTRL3k8T9JPGikMQDSeKBJPFAkviXSOK/iiT+rzp27BgAZ8+efQZXXXXVVVddddV/JipXXXXVVVddddV/uWuuuebBT3va03huJ06c4IM/+IMBuPPOO/n1X/91XlSSeCBJPJAkXhBJvCCSuJ8k7ieJ5yaJ+0kCQBL3kwSAJAAk8dwkASAJAEkASEISAJIAkASAJAAkIQkASQBIQhIAkgCQBIAkACQhCQBJAEjifpIAkMT9JHE/STw/knhutvnPZhtJPJBtJPFAtpEEgG0kYRtJANhGEraRhG0kYZsXlSRsIwnbSMI2DyQJ2zyQJGwDIAnbAEjCNgCSsA2AJGwDIAnb/FeShG0eSBK2eVFIwjb/G9jmX2Kbq6666qqrrrrqfwwqV1111VVXXXXVf6nXeZ3XeW+ACxcuACAJgBMnTvChH/qhANx555385E/+JACSeG6SeCBJPJAkHkgSDySJ+0nigSRxP0ncTxL3k8T9JAEgiftJAkAS95MEgCQAJHE/SQBIAkASAJKQBIAkACQBIAkASUgCQBIAkpAEgCQAJAEgCUkASAJAEgCSkASAJAAkcT9JAEjifpJ4bpJ4QSQBYJsXRBK2+deyjSQeyDaSALCNJGwjCQDbSALANpKwjSQAbCMJ20jCNgCSsI0kbCMJ20jCNpKwzfMjCdtIwjYPJAnbAEjCNv8WkrANgCRscz9J2OZ+krDN/SRhm/tJwjZX/cd60IMeBMA//MM//DZXXXXVVVddddV/JipXXXXVVVddddV/qRd7sRd7rT/7sz/jgU6cOME7v/M7c+LECe68805+8id/kv8sknhBJHE/SdxPEveTxP0kASCJ+0kCQBL3kwSAJAAkcT9JAEgCQBIAkpAEgCQAJAEgCQBJSAJAEgCSkASAJAAkIQkASUgCQBIAkgCQhCQAJAEgiftJAkAS95PEA0niRSEJ29xPErb5j2IbSQDYRhIPZBtJANhGEgC2kYRtJAFgG0nYRhIAtpGEbSRhG0nYRhK2kYRtJGEbSdjmgSRhG0nYBkAStnkgSdgGQBK2AZCEbQAkYZvnRxK2+Y8iCdtc9bxsc9VVV1111VVX/Y9CcNVVV1111VVX/Zd6sRd7sdd+6lOfCoAkAN75nd+Zhz3sYezt7fGTP/mT3E8Sz00SDySJB5LEA0niBZHE/SRxP0ncTxL3k8T9JPHcJPHcJAEgCQBJ3E8SAJIAkASAJCQBIAkASQBIQhKSkASAJCQhCUkASEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhKSiAgkIQlJSCIikIQkJBERSEISkpCEJCQhCUlIQhKSiAgkIQlJSEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSQBIQhIAkpAEgCQkASCJ+0kCQBL3kwSAJAAkASAJAEkASAJAEgCSAJDEc5PEc5PE/STxryGJF0QSDySJB5LEA0niXyKJ5yaJ5yaJ/6ls88LY5j/K8ePHAbjvvvtu5aqrrrrqqquu+s9E5aqrrrrqqquu+i/zOq/zOu99zTXXPPipT30qkgD4kA/5EB72sIext7fH93zP9/DCSOJfQxIPJIn7SeJ+kviXSOJ+krifJAAkcT9JAEgCQBLPTRIAkgCQBIAkJAEgCQBJAEhCEgCSAJCEJAAkIQkASQBIQhIAkpAEgCQkASAJAElIAkASAJIAkASAJO4niftJ4t9CErYBkIRtHkgStpGEbf4ltpEEgG0kAWAbSQDYRhIAtpEEgG0kAWAbSQDYRhK2kQSAbSRhG0nYRhK2kYRtnpskbCMJ20jCNpKwDYAkbCMJ2wBIwjYPJAnbAEjCNgCSsM3zIwnbXHXVVVddddVVV/0/Q+Wqq6666qqrrvovc+bMmQf92Z/9GRcuXEASH/IhH8LDHvYw9vb2+PVf/3UeSBL/Ekk8kCReEEncTxIviCTuJ4nnJon7SQJAEveTBIAkACRxP0kASAJAEgCSAJCEJAAkASAJAElIAkASAJKQBIAkJAEgCUkASEISAJKQBIAkJAEgCQBJSAJAEgCSAJAEgCQAJPFAknhuknhutnlRSMI2z00Stvm3sI0kAGwjCQDbSALANpIAsI0kAGwjCdsASMI2krCNJGzzQJKwjSRs8/xIwjaSsM0DScI2DyQJ2wBIwjYAkrANgCRsAyAJ2zw/krDN/SRhmxeVJGzzH0UStvnfzDYviltuuQWA++6771auuuqqq6666qr/bFSuuuqqq6666qr/Mq/zOq/z3n/1V3+FJD7kQz6Ehz3sYezt7fHrv/7r3HnnnbwwknggSTyQJB5IEveTxAsiiftJ4n6SuJ8kACRxP0kASOJ+kgCQBIAk7icJAEkASAJAEgCSkASAJAAkASAJSQBIQhIAkgCQhCQAJCEJAElIAkASkpAEgCQkASAJAElIAkASAJKQBIAk7ieJ+0nigSTxgkgCwDb3k4RtACRhm/8otpHE/WwjCQDbSALANpIAsA2AJGwDIAnbSALANpKwjSRsAyAJ20jCNpKwjSRsIwnbSMI2DyQJ20jCNg8kCdsASMI2/xaSsM2LQhK2uZ8kbPPCSMI2V71wx48fB+Af/uEffpurrrrqqquuuuo/G5Wrrrrqqquuuuq/zDXXXPPgpz71qbzTO70TD3vYwwD4tV/7Ne666y4eSBL/HpJ4QSRxP0ncTxL3k8T9JPHcJPHcJAEgiecmCQBJAEgCQBIAkpAEgCQAJAEgCUkASEISAJKQBIAkACQhCUkASEISAJKQBIAkJCEJAElIAkASAJKQBIAkACQBIIn7SeJ+knhRScI295OEbf4j2EYSLwrbSALANgCSALCNJABsIwnbAEjCNpKwDYAkbCMJ20jCNpKwjSRsIwnbSMI2krDNA0nCNpKwDYAkbPNAkrANgCRsAyAJ2wBIwjbPjyRscz9J2OZFJQnbvDCSsM0DScI2/9Vs829lm/8Itrnqqquuuuqqq/5LUbnqqquuuuqqq/5LvM7rvM57ATz84Q/nFV7hFQD4iZ/4Ce68804k8cJI4oEk8UCSeEEkcT9J3E8S95PE/SRxP0ncTxIAkrifJAAkASCJ+0kCQBIAkgCQBIAkACQhCQBJAEgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJCQBIAlJAEhCEpIAkIQkACQhCQBJAEgCQBIAkgCQxP0k8fxIAsA2z00StnlukrCNJGwjCdv8W9lGEvezjSTuZxtJ3M82kgCwjSQAbCMJANtIwjYAkrCNJGwjCdtIwjYviCRsIwnbSMI2DyQJ2zyQJGwDIAnbvKgkYZsXhSRscz9J2Oa/kiRs8z+dbV5Ux44dA+C+++67lauuuuqqq6666j8blauuuuqqq6666r/Ei73Yi732hQsXeMM3fEMAfuInfoI777wTSTyQJP41JPFAkrifJP41JHE/SdxPEgCSuJ8kACQBIIn7SQJAEgCSAJAEgCQAJHE/SQBIAkASkgCQhCQAJCEJAElIAkASkgCQhCQkASAJSUgCQBKSkASAJCQBIAlJAEhCEgCSAJAEgCTuJ4kHksRzk8QD2QZAErYBkIRtXhBJ2AZAErZ5UdlGEvezjSTuZxtJ3M82kgCwjSQAbAMgCdtIAsA2krCNJGzzQJKwjSRsIwnbPD+SsI0kbPNAkrDNCyIJ2wBIwjYAkrDN8yMJ2/xHkYRt/rNJwjb/UWzzn802AMePHwfg7Nmzz+Cqq6666qqrrvrPRuWqq6666qqrrvov8WIv9mKvffLkSQD+5E/+BIAbb7wRSTyQJB5IEi+MJO4niQeSxPMjiftJ4n6SeG6SuJ8kACTx3CQBIAkASTyQJAAkASCJ+0kCQBIAkrifJCQBIIn7SUISAJIAkASAJCRxP0lIQhL3k4QkACQBIAkASUjigSQBIAkASTw3Sfxr2Ob5sQ2AbQBscz/b2AbANgC2AbCNbe5nG9vYBsA2ALaxDYBtAGxjm/vZxjYAtgGwDYBtbHM/2wDYBsA297MNgG0AbPNAtgGwDYBtnpttAGwDYJvnxzb3s839bPP82OZ+tnkg27wwtnkg2zyQbf4ltnlutnl+bPOvYZvnxzYviG3+PWzzL7ENwPHjx7nqqquuuuqqq/7LULnqqquuuuqqq/5LnD179tZrrrnmwQCv9EqvxCu90itx1VVXXfX/1X333XfrfffddytXXXXVVVddddV/NvSgBz2Iq6666qqrrrrqP9+LvdiLvdY7vdM7fTZXXXXVVVfx9V//9e9z33333cpVV1111VVXXfWfDT3oQQ/iqquuuuqqq6666qqrrrrqqquuuuqqq676P4nKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/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/iHwFexKM0GIBbJQAAAABJRU5ErkJggg==) - - diff --git a/docs/kcl/translate.md b/docs/kcl/translate.md index cb8b5bcdf..454b0801b 100644 --- a/docs/kcl/translate.md +++ b/docs/kcl/translate.md @@ -12,12 +12,12 @@ Translate is really useful for sketches if you want to move a sketch and then ro ```kcl translate( - objects: [[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry), - x?: [number](/docs/kcl/types/number), - y?: [number](/docs/kcl/types/number), - z?: [number](/docs/kcl/types/number), - global?: [bool](/docs/kcl/types/bool), -): [[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)Or[Sketch](/docs/kcl/types/Sketch)OrImportedGeometry) + objects: [[Solid]](/docs/kcl/types/std-types-Solid) | [[Sketch]](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry), + x?: [number](/docs/kcl/types/std-types-number), + y?: [number](/docs/kcl/types/std-types-number), + z?: [number](/docs/kcl/types/std-types-number), + global?: [bool](/docs/kcl/types/std-types-bool), +): [[Solid]](/docs/kcl/types/std-types-Solid) | [[Sketch]](/docs/kcl/types/std-types-Sketch) | [ImportedGeometry](/docs/kcl/types#ImportedGeometry) ``` @@ -25,15 +25,15 @@ translate( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `objects` | [`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) | The solid, sketch, or set of solids or sketches to move. | Yes | -| `x` | [`number`](/docs/kcl/types/number) | The amount to move the solid or sketch along the x axis. Defaults to 0 if not provided. | No | -| `y` | [`number`](/docs/kcl/types/number) | The amount to move the solid or sketch along the y axis. Defaults to 0 if not provided. | No | -| `z` | [`number`](/docs/kcl/types/number) | The amount to move the solid or sketch along the z axis. Defaults to 0 if not provided. | No | -| `global` | [`bool`](/docs/kcl/types/bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No | +| `objects` | [`[Solid]`](/docs/kcl/types/std-types-Solid) or [`[Sketch]`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) | The solid, sketch, or set of solids or sketches to move. | Yes | +| `x` | [`number`](/docs/kcl/types/std-types-number) | The amount to move the solid or sketch along the x axis. Defaults to 0 if not provided. | No | +| `y` | [`number`](/docs/kcl/types/std-types-number) | The amount to move the solid or sketch along the y axis. Defaults to 0 if not provided. | No | +| `z` | [`number`](/docs/kcl/types/std-types-number) | The amount to move the solid or sketch along the z axis. Defaults to 0 if not provided. | No | +| `global` | [`bool`](/docs/kcl/types/std-types-bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No | ### Returns -[`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) - Data for a solid, sketch, or an imported geometry. +[`[Solid]`](/docs/kcl/types/std-types-Solid) or [`[Sketch]`](/docs/kcl/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl/types#ImportedGeometry) - Data for a solid, sketch, or an imported geometry. ### Examples diff --git a/docs/kcl/types.md b/docs/kcl/types.md index cf454d512..c1c4ef22f 100644 --- a/docs/kcl/types.md +++ b/docs/kcl/types.md @@ -9,10 +9,6 @@ layout: manual All these types can be nested in various forms where nesting applies. Like arrays can hold objects and vice versa. -## Boolean - -`true` or `false` work when defining values. - ## Constant declaration Constants are defined with a name and a value, like so: @@ -23,7 +19,7 @@ myBool = false Currently you cannot redeclare a constant. -## Array +## Arrays An array is defined with `[]` braces. What is inside the brackets can be of any type. For example, the following is completely valid: @@ -36,7 +32,7 @@ If you want to get a value from an array you can use the index like so: `myArray[0]`. -## Object +## Objects An object is defined with `{}` braces. Here is an example object: @@ -47,6 +43,15 @@ myObj = { a = 0, b = "thing" } We support two different ways of getting properties from objects, you can call `myObj.a` or `myObj["a"]` both work. +## `ImportedGeometry` + +Using `import` you can import geometry defined using other CAD software. In KCL, +these objects have type `ImportedGeometry` and can mostly be treated like any +other solid (they can be rotated, scaled, etc.), although there is no access to +their internal components. See the [modules and imports docs](modules) for more +detail on importing geometry. + + ## Binary expressions You can also do math! Let's show an example below: @@ -176,7 +181,7 @@ Check the docs page for each function and look at its examples to see. Tags are used to give a name (tag) to a specific path. -### Tag Declaration +### `TagDeclarator` The syntax for declaring a tag is `$myTag` you would use it in the following way: @@ -199,7 +204,7 @@ startSketchOn(XZ) |> close() ``` -### Tag Identifier +### `TagIdentifier` 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`. @@ -207,6 +212,16 @@ 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, %)`. +### `Start` + +There is a special tag, `START` (with type `Start`, although under the cover, it's a string) +for identifying the face of a solid which was the start of an extrusion (i.e., the surface which +is extruded). + +### `End` + +There is a special tag, `END` (with type `End`, although under the cover, it's a string) +for identifying the face of a solid which was finishes an extrusion. ### Tag Scope diff --git a/docs/kcl/types/ArtifactId.md b/docs/kcl/types/ArtifactId.md deleted file mode 100644 index 6447248f1..000000000 --- a/docs/kcl/types/ArtifactId.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "ArtifactId" -excerpt: "" -layout: manual ---- - - -**Type:** [`string`](/docs/kcl/types/string) (`uuid`) - - - - - - - diff --git a/docs/kcl/types/BasePath.md b/docs/kcl/types/BasePath.md deleted file mode 100644 index 9d616b105..000000000 --- a/docs/kcl/types/BasePath.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "BasePath" -excerpt: "A base path." -layout: manual ---- - -A base path. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - diff --git a/docs/kcl/types/EdgeCut.md b/docs/kcl/types/EdgeCut.md deleted file mode 100644 index 8046401eb..000000000 --- a/docs/kcl/types/EdgeCut.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "EdgeCut" -excerpt: "A fillet or a chamfer." -layout: manual ---- - -A fillet or a chamfer. - - - - - -**This schema accepts exactly one of the following:** - -A fillet. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `fillet`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the engine command that called this fillet. | No | -| `radius` |`TyF64`| | No | -| `edgeId` |[`string`](/docs/kcl/types/string)| The engine id of the edge to fillet. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| | No | - - ----- -A chamfer. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `chamfer`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the engine command that called this chamfer. | No | -| `length` |`TyF64`| | No | -| `edgeId` |[`string`](/docs/kcl/types/string)| The engine id of the edge to chamfer. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| | No | - - ----- - - - - diff --git a/docs/kcl/types/ExtrudeSurface.md b/docs/kcl/types/ExtrudeSurface.md deleted file mode 100644 index 991ec8e8a..000000000 --- a/docs/kcl/types/ExtrudeSurface.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: "ExtrudeSurface" -excerpt: "An extrude surface." -layout: manual ---- - -An extrude surface. - - - - - -**This schema accepts exactly one of the following:** - -An extrude plane. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `extrudePlane`| | No | -| `faceId` |[`string`](/docs/kcl/types/string)| The face id for the extrude plane. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the geometry. | No | -| `sourceRange` |`[, `integer`, `integer`, `integer`]`| The source range. | No | - - ----- -An extruded arc. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `extrudeArc`| | No | -| `faceId` |[`string`](/docs/kcl/types/string)| The face id for the extrude plane. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the geometry. | No | -| `sourceRange` |`[, `integer`, `integer`, `integer`]`| The source range. | No | - - ----- -Geometry metadata. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `chamfer`| | No | -| `faceId` |[`string`](/docs/kcl/types/string)| The id for the chamfer surface. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the geometry. | No | -| `sourceRange` |`[, `integer`, `integer`, `integer`]`| The source range. | No | - - ----- -Geometry metadata. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `fillet`| | No | -| `faceId` |[`string`](/docs/kcl/types/string)| The id for the fillet surface. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the geometry. | No | -| `sourceRange` |`[, `integer`, `integer`, `integer`]`| The source range. | No | - - ----- - - - - diff --git a/docs/kcl/types/FaceTag.md b/docs/kcl/types/FaceTag.md deleted file mode 100644 index e9dad7cdd..000000000 --- a/docs/kcl/types/FaceTag.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "FaceTag" -excerpt: "A tag for a face." -layout: manual ---- - -A tag for a face. - - - - -**This schema accepts any of the following:** - - -[`StartOrEnd`](/docs/kcl/types/StartOrEnd) - - - - - - - - ----- -A tag for the face. - -[`TagIdentifier`](/docs/kcl/types#tag-identifier) - - - - - - - - ----- - - - - - diff --git a/docs/kcl/types/GeoMeta.md b/docs/kcl/types/GeoMeta.md deleted file mode 100644 index 35b8f4c9e..000000000 --- a/docs/kcl/types/GeoMeta.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "GeoMeta" -excerpt: "Geometry metadata." -layout: manual ---- - -Geometry metadata. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `id` |[`string`](/docs/kcl/types/string)| The id of the geometry. | No | -| `sourceRange` |`[, `integer`, `integer`, `integer`]`| The source range. | No | - - diff --git a/docs/kcl/types/GeometryWithImportedGeometry.md b/docs/kcl/types/GeometryWithImportedGeometry.md deleted file mode 100644 index 3e73a32c8..000000000 --- a/docs/kcl/types/GeometryWithImportedGeometry.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "GeometryWithImportedGeometry" -excerpt: "A geometry including an imported geometry." -layout: manual ---- - -A geometry including an imported geometry. - - - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`Sketch`](/docs/kcl/types/Sketch)| | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the sketch (this will change when the engine's reference to it changes). | No | -| `paths` |`[` [`Path`](/docs/kcl/types/Path) `]`| The paths in the sketch. | No | -| `on` |[`SketchSurface`](/docs/kcl/types/SketchSurface)| What the sketch is on (can be a plane or a face). | No | -| `start` |[`BasePath`](/docs/kcl/types/BasePath)| The starting path. | No | -| `tags` |`object`| Tag identifiers that have been declared in this sketch. | No | -| `artifactId` |[`string`](/docs/kcl/types/string)| The original id of the sketch. This stays the same even if the sketch is is sketched on face etc. | No | -| `originalId` |[`string`](/docs/kcl/types/string)| | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`Solid`](/docs/kcl/types/Solid)| | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the solid. | No | -| `artifactId` |[`string`](/docs/kcl/types/string)| The artifact ID of the solid. Unlike `id`, this doesn't change. | No | -| `value` |`[` [`ExtrudeSurface`](/docs/kcl/types/ExtrudeSurface) `]`| The extrude surfaces. | No | -| `sketch` |[`Sketch`](/docs/kcl/types/Sketch)| The sketch. | No | -| `height` |[`number`](/docs/kcl/types/number)| The height of the solid. | No | -| `startCapId` |[`string`](/docs/kcl/types/string)| The id of the extrusion start cap | No | -| `endCapId` |[`string`](/docs/kcl/types/string)| The id of the extrusion end cap | No | -| `edgeCuts` |`[` [`EdgeCut`](/docs/kcl/types/EdgeCut) `]`| Chamfers or fillets on this solid. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| The units of the solid. | No | -| `sectional` |`boolean`| Is this a sectional solid? | No | - - ----- -Data for an imported geometry. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `ImportedGeometry`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The ID of the imported geometry. | No | -| `value` |`[` [`string`](/docs/kcl/types/string) `]`| The original file paths. | No | - - ----- - - - - diff --git a/docs/kcl/types/KclNone.md b/docs/kcl/types/KclNone.md deleted file mode 100644 index 1e7c7f8a4..000000000 --- a/docs/kcl/types/KclNone.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "KclNone" -excerpt: "KCL value for an optional parameter which was not given an argument. (remember, parameters are in the function declaration, arguments are in the function call/application)." -layout: manual ---- - -KCL value for an optional parameter which was not given an argument. (remember, parameters are in the function declaration, arguments are in the function call/application). - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No | - - diff --git a/docs/kcl/types/KclValue.md b/docs/kcl/types/KclValue.md deleted file mode 100644 index d999068a5..000000000 --- a/docs/kcl/types/KclValue.md +++ /dev/null @@ -1,326 +0,0 @@ ---- -title: "KclValue" -excerpt: "Any KCL value." -layout: manual ---- - -Any KCL value. - - - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Uuid`| | No | -| `value` |[`string`](/docs/kcl/types/string)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Bool`| | No | -| `value` |`boolean`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Number`| | No | -| `value` |[`number`](/docs/kcl/types/number)| | No | -| `ty` |[`NumericType`](/docs/kcl/types/NumericType)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `String`| | No | -| `value` |[`string`](/docs/kcl/types/string)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `MixedArray`| | No | -| `value` |`[` [`KclValue`](/docs/kcl/types/KclValue) `]`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `HomArray`| | No | -| `value` |`[` [`KclValue`](/docs/kcl/types/KclValue) `]`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Object`| | No | -| `value` |`object`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`TagIdentifier`](/docs/kcl/types#tag-identifier)| | No | -| `value` |[`string`](/docs/kcl/types/string)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`TagDeclarator`](/docs/kcl/types#tag-declaration)| | No | -| `value` |[`string`](/docs/kcl/types/string)| | No | -| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No | -| `start` |`integer`| | No | -| `end` |`integer`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`Plane`](/docs/kcl/types/Plane)| | No | -| `value` |[`Plane`](/docs/kcl/types/Plane)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`Face`](/docs/kcl/types/Face)| | No | -| `value` |[`Face`](/docs/kcl/types/Face)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`Sketch`](/docs/kcl/types/Sketch)| | No | -| `value` |[`Sketch`](/docs/kcl/types/Sketch)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`Solid`](/docs/kcl/types/Solid)| | No | -| `value` |[`Solid`](/docs/kcl/types/Solid)| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`Helix`](/docs/kcl/types/Helix)| | No | -| `value` |[`Helix`](/docs/kcl/types/Helix)| | No | - - ----- -Data for an imported geometry. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `ImportedGeometry`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The ID of the imported geometry. | No | -| `value` |`[` [`string`](/docs/kcl/types/string) `]`| The original file paths. | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Function`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Module`| | No | -| `value` |`integer`| Identifier of a source file. Uses a u32 to keep the size small. | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Type`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: [`KclNone`](/docs/kcl/types/KclNone)| | No | -| `value` |[`KclNone`](/docs/kcl/types/KclNone)| KCL value for an optional parameter which was not given an argument. (remember, parameters are in the function declaration, arguments are in the function call/application). | No | - - ----- - - - - diff --git a/docs/kcl/types/ModuleId.md b/docs/kcl/types/ModuleId.md deleted file mode 100644 index 9ed25fcfe..000000000 --- a/docs/kcl/types/ModuleId.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "ModuleId" -excerpt: "Identifier of a source file. Uses a u32 to keep the size small." -layout: manual ---- - -Identifier of a source file. Uses a u32 to keep the size small. - -**Type:** `integer` (`uint32`) - - - - - - - diff --git a/docs/kcl/types/NumericType.md b/docs/kcl/types/NumericType.md deleted file mode 100644 index ad7be7a57..000000000 --- a/docs/kcl/types/NumericType.md +++ /dev/null @@ -1,282 +0,0 @@ ---- -title: "NumericType" -excerpt: "" -layout: manual ---- - - - - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Count`| | No | - - ----- -A unit of length. - -**Type:** `object` - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Mm`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Cm`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `M`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Inches`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Feet`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Yards`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Unknown`| | No | - - ----- - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Length`| | No | - - ----- -A unit of angle. - -**Type:** `object` - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Degrees`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Radians`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Unknown`| | No | - - ----- - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Angle`| | No | - - ----- - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Known`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Default`| | No | -| `len` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `angle` |[`UnitAngle`](/docs/kcl/types/UnitAngle)| A unit of angle. | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Unknown`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Any`| | No | - - ----- - - - - diff --git a/docs/kcl/types/Path.md b/docs/kcl/types/Path.md deleted file mode 100644 index 859c07fad..000000000 --- a/docs/kcl/types/Path.md +++ /dev/null @@ -1,247 +0,0 @@ ---- -title: "Path" -excerpt: "A path." -layout: manual ---- - -A path. - - - - - -**This schema accepts exactly one of the following:** - -A path that goes to a point. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `ToPoint`| | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -A arc that is tangential to the last path segment that goes to a point - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `TangentialArcTo`| | No | -| `center` |`[number, number]`| the arc's center | No | -| `ccw` |`boolean`| arc's direction | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -A arc that is tangential to the last path segment - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `TangentialArc`| | No | -| `center` |`[number, number]`| the arc's center | No | -| `ccw` |`boolean`| arc's direction | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -a complete arc - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Circle`| | No | -| `center` |`[number, number]`| the arc's center | No | -| `radius` |[`number`](/docs/kcl/types/number)| the arc's radius | No | -| `ccw` |`boolean`| arc's direction This is used to compute the tangential angle. | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -A base path. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `CircleThreePoint`| | No | -| `p1` |`[number, number]`| Point 1 of the circle | No | -| `p2` |`[number, number]`| Point 2 of the circle | No | -| `p3` |`[number, number]`| Point 3 of the circle | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -A base path. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `ArcThreePoint`| | No | -| `p1` |`[number, number]`| Point 1 of the arc (base on the end of previous segment) | No | -| `p2` |`[number, number]`| Point 2 of the arc (interiorAbsolute kwarg) | No | -| `p3` |`[number, number]`| Point 3 of the arc (endAbsolute kwarg) | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -A path that is horizontal. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Horizontal`| | No | -| `x` |[`number`](/docs/kcl/types/number)| The x coordinate. | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -An angled line to. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `AngledLineTo`| | No | -| `x` |[`number`](/docs/kcl/types/number)| The x coordinate. | No | -| `y` |[`number`](/docs/kcl/types/number)| The y coordinate. | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -A base path. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Base`| | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- -A circular arc, not necessarily tangential to the current point. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Arc`| | No | -| `center` |`[number, number]`| Center of the circle that this arc is drawn on. | No | -| `radius` |[`number`](/docs/kcl/types/number)| Radius of the circle that this arc is drawn on. | No | -| `ccw` |`boolean`| True if the arc is counterclockwise. | No | -| `from` |`[number, number]`| The from point. | No | -| `to` |`[number, number]`| The to point. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | -| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | -| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No | - - ----- - - - - diff --git a/docs/kcl/types/PlaneData.md b/docs/kcl/types/PlaneData.md deleted file mode 100644 index 205ee2865..000000000 --- a/docs/kcl/types/PlaneData.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "PlaneData" -excerpt: "Orientation data that can be used to construct a plane, not a plane in itself." -layout: manual ---- - -Orientation data that can be used to construct a plane, not a plane in itself. - - - - - -**This schema accepts exactly one of the following:** - -The XY plane. - -**enum:** `XY` - - - - - - - - ----- -The opposite side of the XY plane. - -**enum:** `-XY` - - - - - - - - ----- -The XZ plane. - -**enum:** `XZ` - - - - - - - - ----- -The opposite side of the XZ plane. - -**enum:** `-XZ` - - - - - - - - ----- -The YZ plane. - -**enum:** `YZ` - - - - - - - - ----- -The opposite side of the YZ plane. - -**enum:** `-YZ` - - - - - - - - ----- -A defined plane. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `plane` |[`PlaneInfo`](/docs/kcl/types/PlaneInfo)| | No | - - ----- - - - - diff --git a/docs/kcl/types/PlaneInfo.md b/docs/kcl/types/PlaneInfo.md deleted file mode 100644 index b71c72ecd..000000000 --- a/docs/kcl/types/PlaneInfo.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "PlaneInfo" -excerpt: "" -layout: manual ---- - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `origin` |[`Point3d`](/docs/kcl/types/Point3d)| Origin of the plane. | No | -| `xAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the plane's X axis be? | No | -| `yAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the plane's Y axis be? | No | - - diff --git a/docs/kcl/types/PlaneType.md b/docs/kcl/types/PlaneType.md deleted file mode 100644 index e2ccc50de..000000000 --- a/docs/kcl/types/PlaneType.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "PlaneType" -excerpt: "Type for a plane." -layout: manual ---- - -Type for a plane. - - - - - -**This schema accepts exactly one of the following:** - - -**enum:** `XY`, `XZ`, `YZ` - - - - - - - - ----- -A custom plane. - -**enum:** `Custom` - - - - - - - - ----- -A custom plane which has not been sent to the engine. It must be sent before it is used. - -**enum:** `Uninit` - - - - - - - - ----- - - - - diff --git a/docs/kcl/types/Point2d.md b/docs/kcl/types/Point2d.md deleted file mode 100644 index 74ca70469..000000000 --- a/docs/kcl/types/Point2d.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "std::types::Point2d" -excerpt: "A point in two dimensional space." -layout: manual ---- - -A point in two dimensional space. - -```kcl -type [Point2d](/docs/kcl/types/Point2d) = [[number](/docs/kcl/types/number)(Length); 2] -``` - -[`Point2d`](/docs/kcl/types/Point2d) is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value -with type [`Point2d`](/docs/kcl/types/Point2d), use an array, e.g., `[0, 0]` or `[5.0, 3.14]`. - - - diff --git a/docs/kcl/types/Point3d.md b/docs/kcl/types/Point3d.md deleted file mode 100644 index af4efdcfd..000000000 --- a/docs/kcl/types/Point3d.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "std::types::Point3d" -excerpt: "A point in three dimensional space." -layout: manual ---- - -A point in three dimensional space. - -```kcl -type [Point3d](/docs/kcl/types/Point3d) = [[number](/docs/kcl/types/number)(Length); 3] -``` - -[`Point3d`](/docs/kcl/types/Point3d) is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value -with type [`Point3d`](/docs/kcl/types/Point3d), use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`. - - - diff --git a/docs/kcl/types/SketchData.md b/docs/kcl/types/SketchData.md deleted file mode 100644 index a727c58a9..000000000 --- a/docs/kcl/types/SketchData.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "SketchData" -excerpt: "Data for start sketch on. You can start a sketch on a plane or an solid." -layout: manual ---- - -Data for start sketch on. You can start a sketch on a plane or an solid. - - - - -**This schema accepts any of the following:** - -Orientation data that can be used to construct a plane, not a plane in itself. - -[`PlaneData`](/docs/kcl/types/PlaneData) - - - - - - - - ----- - -[`Plane`](/docs/kcl/types/Plane) - - - - - - - - ----- - -[`Solid`](/docs/kcl/types/Solid) - - - - - - - - ----- - - - - - diff --git a/docs/kcl/types/SketchOrSurface.md b/docs/kcl/types/SketchOrSurface.md deleted file mode 100644 index 1fc748b53..000000000 --- a/docs/kcl/types/SketchOrSurface.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "SketchOrSurface" -excerpt: "A sketch surface or a sketch." -layout: manual ---- - -A sketch surface or a sketch. - - - - -**This schema accepts any of the following:** - -A sketch type. - -[`SketchSurface`](/docs/kcl/types/SketchSurface) - - - - - - - - ----- - -[`Sketch`](/docs/kcl/types/Sketch) - - - - - - - - ----- - - - - - diff --git a/docs/kcl/types/SketchSurface.md b/docs/kcl/types/SketchSurface.md deleted file mode 100644 index 534081971..000000000 --- a/docs/kcl/types/SketchSurface.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "SketchSurface" -excerpt: "A sketch type." -layout: manual ---- - -A sketch type. - - - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `plane`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the plane. | No | -| `artifactId` |[`string`](/docs/kcl/types/string)| The artifact ID. | No | -| `value` |[`PlaneType`](/docs/kcl/types/PlaneType)| Type for a plane. | No | -| `origin` |[`Point3d`](/docs/kcl/types/Point3d)| Origin of the plane. | No | -| `xAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the plane's X axis be? | No | -| `yAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the plane's Y axis be? | No | - - ----- -A face. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `face`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The id of the face. | No | -| `artifactId` |[`string`](/docs/kcl/types/string)| The artifact ID. | No | -| `value` |[`string`](/docs/kcl/types/string)| The tag of the face. | No | -| `xAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the face's X axis be? | No | -| `yAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the face's Y axis be? | No | -| `solid` |[`Solid`](/docs/kcl/types/Solid)| The solid the face is on. | No | -| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No | - - ----- - - - - diff --git a/docs/kcl/types/SolidOrImportedGeometry.md b/docs/kcl/types/SolidOrImportedGeometry.md deleted file mode 100644 index 5944c7ba5..000000000 --- a/docs/kcl/types/SolidOrImportedGeometry.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "SolidOrImportedGeometry" -excerpt: "Data for a solid or an imported geometry." -layout: manual ---- - -Data for a solid or an imported geometry. - - - - - -**This schema accepts exactly one of the following:** - -Data for an imported geometry. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `importedGeometry`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The ID of the imported geometry. | No | -| `value` |`[` [`string`](/docs/kcl/types/string) `]`| The original file paths. | No | - - ----- - -**Type:** `[object, array]` - -`[` [`Solid`](/docs/kcl/types/Solid) `]` - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `solidSet`| | No | - - ----- - - - - diff --git a/docs/kcl/types/SolidOrSketchOrImportedGeometry.md b/docs/kcl/types/SolidOrSketchOrImportedGeometry.md deleted file mode 100644 index 4da6545b1..000000000 --- a/docs/kcl/types/SolidOrSketchOrImportedGeometry.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "SolidOrSketchOrImportedGeometry" -excerpt: "Data for a solid, sketch, or an imported geometry." -layout: manual ---- - -Data for a solid, sketch, or an imported geometry. - - - - - -**This schema accepts exactly one of the following:** - -Data for an imported geometry. - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `importedGeometry`| | No | -| `id` |[`string`](/docs/kcl/types/string)| The ID of the imported geometry. | No | -| `value` |`[` [`string`](/docs/kcl/types/string) `]`| The original file paths. | No | - - ----- - -**Type:** `[object, array]` - -`[` [`Solid`](/docs/kcl/types/Solid) `]` - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `solidSet`| | No | - - ----- - -**Type:** `[object, array]` - -`[` [`Sketch`](/docs/kcl/types/Sketch) `]` - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `sketchSet`| | No | - - ----- - - - - diff --git a/docs/kcl/types/StartOrEnd.md b/docs/kcl/types/StartOrEnd.md deleted file mode 100644 index 6e8ed9329..000000000 --- a/docs/kcl/types/StartOrEnd.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "StartOrEnd" -excerpt: "" -layout: manual ---- - - - - - - -**This schema accepts exactly one of the following:** - -The start face as in before you extruded. This could also be known as the bottom face. But we do not call it bottom because it would be the top face if you extruded it in the opposite direction or flipped the camera. - -**enum:** `start` - - - - - - - - ----- -The end face after you extruded. This could also be known as the top face. But we do not call it top because it would be the bottom face if you extruded it in the opposite direction or flipped the camera. - -**enum:** `end` - - - - - - - - ----- - - - - diff --git a/docs/kcl/types/SweepPath.md b/docs/kcl/types/SweepPath.md deleted file mode 100644 index b8e7e0865..000000000 --- a/docs/kcl/types/SweepPath.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "SweepPath" -excerpt: "A path to sweep along." -layout: manual ---- - -A path to sweep along. - - - - -**This schema accepts any of the following:** - - -[`Sketch`](/docs/kcl/types/Sketch) - - - - - - - - ----- - -[`Helix`](/docs/kcl/types/Helix) - - - - - - - - ----- - - - - - diff --git a/docs/kcl/types/UnitAngle.md b/docs/kcl/types/UnitAngle.md deleted file mode 100644 index 09a6aa892..000000000 --- a/docs/kcl/types/UnitAngle.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "UnitAngle" -excerpt: "A unit of angle." -layout: manual ---- - -A unit of angle. - - - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Degrees`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Radians`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Unknown`| | No | - - ----- - - - - diff --git a/docs/kcl/types/UnitLen.md b/docs/kcl/types/UnitLen.md deleted file mode 100644 index 5e00e5c39..000000000 --- a/docs/kcl/types/UnitLen.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: "UnitLen" -excerpt: "A unit of length." -layout: manual ---- - -A unit of length. - - - - - -**This schema accepts exactly one of the following:** - - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Mm`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Cm`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `M`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Inches`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Feet`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Yards`| | No | - - ----- - -**Type:** `object` - - - - - -## Properties - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -| `type` |enum: `Unknown`| | No | - - ----- - - - - diff --git a/docs/kcl/types/Axis2d.md b/docs/kcl/types/std-types-Axis2d.md similarity index 100% rename from docs/kcl/types/Axis2d.md rename to docs/kcl/types/std-types-Axis2d.md diff --git a/docs/kcl/types/Axis3d.md b/docs/kcl/types/std-types-Axis3d.md similarity index 100% rename from docs/kcl/types/Axis3d.md rename to docs/kcl/types/std-types-Axis3d.md diff --git a/docs/kcl/types/Edge.md b/docs/kcl/types/std-types-Edge.md similarity index 100% rename from docs/kcl/types/Edge.md rename to docs/kcl/types/std-types-Edge.md diff --git a/docs/kcl/types/Face.md b/docs/kcl/types/std-types-Face.md similarity index 100% rename from docs/kcl/types/Face.md rename to docs/kcl/types/std-types-Face.md diff --git a/docs/kcl/types/Helix.md b/docs/kcl/types/std-types-Helix.md similarity index 100% rename from docs/kcl/types/Helix.md rename to docs/kcl/types/std-types-Helix.md diff --git a/docs/kcl/types/Plane.md b/docs/kcl/types/std-types-Plane.md similarity index 100% rename from docs/kcl/types/Plane.md rename to docs/kcl/types/std-types-Plane.md diff --git a/docs/kcl/types/std-types-Point2d.md b/docs/kcl/types/std-types-Point2d.md new file mode 100644 index 000000000..6f79b16c9 --- /dev/null +++ b/docs/kcl/types/std-types-Point2d.md @@ -0,0 +1,17 @@ +--- +title: "std::types::Point2d" +excerpt: "A point in two dimensional space." +layout: manual +--- + +A point in two dimensional space. + +```kcl +type Point2d = [number(Length); 2] +``` + +[`Point2d`](/docs/kcl/types/std-types-Point2d) is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value +with type [`Point2d`](/docs/kcl/types/std-types-Point2d), use an array, e.g., `[[0, 0]]` or `[[5.0, 3.14]]`. + + + diff --git a/docs/kcl/types/std-types-Point3d.md b/docs/kcl/types/std-types-Point3d.md new file mode 100644 index 000000000..98a8a92be --- /dev/null +++ b/docs/kcl/types/std-types-Point3d.md @@ -0,0 +1,17 @@ +--- +title: "std::types::Point3d" +excerpt: "A point in three dimensional space." +layout: manual +--- + +A point in three dimensional space. + +```kcl +type Point3d = [number(Length); 3] +``` + +[`Point3d`](/docs/kcl/types/std-types-Point3d) is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value +with type [`Point3d`](/docs/kcl/types/std-types-Point3d), use an array, e.g., `[[0, 0, 0]]` or `[[5.0, 3.14, 6.8]]`. + + + diff --git a/docs/kcl/types/Sketch.md b/docs/kcl/types/std-types-Sketch.md similarity index 99% rename from docs/kcl/types/Sketch.md rename to docs/kcl/types/std-types-Sketch.md index c0cd6408d..5f3368955 100644 --- a/docs/kcl/types/Sketch.md +++ b/docs/kcl/types/std-types-Sketch.md @@ -17,7 +17,7 @@ mySketch = startSketchOn(XY) |> close() ``` -The `mySketch` variable will be an executed [`Sketch`](/docs/kcl/types/Sketch) object. Executed being past +The `mySketch` variable will be an executed [`Sketch`](/docs/kcl/types/std-types-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. diff --git a/docs/kcl/types/Solid.md b/docs/kcl/types/std-types-Solid.md similarity index 99% rename from docs/kcl/types/Solid.md rename to docs/kcl/types/std-types-Solid.md index 888483e11..c27885419 100644 --- a/docs/kcl/types/Solid.md +++ b/docs/kcl/types/std-types-Solid.md @@ -18,7 +18,7 @@ myPart = startSketchOn(XY) |> extrude(length = 6) ``` -The `myPart` variable will be an executed [`Solid`](/docs/kcl/types/Solid) object. Executed being past +The `myPart` variable will be an executed [`Solid`](/docs/kcl/types/std-types-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. diff --git a/docs/kcl/types/std-types-any.md b/docs/kcl/types/std-types-any.md new file mode 100644 index 000000000..6aba5d838 --- /dev/null +++ b/docs/kcl/types/std-types-any.md @@ -0,0 +1,12 @@ +--- +title: "any" +excerpt: "Any value." +layout: manual +--- + +Any value. + + + + + diff --git a/docs/kcl/types/bool.md b/docs/kcl/types/std-types-bool.md similarity index 100% rename from docs/kcl/types/bool.md rename to docs/kcl/types/std-types-bool.md diff --git a/docs/kcl/types/number.md b/docs/kcl/types/std-types-number.md similarity index 100% rename from docs/kcl/types/number.md rename to docs/kcl/types/std-types-number.md diff --git a/docs/kcl/types/string.md b/docs/kcl/types/std-types-string.md similarity index 100% rename from docs/kcl/types/string.md rename to docs/kcl/types/std-types-string.md diff --git a/docs/kcl/types/tag.md b/docs/kcl/types/std-types-tag.md similarity index 100% rename from docs/kcl/types/tag.md rename to docs/kcl/types/std-types-tag.md diff --git a/docs/kcl/union.md b/docs/kcl/union.md index f184bbbf0..15857230b 100644 --- a/docs/kcl/union.md +++ b/docs/kcl/union.md @@ -10,9 +10,9 @@ Union two or more solids into a single solid. ```kcl union( - solids: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)), - tolerance?: [number](/docs/kcl/types/number), -): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)) + solids: [[Solid]](/docs/kcl/types/std-types-Solid), + tolerance?: [number](/docs/kcl/types/std-types-number), +): [[Solid]](/docs/kcl/types/std-types-Solid) ``` @@ -20,12 +20,12 @@ union( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | The solids to union. | Yes | -| `tolerance` | [`number`](/docs/kcl/types/number) | The tolerance to use for the union operation. | No | +| `solids` | [`[Solid]`](/docs/kcl/types/std-types-Solid) | The solids to union. | Yes | +| `tolerance` | [`number`](/docs/kcl/types/std-types-number) | The tolerance to use for the union operation. | No | ### Returns -[`[Solid]`](/docs/kcl/types/Solid) +[`[Solid]`](/docs/kcl/types/std-types-Solid) ### Examples diff --git a/docs/kcl/xLine.md b/docs/kcl/xLine.md index fa1f8430f..65f1c474d 100644 --- a/docs/kcl/xLine.md +++ b/docs/kcl/xLine.md @@ -10,11 +10,11 @@ Draw a line relative to the current origin to a specified distance away from the ```kcl xLine( - sketch: [Sketch](/docs/kcl/types/Sketch), - length?: [number](/docs/kcl/types/number), - endAbsolute?: [number](/docs/kcl/types/number), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + length?: [number](/docs/kcl/types/std-types-number), + endAbsolute?: [number](/docs/kcl/types/std-types-number), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -22,14 +22,14 @@ xLine( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `length` | [`number`](/docs/kcl/types/number) | How far away along the X axis should this line go? Incompatible with `endAbsolute`. | No | -| `endAbsolute` | [`number`](/docs/kcl/types/number) | Which absolute X value should this line go to? Incompatible with `length`. | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `length` | [`number`](/docs/kcl/types/std-types-number) | How far away along the X axis should this line go? Incompatible with `endAbsolute`. | No | +| `endAbsolute` | [`number`](/docs/kcl/types/std-types-number) | Which absolute X value should this line go to? Incompatible with `length`. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/docs/kcl/yLine.md b/docs/kcl/yLine.md index 9ef57fb0f..8a1668363 100644 --- a/docs/kcl/yLine.md +++ b/docs/kcl/yLine.md @@ -10,11 +10,11 @@ Draw a line relative to the current origin to a specified distance away from the ```kcl yLine( - sketch: [Sketch](/docs/kcl/types/Sketch), - length?: [number](/docs/kcl/types/number), - endAbsolute?: [number](/docs/kcl/types/number), - tag?: [TagDeclarator](/docs/kcl/types#tag-declaration), -): [Sketch](/docs/kcl/types/Sketch) + sketch: [Sketch](/docs/kcl/types/std-types-Sketch), + length?: [number](/docs/kcl/types/std-types-number), + endAbsolute?: [number](/docs/kcl/types/std-types-number), + tag?: [TagDeclarator](/docs/kcl/types#TagDeclarator), +): [Sketch](/docs/kcl/types/std-types-Sketch) ``` @@ -22,14 +22,14 @@ yLine( | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes | -| `length` | [`number`](/docs/kcl/types/number) | How far away along the Y axis should this line go? Incompatible with `endAbsolute`. | No | -| `endAbsolute` | [`number`](/docs/kcl/types/number) | Which absolute Y value should this line go to? Incompatible with `length`. | No | -| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No | +| `sketch` | [`Sketch`](/docs/kcl/types/std-types-Sketch) | Which sketch should this path be added to? | Yes | +| `length` | [`number`](/docs/kcl/types/std-types-number) | How far away along the Y axis should this line go? Incompatible with `endAbsolute`. | No | +| `endAbsolute` | [`number`](/docs/kcl/types/std-types-number) | Which absolute Y value should this line go to? Incompatible with `length`. | No | +| [`tag`](/docs/kcl/types/std-types-tag) | [`TagDeclarator`](/docs/kcl/types#TagDeclarator) | Create a new tag which refers to this line | No | ### Returns -[`Sketch`](/docs/kcl/types/Sketch) +[`Sketch`](/docs/kcl/types/std-types-Sketch) ### Examples diff --git a/rust/kcl-derive-docs/src/lib.rs b/rust/kcl-derive-docs/src/lib.rs index 0a0a5abd8..b1cb159c4 100644 --- a/rust/kcl-derive-docs/src/lib.rs +++ b/rust/kcl-derive-docs/src/lib.rs @@ -792,15 +792,21 @@ fn rust_type_to_openapi_type(t: &str) -> String { if t.starts_with("Option<") { t = t.replace("Option<", "").replace('>', ""); } + + if t == "[TyF64;2]" { + return "Point2d".to_owned(); + } + if t == "[TyF64;3]" { + return "Point3d".to_owned(); + } + if let Some((inner_type, _length)) = parse_array_type(&t) { t = format!("[{inner_type}]") } - if t == "f64" || t == "TyF64" { + if t == "f64" || t == "TyF64" || t == "u32" || t == "NonZeroU32" { return "number".to_string(); - } else if t == "u32" { - return "integer".to_string(); - } else if t == "str" { + } else if t == "str" || t == "String" { return "string".to_string(); } else { return t.replace("f64", "number").replace("TyF64", "number").to_string(); diff --git a/rust/kcl-lib/src/docs/gen_std_tests.rs b/rust/kcl-lib/src/docs/gen_std_tests.rs index 87f572a36..3f8c785ef 100644 --- a/rust/kcl-lib/src/docs/gen_std_tests.rs +++ b/rust/kcl-lib/src/docs/gen_std_tests.rs @@ -1,113 +1,60 @@ use std::{ - collections::{BTreeMap, HashMap}, - fs::File, + collections::HashMap, + fs::{self, File}, io::Read as _, + path::Path, }; use anyhow::Result; use base64::Engine; use convert_case::Casing; -use handlebars::Renderable; use indexmap::IndexMap; use itertools::Itertools; -use schemars::schema::SingleOrVec; use serde_json::json; use tokio::task::JoinSet; use super::kcl_doc::{ConstData, DocData, ExampleProperties, FnData, TyData}; -use crate::{ - docs::{is_primitive, StdLibFn}, - std::StdLib, - ExecutorContext, -}; +use crate::{docs::StdLibFn, std::StdLib, ExecutorContext}; -const TYPES_DIR: &str = "../../docs/kcl/types"; -const LANG_TOPICS: [&str; 5] = ["Types", "Modules", "Settings", "Known Issues", "Constants"]; -// These types are declared in std. -const DECLARED_TYPES: [&str; 14] = [ - "number", "string", "tag", "bool", "Sketch", "Solid", "Plane", "Helix", "Face", "Edge", "Point2d", "Point3d", - "Axis2d", "Axis3d", +const LANG_TOPICS: [&str; 4] = ["Types", "Modules", "Settings", "Known Issues"]; +// These types are declared in (KCL) std. +const DECLARED_TYPES: [&str; 15] = [ + "any", "number", "string", "tag", "bool", "Sketch", "Solid", "Plane", "Helix", "Face", "Edge", "Point2d", + "Point3d", "Axis2d", "Axis3d", ]; +// Types with special handling. +const SPECIAL_TYPES: [&str; 5] = ["TagDeclarator", "TagIdentifier", "Start", "End", "ImportedGeometry"]; + +const TYPE_REWRITES: [(&str, &str); 11] = [ + ("TagNode", "TagDeclarator"), + ("SketchData", "Plane | Solid"), + ("SketchOrSurface", "Sketch | Plane | Face"), + ("SketchSurface", "Plane | Face"), + ("SolidOrImportedGeometry", "[Solid] | ImportedGeometry"), + ( + "SolidOrSketchOrImportedGeometry", + "[Solid] | [Sketch] | ImportedGeometry", + ), + ("KclValue", "any"), + ("[KclValue]", "[any]"), + ("FaceTag", "TagIdentifier | Start | End"), + ("GeometryWithImportedGeometry", "Solid | Sketch | ImportedGeometry"), + ("SweepPath", "Sketch | Helix"), +]; + +fn rename_type(input: &str) -> &str { + for (i, o) in TYPE_REWRITES { + if input == i { + return o; + } + } + + input +} + fn init_handlebars() -> Result> { let mut hbs = handlebars::Handlebars::new(); - // Register the 'json' helper - hbs.register_helper( - "json", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - let param = h.param(0).and_then(|v| v.value().as_str()).unwrap_or(""); - out.write(&serde_json::to_string(¶m).unwrap())?; - Ok(()) - }, - ), - ); - - // Register the 'basename' helper - hbs.register_helper( - "times", - Box::new( - |h: &handlebars::Helper, - hb: &handlebars::Handlebars, - ctx: &handlebars::Context, - rc: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - let n = h.param(0).and_then(|v| v.value().as_u64()).ok_or_else(|| { - handlebars::RenderErrorReason::Other( - "times helper expects an integer as first parameter".to_string(), - ) - })?; - - let template = h - .template() - .ok_or_else(|| handlebars::RenderErrorReason::Other("times helper expects a block".to_string()))?; - - for i in 0..n { - let mut local_ctx = ctx.clone(); - let mut rc = rc.clone(); - let m = local_ctx.data_mut().as_object_mut().unwrap(); - m.insert("@index".to_string(), handlebars::JsonValue::Number(i.into())); - if i == 0 { - m.insert("@first".to_string(), handlebars::JsonValue::Bool(true)); - } - template.render(hb, &local_ctx, &mut rc, out)?; - } - - Ok(()) - }, - ), - ); - - hbs.register_helper( - "lte", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - let a = h.param(0).and_then(|v| v.value().as_f64()).ok_or_else(|| { - handlebars::RenderErrorReason::Other("lte helper expects a number as first parameter".to_string()) - })?; - - let b = h.param(1).and_then(|v| v.value().as_f64()).ok_or_else(|| { - handlebars::RenderErrorReason::Other("lte helper expects a number as second parameter".to_string()) - })?; - - let result = a <= b; - out.write(if result { "true" } else { "false" })?; - - Ok(()) - }, - ), - ); hbs.register_helper( "firstLine", @@ -131,146 +78,6 @@ fn init_handlebars() -> Result> { ), ); - hbs.register_helper( - "neq", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - let param1 = h - .param(0) - .ok_or_else(|| { - handlebars::RenderErrorReason::Other("neq helper expects two parameters".to_string()) - })? - .value(); - let param2 = h - .param(1) - .ok_or_else(|| { - handlebars::RenderErrorReason::Other("neq helper expects two parameters".to_string()) - })? - .value(); - - let result = param1 != param2; - out.write(if result { "true" } else { "false" })?; - - Ok(()) - }, - ), - ); - - // Register the 'lowercase' helper - hbs.register_helper( - "lowercase", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - let param = h.param(0).and_then(|v| v.value().as_str()).unwrap_or(""); - out.write(¶m.to_lowercase())?; - Ok(()) - }, - ), - ); - - hbs.register_helper( - "pretty_enum", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - if let Some(enum_value) = h.param(0) { - if let Some(array) = enum_value.value().as_array() { - let pretty_options = array - .iter() - .filter_map(|v| v.as_str()) - .map(|s| format!("`{}`", s)) - .collect::>() - .join(", "); - out.write(&pretty_options)?; - return Ok(()); - } - } - out.write("Invalid enum")?; - Ok(()) - }, - ), - ); - - hbs.register_helper( - "pretty_enum", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - if let Some(enum_value) = h.param(0) { - if let Some(array) = enum_value.value().as_array() { - let pretty_options = array - .iter() - .filter_map(|v| v.as_str()) - .map(|s| format!("`{}`", s)) - .collect::>() - .join(", "); - out.write(&pretty_options)?; - return Ok(()); - } - } - out.write("Invalid enum")?; - Ok(()) - }, - ), - ); - - hbs.register_helper( - "pretty_ref", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - let param = h.param(0).and_then(|v| v.value().as_str()).unwrap_or(""); - let basename = param.split('/').next_back().unwrap_or(""); - out.write(&format!("`{}`", basename))?; - Ok(()) - }, - ), - ); - - // Register helper to remove newlines from a string. - hbs.register_helper( - "remove_newlines", - Box::new( - |h: &handlebars::Helper, - _: &handlebars::Handlebars, - _: &handlebars::Context, - _: &mut handlebars::RenderContext, - out: &mut dyn handlebars::Output| - -> handlebars::HelperResult { - if let Some(param) = h.param(0) { - if let Some(string) = param.value().as_str() { - out.write(&string.replace("\n", ""))?; - return Ok(()); - } - } - out.write("")?; - Ok(()) - }, - ), - ); - // Register a helper to do safe YAML new lines. hbs.register_helper( "safe_yaml", @@ -296,16 +103,9 @@ fn init_handlebars() -> Result> { ), ); - hbs.register_template_string("schemaType", include_str!("templates/schemaType.hbs"))?; - hbs.register_template_string("properties", include_str!("templates/properties.hbs"))?; - hbs.register_template_string("array", include_str!("templates/array.hbs"))?; - hbs.register_template_string("propertyType", include_str!("templates/propertyType.hbs"))?; - hbs.register_template_string("schema", include_str!("templates/schema.hbs"))?; hbs.register_template_string("index", include_str!("templates/index.hbs"))?; - hbs.register_template_string("consts-index", include_str!("templates/consts-index.hbs"))?; hbs.register_template_string("function", include_str!("templates/function.hbs"))?; hbs.register_template_string("const", include_str!("templates/const.hbs"))?; - hbs.register_template_string("type", include_str!("templates/type.hbs"))?; hbs.register_template_string("kclType", include_str!("templates/kclType.hbs"))?; Ok(hbs) @@ -318,7 +118,9 @@ fn generate_index(combined: &IndexMap>, kcl_lib: &[Doc functions.insert("std".to_owned(), Vec::new()); let mut constants = HashMap::new(); - constants.insert("std".to_owned(), Vec::new()); + + let mut types = HashMap::new(); + types.insert("Primitive types".to_owned(), Vec::new()); for key in combined.keys() { let internal_fn = combined @@ -335,33 +137,34 @@ fn generate_index(combined: &IndexMap>, kcl_lib: &[Doc .push((internal_fn.name(), internal_fn.name())); } + for name in SPECIAL_TYPES { + types + .get_mut("Primitive types") + .unwrap() + .push((name.to_owned(), format!("types.md#{name}"))); + } + for d in kcl_lib { if d.hide() { continue; } - functions.entry(d.mod_name()).or_default().push(match d { - DocData::Fn(f) => (f.preferred_name.clone(), d.file_name()), - DocData::Const(c) => (c.preferred_name.clone(), d.file_name()), - DocData::Ty(t) => (t.preferred_name.clone(), d.file_name()), - }); + let group = match d { + DocData::Fn(_) => functions.entry(d.mod_name()).or_default(), + DocData::Ty(_) => types.entry(d.mod_name()).or_default(), + DocData::Const(_) => constants.entry(d.mod_name()).or_default(), + }; - if let DocData::Const(c) = d { - constants - .entry(d.mod_name()) - .or_default() - .push((c.name.clone(), d.file_name())); - } + group.push((d.preferred_name().to_owned(), d.file_name())); } - // TODO we should sub-divide into types, constants, and functions. - let mut sorted: Vec<_> = functions + let mut sorted_fns: Vec<_> = functions .into_iter() .map(|(m, mut fns)| { fns.sort(); let val = json!({ "name": m, - "functions": fns.into_iter().map(|(n, f)| json!({ + "items": fns.into_iter().map(|(n, f)| json!({ "name": n, "file_name": f, })).collect::>(), @@ -369,35 +172,16 @@ fn generate_index(combined: &IndexMap>, kcl_lib: &[Doc (m, val) }) .collect(); - sorted.sort_by(|t1, t2| t1.0.cmp(&t2.0)); - let data: Vec<_> = sorted.into_iter().map(|(_, val)| val).collect(); + sorted_fns.sort_by(|t1, t2| t1.0.cmp(&t2.0)); + let functions_data: Vec<_> = sorted_fns.into_iter().map(|(_, val)| val).collect(); - let topics: Vec<_> = LANG_TOPICS - .iter() - .map(|name| { - json!({ - "name": name, - "file_name": name.to_lowercase().replace(' ', "-").replace("constants", "consts"), - }) - }) - .collect(); - let data = json!({ - "lang_topics": topics, - "modules": data, - }); - - let output = hbs.render("index", &data)?; - - expectorate::assert_contents("../../docs/kcl/index.md", &output); - - // Generate the index for the constants. let mut sorted_consts: Vec<_> = constants .into_iter() .map(|(m, mut consts)| { consts.sort(); let val = json!({ "name": m, - "consts": consts.into_iter().map(|(n, f)| json!({ + "items": consts.into_iter().map(|(n, f)| json!({ "name": n, "file_name": f, })).collect::>(), @@ -406,14 +190,45 @@ fn generate_index(combined: &IndexMap>, kcl_lib: &[Doc }) .collect(); sorted_consts.sort_by(|t1, t2| t1.0.cmp(&t2.0)); - let data: Vec<_> = sorted_consts.into_iter().map(|(_, val)| val).collect(); + let consts_data: Vec<_> = sorted_consts.into_iter().map(|(_, val)| val).collect(); + + let mut sorted_types: Vec<_> = types + .into_iter() + .map(|(m, mut tys)| { + tys.sort(); + let val = json!({ + "name": m, + "items": tys.into_iter().map(|(n, f)| json!({ + "name": n, + "file_name": f, + })).collect::>(), + }); + (m, val) + }) + .collect(); + sorted_types.sort_by(|t1, t2| t1.0.cmp(&t2.0)); + let types_data: Vec<_> = sorted_types.into_iter().map(|(_, val)| val).collect(); + + let topics: Vec<_> = LANG_TOPICS + .iter() + .map(|name| { + json!({ + "name": name, + "file_name": name.to_lowercase().replace(' ', "-"), + }) + }) + .collect(); + let data = json!({ - "consts": data, + "lang_topics": topics, + "functions": functions_data, + "consts": consts_data, + "types": types_data, }); - let output = hbs.render("consts-index", &data)?; + let output = hbs.render("index", &data)?; - expectorate::assert_contents("../../docs/kcl/consts.md", &output); + expectorate::assert_contents("../../docs/kcl/index.md", &output); Ok(()) } @@ -446,7 +261,7 @@ fn generate_example(index: usize, src: &str, props: &ExampleProperties, file_nam } fn generate_type_from_kcl(ty: &TyData, file_name: String, example_name: String) -> Result<()> { - if ty.properties.doc_hidden { + if ty.properties.doc_hidden || !DECLARED_TYPES.contains(&&*ty.name) { return Ok(()); } @@ -461,7 +276,7 @@ fn generate_type_from_kcl(ty: &TyData, file_name: String, example_name: String) let data = json!({ "name": ty.qual_name(), - "definition": ty.alias.as_ref().map(|t| cleanup_sig(format!("type {} = {t}", ty.preferred_name), ty.referenced_types.iter().filter(|t| !DECLARED_TYPES.contains(&&***t)))), + "definition": ty.alias.as_ref().map(|t| format!("type {} = {t}", ty.preferred_name)), "summary": ty.summary, "description": ty.description, "deprecated": ty.properties.deprecated, @@ -469,16 +284,13 @@ fn generate_type_from_kcl(ty: &TyData, file_name: String, example_name: String) }); let output = hbs.render("kclType", &data)?; - let output = cleanup_type_links( - &output, - ty.referenced_types.iter().filter(|t| !DECLARED_TYPES.contains(&&***t)), - ); + let output = cleanup_types(&output); expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output); Ok(()) } -fn generate_function_from_kcl(function: &FnData, file_name: String) -> Result<()> { +fn generate_function_from_kcl(function: &FnData, file_name: String, example_name: String) -> Result<()> { if function.properties.doc_hidden { return Ok(()); } @@ -489,7 +301,7 @@ fn generate_function_from_kcl(function: &FnData, file_name: String) -> Result<() .examples .iter() .enumerate() - .filter_map(|(index, example)| generate_example(index, &example.0, &example.1, &file_name)) + .filter_map(|(index, example)| generate_example(index, &example.0, &example.1, &example_name)) .collect(); let data = json!({ @@ -497,10 +309,7 @@ fn generate_function_from_kcl(function: &FnData, file_name: String) -> Result<() "summary": function.summary, "description": function.description, "deprecated": function.properties.deprecated, - "fn_signature": cleanup_sig(function.preferred_name.clone() + &function.fn_signature(), function - .referenced_types - .iter() - .filter(|t| !DECLARED_TYPES.contains(&&***t))), + "fn_signature": function.preferred_name.clone() + &function.fn_signature(), "tags": [], "examples": examples, "is_utilities": false, @@ -521,14 +330,8 @@ fn generate_function_from_kcl(function: &FnData, file_name: String) -> Result<() }); let output = hbs.render("function", &data)?; - let output = cleanup_type_links( - &output, - function - .referenced_types - .iter() - .filter(|t| !DECLARED_TYPES.contains(&&***t)), - ); - expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output); + let output = &cleanup_types(&output); + expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), output); Ok(()) } @@ -562,11 +365,11 @@ fn generate_const_from_kcl(cnst: &ConstData, file_name: String, example_name: St Ok(()) } -fn generate_function(internal_fn: Box) -> Result> { +fn generate_function(internal_fn: Box) -> Result<()> { let hbs = init_handlebars()?; if internal_fn.unpublished() { - return Ok(BTreeMap::new()); + return Ok(()); } let fn_name = internal_fn.name(); @@ -598,48 +401,26 @@ fn generate_function(internal_fn: Box) -> Result>(), "return_value": internal_fn.return_value(false).map(|ret| { json!({ - "type_": ret.type_, + "type_": rename_type(&ret.type_), "description": ret.description(), }) }), @@ -647,295 +428,166 @@ fn generate_function(internal_fn: Box) -> Result(output: &str, types: impl Iterator) -> String { - let mut cleaned_output = output.to_string(); - - // Cleanup our weird number arrays. - // TODO: This is a hack for the handlebars template being too complex. - cleaned_output = cleaned_output.replace("`[, `number`, `number`]`", "`[number, number]`"); - cleaned_output = cleaned_output.replace("`[, `number`, `number`, `number`]`", "`[number, number, number]`"); - - // Fix the links to the types. - for type_name in types.map(|s| &**s).chain(DECLARED_TYPES) { - if type_name == "TagDeclarator" || type_name == "TagIdentifier" || type_name == "TagNode" || type_name == "tag" - { - continue; - } else { - let link = format!("(/docs/kcl/types/{})", type_name); - cleaned_output = - cleaned_output.replace(&format!("`{}`", type_name), &format!("[`{}`]{}", type_name, &link)); - // Do the same for the type with brackets. - cleaned_output = - cleaned_output.replace(&format!("`[{}]`", type_name), &format!("[`[{}]`]{}", type_name, link)); - } - } - - // TODO handle union types generically rather than special casing them. - cleaned_output = cleaned_output.replace( - "`Sketch | Plane | Face`", - "[`Sketch`](/docs/kcl/types/Sketch) or [`Plane`](/docs/kcl/types/Plane) or [`Face`](/docs/kcl/types/Face)", - ); - cleaned_output = cleaned_output.replace( - "`Axis3d | Edge`", - "[`Axis3d`](/docs/kcl/types/Axis3d) or [`Edge`](/docs/kcl/types/Edge)", - ); - cleaned_output = cleaned_output.replace( - "`Axis2d | Edge`", - "[`Axis2d`](/docs/kcl/types/Axis2d) or [`Edge`](/docs/kcl/types/Edge)", - ); - - // Fix the links to the types. - // Gross hack for the stupid alias types. - cleaned_output = cleaned_output.replace("TagNode", "TagDeclarator"); - - let link = "[`TagDeclarator`](/docs/kcl/types#tag-declaration)"; - cleaned_output = cleaned_output.replace("`TagDeclarator`", link); - let link = "[`TagIdentifier`](/docs/kcl/types#tag-identifier)"; - cleaned_output = cleaned_output.replace("`TagIdentifier`", link); - - cleaned_output -} - -// TODO total code dup with `cleanup_type_links`, just this version doesn't have the backticks. :-( -fn cleanup_sig<'a>(input: String, types: impl Iterator) -> String { - let mut cleaned_output = input; - - // Fix the links to the types. - for type_name in types.map(|s| &**s).chain(DECLARED_TYPES) { - if type_name == "TagDeclarator" || type_name == "TagIdentifier" || type_name == "TagNode" || type_name == "tag" - { - continue; - } else { - let link = format!("(/docs/kcl/types/{})", type_name); - // Do the same for the type with brackets. - cleaned_output = cleaned_output.replace(&format!("[{}]", type_name), &format!("[[{}]]{}", type_name, link)); - cleaned_output = cleaned_output.replace(type_name, &format!("[{}]{}", type_name, &link)); - } - } - - // TODO handle union types generically rather than special casing them. - cleaned_output = cleaned_output.replace( - "Sketch | Plane | Face", - "[Sketch](/docs/kcl/types/Sketch) | [Plane](/docs/kcl/types/Plane) | [Face](/docs/kcl/types/Face)", - ); - cleaned_output = cleaned_output.replace( - "Axis3d | Edge", - "[Axis3d](/docs/kcl/types/Axis3d) | [Edge](/docs/kcl/types/Edge)", - ); - cleaned_output = cleaned_output.replace( - "Axis2d | Edge", - "[Axis2d](/docs/kcl/types/Axis2d) | [Edge](/docs/kcl/types/Edge)", - ); - - // Fix the links to the types. - // Gross hack for the stupid alias types. - cleaned_output = cleaned_output.replace("TagNode", "TagDeclarator"); - - let link = "[TagDeclarator](/docs/kcl/types#tag-declaration)"; - cleaned_output = cleaned_output.replace("TagDeclarator", link); - let link = "[TagIdentifier](/docs/kcl/types#tag-identifier)"; - cleaned_output = cleaned_output.replace("TagIdentifier", link); - - cleaned_output -} - -fn add_to_types( - name: &str, - schema: &schemars::schema::Schema, - types: &mut BTreeMap, -) -> Result<()> { - if name.is_empty() { - return Err(anyhow::anyhow!("Empty type name")); - } - - if DECLARED_TYPES.contains(&name) || name == "TyF64" { - return Ok(()); - } - - if name.starts_with("number(") { - panic!("uom number"); - } - - let schemars::schema::Schema::Object(o) = schema else { - return Err(anyhow::anyhow!( - "Failed to get object schema, should have not been a primitive" - )); - }; - - if name == "SourceRange" { - types.insert(name.to_string(), schema.clone()); - return Ok(()); - } - - // If we have an array we want to generate the type markdown files for each item in the - // array. - if let Some(array) = &o.array { - // Recursively generate the type markdown files for each item in the array. - if let Some(items) = &array.items { - match items { - schemars::schema::SingleOrVec::Single(item) => { - if is_primitive(item)?.is_some() { - return Ok(()); - } - return add_to_types(name.trim_start_matches('[').trim_end_matches(']'), item, types); - } - schemars::schema::SingleOrVec::Vec(items) => { - for item in items { - if is_primitive(item)?.is_some() { - continue; - } - add_to_types(name.trim_start_matches('[').trim_end_matches(']'), item, types)?; - } - } - } - } else { - return Err(anyhow::anyhow!("Failed to get array items")); - } - } - - types.insert(name.to_string(), schema.clone()); - Ok(()) } -fn generate_type( - name: &str, - schema: &schemars::schema::Schema, - types: &BTreeMap, -) -> Result<()> { - if name.is_empty() { - return Err(anyhow::anyhow!("Empty type name")); +fn cleanup_types(input: &str) -> String { + #[derive(Copy, Clone, Eq, PartialEq, Debug)] + enum State { + Text, + PreCodeBlock, + CodeBlock, + CodeBlockType, + Slash, + Comment, } - // Skip over TagDeclarator and TagIdentifier since they have custom docs. - if name == "TagDeclarator" || name == "TagIdentifier" || name == "TagNode" || name == "TyF64" { - return Ok(()); - } + let mut output = String::new(); + let mut code_annot = String::new(); + let mut code = String::new(); + let mut code_type = String::new(); + let mut state = State::Text; + let mut ticks = 0; - let schemars::schema::Schema::Object(o) = schema else { - return Err(anyhow::anyhow!( - "Failed to get object schema, should have not been a primitive" - )); - }; - - // If we have an array we want to generate the type markdown files for each item in the - // array. - if let Some(array) = &o.array { - // Recursively generate the type markdown files for each item in the array. - if let Some(items) = &array.items { - match items { - schemars::schema::SingleOrVec::Single(item) => { - if is_primitive(item)?.is_some() { - return Ok(()); - } - return generate_type(name.trim_start_matches('[').trim_end_matches(']'), item, types); + for c in input.chars() { + if state == State::CodeBlockType { + if ['`', ',', '\n', ')', '/'].contains(&c) { + if code_type.starts_with(' ') { + code.push(' '); } - schemars::schema::SingleOrVec::Vec(items) => { - for item in items { - if is_primitive(item)?.is_some() { - continue; - } - generate_type(name.trim_start_matches('[').trim_end_matches(']'), item, types)?; + code.push_str(&cleanup_type_string(code_type.trim(), false)); + if code_type.ends_with(' ') { + code.push(' '); + } + + code_type = String::new(); + state = State::CodeBlock; + } else { + code_type.push(c); + continue; + } + } + if c == '`' { + if state == State::Comment { + code.push(c); + } else { + if state == State::Slash { + state = State::CodeBlock; + } + + ticks += 1; + if ticks == 3 { + if state == State::Text { + state = State::PreCodeBlock; + } else { + output.push_str("```"); + output.push_str(&code_annot); + output.push_str(&code); + // `code` includes the first two of three backticks + output.push('`'); + state = State::Text; + code_annot = String::new(); + code = String::new(); } - return Ok(()); + ticks = 0; + } else if state == State::Text && ticks == 2 && !code.is_empty() { + output.push_str(&cleanup_type_string(&code, true)); + code = String::new(); + ticks = 0; + } else if state == State::CodeBlock { + code.push(c); } } } else { - return Err(anyhow::anyhow!("Failed to get array items")); + if ticks == 2 { + // Empty code block + ticks = 0; + } + + if c == '\n' && (state == State::PreCodeBlock || state == State::Comment) { + state = State::CodeBlock; + } + + if c == '/' { + match state { + State::CodeBlock => state = State::Slash, + State::Slash => state = State::Comment, + _ => {} + } + } else if state == State::Slash { + state = State::CodeBlock; + } + + match state { + State::Text if ticks == 0 => output.push(c), + State::Text if ticks == 1 => code.push(c), + State::Text => unreachable!(), + State::PreCodeBlock => code_annot.push(c), + State::CodeBlock | State::Slash | State::Comment => code.push(c), + State::CodeBlockType => unreachable!(), + } + + if c == ':' && state == State::CodeBlock { + state = State::CodeBlockType; + } } } - // Make sure the name is pascal cased. - if !(name.is_case(convert_case::Case::Pascal) - || name == "Point3d" - || name == "Point2d" - || name == "CircularPattern2dData" - || name == "CircularPattern3dData" - || name == "LinearPattern2dData" - || name == "LinearPattern3dData" - || name == "Mirror2dData" - || name == "Axis2dOrEdgeReference" - || name == "Axis3dOrEdgeReference" - || name == "AxisAndOrigin2d" - || name == "AxisAndOrigin3d") - { - return Err(anyhow::anyhow!("Type name is not pascal cased: {}", name)); - } - - let cleaned_schema = recurse_and_create_references(name, schema, types)?; - - let schemars::schema::Schema::Object(o) = cleaned_schema else { - return Err(anyhow::anyhow!( - "Failed to get object schema, should have not been a primitive" - )); - }; - - let hbs = init_handlebars()?; - - // Add the name as the title. - let mut object = o.clone(); - if let Some(metadata) = object.metadata.as_mut() { - metadata.title = Some(name.to_string()); - } else { - object.metadata = Some(Box::new(schemars::schema::Metadata { - title: Some(name.to_string()), - ..Default::default() - })); - } - - // Cleanup the description. - let object = cleanup_type_description(&object) - .map_err(|e| anyhow::anyhow!("Failed to cleanup type description for type `{}`: {}", name, e))?; - - let data = json!(schemars::schema::Schema::Object(object)); - - let mut output = hbs.render("type", &data)?; - // Fix the links to the types. - output = cleanup_type_links(&output, types.keys()); - expectorate::assert_contents(format!("{}/{}.md", TYPES_DIR, name), &output); - - Ok(()) + output } -fn cleanup_type_description(object: &schemars::schema::SchemaObject) -> Result { - let mut object = object.clone(); - if let Some(metadata) = object.metadata.as_mut() { - if let Some(description) = metadata.description.as_mut() { - // Find any ```kcl code blocks and format the code. - // Parse any code blocks from the doc string. - let mut code_blocks = Vec::new(); - let d = description.clone(); - for line in d.lines() { - if line.starts_with("```kcl") && line.ends_with("```") { - code_blocks.push(line); +fn cleanup_type_string(input: &str, fmt_for_text: bool) -> String { + assert!( + !(input.starts_with('[') && input.ends_with(']') && input.contains('|')), + "Arrays of unions are not supported" + ); + + let input = rename_type(input); + + let tys: Vec<_> = input + .split('|') + .map(|ty| { + let ty = ty.trim(); + + let mut prefix = String::new(); + let mut suffix = String::new(); + + if fmt_for_text { + prefix.push('`'); + suffix.push('`'); + } + + let ty = if ty.starts_with('[') { + if ty.ends_with("; 1+]") { + prefix = format!("{prefix}["); + suffix = format!("; 1+]{suffix}"); + &ty[1..ty.len() - 5] + } else if ty.ends_with(']') { + prefix = format!("{prefix}["); + suffix = format!("]{suffix}"); + &ty[1..ty.len() - 1] + } else { + ty } + } else { + ty + }; + + if SPECIAL_TYPES.contains(&ty) { + format!("[{prefix}{ty}{suffix}](/docs/kcl/types#{ty})") + } else if DECLARED_TYPES.contains(&ty) { + format!("[{prefix}{ty}{suffix}](/docs/kcl/types/std-types-{ty})") + } else { + format!("{prefix}{input}{suffix}") } + }) + .collect(); - // Parse the kcl and recast it. - for code_block in &code_blocks { - let trimmed = code_block.trim_start_matches("```kcl").trim_end_matches("```"); - let program = crate::Program::parse_no_errs(trimmed)?; - - let options = crate::parsing::ast::types::FormatOptions { - insert_final_newline: false, - ..Default::default() - }; - let cleaned = program.ast.recast(&options, 0); - - *description = description.replace(code_block, &format!("```kcl\n{}\n```", cleaned)); - } - } - } - - Ok(object) + tys.join(if fmt_for_text { " or " } else { " | " }) } fn clean_function_name(name: &str) -> String { @@ -946,14 +598,6 @@ fn clean_function_name(name: &str) -> String { fn_name = fn_name.replace("last_seg_", "last_segment_"); } else if fn_name.contains("_2_d") { fn_name = fn_name.replace("_2_d", "_2d"); - } else if fn_name.contains("_greater_than_or_eq") { - fn_name = fn_name.replace("_greater_than_or_eq", "_gte"); - } else if fn_name.contains("_less_than_or_eq") { - fn_name = fn_name.replace("_less_than_or_eq", "_lte"); - } else if fn_name.contains("_greater_than") { - fn_name = fn_name.replace("_greater_than", "_gt"); - } else if fn_name.contains("_less_than") { - fn_name = fn_name.replace("_less_than", "_lt"); } else if fn_name.contains("_3_d") { fn_name = fn_name.replace("_3_d", "_3d"); } else if fn_name == "seg_ang" { @@ -962,172 +606,11 @@ fn clean_function_name(name: &str) -> String { fn_name = "segment_length".to_string(); } else if fn_name.starts_with("seg_") { fn_name = fn_name.replace("seg_", "segment_"); - } else if fn_name.starts_with("log_") { - fn_name = fn_name.replace("log_", "log"); - } else if fn_name.ends_with("tan_2") { - fn_name = fn_name.replace("tan_2", "tan2"); } fn_name } -/// Recursively create references for types we already know about. -fn recurse_and_create_references( - name: &str, - schema: &schemars::schema::Schema, - types: &BTreeMap, -) -> Result { - if DECLARED_TYPES.contains(&name) || name == "TyF64" { - return Ok(schema.clone()); - } - - let schemars::schema::Schema::Object(o) = schema else { - return Err(anyhow::anyhow!( - "Failed to get object schema, should have not been a primitive" - )); - }; - - // If we already have a reference add the metadata to the reference if it has none. - if let Some(reference) = &o.reference { - let mut obj = o.clone(); - let reference = reference.trim_start_matches("#/components/schemas/"); - if DECLARED_TYPES.contains(&reference) || reference == "TyF64" { - return Ok(schema.clone()); - } - - let t = types - .get(reference) - .ok_or_else(|| anyhow::anyhow!("Failed to get type: {} {:?}", reference, types.keys()))?; - - let schemars::schema::Schema::Object(to) = t else { - return Err(anyhow::anyhow!( - "Failed to get object schema, should have not been a primitive" - )); - }; - - // If this is a primitive just use the primitive. - if to.subschemas.is_none() && to.object.is_none() && to.reference.is_none() { - return Ok(t.clone()); - } - - // Otherwise append the metadata to our reference. - if let Some(metadata) = obj.metadata.as_mut() { - if metadata.description.is_none() { - metadata.description = to.metadata.as_ref().and_then(|m| m.description.clone()); - } - } else { - obj.metadata = to.metadata.clone(); - } - - let obj = cleanup_type_description(&obj) - .map_err(|e| anyhow::anyhow!("Failed to cleanup type description for type `{}`: {}", name, e))?; - return Ok(schemars::schema::Schema::Object(obj)); - } - - let mut obj = o.clone(); - - // If we have an object iterate over the properties and recursively create references. - if let Some(object) = &mut obj.object { - for (_, value) in object.properties.iter_mut() { - let new_value = recurse_and_create_references(name, value, types)?; - *value = new_value; - } - } - - // If we have an array iterate over the items and recursively create references. - if let Some(array) = &mut obj.array { - if let Some(items) = &mut array.items { - match items { - schemars::schema::SingleOrVec::Single(item) => { - let new_item = recurse_and_create_references(name, item, types)?; - *item = Box::new(new_item); - } - schemars::schema::SingleOrVec::Vec(items) => { - for item in items { - let new_item = recurse_and_create_references(name, item, types)?; - *item = new_item; - } - } - } - } - } - - // If we have subschemas iterate over them and recursively create references. - if let Some(subschema) = &mut obj.subschemas { - // Do anyOf. - if let Some(any_of) = &mut subschema.any_of { - // If we only have one item in anyOf we can just return that item. - if any_of.len() == 1 { - let mut new_item = recurse_and_create_references(name, &any_of[0], types)?; - if let schemars::schema::Schema::Object(new_obj) = &mut new_item { - if let Some(metadata) = new_obj.metadata.as_mut() { - metadata.description = obj.metadata.as_ref().and_then(|m| m.description.clone()); - } else { - new_obj.metadata = obj.metadata.clone(); - } - } - return Ok(new_item); - } - for item in any_of { - let new_item = recurse_and_create_references(name, item, types)?; - *item = new_item; - } - } - - // Do allOf. - if let Some(all_of) = &mut subschema.all_of { - // If we only have one item in allOf we can just return that item. - if all_of.len() == 1 { - let mut new_item = recurse_and_create_references(name, &all_of[0], types)?; - if let schemars::schema::Schema::Object(new_obj) = &mut new_item { - if let Some(metadata) = new_obj.metadata.as_mut() { - metadata.description = obj.metadata.as_ref().and_then(|m| m.description.clone()); - } else { - new_obj.metadata = obj.metadata.clone(); - } - } - return Ok(new_item); - } - for item in all_of { - let new_item = recurse_and_create_references(name, item, types)?; - *item = new_item; - } - } - - // Do oneOf. - if let Some(one_of) = &mut subschema.one_of { - // If we only have one item in oneOf we can just return that item. - if one_of.len() == 1 { - let mut new_item = recurse_and_create_references(name, &one_of[0], types)?; - if let schemars::schema::Schema::Object(new_obj) = &mut new_item { - if let Some(metadata) = new_obj.metadata.as_mut() { - metadata.description = obj.metadata.as_ref().and_then(|m| m.description.clone()); - } else { - new_obj.metadata = obj.metadata.clone(); - } - } - return Ok(new_item); - } - for item in one_of { - let new_item = recurse_and_create_references(name, item, types)?; - *item = new_item; - } - } - - if subschema.one_of.is_none() && subschema.all_of.is_none() && subschema.any_of.is_none() && obj.array.is_none() - { - if let Some(SingleOrVec::Single(_)) = &o.instance_type { - return Ok(schema.clone()); - } - } - } - - let obj = cleanup_type_description(&obj) - .map_err(|e| anyhow::anyhow!("Failed to cleanup type description for type `{}`: {}", name, e))?; - - Ok(schemars::schema::Schema::Object(obj.clone())) -} - #[test] fn test_generate_stdlib_markdown_docs() { let stdlib = StdLib::new(); @@ -1137,25 +620,24 @@ fn test_generate_stdlib_markdown_docs() { // Generate the index which is the table of contents. generate_index(&combined, &kcl_std).unwrap(); - let mut types = BTreeMap::new(); for key in combined.keys().sorted() { let internal_fn = combined.get(key).unwrap(); - let fn_types = generate_function(internal_fn.clone()).unwrap(); - types.extend(fn_types); - } - - // Generate the type markdown files. - for (name, schema) in &types { - generate_type(name, schema, &types).unwrap(); + generate_function(internal_fn.clone()).unwrap(); } for d in &kcl_std { match d { - DocData::Fn(f) => generate_function_from_kcl(f, d.file_name()).unwrap(), + DocData::Fn(f) => generate_function_from_kcl(f, d.file_name(), d.example_name()).unwrap(), DocData::Const(c) => generate_const_from_kcl(c, d.file_name(), d.example_name()).unwrap(), DocData::Ty(t) => generate_type_from_kcl(t, d.file_name(), d.example_name()).unwrap(), } } + + // Copy manually written docs to the output directory. + for entry in fs::read_dir("../../docs/kcl-src").unwrap() { + let path = entry.unwrap().path(); + fs::copy(&path, Path::new("../../docs/kcl").join(path.file_name().unwrap())).unwrap(); + } } #[test] @@ -1185,8 +667,7 @@ fn test_generate_stdlib_json_schema() { async fn test_code_in_topics() { let mut join_set = JoinSet::new(); for name in LANG_TOPICS { - let filename = - format!("../../docs/kcl/{}.md", name.to_lowercase().replace(' ', "-")).replace("constants", "consts"); + let filename = format!("../../docs/kcl/{}.md", name.to_lowercase().replace(' ', "-")); let mut file = File::open(&filename).unwrap(); let mut text = String::new(); file.read_to_string(&mut text).unwrap(); diff --git a/rust/kcl-lib/src/docs/kcl_doc.rs b/rust/kcl-lib/src/docs/kcl_doc.rs index a36ecde75..e01e8b72b 100644 --- a/rust/kcl-lib/src/docs/kcl_doc.rs +++ b/rust/kcl-lib/src/docs/kcl_doc.rs @@ -1,8 +1,4 @@ -use std::{ - collections::{HashMap, HashSet}, - fmt, - str::FromStr, -}; +use std::{collections::HashMap, fmt, str::FromStr}; use regex::Regex; use tower_lsp::lsp_types::{ @@ -13,7 +9,7 @@ use tower_lsp::lsp_types::{ use crate::{ execution::annotations, parsing::{ - ast::types::{Annotation, ImportSelector, ItemVisibility, Node, PrimitiveType, Type, VariableKind}, + ast::types::{Annotation, ImportSelector, ItemVisibility, Node, VariableKind}, token::NumericSuffix, }, ModuleId, @@ -159,6 +155,15 @@ impl DocData { } } + #[allow(dead_code)] + pub fn preferred_name(&self) -> &str { + match self { + DocData::Fn(f) => &f.preferred_name, + DocData::Const(c) => &c.preferred_name, + DocData::Ty(t) => &t.preferred_name, + } + } + pub fn qual_name(&self) -> &str { match self { DocData::Fn(f) => &f.qual_name, @@ -180,18 +185,18 @@ impl DocData { #[allow(dead_code)] pub fn file_name(&self) -> String { match self { - DocData::Fn(f) => f.qual_name.replace("::", "-"), + DocData::Fn(f) => format!("functions/{}", f.qual_name.replace("::", "-")), DocData::Const(c) => format!("consts/{}", c.qual_name.replace("::", "-")), - DocData::Ty(t) => format!("types/{}", t.name.clone()), + DocData::Ty(t) => format!("types/{}", t.qual_name.replace("::", "-")), } } #[allow(dead_code)] pub fn example_name(&self) -> String { match self { - DocData::Fn(f) => f.qual_name.replace("::", "-"), + DocData::Fn(f) => format!("fn_{}", f.qual_name.replace("::", "-")), DocData::Const(c) => format!("const_{}", c.qual_name.replace("::", "-")), - DocData::Ty(t) => t.name.clone(), + DocData::Ty(t) => format!("ty_{}", t.qual_name.replace("::", "-")), } } @@ -400,8 +405,6 @@ pub struct FnData { /// Code examples. /// These are tested and we know they compile and execute. pub examples: Vec<(String, ExampleProperties)>, - #[allow(dead_code)] - pub referenced_types: Vec, pub module_name: String, } @@ -420,16 +423,6 @@ impl FnData { let name = var.declaration.id.name.clone(); qual_name.push_str(&name); - let mut referenced_types = HashSet::new(); - if let Some(t) = &expr.return_type { - collect_type_names(&mut referenced_types, t); - } - for p in &expr.params { - if let Some(t) = &p.type_ { - collect_type_names(&mut referenced_types, t); - } - } - FnData { preferred_name: format!("{preferred_prefix}{name}"), name, @@ -445,7 +438,6 @@ impl FnData { summary: None, description: None, examples: Vec::new(), - referenced_types: referenced_types.into_iter().collect(), module_name: module_name.to_owned(), } } @@ -726,8 +718,6 @@ pub struct TyData { /// Code examples. /// These are tested and we know they compile and execute. pub examples: Vec<(String, ExampleProperties)>, - #[allow(dead_code)] - pub referenced_types: Vec, pub module_name: String, } @@ -741,10 +731,6 @@ impl TyData { ) -> Self { let name = ty.name.name.clone(); qual_name.push_str(&name); - let mut referenced_types = HashSet::new(); - if let Some(t) = &ty.alias { - collect_type_names(&mut referenced_types, t); - } TyData { preferred_name: format!("{preferred_prefix}{name}"), @@ -760,7 +746,6 @@ impl TyData { summary: None, description: None, examples: Vec::new(), - referenced_types: referenced_types.into_iter().collect(), module_name: module_name.to_owned(), } } @@ -1056,35 +1041,6 @@ impl ApplyMeta for ArgData { } } -fn collect_type_names(acc: &mut HashSet, ty: &Type) { - match ty { - Type::Primitive(primitive_type) => { - acc.insert(collect_type_names_from_primitive(primitive_type)); - } - Type::Array { ty, .. } => { - collect_type_names(acc, ty); - } - Type::Union { tys } => tys.iter().for_each(|t| { - acc.insert(collect_type_names_from_primitive(t)); - }), - Type::Object { properties } => properties.iter().for_each(|p| { - if let Some(t) = &p.type_ { - collect_type_names(acc, t) - } - }), - } -} - -fn collect_type_names_from_primitive(ty: &PrimitiveType) -> String { - match ty { - PrimitiveType::String => "string".to_owned(), - PrimitiveType::Number(_) => "number".to_owned(), - PrimitiveType::Boolean => "bool".to_owned(), - PrimitiveType::Tag => "tag".to_owned(), - PrimitiveType::Named(id) => id.name.clone(), - } -} - #[cfg(test)] mod test { use kcl_derive_docs::for_each_std_mod; diff --git a/rust/kcl-lib/src/docs/templates/array.hbs b/rust/kcl-lib/src/docs/templates/array.hbs deleted file mode 100644 index 3a1fcc1d5..000000000 --- a/rust/kcl-lib/src/docs/templates/array.hbs +++ /dev/null @@ -1 +0,0 @@ -{{~ #if maxItems ~}}{{~ #if (lte maxItems 3) ~}}`[{{#times maxItems ~}}{{~ #if @first ~}}{{else ~}}, {{/if ~}}{{> propertyType ../items}}{{/times}}]`{{else ~}}`[` {{ > propertyType items }} `]`{{~ /if ~}}{{else ~}}`[` {{ > propertyType items }} `]`{{~ /if ~}} diff --git a/rust/kcl-lib/src/docs/templates/consts-index.hbs b/rust/kcl-lib/src/docs/templates/consts-index.hbs deleted file mode 100644 index b489921d5..000000000 --- a/rust/kcl-lib/src/docs/templates/consts-index.hbs +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "KCL Constants" -excerpt: "Documentation for the KCL constants." -layout: manual ---- - -## Table of Contents - -{{#each consts}} - -### `{{name}}` - -{{#each consts}} -- [`{{name}}`](/docs/kcl/{{file_name}}) -{{/each}} -{{/each}} - diff --git a/rust/kcl-lib/src/docs/templates/index.hbs b/rust/kcl-lib/src/docs/templates/index.hbs index 40cfc6e09..f03800824 100644 --- a/rust/kcl-lib/src/docs/templates/index.hbs +++ b/rust/kcl-lib/src/docs/templates/index.hbs @@ -12,11 +12,31 @@ layout: manual * [`{{name}}`](kcl/{{file_name}}) {{/each}} -### Standard library +### Functions -{{#each modules}} -* **{{name}}** {{#each functions}} +* **{{name}}** +{{#each items}} * [`{{name}}`](kcl/{{file_name}}) {{/each}} {{/each}} + +### Constants + +{{#each consts}} +* **{{name}}** +{{#each items}} + * [`{{name}}`](kcl/{{file_name}}) +{{/each}} +{{/each}} + +### Types + +See also the [types overview](types) + +{{#each types}} +* **{{name}}** +{{#each items}} + * [`{{name}}`](kcl/{{file_name}}) +{{/each}} +{{/each}} \ No newline at end of file diff --git a/rust/kcl-lib/src/docs/templates/properties.hbs b/rust/kcl-lib/src/docs/templates/properties.hbs deleted file mode 100644 index 283f68456..000000000 --- a/rust/kcl-lib/src/docs/templates/properties.hbs +++ /dev/null @@ -1,13 +0,0 @@ -{{#if properties}} -{{#if @root.inDefinition}} -#### Properties -{{else}} -## Properties -{{/if}} - -| Property | Type | Description | Required | -|----------|------|-------------|----------| -{{#each properties}} -| `{{@key}}` | {{~ > propertyType this ~}} | {{{firstLine this.description}}} | {{#if (lookup ../required @key)}}Yes{{else}}No{{/if}} | -{{/each}} -{{/if}} diff --git a/rust/kcl-lib/src/docs/templates/propertyType.hbs b/rust/kcl-lib/src/docs/templates/propertyType.hbs deleted file mode 100644 index 1c7064831..000000000 --- a/rust/kcl-lib/src/docs/templates/propertyType.hbs +++ /dev/null @@ -1,11 +0,0 @@ -{{~ #if $ref ~}} -{{pretty_ref $ref}}{{else if anyOf ~}} -**anyOf:** {{#each anyOf}}{{> propertyType this}}{{#unless @last}} **OR** {{/unless}}{{/each}}{{else if oneOf ~}} -**oneOf:** {{#each oneOf}}{{> propertyType this}}{{#unless @last}} **OR** {{/unless}}{{/each}}{{else if allOf ~}} -**allOf:** {{#each allOf}}{{> propertyType this}}{{#unless @last}} **OR** {{/unless}}{{/each}}{{else if enum ~}} -enum: {{pretty_enum enum}}{{else if items ~}} -{{~ >array ~}}{{else ~}} -`{{type}}{{~ #if format }}{{#if neq format "double" }} ({{format}}){{~/if ~}} -{{~ /if ~}}` -{{~ #if maximum }} (**maximum:** {{maximum}}){{~/if~}}{{~ #if minimum }} (**minimum:** {{minimum}}){{~/if~}} -{{~ /if ~}} diff --git a/rust/kcl-lib/src/docs/templates/schema.hbs b/rust/kcl-lib/src/docs/templates/schema.hbs deleted file mode 100644 index 6dca717f5..000000000 --- a/rust/kcl-lib/src/docs/templates/schema.hbs +++ /dev/null @@ -1,70 +0,0 @@ -{{#if description}} -{{{description}}} -{{/if}} - -{{#if $ref}} -{{pretty_ref $ref}} -{{else if enum}} -**enum:** {{pretty_enum enum}} -{{else if type}} -**Type:** `{{type}}`{{~ #if format }} (`{{format}}`){{~/if ~}}{{~ #if maximum }} (**maximum:** {{maximum}}){{~/if~}}{{~ #if minimum }} (**minimum:** {{minimum}}){{~/if~}} -{{else}} -{{/if}} - -{{#if $schema}} -**Schema:** `{{$schema}}` -{{/if}} - -{{#if items}} -{{>array}} -{{/if}} - -{{#if anyOf}} -**This schema accepts any of the following:** - -{{#each anyOf}} -{{> schema this}} ----- -{{/each}} -{{/if}} - -{{#if oneOf}} -**This schema accepts exactly one of the following:** - -{{#each oneOf}} -{{> schema this}} ----- -{{/each}} -{{/if}} - -{{#if allOf}} -**This schema requires all of the following:** - -{{#each allOf}} -{{> schema this}} ----- -{{/each}} -{{/if}} - -{{> properties}} - -{{#if definitions}} -## Definitions - -{{#each definitions}} -### {{@key}} - -{{> schemaType this}} - -{{/each}} -{{/if}} - -{{#if examples}} -## Examples - -{{#each examples}} -```json -{{{json this}}} -``` -{{/each}} -{{/if}} diff --git a/rust/kcl-lib/src/docs/templates/schemaType.hbs b/rust/kcl-lib/src/docs/templates/schemaType.hbs deleted file mode 100644 index b28637518..000000000 --- a/rust/kcl-lib/src/docs/templates/schemaType.hbs +++ /dev/null @@ -1,19 +0,0 @@ -{{#if $ref}} -{{pretty_ref $ref}} -{{else if anyOf}} -**anyOf** -{{else if oneOf}} -**oneOf** -{{else if allOf}} -**allOf** -{{else if enum}} -**enum:** {{pretty_enum enum}} -{{else}} -`{{type}}`{{ -#if - format}} (`{{format}}`){{ -/if -}} -{{ -/if -}} diff --git a/rust/kcl-lib/src/docs/templates/type.hbs b/rust/kcl-lib/src/docs/templates/type.hbs deleted file mode 100644 index 0a1050857..000000000 --- a/rust/kcl-lib/src/docs/templates/type.hbs +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "{{title}}" -excerpt: "{{safe_yaml description}}" -layout: manual ---- - -{{> schema this}} diff --git a/rust/kcl-lib/src/lsp/tests.rs b/rust/kcl-lib/src/lsp/tests.rs index 669a7133d..4ca1cf4c0 100644 --- a/rust/kcl-lib/src/lsp/tests.rs +++ b/rust/kcl-lib/src/lsp/tests.rs @@ -1016,7 +1016,7 @@ startSketchOn(XY) match hover.unwrap().contents { tower_lsp::lsp_types::HoverContents::Markup(tower_lsp::lsp_types::MarkupContent { value, .. }) => { - assert!(value.contains("end?: [number]")); + assert!(value.contains("end?: Point2d")); assert!(value.contains("How far away (along the X and Y axes) should this line go?")); } _ => unreachable!(), @@ -4012,7 +4012,7 @@ startSketchOn(XY) match hover.unwrap().contents { tower_lsp::lsp_types::HoverContents::Markup(tower_lsp::lsp_types::MarkupContent { value, .. }) => { - assert!(value.contains("end?: [number]")); + assert!(value.contains("end?: Point2d")); assert!(value.contains("How far away (along the X and Y axes) should this line go?")); } _ => unreachable!(), diff --git a/rust/kcl-lib/src/settings/generate_settings_docs.rs b/rust/kcl-lib/src/settings/generate_settings_docs.rs index 3e484349e..20695567e 100644 --- a/rust/kcl-lib/src/settings/generate_settings_docs.rs +++ b/rust/kcl-lib/src/settings/generate_settings_docs.rs @@ -39,8 +39,8 @@ base_unit = "mm" text_wrapping = false "#; -const PROJECT_SETTINGS_DOC_PATH: &str = "../../docs/kcl/settings/project.md"; -const USER_SETTINGS_DOC_PATH: &str = "../../docs/kcl/settings/user.md"; +const PROJECT_SETTINGS_DOC_PATH: &str = "../../docs/kcl/settings-project.md"; +const USER_SETTINGS_DOC_PATH: &str = "../../docs/kcl/settings-user.md"; fn init_handlebars() -> handlebars::Handlebars<'static> { let mut hbs = handlebars::Handlebars::new(); diff --git a/rust/kcl-lib/std/types.kcl b/rust/kcl-lib/std/types.kcl index 995221bb3..848dc98b3 100644 --- a/rust/kcl-lib/std/types.kcl +++ b/rust/kcl-lib/std/types.kcl @@ -1,6 +1,10 @@ @no_std @settings(defaultLengthUnit = mm) +/// Any value. +@(impl = primitive) +export type any + /// A number /// /// May be signed or unsigned, an integer or decimal value. 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 1c1175c73..b611fa6d0 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 @@ -605,19 +605,19 @@ flowchart LR 84 --- 147 84 --- 233 87 --- 169 - 87 x--> 183 + 87 x--> 184 87 --- 212 87 --- 257 89 --- 168 - 89 x--> 183 + 89 x--> 184 89 --- 214 89 --- 258 90 --- 167 - 90 x--> 183 + 90 x--> 184 90 --- 211 90 --- 256 92 --- 166 - 92 x--> 183 + 92 x--> 184 92 --- 213 92 --- 259 119 --- 162 @@ -865,10 +865,10 @@ flowchart LR 221 <--x 181 222 <--x 181 193 <--x 182 - 211 <--x 184 - 212 <--x 184 - 213 <--x 184 - 214 <--x 184 + 211 <--x 183 + 212 <--x 183 + 213 <--x 183 + 214 <--x 183 203 <--x 186 204 <--x 186 205 <--x 186 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_angle_to_match_length_x0.png b/rust/kcl-lib/tests/outputs/serial_test_example_angle_to_match_length_x0.png deleted file mode 100644 index 5e10b3a04..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_angle_to_match_length_x0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_angle_to_match_length_y0.png b/rust/kcl-lib/tests/outputs/serial_test_example_angle_to_match_length_y0.png deleted file mode 100644 index 01ba6d038..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_angle_to_match_length_y0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_of_x_length0.png b/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_of_x_length0.png deleted file mode 100644 index c9a36c911..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_of_x_length0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_of_y_length0.png b/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_of_y_length0.png deleted file mode 100644 index 7fe8900e6..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_of_y_length0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_to_x0.png b/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_to_x0.png deleted file mode 100644 index 5c056bc06..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_to_x0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_to_y0.png b/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_to_y0.png deleted file mode 100644 index c6d65c6bd..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_angled_line_to_y0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_assert_gt0.png b/rust/kcl-lib/tests/outputs/serial_test_example_assert_gt0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_assert_gt0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_assert_gte0.png b/rust/kcl-lib/tests/outputs/serial_test_example_assert_gte0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_assert_gte0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_assert_lt0.png b/rust/kcl-lib/tests/outputs/serial_test_example_assert_lt0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_assert_lt0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_assert_lte0.png b/rust/kcl-lib/tests/outputs/serial_test_example_assert_lte0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_assert_lte0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_assert_order0.png b/rust/kcl-lib/tests/outputs/serial_test_example_assert_order0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_assert_order0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_atan0.png b/rust/kcl-lib/tests/outputs/serial_test_example_atan0.png deleted file mode 100644 index b6db63cd5..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_atan0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_e0.png b/rust/kcl-lib/tests/outputs/serial_test_example_e0.png deleted file mode 100644 index 5c79e062e..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_e0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-helix0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-helix0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-helix1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-helix1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-helix2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix2.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-helix2.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix2.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-helix3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix3.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-helix3.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-helix3.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-abs0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-abs0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-abs0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-abs0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-acos0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-acos0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-acos0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-acos0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-asin0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-asin0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-asin0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-asin0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-atan20.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-atan20.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-atan20.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-atan20.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-ceil0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-ceil0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-ceil0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-ceil0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-cos0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-cos0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-cos0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-cos0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-floor0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-floor0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-floor0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-floor0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-ln0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-ln0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-ln0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-ln0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-log0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-log0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-log0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-log0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-log100.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-log100.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-log100.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-log100.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-log20.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-log20.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-log20.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-log20.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-max0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-max0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-max0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-max0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-min0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-min0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-min0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-min0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-polar0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-polar0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-polar0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-polar0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-pow0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-pow0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-pow0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-pow0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_Sketch1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-rem0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_Sketch1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-rem0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-round0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-round0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-round0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-round0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-sin0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-sin0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-sin0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-sin0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-sqrt0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-sqrt0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-sqrt0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-sqrt0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-tan0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-tan0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-math-tan0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-math-tan0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane2.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane2.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane2.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane3.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane3.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane3.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane4.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane4.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-offsetPlane4.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane4.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve10.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve10.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve10.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve10.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve11.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve11.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve11.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve11.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve12.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve12.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve12.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve12.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve2.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve2.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve2.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve3.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve3.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve3.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve4.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve4.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve4.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve4.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve5.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve5.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve5.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve5.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve6.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve6.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve6.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve6.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve7.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve7.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve7.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve7.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve8.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve8.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve8.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve8.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-revolve9.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve9.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-revolve9.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-revolve9.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_circle0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-circle0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_circle0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-circle0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_circle1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-circle1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_circle1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-circle1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d2.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d2.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d2.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d3.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d3.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d3.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d4.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d4.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-mirror2d4.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-mirror2d4.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-chamfer0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-chamfer0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-chamfer0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-chamfer0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-chamfer1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-chamfer1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-chamfer1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-chamfer1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-fillet0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-fillet0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-fillet0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-fillet0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-fillet1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-fillet1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-fillet1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-fillet1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_Solid0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_Solid0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-hollow1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-hollow1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-hollow2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow2.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-hollow2.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow2.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell2.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell2.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell2.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell3.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell3.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell3.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell4.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell4.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell4.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell4.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell5.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell5.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell5.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell5.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell6.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell6.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-shell6.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell6.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-units-toDegrees0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-units-toDegrees0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-units-toDegrees0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-units-toDegrees0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-units-toRadians0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-units-toRadians0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-units-toRadians0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_fn_std-units-toRadians0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_from_cm0.png b/rust/kcl-lib/tests/outputs/serial_test_example_from_cm0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_from_cm0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_from_ft0.png b/rust/kcl-lib/tests/outputs/serial_test_example_from_ft0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_from_ft0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_from_inches0.png b/rust/kcl-lib/tests/outputs/serial_test_example_from_inches0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_from_inches0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_from_m0.png b/rust/kcl-lib/tests/outputs/serial_test_example_from_m0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_from_m0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_from_mm0.png b/rust/kcl-lib/tests/outputs/serial_test_example_from_mm0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_from_mm0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_from_yd0.png b/rust/kcl-lib/tests/outputs/serial_test_example_from_yd0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_from_yd0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_get_edge0.png b/rust/kcl-lib/tests/outputs/serial_test_example_get_edge0.png deleted file mode 100644 index 314ce69ad..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_get_edge0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_get_extrude_wall_transform0.png b/rust/kcl-lib/tests/outputs/serial_test_example_get_extrude_wall_transform0.png deleted file mode 100644 index ba35d22dc..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_get_extrude_wall_transform0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_hole0.png b/rust/kcl-lib/tests/outputs/serial_test_example_hole0.png deleted file mode 100644 index 29c490844..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_hole0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_hole1.png b/rust/kcl-lib/tests/outputs/serial_test_example_hole1.png deleted file mode 100644 index 399c5e7c4..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_hole1.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_import0.png b/rust/kcl-lib/tests/outputs/serial_test_example_import0.png deleted file mode 100644 index c38b6868d..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_import0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_import1.png b/rust/kcl-lib/tests/outputs/serial_test_example_import1.png deleted file mode 100644 index 74b7216c1..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_import1.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_import2.png b/rust/kcl-lib/tests/outputs/serial_test_example_import2.png deleted file mode 100644 index 9a8ab9c3c..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_import2.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_import3.png b/rust/kcl-lib/tests/outputs/serial_test_example_import3.png deleted file mode 100644 index fdb439990..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_import3.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_import4.png b/rust/kcl-lib/tests/outputs/serial_test_example_import4.png deleted file mode 100644 index 987fba8e6..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_import4.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_import5.png b/rust/kcl-lib/tests/outputs/serial_test_example_import5.png deleted file mode 100644 index 4e87e466c..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_import5.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_int0.png b/rust/kcl-lib/tests/outputs/serial_test_example_int0.png deleted file mode 100644 index c566903b3..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_int0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_line1.png b/rust/kcl-lib/tests/outputs/serial_test_example_line1.png deleted file mode 100644 index 77183632e..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_line1.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_line_to0.png b/rust/kcl-lib/tests/outputs/serial_test_example_line_to0.png deleted file mode 100644 index b7311cc65..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_line_to0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_pi0.png b/rust/kcl-lib/tests/outputs/serial_test_example_pi0.png deleted file mode 100644 index 971c03c9d..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_pi0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at0.png b/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at0.png deleted file mode 100644 index a7cbc75e1..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at1.png b/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at1.png deleted file mode 100644 index d6e57761f..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at1.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at2.png b/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at2.png deleted file mode 100644 index 6362e805d..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_start_profile_at2.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-rem0.png b/rust/kcl-lib/tests/outputs/serial_test_example_std-math-rem0.png deleted file mode 100644 index 6148ae432..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_std-math-rem0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-circle0.png b/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-circle0.png deleted file mode 100644 index 5bd912447..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-circle0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-circle1.png b/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-circle1.png deleted file mode 100644 index b085a4fc5..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_std-sketch-circle1.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_tau0.png b/rust/kcl-lib/tests/outputs/serial_test_example_tau0.png deleted file mode 100644 index de171cb67..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_tau0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_Sketch0.png b/rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Sketch0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_Sketch0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Sketch0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_Solid1.png b/rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Sketch1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_Solid1.png rename to rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Sketch1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_std-solid-hollow0.png b/rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Solid0.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_std-solid-hollow0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Solid0.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_assert_equal0.png b/rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Solid1.png similarity index 100% rename from rust/kcl-lib/tests/outputs/serial_test_example_assert_equal0.png rename to rust/kcl-lib/tests/outputs/serial_test_example_ty_std-types-Solid1.png diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_x_line_to0.png b/rust/kcl-lib/tests/outputs/serial_test_example_x_line_to0.png deleted file mode 100644 index 0494b56e1..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_x_line_to0.png and /dev/null differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_y_line_to0.png b/rust/kcl-lib/tests/outputs/serial_test_example_y_line_to0.png deleted file mode 100644 index 9282b8117..000000000 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_y_line_to0.png and /dev/null differ