diff --git a/README.md b/README.md index ddbfc8b..7e67bfb 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ If you are interested, there is also a youtube walkthrough of the puzzles [![Watch the video](https://img.youtube.com/vi/SiwTAyyvt5s/default.jpg)](https://youtu.be/Hafo7hIl8MU) ```python -!pip install -qqq torchtyping hypothesis pytest git+https://github.com/danoneata/chalk@srush-patch-1 +!pip install -qqq jaxtyping beartype hypothesis pytest git+https://github.com/chalk-diagrams/chalk !wget -q https://github.com/srush/Tensor-Puzzles/raw/main/lib.py ``` @@ -35,8 +35,19 @@ If you are interested, there is also a youtube walkthrough of the puzzles from lib import draw_examples, make_test, run_test import torch import numpy as np -from torchtyping import TensorType as TT +import jaxtyping +from lib import Ints, Reals, Bools # jaxtyping shorthand + +import beartype +Tensor = torch.Tensor tensor = torch.tensor + +# Uncommenting the following will turn on type checking of your output +# sizes, but will interfere with the line counting at the end of this +# exercise. https://github.com/google/jaxtyping/issues/160 +# +# %load_ext jaxtyping +# %jaxtyping.typechecker beartype.beartype ``` ## Rules @@ -121,8 +132,8 @@ Compute [ones](https://numpy.org/doc/stable/reference/generated/numpy.ones.html) def ones_spec(out): for i in range(len(out)): out[i] = 1 - -def ones(i: int) -> TT["i"]: + +def ones(i: int) -> Ints["{i}"]: raise NotImplementedError test_ones = make_test("one", ones, ones_spec, add_sizes=["i"]) @@ -150,7 +161,7 @@ def sum_spec(a, out): for i in range(len(a)): out[0] += a[i] -def sum(a: TT["i"]) -> TT[1]: +def sum(a: Reals["i"]) -> Reals["1"]: raise NotImplementedError @@ -179,7 +190,7 @@ def outer_spec(a, b, out): for j in range(len(out[0])): out[i][j] = a[i] * b[j] -def outer(a: TT["i"], b: TT["j"]) -> TT["i", "j"]: +def outer(a: Reals["i"], b: Reals["j"]) -> Reals["i j"]: raise NotImplementedError test_outer = make_test("outer", outer, outer_spec) @@ -206,7 +217,7 @@ def diag_spec(a, out): for i in range(len(a)): out[i] = a[i][i] -def diag(a: TT["i", "i"]) -> TT["i"]: +def diag(a: Reals["i i"]) -> Reals["i"]: raise NotImplementedError @@ -234,7 +245,7 @@ def eye_spec(out): for i in range(len(out)): out[i][i] = 1 -def eye(j: int) -> TT["j", "j"]: +def eye(j: int) -> Ints["{j} {j}"]: raise NotImplementedError test_eye = make_test("eye", eye, eye_spec, add_sizes=["j"]) @@ -265,10 +276,9 @@ def triu_spec(out): else: out[i][j] = 0 -def triu(j: int) -> TT["j", "j"]: +def triu(j: int) -> Ints["{j} {j}"]: raise NotImplementedError - test_triu = make_test("triu", triu, triu_spec, add_sizes=["j"]) ``` @@ -295,7 +305,7 @@ def cumsum_spec(a, out): out[i] = total + a[i] total += a[i] -def cumsum(a: TT["i"]) -> TT["i"]: +def cumsum(a: Reals["i"]) -> Reals["i"]: raise NotImplementedError test_cumsum = make_test("cumsum", cumsum, cumsum_spec) @@ -323,7 +333,8 @@ def diff_spec(a, out): for i in range(1, len(out)): out[i] = a[i] - a[i - 1] -def diff(a: TT["i"], i: int) -> TT["i"]: +def diff(a: Reals["i"], i: int) -> Reals["i"]: + assert(i == a.shape[0]) raise NotImplementedError test_diff = make_test("diff", diff, diff_spec, add_sizes=["i"]) @@ -351,10 +362,9 @@ def vstack_spec(a, b, out): out[0][i] = a[i] out[1][i] = b[i] -def vstack(a: TT["i"], b: TT["i"]) -> TT[2, "i"]: +def vstack(a: Reals["i"], b: Reals["i"]) -> Reals["2 i"]: raise NotImplementedError - test_vstack = make_test("vstack", vstack, vstack_spec) ``` @@ -382,7 +392,8 @@ def roll_spec(a, out): else: out[i] = a[i + 1 - len(out)] -def roll(a: TT["i"], i: int) -> TT["i"]: +def roll(a: Reals["i"], i: int) -> Reals["i"]: + assert(i == a.shape[0]) raise NotImplementedError @@ -410,10 +421,10 @@ def flip_spec(a, out): for i in range(len(out)): out[i] = a[len(out) - i - 1] -def flip(a: TT["i"], i: int) -> TT["i"]: +def flip(a: Reals["i"], i: int) -> Reals["i"]: + assert(i == a.shape[0]) raise NotImplementedError - test_flip = make_test("flip", flip, flip_spec, add_sizes=["i"]) ``` @@ -442,10 +453,10 @@ def compress_spec(g, v, out): out[j] = v[i] j += 1 -def compress(g: TT["i", bool], v: TT["i"], i:int) -> TT["i"]: +def compress(g: Bools["i"], v: Reals["i"], i: int) -> Reals["i"]: + assert(i == v.shape[0]) raise NotImplementedError - test_compress = make_test("compress", compress, compress_spec, add_sizes=["i"]) ``` @@ -471,11 +482,10 @@ def pad_to_spec(a, out): for i in range(min(len(out), len(a))): out[i] = a[i] - -def pad_to(a: TT["i"], i: int, j: int) -> TT["j"]: +def pad_to(a: Reals["i"], i: int, j: int) -> Reals["{j}"]: + assert(i == a.shape[0]) raise NotImplementedError - test_pad_to = make_test("pad_to", pad_to, pad_to_spec, add_sizes=["i", "j"]) ``` @@ -505,15 +515,13 @@ def sequence_mask_spec(values, length, out): else: out[i][j] = 0 -def sequence_mask(values: TT["i", "j"], length: TT["i", int]) -> TT["i", "j"]: +def sequence_mask(values: Reals["i j"], length: Ints["i"]) -> Reals["i j"]: raise NotImplementedError - def constraint_set_length(d): d["length"] = d["length"] % d["values"].shape[1] return d - test_sequence = make_test("sequence_mask", sequence_mask, sequence_mask_spec, constraint=constraint_set_length ) @@ -540,10 +548,11 @@ def bincount_spec(a, out): for i in range(len(a)): out[a[i]] += 1 -def bincount(a: TT["i"], j: int) -> TT["j"]: +def bincount(a: Ints["i"], j: int) -> Ints["{j}"]: + assert j >= max(a) + assert all(x >= 0 for x in a) raise NotImplementedError - def constraint_set_max(d): d["a"] = d["a"] % d["return"].shape[0] return d @@ -575,15 +584,13 @@ def scatter_add_spec(values, link, out): for j in range(len(values)): out[link[j]] += values[j] -def scatter_add(values: TT["i"], link: TT["i"], j: int) -> TT["j"]: +def scatter_add(values: Reals["i"], link: Ints["i"], j: int) -> Reals["{j}"]: raise NotImplementedError - def constraint_set_max(d): d["link"] = d["link"] % d["return"].shape[0] return d - test_scatter_add = make_test("scatter_add", scatter_add, scatter_add_spec, add_sizes=["j"], constraint=constraint_set_max ) @@ -613,7 +620,9 @@ def flatten_spec(a, out): out[k] = a[i][j] k += 1 -def flatten(a: TT["i", "j"], i:int, j:int) -> TT["i * j"]: +def flatten(a: Reals["i j"], i:int, j:int) -> Reals["i*j"]: + assert(i == a.shape[0]) + assert(j == a.shape[1]) raise NotImplementedError test_flatten = make_test("flatten", flatten, flatten_spec, add_sizes=["i", "j"]) @@ -640,7 +649,7 @@ def linspace_spec(i, j, out): for k in range(len(out)): out[k] = float(i + (j - i) * k / max(1, len(out) - 1)) -def linspace(i: TT[1], j: TT[1], n: int) -> TT["n", float]: +def linspace(i: Reals["1"], j: Reals["1"], n: int) -> Reals["{n}"]: raise NotImplementedError test_linspace = make_test("linspace", linspace, linspace_spec, add_sizes=["n"]) @@ -670,7 +679,7 @@ def heaviside_spec(a, b, out): else: out[k] = int(a[k] > 0) -def heaviside(a: TT["i"], b: TT["i"]) -> TT["i"]: +def heaviside(a: Reals["i"], b: Reals["i"]) -> Reals["i"]: raise NotImplementedError test_heaviside = make_test("heaviside", heaviside, heaviside_spec) @@ -697,16 +706,11 @@ def repeat_spec(a, d, out): for i in range(d[0]): for k in range(len(a)): out[i][k] = a[k] - -def constraint_set(d): - d["d"][0] = d["return"].shape[0] - return d - -def repeat(a: TT["i"], d: TT[1]) -> TT["d", "i"]: +def repeat(a: Reals["i"], d: int) -> Reals["{d} i"]: raise NotImplementedError -test_repeat = make_test("repeat", repeat, repeat_spec, constraint=constraint_set) +test_repeat = make_test("repeat", repeat, repeat_spec, add_sizes=['d']) ``` ![svg](Tensor%20Puzzlers_files/Tensor%20Puzzlers_68_0.svg) @@ -730,8 +734,7 @@ def constraint_set(d): d["boundaries"] = np.abs(d["boundaries"]).cumsum() return d - -def bucketize(v: TT["i"], boundaries: TT["j"]) -> TT["i"]: +def bucketize(v: Reals["i"], boundaries: Reals["j"]) -> Ints["i"]: raise NotImplementedError test_bucketize = make_test("bucketize", bucketize, bucketize_spec, diff --git a/Tensor Puzzlers.ipynb b/Tensor Puzzlers.ipynb index 8c2019b..5386d6a 100644 --- a/Tensor Puzzlers.ipynb +++ b/Tensor Puzzlers.ipynb @@ -37,17 +37,10 @@ "cell_type": "code", "execution_count": 1, "id": "a80d8a77", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:04.415840Z", - "iopub.status.busy": "2022-07-13T00:15:04.415474Z", - "iopub.status.idle": "2022-07-13T00:15:15.033050Z", - "shell.execute_reply": "2022-07-13T00:15:15.032260Z" - } - }, + "metadata": {}, "outputs": [], "source": [ - "!pip install -qqq torchtyping hypothesis pytest git+https://github.com/chalk-diagrams/chalk\n", + "!pip install -qqq jaxtyping beartype hypothesis pytest git+https://github.com/chalk-diagrams/chalk\n", "!wget -q https://github.com/srush/Tensor-Puzzles/raw/main/lib.py" ] }, @@ -55,21 +48,25 @@ "cell_type": "code", "execution_count": 2, "id": "bf221907", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:15.036937Z", - "iopub.status.busy": "2022-07-13T00:15:15.036583Z", - "iopub.status.idle": "2022-07-13T00:15:16.650907Z", - "shell.execute_reply": "2022-07-13T00:15:16.650254Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "from lib import draw_examples, make_test, run_test\n", "import torch\n", "import numpy as np\n", - "from torchtyping import TensorType as TT\n", - "tensor = torch.tensor" + "import jaxtyping\n", + "from lib import Ints, Reals, Bools # jaxtyping shorthand \n", + "\n", + "import beartype\n", + "Tensor = torch.Tensor\n", + "tensor = torch.tensor\n", + "\n", + "# Uncommenting the following will turn on type checking of your output\n", + "# sizes, but will interfere with the line counting at the end of this\n", + "# exercise. https://github.com/google/jaxtyping/issues/160\n", + "# \n", + "# %load_ext jaxtyping\n", + "# %jaxtyping.typechecker beartype.beartype" ] }, { @@ -115,12 +112,6 @@ "execution_count": 3, "id": "1e917499", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:16.654641Z", - "iopub.status.busy": "2022-07-13T00:15:16.654307Z", - "iopub.status.idle": "2022-07-13T00:15:16.697912Z", - "shell.execute_reply": "2022-07-13T00:15:16.697280Z" - }, "lines_to_next_cell": 2 }, "outputs": [ @@ -128,96 +119,75 @@ "data": { "image/svg+xml": [ "\n", - "arange" + "arange" ], "text/plain": [ - "Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=24.000120000000003, height=3.6002399999999994, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -8.881784197001252e-16,\n", - " 0.0, 1.0, -1.2001199999999999), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5), diagram=ApplyStyle(style=Style(line_width=(, 0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='arange', font_size=0.75), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0001), diagram=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + "Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(24.000120000000003, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 3.6002399999999994), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-24.000120000000003, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -3.6002399999999994), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -12.000060000000001,\n", + " 0.0, 1.0, -1.8001199999999997)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -8.881784197001252e-16,\n", + " 0.0, 1.0, -1.2001199999999999), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='arange', font_size=0.75), style=Style(line_width_=(, 0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5))), diagram2=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 1.0001))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 2.00015), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -10.0,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.50005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.50005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.0,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 3.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 6.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.0,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 15.50005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -4.0,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 10.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 15.50005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -4.0,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 3.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.7, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 4.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.76, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.76, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.8200000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.8200000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 6.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.88, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty())))))), diagram2=Empty())))" + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.88, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 7.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty())))))), diagram2=Empty())))" ] }, "execution_count": 3, @@ -226,7 +196,7 @@ } ], "source": [ - "def arange(i: int):\n", + "def arange(i: int) -> Ints[\"i\"]:\n", " \"Use this function to replace a for-loop.\"\n", " return torch.tensor(range(i))\n", "\n", @@ -237,222 +207,171 @@ "cell_type": "code", "execution_count": 4, "id": "aa922d9d", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:16.701951Z", - "iopub.status.busy": "2022-07-13T00:15:16.701616Z", - "iopub.status.idle": "2022-07-13T00:15:16.795294Z", - "shell.execute_reply": "2022-07-13T00:15:16.794635Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", - "broadcastabret" + "broadcastabret" ], "text/plain": [ - "Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=9.600119999999999, height=20.40012, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -9.60006), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5), diagram=ApplyStyle(style=Style(line_width=(, 0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='broadcast', font_size=0.75), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0001), diagram=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + "Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(9.600119999999999, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 20.40012), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-9.600119999999999, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -20.40012), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -4.800059999999999,\n", + " 0.0, 1.0, -10.20006)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", + " 0.0, 1.0, -9.60006), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='broadcast', font_size=0.75), style=Style(line_width_=(, 0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5))), diagram2=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 1.0001))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 9.0001), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -4.0,\n", - " 0.0, 1.0, -6.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='a', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -6.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='a', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", + " 0.0, 1.0, -1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, 0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 1.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 2.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 2.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 5.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='b', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, 1.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", + " -1.0, 0.0, 2.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 5.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='b', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", + " 0.0, 1.0, -2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, 0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 1.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 2.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, 1.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 2.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 3.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, 2.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 3.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 4.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, 3.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 8.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 11.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='ret', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.5,\n", - " 0.0, 1.0, -2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", + " -1.0, 0.0, 8.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 11.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='ret', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.5,\n", + " 0.0, 1.0, -2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 1.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.7, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 2.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 3.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 3.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.7, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.76, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.76, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 3.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 4.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 4.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.7, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.76, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.76, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.8200000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.8200000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n", + " 0.0, 1.0, -0.5)))))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 1.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))))), diagram2=Empty())))))))), diagram2=Empty())))" + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))))), diagram2=Empty())))))))), diagram2=Empty())))" ] }, "execution_count": 4, @@ -472,12 +391,6 @@ "execution_count": 5, "id": "0554b7e3", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:16.799098Z", - "iopub.status.busy": "2022-07-13T00:15:16.798780Z", - "iopub.status.idle": "2022-07-13T00:15:16.910897Z", - "shell.execute_reply": "2022-07-13T00:15:16.910310Z" - }, "lines_to_end_of_cell_marker": 0, "lines_to_next_cell": 1 }, @@ -486,240 +399,183 @@ "data": { "image/svg+xml": [ "\n", - "whereqabret" + "whereqabret" ], "text/plain": [ - "Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=16.80012, height=14.400239999999998, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -6.6001199999999995), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5), diagram=ApplyStyle(style=Style(line_width=(, 0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='where', font_size=0.75), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0001), diagram=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + "Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(16.80012, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 14.400239999999998), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-16.80012, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -14.400239999999998), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -8.40006,\n", + " 0.0, 1.0, -7.200119999999999)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", + " 0.0, 1.0, -6.6001199999999995), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='where', font_size=0.75), style=Style(line_width_=(, 0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5))), diagram2=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 1.0001))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 6.50015), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -7.0,\n", - " 0.0, 1.0, -4.00005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='q', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -4.00005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='q', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 8.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 11.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 11.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.5), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 3.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='a', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", + " -1.0, 0.0, 1.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 3.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='a', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 11.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 8.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 11.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", + " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 4.5), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 5.50005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='b', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, 0.5)))), diagram2=Empty()))))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", + " -1.0, 0.0, 4.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 5.50005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='b', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 8.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 11.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 11.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 6.5001), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", - " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 8.0001), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", - " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='ret', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n", - " 0.0, 1.0, -0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n", + " -1.0, 0.0, 6.5001))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 8.0001), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n", + " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='ret', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", + " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5000499999999999,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 8.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 11.50005,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", - " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", - " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 11.50005,\n", + " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 13.00005,\n", + " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", " 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n", " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=1.0, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, 1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=1.0, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n", + " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n", " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n", - " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n", - " 0.0, 1.0, 0.0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n", - " 0.0, 1.0, 0.0))))))), diagram2=Empty())))))))), diagram2=Empty())))" + " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n", + " 0.0, 1.0, -0.5)))))), diagram2=Empty())))))))), diagram2=Empty())))" ] }, "execution_count": 5, @@ -757,25 +613,33 @@ "cell_type": "code", "execution_count": 6, "id": "e46e4ada", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:16.915061Z", - "iopub.status.busy": "2022-07-13T00:15:16.914716Z", - "iopub.status.idle": "2022-07-13T00:15:17.727959Z", - "shell.execute_reply": "2022-07-13T00:15:17.727364Z" - } - }, + "metadata": {}, + "outputs": [], + "source": [ + "def ones_spec(out):\n", + " for i in range(len(out)):\n", + " out[i] = 1\n", + "\n", + "def ones(i: int) -> Ints[\"{i}\"]:\n", + " raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0e2fd2dd-c398-46b2-9cf8-5557942434dc", + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "oneonetarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -786,27 +650,14 @@ } ], "source": [ - "def ones_spec(out):\n", - " for i in range(len(out)):\n", - " out[i] = 1\n", - " \n", - "def ones(i: int) -> TT[\"i\"]:\n", - " raise NotImplementedError\n", - "\n", "test_ones = make_test(\"one\", ones, ones_spec, add_sizes=[\"i\"])" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "65dadb3d", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:17.731092Z", - "iopub.status.busy": "2022-07-13T00:15:17.730771Z", - "iopub.status.idle": "2022-07-13T00:15:17.734462Z", - "shell.execute_reply": "2022-07-13T00:15:17.733881Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -826,30 +677,23 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "eb9f236f", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:17.737503Z", - "iopub.status.busy": "2022-07-13T00:15:17.737190Z", - "iopub.status.idle": "2022-07-13T00:15:18.496977Z", - "shell.execute_reply": "2022-07-13T00:15:18.496351Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "sumsumaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -865,24 +709,17 @@ " for i in range(len(a)):\n", " out[0] += a[i]\n", " \n", - "def sum(a: TT[\"i\"]) -> TT[1]:\n", + "def sum(a: Reals[\"i\"]) -> Reals[\"1\"]:\n", " raise NotImplementedError\n", "\n", - "\n", "test_sum = make_test(\"sum\", sum, sum_spec)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "3f7e2b46", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:18.500120Z", - "iopub.status.busy": "2022-07-13T00:15:18.499809Z", - "iopub.status.idle": "2022-07-13T00:15:18.503156Z", - "shell.execute_reply": "2022-07-13T00:15:18.502577Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -902,33 +739,26 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "33e8b424", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:18.506196Z", - "iopub.status.busy": "2022-07-13T00:15:18.505868Z", - "iopub.status.idle": "2022-07-13T00:15:20.019439Z", - "shell.execute_reply": "2022-07-13T00:15:20.018755Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "outerouteraabbtarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -944,7 +774,7 @@ " for j in range(len(out[0])):\n", " out[i][j] = a[i] * b[j]\n", " \n", - "def outer(a: TT[\"i\"], b: TT[\"j\"]) -> TT[\"i\", \"j\"]:\n", + "def outer(a: Reals[\"i\"], b: Reals[\"j\"]) -> Reals[\"i j\"]:\n", " raise NotImplementedError\n", " \n", "test_outer = make_test(\"outer\", outer, outer_spec)" @@ -952,16 +782,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "15c04a58", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:20.022830Z", - "iopub.status.busy": "2022-07-13T00:15:20.022513Z", - "iopub.status.idle": "2022-07-13T00:15:20.026801Z", - "shell.execute_reply": "2022-07-13T00:15:20.026186Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_outer)" @@ -979,30 +802,23 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "09ea72c6", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:20.030049Z", - "iopub.status.busy": "2022-07-13T00:15:20.029731Z", - "iopub.status.idle": "2022-07-13T00:15:21.274448Z", - "shell.execute_reply": "2022-07-13T00:15:21.273836Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "diagdiagaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1017,25 +833,17 @@ " for i in range(len(a)):\n", " out[i] = a[i][i]\n", " \n", - "def diag(a: TT[\"i\", \"i\"]) -> TT[\"i\"]:\n", + "def diag(a: Reals[\"i i\"]) -> Reals[\"i\"]:\n", " raise NotImplementedError\n", "\n", - "\n", "test_diag = make_test(\"diag\", diag, diag_spec)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "5d4c3641", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:21.277837Z", - "iopub.status.busy": "2022-07-13T00:15:21.277486Z", - "iopub.status.idle": "2022-07-13T00:15:21.281005Z", - "shell.execute_reply": "2022-07-13T00:15:21.280409Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_diag)" @@ -1053,27 +861,20 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "4fda43df", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:21.283997Z", - "iopub.status.busy": "2022-07-13T00:15:21.283689Z", - "iopub.status.idle": "2022-07-13T00:15:22.155854Z", - "shell.execute_reply": "2022-07-13T00:15:22.155222Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "eyeeyetarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1088,7 +889,7 @@ " for i in range(len(out)):\n", " out[i][i] = 1\n", " \n", - "def eye(j: int) -> TT[\"j\", \"j\"]:\n", + "def eye(j: int) -> Ints[\"{j} {j}\"]:\n", " raise NotImplementedError\n", " \n", "test_eye = make_test(\"eye\", eye, eye_spec, add_sizes=[\"j\"])" @@ -1096,16 +897,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "1c2ec691", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:22.159088Z", - "iopub.status.busy": "2022-07-13T00:15:22.158772Z", - "iopub.status.idle": "2022-07-13T00:15:22.162208Z", - "shell.execute_reply": "2022-07-13T00:15:22.161597Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_eye)" @@ -1123,27 +917,20 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "4658f7e5", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:22.165226Z", - "iopub.status.busy": "2022-07-13T00:15:22.164922Z", - "iopub.status.idle": "2022-07-13T00:15:23.160949Z", - "shell.execute_reply": "2022-07-13T00:15:23.160294Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "triutriutarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1161,26 +948,18 @@ " out[i][j] = 1\n", " else:\n", " out[i][j] = 0\n", - " \n", - "def triu(j: int) -> TT[\"j\", \"j\"]:\n", - " raise NotImplementedError\n", "\n", + "def triu(j: int) -> Ints[\"{j} {j}\"]:\n", + " raise NotImplementedError\n", "\n", "test_triu = make_test(\"triu\", triu, triu_spec, add_sizes=[\"j\"])" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "b00e3f88", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:23.164309Z", - "iopub.status.busy": "2022-07-13T00:15:23.163987Z", - "iopub.status.idle": "2022-07-13T00:15:23.167373Z", - "shell.execute_reply": "2022-07-13T00:15:23.166786Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_triu)" @@ -1198,30 +977,23 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "997ee763", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:23.170337Z", - "iopub.status.busy": "2022-07-13T00:15:23.170024Z", - "iopub.status.idle": "2022-07-13T00:15:24.239732Z", - "shell.execute_reply": "2022-07-13T00:15:24.239081Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "cumsumcumsumaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1238,7 +1010,7 @@ " out[i] = total + a[i]\n", " total += a[i]\n", "\n", - "def cumsum(a: TT[\"i\"]) -> TT[\"i\"]:\n", + "def cumsum(a: Reals[\"i\"]) -> Reals[\"i\"]:\n", " raise NotImplementedError\n", "\n", "test_cumsum = make_test(\"cumsum\", cumsum, cumsum_spec)" @@ -1246,15 +1018,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "9145d1cc", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:24.243017Z", - "iopub.status.busy": "2022-07-13T00:15:24.242709Z", - "iopub.status.idle": "2022-07-13T00:15:24.246110Z", - "shell.execute_reply": "2022-07-13T00:15:24.245551Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -1274,30 +1040,23 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "id": "47d86d1f", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:24.249200Z", - "iopub.status.busy": "2022-07-13T00:15:24.248891Z", - "iopub.status.idle": "2022-07-13T00:15:25.183613Z", - "shell.execute_reply": "2022-07-13T00:15:25.182987Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "diffdiffaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1313,7 +1072,8 @@ " for i in range(1, len(out)):\n", " out[i] = a[i] - a[i - 1]\n", "\n", - "def diff(a: TT[\"i\"], i: int) -> TT[\"i\"]:\n", + "def diff(a: Reals[\"i\"], i: int) -> Reals[\"i\"]:\n", + " assert(i == a.shape[0])\n", " raise NotImplementedError\n", "\n", "test_diff = make_test(\"diff\", diff, diff_spec, add_sizes=[\"i\"])" @@ -1321,16 +1081,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "bb4eeff6", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:25.186875Z", - "iopub.status.busy": "2022-07-13T00:15:25.186557Z", - "iopub.status.idle": "2022-07-13T00:15:25.190034Z", - "shell.execute_reply": "2022-07-13T00:15:25.189482Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_diff)" @@ -1348,33 +1101,26 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "20a69840", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:25.193149Z", - "iopub.status.busy": "2022-07-13T00:15:25.192804Z", - "iopub.status.idle": "2022-07-13T00:15:26.641528Z", - "shell.execute_reply": "2022-07-13T00:15:26.640905Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "vstackvstackaabbtarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1390,25 +1136,17 @@ " out[0][i] = a[i]\n", " out[1][i] = b[i]\n", "\n", - "def vstack(a: TT[\"i\"], b: TT[\"i\"]) -> TT[2, \"i\"]:\n", + "def vstack(a: Reals[\"i\"], b: Reals[\"i\"]) -> Reals[\"2 i\"]:\n", " raise NotImplementedError\n", "\n", - "\n", "test_vstack = make_test(\"vstack\", vstack, vstack_spec)" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "e6cb449b", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:26.644713Z", - "iopub.status.busy": "2022-07-13T00:15:26.644397Z", - "iopub.status.idle": "2022-07-13T00:15:26.647729Z", - "shell.execute_reply": "2022-07-13T00:15:26.647154Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_vstack)" @@ -1426,30 +1164,23 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "7962491f", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:26.650696Z", - "iopub.status.busy": "2022-07-13T00:15:26.650381Z", - "iopub.status.idle": "2022-07-13T00:15:27.752738Z", - "shell.execute_reply": "2022-07-13T00:15:27.752117Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "rollrollaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1467,25 +1198,18 @@ " else:\n", " out[i] = a[i + 1 - len(out)]\n", " \n", - "def roll(a: TT[\"i\"], i: int) -> TT[\"i\"]:\n", + "def roll(a: Reals[\"i\"], i: int) -> Reals[\"i\"]:\n", + " assert(i == a.shape[0])\n", " raise NotImplementedError\n", "\n", - "\n", "test_roll = make_test(\"roll\", roll, roll_spec, add_sizes=[\"i\"])" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "09103327", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:27.755891Z", - "iopub.status.busy": "2022-07-13T00:15:27.755582Z", - "iopub.status.idle": "2022-07-13T00:15:27.758982Z", - "shell.execute_reply": "2022-07-13T00:15:27.758408Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_roll)" @@ -1503,30 +1227,23 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "1f2d83bb", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:27.762023Z", - "iopub.status.busy": "2022-07-13T00:15:27.761718Z", - "iopub.status.idle": "2022-07-13T00:15:28.745412Z", - "shell.execute_reply": "2022-07-13T00:15:28.744797Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "flipflipaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1541,25 +1258,18 @@ " for i in range(len(out)):\n", " out[i] = a[len(out) - i - 1]\n", " \n", - "def flip(a: TT[\"i\"], i: int) -> TT[\"i\"]:\n", + "def flip(a: Reals[\"i\"], i: int) -> Reals[\"i\"]:\n", + " assert(i == a.shape[0])\n", " raise NotImplementedError\n", "\n", - "\n", "test_flip = make_test(\"flip\", flip, flip_spec, add_sizes=[\"i\"])" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "id": "e5168678", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:28.748580Z", - "iopub.status.busy": "2022-07-13T00:15:28.748257Z", - "iopub.status.idle": "2022-07-13T00:15:28.751662Z", - "shell.execute_reply": "2022-07-13T00:15:28.751071Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_flip)" @@ -1578,33 +1288,26 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "id": "f49b8303", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:28.754592Z", - "iopub.status.busy": "2022-07-13T00:15:28.754290Z", - "iopub.status.idle": "2022-07-13T00:15:30.055478Z", - "shell.execute_reply": "2022-07-13T00:15:30.054841Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "compresscompressggvvtarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1622,24 +1325,18 @@ " out[j] = v[i]\n", " j += 1\n", " \n", - "def compress(g: TT[\"i\", bool], v: TT[\"i\"], i:int) -> TT[\"i\"]:\n", + "def compress(g: Bools[\"i\"], v: Reals[\"i\"], i: int) -> Reals[\"i\"]:\n", + " assert(i == v.shape[0])\n", " raise NotImplementedError\n", "\n", - "\n", "test_compress = make_test(\"compress\", compress, compress_spec, add_sizes=[\"i\"])" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "id": "9e98d290", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:30.058645Z", - "iopub.status.busy": "2022-07-13T00:15:30.058336Z", - "iopub.status.idle": "2022-07-13T00:15:30.061763Z", - "shell.execute_reply": "2022-07-13T00:15:30.061166Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -1662,31 +1359,25 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "id": "52988720", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:30.064726Z", - "iopub.status.busy": "2022-07-13T00:15:30.064418Z", - "iopub.status.idle": "2022-07-13T00:15:31.162878Z", - "shell.execute_reply": "2022-07-13T00:15:31.162268Z" - }, "id": "-DsZHgOTroVN" }, "outputs": [ { "data": { "image/svg+xml": [ - "pad_topad_toaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1701,26 +1392,18 @@ " for i in range(min(len(out), len(a))):\n", " out[i] = a[i]\n", "\n", - "\n", - "def pad_to(a: TT[\"i\"], i: int, j: int) -> TT[\"j\"]:\n", + "def pad_to(a: Reals[\"i\"], i: int, j: int) -> Reals[\"{j}\"]:\n", + " assert(i == a.shape[0])\n", " raise NotImplementedError\n", "\n", - "\n", "test_pad_to = make_test(\"pad_to\", pad_to, pad_to_spec, add_sizes=[\"i\", \"j\"])" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "id": "f8e5aee3", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:31.166060Z", - "iopub.status.busy": "2022-07-13T00:15:31.165749Z", - "iopub.status.idle": "2022-07-13T00:15:31.169131Z", - "shell.execute_reply": "2022-07-13T00:15:31.168580Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_pad_to)" @@ -1739,33 +1422,26 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "id": "6aca6d50", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:31.172146Z", - "iopub.status.busy": "2022-07-13T00:15:31.171799Z", - "iopub.status.idle": "2022-07-13T00:15:33.292198Z", - "shell.execute_reply": "2022-07-13T00:15:33.291558Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "sequence_masksequence_maskvaluesvalueslengthlengthtarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1783,16 +1459,14 @@ " out[i][j] = values[i][j]\n", " else:\n", " out[i][j] = 0\n", - " \n", - "def sequence_mask(values: TT[\"i\", \"j\"], length: TT[\"i\", int]) -> TT[\"i\", \"j\"]:\n", - " raise NotImplementedError\n", "\n", + "def sequence_mask(values: Reals[\"i j\"], length: Ints[\"i\"]) -> Reals[\"i j\"]:\n", + " raise NotImplementedError\n", "\n", "def constraint_set_length(d):\n", " d[\"length\"] = d[\"length\"] % d[\"values\"].shape[1]\n", " return d\n", "\n", - "\n", "test_sequence = make_test(\"sequence_mask\",\n", " sequence_mask, sequence_mask_spec, constraint=constraint_set_length\n", ")" @@ -1800,15 +1474,9 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "id": "f5646e37", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:33.295923Z", - "iopub.status.busy": "2022-07-13T00:15:33.295590Z", - "iopub.status.idle": "2022-07-13T00:15:33.299068Z", - "shell.execute_reply": "2022-07-13T00:15:33.298467Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -1830,30 +1498,23 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "id": "b8a0a10c", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:33.302153Z", - "iopub.status.busy": "2022-07-13T00:15:33.301837Z", - "iopub.status.idle": "2022-07-13T00:15:34.370952Z", - "shell.execute_reply": "2022-07-13T00:15:34.370349Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "bincountbincountaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1867,10 +1528,11 @@ "def bincount_spec(a, out):\n", " for i in range(len(a)):\n", " out[a[i]] += 1\n", - " \n", - "def bincount(a: TT[\"i\"], j: int) -> TT[\"j\"]:\n", - " raise NotImplementedError\n", "\n", + "def bincount(a: Ints[\"i\"], j: int) -> Ints[\"{j}\"]:\n", + " assert j >= max(a)\n", + " assert all(x >= 0 for x in a)\n", + " raise NotImplementedError\n", "\n", "def constraint_set_max(d):\n", " d[\"a\"] = d[\"a\"] % d[\"return\"].shape[0]\n", @@ -1884,15 +1546,9 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "id": "0d766aec", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:34.374345Z", - "iopub.status.busy": "2022-07-13T00:15:34.373778Z", - "iopub.status.idle": "2022-07-13T00:15:34.377216Z", - "shell.execute_reply": "2022-07-13T00:15:34.376611Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -1914,33 +1570,26 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "405a800e", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:34.380250Z", - "iopub.status.busy": "2022-07-13T00:15:34.379949Z", - "iopub.status.idle": "2022-07-13T00:15:35.637090Z", - "shell.execute_reply": "2022-07-13T00:15:35.636472Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "scatter_addscatter_addvaluesvalueslinklinktarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -1954,16 +1603,14 @@ "def scatter_add_spec(values, link, out):\n", " for j in range(len(values)):\n", " out[link[j]] += values[j]\n", - " \n", - "def scatter_add(values: TT[\"i\"], link: TT[\"i\"], j: int) -> TT[\"j\"]:\n", - " raise NotImplementedError\n", "\n", + "def scatter_add(values: Reals[\"i\"], link: Ints[\"i\"], j: int) -> Reals[\"{j}\"]:\n", + " raise NotImplementedError\n", "\n", "def constraint_set_max(d):\n", " d[\"link\"] = d[\"link\"] % d[\"return\"].shape[0]\n", " return d\n", "\n", - "\n", "test_scatter_add = make_test(\"scatter_add\",\n", " scatter_add, scatter_add_spec, add_sizes=[\"j\"], constraint=constraint_set_max\n", ")" @@ -1971,15 +1618,9 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "id": "a9ea0110", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:35.640245Z", - "iopub.status.busy": "2022-07-13T00:15:35.639897Z", - "iopub.status.idle": "2022-07-13T00:15:35.643383Z", - "shell.execute_reply": "2022-07-13T00:15:35.642753Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -1999,31 +1640,25 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "id": "56c917be", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:35.646407Z", - "iopub.status.busy": "2022-07-13T00:15:35.646100Z", - "iopub.status.idle": "2022-07-13T00:15:37.321766Z", - "shell.execute_reply": "2022-07-13T00:15:37.321136Z" - }, "lines_to_next_cell": 1 }, "outputs": [ { "data": { "image/svg+xml": [ - "flattenflattenaatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -2041,7 +1676,9 @@ " out[k] = a[i][j]\n", " k += 1\n", "\n", - "def flatten(a: TT[\"i\", \"j\"], i:int, j:int) -> TT[\"i * j\"]:\n", + "def flatten(a: Reals[\"i j\"], i:int, j:int) -> Reals[\"i*j\"]:\n", + " assert(i == a.shape[0])\n", + " assert(j == a.shape[1])\n", " raise NotImplementedError\n", "\n", "test_flatten = make_test(\"flatten\", flatten, flatten_spec, add_sizes=[\"i\", \"j\"])" @@ -2049,16 +1686,9 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "a129e213", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:37.325238Z", - "iopub.status.busy": "2022-07-13T00:15:37.324893Z", - "iopub.status.idle": "2022-07-13T00:15:37.328344Z", - "shell.execute_reply": "2022-07-13T00:15:37.327760Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "# run_test(test_flatten)" @@ -2076,33 +1706,26 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "115ef19c", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:37.331326Z", - "iopub.status.busy": "2022-07-13T00:15:37.330999Z", - "iopub.status.idle": "2022-07-13T00:15:38.652685Z", - "shell.execute_reply": "2022-07-13T00:15:38.652037Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "linspacelinspaceiijjtarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -2115,9 +1738,9 @@ "source": [ "def linspace_spec(i, j, out):\n", " for k in range(len(out)):\n", - " out[k] = float(i + (j - i) * k / max(1, len(out) - 1))\n", + " out[k] = i[0] + (j[0] - i[0]) * k / max(1, len(out) - 1)\n", "\n", - "def linspace(i: TT[1], j: TT[1], n: int) -> TT[\"n\", float]:\n", + "def linspace(i: Reals[\"1\"], j: Reals[\"1\"], n: int) -> Reals[\"{n}\"]:\n", " raise NotImplementedError\n", "\n", "test_linspace = make_test(\"linspace\", linspace, linspace_spec, add_sizes=[\"n\"])" @@ -2125,15 +1748,9 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "812a6235", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:38.655950Z", - "iopub.status.busy": "2022-07-13T00:15:38.655631Z", - "iopub.status.idle": "2022-07-13T00:15:38.659029Z", - "shell.execute_reply": "2022-07-13T00:15:38.658438Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -2153,33 +1770,26 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 43, "id": "3becb5f1", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:38.662023Z", - "iopub.status.busy": "2022-07-13T00:15:38.661722Z", - "iopub.status.idle": "2022-07-13T00:15:39.902909Z", - "shell.execute_reply": "2022-07-13T00:15:39.902243Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "heavisideheavisideaabbtarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -2197,7 +1807,7 @@ " else:\n", " out[k] = int(a[k] > 0)\n", "\n", - "def heaviside(a: TT[\"i\"], b: TT[\"i\"]) -> TT[\"i\"]:\n", + "def heaviside(a: Reals[\"i\"], b: Reals[\"i\"]) -> Reals[\"i\"]:\n", " raise NotImplementedError\n", "\n", "test_heaviside = make_test(\"heaviside\", heaviside, heaviside_spec)" @@ -2205,15 +1815,9 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "id": "357974e8", "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:39.906141Z", - "iopub.status.busy": "2022-07-13T00:15:39.905812Z", - "iopub.status.idle": "2022-07-13T00:15:39.909230Z", - "shell.execute_reply": "2022-07-13T00:15:39.908641Z" - }, "lines_to_next_cell": 2 }, "outputs": [], @@ -2233,33 +1837,23 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "id": "f763b7ce", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:39.912233Z", - "iopub.status.busy": "2022-07-13T00:15:39.911925Z", - "iopub.status.idle": "2022-07-13T00:15:41.190253Z", - "shell.execute_reply": "2022-07-13T00:15:41.189625Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "repeatarepeatdatarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -2270,56 +1864,59 @@ } ], "source": [ - "def repeat_spec(a, d, out):\n", - " for i in range(d[0]):\n", + "def repeat_spec(a, out):\n", + " for i in range(len(out)):\n", " for k in range(len(a)):\n", " out[i][k] = a[k]\n", - "\n", - "def constraint_set(d):\n", - " d[\"d\"][0] = d[\"return\"].shape[0]\n", - " return d\n", - "\n", " \n", - "def repeat(a: TT[\"i\"], d: TT[1]) -> TT[\"d\", \"i\"]:\n", + "def repeat(a: Reals[\"i\"], d: int) -> Reals[\"{d} i\"]:\n", " raise NotImplementedError\n", "\n", - "test_repeat = make_test(\"repeat\", repeat, repeat_spec, constraint=constraint_set)\n", - "\n", + "test_repeat = make_test(\"repeat\", repeat, repeat_spec, add_sizes=['d'])" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "709cca26-373d-4195-b1d2-36cb28cfaafb", + "metadata": {}, + "outputs": [], + "source": [ + "# run_test(test_repeat)" + ] + }, + { + "cell_type": "markdown", + "id": "b766d6bd-18ee-4f0f-8d2b-599b0d462bb8", + "metadata": {}, + "source": [ + "## Puzzle 21 - bucketize\n", "\n", - "# ## Puzzle 21 - bucketize\n", - "#\n", - "# Compute [bucketize](https://pytorch.org/docs/stable/generated/torch.bucketize.html)" + "Compute [bucketize](https://pytorch.org/docs/stable/generated/torch.bucketize.html)" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 47, "id": "7832fda9", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:41.193726Z", - "iopub.status.busy": "2022-07-13T00:15:41.193384Z", - "iopub.status.idle": "2022-07-13T00:15:42.586710Z", - "shell.execute_reply": "2022-07-13T00:15:42.586092Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "bucketizebucketizevvboundariesboundariestarget" + " vector-effect: non-scaling-stroke;\" transform=\"translate(-5e-05, 0)\">target" ], "text/plain": [ "" @@ -2339,73 +1936,84 @@ " if val >= boundaries[-1]:\n", " out[i] = len(boundaries)\n", "\n", - "\n", "def constraint_set(d):\n", " d[\"boundaries\"] = np.abs(d[\"boundaries\"]).cumsum()\n", " return d\n", "\n", - " \n", - "def bucketize(v: TT[\"i\"], boundaries: TT[\"j\"]) -> TT[\"i\"]:\n", + "def bucketize(v: Reals[\"i\"], boundaries: Reals[\"j\"]) -> Ints[\"i\"]:\n", " raise NotImplementedError\n", "\n", "test_bucketize = make_test(\"bucketize\", bucketize, bucketize_spec,\n", - " constraint=constraint_set)\n", - "\n", + " constraint=constraint_set)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "ef0b4c1c-87cf-43fc-a21b-f8652ba2b229", + "metadata": {}, + "outputs": [], + "source": [ + "# run_test(test_bucketize)" + ] + }, + { + "cell_type": "markdown", + "id": "835dae90-4915-4970-82b9-2663edafb76f", + "metadata": {}, + "source": [ + "## Speed Run Mode!\n", "\n", - "#\n", - "# # Speed Run Mode!\n", - "#\n", - "# What is the smallest you can make each of these?" + "What is the smallest you can make each of these?" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 49, "id": "dbf265d8", - "metadata": { - "execution": { - "iopub.execute_input": "2022-07-13T00:15:42.589966Z", - "iopub.status.busy": "2022-07-13T00:15:42.589646Z", - "iopub.status.idle": "2022-07-13T00:15:42.599516Z", - "shell.execute_reply": "2022-07-13T00:15:42.598869Z" - } - }, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "ones 29\n", - "sum 29\n", - "outer 29\n", - "diag 29\n", - "eye 29\n", - "triu 29\n", - "cumsum 29\n", - "diff 29\n", - "vstack 29\n", - "roll 29\n", - "flip 29\n", - "compress 29\n", - "pad_to 29\n", - "sequence_mask 29\n", - "bincount 29\n", - "scatter_add 29\n" + "ones 25\n", + "sum 25\n", + "outer 25\n", + "diag 25\n", + "eye 25\n", + "triu 25\n", + "cumsum 25\n", + "diff 25\n", + "vstack 25\n", + "roll 25\n", + "flip 25\n", + "compress 25\n", + "pad_to 25\n", + "sequence_mask 25\n", + "bincount 25\n", + "scatter_add 25\n" ] } ], "source": [ "import inspect\n", + "\n", "fns = (ones, sum, outer, diag, eye, triu, cumsum, diff, vstack, roll, flip,\n", " compress, pad_to, sequence_mask, bincount, scatter_add)\n", "\n", "for fn in fns:\n", - " lines = [l for l in inspect.getsource(fn).split(\"\\n\") if not l.strip().startswith(\"#\")]\n", + " source_lines = [l.strip() for l in inspect.getsource(fn).split(\"\\n\")]\n", + " lines = [l for l in source_lines if (l and not l.startswith(\"#\") and not l.startswith(\"assert\"))]\n", + " body_lines = lines[1:]\n", + " num_chars = 0\n", + " for l in body_lines:\n", + " num_chars += len(l)\n", " \n", - " if len(lines) > 3:\n", - " print(fn.__name__, len(lines[2]), \"(more than 1 line)\")\n", + " if len(body_lines) > 1:\n", + " print(fn.__name__, num_chars, \"(more than 1 line)\")\n", " else:\n", - " print(fn.__name__, len(lines[1]))" + " print(fn.__name__, num_chars)" ] } ], @@ -2414,9 +2022,9 @@ "cell_metadata_filter": "id,-all" }, "kernelspec": { - "display_name": "tensor_puzzles", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "tensor_puzzles" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -2428,7 +2036,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.11.5" } }, "nbformat": 4, diff --git a/lib.py b/lib.py index becc77d..dcb8043 100644 --- a/lib.py +++ b/lib.py @@ -1,12 +1,11 @@ - - from hypothesis.extra.numpy import arrays -from hypothesis.strategies import integers, lists, composite, floats +from hypothesis.strategies import integers, booleans, lists, composite, floats from hypothesis import given import numpy as np import random import sys +import inspect import typing import matplotlib.pyplot as plt @@ -17,6 +16,68 @@ import chalk from colour import Color from IPython.display import display, SVG +import jaxtyping + +class JaxTensor: + def __init__(self, TyArg): + self.Ty = TyArg + + def __getitem__(self, s): + return self.Ty[torch.Tensor, s] + +# In Normal jaxtyping, a Torch Tensor array of shape (5, 6) would be written: +# jaxtyping.Real[torch.Tensor, "5 6"] +# However, this is somewhat verbose for most of our usage, so we shorten this to: +# Reals["5 6"] +Ints = JaxTensor(jaxtyping.Int) +Reals = JaxTensor(jaxtyping.Real) +Bools = JaxTensor(jaxtyping.Bool) + + +def jax_to_torch_type(ann: jaxtyping.AbstractArray) -> torch.dtype: + """Return a torch dtype given a jaxtyping annotation.""" + # jaxtyping stores a list of acceptable dtypes. + # Match the ~widest interpretation of a given jaxtyping.ArrayDType. + # https://pytorch.org/docs/stable/tensor_attributes.html + preference_list = [ + ("float32", torch.float32), # 1.0 * torch.tensor([1,2,3]).dtype + ("int64", torch.int64), # torch.tensor([1,2,3]).dtype + ("complex128", torch.complex128), + ("complex64", torch.complex64), + ("float64", torch.float64), + ("bfloat16", torch.bfloat16), + ("float16", torch.float16), + ("uint64", torch.int64), + ("int32", torch.int32), + ("uint32", torch.int64), + ("int16", torch.int16), + ("uint16", torch.int32), + ("int8", torch.int8), + ("uint8", torch.uint8), + ("bool", torch.bool), + ("bool_", torch.bool), + ] + for (dtype_str, torch_type) in preference_list: + if dtype_str in ann.dtypes: + return torch_type + print(f"I don't understand how to make a torch.tensor of jaxtyping dtype {ann}") + assert False + +tensor = torch.tensor + +numpy_to_torch_dtype_dict = { + bool: torch.bool, + np.uint8: torch.uint8, + np.int8: torch.int8, + np.int16: torch.int16, + np.int32: torch.int32, + np.int64: torch.int64, + np.float16: torch.float16, + np.float32: torch.float32, + np.float64: torch.float64, +} +torch_to_numpy_dtype_dict = {v: k for k, v in numpy_to_torch_dtype_dict.items()} + color = [Color("red")] * 50 @@ -47,8 +108,6 @@ def grid(diagrams): for j, col in enumerate(row)], 1.0) for i, row in enumerate(diagrams)], 1.0) def draw_example(data): - - name = data["name"] keys = list(data["vals"][0].keys()) # cols = [[vstrut(0)] + [vstrut(0.5) / text(f"Ex. {i}", 0.5).fill_color(Color("black")).line_width(0.0) / vstrut(0.5) for i in range(len(data["vals"]))]] @@ -83,22 +142,6 @@ def draw_examples(name, examples): return draw_example(data) -tensor = torch.tensor - -numpy_to_torch_dtype_dict = { - bool: torch.bool, - np.uint8: torch.uint8, - np.int8: torch.int8, - np.int16: torch.int16, - np.int32: torch.int32, - np.int64: torch.int64, - np.float16: torch.float16, - np.float32: torch.float32, - np.float64: torch.float64, -} -torch_to_numpy_dtype_dict = {v: k for k, v in numpy_to_torch_dtype_dict.items()} - - @composite def spec(draw, x, min_size=1): # Get the type hints. @@ -108,47 +151,50 @@ def spec(draw, x, min_size=1): gth = typing.get_type_hints(x) # Collect all the dimension names. - names = set() + names = {} for k in gth: - if not hasattr(gth[k], "__metadata__"): - continue - dims = gth[k].__metadata__[0]["details"][0].dims - names.update([d.name for d in dims if isinstance(d.name, str)]) - names = list(names) + if issubclass(gth[k], int): + names[k] = None + elif issubclass(gth[k], jaxtyping.AbstractArray): + names = names | dict.fromkeys([d.name for d in gth[k].dims if hasattr(d, 'name')]) + else: + print(f"Ignoring param {k} with type {gth[k]}") + names = list(names.keys()) # draw sizes for each dim. size = integers(min_value=min_size, max_value=5) arr = draw(arrays(shape=(len(names),), unique=True, elements=size, dtype=np.int32)).tolist() sizes = dict(zip(names, arr)) - for n in list(sizes.keys()): - if '*' in n or '+' in n or '-' in n or '//' in n: - i, op, j = n.split() - i_val = i if i.isdigit() else sizes[i] - j_val = j if j.isdigit() else sizes[j] - sizes[n] = eval('{}{}{}'.format(i_val, op,j_val)) - + # Create tensors for each size. ret = {} for k in gth: - if not hasattr(gth[k], "__metadata__"): + if not issubclass(gth[k], jaxtyping.AbstractArray): continue - shape = tuple( - [ - sizes[d.name] if isinstance(d.name, str) else d.size - for d in gth[k].__metadata__[0]["details"][0].dims - ] - ) - dtype = (torch_to_numpy_dtype_dict[ - gth[k].__metadata__[0]["details"][1].dtype - ] - if len(gth[k].__metadata__[0]["details"]) >= 2 - else int) + # jaxtyping style type + dims = [] + for d in gth[k].dims: + if hasattr(d, 'name'): + dims.append(sizes[d.name]) + elif hasattr(d, 'size'): + dims.append(d.size) + elif hasattr(d, 'elem'): + # This is approximately what jaxtyping does. + # Support f-string syntax. + # https://stackoverflow.com/a/53671539/22545467 + elem = eval(f"f'{d.elem}'", sizes.copy()) + dim = eval(elem, sizes.copy()) + dims.append(int(dim)) + shape = tuple(dims) + torch_dtype = jax_to_torch_type(gth[k]) + np_dtype = torch_to_numpy_dtype_dict[torch_dtype] ret[k] = draw( arrays( shape=shape, - dtype=dtype, - elements=integers(min_value=-5, max_value=5) if - dtype == int else None, + dtype=np_dtype, + elements=(booleans() if torch_dtype == torch.bool else + floats(min_value=-1e10, max_value=1e10, width=32) if torch_dtype.is_floating_point else + integers(min_value=-5, max_value=5)), unique=False ) ) @@ -158,6 +204,29 @@ def spec(draw, x, min_size=1): return ret, sizes +def mk_tensor_args(fn, example_args): + """Prepare an ordered set of example_args so that all non-scalars are torch.tensors. + + Arguments: + fn: the function to which the args are to be passed. + example_args: array like parameters. + + Returns: + a list of arguments in torch.tensor format, suitable for passing to fn + """ + params = list(inspect.signature(fn).parameters.values()) + args = [] + for (param, v) in zip(params, example_args.values()): + if isinstance(param.annotation, type) and issubclass(param.annotation, (int, float)): + args.append(v) + elif issubclass(param.annotation, jaxtyping.AbstractArray): + torch_dtype = jax_to_torch_type(param.annotation) + args.append(torch.tensor(v, dtype=torch_dtype)) + else: + args.append(torch.tensor(v)) + return args + + def make_test(name, problem, problem_spec, add_sizes=[], constraint=lambda d: d): examples = [] for i in range(3): @@ -166,13 +235,13 @@ def make_test(name, problem, problem_spec, add_sizes=[], constraint=lambda d: d) out = example["return"].tolist() del example["return"] problem_spec(*example.values(), out) - + for size in add_sizes: example[size] = sizes[size] yours = None try: - yours = problem(*map(tensor, example.values())) + yours = problem(*mk_tensor_args(problem, example)) except NotImplementedError: pass @@ -191,16 +260,17 @@ def test_problem(d): d, sizes = d d = constraint(d) out = d["return"].tolist() + expected_torch_return_dtype = numpy_to_torch_dtype_dict[d["return"].dtype.type] del d["return"] problem_spec(*d.values(), out) for size in add_sizes: d[size] = sizes[size] - out2 = problem(*map(tensor, d.values())) - out = tensor(out) + out2 = problem(*mk_tensor_args(problem, d)) + out = tensor(out, dtype=expected_torch_return_dtype) out2 = torch.broadcast_to(out2, out.shape) assert torch.allclose( - out, out2 + out, out2, atol=1e-7 ), "Two tensors are not equal\n Spec: \n\t%s \n\t%s" % (out, out2) return test_problem